## Copy this file to 3DLDF-1.1.3/ ## Apply the patch like this: ## patch -p1 -i 3DLDF-1.1.3-1.1.4.diff ## diff -Naur 3DLDF-1.1.3/.rcsfreeze.log 3DLDF-1.1.4/.rcsfreeze.log --- 3DLDF-1.1.3/.rcsfreeze.log 2003-12-01 21:40:50.000000000 +0100 +++ 3DLDF-1.1.4/.rcsfreeze.log 2003-12-10 18:37:30.000000000 +0100 @@ -1,3 +1,14 @@ +Version: C_3(C_3), Date: Wed Dec 10 18:36:59 MET 2003 +----------- + Release 1.1.4. +----------- + +Version: C_2(C_2), Date: Tue Dec 9 20:42:48 MET 2003 +----------- + About to merge changes in my development and release directories, before + I make release 1.1.4. +----------- + Version: RELEASE_1_1_3(C_1), Date: Mon Dec 1 21:40:30 MET 2003 ----------- Configuration for 3DLDF 1.1.3. Fixed bugs in 3DLDF-1.1.3/CWEB/Makefile.am diff -Naur 3DLDF-1.1.3/AUTHORS 3DLDF-1.1.4/AUTHORS --- 3DLDF-1.1.3/AUTHORS 2003-12-01 20:46:17.000000000 +0100 +++ 3DLDF-1.1.4/AUTHORS 2003-12-09 21:19:53.000000000 +0100 @@ -1,5 +1,7 @@ AUTHORS +$Id: AUTHORS,v 1.4 2003/12/09 20:19:53 lfinsto1 Exp $ + This file is part of 3DLDF, a package for three-dimensional drawing. Copyright (C) 2003 Laurence D. Finston. @@ -28,8 +30,6 @@ s246794@stud.uni-goettingen.de -$Id: AUTHORS,v 1.3 2003/12/01 19:46:17 lfinsto1 Exp $ - Authors of 3DLDF. 3DLDF Laurence D. Finston (LDF) diff -Naur 3DLDF-1.1.3/CWEB/.rcsfreeze.log 3DLDF-1.1.4/CWEB/.rcsfreeze.log --- 3DLDF-1.1.3/CWEB/.rcsfreeze.log 2003-12-01 21:45:20.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/.rcsfreeze.log 2003-12-10 18:37:52.000000000 +0100 @@ -1,3 +1,14 @@ +Version: C_4(C_4), Date: Wed Dec 10 18:37:40 MET 2003 +----------- + Release 1.1.4. +----------- + +Version: C_3(C_3), Date: Tue Dec 9 20:42:59 MET 2003 +----------- + About to merge changes in my development and release directories, before + I make release 1.1.4. +----------- + Version: RELEASE_1_1_3(C_2), Date: Mon Dec 1 21:44:59 MET 2003 ----------- Configuration for 3DLDF 1.1.3. Fixed bugs in 3DLDF-1.1.3/CWEB/Makefile.am diff -Naur 3DLDF-1.1.3/CWEB/3DLDFprg.dvi 3DLDF-1.1.4/CWEB/3DLDFprg.dvi --- 3DLDF-1.1.3/CWEB/3DLDFprg.dvi 2003-12-01 21:51:47.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/3DLDFprg.dvi 2003-12-10 18:45:10.000000000 +0100 @@ -1,12 +1,12 @@ -; TeX output 2003.12.01:2151n !", +; TeX output 2003.12.10:1845n !", cmsy10xK`y cmr101|{Ycmr83DLDFPRÎGTrCOPYRIGHTXANDLICENSE1n@P"V cmbx101. Cop9yrightTandLicense. CopyrightrcUU 2003UULaurenceD.Finston. -See˞thesectionhGNUˀF*reeDoGcumentationLicense@1515iforthecopyingconditionsthatapplyto][thisdoQcumen9t. -TheKprogramq 3DLDFqdoGcumentedhereisfreesoftware;youcanredistributeitand/ormoGdifyitundertheYtermsoftheGNUYGeneralPublicLicenseaspublishedbytheF*reeSoftwareF*oundation;[eitherversion2eFoftheLicense,iBor(atyouroption)anylaterversion.SeethesectionhGNUeAGeneralPublicLicense@1516iinUUthisdoGcument. +See˞thesectionhGNUˀF*reeDoGcumentationLicense@1523iforthecopyingconditionsthatapplyto][thisdoQcumen9t. +TheKprogramq 3DLDFqdoGcumentedhereisfreesoftware;youcanredistributeitand/ormoGdifyitundertheYtermsoftheGNUYGeneralPublicLicenseaspublishedbytheF*reeSoftwareF*oundation;[eitherversion2eFoftheLicense,iBor(atyouroption)anylaterversion.SeethesectionhGNUeAGeneralPublicLicense@1524iinUUthisdoGcument. 3DLDF;is;distributedinthehopGethatitwillbeuseful,ukbutWITHOUT;ANYWARRANTY;;withouteventheimpliedwarrantyofMERCHANT*ABILITYorFITNESSFORAP*ARTICULARPURPOSE.SeetheUUGNUGeneralPublicLicenseformoredetails. Y*oushouldhavereceivedacopyoftheGNUGeneralPublicLicensealongwith3DLDF;ifnot,writetotheUUF*reeSoftwareUUFoundation,Inc.,59TemplePlace,Suite330,Boston,MA02111-1307USA 3DLDFAisaGNUpackqage. ItispartoftheGNUPro8jectoftheF*reeSoftwareFoundationandispublished5undertheGNU5sGeneralPublicLicense.Seethewebsite 8BeginTLogJʄ`> +Donald}Knuth'sbGooks}TKßVE-X:ThePr}'ogramBand}MET;AFONT:TheProgramBeach}includeasection\HowtoUUreadaWEB",whichmaybGehelpful.9Ȅ`+U 8Log)j`+U [LDFT2002.11.18.]YXChangedNrnameofthis lefromcweavedriver.webtocwdriver.web.o{ItnowhasfewerthanUU8lettersandcanbGeusedunderDOS. [LDFT2003.08.16.]XChangednameofthis lefromcwdriver.webto3DLDF.websometimesince2002.11.18.F*orgotUUtonoteithere. -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`3. F +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ`G3. F ormattingrcommands.cweaveformats\== b"as\",\!="as\6=",and\!e"as\:".U.ProgrammerswhoUUusethesetokensmusttypGethemas\== b",\!=,and\!". ThefollowingformattingcommandsarefortypGesde nedinC++6orintheC++StandardLibrary*,butnothandledUUcorrectlybycweave. format3c(bitsetT.#int @@ -57,36 +57,36 @@ format3c(ve}'ctorW?0intn썷x43DLDFPRÎG FORMAJTTINGXCOMMANDS3n@P4. ThissectioncontainscommandsforinputtingtheCWEBsource les,whichareinvisibleinthecweave output.5. PreproQcessorTv\rariablesandlibrary les(loader.web).%#ThisUUCWEB legeneratesnoC++coGde,Abut 8BeginTLogJʄ`> +[LDFT2003.07.18.]Y;SetMUthepreproGcessormacroLDF_GCC_3_3@to1inordertocompileusinggccversion3.320030226=(prerelease)(SuSE=HLinux).*TSetitto0inordertocompileusingGCCversion2.95.320010315(SuSE).UUThiscanbGefasterthanusingGCC3.3,especiallywithrespecttolinking.N99Ȅ`+U 8Log)j`+U [LDFT2003.08.21.]YSNowincludingplfmvar.h.TItcontains#de ne!xand#undef!>̫preproGcessorcommandsfor^conditionalcompilation.gThere'sadi erentversionofthis leineachofthesubGdirectoriesusedforcompilingUUwithadi erentcombinationofopGeratingsystem,compiler,andcompilerversion. [LDFT2003.07.25.]Y;MoGdi edUUtheconditionalconstructionsgoverningUUcompilationslightly*. [LDFT2003.08.14.]Z3Nowincludinggetopt.hfortheGCCpversionsunderLinux.It'sforproGcessingthecommandUUlineoptions. [LDFT2003.08.14.]ZNow_includingstreambuf.h,LifLDF_GCC_2_95HEisde ned,otherwiseios.ThisisforstreamUUformatting. [LDFT2003.08.29.]YFdRemoved~getopt.htomain.web,bGecauseit'sonlyusedthere.,ATOnDO:Move~therestofUUtheincludecommandstothe leswherethey'reneeded,andTgetridofthis le. [LDFT2003.09.03.]YAdded9#de ne"cLDF_PUBLIC[=inordertobGeabletoconditionallyincludeplfmvar.h.Thelatterisnotincludedintheversionfordistribution.Instead,thepreproGcessorvqariablesarede nedorunde nedUUhere. -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`6. Con guration le.Thisdsectionincludesconfig.h,h[whichisgeneratedbyconfigure3*ګ.oThisisnewinZ3DLDFZ1.1.nTheconfigure6|scriptgeneratedbyAutoGconftestswhethercertainlibrary lesarepresent,andde nespreproGcessorvqariablesinconfig.haccordingly*.HThesecanbeusedforconditionallycompilingcoGde,usothatlibrary lesareonlyincludediftheyarereallypresent.EGHowever,itwillbGenecessarytoaddcoGdeoforhandlingthecasethattheyaren'tpresent.+{I9haven'todonethisyet,althoughIhaveoputinconditionalcoGdeUUusingthesevqariablesinacoupleofplaces.qTODO:W*orkonthis.[LDFT2003.11.12.] -AutoGconfdoesnotperdefaultchecktheversionofthecompilerthat'sused,0andI'mnotsurewhetherthiswouldreallybGesensible.43DLDF{alreadycontainsconditionallycompiledcoGdebasedonwhethertheDECC++compiler,ortheGNUC++compiler(GCC)version2.95orversion3.3isused.vIftheDECcompilerisused,{thepreproGcessorvqariablesLDF_GCC_2_95HorLDF_GCC_3_3C}mustbeunde nedbyhandbGelow.Itde nes__DECCXX2itself.IfGCCisused,IoneofthemmustbGede ned,andtheotherunde ned.Perdefault,LDF_GCC_3_3@ޫisde nedandLDF_GCC_2_95EGisunde ned.JThisisbGecauseGCC3.3is,ingeneral,animprovementoverGCC2.95.However,IusuallyuseGCC2.95myself,bGecauselinkingissigni cantlyfasterUUonthecomputerIuse.q[LDFT2003.11.12.]c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.11.12.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`n썫4CONFIGURAJTIONXFILEcr3DLDFPRÎGx6n@Phloader.h56i #include'~"config.h" SeeXalsosections7,8,and9.7. LibraryT les.hloader.h56i+#de ne!LDF_PUBLIC#ifdefeLDF_PUBLIC#de ne!_GNU_SOURCE#de ne!LDF_GCC_3_3#undef *LDF_GCC_2_95#undef *__DECCXX_y{ b> +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ`G6. Con guration le.Thisdsectionincludesconfig.h,h[whichisgeneratedbyconfigure3*ګ.oThisisnewinZ3DLDFZ1.1.nTheconfigure6|scriptgeneratedbyAutoGconftestswhethercertainlibrary lesarepresent,andde nespreproGcessorvqariablesinconfig.haccordingly*.HThesecanbeusedforconditionallycompilingcoGde,usothatlibrary lesareonlyincludediftheyarereallypresent.EGHowever,itwillbGenecessarytoaddcoGdeoforhandlingthecasethattheyaren'tpresent.+{I9haven'todonethisyet,althoughIhaveoputinconditionalcoGdeUUusingthesevqariablesinacoupleofplaces.qTODO:W*orkonthis.[LDFT2003.11.12.] +AutoGconfdoesnotperdefaultchecktheversionofthecompilerthat'sused,0andI'mnotsurewhetherthiswouldreallybGesensible.43DLDF{alreadycontainsconditionallycompiledcoGdebasedonwhethertheDECC++compiler,ortheGNUC++compiler(GCC)version2.95orversion3.3isused.vIftheDECcompilerisused,{thepreproGcessorvqariablesLDF_GCC_2_95HorLDF_GCC_3_3C}mustbeunde nedbyhandbGelow.Itde nes__DECCXX2itself.IfGCCisused,IoneofthemmustbGede ned,andtheotherunde ned.Perdefault,LDF_GCC_3_3@ޫisde nedandLDF_GCC_2_95EGisunde ned.JThisisbGecauseGCC3.3is,ingeneral,animprovementoverGCC2.95.However,IusuallyuseGCC2.95myself,bGecauselinkingissigni cantlyfasterUUonthecomputerIuse.q[LDFT2003.11.12.]N99Ȅ`+U 8Log)j`+U +[LDFT2003.11.12.]Y;AddedUUthissection.Ȅ`Gn썫4CONFIGURAJTIONXFILEcr3DLDFPRÎGx6n@Phloader.h56i #include'~"config.h" SeeXalsosections7,8,and9.7. LibraryT les.hloader.h56i+#de ne!LDF_PUBLIC#ifdefeLDF_PUBLIC#de ne!_GNU_SOURCE#de ne!LDF_GCC_3_3#undef *LDF_GCC_2_95#undef *__DECCXX_y{ b> -cmmi10=JustUUtobGeextrasure.q[LDFT2003.09.03.]U$=#else&=DoUUnothing.o=#endif#ifdefe__DECCXX#de ne!__USE_STD_IOSTREAM =NeededUUfor"sstream"bGelow.o=#endif#include'~#include'~#include'~#ifdefe__GNUC__#if HAVE_FLOAT_H#include'~ḵ=[LDFT2002.12.13.]T7NeededUUforFLT_MAX(.o=#endif#endif#include'~#include'~#include'~#ifdefeLDF_GCC_2_95ng=F*orUUstreamformatting.q[LDFT2003.08.14.]U$=#include'~#else#include'~#endif#include'~#include'~#ifdefe__DECCXX#include'~#else#ifdefeLDF_GCC_3_3#include'~#else#ifdefeLDF_GCC_2_95#if HAVE_LIMITS_H#include'~#endif#endif#endif#endif#include'~#include'~#ifdefeLDF_GCC_3_3#include'~1n썷x73DLDFPRÎG4LIBRARJYXFILES5n@P#else #ifdefeLDF_GCC_2_95#include'~#endif#endif#include'~#include'~#include'~#ifdefe__GNUC__#include'~#endif#if HAVE_STDLIB_H#include'~#endif8. streambuf.hKisincludedabGove,ifKLDF_GCC_2_95HpisKde ned,insteadofios,whichisincludedinallotherUUcases.q[LDFT2003.08.14.]hloader.h56i+#include'~#include'~#include'~8Jn썫6LIBRARJYXFILES43DLDFPRÎGx9n@P9.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.18.]XyAdded\usingnamespaceW|stde$".KThisisneededwithGCCv3.3,SbutnotwithGCC2.95orUUtheDECC++compiler.Ȅ` 8EndTLogA>`hloader.h56i+ -using(Snamespaceastdq;10. GlobalTitems(pspglb.web).$ITypGedefs,UUglobalvqariablesandconstants,andsomenon-classfunctions.q(pspglb.web.)c9Ȅ`> 8BeginTLogJʄ`> +cmmi10=JustUUtobGeextrasure.q[LDFT2003.09.03.]U$=#else&=DoUUnothing.o=#endif#ifdefe__DECCXX#de ne!__USE_STD_IOSTREAM =NeededUUfor"sstream"bGelow.o=#endif#include'~#include'~#include'~#ifdefe__GNUC__#if HAVE_FLOAT_H#include'~ḵ=[LDFT2002.12.13.]T7NeededUUforFLT_MAX(.o=#endif#endif#include'~#include'~#include'~#ifdefeLDF_GCC_2_95ng=F*orUUstreamformatting.q[LDFT2003.08.14.]U$=#include'~#else#include'~#endif#include'~#include'~#ifdefe__DECCXX#include'~#else#ifdefeLDF_GCC_3_3#include'~#else#ifdefeLDF_GCC_2_95#if HAVE_LIMITS_H#include'~#endif#endif#endif#endif#include'~#include'~#ifdefeLDF_GCC_3_3#include'~0n썷x73DLDFPRÎG4LIBRARJYXFILES5n@P#else #ifdefeLDF_GCC_2_95#include'~#endif#endif#include'~#include'~#include'~#ifdefe__GNUC__#include'~#endif#if HAVE_STDLIB_H#include'~#endif8. streambuf.hKisincludedabGove,ifKLDF_GCC_2_95HpisKde ned,insteadofios,whichisincludedinallotherUUcases.q[LDFT2003.08.14.]hloader.h56i+#include'~#include'~#include'~7ˠn썫6LIBRARJYXFILES43DLDFPRÎGx9n@P9.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.18.]XyAdded\usingnamespaceW|stde$".KThisisneededwithGCCv3.3,SbutnotwithGCC2.95orUUtheDECC++compiler.Ȅ`Ghloader.h56i+ +using(Snamespaceastdq;10. GlobalTitems(pspglb.web).$ITypGedefs,UUglobalvqariablesandconstants,andsomenon-classfunctions.q(pspglb.web.)N99Ȅ`+U 8Log)j`+U [LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.1.qThey'restillusedinmydevelopmentversions. -[LDFT2003.12.01.]Y$PutR>theversioncontrolidenti ersbackintothereleaseversions,RbGecauseI'veputtheminUUtheirownRCSrepGository*.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i -static)HstringJn'r}'csffidg(="$Id: pspglb.web,v 1k.5 2003/12/01 19:56:Ơ32 lfinsto1 Exp $"3ҫ; See -alsosections37,C54,120,196,205,262,591,615,652,935,970,1054,1096,1229,1275,1289,1398,1406,1424,1490, -andX1497.Thisco 8BeginTLogJʄ`> +[LDFT2003.12.01.]Y$PutR>theversioncontrolidenti ersbackintothereleaseversions,RbGecauseI'veputtheminUUtheirownRCSrepGository*.Ȅ`GhV*ersionUUcontrolidenti er@10i +static)HstringJn'r}'csffidg(="$Id: pspglb.web,v 1k.10 2003/12/10 16:34Ơ:02 lfinsto1 Exp $"9 ϫ; See +alsosections37,C54,120,196,205,262,591,615,652,938,973,1057,1101,1234,1280,1294,1403,1411,1429,1495, +andX1502.Thisco See +alsosections38,C55,121,197,206,263,592,616,653,939,974,1058,1102,1235,1281,1295,1404,1412,1430,1496,andX1503.Thisco` -format3c(r}'ealL o}'at +[LDFT2003.06.03.]Y;AddedUUr}'ealffshort-Ȭ.qIt'sUUthereturntypGeofPlane!6::getffdistanc}'e5y().Ȅ`G +format3c(r}'ealL o}'at format3c(r}'ealffpairaqr}'eal format3c(b}'oolffpairbVr}'ealffpair -format3c(r}'ealffpairaqr}'ealffshort -format3c(MatrixZ int;]n썷x123DLDFPRÎGTYPEXDEFINITIONS7n@P#de ne/|LDF_REAL_FLOATd1 #de ne/|LDF_REAL_DOUBLE 0΍hTypGeUUde nitions@12i#if LDF_REAL_FLOAT +format3c(r}'ealffpairaqr}'ealffshort:ޠn썷x123DLDFPRÎGTYPEXDEFINITIONS7n@P +format3c(MatrixZ int #de ne/|LDF_REAL_FLOATd1#de ne/|LDF_REAL_DOUBLE 0hTypGeUUde nitions@12i#if LDF_REAL_FLOAT t9ypQedef4_ oatN{realaق;#elif,LDF_REAL_DOUBLE t9ypQedef4_doubleYrealm;#else t9ypQedef4_ oatN{realaق;#endif @@ -94,42 +94,59 @@ t9ypQedef4_pairH۫hreal]ٱ;realiUUrealus4wpair/p; t9ypQedef4_pairH۫hreal]ٱ;signed%short?iUUrealus4wshort5i; t9ypQedef4_pairH۫hbQoolL;bQooliUUbQoolus4wpair2^; -t9ypQedef4_pairH۫hbQoolL;realiUUbQoolus4wreal1@; ΍SeeXalsosections267,268,270,and272.ThisXco 8BeginTLogJʄ`> +g; ThisXco`hGlobalUUvqariables@15i -v\ralarra9y3ZBhreal]ٷiUUnullffc}'oordinatesIb:(4);#ifdefe__DECCXX +AItalsodoGesn'tworktouseMAX_REAL5/=INVALID_REALI ^r}'ealfflimits,#:min%().Ȅ`GhGlobalUUvqariables@15i +v\ralarra9y3ZBhreal]ٷiUUnullffc}'oordinatesIb:(4); SeeXalsosections16,17,39,189,257,and586.ThisXco 8BeginTLogJʄ`> -[LDFT2003.08.14.]Y;AddedUUVERBOSE_GLOBALPandUUSILENT_GLOBALH.Ȅ` 8EndTLogA>`hGlobalUUvqariables@15i+ +extern.constLHyrealbINVALID_REALI=r}'ealfflimits/;:max();#else#if LDF_REAL_DOUBLE +extern.constLHyrealbINVALID_REALI=DBL_MAX( k;#else&=LDF_REAL_FLOATO;,UUornotspGeci ed.qLDF2003.12.08.o= +extern.constLHyrealbINVALID_REALI=FLT_MAX( k;#endif#endif#if LDF_REAL_DOUBLE +real /d(=INVALID_REALBM\; +real /%0dp3ך=& +6d¨; +unsigned:7longS]longlqip}=rein9terpretus4wcastRhunsigned07longI]longbgi(dp ]R); +unsigned:7longS]longlir=(ipQ)=l1m; +bitset&ܷh888sizeofC(unsigned07longI]long_/1)iUUb +g=i9 ; +extern.constLHyrealbMAX_REALI=(rein9terpretus4wcastO}hreal./i(&i 9));#else&=LDF_REAL_FLOATO;,UUornotspGeci ed.qLDF2003.12.08.o= +real /f)s-=INVALID_REALBM\; +real /%0fp1:=& +6f; +unsigned:7longS]˷X]ipdv֫=rein9terpretus4wcastRhunsigned07longI]ʷN]i(fp Q); +unsigned:7longS]˱iY׫=(ipQ)=l1m; +bitset&ܷh888sizeofC(unsigned07longFu)iUUb +g=i9 ; +extern.constLHyrealbMAX_REALI=(rein9terpretus4wcastO}hreal./i(&i 9));#endif Uwn썷x173DLDFPRÎG 8BeginTLogJʄ`> -[LDFT2003.08.14.]Y;AddedUUVERSION_3DLDFKpandUUCOPYRIGHT_3DLDFR.Ȅ` 8EndTLogA>`hGlobalUUconstants@19i -extern.constLHystringmmVERSION_3DLDF="1.1.3"( k; +extern.bQoolG=SILENT_GLOBAL~; SeeXalsosections20,23,27,190,192,258,275,587,611,and648.ThisXco 8BeginTLogJʄ`> -[LDFT2003.11.28.]YiChanged3VERSION_3DLDFM-Gfrom3areal߫toastring"{. RThisisnecessary*,kbGecauseI3JnowhaveUUversionswiththreedigitsseparatedbypGeriods.Ȅ` 8EndTLogA>`hDeclarationsUUfortheheader le@18i+ +extern.constMstringo}DISCLAIMER_3DLDF ="3DLDF comes with ABlSOLUTELY NO WARRANTYY\;\nfor details see the file COPYING,\nwhich you should have XOreceived\nin the dis\tribution of 3DLDF 1.1.4\nThis is free software, and you areXO welcome\nto redistr\ibute it under certain conditions;\nfor details, again, see XOthe file COPYING.\n\\nPlease send bug reports to the author at:\n\nEmail: lfinXOsto1@gwdg.de\n \ or s246794@stud.uni-goettingen.de\nWeb site: http:://wwwXOuser.gwdg.de/~lfinsto1"Er; SeeXalsosections25,26,115,191,and274.ThisXco 8BeginTLogJʄ`> -[LDFT2003.08.14.]ZpPutthisfunctiondeclarationinhDeclareutilityfunctions@21i.F*ormerly,itwasinhDeclarationsUUfortheheader le@18i. -Changed9theconditionalfrom#ifdefŝ__GNUC__Hzto#ifdefŝLDF_GCC_2_95ZK,?bGecausethelibraryversionoftrunc4;()UUisfoundwhencompilingwithGCC3.3underLinux.Ȅ` 8EndTLogA>`hDeclareUUutilityfunctions@21i#ifdefeLDF_GCC_2_95 -double/JGtruncG~(double%JFd*~);#endif SeeXalsosections29and31.ThisXco 8BeginTLogJʄ`> -[LDFT2003.08.14.]ZePutthisfunctionde nitionintohDe neutilityfunctions@22i. pEF*ormerly,j itwasinhGlobalUUvqariables@15i.Ȅ` 8EndTLogA>`hDe neUUutilityfunctions@22i #ifdef LDF_GCC_2_95nW=*KLUDGE!![LDFT2002.12.1.]Otruncg()isn'tavqailableontheLinuxmachinegwdg-wb02.gwdg.de!qFindUUoutwhynot!o= +extern.constLHystringmmDISCLAIMER_3DLDF; +gn썫10FÎORXCOMPILAJTION<3DLDFPRGx21n@P21. TODO:)Findoutwhythelibraryversionoftrunc"d()can'tbGefoundintheversionforGCC2.95under Linux!q[LDFT2002.12.10.] +TheUUproblemdoGesn'texistforGCC3.3underLinux.q[LDFT2003.08.14.]N99Ȅ`+U 8Log)j`+U +[LDFT2003.08.14.]ZpPutthisfunctiondeclarationinhDeclareutilityfunctions@21i.F*ormerly,itwasinhDeclarationsUUfortheheader le@18i. +Changed9theconditionalfrom#ifdefŝ__GNUC__Hzto#ifdefŝLDF_GCC_2_95ZK,?bGecausethelibraryversionoftrunc4;()UUisfoundwhencompilingwithGCC3.3underLinux.Ȅ`GhDeclareUUutilityfunctions@21i #ifdefeLDF_GCC_2_95 +double/JGtruncG~(double%JFd*~);#endif SeeXalsosections29and31.ThisXcovqalue. -MAX_REAL_SQRTPaisconvenientptohavepfortestingwhencomputingUUdistances.U9Ȅ`> 8BeginTLogJʄ`> +MAX_REAL_SQRTPaisconvenientptohavepfortestingwhencomputingUUdistances.9Ȅ`+U 8Log)j`+U [LDFT2002.09.25.]YAdded0 thissection.Previously*,fI/declaredandinitializedmyglobalconstantsintheheader%> le. Thismeantthateachcompilationunitthatloadedpspglb.hhaditsownversionofPI+,INVALID_REAL?D,ketc.aIRdidn'tgknowthatc}'onsts":hadinternallinkqagebydefaultandthatIRcouldmaketheirlinkqage externalbyusingextern(Ɨinthedeclarationwiththeinitialization,)yandputaseconddeclaration,alsoUUwithextern$֫,intheheader le.qThisiswhatI'vedonenow. -[LDFT2003.06.03.]Y;AddedUUINVALID_REAL_SHORTb[.Ȅ` 8EndTLogA>`25. F +[LDFT2003.06.03.]Y;AddedUUINVALID_REAL_SHORTb[.Ȅ`G25. F orTcompilation.hGlobalUUconstants@19i+ -extern.constLHyrealbPIp!=4:08atan(1:0 ); omn썷x253DLDFPRÎG 8BeginTLogJʄ`> -[LDFT2003.06.1.]Th=ChangedUUreturntypGefrompairfhreal]ٱ;realitorealus4wpair/p,whichisequivqalent.Ȅ` 8EndTLogA>`hDeclareUUutilityfunctions@21i+ -realus4wpair9psolveffquadr}'atic{%<(real.a^;real]ֱb;real]ֱc); ~n썫12SOL8VEXQUADRAJTICEQUATION璘3DLDFPRÎGx30n@P30.hDe neUUutilityfunctions@22i+ +extern.constLHyrealbMAX_REAL_SQRT;28. Utilit9yTfunctions.29. Solv9equadraticequation.[LDFT2002.09.03.]ZlTO9+DO:93MaybGeaddfunctionsforsolvingcubicandquarticUUequations,ifthisispracticable.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.1.]Th=ChangedUUreturntypGefrompairfhreal]ٱ;realitorealus4wpair/p,whichisequivqalent.Ȅ`GhDeclareUUutilityfunctions@21i+ +realus4wpair9psolveffquadr}'atic{%<(real.a^;real]ֱb;real]ֱc); n썷x303DLDFPRÎG璘SOL8VEXQUADRAJTICEQUATION13n@P30.hDe neUUutilityfunctions@22i+ realus4wpair9psolveffquadr}'atic{%<(real.a^;real]ֱb;real]ֱc) frealus4wpairCppHx;try)3fp#: rst|«=(bJ+8sqrt٫((b8b)8(48a c)))=(2a);gcatc9h.׫(:::)fp#: rst|«=INVALID_REALBM\;gtry)3fp#:se}'cond n߫=(bJ8sqrt٫((b8b)8(48a c)))=(2a);gcatc9h.׫(:::)fp#:se}'cond n߫=INVALID_REALBM\;greturn7漱p<; g31. Dynamic{TalloQcation.[LDFT2002.10.02.][TODO:T*rytogetthistowork."Ihaven'tbGeenabletogetUUthistemplatefunctiontoinstantiatecorrectly*.hDeclareUUutilityfunctions@21i+#if 0 template6_hclassQC"iUUC 2!2"cr}'eateffnew?(C -8c Sӫ=0);#endif ؠn썷x323DLDFPRÎGDYNAMICXALLOCAJTION13n@P32.hDe neUUutilityfunctions@22i+ #if 0 +8c Sӫ=0);#endifn썫14DÎYNAMICXALLOCAJTION3DLDFPRGx32n@P32.hDe neUUutilityfunctions@22i+ #if 0 template6_hclassQC"iUUC 2!2"cr}'eateffnew?(C 8c) fc}'out* Q"In create_new.\n"db ush;C8newffshap}'effptrB=newzG(C̫);if(c6=0) newffshap}'effptrJ=c ;newffshap}'effptrO~Usetffonfffr}'eeffstoreOl(trueĘ);return7newffshap}'effptruN; g#endif33. F -orw9ardfdeclarations.[LDFT2002.10.16.]Z/InwNthe lesthatarecompiled rst,someclassesrefertoother[classesthathaven't[bGeende nedyet.]tF*orward[declarationsmakeitpossibletodothis.]tTOKDO:GETCIT*ATIONUUfromStroustrup.U9Ȅ`> 8BeginTLogJʄ`> +orw9ardfdeclarations.[LDFT2002.10.16.]Z/InwNthe lesthatarecompiled rst,someclassesrefertoother[classesthathaven't[bGeende nedyet.]tF*orward[declarationsmakeitpossibletodothis.]tTOKDO:GETCIT*ATIONUUfromStroustrup.9Ȅ`+U 8Log)j`+U [LDFT2002.04.10.]YAdded"theforwarddeclarationofbQoolus4wrealus4pQoin9tQq.It'sneededbGecauseit'susedasthesreturnvqalueofP9oint::interse}'ctionffpointNګ(),whichis,ofcourse,declaredwithinthedeclarationofclassP9ointH.g~However,&abQoolus4wrealus4pQoin9tUTcanonlybGede nedafterP9oint$isde ned.ThisforwarddeclarationsolvesUUtheproblem. -[LDFT2003.07.16.]XAdded;forwarddeclarationofEllipse%$.iHIt'sneeded,@bGecauseI'vedeclaredEllipse(`tobGea!friend$Sof!P9athx.`\F*ormerly,+Circle$ǫwas!afriendofP9athx,+butnowitmustbGeEllipse% ,+becauseI'vemadetheUU\segment"functionsse}'gment'J(),half(),andquarter$Z()membGersofEllipse(insteadofCircle!.Ȅ` 8EndTLogA>`hF*orwardUUdeclarations@33i +[LDFT2003.07.16.]XAdded;forwarddeclarationofEllipse%$.iHIt'sneeded,@bGecauseI'vedeclaredEllipse(`tobGea!friend$Sof!P9athx.`\F*ormerly,+Circle$ǫwas!afriendofP9athx,+butnowitmustbGeEllipse% ,+becauseI'vemadetheUU\segment"functionsse}'gment'J(),half(),andquarter$Z()membGersofEllipse(insteadofCircle!.Ȅ`GhF*orwardUUdeclarations@33i struct+bQoolus4wpoin9t`>; struct+bQoolus4wrealus4pQoin9txY; class$RCircleCC~; @@ -185,29 +202,31 @@ hUtilityUUclasses@13i hGlobalUUvqariables@15i hGlobalUUconstants@19i -hDe neUUutilityfunctions@22iŠn썫14PUTTINGXPSPGLBTOGETHERV\3DLDFPRÎGx36n@P36. ThisUUiswhat'swrittentothepspglb.h.hpspglb.h536i +hDe neUUutilityfunctions@22in썷x363DLDFPRÎGV\PUTTINGXPSPGLBTOGETHER15n@P36. ThisUUiswhat'swrittentothepspglb.h.hpspglb.h536i hTypGeUUde nitions@12i hUtilityUUclasses@13i hDeclarationsUUfortheheader le@18i=ThisUUdoGesn'twork,apparentlybGecauseit'sincompatiblewiththeuseofsstream.o=#if 0#ifdefe__DECCXXYg=UsingUUtheDECC++uCompiler.o= const(*real>PILK=__CXXL_PI2e;#endif#endif hDeclareUUutilityfunctions@21i -hF*orwardUUdeclarations@33i37. I/O(io.web).c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i+38. IncludeT les.hIncludeUU les@11i+#include'~"loader.h"#include'~"pspglb.h"#include'~39. Globalv\rariables.[LDFT2002.10.16.]Zp:inffstr}'eamis=Yaninputstreamattachedtoa lewithusercoGdeforvinput.թCurrently*,~itisused,butitful llsnousefulfunction,bGecauseIvhaven'tvde nedaninputroutineyet./Soutffstr}'eam5isanoutputstreamattachedtothe leofMET*APOSTcoGdethat3DLDFcurrentlyproGducesasswitsoutput.-texffstr}'eam6Cisanoutputstreamattachedtoa leofTU>VExXKcoGde.-TheusercanwriteTU>VExXcoGdetoUUthis leandloaditintopersp.texoruseitforsomeotherpurpGose.q3DLDFmakesnouseofititself.r9Ȅ`> 8BeginTLogJʄ`> +hF*orwardUUdeclarations@33i37. I/O(io.web).N99Ȅ`+U 8Log)j`+U +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`GhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: io.web,v 1.2 2k003/12/10 15:39:40 lƠfinsto1 Exp $"ޫ;38. IncludeT les.hIncludeUU les@11i+#include'~"loader.h"#include'~"pspglb.h"#include'~39. Globalv\rariables.[LDFT2002.10.16.]Zp:inffstr}'eamis=Yaninputstreamattachedtoa lewithusercoGdeforvinput.թCurrently*,~itisused,butitful llsnousefulfunction,bGecauseIvhaven'tvde nedaninputroutineyet./Soutffstr}'eam5isanoutputstreamattachedtothe leofMET*APOSTcoGdethat3DLDFcurrentlyproGducesasswitsoutput.-texffstr}'eam6Cisanoutputstreamattachedtoa leofTU>VExXKcoGde.-TheusercanwriteTU>VExXcoGdetoUUthis leandloaditintopersp.texoruseitforsomeotherpurpGose.q3DLDFmakesnouseofititself.9Ȅ`+U 8Log)j`+U [LDFT2002.08.30.]Y]Added wtexffstr}'eam6bso wthatI HcanincludeTU>VExXKcoGdeinmyusercode..Codewrittenby3DLDFY`toYtexffstr}'eam2willYbGeloadedbypersp.tex,orwhateverTU>VExXO leincludesthePostScript legeneratedbyMET*APOSTϸfromtheoutputof3DLDF.UsercoGdeiscurrentlyinmain.web.EIInproGductionversionsusercoGdeUUwillbeinuser.web. -[LDFT2003.07.16.]Y;AddedUU gffnum%(.Ȅ` 8EndTLogA>` -format3c(ifstr}'eam__int +[LDFT2003.07.16.]Y;AddedUU gffnum%(.Ȅ`G +format3c(ifstr}'eam__int format3c(ofstr}'eamainthGlobalUUvqariables@15i+ ifstream6,inffstr}'eam`Y; -ofstream9\doutffstr}'eamh; -ofstream9\dtexffstr}'eamg_ث; -unsigned:7shortX gffnumzZ;n썷x403DLDFPRÎGZ:GLOBALXV8ARIABLES15n@P40. extern/ҫdeclarationsUUfortheglobalvqariables.hextern%~vqariableUUdeclarations@40i +ofstream9\doutffstr}'eamh;n썫16GLOBALXV8ARIABLESZ:3DLDFPRÎGx39n@P +ofstream9\dtexffstr}'eamg_ث; +unsigned:7shortX gffnumzZ;40. extern/ҫdeclarationsUUfortheglobalvqariables.hextern%~vqariableUUdeclarations@40i extern.ifstreamZinffstr}'eam/; extern.ofstream]z:outffstr}'eam֫; extern.ofstream]z:texffstr}'eam}; -extern.unsigned^Tshort| gffnumx[; ThisXco 8BeginTLogJʄ`> -[LDFT2003.08.29.]Y;Changed,UUsothatinffstr}'eam0׫isn'topGened.Ȅ` 8EndTLogA>`hDeclareUUI/Ofunctions@42i -v9oid#oinitializeffioV(string!dinffstr}'eamffnamefk;string#B outffstr}'eamffnamem;string#B texffstr}'eamffnamelrZ;c9har#pr}'ogramffnamebv); SeeXalsosections45,47,and49.ThisXcoO(asctime":(ltVe));datestampK:er}'ase^/(datestamp-:size\()818);=RemoveUUterminalline-feed.o= SeeXalsosections44,46,48,and50.ThisXcoO(asctime":(ltVe));datestampK:er}'ase^/(datestamp-:size\()818);=RemoveUUterminalline-feed.o= SeeXalsosections44,46,48,and50.ThisXco޷"%% End:"5T}endlendlګ;texffstr}'eamGc`;"\n\n%% L"?`;"ocal Variables:\n"o`;"%% mode:tex\n"Z("%% eval:(local-set-key [f9] 'mp-file)\n""%% run-mp-on-file:\kY"persp.mp\"\n",("%% run-cweb-on-file:\"main.web\"\n"Y"%% run-tex-on-file:lY\"persp.tex\"\n"9("%% run-dvips-on-file:\"persp.ps\"\n""%% End:\n"= _;#endifreturn4g; -g47. BeginT gure.U9Ȅ`> 8BeginTLogJʄ`> +g47. BeginT gure.9Ȅ`+U 8Log)j`+U [LDFT2003.07.16.]YUAdded,osilent!argument,b6and,oamessageprintedconditionallytostdout,b6sayingwhich gureUUisbGeingstarted.qThisshouldhelpin ndingwhereerrorsoccur. [LDFT2003.07.16.]Y;MadeUUnon-inline. -[LDFT2003.08.17.]Y;MadeUUsilentanon-constM.qSettingUUittotrue,ifSILENT_GLOBALKpistrue.Ȅ` 8EndTLogA>`hDeclareUUI/Ofunctions@42i+ -v9oid"b}'egin gDz(unsigned07shortNiQs;bQoolLsilent6:=falsev\);n썫18BEGINXFIGURE,\3DLDFPRÎGx48n@P48.hDe neUUI/Ofunctions@43i+ +[LDFT2003.08.17.]Y;MadeUUsilentanon-constM.qSettingUUittotrue,ifSILENT_GLOBALKpistrue.Ȅ`GhDeclareUUI/Ofunctions@42i+ +v9oid"b}'egin gDz(unsigned07shortNiQs;bQoolLsilent6:=falsev\);ĕn썷x483DLDFPRÎG,\BEGINXFIGURE19n@P48.hDe neUUI/Ofunctions@43i+ v9oid"b}'egin gDz(unsigned07shortNiQs;bQoolLsilent4") fif(SILENT_GLOBALDA)silent ~,=true; gffnum9=i9 ;outffstr}'eamF"beginfig("?w gffnum'");\n""n;if(:silent)c}'out O"Beginning figure "i_ gffnum'"."ԏendl ush;return4g; -g49. End= gure.Theјunsigned2shortOϫargumentјis\syntacticsugar".EIt'signoredbyend g(),butmaybGeUUconvenientforauserforkeepingtrackofwhat gureisbGeingended.U9Ȅ`> 8BeginTLogJʄ`> +g49. End= gure.Theјunsigned2shortOϫargumentјis\syntacticsugar".EIt'signoredbyend g(),butmaybGeUUconvenientforauserforkeepingtrackofwhat gureisbGeingended.9Ȅ`+U 8Log)j`+U [LDFT2003.07.16.]YUAdded,osilent!argument,b6and,oamessageprintedconditionallytostdout,b6sayingwhich gureUUisbGeingended.qThisshouldhelpin ndingwhereerrorsoccur. [LDFT2003.07.16.]Y;MadeUUnon-inline. -[LDFT2003.08.17.]Y;MadeUUsilentanon-constM.qSettingUUittotrue,ifSILENT_GLOBALKpistrue.Ȅ` 8EndTLogA>`hDeclareUUI/Ofunctions@42i+ +[LDFT2003.08.17.]Y;MadeUUsilentanon-constM.qSettingUUittotrue,ifSILENT_GLOBALKpistrue.Ȅ`GhDeclareUUI/Ofunctions@42i+ v9oid"end g=^(unsigned07shortNiT:=0;bQoolLsilent6:=falsev\);50.hDe neUUI/Ofunctions@43i+ v9oid"end g=^(unsigned07shortNiQs;bQoolLsilent4") fif(SILENT_GLOBALDA)silent ~,=true;outffstr}'eamF"endfig"0";\n"q;if(:silent)c}'out O"Ending figure "Zh gffnum'"."ԏendlendl ush;return4g; @@ -238,24 +257,26 @@ hIncludeUU les@11i hV*ersionUUcontrolidenti er@10i hGlobalUUvqariables@15i -hDe neUUI/Ofunctions@43iCn썷x533DLDFPRÎG&PUTTINGXI/OTOGETHER19n@P53. ThisUUiswhat'swrittentoio.h.hio.h 53i +hDe neUUI/Ofunctions@43in썫20PUTTINGXI/OTOGETHER&3DLDFPRÎGx53n@P53. ThisUUiswhat'swrittentoio.h.hio.h 53i hextern%~vqariableUUdeclarations@40i -hDeclareUUI/Ofunctions@42i54. Color(colors.web).c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i+55. IncludeT les.hIncludeUU les@11i+#include'~"loader.h"#include'~"pspglb.h"#include'~"io.h"56. Colorxclassde nition.[LDFT2002.09.25.][f!!WRemembGertochangetheconstructors,settingfunc-tions,UUandassignmentopGeratorifIaddorchangeanythinghere!!hDe neUUclass5Color>H56i +hDeclareUUI/Ofunctions@42i54. Color(colors.web).N99Ȅ`+U 8Log)j`+U +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`GhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: colors.web,v 1k.2 2003/12/10 15:22:Ơ33 lfinsto1 Exp $"3ҫ;55. IncludeT les.hIncludeUU les@11i+#include'~"loader.h"#include'~"pspglb.h"#include'~"io.h"56. Colorxclassde nition.[LDFT2002.09.25.][f!!WRemembGertochangetheconstructors,settingfunc-tions,UUandassignmentopGeratorifIaddorchangeanythinghere!!hDe neUUclass5Color>H56i class$RColorDEfstring5%OnameMS;bQool-huseffnameX#;bQool-honfffr}'eeffstoreeFZ;=LDFUU2002.10.06.qAdded.o=real*0r}'edffpartM;real*0gr}'eenffpartW;real*0blueffp}'artR6.; public)=֫:hDeclareUUColor"Hfunctions@58i g; ThisXco 8BeginTLogJʄ`> -[LDFT2002.09.25.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUColor"Hfunctions@58i+ +g SeeXalsosections61,64,66,69,71,74,76,78,81,83,85,87,89,91,93,101,106,and108.ThisXcoJ=c:getffblueffp}'art7();if(nDz6=""Z^8u vtrue)fuseffnameKIe=true;gelse+useffnameY"C=falsev\;onfffr}'eeffstoreNl =falsev\;=LDFUU2002.10.06.qAdded.o=return4g; g62. NameTandunsignedshortargumen9ts.63. Constructor.hDeclareUUColor"Hfunctions@58i+ -Color&O(const]string?nE;const unsignedPqNshortnnlrs8;const unsignedPqNshortnnlgsO;const unsignedPqNshortb"J;constJbQool9vuAF=true);n썷x643DLDFPRÎG)B|CONSTRUCTOR21n@P64.hDe neUUColor"Hfunctions@59i+ +Color&O(const]string?nE;const unsignedPqNshortnnlrs8;const unsignedPqNshortnnlgsO;const unsignedPqNshortb"J;constJbQool9vuAF=true);Tn썫22CONSTRÎUCTOR)B|3DLDFPRGx64n@P64.hDe neUUColor"Hfunctions@59i+ Color'O::ColorO(constGNstring?GnE;constunsignedPEshortn,rr;constunsignedPEshortn,gsM;constunsigned2shortOʨbTR;constJbQool9vu?0.) :qname7˫(n)UUfname/=nDz;if(nDz6=""Z^8u vtrue)fuseffnameKIe=true;gelse+useffnameY"C=falsev\;onfffr}'eeffstoreNl =falsev\;=LDFUU2002.10.06.qAdded.o=r}'edffpart:=r,=255:0!;gr}'eenffpartCȦ=g=255:0!;blueffp}'art>J=b=255:0!; @@ -265,16 +286,16 @@ fname/=nDz;if(nDz6=""Z^8u vtrue)fuseffnameKIe=true;gelse+useffnameY"C=falsev\;r}'edffpart:=r,=255:0!;gr}'eenffpartCȦ=g=255:0!;blueffp}'art>J=b=255:0!; g67. Threerealargumen9ts.[LDFT2002.10.09.][1`Addedthefollowingconstructorandsettingfunction.They areforunnamedColors$⾫.tTheDEC compilercan'tdistinguishbGetween realqand unsigned4shortarguments,so/theoverloadedfunctionsmustdi erinanotherway*.IInthiscase,theseversionshavenonameargument.I:bGelieveSthatusersaremostlikelytodeclareColors(CusingrealargumentswhentheyplantomoGdifythem,*xinwhichcasetheoutput /()functionshouldwritethered,greenandbluevqaluestooutffstr}'eamrathere*thanname+..EIfitturnsouttobGenecessary*,imoreconstructorscanbeaddedortheexistingonescanbGeUUchanged.68. Constructor.hDeclareUUColor"Hfunctions@58i+ -Color&O(const*real4бr9;constJreal6xg;[;constJreal6xb:");Ơn썫22CONSTRÎUCTOR)B|3DLDFPRGx69n@P69.hDe neUUColor"Hfunctions@59i+ +Color&O(const*real4бr9;constJreal6xg;[;constJreal6xb:");n썷x693DLDFPRÎG)B|CONSTRUCTOR23n@P69.hDe neUUColor"Hfunctions@59i+ Color'O::ColorO(const*real4бr9;constJreal6xg;[;constJreal6xb:") fname/="" z;useffnameAId=falsev\;onfffr}'eeffstoreNl =falsev\;if(r,<0)fc}'err6F0"WARNING! In Color::nKColor() (three real אarguments):\n"'&Է2"Red part argument < 0. Setting red_part to 0.\n\n"Cѫ;r}'edffpartD=0;gelse*.6if5.(r,>1)fc}'err6F0"WARNING! In Color::nKColor() (three real אarguments):\n"'&Է2"Red part argument > 1. Setting red_part to 1.\n\n"Cѫ;r}'edffpartD=1;gelse+r}'edffpartQ=r,;if(g<0)fc}'err6F0"WARNING! In Color::nKColor() (three real אarguments):\n"'&Է2"Green part argument < 0. Setting green_part to 0.\n\n"Xū;gr}'eenffpartMȧ=0;gelse*.6if5.(g>1)fc}'err6F0"WARNING! In Color::nKColor() (three real אarguments):\n"'&Է2"Green part argument > 1. Setting green_part to 1.\n\n"Xū;gr}'eenffpartMȧ=1;gelse+gr}'eenffpart[=g;if(b<0)fc}'err6F0"WARNING! In Color::nKColor() (three real אarguments):\n"'&Է2"Blue part argument < 0. Setting blue_part to 0.\n\n"N˫;blueffp}'artHJ=0;gelse*.6if5.(b>1)fc}'err6F0"WARNING! In Color::nKColor() (three real אarguments):\n"'&Է2"Blue part argument > 1. Setting blue_part to 1.\n\n"N˫;blueffp}'artHJ=1;gelse+blueffp}'artV"=b«;return4g; g70. SettingTfunction.hDeclareUUColor"Hfunctions@58i+ -v9oid"set0v](const*real4бr9;constJreal6xg;[;constJreal6xb:");6n썷x713DLDFPRÎGu@SETTINGXFUNCTION23n@P71.hDe neUUColor"Hfunctions@59i+ +v9oid"set0v](const*real4бr9;constJreal6xg;[;constJreal6xb:");fn썫24SETTINGXFUNCTIONu@3DLDFPRÎGx71n@P71.hDe neUUColor"Hfunctions@59i+ v9oid"Color@M{::setx(const*real4бr9;constJreal6xg;[;constJreal6xb:") fname/="" z;useffnameAId=falsev\;onfffr}'eeffstoreNl =falsev\;if(r,<0)fc}'err6F0"WARNING! In Color::nKColor() (three real אarguments):\n"'&Է2"Red part argument < 0. Setting red_part to 0.\n\n"Cѫ;r}'edffpartD=0;gelse*.6if5.(r,>1)fc}'err6F0"WARNING! In Color::nKColor() (three real אarguments):\n"'&Է2"Red part argument > 1. Setting red_part to 1.\n\n"Cѫ;r}'edffpartD=1;gelse+r}'edffpartQ=r,;if(g<0)fc}'err6F0"WARNING! In Color::nKColor() (three real אarguments):\n"'&Է2"Green part argument < 0. Setting green_part to 0.\n\n"Xū;gr}'eenffpartMȧ=0;gelse*.6if5.(g>1)fc}'err6F0"WARNING! In Color::nKColor() (three real אarguments):\n"'&Է2"Green part argument > 1. Setting green_part to 1.\n\n"Xū;gr}'eenffpartMȧ=1;gelse+gr}'eenffpart[=g;if(b<0)fc}'err6F0"WARNING! In Color::nKColor() (three real אarguments):\n"'&Է2"Blue part argument < 0. Setting blue_part to 0.\n\n"N˫;blueffp}'artHJ=0;gelse*.6if5.(b>1)fc}'err6F0"WARNING! In Color::nKColor() (three real אarguments):\n"'&Է2"Blue part argument > 1. Setting blue_part to 1.\n\n"N˫;blueffp}'artHJ=1;gelse+blueffp}'artV"=b«; g72. Pseudo-constructorTfordynamicalloQcation.hDeclareUUColor"Hfunctions@58i+ inline)IstaticH"Colorhxmxcr}'eateffnewffc}'olor8() -fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Color::crekate_new_color().\n" ;Color38c?=newϜ(ColorO);cSݟ~Sonfffr}'eeffstoreV=true;if(DEBUGY)c}'out O"Exiting Color::creakte_new_color().\n";n썫24PSEUDO-CONSTRÎUCTORXFORDYNAMICALLOCAJTION3DLDFPRGx72n@Preturn7漱c<:; +fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Color::crekate_new_color().\n" ;Color38c?=newϜ(ColorO);cSݟ~Sonfffr}'eeffstoreV=true;if(DEBUGY)c}'out O"Exiting Color::creakte_new_color().\n";/n썷x723DLDFPRÎGPSEUDO-CONSTRUCTORXFORDYNAMICALLOCAJTION25n@Preturn7漱c<:; g73. Assignmen9t.[LDFT2002.09.24.]Z6AddedUUthisopGeratorfunction.hDeclareUUColor"Hfunctions@58i+ v9oid"opQeratorN=V[(const*Color=ϕ&EcIꎫ);74.hDe neUUColor"Hfunctions@59i+ v9oid"Color@M{::F۹opQeratorrrn=z9(const*Color=ϕ&EcIꎫ) @@ -290,7 +311,7 @@ bQool#gColor@ ::GGopQerators6=z(const*Color=ϕ&EcIꎫ)UUconst freturn7漷:(thisϷc); g79. MoQdifying.80. SetTname.hDeclareUUColor"Hfunctions@58i+ -v9oid"setffnameKt«(const*string?OsC);n썷x813DLDFPRÎG>SETXNAME25n@P81.hDe neUUColor"Hfunctions@59i+ +v9oid"setffnameKt«(const*string?OsC);n썫26SETXNAME>3DLDFPRÎGx81n@P81.hDe neUUColor"Hfunctions@59i+ v9oid"Color@M{::setffname)v(const*string?OsC) fname/=sw; g82. SetTusename.hDeclareUUColor"Hfunctions@58i+ @@ -299,12 +320,12 @@ fuseffnameAId=b«; g84. MoQdify .hDeclareUUColor"Hfunctions@58i+ -v9oid"mo}'difyACګ(const*real4бr9;constJreal6xg>ps=0;constJreal6xb=:=0);$n썫26MODIFYHJ3DLDFPRÎGx85n@P85.hDe neUUColor"Hfunctions@59i+ +v9oid"mo}'difyACګ(const*real4бr9;constJreal6xg>ps=0;constJreal6xb=:=0);Tn썷x853DLDFPRÎGHJMODIFY27n@P85.hDe neUUColor"Hfunctions@59i+ v9oid"Color@M{::mo}'difyF(const*real4бr9;constJreal6xg;[;constJreal6xb:") fr}'edffpart:+=LgrQ2;gr}'eenffpartCȦ+=Vg[>ݫ;blueffp}'art>J+=PlbT;if(r}'edffpart&>1)fc}'err3|"WARNING! In Color::kmodify():\n"8"red_part is greaterk than 1: ">r}'edffpart(ٶ2endlH߷"Setting red_part tok 1.\n\n"M,;r}'edffpartD=1;gelse*.6if5.(r}'edffpart&<0)fc}'err3#m"WARNING! In Color::l#1modify():\n"#m"red_part is less thl#1an 0: "#mr}'edffpart)`2endlH߷"Setting red_part tok 0.\n\n"M,;r}'edffpartD=0;gif(gr}'eenffpart/Ȥ>1)fc}'err4w0"WARNING! In Color::lKmodify():\n" "green_part is greatlKer than 1: "2gr}'eenffpartaȩendl"Setting green_part kto 1.\n\n"&;gr}'eenffpartMȧ=1;gelse*.6if5.(gr}'eenffpart/Ȥ<0)fc}'err3|"WARNING! In Color::kmodify():\n"8"green_part is less kthan 0: "TAgr}'eenffpart22endlH߷"Setting green_part kto 0.\n\n"&;gr}'eenffpartMȧ=0;gif(blueffp}'art*J>1)fc}'err4O"WARNING! In Color::lmodify():\n"JO"blue_part is greatelr than 1: " 2blueffp}'art\Jendl"Setting blue_part tko 1.\n\n");blueffp}'artHJ=1;gelse*.6if5.(blueffp}'art*J<0)fc}'err3"WARNING! In Color::kmodify():\n"\*"blue_part is less tkhan 0: "\6blueffp}'art-Y 2endlH߷"Setting blue_part tko 0.\n\n");blueffp}'artHJ=0;greturn4g; g86. SetTredpart.hDeclareUUColor"Hfunctions@58i+ -v9oid"setffr}'edffpartUD(const*real4бr9);Vn썷x873DLDFPRÎG,LSETXREDPJART27n@P87.hDe neUUColor"Hfunctions@59i+ +v9oid"setffr}'edffpartUD(const*real4бr9);#n썫28SETXREDPJART,L3DLDFPRÎGx87n@P87.hDe neUUColor"Hfunctions@59i+ v9oid"Color@M{::setffr}'edffpart3o(const*real4бr9) fif(r,>1)fc}'err3|׷."WARNING! In Color::kset_red_part():\n"͔R."r is greater than 1k: "~.r Xp.endl2"Setting red_part to 1.\n\n"ņ;r}'edffpartD=1;gelse*.6if5.(r,<0)fc}'err3p "WARNING! In Color::l set_red_part():\n"G "r is less than 0: "oǺ DZr  endl3P2"Setting red_part to 0.\n\n"ņ;r}'edffpartD=0;gelse+r}'edffpartQ=r,;return4g; @@ -314,7 +335,7 @@ fif(g>1)fc}'err4Y"WARNING! In Color::lYset_green_part():\n"9Y"g is greater than 1lY: "!Yg 2endlH߷"Setting green_part kto 1.\n\n"&;gr}'eenffpartMȧ=1;gelse*.6if5.(g<0)fc}'err3Ƿ"WARNING! In Color::kset_green_part():\n"L,"g is less than 0: "oLhg endl2"Setting green_part to 0.\n\n";gr}'eenffpartMȧ=0;gelse+gr}'eenffpart[=g;return4g; g90. SetTbluepart.hDeclareUUColor"Hfunctions@58i+ -v9oid"setffblueffp}'artZ1(const*real4бb9(z);%'n썫28SETXBLUEPJART'3DLDFPRÎGx91n@P91.hDe neUUColor"Hfunctions@59i+ +v9oid"setffblueffp}'artZ1(const*real4бb9(z);0Wn썷x913DLDFPRÎG'SETXBLUEPJART29n@P91.hDe neUUColor"Hfunctions@59i+ v9oid"Color@M{::setffblueffp}'art83(const*real4бb9(z) fif(b>1)fc}'err43~<"WARNING! In Color::l~set_blue_part():\n"Bk~<"b is greater than 1l~: "B~2"Setting blue_part to 0.\n\n";blueffp}'artHJ=0;gelse+blueffp}'artV"=b«;return4g; @@ -325,7 +346,7 @@ g94. ReturningTelemen9tsandinformation.95. IsTonfreestore.hDeclareUUColor"Hfunctions@58i+ inline)IbQoolC+isffonfffr}'eeffstore()UUconst freturn7onfffr}'eeffstoreo; -g96. GetWColorparts.[LDFT2002.09.24.]ZjTheseƉfunctionsalwaysƉreturnareal$b;"theargumentde}'cimalcan'tUUmakethemreturnanunsigned3cshortN./,n썷x973DLDFPRÎG*(GETXREDPJART29n@P97. GetTredpart.hDeclareUUColor"Hfunctions@58i+ +g96. GetWColorparts.[LDFT2002.09.24.]ZjTheseƉfunctionsalwaysƉreturnareal$b;"theargumentde}'cimalcan'tUUmakethemreturnanunsigned3cshortN.:\n썫30GETXREDPJART*(3DLDFPRÎGx97n@P97. GetTredpart.hDeclareUUColor"Hfunctions@58i+ inline)Ireal@=wgetffr}'edffparts(bQoolfde}'cimal>ޫ=falsev\)UUconst fif(de}'cimal"A`)return(truncA((r}'edffpart%f82558)8+:5 );else+returnOr}'edffparts !; g98. GetTgreenpart.hDeclareUUColor"Hfunctions@58i+ @@ -343,7 +364,7 @@ inline)IstringJgetffnamesV()UUconst freturn7nameP; g103. OutputTopQerator.hDeclareUUnon-membGerfunctionsforColor#103i -ostr}'eam/&8opQerator-ϕ7ϖ(ostr}'eam%&8o;constJColor?z=&GA[cK6); ThisXcoh;gif(name"" z)fc}'err8(r"ERROR! In Color::deprfine_colors_mp():\n"k2"name is empty. Not doing anything and returning.\n"K ush;return>h;goutffstr}'eamFl,""color "0ޔ,"nameH,"";","" "ޠ,"name,"" = ("&^,"getffr}'edffpart6d(),"", "(getffgr}'eenffparte5L()", "getffblueffp}'art:}ҫ()");\n"% ush;return4g; g107. InitializeColors.[LDFT2002.09.25.]\x=ThisE\functionpresuppGosestheexistenceofnamespaceColors ګ.hDeclareUUColor"Hfunctions@58i+ -static)Hv9oidBFinitializeffc}'olorsͫ();Dn썷x1083DLDFPRÎGINITIALIZEXCOLORS31n@P108.hDe neUUColor"Hfunctions@59i+ +static)Hv9oidBFinitializeffc}'olorsͫ(); On썫32INITIALIZEXCOLORS3DLDFPRÎGx108n@P108.hDe neUUColor"Hfunctions@59i+ v9oid"Color@M{::initializeffc}'olorsD() fusing2SnamespacekColorsܫ;if(:outffstr}'eam/@:isffop}'en ())fc}'err8-P"ERROR! In Color::inpPHitialize_colors():\nP "f2"out_stream is closed! Returning.\n" ush;return>h;goutffstr}'eamF"%%% Color definitiokns.\n\n"M,;#if o0$q=!t[LDFT2002.09.25.]TK%Thesevcolorsarealreadyde nedinMET*APOSTvandtheirde nitionsare(notUUlikelytochange.qHowever,iftheydo,Icancommentthesefunctioncallsbackin.o=r}'ed"s/:de neffc}'olorffmpDn();gr}'een+:de neffc}'olorffmpDn();blue&by:de neffc}'olorffmpDn();black+ ֱ:de neffc}'olorffmpDn();white,:de neffc}'olorffmpDn();b}'ackgroundEu:de neffc}'olorffmpDn();#endifyellow0k:de neffc}'olorffmpDn();cyan)w:de neffc}'olorffmpDn();magenta9Ґ:de neffc}'olorffmpDn();or}'ange2):de neffc}'olorffmpDn();violet,:de neffc}'olorffmpDn();purple097:de neffc}'olorffmpDn();yellowffgr}'eenJhl:de neffc}'olorffmpDn();gr}'eenffyellowJ:de neffc}'olorffmpDn();blueffvioletAj:de neffc}'olorffmpDn();gr}'ay':de neffc}'olorffmpDn();lightffgr}'ay>ܱ:de neffc}'olorffmpDn();violetffr}'ed=b:de neffc}'olorffmpDn();defaultffb}'ackgroundfF!:de neffc}'olorffmpDn();=[LDFT2002.09.25.]T7Currently*,UUthisfunctiondoGesnothingifI'musingallofthecolors.o=outffstr}'eamF"\n%%% End of Color kdefinitions.\n\n"ō;return4g; g109. Namespace:Colors.Here'(I'canputeitherhMa8jorColors(@112iorhAllColors(@0iintohDeclarenamespace9Colors^109i,?&and9commentouttheother,depGendingonwhatI9want.hThis9preventstoGomuchunneededcoGdefrombeingprocessed.[VhAllColors(*ޭ0iisverylong,xsoIneitherwanttocompileit,xwritetheextern#declarations,lfromittocolors.h,4norprintoutthecoGdewhenI,bruncweave,unlessI,breallywant,ltouseUUit.q[LDFT2002.09.25.]hDeclareUUnamespace 8BeginTLogJʄ`> -[LDFT2002.10.26.]Y;AddedUUhelpffc}'olor/ɫ.Ȅ` 8EndTLogA>`hMa8jorUUColors(n3112i +hMa8jorUUColors(n3112i=hAllUUColors0i= ThisXco;173;255;47 );=Orange.o=extern8constVHzColorumor}'ange("orange"*P;255;165;0;trueo@);=Violet.o=extern8constVHzColorumviolet("violet"*P;238;130;238;trueo@);extern8constVHzColorumpurple&("purple"*P;160;32 ;240;trueo@);extern8constVHzColorumblueffvioletqի("blue_violet"DA;138;43 ;226);=Green.o=extern8constVHzColorumyellowffgr}'eenU׫("yellow_green"J>;154;205;50 );=\Unbunt"UUColors(blacks,whites,andgrays).o=extern8constVHzColorumblackA("black"%FS;0;0;0;trueo@);extern8constVHzColorumwhite,("white"%FS;255;255;255;trueo@);extern8constVHzColorumgr}'ayj("gray" V;192;192;192);extern8constVHzColorumlightffgr}'ayG("light_gray"?D;211;211;211);=6Defaults.l[LDFT2002.09.27.]SdNoteEthatdefaultffc}'olor:i,Hhelpffc}'olor2Handb}'ackgroundffcolorPtarepGointers(andthatdefaultffb}'ackgroundYEūisaplainColorq.@ItcanbGeusedtoaccesstheoriginalbackground(colorUU(currentlywhite),iftheuserpGointstheb}'ackgroundffcolorPatsomeotherColor.o=extern8constVHzColorumdefaultffb}'ackground3("default_background"i,;255;255;255;trueo@);extern8constVHzColorumzndefaultffc}'olor0a=& 6black! ;extern8constVHzColorumznb}'ackgroundffcolorޫ=& 6defaultffb}'ackground\U;extern8constVHzColorumznhelpffc}'olorn=& -6gr}'een"sC;=LDFUU2002.10.26.qAdded.o==7[LDFT2002.09.25.]T!!{uTOXDO:Xdefaultffb}'ackgroundX=isXaconvenience,Y^inXcaseIchange\background"(inS8theMET*APOSTS7coGde.qCheckMETAPOSTS7doGcumentation!!qIbelieveS8ithassomethingsimilar.(=!_Zn썷x1123DLDFPRÎGINTERNALX(WITHINITIALIZAJTION)33n@P +6gr}'een"sC;=LDFUU2002.10.26.qAdded.o==7[LDFT2002.09.25.]T!!{uTOXDO:Xdefaultffb}'ackgroundX=isXaconvenience,Y^inXcaseIchange\background"(inS8theMET*APOSTS7coGde.qCheckMETAPOSTS7doGcumentation!!qIbelieveS8ithassomethingsimilar.(="jn썫34INTERNALX(WITHINITIALIZAJTION)3DLDFPRÎGx112n@P g ThisXco;extern8ColorW˷\helpffc}'olor}@;=LDFUU2002.10.26.qAdded.o=extern8ColorW˷\b}'ackgroundffcolor$; g ThisXcodeclaration@110iabGove. -@fiUUcolall.web(Commentedout).115. GlobalTconstan9ts.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.10.26.]Y;AddedUUhelpffc}'olorffvectorL(.Ȅ` 8EndTLogA>`hGlobalUUconstants@19i+ -namespaceC{ColorsgѪfextern8constVHzv9ectoru·hconst*Color=ϕBϖiUUdefaultffc}'olorffvectorXo(1;defaultffc}'olor9&);"xn썫34GLOBALXCONSTJANTS %3DLDFPRÎGx115n@Pextern8constVHzv9ectoru·hconst*Color=ϕBϖiUUhelpffc}'olorffvectorL((1;helpffc}'olor-e); =LDFUU2002.10.26.qAdded.o=extern8constVHzv9ectoru·hconst*Color=ϕBϖiUUb}'ackgroundffcolorffvectork8 (1;b}'ackgroundffcolorK); +@fiUUcolall.web(Commentedout).115. GlobalTconstan9ts.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.26.]Y;AddedUUhelpffc}'olorffvectorL(.Ȅ`GhGlobalUUconstants@19i+ +namespaceC{ColorsgѪfextern8constVHzv9ectoru·hconst*Color=ϕBϖiUUdefaultffc}'olorffvectorXo(1;defaultffc}'olor9&);#n썷x1153DLDFPRÎG %GLOBALXCONSTJANTS35n@Pextern8constVHzv9ectoru·hconst*Color=ϕBϖiUUhelpffc}'olorffvectorL((1;helpffc}'olor-e); =LDFUU2002.10.26.qAdded.o=extern8constVHzv9ectoru·hconst*Color=ϕBϖiUUb}'ackgroundffcolorffvectork8 (1;b}'ackgroundffcolorK); g116.hextern%~globalUUconstantdeclarations@116i namespaceC{ColorsgѪfextern8constVHzv9ectoru·hconst*Color=ϕBϖiUUdefaultffc}'olorffvectorXo;extern8constVHzv9ectoru·hconst*Color=ϕBϖiUUhelpffc}'olorffvectorL(;=LDFUU2002.10.26.qAdded.o=extern8constVHzv9ectoru·hconst*Color=ϕBϖiUUb}'ackgroundffcolorffvectork8 ; g ThisXcoH56i hextern%~namespace_kColors'declaration@110i hDeclareUUnon-membGerfunctionsforColor#103i hextern%~globalUUconstantdeclarations@116i120. T -ransformations(transform.web).B9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i+121. IncludeT les.hIncludeUU les@11i+#include'~"loader.h"#include'~"pspglb.h"#include'~"io.h"#include'~"colors.h"122. T +ransformations(transform.web).&9Ȅ`+U 8Log)j`+U +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`GhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: transfor.web,vk 1.3 2003/12/10 16:5Ơ2:21 lfinsto1 Exp $">L̫;121. IncludeT les.hIncludeUU les@11i+#include'~"loader.h"#include'~"pspglb.h"#include'~"io.h"#include'~"colors.h"122. T ransformclassde nition.TheT ransform:classhasa4o4transformationmatrixasitsonlydataImembGerandanumbGerofmembGerfunctions.mP9oints$a,KPictures-q9,KandF;o}'cuses)containT ransforms?asdataUUmembGers. !!qRemembGerUUtoadditemstoopQerator. -=6(()ififIaddthemtotheclassde nitionhere.B9Ȅ`> 8BeginTLogJʄ`> +=6(()ififIaddthemtotheclassde nitionhere.&9Ȅ`+U 8Log)j`+U [LDFT2003.07.04.]YRemovedfriend%OdeclarationforF oQcus A.I'veaddedsetffelement6x̫()andgetffelement6(),whichUUareusedintheF oQcus#functions,sothelatterneednolongerbGeafriend$ofT -ransform7ҫ.Ȅ` 8EndTLogA>` -format3c(T;r}'ansformj|inthDe neUUclass5T +ransform7ҫ.Ȅ`G +format3c(T;r}'ansformj|inthDe neUUclass5T ransformV'122i class$RT ransform\$ffriend5fclassPG P9ointkU;Matrix;({matrixYh;=ENWhenI'vegotthingsworking,Icantrytooptimizeuseofstoragebynot(storingdthepartsofthematrixthatId don'tneed.Thisisalittlecomplicated,gbGecausetherowor(columnUUwhichisn'tneededdi ersbGetweentheaneandpGerspectiveUUtransformations.o= public)=֫:hDeclareUUT ransform;'functions@124i -g; ZThisXcos~(); ZSee?alsosections126,128,130,132,134,136,138,140,142,145,147,150,152,155,157,158,160,166,167,168,171,173,176, -178,X181,and187.$ n썫36DEF8AÎULJTXCONSTRUCTORQ3DLDFPRGx124n@PThisXcos~(); See?alsosections126,128,130,132,134,136,138,140,142,145,147,150,152,155,157,158,160,166,167,168,171,173,176, +178,X181,and187.ThisXcos~(real.r}B);127.hDe neUUT -ransform;'functions@125i+ +ransform>s~(real.r}B);127.hDe neUUT +ransform;'functions@125i+ T ransform?s::T -ransform5s(real.r}B) -ffor%舫(in9ti=0;i 9 <4;i++)for/艫(in9tjӫ=0;j w<4;j -0++)matrix#?[iq][jī]=r,; -g128. Constructor0&with16realargumen9ts.[LDFT2002.09.06.][Addedthisconstructor.Thiscon-structorUUmakesitpGossibletospecifyalloftheelementsofmatrix!.hDeclareUUT -ransform;'functions@124i+ +ransform5s(real.r}B) +ffor%舫(in9ti=0;i 9 <4;i++)for/艫(in9tjӫ=0;j w<4;j +0++)matrix#?[iq][jī]=r,; +g128. Constructor0&with16realargumen9ts.[LDFT2002.09.06.][Addedthisconstructor.Thiscon-structorUUmakesitpGossibletospecifyalloftheelementsofmatrix!.hDeclareUUT +ransform;'functions@124i+ T -ransform>s~(real͒r0ff0*ڱ;realx:r0ff1,t;realx:r0ff2;realx:r0ff3;realx:r1ff0;realx:r1ff1;realx:r1ff2;realx:r1ff3;realr2ff01K;real]r2ff1,Z;real]r2ff2;real]r2ff3;real]r3ff0;real]r3ff1;real]r3ff2;real]r3ff3);%`n썷x1293DLDFPRÎG!CONSTRUCTORXWITH16REALARÎGUMENTS37n@P129.hDe neUUT +ransform>s~(real͒r0ff0*ڱ;realx:r0ff1,t;realx:r0ff2;realx:r0ff3;realx:r1ff0;realx:r1ff1;realx:r1ff2;realx:r1ff3;realr2ff01K;real]r2ff1,Z;real]r2ff2;real]r2ff3;real]r3ff0;real]r3ff1;real]r3ff2;real]r3ff3);&n썫38CONSTRÎUCTORXWITH16REALARGUMENTS!3DLDFPRGx129n@P129.hDe neUUT ransform;'functions@125i+ T ransform?s::T @@ -449,15 +473,15 @@ 0++)matrix#?[iq][jī]=tc:matrix?[i][jī];return7漱t;.; g132. ResetTtoiden9tityTmatrix.hDeclareUUT ransform;'functions@124i+ -v9oid"r}'eset8Đ();&àn썫38RESETXTOIDENTITYMAJTRIX,53DLDFPRÎGx133n@P133.hDe neUUT +v9oid"r}'eset8Đ();'&n썷x1333DLDFPRÎG,5RESETXTOIDENTITYMAJTRIX39n@P133.hDe neUUT ransform;'functions@125i+ v9oid"T ransformXqZ::r}'esetƻ() ffor%舫(in9ti=0;i 9 <4;i++)=Rows.o=for/艫(in9tjӫ=0;j w<4;j 0++)=Columns.o=f(matrixF?[iq][jī]=(i9 jwܫ)?1 1:0;g -g134. SettingTv\ralues.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.04.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUT +g134. SettingTv\ralues.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.04.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUT ransform;'functions@124i+ v9oid"setffelementU(const*unsignedNashortl,Sr}'ow}8;constJunsignedP Xshortmc}'ol{#ı;real]ֱr');135.hDe neUUT ransform;'functions@125i+ @@ -467,7 +491,7 @@ 1:r,;return4g; g136. Clean.cle}'an"~()UUchangeselementsinmatrix$Ewhoseabsolutevqaluesare 8BeginTLogJʄ`> -[LDFT2003.07.04.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUT +g144. Querying.145. GetTelemen9t.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.04.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUT ransform;'functions@124i+ real /getffelementSݫ(const*unsignedNashortl,Sr}'ow}8;constJunsignedP Xshortmc}'ol{#ī)UUconst*;146.hDe neUUT ransform;'functions@125i+ @@ -508,7 +532,7 @@ freturn7matrixV&W[r}'ow k][c}'ol Lɫ]; g147. Sho9w.hDeclareUUT ransform;'functions@124i+ -v9oid"show9ث(string!%Mtext5D1="" z)UUconst*;)6n썷x1483DLDFPRÎGMGSHOW41n@P148.hDe neUUT +v9oid"show9ث(string!%Mtext5D1="" z)UUconst*;*on썫42SHOÎWMG3DLDFPRGx148n@P148.hDe neUUT ransform;'functions@125i+ v9oid"T ransformXqZ::show(string!%Mtext2})UUconst @@ -517,12 +541,12 @@ g149. Ane2ctransformations.[LDFT2002.10.16.]YTheǥfunctionsfortheanetransformationsallreturnaTT ransform;ѫrepresentingTthetransformation,TnotTthis@a.qThismakesitpGossibletochainexpressionsusingopQerator+=8](),UUe.g.,(P9ointFpt0VXܫ;(P9ointFpt1VXܫ(1;2;3);(P9ointFpt2VXܫ(3;4;5);(T ransform_ֱtceH;(t+v:r}'otateo>(90 -;90 ;90);(pt0:0W=Ipt1[=k}pt2}k=;t;pt0i;,UUpt1,UUandpt2areallrotated90^O!cmsy79aroundthex,y*,andz-axes.150. Scale.9Ȅ`> 8BeginTLogJʄ`> +;90 ;90);(pt0:0W=Ipt1[=k}pt2}k=;t;pt0i;,UUpt1,UUandpt2areallrotated90^O!cmsy79aroundthex,y*,andz-axes.150. Scale.9Ȅ`+U 8Log)j`+U [LDFT2002.10.15.]XBUGFIX:-Iftheabsolutevqalueofanargumentis`hDeclareUUT +[LDFT2003.03.25.]Y;BUGUUFIX:Fixedconditionalthattestswhetheralltheargumentsare1.Ȅ`GhDeclareUUT ransform;'functions@124i+ T -ransformAsc}'aleW}ū(real.xjJ;real]ֱy g=1;real]ֱz < =1);*٠n썫42SCALEKrE3DLDFPRÎGx151n@P151.hDe neUUT +ransformAsc}'aleW}ū(real.xjJ;real]ֱy g=1;real]ֱz < =1);+n썷x1513DLDFPRÎGKrESCALE43n@P151.hDe neUUT ransform;'functions@125i+ T ransformAT @@ -537,7 +561,7 @@ g152. Shear.[LDFT2002.10.15.]Z6ReplacedUUthedummyde nitionofthisfunctionwithapropGerone.hDeclareUUT ransform;'functions@124i+ T -ransformAshe}'arY (real.xy!;real]xz%=0;real]yx&Z=0;real]yz%6=0;real]zx%Y=0;real]zy%|=0);+ n썷x1533DLDFPRÎGJF-SHEAR43n@P153.hDe neUUT +ransformAshe}'arY (real.xy!;real]xz%=0;real]yx&Z=0;real]yz%6=0;real]zx%Y=0;real]zy%|=0);,n썫44SHEARJF-3DLDFPRÎGx153n@P153.hDe neUUT ransform;'functions@125i+ T ransformAT @@ -565,7 +589,7 @@ 0)return(溱t,,;tt:matrix?[3][0]=(fabs2ҫ(x)>epsګ)?x EL:0;tt:matrix?[3][1]=(fabs2ҫ(yB)>epsګ)?y (:0;tt:matrix?[3][2]=(fabs2ҫ(z)>epsګ)?z N:0;tt:cle}'anA();(this뷫)=UOt;cle}'an+A();return7漱t;.; -g,Πn썫44POINTXARÎGUMENT 3DLDFPRGx157n@P157. P9ointargument.[LDFT2002.04.24.]\2Addedthisfunction. qItmustbGede nedinpoints.web, bGecauseUUP9oint"DisUUanincompletetypehere.hDeclareUUT +g-철n썷x1573DLDFPRÎG POINTXARGUMENT45n@P157. P9ointargument.[LDFT2002.04.24.]\2Addedthisfunction. qItmustbGede nedinpoints.web, bGecauseUUP9oint"DisUUanincompletetypehere.hDeclareUUT ransform;'functions@124i+ T ransformAshiftUP(const*P9oint=?&D]pI]);158. Shiftwithm9ultiplication.[LDFT2002.08.22.]ZAdded{thisfunction.HIttakesrealUargumentsandmultipliesUUtheappropriateelementsofmatrix$Ebythem.hDeclareUUT @@ -580,7 +604,7 @@ g160. Rotationyaroundthemainaxes.r}'otate%:()willpGerformrotationaboutthex,Dyandz-axesinthat"orderifcalledwithmultiple,non-zeroarguments.QaRotationonlyabGouttheyand/orz-axisrequiresoneorUUtwodummy0argumentssothatr}'otateē()\knows"abGoutwhichaxis(oraxes)torotate.hDeclareUUT ransform;'functions@124i+ T -ransformAr}'otate\8(real.xjJ;real]ֱy g=0;real]ֱz < =0);-Rn썷x1613DLDFPRÎG7wROTJATIONXARÎOUNDTHEMAINAXES45n@P161.hDe neUUT +ransformAr}'otate\8(real.xjJ;real]ֱy g=0;real]ֱz < =0);.6n썫46RÎOTJATIONXAROUNDTHEMAINAXES7w3DLDFPRGx161n@P161.hDe neUUT ransform;'functions@125i+ T ransformAT @@ -598,7 +622,7 @@ if(y 6=0)f=!!qReversedUUdirectionofrotationbGecauseIdidn'tlikethewayitwas.o=y =+I3_gPI>eɱ=180:0!;ssin(/=sinm(yB);c}'cos)|=c}'osf(yB);for%舫(i9 =0;i 9 <4;i++)ftemp1 8BeginTLogJʄ`> +return-tffallA.d;qǷg=EndUUofr}'otateē().o=165. RotationTaroundanarbitraryaxis.166. P9ointTarguments.De nedUUinpoints.webbGecauseP9oint"Disanincompletetypehere.9Ȅ`+U 8Log)j`+U [LDFT2002.4.7.]O?AddedUUdefaultvqalueforanglej180. -[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ` 8EndTLogA>`hDeclareUUT +[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ`GhDeclareUUT ransform;'functions@124i+ T -ransformAr}'otate\8(P9ointp0+];P9oint Ep1,;constJreal6xangleQ=180);/zn썷x1673DLDFPRÎG͘P -ATHXARGUMENT47n@P167. P9athargument.[LDFT2002.05.03.][De nedlinpaths.webbGecauseP9ath!iisanincompletetype here.9Ȅ`> 8BeginTLogJʄ`> +ransformAr}'otate\8(P9ointp0+];P9oint Ep1,;constJreal6xangleQ=180);0`n썫48P +ATHXARÎGUMENT͘3DLDFPRGx167n@P167. P9athargument.[LDFT2002.05.03.][De nedlinpaths.webbGecauseP9ath!iisanincompletetype here.9Ȅ`+U 8Log)j`+U [LDFT2002.05.03.]Y;AddedUUthisfunction. -[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ` 8EndTLogA>`hDeclareUUT +[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ`GhDeclareUUT ransform;'functions@124i+ T ransformAr}'otate\8(const*P9ath:[&AypFy;constJreal6xangleQ=180);168. Alignmen9t4withanaxis.De nedinpoints.web,bGecauseitusesP9oints$,whichhaven'tbGeende nedUUyet.hDeclareUUT ransform;'functions@124i+ T -ransformAalignffwithffaxis{K(P9ointp0+];P9oint Ep1,;c9haraxis0ѫ='z' w);=DefaultUUisthez-axis.o=169. MatrixTm9ultiplication.170. WithTassignmen9t.171. realfargumen9t.[LDFT2002.11.19.][ThisfunctionmultiplieseachelementofMatrix+5bytherealargumentır ɜandreturnsrIث.ThismakesitpGossibletochaininvoGcationsofthisfunction.Notcurrentlyusedanywhere,UUbutitmayturnouttobGeusefulforsomething.U9Ȅ`> 8BeginTLogJʄ`> +ransformAalignffwithffaxis{K(P9ointp0+];P9oint Ep1,;c9haraxis0ѫ='z' w);=DefaultUUisthez-axis.o=169. MatrixTm9ultiplication.170. WithTassignmen9t.171. realfargumen9t.[LDFT2002.11.19.][ThisfunctionmultiplieseachelementofMatrix+5bytherealargumentır ɜandreturnsrIث.ThismakesitpGossibletochaininvoGcationsofthisfunction.Notcurrentlyusedanywhere,UUbutitmayturnouttobGeusefulforsomething.9Ȅ`+U 8Log)j`+U [LDFT2002.08.22.]Y;AddedUUthisfunction. -[LDFT2002.11.19.]Y;ChangedUUreturnvqaluefromUVthisatori.Ȅ` 8EndTLogA>`hDeclareUUT +[LDFT2002.11.19.]Y;ChangedUUreturnvqaluefromUVthisatori.Ȅ`GhDeclareUUT ransform;'functions@124i+ real /opQeratorLI=Y(real.r}B);172.hDe neUUT ransform;'functions@125i+ @@ -633,15 +657,15 @@ ffor%舫(in9ti=0;i 9 <4;i++)for/艫(in9tjӫ=0;j w<4;j 0++)matrix#?[iq][jī]=UOrc;cle}'an+A();return7漱r<Ы; g173. T -ransformTargumen9t.U9Ȅ`> 8BeginTLogJʄ`> +ransformTargumen9t.9Ȅ`+U 8Log)j`+U [LDFT2002.11.06.]Y"Ifoñt {isotheidentityoT ransform7@,v^itoisreturnedrightaway*.Ifothis=is,v^itissettot -{usingopQerator+=3]().TBUGFIX:Nowt ^isalwaysreturned,insteadof this.TThismakesitpGossibletochainexpressionsUUusingthisfunction.Ȅ` 8EndTLogA>`hDeclareUUT +{usingopQerator+=3]().TBUGFIX:Nowt ^isalwaysreturned,insteadof this.TThismakesitpGossibletochainexpressionsUUusingthisfunction.Ȅ`GhDeclareUUT ransform;'functions@124i+ T ransformAopQeratorm_=z&(const*T -ransformUt&]taW);0%n썫48TRANSF9ORMXARÎGUMENT3DLDFPRGx174n@P174.hDe neUUT +ransformUt&]taW);1ߠn썷x1743DLDFPRÎGTRANSF9ORMXARGUMENT49n@P174.hDe neUUT ransform;'functions@125i+ T ransformAT @@ -665,7 +689,7 @@ ransform;'functions@124i+ T ransformAopQeratorm_r_(const*T -ransformUttY)UUconst*;1n썷x1793DLDFPRÎGTRANSF9ORMXARGUMENT49n@P179.hDe neUUT +ransformUttY)UUconst*;2);n썫50TRANSF9ORMXARÎGUMENT3DLDFPRGx179n@P179.hDe neUUT ransform;'functions@125i+ T ransformAT @@ -674,12 +698,12 @@ fT ransformKԱaS=thisϫ;aJ=+t/:;aI2:cle}'anA();return7漱a=/; g180. MatrixTin9version.181. constKwv9ersion(noassignment). ItswouldbGeeasytogeneratetheinversesofthetransformations thatIwcallexplicitlyusingr}'otateh(),"shift@2(),"etc.,asIgoalong.^However,"itisnotpGossibletodothisfortheӳonesproGducedusingopQerator/jh4ji()andopQerator/jh=<1().So,Ksinceamatrixinversionӳroutineisneededanyway*,UUIdon'tbGothertogeneratetheinversesUUasIgoalong. -TO\DO:\Getformatforreferences!inverse$()usestheGau-Jordanalgorithmwithcolumnpivotsearch.I'veUUtakenthealgorithmfromStoGer,Josef.qNumerischeMathematik1[^1 ,ΫandadaptedittoC++ G .U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.12.01.]Y!!6Changedhijfromreal6toin9t'ثbGecauseofawarning,whenItriedtocompileunderGNU/Linux.qIUUthinkhi_ޫcanbGeanin9t,buttesttobesure!Ȅ` 8EndTLogA>`hDeclareUUT +TO\DO:\Getformatforreferences!inverse$()usestheGau-Jordanalgorithmwithcolumnpivotsearch.I'veUUtakenthealgorithmfromStoGer,Josef.qNumerischeMathematik1[^1 ,ΫandadaptedittoC++ G .9Ȅ`+U 8Log)j`+U +[LDFT2002.12.01.]Y!!6Changedhijfromreal6toin9t'ثbGecauseofawarning,whenItriedtocompileunderGNU/Linux.qIUUthinkhi_ޫcanbGeanin9t,buttesttobesure!Ȅ`GhDeclareUUT ransform;'functions@124i+ T -ransformAinverseaZ()UUconst*;ff= ^1 -StoGer,NJosef.oNumerischeLMathematik1.Achte,NneuMbGearbeiteteunderweiterteAu age.oSpringer-V*erlag.BerlinUU1999.qISBN3-540-66154-9,page205.2+n썫50CONSTXVERSION(NOASSIGNMENT)33DLDFPRÎGx182n@P182.hDe neUUT +ransformAinverseaZ()UUconst*;>ff= ^1 +StoGer,NJosef.oNumerischeLMathematik1.Achte,NneuMbGearbeiteteunderweiterteAu age.oSpringer-V*erlag.BerlinUU1999.qISBN3-540-66154-9,page205.36n썷x1823DLDFPRÎG3CONSTXVERSION(NOASSIGNMENT)51n@P182.hDe neUUT ransform;'functions@125i+ T ransformAT @@ -688,7 +712,7 @@ 0++)f2t5w:matrix?[iq][jī]=matrix![i][jī];2if=(DEBUGY)f<c}'outR Umatrix![iq][jī]" " w;2g(g(if3(DEBUGY)f2c}'outH T"\n"Mt;(ggif)(DEBUGY)f(c}'out> S"\n"Mt;(t+v:show("t"F_);(c}'out> S"Enter to ckontinue.\n\n"T5 ush;(getcharI&();gin9t/p4[n];for/艫(in9tjӫ=0;j w<nDz;j 0++)p [jī]=jwܫ;for/艫(jwܫ=0;j w<nDz;j -0++)UUf34n썷x1833DLDFPRÎG3CONSTXVERSION(NOASSIGNMENT)51n@P183. PivotUUsearch.hDe neUUT +0++)UUf4?n썫52CONSTXVERSION(NOASSIGNMENT)33DLDFPRÎGx183n@P183. PivotUUsearch.hDe neUUT ransform;'functions@125i+ max k=fabs(tr:matrix?[jī][j]); r}'owӄ=jwܫ; @@ -710,7 +734,7 @@ t s:matrix?[jī][j]=hr d; for臫(kLn=0;k Lk<nDz;k S++s)if(kLn6=jwܫ)ffor/艫(i9 =0;i 9 <nDz;i++)(if3(i9 6=jwܫ)tr:matrix?[iq][kV]=lt:matrix[i][jī]8tR:matrix?[j][kV];t!u:matrix?[jī][kV]=UOmhr%;g g=outerUUfor胷= -if(DEBUGY)c}'out O"Finished Transformaktion.\n"D ush;4 8BeginTLogJʄ`> -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i+197. IncludeT les.hIncludeUU les@11i+#include'~"loader.h"#include'~"pspglb.h"#include'~"io.h"#include'~"colors.h"#include'~"transfor.h"198. ShapQeTclassde nition.199. class&`MP9ointEOisUUknownwhenshapes.ciscompiled,bGecauseit'sdeclared(butnotde ned)in6Wn썫54SHAPEXCLASSDEFINITION[3DLDFPRÎGx199n@P -transfor.web,UUwhichisproGcessedbycmpl1 rst. -??^BApparently*,&|bGoththereturnvqalueandtheargumenttypGesofpurevirtualfunctionsmustbGethesame,otherwiseUUthederivedclasseswillcausecompilererrors.qCheckwherethisisstated.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.05.16.]Y;AddedUUdeclarationsofgetffminimumffzF-()andgetffme}'anffz4 _().Ȅ` 8EndTLogA>` -format3c(Shap}'eVinthDe neUUShapQe%class@199i +ransformV'122i +hDeclarationsUUfortheheader le@18i196. ShapQe(shapes.web).M0[LDFT2002.10.20.]jShape̫isUUanabstractclass.qThismeansthatnoob8jectsoftypGeShapQe&A9maybGedeclared.qShapQe(.isusedasabaseclassforall\drawable"classes,e.g.,P9oint,!,P9ath#=,andDoQdecahedronLEL.Allob8jectsthatareputontoaPicture,mustbGeeitherShapQesorUULabQels$.9Ȅ`+U 8Log)j`+U +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`GhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: shapes.web,v 1k.2 2003/12/10 16:44:Ơ36 lfinsto1 Exp $"3ҫ;197. IncludeT les.hIncludeUU les@11i+#include'~"loader.h"#include'~"pspglb.h"#include'~"io.h"#include'~"colors.h"#include'~"transfor.h"198. ShapQeTclassde nition.199. class&`MP9ointEOisUUknownwhenshapes.ciscompiled,bGecauseit'sdeclared(butnotde ned)in +transfor.web,UUwhichisproGcessedbycmpl1 rst. +??^BApparently*,&|bGoththereturnvqalueandtheargumenttypGesofpurevirtualfunctionsmustbGethesame,otherwiseUUthederivedclasseswillcausecompilererrors.qCheckwherethisisstated.9Ȅ`+U 8Log)j`+U +[LDFT2003.05.16.]Y;AddedUUdeclarationsofgetffminimumffzF-()andgetffme}'anffz4 _().Ȅ`G +format3c(Shap}'eVinthDe neUUShapQe%class@199i class$RShapQeG!fprotected0o:static$HconstBs{signedeqshortDRAWDOTg;=const#*vqaluesUUusedforoutput.o= static)HconstGs|signedjrshortDRAW4q; static)HconstGs|signedjrshortFILL4q; @@ -765,7 +791,7 @@ static)HconstGs|signedjrshortUNDRAWDOTtb; static)HconstGs|signedjrshortUNDRAWk; static)HconstGs|signedjrshortUNFILLk; -static)HconstGs|signedjrshortUNFILLDRAW_; SeeXalsosection200.ThisXco 8BeginTLogJʄ`> -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i+206. IncludeT les.hIncludeUU les@11i+#include'~"loader.h"#include'~"pspglb.h"#include'~"io.h"#include'~"colors.h"#include'~"transfor.h"#include'~"shapes.h"207. LabQel.[LDFT2002.10.20.]Z Labelso֫are+theonlyob8jects,!otherthanShapes'.t,!thatcanbGeputontoPictures*%I.[They/arecreatedbythefunctionslab}'elǫ()anddotlab}'el%"(), jwhicharecurrentlyde nedforP9ointsandUUP9aths o.208. LabQelxclassde nition.AyLabQel#3containsyapGointertoaP9ointc, whichisitsloGcation, abQool>Gtoindicate.gwhetherthelabGelshouldhave.gadotornot,dastring&,ƫforthetextofthelabelandastring&,ƫforpGositioningthetextwithrespecttothelabel.xlpt mustbeapointer,becauseP9oint" +hDe neUUstatic".ShapQeDߐmembGerUUvqariables@201i:n썫58PUTTINGXSHAPETOGETHERVW3DLDFPRÎGx204n@P204. ThisUUiswhat'swrittentoshapes.h.hshapes.h5204i +hDe neUUShapQe%class@199i205. PictureTandLabQel(pictures.web).N99Ȅ`+U 8Log)j`+U +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`GhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: pictures.web,vk 1.2 2003/12/10 16:1Ơ7:06 lfinsto1 Exp $">L̫;206. IncludeT les.hIncludeUU les@11i+#include'~"loader.h"#include'~"pspglb.h"#include'~"io.h"#include'~"colors.h"#include'~"transfor.h"#include'~"shapes.h"207. LabQel.[LDFT2002.10.20.]Z Labelso֫are+theonlyob8jects,!otherthanShapes'.t,!thatcanbGeputontoPictures*%I.[They/arecreatedbythefunctionslab}'elǫ()anddotlab}'el%"(), jwhicharecurrentlyde nedforP9ointsandUUP9aths o.208. LabQelxclassde nition.AyLabQel#3containsyapGointertoaP9ointc, whichisitsloGcation, abQool>Gtoindicate.gwhetherthelabGelshouldhave.gadotornot,dastring&,ƫforthetextofthelabelandastring&,ƫforpGositioningthetextwithrespecttothelabel.xlpt mustbeapointer,becauseP9oint" isanincompletetypehere.p}'osition.ޫcanbGeanyofthestringsusedinMET*AFONT,i.e.,GV"top" ,GV"bot",GV"lft",GV"rt"Ͳ,GV"llft"$M,"ulft" V,UU"lrt",UUor"urt". [LDFT2002.10.09.]Y;LabQels}(/areUUcurrentlyonlyevercreatedonthefreestore. format3c(L}'abelSainthDe neUUclasses@208i class$RLabQelDw ffriend5fclassPG P9ointkU;friend5fclassPG Pictureu;P9oint27ptA=;bQool-hdot 8BeginTLogJʄ`> -[LDFT2002.10.20.]Y;AddedUUthissection.qDO_LABELS7iwasformerlyaglobalvqariablede nedinpspglb.web.Ȅ` 8EndTLogA>`hInitializeUUstatic".LabQelB4dataUUmembGers@209i -bQool#gLabQel@Ϋ::DO_LABELS3i=true; ThisXco 8BeginTLogJʄ`> -[LDFT2002.10.23.]Y;AddedUUargumentspr}'ojmandfactorY3.Ȅ` 8EndTLogA>`hDeclareUULabQel" functions@210i +g; SeeXalsosection216.ThisXcouC&F 8BeginTLogJʄ`> -[LDFT2003.05.11.]Y;AddedUUAXON۱.Ȅ` 8EndTLogA>`hDeclareUUnamespaceProjectionsAa211i -namespaceC{Projections0fextern8constVHzunsignedshortJ+PERSPל=0;extern8constVHzunsignedshortJ+PARALLEL_X_Y旇=1;extern8constVHzunsignedshortJ+PARALLEL_X_Z旇=2;extern8constVHzunsignedshortJ+PARALLEL_Z_Y旇=3;extern8constVHzunsignedshortJ+AXON=4;extern8constVHzunsignedshortJ+ISOW=5; -g; ThisXco 8BeginTLogJʄ`> -[LDFT2003.05.16.]Y;AddedUUthisnamespace.Ȅ` 8EndTLogA>`hDeclareUUnamespaceSorting,213i +g; ThisXcoclassde nition.[LDFT2002.08.06.]ZDNote|cthatLabQel#:)hasapublic&6staticEdatamembGer namedYDO_LABELS3,whichYisusedforgloballyenablingorsuppressingputtingLabQels(wQontoPictures1(seeabGove). @@ -850,17 +878,16 @@ ransformKtr}'ansformw|;v9ector3JhShapQe"Ab'AciUUshap}'es Cޫ;v9ector3JhLabQel$iUUlab}'elsE;bQool-hdofflab}'elsSK; public)=֫:hDeclareUUPicture,Ffunctions@218i g;217. Constructors.218. DefaultTconstructor.(NoUUarguments).hDeclareUUPicture,Ffunctions@218i -Picture/(); SeeXalsosections220,222,224,225,227,229,230,231,235,238,240,241,243,244,246,248,250,253,254,255,and256.ThisXcon썫62DEF8AÎULJTXCONSTRUCTORQ3DLDFPRGx219n@P219.hDe neUUPicture,Ffunctions@219i Picture0::Picture&() :qdofflab}'els*(trueĘ)UUfg Seealsosections226,228,232,236,239,242,245,247,249,251,373,396,543,544,545,546,548,549,550,551,552,553, andX554.ThisXcoVExXimacrofor\POR*TING".!!PORTING.[LDFT2002.12.05.]R)Movedtopoints.webbGecausePicture)0::cle}'ar(ݫ()andLabQel::getffc}'opy%ø()areunde nedinthis le.1Thisdidn'tcauseaUUproblemwiththeDECcompiler,butitdoGeswiththeGNUCompiler.hDeclareUUPicture,Ffunctions@218i+ v9oid"opQeratorN=V[(const*PictureG&N"pS");223. AddingTelemen9ts.224. Add/Picture.ThisfunctionmustbGede nedinpoints.web,becauseitusesP9oint>_,whichisanincompletelyUUde nedclass5here. -[LDFT2002.04.17.]Y73ItMseemstobGemostusefultohaveMtheargumentPicture,p50benon-constM, inordertobGeabletoshiftitandaddittothismultipletimes.PF*orthistowork,_itmustbGepossibletosetp:tr}'ansformtoBtheidentityBmatrixafterwards.:)ItispGossibletodothisexplicitlybycallingr}'esetfftransformG$()onthePicture)hfollowingz[thecalltoopQerator/+=>L(),butit'smoreconvenienttohaveitdoneautomatically*.IfitturnsUUouttobGeuseful,Icanaddaconst!versionofthisfunction.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.04.17.]Y;AddedUUthisdeclaration.Ȅ` 8EndTLogA>`hDeclareUUPicture,Ffunctions@218i+ +[LDFT2002.04.17.]Y73ItMseemstobGemostusefultohaveMtheargumentPicture,p50benon-constM, inordertobGeabletoshiftitandaddittothismultipletimes.PF*orthistowork,_itmustbGepossibletosetp:tr}'ansformtoBtheidentityBmatrixafterwards.:)ItispGossibletodothisexplicitlybycallingr}'esetfftransformG$()onthePicture)hfollowingz[thecalltoopQerator/+=>L(),butit'smoreconvenienttohaveitdoneautomatically*.IfitturnsUUouttobGeuseful,Icanaddaconst!versionofthisfunction.9Ȅ`+U 8Log)j`+U +[LDFT2002.04.17.]Y;AddedUUthisdeclaration.Ȅ`GhDeclareUUPicture,Ffunctions@218i+ v9oid"opQeratorN+=^"(const*PictureG&N"pS");225. AddTShapQe.hDeclareUUPicture,Ffunctions@218i+ -v9oid"opQeratorN+=^"(ShapQe"Ab'Acs+c);>Bn썫62ADDXSHAPE*3DLDFPRÎGx226n@P226.hDe neUUPicture,Ffunctions@219i+ +v9oid"opQeratorN+=^"(ShapQe"Ab'Acs+c);?n썷x2263DLDFPRÎG*ADDXSHAPE63n@P226.hDe neUUPicture,Ffunctions@219i+ v9oid"PictureI::P((opQerator{ݫ+=M(ShapQe"Ab'Acs+c) fshap}'es0:pushffb}'ack+XR(s); g227. AddTLabQel.hDeclareUUPicture,Ffunctions@218i+ @@ -870,13 +897,13 @@ g229. SuppressʕLabQels.[LDFT2002.04.25.][]yAdded*thisfunction.Sometimesit'sirritatingtohave*thelabGelswhenaPicture-3iscopiedandtransformed,עandboththeoriginalandthetransformedversionsareoutput.hDeclareUUPicture,Ffunctions@218i+ inline)Iv9oidB!suppr}'essfflabelsS() fdofflab}'els==falsev\; -g230. UnsuppressTLabQels.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.12.20.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUPicture,Ffunctions@218i+ +g230. UnsuppressTLabQels.9Ȅ`+U 8Log)j`+U +[LDFT2002.12.20.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUPicture,Ffunctions@218i+ inline)Iv9oidB!unsuppr}'essfflabelsw() fdofflab}'els==true; -g231. KillTLabQels.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.05.07.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUPicture,Ffunctions@218i+ -v9oid"killfflab}'elsLJ˫();?n썷x2323DLDFPRÎG#'KILLXLABELS63n@P232.hDe neUUPicture,Ffunctions@219i+ +g231. KillTLabQels.9Ȅ`+U 8Log)j`+U +[LDFT2003.05.07.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUPicture,Ffunctions@218i+ +v9oid"killfflab}'elsLJ˫();@ n썫64KILLXLABELS#'3DLDFPRÎGx232n@P232.hDe neUUPicture,Ffunctions@219i+ v9oid"PictureI::killfflab}'els*L() flab}'els,T:cle}'ar(٫(); g233. T @@ -897,19 +924,19 @@ T ransformAshiftUP(const*P9oint=?&D]pI]);241. Rotationyaroundthemainaxes.r}'otate%:()willpGerformrotationaboutthex,Dyandz-axesinthat"orderifcalledwithmultiple,non-zeroarguments.QaRotationonlyabGouttheyand/orz-axisrequiresoneorUUtwodummy0argumentssothatr}'otateē()\knows"abGoutwhichaxis(oraxes)torotate.hDeclareUUPicture,Ffunctions@218i+ T -ransformAr}'otate\8(const*real4бx:;constJreal6xy>=0;constJreal6xz>f=0);@n썫64RÎOTJATIONXAROUNDTHEMAINAXES7w3DLDFPRGx242n@P242.hDe neUUPicture,Ffunctions@219i+ +ransformAr}'otate\8(const*real4бx:;constJreal6xy>=0;constJreal6xz>f=0);AGn썷x2423DLDFPRÎG7wROTJATIONXARÎOUNDTHEMAINAXES65n@P242.hDe neUUPicture,Ffunctions@219i+ T ransformAPicturehd::r}'otateoB(const*real4бx:;constJreal6xy;p;constJreal6xz;) freturn7tr}'ansformc:r}'otateo>(x;y;zƫ); -g243. Rotationaroundanarbitraryaxis.[LDFT2002.05.03.]ZnThis;functionisde nedinpoints.web,bGecauseUUithasP9oint"Darguments,andP9ointisanincompletetypGeinthis le.U9Ȅ`> 8BeginTLogJʄ`> +g243. Rotationaroundanarbitraryaxis.[LDFT2002.05.03.]ZnThis;functionisde nedinpoints.web,bGecauseUUithasP9oint"Darguments,andP9ointisanincompletetypGeinthis le.9Ȅ`+U 8Log)j`+U [LDFT2002.05.03.]Y;AddedUUthisdeclaration. -[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ` 8EndTLogA>`hDeclareUUPicture,Ffunctions@218i+ +[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ`GhDeclareUUPicture,Ffunctions@218i+ T -ransformAr}'otate\8(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleQ=180);=RemembGerUUtoaddshear!o=244. SetTtransform.9Ȅ`> 8BeginTLogJʄ`> +ransformAr}'otate\8(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleQ=180);=RemembGerUUtoaddshear!o=244. SetTtransform.9Ȅ`+U 8Log)j`+U [LDFT2003.01.17.]Y;MadeUUnon-inlineandchangedt GfromplainT ransform;'toconst!T -ransformYHɫ&a.Ȅ` 8EndTLogA>`hDeclareUUPicture,Ffunctions@218i+ +ransformYHɫ&a.Ȅ`GhDeclareUUPicture,Ffunctions@218i+ T ransformAsetfftr}'ansform},(const*T ransformUt&]taW);245.hDe neUUPicture,Ffunctions@219i+ @@ -917,14 +944,14 @@ ransformAPicturehd::setfftr}'ansform 8BeginTLogJʄ`> +g246. MultiplyingTtransform.9Ȅ`+U 8Log)j`+U [LDFT2003.01.17.]Y;ChangedUUt GfromUUplainT ransform;'toconst!T -ransformYHɫ&a.Ȅ` 8EndTLogA>`hDeclareUUPicture,Ffunctions@218i+ +ransformYHɫ&a.Ȅ`GhDeclareUUPicture,Ffunctions@218i+ T ransformAopQeratorm_=z&(const*T -ransformUt&]taW);An썷x2473DLDFPRÎGTMULJTIPLYINGXTRANSF9ORM65n@P247.hDe neUUPicture,Ffunctions@219i+ +ransformUt&]taW);BFn썫66MULJTIPLYINGXTRANSF9ORMT3DLDFPRÎGx247n@P247.hDe neUUPicture,Ffunctions@219i+ T ransformAPicturehd::n"opQerator׷=P(const*T ransformUt&]taW) @@ -935,7 +962,7 @@ fc}'out* Q"Showing picture: "i_text"\n" ush;tr}'ansform?C:show("transform:"?D);c}'out* Q"shapes.size() == "i_shap}'es:size\()endl ush;c}'out* Q"labels.size() == "i_lab}'els:size\()endl ush;c}'out* Q"do_labels == "Tkdofflab}'els+endl ush;c}'out* Q"Showing shapes.\n"g G;for%ľ(v9ectorHhShapQe"'i::Biter}'ator)7iter=+M=shap}'es:b}'egin();3iternI6=shap}'es:endಫ();\3++#Siter!Q)( iter):show();if(stopƍ)fc}'out4 R"Hit return to contiknue.\n"G ush;getchar?%();gc}'out* Q"Done showing picturke.\n"TM ush; g250. Sho9wTtransform.hDeclareUUPicture,Ffunctions@218i+ -v9oid"showfftr}'ansformgSū(string!%Mtext5D1="Transform from Pictkure:"5);BΠn썫66SHOÎWXTRANSF9ORMѭ3DLDFPRGx251n@P251.hDe neUUPicture,Ffunctions@219i+ +v9oid"showfftr}'ansformgSū(string!%Mtext5D1="Transform from Pictkure:"5);Czn썷x2513DLDFPRÎGSHOWXTRANSF9ORM67n@P251.hDe neUUPicture,Ffunctions@219i+ v9oid"PictureI::showfftr}'ansformEU(string!%Mtext2}) ftr}'ansform?C:show(textW̫); g252. Output.[LDFT2002.09.18.]ZAdded|$theoptionalrealV!argumentsminffxffpr}'oj3Mr,maxffxffpr}'oj4f˫,etc.5ThepurpGosezWoftheseistosuppressoutputofShapQes,iwhosepr}'ojectiveffextremes\falloutsideoftheselimits,wherebyAKthe\z"vqaluesarenotcurrentlychecked.kTheyarenotsetforaparticularF @@ -956,7 +983,7 @@ ftr}'ansform?C:r}'esetƷ(); g257. GlobalTv\rariables.hGlobalUUvqariables@15i+ Picture2ccurr}'entffpictureu*;258.hDeclarationsUUfortheheader le@18i+ -extern.PictureW9curr}'entffpicture5;259. PuttingTPictureandLabQeltogether.Cˠn썷x2603DLDFPRÎG PUTTINGXPICTUREANDLABELTOGETHER67n@P260. ThisUUiswhat'scompiled. +extern.PictureW9curr}'entffpicture5;259. PuttingTPictureandLabQeltogether.Dxn썫68PUTTINGXPICTUREANDLABELTOGETHER 3DLDFPRÎGx260n@P260. ThisUUiswhat'scompiled. hIncludeUU les@11i hV*ersionUUcontrolidenti er@10i hDeclareUUnamespaceProjectionsAa211i @@ -964,13 +991,15 @@ hDe neUUclasses@208i hInitializeUUstatic".LabQelB4dataUUmembGers@209i hGlobalUUvqariables@15i -hDe neUUPicture,Ffunctions@219iDn썫68PUTTINGXPICTUREANDLABELTOGETHER 3DLDFPRÎGx261n@P261. ThisUUiswhat'swrittentopictures.h.hpictures.h@0261i +hDe neUUPicture,Ffunctions@219iE;n썷x2613DLDFPRÎG PUTTINGXPICTUREANDLABELTOGETHER69n@P261. ThisUUiswhat'swrittentopictures.h.hpictures.h@0261i hextern%~declarationUUofnamespaceProjectionsAa212i hextern%~declarationUUofnamespaceSorting,214i hDe neUUclasses@208i hDeclarationsUUfortheheader le@18i262. P9oint(points.web). -[LDFT2002.10.20.]YP9ointx is_themostbasicdrawable_(not llable!)typGe.All_oftheotherShapQes*4ūcontainP9oints%randareultimatelyde nedbytheirP9oints)`andtherelationshipsamongthem. Itisthereforeunderstandableyythatpoints.webisbyfarthelargestofthesource lesof3DLDFypandthatP9oint":hasthemost]functionsofanyclassin3DLDF.ManyofthefunctionsintheotherclassesdolittlemorethanapplytheUUP9oint"DversionUUofthefunctiontotheirP9oints#x٫.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i+263. IncludeT les.hIncludeUU les@11i+#include'~"loader.h"#include'~"pspglb.h"#include'~"io.h"#include'~"colors.h"#include'~"transfor.h"#include'~"shapes.h"#include'~"pictures.h"264. P9ointTclassde nition.[LDFT2002.10.20.] +[LDFT2002.10.20.]YP9ointx is_themostbasicdrawable_(not llable!)typGe.All_oftheotherShapQes*4ūcontainP9oints%randareultimatelyde nedbytheirP9oints)`andtherelationshipsamongthem. Itisthereforeunderstandableyythatpoints.webisbyfarthelargestofthesource lesof3DLDFypandthatP9oint":hasthemost]functionsofanyclassin3DLDF.ManyofthefunctionsintheotherclassesdolittlemorethanapplytheUUP9oint"DversionUUofthefunctiontotheirP9oints#x٫.9Ȅ`+U 8Log)j`+U +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`GhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: points.web,v 1k.3 2003/12/10 16:21:Ơ48 lfinsto1 Exp $"3ҫ;263. IncludeT les.hIncludeUU les@11i+#include'~"loader.h"#include'~"pspglb.h"#include'~"io.h"#include'~"colors.h"#include'~"transfor.h"#include'~"shapes.h"#include'~"pictures.h"264. P9ointTclassde nition.[LDFT2002.10.20.] worldffc}'oordinatesZiTcontainsUUthecoGordinatesoftheP9oint"Dintheglobalcoordinatesystem. userffc}'oordinatesU wandUUviewffc}'oordinatesOYareUUnotcurrentlyused. userffc}'oordinatesT 8BeginTLogJʄ`> +urgentUUwhenIstartwritingtheinputroutine.qTODO.卍9Ȅ`+U 8Log)j`+U [LDFT2003.04.01.]YR\AddedvWORLD_VALUESC%,PROJ_VALUES=E,USER_VALUES,andvVIEW_VALUES=彫.P*TheyvareusedinUUlab}'el()UUforlabGellingP9oints&.usingthevqaluesinworldffc}'oordinatesPiS,pr}'ojectiveffcoordinatesb h,etc. [LDFT2003.05.06.]YDChangedWORLD_VALUE=<,PROJ_VALUE8h,USER_VALUE,andVIEW_VALUE<*4toWORLD_VALUESC9,PROJ_VALUES:FG,UUUSER_VALUES=,UUandVIEW_VALUES.qAddedWORLD_VALUES_X_YWۍ,PROJ_VALUES_X_YR,USER_VALUES_X_YOF;,UUandVIEW_VALUES_X_YUforsuppressingthez-coGordinate. -[LDFT2003.05.20.]Y;AddedUUWORLD_VALUES_ZM[.Ȅ` 8EndTLogA>` -format3c(PointUShap}'ehDe neUUclass5P9oint>264i +[LDFT2003.05.20.]Y;AddedUUWORLD_VALUES_ZM[.Ȅ`G󍍑 +format3c(PointUShap}'ehDe neUUclass5P9oint>264i class$RP9ointC:qprotected86ShapQeZxffriend5fT ransformm/T ransform::1Malignffwithffaxisū(P9ointH;P9ointD;c9har); priv\rate-:T ransform WORLD_VALUESd;static3HconstQs}shorto> PROJ_VALUESg;static3HconstQs}shorto> USER_VALUESg;static3HconstQs}shorto> VIEW_VALUESg;static3HconstQs}shorto> WORLD_VALUES_X_YX;static3HconstQs}shorto> PROJ_VALUES_X_Y[;static3HconstQs}shorto> USER_VALUES_X_Y[;static3HconstQs}shorto> VIEW_VALUES_X_Y[;static3HconstQs}shorto> WORLD_VALUES_ZD^;hDeclareUUP9oint"Dconstructors@279ihDeclareUUP9oint"Dfunctions@284i -g; ThisXco 8BeginTLogJʄ`> +public)=֫:static$HstringEn&me}'asurementffunits;static3HrealI CURR_Yj_;static3HrealI CURR_Zj_;static3HconstQs}shorto> WORLD_VALUESd;static3HconstQs}shorto> PROJ_VALUESg;static3HconstQs}shorto> USER_VALUESg;static3HconstQs}shorto> VIEW_VALUESg;static3HconstQs}shorto> WORLD_VALUES_X_YX;static3HconstQs}shorto> PROJ_VALUES_X_Y[;static3HconstQs}shorto> USER_VALUES_X_Y[;static3HconstQs}shorto> VIEW_VALUES_X_Y[;static3HconstQs}shorto> WORLD_VALUES_ZD^;hDeclareUUP9oint"Dconstructors@279ihDeclareUUP9oint"Dfunctions@284i +g; ThisXco`hDe neUUstatic".P9ointA˫dataUUmembGers@265i +LDF2003.05.22. ! BUGFIX:ChangedWORLD_VALUES_ZSlsothatit'sonelessthanVIEW_VALUES_X_YT+R.Previously*,UUithadthesamevqalue.Ȅ`GhDe neUUstatic".P9ointA˫dataUUmembGers@265i string+%NP9ointG::me}'asurementffunitsW="cm"Mt; real /P9oint=M{::CURR_Y#r=0; real /P9oint=M{::CURR_Z#r=0; @@ -1025,35 +1054,35 @@ const(*shortEFP9ointb::PROJ_VALUES_X_YS W=WORLD_VALUESD<858; const(*shortEFP9ointb::USER_VALUES_X_YS W=WORLD_VALUESD<868; const(*shortEFP9ointb::VIEW_VALUES_X_YS W=WORLD_VALUESD<878; -const(*shortEFP9ointb::WORLD_VALUES_ZMZ=WORLD_VALUESD<888; ThisXco 8BeginTLogJʄ`> -[LDFT2002.04.10.]^AAdded9theseformattinginstructions.sTheyareduplicatedusing\@s"incwdriver.web.Ȅ` 8EndTLogA>` -format3c(p}'ointffpairg]Point +const(*shortEFP9ointb::WORLD_VALUES_ZMZ=WORLD_VALUESD<888; ThisXco 8BeginTLogJʄ`> -LDFp2002.04.15.6Addedpthissection.bQoolus4wpoin9t=Kwasformerlyasimplet9ypQedef*{.I'vehadtochangeittoUUastruct!,inorderforP9oint::interse}'ctionffpointsR()toreturnone.Gln썷x2683DLDFPRÎGc\BOOLffs4#POINT71n@P -LDFx2003.05.30.1Removedthede nitionofthedefaultconstructortothenewsectionhDe nebQoolus4wpoin9t functions@269i.qSeeUUbGelowforanexplanation.Ȅ` 8EndTLogA>`hTypGeUUde nitions@12i+ +t9ypQedef4_pairH۫hbQoolus4wpoin9t5RF;bQoolus4wpoin9t6iUUbQoolus4wpoin9tus4pairQd;268. bQoolffs4#poin9t.9Ȅ`+U 8Log)j`+U +LDFp2002.04.15.6Addedpthissection.bQoolus4wpoin9t=Kwasformerlyasimplet9ypQedef*{.I'vehadtochangeittoUUastruct!,inorderforP9oint::interse}'ctionffpointsR()toreturnone.H#n썫72BOOLffs4#POINT/[3DLDFPR9Gx268n@P +LDFx2003.05.30.1Removedthede nitionofthedefaultconstructortothenewsectionhDe nebQoolus4wpoin9t functions@269i.qSeeUUbGelowforanexplanation.Ȅ`GhTypGeUUde nitions@12i+ struct+bQoolus4wpoin9tdGfbQool-hb1;P9oint2pt<<;bQoolus4wpoin9tIRH();bQoolus4wpoin9tIRH(bQoolfbb#;constJP9oint>&FpptU):qDZbq(bb W);pt䚫(ppt )UUfgv9oid,opQeratorX=`[(const*bQoolus4wpoin9tV=&^[bpisԫ)fb%ū=bp :bJ;pt*=bp :pt 䝫;g -g;H&Yn썫72BOOLffs4#POINT/[3DLDFPR9Gx269n@P269.9Ȅ`> 8BeginTLogJʄ`> -LDFk2003.05.30.'Addedthissection, andthede nitionofbQoolus4wpoin9t:(v9oid).Previously*, b0andptwereZnotset,Xsotheirvqalueswereunpredictable.IZhadtoremovethede nitionfromthedeclarationofbQoolus4wpoin9t5RF,UUbGecauseINVALID_POINTKpisn'tde ned,whenthedeclarationisreadbythecompiler.Ȅ` 8EndTLogA>`hDe neUUbQoolus4wpoin9t;functions@269i +g;I45n썷x2693DLDFPRÎGc\BOOLffs4#POINT73n@P269.9Ȅ`+U 8Log)j`+U +LDFk2003.05.30.'Addedthissection, andthede nitionofbQoolus4wpoin9t:(v9oid).Previously*, b0andptwereZnotset,Xsotheirvqalueswereunpredictable.IZhadtoremovethede nitionfromthedeclarationofbQoolus4wpoin9t5RF,UUbGecauseINVALID_POINTKpisn'tde ned,whenthedeclarationisreadbythecompiler.Ȅ`GhDe neUUbQoolus4wpoin9t;functions@269i bQoolus4wpoin9t@RK::bQoolus4wpoin9t6RJ() fbī=falsev\;pt =INVALID_POINTGY; g ThisXco;bQoolus4wpoin9t:RCc>;bQoolus4wpoin9t:RCd?):q rst'q(aI0);se}'cond"ī(bJ);thir}'dg(cS۫);fourth x(d4r)UUfgv9oid,opQeratorX=`[(const*bQoolus4wpoin9tus4quadrupleM&kar}'ge)f rst0:b«=ar}'g: rst:bJ; rst0:pt =ar}'g: rst:pt 䝫;se}'cond;ʱ:b«=ar}'g:se}'condDZ:bJ;se}'cond;ʱ:pt =ar}'g:se}'condDZ:pt 䝫;thir}'d3m:b«=ar}'g:thir}'dj:bJ;thir}'d3m:pt =ar}'g:thir}'dj:pt 䝫;fourth9x:b«=ar}'g:fourthx:bJ;fourth9x:pt =ar}'g:fourthx:pt 䝫;g -g;I*n썷x2713DLDFPRÎGHzDEF8AULJTXCONSTRUCTORFORBOOLffs4#POINTffs4QUADR9UPLE73n@P271. DefaultTConstructorforbQoolffs4#poin9tffs4quadruple.U9Ȅ`> 8BeginTLogJʄ`> -LDF2003.06.1.N`hDe neUUbQoolus4wpoin9tus4quadruples<functions@271i +g;J8Sn썫74DEF8AÎULJTXCONSTRUCTORFORBOOLffs4#POINTffs4QUADR9UPLEHzǭ3DLDFPRÎGx271n@P271. DefaultTConstructorforbQoolffs4#poin9tffs4quadruple.9Ȅ`+U 8Log)j`+U +LDF2003.06.1.NOrrHT;constJP9oint>&FpptU):qDZbq(bb W);r (rr Q);pt䚫(ppt )UUfg=ConstrucorwithbQoolf,real.,andP9oint"Darguments.o=v9oid,opQeratorX=`[(const*bQoolus4wrealus4pQoin9tnqX&v8vbrpJd)=AssignmentUUopGerator.o=fb%ū=brp:bJ;r%/=brp:r;pt*=brp:pt 䝫;g -g;J6n썫74DEF8AÎULJTXCONSTRUCTORFORBOOLffs4#REALffs4POINTs,~3DLDFPRÎGx273n@P273. DefaultTConstructorforbQoolffs4#realffs4pQoin9t.U9Ȅ`> 8BeginTLogJʄ`> -LDF82003.06.1.h Added8!thissection.Rede nedthedefaultconstructorbQoolus4wrealus4pQoin9tP)(v9oid),=sothatbis|settofalse,.,бr ΫissettoINVALID_REALC.,andptqissettoINVALID_BOOL_POINTb.Inordertodothis,itwasnecessarygtoremovegthede nitionfromthedeclarationofbQoolus4wrealus4pQoin9tOȫ,bGecausewhenthecompilerseesit,UUINVALID_REALF0andUUINVALID_POINTKparen'tUUde nedyet.Ȅ` 8EndTLogA>`hDe neUUbQoolus4wrealus4pQoin9tS functions@273i +g;KD;n썷x2733DLDFPRÎGs,~DEF8AULJTXCONSTRUCTORFORBOOLffs4#REALffs4POINT75n@P273. DefaultTConstructorforbQoolffs4#realffs4pQoin9t.9Ȅ`+U 8Log)j`+U +LDF82003.06.1.h Added8!thissection.Rede nedthedefaultconstructorbQoolus4wrealus4pQoin9tP)(v9oid),=sothatbis|settofalse,.,бr ΫissettoINVALID_REALC.,andptqissettoINVALID_BOOL_POINTb.Inordertodothis,itwasnecessarygtoremovegthede nitionfromthedeclarationofbQoolus4wrealus4pQoin9tOȫ,bGecausewhenthecompilerseesit,UUINVALID_REALF0andUUINVALID_POINTKparen'tUUde nedyet.Ȅ`GhDe neUUbQoolus4wrealus4pQoin9tS functions@273i bQoolus4wrealus4pQoin9tWf::bQoolus4wrealus4pQoin9tMe() :qDZbq(falseD);r (INVALID_REAL?D);pt䚫(INVALID_POINTDA)UUfg ThisXco 8BeginTLogJʄ`> -[LDFT2002.4.3.]NNowsettingworldffc}'oordinatesO[3],Juserffc}'oordinatesJbk[3],Jandviewffc}'oordinatesJ۶[3]=1.+XIt xesaUUbugthatshowedUUupwhenItriedtoshiftaP9oint"DwithcoGordinates0.Ȅ` 8EndTLogA>`hInitializeUUcoGordinatesandlimits@278i #ifdefe__DECCXX +extern.constLHybQoolus4wpoin9tus4quadruple/$INVALID_BOOL_POINT_QUADRUPLEO8;276. ConstructorsTandsettingfunctions.LRun썫76CONSTRÎUCTORSXANDSETTINGFUNCTIONS3DLDFPRGx277n@P277. TheQv\ralarra9ys3;ICuseQforthevqarioussetsofcoGordinatescanbedeclaredintheclassɞdeclaration,*but neitherkcantheirsizebGesetnorcantheybeinitialized. nullffc}'oordinatesN|Yisde nedinpspglb.webandisav\ralarra9y,of?Jrealsewith?J4elements=0.jnSettingworldffc}'oordinatesPSH,Cetc.tonullffc}'oordinatesLymakesthemtherightUUsize.278. InitializeTcoQordinatesandlimits.9Ȅ`+U 8Log)j`+U +[LDFT2002.4.3.]NNowsettingworldffc}'oordinatesO[3],Juserffc}'oordinatesJbk[3],Jandviewffc}'oordinatesJ۶[3]=1.+XIt xesaUUbugthatshowedUUupwhenItriedtoshiftaP9oint"DwithcoGordinates0.Ȅ`GhInitializeUUcoGordinatesandlimits@278i #ifdefe__DECCXX worldffc}'oordinatesY=nullffc}'oordinatesH; userffc}'oordinatesT}:=nullffc}'oordinatesH; viewffc}'oordinatesU ȫ=nullffc}'oordinatesH; @@ -1083,63 +1112,63 @@ userffc}'oordinatesQ"[3]=1; viewffc}'oordinatesRY[3]=1; pr}'ojectiveffextremes^R:r}'esizei(6;0); ThisXco 8BeginTLogJʄ`> -[LDFT2002.12.01.]Y;MadeUUargumentsconst*.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dconstructors@279i+ -P9oint%I(const*real4бx:;constJreal6xy>=CURR_Y"n;constJreal6xz>f=CURR_Z);283.hDe neUUP9oint"Dconstructors@280i+ +g SeeXalsosections283and287.ThisXco=CURR_Y"n;constJreal6xz>f=CURR_Z);283.hDe neUUP9oint"Dconstructors@280i+ P9oint&M::P9ointL(const*real4бx:;constJreal6xy;p;constJreal6xz;) fhInitializeUUcoGordinatesandlimits@278ionfffr}'eeffstoreNl =falsev\;doffoutputAM=true;#if hͫ0$hϱ=ҫ[LDFT2002.10.23.]Souserfftr}'ansform is *notcurrentlyinuse.XdItisintendedforuseinimplementing(user-de nedUUcoGordinatesystems.o=if(userfftr}'ansformA:isffidentity-2())#endifworldffc}'oordinatesk[0]=x~4;worldffc}'oordinatesa[1]=y ;worldffc}'oordinatesa[2]=z6;worldffc}'oordinatesa[3]=1; -g284. SettingTfunction.E9Ȅ`> 8BeginTLogJʄ`> +g284. SettingTfunction.9Ȅ`+U 8Log)j`+U [LDFT2002.12.01.]Y;MadeUUargumentsconst*. -[LDFT2003.03.25.]Y$Changedqthisfunction,xsothatitreturnsqthiseinsteadofv9oidZ.NThismakesitpGossibletoUUchaininvoGcationsofthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i -const(*P9ointG@&N^set\Y(const*real4бx:;constJreal6xy>=CURR_Y"n;constJreal6xz>f=CURR_Z); See?alsosections288,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,513,516,523,525,528,and529.ThisXco=CURR_Y"n;constJreal6xz>f=CURR_Z); See?alsosections288,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,and529.ThisXco 8BeginTLogJʄ`> -[LDFT2002.10.23.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -v9oid"set0v](const*P9oint=?&D]pI]);Nl n썫78SETTINGXFUNCTIONu?3DLDFPRÎGx289n@P289.hDe neUUP9oint"Dfunctions@285i+ +g288. Settingfunction.[LDFT2002.10.23.][iThis6$functionisunnecessary*,nWbGecauseitdoesnothingthattheassignmentopGeratorcan'tdo.JHowever,3I'vetriedtousesetYn()acoupleoftimeswithaP9oint!\argument,soUUit'sconvenientUUtohaveUUit.qIfnothingelse,itpreventsUUcompilationfromfailingoGccasionally*.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.23.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +v9oid"set0v](const*P9oint=?&D]pI]);Oxɠn썷x2893DLDFPRÎGu?SETTINGXFUNCTION79n@P289.hDe neUUP9oint"Dfunctions@285i+ v9oid"P9oint?%::setx(const*P9oint=?&D]pI]) fthis,ѫ=p;doffoutputAM=true; g290. Pseudo-constructorAfordynamicalloQcation.cr}'eateffnewffp}'ointTU()kismeanttobGeusedinsteadofTnew\()TfordynamicalloGcationofP9oints#x].qItcallsthedefaultconstructor(withoutarguments)andthensetsUUonfffr}'eeffstore>OtoUUtrue. -[LDFT2002.10.11.]X3ItMisusedinvqariousP9oint!^functions,OandinP9athUandsomeclassesderivedfromP9aths,currentlyNEllipse$7z,,Regus4wP9olygonD,,andNRectangle46.6ItNisintendedthatob8jectsofthesetypGesbedeclared,,i.e.,unlikeRegus4wClus4Planeus4Curv9ek/,theyarenotmeanttobGeusedonlyasbaseclasses.VRegus4wClus4Planeus4Curv9edoGesUUnotusecr}'eateffnewffp}'ointL+Q()anditisunlikelythatotherclassesofthiskindwilluseit.291. OptionalTpQoin9terargument.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.10.29.]YuMadeڏthisfunctionnon-inline4.tAddedargumentconst"kP9ointABFCpLC.Ifp 6="0#,thenewP9ointisUUassignedtousingthevqaluesfromp]U.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +[LDFT2002.10.11.]X3ItMisusedinvqariousP9oint!^functions,OandinP9athUandsomeclassesderivedfromP9aths,currentlyNEllipse$7z,,Regus4wP9olygonD,,andNRectangle46.6ItNisintendedthatob8jectsofthesetypGesbedeclared,,i.e.,unlikeRegus4wClus4Planeus4Curv9ek/,theyarenotmeanttobGeusedonlyasbaseclasses.VRegus4wClus4Planeus4Curv9edoGesUUnotusecr}'eateffnewffp}'ointL+Q()anditisunlikelythatotherclassesofthiskindwilluseit.291. OptionalTpQoin9terargument.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.29.]YuMadeڏthisfunctionnon-inline4.tAddedargumentconst"kP9ointABFCpLC.Ifp 6="0#,thenewP9ointisUUassignedtousingthevqaluesfromp]U.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ static)HP9ointH8wM8xcr}'eateffnewffp}'ointt(const*P9oint=?B@pIX=0);292.hDe neUUP9oint"Dfunctions@285i+ P9oint(-P9ointJ::cr}'eateffnewffp}'ointI(const*P9oint=?B@pG"@) fP9oint27a?=newϜ(P9ointH);aI2~I3onfffr}'eeffstoreW==true;if(p6=0) aI=p ;return7漱a=/; g293. RequiredTP9ointargument.hDeclareUUP9oint"Dfunctions@284i+ -static)HP9ointH8wM8xcr}'eateffnewffp}'ointt(const*P9oint=?&D]pI]);Ovn썷x2943DLDFPRÎG'REQUIREDXPOINTARGUMENT79n@P294.hDe neUUP9oint"Dfunctions@285i+ +static)HP9ointH8wM8xcr}'eateffnewffp}'ointt(const*P9oint=?&D]pI]);P~n썫80REQUIREDXPOINTARÎGUMENT'3DLDFPRGx294n@P294.hDe neUUP9oint"Dfunctions@285i+ P9oint(-P9ointJ::cr}'eateffnewffp}'ointI(const*P9oint=?&D]pI]) fP9oint27a?=newϜ(P9ointH);aI2~I3onfffr}'eeffstoreW==true;a!K=p;return7漱a=/; -g295. realTargumen9ts.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.06.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +g295. realTargumen9ts.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.06.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ static)HP9ointH8wM8xcr}'eateffnewffp}'ointt(const*real4бx:;constJreal6xy>=0;constJreal6xz>f=0);296.hDe neUUP9oint"Dfunctions@285i+ P9oint(-P9ointJ::cr}'eateffnewffp}'ointI(const*real4бx:;constJreal6xy;p;constJreal6xz;) fP9oint27a?=newϜ(P9ointH);aI2~I3onfffr}'eeffstoreW==true;aI2~I3set*(x;y;zƫ);return7漱a=/; -g297. Destructor.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.08.27.]Y(Addeduavirtual)$,destructorwithanemptyde nition,}bGecauseGCCuwiththe\-Wall"optionUUissuedthefollowingwarning:q\`classPoint'hasvirtualfunctionsbutnon-virtualdestructor".Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +g297. Destructor.9Ȅ`+U 8Log)j`+U +[LDFT2003.08.27.]Y(Addeduavirtual)$,destructorwithanemptyde nition,}bGecauseGCCuwiththe\-Wall"optionUUissuedthefollowingwarning:q\`classPoint'hasvirtualfunctionsbutnon-virtualdestructor".Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ virtual/Է7TP9ointR:();298.hDe neUUP9oint"Dfunctions@285i+ P9oint&M::-(4P9ointP() -fg299. Assignmen9t.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.03.25.]YdChangedthisfunction,sothatitreturnsp kinsteadofv9oidZC.ThismakesitpGossibletochainUUinvoGcationsofthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -const(*P9ointG@&N^opQeratorzx=?1(const*P9oint=?&D]pI]);Pՠn썫80ASSIGNMENT-E3DLDFPRÎGx300n@P300.hDe neUUP9oint"Dfunctions@285i+ +fg299. Assignmen9t.9Ȅ`+U 8Log)j`+U +[LDFT2003.03.25.]YdChangedthisfunction,sothatitreturnsp kinsteadofv9oidZC.ThismakesitpGossibletochainUUinvoGcationsofthisfunction.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +const(*P9ointG@&N^opQeratorzx=?1(const*P9oint=?&D]pI]);QDn썷x3003DLDFPRÎG-EASSIGNMENT81n@P300.hDe neUUP9oint"Dfunctions@285i+ const(*P9ointG@&N^P9ointk{::r opQerator=g(const*P9oint=?&D]pI]) ftr}'ansformBz[=p:tr}'ansform+A;dr}'awdotffvalueT=p:dr}'awdotffvalue=Jɫ;dr}'awdotffcolorS>=p:dr}'awdotffcolor 8BeginTLogJʄ`> -[LDFT2002.10.27.]Y;Rede nedthisfunction. F*ormerly,itwasinlineandempty*. Nowitsetsallofthex,y*,andyzcoGordinatesto0,andresetstr}'ansform.,.(Itdoesn'tseemworthwhileytosetdr}'awdotffvalue?x,dr}'awdotffcolor?1,orUUp}'en]toUUanyparticularvqalues.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -v9oid"cle}'ar9&();Qdn썷x3033DLDFPRÎGIqCLEAR81n@P303.hDe neUUP9oint"Dfunctions@285i+ +g302. Clear.IUUneedthisfunctionbGecauseit'savirtual((functioninShapQe"Ab.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.27.]Y;Rede nedthisfunction. F*ormerly,itwasinlineandempty*. Nowitsetsallofthex,y*,andyzcoGordinatesto0,andresetstr}'ansform.,.(Itdoesn'tseemworthwhileytosetdr}'awdotffvalue?x,dr}'awdotffcolor?1,orUUp}'en]toUUanyparticularvqalues.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +v9oid"cle}'ar9&();ROn썫82CLEARIq3DLDFPRÎGx303n@P303.hDe neUUP9oint"Dfunctions@285i+ v9oid"P9oint?%::cle}'ar(ݫ() ffor%舫(in9ti=0;i 9 <4;i++)fworldffc}'oordinatesk[iq]=userffc}'oordinatesJ}9[i]=viewffc}'oordinatesK ǫ[i]=pr}'ojectiveffcoordinatesa}+[i]=0;gtr}'ansform?C:r}'esetƷ();return4g; g304. Clean.hDeclareUUP9oint"Dfunctions@284i+ @@ -1156,7 +1185,7 @@ freturn7漱:00001S; g309. Get8Line.De ned8inlines.web.DhMustbGede nedthere,qbecauseLineisanincompletetypehere. [LDFT2002.04.12.]Y;RemovedUUthisfunctiontolines.web.hDeclareUUP9oint"Dfunctions@284i+ -Line#getfflineD(const*P9oint=?&D]ptN)UUconst*;310. GettingTcoQordinates.??qChangeUUgetffx㼫(),UUetc.,backtoinlineH??Rn썫82GETXALLCOORDINAJTES3DLDFPRÎGx311n@P311. GetallcoQordinates.[LDFT2002.09.19.][9LAddedkthisfunction. ??[LDFT2002.12.01.]V>YCankI=make the9F +Line#getfflineD(const*P9oint=?&D]ptN)UUconst*;310. GettingTcoQordinates.??qChangeUUgetffx㼫(),UUetc.,backtoinlineH??Sn썷x3113DLDFPRÎGGETXALLCOORDINAJTES83n@P311. GetallcoQordinates.[LDFT2002.09.19.][9LAddedkthisfunction. ??[LDFT2002.12.01.]V>YCankI=make the9F oQcus#+argument9constㆫ?ZWhat9isthesyntaxforapGointertoaconstㆫ,rasoppGosedtoaconst pointer?LoGokUUup!!qMakesureIchangethisis3DLDF.texiifIchangeithere!312. Non-constTv9ersion.[LDFT2002.09.19.]Z6AddedUUthisfunction.hDeclareUUP9oint"Dfunctions@284i+ v\ralarra9y3ZBhreal]ٷiDgetffallffc}'oords>W(c9har08c}'oords:J='w'WY;const 9bQool;doffp}'erspd=trueՒ;const 9bQooldoffapplyGJ=rtrue ;F @@ -1174,7 +1203,7 @@ v\ralarra9y3ZBhreal]ٷiq2P9oint ~::getffallffc}'oords;(c9har&c}'oords5;const'bQool9jdoffp}'ersp_W;const'bQool9jdoffapply_?;F oQcus27f<;constJunsignedP Xshortmpr}'ojʾ;real]factor3a)UUconst fP9oint2p7(this뷫);v\ralarra9y=ZChreal]ٷiUUv Q*=p:getffallffc}'oords:(c}'oords ;doffp}'ersp'S;doffapply'};f);return7漱v=y; -gS)n썷x3163DLDFPRÎG2=3GETXCOORD83n@P316. GetcoQord.[LDFT2002.09.14.][!Addedgetffc}'oord,K׫().>}Fixingabugthatcausedgetffx}N('p'F_),Letc.,to callUUpr}'oject!c()UUmultipletimeswhendoingP9ath潫::outputD().317. Non-constMv9ersion.[LDFT2002.10.27.]YThe argumentc referstoeitherthex,ִy*,z,or wcoGordinate.hDeclareUUP9oint"Dfunctions@284i+ +gTn썫84GETXCOORD2=33DLDFPRÎGx316n@P316. GetcoQord.[LDFT2002.09.14.][!Addedgetffc}'oord,K׫().>}Fixingabugthatcausedgetffx}N('p'F_),Letc.,to callUUpr}'oject!c()UUmultipletimeswhendoingP9ath潫::outputD().317. Non-constMv9ersion.[LDFT2002.10.27.]YThe argumentc referstoeitherthex,ִy*,z,or wcoGordinate.hDeclareUUP9oint"Dfunctions@284i+ real!xgetffc}'oordJHh(c9harcm;c9harM:c}'oords=&U=Ϗ'w';const! bQool;Bdoffp}'erspf` =Ϗtrue';const! bQooldoffapplyGJ=rtrue ;F oQcus"'f1?r=r0s;const iunsignedQ3shortokpr}'ojC=rProjections>֫::EPERSP_m;realfactor;=1);318.hDe neUUP9oint"Dfunctions@285i+ @@ -1187,7 +1216,7 @@ g319. constTv9ersion.hDeclareUUP9oint"Dfunctions@284i+ real!xgetffc}'oordJHh(c9harcm;c9harM:c}'oords=&U=Ϗ'w';const! bQool;Bdoffp}'erspf` =Ϗtrue';const! bQooldoffapplyGJ=rtrue ;F -oQcus"'f1?r=r0s;const iunsignedQ3shortokpr}'ojC=rProjections>֫::EPERSP_m;realfactor;=1)UUconst*;Tn썫84CONSTXVERSIONon3DLDFPRÎGx320n@P320.hDe neUUP9oint"Dfunctions@285i+ +oQcus"'f1?r=r0s;const iunsignedQ3shortokpr}'ojC=rProjections>֫::EPERSP_m;realfactor;=1)UUconst*;U_n썷x3203DLDFPRÎGonCONSTXVERSION85n@P320.hDe neUUP9oint"Dfunctions@285i+ real eaP9oint<::getffc}'oord)\(c9har{cpV;c9har#c}'oords6Я;const|bQool8doffp}'ersp^L;const|bQool8doffapply^;F oQcus!{&|f,b;const2unsignedb7shortpr}'ojy;real]factor3a)UUconst fP9oint2p7(this뷫);return7漱p<:getffc}'oord(\(cS;c}'oords4;doffp}'ersp'S;doffapply'};f;pr}'ojk;factor); @@ -1206,7 +1235,7 @@ g326. GetTy .327. Non-constTv9ersion.hDeclareUUP9oint"Dfunctions@284i+ real!%>getffy7T(c9harXc}'oords9k=0'w'ˏ;const GYbQool:Zdoffp}'erspc6=0trueIȱ;const GYbQool:Zdoffapplycӫ=0true;F -oQcus#f+=0;constJunsignedP Xshortmpr}'oj֫=Projections=|::D!PERSP^;real]factor6(̫=1);Unjn썷x3283DLDFPRÎGANON-CONSTXVERSION85n@P328.hDe neUUP9oint"Dfunctions@285i+ +oQcus#f+=0;constJunsignedP Xshortmpr}'oj֫=Projections=|::D!PERSP^;real]factor6(̫=1);VLn썫86NON-CONSTXVERSIONA3DLDFPRÎGx328n@P328.hDe neUUP9oint"Dfunctions@285i+ real P9oint=:!::getffyt(c9harVc}'oords5`{;constbQool9Odoffp}'ersp^4;constbQool9Odoffapply_Zѱ;F oQcus!&f,;constunsigned2shortOʨpr}'ojbk;real]factor3a) freturn7getffc}'oord`C('y'F_;c}'oords4;doffp}'ersp'S;doffapply'};f;pr}'ojk;factor); @@ -1230,7 +1259,7 @@ real 0P9oint=@|::getffz(c9har]Jc}'oords5fֱ;constKbQool9\doffp}'ersp_;constKbQool9\doffapply_g;F oQcus!J&Kf,1;constKunsigned2shortOʨpr}'ojbk;real]factor3a)UUconst freturn7getffc}'oord`C('z'F_;c}'oords4;doffp}'ersp'S;doffapply'};f;pr}'ojk;factor); -g336. GetTw.Vײn썫86NON-CONSTXVERSIONA3DLDFPRÎGx337n@P337. Non-constTv9ersion.hDeclareUUP9oint"Dfunctions@284i+ +g336. GetTw.Wsn썷x3373DLDFPRÎGANON-CONSTXVERSION87n@P337. Non-constTv9ersion.hDeclareUUP9oint"Dfunctions@284i+ real!getffw9(c9harլc}'oords9YI=z'w'p;const @bQool:Mvdoffp}'erspcp=ztrue>;const @bQool:Mvdoffapplyc\=ztrue;F oQcus#f+=0;constJunsignedP Xshortmpr}'oj֫=Projections=|::D!PERSP^;real]factor6(̫=1);338.hDe neUUP9oint"Dfunctions@285i+ real P9oint=N::getffwo(c9har9c}'oords5B;constbQool9Vdoffp}'ersp^;constbQool9Vdoffapply_+;F @@ -1242,33 +1271,34 @@ real P9oint=N::getffwo(c9har9c}'oords5B;constbQool9Vdoffp}'ersp^;constbQool9Vdoffapply_+;F oQcus!&f,;constunsigned2shortOʨpr}'ojbk;real]factor3a)UUconst freturn7getffc}'oord`C('w'F_;c}'oords4;doffp}'ersp'S;doffapply'};f;pr}'ojk;factor); -g341. GetTtransform.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.10.27.]Y;MadeUUthisfunctionconst*.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +g341. GetTtransform.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.27.]Y;MadeUUthisfunctionconst*.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ inline)IT ransformaSgetfftr}'ansform:()UUconst freturn7tr}'ansformc; g342. GetTcop9y -.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.10.27.]Y;MadeUUthisfunctionconst*.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -ShapQe,Ac1Adgetffc}'opyV()UUconst*;W>n썷x3433DLDFPRÎG9qGETXCOPY87n@P343.hDe neUUP9oint"Dfunctions@285i+ +.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.27.]Y;MadeUUthisfunctionconst*.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +ShapQe,Ac1Adgetffc}'opyV()UUconst*;Xn썫88GETXCOPY9q3DLDFPRÎGx343n@P343.hDe neUUP9oint"Dfunctions@285i+ ShapQe,Ac1AdP9ointM۰::getffc}'opy%ø()UUconst fP9oint27p?=cr}'eateffnewffp}'ointK();p =thisϫ;return7staticus4wcastld^hShapQe"Ab'Aci(p); g344. IsTonfreestore.hDeclareUUP9oint"Dfunctions@284i+ inline)IbQoolC+isffonfffr}'eeffstore()UUconst freturn7onfffr}'eeffstoreo; -g345. SlopQe.[LDFT2002.10.27.]ZYslop}'eq&$()xreturnstheslopGeofthetr}'ace{ӫofxthelinefromythisbtop ~ontheplaneUUindicatedbythec9harargumentsmraandn U.qTheseshouldbGe'x','y','z','X','Y',or'Z'.r9Ȅ`> 8BeginTLogJʄ`> +g345. SlopQe.[LDFT2002.10.27.]ZYslop}'eq&$()xreturnstheslopGeofthetr}'ace{ӫofxthelinefromythisbtop ~ontheplaneUUindicatedbythec9harargumentsmraandn U.qTheseshouldbGe'x','y','z','X','Y',or'Z'.9Ȅ`+U 8Log)j`+U [LDFT2002.10.27.]Y;NowUUusingworldffc}'oordinatesSdirectlyinsteadof\get"functions. -[LDFT2002.10.27.]Y;ChangedUUargumentp fromconst!P9oint@o&KtoP9oint.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -real /slop}'e6(P9ointp#;c9harm&='x' w;c9harn#ܣ='y')UUconst*;Xn썫88SLOPEKm3DLDFPRÎGx346n@P346.hDe neUUP9oint"Dfunctions@285i+ +[LDFT2002.10.27.]Y;ChangedUUargumentp fromconst!P9oint@o&KtoP9oint.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +real /slop}'e6(P9ointp#;c9harm&='x' w;c9harn#ܣ='y')UUconst*;Ynn썷x3463DLDFPRÎGKmSLOPE89n@P346.hDe neUUP9oint"Dfunctions@285i+ real /P9oint=M{::slop}'e7ϫ(P9ointp#;c9harm#ܨ;c9harn!)UUconst*fUUbQoolDEBUG:,=falsev\;=trueĒ=P9oint<aB8Ы(this뷫);a#I3:applyfftr}'ansformF߫();p#:applyfftr}'ansformF߫();if)(aHp)f(c}'err=U"ERROR! In Point::sllope():\n"컷U"Points are the samel. Returning INVALID_\<REAL\n\n"nk ush;(if3(DEBUGY)f2a7I5:show("a"F_);2p7:show("p"F_);(g(returnKINVALID_REALm;gm)ҫ=tolower#(mǷ);n&ǵ=tolower#(n);if)(:((m Ϸ'x'FW_8m ǯ'y'_8m'z' w)8^(nDz'x'FW_n 'y'_n 'z' w)^(m Ϸ6=nDz)))f(c}'err=U"ERROR! In Point::sllope():\n"컷U"One or both char arlguments are invalid \<or they are the same: " AmU", "n ʷendl"Returning INVALID_RkEAL\n\n"D< ushQ;(returnKINVALID_REALm;gin9t/ctr@&=m ǯ8'x'?;real41affmffc}'oorddI=aH:worldffc}'oordinatesM[ctr ];real41pffmffc}'oorddI=p:worldffc}'oordinatesM[ctr ];ctr. =n 8'x'?;real41affnffc}'oorda[=aH:worldffc}'oordinatesM[ctr ];real41pffnffc}'oorda[=p:worldffc}'oordinatesM[ctr ];347. W*eUpoftenuseslop}'e;()inorderto ndoutwhetheralinehasslopGeornot,Uwsoanerrormessageisoutoftplacehere.y%AHwarningistoGo,-probably*,buttI'mleavingthisinherefornow,-justincaseIHchangemymind.hDe neUUP9oint"Dfunctions@285i+ if(affmffc}'oord/bpffmffc}'oord)f#if 0c}'err.η&"WARNING! In Point::qslope():\n"RW&m(" coordinates of points are equal (no slope)!\n"'L"Returning INVALID_RkEAL\n\n"M,;#endifreturn7INVALID_REALwm; g -return-滫(affnffc}'oord,y8pffnffc}'oord)=(affmffc}'oord/*8pffmffc}'oord);UUg348. IsTonsegmen9t.YVn썷x3493DLDFPRÎGNON-CONST+ԭVERSION89n@P349. Non-constv9ersion.[LDFT2002.10.29.][isffonffse}'gmenta()\1returnsabQoolus4wreal6withthebQoolsin- dicating=Vwhether =WthisfcliesonthelinesegmentbGetweenp0landp1T,wVandareal؅vqaluetrepresentingthedistanceloflthisonthewaylfromp0top1d.IfthebQool%Yistrue1<,rxthen0<=t<=1.Iflt<0ort>1,rxthenthisRliesg,onthelinepassingthroughp0andp1},kbutnotonthesegment.LIfg-thisdoGesn'tlieontheline,twillUUbGeINVALID_REALBۙ. -[LDFT2002.10.29.]Y;T*oUUcheckwhetherUVthisaliesontheline,useisffonffline-_().c9Ȅ`> 8BeginTLogJʄ`> +return-滫(affnffc}'oord,y8pffnffc}'oord)=(affmffc}'oord/*8pffmffc}'oord);UUg348. IsTonsegmen9t.Z +n썫90NON-CONST+ԭVERSION3DLDFPRÎGx349n@P349. Non-constv9ersion.[LDFT2002.10.29.][isffonffse}'gmenta()\1returnsabQoolus4wreal6withthebQoolsin- dicating=Vwhether =WthisfcliesonthelinesegmentbGetweenp0landp1T,wVandareal؅vqaluetrepresentingthedistanceloflthisonthewaylfromp0top1d.IfthebQool%Yistrue1<,rxthen0<=t<=1.Iflt<0ort>1,rxthenthisRliesg,onthelinepassingthroughp0andp1},kbutnotonthesegment.LIfg-thisdoGesn'tlieontheline,twillUUbGeINVALID_REALBۙ. +[LDFT2002.10.29.]Y;T*oUUcheckwhetherUVthisaliesontheline,useisffonffline-_().N99Ȅ`+U 8Log)j`+U [LDFT2002.10.29.]XLJBUGFIX:AddedcoGdetocheckwhethertheunitvectorsthisѷyp0ګandp1yzthisѫareequalgbGeforecalculatingr{.Z#BeforeIUdidthis,truewasreturnedforP9oints&@Rthatweren'tonthelinesegment. -[LDFT2002.10.29.]Y;NowUUusingworldffc}'oordinatesSdirectlyinsteadofgetffx㼫(),getffyk(),andgetffz]V().Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -bQoolus4wreal;@isffonffse}'gmentxuѫ(P9ointp0+];P9oint Ep1,);Z Pn썫90NON-CONST+ԭVERSION3DLDFPRÎGx350n@P350.hDe neUUP9oint"Dfunctions@285i+ -bQoolus4wreal;@P9ointWΫ::isffonffse}'gment>5S(P9ointp0+];P9oint Ep1,)fUUbQoolDEBUG:,=falsev\;=trueĒ=if)(DEBUGY)c}'out O"Entering Point::is_kon_segment().\n", ush;applyfftr}'ansformd();p0*ñ:applyfftr}'ansformF߫();p1*ñ:applyfftr}'ansformF߫();if)(DEBUGY)f(show>("this" V);(p04ı:show("p0"\);(p14ı:show("p1"\);gif)(thisϷINVALID_POINTI9_8p0INVALID_POINT_8p1INVALID_POINTGY)f(c}'err=ܷ2"ERROR! In Point::isk_on_segment():\n"Ȅ]2"One of the Points iks invalid! "Dl<"Returning false and INVALID_REAL.\n\n"  ush;(returnKpair`bϷhbQoolL;reali(falseD;INVALID_REALA0);gbQool7ib;;real41r9}E;if)(p0طp1^88this믷p0)f(c}'errBNa"ERROR! In Point::isp{_on_segment():\n"g<"*this and the arguments p0 and p1 are a ll equal. "Ng<"Returning false and INVALID_REAL.\n";(returnKpair`bϷhbQoolL;reali(falseD;INVALID_REALA0);gelse4.7if?/(p0طp1)f(c}'err=|·"ERROR! In Point::isk_on_segment():\n"T)"Arguments p0 and p1k are equal. "T5<"Returning false and INVALID_REAL.\n";(returnKpair`bϷhbQoolL;reali(falseD;INVALID_REALA0);gelse4.7if?/(thisϷp0ث)f(returnKpair`bϷhbQoolL;reali(trueĘ;0:0q);gelse4.7if?/(thisϷp1ث)f(returnKpair`bϷhbQoolL;reali(trueĘ;1:0q);g==[LDFT2002.10.29.]T7BeginningUUofnewcoGde.o=P9oint5S(P9ointp0+];P9oint Ep1,)fUUbQoolDEBUG:,=falsev\;=trueĒ=if)(DEBUGY)c}'out O"Entering Point::is_kon_segment().\n", ush;applyfftr}'ansformd();p0*ñ:applyfftr}'ansformF߫();p1*ñ:applyfftr}'ansformF߫();if)(DEBUGY)f(show>("this" V);(p04ı:show("p0"\);(p14ı:show("p1"\);gif)(thisϷINVALID_POINTI9_8p0INVALID_POINT_8p1INVALID_POINTGY)f(c}'err=ܷ2"ERROR! In Point::isk_on_segment():\n"Ȅ]2"One of the Points iks invalid! "Dl<"Returning false and INVALID_REAL.\n\n"  ush;(returnKpair`bϷhbQoolL;reali(falseD;INVALID_REALA0);gbQool7ib;;real41r9}E;if)(p0طp1^88this믷p0)f(c}'errBNa"ERROR! In Point::isp{_on_segment():\n"g<"*this and the arguments p0 and p1 are a ll equal. "Ng<"Returning false and INVALID_REAL.\n";(returnKpair`bϷhbQoolL;reali(falseD;INVALID_REALA0);gelse4.7if?/(p0طp1)f(c}'err=|·"ERROR! In Point::isk_on_segment():\n"T)"Arguments p0 and p1k are equal. "T5<"Returning false and INVALID_REAL.\n";(returnKpair`bϷhbQoolL;reali(falseD;INVALID_REALA0);gelse4.7if?/(thisϷp0ث)f(returnKpair`bϷhbQoolL;reali(trueĘ;0:0q);gelse4.7if?/(thisϷp1ث)f(returnKpair`bϷhbQoolL;reali(trueĘ;1:0q);g==[LDFT2002.10.29.]T7BeginningUUofnewcoGde.o=P9oint 8BeginTLogJʄ`> -[LDFT2002.10.29.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -bQoolus4wreal;@isffonffse}'gmentxuѫ(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rū)UUconst*;\"Ӡn썫92CONST&Fp1Rū)UUconst*;]-n썷x3533DLDFPRÎG9CONST@ VERSION93n@P353.hDe neUUP9oint"Dfunctions@285i+ bQoolus4wreal;@P9ointWΫ::isffonffse}'gment>5S(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rū)UUconst fP9oint2a88ϫ(this뷫);return7漱a=/:isffonffse}'gment=5O(p0 ;p1 h); -g354. Isonline.[LDFT2002.10.29.]ZFnTO|DO:MaybGeaddanon-constګversion.[Thisisn'turgent, though.c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.10.29.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +g354. Isonline.[LDFT2002.10.29.]ZFnTO|DO:MaybGeaddanon-constګversion.[Thisisn'turgent, though.N99Ȅ`+U 8Log)j`+U +[LDFT2002.10.29.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ bQoolus4wreal;@isffonfflinee(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rū)UUconst*;355.hDe neUUP9oint"Dfunctions@285i+ bQoolus4wreal;@P9ointWΫ::isffonffline+[(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rū)UUconst fbQoolus4wrealE@brRo=isffonffse}'gment?g(p0 ;p1 h);if(br gs:se}'cond n߷6=INVALID_REALBM\)brgs: rst|«=true;return7brBN/; -g356. IsonPlane.[LDFT2003.06.04.]ZhThis5functionreturnstrueE,<if5thisWliesonthePlane#Lp(T,otherwisefalseD.qItUUmustbGede nedinplanes.web,becausePlane# isanincompletetypehere.r9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.04.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -bQool#gisffonffplaneU$A(const*Plane>aZ&F(xpK0x)UUconst*;357. Isintriangle.[LDFT2003.06.11.]YThis 8BeginTLogJʄ`> +g356. IsonPlane.[LDFT2003.06.04.]ZhThis5functionreturnstrueE,<if5thisWliesonthePlane#Lp(T,otherwisefalseD.qItUUmustbGede nedinplanes.web,becausePlane# isanincompletetypehere.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.04.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +bQool#gisffonffplaneU$A(const*Plane>aZ&F(xpK0x)UUconst*;357. Isintriangle.[LDFT2003.06.11.]YThis`hDeclareUUP9oint"Dfunctions@284i+ +[LDFT2003.06.24.]Y;RemovedUUtheargumenttestffp}'oints1}J.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ bQool#[isffinfftriangle]y(constsP9oint='&EsEp0Q;const >P9oint?Vϫ&Gp1S4;const >P9oint?Vϫ&Gp2;bQoolverb}'ose?g=@false)const8P;358. T -ransformations.359. AneTtransformations.]2(n썷x3603DLDFPRÎG7wROTJATIONXARÎOUNDTHEMAINAXES93n@P360. RotationTaroundthemainaxes.9Ȅ`> 8BeginTLogJʄ`> +ransformations.359. AneTtransformations.^=n썫94RÎOTJATIONXAROUNDTHEMAINAXES7w3DLDFPRGx360n@P360. RotationTaroundthemainaxes.9Ȅ`+U 8Log)j`+U [LDFT2003.01.22.]YReplacedbGodyoffunction.\4T ransform;ϵ::r}'otateoB()returnsaT ransform`hDeclareUUP9oint"Dfunctions@284i+ +ransform;'tBinthisfunction.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ T ransformAr}'otate\8(const*real4бx:;constJreal6xy>=0;constJreal6xz>f=0);361.hDe neUUP9oint"Dfunctions@285i+ T ransformAP9oint^c::r}'otateoB(const*real4бx:;constJreal6xy;p;constJreal6xz;) freturn7tr}'ansformc:r}'otateo>(x;y;zƫ); -g362. Scale.9Ȅ`> 8BeginTLogJʄ`> +g362. Scale.9Ȅ`+U 8Log)j`+U [LDFT2003.01.22.]Xr1ReplacedKbGodyoffunction.?T ransform9E::sc}'ale()returnsaT ransform9representingtherotationUUonly*,soIdon'tneedtousealoGcallydeclaredT -ransform;'tBinthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +ransform;'tBinthisfunction.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ T ransformAsc}'aleW}ū(real.xjJ;real]ֱy g=1;real]ֱz < =1);363.hDe neUUP9oint"Dfunctions@285i+ T ransformAP9oint^c::sc}'ale(real.xjJ;real]ֱy;real]ֱzt) freturn7tr}'ansformc:sc}'ale(x;y;zƫ); -g364. Shear.9Ȅ`> 8BeginTLogJʄ`> +g364. Shear.9Ȅ`+U 8Log)j`+U [LDFT2003.01.22.]YߞReplaced,bGodyoffunction.T ransform()returnsaT ransform`hDeclareUUP9oint"Dfunctions@284i+ +ransform;'tBinthisfunction.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ T ransformAshe}'arY (real.xy!;real]xz%=0;real]yx&Z=0;real]yz%6=0;real]zx%Y=0;real]zy%|=0);365.hDe neUUP9oint"Dfunctions@285i+ T ransformAP9oint^c::she}'ar4>(real.xy!;real]xz"ը;real]yx#;real]yz# ;real]zx"A;real]zy") freturn7tr}'ansformc:she}'ar4:(xy ;xz "z;yx V;yz Y;zx ;zy «); -g366. Shift.367. P9ointTversions.^@(n썫94THREEXREALARÎGUMENTSX3DLDFPRGx368n@P368. ThreeTrealargumen9ts.hDeclareUUP9oint"Dfunctions@284i+ +g366. Shift.367. P9ointTversions._Jn썷x3683DLDFPRÎGXTHREEXREALARGUMENTS95n@P368. ThreeTrealargumen9ts.hDeclareUUP9oint"Dfunctions@284i+ T ransformAshiftUP(real.xjJ;real]ֱy g=0;real]ֱz < =0);369.hDe neUUP9oint"Dfunctions@285i+ T @@ -1352,18 +1382,18 @@ ransformAPicturehd::shift(const*P9oint=?&D]pI]) freturn7shiftL9(p:getffxg();p:getffyt();p:getffz()); g374. ShiftTtimes. -[LDFT2003.01.19.]YG.NoteHthatshiftfftimes2()willonlyhaveHane ectifit'scalledafterիacalltoshiftū()andb}'eforeanUUopGerationisappliedthatcausesapplyfftr}'ansformIu4()tobecalled.c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.01.19.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`_Mwn썷x3753DLDFPRÎGXTHREEXREALARGUMENTS95n@P375. ThreeTrealargumen9ts.U9Ȅ`> 8BeginTLogJʄ`> +[LDFT2003.01.19.]YG.NoteHthatshiftfftimes2()willonlyhaveHane ectifit'scalledafterիacalltoshiftū()andb}'eforeanUUopGerationisappliedthatcausesapplyfftr}'ansformIu4()tobecalled.N99Ȅ`+U 8Log)j`+U +[LDFT2003.01.19.]Y;AddedUUthissection.Ȅ`G`W_n썫96THREEXREALARÎGUMENTSX3DLDFPRGx375n@P375. ThreeTrealargumen9ts.9Ȅ`+U 8Log)j`+U [LDFT2003.01.19.]Y;AddedUUthisfunction. [LDFT2003.01.22.]Yh$Got>ridofloGcalT -ransform;t?zk.Itwasn'tneeded.NowjustreturningthereturnvqalueofUUtr}'ansform/:shiftfftimes.;().Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +ransform;t?zk.Itwasn'tneeded.NowjustreturningthereturnvqalueofUUtr}'ansform/:shiftfftimes.;().Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ T ransformAshiftfftimesp(real.xjJ;real]ֱy g=1;real]ֱz < =1);376.hDe neUUP9oint"Dfunctions@285i+ T ransformAP9oint^c::shiftfftimes/?(real.xjJ;real]ֱy;real]ֱzt) freturn7tr}'ansformc:shiftfftimes.;(x;y;zƫ); -g377. P9ointTargument.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.01.19.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +g377. P9ointTargument.9Ȅ`+U 8Log)j`+U +[LDFT2003.01.19.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ T ransformAshiftfftimesp(const*P9oint=?&D]pI]);378.hDe neUUP9oint"Dfunctions@285i+ T @@ -1371,8 +1401,8 @@ freturn7tr}'ansformc:shiftfftimes.;(p:getffxg();p:getffyt();p:getffz()); g379. Alignmen9t?withanaxis.Declared.intransfor.web.De nedhere,dbGecauseitneedsP9oints$R+.[LDFT2002.10.23.]Nalignffwithffaxis()!:returnstheT ransform:neededtoalignȍ!g!N8p0|sp1KZwithoneofthemainaxes. -[LDFT2003.05.04.]Y;BUG:UUTODO:T*ryto ndoutwhyIsometimesgeterroneousresultswithr}'otateo>(P9ointH;P9ointD;real)UU(formerlyr}'otateffaround?()).qIthinktheproblemmaybGehere.c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.12.10.]YӻMade thisfunctionafriend&SinclasșP9oint;f.HNowcallingp07:applyfftr}'ansformF߫()andp1 :applyfftr}'ansformF߫()UUatthebGeginningofthisfunctionandusingp0l:worldffc}'oordinatesPiSandp1 :worldffc}'oordinatesPiSdirectlyUUinsteadofgetffx㼫(),getffyk(),andgetffz]V().Ȅ` 8EndTLogA>``Y͠n썫96ALIGNMENTXWITHANAXIS3DLDFPRÎGx380n@P380.hDe neUUT +[LDFT2003.05.04.]Y;BUG:UUTODO:T*ryto ndoutwhyIsometimesgeterroneousresultswithr}'otateo>(P9ointH;P9ointD;real)UU(formerlyr}'otateffaround?()).qIthinktheproblemmaybGehere.N99Ȅ`+U 8Log)j`+U +[LDFT2002.12.10.]YӻMade thisfunctionafriend&SinclasșP9oint;f.HNowcallingp07:applyfftr}'ansformF߫()andp1 :applyfftr}'ansformF߫()UUatthebGeginningofthisfunctionandusingp0l:worldffc}'oordinatesPiSandp1 :worldffc}'oordinatesPiSdirectlyUUinsteadofgetffx㼫(),getffyk(),andgetffz]V().Ȅ`Gacn썷x3803DLDFPRÎGALIGNMENTXWITHANAXIS97n@P380.hDe neUUT ransform;'functions@125i+ T ransformAT @@ -1386,7 +1416,7 @@ zcoGordinates2areUUallpGositive.qSeebelowfortheexplanation.o=if)(DEBUGY)f(t+v:show("t outside of normahlization");gP9oint<pr}'ojffonffxffzffplane,"(p1 );=v[LDFT2002.10.23.]S)Get!thepro8jectionofp1Z\onthex-zplane. B= pr}'ojffonffxffzffplaneUp :shift}(0; qp1:worldffc}'oordinatesM[1]); -if(DEBUGY)pr}'ojffonffxffzffplanePp :show("proj_on_x_z_plane"dF/);afn썷x3823DLDFPRÎGALIGNMENTXWITHANAXIS97n@P382. [LDFT2002.10.23.]ZJIfwe'realigningwiththexory-axis,$ rotatep1F6ontothex-yplaneandthentothe x-axis.hDe neUUT +if(DEBUGY)pr}'ojffonffxffzffplanePp :show("proj_on_x_z_plane"dF/);bp1n썫98ALIGNMENTXWITHANAXIS3DLDFPRÎGx382n@P382. [LDFT2002.10.23.]ZJIfwe'realigningwiththexory-axis,$ rotatep1F6ontothex-yplaneandthentothe x-axis.hDe neUUT ransform;'functions@125i+ if(axis'x'FW_8axis<'y' w)fP9oint2ptffonffxffaxishЫ;ptffonffxffaxisI3:set x(1);angle.m=pr}'ojffonffxffzffplaneN7!:angleS(ptffonffxffaxis51);if(DEBUGY)c}'out O"angle of projectionk: "~SangleNendl ush;if(anglek6=0 ^8angleK6=INVALID_REALBM\)t c=p1':r}'otateo>(0; qangle!2);if(DEBUGY)p1:show("p1 after rotation tho x-y plane");angle.m=p1ر:angleS(ptffonffxffaxis51);if(DEBUGY)c}'out O"angle to x-axis: "i_angleNendl ush;if(anglek6=0 ^8angleK6=INVALID_REALBM\)t c=p1':r}'otateo>(0;0; qangle!2);if(DEBUGY)p1:show("p1 after rotation tho x-axis"); g383. [LDFT2002.10.23.]YNJIfwe'realigningwiththez-axis,2rotatep1@ontothey-zplaneandthentothez-axis.hDe neUUT @@ -1394,8 +1424,8 @@ else .5if+-(axis'z' w)UUfP9oint"DptffonffzffaxisVV; ptffonffzffaxis>e:set x(0;0;1);=<[LDFT2002.10.23.]TqThisrassumesthatpr}'ojffonffxffzffplaneO{:getffz()+H0+I.&ItshouldUUbGe,butifitisn't,thefollowingerrorhandlingcodetakescareoftheproblem.o= if(pr}'ojffonffxffzffplaneKp :getffz()<0)fc}'err.M<"ERROR! In TransformpM::align_with_axis():L\n"_("proj_on_x_z_plane.get_z() < 0\n" "@l should ensure that "("this value is >= 0.\n"[2 "Handling the error,l but find out why it happened!"o(endl>޷endl ush;ptffonffzffaxisHf:set x(0;0; qƫ1q); -g384.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.12.10.]Y:Added=Tthefollowingconditional.)T*ryingto xabugthatoGccurredwhileportingtoGNU/Linux.Ȅ` 8EndTLogA>`hDe neUUT +g384.9Ȅ`+U 8Log)j`+U +[LDFT2002.12.10.]Y:Added=Tthefollowingconditional.)T*ryingto xabugthatoGccurredwhileportingtoGNU/Linux.Ȅ`GhDe neUUT ransform;'functions@125i+ if(pr}'ojffonffxffzffplaneKp :worldffc}'oordinatesM[0]0 ^8pr}'ojffonffxffzffplaneM:worldffc}'oordinates[1]0)anglek=0; else!angle<`K=pr}'ojffonffxffzffplaneN7!:angleS(ptffonffzffaxis4d);385.hDe neUUT @@ -1403,9 +1433,9 @@ if(DEBUGY)c}'out O"angle of projectionk: "~SangleNendl ush; if(anglek6=0 ^8angleK6=INVALID_REALBM\)t c=p1':r}'otateo>(0;anglej); if(DEBUGY)p1:show("p1 after rotation tho z-y plane"); -p1:applyfftr}'ansformF߫();bsn썫98ALIGNMENTXWITHANAXIS3DLDFPRÎGx386n@P386.9Ȅ`> 8BeginTLogJʄ`> +p1:applyfftr}'ansformF߫();c|àn썷x3863DLDFPRÎGALIGNMENTXWITHANAXIS99n@P386.9Ȅ`+U 8Log)j`+U [LDFT2002.12.10.]Y:Added=Tthefollowingconditional.)T*ryingto xabugthatoGccurredwhileportingtoGNU/Linux. -[LDFT2003.06.13.]X=BUGFIX:9Changedpr}'ojffonffxffzffplaneP{top1+2inthe\if_"partofthefollowingconditional.The]/y-coGordinateofpr}'ojffonffxffzffplaneR*gisalways]/0,_&soanglezwasalwayssetto0.VI]-discoveredthisbugwhenI'tried'rotatingaP9oint!逫intheplaneofaRegus4wP9olygonGabGoutalinefromthecenteroftheRegus4wP9olygoninUUthedirectionofitsnormal,andtheresultingP9oint"Dwasnotinthesameplane.Ȅ` 8EndTLogA>`hDe neUUT +[LDFT2003.06.13.]X=BUGFIX:9Changedpr}'ojffonffxffzffplaneP{top1+2inthe\if_"partofthefollowingconditional.The]/y-coGordinateofpr}'ojffonffxffzffplaneR*gisalways]/0,_&soanglezwasalwayssetto0.VI]-discoveredthisbugwhenI'tried'rotatingaP9oint!逫intheplaneofaRegus4wP9olygonGabGoutalinefromthecenteroftheRegus4wP9olygoninUUthedirectionofitsnormal,andtheresultingP9oint"Dwasnotinthesameplane.Ȅ`GhDe neUUT ransform;'functions@125i+ if(p1 :worldffc}'oordinatesM[1]0)anglek=0; else!angle<`K=p1ر:angleS(ptffonffzffaxis4d);387.hDe neUUT @@ -1421,13 +1451,13 @@ g this"з=2At5y; if(DEBUGY)c}'out O"Exiting Transform::kalign_with_axis."T)endl ush; -return-滱t1-;qǷgcn썷x3893DLDFPRÎG>NORMALIZEXPOINT99n@P389. NormalizepQoin9t.It'qmakesiteasiertodeterminethecorrectdirectionofrotationtowardthex-y orxy-zplaneifp1'scoGordinatesareall>=0,sowerotateitinordertomakethemso.Theonlycasethatrequires.morethanarotationaroundasingleaxisisthecasethatx 0ercmmi7p1ū,6Jyp1,and.zp1 Lareall<0.dItwouldbGeniceUUifIcouldreplacethislongconditionalwithamoreelegantconstruction,butIdon'tknowone.hNormalizeUUpGoint@389i +return-滱t1-;qǷgdn썫100NORMALIZEXPOINT>3DLDFPRÎGx389n@P389. NormalizepQoin9t.It'qmakesiteasiertodeterminethecorrectdirectionofrotationtowardthex-y orxy-zplaneifp1'scoGordinatesareall>=0,sowerotateitinordertomakethemso.Theonlycasethatrequires.morethanarotationaroundasingleaxisisthecasethatx 0ercmmi7p1ū,6Jyp1,and.zp1 Lareall<0.dItwouldbGeniceUUifIcouldreplacethislongconditionalwithamoreelegantconstruction,butIdon'tknowone.hNormalizeUUpGoint@389i fif(DEBUGY)p1:show("p1 before normalizahtion");if(p1 :worldffc}'oordinatesM[0]<0 ^8p1O:worldffc}'oordinates[1]0 ^8p1O:worldffc}'oordinates[2]0)(=xUUnegative,yandzpGositive.o=t$c=3p1@:r}'otateo>(0; qƫ90q);else*.6if5.(p1 :worldffc}'oordinatesM[0]0 ^8p1O:worldffc}'oordinates[1]<0 ^8p1O:worldffc}'oordinates[2]0)(=xUUpGositive,ynegative,zpGositive.o=t$c=3p1@:r}'otateo>(90 );else*.6if5.(p1 :worldffc}'oordinatesM[0]0 ^8p1O:worldffc}'oordinates[1]0 ^8p1O:worldffc}'oordinates[2]<0)(=xUUpGositive,ypositive,znegative.o=t$c=3p1@:r}'otateo>(90 );else*.6if5.(p1 :worldffc}'oordinatesM[0]<0 ^8p1O:worldffc}'oordinates[1]<0 ^8p1O:worldffc}'oordinates[2]0)(=xUUnegative,ynegative,zpGositive.o=t$c=3p1@:r}'otateo>(0;0;180);else*.6if5.(p1 :worldffc}'oordinatesM[0]<0 ^8p1O:worldffc}'oordinates[1]0 ^8p1O:worldffc}'oordinates[2]<0)(=xUUnegative,ypGositive,znegative.o=t$c=3p1@:r}'otateo>(0;180);else*.6if5.(p1 :worldffc}'oordinatesM[0]0 ^8p1O:worldffc}'oordinates[1]<0 ^8p1O:worldffc}'oordinates[2]<0)(=xUUpGositive,ynegative,znegative.o=t$c=3p1@:r}'otateo>(180);else*.6if5.(p1 :worldffc}'oordinatesM[0]<0 ^8p1O:worldffc}'oordinates[1]<0 ^8p1O:worldffc}'oordinates[2]<0)=AllUUnegative.o=freal41a(180;180);t$c=3p1@:shift}(aI0);t$c=3p1@:r}'otateo>(0;180);t$c=3p1@:shift}(a N);gp1 ±:applyfftr}'ansformF߫();if(DEBUGY)fp0*ñ:show("p0 after normalizathion"~ );p1*ñ:show("p1 after normalizathion"~ );t!u:show("t after normalizatihon"yF#);g -g ThisXco 8BeginTLogJʄ`> +g ThisXco`hDeclareUUP9oint"Dfunctions@284i+ +[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ T ransformAr}'otate\8(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleQ=180);393.hDe neUUP9oint"Dfunctions@285i+ T @@ -1436,16 +1466,16 @@ ransformKԱtOeF;if(aHb J_8a I( 6b)fc}'err3K"WARNING! In Point::lfrotate().\n"L"Point to be rotatedlf lies on axis.\n"=2"Returning identity Transform.\n\n"  ush;returnA潱tE/;greturn7tr}'ansformc:r}'otateo>(p0 ;p1 h;anglej); -g394. P9ath**argument.De nedinpaths.web,bGecauseP9athϘisstillanincompletetypeinthiscompi-lationUUunit.9Ȅ`> 8BeginTLogJʄ`> +g394. P9ath**argument.De nedinpaths.web,bGecauseP9athϘisstillanincompletetypeinthiscompi-lationUUunit.9Ȅ`+U 8Log)j`+U [LDFT2002.04.07.]Y;AddedUUdefaultvqalueforanglej180. -[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ T -ransformAr}'otate\8(const*P9ath:[&AypFy;constJreal6xangleQ=180);e|n썷x3953DLDFPRÎGTRANSF9ORMXVERSION101n@P395. T -ransform"v9ersion.Declaredintransfor.web.:[LDFT2002.09.29.]TTO DO:PossibleBUG!!:Ac- tually*,qtheproblemthatoGccurredmayjusthavetodochoGosingthedirectionofrotation.;I'vechangedtheplaceUUwheretheproblemoGccurred,soI'llhaveUUtowritearoutinetotestthis.U9Ȅ`> 8BeginTLogJʄ`> +ransformAr}'otate\8(const*P9ath:[&AypFy;constJreal6xangleQ=180);fcn썫102TRANSF9ORMXVERSION3DLDFPRÎGx395n@P395. T +ransform"v9ersion.Declaredintransfor.web.:[LDFT2002.09.29.]TTO DO:PossibleBUG!!:Ac- tually*,qtheproblemthatoGccurredmayjusthavetodochoGosingthedirectionofrotation.;I'vechangedtheplaceUUwheretheproblemoGccurred,soI'llhaveUUtowritearoutinetotestthis.9Ȅ`+U 8Log)j`+U [LDFT2002.10.23.]XqChanged,KsoHthatthedirectionofȍrg!N8p0|sp1istested.mIfitisparalleltothexory-axis,thenthat^kaxisisusedforalignment. Otherwise,`thez-axisisused.Thismayhelpreduceinaccuraciescausedbyrotations.qHaven'tUUtestedityet.TODO:T*estthis! [LDFT2002.11.03.]Y;TOUUDO:SeeifIcan'tmakeP9oint"Dargumentsconst*. -[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ` 8EndTLogA>`hDe neUUT +[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ`GhDe neUUT ransform;'functions@125i+ T ransformAT @@ -1455,13 +1485,13 @@ 617)axis='y' w;else+axis@='z' w;T ransformKԱtOeF;tt:alignffwithffaxis@x(p0 ;p1 h;axisp);T ransformKԱiR=tc:inverse ();if(axis'x' w)tr:r}'otateo>(angleS);else*.6if5.(axis'y' w)tr:r}'otateo>(0;anglej);else+t/uS:r}'otateo>(0;0;anglej);tc=)ñi-c;tt:cle}'anA();this,ѷ= 8BeginTLogJʄ`> -[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ` 8EndTLogA>`hDe neUUPicture,Ffunctions@219i+ +ggϠn썷x3963DLDFPRÎG6PICTUREXVERSION103n@P396. PictureTv9ersion.[LDFT2002.10.20.]Z6angleuޫisUUindegrees.N99Ȅ`+U 8Log)j`+U +[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ`GhDe neUUPicture,Ffunctions@219i+ T ransformAPicturehd::r}'otateoB(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleNH˫) fT ransformKԱtOeF;tt:r}'otateo>(p0 ;p1 h;anglej);tr}'ansformBz[=RtU;return7漱t;.; -g397. Projection.[LDFT2002.10.23.]\EF*orstylisticreasons,andforthesakeofcleanprogramming,IbGelieve_$thattheprogrammerwhousespr}'oject"2()shouldensurethatapplyfftr}'ansformJ()hasbGeeninvoked rst.7However,wtr}'ansform2ispcheckedinpr}'oject!ޫ()andapplyfftr}'ansformI()isinvoked,wifrequired,soinvokingapplyfftr}'ansformF߫()UUexplicitlybGeforehandisnotstrictlyspeakingnecessary*.9Ȅ`> 8BeginTLogJʄ`> +g397. Projection.[LDFT2002.10.23.]\EF*orstylisticreasons,andforthesakeofcleanprogramming,IbGelieve_$thattheprogrammerwhousespr}'oject"2()shouldensurethatapplyfftr}'ansformJ()hasbGeeninvoked rst.7However,wtr}'ansform2ispcheckedinpr}'oject!ޫ()andapplyfftr}'ansformI()isinvoked,wifrequired,soinvokingapplyfftr}'ansformF߫()UUexplicitlybGeforehandisnotstrictlyspeakingnecessary*.9Ȅ`+U 8Log)j`+U [LDFT2002.09.09.]XmThe3newversionnowalmostworksAddeddivisionofpr}'ojectiveffcoordinatesd*ybythevqaluecalculated6forw Eث.iHowever,it6doGesn'tworkwhenIusehexffp}'attern1;~().Findoutwhynot!!TODO:AddroutineUUforcalculatingzls.qThenIcanaddsortingroutineinPicture)f::outputD(). [LDFT2002.09.14.]Y Im"bGelievem(I'vegottenthenewversiontoworknow.ALOOKm"UP:DoIneedtodividethederived]z vqalue]byw ˑ?I]don'tthinkit'snecessary*.Sincethez vqaluesofalloftheP9oints&bwouldbGedividedbythesameamount,OtheirrelativepGositionswouldremainthesame,Osinceonlytherelationship\closerorfurtherUUaway"matters,nottheexactamounts. @@ -1469,22 +1499,22 @@ oQcus#argumenta tothisfunction.(Defaultisdefaultfffo}'cus;?,dbutitwasnecessaryto*writeadummyversionofthisfunctioninordertomakethiswork,3bGecausedefaultfffo}'cus>3doesn'texistattheUUtimethatthisdeclarationiscompiled. [LDFT2002.09.18.]X*ChangedaDnameofthisfunctionfromp}'erspfftransformH`k()topr}'oject#9andaddedT ransformargument. -[LDFT2003.05.09.]YBUGEFIX:EAddedloGop,settingallelementsofpr}'ojectiveffcoordinatesgAto0.CThiswasdoneintheconditionallycompiledcoGdefortheDECcompiler,ώbutIforgottodoitforGCCwhenaddedtheUUdeclarationoftempffc}'oordinatesQQ%andresizedit.qIttoGokmeabout6{7hoursto ndthisbug!Ȅ` 8EndTLogA>`398. F -oQcusTargumen9t.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.11.]Y;AddedUUdefaultsforpr}'ojmandfactorY3.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +[LDFT2003.05.09.]YBUGEFIX:EAddedloGop,settingallelementsofpr}'ojectiveffcoordinatesgAto0.CThiswasdoneintheconditionallycompiledcoGdefortheDECcompiler,ώbutIforgottodoitforGCCwhenaddedtheUUdeclarationoftempffc}'oordinatesQQ%andresizedit.qIttoGokmeabout6{7hoursto ndthisbug!Ȅ`G398. F +oQcusTargumen9t.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.11.]Y;AddedUUdefaultsforpr}'ojmandfactorY3.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ bQool#gpr}'ojectBu(const*F -oQcus>uC&FuC&FuC&F 8BeginTLogJʄ`> +0++)f2tempffc}'oordinates|[iq]+=lworldffc}'oordinatesb0j[jī]8f1:getfftr}'ansformffelementa=ū(j;i);(ggin썷x4003DLDFPRÎGKPJARALLELXPROJECTION105n@P400. P9arallelTprojection. [LDFT2002.11.06.]OLTODO:Addawayofpro8jectingontoaplaneotherthanthex-yplane.?It'spGossibletoacheiveJqthesamee ectbyrotatingthePicture,0bGeforeoutputtingit,LbutitwouldbGenicetodosowithoutchangingUUthePicture(b. +TheUUxandypro8jectivecoGordinatesaresimplytakenfromtheworldcoGordinates.9Ȅ`+U 8Log)j`+U [LDFT2002.10.23.]Y;AddedUUthissection. -[LDFT2002.12.18.]Y;ChangedUUPARALLEL10toUUPARALLEL_X_YF0andUUaddedPARALLEL_X_ZandPARALLEL_Z_YBۙ.Ȅ` 8EndTLogA>`hDe neUUP9oint"Dfunctions@285i+ +[LDFT2002.12.18.]Y;ChangedUUPARALLEL10toUUPARALLEL_X_YF0andUUaddedPARALLEL_X_ZandPARALLEL_Z_YBۙ.Ȅ`GhDe neUUP9oint"Dfunctions@285i+ if9(pr}'ojZCfProjections?2::E"PARALLEL_X_Y&p_ pr}'oj9MfProjections?2::E"PARALLEL_X_Z_ pr}'oj(Projectionsbh::iZPARALLEL_Z_Y)fusing2SnamespacekProjectionsb;if(factor0)fc}'err3˷""ERROR! In Point::prloject():\n"fO""factor == 0. Multilplying coordinates b\2y 0 doesn't make sense. ":"Using 1 instead.\n\kn"yV ush;factor;=1;gunsignedD7shortbhorizontal;unsignedD7shortbvertic}'al;if(pr}'oj۷PARALLEL_X_YD<_8pr}'ojPARALLEL_X_ZBM\)=[LDFT2002.12.18.]T7ExplainUUthis!!o=horizontalC}=0;else+horizontal[|\=2;if(pr}'oj۷PARALLEL_X_YD<_8pr}'ojPARALLEL_Z_YBM\)vertic}'al(=1;else+vertic}'alO=2;pr}'ojectiveffcoordinatesr[0]=worldffc}'oordinatesO[horizontal,c]8factor<;pr}'ojectiveffcoordinatesr[1]=worldffc}'oordinatesO[vertic}'al!]8factor<;pr}'ojectiveffcoordinatesr[2]=0;pr}'ojectiveffcoordinatesr[3]=1;if(DEBUGY)fc}'out6Ck1"projective_coordinamtes: ("y1pr}'ojectiveffcoordinatescD[0]1", "Z2pr}'ojectiveffcoordinates[1]B{", " Rpr}'ojectiveffcoordinatesc[2]", " R2pr}'ojectiveffcoordinates[3]")"ԏendlendl ush;greturn7trueJT; -gin썷x4013DLDFPRÎGyPERSPECTIVEXPROJECTION105n@P401. P9erspQectiveprojection.!!KLUDGE:9SeebGelow.[LDFT2002.11.08.]W 0TO9fDO:GetnumbGers9to outputUUusingonly7ҫdecimalnotation!hDe neUUP9oint"Dfunctions@285i+ +gjɠn썫106PERSPECTIVEXPRÎOJECTIONy3DLDFPRGx401n@P401. P9erspQectiveprojection.!!KLUDGE:9SeebGelow.[LDFT2002.11.08.]W 0TO9fDO:GetnumbGers9to outputUUusingonly7ҫdecimalnotation!hDe neUUP9oint"Dfunctions@285i+ if(tempffc}'oordinatesJ{[2]8+f1:getffdistanc}'e4y()0)fc}'err)|"ERROR! In Point::prkoject():\n";"temp_coordinates[2]k == "TMtempffc}'oordinatesMm[2](", f.distance == "Ϯxf^:getffdistanc}'e4y()xendl"Sum == 0. Can't perk
epsګ)?saveffz!v:0; -if(DEBUGY)fc}'out* Q"Perspective coordinkates:\n(");for%舫(i9 =0;i 9 <4;i++)fc}'out4 Rpr}'ojectiveffcoordinatesa}+[iq];if)(i9 <3)c}'out O", "Mt;gc}'out* Q")\n" T ush;jȠn썫106PERSPECTIVEXPRÎOJECTIONy3DLDFPRGx401n@P +if(DEBUGY)fc}'out* Q"Perspective coordinkates:\n(");for%舫(i9 =0;i 9 <4;i++)fc}'out4 Rpr}'ojectiveffcoordinatesa}+[iq];if)(i9 <3)c}'out O", "Mt;gc}'out* Q")\n" T ush;k탠n썷x4013DLDFPRÎGyPERSPECTIVEXPROJECTION107n@P g for臫(i9 =0;i 9 <2;i++)=%d[LDFT2002.11.07.]TSKLUDGE.zAddedthisloGop.Thevqalueusedforcomparisonisslightlylarger(thangonethatarosewhileIgwastestingtheconstructorofT;runcffOctahe}'dronT.eps2wastoGosmall.(=if(fabs2ҫ(pr}'ojectiveffcoordinates^[iq])10:0810^054)pr}'ojectiveffcoordinatesc[i]=0; if(DEBUGY)c}'out O"Exiting project().\kn"yV ush; @@ -1517,30 +1547,30 @@ freturn7pr}'ojectV]ʫ(defaultfffo}'cus7;pr}'ojk;factor); g404. Applying transformations.ThisrversionappliesthetransformationstoredinP9ointR::tr}'ansform,E.!!]AddRaversionthatappliesaT ransform9suppliedasanargument!!][LDFT2002.12.08.]R WBUGQFIX:SeebGelow.hDeclareUUP9oint"Dfunctions@284i+ -v9oid"applyfftr}'ansformi();kn썷x4053DLDFPRÎGړAPPLJYINGXTRANSFORMATIONS107n@P405.hDe neUUP9oint"Dfunctions@285i+ +v9oid"applyfftr}'ansformi();lVn썫108APPLJYINGXTRANSFÎORMATIONSړ3DLDFPRGx405n@P405.hDe neUUP9oint"Dfunctions@285i+ v9oid"P9oint?%::applyfftr}'ansformG() fbQool-hDEBUGK.٫=falsev\;=trueĒ=if?(tr}'ansform+A:isffidentity-2())=BIfOtr}'ansform/۱:matrix!5isOtheidentityOmatrix,Pwedon'tneedtobGother2toUUpGerformthematrixmultiplication.o=return>h;in9t%i);in9t%j*U;v\ralarra9y=ZChreal]ٷiUUnewffc}'oordinatesI;newffc}'oordinatesZNR:r}'esizei(4;0);=[LDFT2002.12.08.]T7BUGUUFIX.F*orGNUCC.=if(DEBUGY)fc}'out4 R"x == "*ԃworldffc}'oordinatesO[0]endl ush;c}'out4 R"y == "*ԃworldffc}'oordinatesO[1]endl ush;c}'out4 R"z == "*ԃworldffc}'oordinatesO[2]endl ush;c}'out4 R"w == "*ԃworldffc}'oordinatesO[3]endl ush;gfor%舫(i9 =0;i 9 <4;i++)ffor/艫(jwܫ=0;j w<4;j 0++)f(newffc}'oordinatesnNT[iq]+=lworldffc}'oordinatesb0j[jī]8tr}'ansform-!:matrix?[j][iq];(if3(newffc}'oordinatesFNP[iq]6=0)f2if=(DEBUGY)f<c}'outR U"new_coordinates["dbi $"] == "*ԃnewffc}'oordinatesIh[iq]endl ush;2g(gggreal*0eps< =epsilon"6();for%舫(i9 =0;i 9 <4;i++)fif)(DEBUGY)f(c}'out> S"new_coordinates["dbi $"] == "*ԃnewffc}'oordinatesIh[iq]endl ush;gworldffc}'oordinatesk[iq]=(fabs2ҫ(newffc}'oordinatesFNP[i])>epsګ)?newffc}'oordinatesIh[i]:0;gtr}'ansform?C:r}'esetƷ(); g406. SetTtransformtoiden9tity .hDeclareUUP9oint"Dfunctions@284i+ -v9oid"r}'esetfftransformf2();ln썫108SETXTRANSF9ORMTOIDENTITYũ3DLDFPRÎGx407n@P407.hDe neUUP9oint"Dfunctions@285i+ +v9oid"r}'esetfftransformf2();mn썷x4073DLDFPRÎGũSETXTRANSF9ORMTOIDENTITY109n@P407.hDe neUUP9oint"Dfunctions@285i+ v9oid"P9oint?%::r}'esetfftransformD]() ftr}'ansform?C:r}'esetƷ(); g408. Dra9wing.409. Dra9wdot. [LDFT2002.10.26.]Zdr}'awdot~0f()copies thisandputsthecopyontothev9ector)~Fshap}'esKVΫofthePictureargumentpictur}'e"ԫ.ThedatamembGersdr}'awdotffvalue@ǫ,hdr}'awdotffcolor@,handp}'enareonlysetonthecopy*,hnotonUUUVthisA .qAllUUofthedrawingand llingfunctionsbGehavesimilarly*. -[LDFT2003.05.30.]XTO@DO:@AddcoGdeforallocatingnewColor,Eifddr}'awdotffcolorD:useffname-?isfalse9,asintheUUdrawingand llingfunctionsforP9ath<andSolid,.410. NormalTv9ersion.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.11.]Y;MadeUUpp}'enͫandUUdr}'awdot&֫()UUitselfconst*.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +[LDFT2003.05.30.]XTO@DO:@AddcoGdeforallocatingnewColor,Eifddr}'awdotffcolorD:useffname-?isfalse9,asintheUUdrawingand llingfunctionsforP9ath<andSolid,.410. NormalTv9ersion.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.11.]Y;MadeUUpp}'enͫandUUdr}'awdot&֫()UUitselfconst*.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ v9oid"Pdr}'awdotE6(const}~Color 8BeginTLogJʄ`> +gnn썫110PICTUREXARÎGUMENTFIRSTUW3DLDFPRGx412n@P412. PictureTargumen9t rst.9Ȅ`+U 8Log)j`+U [LDFT2002.01.24.]Y;AddedUUthisversion. [LDFT2003.01.31.][Removedm defaultforpictur}'e$u. Havingadefaultmadecallstodr}'awdot)()withnoargumentsUUambiguous. -[LDFT2003.07.11.]Y;MadeUUpp}'enͫandUUdr}'awdot&֫()UUitselfconst*.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +[LDFT2003.07.11.]Y;MadeUUpp}'enͫandUUdr}'awdot&֫()UUitselfconst*.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ v9oid"Edr}'awdotF_ƫ(Picture(Ϋ&0pictur}'eO±;constColor?&F3ddr}'awdotffcolor9O=Colors)::0.5defaultffc}'olorg;conststringpp}'en5>="" z)UUconst*;413.hDe neUUP9oint"Dfunctions@285i+ v9oid"P9oint?%::dr}'awdot$(Picture(b&0pictur}'eOV;constJColor?z=&GA[ddr}'awdotffcolor_;constJstring@pp}'enV0)UUconst fdr}'awdot7(ddr}'awdotffcolorA;pp}'en˱;pictur}'e ~); @@ -1550,79 +1580,79 @@ v9oid"P9oint?%::undr}'awdot/(string!%Mpp}'en6[p;Picture* &2c(pictur}'eQk) fP9oint27ptDU=cr}'eateffnewffp}'ointK();pt%=thisϫ;pt䟟~!dr}'awdotffvaluea=UNDRAWDOT2e;pt䟟~!dr}'awdotffcolora#L=Colors$::+.4b}'ackgroundffcolorur;#if 1pt䟟~!p}'en4k=pp}'en;;#endifpictur}'e5+=H%Dstaticus4wcast|hShapQe"Ab'Aci(pt 䝫); -g416. PictureTargumen9t rst.U9Ȅ`> 8BeginTLogJʄ`> +g416. PictureTargumen9t rst.9Ȅ`+U 8Log)j`+U [LDFT2002.01.24.]Y;AddedUUthisversion. -[LDFT2003.01.31.]ZdfRemoveddefaultforpictur}'e#V.HHavingadefaultmadecallstoundr}'awdot3B%()withnoargumentsUUambiguous.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -v9oid"undr}'awdotQ~(Picture(b&0pictur}'eOV;string"pp}'en:0="" z);n Pn썫110PICTUREXARÎGUMENTFIRSTUW3DLDFPRGx417n@P417.hDe neUUP9oint"Dfunctions@285i+ +[LDFT2003.01.31.]ZdfRemoveddefaultforpictur}'e#V.HHavingadefaultmadecallstoundr}'awdot3B%()withnoargumentsUUambiguous.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +v9oid"undr}'awdotQ~(Picture(b&0pictur}'eOV;string"pp}'en:0="" z);o'n썷x4173DLDFPRÎGUWPICTUREXARGUMENTFIRST111n@P417.hDe neUUP9oint"Dfunctions@285i+ v9oid"P9oint?%::undr}'awdot/(Picture(b&0pictur}'eOV;string"pp}'en8) fundr}'awdotB(pp}'en6#;pictur}'e ~); g418. Dra9w.[LDFT2002.10.26.][dr}'awq()0createsaPath!īwiththetwo0Points)?.?thisC˫and0theargumentp,aandtheconnector"--" ,callsP9ath::dr}'aw(߫()forit,andreturnstheP9ath.~Thelatterisaline,i.e.,P9athh::getfflineffswitch@ց()UUreturnstrueoBforit. -dr}'aw (ܫ()UUmustbGede nedinpaths.web,becauseP9ath<isanincompletetypehere.419. NormalTv9ersion.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.01.15.]Y;AddedUUtheargumentaarr}'ow".Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +dr}'aw (ܫ()UUmustbGede nedinpaths.web,becauseP9ath<isanincompletetypehere.419. NormalTv9ersion.9Ȅ`+U 8Log)j`+U +[LDFT2003.01.15.]Y;AddedUUtheargumentaarr}'ow".Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ P9ath&dr}'aw&FpK;const $ColorA'&Hddr}'awffcolor$=-- -.Colors+ ::1Jdefaultffc}'olori%;stringddashe}'dD,="" z;string"pp}'en:0="";Picture* -&2c(pictur}'eT3=curr}'entffpictureD߱;bQoolLaarr}'ow==falsev\)UUconst*;420. Pictureargumen9t rst.[LDFT2003.01.15.]ZcQThis0pfunctionisconvenient0pforwhenI0gwant0ptopassaPicture(bargument.U9Ȅ`> 8BeginTLogJʄ`> +&2c(pictur}'eT3=curr}'entffpictureD߱;bQoolLaarr}'ow==falsev\)UUconst*;420. Pictureargumen9t rst.[LDFT2003.01.15.]ZcQThis0pfunctionisconvenient0pforwhenI0gwant0ptopassaPicture(bargument.9Ȅ`+U 8Log)j`+U [LDFT2002.09.17.]Y;AddedUUthisfunction. -[LDFT2003.01.15.]Y;AddedUUtheargumentaarr}'ow".Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -P9ath%dr}'aw<(Picture(b&0pictur}'eOV;constJP9oint>&FpK;constJColor?z=&GA[ddr}'awffcolor~=Colors)::0.5defaultffc}'olorg;string?%Pddashe}'de3y="" z;string"pp}'en:0="";bQoolLaarr}'ow==falsev\);421. Dra9wTarrow.422. NormalTv9ersion.[LDFT2003.01.15.]Z6De nedUUinpaths.web.c9Ȅ`> 8BeginTLogJʄ`> +[LDFT2003.01.15.]Y;AddedUUtheargumentaarr}'ow".Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +P9ath%dr}'aw<(Picture(b&0pictur}'eOV;constJP9oint>&FpK;constJColor?z=&GA[ddr}'awffcolor~=Colors)::0.5defaultffc}'olorg;string?%Pddashe}'de3y="" z;string"pp}'en:0="";bQoolLaarr}'ow==falsev\);421. Dra9wTarrow.422. NormalTv9ersion.[LDFT2003.01.15.]Z6De nedUUinpaths.web.N99Ȅ`+U 8Log)j`+U [LDFT2003.01.15.]Y;AddedUUthisfunction. -[LDFT2003.06.03.]Y;MadeUUdr}'awarrow2H()UUconst*.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +[LDFT2003.06.03.]Y;MadeUUdr}'awarrow2H()UUconst*.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ P9ath&`dr}'awarrowUSz(constP9oint>7&EUpJU;const OFColor@n5&H5Sddr}'awffcolorb=fgColors*kE::0defaultffc}'olorhu^;stringddashe}'dD,="" z;string"pp}'en:0="";Picture* -&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;o. n썷x4233DLDFPRÎGUWPICTUREXARGUMENTFIRST111n@P423. PictureTargumen9t rst.[LDFT2003.01.15.]Z6De nedUUinpaths.web.c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.03.]Y;MadeUUdr}'awarrow2H()UUconst*.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -P9ath%dr}'awarrowT~(Picture(b&0pictur}'eOV;constJP9oint>&FpK;const;string#pp}'en;Z=8R"")const8P;424. Undra9w.425. Normalv9ersion.This,functionmustbGede nedinpaths.web,4becauseitusesP9ath,4whichisanincompleteUUtypGehere.U9Ȅ`> 8BeginTLogJʄ`> +&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;p5Fn썫112PICTUREXARÎGUMENTFIRSTUW3DLDFPRGx423n@P423. PictureTargumen9t rst.[LDFT2003.01.15.]Z6De nedUUinpaths.web.N99Ȅ`+U 8Log)j`+U +[LDFT2003.06.03.]Y;MadeUUdr}'awarrow2H()UUconst*.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +P9ath%dr}'awarrowT~(Picture(b&0pictur}'eOV;constJP9oint>&FpK;const;string#pp}'en;Z=8R"")const8P;424. Undra9w.425. Normalv9ersion.This,functionmustbGede nedinpaths.web,4becauseitusesP9ath,4whichisanincompleteUUtypGehere.9Ȅ`+U 8Log)j`+U [LDFT2002.4.8.]O?AddedUUthisfunction. -[LDFT2002.11.03.]Y;ChangedUUthisfunction,sothatitreturnstheP9ath<p}'a*9R,insteadofv9oidث.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -P9ath'5undr}'awH[(constxP9oint?&G~ptQb;string$Qddashe}'dLY=Y"";string$Qpp}'en>Hͫ=Y"";Picture&%!pictur}'eG=curr}'entffpictureD߫);426. PictureTargumen9t rst.U9Ȅ`> 8BeginTLogJʄ`> +[LDFT2002.11.03.]Y;ChangedUUthisfunction,sothatitreturnstheP9ath<p}'a*9R,insteadofv9oidث.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +P9ath'5undr}'awH[(constxP9oint?&G~ptQb;string$Qddashe}'dLY=Y"";string$Qpp}'en>Hͫ=Y"";Picture&%!pictur}'eG=curr}'entffpictureD߫);426. PictureTargumen9t rst.9Ȅ`+U 8Log)j`+U [LDFT2002.09.17.]Y;AddedUUthisfunction.qIt'sconvenientUUforwhenIwantUUtopassaPicture,Fargument. -[LDFT2002.11.03.]Y;ChangedUUthisfunction,sothatitreturnstheP9ath<p}'a*9R,insteadofv9oidث.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -P9ath%undr}'awG (Picture(b&0pictur}'eOV;constJP9oint>&FptPp;string"ddashe}'dH="" z;string"pp}'en:0="");427. Dra9w+help.[LDFT2002.10.26.]Zdr}'awffhelps()islikedr}'awū(),exceptthattheP9ath8isonlydrawnifthewstatic"P9ath>(datawmembGerdoffhelpfflines>˷ttrue .Thisisconvenientfordrawingconstructionlinesthatshouldn'tUUbGeoutputinthe nalversionofadrawing.qAlso,thedefaultcolorisUVColors*.4::0rhelpffc}'olor\v.428. Normaldv9ersion.[LDFT2002.4.8.]RESThisRnfunctionmustbGede nedinpaths.web,becauseitusesP9athd,UUwhichisanincompletetypGehere.U9Ȅ`> 8BeginTLogJʄ`> +[LDFT2002.11.03.]Y;ChangedUUthisfunction,sothatitreturnstheP9ath<p}'a*9R,insteadofv9oidث.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +P9ath%undr}'awG (Picture(b&0pictur}'eOV;constJP9oint>&FptPp;string"ddashe}'dH="" z;string"pp}'en:0="");427. Dra9w+help.[LDFT2002.10.26.]Zdr}'awffhelps()islikedr}'awū(),exceptthattheP9ath8isonlydrawnifthewstatic"P9ath>(datawmembGerdoffhelpfflines>˷ttrue .Thisisconvenientfordrawingconstructionlinesthatshouldn'tUUbGeoutputinthe nalversionofadrawing.qAlso,thedefaultcolorisUVColors*.4::0rhelpffc}'olor\v.428. Normaldv9ersion.[LDFT2002.4.8.]RESThisRnfunctionmustbGede nedinpaths.web,becauseitusesP9athd,UUwhichisanincompletetypGehere.9Ȅ`+U 8Log)j`+U [LDFT2002.4.8.]O?AddedUUthisfunction. -[LDFT2003.07.13.]Y;MadeUUthisfunctionconst*.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +[LDFT2003.07.13.]Y;MadeUUthisfunctionconst*.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ P9ath&/dr}'awffhelpQO׫(constP9oint>a)&F(GptP ;const xColor@'&HEddr}'awffcolorhr=ׅׄColors*c::1>helpffc}'olor\;stringddashe}'dD,="" z;string"pp}'en:0="";Picture* -&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;p<n썫112PICTUREXARÎGUMENTFIRSTUW3DLDFPRGx429n@P429. Pictureargumen9t rst.[LDFT2002.09.17.]ZMThislversionisconvenientforwhenI\wanttopassa Picture(bargument.U9Ȅ`> 8BeginTLogJʄ`> +&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;qC8n썷x4293DLDFPRÎGUWPICTUREXARGUMENTFIRST113n@P429. Pictureargumen9t rst.[LDFT2002.09.17.]ZMThislversionisconvenientforwhenI\wanttopassa Picture(bargument.9Ȅ`+U 8Log)j`+U [LDFT2002.09.17.]Y;AddedUUthisfunction. -[LDFT2003.07.13.]Y;MadeUUthisfunctionconst*.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +[LDFT2003.07.13.]Y;MadeUUthisfunctionconst*.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ P9ath%dr}'awffhelpPb(Picture(b&0pictur}'eOV;constJP9oint>&FptPp;const<JColor[&c^ddr}'awffcolor-=Colors)::0.5helpffc}'olor[話;string"ddashe}'dHë="" z;string"pp}'en:ի="")8constG;430. Sho9wing.431. Sho9w.[LDFT2002.10.26.]Z6TheUUarguments:string!%Mtext IfUUtextvisUUnon-empty*,(i.e.,not""[),it'swrittentostandardoutput (stdout V).lIfqitisempty*,yorshow()iscalledwithoutanyarguments,ythe defaultUUisused,namely"Point:"-ۥ.c9harjIc}'oords Oneofthecharacters'w', 'p'j, 'u', or'v'ǫshouldbGeused,toindicate whichDsetofcoGordinatesshouldbeshown:Oworldffc}'oordinatesUc,pr}'ojec- tiveffc}'oordinates,hXuserffcoordinatesKy,hXordviewffcoordinatesK:,hXrespGectively*.hThe latter(twoexist,1butarenotcurrentlyused.IThecorrespGondinguppercase charactersUUcanalsobGeused.const*bQool7doffp}'ersp OnlyKmeaningfulifthepr}'ojectiveffcoordinateshlarebGeingshown(c}'oords argumentu'p'ԫ).'Ifudoffp}'ersp/true,thenupr}'oject#2()uiscalledon vthis bGeforeu pr}'ojectiveffcoordinatese)areu shown.Thisisusuallywhatonewants. However,itomaysometimesbGeusefultoshowthecontentsofpr}'ojectiveffco- ordinates,withoutcallingpr}'oject#((),inwhichcasedoffp}'ersp/ 6shouldbGe falseZ.const*bQool7doffapply Usually*,applyfftr}'ansformI"ɫ()OshouldbGecalledonPthisUbeforeshowingaset of/coGordinates,jsothedefaultfordoffapply+3istrueǫ.PHowever,it/maysome- times*pbGeusefultoshowthevqaluesofthecoordinateswithoutapplying tr}'ansformW,UUinwhichcasedoffapply,shouldbGefalse.F oQcus J%Jf OnlyKmeaningfulifthepr}'ojectiveffcoordinateshlarebGeingshown(c}'oords argument>'p').Refers>totheF oQcus$ȫusedforpro8jection.Ifthedefault is used,*or0ispassedastheargumentexplicitly*,thentheglobalvqariable defaultfffo}'cusSiisUUused.const*unsignedNashortl,Spr}'oj OnlyKmeaningfulifthepr}'ojectiveffcoordinateshlarebGeingshown(c}'oords argument^S'p'). Refers^Stothepro8jectionused.Currently*,I've^Sonly programmeddthepGerspectivedandtheparallelpro8jections.Thedefault isUUthepGerspectiveUUpro8jection.const*real4factor OnlyKmeaningfulifthepr}'ojectiveffcoordinateshlarebGeingshown(c}'oords argument'p'E$)andtheparallelpro8jectionisbGeingused. nThexand y.vqaluesinpr}'ojectiveffcoordinatesfoaremultipliedbyfactor ,E$soitcanbGe usedHtomagnifyorshrinkthepro8jectedimage. Thedefaultis1(no magni cationUUorshrinking). -[LDFT2002.10.26.]Y;TOUUDO:Addcase'a' forc}'oords"6forshowingallofthesetsofcoGordinates.qLen썷x4313DLDFPRÎGHFSHOW113n#ލ9Ȅ`> 8BeginTLogJʄ`> +[LDFT2002.10.26.]Y;TOUUDO:Addcase'a' forc}'oords"6forshowingallofthesetsofcoGordinates.rRqn썫114SHOÎWHF3DLDFPRGx431n9Ȅ`+U 8Log)j`+U [LDFT2002.10.26.]X!!FKLUDGE:InthetextabGove,I'vehadtotypeset\pr}'ojectiveffcoordinates"using\\it"explicitlyUUinacoupleofplaces,inordertogetthehyphenationtowork. [LDFT2002.11.12.]Z8Added\\relax V"aftertheargumentsto\\ARG\"intheTU>VExXcoGdeaboveinordertosuppressOaspaceatthebGeginningofthe rstlineofthefollowingindentedparagraph.oIOcouldn't gureoutaUUwayofsuppressingthespacewithinthede nitionof\ARG۱. -[LDFT2003.04.30.]Y;Changed,UUsothatanewlineisnotoutputfollowingtext!.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +[LDFT2003.04.30.]Y;Changed,UUsothatanewlineisnotoutputfollowingtext!.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ v9oid#show:Oϫ(string!Dtext7V«="";c9harc}'oords;&='w'Y;const AbQool;doffp}'erspd=trueJ;const AbQooldoffapplyGd=true$;F oQcus" )' *f0'=0;const *unsignedPbshortnWpr}'ojY=Projections=::Di.PERSP_/;const *realfactor;=1)UUconst*;432.hDe neUUP9oint"Dfunctions@285i+ v9oid#WP9oint@::show(string!text3;c9haroc}'oords7;const [bQool:doffp}'ersp`,;const [bQool:doffapply`;F oQcus27f<;constJunsignedP Xshortmpr}'ojʾ;constJreal6xfactorQV)UUconst fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(text"" z)text="Point:"-Mh;c}'out* Qtext" " w;c}'oords2Ц=tolower#(c}'oords );if(c}'oordsФ'w' w);=DoUUnothing.o=else*.6if5.(c}'oordsФ'p' w)c}'out O"Projective coordinaktes.\n"G ush;else*.6if5.(c}'oordsФ'u' w)c}'out O"User coordinates.\nk"tTY ush;else*.6if5.(c}'oordsФ'v' w)c}'out O"View coordinates.\nk"tTY ush;else+fc}'err45"WARNING! In |show()l|: ""Invalid character flor coords argument.\n"ڷ2"Showing world coordinates.\n"+ ush;c}'oords<Ч='w' w;gif(thisϷINVALID_POINTGY)fc}'err3|"Point is == INVALIDk_POINT.\nCan't show.Ơ Returning.\n"! ush;return>h;gif(DEBUGY)tr}'ansform0A:show("Transform before aphply_transform");v\ralarra9y=ZChreal]ٷiUUv Q*=getffallffc}'oords=n+(c}'oords ;doffp}'ersp'S;doffapply'};f;pr}'ojk;factor);c}'out* Q"("ԏvի[0]", "v[1]", "v[2]")\n" T ush;if(DEBUGY)ftr}'ansformID:show("Transform after apphly_transform");c}'out4 R"on_free_store == "i_onfffr}'eeffstore=3""\n"Mt;g g433. Sho9wTtransform.hDeclareUUP9oint"Dfunctions@284i+ -v9oid"showfftr}'ansformgSū(string!%Mtext5D1="" z);r_n썫114SHOÎWXTRANSFORM 63DLDFPRGx434n@P434.hDe neUUP9oint"Dfunctions@285i+ +v9oid"showfftr}'ansformgSū(string!%Mtext5D1="" z);sen썷x4343DLDFPRÎG 6SHOWXTRANSFORM115n@P434.hDe neUUP9oint"Dfunctions@285i+ v9oid"P9oint?%::showfftr}'ansformEU(string!%Mtext2}) fif(text"" z)text="transform:"BM\;c}'out* Qtextendlګ;tr}'ansform?C:show(); -g435. Outputting.436. OutputropQerator.[LDFT2002.10.26.][8ThisfunctionisusedinP9ath\::outputD()forwritingthex andIyvqaluesofthepr}'ojectiveffcoordinatesgtooutffstr}'eam3.AllcoGdeusingthisfunctionmustensurethatapplyfftr}'ansformF߫()UUandpr}'oject!c()arecalled rstث!c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.09.16.]Y;RemovedUUcallstoapplyfftr}'ansformIu4()andpr}'oject!c().Ȅ` 8EndTLogA>`hDeclareUUnon-membGerfunctionsforP9oints'ݭ436i -ostr}'eam/&8opQerator-ϕ7ϖ(ostr}'eam%&8o;P9oint E&(acp-ic); SeeXalsosections490and511.ThisXco:()Hisapurevirtual.RfunctioninShapQe%4. LIt'scalledbyPicture&::outputD().E EachoftheShapQe$ApGointersonthev9ector%H|shap}'esEinthePicture+:AmustbGe\extracted".F*orP9oints$,thismeanspro8jectingtheP9oint$BusingtheF oQcus&'Fpassedtoextr}'act#[l()asanargument. 8BeginTLogJʄ`> +[LDFT2002.10.26.]YKNAWv9ector&ishreturnedratherthanthisbyitselfbGecauseitmaysometimesbGeusefultoreturn acollectionofShapQe%(pGointersratherthanasingleone._XThiswasformerlythecaseforCubQoid(m,)butatUUthepresenttime,noversionofextr}'act"ī()returnsav9ector&TwithmorethanonepGointertoShapQe"Ab.N99Ȅ`+U 8Log)j`+U [LDFT2002.09.17.]Y WAddedWqconst!/F oQcusA&I fRaargumentWqanderrorhandlingcoGde.xNow,WiftheP9oint"I*cannotbGefpro8jectedontotheprojectionplaneusingtheF -oQcus'f-,>itisnotputontothev9ector%%hShapQe$R)RiPicture&::elements',UUandconsequentlyneverreachesPicture)f::outputD()andP9oint::output().Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +oQcus'f-,>itisnotputontothev9ector%%hShapQe$R)RiPicture&::elements',UUandconsequentlyneverreachesPicture)f::outputD()andP9oint::output().Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ v9ector)IhShapQe"Ab'AciUUextr}'act"ī(const*F -oQcus>uC&FuC&FuC&F.\n"M ush;returnA潱vGz;gif(DEBUGY)fc}'out6eS+"world_coordinates: nR ("mS+worldffc}'oordinatesRg)[0]S+", " ,2worldffc}'oordinates[1]ط", " worldffc}'oordinatesP֫[2]", " worldffc}'oordinatesP֫[3]2")\n"RA'"projective_coordinan@tes: ("eA'pr}'ojectiveffcoordinatesc:[0]A'2", "KٮSMpr}'ojectiveffcoordinatesc `[1]SM", ",pr}'ojectiveffcoordinates[2]", ",2pr}'ojectiveffcoordinates[3]")\n"q;gv4:pushffb}'ack+XR(this붫);return7漱v=y; @@ -1630,7 +1660,7 @@ virtual/inlineOconstmBv\ralarra9yhreal]ٷiUUgetffextr}'emes:()UUconst freturn7pr}'ojectiveffextremes ; g445. GetTminim9umz.[LDFT2002.09.17.]Z6AddedUUthisfunction.hDeclareUUP9oint"Dfunctions@284i+ -virtual/realFAgetffminimumffzګ()UUconst*;un썷x4463DLDFPRÎGGETXMINIMUMZ117n@P446.hDe neUUP9oint"Dfunctions@285i+ +virtual/realFAgetffminimumffzګ()UUconst*;vLn썫118GETXMINIMUMZ3DLDFPRÎGx446n@P446.hDe neUUP9oint"Dfunctions@285i+ real /P9oint=M{::getffminimumffzD]ܫ()UUconst fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Point::getk_minimum_z()"T5endl ush;if(DEBUGY)c}'out O"minimum_z == "Tkpr}'ojectiveffextremesVi[4]endl ush;if(DEBUGY)c}'out O"Exiting Point::get_kminimum_z()"8endl ush;return7pr}'ojectiveffextremes [4]; g447. GetTmaxim9umz.[LDFT2002.09.17.]Z6AddedUUthisfunction.hDeclareUUP9oint"Dfunctions@284i+ @@ -1642,10 +1672,10 @@ real /P9oint=M{::getffme}'anffz1()UUconst freturn7漫((pr}'ojectiveffextremesTQ[4]8+pr}'ojectiveffextremesV=1[5])=2); g451. Setrextremes.ThisHfunctionsets\extreme"vqaluesforthex,y*,andHz-coGordinates.LThisis,ofcourse,trivialÑforP9oints#,bGecausetheyonlyhaveÑonex,yandz-coGordinate.zSothemaximaandminimaforUUeachcoGordinatearealwaysthesame. -[LDFT2002.10.20.]ZTheprogrammerwhousessetffextr}'emes;q()mustensurethatapplyfftr}'ansformK%ǫ()andpr}'ojectw()UUareinvokedUUbGeforesetffextr}'emes:ޫ()!c9Ȅ`> 8BeginTLogJʄ`> +[LDFT2002.10.20.]ZTheprogrammerwhousessetffextr}'emes;q()mustensurethatapplyfftr}'ansformK%ǫ()andpr}'ojectw()UUareinvokedUUbGeforesetffextr}'emes:ޫ()!N99Ȅ`+U 8Log)j`+U [LDFT2002.09.17.]Y;AddedUUthisfunction. -[LDFT2002.09.18.]Y;ChangedUUthenameofthisfunctionfromsetffminimumffzF0V()tosetffextr}'emes:ޫ().Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -virtual/bQoolI/:setffextr}'emesë();vn썫118SETXEXTREMES3DLDFPRÎGx452n@P452.hDe neUUP9oint"Dfunctions@285i+ +[LDFT2002.09.18.]Y;ChangedUUthenameofthisfunctionfromsetffminimumffzF0V()tosetffextr}'emes:ޫ().Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +virtual/bQoolI/:setffextr}'emesë();wKn썷x4523DLDFPRÎGSETXEXTREMES119n@P452.hDe neUUP9oint"Dfunctions@285i+ bQool#gP9oint@;::setffextr}'emes7() fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Point::setk_extremes()"8endl ush;for%舫(in9ti=0;i 9 <4;i++)fif)(pr}'ojectiveffcoordinates^[iq]INVALID_REALBM\)f(c}'err=|·"ERROR! In Point::sekt_extremes():\n","projective_coordinaktes["TMi $"]"ԏ<" == INVALID_REAL.\n"&`"Setting every elemel`Jnt in projective_ext`remes "<"to INVALID_REAL and returning false.\n"M ush;(for9芫(in9tjӫ=0;j w<6;j 0++)pr}'ojectiveffextremesYQ[jī]=INVALID_REALBM\;(returnKfalse`;ggpr}'ojectiveffextremeshS[0]=pr}'ojectiveffcoordinatesa}+[0];=minUUx=pr}'ojectiveffextremeshS[1]=pr}'ojectiveffcoordinatesa}+[0];=maxUUx=pr}'ojectiveffextremeshS[2]=pr}'ojectiveffcoordinatesa}+[1];=minUUy=pr}'ojectiveffextremeshS[3]=pr}'ojectiveffcoordinatesa}+[1];=maxUUy=pr}'ojectiveffextremeshS[4]=pr}'ojectiveffcoordinatesa}+[2];=minUUz=pr}'ojectiveffextremeshS[5]=pr}'ojectiveffcoordinatesa}+[2];=maxUUz=if(DEBUGY)c}'out O"Exiting Point::setk_extremes()"8endl ush;return7trueJT; @@ -1660,73 +1690,73 @@ Inallthreeofthesecases,theShapQes)tӫthatarefurthestfromtheF oQcus"֫areoutput rst,sothattheycanbGeUUcovered,ifnecessary*,byShapQes*thatarecloser. IfSorting)p::NO_SORT)LispassedtoPicture)::outputD(),Velements-isnotsorted,VandtheShapQes)uareoutput -inUUtheorderinwhichtheyweredrawnor lled.wn썷x4543DLDFPRÎGCOMPJAREXMINIMUMZ119n@P454. CompareTminim9umz.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.05.16.]Y;AddedUUthisclassQ.Ȅ` 8EndTLogA>`hDe neUUcomparisonclasses@454i +inUUtheorderinwhichtheyweredrawnor lled.xn썫120COMPJAREXMINIMUMZ3DLDFPRÎGx454n@P454. CompareTminim9umz.9Ȅ`+U 8Log)j`+U +[LDFT2003.05.16.]Y;AddedUUthisclassQ.Ȅ`GhDe neUUcomparisonclasses@454i class$RCompareus4wminim9umus4zf public)=֫:in9topQeratorB;()(const*ShapQe@lEls1P};constJShapQeBGs2R')UUconstfreturnAs1J͟~PgetffminimumffzU()>s2 (~)getffminimumffzU6();g -g; SeeXalsosections455and456.ThisXco 8BeginTLogJʄ`> +g; SeeXalsosections455and456.ThisXco`hDe neUUcomparisonclasses@454i+ +[LDFT2002.09.21.]X?ChangedYfrom\minimumz"to\maximumz".OThisworksforthemorecommoncases.Ȅ`GhDe neUUcomparisonclasses@454i+ class$RCompareus4wmaxim9umus4zډf public)=֫:in9topQeratorB;()(const*ShapQe@lEls1P};constJShapQeBGs2R')UUconstfreturnAs1J͟~PgetffmaximumffzeK()>s2 (~)getffmaximumffzVE();g -g;xn썫120COMPJAREXMEANZ.3DLDFPRÎGx456n@P456. CompareTmeanz.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.09.17.]Y;AddedUUthisclassQ.Ȅ` 8EndTLogA>`hDe neUUcomparisonclasses@454i+ +g;y$n썷x4563DLDFPRÎG.COMPJAREXMEANZ121n@P456. CompareTmeanz.9Ȅ`+U 8Log)j`+U +[LDFT2002.09.17.]Y;AddedUUthisclassQ.Ȅ`GhDe neUUcomparisonclasses@454i+ class$RCompareus4wmeanus4zuf public)=֫:in9topQeratorB;()(const*ShapQe@lEls1P};constJShapQeBGs2R')UUconstfreturnD(((s1 ~getffminimumffzRn()+s1 ğ~getffmaximumffzWtB())=2)+>2((s2 ~getffminimumffzRn()8+s2 I~IgetffmaximumffzUn())=2));g -g;457. Output.[LDFT2002.10.26.]\Voutputye()#isapurevirtual,4functioninShapQe$. YAftertheShapQepGointersonthev9ector'PictureN׫::shap}'es"LhavebGeenextracted,RZoutput!a()iscalledforeachoftheShapQesthey6pGointto(exceptfortheones, 8BeginTLogJʄ`> +g;457. Output.[LDFT2002.10.26.]\Voutputye()#isapurevirtual,4functioninShapQe$. YAftertheShapQepGointersonthev9ector'PictureN׫::shap}'es"LhavebGeenextracted,RZoutput!a()iscalledforeachoftheShapQesthey6pGointto(exceptfortheones,asitsargument. [LDFT2002.09.17.]YChangedltheargumentf fromF oQcus#Ptoconst!QF oQcusB&Iս.RemovedtheinvoGcationsofapplyfftr}'ansformF߫()UUandpr}'oject!c()anderrorhandlingcoGdetoextr}'act"ī(). -[LDFT2002.10.23.][hRemovedtheargumentf . Sinceextr}'act$w()takescareofapplyingpr}'oject$,((),M thepr}'ojectiveffcoordinatesc:Ыarealreadyset,Зsoalloutput!()needstodoiswritethemtooutffstr}'eam8JwiththepropGerUUMET*APOSTinstructions.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -v9oid"output@ ();yPn썷x4583DLDFPRÎG=\0OUTPUT121n@P458.hDe neUUP9oint"Dfunctions@285i+ +[LDFT2002.10.23.][hRemovedtheargumentf . Sinceextr}'act$w()takescareofapplyingpr}'oject$,((),M thepr}'ojectiveffcoordinatesc:Ыarealreadyset,Зsoalloutput!()needstodoiswritethemtooutffstr}'eam8JwiththepropGerUUMET*APOSTinstructions.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +v9oid"output@ ();zn썫122OUTPUT=\03DLDFPRÎGx458n@P458.hDe neUUP9oint"Dfunctions@285i+ v9oid"P9oint?%::outputD() fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Point::outkput().\n"TA ush;if(doffoutput-Kfalsev\)fif)(DEBUGY)c}'out O"In Point::output():k do_output == false.Ơ Returning.\n"! ush;return>h;gif(dr}'awdotffvalue@DRAWDOT( k)outffstr}'eam7"drawdot "7b;else*.6if5.(dr}'awdotffvalue@UNDRAWDOT2e)outffstr}'eam7"drawdot "7b;else:=DRAWDOT=fc}'err6"WARNING! Invalid |dn۵rawdot_value|: "=޷dr}'awdotffvalueI2". Using \"drawdot\"\n" @ ush;#if 0$=!!qDe neUUaclass5forinformationontherunstate.o=if)(:RunffState-::4nonffstop[P)getchar&%();#endifoutffstr}'eamP"drawdot "7b;goutffstr}'eamHFշ7"("Rͷ7pr}'ojectiveffcoordinatescJ[0]7me}'asurementffunits]cB", "ʷ(pr}'ojectiveffcoordinates[1]me}'asurementffunitsX")" w;if(dr}'awdotffcolor?>6=Colors$::+.4defaultffc}'olorb)outffstr}'eam7" withcolor "JTqdr}'awdotffcolorD>;#if 1if(p}'en˷6="" z)outffstr}'eam7" withpen "?wp}'en;#endifoutffstr}'eamF";\n"q;if(DEBUGY)c}'out O"Exiting Point::outpkut().\n"D ush; -g459. LabQelling.460. LabQel.z>n썫122STRINGXARÎGUMENT3DLDFPRGx461n@P461. stringTargumen9t.[LDFT2002.10.27.]Z6TheUUarguments:string!%MtextffstrlTheUUtextforthelabGel.string!%Mp}'ositionffstrlIndicatesthepGositionofthelabeltextrelativetotheP9ointz.JThesamestrings'are lpGermitted'asinMET*APOST.Theyarewrittenunchecked'tooutffstr}'eam3ë,soifanlinvqalidustring"isuused,itwon'tcauseanerrorin3DLDF,butitwillinMET*APOST.lThepGermittedstrings,$Hare:"top"'{j(thedefault),c%"bot" )~,c%"lft",c%"rt"遫,c%"ulft"l(uppGer_wleft),b"llft"&ͫ(lowerleft),b"urt"!Ы(uppGerright),b"lrt"!Ы(lowerright),band""lforputtingthelabGelrightontopoftheP9ointȫ.GTheemptystringmustbGeusedlexplicitly*,UUbGecause"top"!qisthedefault.bQoolfdotlIfgtrueW,thengdotlabQeliswrittentooutffstr}'eam6gjratherthanlabel.+ThisargumentlisUUmainlyforusebythefunctiondotlab}'el%UH(),whichcallslab}'el()withdotztrue.Picture(b&0pictur}'elIndicates}thePicture/ontowhichtheLabQel%]shouldbGeplaced.>Thedefaultislcurr}'entffpicture: -[LDFT2003.01.15.]Y;TOUUDO:Addp}'en]argumenttolab}'el()anddotlab}'el%UH()!!c9Ȅ`> 8BeginTLogJʄ`> +g459. LabQelling.460. LabQel.{Ͷn썷x4613DLDFPRÎGSTRINGXARGUMENT123n@P461. stringTargumen9t.[LDFT2002.10.27.]Z6TheUUarguments:string!%MtextffstrlTheUUtextforthelabGel.string!%Mp}'ositionffstrlIndicatesthepGositionofthelabeltextrelativetotheP9ointz.JThesamestrings'are lpGermitted'asinMET*APOST.Theyarewrittenunchecked'tooutffstr}'eam3ë,soifanlinvqalidustring"isuused,itwon'tcauseanerrorin3DLDF,butitwillinMET*APOST.lThepGermittedstrings,$Hare:"top"'{j(thedefault),c%"bot" )~,c%"lft",c%"rt"遫,c%"ulft"l(uppGer_wleft),b"llft"&ͫ(lowerleft),b"urt"!Ы(uppGerright),b"lrt"!Ы(lowerright),band""lforputtingthelabGelrightontopoftheP9ointȫ.GTheemptystringmustbGeusedlexplicitly*,UUbGecause"top"!qisthedefault.bQoolfdotlIfgtrueW,thengdotlabQeliswrittentooutffstr}'eam6gjratherthanlabel.+ThisargumentlisUUmainlyforusebythefunctiondotlab}'el%UH(),whichcallslab}'el()withdotztrue.Picture(b&0pictur}'elIndicates}thePicture/ontowhichtheLabQel%]shouldbGeplaced.>Thedefaultislcurr}'entffpicture: +[LDFT2003.01.15.]Y;TOUUDO:Addp}'en]argumenttolab}'el()anddotlab}'el%UH()!!N99Ȅ`+U 8Log)j`+U [LDFT2002.05.14.]YChangedtextffstr(кsothatitisnolongeroptional.ItdoGesn'tmakeanysensetoprintemptyUUlabGels,soI'vemadeitarequiredargument. [LDFT2002.11.12.]Z8Added\\relax V"aftertheargumentsto\\ARG\"intheTU>VExXcoGdeaboveinordertosuppressOaspaceatthebGeginningofthe rstlineofthefollowingindentedparagraph.oIOcouldn't gureoutaUUwayofsuppressingthespacewithinthede nitionof\ARG۱. -[LDFT2003.07.09.]Y;MadeUUtextffstr$,UUp}'ositionffstr67,UUanddotargumentsconst*.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -v9oid# lab}'el7A(const9rstring?mtextffstr`4ӱ;conststringA7p}'ositionffstrvC="top"!;constbQool9PdotKu%=false ;Picture&%!pictur}'eG=curr}'entffpictureD߫)UUconst*;{Ӟn썷x4623DLDFPRÎGSTRINGXARGUMENT123n@P462.hDe neUUP9oint"Dfunctions@285i+ +[LDFT2003.07.09.]Y;MadeUUtextffstr$,UUp}'ositionffstr67,UUanddotargumentsconst*.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +v9oid# lab}'el7A(const9rstring?mtextffstr`4ӱ;conststringA7p}'ositionffstrvC="top"!;constbQool9PdotKu%=false ;Picture&%!pictur}'eG=curr}'entffpictureD߫)UUconst*;|n썫124STRINGXARÎGUMENT3DLDFPRGx462n@P462.hDe neUUP9oint"Dfunctions@285i+ v9oid"ӞP9oint?m::lab}'elt(constgstring>ytextffstr_½;conststring@!p}'ositionffstrse;constbQool9":dotH#G;Picture*qϫ&28pictur}'eQAë)2const fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Point::labkel()"TM"\n" ush;if(LabQelAg::#ϥDO_LABELSV] falsev\)fif)(DEBUGY)c}'out O"Label::DO_LABELS ==k false. Returning."#"\n" ush;return>h;gif(thisϷINVALID_POINTGY)fc}'err3e1"WARNING! In Point::l1label(): "i1"*this == INVALID_POl1INT.\nNot doing anyt1D\2hing.\n\n"ig ush;return>h;gLabQel38lblF==newϜ(LabQelAc);lblAl~#Ampt/"=P9ointad::%cr}'eateffnewffp}'ointnŞ();(lbl Aj~Akpt&)=thisϫ;if(dot%true)lblAj~Akdot& =true;lblAl~#Amp}'ositionILܫ=p}'ositionffstr5\;if(textffstr#\6="" z)lblAj~Aktext(`O=textffstr;else+lbl5K~;LtextO90="Pt."q;pictur}'e5+=H%DlblSf;=[LDFT2002.10.27.]T7TheUULabQel" isUUpushedontothev9ector&Tlab}'elsA7inpictur}'e"^+.o=if(DEBUGY)c}'out O"Exiting Point::labekl()"P"\n" ush;return4g; -g|n썫124SHOR -TXARÎGUMENTa3DLDFPRGx463n@P463. shortSargumen9t.[LDFT2003.04.01.]Z"TO$DO:AMakenon-constversionofthisfunction!TO$DO: Makeb>itpGossibletousePROJ_VALUESC -ëtousethevqaluesinpr}'ojectiveffcoordinatesgzforthelabel.ThiswillrequireUUaddingargumentsforusebypr}'oject!c().c9Ȅ`> 8BeginTLogJʄ`> +g}Jn썷x4633DLDFPRÎGaSHOR +TXARGUMENT125n@P463. shortSargumen9t.[LDFT2003.04.01.]Z"TO$DO:AMakenon-constversionofthisfunction!TO$DO: Makeb>itpGossibletousePROJ_VALUESC +ëtousethevqaluesinpr}'ojectiveffcoordinatesgzforthelabel.ThiswillrequireUUaddingargumentsforusebypr}'oject!c().N99Ȅ`+U 8Log)j`+U [LDFT2003.04.01.]Z^Changed^xthisfunctionsothatittestswhethertextffshort3_isequaltoWORLD_VALUESC伫,PROJ_VALUES:FG,XUSER_VALUES=,XorVIEW_VALUES=8,whicharepublic&constDstaticdjdatamembGersinP9oint=9.ZIftextffshort.όisequaltoWORLD_VALUESCva,Ϸ thisiscopiedandapplyfftr}'ansformJ()iscalledonthecopy*.B Thisisnecessary*,bGecausethisfunctionisconstf.$0Then,theupGdatedvqaluesintheworldffc}'oordinatesT5vectorofthecopyUUareusedforthelabGel. [LDFT2003.05.06.]Y;AddedUUcomparisonoftextffshort1withWORLD_VALUES_X_YWۍ,PROJ_VALUES_X_YR,USER_VALUES_X_YOF;,orVIEW_VALUES_X_YR,whichareusedforsuppressingthez-coGordinate,whenthevqaluesfromdoneofthesetsofcoGordinatesareusedforthelabel.Also,nolongercopying dthisP,sincegetffxV(),getffyt(),UUandgetffz]V()areconst!anyway*. [LDFT2003.05.20.]Y;AddedUU\WORLD_VALUES_ZJ>"case. [LDFT2003.05.22.]X:BUG3KFIX:3TThe\WORLD_VALUES_ZJ>"casestartedwithifKinsteadofelse?if!*.fqThiscauseds:str 7()tohaveanerroneous ve-digitintegerfollowingtheclosingparenthesis, whenWORLD_VALUESHorWORLD_VALUES_X_YW waslused.@Ildon'tknowwhythisshouldhavebGeenthecase,rbutchangingif9Itoelseif xedtheproblem.^ItprobablyhadsomethingtodowiththefactthatWORLD_VALUES_ZP?hadthesamevqalueasUUVIEW_VALUES_X_YR.qI'veUU xedthisabGovetoGday*,toGo. [LDFT2003.06.06.]WChanged8thecase,qwheretextffshort/Q5=WORLD_VALUESC ortextffshort=WORLD_VALUES_X_YV:The?KcoGordinatessurroundedbyparenthesesarenowprintedoutusingTU>VExXۨ'smathmoGde,Ci.e.,\(x;y[;zp)"?Kin-steadUUof\(x,y[٫,zp)". -[LDFT2003.07.09.]Y;MadeUUtextffshort.4ī,UUp}'ositionffstr67,UUanddotargumentsconst*.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -v9oid"4lab}'el7J̫(constshort;textffshortfj;conststring@Mp}'ositionffstrvT="top"q;constbQool9'fdotJ=falsev\;Picture&%!pictur}'eG=curr}'entffpictureD߫)UUconst*;}9n썷x4643DLDFPRÎGaSHOR -TXARGUMENT125n@P464.hDe neUUP9oint"Dfunctions@285i+ +[LDFT2003.07.09.]Y;MadeUUtextffshort.4ī,UUp}'ositionffstr67,UUanddotargumentsconst*.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +v9oid"4lab}'el7J̫(constshort;textffshortfj;conststring@Mp}'ositionffstrvT="top"q;constbQool9'fdotJ=falsev\;Picture&%!pictur}'eG=curr}'entffpictureD߫)UUconst*;~토n썫126SHOR +TXARÎGUMENTa3DLDFPRGx464n@P464.hDe neUUP9oint"Dfunctions@285i+ v9oid#EP9oint@#::lab}'elt(constshort= textffshortg댱;const `stringBop}'ositionffstrt;const `bQool:dotI;Picture2&9#pictur}'eX)UUconst fbQool-hDEBUGK.٫=falsev\;=trueĒ=stringstreamW,s[ܹ;if(textffshort-WORLD_VALUESD<_8textffshort/gWORLD_VALUES_X_YWMP)fif)(DEBUGY)c}'out O"It's WORLD_VALUES okr WORLD_VALUES_X_Y.\Ơn";s%w"$("getffxU()", "getffy;.();if)(textffshort-WORLD_VALUESBM\)s w", "getffz();s%w")$"Mt;gelse*.6if5.(textffshort-WORLD_VALUES_ZLV)fif)(DEBUGY)c}'out O"It's WORLD_Z.\n"\M;s%wgetffz();gelse*.6if5.(textffshort-PROJ_VALUES= _)fif)(DEBUGY)c}'out O"It's PROJ_VALUES\n"lMD;c}'err4S"WARNING! In Point::llabel():"3endl-"text_short == PROJ_lVALUES. "2"Haven't programmed this case yet.\n""Returning.\n\n"Zh ush;return>h;gelse*.6if5.(textffshort-USER_VALUES= _)fif)(DEBUGY)c}'out O"It's USER_VALUES\n"lMD;c}'err4S"WARNING! In Point::llabel():"3endl-"text_short == USER_lVALUES. "2"Haven't programmed this case yet.\n""Returning.\n\n"Zh ush;return>h;gelse*.6if5.(textffshort-VIEW_VALUES= _)fif)(DEBUGY)c}'out O"It's VIEW_VALUES\n"lMD;c}'err4S"WARNING! In Point::llabel():"3endl-"text_short == VIEW_lVALUES. "2"Haven't programmed this case yet.\n""Returning.\n\n"Zh ush;return>h;gelse+fif)(DEBUGY)c}'out O"It's some other valkue.\n"2;s%wtextffshort-;gif(DEBUGY)c}'out O"s.str() == "JTqsw:str 7()endl ush;lab}'el(t(s:str 7();p}'ositionffstr4;dot;pictur}'e ~);return4g; -g465. DotlabQel.TOŊDO:Addanoptionalp}'enargument.ÃIfit'sused,"usedr}'awdot(Yj()withthep}'enargument,ptogether7withlab}'elfϫ().HnWhenIdothis,IshouldalsoaddrealBGarguments(tobGothlab}'elfϫ()anddotlab}'el!()),forshiftingthepGositionofthetext,4andaversionwithaP9oint!ЫargumentforthesamepurpGose.ThisUUissothatthedotwon'tcoverthetext.q[LDFT2003.07.16.]~n썫126STRINGXARÎGUMENT3DLDFPRGx466n@P466. stringTargumen9t.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.09.]Y;MadeUUtextffstr'qandUUp}'ositionffstr9argumentsUUconst*.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +g465. DotlabQel.TOŊDO:Addanoptionalp}'enargument.ÃIfit'sused,"usedr}'awdot(Yj()withthep}'enargument,ptogether7withlab}'elfϫ().HnWhenIdothis,IshouldalsoaddrealBGarguments(tobGothlab}'elfϫ()anddotlab}'el!()),forshiftingthepGositionofthetext,4andaversionwithaP9oint!ЫargumentforthesamepurpGose.ThisUUissothatthedotwon'tcoverthetext.q[LDFT2003.07.16.] n썷x4663DLDFPRÎGSTRINGXARGUMENT127n@P466. stringTargumen9t.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.09.]Y;MadeUUtextffstr'qandUUp}'ositionffstr9argumentsUUconst*.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ v9oid$tidotlab}'elFt\(const2stringB=textffstrcS;const!KstringCp}'ositionffstr|V=7["top";Picture&%!pictur}'eG=curr}'entffpictureD߫)UUconst*;467.hDe neUUP9oint"Dfunctions@285i+ v9oid"P9oint?%::dotlab}'el"(const*string?Otextffstr`3;constJstring@p}'ositionffstrs۱;Picture* &2c(pictur}'eQk)UUconst flab}'el(t(textffstr D;p}'ositionffstr4;trueo@;pictur}'e ~); -g468. shortTargumen9t.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.09.]Y;MadeUUtextffshort1andUUp}'ositionffstr9argumentsUUconst*.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +g468. shortTargumen9t.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.09.]Y;MadeUUtextffshort1andUUp}'ositionffstr9argumentsUUconst*.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ v9oid$[)dotlab}'elF[(constshort>textffshortiT;const!2stringC7p}'ositionffstr{= E"top"Ӟ;Picture&%!pictur}'eG=curr}'entffpictureD߫)UUconst*;469.hDe neUUP9oint"Dfunctions@285i+ v9oid"P9oint?%::dotlab}'el"(const*short;EtextffshortfԴ;constJstring@p}'ositionffstrs۱;Picture* &2c(pictur}'eQk)UUconst flab}'el(t(textffshort*o;p}'ositionffstr4;trueo@;pictur}'e ~); -g9n썷x4703DLDFPRÎGaSHOR -TXARGUMENT127n@P470. [LDFT2002.09.06.][#Commentedout LabQel'O().D3Thiswasthecauseofabugthatcausedamemory faultwhenItriedtousealabGelin gure2(b}'egin g!(2))afterhavinguseditin gure1andtheninvokingcurr}'entffpictureB%DZ:cle}'ar(٫()UUinbGetween.hDe neUULabQel" functions@470i#if 0 +g [n썫128SHOR +TXARÎGUMENTa3DLDFPRGx470n@P470. [LDFT2002.09.06.][#Commentedout LabQel'O().D3Thiswasthecauseofabugthatcausedamemory faultwhenItriedtousealabGelin gure2(b}'egin g!(2))afterhavinguseditin gure1andtheninvokingcurr}'entffpictureB%DZ:cle}'ar(٫()UUinbGetween.hDe neUULabQel" functions@470i#if 0 LabQel'Ah::-Ϧ5LabQelQ'() fif(pt 6=0)delete&ƺpt0W; g#endif SeeXalsosections471and472.ThisXco 8BeginTLogJʄ`> -[LDFT2002.10.23.]Y;AddedUUargumentspr}'ojmandfactorY3.Ȅ` 8EndTLogA>`hDe neUULabQel" functions@470i+ +g472. Outputl@LabQels.[LDFT2002.10.23.][Declared-inpictures.web.PMustbGede nedhere,becauseP9ointisUUanincompletetypGethere.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.23.]Y;AddedUUargumentspr}'ojmandfactorY3.Ȅ`GhDe neUULabQel" functions@470i+ v9oid"LabQel@(f::outputD(constF oQcus>G&FfL;constpunsignedOޤshortmmpr}'oj0;realFfactor3Jڱ;constpT ransformWph&_7tb) @@ -1734,11 +1764,11 @@ pt=&9t)_;pt䟟~!applyfftr}'ansformh();if(:pt䝟~ pr}'oject,[(f;pr}'ojk;factor))fc}'err3"WARNING! In Label::koutput():\n""Point in Label cannkot be projected! "2"Not printing Label\n"C ush;return>h;gif(dot%true)outffstr}'eam7"dot"q;outffstr}'eamF"label"( k;if(p}'osition& o6="" z)outffstr}'eam7"."ԏp}'osition;outffstr}'eamF"(btex "0text" etex, (":zpt ~getffx':('p'F_;(false 8BeginTLogJʄ`> +gn썷x4733DLDFPRÎG,MAJTRIXXOPERATIONS129n@P473. MatrixTopQerations.474. MultiplicationTb9yaT +ransformwithassignment.9Ȅ`+U 8Log)j`+U [LDFT2002.11.06.]YeBUG_|FIX:_Thisfunctionnowreturnst [pinsteadoftr}'ansform/.DThismakesitpGossibletochainUUexpressionsusingopQerator. -=;)().Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +=;)().Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ T ransformAopQeratorm_=z&(const*T ransformUt&]taW);475.hDe neUUP9oint"Dfunctions@285i+ @@ -1747,16 +1777,16 @@ ransformUt&]taW) freturn7漫(tr}'ansform.zY=>tA); g476. V -ectoruopQerations.[LDFT2002.10.27.]ZNote thatthevectoropGerationsdon'ta ectthewcoordi-nate.9Ȅ`> 8BeginTLogJʄ`> +ectoruopQerations.[LDFT2002.10.27.]ZNote thatthevectoropGerationsdon'ta ectthewcoordi-nate.9Ȅ`+U 8Log)j`+U [LDFT2002.10.27.]YwInRthefunctionsopQerator.F+6d(),opQerator++=;$(),SopQerator.Է6(),SandRopQerator.F=>w():peItdoGesn't3:seemworthittowritenon-const!versions,althoughI2}could. uNowusingtheelementsofp0 :worldffc}'oordinatesQ -directly insteadofusinggetffxks(),>getffy(),>and getffz (). This issafe,asiscallingapplyfftr}'ansformF߫()UUonp]U,andsavesUUthecostofthreefunctioncalls.Ȅ` 8EndTLogA>`477. V +directly insteadofusinggetffxks(),>getffy(),>and getffz (). This issafe,asiscallingapplyfftr}'ansformF߫()UUonp]U,andsavesUUthecostofthreefunctioncalls.Ȅ`G477. V ectorTaddition.hDeclareUUP9oint"Dfunctions@284i+ P9oint(opQeratorTS+\Mq(P9ointp#)UUconst*;478.hDe neUUP9oint"Dfunctions@285i+ P9oint(P9ointE::L(opQeratorwݫ+u(P9ointp#)UUconst fP9oint2a88ϫ;aJ=thisϫ;p:applyfftr}'ansformF߫();aI2:shift}(p:worldffc}'oordinatesM[0];p:worldffc}'oordinates[1];p:worldffc}'oordinates[2]);return7漱a=/; g479. V ectorTadditionwithassignmen9t.hDeclareUUP9oint"Dfunctions@284i+ -v9oid"opQeratorN+=^"(P9ointp#);yn썷x4803DLDFPRÎG,VECTORXADDITIONWITHASSIGNMENT129n@P480.hDe neUUP9oint"Dfunctions@285i+ +v9oid"opQeratorN+=^"(P9ointp#);#n썫130VECTORXADDITIONWITHASSIGNMENT,3DLDFPRÎGx480n@P480.hDe neUUP9oint"Dfunctions@285i+ v9oid"P9oint?%::F&copQeratorq+=KT(P9ointp#) fp:applyfftr}'ansformF߫();shift((p:worldffc}'oordinatesM[0];p:worldffc}'oordinates[1];p:worldffc}'oordinates[2]); g481. V @@ -1770,15 +1800,15 @@ v9oid"P9oint?%::F&copQeratorq=KT(P9ointp#) fp:applyfftr}'ansformF߫();shift((p :worldffc}'oordinatesM[0]; qƱpy:worldffc}'oordinates[1]; qƱpy:worldffc}'oordinates[2]); g485. V -ector-scalarTm9ultipicationwithassignment.U9Ȅ`> 8BeginTLogJʄ`> +ector-scalarTm9ultipicationwithassignment.9Ȅ`+U 8Log)j`+U [LDFT2002.10.27.]Y;MadeUUargumentr tconst&J .qChangedreturnvqaluefromP9oint"D&-aetov9oidث. -[LDFT2003.05.14.]YQChanged3returnvqaluefromv9oidtoreal .LaItnowreturnstheargumentrhG.LaThismakesitUUpGossibletochaininvoGcationsofthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -real /opQeratorLI=Y(const*real4бr9);+Sn썫130VECTOR-SCALARXMULJTIPICATIONWITHASSIGNMENTu3DLDFPRÎGx486n@P486. ??(I'm notsurewhethermultiplicationwithascalariscommutativewithtransformations.(Idoubt it.qTherefore,UUIapplytr}'ansform2]bGeforemultiplying.hDe neUUP9oint"Dfunctions@285i+ +[LDFT2003.05.14.]YQChanged3returnvqaluefromv9oidtoreal .LaItnowreturnstheargumentrhG.LaThismakesitUUpGossibletochaininvoGcationsofthisfunction.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +real /opQeratorLI=Y(const*real4бr9);.n썷x4863DLDFPRÎGuVECTOR-SCALARXMULJTIPICATIONWITHASSIGNMENT131n@P486. ??(I'm notsurewhethermultiplicationwithascalariscommutativewithtransformations.(Idoubt it.qTherefore,UUIapplytr}'ansform2]bGeforemultiplying.hDe neUUP9oint"Dfunctions@285i+ real /P9oint=M{::C۹opQeratororn=|9(const*real4бr9) fapplyfftr}'ansformZ();for%舫(in9ti=0;i 9 <3;i++)worldffc}'oordinatesR[iq]=UOrc;return7漱r<Ы; g487. V -ector-scalarTm9ultipication.488. Mem9bQerTversion(Point rst).c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.10.27.]Y;MadeUUthisfunctionandtheargumentr tconst&J .Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +ector-scalarTm9ultipication.488. Mem9bQerTversion(Point rst).N99Ȅ`+U 8Log)j`+U +[LDFT2002.10.27.]Y;MadeUUthisfunctionandtheargumentr tconst&J .Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ P9oint(opQeratorTSYT(const*real4бr9)UUconst*;489.hDe neUUP9oint"Dfunctions@285i+ P9oint(P9ointE::L(opQeratorwݷ|ޫ(const*real4бr9)UUconst fP9oint2a88ϫ(this뷫);aI2:applyfftr}'ansformF߫();aJ=+r0h;return7漱a=/; @@ -1786,32 +1816,32 @@ P9oint(opQeratorTSYT(const*real1{;constJP9oint>&FpK);491.hDe neUUnon-membGerfunctionsforP9oints'ݭ437i+ P9oint(opQeratorTSYT(const*real4бr9;constJP9oint>&FpK) freturn7漱p?'8r; -g492. UnaryTmin9us.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.10.27.]Y;MadeUUthisfunctionconst*.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -P9oint(opQeratorTS\Mq()UUconst*;6n썷x4933DLDFPRÎG$:UNARJYXMINUS131n@P493.hDe neUUP9oint"Dfunctions@285i+ +g492. UnaryTmin9us.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.27.]Y;MadeUUthisfunctionconst*.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +P9oint(opQeratorTS\Mq()UUconst*;9n썫132UNARJYXMINUS$:3DLDFPRÎGx493n@P493.hDe neUUP9oint"Dfunctions@285i+ P9oint(P9ointE::L(opQeratorwݷu()UUconst fP9oint2a88ϫ(this뷫);aI2:applyfftr}'ansformF߫();aJ=+3e18e;return7漱a=/; g494. V -ector-scalar.divisionwithassignmen9t.??I'mnotsurewhetherdivisionwithascalariscommutativeUUwithtransformations.qIdoubtit.Therefore,Iapplytr}'ansform2]bGeforedividing.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.10.27.]Y;MadeUUtheargumentr tconst&J .Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +ector-scalar.divisionwithassignmen9t.??I'mnotsurewhetherdivisionwithascalariscommutativeUUwithtransformations.qIdoubtit.Therefore,Iapplytr}'ansform2]bGeforedividing.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.27.]Y;MadeUUtheargumentr tconst&J .Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ v9oid"opQeratorN==[[(const*real4бr9);495.hDe neUUP9oint"Dfunctions@285i+ v9oid"P9oint?%::F&copQeratorq==~7(const*real4бr9) fapplyfftr}'ansformZ();for%舫(in9ti=0;i 9 <3;i++)worldffc}'oordinatesR[iq]==UOrc; g496. V -ector-scalarTdivision.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.10.27.]Y;MadeUUthisfunctionandtheargumentr tconst&J .Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -P9oint(opQeratorTS=(const*real4бr9)UUconst*;@n썫132VECTOR-SCALARXDIVISIONf3DLDFPRÎGx497n@P497.hDe neUUP9oint"Dfunctions@285i+ +ector-scalarTdivision.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.27.]Y;MadeUUthisfunctionandtheargumentr tconst&J .Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +P9oint(opQeratorTS=(const*real4бr9)UUconst*;Cn썷x4973DLDFPRÎGfVECTOR-SCALARXDIVISION133n@P497.hDe neUUP9oint"Dfunctions@285i+ P9oint(P9ointE::L(opQeratorwݱ=(const*real4бr9)UUconst fP9oint2a88ϫ(this뷫);aI2:applyfftr}'ansformF߫();aJ==+r0h;return7漱a=/; -g498. DotTproQduct.U9Ȅ`> 8BeginTLogJʄ`> +g498. DotTproQduct.9Ȅ`+U 8Log)j`+U [LDFT2002.10.27.]X2ChangedALthisfunctionandargumentp toconst.kNowusingworldffc}'oordinatesSdirectlyinsteadUUofgetffx㼫(),getffyk(),andgetffz]V(). -[LDFT2003.07.11.]Y;Changed,UUsothatifthedotproGductislessthanP9oint::epsilon o(),0willbereturned.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +[LDFT2003.07.11.]Y;Changed,UUsothatifthedotproGductislessthanP9oint::epsilon o(),0willbereturned.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ real /dotffpr}'oductS3P(P9ointp#)UUconst*;499.hDe neUUP9oint"Dfunctions@285i+ real /P9oint=M{::dotffpr}'oduct3%(P9ointp#)UUconst fP9oint2a88ϫ(this뷫);aI2:applyfftr}'ansformF߫();p:applyfftr}'ansformF߫();real+r5S=((aI0:worldffc}'oordinatesM[0]p:worldffc}'oordinates[0])+(aI0:worldffc}'oordinates[1](p-:worldffc}'oordinatesM[1])8+(aI0:worldffc}'oordinates[2]p@:worldffc}'oordinates[2]));if(fabs2ҫ(r) 8BeginTLogJʄ`> -[LDFT2002.10.27.]X2ChangedALthisfunctionandargumentp toconst.kNowusingworldffc}'oordinatesSdirectlyinsteadUUofgetffx㼫(),getffyk(),andgetffz]V().Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -P9oint(cr}'ossffproductc|(P9ointp#)UUconst*;Hn썷x5013DLDFPRÎG-CROSSXPRODUCT133n@P501.hDe neUUP9oint"Dfunctions@285i+ +g500. CrossTproQduct.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.27.]X2ChangedALthisfunctionandargumentp toconst.kNowusingworldffc}'oordinatesSdirectlyinsteadUUofgetffx㼫(),getffyk(),andgetffz]V().Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +P9oint(cr}'ossffproductc|(P9ointp#)UUconst*;Kn썫134CRÎOSSXPRODUCT-3DLDFPRGx501n@P501.hDe neUUP9oint"Dfunctions@285i+ P9oint(P9ointE::cr}'ossffproduct;(P9ointp#)UUconst fP9oint2a88ϫ(this뷫);aI2:applyfftr}'ansformF߫();p:applyfftr}'ansformF߫();P9oint2r7;r:worldffc}'oordinatesM[0]=(aI0:worldffc}'oordinates[1]\FpdF:worldffc}'oordinates[2])(aI0:worldffc}'oordinates[2](p-:worldffc}'oordinatesM[1]);=x.o=r:worldffc}'oordinatesM[1]=(aI0:worldffc}'oordinates[2]\FpdF:worldffc}'oordinates[0])(aI0:worldffc}'oordinates[0](p-:worldffc}'oordinatesM[2]);=y*.o=r:worldffc}'oordinatesM[2]=(aI0:worldffc}'oordinates[0]\FpdF:worldffc}'oordinates[1])(aI0:worldffc}'oordinates[1](p-:worldffc}'oordinatesM[0]);=z.o=return7漱r<Ы; g502. Magnitude.[LDFT2002.10.27.]ٚ @@ -1820,54 +1850,55 @@ cmex10p UVs0fe=eЍ(xr2S+8y[ٟr2,+zpr2 )K. Since o}'atsaresolargeanyway*,JandsinceIacaneasilyrede nerealtousedouble'kordoubledoubleI`,J(orwhatever]it'scalledLoGokup!!),it'snotreallynecessarytouseanalgorithmtoapproximates0p ^s0fe=eЍ(xr2S+8y[ٟr2,+zpr2 -) (viz.,\PythagoreanWaddition"inKnuth,Metafont:zThe$YPr}'ogram.H(GetWreference!!)However,itWmightbGeniceUUtouseitanyway*.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.10.27.]ZMadej6thisfunctionconst?.kNowusingworldffc}'oordinatesUjdirectlyinsteadofgetffx(),getffyt(),UUandgetffz]V().Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -real /magnitudeN()UUconst*;T&n썫134MAÎGNITUDE+X3DLDFPRGx503n@P503.hDe neUUP9oint"Dfunctions@285i+ +) (viz.,\PythagoreanWaddition"inKnuth,Metafont:zThe$YPr}'ogram.H(GetWreference!!)However,itWmightbGeniceUUtouseitanyway*.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.27.]ZMadej6thisfunctionconst?.kNowusingworldffc}'oordinatesUjdirectlyinsteadofgetffx(),getffyt(),UUandgetffz]V().Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +real /magnitudeN()UUconst*;VEn썷x5033DLDFPRÎG+XMAGNITUDE135n@P503.hDe neUUP9oint"Dfunctions@285i+ real /P9oint=M{::magnitude/=v()UUconst freal*0r/}D;real*0tempA ;P9oint2a88ϫ(this뷫);aI2:applyfftr}'ansformF߫();if!((aI0:worldffc}'oordinatesM[0]>MAX_REAL_SQRTJ"){_(a:worldffc}'oordinatesM[1]>2MAX_REAL_SQRTvF)8_(aI0:worldffc}'oordinatesM[2]>MAX_REAL_SQRTGY))fc}'err9ܷd3"ERROR: In Point::maqcgnitude().\n"k2"Point has a coordinate too large for squaring!\n";"Returning INVALID_RkEAL.\n" /;returnAINVALID_REALm;gr.=aH:worldffc}'oordinatesM[0]8a:worldffc}'oordinates[0];temp-!=aH:worldffc}'oordinatesM[1]8a:worldffc}'oordinates[1];if(MAX_REAL,08r <temp!)fc}'err3|"In magnitude().\n"g G;c}'err3o1"Point has too greatl1 a magnitude!\n"«;=?!!1ThisWshow V()Woutputstostdout]{.It2wouldUUbGenicetooutputittostderr!=instead.qMustwritefunctionforthis.o=c}'err3|"Returning INVALID_RkEAL.\n" /;returnAINVALID_REALm;gr.+=-tempD@;temp-!=aH:worldffc}'oordinatesM[2]8a:worldffc}'oordinates[2];if(MAX_REAL,08r <temp!)fc}'err3|"In magnitude().\n"g G;c}'err3o1"Point has too greatl1 a magnitude!\n"«;=?!!1ThisWshow V()Woutputstostdout]{.It2wouldUUbGenicetooutputittostderr!=instead.qMustwritefunctionforthis.o=c}'err3|"Returning INVALID_RkEAL.\n" /;returnAINVALID_REALm;gr.+=-tempD@;return7sqrtI(r); -g504. AngleTbQet9weentwovectors.U9Ȅ`> 8BeginTLogJʄ`> +g504. AngleTbQet9weentwovectors.9Ȅ`+U 8Log)j`+U [LDFT2002.10.27.]Y;MadeUUthisfunctionconst*. -[LDFT2003.07.27.]Y;MadeUUtheargumentp aconst!P9oint@o&H6.qNolongercopyingUVthisA .qNowusingdotffpr}'oduct2!()UUinsteadofcalculatingtheangle\byhand".qSimpli edthecoGdeofthefunction.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -real /angle8s(const*P9oint=?&D]pI])UUconst*;`Zn썷x5053DLDFPRÎG4ANGLEXBETWEENTWOVECTORS135n@P505.hDe neUUP9oint"Dfunctions@285i+ +[LDFT2003.07.27.]Y;MadeUUtheargumentp aconst!P9oint@o&H6.qNolongercopyingUVthisA .qNowusingdotffpr}'oduct2!()UUinsteadofcalculatingtheangle\byhand".qSimpli edthecoGdeofthefunction.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +real /angle8s(const*P9oint=?&D]pI])UUconst*;bNn썫136ANGLEXBETWEENTWÎOVECTORS43DLDFPRGx505n@P505.hDe neUUP9oint"Dfunctions@285i+ real /P9oint=M{::angleW(const*P9oint=?&D]pI])UUconst fbQool-hDEBUGK.٫=falsev\;=true=real*0mag@&=magnitude1();real*0pffmagI=p:magnitude.=r();if(magINVALID_REALBM\)fc}'err3|"WARNING! In angle()k. magnitude() failedƠ."" Returning INVALID_kREAL.\n"M,;returnAINVALID_REALm;gelse*.6if5.(mag0)fif*2(DEBUGY)c}'errlF"WARNING! In angle()mF.\n"F"*this has magnitudemF 0.\n"<"Returning INVALID_REAL.\n"F;returnAINVALID_REALm;gelse*.6if5.(pffmagyINVALID_REALBM\)fc}'err3|"WARNING! In angle()k. p.magnitude() failƠed."" Returning INVALID_kREAL.\n"M,;returnAINVALID_REALm;gelse*.6if5.(pffmagy0)fif*軫(DEBUGY)c}'err}"WARNING! In angle()m.\n" "p has magnitude 0.\mn"}&<"Returning INVALID_REAL.\n"F;returnAINVALID_REALm;gelse+returnO(180=PI ?B8ac}'os9(dotffpr}'oduct2!(p)=(mag8pffmagLA))); -g506. UnitTv9ector.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.10.27.]YAddedasecondversion.Ifassign#Bisnotused,1unitffve}'ctor4x()canbGeconst`,1soInowhave`507. Withzassignmen9t.ThisversionshouldonlyeverbGecalledwithtrueasitsargument.WUsingfalsewillUUwork,unlessUVthisaisconst*,inwhichcaseitwillcauseancompilationerror.q[LDFT2002.10.27.] -Iftheoptionalsilent身argumentistrue]k,warningmessageswillbGesuppressed,otherwise,theywillbeissued.TheIconst"߫versionIbGelowcan'thaveanoptionalsilent argument,'EbGecausethatwouldmakeacalltothisfunctionUUwithoneargumentambiguous.U9Ȅ`> 8BeginTLogJʄ`> +g506. UnitTv9ector.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.27.]YAddedasecondversion.Ifassign#Bisnotused,1unitffve}'ctor4x()canbGeconst`,1soInowhave`hDeclareUUP9oint"Dfunctions@284i+ -P9oint(unitffve}'ctorY(const*bQool7assignS$;constJbQool9vsilentTܫ=falsev\);mנn썫136WITHXASSIGNMENT t3DLDFPRÎGx508n@P508.hDe neUUP9oint"Dfunctions@285i+ +[LDFT2003.07.01.]X'AddedAthesilentmargumenttosuppresswarningmessages.II"keptgettingwarningswhenthis/functionwascalledfromintersectionfunctions,incaseswhereitwasn'taproblem,thataP9oint ʦ(vector)hadUU0magnitude.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +P9oint(unitffve}'ctorY(const*bQool7assignS$;constJbQool9vsilentTܫ=falsev\);on썷x5083DLDFPRÎG tWITHXASSIGNMENT137n@P508.hDe neUUP9oint"Dfunctions@285i+ P9oint(P9ointE::unitffve}'ctor1y(const*bQool7assignS$;constJbQool9vsilentR-ī) fif(assign4falsev\)fif)(:silent)f(c}'errBNa"WARNING! In Point::p{unit_vector():\n"g<"Don't call this function with false as  its argument.\n"h<"Use unit_vector() without an argument i nstead.\n"Ik<"Calling unit_vector() without an argume nt.\n\n";L ush;greturnAunitffve}'ctorr|2();gapplyfftr}'ansformZ();real*0m6A=magnitude1();if(m Ϸ0)=LDFUU2002.04.10.qAddedthiserrorhandlingcoGdeforthecasewhere*thishasnomagnitude.o=fif)(:silent)f(c}'errBNa"WARNING! In Point::p{unit_vector().\n"g<"Point (vector) has no magnitude. Return ing INVALID_POINT.\nvR\n" ɷ ush;greturnAINVALID_POINT;gfor%舫(in9ti=0;i 9 <3;i++)worldffc}'oordinatesR[iq]==UOm;worldffc}'oordinatesa[3]=1;=[LDFT2002.10.27.]T7SettingUUthew-coGordinateto1,justtobesure.o=return7漷=:5 -6);})n썷x5123DLDFPRÎG/ MEDIAJTION137n@P512.hDe neUUnon-membGerfunctionsforP9oints'ݭ437i+ -P9oint(me}'diateK(P9ointp0+];P9oint Ep1,;constJreal6xr;R) -fp0 ±:applyfftr}'ansformF߫();p1 ±:applyfftr}'ansformF߫();p0"ڷ=2l(188r);p1"ڷ=2lr76%;return7漫(p0O+8p1); +g511. Mediation.9Ȅ`+U 8Log)j`+U +[LDFT2003.12.09.]Y;ChangedUUfromanon-membGertoaconst!membGerfunction.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +P9oint(me}'diateK(P9ointp#;constJreal6xr>=:5 +6)UUconst*;~n썫138MEDIAJTION/ 3DLDFPRÎGx512n@P512.hDe neUUP9oint"Dfunctions@285i+ +P9oint(P9ointE::me}'diate#y(P9ointp#;constJreal6xr;R)UUconst +fP9oint2t6(this뷫);tc=)(188r);p=+]Qr0'e;return7漫(tR+8p@); g513. Get/normal.getffnormal< -p()ĵmustbGede nedinpaths.web,becauseitusesaP9athΫinitsde nition,whichUUisanincompletelyde nedtypGeinthis le.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.11.]Y;AddedUUthisdeclaration.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +p()ĵmustbGede nedinpaths.web,becauseitusesaP9athΫinitsde nition,whichUUisanincompletelyde nedtypGeinthis le.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.11.]Y;AddedUUthisdeclaration.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ P9oint(getffnormalYz(const*P9oint=?&D]pI];constJP9oint>&FqK^)UUconst*;514. Comparison.515. Equalit9y .!!RImayhavetoadjusttovqalueofeps[.RItwouldbGenicetobeabletouseepsilon"f(), Xbut for ,otherpurpGosesepsilon"{0()mustbesmaller.YdT*ransformationsseemtocausefairlylargeinaccuraciesinthevqaluesUUofthecoGordinates,soIneedgreatertoleranceinthefunctionstestingforequalityandinequality*. -This1functioncouldbGeformulatedmoresuccinctly*,8butI1hadsometroublegettingittoworkpropGerly*,8soI'mUUleavingitinitsmoreverbGoseform,incaseIhavetodebugitsomemore.516. Non-constTv9ersion.9Ȅ`> 8BeginTLogJʄ`> +This1functioncouldbGeformulatedmoresuccinctly*,8butI1hadsometroublegettingittoworkpropGerly*,8soI'mUUleavingitinitsmoreverbGoseform,incaseIhavetodebugitsomemore.516. Non-constTv9ersion.9Ȅ`+U 8Log)j`+U [LDFT2002.10.27.]Y1Revised~thisfunction.NowusingP9oint"Ba+`oandP9oint"Bq'j.Addedfactor"ثandusingitasthe,Rargumenttocle}'anmԫ()andforcalculatingepsN.dSincethisfunctionisanopGerator,4it'snotpossibletopassfactor:[as6}anargument,nunfortunately*.?Usingcle}'anw(factorޫ)makesitpGossibletocomparethecoordinateswith0directlyratherthanusingfabs٫()andepsɫ.WAlso,4opQerator/K7()nowusesworldffc}'oordinatesTX directlyratherUUthangetffx㼫(),getffyk(),andgetffz]V(). -[LDFT2003.07.09.]Y;MadeUUthisfunctionnon-constM,andaddedconst!versionbGelow.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ -bQool#gopQeratorO8V:(P9ointp#);n썫138NON-CONSTXVERSIONA3DLDFPRÎGx517n@P517.hDe neUUP9oint"Dfunctions@285i+ +[LDFT2003.07.09.]Y;MadeUUthisfunctionnon-constM,andaddedconst!versionbGelow.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ +bQool#gopQeratorO8V:(P9ointp#); n썷x5173DLDFPRÎGANON-CONSTXVERSION139n@P517.hDe neUUP9oint"Dfunctions@285i+ bQool#gP9oint@;::FopQeratorr`z'ī(P9ointp#)fUUbQoolDEBUG:,=falsev\;=trueĒ=if)(DEBUGY)c}'out O"Entering Point::opekrator==()">"\n" ush;unsignedN7shortlfactor̪=10 ;=LDFUU2002.10.27.qAdded.o=cle}'an5A(factorޫ);p#:cle}'anA(factorޫ);real41epsF =epsilon"6()8factor<;=ThisUUcurrentlymakesepsl:0001.o=real41tffxDՂ=worldffc}'oordinatesO[0];real41tffyD1=worldffc}'oordinatesO[1];real41tffzDO=worldffc}'oordinatesO[2];real41pffxFw=p:worldffc}'oordinatesM[0];real41pffyF&=p:worldffc}'oordinatesM[1];real41pffzF=p:worldffc}'oordinatesM[2];518. P9oints/arefrequentlycomparedtoINVALID_POINTHګ,Njsoit'sbGesttosuppressdebuggingoutputfortheseUUcomparisons,bGecausethey'reprobablynottheoneswe'reinterestedin.hDe neUUP9oint"Dfunctions@285i+ if(tffxaʷINVALID_REALD_RDtffyINVALID_REAL_RDtffz-INVALID_REAL_RDpffx~INVALID_REAL_RDpffyc(INVALID_REALi(_8pffzINVALID_REALBM\)DEBUG"q=falsev\;519. DebuggingUUoutput.hDe neUUP9oint"Dfunctions@285i+ if(DEBUGY)fc}'out* Q"t_x == "5T}tffxiendl ush;c}'out* Q"t_y == "5T}tffyendl ush;c}'out* Q"t_z == "5T}tffzcendl ush;c}'out* Q"p_x == "5T}pffx^endl ush;c}'out* Q"p_y == "5T}pffy endl ush;c}'out* Q"p_z == "5T}pffz,endl ush; -g520. CheckUUwhetherthecoGordinatesofbothP9oints&.areall0.9Ȅ`> 8BeginTLogJʄ`> +g520. CheckUUwhetherthecoGordinatesofbothP9oints&.areall0.9Ȅ`+U 8Log)j`+U [LDFT2002.10.27.]XTNow6thatcle}'an⸫(10 -)andp6:cle}'anA(10)arecalledabGove,`hDe neUUP9oint"Dfunctions@285i+ +)andp6:cle}'anA(10)arecalledabGove, 8BeginTLogJʄ`> -[LDFT2002.10.27.]XgAsintheprevioussection,ԿchangedsothatthecoGordinatesarecomparedwith0,insteadofUUusingfabs'()andepsw.Ȅ` 8EndTLogA>`hDe neUUP9oint"Dfunctions@285i+ +gѠn썫140NON-CONSTXVERSIONA3DLDFPRÎGx521n@P521. GetUUthesignsofthecoGordinates.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.27.]XgAsintheprevioussection,ԿchangedsothatthecoGordinatesarecomparedwith0,insteadofUUusingfabs'()andepsw.Ȅ`GhDe neUUP9oint"Dfunctions@285i+ signed-oshortK:tffxffsignm4; signed-oshortK:tffyffsignml*; signed-oshortK:tffzffsignl; @@ -1901,7 +1932,7 @@ if(DEBUGY)fc}'out* Q"t_x_sign == "Ontffxffsign'Jendl ush;c}'out* Q"t_y_sign == "Ontffyffsign'endl ush;c}'out* Q"t_z_sign == "Ontffzffsign&}endl ush;c}'out* Q"p_x_sign == "Onpffxffsign)R?endl ush;c}'out* Q"p_y_sign == "Onpffyffsign)endl ush;c}'out* Q"p_z_sign == "Onpffzffsign(rendl ush; g if((tffxffsign$26=pffxffsign&')8_(tffyffsign$6=pffyffsign&)_(tffzffsign$4e6=pffzffsign%Z))fif(DEBUGY)c}'out4 R"At least one coordiknate pair has signs Ơthat differ. "!"Returning false.\n"lMD;return7falseL; -gɠn썫140NON-CONSTXVERSIONA3DLDFPRÎGx522n@P522. GetUUthedi erencebGetweenUUeachpairofx,y*,andz-coGordinates.hDe neUUP9oint"Dfunctions@285i+ +gn썷x5223DLDFPRÎGANON-CONSTXVERSION141n@P522. GetUUthedi erencebGetweenUUeachpairofx,y*,andz-coGordinates.hDe neUUP9oint"Dfunctions@285i+ tffx"R=fabs(tffx [9); tffy=fabs(tffy @); tffz=fabs(tffz ӫ); @@ -1919,14 +1950,14 @@ if(DEBUGY)c}'out O"r == "*ԃr XDendl ush; if(DEBUGY)c}'out O"Exiting Point::operkator==()"TA"\n" ush; -return-滱r2ϫ;qǷg523. constcv9ersion.[LDFT2003.07.09.]YThism5functionmerelycopiesm6this!andcallsthenon-constBversiononCthecopy*.kHere,GPp canbGeaconst!\P9oint@;&H ,GPbecausethisfunctiondoesnothingbutpassittonon-constversion,UUwhereitispassedbyvqalue.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.09.]Y;AddedUUthisversion.qMadetheoriginalversionnon-constM.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +return-滱r2ϫ;qǷg523. constcv9ersion.[LDFT2003.07.09.]YThism5functionmerelycopiesm6this!andcallsthenon-constBversiononCthecopy*.kHere,GPp canbGeaconst!\P9oint@;&H ,GPbecausethisfunctiondoesnothingbutpassittonon-constversion,UUwhereitispassedbyvqalue.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.09.]Y;AddedUUthisversion.qMadetheoriginalversionnon-constM.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ bQool#gopQeratorO8V:(const*P9oint=?&D]pI])UUconst*;524.hDe neUUP9oint"Dfunctions@285i+ bQool#gP9oint@;::FopQeratorr`z'ī(const*P9oint=?&D]pI])UUconst fP9oint2c}'opyG(this뷫);return7漫(c}'opyWp); g525. Inequalit9y .hDeclareUUP9oint"Dfunctions@284i+ -bQool#gopQeratorO86=V:(const*P9oint=?&D]pI])UUconst*;n썷x5263DLDFPRÎG+UINEQUALITY141n@P526.hDe neUUP9oint"Dfunctions@285i+ +bQool#gopQeratorO86=V:(const*P9oint=?&D]pI])UUconst*;n썫142INEQUALITY+U3DLDFPRÎGx526n@P526.hDe neUUP9oint"Dfunctions@285i+ bQool#gP9oint@;::FopQeratorr`6=z'(const*P9oint=?&D]pI])UUconst freturn7漷:(thisϷp); g527. In9tersection. @@ -1935,15 +1966,15 @@ ectorWv9ersion.[LDFT2003.06.29.][%De nedDinlines.web,?bGecauseLine isanincompletetypehere. ThevalgorithmusedinthisfunctionistakenfromJones,IHuw.xComputerGr}'aphicsThroughKeyMathe-matics,UUpp.208{311.qSeeReferencesforthecompletereference. !!&ItmaybGenecessaryordesirabletoaddtry4:::catc9h>iblockswherecalculationsareperformedbelow,justUUincaseover owUUoGccurs. -!!>BUnderD)Linux,bGoththisfunctionandtheversionofinterse}'ctionffpointsU()usingtraceshavefailedinthecksamecases,fwhichinvolvedcoplanarlineswhichhadbGeenrotatedaboutthez-axisortheyandz-axes.IsuspGectithastodowiththeroutinesforsineandcosine,sinceI'vehadtroublewithrotationintheconstructorsUUforP9olyhedra6ֱ.q[LDFT2003.06.29.]c9Ȅ`> 8BeginTLogJʄ`> +!!>BUnderD)Linux,bGoththisfunctionandtheversionofinterse}'ctionffpointsU()usingtraceshavefailedinthecksamecases,fwhichinvolvedcoplanarlineswhichhadbGeenrotatedaboutthez-axisortheyandz-axes.IsuspGectithastodowiththeroutinesforsineandcosine,sinceI'vehadtroublewithrotationintheconstructorsUUforP9olyhedra6ֱ.q[LDFT2003.06.29.]N99Ȅ`+U 8Log)j`+U [LDFT2002.04.10.]Y;AddedUUthisfunction.qItreplacestheoldversion,bGelow. [LDFT2002.04.12.]YRemoved?thede nitionofthisfunctiontolines.web,zbGecauseitrequirestheuseofLinesΎ,UUandLine-isanincompletetypGehere. -[LDFT2003.06.29.]YStartedusingthisversionagain.خBug xesI'vemadeelsewhereseemtohavemadeitfunction.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +[LDFT2003.06.29.]YStartedusingthisversionagain.خBug xesI'vemadeelsewhereseemtohavemadeitfunction.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ static(޺bQoolus4wpoin9ta5interse}'ctionffpoint (constP9oint 8BeginTLogJʄ`> -[LDFT2002.10.27.]XtChanged2theconst!:iP9oint@?&KargumentstoP9oint֫,9bGecauseI2hadtocopythemanywayinUUordertocallapplyfftr}'ansformIu4()onthem.sn썫142TRAÎCEXVERSIONS3DLDFPRGx529n@P -[LDFT2003.06.29.]YkAddedthebQool{argumenttr}'aceƫ,эinordertobGeabletouseboththevectorandtrace versions.;Previously*,Hthevectorversiondidn'twork,Handwascommented-out.;Now,Hbug xeselsewhereseemtoghavemadethevectorversionwork.Bothversions,lhowever,failedgunderLinux.SeetheTU>VExXl/sectionfortheUUvectorversion,abGove,formoreinformation.Ȅ` 8EndTLogA>`hDeclareUUP9oint"Dfunctions@284i+ +ThebQoolL?argumenttr}'ace?servesonlytodistinguishthisfunctionfromthevectorversion. ItdoGesn'tmatterUUwhetherit'strueoBorfalse.q[LDFT2003.06.29.]N99Ȅ`+U 8Log)j`+U +[LDFT2002.10.27.]XtChanged2theconst!:iP9oint@?&KargumentstoP9oint֫,9bGecauseI2hadtocopythemanywayinUUordertocallapplyfftr}'ansformIu4()onthem.;n썷x5293DLDFPRÎGSTRACEXVERSION143n@P +[LDFT2003.06.29.]YkAddedthebQool{argumenttr}'aceƫ,эinordertobGeabletouseboththevectorandtrace versions.;Previously*,Hthevectorversiondidn'twork,Handwascommented-out.;Now,Hbug xeselsewhereseemtoghavemadethevectorversionwork.Bothversions,lhowever,failedgunderLinux.SeetheTU>VExXl/sectionfortheUUvectorversion,abGove,formoreinformation.Ȅ`GhDeclareUUP9oint"Dfunctions@284i+ static)HbQoolus4wpoin9tauinterse}'ctionffpointK(P9ointp0+];P9oint Ep1,;P9oint Eq0,.,;P9oint Eq1;constJbQool9vtr}'aceO);530.hDe neUUP9oint"Dfunctions@285i+ bQoolus4wpoin9tBP9oint_kL::interse}'ctionffpointNګ(P9ointp0+/;P9oint ép1,i;P9oint éq0,W;P9oint éq1;constbQool9xtr}'aceO)f2bQoolKkDEBUGi.ܫ=falsev\;=trueĒ=if)(DEBUGY)f(c}'out> S"Entering Point::intkersection_point().\nƠ"T ush;(p04ı:show("p0"\);(p14ı:show("p1"\);(q03:show("q0"\);(q13:show("q1"\);gbQoolus4wpoin9tVbpa;=ReturnUUvqalue.o=if)(DEBUGY)c}'out O"Error after here 0.k\n"~S ush;531. Applythetransformations,%sowehavethecorrectvqaluesforx,%y*,andzineachoftheP9oints#=*.]ThenassignUUthemtovqariables.hDe neUUP9oint"Dfunctions@285i+ p0:applyfftr}'ansformF߫(); @@ -1962,7 +1993,7 @@ real /q1ffx79 =q1Z:worldffc}'oordinatesM[0]; real /q1ffy7=q1Z:worldffc}'oordinatesM[1]; real /q1ffz6=q1Z:worldffc}'oordinatesM[2]; -if(DEBUGY)c}'out O"Error after here 1.k\n"~S ush;n썷x5323DLDFPRÎGSTRACEXVERSION143n@P532. GetUUdeltas.hDe neUUP9oint"Dfunctions@285i+ +if(DEBUGY)c}'out O"Error after here 1.k\n"~S ush;Un썫144TRAÎCEXVERSIONS3DLDFPRGx532n@P532. GetUUdeltas.hDe neUUP9oint"Dfunctions@285i+ real /deltaffxffpJn=p1ffxA8p0ffxz~; real /deltaffyffpJ|=p1ffy'E8p0ffy`-; real /deltaffzffpI9=p1ffz08p0ffz; @@ -1992,7 +2023,7 @@ if(slop}'effqffxffy2Ce6=INVALID_REALBM\)=xq16=0.o= fyffintffq5=q0ffyl8(slop}'effqffxffy1-q0ffx); g -if(DEBUGY)c}'out O"Error after here 6.k\n"~S ush;n썫144TRAÎCEXVERSIONS3DLDFPRGx536n@P536.  +if(DEBUGY)c}'out O"Error after here 6.k\n"~S ush;ꁠn썷x5363DLDFPRÎGSTRACEXVERSION145n@P536.  IfvbGothofthetracesof~p andpU~q «inthex-yplaneareparalleltothey-axis(i.e.,~xs=0),wevtestwhether px9=0qx..IfYtheyare,thenwesetxffitothatvqalue.Ifthey'renot,thelinesdon'tintersect,sowereturn INVALID_POINTNB. @@ -2004,7 +2035,7 @@ if(yffintffp!AINVALID_REALD<^8yffintffq#8INVALID_REALBM\)=q~pxzǫandO~UUqxzEareUUbGothparalleltothez-axis.o= fif(DEBUGY)c}'out O"Error after here 7.k\n"~S ush;if(p0ffxq0ffxݫ)=TheyUUhavethesamevqalueforx.o=fif)(DEBUGY)c}'out O"Error after here 8.k\n"~S ush;if)(DEBUGY)c}'out O"Traces on x-y planek are coincident.\n"# ush;xffi-=p0ffx;real41yffintffpffz^S =INVALID_REALBM\;real41yffintffqffz]4=INVALID_REALBM\;if)(slop}'effpffzffy29q6=INVALID_REALBM\)yffintffpffz.ܫ=p0ffy'E8slop}'effpffzffy38p0ffz;if)(slop}'effqffzffy16=INVALID_REALBM\)yffintffqffz.=q0ffyl8slop}'effqffzffy3a@8q0ffzq?;if)(DEBUGY)c}'out O"Error after here 9.k\n"~S ush;if)(slop}'effpffzffy29qINVALID_REALD<^8slop}'effqffzffy3xINVALID_REALBM\)f(if3(DEBUGY)c}'out O"Both traces on z-y kplane are vertical\nƠ"T ush;(if3(DEBUGY)c}'out O"Error after here 10k.\n"P ush;(if3(p0ffzPq0ffzw)c}'err|"Lines are coincidenkt.\n"5;(else?c}'errUU"Lines do not interskect.\n" /;(c}'err=|·"Returning INVALID_BkOOL_POINT.\n\n"/ ush;(returnKINVALID_BOOL_POINT;gelse4.7if?/(slop}'effpffzffy29qINVALID_REALBM\)f(if3(DEBUGY)c}'out O"The p-trace is vertkical\n"G ush;(if3(DEBUGY)c}'out O"Error after here 11k.\n"P ush;(zffi7$=p0ffzP;(yffi7=zffi]8slop}'effqffzffy3a@+8yffintffqffz(˫;(if3(DEBUGY)f2c}'outH T"x_i == "5T}xffixendl ush;2c}'outH T"y_i == "5T}yffi endl ush;2c}'outH T"z_i == "5T}zffiǷendl ush;2c}'outH T"slope_q_z_y == "_Teslop}'effqffzffy4}endl ush;2c}'outH T"y_int_q_z == "Tkyffintffqffz+endl ush;(ggelse4.7if?/(slop}'effqffzffy1INVALID_REALBM\)f(if3(DEBUGY)c}'out O"The q-trace is vertkical\n"G ush;(if3(DEBUGY)c}'out O"Error after here 12k.\n"P ush;(zffi7$=q0ffzw;(yffi7=zffi]8slop}'effpffzffy3+8yffintffpffz);(if3(DEBUGY)f2c}'outH T"x_i == "5T}xffixendl ush;2c}'outH T"y_i == "5T}yffi -endl ush;n썷x5363DLDFPRÎGSTRACEXVERSION145n@P2c}'outH T"z_i == "5T}zffiǷendl ush; 2c}'outH T"slope_p_z_y == "_Teslop}'effpffzffy5endl ush;2c}'outH T"y_int_p_z == "Tkyffintffpffz,fendl ush;(ggelse5f(if3(DEBUGY)c}'out O"Neither trace is vekrtical\n"TA ush;(if3(DEBUGY)c}'out O"Error after here 13k.\n"P ush;(zffi7$=(yffintffqffz(˷8yffintffpffz))=(slop}'effpffzffy198slop}'effqffzffy1(`);(yffi7=slop}'effpffzffy4rQ8zffiW+8yffintffpffz);(if3(DEBUGY)f2c}'outH T"x_i == "5T}xffixendl ush;2c}'outH T"y_i == "5T}yffi +endl ush;n썫146TRAÎCEXVERSIONS3DLDFPRGx536n@P2c}'outH T"z_i == "5T}zffiǷendl ush; 2c}'outH T"slope_p_z_y == "_Teslop}'effpffzffy5endl ush;2c}'outH T"y_int_p_z == "Tkyffintffpffz,fendl ush;(ggelse5f(if3(DEBUGY)c}'out O"Neither trace is vekrtical\n"TA ush;(if3(DEBUGY)c}'out O"Error after here 13k.\n"P ush;(zffi7$=(yffintffqffz(˷8yffintffpffz))=(slop}'effpffzffy198slop}'effqffzffy1(`);(yffi7=slop}'effpffzffy4rQ8zffiW+8yffintffpffz);(if3(DEBUGY)f2c}'outH T"x_i == "5T}xffixendl ush;2c}'outH T"y_i == "5T}yffi endl ush;2c}'outH T"z_i == "5T}zffiǷendl ush;2c}'outH T"slope_p_z_y == "_Teslop}'effpffzffy5endl ush;2c}'outH T"y_int_p_z == "Tkyffintffpffz,fendl ush;2c}'outH T"slope_q_z_y == "_Teslop}'effqffzffy4}endl ush;2c}'outH T"y_int_q_z == "Tkyffintffqffz+endl ush;(gggelse:=TheyUUdon'thaveUUthesamevqalueforx.o=fif)(DEBUGY)c}'out O"Error after here 14k.\n"P ush;c}'err3|"Lines do not interskect:\n" /;c}'err3 Hc"("%Hcp0ffxdHc", ""Hcp0ffyHc", "Hcp0ffzKHc") -- ("1Hcp1ffxHc", "Hcp1ffy2", "J Qp1ffz^Q")\n("&Qq0ffxbQ", ")Qq0ffyGķQ", "Qq0ffzۯQ") -- ("1)Qq1ffx2", "JMyq1ffy2", "q1ffzƏ")\nReturning INVALIkD_BOOL_POINT.\n", ush;returnAINVALID_BOOL_POINT;g g else .5if+-(yffintffp!AINVALID_REALBM\)=q~pxyisUUparalleltothey-axis.o= @@ -2012,7 +2043,7 @@ g else .5if+-(yffintffq!INVALID_REALBM\)=Ʊ~qxy#isUUparalleltothey-axis.o= fif(DEBUGY)c}'out O"Error after here 16k.\n"P ush;xffi#~=q0ffxݫ;yffi#=slop}'effpffxffy48xffi\$+8yffintffp ; -g̠n썫146TRAÎCEXVERSIONS3DLDFPRGx537n@P537. [LDFT2002.11.12.]ZB!!ZBUG:OccurredwhenItriedto ndanintersectionoftwolinesinthex-zplane. ThiscoGdeshouldn'tbereached.n썷x5373DLDFPRÎGSTRACEXVERSION147n@P537. [LDFT2002.11.12.]ZB!!ZBUG:OccurredwhenItriedto ndanintersectionoftwolinesinthex-zplane. ThiscoGdeshouldn'tbereached.6=slop}'effqffxffy2Ce)fxffi-=(yffintffq qʷ8yffintffp )=(slop}'effpffxffy288slop}'effqffxffy1-);yffi-=slop}'effpffxffy48xffi\$+8yffintffp ;g @@ -2028,10 +2059,10 @@ fzffintffq4;=q0ffz8W8(slop}'effqffxffz1Iq0ffx); g if(DEBUGY)fc}'out* Q"z_int_p == "JTqzffintffp#D˷endl ush;c}'out* Q"z_int_q == "JTqzffintffq#׷endl ush; -g539. [LDFT2003.06.24.]ZxffijΫwillXbGeequaltoINVALID_REALB,Yifthetracesofthelinesonthex-yplanewerecolinear.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.24.]Y;AddedUUthisconditional.Ȅ` 8EndTLogA>`hDe neUUP9oint"Dfunctions@285i+ +g539. [LDFT2003.06.24.]ZxffijΫwillXbGeequaltoINVALID_REALB,Yifthetracesofthelinesonthex-yplanewerecolinear.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.24.]Y;AddedUUthisconditional.Ȅ`GhDe neUUP9oint"Dfunctions@285i+ if(xffi|INVALID_REALD<^8:(zffintffp }INVALID_REAL_zffintffq"tINVALID_REALBM\))fxffi#~=(zffintffq8zffintffp{)=(slop}'effpffxffz18slop}'effqffxffz1I);yffi#=p0ffye; -g+n썷x5403DLDFPRÎGSTRACEXVERSION147n@P540. In̓thefollowingcase,ֱ~bpxzjand\~qxz4larebGothparalleltothez-axis.׀Theyhavethesamevqalueforx. W*e'veUUsetxffiabGove,sothere'snoneedtodosohereagain.hDe neUUP9oint"Dfunctions@285i+ +g+n썫148TRAÎCEXVERSIONS3DLDFPRGx540n@P540. In̓thefollowingcase,ֱ~bpxzjand\~qxz4larebGothparalleltothez-axis.׀Theyhavethesamevqalueforx. W*e'veUUsetxffiabGove,sothere'snoneedtodosohereagain.hDe neUUP9oint"Dfunctions@285i+ if(zffintffp }INVALID_REALD<^8zffintffq"tINVALID_REALBM\)fif(DEBUGY)c}'out O"Error after here 19k.\n"P ush;if(p0ffx6=q0ffxݫ)fif)(DEBUGY)c}'out O"Error after here 20k.\n"P ush;c}'err4FL"Lines do not intersmFect:\n"үFL"("FLp0ffx6FL", "FLp0ffzGзFL", "2p0ffzIܷ") -- ("2p1ffxJܷ", "p1ffzv", "p1ffz")\n("(q0ffx2", "K Cq0ffzݷC", " ڷCq0ffzC") -- ("3 ηCq1ffxFCC", "Cq1ffzCq1ffz2")\nReturning INVALID_BOOL_POINT.\n"M ush;returnAINVALID_BOOL_POINT;g g else .5if+-(zffintffp }INVALID_REALBM\)fif(DEBUGY)c}'out O"Error after here 21k.\n"P ush;zffi#$=p0ffzP; @@ -2040,7 +2071,7 @@ g else!fif(DEBUGY)c}'out O"Error after here 23k.\n"P ush;zffi#$=slop}'effpffxffz4 8xffi\$+8zffintffp{; g -g?Bn썫148TRAÎCEXVERSIONS3DLDFPRGx541n@P541. [LDFT2002.10.27.]ZuIfxffi|,yffiþ,andzffiareallvqalid,setbpm :pt w1usingthosevqalues.)Otherwise,setitto INVALID_POINTDA.mJIfGthisP9oint"*isonbGothofthelinesegmentsȍƍg!N8p0|sp1andȍW!N8q0|sq1.g,Jsetbp"X:btotrue w,otherwisesetitUUtofalse.hDe neUUP9oint"Dfunctions@285i+ +g?n썷x5413DLDFPRÎGSTRACEXVERSION149n@P541. [LDFT2002.10.27.]ZuIfxffi|,yffiþ,andzffiareallvqalid,setbpm :pt w1usingthosevqalues.)Otherwise,setitto INVALID_POINTDA.mJIfGthisP9oint"*isonbGothofthelinesegmentsȍƍg!N8p0|sp1andȍW!N8q0|sq1.g,Jsetbp"X:btotrue w,otherwisesetitUUtofalse.hDe neUUP9oint"Dfunctions@285i+ if(DEBUGY)fc}'out* Q"Error after here 24k.\n"P ush;c}'out* Q"x_i == "5T}xffixendl ush;c}'out* Q"y_i == "5T}yffi endl ush;c}'out* Q"z_i == "5T}zffiǷendl ush; g @@ -2058,17 +2089,17 @@ fcle}'ar*(۫();tr}'ansformBz[=p:tr}'ansform+A;for%舫(v9ectorHhShapQe"Ab'Aci::Bc}'onstffiteratorCiterW=p:shap}'es:b}'egin();iter6=p:shap}'es:endಫ();iterJ++")fshap}'es::pushffb}'ack+XR((iter)~getffc}'opy(õ());gLabQel38lblC%;for%舫(v9ectorHhLabQel$i::Bc}'onstffiteratorCiterW=p:lab}'elsT:b}'egin();iter6=p:lab}'els:endಫ();iterJ++")flbl,=(iter)~getffc}'opy(õ();lab}'els6T:pushffb}'ack+XR(lbl Aj);g g544. Cop9yOconstructor.!!JPOR*TING}[LDFT2002.12.05.]QsMovedherefrompictures.web.Seethat leforUUexplanation.hDe neUUPicture,Ffunctions@219i+ Picture0::Picture&(const*PictureG&N"pS") -:qdofflab}'els*(trueĘ)UUfJ3n썷x5443DLDFPRÎGZCOPYXCONSTRUCTOR149n@Pthis,ѫ=p; -g545. Com9biningTPictures.[LDFT2002.04.17.]Z6AddedUUthisfunction.c9Ȅ`> 8BeginTLogJʄ`> +:qdofflab}'els*(trueĘ)UUfJzn썫150COPYXCONSTRÎUCTORZ3DLDFPRGx544n@Pthis,ѫ=p; +g545. Com9biningTPictures.[LDFT2002.04.17.]Z6AddedUUthisfunction.N99Ȅ`+U 8Log)j`+U [LDFT2002.10.29.]Y;MadeUUp const)LandUU xedbugsthatchangedp (seebGelow). [LDFT2002.10.29.]YiBUGFIX:Now,p:tr}'ansform/iisappliedto(shap}'es:b}'ackë()),previouslyitwasappliedtoUUUV UWiter U,UUwhichwasnotwhatIwanted. [LDFT2002.10.29.]XBUGFIX:"Now,,p ,:tr}'ansform.cisappliedto#(lab}'elsT:b}'ackë()~pt 䞫),,previouslyitwasappliedtoUUUV((iter)~pt 䞫),UUwhichisnotwhatIwanted. -[LDFT2002.10.29.]Y;BUGUUFIX:Now,p]U:tr}'ansform+A:r}'esetƷ()isnolongercalled.Ȅ` 8EndTLogA>`hDe neUUPicture,Ffunctions@219i+ +[LDFT2002.10.29.]Y;BUGUUFIX:Now,p]U:tr}'ansform+A:r}'esetƷ()isnolongercalled.Ȅ`GhDe neUUPicture,Ffunctions@219i+ v9oid"PictureI::P((opQerator{ݫ+=M(const*PictureG&N"pS") ffor%舫(v9ectorHhShapQe"Ab'Aci::Bc}'onstffiteratorCiterW=p:shap}'es:b}'egin();iter6=p:shap}'es:endಫ();iterJ++")fshap}'es::pushffb}'ack+XR((iter)~getffc}'opy(õ());(=<[LDFT2002.10.29.]SNormally*,8tr}'ansform2in1aPicture+5isappliedtoitsShapQes)qwhenit'soutput,2however,itmustbGedonenowforthecopiesoftheShapQes*fromPicture,Qp5Lthatarecopied2onto==this),BbGecause=pE:tr}'ansform./is=onlyknownwithinpE;itheShapQes)%don't\know"abGoutit.=#(shap}'es:b}'ackë())=UOp]O:tr}'ansform+A;gfor%舫(v9ectorHhLabQel$i::Bc}'onstffiteratorCiterW=p:lab}'elsT:b}'egin();iter6=p:lab}'els:endಫ();iterJ++")flab}'els6T:pushffb}'ack+XR((iter)~getffc}'opy(õ());#(lab}'elsT:b}'ackë()~pt 䞫)=UOp]O:tr}'ansform+A;g g546. ClearTPicture.hDe neUUPicture,Ffunctions@219i+ v9oid"PictureI::cle}'ar(ݫ() -fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Picture::cklear().\n"> ush;if(shap}'es:size\()0 ^8lab}'elsб:size()0)return%e;tr}'ansform?C:r}'esetƷ();for%舫(v9ectorHhShapQe"Ab'Aci::Biter}'ator)7iter=+M=shap}'es:b}'egin();iter6=shap}'es:endಫ();iterJ++")f(iter)~cle}'ar(ګ();delete?ƽ(iter);gfor%舫(v9ectorHhLabQel$i::Biter}'ator)7iter=+M=lab}'els:b}'egin();iter6=lab}'els:endಫ();iterJ++")f(=I??ɪIrtriedrtouse 9LabQel'{"()here,ybutitdidn'twork.Irgotrun-timeerrorshavingtodowith2\Unalignedaccesspid=299273::: "(didn'tunderstand).yThisworks,Jthough.IfIchangethe2de nitionUUofLabQel,I'llhaveUUtomakecorrespGondingchangeshere.o=delete?ƽ(iter)~pt 䞫;delete?ƽ(iter);gshap}'es0:cle}'ar(٫();\n썫150CLEARXPICTURE 3DLDFPRÎGx546n@Plab}'els,T:cle}'ar(٫(); if(DEBUGY)c}'out O"Exiting Picture::clkear().\n"TA ush; +fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Picture::cklear().\n"> ush;if(shap}'es:size\()0 ^8lab}'elsб:size()0)return%e;tr}'ansform?C:r}'esetƷ();for%舫(v9ectorHhShapQe"Ab'Aci::Biter}'ator)7iter=+M=shap}'es:b}'egin();iter6=shap}'es:endಫ();iterJ++")f(iter)~cle}'ar(ګ();delete?ƽ(iter);gfor%舫(v9ectorHhLabQel$i::Biter}'ator)7iter=+M=lab}'els:b}'egin();iter6=lab}'els:endಫ();iterJ++")f(=I??ɪIrtriedrtouse 9LabQel'{"()here,ybutitdidn'twork.Irgotrun-timeerrorshavingtodowith2\Unalignedaccesspid=299273::: "(didn'tunderstand).yThisworks,Jthough.IfIchangethe2de nitionUUofLabQel,I'llhaveUUtomakecorrespGondingchangeshere.o=delete?ƽ(iter)~pt 䞫;delete?ƽ(iter);gshap}'es0:cle}'ar(٫();\Vn썷x5463DLDFPRÎG CLEARXPICTURE151n@Plab}'els,T:cle}'ar(٫(); if(DEBUGY)c}'out O"Exiting Picture::clkear().\n"TA ush; g547. Output.TheUUarguments: sortffvalue9 is6usedtodeterminehowtosorttheShapQes&).gThevqaluestobGeusedarefoundinnamespace Sorting/jG.S 8BeginTLogJʄ`> +oQcus#{Jwhereitwon'tbGeableto\see"partoftheimage.kInthesecases,UUitwillbGeannoyingtoseethewarnings.9Ȅ`+U 8Log)j`+U [LDFT2002.09.21.]Y;AddedUUtheargumentsdoffsort&oanddoffwarnings9. -[LDFT2003.05.16.]XCChangede]bQooldoffsort=toe]constunsignedNshortksortffvalue.!AbGoute]toaddnamespaceSorting(withUUconstantsfordi erentwaysofsorting,i.e.,\nosort",\nearest-last",or\furthest- rst".Ȅ` 8EndTLogA>`548. F +[LDFT2003.05.16.]XCChangede]bQooldoffsort=toe]constunsignedNshortksortffvalue.!AbGoute]toaddnamespaceSorting(withUUconstantsfordi erentwaysofsorting,i.e.,\nosort",\nearest-last",or\furthest- rst".Ȅ`G548. F oQcusTargumen9t.hDe neUUPicture,Ffunctions@219i+ v9oid#9PictureJJ::outputD(constF -oQcus@Z&H!!fN;const ǪunsignedQshortppr}'ojޱ;realP6factor4T;const2unsignedbshortBsortffvalue\;const 2bQool:0 S"Entering Picture::okutput(const Focus& .Ơ..).\n"  ush;(c}'out> S"min_x_proj == "Zhminffxffpr}'oj5_~endl ush;(c}'out> S"max_x_proj == "Zhmaxffxffpr}'oj6o#endl ush;(c}'out> S"min_y_proj == "Zhminffyffpr}'oj5endl ush;(c}'out> S"max_y_proj == "Zhmaxffyffpr}'oj6endl ush;g=CheckUUwhetherthev9ector&Tshap}'esFЫhasanythinginit.qIfitdoGesn't,return.o=if)(shap}'es:size\()0 ^8lab}'elsб:size()0)f(if3(DEBUGY)c}'out O"Picture is empty. Rketurning.\n"8 ush;(returnHi;gn̠n썷x5493DLDFPRÎGXEF9OCUSXARGUMENT151n@P549. [LDFT2002.09.17.]ZF1SomePShapQes)mayPconsistofotherShapQes&, andnothaveanoutput "()functionof theirMown,O3sowemustextracttheircontentsrecursivelyuntilwegettoShapQes*thathaveone.o9Sofar,O3onlyP9ointH,UUP9ath湫,UUandSolid (haveUUoutput d()UUfunctions,andallotherShapQes*reducetoP9aths#JorSolids!\h. +oQcus@Z&H!!fN;const ǪunsignedQshortppr}'ojޱ;realP6factor4T;const2unsignedbshortBsortffvalue\;const 2bQool:0 S"Entering Picture::okutput(const Focus& .Ơ..).\n"  ush;(c}'out> S"min_x_proj == "Zhminffxffpr}'oj5_~endl ush;(c}'out> S"max_x_proj == "Zhmaxffxffpr}'oj6o#endl ush;(c}'out> S"min_y_proj == "Zhminffyffpr}'oj5endl ush;(c}'out> S"max_y_proj == "Zhmaxffyffpr}'oj6endl ush;g=CheckUUwhetherthev9ector&Tshap}'esFЫhasanythinginit.qIfitdoGesn't,return.o=if)(shap}'es:size\()0 ^8lab}'elsб:size()0)f(if3(DEBUGY)c}'out O"Picture is empty. Rketurning.\n"8 ush;(returnHi;gnn썫152F9OCUSXARÎGUMENTXE3DLDFPRGx549n@P549. [LDFT2002.09.17.]ZF1SomePShapQes)mayPconsistofotherShapQes&, andnothaveanoutput "()functionof theirMown,O3sowemustextracttheircontentsrecursivelyuntilwegettoShapQes*thathaveone.o9Sofar,O3onlyP9ointH,UUP9ath湫,UUandSolid (haveUUoutput d()UUfunctions,andallotherShapQes*reducetoP9aths#JorSolids!\h. [LDFT2002.09.17.]Y5~extr}'actw()checksthatalloftheP9oints'(containedintheShapQe%=canbGepro8jectedwiththeF -oQcus"*thatisbGeingused.BPIfanyofthemcannotbe,jthenextr}'act!^()returnsanemptyv9ector%8&ofShapQes&<8.This )meansthatanyShapQe$_mustbGeentirelypro8jectable;"partialShapQes)willnotbGeoutput.Xcproblem,etoo.U9Ȅ`> 8BeginTLogJʄ`> +oQcus"*thatisbGeingused.BPIfanyofthemcannotbe,jthenextr}'act!^()returnsanemptyv9ector%8&ofShapQes&<8.This )meansthatanyShapQe$_mustbGeentirelypro8jectable;"partialShapQes)willnotbGeoutput.Xcproblem,etoo.9Ȅ`+U 8Log)j`+U [LDFT2003.01.05.]Y;MoGdi edUUtheTU>VExXGtextaboveUUtoaccountforthefactthatI'veaddedSolid,. [LDFT2003.01.05.]Z_BUGaFIX:MovedthecoGdethatcausestr}'ansform5 tobeappliedtotheelementsofshap}'es.Thiscisnowdoneb}'efore$thecextremes-arecset.ThewaycitwasbGeforedidn'tworkpropGerly*,gSbecauseextr}'acto()W -usedtheuntransformedvqaluestodecidewhetheraShapQe%!waspro8jectable.vInordertodothis,WwIhadUUtomakeapplyfftr}'ansformIu4()aShapQe%function.Ȅ` 8EndTLogA>`hDe neUUPicture,Ffunctions@219i+ +usedtheuntransformedvqaluestodecidewhetheraShapQe%!waspro8jectable.vInordertodothis,WwIhadUUtomakeapplyfftr}'ansformIu4()aShapQe%function.Ȅ`GhDe neUUPicture,Ffunctions@219i+ v9ector)IhShapQe"Ab'AciUUv; v9ector)IhShapQe"Ab'AciUUelements*;P; v9ector)IhShapQe"Ab'Aci::Biter}'ator)7iter:d5; @@ -2098,8 +2129,8 @@ for臫(iter=shap}'es:b}'egin();iter6=shap}'es:endಫ();++Giter")fif(dofftr}'ansform94)f( iter)=UOtr}'ansform>;gv׫=(iter)~extr}'act"p(f;pr}'ojk;factor);if(DEBUG9^8vm:size\()0)c}'err3|"WARNING! In Picturek::output():\n"2"extract() returned kan empty vector. "͔&2"Continuing.\n" X ush;for%舫(v9ectorHhShapQe"Ab'Aci::Biter}'ator)7i/C=v:b}'egin();i 9 6=v:endಫ();++Gi)felementsD:pushffb}'ack+XR(iq);g g -DEBUG'r=falsev\;n썫152F9OCUSXARÎGUMENTXE3DLDFPRGx550n@P550. SetUUtheextremesfortheShapQe%andhandletheerrorifitreturnsfalse.q(LDFUndated)c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.09.18.]Y`hDe neUUPicture,Ffunctions@219i+ +DEBUG'r=falsev\;n썷x5503DLDFPRÎGXEF9OCUSXARGUMENT153n@P550. SetUUtheextremesfortheShapQe%andhandletheerrorifitreturnsfalse.q(LDFUndated)N99Ȅ`+U 8Log)j`+U +[LDFT2002.09.18.]Y0)fif(sortffvalue.2MIN_Zq)sort2ҫ(elements&:b}'egin();elements(:endಫ();Compareus4wminim9umus4zn;());else*.6if5.(sortffvalue.2MAX_Zq)sort2ҫ(elements&:b}'egin();elements(:endಫ();Compareus4wmaxim9umus4zpO());else*.6if5.(sortffvalue.2MEAN_Z"n)sort2ҫ(elements&:b}'egin();elements(:endಫ();Compareus4wmeanus4zYxv());if(DEBUGY)fif)(sortffvalue.2MIN_Zq)c}'out O" *** MIN_Z sort. **k*\n"M8;else4.7if?/(sortffvalue.2MAX_Zq)c}'out O" *** MAX_Z sort. **k*\n"M8;else4.7if?/(sortffvalue.2MEAN_Z"n)c}'out O" *** MEAN_Z sort. *k**\n"5;for/艫(iter=elements):b}'egin();iter6=elements:endಫ();++Giter")f(c}'out@y "Min z: ": ( iter):getffminimumffzC]ث()endl3*"Max z: "<( @@ -2142,7 +2173,7 @@ g=Ы[LDFT2002.04.25.]T'Addede(followingline.@This xesabug.IfIe$don'tresettr}'ansform2}toidentity*,(itUUwillbGeappliedagaineachtimeIoutputaPicture(b,whichisnotwhatIwant.o= tr}'ansform5B:r}'esetƷ(); if(DEBUGY)c}'out O"Exiting Picture::ouktput(const Focus& ..Ơ.).\n" ush; -gn썫154NOXF9OCUSARÎGUMENT3DLDFPRGx554n@P554. NoTF +gn썷x5543DLDFPRÎGNOXF9OCUSARGUMENT155n@P554. NoTF oQcusargumen9t.hDe neUUPicture,Ffunctions@219i+ v9oid#UPictureJf::outputD(const'unsignedPZshorto!pr}'oj;realZRfactor4^0;const unsignedRPshort2sortffvalue];const 3bQool:doffwarningsp=D;const 3real7Jminffxffpr}'ojf똱;const 3real7Jmaxffxffpr}'ojg=;const2realH3minffyffpr}'ojx;constJreal6xmaxffyffpr}'ojg;constJreal6xminffzffpr}'oje;constJreal6xmaxffzffpr}'ojfܞ) foutput1B(defaultfffo}'cus7;pr}'ojk;factor;sortffvalue-±;doffwarnings7j;minffxffpr}'oj1{;maxffxffpr}'oj2;minffyffpr}'oj1l;(maxffyffpr}'ojYm;minffzffpr}'oj0);maxffzffpr}'oj1Ϋ); @@ -2166,23 +2197,23 @@ oQcus#functions@558i g; ThisXco 8BeginTLogJʄ`> +fg SeeXalsosections560,562,565,567,569,571,573,576,577,578,579,580,581,583,and584.ThisXco`560. Constructor.hDeclareUUF +ransform7ҫ.Ȅ`G560. Constructor.hDeclareUUF oQcus#functions@558i+ F oQcus&M(const:real4p}'osffxLz;constreal6Op}'osffyN ܱ;constreal6Op}'osffzMDZ;constreal6OdirffxL[;constreal6OdirffyL ;constreal41dirffzJ~;constJreal6xdistG;constJreal6xangJ -6=0;c9harax)S$='z' w);An썫156CONSTRÎUCTORBz3DLDFPRGx561n@P561.hDe neUUF +6=0;c9harax)S$='z' w);ޠn썷x5613DLDFPRÎGBzCONSTRUCTOR157n@P561.hDe neUUF oQcus#functions@561i F oQcus'Q::F @@ -2190,7 +2221,7 @@ :qdistanc}'e(ī(dist m);angleP(ang);axis<ū(ax w)UUfbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Focus() (7k real arguments).\n"  ush;axis)=tolower#(axis<ȫ);if(axis6='x'FW^8axis<6='y'^8axis6='z' w)fc}'err7A "WARNING! In Focus()p \ (7 real arguments): \n"]2"axis argument has invalid value: " axis". Using 'z'\n"Tk ush;axis3='z' w;gp}'osition7DY:set x(p}'osffxՅ;p}'osffyeܱ;p}'osffzǫ);dir}'ection::set x(dirffxm;dirffy ;dirffz);#if 0tr}'ansform?C:r}'esetƷ();=[LDFT2002.12.10.]T7ThisUUdoGesn'tseemtobenecessary*.qIbelieveIaddeditwhiledebugging.o=#endifif(DEBUGY)ftr}'ansformID:show("transform before alhignment.");gtr}'ansform?C:alignffwithffaxis@x(p}'osition#DW;dir}'ection(;axisp);if(DEBUGY)ftr}'ansformID:show("transform after alihgnment.");c}'out4 R"Enter to ckontinue.\n\n"T5 ush;gT ransformK/unalignffup~=Ztr}'ansform.:inverse ();=XUsehthepGositivey-axisforthe\up"direction,(ifUUaxisY5'x'b̫orUU'z',UUandthepGositivex-axisifaxis'y' w.o=if(axis'z'FW_8axis<'x' w)up:set x(0;1;0);else+up7w:set x(1;0;0);if(anglek6=0)fif)(axis'z' w)upeַ=" tr}'ansformNN:r}'otateo>(0;0; qangle!2);else4.7if?/(axis'x' w)upeַ=" tr}'ansformNN:r}'otateo>(angleq);else4.7if?/(axis'y' w)upeַ=" tr}'ansformNN:r}'otateo>(0; qangle!2);else5f(c}'err@hP"ERROR! In Focus::Foncus():\n",P"This can't happen! n\< axis has invalid value: "ȐaxisQendlܷ"Rotating around z-alQxis.\n"[1<"Enter to try to continue.\n" ush;(up6eڷ=Etr}'ansformqR:r}'otateo>(0;0; qangle!2);gif)(DEBUGY)up:show("up after rotation"dF/);gup"eط=1unalignffupa2;up:applyfftr}'ansformF߫();tr}'ansform?C:shift}(0;0; qdistanc}'e-ë);p}'ersp+G:setffelement2׫(2;2;0);p}'ersp+G:setffelement2׫(2;3;1=distanc}'e$E);if(DEBUGY)c}'out O"Exiting Focus() (7 kreal arguments).\n"# ush; -g SeeXalsosections563,566,568,570,572,574,582,and585.ݽn썷x5613DLDFPRÎGBzCONSTRUCTOR157n@PThisXcouC&FuC&F(angleq);else4.7if?/(axis'y' w)upeַ=" tr}'ansformNN:r}'otateo>(0; qangle!2);else5f(c}'err@hP"ERROR! In Focus::Foncus():\n",P"This can't happen! n\< axis has invalid value: "ȐaxisQendlܷ"Rotating around z-alQxis.\n"[1<"Enter to try to continue.\n" ush;(up6eڷ=Etr}'ansformqR:r}'otateo>(0;0; qangle!2);ggup"eط=1unalignffupa2;up:applyfftr}'ansformF߫();tr}'ansform?C:shift}(0;0; qdistanc}'e-ë);p}'ersp+G:setffelement2׫(2;2;0);p}'ersp+G:setffelement2׫(2;3;1=distanc}'e$E); -g573. Sho9w.9Ȅ`> 8BeginTLogJʄ`> +g573. Sho9w.9Ȅ`+U 8Log)j`+U [LDFT2002.09.17.]Y;AddedUUthisfunction. -[LDFT2003.07.09.]Y;MadeUUtheargumentsconst*.Ȅ` 8EndTLogA>`hDeclareUUF +[LDFT2003.07.09.]Y;MadeUUtheargumentsconst*.Ȅ`GhDeclareUUF oQcus#functions@558i+ -v9oid"show9ث(const*string?OtextffstrbK="Focus:"-Mh;constJbQool9vshowfftr}'ansforms2=falsev\)UUconst*;Cn썫160SHOÎWHF3DLDFPRGx574n@P574.hDe neUUF +v9oid"show9ث(const*string?OtextffstrbK="Focus:"-Mh;constJbQool9vshowfftr}'ansforms2=falsev\)UUconst*;n썷x5743DLDFPRÎGHFSHOW161n@P574.hDe neUUF oQcus#functions@561i+ v9oid"F oQcus@)::show(const*string?Otextffstr`3;constJbQool9vshowfftr}'ansforms)UUconst fc}'out* Qtextffstr&Utendlګ;p}'osition7DY:show("position:":FG);dir}'ection::show("direction:"?D);up:show("up:"Y);c}'out* Q"distance == "Ondistanc}'e)-". ""axis == ":zaxisendl ush;c}'out* Q"angle == "?wangleNendl ush;if(showfftr}'ansformsKAtrue)ftr}'ansformID:show("transform:"?D);p}'ersp5H:show("persp:"*P);greturn4g; g575. Returning֕elemen9tsandinformation.[LDFT2002.09.18.]ZMAddedVlthissection.u ThefunctionsinthisEnsectionarenownecessary*,tsinceI'vemadeF -oQcus%(aclass ث(itwasformerlyastruct"),tandthedatamembGersUUpriv\rate&ӫ.576. GetTpQosition.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.09.18.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUF +oQcus%(aclass ث(itwasformerlyastruct"),tandthedatamembGersUUpriv\rate&ӫ.576. GetTpQosition.9Ȅ`+U 8Log)j`+U +[LDFT2002.09.18.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUF oQcus#functions@558i+ inline)IconstGP9ointf&nkgetffp}'osition㹫()UUconst freturn7p}'osition[+; -g577. GetTdirection.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.09.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUF +g577. GetTdirection.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.09.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUF oQcus#functions@558i+ inline)IconstGP9ointf&nkgetffdir}'ectionS()UUconst freturn7dir}'ection^߭; @@ -2263,43 +2294,43 @@ oQcus#functions@558i+ inline)IconstGreal^h&f/7getffdistanc}'e()UUconst freturn7distanc}'e\,; -g579. GetTup.[LDFT2002.09.18.]Z6AddedUUthisfunction.Ơn썷x5793DLDFPRÎGA1GETXUP161n@PhDeclareUUF +g579. GetTup.[LDFT2002.09.18.]Z6AddedUUthisfunction.n썫162GETXUPA13DLDFPRÎGx579n@PhDeclareUUF oQcus#functions@558i+ inline)IconstGP9ointf&nkgetffup> ()UUconst freturn7upCz; -g580. GetTtransform.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.09.18.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUF +g580. GetTtransform.9Ȅ`+U 8Log)j`+U +[LDFT2002.09.18.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUF oQcus#functions@558i+ inline)IconstGT ransform}&Dgetfftr}'ansform+ث()UUconst freturn7tr}'ansformc; -g581. GetTtransformelemen9t.9Ȅ`> 8BeginTLogJʄ`> +g581. GetTtransformelemen9t.9Ȅ`+U 8Log)j`+U [LDFT2002.09.18.]Y;AddedUUthisfunction. [LDFT2003.07.04.]Y;MadeUUnon-inline.qItnowcallsT ransform8֫::getffelement4#()insteadofaccessingtr}'ansform+A:matrix!directly*.qThisUUisnolongerpGossible,becauseF oQcus#isnolongerafriend$ofT ransform7ҫ. -[LDFT2003.07.09.]Y;ChangedUUtheconst!unsignedQin9tc[argumentstoconst!unsignedQshortl,S.Ȅ` 8EndTLogA>`hDeclareUUF +[LDFT2003.07.09.]Y;ChangedUUtheconst!unsignedQin9tc[argumentstoconst!unsignedQshortl,S.Ȅ`GhDeclareUUF oQcus#functions@558i+ real /getfftr}'ansformffelement(const*unsignedNashortl,Sr}'ow}8;constJunsignedP Xshortmc}'olumn -B)UUconst*;͠n썫162GETXTRANSFÎORMELEMENT 3DLDFPRGx582n@P582.hDe neUUF +B)UUconst*; n썷x5823DLDFPRÎG GETXTRANSFORMELEMENT163n@P582.hDe neUUF oQcus#functions@561i+ real lF oQcus>a::getfftr}'ansformffelementb=ɫ(constunsignedMԞshortkXr}'ow|e#;constunsignedOFshortm`c}'olumn6)const freturn7tr}'ansformc:getffelement3#(r}'ow k;c}'olumn!); -g583. GetTpQersp.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.09.18.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUF +g583. GetTpQersp.9Ȅ`+U 8Log)j`+U +[LDFT2002.09.18.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUF oQcus#functions@558i+ inline)IconstGT ransform}&Dgetffp}'ersp:ܫ()UUconst freturn7p}'erspO; -g584. GetTpQerspelemen9t.U9Ȅ`> 8BeginTLogJʄ`> +g584. GetTpQerspelemen9t.9Ȅ`+U 8Log)j`+U [LDFT2002.09.18.]Y;AddedUUthisfunction. [LDFT2003.07.04.]Y;MadeUUnon-inline.qItnowcallsT ransform8֫::getffelement4#()insteadofaccessingtr}'ansform+A:matrix!directly*.qThisUUisnolongerpGossible,becauseF oQcus#isnolongerafriend$ofT ransform7ҫ. -[LDFT2003.07.09.]Y;ChangedUUtheconst!unsignedQin9tc[argumentstoconst!unsignedQshortl,S.Ȅ` 8EndTLogA>`hDeclareUUF +[LDFT2003.07.09.]Y;ChangedUUtheconst!unsignedQin9tc[argumentstoconst!unsignedQshortl,S.Ȅ`GhDeclareUUF oQcus#functions@558i+ real /getffp}'erspffelementn"ë(const*unsignedNashortl,Sr}'ow}8;constJunsignedP Xshortmc}'olumn B)UUconst*;585.hDe neUUF @@ -2314,7 +2345,7 @@ oQcus*Jdefaultfffo}'cusb((0;10 ; qƫ10qȱ;0;10;0;10);587.hDeclarationsUUfortheheader le@18i+ extern.F oQcusNhxdefaultfffo}'cusFv;588. PuttingTP9ointandF -oQcustogether.&Ƞn썷x5893DLDFPRÎGiPUTTINGXPOINTANDF9OCUSTOGETHER163n@P589. ThisUUiswhat'scompiled. +oQcustogether.%gn썫164PUTTINGXPOINTANDF9OCUSTOGETHERi3DLDFPRÎGx589n@P589. ThisUUiswhat'scompiled. hIncludeUU les@11i hV*ersionUUcontrolidenti er@10i hDe neUUclass5P9oint>264i @@ -2336,7 +2367,7 @@ hDe neUUF oQcus#functions@561i hDe neUULabQel" functions@470i -hDe neUUPicture,Ffunctions@219i2n썫164PUTTINGXPOINTANDF9OCUSTOGETHERi3DLDFPRÎGx590n@P590. ThisUUiswhat'swrittentopoints.h.hpoints.h5590i +hDe neUUPicture,Ffunctions@219i14n썷x5903DLDFPRÎGiPUTTINGXPOINTANDF9OCUSTOGETHER165n@P590. ThisUUiswhat'swrittentopoints.h.*hpoints.h5590i hDe neUUclass5P9oint>264i hDe neUUclass5F oQcus?j556i @@ -2344,15 +2375,17 @@ hDeclareUUnon-membGerfunctionsforP9oints'ݭ436i hTypGeUUde nitions@12i hDeclarationsUUfortheheader le@18i591. Line(lines.web).@`[LDFT2002.10.29.]mHLinesareUUnotShapQes&ʞ.qTheyareusedforpGerformingvectorQopGerations.pAQLine|isde nedbyaP9oint">BrepresentingapGositionvectorandaP9oint">BrepresentingadirectionUUvector. -[LDFT2003.06.03.]Y;TOUUDO:Addsettingfunctions.c9Ȅ`> 8BeginTLogJʄ`> +[LDFT2003.06.03.]Y;TOUUDO:Addsettingfunctions..9Ȅ`+U 8Log)j`+U [LDFT2002.04.08.]YAdded=thissection.+[LDFT2002.04.12.]WCreatedthis le.+Removed=thecoGdeforLinefromUUpoints.webandputithere. -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i+592. IncludeT les.hIncludeUU les@11i+#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. LineTstructde nition. +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`GhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: lines.web,v 1.k2 2003/12/10 15:40:4Ơ8 lfinsto1 Exp $".ի;592. IncludeT les.hIncludeUU les@11i+#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. LineTstructde nition. format3c(LinePNPointhDe neUUstruct$LLine?ӭ593i struct+LineEMзf public)=֫:P9oint#p}'ositionG3;P9oint2dir}'ectionY萫;hDeclareUULine-constructors@595ihDeclareUULine-functions@599i -g; ThisXco 8BeginTLogJʄ`> +g; *ThisXco`595. Defaultconstructor.This2constructortakestwooptionalP9oint"arguments.fJThedefaultfortheP9ointargumentsUUisoriginKv.hDeclareUULine-constructors@595i +It$toGokmeawhileto gureoutwhyIwashavingproblemswithLines.:bTheconstructorwasmakingtheoppGositeassumption,Ɏnamely*,thatitwassuppGosedtocalculatetheLinefromitsarguments,ratherUUthanjusttakingthemastheywere.qThiscausedaprobleminPlane!6::interse}'ctionfflineH().Ȅ`G595. Defaultconstructor.This2constructortakestwooptionalP9oint"arguments.fJThedefaultfortheP9ointargumentsUUisoriginKv.hDeclareUULine-constructors@595i Line X(const*P9oint=?&D]p}'osV7=origin9;constJP9oint>&FdirWNy=origin); SeeXalsosection597.ThisXco&FdirTa) :qp}'osition'(p}'os!«);dir}'ection+(dir \)UUfp}'osition7DY:applyfftr}'ansformF߫();dir}'ection::applyfftr}'ansformF߫(); @@ -2362,30 +2395,30 @@ Line!X::LineX(const*Line7z&?lBҫ) :qp}'osition'(l.::p}'osition#DW);dir}'ection+(l:dir}'ection&)UUfp}'osition7DY:applyfftr}'ansformF߫();dir}'ection::applyfftr}'ansformF߫(); g599. Assignmen9t.hDeclareUULine-functions@599i -v9oid"opQeratorN=V[(const*Line7z&?lBҫ); SeeXalsosections602,604,and608.ThisXco 8BeginTLogJʄ`> -[LDFT2003.06.06.]XBUG"!FIX:".ChangedthecalltoLinez(),,isothattheargumentfordir}'ection-=Mispt]ҒғthisinsteadUUofpt 9.Ȅ` 8EndTLogA>`hDe neUUP9oint"Dfunctions@285i+ +g SeeXalsosections605,606,607,609,and934.ThisXco 8BeginTLogJʄ`> -[LDFT2003.06.06.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUULine-functions@599i+ +g602. GetP9ath.[LDFT2003.06.06.]ZReturns[alinearPathIDconsistingoftwo[Points#t,]and[correspGondingtoUUtheLineث.qMustbGede nedinpaths.web,becauseP9ath<isanincompletetypehere.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.06.]Y;AddedUUthisfunction.Ȅ`GhDeclareUULine-functions@599i+ P9ath%getffp}'athI(v9oid)UUconst*;603. In9tersection.[LDFT2003.06.06.][MCommented-out.fThis5functiondoGesn'twork.fUsingadi erentversion,Cthat?# ndstheintersectionpGointsofthetracesofthelinesontwoorallofthema8joraxes.jaTO?DO:FixUUit! -LDF ;Undated.YDeclared Minpoints.web,butmustbGede nedhere,bGecauseLinesisanincompletetypeinpoints.web.r9Ȅ`> 8BeginTLogJʄ`> +LDF ;Undated.YDeclared Minpoints.web,butmustbGede nedhere,bGecauseLinesisanincompletetypeinpoints.web.9Ȅ`+U 8Log)j`+U [LDFT2002.04.12.]ZXMoved5thisfunctionde nitionherefrompoints.webbGecauseitrequirestheuseofLinesΎ,UUandLine-isanincompletetypGethere. [LDFT2002.04.15.]Z=Commented-out,zbGecause WI'mhavingproblemswithit. Commentedoldversioninpoints.webUUbackin.qIdon'tquiteunderstandthis,bGecauseitseemedtobeworking. -[LDFT2002.04.22.]XChangeda0returnvqaluetobQoolus4wpoin9t7v,tocorrespGondwiththeoldversion. fThisfacilitatestesting,Asince`O?n썷x6033DLDFPRÎG WINTERSECTION167n@PhDe neUUP9oint"Dfunctions@285i+ #if 1$=0= +[LDFT2002.04.22.]XChangeda0returnvqaluetobQoolus4wpoin9t7v,tocorrespGondwiththeoldversion. fThisfacilitatestesting,Asince۫&FRpp0W);const P9oint@6&Gpp1Y0ѱ;const P9oint2&9#qq0I;constJP9oint>&Fqq1V) f=ST*ARTUUHERE.DEBUGGING.[LDFT2003.06.24.]P=bQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Point::intkersection_point()\n"M;Line-lffp<=pp0H:getffline!O(pp130); Line-lffq<+=qq0:getffline!O(qq1-~);if(DEBUGY)fpp0/33:show("pp0"Y);pp1/33:show("pp1"Y);qq0.-:show("qq0"Y);qq1.-:show("qq1"Y);lffp*}0:show("l_p"Y);lffq*;<:show("l_q"Y);gbQoolus4wrealus4pQoin9tdFbrpv=lffpDE:getffdistanc}'e4y(lffq ;9);if(DEBUGY)fc}'out4 R"brp.b == "?wbrp:b·endl ush;c}'out4 R"brp.r == "?wbrp:r,endl ush;brp-:pt 䝱:show("brp.pt"*P);gif(brp:r,6=0 _8brpJα:b·false<_8brp:pt INVALID_POINTGY)return(INVALID_BOOL_POINT;bQoolus4wpoin9tLbpW;bp{:pt =brp:pt 䝫;bQoolus4wrealE@brffpZǜ=brp:pt 䝱:isffonffse}'gment=5O(pp030;pp1ث);bQoolus4wrealE@brffqZ=brp:pt 䝱:isffonffse}'gment=5O(qq0-~;qq1&);if(DEBUGY)fc}'out4 R"br_p.first == "Zhbrffp: rst|·endl ush;c}'out4 R"br_p.second == "_Tebrffp:se}'cond n߷endl ush;c}'out4 R"br_q.first == "ZhbrffqE%: rst|·endl ush;c}'out4 R"br_q.second == "_TebrffqE%:se}'cond n߷endl ush;gbp{:b«=(brffp: rst^8brffq: rst);if(DEBUGY)c}'out O"Exiting Point::intekrsection_point()\n" ;return7bpB5; g#endif604. GetOdistance.[LDFT2002.04.22.]ZuRenamedSthisgetffdistanc}'e7M()frominterse}'ctionffpointPj().q1TheoldversionofP9oint!::interse}'ctionffpointNګ(),HwhichI^amcurrentlyusingagain,Hsincethenewversionwasn'tworking,returnsFabQoolus4wpoin9t8ጫ,whichissensible.IfI7startusingthecommented-outversionabGoveagain,I;should;haveitreturnabQoolus4wpoin9t;toGo,@insteadofabQoolus4wrealus4pQoin9tP-@.iJThiswillmakeiteasiertoswitchbackUUtotheoldversion,ifIhaveproblemsagain. -[LDFT2003.06.11.]X"ST*ART!/HERE.! 8BeginTLogJʄ`> -[LDFT2002.04.10.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUULine-functions@599i+ +[LDFT2003.06.11.]X"ST*ART!/HERE.!::getffdistanc}'e5y(const*Line7z&?lBҫ)UUconst*fUUbQoolDEBUG:,=falsev\;=trueĒ=if)(DEBUGY)c}'out O"Entering Line::get_kdistance()\n";bQoolus4wrealus4pQoin9tnFbrp}X;P9oint);if)(normalffunit8origin9)f(if3(DEBUGY)c}'out O"Lines are parallel.k\n"~S ush;(brp7:b«=falsev\;=NoUUintersection.o=(brp7:pt =INVALID_POINTGY;(P9ointFtempffptiS(l.::p}'osition#DW);(tempffptMη=_"p}'osition)y;(tempffptMΫ=tempffpt%ʱ:cr}'ossffproduct:(dir}'ection&);(brp7:r,=tempffpt%ʱ:magnitude.=r()=dir}'ection&:magnitude();=[LDFT2002.10.29.]T7Distance.o=(if3(DEBUGY)f2c}'outH T"distance == "Onbrp:r,endl ush;(g(if3(DEBUGY)c}'out O"Exiting Line::get_dkistance()\n"M ;(returnKbrpZ;gelse4.7fif)(DEBUGY)c}'out O"Lines are not paralklel.\n"G ush;brp-:r,=fabs((l.::p}'osition%}78p}'osition):dotffpr}'oduct2!(normalffunit5Oɫ));if)(DEBUGY)c}'out O"distance == "Onbrp:r,endl ush;q<n썷x6063DLDFPRÎG pGETXDISTJANCE169n@P606. LinesUUhaveanintersection.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.08.27.]XCommented-outthedeclarationsofvffxZ,vffy,andvffz,sincetheyarenotused.QIhaven'tdeletedUUthem,incaseIneedthemsomeday*.Ȅ` 8EndTLogA>`hDe neUULine-functions@600i+ -if(brp:r,<P9ointad::%epsilonE^())fif(DEBUGY)c}'out O"Lines have an interksection.\n"; ush;brp#:r,=0;brp#:b«=true;real*0affx'=lR:dir}'ection&:getffxg();real*0wffy> =lR:dir}'ection&:getffyt();real*0wffz==lR:dir}'ection&:getffz();real*0uffx<=normal#б:getffxg();real*0uffy<Ƒ=normal#б:getffyt();real*0uffz::getffdistanc}'e5y(const*Line7z&?lBҫ)UUconst*fUUbQoolDEBUG:,=falsev\;=trueĒ=if)(DEBUGY)c}'out O"Entering Line::get_kdistance()\n";bQoolus4wrealus4pQoin9tnFbrp}X;P9oint);if)(normalffunit8origin9)f(if3(DEBUGY)c}'out O"Lines are parallel.k\n"~S ush;(brp7:b«=falsev\;=NoUUintersection.o=(brp7:pt =INVALID_POINTGY;(P9ointFtempffptiS(l.::p}'osition#DW);(tempffptMη=_"p}'osition)y;(tempffptMΫ=tempffpt%ʱ:cr}'ossffproduct:(dir}'ection&);(brp7:r,=tempffpt%ʱ:magnitude.=r()=dir}'ection&:magnitude();=[LDFT2002.10.29.]T7Distance.o=(if3(DEBUGY)f2c}'outH T"distance == "Onbrp:r,endl ush;(g(if3(DEBUGY)c}'out O"Exiting Line::get_dkistance()\n"M ;(returnKbrpZ;gelse4.7fif)(DEBUGY)c}'out O"Lines are not paralklel.\n"G ush;brp-:r,=fabs((l.::p}'osition%}78p}'osition):dotffpr}'oduct2!(normalffunit5Oɫ));if)(DEBUGY)c}'out O"distance == "Onbrp:r,endl ush;pn썫170GETXDISTJANCE p3DLDFPRÎGx606n@P606. LinesUUhaveanintersection.9Ȅ`+U 8Log)j`+U +[LDFT2003.08.27.]XCommented-outthedeclarationsofvffxZ,vffy,andvffz,sincetheyarenotused.QIhaven'tdeletedUUthem,incaseIneedthemsomeday*.Ȅ`GhDe neUULine-functions@600i+ +if(brp:r,<P9ointad::%epsilonE^())fif(DEBUGY)c}'out O"Lines have an interksection.\n"; ush;brp#:r,=0;brp#:b«=true;real*0affx'=lR:dir}'ection&:getffxg();real*0wffy> =lR:dir}'ection&:getffyt();real*0wffz==lR:dir}'ection&:getffz();real*0uffx<=normal#б:getffxg();real*0uffy<Ƒ=normal#б:getffyt();real*0uffz 8BeginTLogJʄ`> +hDeclarationsUUfortheheader le@18i615. Plane(planes.web). [LDFT2002.10.29.]ZPlanesѫareUUnotShapQes&ʞ.qTheyareusedforpGerformingvectorvopGerations.՚AvPlane#Αisde nedbyaP9oint"~representingapGointontheplane,~aP9oint"~representingtheUUnormaltotheplane,andthedistanceoftheplanefromtheorigin.9Ȅ`+U 8Log)j`+U [LDFT2002.04.12.]Y;CreatedUUthis le.qRemovedUUthecoGdeforPlane# frompoints.webandputithere. -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i+616. IncludeT les.hIncludeUU les@11i+#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"617. PlaneTstructde nition. +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`GhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: planes.web,v 1k.2 2003/12/10 16:18:Ơ26 lfinsto1 Exp $"3ҫ;616. IncludeT les.hIncludeUU les@11i+#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"617. PlaneTstructde nition. format3c(PlaneULinehDe neUUstruct$LPlaneF617i struct+PlaneKְf public)=֫:P9oint#normalDFU;P9oint2p}'ointJ+;real*0distanc}'eN-;hDeclareUUPlane# functions@619i -g; ThisXco 8BeginTLogJʄ`> -[LDFT2003.06.06.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUPlane# functions@619in썫172DEF8AÎULJTXCONSTRUCTORQ3DLDFPRGx619n@P -Plane&d(v9oid); SeeXalsosections621,623,625,628,630,633,635,640,642,643,and645.ThisXco 8BeginTLogJʄ`> -[LDFT2003.06.06.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUPlane# functions@619i+ -Plane&d(const*Plane>aZ&F(xpK0x);622.hDe neUUPlane# functions@620i+ -Plane'h::Planeg(const*Plane>aZ&F(xpK0x) -fthis,ѫ=p;return4g; -g623. P9ointTarguments.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.03.]Y_Changedthisfunction.xPBUGFIX:distanc}'e+isnowcalculated,¸insteadofbGeingpassedasUUanargument.qnormal(ԫisnowmadeaunitvector. -[LDFT2003.06.06.]YpCChanged,_so]thatifp}'ointFornormal'risequaltoINVALID_POINTH,theotheroneisalsosetUUtoINVALID_POINTH,anddistanc}'e*issettoINVALID_REALBۙ. -[LDFT2003.06.06.]Y Argumentsa%arenolongeroptional.8I'vemadethischange,dbGecauseI'veaddedadefaultconstructor. -[LDFT2003.06.06.]XAddedFconditionaltotestforcasethatp}'ointug"`hDeclareUUPlane# functions@619i+ -Plane&d(const*P9oint=?&D]pI];constJP9oint>&FnL);^n썷x6243DLDFPRÎGPOINTXARGUMENTS173n@P624.hDe neUUPlane# functions@620i+ +g; ThisXcoaZ&F(xpK0x);)n썫174COPYXCONSTRÎUCTORZ3DLDFPRGx622n@P622.hDe neUUPlane# functions@620i+ +Plane'h::Planeg(const*Plane>aZ&F(xpK0x) +fthis,ѫ=p;return4g; +g623. P9ointTarguments.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.03.]Y_Changedthisfunction.xPBUGFIX:distanc}'e+isnowcalculated,¸insteadofbGeingpassedasUUanargument.qnormal(ԫisnowmadeaunitvector. +[LDFT2003.06.06.]YpCChanged,_so]thatifp}'ointFornormal'risequaltoINVALID_POINTH,theotheroneisalsosetUUtoINVALID_POINTH,anddistanc}'e*issettoINVALID_REALBۙ. +[LDFT2003.06.06.]Y Argumentsa%arenolongeroptional.8I'vemadethischange,dbGecauseI'veaddedadefaultconstructor. +[LDFT2003.06.06.]XAddedFconditionaltotestforcasethatp}'ointug"&FnL);n썷x6243DLDFPRÎGPOINTXARGUMENTS175n@P624.hDe neUUPlane# functions@620i+ Plane'h::Planeg(const*P9oint=?&D]pI];constJP9oint>&FnL) :qnormal$(n);p}'oint.(p)UUfp}'oint+.:applyfftr}'ansformF߫();normal4V:applyfftr}'ansformF߫();if(p}'ointINVALID_POINTGY)fnormalAӫ=INVALID_POINTGY;distanc}'eE =INVALID_REALBM\;return>h;gelse*.6if5.(normal#зINVALID_POINTGY)fp}'oint7=INVALID_POINTGY;distanc}'eE =INVALID_REALBM\;return>h;gelse*.6if5.(normal#зorigin9)fc}'err3"WARNING! In Plane()k:\nnormal == origin.ۛ ""Plane is INVALID_PLkANE.\n\n"~72 ushG;p}'oint7=INVALID_POINTGY;distanc}'eE =INVALID_REALBM\;return>h;gnormal4V:unitffve}'ctor0u(trueĘ);distanc}'e; = 6p}'oint!±:dotffpr}'oduct2!(normal V);if(fabs2ҫ(distanc}'e$E) 8BeginTLogJʄ`> -[LDFT2003.06.06.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUPlane# functions@619i+ -const(*PlaneHa[&P(yopQerator{.=L(const*Plane>aZ&F(xpK0x);n썫174ASSIGNMENT(D3DLDFPRÎGx626n@P626.hDe neUUPlane# functions@620i+ +g625. Assignmen9t.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.06.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUPlane# functions@619i+ +const(*PlaneHa[&P(yopQerator{.=L(const*Plane>aZ&F(xpK0x);En썫176ASSIGNMENT(D3DLDFPRÎGx626n@P626.hDe neUUPlane# functions@620i+ const(*PlaneHa[&P(yPlanen ::topQerator.ӫ=(const*Plane>aZ&F(xpK0x) fif(thisη& 6p6)=MakeUUsureit'snotself-assignment.q[LDFT2003.06.06.]U$=returnA潷FthisWt;p}'oint-=p:p}'oint.;normal7ҫ=p:normal V;distanc}'e; =p:distanc}'e$E;return7漱p<; -g627. ComparingTPlanes.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.06.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`628. Equalit9y -.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.06.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUPlane# functions@619i+ +g627. ComparingTPlanes.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.06.]Y;AddedUUthissection.Ȅ`G628. Equalit9y +.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.06.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUPlane# functions@619i+ bQool#gopQeratorO8V:(const*Plane>aZ&F(xpK0x)UUconst*;629.hDe neUUPlane# functions@620i+ bQool#gPlaneAΫ::H opQerators{n߫(const*Plane>aZ&F(xpK0x)UUconst freturn7漫((p}'ointp:p}'oint.)8^(normal#зp:normal V)^(distanc}'e' p:distanc}'e$E)); g630. Inequalit9y -.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.06.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUPlane# functions@619i+ -bQool#gopQeratorO86=V:(const*Plane>aZ&F(xpK0x)UUconst*;n썷x6313DLDFPRÎG+UINEQUALITY175n@P631.hDe neUUPlane# functions@620i+ +.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.06.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUPlane# functions@619i+ +bQool#gopQeratorO86=V:(const*Plane>aZ&F(xpK0x)UUconst*;@n썷x6313DLDFPRÎG+UINEQUALITY177n@P631.hDe neUUPlane# functions@620i+ bQool#gPlaneAΫ::H opQerators6={n(const*Plane>aZ&F(xpK0x)UUconst freturn7漷:(opQerator+3]ӫ(p)); g632. GetTdistance.633. P9oint6argument.[LDFT2003.06.03.][Thisfunctionreturnsarealus4wshort;%۱r?,Ւwherer R: rst>cisthe distance>oftheP9oint"FfromthePlane b.jUr 4i: rstisalways>pGositive.jUr:se}'cond ƫcan>takeonthefollowingvqalues:0 IfUUtheP9oint"DliesinthePlane 6.1 If,itliesonthesideofthePlane#;5pGointedatbythenormaltothePlane L,4consideredtobGethe\outside".-1 -If1itliesonthesideofthePlane"not pGointedatbythenormaltothePlane,ÞconsideredtobGethe\inside".U9Ȅ`> 8BeginTLogJʄ`> +If1itliesonthesideofthePlane"not pGointedatbythenormaltothePlane,ÞconsideredtobGethe\inside".9Ȅ`+U 8Log)j`+U [LDFT2003.06.03.]XChangedAthede nitionofthisfunction.kFTheoldde nitionwasincorrect.AlsochangedreturnUUtypGefromrealtorealus4wshort5i. -[LDFT2003.06.04.]X1{BUG~^FIX:~Inthecasethatrfffabs^<P9ointad::%epsilonE^(),nowrfffabsissetto0.*2Previously*,r>was,A_which*waswrong,A_bGecauserfffabs".FAlso,Inowsetrfffabs"`hDeclareUUPlane# functions@619i+ +[LDFT2003.06.04.]X1{BUG~^FIX:~Inthecasethatrfffabs^<P9ointad::%epsilonE^(),nowrfffabsissetto0.*2Previously*,r>was,A_which*waswrong,A_bGecauserfffabs".FAlso,Inowsetrfffabs" 8BeginTLogJʄ`> -[LDFT2003.06.03.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUPlane# functions@619i+ -realus4wshort?igetffdistanc}'esx(v9oid)UUconst*;Рn썫176NOXARÎGUMENTv3DLDFPRGx636n@P636.hDe neUUPlane# functions@620i+ +'ThisFversionofgetffdistanc}'e7P()returnsthedatamembGerdistanc}'eandJitssign,Li.e.,theJdistanceoforigin!tothePlane ,$,LandwhichsideofthePlane#vitlieson.n@I'mnotusingoriginTas3thedefaultforanoptionalP9oint!argument,۠bGecauseofproblemsthatmayarise,۠whenI implementuserffc}'oordinatesK vandUUviewffc}'oordinatesK.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.03.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUPlane# functions@619i+ +realus4wshort?igetffdistanc}'esx(v9oid)UUconst*;Ӡn썫178NOXARÎGUMENTv3DLDFPRGx636n@P636.hDe neUUPlane# functions@620i+ realus4wshort?iPlane]K&::getffdistanc}'e5y(v9oid)UUconst freal*0f3s.=fabs(distanc}'e$E);signed7oshortU:s\=staticus4wcast7Dhsigned#oshort=Di(distanc}'e$E=f);return7realus4wshorti%(f;sZ); -g637. P9ointlisonPlane.[LDFT2003.06.04.]ZThislfunctionreturnstrue1|,riftheP9oint"tliesonthePlanep,YotherwiseXfalse.{DeclaredXinpoints.web.MustbGede nedhere,YbecausePlane#ɫisanincompletetypeinthatUU le.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.04.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDe neUUP9oint"Dfunctions@285i+ +g637. P9ointlisonPlane.[LDFT2003.06.04.]ZThislfunctionreturnstrue1|,riftheP9oint"tliesonthePlanep,YotherwiseXfalse.{DeclaredXinpoints.web.MustbGede nedhere,YbecausePlane#ɫisanincompletetypeinthatUU le.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.04.]Y;AddedUUthisfunction.Ȅ`GhDe neUUP9oint"Dfunctions@285i+ bQool#gP9oint@;::isffonffplane2ޫ(const*Plane>aZ&F(xpK0x)UUconst fif(p:getffdistanc}'e4y(this뷫):se}'cond n߷0)return(true;R;else+returnOfalsedn߫; -g638. In9tersection.639. In9tersectionTwithaline.640. P9ointTarguments.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.03.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUPlane# functions@619i+ -bQoolus4wpoin9tBinterse}'ctionffpoint>r(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rū)UUconst*;8n썷x6413DLDFPRÎGPOINTXARGUMENTS177n@P641.hDe neUUPlane# functions@620i+ +g638. In9tersection.639. In9tersectionTwithaline.640. P9ointTarguments.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.03.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUPlane# functions@619i+ +bQoolus4wpoin9tBinterse}'ctionffpoint>r(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rū)UUconst*;n썷x6413DLDFPRÎGPOINTXARGUMENTS179n@P641.hDe neUUPlane# functions@620i+ bQoolus4wpoin9tBPlane`::interse}'ctionffpointNګ(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rū)UUconst fbQoolus4wpoin9tLbpW;real*0denominatorf#=(p0O8p1):dotffpr}'oduct2!(normal V);if9(denominator; ,0 -)=(nt&,):"g海2"denominator is 0. Can't divide. ","Path is either in Pk`lane, or parallel to$\2 Plane."a 8BeginTLogJʄ`> -[LDFT2003.06.03.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUPlane# functions@619i+ -bQoolus4wpoin9tBinterse}'ctionffpoint>r(const*P9ath:[&AypFy)UUconst*;643. In9tersectionToftwoPlanes. [LDFT2002.10.29.]Z6TOUUDO:LoGokupandexplain!c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.04.]Y;ChangedUUtoconst*.Ȅ` 8EndTLogA>`hDeclareUUPlane# functions@619i+ -Line#interse}'ctionfflinek1(const*Plane>aZ&F(xplO^)UUconst*;}n썫178INTERSECTIONXOFTWÎOPLANES^3DLDFPRGx644n@P644.hDe neUUPlane# functions@620i+ +g642. P9athzargument.[LDFT2003.06.03.]Z8De nedinpaths.web,bGecauseP9athhisanincompletetypeinthisUU le.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.03.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUPlane# functions@619i+ +bQoolus4wpoin9tBinterse}'ctionffpoint>r(const*P9ath:[&AypFy)UUconst*;643. In9tersectionToftwoPlanes. [LDFT2002.10.29.]Z6TOUUDO:LoGokupandexplain!N99Ȅ`+U 8Log)j`+U +[LDFT2003.06.04.]Y;ChangedUUtoconst*.Ȅ`GhDeclareUUPlane# functions@619i+ +Line#interse}'ctionfflinek1(const*Plane>aZ&F(xplO^)UUconst*;Ԡn썫180INTERSECTIONXOFTWÎOPLANES^3DLDFPRGx644n@P644.hDe neUUPlane# functions@620i+ Line#PlaneA@::interse}'ctionfflineH(const*Plane>aZ&F(xplO^)UUconst fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Plane::intkersection_line()\n" ;P9oint2plffnormal^(pl 6 :normal V);P9oint2dir}'ectionffvectorz1=normal#б:cr}'ossffproduct:(plffnormal+s);=[LDFT2002.10.29.]T7Needed??o=if(DEBUGY)dir}'ectionffvectorIz:show("direction_vector"_2);if(dir}'ectionffvectorGorigin9)fc}'err3|"In Plane::intersectkion_line().\n"2"Planes are parallelk\n"| ;;if)(distanc}'e' pl #:distanc}'e$E)f2=fEllipse'C::interse}'ctionffpointsR(Ellipse%L&-)ccallsthisfunctionto ndoutwhethertwocPlanes<arecoincident,%sosometimeswedon'twanttoseethesemessages."Imaydecidetoaddan<argumentUUbQoolsilent9$toUUthisfunction.q??AddUUbQoolsilent5ϫ??o=(c}'err=ܷ2"Planes are coincideknt.\n"~2"Returning Line withk origin as position ޺\n"K<"and INVALID_POINT as direction.\n\n" ush;(returnKINVALID_LINEm;gelse5f(c}'err=|·"Planes are not coinkcident.\n">"Returning INVALID_LkINE.\n\n"TA ush;(returnKINVALID_LINEm;gg=OuterUUif .o=if(DEBUGY)c}'out O"Planes are not parakllel\n"G ush;(= uAtbleastoneofthex,f+y*,orbzcompGonentsofdir}'ectionffvectorKmustbGenon-zero,f+otherwise,this2functionUUwouldhaveexitedbynow.o=real*0x0jL;y B;z @@ -2494,123 +2529,125 @@ 618((dmRmxe nx2ӫ)=vy );gelse+fx&~7= 618((dmRmyߚe ny)=vz -mܫ);Ƞn썷x6443DLDFPRÎG^INTERSECTIONXOFTWOPLANES179n@Py& +mܫ);ɠn썷x6443DLDFPRÎG^INTERSECTIONXOFTWOPLANES181n@Py& =(dmR8mx8e 8nx2ӫ)=vz mܫ; z%9=0;gP9oint2p}'ointffonfflinek۳(x;y;zƫ);if(DEBUGY)f p}'ointffonfflineV:show("point_on_line:"T8);dir}'ectionffvectorb}:show("direction_vector:"dF/);getchar?%();gif(DEBUGY)fc}'out4 R"Exiting Plane::intekrsection_line()\n";getchar?%();greturn7LineN??(p}'ointffonffline8;dir}'ectionffvectorF"); -g645. Sho9w.9Ȅ`> 8BeginTLogJʄ`> +g645. Sho9w.9Ȅ`+U 8Log)j`+U [LDFT2003.06.06.]Y;MinorUUchangetotheconditionalthathandlestext!. -[LDFT2003.06.06.]Y;MadeUUshowT()UUconst*.Ȅ` 8EndTLogA>`hDeclareUUPlane# functions@619i+ +[LDFT2003.06.06.]Y;MadeUUshowT()UUconst*.Ȅ`GhDeclareUUPlane# functions@619i+ v9oid"show9ث(string!%Mtext5D1="" z)UUconst*;646.hDe neUUPlane# functions@620i+ v9oid"Plane@@::show(string!%Mtext2})UUconst fif(text"" z)text="Plane:"-Mh;c}'out* Qtextendlګ;if(thisϷINVALID_PLANEGY)fc}'out4 R"INVALID_PLANE. Can'kt show."Dendlendl ush;return>h;gnormal4V:show("normal:"/M);p}'oint+.:show("point:"*P);c}'out* Q"distance == "Ondistanc}'e)-endlendl ush; g647. GlobalTconstan9tsforPlane.hPlane!`globalUUconstants@647i extern.constLHyPlanel1INVALID_PLANEEr(INVALID_POINTDA;INVALID_POINTFp); ThisXco 8BeginTLogJʄ`> -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>` -format3c(PathQSShap}'ehV*ersionUUcontrolidenti er@10i+653. IncludeT les.hIncludeUU les@11i+#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"654. P9athTclassde nition.9Ȅ`> 8BeginTLogJʄ`> +hDeclarationsUUfortheheader le@18i652. P9ath(paths.web).N99Ȅ`+U 8Log)j`+U +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`G +format3c(PathQSShap}'ehV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: paths.web,v 1.k3 2003/12/10 16:10:5Ơ7 lfinsto1 Exp $".ի;653. IncludeT les.hIncludeUU les@11i+#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"654. P9athTclassde nition.9Ȅ`+U 8Log)j`+U [LDFT2002.09.18.]XAddedpr}'ojectiveffextremesW .W=Itcontainstheminimumandmaximumvqaluesforx,y*,andzUUoftheP9oints&.inp}'ointsy.qIt'susedinPicture)f::outputD()forsurfacehiding. -[LDFT2002.4.8.]SAddedstatic*2vqariablesforhelplinesandcurves: helpffc}'olor7,Phelpffdashffp}'atternTMë,doffhelpfflines89.TheVvqariablesforhelplines(orcurves)arepartofP9ath'sinterfaceandcanbGesetany-whereUUbyanyone.Ȅ` 8EndTLogA>`hDe neUUclass5P9ath;654i +[LDFT2002.4.8.]SAddedstatic*2vqariablesforhelplinesandcurves: helpffc}'olor7,Phelpffdashffp}'atternTMë,doffhelpfflines89.TheVvqariablesforhelplines(orcurves)arepartofP9ath'sinterfaceandcanbGesetany-whereUUbyanyone.Ȅ`GhDe neUUclass5P9ath;654i class$RP9ath@ :qprotected86ShapQeZxf -protected:o:bQoolflineffswitchND';bQool-hcycleffswitchb;bQool-honfffr}'eeffstoreeFZ;bQool-hdoffoutputX;=LDFUU2002.09.18.qAdded.o=signed7oshortU: llffdr}'awffvalue欫;=V*ariablesUUfordrawingand lling.o=const2*ColorQϗVϘdr}'awffcolorѫ;const2*ColorQϗVϘ llffc}'olor|g;string5%Odashe}'dSO;string5%Op}'enE?;bQool-harr}'owH;=LDFUU2003.01.15.qAdded.Neededfordr}'awarrow2H().o=v\ralarra9y=ZChreal]ٷiUUpr}'ojectiveffextremesWY;=LDFUU2002.09.18.qAdded.o=v9ector3JhP9oint#iUUp}'ointsy;v9ector3JhstringiUUc}'onnectors2; n썫182P -ATHXCLASSDEFINITION3DLDFPRÎGx654n@P -public)=֫:static$HconstBs{Colorbngohelpffc}'olor; static3HstringTn(helpffdashffp}'attern;static3HbQoolLAdoffhelpfflines#ث;hDeclareUUP9ath<functions@656i -g; ThisXco 8BeginTLogJʄ`> +bQool#gP9ath=2ϫ::doffhelpfflines<=true; ThisXcoNow XallofthedatamembGersofclassP9ath<;hareassignedtoexceptforonfffr}'eeffstore;J.ThisyhasbGecomenecessarybecauseofchangesinSolidT::outputD(),wheretemporaryP9aths&YhaveytobecreatedUUinordertosortthem. [LDFT2002.12.18.]XwMoved`here. 1WiththeDEC`ScompilerunderCompaqT*ru64ontheDECAlphacomputer,it&workedtohavethisfollowingtheconstructors.9bWiththeGNUC++Fcompiler(GCC)underGNU/LinuxontheInteli686computer,itdidn't:8ThecopyconstructorusedthedefaultassignmentopGeratorinsteadofthisfunction,presumablybGecausethisfunctionwasn'tknownatthetimethecopyconstructorwascompiled,althoughsithadb}'eensdeclaredpreviously}!f.URGENT:2MoveassignmentopGeratorsfortheotherclasses$#beforetheUUconstructors! -[LDFT2003.04.09.]Y;??qBUGUUFIX:Nowresizingpr}'ojectiveffextremesWY,ifaftersettingittop:pr}'ojectiveffextremesTQ,{pr}'ojectiveffextremesX̱:size\()0.JThis preventsaMemoryF*aulterroratrun-time.JIdon't:%knowwhyitshouldbGenecessary*,?though,since:%alloftheconstructorsofP9athanditsderivedclassesresizeUUpr}'ojectiveffextremesWY;UUatleast,Ithoughttheydid.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i +[LDFT2003.04.09.]Y;??qBUGUUFIX:Nowresizingpr}'ojectiveffextremesWY,ifaftersettingittop:pr}'ojectiveffextremesTQ,{pr}'ojectiveffextremesX̱:size\()0.JThis preventsaMemoryF*aulterroratrun-time.JIdon't:%knowwhyitshouldbGenecessary*,?though,since:%alloftheconstructorsofP9athanditsderivedclassesresizeUUpr}'ojectiveffextremesWY;UUatleast,Ithoughttheydid.Ȅ`GhDeclareUUP9ath<functions@656i virtual/P9athKt&S;opQerator~`=~(const*P9ath:[&AypFy); See?alsosections660,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,887,889,891,893,899,905,908,912,914,917,and929.ThisXco;dr}'awffcolorES=p:dr}'awffcolor.9;=R[LDFT2002.10.23.]Sdr}'awffcolorīand> llffc}'olor,pGoint>tothesameColor(asUUp]U:dr}'awffcolor2AandUUp: llffc}'olor%U.qNoUUmemoryalloGcationisperformed.o= llffc}'olor<_o=p: llffc}'olor%U;dashe}'d4=p:dashe}'d*;p}'en&ͫ=p:p}'en;pr}'ojectiveffextremesjk=p:pr}'ojectiveffextremesTQ;=LDFUU2002.09.18.qAddedthisline.o=if(pr}'ojectiveffextremesTQ:size\()0)=LDFUU2003.04.09.qAddedthisconditional.o=pr}'ojectiveffextremesrT:r}'esizei(6;0);for%舫(v9ectorHhP9oint#i::Bc}'onstffiteratorCpffiter_ߔ=p:p}'oints$:b}'egin();pffiter!\6=p:p}'oints:endಫ();pffiter~++*ܞ)p}'oints9$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(pffiter));for&Q((v9ectorHhstringi::Bc}'onstffiteratorCcffiter` =uxp}x:c}'onnectors/4.:b}'egin();hcffiter!6=uxp:c}'onnectors:endಫ();2cffiterK++WYͫ)fc}'onnectorsM41:pushffb}'ack+XR(cffiter);greturn7漷 8BeginTLogJʄ`> +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,and933.ThisXco`659. DiscardTpQoin9tsandconnectors.ThisUUisusefulinthesettingfunctions.hDiscardUUp}'oints!?andUUc}'onnectors6ɇ659i +ͫ=Ao""Gѫ,p}'en 9=Ao"",andarr}'ow!@|=AofalsepinallconstructorsandFsettingfunctions.This xedaproblemI+washavingwithIcosahedron@:?OneoftheRegus4wP9olygonswasUUdrawnwithanarrow.Ȅ`G659. DiscardTpQoin9tsandconnectors.ThisUUisusefulinthesettingfunctions.hDiscardUUp}'oints!?andUUc}'onnectors6ɇ659i if(p}'oints$:size\()>0)ffor%舫(v9ectorHhP9oint#i::Biter}'ator)7iter=+M=p}'oints뭱:b}'egin();iter6=p}'oints:endಫ();++Giter")fdelete?ƽDƾiterU;gp}'oints/$:cle}'ar(٫(); g -if(c}'onnectors/4.:size\()>0)c}'onnectors44.:cle}'ar(٫(); Ƞn썫184DISCARDXPOINTSANDCONNECTORS +if(c}'onnectors/4.:size\()>0)c}'onnectors44.:cle}'ar(٫(); n썫186DISCARDXPOINTSANDCONNECTORS 3DLDFPRÎGx659n@PThisXco&Fp1Rū); 3Mn썷x6643DLDFPRÎGBzCONSTRUCTOR185n@P664.hDe neUUP9ath<functions@657i+ +P9ath"e(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rū); 3bn썷x6643DLDFPRÎGBzCONSTRUCTOR187n@P664.hDe neUUP9ath<functions@657i+ P9ath#i::P9athh(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rū) fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Path() (likne version).\n"/ ush;onfffr}'eeffstoreNl =falsev\;lineffswitchFi۫=true;cycleffswitchKǴ=falsev\;doffoutputAM=true;=LDFUU2002.09.18.qAddedthisline.o=pr}'ojectiveffextremeshS:r}'esizei(6;0);=LDFUU2002.09.18.qAddedthisline.o= llffdr}'awffvalueUs+=0;dr}'awffcolorES=0; llffc}'olor<_o=0;dashe}'d4="" z;=LDFUU2003.04.06.qAddedthesethreelines.o=p}'en&ͫ="" z;arr}'ow1'j=falsev\;p}'oints/$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(p0 ));p}'oints/$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(p1 ));c}'onnectorsC40:pushffb}'ack+XR("--"\);if(DEBUGY)c}'out O"Exiting Path() (linke version).\n"2 ush;return4g; g665. SettingTfunction.hDeclareUUP9ath<functions@656i+ -v9oid"set0v](const*P9oint=?&D]p0P;constJP9oint>&Fp1Rū); &Fp1Rū); 3DLDFPRÎGx666n@P666.hDe neUUP9ath<functions@657i+ v9oid"P9ath&Fp1Rū) flineffswitchFi۫=true;cycleffswitchKǴ=falsev\;doffoutputAM=true;=LDFUU2002.09.18.qAddedthisline.o= llffdr}'awffvalueUs+=0;dr}'awffcolorES=0; llffc}'olor<_o=0;dashe}'d4="" z;=LDFUU2003.04.06.qAddedthesethreelines.o=p}'en&ͫ="" z;arr}'ow1'j=falsev\;hDiscardUUp}'oints!?andUUc}'onnectors6ɇ659ipr}'ojectiveffextremesjk=0;=LDFUU2002.09.18.qAddedthisline.o=p}'oints/$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(p0 ));p}'oints/$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(p1 ));c}'onnectorsC40:pushffb}'ack+XR("--"\);lineffswitchFi۫=true; g667. P9oints|andonet9ypQeofconnector.This+ constructortakesavqariablenumbGerofP9oint%Zarguments,'butmonlyallowsonetypGeofconnector.Theargumentlistmustendwith0.Iftheorderofthe?]namedargumentsisreversed,ythecompilercan'tresolvecertaincallstoP9ath()./Itcouldn'tresolvebGetweenP9ath>(bQoolLcycle0 ;stringzc}'onnectorR/:::_)andP9ath (P9oint#( rstffp}'ointffptrj>:::|/g).tVIdon'tknowwhyUUitshouldhavehadtrouble,though,sincepGointerstoP9oints&.arenotbQools*. [LDFT2002.4.6.]O5Probablyitcouldn'tdistinguishbGetweenapointerandanin9tՒontheonehandandabQoolandUUanin9tLontheother.qIhopGethatbQools!aremoreecientlyimplementedthanasints,though! [LDFT2002.10.29.]Y.??I{don't{knowwhycweaveneedsinstructionstoputthinspacesafterthe\bQoolL"intheUUdeclarationandde nitionbGelow.qMaybeUUit'sbecauseofthe\::: ".668. Constructor.hDeclareUUP9ath<functions@656i+ -P9ath"e(string!%Mc}'onnectorL';bQoolLcycle8o:::E>); E5n썷x6693DLDFPRÎGBzCONSTRUCTOR187n@P669.hDe neUUP9ath<functions@657i+ +P9ath"e(string!%Mc}'onnectorL';bQoolLcycle8o:::E>); EJn썷x6693DLDFPRÎGBzCONSTRUCTOR189n@P669.hDe neUUP9ath<functions@657i+ P9ath#i::P9athh(string!%Mc}'onnectorL';bQoolLcycle8o:::E>) fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Path() (coknnector, cycle, ...)Ơ.\n" ush;onfffr}'eeffstoreNl =falsev\;lineffswitchFi۫=falsev\;cycleffswitchKǴ=cycle@M;c}'onnectorsC40:pushffb}'ack+XR(c}'onnector+^ګ);doffoutputAM=true;=LDFUU2002.09.18.qAddedthisline.o=pr}'ojectiveffextremeshS:r}'esizei(6;0);=LDFUU2002.09.18.qAddedthisline.o= llffdr}'awffvalueUs+=0;dr}'awffcolorES=0; llffc}'olor<_o=0;dashe}'d4="" z;=LDFUU2003.04.06.qAddedthesethreelines.o=p}'en&ͫ="" z;arr}'ow1'j=falsev\;v\raus4wlist7'apBO;=F*orUUthevqariablelengthargumentlist.o=vaffstart6i(ap ]R;cycle#ݫ);P9oint27ar}'gffptrWE;while2C.((ar}'gffptr"=vaffar}'g,(ap ]R;P9oint E%F))6=staticus4wcast7DhP9oint#i(0))p}'oints9$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(ar}'gffptrU}));vaffend2DΫ(ap ]R);if(DEBUGY)c}'out O"Exiting Path() (conknector, cycle, ...).Ơ\n" ush;return4g; g670. SettingTfunction.hDeclareUUP9ath<functions@656i+ -v9oid"set0v](string!%Mc}'onnectorL';bQoolLcycle8o:::E>); Q۠n썫188SETTINGXFUNCTION +v9oid"set0v](string!%Mc}'onnectorL';bQoolLcycle8o:::E>); Qn썫190SETTINGXFUNCTION u>3DLDFPRÎGx671n@P671.hDe neUUP9ath<functions@657i+ v9oid"P9ath) fonfffr}'eeffstoreNl =falsev\;lineffswitchFi۫=falsev\;cycleffswitchKǴ=cycle@M;doffoutputAM=true;=LDFUU2002.09.18.qAddedthisline.o=hDiscardUUp}'oints!?andUUc}'onnectors6ɇ659i llffdr}'awffvalueUs+=0;dr}'awffcolorES=0; llffc}'olor<_o=0;dashe}'d4="" z;=LDFUU2003.04.06.qAddedthesethreelines.o=p}'en&ͫ="" z;arr}'ow1'j=falsev\;pr}'ojectiveffextremesjk=0;=LDFUU2002.09.18.qAddedthisline.o=c}'onnectorsC40:pushffb}'ack+XR(c}'onnector+^ګ);v\raus4wlist7'apBO;=F*orUUthevqariablelengthargumentlist.o=vaffstart6i(ap ]R;cycle#ݫ);P9oint27ar}'gffptrWE;while2C.((ar}'gffptr"=vaffar}'g,(ap ]R;P9oint E%F))6=staticus4wcast7DhP9oint#i(0))p}'oints9$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(ar}'gffptrU}));vaffend2DΫ(ap ]R); g672. V -ariablen9umbQerofPointsandconnectors. TheseLfunctionstakesavqariablenumbGerofalternatingZP9oint"+WandZconnectorarguments,startingwithaP9oint"'.sTheargumentlistmustendwith0.^WW*edon'tneedanargumentforwhetherit'sacycleornot,&bGecauseifitis,itwillhaveaconnectorattheend.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.10.29.]Y;BUGUUFIX:Nolongerpushing rstffp}'ointffptrC`673. Constructor.hDeclareUUP9ath<functions@656i+ -P9ath%溫(UUP9oint"D'D rstffp}'ointffptreZ:::v+)UU; \Rn썷x6743DLDFPRÎGBzCONSTRUCTOR189n@P674.hDe neUUP9ath<functions@657i+ +ariablen9umbQerofPointsandconnectors. TheseLfunctionstakesavqariablenumbGerofalternatingZP9oint"+WandZconnectorarguments,startingwithaP9oint"'.sTheargumentlistmustendwith0.^WW*edon'tneedanargumentforwhetherit'sacycleornot,&bGecauseifitis,itwillhaveaconnectorattheend.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.29.]Y;BUGUUFIX:Nolongerpushing rstffp}'ointffptrCze=vaffar}'g,(ap ]R;c9har ))6=staticus4wcast7Dhc9harjIjJi(0))f2c}'onnectorsa43:pushffb}'ack+XR((c}'onnectorffstringJ=c}'onnectorffptr>ze));2if=((p}'ointffptr*j̫=vaffar}'g,(ap ]R;P9oint E%F))staticus4wcast7DhP9oint#i(0))f<cycleffswitchsǸ=true;<breakXj;2g2p}'ointsM$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(p}'ointffptr'));(g(vaffendFDЫ(ap ]R);(if3(DEBUGY)c}'out O"Exiting Path() (Poiknt* ...).\n"8 ush;g675. SettingTfunction.hDeclareUUP9ath<functions@656i+ -v9oid"set3˲(UUP9oint"D'D rstffp}'ointffptreZ:::v+)UU; hVn썫190SETTINGXFUNCTION +v9oid"set3˲(UUP9oint"D'D rstffp}'ointffptreZ:::v+)UU; hAn썫192SETTINGXFUNCTION u>3DLDFPRÎGx676n@P676.hDe neUUP9ath<functions@657i+ -v9oid"P9athze=vaffar}'g,(ap ]R;c9har ))6=(c9harjIjJ)UU0UV)f2c}'onnectorsa43:pushffb}'ack+XR((c}'onnectorffstringJ=c}'onnectorffptr>ze));2if=((p}'ointffptr*j̫=vaffar}'g,(ap ]R;P9oint E%F))staticus4wcast7DhP9oint#i(0))f<cycleffswitchsǸ=true;<breakXj;2g2p}'ointsM$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(p}'ointffptr'));(g(vaffendFDЫ(ap ]R);g677. Cop9yconstructor.[LDFT2003.04.06.][!??>>!!BUG:GotamemoryfaultwhenItriedtousethisfunction.Haven't[testedityet.Itworked[tousethedefaultconstructorandthentheassignmentopGerator.MaybGeUUit'snotkoshertouse\thisϫ=p"inacopyconstructor.U9Ȅ`> 8BeginTLogJʄ`> +v9oid"P9athze=vaffar}'g,(ap ]R;c9har ))6=(c9harjIjJ)UU0UV)f2c}'onnectorsa43:pushffb}'ack+XR((c}'onnectorffstringJ=c}'onnectorffptr>ze));2if=((p}'ointffptr*j̫=vaffar}'g,(ap ]R;P9oint E%F))staticus4wcast7DhP9oint#i(0))f<cycleffswitchsǸ=true;<breakXj;2g2p}'ointsM$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(p}'ointffptr'));(g(vaffendFDЫ(ap ]R);g677. Cop9yconstructor.[LDFT2003.04.06.][!??>>!!BUG:GotamemoryfaultwhenItriedtousethisfunction.Haven't[testedityet.Itworked[tousethedefaultconstructorandthentheassignmentopGerator.MaybGeUUit'snotkoshertouse\thisϫ=p"inacopyconstructor.9Ȅ`+U 8Log)j`+U [LDFT2002.10.15.]YPRewrotejthisfunction.TheoldversioncausedamemoryfaultwhenIJtriedtouseit.I'vetakencoGdefromthedefaultconstructorandtheassignmentopGeratorandputitherewithoutbotheringto֠seewhatwascausingtheproblem.GProbablytheoldversiondidn'taccountforchangesI'vemadeinotherplaces,UUpGerhapsintheclassde nition. -[LDFT2002.11.03.]Y;RewroteUUthisfunction.qNowjustusingtheassignmentopGerator.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -P9ath"e(const*P9ath:[&AypFy); un썷x6783DLDFPRÎGZCOPYXCONSTRUCTOR191n@P678.hDe neUUP9ath<functions@657i+ +[LDFT2002.11.03.]Y;RewroteUUthisfunction.qNowjustusingtheassignmentopGerator.Ȅ`GhDeclareUUP9ath<functions@656i+ +P9ath"e(const*P9ath:[&AypFy); un썷x6783DLDFPRÎGZCOPYXCONSTRUCTOR193n@P678.hDe neUUP9ath<functions@657i+ P9ath#i::P9athh(const*P9ath:[&AypFy) fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Path copy kconstructor.\n" ;this,ѫ=p;onfffr}'eeffstoreNl =falsev\;if(DEBUGY)c}'out O"Exiting Path() (copky constructor).\n"͔& ush;return4g; -g679. Pseudo-constructorTfordynamicalloQcation.680. OptionalTpQoin9terargument.U9Ȅ`> 8BeginTLogJʄ`> +g679. Pseudo-constructorTfordynamicalloQcation.680. OptionalTpQoin9terargument.9Ȅ`+U 8Log)j`+U [LDFT2002.10.29.]X~Addedargumentconst mmP9ath;@pE.DIfp -(6=0,thenewP9ath)isassignedtousingthevqaluesfromUUp]U.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +(6=0,thenewP9ath)isassignedtousingthevqaluesfromUUp]U.Ȅ`GhDeclareUUP9ath<functions@656i+ static)HP9athE/J/cr}'eateffnewffp}'athC3(const*P9ath:[?\pFt=0);681.hDe neUUP9ath<functions@657i+ P9ath%溷*P9athDx#::cr}'eateffnewffp}'athF(const*P9ath:[?\pD\) fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering create_newk_path().\n"; ush;P9ath/滷4漱a<=newϜ(P9athd);aI2~I3onfffr}'eeffstoreW==true;if(p6=0)f#a+L=p ;gelse+fa!I3~'I4 llffdr}'awffvalueh]=0;a!I3~'I4dr}'awffcolorX=0;a!I3~'I4 llffc}'olorO=0;gif(DEBUGY)c}'out O"Exiting create_new_kpath().\n"> ush;return7漱a=/; -g682. RequiredTP9athargument.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.10.29.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -static)HP9athE/J/cr}'eateffnewffp}'athC3(const*P9ath:[&AypFy); n썫192REQUIREDXP +g682. RequiredTP9athargument.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.29.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUP9ath<functions@656i+ +static)HP9athE/J/cr}'eateffnewffp}'athC3(const*P9ath:[&AypFy); n썫194REQUIREDXP ATHARÎGUMENT_3DLDFPRGx683n@P683.hDe neUUP9ath<functions@657i+ P9ath%溷*P9athDx#::cr}'eateffnewffp}'athF(const*P9ath:[&AypFy) fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering create_newk_path().\n"; ush;P9ath/滷4漱a<=newϜ(P9athd);aI2~I3onfffr}'eeffstoreW==true;a!K=p;if(DEBUGY)c}'out O"Exiting create_new_kpath().\n"> ush;return7漱a=/; -g684. Destructor.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.08.27.]ZMadeevirtual&n,bGecauseeGCCewiththe\-Wall"optionissuedthefollowingwarning:\`classUUPath'hasvirtualfunctionsbutnon-virtualdestructor".Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -virtual/Է7TP9athOV(); n썷x6853DLDFPRÎG&dDESTRUCTOR193n@P685. !!qMakeUUsuretodeleteanythingelsethatIalloGcatedynamically!hDe neUUP9ath<functions@657i+ +g684. Destructor.9Ȅ`+U 8Log)j`+U +[LDFT2003.08.27.]ZMadeevirtual&n,bGecauseeGCCewiththe\-Wall"optionissuedthefollowingwarning:\`classUUPath'hasvirtualfunctionsbutnon-virtualdestructor".Ȅ`GhDeclareUUP9ath<functions@656i+ +virtual/Է7TP9athOV(); ]n썷x6853DLDFPRÎG&dDESTRUCTOR195n@P685. !!qMakeUUsuretodeleteanythingelsethatIalloGcatedynamically!hDe neUUP9ath<functions@657i+ P9ath#i::*1P9athJx)() fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)fc}'out4 R"Entering ~Path().\nk"tTY ush;show4("Path:"%FS);getchar?%();gfor%舫(v9ectorHhP9oint#i::Biter}'ator)7iter=+M=p}'oints뭱:b}'egin();iter6=p}'oints:endಫ();iterJ++")fdelete?ƽDƾiterU;gp}'oints/$:cle}'ar(٫();=[LDFT2002.11.03.]T7ThisUUreplacesawhile!loGopinwhichp}'opffback)Ң()wasusedtoemptyp}'ointsy.o=c}'onnectorsC40:cle}'ar(٫();=LDFUU2002.11.03.qAdded.o==LDFUU2002.10.07.qAddedcoGdeforhandlingdr}'awffcolor5and llffc}'olor(.o=if(dr}'awffcolor1Q6=0 ^8dr}'awffcolor/%~5%isffonfffr}'eeffstorew()true)fif)(DEBUGY)c}'out O"Deleting draw_colork\n"| ;;delete?ƽdr}'awffcolorn;dr}'awffcolorOT=0;gelse*.6if5.(DEBUGY)fc}'out4 R"Not deleting draw_ckolor\n" /;gif( llffc}'olor(_m6=0 ^8 llffc}'olor%5~+6isffonfffr}'eeffstorenL ()true)fif)(DEBUGY)c}'out O"Deleting fill_colork\n"| ;;delete?ƽ llffc}'olore_; llffc}'olorF_p=0;gelse*.6if5.(DEBUGY)fc}'out4 R"Not deleting fill_ckolor\n" /;gif(DEBUGY)fc}'out4 R"Exiting ~Path().\n"o\ ush;getchar?%();g g686. Clear.LDFUndated.VCThisfunctionisneededbGecauseit'sapurevirtual(>functioninShapQe!֫,KandforUUgettingridofitemsinPicture)f::cle}'ar(ݫ(). -[LDFT2002.10.07.]YlDcle}'aro()^isneededbGecauseit'scalledontheShapQes*thatarestoredinPictures-ާ,`andIOmdon'tOknowofawayofoverloadingdestructors.`Thatis,CinPicture*뿫::cle}'ar(ݫ(),theactualtypGesoftheShapQes'ʾareUuunknown,}soIU3can'tcall P9ath$(), \Circle*ǫ(),orUuotherdestructorsdirectly*.r'ButanamedfunctionUUsuchascle}'ar~.()canservethesamepurpGose.c9Ȅ`> 8BeginTLogJʄ`> +[LDFT2002.10.07.]YlDcle}'aro()^isneededbGecauseit'scalledontheShapQes*thatarestoredinPictures-ާ,`andIOmdon'tOknowofawayofoverloadingdestructors.`Thatis,CinPicture*뿫::cle}'ar(ݫ(),theactualtypGesoftheShapQes'ʾareUuunknown,}soIU3can'tcall P9ath$(), \Circle*ǫ(),orUuotherdestructorsdirectly*.r'ButanamedfunctionUUsuchascle}'ar~.()canservethesamepurpGose.N99Ȅ`+U 8Log)j`+U [LDFT2002.10.07.]X Added#coGdefordeallocatingthememoryallocatedfordr}'awffcolor5 -and llffc}'olor(x,-ifany*.Ȅ` 8EndTLogA>` -??I1tried=calling M[P9ath#޿()insideP9athޫ:Әcle}'arq(),xbutIgotamemoryfault.Don'tknowwhy*.TO1DO:T*ryUUto ndout.qHowever,UUthisisn'turgent. n썫194CLEARDp3DLDFPRÎGx686n@PhDeclareUUP9ath<functions@656i+ +and llffc}'olor(x,-ifany*.Ȅ`G +??I1tried=calling M[P9ath#޿()insideP9athޫ:Әcle}'arq(),xbutIgotamemoryfault.Don'tknowwhy*.TO1DO:T*ryUUto ndout.qHowever,UUthisisn'turgent. Ϡn썫196CLEARDp3DLDFPRÎGx686n@PhDeclareUUP9ath<functions@656i+ virtual/v9oidHcle}'ar^();687.hDe neUUP9ath<functions@657i+ v9oid"P9ath 8BeginTLogJʄ`> +.9Ȅ`+U 8Log)j`+U [LDFT2002.11.03.]Y;MadeUUvirtual%ӫ.qChangedUUdynamicus4wcastF&()UUtostaticus4wcast7().qThismaynotwork. -[LDFT2003.01.29.]Y;ItUUseemstowork.qAtUUleast,Ihaven'tUUhadanyproblemswithit.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -virtual/ShapQeQ6V7getffc}'opy{()UUconst*; ۠n썷x6893DLDFPRÎG4qGETXCOPY195n@P689.hDe neUUP9ath<functions@657i+ +[LDFT2003.01.29.]Y;ItUUseemstowork.qAtUUleast,Ihaven'tUUhadanyproblemswithit.Ȅ`GhDeclareUUP9ath<functions@656i+ +virtual/ShapQeQ6V7getffc}'opy{()UUconst*; n썷x6893DLDFPRÎG4qGETXCOPY197n@P689.hDe neUUP9ath<functions@657i+ ShapQe,Ac1AdP9athJ̫::getffc}'opy%ø()UUconst fP9ath/滷4漱p<ԫ=cr}'eateffnewffp}'athGڷ(this붫);return7staticus4wcastld^hShapQe"Ab'Aci(p); g690. SetTonfreestore.hDeclareUUP9ath<functions@656i+ @@ -2626,7 +2663,7 @@ fdr}'awffcolorES=& 6c;return4g; g697. ColorTpQoin9terversion.hDeclareUUP9ath<functions@656i+ -virtual/v9oidHsetffdr}'awffcolor(ʫ(const*Color=ϕBϖcG#q); n썫196COLORXPOINTERVERSIONg3DLDFPRÎGx698n@P698.hDe neUUP9ath<functions@657i+ +virtual/v9oidHsetffdr}'awffcolor(ʫ(const*Color=ϕBϖcG#q); n썫198COLORXPOINTERVERSIONg3DLDFPRÎGx698n@P698.hDe neUUP9ath<functions@657i+ v9oid"P9ath(const*Color=ϕBϖcG#q) fif( llffc}'olor(_m6=0 ^8 llffc}'olor%5~+6isffonfffr}'eeffstorenL ()true)fdelete?ƽ llffc}'olore_;g llffc}'olor<_o=c;return4g; g704. SetTdashpattern.hDeclareUUP9ath<functions@656i+ -virtual/v9oidHsetffdashffp}'atterniB(const*string?OsF="" z); sn썷x7053DLDFPRÎG VPSETXDASHPJATTERN197n@P705.hDe neUUP9ath<functions@657i+ +virtual/v9oidHsetffdashffp}'atterniB(const*string?OsF="" z); [n썷x7053DLDFPRÎG VPSETXDASHPJATTERN199n@P705.hDe neUUP9ath<functions@657i+ v9oid"P9ath 8BeginTLogJʄ`> -[LDFT2003.02.08.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +g708. Set4connectors.[LDFT2003.02.08.]ZTODO:Overloadwithaversiontakingav9ector#1hstringiasitsUUargument.qarguments.9Ȅ`+U 8Log)j`+U +[LDFT2003.02.08.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUP9ath<functions@656i+ virtual/v9oidHsetffc}'onnectorsp(const*string?OsF=".."Mt);709.hDe neUUP9ath<functions@657i+ v9oid"P9ath=0;constJreal6xz>f=0); ?n썫198RÎOTJATIONXAROUNDTHEMAINAXES7v3DLDFPRGx714n@P714.hDe neUUP9ath<functions@657i+ +ransformgVr}'otate(const*real4бx:;constJreal6xy>=0;constJreal6xz>f=0); 'n썫200RÎOTJATIONXAROUNDTHEMAINAXES7v3DLDFPRGx714n@P714.hDe neUUP9ath<functions@657i+ T ransformAP9ath[Z;::r}'otateoB(const*real4бx:;constJreal6xy;p;constJreal6xz;) fT ransformKԱtOeF;tt:r}'otateo>(x;y;zƫ);return7漷 8BeginTLogJʄ`> +ransformv9ersion.Declared'intransfor.web. MustbGede nedhere,2becauseP9ath"फisan incompleteUUtypGethere.9Ȅ`+U 8Log)j`+U [LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments. -[LDFT2003.07.06.]Y;Changed,UUsothatisffline}'ar(jҫ()isused,insteadofgetfflineffswitchC+ҫ().Ȅ` 8EndTLogA>`hDe neUUT +[LDFT2003.07.06.]Y;Changed,UUsothatisffline}'ar(jҫ()isused,insteadofgetfflineffswitchC+ҫ().Ȅ`GhDe neUUT ransform;'functions@125i+ T ransformAT ransformw(p:getffp}'oint'bH(0);p:getfflastffp}'oint:$>();anglej);return7漫(thisϷ=(At+x); -g ϥn썷x7173DLDFPRÎGPPOINTXVERSION199n@P717. P9ointlversion.Declaredinpoints.web.\uMustbGede nedhere,!becauseP9ath ,isanincomplete typGeUUthere.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ` 8EndTLogA>`hDe neUUP9oint"Dfunctions@285i+ +g bn썷x7173DLDFPRÎGPPOINTXVERSION201n@P717. P9ointlversion.Declaredinpoints.web.\uMustbGede nedhere,!becauseP9ath ,isanincomplete typGeUUthere.9Ȅ`+U 8Log)j`+U +[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ`GhDe neUUP9oint"Dfunctions@285i+ T ransformAP9oint^c::r}'otateoB(const*P9ath:[&AypFy;constJreal6xangleNH˫) fif(:p:getfflineffswitch?}())fc}'err8(r"ERROR! In Point::roprtate(Path, real).\n"k2"Path is not a line. Returning INVALID_TRANSFORM.\n\n"SEȫ;returnAINVALID_TRANSFORM;gP9oint2pt0E=p:getffp}'oint'bH(0);P9oint2pt1E=p:getffp}'oint'bH(1);return7r}'otateRU(pt0i;;pt1;anglej); -g718. P9athTversions.719. P9ointTarguments.U9Ȅ`> 8BeginTLogJʄ`> +g718. P9athTversions.719. P9ointTarguments.9Ȅ`+U 8Log)j`+U [LDFT2002.4.7.]O?AddedUUdefaultvqalueforanglej180. -[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ`GhDeclareUUP9ath<functions@656i+ virtual/T ransformgVr}'otate(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleQ=180);720. TO]DO:]Changethis,_sothatIuseopQerator.d=;(T ransform4s})hereandintheothertransformationfunctions.hDe neUUP9ath<functions@657i+ @@ -2685,12 +2722,12 @@ ransformAP9ath[Z;::r}'otateoB(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleNH˫) fT ransformKԱtOeF;tt:r}'otateo>(p0 ;p1 h;anglej);return7漫(thisϷ=(At+x); -g Ln썫200P -ATHXARÎGUMENTS3DLDFPRGx721n@P721. P9athTarguments.U9Ȅ`> 8BeginTLogJʄ`> +g ޠn썫202P +ATHXARÎGUMENTS3DLDFPRGx721n@P721. P9athTarguments.9Ȅ`+U 8Log)j`+U [LDFT2002.4.7.]O?AddedUUdefaultvqalueforanglej180. [LDFT2002.11.03.]Y;GotUUridofloGcalP9oints&.p06:Candp1l. [LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments. -[LDFT2003.07.13.]Y;Changed,UUsothatisffline}'ar(jҫ()isusedinsteadofcheckingUUthereturnvqalueofgetfflineffswitch?}().MyAlso,3getfflastffp}'oint="q()jpassedasthesecondargumenttor}'otateW(),3insteadofgetffp}'oint*J(1).Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +[LDFT2003.07.13.]Y;Changed,UUsothatisffline}'ar(jҫ()isusedinsteadofcheckingUUthereturnvqalueofgetfflineffswitch?}().MyAlso,3getfflastffp}'oint="q()jpassedasthesecondargumenttor}'otateW(),3insteadofgetffp}'oint*J(1).Ȅ`GhDeclareUUP9ath<functions@656i+ T ransformAr}'otate\8(const*P9ath:[&AypFy;constJreal6xangleQ=180);722.hDe neUUP9ath<functions@657i+ T @@ -2705,7 +2742,7 @@ ransformKԱtOeF;tt:sc}'ale(x;y;zƫ);return7漫(thisϷ=(At+x); g725. Shear.hDeclareUUP9ath<functions@656i+ T -ransformAshe}'arY (real.xy!;real]xz%=0;real]yx&Z=0;real]yz%6=0;real]zx%Y=0;real]zy%|=0); נn썷x7263DLDFPRÎGEF,SHEAR201n@P726.hDe neUUP9ath<functions@657i+ +ransformAshe}'arY (real.xy!;real]xz%=0;real]yx&Z=0;real]yz%6=0;real]zx%Y=0;real]zy%|=0); n썷x7263DLDFPRÎGEF,SHEAR203n@P726.hDe neUUP9ath<functions@657i+ T ransformAP9ath[Z;::she}'ar4>(real.xy!;real]xz"ը;real]yx#;real]yz# ;real]zx"A;real]zy") fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Path::sheakr().\n" /;T @@ -2727,15 +2764,15 @@ g732. ShiftTtimes. [LDFT2003.01.19.]Z}shiftfftimes()Ureturnsv9oid,bGecauseP9ath!ifit'scalledafter6ja"calltoshift@Z()andb}'efore8an"opGerationisappliedthatcausesP9oint)::applyfftr}'ansformG()tobGecalled.c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.01.19.]Y;AddedUUthissection.Ȅ` 8EndTLogA>` 6n썫202REALXARÎGUMENTS3DLDFPRGx733n@P733. realTargumen9ts.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.01.19.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +[LDFT2003.01.19.]Y;Notethatshiftfftimes2u(()willonlyhaveane ectontheP9oints'5^onaP9ath>ifit'scalledafter6ja"calltoshift@Z()andb}'efore8an"opGerationisappliedthatcausesP9oint)::applyfftr}'ansformG()tobGecalled.N99Ȅ`+U 8Log)j`+U +[LDFT2003.01.19.]Y;AddedUUthissection.Ȅ`G Gn썫204REALXARÎGUMENTS3DLDFPRGx733n@P733. realTargumen9ts.9Ȅ`+U 8Log)j`+U +[LDFT2003.01.19.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUP9ath<functions@656i+ virtual/v9oidHshiftfftimesww(real.xjJ;real]ֱy g=1;real]ֱz < =1);734.hDe neUUP9ath<functions@657i+ v9oid"P9ath 8BeginTLogJʄ`> -[LDFT2003.01.19.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +g735. P9ointTargument.9Ȅ`+U 8Log)j`+U +[LDFT2003.01.19.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUP9ath<functions@656i+ virtual/v9oidHshiftfftimesww(const*P9oint=?&D]pI]);736.hDe neUUP9ath<functions@657i+ v9oid"P9ath 8BeginTLogJʄ`> -[LDFT2002.11.03.]Y;ChangedUUc9harargumentUUtoconst!c9har7.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +ransform thatOwouldtransformP9ath0suchthatitwouldcometolieonthema8joraxisindicatedbyitsargument(bydefault,UUthez-axis).qItdoGesnotactuallyperformthetransformationontheP9ath湫.N99Ȅ`+U 8Log)j`+U +[LDFT2002.11.03.]Y;ChangedUUc9harargumentUUtoconst!c9har7.Ȅ`GhDeclareUUP9ath<functions@656i+ T -ransformAalignffwithffaxis{K(const*c9har7axisL˫='z' w)UUconst*; -n썫204NOXASSIGNMENT3DLDFPRÎGx748n@P748.hDe neUUP9ath<functions@657i+ +ransformAalignffwithffaxis{K(const*c9har7axisL˫='z' w)UUconst*; +rn썫206NOXASSIGNMENT3DLDFPRÎGx748n@P748.hDe neUUP9ath<functions@657i+ T ransformAP9ath[Z;::alignffwithffaxisA|(const*c9har7axisIѳ)UUconst fT ransformKԱtOeF;if(:getfflineffswitch?}())fc}'err8m"ERROR! In Path::alipgn_with_axis().\n"u2"Path is not a line. Returning INVALID_TRANSFORM.\n\n"SEȫ;returnAINVALID_TRANSFORM;gP9oint2p0?_(p}'oints $[0]);P9oint2p1?_(p}'oints $[1]);return7漱t;.:alignffwithffaxis@x(p0 ;p1 h;axisp); -g749. WithDassignmen9t.[LDFT2002.11.03.]YIThisdhfunctionshouldneverbGecalledwiththebQoolargumentassign4falsev\.qItUUwon'tcauseanyharm,though,sinceitwilljustcalltheconst!versionabGove.U9Ȅ`> 8BeginTLogJʄ`> +g749. WithDassignmen9t.[LDFT2002.11.03.]YIThisdhfunctionshouldneverbGecalledwiththebQoolargumentassign4falsev\.qItUUwon'tcauseanyharm,though,sinceitwilljustcalltheconst!versionabGove.9Ȅ`+U 8Log)j`+U [LDFT2002.11.03.]Y;AddedUUthisfunction. [LDFT2003.07.18.]Y`^Changed,Ásoxthatisffline}'ar(()isused,ratherthangetfflineffswitchC().z1Also,changedthewayRT -ransform;!tC)isRset.Thelatterchangewasnecessary*,bGecauseGCC:3.3couldn'tcompilethis lethewayUUitwasbGefore.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +ransform;!tC)isRset.Thelatterchangewasnecessary*,bGecauseGCC:3.3couldn'tcompilethis lethewayUUitwasbGefore.Ȅ`GhDeclareUUP9ath<functions@656i+ T ransformAalignffwithffaxis{K(bQoolfassign5|;constJc9har9?axisNCs='z' w);750.hDe neUUP9ath<functions@657i+ T ransformAP9ath[Z;::alignffwithffaxisA|(bQoolfassign5|;constJc9har9?axisK|[) fif(:isffline}'ar%}())fc}'err8m"ERROR! In Path::alipgn_with_axis().\n"u2"Path is not linear. Returning INVALID_TRANSFORM.\n\n"SEȫ;returnAINVALID_TRANSFORM;gT ransformKԱtOeF;tt:alignffwithffaxis@x(getffp}'oint'bH(0);getfflastffp}'oint;();axisp);if(assign4falsev\)fc}'err8(r"WARNING! In Path::aprlign_with_axis():\n"k2"Don't call this function with the \"assign\" "0]2"argument == false.\nIt won't cause any harm, though.\n"[{"Continuing.\n\n"_2 ushG;returnA潱tE/;greturn7漫(thisϷ=(At+x); -g -Mn썷x7513DLDFPRÎGWFORXNON-LINES205n@P751. F -orSnon-lines.(P9oint_andaxisarguments).<[LDFT2002.11.03.]U)Thisfunction ndsthetransfor- mation(thatwouldalignthelinesegmentȍ ܍g!N8p0|sp1ZЫwiththema8joraxisindicatedbytheaxisargument,]andappliesUUittoUVthisA .qp0ܫandp1jarenotchanged.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.03.]Y;ChangedUUP9oint"DargumentsUUtoconst!P9oint@o&Kandc9harargumenttoconst!c9har7.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +g +n썷x7513DLDFPRÎGWFORXNON-LINES207n@P751. F +orSnon-lines.(P9oint_andaxisarguments).<[LDFT2002.11.03.]U)Thisfunction ndsthetransfor- mation(thatwouldalignthelinesegmentȍ ܍g!N8p0|sp1ZЫwiththema8joraxisindicatedbytheaxisargument,]andappliesUUittoUVthisA .qp0ܫandp1jarenotchanged.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.03.]Y;ChangedUUP9oint"DargumentsUUtoconst!P9oint@o&Kandc9harargumenttoconst!c9har7.Ȅ`GhDeclareUUP9ath<functions@656i+ T ransformAalignffwithffaxis{K(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJc9har9?axisK|[);752.hDe neUUP9ath<functions@657i+ T ransformAP9ath[Z;::alignffwithffaxisA|(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJc9har9?axisNCs='z' w) fT ransformKԱtOeF;tt:alignffwithffaxis@x(p0 ;p1 h;axisp);return7漫(thisϷ=(At+x); -g753. AddingTP9ointstoPaths.754. WithTassignmen9t.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.4.6.]OAdded(thisfunction.bCurrently*,1itdoGesn'treturnaP9atha.IfitturnsoutthatitwouldbGeusefulUUtoreturnUVthisA ,Icanchangeit.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +g753. AddingTP9ointstoPaths.754. WithTassignmen9t.9Ȅ`+U 8Log)j`+U +[LDFT2002.4.6.]OAdded(thisfunction.bCurrently*,1itdoGesn'treturnaP9atha.IfitturnsoutthatitwouldbGeusefulUUtoreturnUVthisA ,Icanchangeit.Ȅ`GhDeclareUUP9ath<functions@656i+ v9oid"opQeratorN+=^"(const*P9oint=?&D]ptN);755.hDe neUUP9ath<functions@657i+ v9oid"P9ath 8BeginTLogJʄ`> -[LDFT2002.4.6.]O?AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -P9ath%opQeratorQ}o+YD(const*P9oint=?&D]ptN)UUconst*; - n썫206WITHOUTXASSIGNMENT3DLDFPRÎGx757n@P757.hDe neUUP9ath<functions@657i+ +g756. WithoutTassignmen9t.9Ȅ`+U 8Log)j`+U +[LDFT2002.4.6.]O?AddedUUthisfunction.Ȅ`GhDeclareUUP9ath<functions@656i+ +P9ath%opQeratorQ}o+YD(const*P9oint=?&D]ptN)UUconst*; +n썫208WITHOUTXASSIGNMENT3DLDFPRÎGx757n@P757.hDe neUUP9ath<functions@657i+ P9ath%P9ath?x"::F`opQeratorq+yd3(const*P9oint=?&D]ptN)UUconst fP9ath/p}'a:(this뷫);p}'aF:p}'oints$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(pt 䝫));return7p}'aB; -g758. AddingTconnectorstoP9aths.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.02.09.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +g758. AddingTconnectorstoP9aths.9Ȅ`+U 8Log)j`+U +[LDFT2003.02.09.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUP9ath<functions@656i+ v9oid"opQeratorN+=^"(const*string?OsC);759.hDe neUUP9ath<functions@657i+ v9oid"P9ath 8BeginTLogJʄ`> +ersionsTusing\&".762. WithTassignmen9t.ThisUUfunctionappGendsthePath<argumentp}'atoUVthisA .9Ȅ`+U 8Log)j`+U [LDFT2002.4.6.]O?AddedUUthisfunction. -[LDFT2002.11.03.]Y;MadeUUnon-inline4.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +[LDFT2002.11.03.]Y;MadeUUnon-inline4.Ȅ`GhDeclareUUP9ath<functions@656i+ v9oid"opQeratorN&=^"(const*P9ath:[&Ayp}'aLս);763.hDe neUUP9ath<functions@657i+ -v9oid"P9ath;(returnHi;gstring?%Plastffc}'onnector}F ; -,n썷x7643DLDFPRÎG tWITHXASSIGNMENT207n@P764. [LDFT2002.4.6.]QIfthereisn'tanexplicitconnectorforeverypairofP9oints'«inthis՟~p}'oints3k,Rthenwe haveto llupc}'onnectors7P4sothatthereareenough.Otherwise,;(returnHi;gstring?%Plastffc}'onnector}F ; +)an썷x7643DLDFPRÎG tWITHXASSIGNMENT209n@P764. [LDFT2002.4.6.]QIfthereisn'tanexplicitconnectorforeverypairofP9oints'«inthis՟~p}'oints3k,Rthenwe haveto llupc}'onnectors7P4sothatthereareenough.Otherwise, Ы);765. [LDFT2002.4.6.]PIftheP9aths# bdon'ttouch,_theyarejoinedusing\.."VKinsteadof\&".ThismimicsthebGehaviorUUofMET*AFONT.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.03.]Y;NowUUusingUV(p}'oints$:b}'ackë())insteadofgetffp}'oint*(p}'oints:size\()818).Ȅ` 8EndTLogA>`hDe neUUP9ath<functions@657i+ +while(C-(c}'onnectors/4.:size\() Ы);765. [LDFT2002.4.6.]PIftheP9aths# bdon'ttouch,_theyarejoinedusing\.."VKinsteadof\&".ThismimicsthebGehaviorUUofMET*AFONT.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.03.]Y;NowUUusingUV(p}'oints$:b}'ackë())insteadofgetffp}'oint*(p}'oints:size\()818).Ȅ`GhDe neUUP9ath<functions@657i+ if((p}'oints$:b}'ackë())6=p}'a \:getffp}'oint'bH(0))fc}'err+l"ERROR! In Path::opem0rator&(Path&)."׷l"Paths don't touch.\m0n"}("Using \"..\" to join them instead of \"&\".\n""  ush;c}'onnectorsC40:pushffb}'ack+XR(".."\); g else!c}'onnectorsQ :pushffb}'ack+XR("&"F_); @@ -2828,14 +2865,14 @@ for (v9ectorHhstringi::Bc}'onstffiteratorCiterW=p}'a \:c}'onnectors/4.:b}'egin();iterE6=p}'a:c}'onnectors:endಫ();iter~++!Ş)fc}'onnectorsC40:pushffb}'ack+XR(iter); g -return*f;qǷg767. WithoutTassignmen9t.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.4.6.]O?AddedUUthisfunction.qItbGehavesUUthewayUUtheoperator\&"doesinMET*AFONT.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -P9ath%opQeratorQ}o&YD(const*P9ath:[&Ayp}'aLս)UUconst*; -6n썫208WITHOUTXASSIGNMENT3DLDFPRÎGx768n@P768.hDe neUUP9ath<functions@657i+ +return*f;qǷg767. WithoutTassignmen9t.9Ȅ`+U 8Log)j`+U +[LDFT2002.4.6.]O?AddedUUthisfunction.qItbGehavesUUthewayUUtheoperator\&"doesinMET*AFONT.Ȅ`GhDeclareUUP9ath<functions@656i+ +P9ath%opQeratorQ}o&YD(const*P9ath:[&Ayp}'aLս)UUconst*; +3Yn썫210WITHOUTXASSIGNMENT3DLDFPRÎGx768n@P768.hDe neUUP9ath<functions@657i+ P9ath%P9ath?x"::F`opQeratorq&yd3(const*P9ath:[&Ayp}'aLս)UUconst fP9ath/滱r4ϫ(this뷫);r.&=-p}'a8ƫ;return7漱r<Ы; -g769. AppQendingQwithaconnectorargumen9t.[LDFT2002.4.7.]QItwouldnothavebGeenpossibletospGecifyd}aconnectorifI'dde nedthisfunctionasabinaryoperator,hGe.g.,opQerator.+=>8(),sod}I'vemadeitanamed&function.b ItcanbGeusefulwhen,/forinstance,rotationcausestwo&P9oints#I,which&shouldbGeidentical,to0di erbyasmallamount,7{like1=10;000inonecoGordinate.eWThishasactuallyhappened,7{whichiswhyI'veaddedthisfunction.TMET*APOSTcanrecovergracefullybyusing\.. b"insteadof\&"toconnectthepaths,butitissuesanerrormessageandstopstowaitforarespGonse.Usingthisfunctioncanhelptoavoidsuchproblems.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.4.7.]O?AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +g769. AppQendingQwithaconnectorargumen9t.[LDFT2002.4.7.]QItwouldnothavebGeenpossibletospGecifyd}aconnectorifI'dde nedthisfunctionasabinaryoperator,hGe.g.,opQerator.+=>8(),sod}I'vemadeitanamed&function.b ItcanbGeusefulwhen,/forinstance,rotationcausestwo&P9oints#I,which&shouldbGeidentical,to0di erbyasmallamount,7{like1=10;000inonecoGordinate.eWThishasactuallyhappened,7{whichiswhyI'veaddedthisfunction.TMET*APOSTcanrecovergracefullybyusing\.. b"insteadof\&"toconnectthepaths,butitissuesanerrormessageandstopstowaitforarespGonse.Usingthisfunctioncanhelptoavoidsuchproblems.9Ȅ`+U 8Log)j`+U +[LDFT2002.4.7.]O?AddedUUthisfunction.Ȅ`GhDeclareUUP9ath<functions@656i+ P9ath%app}'endE(const*P9ath:[&Ayp}'aLս;string"c}'onnectorP="--"Mt;bQoolLassign9B=true);770.hDe neUUP9ath<functions@657i+ P9ath%P9ath?x"::app}'end -(const*P9ath:[&Ayp}'aLս;string"c}'onnectorN.ϱ;bQoolLassign7'*)fUUP9ath<r$"(this뷫);string?Vlastffc}'onnector}w;=1[LDFT2002.4.6.]K+kIfthereisn'tanexplicitconnectorforeverypairof2P9ointsU6inethisQc~Qdp}'oints3u,ithenewehaveto llupc}'onnectors5sothatthereareenough.Otherwise,2theUU\&"willbGeatthewrongplace.qW*edon'thaveUUtoworryabouttheconnectorsforp}'aR.o=if)(r:c}'onnectors/4.:size\()0)lastffc}'onnectorE="--"Mt;else5lastffc}'onnectorvʫ=r,:c}'onnectors/4.:b}'ackë();while Ы);r":c}'onnectors/4.:pushffb}'ack+XR(c}'onnector+^ګ);(=[LDFT2002.4.6.]J;CopyUUtheP9oints&.inp}'aandputthecopiesontop}'ointsy.o=for/艫(v9ectorHhP9oint#i::Bc}'onstffiteratorCiterW=p}'a \:p}'oints$:b}'egin();iter6=p}'a:p}'oints:endಫ();iterJ++")(r,:p}'oints$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(iter));771. Put-theconnectorsfromp}'a?ontothenewP9ath2.UNSincethey'restrings%},#andnotpGointers,#wedon'thavetocopythem.)Itestedthistomakesureit'strue.)Idon'tknowhowstrings* 8BeginTLogJʄ`> -[LDFT2002.10.07.]Y;AddedUUcoGdeforhandlingdr}'awffcolor5and llffc}'olor(.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +return-滱r2ϫ;qǷg772. Dra9wingTand lling.773. Dra9w. +Cdn썷x7743DLDFPRÎGhIP +ATHXVERSIONS211n@P774. P9athTversions.775. NormalTv9ersion.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.07.]Y;AddedUUcoGdeforhandlingdr}'awffcolor5and llffc}'olor(.Ȅ`GhDeclareUUP9ath<functions@656i+ virtual0mv9oidJdr}'aw`ǹ(const4;Color?ǫ&Gddr}'awffcolor4M= Colors+Z::1defaultffc}'olorid;const stringddashe}'dD"F=2"" ᔱ;constZstringApp}'enY$ =2"";Picture*&2o8pictur}'eTS@=2curr}'entffpictureE;bQoolXaarr}'ow==2falsev)const8P;776.hDe neUUP9ath<functions@657i+ v9oid#MP9ath<(::dr}'aw(߫(constzColor>oc&F6ddr}'awffcolorz?*;const %1stringAeddashe}'ddv;const %1stringAepp}'enVЈ;Picture2&9#pictur}'eX;bQoolLaarr}'ow:Ϋ)UUconst fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Path::drawk().\n"J ush;if(p}'oints$:size\()0)=LDFUU2002.09.27.qAddedthiserrorhandlingcoGde.IftheP9ath<isempty*,don'tdrawit.=fc}'err4Vi"WARNING! In Path::dlraw():\n""Path doesn't contailn any Points.\n"|2"Not doing anything.\n\n": ush;return>h;gP9ath/滷4漱p<ԫ=cr}'eateffnewffp}'athGڷ(this뷫);p~ llffdr}'awffvalue^{,=DRAWMt;p~arr}'ow:/k=aarr}'ow"Cث;if(DEBUGY)c}'out4 R"ddraw_color.get_usek_name() == "8ddr}'awffcolor6:getffuseffname:()endl ush;if(ddr}'awffcolor4:getffuseffname:()falsev\)fif)(DEBUGY)c}'out O"Allocating memory fkor Color.\n"8 ush;Color=BcI=Color ::&cr}'eateffnewffc}'olorn();#c*=ddr}'awffcolor6;p!~'dr}'awffcolorXU=c;gelse+fif)(DEBUGY)c}'out O"ddraw_color.get_namke() == "Dddr}'awffcolor6:getffname(()endl ush;p!~'dr}'awffcolorXU=& 6ddr}'awffcolor>߫;gp~ llffc}'olorEgp=Colors$::+.4b}'ackgroundffcolorur;p~dashe}'d==ddashe}'d&);p~p}'en/Ϋ=pp}'en;;pictur}'e5+=H%Dstaticus4wcast|hShapQe"Ab'Aci(p);=LDFUU2002.11.03.qChangeddynamicus4wcastF&()tostaticus4wcast7().o=if(DEBUGY)c}'out O"Exiting Path::draw(k).\n"TM ush;return4g; -g -ZQn썫210PICTUREXARÎGUMENTFIRSTUW3DLDFPRGx777n@P777. Pictureދargumen9t rst.[LDFT2002.09.17.]Z:Added]Ythisfunction.It'sconvenient]YforwhenI]Wwant to\>passaPicture,Targument.IfI\passaPicture,Targument.IfI\ 8BeginTLogJʄ`> -[LDFT2003.01.15.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +g782. Dra9wTarrow.783. P9athTversions. +fՠn썷x7843DLDFPRÎG4NORMALXVERSION213n@P784. NormalTv9ersion.9Ȅ`+U 8Log)j`+U +[LDFT2003.01.15.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUP9ath<functions@656i+ virtual0v9oidJϦdr}'awarrowyj(constLColor@&Gڭddr}'awffcolor=f gColors+E::2defaultffc}'olori^;stringddashe}'dD,="" z;string"pp}'en:0="";Picture* &2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;785.hDe neUUP9ath<functions@657i+ v9oid#&FP9ath<::dr}'awarrow/ȫ(constSColor> o&Eddr}'awffcolory6;string"bddashe}'dF?s;string"bpp}'en8.;Picture*w&2pictur}'eQk)2const fdr}'aw*(ݫ(ddr}'awffcolor4;ddashe}'d$;pp}'en˱;pictur}'e ~;trueo@); -g786. PictureTargumen9t rst.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.01.15.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +g786. PictureTargumen9t rst.9Ȅ`+U 8Log)j`+U +[LDFT2003.01.15.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUP9ath<functions@656i+ virtual.v9oidGidr}'awarrowv\(Picture(`q&0'pictur}'eO0e;constDYColor>X[&Fyddr}'awffcolor|:=Colors)::0.5defaultffc}'olorg;stringddashe}'dD,="" z;string"pp}'en:0="")UUconst*;787.hDe neUUP9ath<functions@657i+ v9oid#&FP9ath<::dr}'awarrow/ȫ(Picture)ϫ&0pictur}'eOñ;constColor?&G5ddr}'awffcolor{ޱ;string"bddashe}'dF?s;string"bpp}'en8.)2const fdr}'aw*(ݫ(pictur}'eֱ;ddr}'awffcolor5Q;ddashe}'d$;pp}'en˱;trueo@); -g788. P9ointTversions.789. NormalTv9ersion.9Ȅ`> 8BeginTLogJʄ`> +g788. P9ointTversions.789. NormalTv9ersion.9Ȅ`+U 8Log)j`+U [LDFT2003.01.15.]Y;AddedUUthisfunction. -[LDFT2003.06.03.]Y;MadeUUdr}'awarrow2H()UUconst*.Ȅ` 8EndTLogA>`hDe neUUP9oint"Dfunctions@285i+ +[LDFT2003.06.03.]Y;MadeUUdr}'awarrow2H()UUconst*.Ȅ`GhDe neUUP9oint"Dfunctions@285i+ P9ath&} P9ointCX::dr}'awarrow/ȫ(constP9oint>F&FpK;const kColor@&Hmddr}'awffcolor|v;string#fGddashe}'dFX;string2pp}'enG6(;Picture* &2c(pictur}'eQk)UUconst fP9ath/p}'a:(this뷱;p);p}'aF:dr}'awarrow.ī(ddr}'awffcolor4;ddashe}'d$;pp}'en˱;pictur}'e ~);return7p}'aB; -g -yn썫212PICTUREXARÎGUMENTFIRSTUW3DLDFPRGx790n@P790. PictureTargumen9t rst.U9Ȅ`> 8BeginTLogJʄ`> +g +uLn썫214PICTUREXARÎGUMENTFIRSTUW3DLDFPRGx790n@P790. PictureTargumen9t rst.9Ȅ`+U 8Log)j`+U [LDFT2003.01.15.]Y;AddedUUthisfunction. -[LDFT2003.06.03.]Y;MadeUUdr}'awarrow2H()UUconst*.Ȅ` 8EndTLogA>`hDe neUUP9oint"Dfunctions@285i+ +[LDFT2003.06.03.]Y;MadeUUdr}'awarrow2H()UUconst*.Ȅ`GhDe neUUP9oint"Dfunctions@285i+ P9ath&QP9ointBd::dr}'awarrow/ȫ(Picture)[&1"pictur}'eP+;const ?P9oint?&G`pLh;const ?Color@N&Hddr}'awffcolor|;string2ddashe}'dUG;string"pp}'en8)UUconst freturn7dr}'awarrowfـ(p;ddr}'awffcolor5Q;ddashe}'d$;pp}'en˱;pictur}'e ~); -g791. Dra9wThelp.9Ȅ`> 8BeginTLogJʄ`> +g791. Dra9wThelp.9Ȅ`+U 8Log)j`+U [LDFT2002.05.10.]Y|Changedɟthewayɟthedefaultargumentsarehandled.ΤThewayitwasdidn'tworkforbGothUUversions,i.e.,theP9ath<versionandtheP9oint"Dversion. [LDFT2002.4.8.]OAdded~thissection.!!It~wouldbGenicetodosomethingtomakesurethatthehelplinesandtcurvesarenotdrawnoverby llingcommands.#MaybGeitwillbepossibletotakecareofthiswhenIimplementthehiddensurfacealgorithminoutput!ԫ().[LDFT2002.11.03.]V>Ifcouldhavehelplinesoutputtedlast,UUifIputthemonav9ector&Toftheirown. -[LDFT2003.07.13.]Y;MadeUUallversionsofdr}'awffhelp.()const*.Ȅ` 8EndTLogA>`792. P9athTversions.[LDFT2002.12.20.]Z6??qCouldUUthesefunctionsbGeconst*?793. NormalTv9ersion.[LDFT2002.4.8.]QH:AddedUUthisfunction.hDeclareUUP9ath<functions@656i+ +[LDFT2003.07.13.]Y;MadeUUallversionsofdr}'awffhelp.()const*.Ȅ`G792. P9athTversions.[LDFT2002.12.20.]Z6??qCouldUUthesefunctionsbGeconst*?793. NormalTv9ersion.[LDFT2002.4.8.]QH:AddedUUthisfunction.hDeclareUUP9ath<functions@656i+ v9oid#dr}'awffhelpM߀(constFColor>&Eαddr}'awffcolor|=helpffc}'olor36;string"ddashe}'dI(ƫ=helpffdashffp}'atternO14;stringpp}'en5>="" z;Picture* &2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;794.hDe neUUP9ath<functions@657i+ v9oid#6yP9ath<::dr}'awffhelp+Ŭ(constcBColor>@ի&Fddr}'awffcolorz;string#ddashe}'dFO;string#pp}'en8>;Picture*Ԫ&2pictur}'eQ)2const fif(doffhelpfflines;falsev\)return%e;dr}'aw*(ݫ(ddr}'awffcolor4;ddashe}'d$;pp}'en˱;pictur}'e ~); g795. PictureTargumen9t rst.hDeclareUUP9ath<functions@656i+ v9oid$Ddr}'awffhelpO -T(Picture*85&1Spictur}'eQ);const!ColorB&Iddr}'awffcolort=ʷ helpffc}'olor5?;stringddashe}'dD,=helpffdashffp}'atternO;string"pp}'en:0="" z)UUconst*; -Hn썷x7963DLDFPRÎGUWPICTUREXARGUMENTFIRST213n@P796.hDe neUUP9ath<functions@657i+ +T(Picture*85&1Spictur}'eQ);const!ColorB&Iddr}'awffcolort=ʷ helpffc}'olor5?;stringddashe}'dD,=helpffdashffp}'atternO;string"pp}'en:0="" z)UUconst*; +~n썷x7963DLDFPRÎGUWPICTUREXARGUMENTFIRST215n@P796.hDe neUUP9ath<functions@657i+ v9oid#6yP9ath<::dr}'awffhelp+Ŭ(Picture)*&0 pictur}'eO;const Color?}&Gddr}'awffcolor{D;string#ddashe}'dFO;string#pp}'en8>)2const fdr}'awffhelp>Ū(ddr}'awffcolor4;ddashe}'d$;pp}'en˱;pictur}'e ~); g797. P9ointTversions.798. NormalXJv9ersion.[LDFT2002.4.8.]RAddedthisfunction.c 8BeginTLogJʄ`> -[LDFT2002.10.07.]Y;AddedUUcoGdeforhandlingand llffc}'olor(.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -v9oid#[ ll0%(constColor>]&FR{llffc}'olorr*=ccColors*]&FR{llffc}'olorr*=ccColors*h;gP9ath/滷4漱p<ԫ=cr}'eateffnewffp}'athGڷ(this붫);p~ llffdr}'awffvalue^{,=FILLMt;if(DEBUGY)c}'out4 R"ffill_color.get_usek_name() == "8llffc}'olor+3:getffuseffname:()endl ush;if(llffc}'olor(:getffuseffname:()falsev\)fif)(DEBUGY)c}'out O"Allocating memory fkor Color.\n"8 ush;Color=BcI=Color ::&cr}'eateffnewffc}'olorn();#c*=llffc}'olor+3;p!~' llffc}'olorOgq=c;gelse+fif)(DEBUGY)c}'out O"ffill_color.get_namke() == "Dllffc}'olor+3:getffname(()endl ush;p!~' llffc}'olorOgq=& 6llffc}'olor3XQ;gp~p}'en/Ϋ="" z;p~dashe}'d=="" z;p~dr}'awffcolorNT=Colors$::+.4b}'ackgroundffcolorur;pictur}'e5+=H%Dstaticus4wcast|hShapQe"Ab'Aci(p);if(DEBUGY)c}'out O"Exiting Path::fill(k).\n"TM ush;return4g; g803. Pictureދargumen9t rst.[LDFT2002.09.17.]Z:Added]Ythisfunction.It'sconvenient]YforwhenI]WwanttoUUpassaPicture,Fargument.hDeclareUUP9ath<functions@656i+ -v9oid" ll/̫(Picture(b&0pictur}'eOV;constJColor?z=&GA[llffc}'olorrҎ=Colors)::0.5defaultffc}'olorg); -an썷x8043DLDFPRÎGUWPICTUREXARGUMENTFIRST215n@P804.hDe neUUP9ath<functions@657i+ +v9oid" ll/̫(Picture(b&0pictur}'eOV;constJColor?z=&GA[llffc}'olorrҎ=Colors)::0.5defaultffc}'olorg); +n썷x8043DLDFPRÎGUWPICTUREXARGUMENTFIRST217n@P804.hDe neUUP9ath<functions@657i+ v9oid"P9ath 8BeginTLogJʄ`> -[LDFT2003.07.16.]Y;MadeUUbGothversionsconst*.Ȅ` 8EndTLogA>`806. NormalTv9ersion.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.10.07.]Y;AddedUUcoGdeforhandlingdr}'awffcolor5and llffc}'olor(.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +[LDFT2002.03.25]WA8([LDFT2002.11.03.]ORevised thefollowingtext).Atthepresenttime,R lldr}'aw%4()di ersfromthe lldra9wcommandinMET*AFONTnandMETAPOST:Inthedefaultcase,Atheoutlineisdrawninthedefaultcolor(currentlyblack)andtheP9athis lledwiththebackgroundcolor(currentlywhitebydefault).ThiszmakesitpGossibletohideob8jectsthatarebehindtheP9athbyusingthepainter'salgorithmwhen5rendering.gIfyouwantaP9athtobGe lledwithanothercolor,;youwillhavetouseexplicitargumentsforb~ddr}'awffcolor:ͥandb~llffc}'olor,,.AEitherb~orbGothofthesecanbe""h,ewhichcausesthedefaultcolor(currentlyblack)UUtobGeused.qOfcourse,plain llH()followedbyplaindr}'aw~0()willproGducethesameresult.N99Ȅ`+U 8Log)j`+U +[LDFT2003.07.16.]Y;MadeUUbGothversionsconst*.Ȅ`G806. NormalTv9ersion.9Ȅ`+U 8Log)j`+U +[LDFT2002.10.07.]Y;AddedUUcoGdeforhandlingdr}'awffcolor5and llffc}'olor(.Ȅ`GhDeclareUUP9ath<functions@656i+ v9oid$u lldr}'awE܋(constColor@#&HAddr}'awffcoloru=8 -8Colors,j::2defaultffc}'olorj;const!LColor&%!llffc}'olorR,%=Colors*sȫ::1b}'ackgroundffcolor{F^;string#O ddashe}'dJ1=""K;string#O pp}'en< ="";Picture&%!pictur}'eG=curr}'entffpictureD߫)UUconst*; -n썫216NORMALXVERSION43DLDFPRÎGx807n@P807.hDe neUUP9ath<functions@657i+ +8Colors,j::2defaultffc}'olorj;const!LColor&%!llffc}'olorR,%=Colors*sȫ::1b}'ackgroundffcolor{F^;string#O ddashe}'dJ1=""K;string#O pp}'en< ="";Picture&%!pictur}'eG=curr}'entffpictureD߫)UUconst*; +ՠn썫218NORMALXVERSION43DLDFPRÎGx807n@P807.hDe neUUP9ath<functions@657i+ v9oid#RQP9ath<㹫:: lldr}'aw"go(constColor>x&F?ddr}'awffcolorzHL;const )Color@#-&GKllffc}'olorpf;string#$mddashe}'dFk~;string2pp}'enG6(;Picture* &2c(pictur}'eQk)UUconst fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Path::fillkdraw().\n"> ush;if(p}'oints$:size\()0)=LDFUU2002.09.27.qAddedthiserrorhandlingcoGde.IftheP9ath<isempty*,don't lldrawit.o=fc}'err3K"WARNING! In Path::flfilldraw():\n"I"Path doesn't contailfn any Points.\n"@2"Not doing anything.\n\n": ush;return>h;gP9ath/滷4漱p<ԫ=cr}'eateffnewffp}'athGڷ(this붫);p~ llffdr}'awffvalue^{,=FILLDRAW-Mh;if(DEBUGY)c}'out4 R"ddraw_color.get_usek_name() == "8ddr}'awffcolor6:getffuseffname:()endl ush;if(DEBUGY)c}'out4 R"ffill_color.get_usek_name() == "8llffc}'olor+3:getffuseffname:()endl ush;if(ddr}'awffcolor4:getffuseffname:()falsev\)fif)(DEBUGY)c}'out O"Allocating memory fkor Color.\n"8 ush;Color=BcI=Color ::&cr}'eateffnewffc}'olorn();#c*=ddr}'awffcolor6;p!~'dr}'awffcolorXU=c;gelse+fif)(DEBUGY)c}'out O"ddraw_color.get_namke() == "Dddr}'awffcolor6:getffname(()endl ush;p!~'dr}'awffcolorXU=& 6ddr}'awffcolor>߫;gif(llffc}'olor(:getffuseffname:()falsev\)fif)(DEBUGY)c}'out O"Allocating memory fkor Color.\n"8 ush;Color=BcI=Color ::&cr}'eateffnewffc}'olorn();#c*=llffc}'olor+3;p!~' llffc}'olorOgq=c;gelse+fif)(DEBUGY)c}'out O"ffill_color.get_namke() == "Dllffc}'olor+3:getffname(()endl ush;p!~' llffc}'olorOgq=& 6llffc}'olor3XQ;gp~dashe}'d==ddashe}'d&);p~p}'en/Ϋ=pp}'en;;pictur}'e5+=H%Dstaticus4wcast|hShapQe"Ab'Aci(p);if(DEBUGY)c}'out O"Exiting Path::filldkraw().\n"TA ush;return4g; -g -n썷x8083DLDFPRÎGUWPICTUREXARGUMENTFIRST217n@P808. Pictureދargumen9t rst.[LDFT2002.09.17.]Z:Added]Ythisfunction.It'sconvenient]YforwhenI]Wwant toUUpassaPicture,Fargument.hDeclareUUP9ath<functions@656i+ +g +n썷x8083DLDFPRÎGUWPICTUREXARGUMENTFIRST219n@P808. Pictureދargumen9t rst.[LDFT2002.09.17.]Z:Added]Ythisfunction.It'sconvenient]YforwhenI]Wwant toUUpassaPicture,Fargument.hDeclareUUP9ath<functions@656i+ v9oid#42 lldr}'awD(Picture)'&0pictur}'eO;const Color?&G ddr}'awffcolor~a=!!Colors)::0defaultffc}'olorh;const Color&%!llffc}'olorQXT=Colors)::0.5b}'ackgroundffcolorzr;string"ddashe}'dH="" z;string"pp}'en:0="")UUconst*;809.hDe neUUP9ath<functions@657i+ v9oid#&]P9ath<ū:: lldr}'aw"go(Picture)&0pictur}'eOڱ;constColor?E&Gcddr}'awffcolor{ ;constColor?E&Gcllffc}'olorp\~;string2ddashe}'dUG;string"pp}'en8)UUconst f lldr}'aw5gm(ddr}'awffcolor4;llffc}'olor*tñ;ddashe}'d$;pp}'en˱;pictur}'e ~); @@ -2950,75 +2987,75 @@ &2c(pictur}'eQk) fif(p}'oints$:size\()0)=LDFUU2002.09.27.qAddedthiserrorhandlingcoGde.IftheP9ath<isempty*,don'tundrawit.o=fc}'err4ڷ_1"WARNING! In Path::ul^ndraw():\n"m_1"Path doesn't contail^n any Points.\n"D^2"Not doing anything.\n\n": ush;return>h;gP9ath/滷4漱p<ԫ=cr}'eateffnewffp}'athGڷ(this붫);p~ llffdr}'awffvalue^{,=UNDRAW"n;p~dr}'awffcolorNT=0;p~ llffc}'olorEgp=0;p~dashe}'d==ddashe}'d&);p~p}'en/Ϋ=pp}'en;;pictur}'e5+=H%Dstaticus4wcast|hShapQe"Ab'Aci(p); g814. Pictureދargumen9t rst.[LDFT2002.09.17.]Z:Added]Ythisfunction.It'sconvenient]YforwhenI]WwanttoUUpassaPicture,Fargument.hDeclareUUP9ath<functions@656i+ -v9oid"undr}'awD#ث(Picture(b&0pictur}'eOV;string"ddashe}'dH="" z;string"pp}'en:0=""); -|n썫218PICTUREXARÎGUMENTFIRSTUW3DLDFPRGx815n@P815.hDe neUUP9ath<functions@657i+ +v9oid"undr}'awD#ث(Picture(b&0pictur}'eOV;string"ddashe}'dH="" z;string"pp}'en:0=""); +ݠn썫220PICTUREXARÎGUMENTFIRSTUW3DLDFPRGx815n@P815.hDe neUUP9ath<functions@657i+ v9oid"P9ath 8BeginTLogJʄ`> +g816. P9ointTversions.817. Normal+?v9ersion.This~functionisdeclaredinpoints.web,butmustbGede nedhere,bGecause P9ath湫isUUanincompletetypGehere.9Ȅ`+U 8Log)j`+U [LDFT2002.4.8.]O?AddedUUthisfunction. -[LDFT2002.11.03.]Y;ChangedUUthisfunction,sothatitreturnstheP9ath<p}'a*9R,insteadofv9oidث.Ȅ` 8EndTLogA>`hDe neUUP9oint"Dfunctions@285i+ +[LDFT2002.11.03.]Y;ChangedUUthisfunction,sothatitreturnstheP9ath<p}'a*9R,insteadofv9oidث.Ȅ`GhDe neUUP9oint"Dfunctions@285i+ P9ath%P9ointB::undr}'aw"&(const*P9oint=?&D]ptN;string"ddashe}'dF;string"pp}'en8;Picture* &2c(pictur}'eQk) fP9ath/p}'a:(this뷱;pt E);p}'aF:undr}'aw!%(ddashe}'d#G;pp}'en˱;pictur}'e ~);return7p}'aB; -g818. PictureTargumen9t rst.U9Ȅ`> 8BeginTLogJʄ`> +g818. PictureTargumen9t rst.9Ȅ`+U 8Log)j`+U [LDFT2002.09.17.]Y;AddedUUthisfunction.qIt'sconvenientUUforwhenIwantUUtopassaPicture,Fargument. -[LDFT2002.09.17.]Y;AddedUUthisfunction.qIt'sconvenientUUforwhenIwantUUtopassaPicture,Fargument.Ȅ` 8EndTLogA>`hDe neUUP9oint"Dfunctions@285i+ +[LDFT2002.09.17.]Y;AddedUUthisfunction.qIt'sconvenientUUforwhenIwantUUtopassaPicture,Fargument.Ȅ`GhDe neUUP9oint"Dfunctions@285i+ P9ath%P9ointB::undr}'aw"&(Picture(b&0pictur}'eOV;constJP9oint>&FptPp;string"ddashe}'dF;string"pp}'en8) freturn7undr}'awY (pt 䝱;ddashe}'d$;pp}'en˱;pictur}'e ~); g819. Un ll.820. NormalTv9ersion.hDeclareUUP9ath<functions@656i+ -v9oid"un ll:(Picture(b&0pictur}'eRn=curr}'entffpictureD߫); -n썷x8213DLDFPRÎG4NORMALXVERSION219n@P821.hDe neUUP9ath<functions@657i+ +v9oid"un ll:(Picture(b&0pictur}'eRn=curr}'entffpictureD߫); +yn썷x8213DLDFPRÎG4NORMALXVERSION221n@P821.hDe neUUP9ath<functions@657i+ v9oid"P9athh;gP9ath/滷4漱p<ԫ=cr}'eateffnewffp}'athGڷ(this붫);p~ llffdr}'awffvalue^{,=UNFILL"n;p~dr}'awffcolorNT=0;p~ llffc}'olorEgp=0;p~dashe}'d=="" z;p~p}'en/Ϋ="" z;pictur}'e5+=H%Dstaticus4wcast|hShapQe"Ab'Aci(p); g822. Un lldra9w.823. NormalTv9ersion.hDeclareUUP9ath<functions@656i+ v9oid"3un lldr}'awOc«(const+Color=I&Egddr}'awffcolor|ki=YZColors)8::00vb}'ackgroundffcolorztα;string"Oddashe}'dHṫ=Y"" ϻ;stringpp}'en5>="" z;Picture* -&2c(pictur}'eT3=curr}'entffpictureD߫); -匠n썫220NORMALXVERSION43DLDFPRÎGx824n@P824.hDe neUUP9ath<functions@657i+ +&2c(pictur}'eT3=curr}'entffpictureD߫); +ߗn썫222NORMALXVERSION43DLDFPRÎGx824n@P824.hDe neUUP9ath<functions@657i+ v9oid"P9ath"2"Not doing anything.\n\n": ush;return>h;gP9ath/滷4漱p<ԫ=cr}'eateffnewffp}'athGڷ(this붫);p~ llffdr}'awffvalue^{,=UNFILLDRAW7b;=!OLDFv2002.10.07.ռAddedvcoGdeforhandlingdr}'awffcolor5هand llffc}'olor).WillgetridofthisifIvdo(actuallyUUchangeittomakeitactmorelikeun lldra9winMET*APOST.=if(ddr}'awffcolor4:getffuseffname:()falsev\)fif)(DEBUGY)c}'out O"Allocating memory fkor Color.\n"8 ush;Color=BcI=Color ::&cr}'eateffnewffc}'olorn();#c*=ddr}'awffcolor6;p!~'dr}'awffcolorXU=c;gelse+fif)(DEBUGY)c}'out O"ddraw_color.get_namke() == "Dddr}'awffcolor6:getffname(()endl ush;p!~'dr}'awffcolorXU=& 6ddr}'awffcolor>߫;gp~ llffc}'olorEgp=0;p~dashe}'d==ddashe}'d&);p~p}'en/Ϋ=pp}'en;;pictur}'e5+=H%Dstaticus4wcast|hShapQe"Ab'Aci(p);if(DEBUGY)c}'out O"Exiting Path::unfilkldraw().\n"; ush;return4g; g825. Pictureދargumen9t rst.[LDFT2002.09.17.]Z:Added]Ythisfunction.It'sconvenient]YforwhenI]WwanttoUUpassaPicture,Fargument.hDeclareUUP9ath<functions@656i+ -v9oid#0un lldr}'awOZ(Picture)$T&0rpictur}'eOH;const  8BeginTLogJʄ`> +g827. LabQelling.828. LabQel.9Ȅ`+U 8Log)j`+U [LDFT2002.03.25.]ZAddedUargumentdotandchangedde nitionofdotlab}'el&U()bGelowsothatitjustcallslab}'elt(). -[LDFT2003.04.01.]XKBUGVFIX:eGotridofthe rstargumentunsigned3in9tDiG~,&.andmadethethirdargumentshortztextffshortK_the rstargument.W2F*ormerly,theP9oints&.inP9aths#%̫werealwaysnumbGeredstartingfrom0,bGecauseptheargumenttextffshort2XOwaspassedtoP9oint V::lab}'elt(),7noti.d.AlsochangedthefollowingversionsofUUlab}'el()UUanddotlab}'el%UH(),thatcallthisfunction.Ȅ` 8EndTLogA>`829. NormalTv9ersion.9Ȅ`> 8BeginTLogJʄ`> +[LDFT2003.04.01.]XKBUGVFIX:eGotridofthe rstargumentunsigned3in9tDiG~,&.andmadethethirdargumentshortztextffshortK_the rstargument.W2F*ormerly,theP9oints&.inP9aths#%̫werealwaysnumbGeredstartingfrom0,bGecauseptheargumenttextffshort2XOwaspassedtoP9oint V::lab}'elt(),7noti.d.AlsochangedthefollowingversionsofUUlab}'el()UUanddotlab}'el%UH(),thatcallthisfunction.Ȅ`G829. NormalTv9ersion.9Ȅ`+U 8Log)j`+U [LDFT2003.05.06.]Y;ChangedUUtheconditional,wheretextffshort1iscomparedwithWORLD_VALUESBۙ,PROJ_VALUES:FG,etc.0FIhadtochangeit,bGecauseI'veaddedWORLD_VALUES_X_YW ,etc.0FNow,theconditionaltestsfor"=VIEW_VALUES_X_YShx[/textffshort#WORLD_VALUES\g.Of"=course,UwthismakesanassumptionabGoutthevqaluesthatareusedtosignalthatcoGordinatevqaluesshouldbeusedforthelabel,butIthinkit'sworthit,toavoidtestingUUtextffshort1againstUUeachvqalueindividually*. -[LDFT2003.07.09.]Y;MadeUUp}'ositionffstringFͫandUUdotargumentsUUconst*.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -v9oid"lab}'el72(shorttextffshortK1O=0;constostring@zp}'ositionffstring=="top"q;constobQool8dotJ=falsev\;Picture&%!pictur}'eG=curr}'entffpictureD߫)UUconst*; -n썫222NORMALXVERSION43DLDFPRÎGx830n@P830.hDe neUUP9ath<functions@657i+ +[LDFT2003.07.09.]Y;MadeUUp}'ositionffstringFͫandUUdotargumentsUUconst*.Ȅ`GhDeclareUUP9ath<functions@656i+ +v9oid"lab}'el72(shorttextffshortK1O=0;constostring@zp}'ositionffstring=="top"q;constobQool8dotJ=falsev\;Picture&%!pictur}'eG=curr}'entffpictureD߫)UUconst*; +n썫224NORMALXVERSION43DLDFPRÎGx830n@P830.hDe neUUP9ath<functions@657i+ v9oid#&2P9ath<::lab}'elt(shorttextffshortHk;conststringAKIp}'ositionffstringFl;constbQool9bdotHo;Picture*c&2pictur}'eQW)2const fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Path::labekl()"P"\n" ush;if(LabQelAg::#ϥDO_LABELSV] falsev\)return%e;if(p}'oints$:size\()0)=LDFUU2002.09.27.qAddedthiserrorhandlingcoGde.IftheP9ath<isempty*,don'tlabGelit.o=fc}'err45"WARNING! In Path::llabel():\n""Path doesn't contailn any Points.\n"ą2"Not doing anything.\n\n": ush;return>h;gfor%舫(v9ectorHhP9oint#i::Bc}'onstffiteratorCiterW=p}'oints뭱:b}'egin();iter6=p}'oints:endಫ();iterJ++")f( iter):lab}'elt(textffshort*o;p}'ositionffstringA˱;dot;pictur}'e ~);if)(textffshort-P9ointad::%WORLD_VALUESgƷ^8textffshort/gP9ointad::%VIEW_VALUES`5)2=LDFUU2003.05.06.qChangedthisconditional.o=(;=DoUUnothing.o=else6X++B textffshortlq;gif(DEBUGY)c}'out O"Exiting Path::labelk()"~S"\n" ush; g831. Pictureދargumen9t rst.[LDFT2002.09.17.]Z:Added]Ythisfunction.It'sconvenient]YforwhenI]WwanttoUUpassaPicture,Fargument. -[LDFT2003.07.09.]Y;MadeUUp}'ositionffstringFͫandUUdotargumentsUUconst*.c9Ȅ`> 8BeginTLogJʄ`>Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +[LDFT2003.07.09.]Y;MadeUUp}'ositionffstringFͫandUUdotargumentsUUconst*.N99Ȅ`+U 8Log)j`+UȄ`GhDeclareUUP9ath<functions@656i+ v9oid#lab}'el7:(Picture)+&0Ipictur}'eO;shorttextffshortMX=0;conststringA()p}'ositionffstring^="top"k;constbQooldot/(=falsev\)UUconst*;832.hDe neUUP9ath<functions@657i+ v9oid#&2P9ath<::lab}'elt(Picture)&0pictur}'eO鯱;shorttextffshortJ};conststringAKIp}'ositionffstringFl;constbQool9bdotHo)2const flab}'el(t(textffshort*o;p}'ositionffstringA˱;dot;pictur}'e ~); -g833. DotlabQel. qn썷x8343DLDFPRÎG4NORMALXVERSION223n@P834. NormalTv9ersion.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.09.]Y;MadeUUtextffshort1andUUp}'ositionffstringFͫargumentsUUconst*.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +g833. DotlabQel. 'n썷x8343DLDFPRÎG4NORMALXVERSION225n@P834. NormalTv9ersion.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.09.]Y;MadeUUtextffshort1andUUp}'ositionffstringFͫargumentsUUconst*.Ȅ`GhDeclareUUP9ath<functions@656i+ v9oid#ڤdotlab}'elEڗ(constmshort=textffshortl^=70 7;const stringB-p}'ositionffstringd=7"top"m;Picture&%!pictur}'eG=curr}'entffpictureD߫)UUconst*;835.hDe neUUP9ath<functions@657i+ v9oid"P9ath 8BeginTLogJʄ`> +g836. PictureTargumen9t rst.9Ȅ`+U 8Log)j`+U [LDFT2002.09.17.]Y;AddedUUthisfunction.qIt'sconvenientUUforwhenIwantUUtopassaPicture,Fargument. -[LDFT2003.07.09.]Y;MadeUUtextffshort1andUUp}'ositionffstringFͫargumentsUUconst*.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +[LDFT2003.07.09.]Y;MadeUUtextffshort1andUUp}'ositionffstringFͫargumentsUUconst*.Ȅ`GhDeclareUUP9ath<functions@656i+ v9oid#5mdotlab}'elE5`(Picture)(&0pictur}'eO;const short>textffshortl==#0#;const stringAip}'ositionffstring=#"top")const8P;837.hDe neUUP9ath<functions@657i+ v9oid"P9ath 8BeginTLogJʄ`> +[LDFT2003.01.31.]Y;??qDoUUIneedtocallP9oint::pr}'ojectw()ontheP9oints&.hereandinP9ath潫::pr}'oject()?N99Ȅ`+U 8Log)j`+U [LDFT2002.09.17.]XAdded2const!; F oQcusAc9&I*WfRVargument2anderrorhandlingcoGde.fKNow,9ifanyoftheP9ointson{pv9ector#%hP9oint$i{pp}'oints"ucannot{pbGepro8jectedontotheprojectionplaneusingtheF oQcus#,f),theP9athDisnot#putontothev9ector"VhShapQe"'iPicture)::elements',-andconsequentlyneverreachesPicture)::outputD()andUUP9ath潫::outputD(). -[LDFT2003.05.09.]WRewrote?thisfunction.7ItnowcallsP9oint::extr}'acts()insteadofcallingapplyfftr}'ansformH_()andU}pr}'oject!̋()U}ontheP9oints&~directly*.r?Thismakesmuchmoresense,UsinceanychangestoP9ointɫ::extr}'acts()wouldUUotherwisenothavebGeenappliedtoP9oints&.onP9aths o.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +[LDFT2003.05.09.]WRewrote?thisfunction.7ItnowcallsP9oint::extr}'acts()insteadofcallingapplyfftr}'ansformH_()andU}pr}'oject!̋()U}ontheP9oints&~directly*.r?Thismakesmuchmoresense,UsinceanychangestoP9ointɫ::extr}'acts()wouldUUotherwisenothavebGeenappliedtoP9oints&.onP9aths o.Ȅ`GhDeclareUUP9ath<functions@656i+ v9ector)IhShapQe"Ab'AciUUextr}'act"ī(const*F -oQcus>uC&FuC&FuC&FQ"Entering Path::set_kjextremes()"7Wendl ush;=IfstherearenoP9oints' on<theUUP9ath湫,UUsetalltheelementsofpr}'ojectiveffextremesZtoINVALID_REALF0andreturnfalse.o=if)(p}'oints$:size\()0)f(c}'err?6h"ERROR! In Path::setmhP_extremes():\n"h"points.size() <= 0.mhP "|><"Setting extremes to INVALID_REAL and re turning.\n"K  ush;(pr}'ojectiveffextremes~m=INVALID_REALBM\;(returnKfalse`;g &ˠn썷x8433DLDFPRÎGSETXEXTREMES225n@P843. [LDFT2002.09.18.]YAdded=thisroutine.3jSettheminimum^vqaluestoMAX_REAL/ʫandthemaximumvqalues toU sMAX_REAL65ë.*ThisUway*, anyvqalidpGerspectivecoordinateswillreplacethemonthe rstiterationofthefor膫loGop. +bQool#gP9ath=2ϫ::setffextr}'emes7()fUUbQoolDEBUG:,=falsev\;=trueĒ=if)(DEBUGY)(c}'out>Q"Entering Path::set_kjextremes()"7Wendl ush;=IfstherearenoP9oints' on<theUUP9ath湫,UUsetalltheelementsofpr}'ojectiveffextremesZtoINVALID_REALF0andreturnfalse.o=if)(p}'oints$:size\()0)f(c}'err?6h"ERROR! In Path::setmhP_extremes():\n"h"points.size() <= 0.mhP "|><"Setting extremes to INVALID_REAL and re turning.\n"K  ush;(pr}'ojectiveffextremes~m=INVALID_REALBM\;(returnKfalse`;g ֠n썷x8433DLDFPRÎGSETXEXTREMES227n@P843. [LDFT2002.09.18.]YAdded=thisroutine.3jSettheminimum^vqaluestoMAX_REAL/ʫandthemaximumvqalues toU sMAX_REAL65ë.*ThisUway*, anyvqalidpGerspectivecoordinateswillreplacethemonthe rstiterationofthefor膫loGop. [LDFT2002.09.18.]XWI$ehad$qsomedicultydebuggingthisbGecauseinsteadofusing MAX_REAL5q߫,.9Ide nedandusedB1MIN_REAL3[=Qn9umericus4wlimitsN@hreal]ٷi::BminW().8[However,}hthisB1isn'tthenegativereal;withthelargestmagnitude,UUbutthesmallestpGositivereal..hDe neUUP9ath<functions@657i+ pr}'ojectiveffextremes^R[0]=MAX_REAL-Mh;=Minima.o= @@ -3053,7 +3090,7 @@ iter):getffz('p'F_;falseY;false));=MaxUUz= g if(DEBUGY)ffor%舫(in9ti=0;i 9 <6;i++)c}'out4 R"projective_extremesk["yVi $"] == "*ԃpr}'ojectiveffextremesVi[iq]endl ush; -g 4n썫226SETXEXTREMES3DLDFPRÎGx844n@P844. [LDFT2002.09.18.][=Added\thiserrorhandlingcoGde.(ThereisaremotechancethatavqalidP9oint couldBhaveacoGordinateMAX_REAL3 +g -n썫228SETXEXTREMES3DLDFPRÎGx844n@P844. [LDFT2002.09.18.][=Added\thiserrorhandlingcoGde.(ThereisaremotechancethatavqalidP9oint couldBhaveacoGordinateMAX_REAL3 or 8MIN_REAL6,}Khowever,itBisvirtuallyimpGossiblethatitwouldbepro8jectable.ծIfvit'sthexory-coGordinate,~itwouldprobablylieoutsidethelimitsde nedfortheinvoGcationof7Picture*ӽ::outputD(),pAand7ifitwasthez Nʫ,itwouldeitherbGebehindtheF oQcus%dorsofaraway7astobepractically.invisible.SIbGelievethatthisisthecase,ؤeventhoughthez-coGordinatesaremadesmallerbyapplyingUUtheequationzpfj=zp=(zw+8p).hDe neUUP9ath<functions@657i+ for臫(in9ti=0;i 9 <6;i+=]2"^)fif(pr}'ojectiveffextremesTQ[iq]MAX_REALAMi=Minima=8_8pr}'ojectiveffextremesV=1[iԫ+818] @@ -3064,7 +3101,7 @@ virtual/inlineOconstmBv\ralarra9yhreal]ٷiUUgetffextr}'emes:()UUconst freturn7pr}'ojectiveffextremes ; g846. GetTminim9umz.[LDFT2003.05.16.]Z6AddedUUthisfunction.hDeclareUUP9ath<functions@656i+ -virtual/realFAgetffminimumffzګ()UUconst*; Kn썷x8473DLDFPRÎGGETXMINIMUMZ227n@P847.hDe neUUP9ath<functions@657i+ +virtual/realFAgetffminimumffzګ()UUconst*; D'n썷x8473DLDFPRÎGGETXMINIMUMZ229n@P847.hDe neUUP9ath<functions@657i+ real /P9ath:D::getffminimumffzD]ܫ()UUconst fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)fc}'out4 R"Entering Path::get_kminimum_z()"8endl ush;c}'out4 R"projective_extremesk[4] == "Dpr}'ojectiveffextremesVi[4]endl ush;c}'out4 R"Exiting Path::get_mkinimum_z()";endl ush;greturn7pr}'ojectiveffextremes [4]; g848. GetTmaxim9umz.[LDFT2002.09.17.]Z6AddedUUthisfunction.hDeclareUUP9ath<functions@656i+ @@ -3076,19 +3113,19 @@ real /P9ath:D::getffme}'anffz1()UUconst freturn7漫((pr}'ojectiveffextremesTQ[4]8+pr}'ojectiveffextremesV=1[5])=2); g852. Suppressxoutput.[LDFT2002.09.18.][Addedthisfunction.It'sneededbGecausetryingtoeraseaShapQe"Ab*fromUUelements-inUUPicture)f::outputD()UUcausesamemoryfault.hDeclareUUP9ath<functions@656i+ -virtual/v9oidHsuppr}'essffoutputr.(); Wn썫228SUPPRESSXOUTPUTe3DLDFPRÎGx853n@P853.hDe neUUP9ath<functions@657i+ +virtual/v9oidHsuppr}'essffoutputr.(); Pn썫230SUPPRESSXOUTPUTe3DLDFPRÎGx853n@P853.hDe neUUP9ath<functions@657i+ v9oid"P9ath 8BeginTLogJʄ`> -[LDFT2003.01.15.]YIAddedccoGdeforwriting\drawarrow"ctooutffstr}'eam3X,I'ifarr}'ow" /trueǫ.Thisisforthedr}'awarrow.ī()UUfunctionsforP9ath<andP9oint"DthatI'veaddedtoGday*.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +g856. Output.[LDFT2002.09.17.]Z Removed+errorchecking+coGdetoextr}'act!().ENowoutputk()assumesthatalloftheP9oints%inp}'oints canbGepro8jectedusingfo}'cus_.=Iftheycan'tbe,سextr}'act!"()willalreadyhaveensuredthatUUtheP9ath<isnotonv9ector"hShapQe"Ab'Acielements-inthePicture(b.N99Ȅ`+U 8Log)j`+U +[LDFT2003.01.15.]YIAddedccoGdeforwriting\drawarrow"ctooutffstr}'eam3X,I'ifarr}'ow" /trueǫ.Thisisforthedr}'awarrow.ī()UUfunctionsforP9ath<andP9oint"DthatI'veaddedtoGday*.Ȅ`GhDeclareUUP9ath<functions@656i+ virtual/v9oidHoutpute();857.hDe neUUP9ath<functions@657i+ -v9oid"P9ath to continue.\n"* ush;getchar5%();c}'err*SI"WARNING! In Path::oleutput():\n"M"Path doesn't contailen any Points.\n">("Not doing anything.\n\n"9 ush;return4g; -g mԠn썫230OUTPUT=\03DLDFPRÎGx859n@P859.hDe neUUP9ath<functions@657i+ +g fn썫232OUTPUT=\03DLDFPRÎGx859n@P859.hDe neUUP9ath<functions@657i+ v9ector)IhP9oint#i::Biter}'ator)7p}'ointffiterV:=p}'oints뭱:b}'egin(); v9ector)Ihstringi::Biter}'ator)7c}'onnectorffiterjӫ=c}'onnectors1F:b}'egin(); string+%Nc}'onnectorffstringrʫ; @@ -3107,8 +3144,8 @@ hOutputUUP9ath &864i outffstr}'eam<" withcolor "JTq llffc}'olor-_n; outffstr}'eam<";\n" T ush; -p}'ointffiter6=p}'oints뭱:b}'egin(); sln썷x8603DLDFPRÎG=\0OUTPUT231n@P860.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.05.10.]X_Added`ythecoGdeinthissection. )It xesabug.Ifit'snotdone,rthenthecorrectconnectorsareUUnotusedwhentheP9ath<isoutputthesecondtime.Ȅ` 8EndTLogA>`hDe neUUP9ath<functions@657i+ +p}'ointffiter6=p}'oints뭱:b}'egin(); lLn썷x8603DLDFPRÎG=\0OUTPUT233n@P860.9Ȅ`+U 8Log)j`+U +[LDFT2002.05.10.]X_Added`ythecoGdeinthissection. )It xesabug.Ifit'snotdone,rthenthecorrectconnectorsareUUnotusedwhentheP9ath<isoutputthesecondtime.Ȅ`GhDe neUUP9ath<functions@657i+ c}'onnectorffiterK=c}'onnectors1F:b}'egin(); if(c}'onnectors/4.:size\()>0)c}'onnectorffstringO=c}'onnectorffiterF++RO; else!c}'onnectorffstringlft="--"Mt;861.hDe neUUP9ath<functions@657i+ @@ -3119,30 +3156,30 @@ if(dashe}'d 6="" z)outffstr}'eam7" dashed ":zdashe}'d; if(p}'en˷6="" z)outffstr}'eam7" withpen "?wp}'en; outffstr}'eam<";\n" T ush;UUgg -elseif( llffdr}'awffvalueAs)UNDRAW"n)fif)(DEBUGY)c}'out O"Undrawing.\n"On ush;outffstr}'eamP"undraw "5T} p}'ointffiter7y++C@%;hOutputUUP9ath &864iif)(dashe}'d 6="" z)outffstr}'eam7" dashed ":zdashe}'d;if)(p}'en˷6="" z)outffstr}'eam7" withpen "?wp}'en;outffstr}'eamP";\n" T ush;gelse*.6if5.( llffdr}'awffvalueAs)UNFILL"n)fif)(DEBUGY)c}'out O"Unfilling.\n"On ush;outffstr}'eamP"unfill "5T} p}'ointffiter7y++C@%;hOutputUUP9ath &864ioutffstr}'eamP";\n" T ush;g n썫232OUTPUT=\03DLDFPRÎGx862n@P862. FilldrawUUcase.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.03.25.][ WChangedYqthissection,xsothattheoutlineoftheP9ath#DFisdrawn,ifdr}'awffcolor:h6=Colors!ޫ::(gb}'ackgroundffcolorrt.Ȅ` 8EndTLogA>`hDe neUUP9ath<functions@657i+ -elseif( llffdr}'awffvalueAs)UNFILLDRAW7b)fif)(DEBUGY)c}'out O"Unfilldrawing.\n"db ush;if)(dr}'awffcolor1QColors$::+.4b}'ackgroundffcolorur)f(outffstr}'eamZ"unfilldraw "JTq p}'ointffiter7y++C@%;(hOutputUUP9ath &864i(if3(dashe}'d 6="" z)outffstr}'eam7" dashed ":zdashe}'d;(if3(p}'en˷6="" z)outffstr}'eam7" withpen "?wp}'en;(outffstr}'eamZ";\n" T ush;gelse5f(outffstr}'eamZ"unfill "5T} p}'ointffiter7y++C@%;(hOutputUUP9ath &864i(outffstr}'eamZ";\n" T ush;(p}'ointffiterT=p}'oints뭱:b}'egin();(c}'onnectorffiteri=c}'onnectors1F:b}'egin();(if3(c}'onnectors/4.:size\()>0)c}'onnectorffstringO=c}'onnectorffiterF++RO;(else?c}'onnectorffstringfw="--"Mt;(outffstr}'eamZ"draw "*ԃ p}'ointffiter7y++C@%;(hOutputUUP9ath &864i(if3(dr}'awffcolor1Q6=Colors$::+.4defaultffc}'olorb)outffstr}'eam7" withcolor "JTqdr}'awffcolor6R;(if3(dashe}'d 6="" z)outffstr}'eam7" dashed ":zdashe}'d;(if3(p}'en˷6="" z)outffstr}'eam7" withpen "?wp}'en;(outffstr}'eamZ";\n" T ush;gg=EndUUofUNFILLDRAW;case.q[LDFT2003.03.25.]U$= n썷x8633DLDFPRÎG=\0OUTPUT233n@P863. DefaultUUcase.q[LDFT2003.03.25.]hDe neUUP9ath<functions@657i+ +elseif( llffdr}'awffvalueAs)UNDRAW"n)fif)(DEBUGY)c}'out O"Undrawing.\n"On ush;outffstr}'eamP"undraw "5T} p}'ointffiter7y++C@%;hOutputUUP9ath &864iif)(dashe}'d 6="" z)outffstr}'eam7" dashed ":zdashe}'d;if)(p}'en˷6="" z)outffstr}'eam7" withpen "?wp}'en;outffstr}'eamP";\n" T ush;gelse*.6if5.( llffdr}'awffvalueAs)UNFILL"n)fif)(DEBUGY)c}'out O"Unfilling.\n"On ush;outffstr}'eamP"unfill "5T} p}'ointffiter7y++C@%;hOutputUUP9ath &864ioutffstr}'eamP";\n" T ush;g dn썫234OUTPUT=\03DLDFPRÎGx862n@P862. FilldrawUUcase.9Ȅ`+U 8Log)j`+U +[LDFT2003.03.25.][ WChangedYqthissection,xsothattheoutlineoftheP9ath#DFisdrawn,ifdr}'awffcolor:h6=Colors!ޫ::(gb}'ackgroundffcolorrt.Ȅ`GhDe neUUP9ath<functions@657i+ +elseif( llffdr}'awffvalueAs)UNFILLDRAW7b)fif)(DEBUGY)c}'out O"Unfilldrawing.\n"db ush;if)(dr}'awffcolor1QColors$::+.4b}'ackgroundffcolorur)f(outffstr}'eamZ"unfilldraw "JTq p}'ointffiter7y++C@%;(hOutputUUP9ath &864i(if3(dashe}'d 6="" z)outffstr}'eam7" dashed ":zdashe}'d;(if3(p}'en˷6="" z)outffstr}'eam7" withpen "?wp}'en;(outffstr}'eamZ";\n" T ush;gelse5f(outffstr}'eamZ"unfill "5T} p}'ointffiter7y++C@%;(hOutputUUP9ath &864i(outffstr}'eamZ";\n" T ush;(p}'ointffiterT=p}'oints뭱:b}'egin();(c}'onnectorffiteri=c}'onnectors1F:b}'egin();(if3(c}'onnectors/4.:size\()>0)c}'onnectorffstringO=c}'onnectorffiterF++RO;(else?c}'onnectorffstringfw="--"Mt;(outffstr}'eamZ"draw "*ԃ p}'ointffiter7y++C@%;(hOutputUUP9ath &864i(if3(dr}'awffcolor1Q6=Colors$::+.4defaultffc}'olorb)outffstr}'eam7" withcolor "JTqdr}'awffcolor6R;(if3(dashe}'d 6="" z)outffstr}'eam7" dashed ":zdashe}'d;(if3(p}'en˷6="" z)outffstr}'eam7" withpen "?wp}'en;(outffstr}'eamZ";\n" T ush;gg=EndUUofUNFILLDRAW;case.q[LDFT2003.03.25.]U$= 5n썷x8633DLDFPRÎG=\0OUTPUT235n@P863. DefaultUUcase.q[LDFT2003.03.25.]hDe neUUP9ath<functions@657i+ else0=UseUUDRAWasdefault.q[LDFT2003.03.25.]U$= fc}'err):"WARNING! Invalid |fkill_draw_value|: "ͼj: llffdr}'awffvalueDb:". Using \"draw\"\n"o<( ush=;#if 0$=!!qDe neUUaclass5forinformationontherunstate.o=if(:RunffState-::4nonffstop[P)getchar&%();#endifif(arr}'ow'htrue)outffstr}'eam7"drawarrow "Et p}'ointffiter7y++C@%;else+outffstr}'eam]"draw "*ԃ p}'ointffiter7y++C@%;hOutputUUP9ath &864iif(dr}'awffcolor1Q6=Colors$::+.4defaultffc}'olorb)outffstr}'eam7" withcolor "JTqdr}'awffcolor6R;if(dashe}'d 6="" z)outffstr}'eam7" dashed ":zdashe}'d;if(p}'en˷6="" z)outffstr}'eam7" withpen "?wp}'en;outffstr}'eamF";\n" T ush; g if(DEBUGY)c}'out O"Exiting Path::outpukt(Focus)"TA"\n" ush; -return*f;qǷg n썫234OUTPUT=\03DLDFPRÎGx864n@P864. Whenv llffc}'olor,qandvdr}'awffcolor5Uarevdi erent,~ 8BeginTLogJʄ`> +return*f;qǷg n썫236OUTPUT=\03DLDFPRÎGx864n@P864. Whenv llffc}'olor,qandvdr}'awffcolor5Uarevdi erent,~`hOutputUUP9ath &864i +[LDFT2002.12.20.]XIhadtoaddpreproGcessorcodeforconditionalcompilation,#xbecause\ xe}'df"isunknowntontheGNUnC++֫Compiler.However,uitndoGesn'tneeditinthiscase,sincetheproblemonlyoGccurredwhenusingUUtheDECC++ucompileronaDECAlphacomputerunderCompaqT*ru64.Ȅ`GhOutputUUP9ath &864i if(DEBUGY)c}'out O"Entering Output |Pakth|.\n"G ush; for臫(unsigned07shortNc}'ounterr =2;p}'ointffiter16=p}'oints뭱:endಫ();)foutffstr}'eamF" "ԏc}'onnectorffstringMT" " p}'ointffiter7y++C@%;=ThisUUbreaksthelineandindentsaftertwopGoints=if(c}'ounter$X2 ^8p}'ointffiter/16=p}'oints뭱:endಫ())foutffstr}'eamP"\n ""n;c}'ounterB[=1;gelse+f++*G#c}'ounterL1c;gif(c}'onnectorffiterA6=c}'onnectors1F:endಫ())c}'onnectorffstringO=c}'onnectorffiterF++RO; g if(isffcycle!O())outffstr}'eam7" "ԏc}'onnectorffstringMT" cycle"-Mh; -if(DEBUGY)c}'out O"Exiting Output |Patkh|.\n"J ush; ThisXco 8BeginTLogJʄ`> +if(DEBUGY)c}'out O"Exiting Output |Patkh|.\n"J ush; ThisXco`hDeclareUUP9ath<functions@656i+ +[LDFT2003.08.20.]XNowprintingp}'oints t:size\()andc}'onnectors2 :size()tostdout.MIfthelatteris0,amessageisUUprinted,that"--"1willbGeusedastheconnector.Ȅ`GhDeclareUUP9ath<functions@656i+ v9oid#show:Oϫ(string!Dtext7V«="";c9harc}'oords;&='w'Y;const AbQool;doffp}'erspd=trueJ;const AbQooldoffapplyGd=true$;F -oQcus" )' *f0'=0;const *unsignedPbshortnWpr}'ojY=Projections=::Di.PERSP_/;const *realfactor;=1)UUconst*; n썷x8673DLDFPRÎGHFSHOW235n@P867.hDe neUUP9ath<functions@657i+ +oQcus" )' *f0'=0;const *unsignedPbshortnWpr}'ojY=Projections=::Di.PERSP_/;const *realfactor;=1)UUconst*; yn썷x8673DLDFPRÎGHFSHOW237n@P867.hDe neUUP9ath<functions@657i+ v9oid#P9ath=!W::show(string!ctext3/;c9harc}'oords7;const g`bQool:doffp}'ersp`D;const g`bQool:doffapply`;F oQcus27f<;constJunsignedP Xshortmpr}'ojʾ;constJreal6xfactorQV)UUconst fif(text"" z)text="Path:"( k;c}'out* Qtextendlګ;#if 0c}'out* Q"fill_draw_value == k"tTY llffdr}'awffvalueD:Aendl ush;#endifc}'oords2Ц=tolower#(c}'oords );if(c}'oordsФ'w' w);=DoUUnothing.o=else*.6if5.(c}'oordsФ'p' w)c}'out O"Projective coordinaktes.\n"G ush;else*.6if5.(c}'oordsФ'u' w)c}'out O"User coordinates.\nk"tTY ush;else*.6if5.(c}'oordsФ'v' w)c}'out O"View coordinates.\nk"tTY ush;else+fc}'err45"WARNING! In |show()l|: ""Invalid character flor coords argument.\n"ڷ2"Showing world coordinates.\n"+ ush;c}'oords<Ч='w' w;gv\ralarra9y=ZChreal]ٷiUUv;v4:r}'esizei(4;0);=LDFUU2002.12.13.qAddedthisline.NeededforpGortingtoIntelLinux(i686).o=string5%Oc}'onnectorffstring|˫;v9ector3Jhstringi::Bc}'onstffiteratorCc}'onnectorsffiterW=c}'onnectors1F:b}'egin();c}'out* Q"points.size() == "i_p}'oints뭱:size\()endl ush;c}'out* Q"connectors.size() =k= "~Sc}'onnectors1F:size\()endl ush;if(c}'onnectors/4.:size\()0)fc}'out4 R"Using \"--\" as conknector.\n"> ush;c}'onnectorffstringh="--"Mt;gfin9t/lo}'opffctrU4«=0;for0EY(v9ectorHhP9ointLm$Lni::Bc}'onstffiteratorCp}'ointsffiteru-n=ap}'oints]:b}'egin();\p}'ointsffiter7@6=ap}'oints:endಫ();<++HG&p}'ointsffitervѫ)f(if3(p}'ointsffiter1÷6=p}'oints뭱:b}'egin())f2c}'outH T" "ԏc}'onnectorffstringMT" " w;(g(if3(c}'onnectorsffiterE\6=c}'onnectors1F:endಫ())c}'onnectorffstringO=c}'onnectorsffiterJ]++Vf};(if3(lo}'opffctr%ȷ2)=BreakUUeachlineafter2P9oints#x٫.o=(f2c}'outH Tendlګ;2lo}'opffctrWͫ=0;(g(++4G$lo}'opffctrWԫ;(v/٫=( -p}'ointsffiter8H):getffallffc}'oords:(c}'oords ;doffp}'ersp'S;doffapply'};f;pr}'ojk;factor);(c}'out> S"("ԏvի[0]", "v[1]", "v[2]")" w;ggif(cycleffswitch5)fif)(c}'onnectorsffiterE\6=c}'onnectors1F:endಫ())c}'onnectorffstringO=c}'onnectorsffiterJ]++Vf};c}'out4 R" "ԏc}'onnectorffstringMT" cycle;"5T}endlګ; An썫236SHOÎWHF3DLDFPRGx867n@Pg else+c}'outA0";\n"q; +p}'ointsffiter8H):getffallffc}'oords:(c}'oords ;doffp}'ersp'S;doffapply'};f;pr}'ojk;factor);(c}'out> S"("ԏvի[0]", "v[1]", "v[2]")" w;ggif(cycleffswitch5)fif)(c}'onnectorsffiterE\6=c}'onnectors1F:endಫ())c}'onnectorffstringO=c}'onnectorsffiterJ]++Vf};c}'out4 R" "ԏc}'onnectorffstringMT" cycle;"5T}endlګ; un썫238SHOÎWHF3DLDFPRGx867n@Pg else+c}'outA0";\n"q; g868. Sho9wTColors.hDeclareUUP9ath<functions@656i+ v9oid"showffc}'olorsV!(bQoolfstop// =falsev\);869.hDe neUUP9ath<functions@657i+ v9oid"P9athIfitdoGes,H isffplanar+n()returnstrue R,H otherwise,itDreturnsfalse.IfDthisisUUlinear,isffplanar+{()issuesawarningandreturnstrue.c9Ȅ`> 8BeginTLogJʄ`> +g872. IsTplanar.[LDFT2002.11.05.]Z6isffplanarū()UUusesthereturnvqalueofgetffnormal3ɫ()todeterminewhetherDDthisu+liesDinaplaneornot.l>IfitdoGes,H isffplanar+n()returnstrue R,H otherwise,itDreturnsfalse.IfDthisisUUlinear,isffplanar+{()issuesawarningandreturnstrue.N99Ȅ`+U 8Log)j`+U [LDFT2002.11.03.]Y;RewroteUUthisfunction.qItshouldnowworkforallP9aths o. [LDFT2002.11.05.]Y;RewroteUUthisfunctionagain.qItnowusesthenewversionofgetffnormal3ɫ(). [LDFT2002.11.06.]YCvAddedoptionalconst!mbQool;verb}'ose_andstring$text9targumentsforwritingamessagetoUUthestandardoutput. -[LDFT2003.08.14.]Y;MadeUUverb}'ose'<non-constM.qSettingUUittotrueoBifVERBOSE_GLOBALPistrue.AddedUUVERBOSE_GLOBALPtoUUpspglb.webtoGday*.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -virtual/bQoolI/:isffplanarqUɫ(bQoolfverb}'ose<۫=falsev\;string"text6٫="" z)UUconst*; n썷x8733DLDFPRÎG3TISXPLANAR237n@P873.hDe neUUP9ath<functions@657i+ +[LDFT2003.08.14.]Y;MadeUUverb}'ose'<non-constM.qSettingUUittotrueoBifVERBOSE_GLOBALPistrue.AddedUUVERBOSE_GLOBALPtoUUpspglb.webtoGday*.Ȅ`GhDeclareUUP9ath<functions@656i+ +virtual/bQoolI/:isffplanarqUɫ(bQoolfverb}'ose<۫=falsev\;string"text6٫="" z)UUconst*; <n썷x8733DLDFPRÎG3TISXPLANAR239n@P873.hDe neUUP9ath<functions@657i+ bQool#gP9ath=2ϫ::isffplanar)&(bQoolfverb}'ose:2ñ;string"text4')UUconst fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(VERBOSE_GLOBALJ>)verb}'ose(Xu=true;if(DEBUG9_8verb}'ose"=)c}'out O"Entering Path::is_pklanar().\n" #;P9oint2p7(getffnormal0t());if(pINVALID_POINTGY)fif)(DEBUGY)c}'out O"Exiting Path::is_plkanar(). Returning faƠlse.\n\n"T ush;if)(verb}'ose ])f(if3(text"" z)text="Path""n;(c}'out> Stext" is non-planar.\n\nk"qA;greturnAfalseV;gelse*.6if5.(porigin9)fc}'err3|"WARNING! In Path::iks_planar():\n"2"Path is linear. Rekturning true.\n\n"͔&2 ushG;if)(verb}'ose ])f(if3(text"" z)text="Path""n;(c}'out> Stext" is planar.\n\n"\M;greturnAtrueTU;gelse+fif)(verb}'ose ])f(if3(text"" z)text="Path""n;(c}'out> Stext" is planar.\n\n"\M;gif)(DEBUGY)c}'out O"Exiting Path::is_plkanar(). Returning trƠue.\n\n" ush;returnAtrueTU;g -g874. Islinear.[LDFT2003.04.09.]Zisffline}'ar()y3 rstchecksy3whetherlineffswitch6'istrue=˫.aIfitis,+itreturnstrueright<)away*.icOtherwise,A2itusesthereturnvqalueofgetffnormal3Ɲ()todeterminewhether<*thisd islinearornot.qIfUUitis,isffline}'ar(jҫ()returnstrue,otherwise,itreturnsfalse.c9Ȅ`> 8BeginTLogJʄ`> +g874. Islinear.[LDFT2003.04.09.]Zisffline}'ar()y3 rstchecksy3whetherlineffswitch6'istrue=˫.aIfitis,+itreturnstrueright<)away*.icOtherwise,A2itusesthereturnvqalueofgetffnormal3Ɲ()todeterminewhether<*thisd islinearornot.qIfUUitis,isffline}'ar(jҫ()returnstrue,otherwise,itreturnsfalse.N99Ȅ`+U 8Log)j`+U [LDFT2002.11.05.]Y;AddedUUthisfunction. [LDFT2002.11.06.]YCvAddedoptionalconst!mbQool;verb}'ose_andstring$text9targumentsforwritingamessagetoUUthestandardoutput. [LDFT2003.04.09.]YNowKcheckingwhetherlineffswitch8:istrue\|bGeforecallinggetffnormal4f().U!!IfaP9athwhoselineffswitch9+trueMgismoGdi edsuchthatit'snolongerlinear,$theprogrammermustensurethatlineffswitch2isUUsettofalse! -[LDFT2003.08.14.]Y;MadeUUverb}'ose'<non-constM.qSettingUUittotrueoBifVERBOSE_GLOBALPistrue.AddedUUVERBOSE_GLOBALPtoUUpspglb.webtoGday*.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -bQool#gisffline}'arH(bQoolfverb}'ose<۫=falsev\;string"text6٫="" z)UUconst*; n썫238ISXLINEAR73DLDFPRÎGx875n@P875.hDe neUUP9ath<functions@657i+ +[LDFT2003.08.14.]Y;MadeUUverb}'ose'<non-constM.qSettingUUittotrueoBifVERBOSE_GLOBALPistrue.AddedUUVERBOSE_GLOBALPtoUUpspglb.webtoGday*.Ȅ`GhDeclareUUP9ath<functions@656i+ +bQool#gisffline}'arH(bQoolfverb}'ose<۫=falsev\;string"text6٫="" z)UUconst*; n썫240ISXLINEAR73DLDFPRÎGx875n@P875.hDe neUUP9ath<functions@657i+ bQool#gP9ath=2ϫ::isffline}'ar&(bQoolfverb}'ose:2ñ;string"text4')UUconst fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(VERBOSE_GLOBALJ>)verb}'ose(Xu=true;if(DEBUG9_8verb}'ose"=)c}'out O"Entering Path::is_lkinear().\n" #;if(lineffswitch/)=LDFUU2003.04.09.qAddedthisconditional.o=returnAtrueTU;P9oint2p7(getffnormal0t());if(porigin9)fif)(verb}'ose ])f(if3(text"" z)text="Path""n;(c}'out> Stext" is linear.\n\n"\M;gif)(DEBUGY)c}'out O"Exiting Path::is_liknear(). "TA"Returning true.\n\nk"tTY ush;returnAtrueTU;gelse+fif)(verb}'ose ])f(if3(text"" z)text="Path""n;(c}'out> Stext" is non-linear.\n\nk"qA;gif)(DEBUGY)c}'out O"Exiting Path::is_liknear(). "TA"Returning false.\n\kn"yV ush;returnAfalseV;g g876. Get$lineswitc9h.[LDFT2002.11.03.]ZThis9functionreturnstrue -forP9aths$OthatarecreatedorsetusingUUtwoP9oints&.only*,andnoconnectors,asarguments.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.03.]XIRenamedthisfunctiongetfflineffswitchBm()fromisfflineS().2\AbGouttoaddisffline}'ar'(),!whichwillUUtestwhetheralltheP9oints&.arecolinearornot.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +forP9aths$OthatarecreatedorsetusingUUtwoP9oints&.only*,andnoconnectors,asarguments.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.03.]XIRenamedthisfunctiongetfflineffswitchBm()fromisfflineS().2\AbGouttoaddisffline}'ar'(),!whichwillUUtestwhetheralltheP9oints&.arecolinearornot.Ȅ`GhDeclareUUP9ath<functions@656i+ inline)IbQoolC+getfflineffswitch,()UUconst freturn7lineffswitchg}; g877. T estTforcycles.hDeclareUUP9ath<functions@656i+ inline)IbQoolC+isffcycledzǫ()UUconst freturn7cycleffswitchlV; -g878. SizeT(n9umbQerofpoin9ts).hDeclareUUP9ath<functions@656i+ ,n썷x8783DLDFPRÎG}PSIZEX(NUMBEROFPOINTS)239n@P +g878. SizeT(n9umbQerofpoin9ts).hDeclareUUP9ath<functions@656i+ +n썷x8783DLDFPRÎG}PSIZEX(NUMBEROFPOINTS)241n@P inline)Iin9t;/@sizeLJ() freturn7p}'ointsS Q:size\(); -g879. SlopQe.[LDFT2002.11.05.]\Oslop}'er()canonlybGeusedforlinearP9aths"7. ȃItreturnsarealvqaluerepresentingtheslopGeofthetr}'aceClofalineonthema8jorplanerepresentedbythec9hararguments,orINVALID_REAL?D,B*if=`theP9ath $isnon-linear.iF*orexample,ifȍGg!N8p0|sp1isaP9ath $p'QandȍM!N8q0|sq1aHisthetraceofp onthex-y.plane,$thenp.:slop}'e7˫('x'F_;'y')returnsareal05msuchthatm=(bpy[٫)=x.wherebisthey-interceptofȍ!N8q0|sq1;ݫandUUxandy.arethexandy-coGordinatesofpointsonȍe !N8q0|sq1;ݫ.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.05.]X؃Changed%thisfunction,/(sothatisffline}'ar(;()isusedinsteadofgetfflineffswitchB()(formerly\isffline?()").qNow,U)itUcanbGeusedforalllinearP9aths o,notjustonescreatedusingtheconstructorforlines.Also,UUitwascommented-out.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ +g879. SlopQe.[LDFT2002.11.05.]\Oslop}'er()canonlybGeusedforlinearP9aths"7. ȃItreturnsarealvqaluerepresentingtheslopGeofthetr}'aceClofalineonthema8jorplanerepresentedbythec9hararguments,orINVALID_REAL?D,B*if=`theP9ath $isnon-linear.iF*orexample,ifȍGg!N8p0|sp1isaP9ath $p'QandȍM!N8q0|sq1aHisthetraceofp onthex-y.plane,$thenp.:slop}'e7˫('x'F_;'y')returnsareal05msuchthatm=(bpy[٫)=x.wherebisthey-interceptofȍ!N8q0|sq1;ݫandUUxandy.arethexandy-coGordinatesofpointsonȍe !N8q0|sq1;ݫ.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.05.]X؃Changed%thisfunction,/(sothatisffline}'ar(;()isusedinsteadofgetfflineffswitchB()(formerly\isffline?()").qNow,U)itUcanbGeusedforalllinearP9aths o,notjustonescreatedusingtheconstructorforlines.Also,UUitwascommented-out.Ȅ`GhDeclareUUP9ath<functions@656i+ real /slop}'e6(c9harjIa!z='x' w;c9harb"&='y');880.hDe neUUP9ath<functions@657i+ real /P9ath:D::slop}'e7ϫ(c9harjIay;c9harb_) fif(:isffline}'ar%}())fc}'err7_J"ERROR! In Path::sloo_pe(). Path is not li^near!\n" Dl2"Returning INVALID_REAL\n"7 ush;returnAINVALID_REALm;greturn7p}'ointsS Q[1]~slop}'e7̫(p}'oints $[0];a;bR); g881. Subpath.[LDFT2002.11.05.]Z6subp}'ath|()UUreturnsanewP9ath<usingp}'ointsy[startM]throughp}'oints$[end1]fromthis ._HIftheoptionalbQoolargumentcycleisused,(thenthenewP9athwillbGeacycle,whether'(thisis'ornot.TbOneoptionalconnectorargumentcanbGeused.Ifitis,itwillbGetheonlyconnector.Otherwise,UUtheconnectorsfromUVthisaareused. -[LDFT2002.11.05.]Y;startqݫmustUUbGeUUend6,UUevenifUVthisaisacycle.c9Ȅ`> 8BeginTLogJʄ`> +[LDFT2002.11.05.]Y;startqݫmustUUbGeUUend6,UUevenifUVthisaisacycle.N99Ȅ`+U 8Log)j`+U [LDFT2002.11.05.]YRewrote !thisfunction.,Madesubp}'ath%()itselfanditsargumentsconstn.AddederrorhandlingUUcoGde. [LDFT2003.07.16.]Y;PleaseUUnotethatstart/andend\cannotbGemadeconst*. [LDFT2003.08.27.]YEChangedin9ttiytosizeus4wt#"i*'7inthefor{loGopsthatcomparei ->tostartandendsW.)ThewayitUUwasbGeforecausedGCCwiththe\-Wall"optiontoissueawarning.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -P9ath%subp}'athG`O(sizeus4wtQstart4);sizeus4wt end16;const}bQool9ucycleRc=falsev\;const}string@c}'onnectoro="" z)Tconst)ի; Dn썫240SUBPJATH:k3DLDFPRÎGx882n@P882.hDe neUUP9ath<functions@657i+ +>tostartandendsW.)ThewayitUUwasbGeforecausedGCCwiththe\-Wall"optiontoissueawarning.Ȅ`GhDeclareUUP9ath<functions@656i+ +P9ath%subp}'athG`O(sizeus4wtQstart4);sizeus4wt end16;const}bQool9ucycleRc=falsev\;const}string@c}'onnectoro="" z)Tconst)ի; n썫242SUBPJATH:k3DLDFPRÎGx882n@P882.hDe neUUP9ath<functions@657i+ P9ath%6P9ath?`::subp}'ath"zf(sizeus4wt;%start4r;sizeus4wt end1;constbQool9GcycleOݱ;conststring@ˏc}'onnectorl*i)=constf=bQool2DEBUGOv=falsev\;=trueĒ=P9ath9漱p>;883. [LDFT2002.11.05.][Theree!isno\INVALID_PATH?D",soIdreturnanemptyone,ifstartvendlǫ.+SinceopQerator+3]ӫ()=currentlydoGesn'texist,wthere'snotmuchpGointinde ningINVALID_PATHC,wsincethere'snowayUUtocompareanotherP9ath<toit.hDe neUUP9ath<functions@657i+ if(startLeendʫ)fc}'err*'cq"ERROR! In Path::sublqpath():\n"鄷q"The \"start\" argumlqent is < the \"end\"qC\( argument.\n"o]"Returning empty Patkh.\n\n"G ush;return7漱p<; g884. [LDFT2002.11.05.]Z6MoreUUerrorhandling.qInthesecases,it'spGossibletorecover.hDe neUUP9ath<functions@657i+ @@ -3199,7 +3237,7 @@ if(endʱ>p}'oints뭱:size\())fc}'err);J"ERROR! In Path::subl;path():\n"|;J"\"end\" argument isl; > points.size().\n"("Will try to recover by setting end = points.size().\n\n"Vٷ ush;end'̫=p}'oints뭱:size\(); g885. [LDFT2002.11.05.]YIfx4ac}'onnector0OBargumentisspGeci ed,nallwehavetodoisputtheappropriateP9ointsfromUUp}'oints!?ontoUUp]U:p}'oints$,UUputc}'onnector2 ontop]U:c}'onnectors/4.,andreturnp.hDe neUUP9ath<functions@657i+ if(c}'onnector.%6="" z)ffor%舫(sizeus4wtRi%=startLe;i 9 <endʫ;i++)fif)(i9 p}'oints뭱:size\())f(c}'err>Y"ERROR! In Path::sublpath():\n"M̷"end argument > poinlts.size().\n" ÷<"Breaking out of loop.\n\n" 5 ush;(breakDh;gp#:p}'oints$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(p}'oints[iq]));gp:c}'onnectors/4.:pushffb}'ack+XR(c}'onnector+^ګ);p:setffcycle&*(cycley5);return7漱p<; -g n썷x8863DLDFPRÎG:kSUBPJATH241n@P886. [LDFT2002.11.05.]ZNTIfsnoc}'onnector1argumentisspGeci ed,'thenwehavetogettheappropriateconnec- tors Pfrom Qthis.YpThisisslightlytricky*,bGecausec}'onnectors5LΫdoesn'thave Ptocontainac}'onnector1wzforeachpairoffjP9oints&XthatfjisjoinedinaP9athΫ.So,j rstwemust lluppnj:c}'onnectors2sothatwecantellwhichonestouse. +g n썷x8863DLDFPRÎG:kSUBPJATH243n@P886. [LDFT2002.11.05.]ZNTIfsnoc}'onnector1argumentisspGeci ed,'thenwehavetogettheappropriateconnec- tors Pfrom Qthis.YpThisisslightlytricky*,bGecausec}'onnectors5LΫdoesn'thave Ptocontainac}'onnector1wzforeachpairoffjP9oints&XthatfjisjoinedinaP9athΫ.So,j rstwemust lluppnj:c}'onnectors2sothatwecantellwhichonestouse. [LDFT2002.11.05.]YEActually*,-withtheconstructorsthatexist,therewilleitherbGeonlyoneconnectororaconnector0$foreachpairofP9oints&̫thatneedtobGejoined.eaHowever,7itwouldbGeeasytowritefunctionsthataddUUorremoveUUconnectors,soit'sbGesttohaveUUthisroutine.hDe neUUP9ath<functions@657i+ p=thisϫ; unsigned:7shortXa`=p}'oints뭱:size\(); @@ -3213,22 +3251,29 @@ for臫(sizeus4wtRi%=startLe;i 9 <endʫ;i++)fqҬ:p}'oints$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(p:p}'oints[iq]));if(i9 <p:c}'onnectors/4.:size\())q Ҫ:c}'onnectors:pushffb}'ack+XR(p:c}'onnectors[iq]); g qҫ:setffcycle&*(cycley5); -return-滱q2e;qǷg887. Get;pQoin9t.[LDFT2002.11.05.]\hNotekthatapplyfftr}'ansformKf()isnotcalledonthePoint&qVthat'sreturned.qIfUUitwas,getffp}'oint*()couldn'tbGeconst*.c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.05.]Y;MadeUUnon-inline4.qChangedreturnvqaluetoconst!P9oint@o&H6.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -const(*P9ointG@&N^getffp}'ointvC(const*unsignedNashortl,Saqu)UUconst*; n썫242GETXPOINT1b03DLDFPRÎGx888n@P888.hDe neUUP9ath<functions@657i+ -const(*P9ointG@&N^P9athhrƫ::getffp}'oint(bL(const*unsignedNashortl,Saqu)UUconst -fif(aH<p}'oints뭱:size\())return(溷-p}'ointsI P[aI0];else+fc}'err4w0"ERROR! In Path::getlK_point():\n" "Argument is >= sizelK of Path.\n"2"Returning INVALID_POINT.\n\n"+ ush;returnAINVALID_POINT;g -g889. GetTlastpQoin9t.U9Ȅ`> 8BeginTLogJʄ`> +return-滱q2e;qǷg887. GetTpQoin9t.888. non-constTv9ersion.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.05.]Y;MadeUUnon-inline4.qChangedreturnvqaluetoconst!P9oint@o&H6. +[LDFT2003.11.28.]Y{BUGpFIX:Changed, sothatapplyfftr}'ansformJt()iscalledontheP9ointݫ."Thisentailedmakingthisfunctionnon-constM.Addedconst"`ӫversionbGelow.ThismayactuallybGeabug,ratherthanabugs x,mdepGendingonhowthisfunctionisusedelsewhere.U|However,mI]reallythinkapplyfftr}'ansformI R()shouldbGeUUcalled.Ȅ`GhDeclareUUP9ath<functions@656i+ +const(*P9ointG@&N^getffp}'ointvC(const*unsignedNashortl,Saqu); +\n썫244NON-CONSTXVERSIONA3DLDFPRÎGx889n@P889.hDe neUUP9ath<functions@657i+ +const(*P9ointG@&N^P9athhrƫ::getffp}'oint(bL(const*unsignedNashortl,Saqu) +fif(aH<p}'oints뭱:size\())f(p}'oints$[aI0])~applyfftr}'ansformJ();returnA潷Fp}'ointsb S[aI0];gelse+fc}'err4w0"ERROR! In Path::getlK_point():\n" "Argument is >= sizelK of Path.\n"2"Returning INVALID_POINT.\n\n"+ ush;returnAINVALID_POINT;g +g890. constTv9ersion.9Ȅ`+U 8Log)j`+U +[LDFT2003.11.28.]Y;AddedUUthisversion.Ȅ`GhDeclareUUP9ath<functions@656i+ +P9oint(getffp}'ointPQ(const*unsignedNashortl,Saqu)UUconst*;891.hDe neUUP9ath<functions@657i+ +P9oint(P9athB::getffp}'oint(bL(const*unsignedNashortl,Saqu)UUconst +fif(aH<p}'oints뭱:size\())fP9oint<pD=(p}'oints$[aI0]);p#:applyfftr}'ansformF߫();returnA潱pF;gelse+fc}'err4w0"ERROR! In Path::getlK_point():\n" "Argument is >= sizelK of Path.\n"2"Returning INVALID_POINT.\n\n"+ ush;returnAINVALID_POINT;g +g892. GetTlastpQoin9t.9Ȅ`+U 8Log)j`+U [LDFT2002.05.10.]Y;AddedUUthisfunction. -[LDFT2002.11.05.]Y;MadeUUnon-inline4.qChangedreturnvqaluetoconst!P9oint@o&H6.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -const(*P9ointG@&N^getfflastffp}'oint()UUconst*;890.hDe neUUP9ath<functions@657i+ +[LDFT2002.11.05.]Y;MadeUUnon-inline4.qChangedreturnvqaluetoconst!P9oint@o&H6.Ȅ`GhDeclareUUP9ath<functions@656i+ +const(*P9ointG@&N^getfflastffp}'oint()UUconst*; ܠn썷x8933DLDFPRÎGGETXLASTPOINT245n@P893.hDe neUUP9ath<functions@657i+ const(*P9ointG@&N^P9athhrƫ::getfflastffp}'oint;$B()UUconst fif(p}'oints$:size\()6=0)return(溷-p}'ointsI P[p}'oints:size\()818];else+fc}'err54"ERROR! In Path::getmO_last_point():\n"̗"Path is empty.\n"hH2"Returning INVALID_POINT.\n\n"+ ush;returnAINVALID_POINT;g -g891. GetTsize.hDeclareUUP9ath<functions@656i+ +g894. GetTsize.hDeclareUUP9ath<functions@656i+ virtual/inlineOsizeus4wtnjgetffsizeݫ()UUconst freturn7p}'ointsS Q:size\(); -g892. GetTnormal. n썷x8933DLDFPRÎG!1P -ATHXVERSION243n@P893. P9athversion.[LDFT2002.11.05.]YgetffnormalPO()returnsaunitvectorrepresentingthenormaltothe planef +g895. GetTnormal. !n썫246P +ATHXVERSION!13DLDFPRÎGx896n@P896. P9athversion.[LDFT2002.11.05.]YgetffnormalPO()returnsaunitvectorrepresentingthenormaltothe planef oftheP9ath]x$]ythis5I/,j8iff this˫isplanar.IftheP9oints&onf thisarecolinearandtherearenoconnectorsthatpcouldmaketheP9athDnon-linear,6thenorigin"'((0;0;0))pisreturned.;IftheP9athisneitherplanarnorlinear,UUgetffnormal3ɫ()UUreturnsINVALID_POINTH. [LDFT2002.11.05.] getffnormal:u()> rstchecks>whetheraP9ath containsnoP9oints(ZoronlyoneP9oint.ÂIfso,Lgetffnormal4,() @@ -3247,17 +3292,17 @@ allbx,thentheP9athw`isplanar,andgetffnormal3}r()returnsb0oq(seeexplanationofsignbGelow).QOtherwise, theUUP9ath<isUUnon-planar,andgetffnormal3ɫ()returnsINVALID_POINTH. [LDFT2003.06.04.]XPReversingthesignofb0&ensuresthatthenormalwillpGointinthedirectionofthepGositivey-axis,ςwhen aplane gureiscreatedinthex-zplane,usingoneoftheconstructorstakingaP9oint bargumentforthecenter,vreal argumentsforthedimensions,vandthreerealUargumentsfortherotationabGoutthema8joraxes.iIfnon-zeroargumentsareusedforrotation,' -thenormalwillbGerotatedaccordingly*.Thisdirectionconsidered%jtobGe\outside".aIn3DLDF,theconstructorsgenerallygenerateP9oints&nXmovingaboutthe gurein[9thecounter-cloGckwise[9direction(asseenfromaP9oint"Pwithapositivey-coordinate).rHowever,\accordingto$HuwJones,.KComputergGr}'aphicsThroughKeyMathematics,.Kp.$197,\outside"isconsideredtobGethesideoftaplane,;wheretheP9oints%laremeanttobGetraversedinthecloGckwisedirection.E'!!W*atchtoutforproblemsthatUUmayarisefromthisdiscrepancy!U9Ȅ`> 8BeginTLogJʄ`> +thenormalwillbGerotatedaccordingly*.Thisdirectionconsidered%jtobGe\outside".aIn3DLDF,theconstructorsgenerallygenerateP9oints&nXmovingaboutthe gurein[9thecounter-cloGckwise[9direction(asseenfromaP9oint"Pwithapositivey-coordinate).rHowever,\accordingto$HuwJones,.KComputergGr}'aphicsThroughKeyMathematics,.Kp.$197,\outside"isconsideredtobGethesideoftaplane,;wheretheP9oints%laremeanttobGetraversedinthecloGckwisedirection.E'!!W*atchtoutforproblemsthatUUmayarisefromthisdiscrepancy!9Ȅ`+U 8Log)j`+U [LDFT2002.11.05.]Y;RewroteUUthisfunction. -[LDFT2003.06.04.]Y75ChangedOsignofthenormal, whenit'sreturned,inthecaseswhereapropGernormalisfoundUU(notINVALID_POINTKpororiginKv).qSeeexplanationabGove.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -virtual/P9ointN}qgetffnormal()UUconst*;894.hDe neUUP9ath<functions@657i+ -P9oint(P9athB::getffnormal1x()UUconst*fUUbQoolDEBUG:,=falsev\;=trueĒ=if)(DEBUGY)c}'out O"Entering Path::get_knormal().\n"8 ush;if)(p}'oints$:size\()0)f(c}'errBMݣ"WARNING! In Path::gpget_normal():\n"E<"Path is empty or contains only one Poin t. "&M"Returning INVALID_PkOINT.\n\n">< ushQ;(returnKINVALID_POINT;g (}n썫244P -ATHXVERSION!13DLDFPRÎGx895n@P895. [LDFT2002.11.05.]ZWConnectorskvotherthantheonesintheconditionalbGelowcouldcausetheP9athhPto bGeUUnon-linearornon-planar,eveniftheP9oints&.lieonalineorinaplane.hDe neUUP9ath<functions@657i+ +[LDFT2003.06.04.]Y75ChangedOsignofthenormal, whenit'sreturned,inthecaseswhereapropGernormalisfoundUU(notINVALID_POINTKpororiginKv).qSeeexplanationabGove.Ȅ`GhDeclareUUP9ath<functions@656i+ +virtual/P9ointN}qgetffnormal()UUconst*;897.hDe neUUP9ath<functions@657i+ +P9oint(P9athB::getffnormal1x()UUconst*fUUbQoolDEBUG:,=falsev\;=trueĒ=if)(DEBUGY)c}'out O"Entering Path::get_knormal().\n"8 ush;if)(p}'oints$:size\()0)f(c}'errBMݣ"WARNING! In Path::gpget_normal():\n"E<"Path is empty or contains only one Poin t. "&M"Returning INVALID_PkOINT.\n\n">< ushQ;(returnKINVALID_POINT;g &n썷x8983DLDFPRÎG!1P +ATHXVERSION247n@P898. [LDFT2002.11.05.]ZWConnectorskvotherthantheonesintheconditionalbGelowcouldcausetheP9athhPto bGeUUnon-linearornon-planar,eveniftheP9oints&.lieonalineorinaplane.hDe neUUP9ath<functions@657i+ for臫(v9ectorHhstringi::Bc}'onstffiteratorCiterW=c}'onnectors1F:b}'egin();iter6=c}'onnectors:endಫ();++Giter")fif(:(iter".."T_88iter"--"_88iter"..."Q_88iter"---"q))fc}'err3|"WARNING! In Path::gket_normal():\n"/"Connector may make kPath non-linear or nƠ\2on-planar: "tMaiterY/endl"Returning INVALID_PkOINT.\n\n"> ush;returnAINVALID_POINT;g -g896. [LDFT2002.11.05.]Z6TwoUUpGointsdeterminealine.hDe neUUP9ath<functions@657i+ +g899. [LDFT2002.11.05.]Z6TwoUUpGointsdeterminealine.hDe neUUP9ath<functions@657i+ if(p}'oints$:size\()2)fc}'err/`"WARNING! In Path::gq`et_normal():\n"շ("Path has 2 Points. Returning origin.\n\n"  ush;return7originRݫ; -g >n썷x8973DLDFPRÎG!1P -ATHXVERSION245n@P897.hDe neUUP9ath<functions@657i+ +g ;n썫248P +ATHXVERSION!13DLDFPRÎGx900n@P900.hDe neUUP9ath<functions@657i+ v9ector)IhP9oint#i::Bc}'onstffiteratorCiterW=p}'oints뭱:b}'egin(); P9oint(p05^( iterK++' ); @@ -3282,25 +3327,25 @@ 6b0"))fif)(DEBUGY)(c}'out> S"Exiting Path::get_nkormal(). ">"Returning INVALID_PkOINT.\n\n" ush;returnAINVALID_POINT;g g if(DEBUGY)c}'out O"Exiting Path::get_nkormal(). ">"Returning normal.\nk\n"~S ush; -return-滷5b0AA;UUg EBn썫246POINTXVERSIONP3DLDFPRÎGx898n@P898. P9oint version.Point(H::getffnormal1x()isdeclaredpoints.web,ibutitmustbGede nedhere,bGecause itUUcallsP9ath潫::getffnormal1x().q[LDFT2003.07.11.]c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.11.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDe neUUP9oint"Dfunctions@285i+ +return-滷5b0AA;UUg Bn썷x9013DLDFPRÎGPPOINTXVERSION249n@P901. P9oint version.Point(H::getffnormal1x()isdeclaredpoints.web,ibutitmustbGede nedhere,bGecause itUUcallsP9ath潫::getffnormal1x().q[LDFT2003.07.11.]N99Ȅ`+U 8Log)j`+U +[LDFT2003.07.11.]Y;AddedUUthisfunction.Ȅ`GhDe neUUP9oint"Dfunctions@285i+ P9oint(P9ointE::getffnormal1x(const*P9oint=?&D]pI];constJP9oint>&FqK^)UUconst fP9ath/滱r4ϫ;r:setffc}'onnectors>("--"\);r.+=-悷2thisC9;r.+=-悱p2;r.+=-悱q2,;if(:r:isffplanar(&())fc}'err8fA"ERROR! In Point::geqAt_normal():\n"É|2"The Points do not determine a plane.\n"M "Returning INVALID_PkOINT.\n\n"> ush;returnAINVALID_POINT;gelse+returnOrT:getffnormal0t(); -g899. GetTplane.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.05.]Y;RewroteUUthisfunctiontocorrespGondtothenewde nitionofgetffnormal3ɫ().Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -virtual/PlaneOČgetffplanex;t()UUconst*; Rzn썷x9003DLDFPRÎG/4GETXPLANE247n@P900.hDe neUUP9ath<functions@657i+ +g902. GetTplane.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.05.]Y;RewroteUUthisfunctiontocorrespGondtothenewde nitionofgetffnormal3ɫ().Ȅ`GhDeclareUUP9ath<functions@656i+ +virtual/PlaneOČgetffplanex;t()UUconst*; OҠn썫250GETXPLANE/43DLDFPRÎGx903n@P903.hDe neUUP9ath<functions@657i+ Plane*6P9athC!::getffplane)v()UUconst fP9oint2normalSFW(getffnormal0t());if(normal#зINVALID_POINTI9_8normal%Vorigin9)fc}'err8fA"WARNING! In Path::gqAet_plane().\n"É|2"Path is not a Plane. Returning INVALID_PLANE.\n\n"A  ush;returnAINVALID_PLANE;gP9oint2p}'ointJ+(getffp}'oint'bH(0));return7PlaneT(p}'oint.;normal"`); -g901. P9ointԆlieswithintriangle.[LDFT2003.06.11.][fDeclared3>inpoints.web. MustbGede nedhere,bGecauseUUP9ath<isUUanincompletelyde nedtypethere.U9Ȅ`> 8BeginTLogJʄ`> +g904. P9ointԆlieswithintriangle.[LDFT2003.06.11.][fDeclared3>inpoints.web. MustbGede nedhere,bGecauseUUP9ath<isUUanincompletelyde nedtypethere.9Ȅ`+U 8Log)j`+U [LDFT2003.06.11.]Y;AddedUUthisfunction. [LDFT2003.06.24.]Y;RemovedUUtheargumenttestffp}'oints1}J.qNow,planarityisalwaystested. [LDFT2003.06.24.]Y;BUGUUFIX:WhentheP9oints&.alllayinthex-zplane,oraplaneparalleltoit,lamb}'daffdenominator^+wasq0.SThiscausedisffinfftriangle>%()toreturnfalse ȫ,evenwhen qthisοdidlieinthetriangle. :Now,uifClamb}'daffdenominatoreorCmuffdenominatorThMisCequalto0,theyandz-coGordinatesareexchanged,,and"lamb}'daffdenominator`and"muffdenominatorP'are"recalculated.`Ifeitherofthenewvqaluesis0,theCxandz-coGordinatesareexchanged(basedontheoriginalcoordinatevqalues),andlamb}'daffdenominatorand4muffdenominatorPK]are4againrecalculated.fOnlyoneexchangehasbGeenneededinthecasesI'vetestedsofar. -[LDFT2003.08.14.]Y;SettingUUverb}'ose'<toUUtrueoBifUUVERBOSE_GLOBALPisUUtrue.qAddedUUVERBOSE_GLOBALtopspglb.webUUtoGday*.Ȅ` 8EndTLogA>`hDe neUUP9oint"Dfunctions@285i+ -bQool#P9oint@::isffinfftriangle:(constrP9oint=&Eqp0Q;const P9oint?Ua&Gp1S3?;const P9oint?Ua&Gp2;bQoolKverb}'ose<%)2constLRfUUbQoolDEBUG:,=falsev\;=trueĒ=if)(VERBOSE_GLOBALJ>)verb}'ose(Xu=true;P9ath9漱q>f;q%ū+=7p0D٫;q%ū+=7p1D٫;q%ū+=7p2D٫;Plane>6qffplR{=q:getffplane(v();if)(qffplDͷINVALID_PLANEGY)f(if3(verb}'ose ])f2c}'errK]"WARNING! In Point::ovis_in_triangle():\n"eTF"The Point arguments do not determine a plane.\n"J"Returning false.\n\kn"yVF ush[;(g(returnKfalse`;gelse4.7if?/(:isffonffplane1ګ(qffpl}))f(if3(verb}'ose ])f Z$n썫248POINTXLIESWITHINTRIANGLE 3DLDFPRÎGx901n@P2c}'errK]"WARNING! In Point::ovis_in_triangle():\n"eT F"*this doesn't lie in the plane determined "1 /D"by the arguments.\nl"uұF"Returning false.\n\n"E ush;(g(returnKfalse`;gP9oint<t@(this뷫);P9oint<cAC{(p0 );P9oint<dB$(p1 );P9oint<eA(p2 );t!u:applyfftr}'ansformF߫();c"S:applyfftr}'ansformF߫();d#4u:applyfftr}'ansformF߫();e":applyfftr}'ansformF߫();if)(DEBUGY)f(show>("t:"\);(c,S:show("c:"\);(d-4v:show("d:"\);(e,:show("e:"\);greal41tffxDՂ=tc:worldffc}'oordinatesM[0];real41tffyD1=tc:worldffc}'oordinatesM[1];real41tffzDO=tc:worldffc}'oordinatesM[2];real41cffxF=c:worldffc}'oordinatesM[0];real41cffyFM=c:worldffc}'oordinatesM[1];real41cffzE8=c:worldffc}'oordinatesM[2];real41dffxFw=d:worldffc}'oordinatesM[0];real41dffyF&=d:worldffc}'oordinatesM[1];real41dffzF=d:worldffc}'oordinatesM[2];real41effxF=eo:worldffc}'oordinatesM[0];real41effyFM=eo:worldffc}'oordinatesM[1];real41effzE8=eo:worldffc}'oordinatesM[2];real41lamb}'daffdenominator=(((effx58cffx)8(dffyCcffy))((effycffy)(dffx^cffx5)));real41muffdenominator\=((effx58cffx)8(dffyCcffy))((effycffy)(dffx^cffx5));bQool7iexchangeffyffzsV=falsev\;bQool7iexchangeffxffzs=falsev\;UUif +[LDFT2003.08.14.]Y;SettingUUverb}'ose'<toUUtrueoBifUUVERBOSE_GLOBALPisUUtrue.qAddedUUVERBOSE_GLOBALtopspglb.webUUtoGday*.Ȅ`GhDe neUUP9oint"Dfunctions@285i+ +bQool#P9oint@::isffinfftriangle:(constrP9oint=&Eqp0Q;const P9oint?Ua&Gp1S3?;const P9oint?Ua&Gp2;bQoolKverb}'ose<%)2constLRfUUbQoolDEBUG:,=falsev\;=trueĒ=if)(VERBOSE_GLOBALJ>)verb}'ose(Xu=true;P9ath9漱q>f;q%ū+=7p0D٫;q%ū+=7p1D٫;q%ū+=7p2D٫;Plane>6qffplR{=q:getffplane(v();if)(qffplDͷINVALID_PLANEGY)f(if3(verb}'ose ])f2c}'errK]"WARNING! In Point::ovis_in_triangle():\n"eTF"The Point arguments do not determine a plane.\n"J"Returning false.\n\kn"yVF ush[;(g(returnKfalse`;gelse4.7if?/(:isffonffplane1ګ(qffpl}))f(if3(verb}'ose ])f W'n썷x9043DLDFPRÎG POINTXLIESWITHINTRIANGLE251n@P2c}'errK]"WARNING! In Point::ovis_in_triangle():\n"eT F"*this doesn't lie in the plane determined "1 /D"by the arguments.\nl"uұF"Returning false.\n\n"E ush;(g(returnKfalse`;gP9oint<t@(this뷫);P9oint<cAC{(p0 );P9oint<dB$(p1 );P9oint<eA(p2 );t!u:applyfftr}'ansformF߫();c"S:applyfftr}'ansformF߫();d#4u:applyfftr}'ansformF߫();e":applyfftr}'ansformF߫();if)(DEBUGY)f(show>("t:"\);(c,S:show("c:"\);(d-4v:show("d:"\);(e,:show("e:"\);greal41tffxDՂ=tc:worldffc}'oordinatesM[0];real41tffyD1=tc:worldffc}'oordinatesM[1];real41tffzDO=tc:worldffc}'oordinatesM[2];real41cffxF=c:worldffc}'oordinatesM[0];real41cffyFM=c:worldffc}'oordinatesM[1];real41cffzE8=c:worldffc}'oordinatesM[2];real41dffxFw=d:worldffc}'oordinatesM[0];real41dffyF&=d:worldffc}'oordinatesM[1];real41dffzF=d:worldffc}'oordinatesM[2];real41effxF=eo:worldffc}'oordinatesM[0];real41effyFM=eo:worldffc}'oordinatesM[1];real41effzE8=eo:worldffc}'oordinatesM[2];real41lamb}'daffdenominator=(((effx58cffx)8(dffyCcffy))((effycffy)(dffx^cffx5)));real41muffdenominator\=((effx58cffx)8(dffyCcffy))((effycffy)(dffx^cffx5));bQool7iexchangeffyffzsV=falsev\;bQool7iexchangeffxffzs=falsev\;UUif M(lamb}'daffdenominator]E0 _8muffdenominatorN50)UUfif+H(DEBUGY)c}'outg"lambda_denominator ngnor mu_denominator ==g2 0. "5<"Exchanging y and z-coordinates.\n"  ush;real41tempK ;temp7!=tffy;tffy.=tffz;tffz-=temp!;temp7!=cffyO;cffy/O=cffz;cffz. =temp!;temp7!=dffy;dffy/=dffze;dffz/e=temp!;temp7!=effyO;effy/O=effz;effz. -=temp!; in썷x9013DLDFPRÎG POINTXLIESWITHINTRIANGLE249n@Plamb}'daffdenominator{E«=(((effx58cffx)8(dffyCcffy))((effycffy)(dffx^cffx5))); muffdenominatorjX=((effx58cffx)8(dffyCcffy))((effycffy)(dffx^cffx5));if)(:(lamb}'daffdenominator]E0 _8muffdenominatorN50))f(if5^֫(DEBUGY)c}'out "Exchanging y and z-ncoordinates worked.\׌^n"F"lambda_denominator and mu_denominator are no longer 0.\n"yٷ ush;(exchangeffyffzc=true;gelse4.7fif+Ϋ(DEBUGY)c}'out}#"Exchanging y and z-n#coordinates didn't w#Rork.\n"o<"Exchanging x and z-coordinates.\n"  ush;902. First,UUputthingsbackthewaytheywere.qIt'swasteful,butlessconfusing.q[LDFT2003.06.24.]hDe neUUP9oint"Dfunctions@285i+ +=temp!; fn썫252POINTXLIESWITHINTRIANGLE 3DLDFPRÎGx904n@Plamb}'daffdenominator{E«=(((effx58cffx)8(dffyCcffy))((effycffy)(dffx^cffx5))); muffdenominatorjX=((effx58cffx)8(dffyCcffy))((effycffy)(dffx^cffx5));if)(:(lamb}'daffdenominator]E0 _8muffdenominatorN50))f(if5^֫(DEBUGY)c}'out "Exchanging y and z-ncoordinates worked.\׌^n"F"lambda_denominator and mu_denominator are no longer 0.\n"yٷ ush;(exchangeffyffzc=true;gelse4.7fif+Ϋ(DEBUGY)c}'out}#"Exchanging y and z-n#coordinates didn't w#Rork.\n"o<"Exchanging x and z-coordinates.\n"  ush;905. First,UUputthingsbackthewaytheywere.qIt'swasteful,butlessconfusing.q[LDFT2003.06.24.]hDe neUUP9oint"Dfunctions@285i+ temp#!=tffy; tffy=tffz; tffz=temp!; @@ -3312,7 +3357,7 @@ dffze=temp!; temp#!=effyO; effyO=effz; -effz=temp!; {n썫250POINTXLIESWITHINTRIANGLE 3DLDFPRÎGx903n@P903. Now,UUexchangethexandz-coGordinates.q[LDFT2003.06.24.]hDe neUUP9oint"Dfunctions@285i+ +effz=temp!; xZn썷x9063DLDFPRÎG POINTXLIESWITHINTRIANGLE253n@P906. Now,UUexchangethexandz-coGordinates.q[LDFT2003.06.24.]hDe neUUP9oint"Dfunctions@285i+ temp#!=tffx"Q; tffx"R=tffz; tffz=temp!; @@ -3340,91 +3385,91 @@ bQool#gb*)=(lamb}'da"60 ^8muґ0^8((lamb}'da!+mu y)1)); if(verb}'ose ])fc}'out* Q"In Point::is_in_trikangle:\n");if(bJ)c}'out O"The Point lies withkin the triangle. "͔&"Returning true."\M;else+c}'outA0"The Point doesn't lkie within the triangƠle. "T"Returning false."aJ;c}'out* Qendlendl ush; g -return-滱b21e;qǷg904. ManipulatingTP9aths.905. SetTcycle.#s9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.4.7.]O?Changed,UUsothattheargumentbQoolc$istrueoBbydefault. n썷x9053DLDFPRÎG1SETXCYCLE251n@P -[LDFT2002.11.05.]Y;MadeUUbQoolc$argumentUUconst*.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -v9oid"setffcycleI'(const*bQool7c>=true);906.hDe neUUP9ath<functions@657i+ +return-滱b21e;qǷg907. ManipulatingTP9aths.908. SetTcycle.;9Ȅ`+U 8Log)j`+U +[LDFT2002.4.7.]O?Changed,UUsothattheargumentbQoolc$istrueoBbydefault. Πn썫254SETXCYCLE13DLDFPRÎGx908n@P +[LDFT2002.11.05.]Y;MadeUUbQoolc$argumentUUconst*.Ȅ`GhDeclareUUP9ath<functions@656i+ +v9oid"setffcycleI'(const*bQool7c>=true);909.hDe neUUP9ath<functions@657i+ v9oid"P9ath 8BeginTLogJʄ`> +g910. Rev9erse.911. WithTassignmen9t.9Ȅ`+U 8Log)j`+U [LDFT2002.4.6.]O?AddedUUthisfunction. -[LDFT2003.07.16.]Y AddedXerrorhandlingcoGdeforthecasethatthisfunctioniscalledwithassign"false|4.I'venowaddedaconst Sversion,Fsothere'snoneedtocallthisversionwithassign!falsev\.O,Ifassign!"isfalseǫ,theUUconst!versionUUiscalled,soIcouldsimplifythecoGdeinthisversion.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -P9ath%r}'everseE(bQoolfassign5|);909.hDe neUUP9ath<functions@657i+ -P9ath%P9ath?x"::r}'everse f(bQoolfassign5|)fUUbQoolDEBUG:,=falsev\;=trueĒ=if)(isffcycle!O())=ReturnUUUVthisaifUUUVthisisUUacycle.o=f(c}'err=2A"ERROR! In Path::revlALerse().\n"A"*this is a cycle. ClALan't reverse.\n" <"Returning *this.\n\n",;(returnK澷Pthisau;gif)(:assign)f(c}'err?}ɷ"WARNING! In Path::rmeverse(bool):\n":"assign == false. Dom\<n't call this function " "with false as its an Grgument.\n"<"Use reverse() without an argument inste ad.\n"0"Calling reverse(voikd).\n\n"D< ushQ;(returnKr}'eversek ();g n썫252WITHXASSIGNMENT t3DLDFPRÎGx910n@P910. [LDFT2002.4.6.]QΆIfۡthereismorethanoneconnector,4butthereisn'tanexplicitconnectorforevery pairofP9oints'(inp}'ointsg,thenwehaveto llupc}'onnectors7 ҫsothatthereisoneforeachpairofP9oints$V.Otherwise,UUtheconnectorsandtheP9oints&.won'tmatchuppropGerlywhenwereversethem.hDe neUUP9ath<functions@657i+ +[LDFT2003.07.16.]Y AddedXerrorhandlingcoGdeforthecasethatthisfunctioniscalledwithassign"false|4.I'venowaddedaconst Sversion,Fsothere'snoneedtocallthisversionwithassign!falsev\.O,Ifassign!"isfalseǫ,theUUconst!versionUUiscalled,soIcouldsimplifythecoGdeinthisversion.Ȅ`GhDeclareUUP9ath<functions@656i+ +P9ath%r}'everseE(bQoolfassign5|);912.hDe neUUP9ath<functions@657i+ +P9ath%P9ath?x"::r}'everse f(bQoolfassign5|)fUUbQoolDEBUG:,=falsev\;=trueĒ=if)(isffcycle!O())=ReturnUUUVthisaifUUUVthisisUUacycle.o=f(c}'err=2A"ERROR! In Path::revlALerse().\n"A"*this is a cycle. ClALan't reverse.\n" <"Returning *this.\n\n",;(returnK澷Pthisau;gif)(:assign)f(c}'err?}ɷ"WARNING! In Path::rmeverse(bool):\n":"assign == false. Dom\<n't call this function " "with false as its an Grgument.\n"<"Use reverse() without an argument inste ad.\n"0"Calling reverse(voikd).\n\n"D< ushQ;(returnKr}'eversek ();g Ǡn썷x9133DLDFPRÎG tWITHXASSIGNMENT255n@P913. [LDFT2002.4.6.]QΆIfۡthereismorethanoneconnector,4butthereisn'tanexplicitconnectorforevery pairofP9oints'(inp}'ointsg,thenwehaveto llupc}'onnectors7 ҫsothatthereisoneforeachpairofP9oints$V.Otherwise,UUtheconnectorsandtheP9oints&.won'tmatchuppropGerlywhenwereversethem.hDe neUUP9ath<functions@657i+ if(c}'onnectors/4.:size\()>1 ^8c}'onnectors1m:size()6=p}'oints뭱:size()818)fstring5%Olastffc}'onnectorsF;lastffc}'onnectorT=c}'onnectors1F:b}'ackë();while2C.(c}'onnectors/4.:size\() Ы); -g911. [LDFT2002.4.7.]PIfIdon'texplicitlyrefertothestdnamespacehere,%thisfunctioniscalled,andsincetheUUargumentsaredi erentfromtheoneusedforthisfunction,thiscausesanerroratcompiletime.hDe neUUP9ath<functions@657i+ +g914. [LDFT2002.4.7.]PIfIdon'texplicitlyrefertothestdnamespacehere,%thisfunctioniscalled,andsincetheUUargumentsaredi erentfromtheoneusedforthisfunction,thiscausesanerroratcompiletime.hDe neUUP9ath<functions@657i+ if(DEBUGY)c}'out O"Reversing connectorks and points.\n", ush; std::!"r}'everseA3(c}'onnectors/4.:b}'egin();c}'onnectors0ֱ:endಫ()); std::!"r}'everseA3(p}'oints$:b}'egin();p}'oints=:endಫ()); if(DEBUGY)fc}'out* Q"Showing connectors:k\n"| ;;for%舫(v9ectorHhstringi::Biter}'ator)7iter=+M=c}'onnectors1F:b}'egin();iter6=c}'onnectors:endಫ();iterJ++")c}'out4 RiterY/endlګ;c}'out* Q"Showing points:\n"g G;for%舫(v9ectorHhP9oint#i::Biter}'ator)7iter=+M=p}'oints뭱:b}'egin();iter6=p}'oints:endಫ();iterJ++")( iter):show();getchar5%(); g=if(DEBUGY)= -return-滷2thisCr;UUg912. NoFassignmen9t.Thisversionmerelycopiesthis[andcallsr}'everse#db(trueĘ)onthecopy*,ЫreturningtheUUreturnvqalueofthatfunctioncall.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.16.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -P9ath%r}'everseE(v9oid)UUconst*;913.hDe neUUP9ath<functions@657i+ +return-滷2thisCr;UUg915. NoFassignmen9t.Thisversionmerelycopiesthis[andcallsr}'everse#db(trueĘ)onthecopy*,ЫreturningtheUUreturnvqalueofthatfunctioncall.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.16.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUP9ath<functions@656i+ +P9ath%r}'everseE(v9oid)UUconst*;916.hDe neUUP9ath<functions@657i+ P9ath%P9ath?x"::r}'everse f(v9oid)UUconst fP9ath/滱p7ӫ=thisϫ;return7漱p<:r}'everseb(trueĘ); -g914. Equalit9y +g917. Equalit9y .TODO:MI'llneedtomakeallconnectorsexplicitinordertomakethiswork. ]SeeopQerator+&3]()UUforanexampleofhowtomakethiswork.hDeclareUUP9ath<functions@656i+#if 0 -virtual/bQoolI/:opQeratort| (P9ath湫&#ױp(׫);#endif 7n썷x9153DLDFPRÎG4DEQUALITY253n@P915.hDe neUUP9ath<functions@657i+ #if 0 +virtual/bQoolI/:opQeratort| (P9ath湫&#ױp(׫);#endif n썫256EQUALITY4D3DLDFPRÎGx918n@P918.hDe neUUP9ath<functions@657i+ #if 0 virtual/bQoolI/:P9athb::iNopQerator啷(P9ath湫&#ױp(׫) -fg#endif916. In9tersection.917. In9tersectionToftwolinearPaths. IfUUUVthisaisUUalineandtheargumentp}'aisaline, interse}'ctionffpointM֫()UUcallstheversionforP9oints&.inpoints.web. +fg#endif919. In9tersection.920. In9tersectionToftwolinearPaths. IfUUUVthisaisUUalineandtheargumentp}'aisaline, interse}'ctionffpointM֫()UUcallstheversionforP9oints&.inpoints.web. OtherUUkindsofP9aths#Jandotherclasseswillneedtheirownversionsofthisfunction. -IUUmayhaveaproblemwiththeconstancyofUVthisaandp}'aR.qIfIdo,justremoveit.U9Ȅ`> 8BeginTLogJʄ`> +IUUmayhaveaproblemwiththeconstancyofUVthisaandp}'aR.qIfIdo,justremoveit.9Ȅ`+U 8Log)j`+U [LDFT2002.04.15.]X Changed_'returnvqaluefrombQoolus4wrealus4pQoin9tQtobQoolus4wpoin9t7m,csinceI'vehadtocomment-outUUtheversionofP9oint::interse}'ctionffpointNګ()thatusestheLine-version. [LDFT2002.04.10.]ZChangedEreturntypGetobQoolus4wrealus4pQoin9tW}MtocorrespondwiththesamechangetoP9ointL::interse}'ctionffpointNګ(). -[LDFT2003.07.04.]ZAdded6tr}'ace Q}argument. kAdded6conditionalusingtr}'acetochoGosewhichversionofP9ointL::interse}'ctionffpointNګ()UUshouldbGecalled.qChangedsothatisffline}'ar(jҫ()isusedinsteadofgetfflineffswitch?}().qNowUUusinggetfflastffp}'oint=y()insteadofUVp}'oints#y[1].Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -bQoolus4wpoin9tBinterse}'ctionffpoint>r(const*P9ath:[&Ayp}'aLս;constJbQool9vtr}'aceRT٫=falsev\)UUconst*; n썫254INTERSECTIONXOFTWÎOLINEARP -ATHSr3DLDFPRGx918n@P918.hDe neUUP9ath<functions@657i+ +[LDFT2003.07.04.]ZAdded6tr}'ace Q}argument. kAdded6conditionalusingtr}'acetochoGosewhichversionofP9ointL::interse}'ctionffpointNګ()UUshouldbGecalled.qChangedsothatisffline}'ar(jҫ()isusedinsteadofgetfflineffswitch?}().qNowUUusinggetfflastffp}'oint=y()insteadofUVp}'oints#y[1].Ȅ`GhDeclareUUP9ath<functions@656i+ +bQoolus4wpoin9tBinterse}'ctionffpoint>r(const*P9ath:[&Ayp}'aLս;constJbQool9vtr}'aceRT٫=falsev\)UUconst*; Vn썷x9213DLDFPRÎGrINTERSECTIONXOFTWOLINEARP +ATHS257n@P921.hDe neUUP9ath<functions@657i+ bQoolus4wpoin9tBP9ath\9::interse}'ctionffpointNګ(const*P9ath:[&Ayp}'aLս;constJbQool9vtr}'aceO)UUconst fif(isffline}'ar%}()8^p}'a 6$:isffline}'ar())fif)(tr}'ace)return(P9ointE::interse}'ctionffpointNګ(p}'oints $[0];getfflastffp}'oint;();p}'a:p}'oints$[0];<p}'aFJ:getfflastffp}'oint:$>();tr}'ace);else5returnYP9ointvDL::interse}'ctionffpointNګ(p}'oints $[0];getfflastffp}'oint;();p}'a:p}'oints$[0];p}'a :getfflastffp}'oint:$>();<tr}'aceR);gelse+fc}'out4 R"Haven't coded this kcase yet. ";"Returning INVALID_BkOOL_POINT.\n"T5 ush;returnAINVALID_BOOL_POINT;g -g919. In9tersectionofalinearPathwithaPlane. [LDFT2003.06.03.]ZThisfunctionmustbGede nedhere,UUbGecauseP9ath<isanincompletetypeinplanes.web.r9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.03.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDe neUUPlane# functions@620i+ +g922. In9tersectionofalinearPathwithaPlane. [LDFT2003.06.03.]ZThisfunctionmustbGede nedhere,UUbGecauseP9ath<isanincompletetypeinplanes.web.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.03.]Y;AddedUUthisfunction.Ȅ`GhDe neUUPlane# functions@620i+ bQoolus4wpoin9tBPlane`::interse}'ctionffpointNګ(const*P9ath:[&AypFy)UUconst fif(p:isffline}'ar%}())return(interse}'ctionffpointv}(p:getffp}'oint'bH(0);p:getfflastffp}'oint:$>());else+fc}'err5j"ERROR! In Plane::inm.tersection_point(const Path&):"*jendl֖2"Path is not linear! Returning INVALID_BOOL_POINT."FLendlendl ush;returnAINVALID_BOOL_POINT;g -g920. Dra9wingZaxes.ThisfunctiondrawsandlabGelsarrowsforthemainaxesattheorigin.+ItcanbGehelpfulUUfordeterminingwhetherthe\up "directioniscorrectforaF +g923. Dra9wingZaxes.ThisfunctiondrawsandlabGelsarrowsforthemainaxesattheorigin.+ItcanbGehelpfulUUfordeterminingwhetherthe\up "directioniscorrectforaF oQcus J. -[LDFT2003.04.01.]YSometimesKplaceholdersareneededforthedistandpGositionarguments.UIfdistisanumbGer5x80,mthenit'ssettothedefault,currently2.5.gIfapGositionargument(p}'osffxՅ,mp}'osffyR,morp}'osffzT)is"d"F_,UUit'ssettothedefault.U9Ȅ`> 8BeginTLogJʄ`> +[LDFT2003.04.01.]YSometimesKplaceholdersareneededforthedistandpGositionarguments.UIfdistisanumbGer5x80,mthenit'ssettothedefault,currently2.5.gIfapGositionargument(p}'osffxՅ,mp}'osffyR,morp}'osffzT)is"d"F_,UUit'ssettothedefault.9Ȅ`+U 8Log)j`+U [LDFT2003.02.05.]ZMovedjthisfunctionfrommain.webtohere,(soIjcanuseitinmyexamplesfortheT*exinfodoGcumentation.T7Also,aaddedadditionalargumentsspGecifyingthepositionsoflabelsandsuppressingdrawingUUtheaxes(andtheirlabGels). [LDFT2003.04.01.]Z<>AddedXargumentsfordashpattern(ddashe}'d#G)andpGen(pp}'en6#). Rearrangedorderofarguments.HyAlso,tgot;ridoftheargumentssuppr}'essffx2$(,tsuppr}'essffy21,tandsuppr}'essffz1«.HyNowusingtheemptystringh("" b)intheargumentsp}'osffx>{,p}'osffy,andp}'osffz"! toindicatethatthecorrespGondingaxesshouldbGesuppressed. Addederrorhandlingcodethatprintsawarningtostderr%4cifallaxesaresuppressed.([LDFT2003.05.06.]PNoteathat""ɤwillneverbGeneededforlabellinganaxis,becauseputtingthelabelontopUUoftheP9oint"Dwouldinterferewiththearrow.) -[LDFT2003.04.01.]Y Added:argumentsshiftffx ë,.shiftffy ,.andshiftffz$0foradjustingthepGositionofthelabels.Note1thattheadjustmenta ectsthepGositionofthethree-dimensionalP9oint#PwithintheLabQel rg,gnot#ܫthetwo-dimensionalvpro8jectedpGoint.)Therefore,it'snotpossibletoadjustthepositionoftheLabQel#Oprecisely n썷x9203DLDFPRÎGDRA8WINGXAXES255n@PwithoutYchangingtheMetapGostcode.[TOHDO:Changelab}'el(),sothatit'spossibletoadjustthepositionof theypGointsinthepro8jection!ThismayopGenacanofworms,though,espGeciallyyifthesamecodeisusedtogenerateUUdrawingsusingdi erentpro8jectionsand/ordi erentF;o}'cuses%F. -[LDFT2003.07.13.]Y;MadeUUddashe}'d)andUUpp}'enconst: oinUUbGothversions.Ȅ` 8EndTLogA>`921. LengthTargumen9t rst.hDeclareUUdr}'awffaxes/[+()@921i +[LDFT2003.04.01.]Y Added:argumentsshiftffx ë,.shiftffy ,.andshiftffz$0foradjustingthepGositionofthelabels.Note1thattheadjustmenta ectsthepGositionofthethree-dimensionalP9oint#PwithintheLabQel rg,gnot#ܫthetwo-dimensionalvpro8jectedpGoint.)Therefore,it'snotpossibletoadjustthepositionoftheLabQel#Oprecisely n썫258DRA8WINGXAXES3DLDFPRÎGx923n@PwithoutYchangingtheMetapGostcode.[TOHDO:Changelab}'el(),sothatit'spossibletoadjustthepositionof theypGointsinthepro8jection!ThismayopGenacanofworms,though,espGeciallyyifthesamecodeisusedtogenerateUUdrawingsusingdi erentpro8jectionsand/ordi erentF;o}'cuses%F. +[LDFT2003.07.13.]Y;MadeUUddashe}'d)andUUpp}'enconst: oinUUbGothversions.Ȅ`G924. LengthTargumen9t rst.hDeclareUUdr}'awffaxes/[+()@924i v9oid$dr}'awffaxesP%(realdist-=2:5q:;string#p}'osffx@qe="bot"pt;string#p}'osffy@W="lft";stringp}'osffz9=}"bot"D;const ColorA&IOddr}'awffcolor1=}÷ }Colors+V::1defaultffc}'olori`;const stringddashe}'dEpj=)V""/;const stringBpp}'en\(=)V"";const P9oint@m&H5shiftffxi=)Voriginw;const P9oint&%!shiftffyE$q=origin9;constJP9oint>&Fshiftffze}@=origin;Picture* -&2c(pictur}'eT3=curr}'entffpictureD߫); SeeXalsosection926.ThisXcoS-&FKshiftffxbԱ;constmP9oint>S-&FKshiftffyb;constmP9oint2&9#shiftffzUF;Picture* -&2c(pictur}'eQk)f SeeXalsosections923,924,925,and927.ThisXco 8BeginTLogJʄ`> -[LDFT2003.04.01.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`hDe neUUdr}'awffaxes/[+()@922i+ +&2c(pictur}'eQk)f SeeXalsosections926,927,928,and930.ThisXco 8BeginTLogJʄ`> -[LDFT2003.04.01.]Y;AddedUUthiserrorhandlingcoGde.Ȅ` 8EndTLogA>`hDe neUUdr}'awffaxes/[+()@922i+ +if(p}'osffz7"d" w)p}'osffz7="bot"q;927.9Ȅ`+U 8Log)j`+U +[LDFT2003.04.01.]Y;AddedUUthiserrorhandlingcoGde.Ȅ`GhDe neUUdr}'awffaxes/[+()@925i+ if(p}'osffx""Z^8p}'osffy,""^8p}'osffzO"" z)fc}'err)=T"WARNING! In draw_axl=es():"·=Tendllj=T"All axes are supprel=ssed. Returning."@(endl>޷endl ush;return4g; -g Rn썫256LENGTHXARÎGUMENTFIRSTBH3DLDFPRGx925n@P925.hDe neUUdr}'awffaxes/[+()@922i+ +g Jn썷x9283DLDFPRÎGBHLENGTHXARGUMENTFIRST259n@P928.hDe neUUdr}'awffaxes/[+()@925i+ if(p}'osffx6="" z)fP9oint2x0>|(distӋ);P9oint2x1>|(dist m);x0߱:dr}'awarrow.ī(x1 ݱ;ddr}'awffcolor5Q;ddashe}'d$;pp}'en˱;pictur}'e ~);x1"d+=4KshiftffxQjԫ;x1߱:lab}'elt("x"F_;p}'osffx-;falseY;pictur}'e ~); g if(p}'osffyL6="" z)fP9oint2y0>(0; qdist~3);P9oint2y1>(0;dist);y0U:dr}'awarrow.ī(y1 S;ddr}'awffcolor5Q;ddashe}'d$;pp}'en˱;pictur}'e ~);y1"m+=4shiftffyQ;y1U:lab}'elt("y"F_;p}'osffyeܱ;falseY;pictur}'e ~); g if(p}'osffz76="" z)fP9oint2z0>(0;0; qdist~3);P9oint2z1>(0;0;dist);z0:dr}'awarrow.ī(z1 ;ddr}'awffcolor5Q;ddashe}'d$;pp}'en˱;pictur}'e ~);z1!*+=4-~shiftffzPW;z1:lab}'elt("z"F_;p}'osffzDZ;falseY;pictur}'e ~); g -return*f;qǷg926. ColorTargumen9t rst.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.05.02.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUdr}'awffaxes/[+()@921i+ -v9oid#dr}'awffaxesO(constColor?v&G=-ddr}'awffcolor{Eֱ;real1dist.d=''2:5F;string#2p}'osffx?ޫ=''"bot"퀱;stringp}'osffy8,="lft"N;string"yp}'osffz<="bot";conststringA ddashe}'dg+="" W;conststringA pp}'enY="";constP9oint=&&DDshiftffxde=Loriginm;constP9oint>&Fshiftffyf4=Lorigin;constP9oint>&FshiftffzeȀ=Lorigin;Picture&%!pictur}'eG=curr}'entffpictureD߫); n썷x9273DLDFPRÎGËCOLORXARGUMENTFIRST257n@P927.hDe neUUdr}'awffaxes/[+()@922i+ +return*f;qǷg929. ColorTargumen9t rst.9Ȅ`+U 8Log)j`+U +[LDFT2003.05.02.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUdr}'awffaxes/[+()@924i+ +v9oid#dr}'awffaxesO(constColor?v&G=-ddr}'awffcolor{Eֱ;real1dist.d=''2:5F;string#2p}'osffx?ޫ=''"bot"퀱;stringp}'osffy8,="lft"N;string"yp}'osffz<="bot";conststringA ddashe}'dg+="" W;conststringA pp}'enY="";constP9oint=&&DDshiftffxde=Loriginm;constP9oint>&Fshiftffyf4=Lorigin;constP9oint>&FshiftffzeȀ=Lorigin;Picture&%!pictur}'eG=curr}'entffpictureD߫); vn썫260COLORXARÎGUMENTFIRSTË3DLDFPRGx930n@P930.hDe neUUdr}'awffaxes/[+()@925i+ v9oid#5dr}'awffaxesO (constAColor=M&Ekddr}'awffcolory;realu2dist);string"Qp}'osffx:ֱ;string"Qp}'osffy:;string"Qp}'osffz:6p;const2stringRuddashe}'dv3;constmstring@pp}'enU;constmP9oint>S-&FKshiftffxbԱ;constmP9oint>S-&FKshiftffyb;constmP9oint2&9#shiftffzUF;Picture* &2c(pictur}'eQk) fdr}'awffaxes@ث(dist m;p}'osffx-;p}'osffyeܱ;p}'osffzDZ;ddr}'awffcolor5Q;ddashe}'d$;pp}'en˱;shiftffx[1;shiftffy@;shiftffz˱;pictur}'e ~); -g928. P9athsTandLines.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.06.]Y;AddedUUthisheading.Ȅ` 8EndTLogA>`929. GetLine.Returns8aLineȳcorrespGondingto8this#ϫ,=if8this[islinear.hOtherwise,getffline$ ()returnsINVALID_LINE?D.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.06.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUP9ath<functions@656i+ -Line#getfflineD(v9oid)UUconst*;930.hDe neUUP9ath<functions@657i+ +g931. P9athsTandLines.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.06.]Y;AddedUUthisheading.Ȅ`G932. GetLine.Returns8aLineȳcorrespGondingto8this#ϫ,=if8this[islinear.hOtherwise,getffline$ ()returnsINVALID_LINE?D.ō9Ȅ`+U 8Log)j`+U +[LDFT2003.06.06.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUP9ath<functions@656i+ +Line#getfflineD(v9oid)UUconst*;933.hDe neUUP9ath<functions@657i+ Line#P9ath=?A::getffline"O(v9oid)UUconst fif(isffline}'ar%}())return(p}'ointsD O:fr}'ontI()~getffline%O((p}'oints$:b}'ackë()));else+fc}'err3˷""ERROR! In Path::getl_line():\n"fO""Path is not linear.l Returning INVALID_L\2INE.\n\n"dj ush;returnAINVALID_LINEm;g -g931. GetjP9ath.Declaredinlines.web.MustbGede nedhere,KbecauseP9ath >isanincompletetypethere.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.06.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDe neUULine-functions@600i+ +g934. GetjP9ath.Declaredinlines.web.MustbGede nedhere,KbecauseP9ath >isanincompletetypethere.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.06.]Y;AddedUUthisfunction.Ȅ`GhDe neUULine-functions@600i+ P9ath%Line=?A::getffp}'ath$(v9oid)UUconst fP9oint2p7(p}'osition%}7+8dir}'ection)1ѫ);return7P9athPx (p}'osition#DW;p); -g932. PuttingTP9athtogether. ^n썫258PUTTINGXP -ATHTOGETHER23DLDFPRÎGx933n@P933. ThisUUiswhat'scompiled. +g935. PuttingTP9athtogether. 贠n썷x9363DLDFPRÎG2PUTTINGXP +ATHTOGETHER261n@P936. ThisUUiswhat'scompiled. hIncludeUU les@11i hV*ersionUUcontrolidenti er@10i hDe neUUclass5P9ath;654i @@ -3435,42 +3480,43 @@ hDe neUUPlane# functions@620i hDe neUUP9ath<functions@657i hDe neUULine-functions@600i -hDe neUUdr}'awffaxes/[+()@922i n썷x9343DLDFPRÎG2PUTTINGXP -ATHTOGETHER259n@P934. ThisUUiswhat'swrittentopaths.h.捷hpaths.h0p934i +hDe neUUdr}'awffaxes/[+()@925i Ơn썫262PUTTINGXP +ATHTOGETHER23DLDFPRÎGx937n@P937. ThisUUiswhat'swrittentopaths.h.hpaths.h0p937i hDe neUUclass5P9ath;654i -hDeclareUUdr}'awffaxes/[+()@921i935. Curv9es(curves.web).[9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>` -format3c(CurveVPathhV*ersionUUcontrolidenti er@10i+936. IncludeT les.hIncludeUU les@11i+#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"937. RegularTclosedplanecurv9e.A"9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.12.]ZChangedthename\R}'egularffClosedffPlaneffCurve{"to\Regus4wClus4Planeus4Curv9eh",BbGe-causeUUtheformercausedtoGomany\OverfullbGoxes"whenrunningcweave.Ȅ` 8EndTLogA>`938. Regffs4#Clffs4Planeffs4Curv9evclassde nition.A/&Regus4wClus4Planeus4Curv9eoUis/0assumedtobGeclosed,6pla-nar,UUconvex,andhaveatleast3pGoints.qThefunctionsthatcreateandmoGdifyRegus4wClus4Planeus4Curv9esp)mustUUensurethattheseassumptionsarecorrect! -[LDFT2002.11.05.]ZhRegus4wClus4Planeus4Curv9e8isintendedtobGeusedasabaseclass.^Noob8jectsoftypGeRegus4wClus4Planeus4Curv9elLshouldUUbGede ned,however,UUitisnotanabstractclass,soitispossibletodoso.捍 -format3c(R}'egffClffPlaneffCurve'CurvehDe neUUclass5Regus4wClus4Planeus4Curv9emB938i +hDeclareUUdr}'awffaxes/[+()@924i938. Curv9es(curves.web).N99Ȅ`+U 8Log)j`+U +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`G +format3c(CurveVPathhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: curves.web,v 1k.2 2003/12/10 15:27:Ơ57 lfinsto1 Exp $"3ҫ;939. IncludeT les.hIncludeUU les@11i+#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. RegularTclosedplanecurv9e.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.12.]ZChangedthename\R}'egularffClosedffPlaneffCurve{"to\Regus4wClus4Planeus4Curv9eh",BbGe-causeUUtheformercausedtoGomany\OverfullbGoxes"whenrunningcweave.Ȅ`G941. Regffs4#Clffs4Planeffs4Curv9evclassde nition.A/&Regus4wClus4Planeus4Curv9eoUis/0assumedtobGeclosed,6pla-nar,UUconvex,andhaveatleast3pGoints.qThefunctionsthatcreateandmoGdifyRegus4wClus4Planeus4Curv9esp)mustUUensurethattheseassumptionsarecorrect! +[LDFT2002.11.05.]ZhRegus4wClus4Planeus4Curv9e8isintendedtobGeusedasabaseclass.^Noob8jectsoftypGeRegus4wClus4Planeus4Curv9elLshouldUUbGede ned,however,UUitisnotanabstractclass,soitispossibletodoso. +format3c(R}'egffClffPlaneffCurve'CurvehDe neUUclass5Regus4wClus4Planeus4Curv9emB941i class$RRegus4wClus4Planeus4Curv9e-?:qpublic'P9athB몷f -protected:o:P9oint#c}'enter?(;unsignedD7shortbnumb}'erffofffpoints\;捍 -public)=֫:hDeclareUURegus4wClus4Planeus4Curv9eoBfunctions@940i -g; 捭ThisXco 8BeginTLogJʄ`> -[LDFT2002.11.03.]Y;RemovedUURegus4wClus4Planeus4Curv9emL::isffplanar)&().ARegus4wClus4Planeus4Curv9enվcan bGemanipulatedintoanon-planarstate,soit'ssafertousetheP9athoversion,whichUUtestswhetherit'sreallyplanarornot.Ȅ` 8EndTLogA>`940. IsTquadratic.hDeclareUURegus4wClus4Planeus4Curv9eoBfunctions@940i +protected:o:P9oint#c}'enter?(;unsignedD7shortbnumb}'erffofffpoints\; +public)=֫:hDeclareUURegus4wClus4Planeus4Curv9eoBfunctions@943i n썷x9413DLDFPRÎGREGffs4#CLffs4PLANEffs4CURVEXCLASSDEFINITION263n@P +g; ThisXco 8BeginTLogJʄ`> +The4followingvqaluesarereturnediftheP9oint"Nisinthesameplaneas4thisTandthisfunctionhasworkedpropGerly:-1 UVTheUUP9oint"DliesUUoutsidetheRegus4wClus4Planeus4Curv9elL.0 UVTheUUP9oint"DliesUUonthepGerimeteroftheRegus4wClus4Planeus4Curv9elL.1 UVTheUUP9oint"DliesUUinsidethepGerimeteroftheRegus4wClus4Planeus4Curv9elL.TheseUUvqaluesarereturnedincaseswhereerrorshaveUUoGccurred:-2 UVTheUUP9oint"DisUUnotinthesameplaneastheRegus4wClus4Planeus4Curv9elL.-3 UVSomethingUUhasgoneterriblywrong.-4 UVTheUUnormaltotheRegus4wClus4Planeus4Curv9eoBhas0magnitude,i.e.,theP9oints&.onthe UVRegus4wClus4Planeus4Curv9eCareUUcolinear.-5 UVAnUUerroroGccurredinputtingtheRegus4wClus4Planeus4Curv9eoBinoneofthema8jorplanes.-6 UVTheUURegus4wClus4Planeus4Curv9eoBisUUnon-planar.9Ȅ`+U 8Log)j`+U [LDFT2002.04.03.]Y;AddedUUandtestedallcases.qSeemstoworkpropGerly*. [LDFT2002.11.12.]ZKAddede\\relax V"aftertheargumentsto\\RVF_"intheTU>VExX['coGdeaboveeinordertosuppressOaspaceatthebGeginningofthe rstlineofthefollowingindentedparagraph.oIOcouldn't gureoutaUUwayofsuppressingthespacewithinthede nitionof\RV (whichiscurrently\\let\"to\ARG۱). [LDFT2003.06.03.]Y;ChangedUUthelinewherePlane!6::getffdistanc}'e5y()iscalledbGelow.qItnowreturnsarealus4wshort2i,UUso\: rst @@ -3479,31 +3525,30 @@ [LDFT2003.06.14.]Y;AddedUUerrorhandlingcoGdeforthecasethatgetffplane+=()fails. [LDFT2003.06.14.]X^Nolongertakingabsolutevqalueofthereal[valuer0GreturnedbyPlane (::getffdistanc}'e5y(),sinceUUitwillalwaysUUbGepositive,anyway*.qCommentatplacebGelow,whereImadethischange. [LDFT2003.07.01.]Y;AddedUUargumentsuppr}'essffwarningsSzf. -[LDFT2003.07.16.]YChangedknameofc}'enter"kargumenttor}'efffpt],qbGecauseI'vemadec}'enter"kadatamembGerofUURegus4wClus4Planeus4Curv9elL.Ȅ` 8EndTLogA>`hDeclareUURegus4wClus4Planeus4Curv9eoBfunctions@940i+ -virtual/signedRshortpmlo}'cation(P9ointr}'efffpt7ᐱ;P9oint Ept00;constJbQool9vsuppr}'essffwarningsb٫=falsev\)UUconst*; n썫262LOCAJTIONXOFAPOINT3DLDFPRÎGx946n@P946.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@946i +[LDFT2003.07.16.]YChangedknameofc}'enter"kargumenttor}'efffpt],qbGecauseI'vemadec}'enter"kadatamembGerofUURegus4wClus4Planeus4Curv9elL.Ȅ`GhDeclareUURegus4wClus4Planeus4Curv9eoBfunctions@943i+ +virtual/signedRshortpmlo}'cation(P9ointr}'efffpt7ᐱ;P9oint Ept00;constJbQool9vsuppr}'essffwarningsb٫=falsev\)UUconst*; n썷x9493DLDFPRÎGLOCAJTIONXOFAPOINT265n@P949.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@949i signed,qshortJ7Regus4wClus4Planeus4Curv9e/*::lo}'cation#(P9ointnr}'efffpt7` ;P9oint pt0/;constSbQool8ssuppr}'essffwarnings)2const fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)fc}'out4 R"Entering Reg_Cl_Plakne_Curve::location()Ơ\n" ;r}'efffpt6:show("ref_pt"*P);pt0-i>:show("pt0"Y);gunsignedD7shortborientationt;const2*unsignedbashort,UX_Y9̫=0;const2*unsignedbashort,UX_Z9̫=1;const2*unsignedbashort,UZ_Y9̫=2;Plane46pl=lū(getffplane(v());if(pl #INVALID_PLANEGY)=LDFUU2003.06.14.qAddedthiserrorhandlingcoGde.o=fc}'err7A "ERROR! In Reg_Cl_Plp \ane_Curve::location( ):"]2"The Reg_Cl_Plane_Curve is non-planar.\n" -"Returning -6\n\n"db ush;returnA潷I۫6N;greal*0r08 =pl #:getffdistanc}'e4y(pt0i;): rst;if(r0 ݱ>P9ointad::%epsilonE^())=LDF82003.06.14.h Changed.r0will8alwaysbGepositive,=soI8nowlongertakeitsabsolutevqalue.=fif*9j(:suppr}'essffwarningsP%)c}'errYv"WARNING! In Reg_Cl_lPlane_Curve::locatioգXn().\n"{<"Point is not in plane of regular closed plane curve.\n"h<"Returning -2.\n\n" M ush;returnA潷I۫2N;gRegus4wClus4Planeus4Curv9eLc}'opy(this뷫);if(r}'efffpt 6=origin9)pt00S=&r}'efffptBw=Rc}'opyfı:shift}(r}'efffpt );=LDFUU2002.11.05.qSimpli ed.o=P9oint2c}'opyffnormall#=c}'opyW:getffnormal0t();if(DEBUGY)c}'opyffnormalP9ointad::%epsilonE^())=LDF82003.06.14.h Changed.r0will8alwaysbGepositive,=soI8nowlongertakeitsabsolutevqalue.=fif*9j(:suppr}'essffwarningsP%)c}'errYv"WARNING! In Reg_Cl_lPlane_Curve::locatioգXn().\n"{<"Point is not in plane of regular closed plane curve.\n"h<"Returning -2.\n\n" M ush;returnA潷I۫2N;gRegus4wClus4Planeus4Curv9eLc}'opy(this뷫);if(r}'efffpt 6=origin9)pt00S=&r}'efffptBw=Rc}'opyfı:shift}(r}'efffpt );=LDFUU2002.11.05.qSimpli ed.o=P9oint2c}'opyffnormall#=c}'opyW:getffnormal0t();if(DEBUGY)c}'opyffnormal:dotlab}'el!("pt0"Y);pt0-i>:show("pt0"Y);gT ransformKt3V;P9oint2pt1E=c}'opyW:getffp}'oint'bH(0);pt1&0U=8r}'efffptQw;pt1#i=:unitffve}'ctor0u(trueĘ);P9oint2xffaxisM~(1;0;0);P9oint2zffaxisL:(0;0;1);if(orientation4:WX_YFW_8orientation6s7X_Z w)fif)(pt10S6=xffaxis`^8pt1i36= 6xffaxis%)f(t32Lϱ:alignffwithffaxis@x(r}'efffpt;pt1;'x');(c}'opy?W=NKr}'efffptjV=z,pt0\=t37;ggelse*.6if5.(orientation4:WZ_Y w)fif)(pt10S6=zffaxis^8pt1i36= -6zffaxis$ѫ)f(t32Lϱ:alignffwithffaxis@x(r}'efffpt;pt1;'z');(c}'opy?W=NKt3Y2;(r}'efffptC=SGFt3];(pt0:0W=It3T Y;ggrealus4wpairCprrMuԫ;real*0pt0ffvB;=[LDFT2002.11.05.]T7V*ertical.o=real*0pt0ffhBPK;=[LDFT2002.11.05.]T7Horizontal.o=if(orientation4:WX_Y w)fpt0ffh8d6=pt00S:getffxg();pt0ffv80=pt00S:getffyt(); ?n썫264LOCAJTIONXOFAPOINT3DLDFPRÎGx946n@Pg else*.6if5.(orientation4:WX_Z w)fpt0ffh8d6=pt00S:getffxg();pt0ffv80=pt00S:getffz();gelse*.6if5.(orientation4:WZ_Y w)fpt0ffh8d6=pt00S:getffz();pt0ffv80=pt00S:getffyt();gelse+fc}'err7|UƬ"ERROR! In Reg_Cl_Plopane_Curve::location(4).\n"S92"orientation has invalid value: ""orientation7o"\nReturning -5\n\n"o\ ush;returnA潷I۫5N;grr k=solve('v'F_;pt0ffhGë);=[LDFT2002.11.05.]T7TOUUDO:Explain.o=if(rr +6zffaxis$ѫ)f(t32Lϱ:alignffwithffaxis@x(r}'efffpt;pt1;'z');(c}'opy?W=NKt3Y2;(r}'efffptC=SGFt3];(pt0:0W=It3T Y;ggrealus4wpairCprrMuԫ;real*0pt0ffvB;=[LDFT2002.11.05.]T7V*ertical.o=real*0pt0ffhBPK;=[LDFT2002.11.05.]T7Horizontal.o=if(orientation4:WX_Y w)fpt0ffh8d6=pt00S:getffxg();pt0ffv80=pt00S:getffyt(); ;Ġn썷x9493DLDFPRÎGLOCAJTIONXOFAPOINT267n@Pg else*.6if5.(orientation4:WX_Z w)fpt0ffh8d6=pt00S:getffxg();pt0ffv80=pt00S:getffz();gelse*.6if5.(orientation4:WZ_Y w)fpt0ffh8d6=pt00S:getffz();pt0ffv80=pt00S:getffyt();gelse+fc}'err7|UƬ"ERROR! In Reg_Cl_Plopane_Curve::location(4).\n"S92"orientation has invalid value: ""orientation7o"\nReturning -5\n\n"o\ ush;returnA潷I۫5N;grr k=solve('v'F_;pt0ffhGë);=[LDFT2002.11.05.]T7TOUUDO:Explain.o=if(rr Q: rst|·INVALID_REALD<^8rr >1:se}'cond n߷INVALID_REALBM\)fif)(DEBUGY)f(c}'out> S"Point is outside rekgular closed plane cƠurve. " "Returning -1.\n"\M;(c}'out> S"Exiting Reg_Cl_Planke_Curve::location()\Ơn";greturnA潷I۫1N;gelse)if4:((fabs2ҫ(fabs(pt0ffvil)1fabsd(rr Q: rst)) S"Point is inside regkular closed plane cuƠrve. ""Returning 1.\n"WMP;(c}'out> S"Exiting Reg_Cl_Planke_Curve::location()\Ơn";(getcharI&();greturnA潫1F;gelse*.6if5.(fabs2ҫ(pt0ffvil)>fabs(rr -Q: rst))=ThisUUcaseshouldneveroGccur,Ibelieve.q[LDFT2002.11.05.]SzWhyUUnot??o=fif)(DEBUGY)f(c}'out>U"Point is outside rel~gular closed plane c~urve. "D"Returning -1.\n"`i<"Exiting Reg_Cl_Plane_Curve::location()\ n";(getcharI&();greturnA潷I۫1N;gelse+fc}'err7|UƬ"ERROR! In Reg_Cl_Plopane_Curve::location(4).\n"S92"This can't happen! Returning -3.\n"M ush; P'n썷x9463DLDFPRÎGLOCAJTIONXOFAPOINT265n@Pgetchar?%(); if)(DEBUGY)c}'out O"Exiting Reg_Cl_Planke_Curve::location()\Ơn";returnA潷I۫3N;g -g SeeXalsosections948,951,952,953,954,955,956,957,958,959,960,962,and965.ThisXcoU"Point is outside rel~gular closed plane c~urve. "D"Returning -1.\n"`i<"Exiting Reg_Cl_Plane_Curve::location()\ n";(getcharI&();greturnA潷I۫1N;gelse+fc}'err7|UƬ"ERROR! In Reg_Cl_Plopane_Curve::location(4).\n"S92"This can't happen! Returning -3.\n"M ush; L]n썫268LOCAJTIONXOFAPOINT3DLDFPRÎGx949n@Pgetchar?%(); if)(DEBUGY)c}'out O"Exiting Reg_Cl_Planke_Curve::location()\Ơn";returnA潷I۫3N;g +g SeeXalsosections951,954,955,956,957,958,959,960,961,962,963,965,and968.ThisXco 8BeginTLogJʄ`> +TheBversionsofinterse}'ctionffpointsTͫ()bGelongingtoclassesderivedfromRegus4wClus4Planeus4Curv9eo}twillmostlikelyP&callonthefunctionsdescribGedinthissection,cpassingc}'enter ׫asther}'efffpt?argument.However,cthisneednot[bGethecase,]iandRegus4wClus4Planeus4Curv9est8lneednothave[ameaningfulc}'entereW.+r}'efffpt inthesefunctionsmerelyUUreferstotheP9oint"DwhichshouldbGeplacedattheoriginbythetransformation.q[LDFT2003.07.16.]953. P9ointTarguments.9Ȅ`+U 8Log)j`+U [LDFT2003.06.20.]ZdRewrote~thisfunction. AThepGerpendicular~andnon-parallel,Bnon-coplanarcasesarehandledUUinexactlythesameway*.qInUUthesecases,therecanonlybGeoneintersectionpoint.Planeg::interse}'ctionffpointNګ()UUandRegus4wClus4Planeus4Curv9emL::lo}'cation#()arenowusedto ndit,ifitexists. [LDFT2003.06.20.]YThe!!coplanarcasewastheonethatwascausingdiculty*.*Thecopyof !"this-isnowalwayscputintothex-zplane,gevenifitisinoneofthema8jorplanes,gorinaplaneparalleltooneofthese.Theadvqantageofthis,Qisthatitsimpli esthecoGde.Thedisadvantageis,QthatadditionalrotationsreducetheUUaccuracyofthecalculationoftheintersectionpGoints. [LDFT2003.06.20.]YkT @@ -3513,16 +3558,16 @@ [LDFT2003.07.01.]Y9Addedtrue2assilentĮargumenttounitffve}'ctor4B()whenIcallitoncr}'osss./Thispreventsunitffve}'ctor0u()O]fromissuingawarningmessage,whencr}'ossثhasmagnitude0,whichoGccurswhensurfac}'effvectorand@ptffve}'ctor.1are@colinear.jSincethiscaseishandledcorrectly*,thewarningmessagesareunnecessaryanddistracting. [LDFT2003.07.01.]XBUG9FIX::Madechangestothewayonffse}'gment8risusedinthecoplanarcase.hThewayitUUwasbGeforehandledcertaincaseswrong. [LDFT2003.07.04.]XvRemovedunreachablestatementatendoffunction:)return'~Dbpp7u-.AHGCCòdidn'tcomplain,butUUtheDECcompilerissuedawarning. -[LDFT2003.07.16.]YChangedknameofc}'enter"kargumenttor}'efffpt],qbGecauseI'vemadec}'enter"kadatamembGerofUURegus4wClus4Planeus4Curv9elL.Ȅ` 8EndTLogA>`hDeclareUURegus4wClus4Planeus4Curv9eoBfunctions@940i+ aNn썷x9503DLDFPRÎGPOINTXARGUMENTS267n@P -virtual/bQoolus4wpoin9tus4pairinterse}'ctionffpoints(P9ointr}'efffpt7ᐱ;P9oint Ep0,;P9oint Ep1)UUconst*;951.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@946i+ -bQoolus4wpoin9tus4pair[Regus4wClus4Planeus4Curv9eŨ::interse}'ctionffpointsR(P9oint;r}'efffpt8-;P9oint tpt00O;P9oint tpt1)2constLRfUUbQoolDEBUG:,=falsev\;=true=if)(DEBUGY)(c}'out> S" *** Entering Reg_Ckl_Plane_Curve::","intersection_pointsk()\n"TM ush;bQoolus4wpoin9tus4pairodbpp"=INVALID_BOOL_POINT_PAIR| ;;Plane>6plJ3ޫ=getffplane+>();if)(DEBUGY)pl6 :normal V:show("pl.normal":FG);P9oint":show("cross"%FS);(pl16:normal V:show("pl.normal":FG);gshort;ʦdistanc}'eb׻=pl #:getffdistanc}'e4y(pt0i;):se}'condǫ;952. DegenerateTcases,errorhandling.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@946i+ +[LDFT2003.07.16.]YChangedknameofc}'enter"kargumenttor}'efffpt],qbGecauseI'vemadec}'enter"kadatamembGerofUURegus4wClus4Planeus4Curv9elL.Ȅ`GhDeclareUURegus4wClus4Planeus4Curv9eoBfunctions@943i+ ]n썫270POINTXARÎGUMENTS3DLDFPRGx953n@P +virtual/bQoolus4wpoin9tus4pairinterse}'ctionffpoints(P9ointr}'efffpt7ᐱ;P9oint Ep0,;P9oint Ep1)UUconst*;954.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@949i+ +bQoolus4wpoin9tus4pair[Regus4wClus4Planeus4Curv9eŨ::interse}'ctionffpointsR(P9oint;r}'efffpt8-;P9oint tpt00O;P9oint tpt1)2constLRfUUbQoolDEBUG:,=falsev\;=true=if)(DEBUGY)(c}'out> S" *** Entering Reg_Ckl_Plane_Curve::","intersection_pointsk()\n"TM ush;bQoolus4wpoin9tus4pairodbpp"=INVALID_BOOL_POINT_PAIR| ;;Plane>6plJ3ޫ=getffplane+>();if)(DEBUGY)pl6 :normal V:show("pl.normal":FG);P9oint":show("cross"%FS);(pl16:normal V:show("pl.normal":FG);gshort;ʦdistanc}'eb׻=pl #:getffdistanc}'e4y(pt0i;):se}'condǫ;955. DegenerateTcases,errorhandling.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@949i+ ifqv(ptffve}'ctor*jɷINVALID_POINTI?5_pl :normal#зINVALID_POINT_ptffve}'ctor,origino_pl:normal#зorigin9)fc}'err,e]"ERROR! In Reg_Cl_Plnyane_Curve:intersectiׯ=on_points():\n",-("Something is wrong with the normals:\n";ptffve}'ctor;:show("pt_vector:"?D);pl6 :normal V:show("pl.normal":FG);c}'err)|"Returning INVALID_BkOOL_POINT_PAIR.\n\n"  ush;if(DEBUGY)c}'out O"Exiting Polygon::inktersection_points().Ơ\n\n"T ush;return7INVALID_BOOL_POINT_PAIR,߫; -g953. P9arallelTandcoplanarcases.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@946i+ +g956. P9arallelTandcoplanarcases.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@949i+ else?if*(surfac}'effvector@ķptffve}'ctor*_\Rsurfac}'effvector@ 6ptffve}'ctor29_\Rcr}'osspl #:normal _\Rcr}'oss -6plA:normal V)f yun썫268COPLANARXCASE3DLDFPRÎGx954n@P954. CoplanarTcase.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@946i+ +6plA:normal V)f un썷x9573DLDFPRÎGCOPLANARXCASE271n@P957. CoplanarTcase.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@949i+ if(distanc}'e' 0)UUf if(DEBUGY)c}'out O"Line and Reg_Cl_Plakne_Curve are coplanaƠr.\n"; T @@ -3555,7 +3600,7 @@ if(DEBUGY)fc}'out* Q"After rotating so tkhe trace of curve_0 Ơis on x-axis:"!endlګ;c}'opy(:show("copy:"%FS);curveff06 {:show("curve_0"/M);pt0#i=:show("pt0"Y);pt1#i=:show("pt1"Y); g -ang=curveff0$ё:angleS(xffaxisffpt&); ՠn썷x9543DLDFPRÎGCOPLANARXCASE269n@P +ang=curveff0$ё:angleS(xffaxisffpt&); ߠn썫272COPLANARXCASE3DLDFPRÎGx957n@P if(ang6=0)f if(curveff0" y:getffyt()>0)ang=(/14;t0!=0curveff0Us=ept0w27=npt1=~c}'opy:r}'otateo>(0;0;angeN); g @@ -3581,23 +3626,23 @@ real /pt1ffv:㳫=pt10S:getffz();=pt1ffvisn'tUUused.qLeavingithere,justincase.[LDFT2003.08.27.]U$= real /Slop}'e;:=pt10S:slop}'e7˫(pt0i;;'x';'z'); if(DEBUGY)c}'out O"Slope == "?wSlop}'eNendl ush; -realus4wpair9prrCuӫ;=BEGIN= =n썫270COPLANARXCASE3DLDFPRÎGx955n@P955. SlopGeUUis0(lineishorizontal).hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@946i+ +realus4wpair9prrCuӫ;=BEGIN= Gn썷x9583DLDFPRÎGCOPLANARXCASE273n@P958. SlopGeUUis0(lineishorizontal).hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@949i+ if(Slop}'ek0)=vUUisknown,hisunknown.o= fif(DEBUGY)fc}'out4 R"Slope == 0"Etendl ush;grr k=solve('h'F_;pt0ffv);if(rr Q: rst|·6=INVALID_REALBM\)fbpp-: rst:pt 䝱:set x(rr Q: rst;0;pt0ffv);gelse+bpp;ʱ: rst:pt =INVALID_POINTGY;if(rr Q:se}'cond n߷6=INVALID_REALBM\)fbpp-:se}'condDZ:pt 䝱:set x(rr Q:se}'cond;0;pt0ffv);gelse+bpp;ʱ:se}'condDZ:pt =INVALID_POINTGY;if(DEBUGY)fbpp-: rst:pt 䝱:show("bpp.first.pt"J>);bpp-:se}'condDZ:pt 䝱:show("bpp.second.pt"OF;);g -g=EndUUSlop}'e0.o=956. SlopGeUUisunde ned(lineisvertical).hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@946i+ +g=EndUUSlop}'e0.o=959. SlopGeUUisunde ned(lineisvertical).hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@949i+ elseif(Slop}'ekINVALID_REALBM\)fif)(DEBUGY)f(c}'out> S"Line is vertical.\nk"qA;grr*l=solve('v'F_;pt1ffhGë);if)(rr Q: rst|·6=INVALID_REALBM\)f(bpp7: rst:pt 䝱:set x(pt0ffh;0;rr : rst);gelse5bppE˱: rst:pt =INVALID_POINTGY;if)(rr -Q:se}'cond n߷6=INVALID_REALBM\)f(bpp7:se}'condDZ:pt 䝱:set x(pt0ffh;0;rr :se}'cond);gelse5bppE˱:se}'condDZ:pt =INVALID_POINTGY;g=EndUUSlop}'eINVALID_REALBM\.o= on썷x9573DLDFPRÎGCOPLANARXCASE271n@P957. SlopGeUU2realisde nedand6=0.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@946i+ +Q:se}'cond n߷6=INVALID_REALBM\)f(bpp7:se}'condDZ:pt 䝱:set x(pt0ffh;0;rr :se}'cond);gelse5bppE˱:se}'condDZ:pt =INVALID_POINTGY;g=EndUUSlop}'eINVALID_REALBM\.o= yn썫274COPLANARXCASE3DLDFPRÎGx960n@P960. SlopGeUU2realisde nedand6=0.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@949i+ else!freal*0vffinter}'ceptYҫ;vffinter}'ceptE=pt0ffvid8(Slop}'e3pt0ffh);if(DEBUGY)c}'out O"v_intercept == "_Tevffinter}'cept4ҷendl ush;realus4wtripleJfc}'oe sfhD=getffc}'oecientsC(Slop}'eS;vffinter}'cept0J);=NewUUh-vqalues.o=if(isffquadr}'atic3())fif)(DEBUGY)f(c}'out> S"Solving quadratic.\kn"yV ush;grr*l=solveffquadr}'aticD{ҫ(c}'oe sƱ: rst;c}'oe sn:se}'condDZ;c}'oe s:thir}'dj);gelse+fc}'out4 R"Not a quadratic. "i_"Haven't programmed kthis case yet.\n"T) ush;greal*0vffc}'oordK$;if(rr Q: rst|·6=INVALID_REALBM\)fvffc}'oordA7=(Slop}'e38rr >1: rst)8+vffinter}'cept1f;bpp-: rst:pt 䝱:set x(rr Q: rst;0;vffc}'oord");gelse+bpp;ʱ: rst:pt =INVALID_POINTGY;if(rr Q:se}'cond n߷6=INVALID_REALBM\)fvffc}'oordA7=(Slop}'e38rr >1:se}'condǫ)8+vffinter}'cept1f;bpp-:se}'condDZ:pt 䝱:set x(rr Q:se}'cond;0;vffc}'oord");gelse+bpp;ʱ:se}'condDZ:pt =INVALID_POINTGY; -g n썫272COPLANARXCASE3DLDFPRÎGx958n@P958. CommonUUcoGdeforthe\coplanar"case.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@946i+ +g n썷x9613DLDFPRÎGCOPLANARXCASE275n@P961. CommonUUcoGdeforthe\coplanar"case.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@949i+ bQoolus4wreal;@onffse}'gmentm; if(bpp: rst:pt INVALID_POINTGY)fonffse}'gmentF_n: rst|«=falsev\;onffse}'gmentF_n:se}'cond n߫=INVALID_REALBM\; g @@ -3626,88 +3671,90 @@ g if(DEBUGY)fc}'out* Q"rr.first == "Onrr i: rst|·endl ush;c}'out* Q"rr.second == "Tkrr i:se}'cond n߷endl ush;c}'out* Q"bpp.first.b == "_Tebpp: rst:b·endl ush;c}'out* Q"bpp.second.b == "dbbpp:se}'condDZ:b·endl ush;bpp#: rst:pt 䝱:show("bpp.first.pt"J>);bpp#:se}'condDZ:pt 䝱:show("bpp.second.pt"OF;); g -return-bpp=ݤ;qǷg=EndUUofcoplanarcase.o= n썷x9593DLDFPRÎG(&PJARALLELXCASE273n@P959. P9arallelTcase.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@946i+ +return-bpp=ݤ;qǷg=EndUUofcoplanarcase.o= n썫276PJARALLELXCASE(&3DLDFPRÎGx962n@P962. P9arallelTcase.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@949i+ else!fc}'err+HS"WARNING! In Reg_Cl_nHPlane_Curve::interseGction_points():\n";`("Line and Reg_Cl_Plane_Curve are in parallel planes.\n"On("No intersections. Returning INVALID_BOOL_POINT_PAIR."Fendlendl ush;return7INVALID_BOOL_POINT_PAIR,߫; g -g=EndUUofparallelandcoplanarcases.o=960. P9erpQendicularandnon-coplanarcases.[LDFT2003.06.13.]ZThesecasesarehandledinexactlytheUUsameway*.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@946i+ +g=EndUUofparallelandcoplanarcases.o=963. P9erpQendicularandnon-coplanarcases.[LDFT2003.06.13.]ZThesecasesarehandledinexactlytheUUsameway*.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@949i+ else!fif(pl 6 :normal#зptffve}'ctor,_8pl n:normal 6ptffve}'ctor21)fif)(DEBUGY)(c}'out> S"The line is perpendkicular to the "/"Reg_Cl_Plane_Curve.k\n"~S ush;gelse+fif)(DEBUGY)(c}'out> S"The line and the Rekg_Cl_Plane_Curve "͔&"are non-coplanar.\nk"tTY ush;gbQoolus4wpoin9tLbpZI.=pl #:interse}'ctionffpointM֫(pt0i;;pt1);if(DEBUGY)fbp(|:pt 䝱:show("bp.pt"%FS);gshort1ʥs9A=lo}'cation%(r}'efffpt;bp !:pt 䝫);if(DEBUGY)c}'out O"location: s == "_Tes >0endl ush;if(sw> 617)fbpp-: rst:pt =bp :pt 䝫;bpp-: rst:b«=bp :pt 䝱:isffonffse}'gment=5O(pt0i;;pt1): rst;if)(DEBUGY)c}'out O"On segment: == "_Tebpp: rst:b·endl ush;returnAbppQݦ;gelse+returnOINVALID_BOOL_POINT_PAIR; g=EndUUof\PerpGendicularandnon-coplanarcases".o= -g961. P9athTarguments.U9Ȅ`> 8BeginTLogJʄ`> +g964. P9athTarguments.9Ȅ`+U 8Log)j`+U [LDFT2003.06.20.]Y;AddedUUthisfunction. -[LDFT2003.07.16.]YChangedknameofc}'enter"kargumenttor}'efffpt],qbGecauseI'vemadec}'enter"kadatamembGerofUURegus4wClus4Planeus4Curv9elL.Ȅ` 8EndTLogA>`hDeclareUURegus4wClus4Planeus4Curv9eoBfunctions@940i+ -bQoolus4wpoin9tus4pair[dinterse}'ctionffpointsΫ(const*P9oint=?&D]r}'efffpt]P;constJP9ath;&C!pH!)UUconst*; $n썫274P -ATHXARÎGUMENTS3DLDFPRGx962n@P962.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@946i+ +[LDFT2003.07.16.]YChangedknameofc}'enter"kargumenttor}'efffpt],qbGecauseI'vemadec}'enter"kadatamembGerofUURegus4wClus4Planeus4Curv9elL.Ȅ`GhDeclareUURegus4wClus4Planeus4Curv9eoBfunctions@943i+ +bQoolus4wpoin9tus4pair[dinterse}'ctionffpointsΫ(const*P9oint=?&D]r}'efffpt]P;constJP9ath;&C!pH!)UUconst*; .n썷x9653DLDFPRÎGP +ATHXARGUMENTS277n@P965.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@949i+ bQoolus4wpoin9tus4pair[Regus4wClus4Planeus4Curv9ey::interse}'ctionffpointsR(constGP9oint=T?&E]r}'efffpt^ P;constJP9ath;&C!pH!)2const fif(:p:isffline}'ar%}())fc}'err6DK"ERROR! In Reg_Cl_PlnK_ane_Curve::intersectK#ion_points():\n"12"Path argument p is non-linear. ""Returning INVALID_BkOOL_POINT_PAIR.\n\n"q2 ushG;returnAINVALID_BOOL_POINT_PAIR,;greturn7interse}'ctionffpointss(r}'efffpt;p:getffp}'oint'bH(0);p:getfflastffp}'oint:$>()); -g963. Regffs4#Clffs4Planeffs4Curv9eTsegments.TheUUfunctionsinthissectionrequirethattheRegus4wClus4Planeus4Curv9em;haveameaningfulc}'enter .,winordertomakeitpGossibletorotatethesegments.[LDFT2003.07.16.]c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.16.]ZFAddedthissectionanditssubsections,includingthedeclarationsandde nitionsofse}'gment#(),UUhalf(),UUandquarter$Z().qTheywereformerlymembGersofCircle!.Ȅ` 8EndTLogA>`964. Segmen9t.[LDFT2002.11.10.][se}'gment()m +g966. Regffs4#Clffs4Planeffs4Curv9eTsegments.TheUUfunctionsinthissectionrequirethattheRegus4wClus4Planeus4Curv9em;haveameaningfulc}'enter .,winordertomakeitpGossibletorotatethesegments.[LDFT2003.07.16.]N99Ȅ`+U 8Log)j`+U +[LDFT2003.07.16.]ZFAddedthissectionanditssubsections,includingthedeclarationsandde nitionsofse}'gment#(),UUhalf(),UUandquarter$Z().qTheywereformerlymembGersofCircle!.Ȅ`G967. Segmen9t.[LDFT2002.11.10.][se}'gment()m returnsasubpathoftheRegus4wClus4Planeus4CurveqѬrepre-sentingUUasegmentofUVthisA .in9tfactorLDetermineshowlargeasegmentoftheRegus4wClus4Planeus4Curv9ep\Ϋisreturned.factor$@mustLbGeUU>1andlessthanorequaltothenumberUUofpointsontheRegus4wClus4Planeus4Curv9elL.real.angleLOptional,with|0asthedefault.=Ifangleϫis6=0,aP9oint#a@isfoundinthedirectionoftheLnormalrtotheRegus4wClus4Planeus4Curv9en|fromthecenteroftheRegus4wClus4Planeus4Curv9ek ,andLtheUUsegmentisrotatedaroundthecenterandthisP9oint.bQoolfclose}'dLIfFtrue @,|theFP9athisFmadea\cycle"andtheendsofthesegmentarejoinedbyconcatenatingLthe6curvedP9ath Ыwiththestraightlinesegmentfromitslasttoits rstP9oint#usingtheLconnectorUU"&". -[LDFT2003.07.27.]Z{lTO&DO:ȆMakeargumentsconstӫ,%RifpGossible.Zangle%T3can'tbe,%Rthough.ZIffactor$ numb}'erffofffpointsJ,UUreturnUVthisA ,casttoaP9ath湫,withwarning.U9Ȅ`> 8BeginTLogJʄ`> +[LDFT2003.07.27.]Z{lTO&DO:ȆMakeargumentsconstӫ,%RifpGossible.Zangle%T3can'tbe,%Rthough.ZIffactor$ numb}'erffofffpointsJ,UUreturnUVthisA ,casttoaP9ath湫,withwarning.9Ȅ`+U 8Log)j`+U [LDFT2002.11.12.]Z8Added\\relax V"aftertheargumentsto\\ARG\"intheTU>VExXcoGdeaboveinordertosuppressOaspaceatthebGeginningofthe rstlineofthefollowingindentedparagraph.oIOcouldn't gureoutaUUwayofsuppressingthespacewithinthede nitionof\ARG۱. [LDFT2003.05.20.]Y;ChangedUUthewayUUthelastconnectorissetwhenclose}'d!5true. [LDFT2003.07.27.]Y;MadeUUconst*. -[LDFT2003.08.20.]ZmBUGuFIX:Addedunsigned6W]shortU}subp}'athffsize.=Changedthewaythesubpathiscreated, whenclose}'d"Ristruey.,kNowconcatenatingthecurvedsubpathwiththestraightlinesegmentfromtheUUlasttothe rstP9oints&.ofthesubpathusing"&".Ȅ` 8EndTLogA>`hDeclareUURegus4wClus4Planeus4Curv9eoBfunctions@940i+ -P9ath%se}'gmentI[(unsigned07in9tAfactor\;real]angle2A=0;bQoolLclose}'d9,=true)UUconst*; ܏n썷x9653DLDFPRÎG7SEGMENT275n@P965.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@946i+ +[LDFT2003.08.20.]ZmBUGuFIX:Addedunsigned6W]shortU}subp}'athffsize.=Changedthewaythesubpathiscreated, whenclose}'d"Ristruey.,kNowconcatenatingthecurvedsubpathwiththestraightlinesegmentfromtheUUlasttothe rstP9oints&.ofthesubpathusing"&".Ȅ`GhDeclareUURegus4wClus4Planeus4Curv9eoBfunctions@943i+ +P9ath%se}'gmentI[(unsigned07in9tAfactor\;real]angle2A=0;bQoolLclose}'d9,=true)UUconst*; nn썫278SEGMENT73DLDFPRÎGx968n@P968.hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@949i+ P9ath%Regus4wClus4Planeus4Curv9eV::se}'gment$(unsigned07in9tAfactor\;real]angle0);bQoolLclose}'d6e)UUconst fP9ath/滱p4;if(factor1 _8factor ֱ>numb}'erffofffpointsM)fc}'err7˷""ERROR! In Reg_Cl_Ploane_Curve::segment():\n"X(2"The argument factor has an invalid value:\n"$Ʒ factor'2"\nReturning empty Path.\n\n";returnA潱pF;gif(fabs2ҫ(angleS)>360)fc}'err7Y߷6"WARNING! In Reg_Cl_oPlane_Curve::segmentأ():\n"NJ2"The argument angle is greater than 360: "}angle"y}endl2"It will be reduced.\n\n": ush;gunsignedD7shortbsubp}'athffsize_=(numb}'erffofffpointsJ=factorޫ)8+18;p=subp}'ath$Az(0;subp}'athffsize6<;falseY;".."1);for%舫(unsigned07shortNiT:=1;i 9 <subp}'athffsize9818;++Gi)p +=$l".."4ȫ;if(close}'d)fp%+=8$o"&"HjΫ;p%+=8$op=,o:getfflastffp}'oint:$>();p%+=8$o"--"M˫;p%+=8$op=,o:getffp}'oint'bH(0);p%+=8$o"&"HjΫ;p#:setffcycle&*();gangle.m=fmo}'dG(angleS;360);if(anglek6=0)fP9ointV:shift}(c}'enter );p#:r}'otateo>(c}'enter ;normal"`;anglej);greturn7漱p<; -g966. Half.half()}createsacurveusinghalfofthepGointsinp}'oints GstartingfrompGoint0.0Iftheargumentangleis 8BeginTLogJʄ`> +hDe neUUclass5Regus4wClus4Planeus4Curv9emB941i +hDe neUURegus4wClus4Planeus4Curv9eoBfunctions@949i Yn썫280PUTTINGXREGffs4#CLffs4PLANEffs4CURVETOGETHER}23DLDFPRÎGx972n@P972. ThisUUiswhat'swrittentocurves.h.܍hcurves.h5972i +hDe neUUclass5Regus4wClus4Planeus4Curv9emB941i973. P9olygon(polygons.web).?򍍟9Ȅ`+U 8Log)j`+U [LDFT2003.07.18.]XRemovedthetransformationsectionsfromRegus4wP9olygonD,&andmadethemmembGersofP9olygon).qAlso,UUremovedtheRectangle8?versionsinrectangs.web. -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>` -format3c(Polygon_:PathhV*ersionUUcontrolidenti er@10i+971. IncludeT les.hIncludeUU les@11i+#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"972. P9olygonԌclassde nition.LDF3 Undated. P9olygon4Cis3CderivedfromP9athħ. Thismakessense,bGecauseMaP9olygon/isreallyjustakindofP9athL.oMThisway*,OdweMdon'thaveMtode nethedrawingand llingfunctions,UUorthetransformations. -[LDFT2003.06.06.]Y^P9olygonīis!xmeanttobGeusedprimarilyasabaseclassformorespecializedtypesofpGolygons.pCurrently*,wRegus4wP9olygonHg]andpRectangle9![arepde ned.I'vepaddedP9olygon/洫sothatIpcande neintersectionUUfunctionsthatwillworkforbGothRegus4wP9olygonH)^andRectangle5.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.06.]Y;AddedUUclass5P9olygonG:.Ȅ` 8EndTLogA>`hDe neUUclass5P9olygonKz972i +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`G +format3c(Polygon_:PathhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: polygons.web,vk 1.2 2003/12/10 16:2Ơ4:07 lfinsto1 Exp $">L̫;974. IncludeT les.hIncludeUU les@11i+#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. P9olygonԌclassde nition.LDF3 Undated. P9olygon4Cis3CderivedfromP9athħ. Thismakessense,bGecauseMaP9olygon/isreallyjustakindofP9athL.oMThisway*,OdweMdon'thaveMtode nethedrawingand llingfunctions,UUorthetransformations. +[LDFT2003.06.06.]Y^P9olygonīis!xmeanttobGeusedprimarilyasabaseclassformorespecializedtypesofpGolygons.pCurrently*,wRegus4wP9olygonHg]andpRectangle9![arepde ned.I'vepaddedP9olygon/洫sothatIpcande neintersectionUUfunctionsthatwillworkforbGothRegus4wP9olygonH)^andRectangle5.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.06.]Y;AddedUUclass5P9olygonG:.Ȅ`GhDe neUUclass5P9olygonKz975i class$RP9olygonQ::qpublic'P9athB몷f protected:o:P9oint#c}'enter?(; -public)=֫:hDeclareUUP9olygon/functions@975i -g; ThisXco 8BeginTLogJʄ`> -[LDFT2003.07.18.]XMoved thesefunctionsfromRegus4wP9olygonG>toP9olygon,.YAlsoremoved theRectangleversions,UUsinceRectangle8?inheritstheP9olygon/versions.Ȅ` 8EndTLogA>`975. non-constTv9ersion.9Ȅ`> 8BeginTLogJʄ`> +public)=֫:hDeclareUUP9olygon/functions@978i +g; ܍ThisXcotoP9olygon,.YAlsoremoved theRectangleversions,UUsinceRectangle8?inheritstheP9olygon/versions.Ȅ`G978. non-constTv9ersion.9Ȅ`+U 8Log)j`+U [LDFT2002.04.24.]Y;AddedUUthisfunction. -[LDFT2003.05.09.]Y;ChangedUUreturnvqaluefromP9oint"D&-aetoconst!P9oint@o&H6.Ȅ` 8EndTLogA>`hDeclareUUP9olygon/functions@975i -virtual/constMvP9ointl&to1getffc}'enterx(); SeeXalsosections977,981,990,992,998,1000,1003,1005,1007,1009,1012,1014,1017,and1019.ThisXco 8BeginTLogJʄ`> +g982. In9tersections.983. In9tersectionGwithaline.[LDFT2003.06.13.]ZAlinecanintersectwithaP9olygon0vattwopGoints atUUmost.984. P9ointTversion.9Ȅ`+U 8Log)j`+U [LDFT2003.06.13.]Y;AddedUUthisfunction. -[LDFT2003.06.17.]Y;MinorUUchange.qNowusinggetffp}'oint*(0)andc}'enter"5insteadofgetffp}'oint(0)andgetfflastffp}'oint:$>()UUtogeneratesurfac}'effvectorA.Ȅ` 8EndTLogA>`hDeclareUUP9olygon/functions@975i+ -bQoolus4wpoin9tus4pair[dinterse}'ctionffpointsΫ(const*P9oint=?&D]pt0TJ;constJP9oint>&Fpt1U@)UUconst*;n썫280POINTXVERSIONP3DLDFPRÎGx982n@P982.hDe neUUP9olygon/functions@976i+ -bQoolus4wpoin9tus4pair[~HP9olygon:::interse}'ctionffpointsR(constCP9oint=L&Ept0T}J;constP9oint>&Fpt1V')nconstCfnbQool2DEBUGOv=falsev\;=trueĒ=if)(DEBUGY)c}'out O"Entering Polygon::ikntersection_points()Ơ.\n" ush;DEBUG;t=falsev\;bQoolus4wpoin9tus4pairoHbppɫ=INVALID_BOOL_POINT_PAIR| ;;=ԫThe9,returnvqalue.hd[LDFT2003.06.13.]T=Plane>6plJ3ޫ=getffplane+>();P9oint":show("cross"%FS);(pl16:normal V:show("pl.normal":FG);gshort;ʦdistanc}'eb׻=pl #:getffdistanc}'e4y(pt0i;):se}'condǫ;983. DegenerateTcases,errorhandling.hDe neUUP9olygon/functions@976i+ +[LDFT2003.06.17.]Y;MinorUUchange.qNowusinggetffp}'oint*(0)andc}'enter"5insteadofgetffp}'oint(0)andgetfflastffp}'oint:$>()UUtogeneratesurfac}'effvectorA.Ȅ`GhDeclareUUP9olygon/functions@978i+ +bQoolus4wpoin9tus4pair[dinterse}'ctionffpointsΫ(const*P9oint=?&D]pt0TJ;constJP9oint>&Fpt1U@)UUconst*;n썷x9853DLDFPRÎGPPOINTXVERSION283n@P985.hDe neUUP9olygon/functions@979i+ +bQoolus4wpoin9tus4pair[~HP9olygon:::interse}'ctionffpointsR(constCP9oint=L&Ept0T}J;constP9oint>&Fpt1V')nconstCfnbQool2DEBUGOv=falsev\;=trueĒ=if)(DEBUGY)c}'out O"Entering Polygon::ikntersection_points()Ơ.\n" ush;DEBUG;t=falsev\;bQoolus4wpoin9tus4pairoHbppɫ=INVALID_BOOL_POINT_PAIR| ;;=ԫThe9,returnvqalue.hd[LDFT2003.06.13.]T=Plane>6plJ3ޫ=getffplane+>();P9oint":show("cross"%FS);(pl16:normal V:show("pl.normal":FG);gshort;ʦdistanc}'eb׻=pl #:getffdistanc}'e4y(pt0i;):se}'condǫ;986. DegenerateTcases,errorhandling.hDe neUUP9olygon/functions@979i+ ifqv(ptffve}'ctor*jɷINVALID_POINTI?5_pl :normal#зINVALID_POINT_ptffve}'ctor,origino_pl:normal#зorigin9)fc}'err-P"ERROR! In Polygon::pintersection_points():\n"ց("Something is wrong with the normals:\n";ptffve}'ctor;:show("pt_vector:"?D);pl6 :normal V:show("pl.normal":FG);c}'err)|"Returning INVALID_BkOOL_POINT_PAIR.\n\n"  ush;if(DEBUGY)c}'out O"Exiting Polygon::inktersection_points().Ơ\n\n"T ush;return7INVALID_BOOL_POINT_PAIR,߫; -g984. P9arallelTandcoplanarcases.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.20.]Y;NowUUcheckingsurfac}'effvectorDiVagainstptffve}'ctor.N[inthefollowingconditional.Ȅ` 8EndTLogA>`hDe neUUP9olygon/functions@976i+ +g987. P9arallelTandcoplanarcases.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.20.]Y;NowUUcheckingsurfac}'effvectorDiVagainstptffve}'ctor.N[inthefollowingconditional.Ȅ`GhDe neUUP9olygon/functions@979i+ else?if*(surfac}'effvector@ķptffve}'ctor*_\Rsurfac}'effvector@ 6ptffve}'ctor29_\Rcr}'osspl #:normal _\Rcr}'oss -6plA:normal V)f$0n썷x9853DLDFPRÎGCOPLANARXCASE281n@P985. Coplanarcase.[LDFT2003.06.13.][Only]thoseintersectionpGointsthatareonthelinesegments makingM-oftheP9olygon/HarereturnedinbppD.oIfanintersectionP9oint"4liesonbGothsegments,NthebQoolkpartofthebQoolus4wpoin9t:ЫwillbGetrue],{otherwisefalseu .AIfaP9oint!%ҫliesonalinesegmentbelongingtotheP9olygon+ʳ,butdZnottothelinesegmentf ڔ>=Q!&pt0|spt1$,htheP9oint"bwillbGeputintothebQoolus4wpoin9t8,hbutthebQoolūwillbGefalse.Thereasonforthisis,>thattheanglesofthesidesoftheP9olygon/ cancauseintersectionpGointstobGefound,thatUUtheuserprobablywon'twant.hDe neUUP9olygon/functions@976i+ +6plA:normal V)f n썫284COPLANARXCASE3DLDFPRÎGx988n@P988. Coplanarcase.[LDFT2003.06.13.][Only]thoseintersectionpGointsthatareonthelinesegments makingM-oftheP9olygon/HarereturnedinbppD.oIfanintersectionP9oint"4liesonbGothsegments,NthebQoolkpartofthebQoolus4wpoin9t:ЫwillbGetrue],{otherwisefalseu .AIfaP9oint!%ҫliesonalinesegmentbelongingtotheP9olygon+ʳ,butdZnottothelinesegmentf ڔ>=Q!&pt0|spt1$,htheP9oint"bwillbGeputintothebQoolus4wpoin9t8,hbutthebQoolūwillbGefalse.Thereasonforthisis,>thattheanglesofthesidesoftheP9olygon/ cancauseintersectionpGointstobGefound,thatUUtheuserprobablywon'twant.hDe neUUP9olygon/functions@979i+ if(distanc}'e' 0)fif(DEBUGY)c}'out O"Line and Polygon arke coplanar.\n";bQool-hfoundJ:=falsev\;bQoolus4wpoin9tLbpW;P9oint2q0>;P9oint2q1>;if(DEBUGY)show("this" V);for%舫(v9ectorHhP9oint#i::Bc}'onstffiteratorCiterW=p}'oints뭱:b}'egin();iter6=p}'oints:endಫ();++Giter")fif)((iterޫ+818)p}'oints뭱:endಫ())f(if3(DEBUGY)c}'out O"Doing last segment.k\n"| ;;(q06[=(p}'oints$:b}'ackë());(q16[=(p}'oints$:fr}'ontI());gelse5f(if3(DEBUGY)c}'out O"Doing normal segmenkt.\n"5;(q06[= iter;(q16[= (iterޫ+818);gbp+=P9ointad::%interse}'ctionffpointsx(pt0i;;pt1;q0 >;q1);if)(bp y:bJ)=IntersectionUUpGointisonbGothsegments.o=f(if3(:foundw)f2bppA: rst:b«=true;2bppA: rst:pt =bp :pt 䝫;2foundN=true;2if=(DEBUGY)c}'out O"Found first intersekction.\n");(g(else?f2bppA:se}'condDZ:b«=true;2bppA:se}'condDZ:pt =bp :pt 䝫;2if=(DEBUGY)c}'out O"Found second interskection. Returning.\nƠ"ڍ;2returnUbppeݨ;(ggelse4.7if?/(bp -y:pt 6=INVALID_POINTI9^8bp Y:pt 䝱:isffonffse}'gment=5O(q0 ;q1 >): rst)f(if3(:foundw)f2bppA: rst:b«=falsev\;2bppA: rst:pt =bp :pt 䝫;2foundN=true;2if=(DEBUGY)c}'out O"Found first intersekction.\n");(g(else?f2bppA:se}'condDZ:b«=falsev\;2bppA:se}'condDZ:pt =bp :pt 䝫;3n썫282COPLANARXCASE3DLDFPRÎGx985n@P2if=(DEBUGY)c}'out O"Found second interskection. Returning.\nƠ"ڍ; 2returnUbppeݨ;(ggelse5con9tinue`;g=for+=return7bppGݥ; -g=EndUUofcoplanarcase.o=986. P9arallelTcase.hDe neUUP9olygon/functions@976i+ +y:pt 6=INVALID_POINTI9^8bp Y:pt 䝱:isffonffse}'gment=5O(q0 ;q1 >): rst)f(if3(:foundw)f2bppA: rst:b«=falsev\;2bppA: rst:pt =bp :pt 䝫;2foundN=true;2if=(DEBUGY)c}'out O"Found first intersekction.\n");(g(else?f2bppA:se}'condDZ:b«=falsev\;2bppA:se}'condDZ:pt =bp :pt 䝫;0Rn썷x9883DLDFPRÎGCOPLANARXCASE285n@P2if=(DEBUGY)c}'out O"Found second interskection. Returning.\nƠ"ڍ; 2returnUbppeݨ;(ggelse5con9tinue`;g=for+=return7bppGݥ; +g=EndUUofcoplanarcase.o=989. P9arallelTcase.hDe neUUP9olygon/functions@979i+ else!fc}'err-y d"WARNING! In Polygono(::intersection_points():\n"̣("Line and Polygon are in parallel planes.\n"P("No intersections. Returning INVALID_BOOL_POINT_PAIR."Fendlendl ush;return7INVALID_BOOL_POINT_PAIR,߫; g -g=EndUUofparallelandcoplanarcases.o=Cn썷x9873DLDFPRÎG6PERPENDICULARXANDNON-COPLANARCASES283n@P987. P9erpQendicularandnon-coplanarcases.[LDFT2003.06.13.]ZThesecasesarehandledinexactly theUUsameway*.hDe neUUP9olygon/functions@976i+ +g=EndUUofparallelandcoplanarcases.o=@.n썫286PERPENDICULARXANDNON-COPLANARCASES63DLDFPRÎGx990n@P990. P9erpQendicularandnon-coplanarcases.[LDFT2003.06.13.]ZThesecasesarehandledinexactly theUUsameway*.hDe neUUP9olygon/functions@979i+ else .5f if(pl 6 :normal#зptffve}'ctor,_8pl n:normal 6ptffve}'ctor21)fif(DEBUGY)c}'out O"The line is perpendkicular to the PolygoƠn.\n"T ush; @@ -3733,481 +3780,495 @@ y:pt r01_8bp Y:ptr1 ݫ)fif(DEBUGY)fif)(bp y:pt r0 ݫ)c}'out O"bp.pt == r0."Onendl ush;else4.7if?/(bp y:pt r1 ݫ)c}'out O"bp.pt == r1."Onendl ush;gbpp#: rst:pt =bp :pt 䝫;bpp#: rst:b«=bp :pt 䝱:isffonffse}'gment=5O(pt0i;;pt1): rst;return7bppGݥ; -gGn썫284PERPENDICULARXANDNON-COPLANARCASES63DLDFPRÎGx988n@P988. [LDFT2003.06.24.]Z6DEBUGxisUUpassedastheverb}'ose'<argumenttoisffinfftriangle<().qSo,if interse}'ctionffpointsQ߫()DisbGeingdebugged,isffinfftriangle>g()willprintmoreinformation.> However,DEBUG#5inisffinfftriangle9()UUwillnotbGesettotrue.hDe neUUP9olygon/functions@976i+ +gDCn썷x9913DLDFPRÎG6PERPENDICULARXANDNON-COPLANARCASES287n@P991. [LDFT2003.06.24.]Z6DEBUGxisUUpassedastheverb}'ose'<argumenttoisffinfftriangle<().qSo,if interse}'ctionffpointsQ߫()DisbGeingdebugged,isffinfftriangle>g()willprintmoreinformation.> However,DEBUG#5inisffinfftriangle9()UUwillnotbGesettotrue.hDe neUUP9olygon/functions@979i+ elseif(bp y:pt 䝱:isffinfftriangle9(c}'enter ;r0 m;r1;DEBUGq))fif)(DEBUGY)c}'out O"Intersection point kis within triangle.\Ơn";bpp-: rst:pt =bp :pt 䝫;bpp-: rst:b«=bp :pt 䝱:isffonffse}'gment=5O(pt0i;;pt1): rst;returnAbppQݦ;g -gUUg=Endof\PerpGendicularandnon-coplanarcases".o=989. EndTofde nition.hDe neUUP9olygon/functions@976i+ +gUUg=Endof\PerpGendicularandnon-coplanarcases".o=992. EndTofde nition.hDe neUUP9olygon/functions@979i+ if(DEBUGY)c}'out O"Exiting Polygon::inktersection_points().Ơ\n\n"T ush; -return-bpp=ݤ;qǷg990. P9athTversion.hDeclareUUP9olygon/functions@975i+ -bQoolus4wpoin9tus4pair[dinterse}'ctionffpointsΫ(const*P9ath:[&AypFy)UUconst*;991.hDe neUUP9olygon/functions@976i+ +return-bpp=ݤ;qǷg993. P9athTversion.hDeclareUUP9olygon/functions@978i+ +bQoolus4wpoin9tus4pair[dinterse}'ctionffpointsΫ(const*P9ath:[&AypFy)UUconst*;994.hDe neUUP9olygon/functions@979i+ bQoolus4wpoin9tus4pair[dP9olygoni::interse}'ctionffpointsR(const*P9ath:[&AypFy)UUconst fif(:p:isffline}'ar%}())fc}'err5Y"ERROR! In Polygon::ntintersection_points(8const Path& p):\n";2"Path p is non-linear. Returning INVALID_BOOL_POINT_PAIR.\nlQ\n" ȷ ush;returnAINVALID_BOOL_POINT_PAIR,;greturn7interse}'ctionffpointss(p:getffp}'oint'bH(0);p:getfflastffp}'oint:$>()); -g992. In9tersectionwithanotherPolygon. TODO:7ExplainwhatthisfunctiondoGesandhowitworks.[LDFT2003.06.29.] -TOKDO:ZFindoutwhereunitffve}'ctor3ϫ()getscalled,$whenthisfunctioniscalled,andtrytopasstrueLasitssilent iargument.q[LDFT2003.07.16.]c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.29.]Y;ReplacedUUthedummyde nitionofthisfunctionwitharealone.Ȅ` 8EndTLogA>`hDeclareUUP9olygon/functions@975i+ -v9ector)IhP9ointHiUUinterse}'ctionffpointsT4(const*P9olygonJ&RLrW)UUconst*;Urn썷x9933DLDFPRÎGINTERSECTIONXWITHANOTHERPOL -YGON285n@P993.hDe neUUP9olygon/functions@976i+ -v9ector)IhP9ointHiUUP9olygon-ZG::interse}'ctionffpointsR(const*P9olygonJ&RLrW)UUconst*fUUbQoolDEBUG:,=falsev\;(=trueĒ=v9ector=KhP9ointHiUUv;Plane>6plJ3ޫ=getffplane+>();Plane>6rffplRf=r,:getffplane(v();if)(DEBUGY)f(pl16:normal V:show("pl.normal":FG);(rffpl9:normal V:show("r_pl.normal"DA);(c}'out> S"pl.distance == "_Tepl #:distanc}'e' endl ush;(c}'out> S"r_pl.distance == "i_rffpl⫱:distanc}'e' endl ush;greal41distanc}'e[F=fabs(fabs2ҫ(pl 6 :distanc}'e$E)8fabsk(rffpl:distanc}'e));if)(distanc}'e' <P9ointad::%epsilonE^())distanc}'e, =0;if)(DEBUGY)c}'out O"distance == "Ondistanc}'e)-endl ush;if)(pl 6 :normal#зrffpl⫱:normal V)UUf994. CoplanarTcase.hDe neUUP9olygon/functions@976i+ +g995. In9tersectionwithanotherPolygon. TODO:7ExplainwhatthisfunctiondoGesandhowitworks.[LDFT2003.06.29.] +TOKDO:ZFindoutwhereunitffve}'ctor3ϫ()getscalled,$whenthisfunctioniscalled,andtrytopasstrueLasitssilent iargument.q[LDFT2003.07.16.]N99Ȅ`+U 8Log)j`+U +[LDFT2003.06.29.]Y;ReplacedUUthedummyde nitionofthisfunctionwitharealone.Ȅ`GhDeclareUUP9olygon/functions@978i+ +v9ector)IhP9ointHiUUinterse}'ctionffpointsT4(const*P9olygonJ&RLrW)UUconst*; Rn썫288INTERSECTIONXWITHANOTHERPOL +YGONĭ3DLDFPRÎGx996n@P996.hDe neUUP9olygon/functions@979i+ +v9ector)IhP9ointHiUUP9olygon-ZG::interse}'ctionffpointsR(const*P9olygonJ&RLrW)UUconst*fUUbQoolDEBUG:,=falsev\;(=trueĒ=v9ector=KhP9ointHiUUv;Plane>6plJ3ޫ=getffplane+>();Plane>6rffplRf=r,:getffplane(v();if)(DEBUGY)f(pl16:normal V:show("pl.normal":FG);(rffpl9:normal V:show("r_pl.normal"DA);(c}'out> S"pl.distance == "_Tepl #:distanc}'e' endl ush;(c}'out> S"r_pl.distance == "i_rffpl⫱:distanc}'e' endl ush;greal41distanc}'e[F=fabs(fabs2ҫ(pl 6 :distanc}'e$E)8fabsk(rffpl:distanc}'e));if)(distanc}'e' <P9ointad::%epsilonE^())distanc}'e, =0;if)(DEBUGY)c}'out O"distance == "Ondistanc}'e)-endl ush;if)(pl 6 :normal#зrffpl⫱:normal V)UUf997. CoplanarTcase.hDe neUUP9olygon/functions@979i+ if(distanc}'e' 0)fif(DEBUGY)c}'out O"Coplanar.\n"GY;bQoolus4wpoin9tLbpW;P9oint27ptrF,g;P9oint27rffptrN;for%舫(v9ectorHhP9oint#i::Bc}'onstffiteratorCiterW=p}'oints뭱:b}'egin();iter6=p}'oints:endಫ();++Giter")fif)((iterޫ+818)p}'oints뭱:endಫ())ptr߫=p}'oints:fr}'ontI();else5ptrF=(iterޫ+818);for/C(v9ectorHhP9ointW#Xi::Bc}'onstffiteratorCrffiter^=r,:p}'oints$:b}'egin();rffiter fU6=r:p}'oints:endಫ();n++5rffiter)])f(if3((rffiterf+818)r,:p}'oints$:endಫ())rffptrg=r:p}'oints$:fr}'ontI();(else?rffptrXJ=(rffiterf+818);(bp5=P9ointad::%interse}'ctionffpointsx( iter;ptrp; rffiter$[0;rffptr);(if3(bp y:bJ)v 4:pushffb}'ack+XR(bp:pt 䝫);g=InnerUUfor胷=g=OuterUUfor胷=return7漱v=y; -g995. P9arallelTcase.hDe neUUP9olygon/functions@976i+ +g998. P9arallelTcase.hDe neUUP9olygon/functions@979i+ else0=Parallel.o= fc}'err-V"WARNING! In Polygoon::intersection_poinؠvts():\n" Ǵ("The Polygons lie in parallel planes. "8"Returning empty veckYtor.\n\n"k&( ush=;return7漱v=y; g -gcn썫286NON-PJARALLEL,XNON-COPLANARCASEi3DLDFPRÎGx996n@P996. Non-parallel,non-coplanarkcase.vuwillcontaintheintersectionpGointsoftheLineKl"swiththis andr,͍ifany*.Mv|cancontainamaximumoffourP9oints'inthiscase.Mv +g!`0n썷x9993DLDFPRÎGiNON-PJARALLEL,XNON-COPLANARCASE289n@P999. Non-parallel,non-coplanarkcase.vuwillcontaintheintersectionpGointsoftheLineKl"swiththis andr,͍ifany*.Mv|cancontainamaximumoffourP9oints'inthiscase.Mv [0]andv?[1]willbGetheintersectionpGointscoftheLine Il(with dthis,>&andv  [2]andv[3]theintersectionpGointsofl andr w,>&iftheyexist. IfanyЭintersectionpGointdoGesn'texist,INVALID_POINTLqwillbestoredinthecorrespondingelementofv asaplaceholder.q[LDFT2003.06.29.] Thelvqaluesinv -ᕫprovideinformationabGouttherelativepGositionsofthePolygons*姫,e.g.,whetherltheytouch,whetherElieswithinthepGerimeteroftheother,Hetc.lHowever,it'sEnotpGossibletoincludethisinformationintheϸreturnvqalue,Qsincethelatterismerelyav9ector#zhP9ointHi.TheroutinebGelowmayneedtobGeputintoanotherbfunctioninordertousethisinformation.iItmaybGeofimportanceinbreakingupPolygons0 andSolids!\hforUUanimprovedUUsurfacehidingroutine.q[LDFT2003.06.29.]hDe neUUP9olygon/functions@976i+ -else!fif(DEBUGY)c}'out O"Non-coplanar, non-pkarallel.\n" #;Line-ڱl3,=pl #:interse}'ctionfflineG(rffpl);bQoolus4wpoin9tus4pairedbppx"=interse}'ctionffpointsTS(l.::p}'osition#DW;(l:p}'osition%}7+8lg:dir}'ection&));v4:pushffb}'ack+XR(bpp: rst:pt 䝫);if(bpp: rst:pt bpp:se}'condDZ:pt 䝫)fif)(DEBUGY)c}'out O"bpp.first.pt and bpkp.second.pt are equaƠl for *this.\n"$ ۫;v#4:pushffb}'ack+XR(INVALID_POINTDA);gelse+v1 :pushffb}'ack+XR(bpp:se}'condDZ:pt 䝫);bpp&=r,:interse}'ctionffpointsQ߫(l.::p}'osition#DW;(l:p}'osition%}7+8lg:dir}'ection&));v4:pushffb}'ack+XR(bpp: rst:pt 䝫);if(bpp: rst:pt bpp:se}'condDZ:pt 䝫)fif)(DEBUGY)c}'out O"bpp.first.pt and bpkp.second.pt are equaƠl for r.\n" ;v#4:pushffb}'ack+XR(INVALID_POINTDA);gelse+v1 :pushffb}'ack+XR(bpp:se}'condDZ:pt 䝫);ifLn(:(v4[0]6=INVALID_POINTH#_gʱv[1]6=INVALID_POINTH#_gʱv[2]6=INVALID_POINTH#_gʱv[3]6=INVALID_POINTGY))fif)(DEBUGY)(c}'out>U7"No intersection poiknts found. ""Returning empty vecktor\n\n"=< ushQ;v#4:cle}'ar(٫();returnA潱vGz;gbQoolus4wrealE@brO[4];if(:(v4[2]INVALID_POINTI9_8vm[3]INVALID_POINTGY))fif)(v4[0]6=INVALID_POINTGY)brgs[0]=vի[0]:isffonffse}'gment=5O(v4[2];ve[3]);else5f(br2gw[0]: rst|«=falsev\;(br2gw[0]:se}'cond n߫=0;gif)(v4[1]6=INVALID_POINTGY)brgs[1]=vի[1]:isffonffse}'gment=5O(v4[2];ve[3]);else5f(br2gw[1]: rst|«=falsev\;(br2gw[1]:se}'cond n߫=0;ggif(:(v4[0]INVALID_POINTI9_8vm[1]INVALID_POINTGY))fif)(v4[2]6=INVALID_POINTGY)brgs[2]=vի[2]:isffonffse}'gment=5O(v4[0];ve[1]);thn썷x9963DLDFPRÎGiNON-PJARALLEL,XNON-COPLANARCASE287n@Pelse5f (br2gw[2]: rst|«=falsev\;(br2gw[2]:se}'cond n߫=0;gif)(v4[3]6=INVALID_POINTGY)brgs[3]=vի[3]:isffonffse}'gment=5O(v4[0];ve[1]);else5f(br2gw[3]: rst|«=falsev\;(br2gw[3]:se}'cond n߫=0;ggif(br +ᕫprovideinformationabGouttherelativepGositionsofthePolygons*姫,e.g.,whetherltheytouch,whetherElieswithinthepGerimeteroftheother,Hetc.lHowever,it'sEnotpGossibletoincludethisinformationintheϸreturnvqalue,Qsincethelatterismerelyav9ector#zhP9ointHi.TheroutinebGelowmayneedtobGeputintoanotherbfunctioninordertousethisinformation.iItmaybGeofimportanceinbreakingupPolygons0 andSolids!\hforUUanimprovedUUsurfacehidingroutine.q[LDFT2003.06.29.]hDe neUUP9olygon/functions@979i+ +else!fif(DEBUGY)c}'out O"Non-coplanar, non-pkarallel.\n" #;Line-ڱl3,=pl #:interse}'ctionfflineG(rffpl);bQoolus4wpoin9tus4pairedbppx"=interse}'ctionffpointsTS(l.::p}'osition#DW;(l:p}'osition%}7+8lg:dir}'ection&));v4:pushffb}'ack+XR(bpp: rst:pt 䝫);if(bpp: rst:pt bpp:se}'condDZ:pt 䝫)fif)(DEBUGY)c}'out O"bpp.first.pt and bpkp.second.pt are equaƠl for *this.\n"$ ۫;v#4:pushffb}'ack+XR(INVALID_POINTDA);gelse+v1 :pushffb}'ack+XR(bpp:se}'condDZ:pt 䝫);bpp&=r,:interse}'ctionffpointsQ߫(l.::p}'osition#DW;(l:p}'osition%}7+8lg:dir}'ection&));v4:pushffb}'ack+XR(bpp: rst:pt 䝫);if(bpp: rst:pt bpp:se}'condDZ:pt 䝫)fif)(DEBUGY)c}'out O"bpp.first.pt and bpkp.second.pt are equaƠl for r.\n" ;v#4:pushffb}'ack+XR(INVALID_POINTDA);gelse+v1 :pushffb}'ack+XR(bpp:se}'condDZ:pt 䝫);ifLn(:(v4[0]6=INVALID_POINTH#_gʱv[1]6=INVALID_POINTH#_gʱv[2]6=INVALID_POINTH#_gʱv[3]6=INVALID_POINTGY))fif)(DEBUGY)(c}'out>U7"No intersection poiknts found. ""Returning empty vecktor\n\n"=< ushQ;v#4:cle}'ar(٫();returnA潱vGz;gbQoolus4wrealE@brO[4];if(:(v4[2]INVALID_POINTI9_8vm[3]INVALID_POINTGY))fif)(v4[0]6=INVALID_POINTGY)brgs[0]=vի[0]:isffonffse}'gment=5O(v4[2];ve[3]);else5f(br2gw[0]: rst|«=falsev\;(br2gw[0]:se}'cond n߫=0;gif)(v4[1]6=INVALID_POINTGY)brgs[1]=vի[1]:isffonffse}'gment=5O(v4[2];ve[3]);else5f(br2gw[1]: rst|«=falsev\;(br2gw[1]:se}'cond n߫=0;ggif(:(v4[0]INVALID_POINTI9_8vm[1]INVALID_POINTGY))fif)(v4[2]6=INVALID_POINTGY)brgs[2]=vի[2]:isffonffse}'gment=5O(v4[0];ve[1]);"p۠n썫290NON-PJARALLEL,XNON-COPLANARCASEi3DLDFPRÎGx999n@Pelse5f (br2gw[2]: rst|«=falsev\;(br2gw[2]:se}'cond n߫=0;gif)(v4[3]6=INVALID_POINTGY)brgs[3]=vի[3]:isffonffse}'gment=5O(v4[0];ve[1]);else5f(br2gw[3]: rst|«=falsev\;(br2gw[3]:se}'cond n߫=0;ggif(br gs[0]: rst^8br S[1]: rst)fif+Ϋ(DEBUGY)c}'out}#"The intersection ofn# *this with l lies w#Rithin "o<"the intersection of r with l.\n" ;gelse*.6if5.(br gs[2]: rst^8br S[3]: rst)fif+qB(DEBUGY)c}'out·"The intersection ofnO r with l lies withi׫n "<"the intersection of *this with l.\n";gelse*.6if5.(br gs[0]: rst_8br S[1]: rst_8br S[2]: rst_8br S[3]: rst)fif)(DEBUGY)c}'out O"The intersections okf *this and r with lƠ overlap partially.\=dn"Hƫ;gelse+fif)(DEBUGY)c}'out O"The intersections okf *this and r with lƠ don't overlap at al=dl.\n"X;greturn7漱v=y; g=elseܫ.qEndUUofnon-parallel,non-coplanarcase.o= -g997. T -ransformations.9Ȅ`> 8BeginTLogJʄ`> +g1000. T +ransformations.9Ȅ`+U 8Log)j`+U [LDFT2002.08.07.]Y3Copiedtheentire\T*ransformations"sectionfromellipses.webandmadetheappro-priateUUchanges. [LDFT2003.04.27.]YReThepreviouscommentwasout-of-date.PDIlmayhaveremovedthetransformationfunc-tions.PAtanyrate,Otherewereonlyacouplehere.PIhavenowcopiedtherestofthemfromellipses.webandUUmadetheappropriatechanges. [LDFT2003.07.18.]Y;[LDFT2003.07.18.]uMovedUU\T*ransformations"section,includingopQerator+=8](constT -ransformVl&^)fromRegus4wP9olygonIVtoP9olygon,̿.:AlsoremovedtheRectangle97ver-sionsUUinrectangs.web.qTheP9olygon/versionsarenowinheritedbyRegus4wP9olygonH)^andRectangle5.Ȅ` 8EndTLogA>`998. ApplyingTatransformation.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.06.]ZNowMcallingP9ath]::$mopQeratorPP=\o()insteadofloGopingthroughp}'ointsr.[Thisway*,ifIchangeUUP9ath潫::#topQeratorO =[(),UUthechangewillautomaticallybGere ectedhere.Ȅ` 8EndTLogA>`hDeclareUUP9olygon/functions@975i+ +ransformVl&^)fromRegus4wP9olygonIVtoP9olygon,̿.:AlsoremovedtheRectangle97ver-sionsUUinrectangs.web.qTheP9olygon/versionsarenowinheritedbyRegus4wP9olygonH)^andRectangle5.Ȅ`G1001. ApplyingTatransformation.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.06.]ZNowMcallingP9ath]::$mopQeratorPP=\o()insteadofloGopingthroughp}'ointsr.[Thisway*,ifIchangeUUP9ath潫::#topQeratorO =[(),UUthechangewillautomaticallybGere ectedhere.Ȅ`GhDeclareUUP9olygon/functions@978i+ virtual/T ransformgVopQerator[=z(const*T -ransformUt&]taW); @n썫288APPLJYINGXATRANSFÎORMATIONP3DLDFPRGx999n@P999.hDe neUUP9olygon/functions@976i+ +ransformUt&]taW);#n썷x10023DLDFPRÎGOAPPLJYINGXATRANSFORMAJTION291n@P1002.hDe neUUP9olygon/functions@979i+ T ransformAP9olygonkū::r\opQerator=(const*T ransformUt&]taW) fP9ath-j::4opQerator_]=l}|(tr);return7漫(c}'enterУ=.^ڱt1L); -g1000. RotatationTaroundthemainaxes.hDeclareUUP9olygon/functions@975i+ +g1003. RotatationTaroundthemainaxes.hDeclareUUP9olygon/functions@978i+ virtual/T -ransformgVr}'otate(const*real4бx:;constJreal6xy>=0;constJreal6xz>f=0);1001.hDe neUUP9olygon/functions@976i+ +ransformgVr}'otate(const*real4бx:;constJreal6xy>=0;constJreal6xz>f=0);1004.hDe neUUP9olygon/functions@979i+ T ransformAP9olygonkū::r}'otateoB(const*real4бx:;constJreal6xy;p;constJreal6xz;) fT ransformKԱtOeF;tt:r}'otateo>(x;y;zƫ);return7漫(thisϷ=(At+x); -g1002. RotateTaroundanarbitraryaxis.1003. P9ointTarguments.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ` 8EndTLogA>`hDeclareUUP9olygon/functions@975i+ +g1005. RotateTaroundanarbitraryaxis.1006. P9ointTarguments.9Ȅ`+U 8Log)j`+U +[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ`GhDeclareUUP9olygon/functions@978i+ virtual/T -ransformgVr}'otate(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleQ=180);1004.hDe neUUP9olygon/functions@976i+ +ransformgVr}'otate(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleQ=180);1007.hDe neUUP9olygon/functions@979i+ T ransformAP9olygonkū::r}'otateoB(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleNH˫) fT ransformKԱtOeF;tt:r}'otateo>(p0 ;p1 h;anglej);return7漫(thisϷ=(At+x); -g1005. P9athTargument.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ` 8EndTLogA>`hDeclareUUP9olygon/functions@975i+ +g1008. P9athTargument.9Ȅ`+U 8Log)j`+U +[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ`GhDeclareUUP9olygon/functions@978i+ virtual/T -ransformgVr}'otate(const*P9ath:[&AypFy;constJreal6xangleQ=180);!n썷x10063DLDFPRÎG͖P -ATHXARGUMENT289n@P1006.hDe neUUP9olygon/functions@976i+ +ransformgVr}'otate(const*P9ath:[&AypFy;constJreal6xangleQ=180);$n썫292P +ATHXARÎGUMENT͖3DLDFPRGx1009n@P1009.hDe neUUP9olygon/functions@979i+ T ransformAP9olygonkū::r}'otateoB(const*P9ath:[&AypFy;constJreal6xangleNH˫) fif(:p:isffline}'ar%}())fc}'err7㷷."ERROR! In Ellipse::p-rotate(Path, real).\-n"b2"Path is not a line. Returning INVALID_TRANSFORM.\n\n"SEȫ;returnAINVALID_TRANSFORM;greturn7r}'otateRU(p:getffp}'oint'bH(0);p:getfflastffp}'oint:$>();anglej); -g1007. Scale.hDeclareUUP9olygon/functions@975i+ +g1010. Scale.hDeclareUUP9olygon/functions@978i+ virtual/T -ransformgVsc}'ale} (real.xjJ;real]ֱy g=1;real]ֱz < =1);1008.hDe neUUP9olygon/functions@976i+ +ransformgVsc}'ale} (real.xjJ;real]ֱy g=1;real]ֱz < =1);1011.hDe neUUP9olygon/functions@979i+ T ransformAP9olygonkū::sc}'ale(real.xjJ;real]ֱy;real]ֱzt) fT ransformKԱtOeF;tt:sc}'ale(x;y;zƫ);return7漫(thisϷ=(At+x); -g1009. Shear.hDeclareUUP9olygon/functions@975i+ +g1012. Shear.hDeclareUUP9olygon/functions@978i+ virtual/T -ransformgVshe}'ar(real.xy!;real]xz%=0;real]yx&Z=0;real]yz%6=0;real]zx%Y=0;real]zy%|=0);1010.hDe neUUP9olygon/functions@976i+ +ransformgVshe}'ar(real.xy!;real]xz%=0;real]yx&Z=0;real]yz%6=0;real]zx%Y=0;real]zy%|=0);1013.hDe neUUP9olygon/functions@979i+ T ransformAP9olygonkū::she}'ar4>(real.xy!;real]xz"ը;real]yx#;real]yz# ;real]zx"A;real]zy") fT ransformKԱtOeF;tt:she}'ar4:(xy ;xz "z;yx V;yz Y;zx ;zy «);return7漫(thisϷ=(At+x); -g1011. Shift.1012. realTargumen9ts.hDeclareUUP9olygon/functions@975i+ +g1014. Shift.1015. realTargumen9ts.hDeclareUUP9olygon/functions@978i+ virtual/T -ransformgVshift{t#(real.xjJ;real]ֱy g=0;real]ֱz < =0);"n썫290REALXARÎGUMENTS3DLDFPRGx1013n@P1013.hDe neUUP9olygon/functions@976i+ +ransformgVshift{t#(real.xjJ;real]ֱy g=0;real]ֱz < =0);%n썷x10163DLDFPRÎGREALXARGUMENTS293n@P1016.hDe neUUP9olygon/functions@979i+ T ransformAP9olygonkū::shift(real.xjJ;real]ֱy;real]ֱzt) fT ransformKԱtOeF;tt:shift}(x;y;zƫ);return7漫(thisϷ=(At+x); -g1014. P9ointTargument.hDeclareUUP9olygon/functions@975i+ +g1017. P9ointTargument.hDeclareUUP9olygon/functions@978i+ virtual/T -ransformgVshift{t#(const*P9oint=?&D]pI]);1015.hDe neUUP9olygon/functions@976i+ +ransformgVshift{t#(const*P9oint=?&D]pI]);1018.hDe neUUP9olygon/functions@979i+ T ransformAP9olygonkū::shift(const*P9oint=?&D]pI]) freturn7shiftL9(p:getffxg();p:getffyt();p:getffz()); -g1016. ShiftTtimes.1017. realTargumen9ts.hDeclareUUP9olygon/functions@975i+ -virtual/v9oidHshiftfftimesww(real.xjJ;real]ֱy g=1;real]ֱz < =1);1018.hDe neUUP9olygon/functions@976i+ +g1019. ShiftTtimes.1020. realTargumen9ts.hDeclareUUP9olygon/functions@978i+ +virtual/v9oidHshiftfftimesww(real.xjJ;real]ֱy g=1;real]ֱz < =1);1021.hDe neUUP9olygon/functions@979i+ v9oid"P9olygonM˫::shiftfftimes/?(real.xjJ;real]ֱy;real]ֱzt) fP9ath-j::4shiftfftimesc (x;y;zƫ);c}'enter0 :shiftfftimes.;(x;y;zƫ);return4g; -g1019. P9ointTargument.hDeclareUUP9olygon/functions@975i+ -virtual/v9oidHshiftfftimesww(const*P9oint=?&D]pI]);#{n썷x10203DLDFPRÎGPOINTXARGUMENT291n@P1020.hDe neUUP9olygon/functions@976i+ +g1022. P9ointTargument.hDeclareUUP9olygon/functions@978i+ +virtual/v9oidHshiftfftimesww(const*P9oint=?&D]pI]);&Fn썫294POINTXARÎGUMENT3DLDFPRGx1023n@P1023.hDe neUUP9olygon/functions@979i+ v9oid"P9olygonM˫::shiftfftimes/?(const*P9oint=?&D]pI]) freturn7shiftfftimesf(p:getffxg();p:getffyt();p:getffz()); -g1021. Regffs4#P9olygon(polygons.web).Ay[LDFT2003.04.15.]ͳTOUUDO:ItwillbGenecessarytosupply/Regus4wP9olygonHwith/acompletesetoftransformationfunctions,sothatc}'enter#GwillbGetransformedalongUUwiththeP9oints&.pGointedtobythepGointersonp}'ointsy.qSomearepresentalready*,butnotall. +g1024. Regffs4#P9olygon(polygons.web).Ay[LDFT2003.04.15.]ͳTOUUDO:ItwillbGenecessarytosupply/Regus4wP9olygonHwith/acompletesetoftransformationfunctions,sothatc}'enter#GwillbGetransformedalongUUwiththeP9oints&.pGointedtobythepGointersonp}'ointsy.qSomearepresentalready*,butnotall. [LDFT2003.04.15.]YTODO:3Addinffcir}'cle(|(),2koutffcir}'cle.#().bAlign3alinefromc}'enter$inthedirectionofanormalUUwiththey-axis.qUsetheinverseUUoftheT ransform;'totransformtheCircle!. -format3c(R}'egffPolygonr'Polygon1022. Regffs4#P9olygonTclassde nition.Regus4wP9olygonPTisUUderivedfromP9olygon,ZC.U9Ȅ`> 8BeginTLogJʄ`> +format3c(R}'egffPolygonr'Polygon1025. Regffs4#P9olygonTclassde nition.Regus4wP9olygonPTisUUderivedfromP9olygon,ZC.9Ȅ`+U 8Log)j`+U [LDFT2003.04.15.]XChanged,(fso*thatRegus4wP9olygonGisderivedfromP9ath._Previously*,itwasderivedfromRegus4wClus4Planeus4Curv9eh. [LDFT2003.04.27.]XWChangedqprotected6zdataqmembGerstopriv\rate&.\Theynolongerneedtobeprotected3 ,bGecauseUURectangle8?isUUnolongerderivedfromRegus4wP9olygonD . -[LDFT2003.06.06.]X#9Changed,!sopSthatRegus4wP9olygonF_ZisderivedfromP9olygon+uA,whichI'vejustaddedabGove.Ȅ` 8EndTLogA>`hDe neUUclass5Regus4wP9olygonc^1022i +[LDFT2003.06.06.]X#9Changed,!sopSthatRegus4wP9olygonF_ZisderivedfromP9olygon+uA,whichI'vejustaddedabGove.Ȅ`GhDe neUUclass5Regus4wP9olygonc^1025i class$RRegus4wP9olygoni[:qpublic'P9olygonS_4freal*0internalffangleh?e;real*0r}'adiusF{S;unsignedD7shortbsidesxKE;bQool-honfffr}'eeffstoreeFZ; -public)=֫:hDeclareUURegus4wP9olygonH)^functions@1023i -g; ThisXco 8BeginTLogJʄ`> -[LDFT2002.12.18.]XwMoved`here. 1WiththeDEC`ScompilerunderCompaqT*ru64ontheDECAlphacomputer,itworkedtohavetheassignmentopGeratorsfollowingtheconstructors.SWiththeGNUȬC++Acompiler(GCC)under.GNU/LinuxontheInteli686computer,ditdidn't.|RSeeP9ath?::#opQeratorOd=W+()inpaths.webformoreinformation.Ȅ` 8EndTLogA>`hDeclareUURegus4wP9olygonH)^functions@1023i -const(*Regus4wP9olygonl&topQerator\=#(const*Regus4wP9olygonb&jɱpoɫ); SeeXalsosections1026,1029,1032,1036,1038,1042,1044,1046,1047,1048,1050,and1051.ThisXco 8BeginTLogJʄ`> -[LDFT2003.08.27.]XReversed`hDe neUURegus4wP9olygonH)^functions@1024i+ -Regus4wP9olygonL~::Regus4wP9olygonB~(const,P9oint=S&Eqc}'centere;const /unsignedPlshortnssidesF;const /real2ddiameter^j;constԛreal6angleffxW ;constԛreal6angleffyV;constԛreal6angleffzV):qor}'adius 9(ddiameter,e=2);2sidesHI(ssides`R)UUfbQoolDEBUG:,=falsev\;=trueĒ=if+(DEBUGY)c}'outsU<"Entering Reg_PolygooUn::Reg_Polygon() "԰n<"(center, sides, diameter, angles).\n" ush;c}'enter<Ц=c}'center"a;onfffr}'eeffstore<=falsev\;internalffangle^SP=360:09=sidesI;cycleffswitchUǵ=true;pr}'ojectiveffextremesrT:r}'esizei(6;0);=LDFUU2003.04.09.qAddedthisline.o=c}'enter: :applyfftr}'ansformF߫();1031. F*orregularpGolygonswithanevennumbGerofsides,Dwerotatethemsothata atsideisatthe\top"(inUUthedirectionofthepGositivez-axis,ifangleffx#1,angleffy#,andangleffz& areall0).hDe neUURegus4wP9olygonH)^functions@1024i+ +g1031. Cen9ter,Tsides,diameter,andangles.1032. Constructor.hDeclareUURegus4wP9olygonH)^functions@1026i+ +Regus4wP9olygonK~(constk P9oint=;&EbYc}'centere;const unsignedPTshortnussidesDZ;const real7 tddiametercٱ;constreal41angleffxX%=0;constJreal6xangleffyY=0;constJreal6xangleffzYO=0);(Hn썫296CONSTRÎUCTORBy3DLDFPRGx1033n@P1033.9Ȅ`+U 8Log)j`+U +[LDFT2003.08.27.]XReversed0)=[LDFT2002.11.06.]T7OnlyUUrotateiftheangle6=0,i.e.,don'trotatethe rsttime.o=vertex7c~=dr}'otateX (0;iU|8internalffangle?;0);if(angleffx#L6=0 _8angleffy%k6=0_8angleffz$n6=0)(=RotationUUaroundthex-axis,y-axis,andz-axis,ifapplicable.o=vertex7c~=dr}'otateX (angleffx ܱ;angleffy"3;angleffz!);vertex-b~3cshiftG(c}'enter );=PutUUinpGositionaroundc}'enter^.o=p}'oints/$:pushffb}'ack+XR(vertex`); g if(DEBUGY)c}'out* Q"Exiting Reg_Polygonk::Reg_Polygon() "T)"(center, sides, diakmeter, angles).\n"͔&( ush=; -return*f;qǷg1032. SettingTfunction.hDeclareUURegus4wP9olygonH)^functions@1023i+ +return*f;qǷg1035. SettingTfunction.hDeclareUURegus4wP9olygonH)^functions@1026i+ v9oid#Lset0(constyTP9oint=&E~c}'centere -;const #unsignedPshortnssides#c;const #real7%ddiameterd A;const #realangleffxAL=0;constJreal6xangleffyY=0;constJreal6xangleffzYO=0);1033. ??q[LDFT2002.10.07.]SzSeeUUbGelow.hDe neUURegus4wP9olygonH)^functions@1024i+ -v9oid#SRegus4wP9olygonf= ::setx(constP9oint>3&FbQc}'centerf;const unsignedQLshortpissidesx;const real2ddiameter^j;constΔreal6{ angleffxW;constΔreal6{ angleffyV旱;constΔreal6{ angleffzVz)fNbQoolODEBUG:v=falsev\;(=trueĒ=if)(DEBUGY)(c}'out>U7"Entering Reg_Polygokn::set() ""(center, sides, diakmeter, angles).\n"< ushQ;&^n썫294SETTINGXFUNCTIONu=3DLDFPRÎGx1034n@P1034. ??e[LDFT2002.10.07.]SGAt/exactlythisplace,6P9ath#::P9athh()(thedefaultversionwithnoarguments) isinvoked.$WhensetA()exits, /P9ath$>()iscalledontheemptyP9athZ.$WhenDEBUG"trueL,thefollowingmessageoisprintedbGefore 6P9ath#?()isentered.Iodon'tknowwhyP9ath!()isinvokedandthisbGothersmeabit.qHowever,UUit'sdestroyedUUcleanly*,soIdon'thaveUUtoworryabGoutleakqage.hDe neUURegus4wP9olygonH)^functions@1024i+ +;const #unsignedPshortnssides#c;const #real7%ddiameterd A;const #realangleffxAL=0;constJreal6xangleffyY=0;constJreal6xangleffzYO=0);1036. ??q[LDFT2002.10.07.]SzSeeUUbGelow.hDe neUURegus4wP9olygonH)^functions@1027i+ +v9oid#SRegus4wP9olygonf= ::setx(constP9oint>3&FbQc}'centerf;const unsignedQLshortpissidesx;const real2ddiameter^j;constΔreal6{ angleffxW;constΔreal6{ angleffyV旱;constΔreal6{ angleffzVz)fNbQoolODEBUG:v=falsev\;(=trueĒ=if)(DEBUGY)(c}'out>U7"Entering Reg_Polygokn::set() ""(center, sides, diakmeter, angles).\n"< ushQ;)Ӡn썷x10373DLDFPRÎGu=SETTINGXFUNCTION297n@P1037. ??e[LDFT2002.10.07.]SGAt/exactlythisplace,6P9ath#::P9athh()(thedefaultversionwithnoarguments) isinvoked.$WhensetA()exits, /P9ath$>()iscalledontheemptyP9athZ.$WhenDEBUG"trueL,thefollowingmessageoisprintedbGefore 6P9ath#?()isentered.Iodon'tknowwhyP9ath!()isinvokedandthisbGothersmeabit.qHowever,UUit'sdestroyedUUcleanly*,soIdon'thaveUUtoworryabGoutleakqage.hDe neUURegus4wP9olygonH)^functions@1027i+ Regus4wP9olygonN pS (c}'center I;ssides ;ddiameter. ;angleffx"0;angleffy"3;angleffz!); this"Ы=p; if(DEBUGY)c}'out* Q"Exiting Reg_Polygonk::set() "TA"(center, sides, diakmeter, angles).\n"͔& ush; -return*f;qǷg1035. Pseudo-constructorTfordynamicalloQcation.1036. OptionalTpQoin9terargument.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.06.]Y;AddedUUoptionalRegus4wP9olygonH)^pGointerargument.qMadenon-inline4.Ȅ` 8EndTLogA>`hDeclareUURegus4wP9olygonH)^functions@1023i+ -static)HRegus4wP9olygonnscr}'eateffnewffr}'egffpolygon֓&(const*Regus4wP9olygonbgroث=0);1037.hDe neUURegus4wP9olygonH)^functions@1024i+ +return*f;qǷg1038. Pseudo-constructorTfordynamicalloQcation.1039. OptionalTpQoin9terargument.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.06.]Y;AddedUUoptionalRegus4wP9olygonH)^pGointerargument.qMadenon-inline4.Ȅ`GhDeclareUURegus4wP9olygonH)^functions@1026i+ +static)HRegus4wP9olygonnscr}'eateffnewffr}'egffpolygon֓&(const*Regus4wP9olygonbgroث=0);1040.hDe neUURegus4wP9olygonH)^functions@1027i+ Regus4wP9olygonN S Regus4wP9olygonRë::cr}'eateffnewffr}'egffpolygondvF(const*Regus4wP9olygonbgrl) fRegus4wP9olygonX ] pe$=newϜ(Regus4wP9olygonA~);if(r,6=0) p=r -;p~onfffr}'eeffstoreWt =true;p~cycleffswitchTϵ=true;p~lineffswitchOqܫ=falsev\;p~pr}'ojectiveffextremesq T:r}'esizei(6;0);=LDFUU2003.04.09.qAddedthisline.o=return7漱p<; -g1038. RequiredTRegffs4#P9olygonargument.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.06.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUURegus4wP9olygonH)^functions@1023i+ -static)HRegus4wP9olygonnscr}'eateffnewffr}'egffpolygon֓&(const*Regus4wP9olygonb&jɱroݫ);'㽠n썷x10393DLDFPRÎGxREQUIREDXREGffs4#POL -YGONARGUMENT295n@P1039.hDe neUURegus4wP9olygonH)^functions@1024i+ +g1041. RequiredTRegffs4#P9olygonargument.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.06.]Y;AddedUUthisfunction.Ȅ`GhDeclareUURegus4wP9olygonH)^functions@1026i+ +static)HRegus4wP9olygonnscr}'eateffnewffr}'egffpolygon֓&(const*Regus4wP9olygonb&jɱroݫ);*n썫298REQUIREDXREGffs4#POL +YGONARÎGUMENTx3DLDFPRGx1042n@P1042.hDe neUURegus4wP9olygonH)^functions@1027i+ Regus4wP9olygonN S Regus4wP9olygonRë::cr}'eateffnewffr}'egffpolygondvF(const*Regus4wP9olygonb&jɱroݫ) fRegus4wP9olygonX ] pe$=newϜ(Regus4wP9olygonA~);p =r,;p~onfffr}'eeffstoreWt =true;p~cycleffswitchTϵ=true;p~lineffswitchOqܫ=falsev\;p~pr}'ojectiveffextremesq T:r}'esizei(6;0);=LDFUU2003.04.09.qAddedthisline.o=return7漱p<; -g1040. Destructor.[LDFT2002.10.09.]Z6RemovedUUthedestructor.qP9ath/::$m,XP9athD()orP9ath潫::cle}'ar(ݫ()should,bGeusedinstead,.unlessIadddynamicallyallocateddatamemberstoRegus4wP9olygonI (ratherthanP9athd).1041. ReturningTelemen9tsandinformation.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.03.]Z6RemovedRegus4wP9olygonG::isffplanar)&().dARegus4wP9olygonJ$canbGemanipulatedintoanon-planarUUstate,soit'ssafertousetheP9ath<version,whichtestswhetherit'sreallyplanarornot.Ȅ` 8EndTLogA>`1042. GetTradius.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.13.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUURegus4wP9olygonH)^functions@1023i+ +g1043. Destructor.[LDFT2002.10.09.]Z6RemovedUUthedestructor.qP9ath/::$m,XP9athD()orP9ath潫::cle}'ar(ݫ()should,bGeusedinstead,.unlessIadddynamicallyallocateddatamemberstoRegus4wP9olygonI (ratherthanP9athd).1044. ReturningTelemen9tsandinformation.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.03.]Z6RemovedRegus4wP9olygonG::isffplanar)&().dARegus4wP9olygonJ$canbGemanipulatedintoanon-planarUUstate,soit'ssafertousetheP9ath<version,whichtestswhetherit'sreallyplanarornot.Ȅ`G1045. GetTradius.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.13.]Y;AddedUUthisfunction.Ȅ`GhDeclareUURegus4wP9olygonH)^functions@1026i+ inline)Ireal@=wgetffr}'adiusl9V()UUconst freturn7r}'adiusS߫; -g1043. Circles.[LDFT2003.06.13.]ZJThexifunctionsinthissectionareallde nedincircles.web,.bGecauseCircle!isUUanincompletetypGeinthis le.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.13.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`1044. EnclosedTcircle.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.13.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUURegus4wP9olygonH)^functions@1023i+ -Circle+inffcir}'clePz˫()UUconst*;1045. Dra9wTenclosedcircle.(n썫296NORMALXVERSION 33DLDFPRÎGx1046n@P1046. NormalTv9ersion.hDeclareUURegus4wP9olygonH)^functions@1023i+ +g1046. Circles.[LDFT2003.06.13.]ZJThexifunctionsinthissectionareallde nedincircles.web,.bGecauseCircle!isUUanincompletetypGeinthis le.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.13.]Y;AddedUUthissection.Ȅ`G1047. EnclosedTcircle.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.13.]Y;AddedUUthisfunction.Ȅ`GhDeclareUURegus4wP9olygonH)^functions@1026i+ +Circle+inffcir}'clePz˫()UUconst*;1048. Dra9wTenclosedcircle.+n썷x10493DLDFPRÎG 3NORMALXVERSION299n@P1049. NormalTv9ersion.hDeclareUURegus4wP9olygonH)^functions@1026i+ Circle,dr}'awffinffcirclei(constColor?m&Geddr}'awffcolor=Hʷ HColors+!::1defaultffc}'olori+±;const stringddashe}'dD,="" z;constJstring@pp}'enXҫ="";Picture* -&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;1047. PictureTargumen9t rst.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.04.]XlRemoved*defaultargumentforpictur}'e"3\.cHavingonemadeitimpGossibleforthecompilertoUUresovecallstodr}'awffinffcircle@X%()withnoarguments.Ȅ` 8EndTLogA>`hDeclareUURegus4wP9olygonH)^functions@1023i+ -Circle+dr}'awffinffcircleh࣫(Picture)&0pictur}'eO槱;constColor?߫&Gddr}'awffcolor~=IJColors)(::0lfdefaultffc}'olorgA;conststring?%Pddashe}'de3y="" z;constJstring@pp}'enXҫ="")UUconst*;1048. SurroundingTcircle.hDeclareUURegus4wP9olygonH)^functions@1023i+ -Circle+outffcir}'cleU:()UUconst*;1049. Dra9wTsurroundingcircle.1050. NormalTv9ersion.hDeclareUURegus4wP9olygonH)^functions@1023i+ +&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;1050. PictureTargumen9t rst.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.04.]XlRemoved*defaultargumentforpictur}'e"3\.cHavingonemadeitimpGossibleforthecompilertoUUresovecallstodr}'awffinffcircle@X%()withnoarguments.Ȅ`GhDeclareUURegus4wP9olygonH)^functions@1026i+ +Circle+dr}'awffinffcircleh࣫(Picture)&0pictur}'eO槱;constColor?߫&Gddr}'awffcolor~=IJColors)(::0lfdefaultffc}'olorgA;conststring?%Pddashe}'de3y="" z;constJstring@pp}'enXҫ="")UUconst*;1051. SurroundingTcircle.hDeclareUURegus4wP9olygonH)^functions@1026i+ +Circle+outffcir}'cleU:()UUconst*;1052. Dra9wTsurroundingcircle.1053. NormalTv9ersion.hDeclareUURegus4wP9olygonH)^functions@1026i+ Circle,dr}'awffoutffcirclen(constColor?w&G>ddr}'awffcoloro=(g (hColors+F::1defaultffc}'olori _;const Gstringddashe}'dD,="" z;constJstring@pp}'enXҫ="";Picture* -&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;1051. PictureTargumen9t rst.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.04.]XlRemoved*defaultargumentforpictur}'e"3\.cHavingonemadeitimpGossibleforthecompilertoUUresovecallstodr}'awffoutffcircleEt()withnoarguments.Ȅ` 8EndTLogA>`hDeclareUURegus4wP9olygonH)^functions@1023i+ -Circle+ddr}'awffoutffcirclem飫(Picture)D&0bpictur}'eO8;const,Color?&Geddr}'awffcolor~R=Colors)ū::0Ldefaultffc}'olorgޱ;conststring?%Pddashe}'de3y="" z;constJstring@pp}'enXҫ="")UUconst*;1052. PuttingTpQolygonstogether.ThisUUiswhat'scompiled. +&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;1054. PictureTargumen9t rst.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.04.]XlRemoved*defaultargumentforpictur}'e"3\.cHavingonemadeitimpGossibleforthecompilertoUUresovecallstodr}'awffoutffcircleEt()withnoarguments.Ȅ`GhDeclareUURegus4wP9olygonH)^functions@1026i+ +Circle+ddr}'awffoutffcirclem飫(Picture)D&0bpictur}'eO8;const,Color?&Geddr}'awffcolor~R=Colors)ū::0Ldefaultffc}'olorgޱ;conststring?%Pddashe}'de3y="" z;constJstring@pp}'enXҫ="")UUconst*;1055. PuttingTpQolygonstogether.ThisUUiswhat'scompiled. hIncludeUU les@11i hV*ersionUUcontrolidenti er@10i -hDe neUUclass5P9olygonKz972i -hDe neUUclass5Regus4wP9olygonc^1022i -hDe neUURegus4wP9olygonH)^functions@1024i -hDe neUUP9olygon/functions@976i)n썷x10533DLDFPRÎG%PUTTINGXPOLJYGONSTOGETHER297n@P1053. ThisUUiswhat'swrittentopolygons.h.hpolygons.h@01053i -hDe neUUclass5P9olygonKz972i -hDe neUUclass5Regus4wP9olygonc^1022i1054. Rectangle(rectangles.web).r鍍9Ȅ`> 8BeginTLogJʄ`> +hDe neUUclass5P9olygonKz975i +hDe neUUclass5Regus4wP9olygonc^1025i +hDe neUURegus4wP9olygonH)^functions@1027i +hDe neUUP9olygon/functions@979i,/n썫300PUTTINGXPOLJYGONSTOGETHER%3DLDFPRÎGx1056n@P1056. ThisUUiswhat'swrittentopolygons.h.*hpolygons.h@01056i +hDe neUUclass5P9olygonKz975i +hDe neUUclass5Regus4wP9olygonc^1025i1057. Rectangle(rectangles.web)..9Ȅ`+U 8Log)j`+U [LDFT2003.07.18.]ZޟRemoved+the\T*ransformations"section,QincludingopQerator0n==(const T ransform&).Also-movedtheRegus4wP9olygonIversionstoP9olygon1`Rinpolygons.web.ThesearenowinheritedbyRectangle2?. -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>` -format3c(R}'ectanglefD%R}'egffPolygonhV*ersionUUcontrolidenti er@10i+1055. IncludeT les.hIncludeUU les@11i+#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"1056. RectangleKclassde nition.[LDFT2003.07.18.]ZITOMDO:haxisffh"r]andhaxisffv">arehnotrecalculatedwhenUUaRectangle8?istransformed.qIshoulddosomethingabGoutthis.hDe neUUclass5RectangleT?1056i +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`G +format3c(R}'ectanglefD%R}'egffPolygonhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: rectangs.web,vk 1.3 2003/12/10 16:3Ơ6:58 lfinsto1 Exp $">L̫;1058. IncludeT les.hIncludeUU les@11i+#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. RectangleKclassde nition.[LDFT2003.07.18.]ZITOMDO:haxisffh"r]andhaxisffv">arehnotrecalculatedwhenUUaRectangle8?istransformed.qIshoulddosomethingabGoutthis.hDe neUUclass5RectangleT?1059i class$RRectangleZu<:qpublic'P9olygonS_4freal*0axisffhE;real*0axisffvEy;bQool-honfffr}'eeffstoreeFZ; -public)=֫:hDeclareUURectangle8?functions@1058i -g; ThisXco 8BeginTLogJʄ`> -[LDFT2002.11.06.]Y;MadeUUrealargumentsUUconst*. -[LDFT2003.07.18.]WBUGEcFIX:ENow,{axisffh3andaxisffvQ.arenolongerdividedby2,{whenIEcinitializeaxisffhffhalfandUUaxisffvffhalf2u.qIUUmistakenlyused==qinsteadof=.Ȅ` 8EndTLogA>`hDeclareUURectangle8?functions@1058i+ -Rectangle(angleffx ܱ;angleffy"3;angleffz!);b}'otffrt73a:r}'otateo>(angleffx ܱ;angleffy"3;angleffz!);topfflft9:r}'otateo>(angleffx ܱ;angleffy"3;angleffz!);topffrt89:r}'otateo>(angleffx ܱ;angleffy"3;angleffz!);g=PutUUaroundc}'enter^.o=b}'otfflft.3:shift}(c}'enter );b}'otffrt-3`:shift}(c}'enter );topfflft/:shift}(c}'enter );topffrt.9:shift}(c}'enter );for%舫(in9ti=0;i 9 <4;i++)p}'oints $:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk());p}'oints4$[0]=b}'otfflftbI;p}'oints4$[1]=b}'otffrtv;p}'oints4$[2]=topffrt(;p}'oints4$[3]=topfflftg; -g1063. SettingTfunction.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.06.]Y;MadeUUrealargumentsUUconst*.Ȅ` 8EndTLogA>`hDeclareUURectangle8?functions@1058i+ -v9oid"set0_(constSP9oint<롫&Dc}'centerd;constreal6YaaxisffhVoױ;constreal6YaaxisffvV<(;constreal6YangleffxYΫ=0;constreal41angleffyWԫ=0;constJreal6xangleffzYO=0);,!ln썫300SETTINGXFUNCTIONu=3DLDFPRÎGx1064n@P1064.hDe neUURectangle8?functions@1059i+ +g1066. SettingTfunction.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.06.]Y;MadeUUrealargumentsUUconst*.Ȅ`GhDeclareUURectangle8?functions@1061i+ +v9oid"set0_(constSP9oint<롫&Dc}'centerd;constreal6YaaxisffhVoױ;constreal6YaaxisffvV<(;constreal6YangleffxYΫ=0;constreal41angleffyWԫ=0;constJreal6xangleffzYO=0);/n썷x10673DLDFPRÎGu=SETTINGXFUNCTION303n@P1067.hDe neUURectangle8?functions@1062i+ v9oid#_RectangleVk::setx(constP9oint=1&EOc}'centereŘ;const 7Creal7LjaaxisffhWbg;const 7Creal7LjaaxisffvW.;const 7Creal2angleffxR;constJreal6xangleffyV;constJreal6xangleffzV) fRectangleIrN_(c}'center I;aaxisffh!;aaxisffv!;angleffx"0;angleffy"3;angleffz!);this,ѫ=r,; -g1065. F -our$P9oints.ThePoint!argumentsmustbGesoordered,tthattheyarecontiguousintheresultingRectangle2?.1066. Constructor.hDeclareUURectangle8?functions@1058i+ -Rectangle&Fpt1U@;constJP9oint>&Fpt2;constJP9oint>&Fpt3);1067.hDe neUURectangle8?functions@1059i+ +g1068. F +our$P9oints.ThePoint!argumentsmustbGesoordered,tthattheyarecontiguousintheresultingRectangle2?.1069. Constructor.hDeclareUURectangle8?functions@1061i+ +Rectangle&Fpt1U@;constJP9oint>&Fpt2;constJP9oint>&Fpt3);1070.hDe neUURectangle8?functions@1062i+ Rectangle=?::Rectangle3?(constǣP9oint&Fpt1U@;constJP9oint>&Fpt2;constJP9oint>&Fpt3);1069.hDe neUURectangle8?functions@1059i+ +6pt8q)=IfUUtheyare,createaRectangle5.o=fonfffr}'eeffstoreXl =falsev\;lineffswitchPiܫ=falsev\;cycleffswitchUǵ=true;c}'enter<Ц=pt00S:me}'diate"u(pt2i;);axisffh;=(pt18pt0):magnitude.=r();axisffv;=(pt28pt1):magnitude.=r();p}'oints9$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(pt0i;));p}'oints9$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(pt1i;));p}'oints9$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(pt2i;));p}'oints9$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(pt3i;));c}'onnectorsM41:pushffb}'ack+XR("--"\);gelse+fc}'err6s"ERROR! In Rectanglen7() with four Point arguments.\n"02"Points are not coplanar. Returning.\n\n" ush;greturn4g; +g0/Vn썫304SETTINGXFUNCTIONu=3DLDFPRÎGx1071n@P1071. SettingTfunction.hDeclareUURectangle8?functions@1061i+ +v9oid"set0v](const*P9oint=?&D]pt0TJ;constJP9oint>&Fpt1U@;constJP9oint>&Fpt2;constJP9oint>&Fpt3);1072.hDe neUURectangle8?functions@1062i+ v9oid"RectangleV=r::setx(const*P9oint=?&D]pt0TJ;constJP9oint>&Fpt1U@;constJP9oint>&Fpt2;constJP9oint>&Fpt3) fRectangleIrN_(pt0i;;pt1;pt2;pt3);this,ѫ=r,; -g1070. Pseudo-constructorTfordynamicalloQcation.1071. OptionalTpQoin9terargument.hDeclareUURectangle8?functions@1058i+ -static)HRectangle^ķccr}'eateffnewffr}'ectangle(const*RectangleSXp`=0);1072.hDe neUURectangle8?functions@1059i+ +g1073. Pseudo-constructorTfordynamicalloQcation.1074. OptionalTpQoin9terargument.hDeclareUURectangle8?functions@1061i+ +static)HRectangle^ķccr}'eateffnewffr}'ectangle(const*RectangleSXp`=0);1075.hDe neUURectangle8?functions@1062i+ Rectangle?DRectanglewԅ::cr}'eateffnewffr}'ectangleZ3(const*RectangleSXp]Ǎ) fRectangleINrV&=newϜ(Rectangle2?);if(p6=0) r-=p ;r~onfffr}'eeffstoreW6!=true;r~lineffswitchO3=falsev\;r~cycleffswitchTɫ=true;return7漱r<Ы; -g1073. RequiredTRectangleargumen9t.hDeclareUURectangle8?functions@1058i+ -static)HRectangle^ķccr}'eateffnewffr}'ectangle(const*RectangleS&[p`);.Cn썫302REQUIREDXRECTJANGLEARÎGUMENTa3DLDFPRGx1074n@P1074.hDe neUURectangle8?functions@1059i+ +g1076. RequiredTRectangleargumen9t.hDeclareUURectangle8?functions@1061i+ +static)HRectangle^ķccr}'eateffnewffr}'ectangle(const*RectangleS&[p`);1?Cn썷x10773DLDFPRÎGaREQUIREDXRECTJANGLEARGUMENT305n@P1077.hDe neUURectangle8?functions@1062i+ Rectangle?DRectanglewԅ::cr}'eateffnewffr}'ectangleZ3(const*RectangleS&[p`) fRectangleINrV&=newϜ(Rectangle2?);r /=p;r~onfffr}'eeffstoreW6!=true;r~lineffswitchO3=falsev\;r~cycleffswitchTɫ=true;return7漱r<Ы; -g1075. Destructor.[LDFT2002.10.09.]Z6RemovedUUthedestructor.qP9ath/::$m,XP9athD()orP9ath潫::cle}'ar(ݫ()shouldbGeusedinstead, unlessIadddynamicallyallocateddatamemberstoRectangle 8BeginTLogJʄ`> -[LDFT2002.11.06.]Y;ChangedUUreturnvqaluefromv9oidS-toconst!RectangleW&^.Ȅ` 8EndTLogA>`hDeclareUURectangle8?functions@1058i+ -const(*Rectangle]&eopQerator`=~(const*RectangleS&[c_څ);/Ln썷x10773DLDFPRÎG#CASSIGNMENT303n@P1077. !!qRemembGerUUtoputanythingspGeci ctoRectangles=s{inhere!hDe neUURectangle8?functions@1059i+ +g1078. Destructor.[LDFT2002.10.09.]Z6RemovedUUthedestructor.qP9ath/::$m,XP9athD()orP9ath潫::cle}'ar(ݫ()shouldbGeusedinstead, unlessIadddynamicallyallocateddatamemberstoRectangle 8BeginTLogJʄ`> -[LDFT2003.04.15.]YAddedthissection.k8It'sbGecomenecessary*,'sinceI'mderivingRectangle:;5fromP9athnow,UUandnotfromRegus4wP9olygonD .Ȅ` 8EndTLogA>`1079. ReturningTP9oints.U9Ȅ`> 8BeginTLogJʄ`> +g1081. ReturningTElemen9tsandinformation.9Ȅ`+U 8Log)j`+U +[LDFT2003.04.15.]YAddedthissection.k8It'sbGecomenecessary*,'sinceI'mderivingRectangle:;5fromP9athnow,UUandnotfromRegus4wP9olygonD .Ȅ`G1082. IsFlrectangular.isffr}'ectangularH8()testswhetheraRectangle9isrectangular.It rsttestsiftheRectangle5Uisplanar.\ThenitcreatesvectorsfromthepGointsontheRectangle5U,"andcheckstheiranglestooneszanother.6IftheyarewithinP9oint ƫ::epsilon o()(exclusive)of180^ ^inonecase,{and90^intheothertwo,isffr}'ectangular<()UUreturns1,otherwise0.q[LDFT2003.12.02.]N99Ȅ`+U 8Log)j`+U +[LDFT2003.11.28.]Y;AddedUUthisfunction. +[LDFT2003.12.02.]Y;AddedUUtestofplanarityatbGeginningoffunction. +[LDFT2003.12.09.]WNow8usingcr}'ossffproduct<̫()totestforparallelityofthesides.TO8DO:AddP9athK::isffp}'arallel,t() +andUUaversionforP9oints#x٫.Ȅ`GhDeclareUURectangle8?functions@1061i+ +bQool#gisffr}'ectangular`Ze()UUconst*;3Nn썷x10833DLDFPRÎGISXRECTJANGULAR307n@P1083.hDe neUURectangle8?functions@1062i+ +bQool#gRectangleV::isffr}'ectangular=()UUconst +fif(:isffplanar(&())return(false=;P9oint2a:=(getffp}'oint'bH(1)8getffp}'oint)((0));P9oint2b:a=(getffp}'oint'bH(2)8getffp}'oint)((3));P9oint2c: +=(getffp}'oint'bH(3)8getffp}'oint)((0));P9oint2d:)=(getffp}'oint'bH(2)8getffp}'oint)((1));return8-(aI0:cr}'ossffproduct:(bJ)=9origin z^h c:cr}'ossffproduct(d4r)origin z^h fabs(fabs2ҫ(aI0:angleS(d))h 90 h")=9<(P9ointDP::K(epsilonj()); +g1084. ReturningTP9oints.9Ȅ`+U 8Log)j`+U [LDFT2002.11.06.]YϕGotridofgetffc}'enter0Y().It'snotneeded,NsinceRegus4wP9olygonFg::getffc}'enter-=K()doGesthetrick. [LDFT2003.04.15.]XCAddedgetffc}'enter.'()again,+sinceI'mnolongerderivingRectangle7aUfromRegus4wP9olygonD,butUUfromP9ath湫. -[LDFT2003.07.18.]YQGot(ridofgetffc}'enter/o()again,]bGecauseRectangle9{isnowderivedfromP9olygon,,]andI'veUUmovedtheRegus4wP9olygonH)^versionstoP9olygon,ZC.Ȅ` 8EndTLogA>`1080. Corner.TheUUargumentc -shouldbGeintherange0<=c<=3.hDeclareUURectangle8?functions@1058i+ -P9oint(c}'ornerF`(unsigned07shortNcRU);1081.hDe neUURectangle8?functions@1059i+ +[LDFT2003.07.18.]YQGot(ridofgetffc}'enter/o()again,]bGecauseRectangle9{isnowderivedfromP9olygon,,]andI'veUUmovedtheRegus4wP9olygonH)^versionstoP9olygon,ZC.Ȅ`G1085. Corner.TheUUargumentc +shouldbGeintherange0<=c<=3.hDeclareUURectangle8?functions@1061i+ +P9oint(c}'ornerF`(unsigned07shortNcRU);1086.hDe neUURectangle8?functions@1062i+ P9oint(Rectangle\/7::c}'ornerqb(unsigned07shortNcRU) fif(c>3)fc}'err8z"ERROR: Rectangles hpave 4 corners, "2"numbered 0 through 3.\nReturning INVALID_POINT.\n"A  ush;returnAINVALID_POINT;greturn7漷 8BeginTLogJʄ`> +g1087. GetTMid-pQoin9t.TheUUargumentc +shouldbGeintherange0<=c<=3.9Ȅ`+U 8Log)j`+U [LDFT2002.11.06.]Y;ChangedUUthisfunctionsothatitusesme}'diate&ʫ(). [LDFT2003.05.09.]Y;RenamedUUthisfunctiongetffmidffp}'oint>().qF*ormerly,UUitwascalledmidffp}'oint.(). -[LDFT2003.07.18.]Y;MadeUUconst*.Ȅ` 8EndTLogA>`hDeclareUURectangle8?functions@1058i+ -P9oint(getffmidffp}'ointdZ(unsigned07shortNcRU)UUconst*;1083.hDe neUURectangle8?functions@1059i+ -P9oint(Rectangle\/7::getffmidffp}'oint3)fc}'err8Ko"ERROR: Rectangles hp3ave 4 mid_points, "pѷ2"numbered 0 through 3.\nReturning INVALID_POINT.\n"A  ush;returnAINVALID_POINT;gP9oint2p0?_;P9oint2p1?_;P9oint2p2?_;p0"ګ=p}'oints"뮫[cS۫];p1"ګ=(c<3)?p}'oints"뮫[c+818]:p}'oints"뮫[0];return7me}'diateZ1(p0 ;p1 h); -g1084. GettingTaxes.[LDFT2003.07.18.]Z6TOUUDO:axisffh!7andaxisffv!parenotrecalculatedwhenaRectangle5isUUtransformed.qIshoulddosomethingabGoutthis.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.18.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`1085. GetTaxisffs4#h.hDeclareUURectangle8?functions@1058i+ -real /getffaxisffhKx()UUconst*;1086.hDe neUURectangle8?functions@1059i+ -real /RectangleSȫ::getffaxisffh,-M()UUconst -freturn7axisffhRI; -g1087. GetTaxisffs4#v.hDeclareUURectangle8?functions@1058i+ -real /getffaxisffvKɫ()UUconst*;1^n썷x10883DLDFPRÎG^GETXAXISffs4#V305n@P1088.hDe neUURectangle8?functions@1059i+ +[LDFT2003.07.18.]Y;MadeUUconst*.Ȅ`GhDeclareUURectangle8?functions@1061i+ +P9oint(getffmidffp}'ointdZ(unsigned07shortNcRU)UUconst*;4Wn썫308GETXMID-POINT7q3DLDFPRÎGx1088n@P1088.hDe neUURectangle8?functions@1062i+ +P9oint(Rectangle\/7::getffmidffp}'oint3)fc}'err8Ko"ERROR: Rectangles hp3ave 4 mid_points, "pѷ2"numbered 0 through 3.\nReturning INVALID_POINT.\n"A  ush;returnAINVALID_POINT;gP9oint2p0?_;P9oint2p1?_;P9oint2p2?_;p0"ګ=p}'oints"뮫[cS۫];p1"ګ=(c<3)?p}'oints"뮫[c+818]:p}'oints"뮫[0];return7p0C|:me}'diate"u(p1 ); +g1089. GettingTaxes.[LDFT2003.07.18.]Z6TOUUDO:axisffh!7andaxisffv!parenotrecalculatedwhenaRectangle5isUUtransformed.qIshoulddosomethingabGoutthis.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.18.]Y;AddedUUthissection.Ȅ`G1090. GetTaxisffs4#h.hDeclareUURectangle8?functions@1061i+ +real /getffaxisffhKx()UUconst*;1091.hDe neUURectangle8?functions@1062i+ +real /RectangleSȫ::getffaxisffh,-M()UUconst +freturn7axisffhRI; +g1092. GetTaxisffs4#v.hDeclareUURectangle8?functions@1061i+ +real /getffaxisffvKɫ()UUconst*;5fn썷x10933DLDFPRÎG^GETXAXISffs4#V309n@P1093.hDe neUURectangle8?functions@1062i+ real /RectangleSȫ::getffaxisffv+()UUconst freturn7axisffvR; -g1089. Ellipses.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.18.]XAddedthissection.NThesefunctionsmustbGede nedinellipses.web,*becauseEllipseisUUanincompletetypGeinthis le.Ȅ` 8EndTLogA>`1090. SurroundingTEllipse.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUURectangle8?functions@1058i+ -Ellipse/>/outffellipse]()UUconst*;1091. EnclosedTEllipse.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUURectangle8?functions@1058i+ -Ellipse/>/inffellipseW()UUconst*;1092. Dra9wTsurroundingEllipse.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUURectangle8?functions@1058i+ +g1094. Ellipses.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.18.]XAddedthissection.NThesefunctionsmustbGede nedinellipses.web,*becauseEllipseisUUanincompletetypGeinthis le.Ȅ`G1095. SurroundingTEllipse.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ`GhDeclareUURectangle8?functions@1061i+ +Ellipse/>/outffellipse]()UUconst*;1096. EnclosedTEllipse.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ`GhDeclareUURectangle8?functions@1061i+ +Ellipse/>/inffellipseW()UUconst*;1097. Dra9wTsurroundingEllipse.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ`GhDeclareUURectangle8?functions@1061i+ Ellipse0ldr}'awffoutffellipsev5(constY\Color@- &G'ddr}'awffcolorp= Colors+::2&defaultffc}'olori;stringddashe}'dD,="" z;string"pp}'en:0="";Picture* -&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;1093. Dra9wTenclosedEllipse.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUURectangle8?functions@1058i+ +&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;1098. Dra9wTenclosedEllipse.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ`GhDeclareUURectangle8?functions@1061i+ Ellipse0dr}'awffinffellipseqy(constmColor@T{&Hddr}'awffcolor«= Colors+_::2Gdefaultffc}'olorix;stringddashe}'dD,="" z;string"pp}'en:0="";Picture* -&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;1094. PuttingTRectangletogether.ThisUUiswhat'scompiled. +&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;1099. PuttingTRectangletogether.ThisUUiswhat'scompiled. hIncludeUU les@11i -hV*ersionUUcontrolidenti er@10i2jn썫306PUTTINGXRECT -ANGLETOGETHER3DLDFPRÎGx1094n@P -hDe neUUclass5RectangleT?1056i -hDe neUURectangle8?functions@1059i3v0n썷x10953DLDFPRÎGPUTTINGXRECT -ANGLETOGETHER307n@P1095. ThisUUiswhat'swrittentorectangs.h.hrectangs.h@01095i -hDe neUUclass5RectangleT?1056i1096. Ellipse(ellipses.web).c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>` -format3c(EllipseZAWPathhV*ersionUUcontrolidenti er@10i+1097. IncludeT les.hIncludeUU les@11i+#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"1098. EllipseTclassde nition.U9Ȅ`> 8BeginTLogJʄ`> +hV*ersionUUcontrolidenti er@10i6nn썫310PUTTINGXRECT +ANGLETOGETHER3DLDFPRÎGx1099n@P +hDe neUUclass5RectangleT?1059i +hDe neUURectangle8?functions@1062i7yn썷x11003DLDFPRÎGPUTTINGXRECT +ANGLETOGETHER311n@P1100. ThisUUiswhat'swrittentorectangs.h.hrectangs.h@01100i +hDe neUUclass5RectangleT?1059i1101. Ellipse(ellipses.web).N99Ȅ`+U 8Log)j`+U +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`G +format3c(EllipseZAWPathhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: ellipses.web,vk 1.2 2003/12/10 15:3Ơ2:20 lfinsto1 Exp $">L̫;1102. IncludeT les.hIncludeUU les@11i+#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. EllipseTclassde nition.9Ȅ`+U 8Log)j`+U [LDFT2003.07.25.]Y;AddedUUfo}'cus0 ,UUfo}'cus1,UUandline}'arffeccentricityR0. -[LDFT2003.07.27.]Y;AddedUUnumeric}'alffeccentricityd'#.Ȅ` 8EndTLogA>`hDe neUUclass5EllipseD^1098i +[LDFT2003.07.27.]Y;AddedUUnumeric}'alffeccentricityd'#.Ȅ`GhDe neUUclass5EllipseD^1103i class$REllipseJ:qpublic'Regus4wClus4Planeus4Curv9eQ޷f protected:o:P9oint#fo}'cus0@ǫ;P9oint2fo}'cus1Oɫ;real*0line}'arffeccentricityy` ;real*0numeric}'alffeccentricity;real*0axisffhE;real*0axisffvEy;static3HunsignedcshortJDEFAULT_NUMBER_OF_POINTSЬ; -public)=֫:hDeclareUUEllipse(functions@1101i -g; ThisXco 8BeginTLogJʄ`> +gSee'alsosections1110,Z1112,1115,1117,1120,1123,1127,1130,1132,1134,1135,1137,1140,1142,1145,1147,1149,1151, +1155,1157,1160,1162,1164,1166,1168,1171,1173,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1187,1188,X1193,1195,1197,1199,1201,1204,1206,1209,1211,1214,1216,1219,1221,1223,and1225.ThisXco`hDeclareUUEllipse(functions@1101i+ -Ellipse+ګ(const|SP9oint?&Gc}'centerg;const!&real9+aaxisffhYAױ;const!&real9+aaxisffvY(;const!&realangleffxB=-0 -;const real87angleffy\l=-0;const real87angleffz\dW=-0;const unsignedQshortnnumb}'erffofffpointsq' =DEFAULT_NUMBER_OF_POINTSM8);5n썷x11053DLDFPRÎGByCONSTRUCTOR309n@P1105.R>hDe neUUEllipse(functions@1102i+ +[LDFT2003.07.27.]Y;AddedUUcoGdeforsettingnumeric}'alffeccentricityd'#.Ȅ`GhDeclareUUEllipse(functions@1106i+ +Ellipse+ګ(const|SP9oint?&Gc}'centerg;const!&real9+aaxisffhYAױ;const!&real9+aaxisffvY(;const!&realangleffxB=-0 -;const real87angleffy\l=-0;const real87angleffz\dW=-0;const unsignedQshortnnumb}'erffofffpointsq' =DEFAULT_NUMBER_OF_POINTSM8);9ؠn썷x11103DLDFPRÎGByCONSTRUCTOR313n@P1110.R>hDe neUUEllipse(functions@1107i+ Ellipse,ޫ::Ellipse"ݫ(constP9oint>ë&FGc}'centerfh*;const real7aaxisffhX;const real7aaxisffvWJ;const real2angleffxR;constJreal6xangleffyV;constJreal6xangleffzV;constJunsignedP Xshortmnnumb}'erffofffpoints6) :qaxisffhkT(aaxisffh );axisffv۫(aaxisffvN)UUfc}'enter2Х=c}'center"a;c}'enter0 :applyfftr}'ansformF߫();fo}'cus03zD=origin9;fo}'cus13zD=origin9;real*0axisffhffhalf]TA=axisffh=2;real*0axisffvffhalf\h=axisffv=2;if(axisffhaxisffv)fline}'arffeccentricityos=sqrtw((axisffhffhalf2ٷ8axisffhffhalf)8(axisffvffhalf1axisffvffhalf));fo}'cus0:-:shift}(line}'arffeccentricityVs);fo}'cus1:-:shift}(line}'arffeccentricityN۫);numeric}'alffeccentricity=line}'arffeccentricityQs=axisffhffhalf/;gelse+fline}'arffeccentricityos=sqrtw((axisffvffhalf18axisffvffhalf)8(axisffhffhalf2ٷaxisffhffhalf));fo}'cus0:-:shift}(0;0; qline}'arffeccentricityX);fo}'cus1:-:shift}(0;0;line}'arffeccentricityPW);numeric}'alffeccentricity=line}'arffeccentricityQs=axisffvffhalf/W ;gif(nnumb}'erffofffpointsRѭ%[ 4c&6=0)fc}'err5wm"WARNING! In Ellipsem(): Invalid value foLr number_of_points:"E <2nnumb}'erffofffpoints~a"." oaendlҷa"Using default instenaLad: "-2DEFAULT_NUMBER_OF_POINTSM=endl ush;numb}'erffofffpointskī=DEFAULT_NUMBER_OF_POINTSM8;gelse+numb}'erffofffpointsy`=nnumb}'erffofffpointsS' ;onfffr}'eeffstoreNl =falsev\;lineffswitchFi۫=falsev\;cycleffswitchKǴ=true;c}'onnectorsC40:pushffb}'ack+XR(".."\);T ransformKԱtOeF;if(angleffx#L6=0 _8angleffy%k6=0_8angleffz$n6=0)tr:r}'otateo>(angleffx ܱ;angleffy"3;angleffz!);tt:shift}(c}'enter );fo}'cus03zD=C{fo}'cus1b=rtuf;real*0currffangleX;real*0currffxG"K;real*0currffzF;for%舫(in9ti=0;i 9 <numb}'erffofffpointsM;i++)=LDFUU2002.11.06.qMoGdi edthiscode.o=fcurrffangleNޫ=2 8i㴷8PI ?B=numb}'erffofffpointsJ;currffx=66=axisffh=288c}'osɫ(currffangle-ë);currffz<Ы=axisffv=288sinG5(currffangle-ë);p}'oints9$:pushffb}'ack+XR(P9ointL::#(cr}'eateffnewffp}'ointk(currffxo;0;currffz]));#(p}'oints$:b}'ackë())=UOt;(=RotateUUUV(p}'oints$:b}'ackë())UUaroundthex,y*,andz-axesandshiftittoc}'enter^.o=g -g6n썫310SETTINGXFUNCTIONu=3DLDFPRÎGx1106n@P1106. SettingTfunction.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.03.01.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -v9oid$9oset1(constf8P9oint?k&GXc}'centergxұ;const!real8aaxisffhY;const!real8aaxisffvX;const!realangleffxB=-0 -;const real87angleffy\l=-0;const real87angleffz\dW=-0;const unsignedQshortnnumb}'erffofffpointsq' =DEFAULT_NUMBER_OF_POINTSM8);1107.hDe neUUEllipse(functions@1102i+ +g:n썫314SETTINGXFUNCTIONu=3DLDFPRÎGx1111n@P1111. SettingTfunction.9Ȅ`+U 8Log)j`+U +[LDFT2003.03.01.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUEllipse(functions@1106i+ +v9oid$9oset1(constf8P9oint?k&GXc}'centergxұ;const!real8aaxisffhY;const!real8aaxisffvX;const!realangleffxB=-0 -;const real87angleffy\l=-0;const real87angleffz\dW=-0;const unsignedQshortnnumb}'erffofffpointsq' =DEFAULT_NUMBER_OF_POINTSM8);1112.hDe neUUEllipse(functions@1107i+ v9oid#UEllipseF2::setx(constP9oint>Y7&F Uc}'centerf@;const treal7paaxisffhWm;const treal7paaxisffvW;const treal2angleffxR;constJreal6xangleffyV;constJreal6xangleffzV;constJunsignedP Xshortmnnumb}'erffofffpoints6) fEllipse9>0e=1(c}'center I;aaxisffh!;aaxisffv!;angleffx"0;angleffy"3;angleffz!;nnumb}'erffofffpointsR );this,ѫ=eo; -g1108. Pseudo-constructorTfordynamicalloQcation.1109. OptionalTpQoin9terargument.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.06.]Y;AddedUUoptionalconst!EllipseF%O{argument.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -static)HEllipseNS cr}'eateffnewffellipsed(const*EllipseChзHhѱeO=0);1110.hDe neUUEllipse(functions@1102i+ +g1113. Pseudo-constructorTfordynamicalloQcation.1114. OptionalTpQoin9terargument.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.06.]Y;AddedUUoptionalconst!EllipseF%O{argument.Ȅ`GhDeclareUUEllipse(functions@1106i+ +static)HEllipseNS cr}'eateffnewffellipsed(const*EllipseChзHhѱeO=0);1115.hDe neUUEllipse(functions@1107i+ Ellipse/>/4>0EllipseW' ::cr}'eateffnewffellipseO_(const*EllipseChзHhѱeMҫ) fEllipse9>0>>1rE]=newϜ(Ellipse!٫);if(eo6=0) r-=e o;r~onfffr}'eeffstoreW6!=true;return7漱r<Ы; -g1111. RequiredTEllipseargumen9t.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.06.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -static)HEllipseNS cr}'eateffnewffellipsed(const*EllipseChЫ&K/eO);7Šn썷x11123DLDFPRÎGu@REQUIREDXELLIPSEARGUMENT311n@P1112.hDe neUUEllipse(functions@1102i+ +g1116. RequiredTEllipseargumen9t.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.06.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUEllipse(functions@1106i+ +static)HEllipseNS cr}'eateffnewffellipsed(const*EllipseChЫ&K/eO);;Ѡn썷x11173DLDFPRÎGu@REQUIREDXELLIPSEARGUMENT315n@P1117.hDe neUUEllipse(functions@1107i+ Ellipse/>/4>0EllipseW' ::cr}'eateffnewffellipseO_(const*EllipseChЫ&K/eO) fEllipse9>0>>1rE]=newϜ(Ellipse!٫);r /=eo;r~onfffr}'eeffstoreW6!=true;return7漱r<Ы; -g1113. Destructor.[LDFT2002.10.09.]Z6RemovedUUthedestructor.qP9ath/::$m,XP9athD()orP9ath潫::cle}'ar(ݫ()shouldUUbGeusedinstead,unlessIadddynamicallyallocateddatamemberstoEllipse((ratherthanP9ath湫).1114. Assignmen9t.U9Ȅ`> 8BeginTLogJʄ`> +g1118. Destructor.[LDFT2002.10.09.]Z6RemovedUUthedestructor.qP9ath/::$m,XP9athD()orP9ath潫::cle}'ar(ݫ()shouldUUbGeusedinstead,unlessIadddynamicallyallocateddatamemberstoEllipse((ratherthanP9ath湫).1119. Assignmen9t.9Ȅ`+U 8Log)j`+U [LDFT2002.11.06.]Y;AddedUUerrorhandlingcoGdetopreventUUself-assignment. -[LDFT2002.11.10.]Y;ChangedUUreturnvqaluetoEllipse(&0Z.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -Ellipse/>/&7MopQeratorb=jc (const*EllipseChЫ&K/eO);1115. !!qRemembGerUUtoputanythingspGeci ctoEllipses-inhere!hDe neUUEllipse(functions@1102i+ +[LDFT2002.11.10.]Y;ChangedUUreturnvqaluetoEllipse(&0Z.Ȅ`GhDeclareUUEllipse(functions@1106i+ +Ellipse/>/&7MopQeratorb=jc (const*EllipseChЫ&K/eO);1120. !!qRemembGerUUtoputanythingspGeci ctoEllipses-inhere!hDe neUUEllipse(functions@1107i+ Ellipse/>/&7MEllipseY*::`|hopQerator=;(const*EllipseChЫ&K/eO) fif(thisη& 6e67)=[LDFT2002.11.06.]T7MakeUUsureit'snotself-assignment.o=returnA潷FthisWt;P9ath-j::4opQerator_]=g}{(e);c}'enter2Х=eo:c}'enter ;=Ellipse*>+membGers.o=axisffh1=eo:axisffh;axisffv1=eo:axisffvޫ;fo}'cus03zD=eo:fo}'cus0*;fo}'cus13zD=eo:fo}'cus1*;numb}'erffofffpointsaë=eo:numb}'erffofffpointsJ;=Regus4wClus4Planeus4Curv9eqLmembGers.o=return7漷h;gstring5%Os9O;c9har-jKc4>='a' w;for%舫(v9ectorHhP9oint#i::Bc}'onstffiteratorCiterW=p}'oints뭱:b}'egin();iter6=p}'oints:endಫ();iterJ++")fs%w=c;( iter):lab}'elt(s;p}'osj;dot;pictur}'e ~);c"ޟ++.;g -g1119. DotlabQel.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.06.]Y}ChangedthisfunctionsothatitjustcallsEllipse&::lab}'elt()withdotV=trueO.qMadeitinline4.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ +g1124. DotlabQel.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.06.]Y}ChangedthisfunctionsothatitjustcallsEllipse&::lab}'elt()withdotV=trueO.qMadeitinline4.Ȅ`GhDeclareUUEllipse(functions@1106i+ inline)Iv9oidB!dotlab}'eld(string!%Mp}'os3'="top"q;Picture* &2c(pictur}'eT3=curr}'entffpictureD߫)UUconst flab}'el(t(p}'os!±;trueo@;pictur}'e ~); -g1120. ReturningTelemen9tsandinformation.1121. IsTelliptical.[LDFT2003.07.20.]Z6isffelliptic}'alt̫()UU rstchecksUUwhetherUVthisaisplanarbycalling getffnormal0t()._HIfthelatterfunctionreturnsINVALID_POINTG,(thenisffelliptic}'al4 +g1125. ReturningTelemen9tsandinformation.1126. IsTelliptical.[LDFT2003.07.20.]Z6isffelliptic}'alt̫()UU rstchecksUUwhetherUVthisaisplanarbycalling getffnormal0t()._HIfthelatterfunctionreturnsINVALID_POINTG,(thenisffelliptic}'al4 o()returnsfalse._HOtherwise,(itmakess acopyofs thisɫcallede ,Lputse intothex-zplane,Landrotatesit,sothats (e:p}'oints$[0])liesonthex-axis.Then,a!it^plugsthexandz-coGordinatesoftheP9oints&one eintotheellipseequation,i.e.,x^2|s=a^2+?+zp^2 =b^2SE=1,wheretaishalfofthehorizontalaxisoftheellipse,{andbishalfoftheverticalaxis.LetrAZ==x^2|s=a^2ȫ+MUzp^2 -=b^2andstandforthereturnvqalueofP9ointޫ::epsilon o().S1Ifjrx[1j>foranyoftheP9oints&one, isffelliptic}'al3()returnsUUfalse,UUotherwiseitreturnstrue.U9Ȅ`> 8BeginTLogJʄ`> +=b^2andstandforthereturnvqalueofP9ointޫ::epsilon o().S1Ifjrx[1j>foranyoftheP9oints&one, isffelliptic}'al3()returnsUUfalse,UUotherwiseitreturnstrue.9Ȅ`+U 8Log)j`+U [LDFT2003.07.20.]Y;AddedUUthisfunction. -[LDFT2003.07.25.]Y;NowUUcheckingnormal&s%INVALID_POINTGY.qIfitis,isffelliptic}'al4A()returnsfalse.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -bQool#gisffelliptic}'alT()UUconst*;9n썷x11223DLDFPRÎGISXELLIPTICAL313n@P1122.hDe neUUEllipse(functions@1102i+ +[LDFT2003.07.25.]Y;NowUUcheckingnormal&s%INVALID_POINTGY.qIfitis,isffelliptic}'al4A()returnsfalse.Ȅ`GhDeclareUUEllipse(functions@1106i+ +bQool#gisffelliptic}'alT()UUconst*;=n썷x11273DLDFPRÎGISXELLIPTICAL317n@P1127.hDe neUUEllipse(functions@1107i+ bQool#gEllipseFD::isffelliptic}'al1욫()UUconst fbQool-hDEBUGK.٫=falsev\;=true=P9oint2normalV o=getffnormal3Q();if(normal#зINVALID_POINTGY)fif)(DEBUGY)(c}'err=ܷ2"In Ellipse::is_ellikptical(): "o2"get_normal() returnked INVALID_POINT."Z<endlR"*this is non-planark. Returning false."#endlendl ush;returnAfalseV;gEllipse9>0e@I=thisϫ;normal4V:shift}(c}'enter );T ransformKԱtOeF;tt:alignffwithffaxis@x(c}'enter ;normal"`;'y');e:dofftr}'ansform94(tr);if(DEBUGY)e :show("e after alignment:"i,);P9oint2xffaxisffptY(1);P9oint2p0Aw=eo:getffp}'oint'bH(0);real*0ang>4=p0ر:angleS(xffaxisffpt&);tt:r}'esetƷ();tt:r}'otateo>(0;angeN);p0"ڷ=2le7:dofftr}'ansform94(tr);p0 ±:unitffve}'ctor0u(trueĘ);if(p0ط6=xffaxisffpt)5)ft!u:r}'esetƷ();t!u:r}'otateo>(0; qƫ28ang);e":dofftr}'ansform94(tr);gp0"ګ=eo:getffp}'oint'bH(0);p0 ±:unitffve}'ctor0u(trueĘ);if(p0ط6=xffaxisffpt)5)fif)(DEBUGY)(c}'err=ܷ2"ERROR! In is_elliptkical():\n"r2"Rotation failed.\nRketurning false\n\n"W< ushQ;returnAfalseV;gif(DEBUGY)e :show("e after rotation inh x-z plane:");real*0x0jL;real*0z/N;real*0a2x=(e:getffp}'oint'bH(0)8e:getffc}'enter,=G()):magnitude.=r();real*0b1=(e:getffp}'oint'bH(numb}'erffofffpointsJ=4)8e:getffc}'enter,=G()):magnitude.=r();if(DEBUGY)fc}'out4 R"a == "*ԃa -`endl ush;c}'out4 R"b == "*ԃb ڷendl ush;greal*0r/}D;in9t%i+=0;:˼n썫314ISXELLIPTICAL3DLDFPRÎGx1122n@Pfor%舫(v9ectorHhP9oint#i::Bc}'onstffiteratorCiterW=eo:p}'oints$:b}'egin();iter6=e:p}'oints:endಫ();++Giter")f x&~7=( +`endl ush;c}'out4 R"b == "*ԃb ڷendl ush;greal*0r/}D;in9t%i+=0;>Ơn썫318ISXELLIPTICAL3DLDFPRÎGx1127n@Pfor%舫(v9ectorHhP9oint#i::Bc}'onstffiteratorCiterW=eo:p}'oints$:b}'egin();iter6=e:p}'oints:endಫ();++Giter")f x&~7=( iter):getffxg();z%9=( iter):getffz();if)(DEBUGY)f(c}'out> S"Point "0i $": "endl ush;(( iter):show("iter:"%FS);(c}'out> S"x == "*ԃx ELendl ush;(c}'out> S"z == "*ԃz Nendl ush;gr%/=((x8x)=(a8a))8+((zOz)=(bb));if)(DEBUGY)c}'out O"r == "*ԃr XDendl ush;if)(fabs2ҫ(r818)>P9ointad::%epsilonE^())f(if4r3(DEBUGY)c}'out[s"Point "26si vڷs" doesn't satisfy elm7lipse equation.\n" ܷF"Returning false.\n\n"E ush;(returnKfalse`;g++*G#i-;gif(DEBUGY)c}'out4 R"Exiting Ellipse::isk_elliptical(). RetuƠrning true."endlendl ush;return7trueJT; -g1123. IsTquadratic.hDeclareUUEllipse(functions@1101i+ +g1128. IsTquadratic.hDeclareUUEllipse(functions@1106i+ inline)IbQoolC+isffquadr}'aticw()UUconst freturn7trueJT; -g1124. IsTcubic.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.27.]Y;MadeUUvirtual((andUUnon-inline.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -virtual/bQoolI/:isffcubickT^()UUconst*;;ٸn썷x11253DLDFPRÎG7lISXCUBIC315n@P1125.hDe neUUEllipse(functions@1102i+ +g1129. IsTcubic.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.27.]Y;MadeUUvirtual((andUUnon-inline.Ȅ`GhDeclareUUEllipse(functions@1106i+ +virtual/bQoolI/:isffcubickT^()UUconst*;? n썷x11303DLDFPRÎG7lISXCUBIC319n@P1130.hDe neUUEllipse(functions@1107i+ bQool#gEllipseFD::isffcubic#%(()UUconst freturn7falseL; -g1126. IsTquartic.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.27.]Y;MadeUUvirtual((andUUnon-inline.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -virtual/bQoolI/:isffquarticsa'()UUconst*;1127.hDe neUUEllipse(functions@1102i+ +g1131. IsTquartic.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.27.]Y;MadeUUvirtual((andUUnon-inline.Ȅ`GhDeclareUUEllipse(functions@1106i+ +virtual/bQoolI/:isffquarticsa'()UUconst*;1132.hDe neUUEllipse(functions@1107i+ bQool#gEllipseFD::isffquartic+1()UUconst freturn7falseL; -g1128. Solv9e.[LDFT2002.11.06.]ZsolvepO()assumesthattheEllipse'liesinama8jorplanewithitscenterattheorigin.LCoGdethatcallsitmustensurethattheseconditionsareful lled.solve˫()returnsthetwopGossiblevqaluesUUforeitherthehorizontalortheverticalcoGordinate. -TOUUDO:Readthrough,andthenexplainthisfunction.U9Ȅ`> 8BeginTLogJʄ`> +g1133. Solv9e.[LDFT2002.11.06.]ZsolvepO()assumesthattheEllipse'liesinama8jorplanewithitscenterattheorigin.LCoGdethatcallsitmustensurethattheseconditionsareful lled.solve˫()returnsthetwopGossiblevqaluesUUforeitherthehorizontalortheverticalcoGordinate. +TOUUDO:Readthrough,andthenexplainthisfunction.9Ȅ`+U 8Log)j`+U [LDFT2003.07.20.]X Now'usinggetffaxisffv-()andgetffaxisffh.p(),cinsteadofaccessingaxisffh ۫andaxisffv t,directly*. -[LDFT2003.07.25.]Y;RemovedUUsomecommented-outcoGde,andanexplanatorycomment.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -realus4wpair9psolveOM(c9harjIaxisffunknownU;real]known5>)UUconst*;<㽠n썫316SOL8VEA'3DLDFPRÎGx1129n@P1129.hDe neUUEllipse(functions@1102i+ +[LDFT2003.07.25.]Y;RemovedUUsomecommented-outcoGde,andanexplanatorycomment.Ȅ`GhDeclareUUEllipse(functions@1106i+ +realus4wpair9psolveOM(c9harjIaxisffunknownU;real]known5>)UUconst*;@眠n썫320SOL8VEA'3DLDFPRÎGx1134n@P1134.hDe neUUEllipse(functions@1107i+ realus4wpair9pEllipse\Y_::solve7ϫ(c9harjIaxisffunknownU;real]known5>)UUconst*fUUrealr}'adiusffknownU -;real41r}'adiusffunknownz\;axisffunknown]:=tolower#(axisffunknownr}'adiusffknown=)f(returnKINVALID_REAL_PAIR;g=n썷x11303DLDFPRÎGA'SOL8VE317n@P1130. TheUUequationforanellipseinthex-yplanewithitscenterattheoriginisYx2|s=a2S+8y[ٟ2L=b2C=1whereUUaishalfthehorizontalaxisandbishalftheverticalaxis.qTherefore,y"=5p 5feF+ ˍ(18xr2|s=ar2)8br2and \x=5p 5feF ˍ(18y[ٟr2L=br2|s)ar2SL :hDe neUUEllipse(functions@1102i+ +;real41r}'adiusffunknownz\;axisffunknown]:=tolower#(axisffunknownr}'adiusffknown=)f(returnKINVALID_REAL_PAIR;gAn썷x11353DLDFPRÎGA'SOL8VE321n@P1135. TheUUequationforanellipseinthex-yplanewithitscenterattheoriginisYx2|s=a2S+8y[ٟ2L=b2C=1whereUUaishalfthehorizontalaxisandbishalftheverticalaxis.qTherefore,y"=5p 5feF+ ˍ(18xr2|s=ar2)8br2and \x=5p 5feF ˍ(18y[ٟr2L=br2|s)ar2SL :hDe neUUEllipse(functions@1107i+ r: rst|«=sqrtw((1ķë((knownjknown)=(r}'adiusffknown;ʷr}'adiusffknown)))(r}'adiusffunknownFr}'adiusffunknown)); r:se}'cond n߫= 6rXJ: rst; -return-滱r2ϫ;qǷg1131. GetcoQecien9ts.ThisDisusedforgettingthecoGecientsofthequadraticequationthatresultsfrom0replacingyثwithmxQ+b0fromthelineequation,gwheremistheslopGeandbtheinterceptwiththeverticalB#axis,E(whicheverthatmightbGeinaparticularcase;Hitneedn'tbethey-axis)intheequationfortheellipseԀx2|s= z2ͫ+8y[ٟ2L= 2ʧ=1namelyUU!!qST*ARTHERE.Checkthis.qIthinkthexinthecoGecientforx^2ȫiswrong.7x2|s= z2ͫ+8(mx+b)2= 2 8BeginTLogJʄ`> +return-滱r2ϫ;qǷg1136. GetcoQecien9ts.ThisDisusedforgettingthecoGecientsofthequadraticequationthatresultsfrom0replacingyثwithmxQ+b0fromthelineequation,gwheremistheslopGeandbtheinterceptwiththeverticalB#axis,E(whicheverthatmightbGeinaparticularcase;Hitneedn'tbethey-axis)intheequationfortheellipseԀx2|s= z2ͫ+8y[ٟ2L= 2ʧ=1namelyUU!!qST*ARTHERE.Checkthis.qIthinkthexinthecoGecientforx^2ȫiswrong.7x2|s= z2ͫ+8(mx+b)2= 2`hDeclareUUEllipse(functions@1101i+ -realus4wtriple@egetffc}'oecients׫(real.Slop}'e.s;real]vffinter}'ceptGx)UUconst*;1132.hDe neUUEllipse(functions@1102i+ +[LDFT2003.07.27.]Y;CorrectedUUatypGointhemathmodematerialshowingthecoecients.Ȅ`GhDeclareUUEllipse(functions@1106i+ +realus4wtriple@egetffc}'oecients׫(real.Slop}'e.s;real]vffinter}'ceptGx)UUconst*;1137.hDe neUUEllipse(functions@1107i+ realus4wtriple@eEllipsecB::getffc}'oecientsAv(real.Slop}'e.s;real]vffinter}'ceptGx)UUconst frealus4wtripleJfrOz;real*0axffhAL=getffaxisffh-a();real*0axffvAV=getffaxisffv-();r: rst|«=((axffv=2)8(axffv=2))+(((axffhѽ=2)(axffhѽ=2))(Slop}'e3Slop}'e));=a=r:se}'cond n߫=2 8Slop}'e28vffinter}'cept3b8((axffhѽ=2)(axffh=2));=b=r:thir}'d=(((axffhѽ=2)(axffh=2))(vffinter}'cept/Evffinter}'cept))(((axffv=2)(axffv=2))((axffhѽ=2)(axffhѽ=2)));#=c=return7漱r<Ы; -g1133. GetTcen9ter.>n썫318NON-CONSTXVERSIONA3DLDFPRÎGx1134n@P1134. Non-constTv9ersion.9Ȅ`> 8BeginTLogJʄ`> +g1138. GetTcen9ter.Bn썫322NON-CONSTXVERSIONA3DLDFPRÎGx1139n@P1139. Non-constTv9ersion.9Ȅ`+U 8Log)j`+U [LDFT2002.11.10.]Y;MadeUUthisfunctionvirtual((andnon-inline4. -[LDFT2003.05.09.]Y;ChangedUUreturnvqaluefromP9oint"D&-aetoconst!P9oint@o&H6.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -virtual/constMvP9ointl&to1getffc}'enterx();1135.hDe neUUEllipse(functions@1102i+ +[LDFT2003.05.09.]Y;ChangedUUreturnvqaluefromP9oint"D&-aetoconst!P9oint@o&H6.Ȅ`GhDeclareUUEllipse(functions@1106i+ +virtual/constMvP9ointl&to1getffc}'enterx();1140.hDe neUUEllipse(functions@1107i+ const(*P9ointG@&N^Ellipseq;::xXygetffc}'enter() fc}'enter0 :applyfftr}'ansformF߫();return7c}'enterSG; -g1136. constTv9ersion.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.10.]Y;MadeUUthisfunctionvirtual((andnon-inline4.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -virtual/P9ointN}qgetffc}'enterz()UUconst*;1137.hDe neUUEllipse(functions@1102i+ +g1141. constTv9ersion.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.10.]Y;MadeUUthisfunctionvirtual((andnon-inline4.Ȅ`GhDeclareUUEllipse(functions@1106i+ +virtual/P9ointN}qgetffc}'enterz()UUconst*;1142.hDe neUUEllipse(functions@1107i+ P9oint(EllipseK{::getffc}'enter-=K()UUconst fP9oint2p7(c}'enter );p:applyfftr}'ansformF߫();return7漱p<; -g1138. GetTfoQcus.1139. Non-constTv9ersion.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.25.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -const(*P9ointG@&N^getfffo}'cusv"(const*unsignedNashortl,SspS);?n썷x11403DLDFPRÎGANON-CONSTXVERSION319n@P1140.hDe neUUEllipse(functions@1102i+ +g1143. GetTfoQcus.1144. Non-constTv9ersion.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.25.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUEllipse(functions@1106i+ +const(*P9ointG@&N^getfffo}'cusv"(const*unsignedNashortl,SspS);Cnn썷x11453DLDFPRÎGANON-CONSTXVERSION323n@P1145.hDe neUUEllipse(functions@1107i+ const(*P9ointG@&N^Ellipseq;::getfffo}'cus(A(const*unsignedNashortl,SspS) fif(sw0)ffo}'cus0:-:applyfftr}'ansformF߫();returnAfo}'cus0^;gelse*.6if5.(sw1)ffo}'cus1:-:applyfftr}'ansformF߫();returnAfo}'cus1^;gelse+fc}'err3?9"ERROR! In |Ellipse:l>:get_focus()|:\n"Dk?9"Invalid argument: "p?9s .r?9endlp42"Valid arguments are 0 and 1.\n"M%"Returning INVALID_PkOINT.\n\n"> ush;returnAINVALID_POINT;g -g1141. constTv9ersion.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.25.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -P9oint(getfffo}'cusP1/(const*unsignedNashortl,SspS)UUconst*;@ n썫320CONSTXVERSION ol3DLDFPRÎGx1142n@P1142.hDe neUUEllipse(functions@1102i+ +g1146. constTv9ersion.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.25.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUEllipse(functions@1106i+ +P9oint(getfffo}'cusP1/(const*unsignedNashortl,SspS)UUconst*;Dn썫324CONSTXVERSION ol3DLDFPRÎGx1147n@P1147.hDe neUUEllipse(functions@1107i+ P9oint(EllipseK{::getfffo}'cus(A(const*unsignedNashortl,SspS)UUconst fP9oint2p7;if(sw0)fp%=fo}'cus0zB;p#:applyfftr}'ansformF߫();returnA潱pF;gelse*.6if5.(sw1)fp%=fo}'cus1zB;p#:applyfftr}'ansformF߫();returnA潱pF;gelse+fc}'err3?9"ERROR! In |Ellipse:l>:get_focus()|:\n"Dk?9"Invalid argument: "p?9s .r?9endlp42"Valid arguments are 0 and 1.\n"M%"Returning INVALID_PkOINT.\n\n"> ush;returnAINVALID_POINT;g -g1143. GetTlineareccen9tricity -.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.25.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -real /getffline}'arffeccentricityƫ()UUconst*;1144.hDe neUUEllipse(functions@1102i+ +g1148. GetTlineareccen9tricity +.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.25.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUEllipse(functions@1106i+ +real /getffline}'arffeccentricityƫ()UUconst*;1149.hDe neUUEllipse(functions@1107i+ real /EllipseC ::getffline}'arffeccentricity_()UUconst freturn7line}'arffeccentricity; -g1145. GetTn9umericaleccentricity -.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.27.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -real /getffnumeric}'alffeccentricity()UUconst*;A{n썷x11463DLDFPRÎG̷GETXNUMERICALECCENTRICITY321n@P1146.hDe neUUEllipse(functions@1102i+ +g1150. GetTn9umericaleccentricity +.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.27.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUEllipse(functions@1106i+ +real /getffnumeric}'alffeccentricity()UUconst*;E-n썷x11513DLDFPRÎG̷GETXNUMERICALECCENTRICITY325n@P1151.hDe neUUEllipse(functions@1107i+ real /EllipseC ::getffnumeric}'alffeccentricityr()UUconst freturn7numeric}'alffeccentricity; -g1147. GetTaxes.9Ȅ`> 8BeginTLogJʄ`> +g1152. GetTaxes.9Ȅ`+U 8Log)j`+U [LDFT2003.07.20.]Z?RewroteYtheconst$versionsofthefunctionsinthissection,^andaddednon-constversions._AllVofthemnowcheckwhetherWthis&cisstillellipticalusingisffellipse*M$()._Ifitis,(thevqalueaxisffv!oraxisffhshouldhaveisrecalculated,andthisvqalueisreturned.Inthenon-const?versions,axisffv"[oraxisffhisresettothenewvqalue.Ifthis+isnolongerelliptical,thefunctionreturnsINVALID_REALC,andaxisffh" oraxisffv3isUUsettoINVALID_REALF0inthenon-const*versions. [LDFT2003.07.20.]Xaxisffhuland_axisffvare_upGdatedbythetransformationfunctions,andthesearepresumablytheonlyonesthatcouldcauseanEllipse* tobGecomenon-elliptical.So,@checkingandrecalculatingthemhereUUisprobablyredundant.qHowever,UUthismaychange,soit'ssafertodothishere. -[LDFT2003.07.25.]XUBUGFIX:axisffh ?andaxisffv weretoGosmallbyhalf.6^Nowmultiplyingby2inallversionsofUUgetffaxisffh.()UUandgetffaxisffv.N().Ȅ` 8EndTLogA>`1148. GetTv9erticalaxis.1149. constTv9ersion.hDeclareUUEllipse(functions@1101i+ -real /getffaxisffvKɫ()UUconst*;1150.hDe neUUEllipse(functions@1102i+ +[LDFT2003.07.25.]XUBUGFIX:axisffh ?andaxisffv weretoGosmallbyhalf.6^Nowmultiplyingby2inallversionsofUUgetffaxisffh.()UUandgetffaxisffv.N().Ȅ`G1153. GetTv9erticalaxis.1154. constTv9ersion.hDeclareUUEllipse(functions@1106i+ +real /getffaxisffvKɫ()UUconst*;1155.hDe neUUEllipse(functions@1107i+ real /EllipseC ::getffaxisffv+()UUconst fif(isffelliptic}'al0얫())return(溫(288(getffp}'oint'bH(numb}'erffofffpointsJ=4)getffc}'enter.v'()):magnitude.=r());else+returnOINVALID_REALE߫; -g1151. Non-constTv9ersion.hDeclareUUEllipse(functions@1101i+ -real /getffaxisffvKɫ();1152.hDe neUUEllipse(functions@1102i+ +g1156. Non-constTv9ersion.hDeclareUUEllipse(functions@1106i+ +real /getffaxisffvKɫ();1157.hDe neUUEllipse(functions@1107i+ real /EllipseC ::getffaxisffv+() fif(isffelliptic}'al0얫())axisffv"=((getffp}'oint'bH(numb}'erffofffpointsJ=4)8getffc}'enter.v'()):magnitude.=r()828);else+axisffvIe׫=INVALID_REALBM\;return7axisffvR; -g1153. GetThorizon9talaxis.BNn썫322CONSTXVERSION ol3DLDFPRÎGx1154n@P1154. constTv9ersion.hDeclareUUEllipse(functions@1101i+ -real /getffaxisffhKx()UUconst*;1155.hDe neUUEllipse(functions@1102i+ +g1158. GetThorizon9talaxis.Fn썫326CONSTXVERSION ol3DLDFPRÎGx1159n@P1159. constTv9ersion.hDeclareUUEllipse(functions@1106i+ +real /getffaxisffhKx()UUconst*;1160.hDe neUUEllipse(functions@1107i+ real /EllipseC ::getffaxisffh,-M()UUconst fif(isffelliptic}'al0얫())return(溫((getffp}'oint'bH(0)8getffc}'enter.v'()):magnitude.=r()828);else+returnOINVALID_REALE߫; -g1156. Non-constTv9ersion.hDeclareUUEllipse(functions@1101i+ -real /getffaxisffhKx();1157.hDe neUUEllipse(functions@1102i+ +g1161. Non-constTv9ersion.hDeclareUUEllipse(functions@1106i+ +real /getffaxisffhKx();1162.hDe neUUEllipse(functions@1107i+ real /EllipseC ::getffaxisffh,-M() fif(isffelliptic}'al0얫())axisffh"=(getffp}'oint'bH(0)8getffc}'enter.v'()):magnitude.=r()828;else+axisffhI=INVALID_REALBM\;return7axisffhRI; -g1158. AnglepQoin9t.angleffp}'oint<ٹ()ereturnsapGointontheellipsegivenanangle.E ectively*,ip}'oint<[0]isrotated abGoutthecenterintheplaneoftheellipseandtheintersectionoftherayfromthecenterthroughp}'oint.[0]UUandtheellipseisreturned. -[LDFT2003.07.27.]Y;TOUUDO:T*rytogettherotationtoalwaysUUgointhedirectionIwouldlike.c9Ȅ`> 8BeginTLogJʄ`> +g1163. AnglepQoin9t.angleffp}'oint<ٹ()ereturnsapGointontheellipsegivenanangle.E ectively*,ip}'oint<[0]isrotated abGoutthecenterintheplaneoftheellipseandtheintersectionoftherayfromthecenterthroughp}'oint.[0]UUandtheellipseisreturned. +[LDFT2003.07.27.]Y;TOUUDO:T*rytogettherotationtoalwaysUUgointhedirectionIwouldlike.N99Ȅ`+U 8Log)j`+U [LDFT2003.07.01.]YvBUG FIX:)Nowreturningbpp: rst:pt ƫifit'snotequaltoINVALID_POINTHj.COtherwise,bpp:se}'condDZ:pt misreturned.;9ThelattermaybGeavqalidP9oint,orINVALID_POINTH.Before,INVALID_POINTwasM*returnedifbppD: rst:bԫandbpp:se}'condDZ:bԫwerefalsen,Nbutthisisthecase,iftheintersectionpGointsdidn'tlieUUonthelinesegmentbGetweenc}'enter"5andpt0. BUGFIX:NowcheckingtomakesurethattheintersectionpGointliesinthepropGerdirection.NowthattheUUintersectionpGointdoGesn'thavetobGeonthelinesegment,it'snecessarytocheckthis. [LDFT2003.07.20.]X Now'usinggetffaxisffv-()andgetffaxisffh.p(),cinsteadofaccessingaxisffh ۫andaxisffv t,directly*. -[LDFT2003.07.27.]X5Made6Oconst .gpMade6Oangle,argument6Oconst.Now6Ousinggetffc}'enter/s()insteadofc}'enter?ګ.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -P9oint(angleffp}'ointZI[(const*real4angleL#)UUconst*;C+(n썷x11593DLDFPRÎG {ANGLEXPOINT323n@P1159.hDe neUUEllipse(functions@1102i+ +[LDFT2003.07.27.]X5Made6Oconst .gpMade6Oangle,argument6Oconst.Now6Ousinggetffc}'enter/s()insteadofc}'enter?ګ.Ȅ`GhDeclareUUEllipse(functions@1106i+ +P9oint(angleffp}'ointZI[(const*real4angleL#)UUconst*;G-Zn썷x11643DLDFPRÎG {ANGLEXPOINT327n@P1164.hDe neUUEllipse(functions@1107i+ P9oint(EllipseK{::angleffp}'oint2Y(const*real4angleL#)UUconst fP9oint2CenterTS=getffc}'enter/_();P9oint2normalV o=getffnormal3Q();normal4V:shift}(Center);P9oint2pt0E=getffp}'oint*)`(0);pt0&0U=8CenterWE;pt0#i=:unitffve}'ctor0u(trueĘ);pt0&0U=5maxIc'(getffaxisffh+-I();getffaxisffv,B())=2;=[LDFT2002.11.06.]T7pt0fǫwillUUeitherlieonthepGerimeteroftheEllipse(orbeyondit.o=pt0#i=:shift}(Center);pt0#i=:r}'otateo>(Center;normal"`;anglej);bQoolus4wpoin9tus4pairedbppx"=interse}'ctionffpointsTS(Center;pt0);P9oint2dir}'ectionfflinemj«(pt08Center!S|);dir}'ectionfflineN{%:unitffve}'ctor0u(trueĘ);P9oint2dir}'ectionffptf4;if(bpp: rst:pt 6=INVALID_POINTGY)fdir}'ectionffptT =bpp: rst:pt 䝫;dir}'ectionffptT =f`Center{o;dir}'ectionffptQDg:unitffve}'ctor0u(trueĘ);if)(dir}'ectionffpt6 |dir}'ectionffline=B;)return(bpp8ݣ: rst:pt 䝫;greturn7bppGݥ:se}'condDZ:pt 䝫; -g1160. Equalit9y -.TODO:4I'llneedtode nePath3::$opQeratorPXX()inordertobGeabletode nethisfunction.hDeclareUUEllipse(functions@1101i+#if 0 -virtual/bQoolI/:opQeratort| (const*EllipseChЫ&K/eO);#endifD9n썫324EQUALITY/C3DLDFPRÎGx1161n@P1161.hDe neUUEllipse(functions@1102i+ #if 0 +g1165. Equalit9y +.TODO:4I'llneedtode nePath3::$opQeratorPXX()inordertobGeabletode nethisfunction.hDeclareUUEllipse(functions@1106i+#if 0 +virtual/bQoolI/:opQeratort| (const*EllipseChЫ&K/eO);#endifH;n썫328EQUALITY/C3DLDFPRÎGx1166n@P1166.hDe neUUEllipse(functions@1107i+ #if 0 virtual/bQoolI/:Ellipsel::rUopQerator= ((const*EllipseChЫ&K/eO) -fg#endif1162. LoQcationTofapoin9t. [LDFT2003.07.25.]Z6ThisUUfunctionoverloadsRegus4wClus4Planeus4Curv9ei::lo}'cation#().=It'ssimpler,WbGecauseitdoesn'tneedtocopytheEllipse'[andtransformtheUUcopyintoama8jorplane.qNordoGesitrequiretheuseofsolve (). +fg#endif1167. LoQcationTofapoin9t. [LDFT2003.07.25.]Z6ThisUUfunctionoverloadsRegus4wClus4Planeus4Curv9ei::lo}'cation#().=It'ssimpler,WbGecauseitdoesn'tneedtocopytheEllipse'[andtransformtheUUcopyintoama8jorplane.qNordoGesitrequiretheuseofsolve (). [LDFT2003.07.25.]Y&ZIfsttheP9oint"0argumentPliesinthesameplaneassuthis_+,zlo}'cation&..-1 UVm>d.qDZPliesUUoutsidetheEllipse%>..1 UVm..-2 UVPisUUnotinthesameplaneastheEllipse%>..-3 UVTheUUEllipse(isUUnon-elliptical.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.25.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -virtual/signedRshortpmlo}'cation(const*P9oint=?&D]pI])UUconst*;ECn썷x11633DLDFPRÎGLOCAJTIONXOFAPOINT325n@P1163.hDe neUUEllipse(functions@1102i+ +[LDFT2003.07.25.]ZLLet,fmstandfor(P Brfo}'cus0 &):magnitude.=r()r+(Pfo}'cus0 &):magnitude.=r(),*d,ffor2 Qmax(axisffh;axisffvp),UUandforP9oint::epsilon o().qThereturnvqaluesareasfollows:0 UVjm8dj<.qDZPliesUUonthepGerimeteroftheEllipse%>..-1 UVm>d.qDZPliesUUoutsidetheEllipse%>..1 UVm..-2 UVPisUUnotinthesameplaneastheEllipse%>..-3 UVTheUUEllipse(isUUnon-elliptical.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.25.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUEllipse(functions@1106i+ +virtual/signedRshortpmlo}'cation(const*P9oint=?&D]pI])UUconst*;IEn썷x11683DLDFPRÎGLOCAJTIONXOFAPOINT329n@P1168.hDe neUUEllipse(functions@1107i+ signed-oshortK:Ellipsen#w::lo}'cation#(const*P9oint=?&D]pI])UUconst fbQool-hDEBUGK.٫=falsev\;=true=real*0axffhAL=getffaxisffh-a();real*0axffvAV=getffaxisffv-();if(axffhշINVALID_REALD<_8axffvINVALID_REALBM\)fc}'err8fA"ERROR! In Ellipse::qAlocation():\n"É|2"Ellipse is non-elliptical. Returning -3.\n\n"& ush;returnA潷I۫3N;gif(:p:isffonffplane1ګ(getffplane(v()))fc}'err8z"WARNING! In Ellipsep::location():\n"2"Point doesn't lie in plane of Ellipse.\n""Returning -2.\n\n"i_ ush;returnA潷I۫2N;greal*0maxffaxN=maxk(axffhѽ;axffvH);P9oint2q:a=p 8getfffo}'cus)zq(0);real*0mag@&=q:magnitude.=r();qī=p 8getfffo}'cus)zq(1);mag*+=maxffax#ë)fif)(DEBUGY)c}'out O"Point lies outside kof perimeter of |EllƠipse|.\n";returnA潷I۫1N;gelse+fif)(DEBUGY)c}'out O"Point lies inside okf perimeter of |ElliƠpse|.\n"L;returnA潫1F;g -g1164. In9tersectionTpQoints.1165. P9ointTarguments.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.27.]Y;MadeUUtheargumentsconst!P9oint@o&H6.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -virtual/bQoolus4wpoin9tus4pairinterse}'ctionffpoints(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rū)UUconst*;FLn썫326POINTXARÎGUMENTS3DLDFPRGx1166n@P1166.hDe neUUEllipse(functions@1102i+ +g1169. In9tersectionTpQoints.1170. P9ointTarguments.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.27.]Y;MadeUUtheargumentsconst!P9oint@o&H6.Ȅ`GhDeclareUUEllipse(functions@1106i+ +virtual/bQoolus4wpoin9tus4pairinterse}'ctionffpoints(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rū)UUconst*;JNn썫330POINTXARÎGUMENTS3DLDFPRGx1171n@P1171.hDe neUUEllipse(functions@1107i+ bQoolus4wpoin9tus4pair[dEllipse~M̫::interse}'ctionffpointsR(const*P9oint=?&D]pt0TJ;constJP9oint>&Fpt1U@)UUconst freturn7Regus4wClus4Planeus4Curv9eX::interse}'ctionffpointsR(c}'enter ;pt0;pt1); -g1167. P9athadargument.ThisfunctionjustcheckstobGesurethatP9athrlp&jisaline,extractstheP9oints#,andUUcallstheversionwithP9oint"Darguments,returningthelatter'sreturnvqalue.U9Ȅ`> 8BeginTLogJʄ`> +g1172. P9athadargument.ThisfunctionjustcheckstobGesurethatP9athrlp&jisaline,extractstheP9oints#,andUUcallstheversionwithP9oint"Darguments,returningthelatter'sreturnvqalue.9Ȅ`+U 8Log)j`+U [LDFT2003.07.09.]Y;MadeUUvirtual%ӫ. -[LDFT2003.07.27.]Y;MadeUUargumentp aconst!P9ath=f&E-.qChanged,sothatisffline}'ar(jҫ()isused,andgetfflastffp}'oint:$>()UUratherthangetffp}'oint*(1).Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -virtual/bQoolus4wpoin9tus4pairinterse}'ctionffpoints(const*P9ath:[&AypFy)UUconst*;1168.hDe neUUEllipse(functions@1102i+ +[LDFT2003.07.27.]Y;MadeUUargumentp aconst!P9ath=f&E-.qChanged,sothatisffline}'ar(jҫ()isused,andgetfflastffp}'oint:$>()UUratherthangetffp}'oint*(1).Ȅ`GhDeclareUUEllipse(functions@1106i+ +virtual/bQoolus4wpoin9tus4pairinterse}'ctionffpoints(const*P9ath:[&AypFy)UUconst*;1173.hDe neUUEllipse(functions@1107i+ bQoolus4wpoin9tus4pair[dEllipse~M̫::interse}'ctionffpointsR(const*P9ath:[&AypFy)UUconst fif(:p:isffline}'ar%}())fc}'err6DK"ERROR! In Ellipse::nK_intersection_points(K#const Path&):\n"12"Path argument is non-linear.\n""Haven't programmed lxthis case yet.\n"a2"Returning INVALID_BOOL_POINT_PAIR."Mendlendl ush;returnAINVALID_BOOL_POINT_PAIR,;greturn7interse}'ctionffpointss(p:getffp}'oint'bH(0);p:getfflastffp}'oint:$>()); -g1169. EllipseTargumen9t.TOUUDO:Readthroughandexplain.q[LDFT2002.11.06.] +g1174. EllipseTargumen9t.TOUUDO:Readthroughandexplain.q[LDFT2002.11.06.] TOUUDO:[LDFT2003.07.20.]R]ThefollowingcoGdefoundonlyoneintersection:#if 0 Ellipse/>/t2ڡ(origin!;5;4;90 ); Circle+c0 ](origin!;3;90 ); cS:shift}(3); cS:r}'otateo>(0;0;30 ); -bQoolus4wpoin9tus4quadrupleybp}'q=tc:interse}'ctionffpointsQ߫(cS۫);#endifGYYn썷x11703DLDFPRÎGELLIPSEXARGUMENT327n@P1170. [LDFT2003.07.20.]ZWhen7c Iwas7rotatedby15^nor45^,interse}'ctionffpointsT{()foundbGothintersections. T*ryo}to ndoutwhy!?Iovwanto}towriteaCircle%B&versionwithanEllipse(ӫargument,vandviceversa.?IfIovdo,vImayUUnothavetoworryabGoutthisproblem. +bQoolus4wpoin9tus4quadrupleybp}'q=tc:interse}'ctionffpointsQ߫(cS۫);#endifK[ +n썷x11753DLDFPRÎGELLIPSEXARGUMENT331n@P1175. [LDFT2003.07.20.]ZWhen7c Iwas7rotatedby15^nor45^,interse}'ctionffpointsT{()foundbGothintersections. T*ryo}to ndoutwhy!?Iovwanto}towriteaCircle%B&versionwithanEllipse(ӫargument,vandviceversa.?IfIovdo,vImayUUnothavetoworryabGoutthisproblem. Ifytheverb}'ose'իargumentistrue>T,informationabGouttheintersectionpGointsisprintedtostandardoutput.[LDFT2003.07.01.] -IftheEllipses.arecoplanar,CtheintersectionpGointsofthepGerimetersoftheEllipses.arereturned.{IftheA9planesoftheEllipses,arepGerpendicularA9orskew,E>theintersectionlineoftheplanesisfound.kThen,E>theintersectionUUpGointsofthethislinewiththeEllipses)j,iftheyexist.U9Ȅ`> 8BeginTLogJʄ`> +IftheEllipses.arecoplanar,CtheintersectionpGointsofthepGerimetersoftheEllipses.arereturned.{IftheA9planesoftheEllipses,arepGerpendicularA9orskew,E>theintersectionlineoftheplanesisfound.kThen,E>theintersectionUUpGointsofthethislinewiththeEllipses)j,iftheyexist.9Ȅ`+U 8Log)j`+U [LDFT2002.04.12.]XdActually*,҃itloGoksasiftheequationsDr.Schwardmanngavemewon'tdothetrick.;ETheyassumebGothellipsesarecenteredabouttheorigin.WhenItriedtohaveMathematicasolvetheequationsforx^2|s=a^2+cy[ٟ^2L=b^2=2(xm)^2=c^2+(yn)^2=d^2,MathematicaproGducedsolutionsthattookupover35,000linesUUoftext! [LDFT2002.04.12.]Y8I'verewrittentheothercases(parallel,pGerpendicular,andskew)inthisfunctioncom-pletely*,andıitseemslikeitwasn'treallyworththee ort.AThenewversiondoGeshowevermakeuseofPlanesandsLinesU,{qwhichsisnotabadthing,anditchecksswhethertheintersectionP9oints' (areontheEllipse%\,soitUUwasn'tatotalloss. [LDFT2002.04.12.]X}I've writtentoDr.SchwardmannandaskedhimabGoutthisproblem.Y3ItmayjustbGemyignorance,?por9pGerhapsI'veoverloGokedsomethingsimple.hI'mnottoGohopeful,?phowever,so9I'llprobablyhavetoUUimplementthenumericalsolutionI'dstarted,afterall. @@ -4217,19 +4278,19 @@ [LDFT2003.07.01.]Y;AddedUUverb}'ose'<argument. [LDFT2003.07.01.]Y&Changeds\pGerpendicularandskewcase".|Debuggedcoplanarcase,{wheretheEllipsesdon'tUUhavethesamecentersand/oraxisorientation. [LDFT2003.07.06.]ZyMadeaminorchangetotheconditionalthatdetermineswhethertheEllipses0AarecoplanarUUornot. -[LDFT2003.08.14.]Y;SettingUUverb}'ose'<toUUtrueoBifUUVERBOSE_GLOBALPisUUtrue.qAddedUUVERBOSE_GLOBALtopspglb.webUUtoGday*.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -virtual/bQoolus4wpoin9tus4quadrupletinterse}'ctionffpoints^(Ellipse%>.e)/;bQoolLverb}'ose>=falsev\)UUconst*;Hfvn썫328ELLIPSEXARÎGUMENT3DLDFPRGx1171n@P1171.hDe neUUEllipse(functions@1102i+ +[LDFT2003.08.14.]Y;SettingUUverb}'ose'<toUUtrueoBifUUVERBOSE_GLOBALPisUUtrue.qAddedUUVERBOSE_GLOBALtopspglb.webUUtoGday*.Ȅ`GhDeclareUUEllipse(functions@1106i+ +virtual/bQoolus4wpoin9tus4quadrupletinterse}'ctionffpoints^(Ellipse%>.e)/;bQoolLverb}'ose>=falsev\)UUconst*;Lgn썫332ELLIPSEXARÎGUMENT3DLDFPRGx1176n@P1176.hDe neUUEllipse(functions@1107i+ bQoolus4wpoin9tus4quadruplez`Ellipse=::interse}'ctionffpointsR(Ellipse& e*;bQoolverb}'ose<)! constVf! bQool2DEBUGOv=falsev\;=trueĒ=if)(VERBOSE_GLOBALJ>)verb}'ose(Xu=true;if)(DEBUG9_8verb}'ose"=)(c}'out>|#T"Entering Ellipse::il#ntersection_points(E"llipse e, const bool>" verbose)"vL><endlOȫ;bQoolus4wpoin9tus4quadruplebp}'q=INVALID_BOOL_POINT_QUADRUPLEM,;Plane>6thisffplanelͫ=thisΟ~getffplane@)();Plane>6effplanea=eo:getffplane(v();if)(DEBUGY)f(thisffplaneS:show("this_plane:"DA);(effplaneHڱ:show("e_plane:"5J);gif)(thisffplane+:normal#зeffplane#Q:normal"_8thisffplane-ڱ:normal -6effplane+ :normal V)UUf1172. CoplanarUUcase.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.20.]X/Now|usinggetffaxisffv-vr()andgetffaxisffh-!(),%insteadofaccessingaxisffh=andaxisffvdirectly*.Ȅ` 8EndTLogA>`hDe neUUEllipse(functions@1102i+ +6effplane+ :normal V)UUf1177. CoplanarUUcase.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.20.]X/Now|usinggetffaxisffv-vr()andgetffaxisffh-!(),%insteadofaccessingaxisffh=andaxisffvdirectly*.Ȅ`GhDe neUUEllipse(functions@1107i+ if(fabs2ҫ(fabs(thisffplane+:distanc}'e$E)8fabsk(effplane ֱ:distanc}'e)):show("normal_point"J>); -P9oint(effaxisfforientationffr}'otated@(effaxisfforientationNPɫ);Jjn썫330ELLIPSEXARÎGUMENT3DLDFPRGx1174n@P1174. [LDFT2002.09.26.]Z)kST*ARTrHERE.AddedtheifLcondition.R.IthinkthisshouldbGedone, butIshould checkPtobGesure.pApparentlyIOhaven'tprogrammedthecasethatthecentersaren'tthesame,QbutitwouldbGeUUeasyenoughtodo,Ithink.hDe neUUEllipse(functions@1102i+ +P9oint(effaxisfforientationffr}'otated@(effaxisfforientationNPɫ);Nn썫334ELLIPSEXARÎGUMENT3DLDFPRGx1179n@P1179. [LDFT2002.09.26.]Z)kST*ARTrHERE.AddedtheifLcondition.R.IthinkthisshouldbGedone, butIshould checkPtobGesure.pApparentlyIOhaven'tprogrammedthecasethatthecentersaren'tthesame,QbutitwouldbGeUUeasyenoughtodo,Ithink.hDe neUUEllipse(functions@1107i+ ifp(effaxisfforientationQ6=thisffaxisfforientation\)effaxisfforientationffr}'otatedu:r}'otateo>(origin!;normalffp}'oint;R;90 ); if(DEBUGY)effaxisfforientationffr}'otatedu:show("e_axis_orientation"i,); -if3~(this붟~c}'enter47eA:c}'enter÷^8((thisffaxisfforientation\effaxisfforientationTw_thisffaxisfforientation_u(/"effaxisfforientation~)_(thisffaxisfforientation\effaxisfforientationffr}'otatedtj_thisffaxisfforientation^3(/"effaxisfforientationffr}'otatedī)))fif(DEBUGY)c}'out O"Centers and axis orkientation are the saƠme.\n" ush;(='[LDFT2002.04.14.]T6Picklthemaximumofaxisffh!ҋandaxisffv!ܫandmultiplyitby1.5.EW*e'llusea2linegBsegmentofthislengthto ndintersectionpGointswiththetwoEllipses)W.Usingthislength2guaranteesUUwe'll ndthem.qActually*,max(axisffh;axisffvp)oughttodothetrick.o=P9oint2pt0BXګ;if(axffhշaxffve&)pt00S=getffp}'oint*)`(0);else+pt0> 4=getffp}'oint*)`(numb}'erffofffpointsJ=4);pt0&0U=8c}'enterT4;pt0&0U=51:5B;pt0#i=:shift}(c}'enter );if(DEBUGY)fthisffplaneI:normal V:show("normal"*P);c}'enter: :show("center"*P);g= [LDFT2002.04.14.]TeW*e'll^lrotatept0&aroundthenormaltotheplaneoftheellipsefromc}'enterg,2i.e.,UUthelinesegmentfromc}'enter"5topt1.o=P9oint2pt1BXګ(thisffplane+:normal V);pt1#i=:shift}(c}'enter );if (DEBUGY)pt1i;:show("pt1");=[LDFT2002.04.14.]T>[pt2gispgtheintersectionofthelinefromc}'enter2toUUpt0withUUUVthisA ,UUandpt3istheintersectionofthesamelinewitheV.o=P9oint2pt2BXګ;P9oint2pt3BXګ;bQoolus4wpoin9tus4pairedbppffthis0;bQoolus4wpoin9tus4pairedbppffe}F;bQool-mc}'ongruentff agpt=Lutrue ;=P[LDFT2002.04.14.]TAW*e'llZ ndintersectionpGointsfor vevqalues(ofpt07.EIfonesetofintersectionpGointsarenotthesame,thismeanstheweEllipses- arenot(congruentUUandinthesameloGcation,sowebreakoutoftheloGop.o=for%舫(in9ti=0;i 9 <5;i++)fif)(DEBUGY)c}'out O"i == "*ԃi $endl ush;if)(i9 6=0)pt0i;:r}'otateo>(c}'enter ;pt1;30 );if)(DEBUGY)pt0i;:dotlab}'el!("0"F_);bppffthisD3[=interse}'ctionffpointsTS(c}'enter ;pt0);bppffe9$q=eo:interse}'ctionffpointsQ߫(c}'enter ;pt0);if)(bppffthis#l@: rst:b·true)f(if3(DEBUGY)c}'out O"first is an intersekction point (this).\Ơn";(pt2:0W=bppffthis&3X: rst:pt 䝫;gelse4.7if?/(bppffthis#l@:se}'condDZ:b·true)f(if3(DEBUGY)c}'out O"second is an interskection point (this).Ơ\n" ;(pt2:0W=bppffthis&3X:se}'condDZ:pt 䝫;gelse5fKn썷x11743DLDFPRÎGELLIPSEXARGUMENT331n@P(c}'errA:"In Ellipse::interseoction_points(Ellipse؄).\n" <"This can't happen (this)!\n"׍/"Will try to continuke.\n\n"G ush;(pt2:0W=INVALID_POINTGY;gif)(bppffe]V: rst:b·true)f(if3(DEBUGY)c}'out O"first is an intersekction point (e).\n" ;(pt3:0W=bppffe$n: rst:pt 䝫;gelse4.7if?/(bppffe]V:se}'condDZ:b·true)f(if3(DEBUGY)c}'out O"second is an interskection point (e).\n"M;(pt3:0W=bppffe$n:se}'condDZ:pt 䝫;gelse5f(c}'errA:"In Ellipse::interseoction_points(Ellipse؄).\n"<"This can't happen (e)!\nWill try to con tinue.\n\n"K  ush;(pt3:0W=INVALID_POINTGY;gif)(DEBUGY)f(pt27i?:show("2"F_);(pt27i?:dotlab}'el!("2"F_);(pt37i?:show("3"F_);(pt37i?:dotlab}'el!("3"F_;"bot"q);gif)(pt20SINVALID_POINTI9_8pt3i3INVALID_POINT_8pt26=pt30S)f(if3(DEBUGY)c}'out O"Ellipses are not cokngruent. Breaking.\nƠ"ڍ;(c}'ongruentff agi=falsev\;(breakDh;gelse5con9tinue`;g=for+=if(DEBUGY)fc}'out4 R"congruent_flag == "o\c}'ongruentff agD endl ush;gif(c}'ongruentff agAtrue)fc}'err6F0"WARNING! In EllipsenK::intersection_pointאs(Ellipse).\n"'&Է2"Ellipses are congruent and in the same location.\n"I@2"Returning INVALID_BOOL_POINT_QUADRUPLE.\n\n"! ush;returnAINVALID_BOOL_POINT_QUADRUPLElѫ;gelse*.6if5.(DEBUGY)fc}'out4 R"All five points arek not on both ellipseƠs.\n"T ush;g +if3~(this붟~c}'enter47eA:c}'enter÷^8((thisffaxisfforientation\effaxisfforientationTw_thisffaxisfforientation_u(/"effaxisfforientation~)_(thisffaxisfforientation\effaxisfforientationffr}'otatedtj_thisffaxisfforientation^3(/"effaxisfforientationffr}'otatedī)))fif(DEBUGY)c}'out O"Centers and axis orkientation are the saƠme.\n" ush;(='[LDFT2002.04.14.]T6Picklthemaximumofaxisffh!ҋandaxisffv!ܫandmultiplyitby1.5.EW*e'llusea2linegBsegmentofthislengthto ndintersectionpGointswiththetwoEllipses)W.Usingthislength2guaranteesUUwe'll ndthem.qActually*,max(axisffh;axisffvp)oughttodothetrick.o=P9oint2pt0BXګ;if(axffhշaxffve&)pt00S=getffp}'oint*)`(0);else+pt0> 4=getffp}'oint*)`(numb}'erffofffpointsJ=4);pt0&0U=8c}'enterT4;pt0&0U=51:5B;pt0#i=:shift}(c}'enter );if(DEBUGY)fthisffplaneI:normal V:show("normal"*P);c}'enter: :show("center"*P);g= [LDFT2002.04.14.]TeW*e'll^lrotatept0&aroundthenormaltotheplaneoftheellipsefromc}'enterg,2i.e.,UUthelinesegmentfromc}'enter"5topt1.o=P9oint2pt1BXګ(thisffplane+:normal V);pt1#i=:shift}(c}'enter );if (DEBUGY)pt1i;:show("pt1");=[LDFT2002.04.14.]T>[pt2gispgtheintersectionofthelinefromc}'enter2toUUpt0withUUUVthisA ,UUandpt3istheintersectionofthesamelinewitheV.o=P9oint2pt2BXګ;P9oint2pt3BXګ;bQoolus4wpoin9tus4pairedbppffthis0;bQoolus4wpoin9tus4pairedbppffe}F;bQool-mc}'ongruentff agpt=Lutrue ;=P[LDFT2002.04.14.]TAW*e'llZ ndintersectionpGointsfor vevqalues(ofpt07.EIfonesetofintersectionpGointsarenotthesame,thismeanstheweEllipses- arenot(congruentUUandinthesameloGcation,sowebreakoutoftheloGop.o=for%舫(in9ti=0;i 9 <5;i++)fif)(DEBUGY)c}'out O"i == "*ԃi $endl ush;if)(i9 6=0)pt0i;:r}'otateo>(c}'enter ;pt1;30 );if)(DEBUGY)pt0i;:dotlab}'el!("0"F_);bppffthisD3[=interse}'ctionffpointsTS(c}'enter ;pt0);bppffe9$q=eo:interse}'ctionffpointsQ߫(c}'enter ;pt0);if)(bppffthis#l@: rst:b·true)f(if3(DEBUGY)c}'out O"first is an intersekction point (this).\Ơn";(pt2:0W=bppffthis&3X: rst:pt 䝫;gelse4.7if?/(bppffthis#l@:se}'condDZ:b·true)f(if3(DEBUGY)c}'out O"second is an interskection point (this).Ơ\n" ;(pt2:0W=bppffthis&3X:se}'condDZ:pt 䝫;gelse5fO$n썷x11793DLDFPRÎGELLIPSEXARGUMENT335n@P(c}'errA:"In Ellipse::interseoction_points(Ellipse؄).\n" <"This can't happen (this)!\n"׍/"Will try to continuke.\n\n"G ush;(pt2:0W=INVALID_POINTGY;gif)(bppffe]V: rst:b·true)f(if3(DEBUGY)c}'out O"first is an intersekction point (e).\n" ;(pt3:0W=bppffe$n: rst:pt 䝫;gelse4.7if?/(bppffe]V:se}'condDZ:b·true)f(if3(DEBUGY)c}'out O"second is an interskection point (e).\n"M;(pt3:0W=bppffe$n:se}'condDZ:pt 䝫;gelse5f(c}'errA:"In Ellipse::interseoction_points(Ellipse؄).\n"<"This can't happen (e)!\nWill try to con tinue.\n\n"K  ush;(pt3:0W=INVALID_POINTGY;gif)(DEBUGY)f(pt27i?:show("2"F_);(pt27i?:dotlab}'el!("2"F_);(pt37i?:show("3"F_);(pt37i?:dotlab}'el!("3"F_;"bot"q);gif)(pt20SINVALID_POINTI9_8pt3i3INVALID_POINT_8pt26=pt30S)f(if3(DEBUGY)c}'out O"Ellipses are not cokngruent. Breaking.\nƠ"ڍ;(c}'ongruentff agi=falsev\;(breakDh;gelse5con9tinue`;g=for+=if(DEBUGY)fc}'out4 R"congruent_flag == "o\c}'ongruentff agD endl ush;gif(c}'ongruentff agAtrue)fc}'err6F0"WARNING! In EllipsenK::intersection_pointאs(Ellipse).\n"'&Է2"Ellipses are congruent and in the same location.\n"I@2"Returning INVALID_BOOL_POINT_QUADRUPLE.\n\n"! ush;returnAINVALID_BOOL_POINT_QUADRUPLElѫ;gelse*.6if5.(DEBUGY)fc}'out4 R"All five points arek not on both ellipseƠs.\n"T ush;g g=EndUUoftestofcongruencyandsameloGcation.o==[LDFT2002.09.26.]T7ST*ARTUUHERE.Programmthiscase!!o= else .5if+-(DEBUGY)fc}'out-'2"The centers are difnͽferent, or the axiś orientation "'("is different, or both. "9"Haven't programmed kthis case yet.\n"ō; g @@ -4253,15 +4314,15 @@ T ransformAӱtEeE; T -ransformAtffinverseh;Ln썫332ELLIPSEXARÎGUMENT3DLDFPRGx1175n@P1175. ShiftUUtoorigin(ifnecessary).hDe neUUEllipse(functions@1102i+ +ransformAtffinverseh;P۠n썫336ELLIPSEXARÎGUMENT3DLDFPRGx1180n@P1180. ShiftUUtoorigin(ifnecessary).hDe neUUEllipse(functions@1107i+ if(c}'opyffcenter5W6=origin9)fif(DEBUGY)fc}'out4 R"Shifting copy to orkigin.\n"D ush;gtt:shift}(c}'opyffcenter:]:getffxg(); qc}'opyffcenter;c}'opyffcenterIY=Y7t\;eo=*Rt.ī; g else .5if+-(DEBUGY)fc}'out* Q"copy is already at korigin.\n"> ush; -g1176. GetUUcoGordinatesofnormal.hDe neUUEllipse(functions@1102i+ +g1181. GetUUcoGordinatesofnormal.hDe neUUEllipse(functions@1107i+ real /normalffxLNZ=thisffplane.O:normal V:getffxg(); real /normalffyL4 =thisffplane.O:normal V:getffyt(); -real /normalffzK=thisffplane.O:normal V:getffz();M̠n썷x11773DLDFPRÎGELLIPSEXARGUMENT333n@P1177. Determine- theorientationoftheellipseandrotate,5ifit'snotalreadyinaplaneparalleltoama8jor plane.Rotating`theEllipse(߫cancauseinaccuraciesinthecoGordinatevqalues,bsoiftheellipseisalreadyinama8jorUUplane,(i.e.,onepGerpendicularUUtoamajoraxis),weleaveitwhereitis.c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.08.27.]YyCommented-out`thedeclarationofOTHER&,ccbGecauseit'sneverused.I`haven'tdeletedit,justUUincase.Ȅ` 8EndTLogA>`hDe neUUEllipse(functions@1102i+ +real /normalffzK=thisffplane.O:normal V:getffz();Qn썷x11823DLDFPRÎGELLIPSEXARGUMENT337n@P1182. Determine- theorientationoftheellipseandrotate,5ifit'snotalreadyinaplaneparalleltoama8jor plane.Rotating`theEllipse(߫cancauseinaccuraciesinthecoGordinatevqalues,bsoiftheellipseisalreadyinama8jorUUplane,(i.e.,onepGerpendicularUUtoamajoraxis),weleaveitwhereitis.N99Ȅ`+U 8Log)j`+U +[LDFT2003.08.27.]YyCommented-out`thedeclarationofOTHER&,ccbGecauseit'sneverused.I`haven'tdeletedit,justUUincase.Ȅ`GhDe neUUEllipse(functions@1107i+ unsigned:7shortXorientationt; const(*unsignedXashortv,TX_Y9˫=0; const(*unsignedXashortv,TX_Z9˫=1; @@ -4280,13 +4341,13 @@ g else0=EllipseUUdoGesn'tlieinaplaneparalleltoama8jorplane.o= fif(DEBUGY)c}'out O"Ellipse doesn't liek in a plane parallelƠ to a major plane.\n=d"FS ush;-=PutUUitinx-zplane.o=if(DEBUGY)fc}'opyffcenterPB:dotlab}'el!("c"F_);gP9oint2ellipseffpt0c仫=c}'opyW:getffp}'oint'bH(0);T -ransformKt0V;t0Lͱ:alignffwithffaxis@x(c}'opyffcenter2?;ellipseffpt0/ج;'x');c}'opy+W=:It0E2;c}'opyffcenterIY=Y7t0c[;ellipseffpt0D=TUt0^ ;eo=*Rt05J;if(DEBUGY)fN.n썫334ELLIPSEXARÎGUMENT3DLDFPRGx1177n@Pellipseffpt0L.:show("ellipse_pt0"DA); ellipseffpt0L.:dotlab}'el!("0"F_);gP9oint2ellipseffpt4c仫=c}'opyW:getffp}'oint'bH(numb}'erffofffpointsJ=4);if(DEBUGY)ellipseffpt43.:show("ellipse_pt4"DA);T +ransformKt0V;t0Lͱ:alignffwithffaxis@x(c}'opyffcenter2?;ellipseffpt0/ج;'x');c}'opy+W=:It0E2;c}'opyffcenterIY=Y7t0c[;ellipseffpt0D=TUt0^ ;eo=*Rt05J;if(DEBUGY)fR^n썫338ELLIPSEXARÎGUMENT3DLDFPRGx1182n@Pellipseffpt0L.:show("ellipse_pt0"DA); ellipseffpt0L.:dotlab}'el!("0"F_);gP9oint2ellipseffpt4c仫=c}'opyW:getffp}'oint'bH(numb}'erffofffpointsJ=4);if(DEBUGY)ellipseffpt43.:show("ellipse_pt4"DA);T ransformKt1V;t1Lͱ:alignffwithffaxis@x(c}'opyffcenter2?;ellipseffpt4/ج;'z'); c}'opy+W=:It1E2;c}'opyffcenterIY=Y7t1c[;eo=*Rt15J;ellipseffpt4D=TUt1^ ;tc=)t04>;tc=)t14>;orientationH:Y=X_Z w; g tffinverse3.=tc:inverse (); P9oint(effc}'enterP=eo:getffc}'enter,=G(); if(DEBUGY)f c}'opyffcenterFA:show("copy_center"DA);effc}'enter8Q7:show("e_center"5J); -gOn썷x11783DLDFPRÎGELLIPSEXARGUMENT335n@P1178. EllipsesEhavethesamecenterandorientation.XIftheydo,thenthereisanalgebraicsolutionwecan applyUUto ndtheintersectionpGoints.hDe neUUEllipse(functions@1102i+ +gSn썷x11833DLDFPRÎGELLIPSEXARGUMENT339n@P1183. EllipsesEhavethesamecenterandorientation.XIftheydo,thenthereisanalgebraicsolutionwecan applyUUto ndtheintersectionpGoints.hDe neUUEllipse(functions@1107i+ P9oint(c}'opyffaxisfforientationq(c}'opy:getffp}'oint'bH(0)); c}'opyffaxisfforientationi={@c}'opyffcenter; c}'opyffaxisfforientationfԱ:unitffve}'ctor0u(trueĘ); @@ -4321,7 +4382,7 @@ numer}'ator;'=bbW8(aa c}'c ū); if(DEBUGY)fc}'out* Q"numerator == "Tknumer}'ator4`>endl ush;c}'out* Q"denominator == "_Tedenominator>6endl ush; g -if(denominator;o0)fif(DEBUGY)c}'out O"x == INVALID_REAL.\kn"v>;PDn썫336ELLIPSEXARÎGUMENT3DLDFPRGx1178n@Px~6=INVALID_REALBM\; +if(denominator;o0)fif(DEBUGY)c}'out O"x == INVALID_REAL.\kn"v>;TIn썫340ELLIPSEXARÎGUMENT3DLDFPRGx1183n@Px~6=INVALID_REALBM\; g else!ftry)3fx&~7= 6(c8sqrt٫(188(numer}'ator.=denominator8Ϋ)));gcatc9h.׫(:::)fx&~7=INVALID_REALBM\;if)(DEBUGY)c}'out O"x == INVALID_REAL\nk"qA;g @@ -4342,10 +4403,10 @@ g if(DEBUGY)fc}'out* Q"y == "*ԃy (endl ush; -gQ;n썷x11793DLDFPRÎGELLIPSEXARGUMENT337n@P1179. TheUUellipsescanintersectatnopGoints,twopGoints,orfourpGoints.  +gU@n썷x11843DLDFPRÎGELLIPSEXARGUMENT341n@P1184. TheUUellipsescanintersectatnopGoints,twopGoints,orfourpGoints.  IfUUtheydonotintersect,thenoneoftheellipsesmustbGeinsidetheother. IfUUtheyintersectattwopGoints,theneitherx=0UUory"=0(butnotbGoth). -Otherwise,UUtheyintersectatfourpGoints.hDe neUUEllipse(functions@1102i+ +Otherwise,UUtheyintersectatfourpGoints.hDe neUUEllipse(functions@1107i+ if(x~4INVALID_REALD<_8y BINVALID_REALBM\)fc}'err,ӷ+"WARNING! In Ellipsen::intersection_pointѳs(Ellipse).\n"'("Ellipses don't intersect. "M0"Returning INVALID_BkOOL_POINT_QUADRUPLE.Ơ\n\n";return7INVALID_BOOL_POINT_QUADRUPLElЫ; g @@ -4362,7 +4423,7 @@ g else!fc}'err,̿"ERROR! In Ellipse::ointersection_points(Ellipse).\n"("This can't happen! orientation has invalid value: ">O׷orientation;M(endl>޷"Will to try to contkinue.\n\n"> ush; g -if(DEBUGY)fR٠n썫338ELLIPSEXARÎGUMENT3DLDFPRGx1179n@Ppt20(:show("pt20" V); pt20(:dotlab}'el!("20"\);pt21(:show("pt21" V);pt21(:dotlab}'el!("21"\);pt22(:show("pt22" V);pt22(:dotlab}'el!("22"\);pt23(:show("pt23" V);pt23(:dotlab}'el!("23"\); +if(DEBUGY)fVޠn썫342ELLIPSEXARÎGUMENT3DLDFPRGx1184n@Ppt20(:show("pt20" V); pt20(:dotlab}'el!("20"\);pt21(:show("pt21" V);pt21(:dotlab}'el!("21"\);pt22(:show("pt22" V);pt22(:dotlab}'el!("22"\);pt23(:show("pt23" V);pt23(:dotlab}'el!("23"\); g؍ signed-oshortK:ssffc}'opyk%; signed-oshortK:ssffe\; @@ -4373,162 +4434,162 @@ else!fc}'err)|"WARNING! In Ellipsek::intersection_pointƠs(Ellipse).\n"ޫ;ssffe(y=eo:lo}'cation"}(c}'opy:getffp}'oint'bH(0));if(ssffew1)c}'err|"*this is inside of ke.\n"5;else*.6if5.(ssffew 617)c}'err|"e is inside of *thiks.\n"5;else+fc}'err3|"This can't happen! kInvalid value for ssƠ_e: "TssffeFendlګ;gc}'err)|"No intersection.\n"o\"Returning INVALID_BkOOL_POINT_QUADRUPLE.Ơ\n\n";return7INVALID_BOOL_POINT_QUADRUPLElЫ; g -g=EndUUof\EllipseshaveUUthesamecenterandaxisorientation".o=S$n썷x11803DLDFPRÎGELLIPSEXARGUMENT339n@P1180. Ellipseshavedi erentcentersand/oraxisorientation.TThereisnosimplealgebraicsolutionforthis case,UUsoIhaveUUtoimplementanumericalonehere.hDe neUUEllipse(functions@1102i+ +g=EndUUof\EllipseshaveUUthesamecenterandaxisorientation".o=W)n썷x11853DLDFPRÎGELLIPSEXARGUMENT343n@P1185. Ellipseshavedi erentcentersand/oraxisorientation.TThereisnosimplealgebraicsolutionforthis case,UUsoIhaveUUtoimplementanumericalonehere.hDe neUUEllipse(functions@1107i+ else!fif h(DEBUGY)c}'out"The two ellipses domn't have the same ce֘Vnter and/or "e2"the axis orientation is different.\n";P9oint2currffp}'oint`2;signed7oshortU:currfflo}'cation;signed7oshortU:lo}'cationffswitchu;unsignedD7shortbinterse}'ctionffctr=0;real*0saveffangleX;real*0inffangleN;real*0outffangleS];real*0testffangleUv;if(DEBUGY)fe":show("e:"\);c}'opy2:show("copy:"%FS);gc}'out/NW"In Ellipse::intersepction_points():\n"("Searching for Ellipse intersections. " "This can take some ktime...\n\n"8 ush;for%舫(real.i:=0;i 9 <360;i+=]:5%U{)fif)(DEBUGY)c}'out O"i == "*ԃi $endl ush;currffp}'ointN -=c}'opyW:angleffp}'oint1Y(iq);if)(DEBUGY)currffp}'oint2B:show("curr_point"?D);currfflo}'cationY=eo:lo}'cation"}(currffp}'oint-B);if)(DEBUGY)c}'out O"curr_location == "i_currfflo}'cation>dendl ush;if)(currfflo}'cation;0)f(if3(DEBUGY)f2c}'outH T"Found an intersectikon point!\n"M ;2currffp}'oint_C:show("curr_point:"DA);(g(hHandleUUintersectionpGoint@1181i(i.9+=@d:5HU;(saveffangleX=i9 ;(currffp}'ointX +=c}'opyW:angleffp}'oint1Y(iq);if)(DEBUGY)currffp}'oint2B:show("curr_point"?D);currfflo}'cationY=eo:lo}'cation"}(currffp}'oint-B);if)(DEBUGY)c}'out O"curr_location == "i_currfflo}'cation>dendl ush;if)(currfflo}'cation;0)f(if3(DEBUGY)f2c}'outH T"Found an intersectikon point!\n"M ;2currffp}'oint_C:show("curr_point:"DA);(g(hHandleUUintersectionpGoint@1186i(i.9+=@d:5HU;(saveffangleX=i9 ;(currffp}'ointX =c}'opyW:angleffp}'oint1Y(iq);(lo}'cationffswitchl =eo:lo}'cation"}(currffp}'oint-B);(con9tinueR湫;g=if _.qEndUUof\F*oundanintersectionpGoint".o=else4.7if?/(i9 0)f(lo}'cationffswitchl =currfflo}'cation;;(saveffangleX=0;(con9tinueR湫;gelse4.7if?/(currfflo}'cation;1)f(if3(DEBUGY)c}'out O"Point is inside e.\kn"v>;gelse4.7if?/(currfflo}'cation; -617)f(if3(DEBUGY)c}'out O"Point is outside e.k\n"| ;;gelse5fTn썫340ELLIPSEXARÎGUMENT3DLDFPRGx1180n@P(c}'errA:"ERROR! In Ellipse::ointersection_points(؄):\n" <"This can't happen! curr_location has ba d value: "Ga [1currfflo}'cationAO<" "O }"Returning INVALID_BkOOL_POINT_QUADRUPLE\Ơn\n" ush;(returnKINVALID_BOOL_POINT_QUADRUPLElҫ;gif)(currfflo}'cation;6=lo}'cationffswitchD )f(if3(DEBUGY)f2c}'outH T"Found a transition!k\n"| ;;2c}'outH T"i == "*ԃi $endl ush;2c}'outH T"save_angle == "Zhsaveffangle3bendl ush;2c}'outH T"curr_location == "i_currfflo}'cation>dendl ush;2c}'outH T"location_switch == k"tTYlo}'cationffswitchF +617)f(if3(DEBUGY)c}'out O"Point is outside e.k\n"| ;;gelse5fXn썫344ELLIPSEXARÎGUMENT3DLDFPRGx1185n@P(c}'errA:"ERROR! In Ellipse::ointersection_points(؄):\n" <"This can't happen! curr_location has ba d value: "Ga [1currfflo}'cationAO<" "O }"Returning INVALID_BkOOL_POINT_QUADRUPLE\Ơn\n" ush;(returnKINVALID_BOOL_POINT_QUADRUPLElҫ;gif)(currfflo}'cation;6=lo}'cationffswitchD )f(if3(DEBUGY)f2c}'outH T"Found a transition!k\n"| ;;2c}'outH T"i == "*ԃi $endl ush;2c}'outH T"save_angle == "Zhsaveffangle3bendl ush;2c}'outH T"curr_location == "i_currfflo}'cation>dendl ush;2c}'outH T"location_switch == k"tTYlo}'cationffswitchF endl ush;(g(if3(lo}'cationffswitchD 1)f2inffangleX۫=saveffangle0ܫ;2outffangle^J=i9 ;(g(else?f2inffangleX۫=i9 ;2outffangle^J=saveffangle0ܫ;(g(whileFC0(trueĘ)f2testffangle_Ы=(inffangle&W+8outffangle+t )=2;2currffp}'ointb =c}'opyW:angleffp}'oint1Y(testffangle*ó);2currfflo}'cationm -=eo:lo}'cation"}(currffp}'oint-B);2if=(currfflo}'cation;0)f<ifG(DEBUGY)fFc}'out\ V"Found an intersectikon point!\n"M ;Fcurrffp}'ointsC:show("curr_point:"DA);<g<hHandleUUintersectionpGoint@1181i<iB9= o}'or+(testffangle*ó);<iB9+=Tf:5\U;<ifG(i9 <testffangle-˫)i 9 +=`:5%U~;<saveffanglel=i9 ;<currffp}'ointl +=eo:lo}'cation"}(currffp}'oint-B);2if=(currfflo}'cation;0)f<ifG(DEBUGY)fFc}'out\ V"Found an intersectikon point!\n"M ;Fcurrffp}'ointsC:show("curr_point:"DA);<g<hHandleUUintersectionpGoint@1186i<iB9= o}'or+(testffangle*ó);<iB9+=Tf:5\U;<ifG(i9 <testffangle-˫)i 9 +=`:5%U~;<saveffanglel=i9 ;<currffp}'ointl =c}'opyW:angleffp}'oint1Y(iq);<lo}'cationffswitch =eo:lo}'cation"}(currffp}'oint-B);<breakXj;2g2elseH.9ifS1(currfflo}'cation;1)f<inffanglebܫ=testffangle-˫;<con9tinuef滫;2g2elseH.9ifS1(currfflo}'cation; -617)f<outffanglehK=testffangle-˫;<con9tinuef滫;2g2elseIf<c}'errS4"ERROR! In Ellipse::nLintersection_points(Ellipse).\n"ܷP"This can't happen! Invalid value for cu!rr_location: "oSNcurrfflo}'cation?rP"\nReturning INVALID_BOOL_POINT_QUADRUPL!E.\n\n"J  ush;<return_INVALID_BOOL_POINT_QUADRUPLElԫ;Un썷x11803DLDFPRÎGELLIPSEXARGUMENT341n@P2g (g=while$ѷ=g=if_=g=for+=c}'out* Q"Finished searching kfor Ellipse intersecƠtions." endlendl ush; +617)f<outffanglehK=testffangle-˫;<con9tinuef滫;2g2elseIf<c}'errS4"ERROR! In Ellipse::nLintersection_points(Ellipse).\n"ܷP"This can't happen! Invalid value for cu!rr_location: "oSNcurrfflo}'cation?rP"\nReturning INVALID_BOOL_POINT_QUADRUPL!E.\n\n"J  ush;<return_INVALID_BOOL_POINT_QUADRUPLElԫ;Yn썷x11853DLDFPRÎGELLIPSEXARGUMENT345n@P2g (g=while$ѷ=g=if_=g=for+=c}'out* Q"Finished searching kfor Ellipse intersecƠtions." endlendl ush; g=EndUUof\EllipseshaveUUdi erentcentersand/oraxisorientation".o= -g=EndUUofcoplanarcase.o=1181. HandleUUintersectionpGoint.hHandleUUintersectionpGoint@1181i +g=EndUUofcoplanarcase.o=1186. HandleUUintersectionpGoint.hHandleUUintersectionpGoint@1186i f++ G"interse}'ctionffctrdiZ;if(DEBUGY)fc}'out4 R"intersection_ctr ==k "yVinterse}'ctionffctrIhendl ush;gif(interse}'ctionffctrFP1)fbp}'q-2: rst:b«=true;bp}'q-2: rst:pt =currffp}'oint0 ;bp}'q-2: rst:pt =9tffinverseCI;gelse*.6if5.(interse}'ctionffctrFP2)fbp}'q-2:se}'condDZ:b«=true;bp}'q-2:se}'condDZ:pt =currffp}'oint0 ;bp}'q-2:se}'condDZ:pt =9tffinverseCI;gelse*.6if5.(interse}'ctionffctrFP3)fbp}'q-2:thir}'dj:b«=true;bp}'q-2:thir}'dj:pt =currffp}'oint0 ;bp}'q-2:thir}'dj:pt =9tffinverseCI;gelse*.6if5.(interse}'ctionffctrFP4)fbp}'q-2:fourthx:b«=true;bp}'q-2:fourthx:pt =currffp}'oint0 ;bp}'q-2:fourthx:pt =9tffinverseCI;if)(DEBUG9_8verb}'ose"=)f(c}'out?KR"In Ellipse::interselction_points(Ellipse e, const bool verbo>cse)"Xiַ<"Found fourth intersection point.\n"M"Returning bpq.\n\n"lMD;greturnAbp}'qQ٫;gelse+fc}'err6s"ERROR! In Ellipse::n7intersection_points(Ellipse).\n"02"This can't happen! Invalid value for " ;η"intersection_ctr: "r޷2interse}'ctionffctrxU".\nReturning INVALIkD_BOOL_POINT_QUADRUPƠLE.\n\n"L;returnAINVALID_BOOL_POINT_QUADRUPLElѫ;g -g ThisXco.e)/;constJbQool9vverb}'oseZ ).q[LDFT2003.07.01.]c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.01.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`hCheckUUintersectionpGointloGcations@1184i +return-bp}'q=׫;qǷg1189. Chec9kmvintersectionpQointloQcations. Thisٟisusedinthe\PerpGendicularandSkewCases"ofinterse}'ctionffpointsQ߫(Ellipse%>.e)/;constJbQool9vverb}'oseZ ).q[LDFT2003.07.01.]N99Ȅ`+U 8Log)j`+U +[LDFT2003.07.01.]Y;AddedUUthissection.Ȅ`GhCheckUUintersectionpGointloGcations@1189i if(tempffb}'ool*u)fif(verb}'ose ])fif)(sfftT0 ^8sffe0)(c}'out> Stempffstring8;" point lies on the kperimeter of both elƠlipses.\n" ;else4.7if?/(sfftT0)c}'out Otempffstring8;" point lies on the kperimeter of *this.\Ơn";else4.7if?/(sfftT 617)c}'out Otempffstring8;" point lies outsidek *this.\n"&;else4.7if?/(sfftT1)c}'out Otempffstring8;" point lies inside k*this.\n");else4.7if?/(sfftT 627)c}'out Otempffstring8;" point doesn't lie kin the plane of *thiƠs.\n";if)(sffeh0 ^8sfft6=0)c}'out Otempffstring8;" point lies on the kperimeter of e.\n";if)(sffeh 617)c}'out Otempffstring8;" point lies outsidek e.\n"2;else4.7if?/(sffeh1)c}'out Otempffstring8;" point lies inside ke.\n"5;else4.7if?/(sffeh 627)c}'out Otempffstring8;" point doesn't lie kin the plane of e.\nƠ"ڍ;g -g ThisXco 8BeginTLogJʄ`> -[LDFT2003.04.27.]XFinishedaddingthetransformationfunctions.GXIalreadyhadshift(),}nowIhavetherestofUUthem.Ȅ` 8EndTLogA>`1186. P9erformingTatransformation.YHn썷x11873DLDFPRÎGDOXTRANSFORM345n@P1187. DoTtransform.[LDFT2003.07.20.]Z6PerformsUUatransformationonUVthisA . +g ThisXco 8BeginTLogJʄ`> +Ifxche}'cktrue`,YandxthetransformationdoGesnotcausexthisϫtobecomenon-elliptical,Yaxisffh!randaxisffvareUUrecalculated.9Ȅ`+U 8Log)j`+U [LDFT2003.07.20.]XIAddedthisfunction.2BItmakesitpGossibletoperformatransformationonanEllipse$,op-tionallymcallingisffelliptic}'al3().UzItiscalledinisffelliptic}'al()withche}'ck]߷falsev\.UzThispreventsmopQerator."=;^A()andUUisffelliptic}'al4A()UUfromcallingeachotheradin nitum. [LDFT2003.07.25.]Y;AddedUUcoGdeforrecalculatingline}'arffeccentricityR0,fo}'cus0#]ԫandfo}'cus1 . [LDFT2003.07.25.]Y;BUGUUFIX:axisffh!7andaxisffv!pweretoGosmallbyhalf.qNowmultiplyingby2. -[LDFT2003.07.25.]Y;AddedUUcoGdeforrecalculatingnumeric}'alffeccentricityd'#.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ +[LDFT2003.07.25.]Y;AddedUUcoGdeforrecalculatingnumeric}'alffeccentricityd'#.Ȅ`GhDeclareUUEllipse(functions@1106i+ virtual/T ransformgVdofftr}'ansformګ(const*T -ransformUt&]taW;bQoolLche}'ck6=falsev\);ZYn썫346DOXTRANSFÎORM3DLDFPRGx1188n@P1188.hDe neUUEllipse(functions@1102i+ +ransformUt&]taW;bQoolLche}'ck6=falsev\);^Z8n썫350DOXTRANSFÎORM3DLDFPRGx1193n@P1193.hDe neUUEllipse(functions@1107i+ T ransformAEllipsed::dofftr}'ansform:8(const*T ransformUt&]taW;bQoolLche}'ck3h) fbQool-hDEBUGK.٫=falsev\;=true=fo}'cus03zD=C{fo}'cus1b=rc}'enterᗷ=oP9ath6::topQerator&)=H(tr);real*0oldffaxisffhX=axisffh;real*0oldffaxisffvXQ=axisffv;if(che}'ckZ)fif)(isffelliptic}'al0얫())f(P9ointFcN =getffc}'enter/_();(axisffhE=(getffp}'oint'bH(0)8c):magnitude.=r()28;(axisffvE=(getffp}'oint'bH(numb}'erffofffpointsJ=4)8c):magnitude.=r()28;(real>2axisffhffhalfqTC=axisffh=2;(real>2axisffvffhalfpj=axisffv=2;(if3j(fabs2ҫ(axisffhķ7oldffaxisffh-)>P9ointad::%epsilonE^()7_fabs (axisffvjoldffaxisffv,@)>P9ointad::%epsilon())f2if?߫(DEBUGY)c}'outO"Recalculating lineanr_eccentricity, "αP"numerical_eccentricity and foci.\n"M ush;2if=(axisffhaxisffv)f<line}'arffeccentricitys=sqrtw((axisffhffhalf2ٷ8axisffhffhalf)8(axisffvffhalf1axisffvffhalf));<numeric}'alffeccentricity=line}'arffeccentricityQs=axisffhffhalf/;<fo}'cus1[zH=fo}'cus0"AZ=(getffp}'oint'bH(0)8getffc}'enter.v'());2g2elseIf<line}'arffeccentricitys=sqrtw((axisffvffhalf18axisffvffhalf)8(axisffhffhalf2ٷaxisffhffhalf));<numeric}'alffeccentricity=line}'arffeccentricityQs=axisffvffhalf/W ;<fo}'cus1[zH=fo}'cus0"AZ=(getffp}'oint'bH(numb}'erffofffpointsJ=4)8getffc}'enter.v'());2g2fo}'cus0N/:unitffve}'ctor0u(trueĘ);2fo}'cus1N/:unitffve}'ctor0u(trueĘ);2fo}'cus0QzG=a~hϜline}'arffeccentricity|w;2fo}'cus1QzG=a~line}'arffeccentricityY;2fo}'cus1QzG=a~fo}'cus0}:shift}(getffc}'enter,=G());(g(else>.8ifI0(DEBUGY)2c}'outH T"axis_h and axis_v akre unchanged.\n","Not recalculating fkoci.\n"G ush;g=if(isffelliptic}'al0얫())=else5f(c}'err? "WARNING! In Ellipsen ::do_transform(const Transform&):\n"0<"This transformation has made *this non- elliptical!"PLendlendl ush;(axisffhE=axisffv T=line}'arffeccentricityT; =INVALID_REALBM\;(numeric}'alffeccentricity=INVALID_REALBM\;ggreturn7漱t;.; -g[cѠn썷x11893DLDFPRÎG,5OPERAJTOR347n@P1189. OpQerator.U9Ȅ`> 8BeginTLogJʄ`> +g_dVn썷x11943DLDFPRÎG,5OPERAJTOR351n@P1194. OpQerator.9Ȅ`+U 8Log)j`+U [LDFT2002.04.12.]Y;AddedUUthissection. -[LDFT2003.07.20.]YChanged,Besothatitcallsdofftr}'ansform=0()withche}'ck ,trueī,sothatisffelliptic}'al4()iscalled.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ +[LDFT2003.07.20.]YChanged,Besothatitcallsdofftr}'ansform=0()withche}'ck ,trueī,sothatisffelliptic}'al4()iscalled.Ȅ`GhDeclareUUEllipse(functions@1106i+ virtual/T ransformgVopQerator[=z(const*T -ransformUt&]taW);1190.hDe neUUEllipse(functions@1102i+ +ransformUt&]taW);1195.hDe neUUEllipse(functions@1107i+ T ransformAEllipsed::k?opQerator֣=(const*T ransformUt&]taW) freturn7dofftr}'ansformq(tr;trueo@); -g1191. RotationTaroundthemainaxes.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.25.]YChanged,hso1thatdofftr}'ansform=Q()iscalledwithche}'ck ۷5dfalse䨫.Rotationcanneitherchange/thelengthsofaxisffh!YYoraxisffvī,7cnormakeanEllipse(Hnon-elliptical,7csothere'snoneedtocheck/thisafterUUrotation.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ +g1196. RotationTaroundthemainaxes.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.25.]YChanged,hso1thatdofftr}'ansform=Q()iscalledwithche}'ck ۷5dfalse䨫.Rotationcanneitherchange/thelengthsofaxisffh!YYoraxisffvī,7cnormakeanEllipse(Hnon-elliptical,7csothere'snoneedtocheck/thisafterUUrotation.Ȅ`GhDeclareUUEllipse(functions@1106i+ virtual/T -ransformgVr}'otate(const*real4бx:;constJreal6xy>=0;constJreal6xz>f=0);1192.hDe neUUEllipse(functions@1102i+ +ransformgVr}'otate(const*real4бx:;constJreal6xy>=0;constJreal6xz>f=0);1197.hDe neUUEllipse(functions@1107i+ T ransformAEllipsed::r}'otateoB(const*real4бx:;constJreal6xy;p;constJreal6xz;) fT ransformKԱtOeF;tt:r}'otateo>(x;y;zƫ);return7dofftr}'ansformq(tr;falseY); -g1193. Scale.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.20.]Y;AddedUUcheckforwhetherUVthisaisstillellipticalafterthescalingopGeration.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ +g1198. Scale.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.20.]Y;AddedUUcheckforwhetherUVthisaisstillellipticalafterthescalingopGeration.Ȅ`GhDeclareUUEllipse(functions@1106i+ virtual/T -ransformgVsc}'ale} (real.xjJ;real]ֱy g=1;real]ֱz < =1);\wIn썫348SCALEArC3DLDFPRÎGx1194n@P1194.hDe neUUEllipse(functions@1102i+ +ransformgVsc}'ale} (real.xjJ;real]ֱy g=1;real]ֱz < =1);`wΠn썫352SCALEArC3DLDFPRÎGx1199n@P1199.hDe neUUEllipse(functions@1107i+ T ransformAEllipsed::sc}'ale(real.xjJ;real]ֱy;real]ֱzt) fT ransformKԱtOeF;tt:sc}'ale(x;y;zƫ);return7漫(thisϷ=(At+x); -g1195. Shear.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.20.]Y;AddedUUcheckforwhetherUVthisaisstillellipticalaftertheshearingopGeration.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ +g1200. Shear.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.20.]Y;AddedUUcheckforwhetherUVthisaisstillellipticalaftertheshearingopGeration.Ȅ`GhDeclareUUEllipse(functions@1106i+ virtual/T -ransformgVshe}'ar(real.xy!;real]xz%=0;real]yx&Z=0;real]yz%6=0;real]zx%Y=0;real]zy%|=0);1196.hDe neUUEllipse(functions@1102i+ +ransformgVshe}'ar(real.xy!;real]xz%=0;real]yx&Z=0;real]yz%6=0;real]zx%Y=0;real]zy%|=0);1201.hDe neUUEllipse(functions@1107i+ T ransformAEllipsed::she}'ar4>(real.xy!;real]xz"ը;real]yx#;real]yz# ;real]zx"A;real]zy") fT ransformKԱtOeF;tt:she}'ar4:(xy ;xz "z;yx V;yz Y;zx ;zy «);return7漫(thisϷ=(At+x); -g1197. Shift.1198. realTargumen9ts.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.25.]Z&zChanged,$sosthatdofftr}'ansform> ȫ()iscalledwithche}'ck!*falseSn.̄Shiftingcanneitherchange/thelengthsofaxisffh!YYoraxisffvī,7cnormakeanEllipse(Hnon-elliptical,7csothere'snoneedtocheck/thisafterUUshifting.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ +g1202. Shift.1203. realTargumen9ts.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.25.]Z&zChanged,$sosthatdofftr}'ansform> ȫ()iscalledwithche}'ck!*falseSn.̄Shiftingcanneitherchange/thelengthsofaxisffh!YYoraxisffvī,7cnormakeanEllipse(Hnon-elliptical,7csothere'snoneedtocheck/thisafterUUshifting.Ȅ`GhDeclareUUEllipse(functions@1106i+ virtual/T -ransformgVshift{t#(real.xx!f;real]yy&@K=0;real]zz%=0);1199.hDe neUUEllipse(functions@1102i+ +ransformgVshift{t#(real.xx!f;real]yy&@K=0;real]zz%=0);1204.hDe neUUEllipse(functions@1107i+ T ransformAEllipsed::shift(real.xx!f;real]yy#y3;real]zz"H۫) fT ransformKԱtOeF;tt:shift}(xx 8;yy ;zz );return7dofftr}'ansformq(tr;falseY); -g1200. P9ointTargument.hDeclareUUEllipse(functions@1101i+ +g1205. P9ointTargument.hDeclareUUEllipse(functions@1106i+ virtual/T -ransformgVshift{t#(const*P9oint=?&D]pI]);]Nn썷x12013DLDFPRÎGPOINTXARGUMENT349n@P1201.hDe neUUEllipse(functions@1102i+ +ransformgVshift{t#(const*P9oint=?&D]pI]);aRn썷x12063DLDFPRÎGPOINTXARGUMENT353n@P1206.hDe neUUEllipse(functions@1107i+ T ransformAEllipsed::shift(const*P9oint=?&D]pI]) freturn7shiftL9(p:getffxg();p:getffyt();p:getffz()); -g1202. ShiftTtimes.1203. realTargumen9ts.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.25.]Y;NowUUpGerformingshiftfftimes2A()onfo}'cus0#]ԫandfo}'cus1 ,too.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -virtual/v9oidHshiftfftimesww(real.xjJ;real]ֱy g=1;real]ֱz < =1);1204.hDe neUUEllipse(functions@1102i+ +g1207. ShiftTtimes.1208. realTargumen9ts.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.25.]Y;NowUUpGerformingshiftfftimes2A()onfo}'cus0#]ԫandfo}'cus1 ,too.Ȅ`GhDeclareUUEllipse(functions@1106i+ +virtual/v9oidHshiftfftimesww(real.xjJ;real]ֱy g=1;real]ֱz < =1);1209.hDe neUUEllipse(functions@1107i+ v9oid"EllipseE涫::shiftfftimes/?(real.xjJ;real]ֱy;real]ֱzt) fP9ath-j::4shiftfftimesc (x;y;zƫ);fo}'cus10,:shiftfftimes.;(x;y;zƫ);fo}'cus00,:shiftfftimes.;(x;y;zƫ);c}'enter0 :shiftfftimes.;(x;y;zƫ);return4g; -g1205. P9ointTargument.hDeclareUUEllipse(functions@1101i+ -virtual/v9oidHshiftfftimesww(const*P9oint=?&D]pI]);1206.hDe neUUEllipse(functions@1102i+ +g1210. P9ointTargument.hDeclareUUEllipse(functions@1106i+ +virtual/v9oidHshiftfftimesww(const*P9oint=?&D]pI]);1211.hDe neUUEllipse(functions@1107i+ v9oid"EllipseE涫::shiftfftimes/?(const*P9oint=?&D]pI]) freturn7shiftfftimesf(p:getffxg();p:getffyt();p:getffz()); -g1207. RotatationTaroundanarbitraryaxis.^Fn썫350POINTXARÎGUMENTS3DLDFPRGx1208n@P1208. P9ointTarguments.U9Ȅ`> 8BeginTLogJʄ`> +g1212. RotatationTaroundanarbitraryaxis.bn썫354POINTXARÎGUMENTS3DLDFPRGx1213n@P1213. P9ointTarguments.9Ȅ`+U 8Log)j`+U [LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments. -[LDFT2003.07.25.]YChanged,hso1thatdofftr}'ansform=Q()iscalledwithche}'ck ۷5dfalse䨫.Rotationcanneitherchange/thelengthsofaxisffh!YYoraxisffvī,7cnormakeanEllipse(Hnon-elliptical,7csothere'snoneedtocheck/thisafterUUrotation.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ +[LDFT2003.07.25.]YChanged,hso1thatdofftr}'ansform=Q()iscalledwithche}'ck ۷5dfalse䨫.Rotationcanneitherchange/thelengthsofaxisffh!YYoraxisffvī,7cnormakeanEllipse(Hnon-elliptical,7csothere'snoneedtocheck/thisafterUUrotation.Ȅ`GhDeclareUUEllipse(functions@1106i+ virtual/T -ransformgVr}'otate(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleQ=180);1209.hDe neUUEllipse(functions@1102i+ +ransformgVr}'otate(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleQ=180);1214.hDe neUUEllipse(functions@1107i+ T ransformAEllipsed::r}'otateoB(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleNH˫) fT ransformKԱtOeF;tt:r}'otateo>(p0 ;p1 h;anglej);return7dofftr}'ansformq(tr;falseY); -g1210. P9athTarguments.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ +g1215. P9athTarguments.9Ȅ`+U 8Log)j`+U +[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ`GhDeclareUUEllipse(functions@1106i+ virtual/T -ransformgVr}'otate(const*P9ath:[&AypFy;constJreal6xangleQ=180);_n썷x12113DLDFPRÎGP -ATHXARGUMENTS351n@P1211.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.04.27.]Y;ChangedUUgetffp}'oint*(1)UUtogetfflastffp}'oint=y().Ȅ` 8EndTLogA>`hDe neUUEllipse(functions@1102i+ +ransformgVr}'otate(const*P9ath:[&AypFy;constJreal6xangleQ=180);c3n썷x12163DLDFPRÎGP +ATHXARGUMENTS355n@P1216.9Ȅ`+U 8Log)j`+U +[LDFT2003.04.27.]Y;ChangedUUgetffp}'oint*(1)UUtogetfflastffp}'oint=y().Ȅ`GhDe neUUEllipse(functions@1107i+ T ransformAEllipsed::r}'otateoB(const*P9ath:[&AypFy;constJreal6xangleNH˫) fif(:p:isffline}'ar%}())fc}'err7㷷."ERROR! In Ellipse::p-rotate(Path, real).\-n"b2"Path is not a line. Returning INVALID_TRANSFORM.\n\n"SEȫ;returnAINVALID_TRANSFORM;greturn7r}'otateRU(p:getffp}'oint'bH(0);p:getfflastffp}'oint:$>();anglej); -g1212. Rectangles.1213. SurroundingTrectangle.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.18.]Y;MadeUUconst*.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -Rectangle?outffr}'ectanglex()UUconst*;`n썫352SURRÎOUNDINGXRECTJANGLE93DLDFPRGx1214n@P1214.hDe neUUEllipse(functions@1102i+ +g1217. Rectangles.1218. SurroundingTrectangle.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.18.]Y;MadeUUconst*.Ȅ`GhDeclareUUEllipse(functions@1106i+ +Rectangle?outffr}'ectanglex()UUconst*;dn썫356SURRÎOUNDINGXRECTJANGLE93DLDFPRGx1219n@P1219.hDe neUUEllipse(functions@1107i+ Rectangle?Ellipseb}ȫ::outffr}'ectangle9()UUconst fP9oint2C:k(getffc}'enter,=G());P9oint2pt0BXګ(getffp}'oint'bH(0));P9oint2pt1BXګ(getffp}'oint'bH(numb}'erffofffpointsJ=2));P9ath/p}'a0@(pt0i;;pt1);P9oint2pt2BXګ(getffp}'oint'bH(numb}'erffofffpointsJ=4));P9oint2pt3BXګ(getffp}'oint'bH(388numb}'erffofffpointsL=4));P9oint2pt4BXګ(pt1i;);pt4&0U=8C@bu;P9oint2pt5BXګ(pt2i;);pt5#i=:shift}(pt4i;);P9oint2pt6BXګ(pt3i;);pt6#i=:shift}(pt4i;);P9oint2pt7BXګ(pt0i;);pt7&0U=8C@bu;P9oint2pt8BXګ(pt2i;);pt8#i=:shift}(pt7i;);P9oint2pt9BXګ(pt3i;);pt9#i=:shift}(pt7i;);#if 0pt0#i=:dotlab}'el!("0"F_);pt1#i=:dotlab}'el!("1"F_);pt2#i=:dotlab}'el!("2"F_);pt3#i=:dotlab}'el!("3"F_);pt5#i=:dotlab}'el!("5"F_);pt6#i=:dotlab}'el!("6"F_);pt8#i=:dotlab}'el!("8"F_);pt9#i=:dotlab}'el!("9"F_);#endifRectangleIrN_(pt6i;;pt9;pt8;pt5);return7漱r<Ы; -g1215. InscribQedTrectangle.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.18.]Y;MadeUUconst*.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ -Rectangle?inffr}'ectanglesk()UUconst*;an썷x12163DLDFPRÎGUINSCRIBEDXRECTJANGLE353n@P1216.hDe neUUEllipse(functions@1102i+ +g1220. InscribQedTrectangle.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.18.]Y;MadeUUconst*.Ȅ`GhDeclareUUEllipse(functions@1106i+ +Rectangle?inffr}'ectanglesk()UUconst*;en썷x12213DLDFPRÎGUINSCRIBEDXRECTJANGLE357n@P1221.hDe neUUEllipse(functions@1107i+ Rectangle?Ellipseb}ȫ::inffr}'ectangle4.()UUconst fRectangleIr0Wɫ=outffr}'ectangle;();bQoolus4wpoin9tus4pairedbpp0}ϫ=interse}'ctionffpointsTS(r0 1ű:getffp}'oint'bH(0);r0 m:getffp}'oint(2));bQoolus4wpoin9tus4pairedbpp1}ϫ=interse}'ctionffpointsTS(r0 1ű:getffp}'oint'bH(1);r0 m:getffp}'oint(3));if n(bpp0DZ: rst:ptt INVALID_POINTKE_-bpp0:se}'condDZ:pt INVALID_POINT_-bpp1: rst:pt2INVALID_POINTx&_8bpp1:se}'condDZ:pt INVALID_POINTGY)fc}'err3|"Intersection didn'tk work.\n"TA"Returning empty recktangle.\n\n"8 ush;RectangleSr2^Ʋ;returnAr2M;gRectangleIr1TƱ(bpp0DZ:se}'condDZ:pt 䝱;bpp1wo: rst:pt;bpp0: rst:pt;bpp1:se}'condDZ:pt);return7r1C; -g1217. Dra9wTsurroundingrectangle.U9Ȅ`> 8BeginTLogJʄ`> +g1222. Dra9wTsurroundingrectangle.9Ȅ`+U 8Log)j`+U [LDFT2003.07.01.]YFChangedj`thereturnvqaluefromv9oid}CtoRectangle5.NowthesurroundingRectangleisUUreturned. -[LDFT2003.07.18.]Y;MadeUUconst*.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ +[LDFT2003.07.18.]Y;MadeUUconst*.Ȅ`GhDeclareUUEllipse(functions@1106i+ Rectangle@Ydr}'awffoutffrectangleϫ(constfColor?Y&G ;ddr}'awffcolor7=   Colors*::1v&defaultffc}'olorh;stringddashe}'dD,="" z;string"pp}'en:0="";Picture* -&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;1218.hDe neUUEllipse(functions@1102i+ +&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;1223.hDe neUUEllipse(functions@1107i+ Rectangle@`hEllipsecIE::dr}'awffoutffrectangleR3$(constColor?f&G-ddr}'awffcolor{6V;string#rddashe}'dF⃱;string2pp}'enG6(;Picture* &2c(pictur}'eQk)UUconst fRectangleIrQ&=outffr}'ectangle;();r:dr}'aw(۫(ddr}'awffcolor4;ddashe}'d$;pp}'en˱;pictur}'e ~);return7漱r<Ы; -g1219. Dra9wTinscribQedrectangle.U9Ȅ`> 8BeginTLogJʄ`> +g1224. Dra9wTinscribQedrectangle.9Ȅ`+U 8Log)j`+U [LDFT2003.07.01.]YOChangedthereturnvqaluefromv9oidͫtoRectangle5:.GNowtheinscribGedRectangle9x߫isreturned. -[LDFT2003.07.18.]Y;MadeUUconst*.Ȅ` 8EndTLogA>`hDeclareUUEllipse(functions@1101i+ +[LDFT2003.07.18.]Y;MadeUUconst*.Ȅ`GhDeclareUUEllipse(functions@1106i+ Rectangle@midr}'awffinffrectangle(const Color?&GGddr}'awffcolor@=/ /Colors+ǫ::1defaultffc}'olori;stringddashe}'dD,="" z;string"pp}'en:0="";Picture* -&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;bn썫354DRA8WXINSCRIBEDRECTJANGLE83DLDFPRÎGx1220n@P1220.hDe neUUEllipse(functions@1102i+ +&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;fn썫358DRA8WXINSCRIBEDRECTJANGLE83DLDFPRÎGx1225n@P1225.hDe neUUEllipse(functions@1107i+ Rectangle@tEllipsec]::dr}'awffinffrectangleM(const Color?s&GVddr}'awffcolor{_:;string#ddashe}'dF;string2pp}'enG6(;Picture* &2c(pictur}'eQk)UUconst fRectangleIrQ&=inffr}'ectangle6B();r:dr}'aw(۫(ddr}'awffcolor4;ddashe}'d$;pp}'en˱;pictur}'e ~);return7漱r<Ы; -g1221. Rectanglefunctions.[LDFT2003.07.18.]YTOmDO:mAddundr}'awffinffellipseNcЫ(), llffoutffellipse?](),etc.Also,UUIshouldaddversionswiththePicture,Fargument rst.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.18.]XDAdded^thissection.OThesefunctionsaredeclaredinrectangs.web,butmustbGede nedhere,UUbGecauseEllipse(isanincompletetypethere.Ȅ` 8EndTLogA>`1222. Ellipses.c,n썷x12233DLDFPRÎGSURROUNDINGXELLIPSE355n@P1223. SurroundingTEllipse.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDe neUURectangle8?functions@1059i+ +g1226. Rectanglefunctions.[LDFT2003.07.18.]YTOmDO:mAddundr}'awffinffellipseNcЫ(), llffoutffellipse?](),etc.Also,UUIshouldaddversionswiththePicture,Fargument rst.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.18.]XDAdded^thissection.OThesefunctionsaredeclaredinrectangs.web,butmustbGede nedhere,UUbGecauseEllipse(isanincompletetypethere.Ȅ`G1227. Ellipses.gn썷x12283DLDFPRÎGSURROUNDINGXELLIPSE359n@P1228. SurroundingTEllipse.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ`GhDe neUURectangle8?functions@1062i+ Ellipse/>/Rectangleb}ȫ::outffellipse.ɫ()UUconst fP9oint2C==getffc}'enter/_();P9oint2p0Aw=getffp}'oint*)`(0);P9oint2M@a=getffmidffp}'oint>2s(1);P9oint2normalV o=getffnormal3Q();normal4V:shift}(C̫);real*0outffdistanc}'ec;=(p0O8C ):magnitude.=r();T @@ -4536,161 +4597,164 @@ CZ/=i%tmZ:alignffwithffaxis@x(C;normal"`;'y');P9oint2xffaxisffptY(1);real*0angleE:=M :angleS(xffaxisffpt&);p0"ڷ=2lM?ӷ=O tS(|:r}'otateo>(0;anglej);if(M ʪ:unitffve}'ctor0u()6=xffaxisffpt)5)fc}'err3|"WARNING! In |Rectankgle::in_ellipse()|:\Ơn""M is not (1, 0, 0)!k\n"| ;;M(ʭ:show("M:"\);(=I'dUUratheroutputthistostderry,butIdon'thaveUUawayUUtodothisyet.q[LDFT2003.07.18.]U$=c}'out4 Rendl ush;gEllipse9>0e=1(origin!;hfflength%;vfflength% ();bQoolus4wpoin9tus4pairedbppx"=eo:interse}'ctionffpointsQ߫(origin!;p0 h);real*0inffdistanc}'e[W;if(bpp: rst:bJ)finffdistanc}'eQk=bpp: rst:pt 䝱:magnitude.=r();gelse*.6if5.(bpp:se}'condDZ:bJ)finffdistanc}'eQk=bpp:se}'condDZ:pt 䝱:magnitude.=r();gelse+fc}'err8-P"ERROR! In |RectanglpPHe::out_ellipse()|:\nP "f2"Couldn't find intersection point.\n""Returning empty Ellkipse.\n\n"> ush;EllipseC>1rHE;returnA潱rFѫ;greal*0sc}'aleffvalue]=outffdistanc}'e8=inffdistanc}'e0h;e:sc}'ale(sc}'aleffvalue/;0;sc}'aleffvalue1I_);eo=*Rt.:inverse ();return7漱e<; -gdn썫356ENCLOSEDXELLIPSE-F3DLDFPRÎGx1224n@P1224. EnclosedTEllipse.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDe neUURectangle8?functions@1059i+ +ghn썫360ENCLOSEDXELLIPSE-F3DLDFPRÎGx1229n@P1229. EnclosedTEllipse.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ`GhDe neUURectangle8?functions@1062i+ Ellipse/>/Rectangleb}ȫ::inffellipse)Z()UUconst fP9oint2C==getffc}'enter/_();P9oint2M@a=getffmidffp}'oint>2s(1);P9oint2normalV o=getffnormal3Q();normal4V:shift}(C̫);T ransformKԱtOeF;real*0hfflengthQ[=(getffp}'oint'bH(1)8getffp}'oint)((0)):magnitude.=r();real*0vfflengthPȫ=(getffp}'oint'bH(3)8getffp}'oint)((0)):magnitude.=r();M!ķ=1C;߷=KRtN:alignffwithffaxis@x(C;normal"`;'y');P9oint2xffaxisffptY(1);real*0angleE:=M :angleS(xffaxisffpt&);M!ķ=1t4m:r}'otateo>(0;anglej);if(M ʪ:unitffve}'ctor0u()6=xffaxisffpt)5)fc}'err3|"WARNING! In |Rectankgle::in_ellipse()|:\Ơn""M is not (1, 0, 0)!k\n"| ;;M(ʭ:show("M:"\);(=I'dUUratheroutputthistostderry,butIdon'thaveUUawayUUtodothisyet.q[LDFT2003.07.18.]U$=c}'out4 Rendl ush;gEllipse9>0e=1(origin!;hfflength%;vfflength% ();eo=*Rt.:inverse ();return7漱e<; -g1225. Dra9wsurroundingEllipse.[LDFT2003.07.18.][v -TOBDO:C)AddversionwithPicture."_argument rst.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDe neUURectangle8?functions@1059i+ +g1230. Dra9wsurroundingEllipse.[LDFT2003.07.18.][v +TOBDO:C)AddversionwithPicture."_argument rst.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ`GhDe neUURectangle8?functions@1062i+ Ellipse.Rectangleb)}::dr}'awffoutffellipseGP(constWColor=&&Dddr}'awffcolorxƱ;string"{ddashe}'dE»;string"{pp}'en7ͱ;Picture2&9#pictur}'eX)UUconst fEllipse9>0e@I=outffellipse0ݫ();e:dr}'aw(۫(ddr}'awffcolor4;ddashe}'d$;pp}'en˱;pictur}'e ~);return7漱e<; -gen썷x12263DLDFPRÎGsDRA8WXENCLOSEDELLIPSE357n@P1226. Dra9wTenclosedEllipse.[LDFT2003.07.18.]Z6TOUUDO:AddversionwithPicture,Fargument rst.c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDe neUURectangle8?functions@1059i+ +gin썷x12313DLDFPRÎGsDRA8WXENCLOSEDELLIPSE361n@P1231. Dra9wTenclosedEllipse.[LDFT2003.07.18.]Z6TOUUDO:AddversionwithPicture,Fargument rst.N99Ȅ`+U 8Log)j`+U +[LDFT2003.07.18.]Y;AddedUUthisfunction.Ȅ`GhDe neUURectangle8?functions@1062i+ Ellipse/@(Rectangleb::dr}'awffinffellipseA(const,Color=Ӈ&Eddr}'awffcoloryN;string"ddashe}'dF;string"pp}'en8;Picture2&9#pictur}'eX)UUconst fEllipse9>0e@I=inffellipse+n();e:dr}'aw(۫(ddr}'awffcolor4;ddashe}'d$;pp}'en˱;pictur}'e ~);return7漱e<; -g1227. PuttingTEllipsetogether.ThisUUiswhat'scompiled. +g1232. PuttingTEllipsetogether.ThisUUiswhat'scompiled. hIncludeUU les@11i hV*ersionUUcontrolidenti er@10i -hDe neUUclass5EllipseD^1098i -hDe neUUstatic".EllipseG\dataUUmembGers@1099i -hDe neUUEllipse(functions@1102i -hDe neUURectangle8?functions@1059ifcn썫358PUTTINGXELLIPSETOGETHERH 3DLDFPRÎGx1228n@P1228. ThisUUiswhat'swrittentoellipses.h.hellipses.h@01228i -hDe neUUclass5EllipseD^1098i1229. Circle(circles.web).1ItUUwon'tbGepossibletomakecirclesrecedetothecentralvqanishingpGoint.q!!GetUUquotefrombook!!U9Ȅ`> 8BeginTLogJʄ`> +hDe neUUclass5EllipseD^1103i +hDe neUUstatic".EllipseG\dataUUmembGers@1104i +hDe neUUEllipse(functions@1107i +hDe neUURectangle8?functions@1062ijn썫362PUTTINGXELLIPSETOGETHERH 3DLDFPRÎGx1233n@P1233. ThisUUiswhat'swrittentoellipses.h.hellipses.h@01233i +hDe neUUclass5EllipseD^1103i1234. Circle(circles.web).1ItUUwon'tbGepossibletomakecirclesrecedetothecentralvqanishingpGoint.q!!GetUUquotefrombook!!9Ȅ`+U 8Log)j`+U [LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. -[LDFT2003.12.01.]Y$PutR>theversioncontrolidenti ersbackintothereleaseversions,RbGecauseI'veputtheminUUtheirownRCSrepGository*.Ȅ` 8EndTLogA>` -format3c(Cir}'cleVShap}'ehV*ersionUUcontrolidenti er@10i+ -static)HstringJn'r}'csffidg(="$Id: circles.web,v k1.2 2003/12/01 19:12Ơ:40 lfinsto1 Exp $"9 ϫ;1230. IncludeT les.hIncludeUU les@11i+#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"#include'~"ellipses.h"1231. CircleTclassde nition.g[n썷x12323DLDFPRÎGܛ[CIR9CLEXCLASSDEFINITION359n@P1232.hDe neUUclass5Circle@֭1232i +[LDFT2003.12.01.]Y$PutR>theversioncontrolidenti ersbackintothereleaseversions,RbGecauseI'veputtheminUUtheirownRCSrepGository*.Ȅ`G +format3c(Cir}'cleVShap}'ehV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: circles.web,v k1.4 2003/12/10 15:09Ơ:04 lfinsto1 Exp $"9 ϫ;1235. IncludeT les.hIncludeUU les@11i+#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"#include'~"ellipses.h"1236. CircleTclassde nition.k۠n썷x12373DLDFPRÎGܛ[CIR9CLEXCLASSDEFINITION363n@P1237.hDe neUUclass5Circle@֭1237i class$RCircleFӫ:qpublic'EllipseLCfreal*0r}'adiusF{S; -public)=֫:hDeclareUUCircle% ֫functions@1234i -g; ThisXcoOë&Fc}'centerf7*;const p real7ddiameterda;const p real7angleffxXCر;const p real2angleffyRk;constJreal6xangleffzV;constJunsignedP Xshortmnnumb}'erffofffpoints6) :qr}'adius 9(ddiameter,e=2)UUfonfffr}'eeffstoreNl =falsev\;lineffswitchFi۫=falsev\;cycleffswitchKǴ=true;c}'enter2Х=c}'center"a;c}'enter0 :applyfftr}'ansformF߫();axisffh1=axisffv T=ddiameter/};numb}'erffofffpointsaë=nnumb}'erffofffpointsS' ;Ellipse9>0e=1(c}'enter ;axisffh5;axisffvp;angleffx"0;angleffy"3;angleffz!;numb}'erffofffpointsLkQ);this,ѫ=eo; -ghn썫360SETTINGXFUNCTIONu=3DLDFPRÎGx1239n@P1239. SettingTfunction.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.05.06.]X`Added)ztheargumentnnumb}'erffofffpointsSk.c)Withoutit,2@thissettingfunctiondidn'tmatchtheUUconstructorabGove.Ȅ` 8EndTLogA>`hDeclareUUCircle% ֫functions@1234i+ -v9oid"4set01(constP9oint<&DXc}'centerdx\;constreal5.ddiameterb擱;constreal5.angleffxYL"=0;constreal5.angleffyY1ѫ=0;const;realRqangleffzu8+=0;const/unsignedO"shortm4nnumb}'erffofffpoints[=DEFAULT_NUMBER_OF_POINTSM8);1240.hDe neUUCircle% ֫functions@1235i+ +gln썫364SETTINGXFUNCTIONu=3DLDFPRÎGx1244n@P1244. SettingTfunction.9Ȅ`+U 8Log)j`+U +[LDFT2003.05.06.]X`Added)ztheargumentnnumb}'erffofffpointsSk.c)Withoutit,2@thissettingfunctiondidn'tmatchtheUUconstructorabGove.Ȅ`GhDeclareUUCircle% ֫functions@1239i+ +v9oid"4set01(constP9oint<&DXc}'centerdx\;constreal5.ddiameterb擱;constreal5.angleffxYL"=0;constreal5.angleffyY1ѫ=0;const;realRqangleffzu8+=0;const/unsignedO"shortm4nnumb}'erffofffpoints[=DEFAULT_NUMBER_OF_POINTSM8);1245.hDe neUUCircle% ֫functions@1240i+ v9oid#wCircleB::setx(constP9oint>i&EՇc}'centereб;const O_real7|ddiameterdd;const O_real7|angleffxX~;const O_real2angleffyRk;constJreal6xangleffzV;constJunsignedP Xshortmnnumb}'erffofffpoints6) fCircle5c: ^(c}'center I;ddiameter. ;angleffx"0;angleffy"3;angleffz!;nnumb}'erffofffpointsR );this,ѫ=c;return4g; -g1241. Pseudo-constructorTfordynamicalloQcation.1242. OptionalTpQoin9terargument.U9Ȅ`> 8BeginTLogJʄ`> +g1246. Pseudo-constructorTfordynamicalloQcation.1247. OptionalTpQoin9terargument.9Ȅ`+U 8Log)j`+U [LDFT2003.07.27.]Y;MadeUUnon-inline.qMadeargumentp const)LCircleKͷPΫ. -[LDFT2003.08.10.]XĤRemovedrede nitionofthedefaultargumentconst CircleBmGmpOr=0 #}fromthede nition.TheUUDECcompilercomplained,butGCCdidn't.Ȅ` 8EndTLogA>`hDeclareUUCircle% ֫functions@1234i+ -static)HCircleK[P\cr}'eateffnewffcir}'cle (const*Circle?#D$pL<=0);in썷x12433DLDFPRÎG^OPTIONALXPOINTERARGUMENT361n@P1243.hDe neUUCircle% ֫functions@1235i+ +[LDFT2003.08.10.]XĤRemovedrede nitionofthedefaultargumentconst CircleBmGmpOr=0 #}fromthede nition.TheUUDECcompilercomplained,butGCCdidn't.Ȅ`GhDeclareUUCircle% ֫functions@1239i+ +static)HCircleK[P\cr}'eateffnewffcir}'cle (const*Circle?#D$pL<=0);mOn썷x12483DLDFPRÎG^OPTIONALXPOINTERARGUMENT365n@P1248.hDe neUUCircle% ֫functions@1240i+ Circle+0CircleP::cr}'eateffnewffcir}'cleK R(const*Circle?#D$pI$) fCircle5:cAw=newϜ(Circlec,);if(p6=0) c=p ;cSݟ~Sonfffr}'eeffstoreV=true;cSݟ~ScycleffswitchT=true;cSݟ~SlineffswitchN=falsev\;return7漱c<:; -g1244. RequiredTCircleargumen9t.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.27.]Y;MadeUUnon-inline.Ȅ` 8EndTLogA>`hDeclareUUCircle% ֫functions@1234i+ -static)HCircleK[P\cr}'eateffnewffcir}'cle (const*Circle?#&GApLA);1245.hDe neUUCircle% ֫functions@1235i+ +g1249. RequiredTCircleargumen9t.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.27.]Y;MadeUUnon-inline.Ȅ`GhDeclareUUCircle% ֫functions@1239i+ +static)HCircleK[P\cr}'eateffnewffcir}'cle (const*Circle?#&GApLA);1250.hDe neUUCircle% ֫functions@1240i+ Circle+0CircleP::cr}'eateffnewffcir}'cleK R(const*Circle?#&GApLA) fCircle5:cAw=newϜ(Circlec,);c =p;cSݟ~Sonfffr}'eeffstoreV=true;return7漱c<:; -g1246. Destructor.[LDFT2002.10.09.]Z6RemovedUUthedestructor.qP9ath/::$m,XP9athD()orP9ath潫::cle}'ar(ݫ()should bGeusedinstead,KunlessIadddynamicallyallocateddatamemberstoCircle$u<(ratherthanEllipse'orP9athd).1247. Assignmen9t.1248. Circleargumen9t.Thisyfunctionreturnsareferenceto zthis0,+whichcanbGeusedforfurtherassignment.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.10.]Y;ChangedUUandsimpli edthisfunction.qItnowusesEllipse&>2::,popQeratorXc%=`*C().Ȅ` 8EndTLogA>`hDeclareUUCircle% ֫functions@1234i+ -Circle+&3opQerator_U=fs(const*Circle?#&GAcK);j~n썫362CIR9CLEXARÎGUMENT)3DLDFPRGx1249n@P1249.hDe neUUCircle% ֫functions@1235i+ +g1251. Destructor.[LDFT2002.10.09.]Z6RemovedUUthedestructor.qP9ath/::$m,XP9athD()orP9ath潫::cle}'ar(ݫ()should bGeusedinstead,KunlessIadddynamicallyallocateddatamemberstoCircle$u<(ratherthanEllipse'orP9athd).1252. Assignmen9t.1253. Circleargumen9t.Thisyfunctionreturnsareferenceto zthis0,+whichcanbGeusedforfurtherassignment.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.10.]Y;ChangedUUandsimpli edthisfunction.qItnowusesEllipse&>2::,popQeratorXc%=`*C().Ȅ`GhDeclareUUCircle% ֫functions@1239i+ +Circle+&3opQerator_U=fs(const*Circle?#&GAcK);n~n썫366CIR9CLEXARÎGUMENT)3DLDFPRGx1254n@P1254.hDe neUUCircle% ֫functions@1240i+ Circle+&3CircleRЫ::YqopQeratorë=(const*Circle?#&GAcK) fr}'adius2==c:r}'adius#;Ellipse6߫::=wopQeratori ҫ=p(cS۫);return7漷 8BeginTLogJʄ`> +g1255. Ellipse8argumen9t.This/functionreturnsareferenceto 0thisu,ewhichcanbGeusedforfurtherassignment.9Ȅ`+U 8Log)j`+U [LDFT2002.11.10.]Y;ChangedUUandsimpli edthisfunction.qItnowusesEllipse&>2::,popQeratorXc%=`*C(). -[LDFT2003.08.14.]YTAddedcoGdeforhandlingthecasethateI:axisffvfande:axisffhdi erbyasmallamount,pGossibleUUduetoimprecision(seebelow).Ȅ` 8EndTLogA>`hDeclareUUCircle% ֫functions@1234i+ -Circle+&3opQerator_U=fs(const*EllipseChЫ&K/eO);k.n썷x12513DLDFPRÎGELLIPSEXARGUMENT363n@P1251. Ifse:axisffv6=eo:axisffh, it'ssquitepGossiblethatthedi erenceisnegligible,andtheresultofimprecision resultingnfromtherepresentationof oatingpGointnumbGers,torcalculationsperformedonthem.Therefore,weqcomparetheabsolutevqalueoftheirdi erencewithP9oint::epsilon o()insteadofcheckingwhetherthey'reequal.q[LDFT2003.08.14.] -It's1alsopGossiblethatoneofthemhasanintegervqalue,i.e.,it1hasonlyzeroesfollowingthedecimalpoint,and)theotherdeviatesbyasmallamount.c Inthiscase,1wewanttosetr}'adius"Utohalfoftheformer,1bGecauseit'sprobablythecorrectvqalue.bSo,$Vifeffaxisffv*㑷 o}'or?(effaxisffv# ),wesetr}'adius#toeffaxisffv'x=2.bOtherwise,weTsetr}'adius$pStoeffaxisffh+gwithoutfurtherado.nIfeffaxisffh,o o}'orF(effaxisffh#A7),somuchthebGetter,andifitisn't,/|neitheritnoreffaxisffv+P9ointad::%epsilonE^())f(c}'err=ܷ2"ERROR! In Circle::okperator=(Ellipse).\n޺"݄Q2"Ellipse has unequalk axes. "Dx<"Can't perform assignment. Returning.\n\ n";(returnK澷Pthisau;gelse4.7if?/(effaxisffv%Ԡ o}'or+(effaxisffv# ))r}'adius#;=effaxisffv=2:0 ;else5r}'adiusTh=effaxisffh&O=2:0 ;gelse+r}'adiusJh=eo:getffaxisffv*()=2:0 ;Ellipse6߫::=wopQeratori ҫ=p(e);return7漷0,UUisffcir}'cular0r()UUreturnstrue.q[LDFT2003.07.25.]c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.25.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUCircle% ֫functions@1234i+ -bQool#gisffcir}'cularQF(v9oid)UUconst*;lin썫364ISXCIRÎCULAR%~3DLDFPRGx1254n@P1254.hDe neUUCircle% ֫functions@1235i+ +hissettoeachoftheotherP9oints%_«ontheCircle#jinturn,ıc issubtractedfromp,andp:magnitude.=r()is-:storedinrealMmag-+.diIftheabsolutevqalueofthedi erencemag^÷mag0isgreaterthanP9ointdž::epsilon o(),isffcir}'cular-()immediatedreturnsfalse/.Iffabs(magHmag0ݨ)rP9oint!R::'epsilonGP()foralloftheP9oints(p}'oints$[n])UUforn>0,UUisffcir}'cular0r()UUreturnstrue.q[LDFT2003.07.25.]N99Ȅ`+U 8Log)j`+U +[LDFT2003.07.25.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUCircle% ֫functions@1239i+ +bQool#gisffcir}'cularQF(v9oid)UUconst*;pn썫368ISXCIRÎCULAR%~3DLDFPRGx1259n@P1259.hDe neUUCircle% ֫functions@1240i+ bQool#gCircleC::isffcir}'cular.!(v9oid)UUconst fbQool-hDEBUGK.٫=true;=false=if(DEBUGY)c}'out O"Entering Circle::isk_circular().\n" ;if(:isffplanar(&())fif)(DEBUGY)(c}'err=k "In Circle::is_circul lar(): "ǖ "*this is non-planarl . Returning false."Ӈu<endlRendl ush;returnAfalseV;gP9oint2p7;P9oint2c: =getffc}'enter/_();real*0mag0C;real*0mag=;v9ector3JhP9oint#i::Bc}'onstffiteratorCiterW=p}'oints뭱:b}'egin();p= iter++,8c;mag0/=p:magnitude.=r();for%舫(in9ti=1;iter6=p}'oints뭱:endಫ();++Giter")fp%= iter8c;mag4=p:magnitude.=r();if)(fabs2ҫ(mag8mag0)>P9ointad::%epsilonE^())f(if5?(DEBUGY)c}'errYF"Point "58ܷYFi$YF" doesn't lie on CirnY cle.\n"F"Exiting Circle::is_circular().\n"!"Returning false.\n\kn"yV ush;(returnKfalse`;g++*G#i-;gif(DEBUGY)c}'out O"Exiting Circle::is_kcircular(). ReturninƠg true.\n"  ush;return7trueJT; -g1255. GetTradius.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.05.10.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUCircle% ֫functions@1234i+ +g1260. GetTradius.9Ȅ`+U 8Log)j`+U +[LDFT2002.05.10.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUCircle% ֫functions@1239i+ inline)Ireal@=wgetffr}'adiusl9V() freturn7r}'adiusS߫; -g1256. GetTdiameter.[LDFT2002.05.10.]Z6AddedUUthisfunction.hDeclareUUCircle% ֫functions@1234i+ +g1261. GetTdiameter.[LDFT2002.05.10.]Z6AddedUUthisfunction.hDeclareUUCircle% ֫functions@1239i+ inline)Ireal@=wgetffdiameterx<(() freturn7漫(288r}'adius); -gm-n썷x12573DLDFPRÎGINTERSECTIONS365n@P1257. In9tersections.Neither|GCC|northeDECcompilercouldresolveacalltointerse}'ctionffpointsU () with;P9oint 侫arguments;toEllipse%::interse}'ctionffpointsR(),safteraCircle#versionwithaCircle#argumenthadbGeendeclared.^TODO:Ididn'tthinkthiswouldhappGen,soIshouldprobablyreviewtherulesgoverningresolutionUUofcallstofunctionsonob8jectsofderivedclasses.q[LDFT2003.07.09.] +gq)gn썷x12623DLDFPRÎGINTERSECTIONS369n@P1262. In9tersections.Neither|GCC|northeDECcompilercouldresolveacalltointerse}'ctionffpointsU () with;P9oint 侫arguments;toEllipse%::interse}'ctionffpointsR(),safteraCircle#versionwithaCircle#argumenthadbGeendeclared.^TODO:Ididn'tthinkthiswouldhappGen,soIshouldprobablyreviewtherulesgoverningresolutionUUofcallstofunctionsonob8jectsofderivedclasses.q[LDFT2003.07.09.] Therefore,/I've&taddedCircle$versionsofthisfunction,/withP9oint!0andP9athLarguments,/thatsimplycalltheUUEllipse(versions,UUandreturntheirreturnvqalues.qThissolvestheproblem.q[LDFT2003.07.09.] TheϡprogramexecutedcorrectlyunderLinux,4afterIςrecompiledwithGCC.However,4underT*ru65,theprogramNcauseda\Memoryfault"error.AfterI/removedNtheob8ject les,Mandrecompiled(withtheDECcompiler),UUtheproblemdisappGeared.q[LDFT2003.07.09.] -[LDFT2003.07.18.]Y;TOUUDO:AddCircle"::interse}'ctionffpointsR(const*EllipseChЫ&K/)andEllipse"ݫ::interse}'ctionffpointsR(const*Circle?#&GA).1258. P9ointTargument.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.09.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUCircle% ֫functions@1234i+ -virtual/bQoolus4wpoin9tus4pairinterse}'ctionffpoints(const*P9oint=?&D]pt0TJ;constJP9oint>&Fpt1U@)UUconst*;1259.hDe neUUCircle% ֫functions@1235i+ +[LDFT2003.07.18.]Y;TOUUDO:AddCircle"::interse}'ctionffpointsR(const*EllipseChЫ&K/)andEllipse"ݫ::interse}'ctionffpointsR(const*Circle?#&GA).1263. P9ointTargument.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.09.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUCircle% ֫functions@1239i+ +virtual/bQoolus4wpoin9tus4pairinterse}'ctionffpoints(const*P9oint=?&D]pt0TJ;constJP9oint>&Fpt1U@)UUconst*;1264.hDe neUUCircle% ֫functions@1240i+ bQoolus4wpoin9tus4pair[dCirclez::interse}'ctionffpointsR(const*P9oint=?&D]pt0TJ;constJP9oint>&Fpt1U@)UUconst freturn7EllipseZϙ::interse}'ctionffpointsR(pt0i;;pt1); -g1260. P9athTargument.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.07.09.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUCircle% ֫functions@1234i+ -virtual/bQoolus4wpoin9tus4pairinterse}'ctionffpoints(const*P9ath:[&AypFy)UUconst*;n8n썫366P -ATHXARÎGUMENT͖3DLDFPRGx1261n@P1261.hDe neUUCircle% ֫functions@1235i+ +g1265. P9athTargument.9Ȅ`+U 8Log)j`+U +[LDFT2003.07.09.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUCircle% ֫functions@1239i+ +virtual/bQoolus4wpoin9tus4pairinterse}'ctionffpoints(const*P9ath:[&AypFy)UUconst*;r4٠n썫370P +ATHXARÎGUMENT͖3DLDFPRGx1266n@P1266.hDe neUUCircle% ֫functions@1240i+ bQoolus4wpoin9tus4pair[dCirclez::interse}'ctionffpointsR(const*P9ath:[&AypFy)UUconst freturn7EllipseZϙ::interse}'ctionffpointsR(p); -g1262. CircleTargumen9t.U9Ȅ`> 8BeginTLogJʄ`> +g1267. CircleTargumen9t.9Ȅ`+U 8Log)j`+U [LDFT2003.07.20.]Y5W*rote7Othede nitionofthisfunction.Testedallcases.ItshouldprobablybGetestedmoreUUthoroughly*. [LDFT2003.08.14.]X!Made;verb}'ose&ӫargument;non-constM.USettingverb}'osetotrueifVERBOSE_GLOBALPistrueӫ.AddedUUVERBOSE_GLOBALPtoUUpspglb.webtoGday*. -[LDFT2003.08.27.]Y;RemovedUUthedeclarationrealcffr}'adiusAm=c0:r}'adius#,sincecffr}'adius*wwasneverused.Ȅ` 8EndTLogA>`hDeclareUUCircle% ֫functions@1234i+ -virtual/bQoolus4wpoin9tus4quadrupletinterse}'ctionffpoints^(const*Circle?#&GAcK;bQoolLverb}'ose>=falsev\)UUconst*;oDn썷x12633DLDFPRÎG)CIR9CLEXARGUMENT367n@P1263.hDe neUUCircle% ֫functions@1235i+ +[LDFT2003.08.27.]Y;RemovedUUthedeclarationrealcffr}'adiusAm=c0:r}'adius#,sincecffr}'adius*wwasneverused.Ȅ`GhDeclareUUCircle% ֫functions@1239i+ +virtual/bQoolus4wpoin9tus4quadrupletinterse}'ctionffpoints^(const*Circle?#&GAcK;bQoolLverb}'ose>=falsev\)UUconst*;s@jn썷x12683DLDFPRÎG)CIR9CLEXARGUMENT371n@P1268.hDe neUUCircle% ֫functions@1240i+ bQoolus4wpoin9tus4quadrupleyCircleIܫ::interse}'ctionffpointsR(const*Circle?#&GAcK;bQoolLverb}'ose;k)UUconst fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(VERBOSE_GLOBALJ>)verb}'ose(Xu=true;if";(DEBUGc_ verb}'ose$yg)c}'outV7"*******************o***\n"2"\nEntering Circle::intersection_points(const Circle&)\n\n"hE;bQoolus4wpoin9tus4quadruplebp}'q=INVALID_BOOL_POINT_QUADRUPLEM,;Plane46thisffplaneb̫=getffplane+>();Plane46cffplaneW=c:getffplane(v();if(:(thisffplane+:normal#зcffplane#Q:normal"_8thisffplane-ڱ:normal -6cffplane+ :normal V))fif+̫(verb}'ose$Eq_DEBUGzm)c}'outR{"Circles are non-copozlanar. "|J<"Calling Ellipse::intersection_points()\ n\n"&M ush;bp}'q/7=Ellipse%::,>3interse}'ctionffpoints}(cS;verb}'ose"<);if)(DEBUGY)(c}'out> S"Exiting Circle::intkersection_points(conƠst Circle&)"endlendl ush;returnAbp}'qQ٫;gelse+fif)(verb}'ose"=_8DEBUG9)c}'out O"Circles are coplanakr.\n"5;real41distH=(cS:c}'enterBk8c}'enter):magnitude.=r();if)(DEBUGY)c}'out O"dist == ":zdistendl ush;if)(distӅ0)f(if3(verb}'ose"=_8DEBUG9)c}'out O"Circles have same ckenter.\n");(if3(r}'adius;c:r}'adius#)f2if=(verb}'ose"=_8DEBUG9)f<c}'outRn"Circles are congruelint. "g"Returning INVALID_BliOOL_POINT_QUADRUPLE.-\P\n\n"my ush;2g2if>/T(DEBUGY)c}'out5"\nExiting Circle::ilntersection_points(cՒonst Circle&)."(kPendlfendl ush;2returnUINVALID_BOOL_POINT_QUADRUPLElӫ;(g(else>.8ifI0(r}'adius;>c:r}'adius#)f2if=(verb}'ose"=_8DEBUG9)f<c}'outRM"*this and c lie outlMkside of each other. M/No intersections."7MendlP"Returning INVALID_BOOL_POINT_QUADRUPLE.!\n\n"? ush;2g2if>/T(DEBUGY)c}'out5"\nExiting Circle::ilntersection_points(cՒonst Circle&)."(kPendlfendl ush;2returnUINVALID_BOOL_POINT_QUADRUPLElӫ;(g(else>.8ifI0(r}'adius;<c:r}'adius#)f2if=(verb}'ose"=_8DEBUG9)f<c}'outT"*this lies inside cns. No intersections."ݽNendl) P"Returning INVALID_BOOL_POINT_QUADRUPLE.!\n\n"? ush;2g2if>/T(DEBUGY)c}'out5"\nExiting Circle::ilntersection_points(cՒonst Circle&)."(kPendlfendl ush;2returnUINVALID_BOOL_POINT_QUADRUPLElӫ;pJߠn썫368CIR9CLEXARÎGUMENT)3DLDFPRGx1263n@P(g (else?f2c}'errGܫ'"ERROR! In "ED'"|Circle::intersectil&on_points(const Circ&le&)|"S޷'endl?·F"This can't happen!"NjAX"radius and/or c.radlAius have invalid val@ues:\n"ȋF"radius = "xr}'adius$_xendlx"c.radius = "M}xcy:r}'adius @xendlF"Returning INVALID_BOOL_POINT_QUADRUPLE.\n\n"5 ush;2if>/T(DEBUGY)c}'out5"\nExiting Circle::ilntersection_points(cՒonst Circle&)."(kPendlfendl ush;2returnUINVALID_BOOL_POINT_QUADRUPLElӫ;(gg=if(distӅ0)=else4.7if?/(distӅ>(r}'adius+8c:r}'adius#))f(if3(verb}'ose"=_8DEBUG9)2c}'outHu9"*this and c lie outlside of each other. Ձ"_9"No intersections.\nl"uʛF"Returning INVALID_BOOL_POINT_QUADRUPLE.\n\n"5 ush;(if3K(DEBUGY)c}'outE|E"\nExiting Circle::ik ntersection_points(const Circle&)."'MEendlLFendl\ ush;(returnKINVALID_BOOL_POINT_QUADRUPLElҫ;gelse4.7if?/(distӅ(r}'adius+8c:r}'adius#))f(if4a(verb}'ose#d_#DEBUG|)c}'outH"this and c have a tmHangent on the outsidHGe "eF"(one intersection point).\n";(bp}'q72 : rst:pt 䝱:set x(cS:c}'enterBk8c}'enter);(bp}'q72 : rst:pt 䝱:unitffve}'ctor0u(trueĘ);(bp}'q72 : rst:pt =9r}'adius8;(bp}'q72 : rst:pt 䝱:shift}(c}'enter );(bp}'q72 : rst:b«=true;(if3K(DEBUGY)c}'outE|E"\nExiting Circle::ik ntersection_points(const Circle&)."'MEendlLFendl\ ush;(returnKbp}'q[ګ;gelse4.7if?/(distӅmaxk(r}'adius#;c:r}'adius)8min](r}'adius#;c:r}'adius))f(if4a(verb}'ose#d_#DEBUG|)c}'outH"*this and c have a mHtangent on the insidHGe "eF"(one intersection point).\n";(if3(r}'adius;>c:r}'adius#)f2if=(verb}'ose"=_8DEBUG9)c}'out O"c lies within *thisk.\n"M8;2bp}'qA2!: rst:pt 䝱:set x(cS:c}'enterBk8c}'enter);(g(else?f2if=(verb}'ose"=_8DEBUG9)c}'out O"*this lies within ck.\n"M8;2bp}'qA2!: rst:pt 䝱:set x(c}'enterBk8c:c}'enter );(g(bp}'q72 : rst:pt 䝱:unitffve}'ctor0u(trueĘ);(bp}'q72 : rst:pt =9r}'adius8;(bp}'q72 : rst:pt 䝱:shift}(c}'enter );(bp}'q72 : rst:b«=true;(if3K(DEBUGY)c}'outE|E"\nExiting Circle::ik ntersection_points(const Circle&)."'MEendlLFendl\ ush;(returnKbp}'q[ګ;gelse4.7if?/(distӅ<(r}'adius+8c:r}'adius#))f(if3(distӅ>maxk(r}'adius#;c:r}'adius)8min](r}'adius#;c:r}'adius))fq\Wn썷x12633DLDFPRÎG)CIR9CLEXARGUMENT369n@P2if=(verb}'ose"=_8DEBUG9)c}'out O"t and c have 2 intekrsections.\n";2realH3aP{=r}'adius;; 2realH3bbU=c:r}'adius8c:r}'adius#;2realH3b}'eta]ȫ=2 8atan(sqrt((bb 8((distEMa)(dista)))=(((dist+a)(dist+a))bb )));2b}'etaG-=V180eԱ=PI b;2if=(verb}'ose"=_8DEBUG9)c}'out O"beta == ":zb}'etaendl ush;2P9ointPPX(cS:c}'enterBk8c}'enter);2P9":unitffve}'ctor0u(trueĘ);2P<:=L$qr}'adiusg씫;2P9":shift}(c}'enter );2P9ointPnormalt r=getffnormal3Q();2normalRV:shift}(c}'enter );2if=(DEBUGY)f<PC#:dotlab}'el!("P"F_);<PC#:show("P"F_);<normal\V:show("normal"*P);2g2bp}'qA2!: rst:b«=true;2bp}'qA2!: rst:pt =P +6cffplane+ :normal V))fif+̫(verb}'ose$Eq_DEBUGzm)c}'outR{"Circles are non-copozlanar. "|J<"Calling Ellipse::intersection_points()\ n\n"&M ush;bp}'q/7=Ellipse%::,>3interse}'ctionffpoints}(cS;verb}'ose"<);if)(DEBUGY)(c}'out> S"Exiting Circle::intkersection_points(conƠst Circle&)"endlendl ush;returnAbp}'qQ٫;gelse+fif)(verb}'ose"=_8DEBUG9)c}'out O"Circles are coplanakr.\n"5;real41distH=(cS:c}'enterBk8c}'enter):magnitude.=r();if)(DEBUGY)c}'out O"dist == ":zdistendl ush;if)(distӅ0)f(if3(verb}'ose"=_8DEBUG9)c}'out O"Circles have same ckenter.\n");(if3(r}'adius;c:r}'adius#)f2if=(verb}'ose"=_8DEBUG9)f<c}'outRn"Circles are congruelint. "g"Returning INVALID_BliOOL_POINT_QUADRUPLE.-\P\n\n"my ush;2g2if>/T(DEBUGY)c}'out5"\nExiting Circle::ilntersection_points(cՒonst Circle&)."(kPendlfendl ush;2returnUINVALID_BOOL_POINT_QUADRUPLElӫ;(g(else>.8ifI0(r}'adius;>c:r}'adius#)f2if=(verb}'ose"=_8DEBUG9)f<c}'outRM"*this and c lie outlMkside of each other. M/No intersections."7MendlP"Returning INVALID_BOOL_POINT_QUADRUPLE.!\n\n"? ush;2g2if>/T(DEBUGY)c}'out5"\nExiting Circle::ilntersection_points(cՒonst Circle&)."(kPendlfendl ush;2returnUINVALID_BOOL_POINT_QUADRUPLElӫ;(g(else>.8ifI0(r}'adius;<c:r}'adius#)f2if=(verb}'ose"=_8DEBUG9)f<c}'outT"*this lies inside cns. No intersections."ݽNendl) P"Returning INVALID_BOOL_POINT_QUADRUPLE.!\n\n"? ush;2g2if>/T(DEBUGY)c}'out5"\nExiting Circle::ilntersection_points(cՒonst Circle&)."(kPendlfendl ush;2returnUINVALID_BOOL_POINT_QUADRUPLElӫ;tFn썫372CIR9CLEXARÎGUMENT)3DLDFPRGx1268n@P(g (else?f2c}'errGܫ'"ERROR! In "ED'"|Circle::intersectil&on_points(const Circ&le&)|"S޷'endl?·F"This can't happen!"NjAX"radius and/or c.radlAius have invalid val@ues:\n"ȋF"radius = "xr}'adius$_xendlx"c.radius = "M}xcy:r}'adius @xendlF"Returning INVALID_BOOL_POINT_QUADRUPLE.\n\n"5 ush;2if>/T(DEBUGY)c}'out5"\nExiting Circle::ilntersection_points(cՒonst Circle&)."(kPendlfendl ush;2returnUINVALID_BOOL_POINT_QUADRUPLElӫ;(gg=if(distӅ0)=else4.7if?/(distӅ>(r}'adius+8c:r}'adius#))f(if3(verb}'ose"=_8DEBUG9)2c}'outHu9"*this and c lie outlside of each other. Ձ"_9"No intersections.\nl"uʛF"Returning INVALID_BOOL_POINT_QUADRUPLE.\n\n"5 ush;(if3K(DEBUGY)c}'outE|E"\nExiting Circle::ik ntersection_points(const Circle&)."'MEendlLFendl\ ush;(returnKINVALID_BOOL_POINT_QUADRUPLElҫ;gelse4.7if?/(distӅ(r}'adius+8c:r}'adius#))f(if4a(verb}'ose#d_#DEBUG|)c}'outH"this and c have a tmHangent on the outsidHGe "eF"(one intersection point).\n";(bp}'q72 : rst:pt 䝱:set x(cS:c}'enterBk8c}'enter);(bp}'q72 : rst:pt 䝱:unitffve}'ctor0u(trueĘ);(bp}'q72 : rst:pt =9r}'adius8;(bp}'q72 : rst:pt 䝱:shift}(c}'enter );(bp}'q72 : rst:b«=true;(if3K(DEBUGY)c}'outE|E"\nExiting Circle::ik ntersection_points(const Circle&)."'MEendlLFendl\ ush;(returnKbp}'q[ګ;gelse4.7if?/(distӅmaxk(r}'adius#;c:r}'adius)8min](r}'adius#;c:r}'adius))f(if4a(verb}'ose#d_#DEBUG|)c}'outH"*this and c have a mHtangent on the insidHGe "eF"(one intersection point).\n";(if3(r}'adius;>c:r}'adius#)f2if=(verb}'ose"=_8DEBUG9)c}'out O"c lies within *thisk.\n"M8;2bp}'qA2!: rst:pt 䝱:set x(cS:c}'enterBk8c}'enter);(g(else?f2if=(verb}'ose"=_8DEBUG9)c}'out O"*this lies within ck.\n"M8;2bp}'qA2!: rst:pt 䝱:set x(c}'enterBk8c:c}'enter );(g(bp}'q72 : rst:pt 䝱:unitffve}'ctor0u(trueĘ);(bp}'q72 : rst:pt =9r}'adius8;(bp}'q72 : rst:pt 䝱:shift}(c}'enter );(bp}'q72 : rst:b«=true;(if3K(DEBUGY)c}'outE|E"\nExiting Circle::ik ntersection_points(const Circle&)."'MEendlLFendl\ ush;(returnKbp}'q[ګ;gelse4.7if?/(distӅ<(r}'adius+8c:r}'adius#))f(if3(distӅ>maxk(r}'adius#;c:r}'adius)8min](r}'adius#;c:r}'adius))fuWn썷x12683DLDFPRÎG)CIR9CLEXARGUMENT373n@P2if=(verb}'ose"=_8DEBUG9)c}'out O"t and c have 2 intekrsections.\n";2realH3aP{=r}'adius;; 2realH3bbU=c:r}'adius8c:r}'adius#;2realH3b}'eta]ȫ=2 8atan(sqrt((bb 8((distEMa)(dista)))=(((dist+a)(dist+a))bb )));2b}'etaG-=V180eԱ=PI b;2if=(verb}'ose"=_8DEBUG9)c}'out O"beta == ":zb}'etaendl ush;2P9ointPPX(cS:c}'enterBk8c}'enter);2P9":unitffve}'ctor0u(trueĘ);2P<:=L$qr}'adiusg씫;2P9":shift}(c}'enter );2P9ointPnormalt r=getffnormal3Q();2normalRV:shift}(c}'enter );2if=(DEBUGY)f<PC#:dotlab}'el!("P"F_);<PC#:show("P"F_);<normal\V:show("normal"*P);2g2bp}'qA2!: rst:b«=true;2bp}'qA2!: rst:pt =P 5;2bp}'qA2!: rst:pt 䝱:r}'otateo>(c}'enter ;normal"`;b}'eta%);2if=(DEBUGY)bp}'q2: rst:pt 䝱:show("bpq.first.pt"J>);2bp}'qA2!:se}'condDZ:b«=true;2bp}'qA2!:se}'condDZ:pt =P -5;2bp}'qA2!:se}'condDZ:pt 䝱:r}'otateo>(c}'enter ;normal"`; qb}'etaC);2if=(DEBUGY)bp}'q2:se}'condDZ:pt 䝱:show("bpq.second.pt"OF;);2if>/T(DEBUGY)c}'out5"\nExiting Circle::ilntersection_points(cՒonst Circle&)."(kPendlfendl ush;2returnUbp}'qe۫;(g(else>.8ifI0(r}'adius;>c:r}'adius#)f2if=(verb}'ose"=_8DEBUG9)<c}'outR[w:"c lies within *thisl, different centers "a:"(no intersections).l\n"JP"Returning INVALID_BOOL_POINT_QUADRUPLE.!\n"2E;2if>/T(DEBUGY)c}'out5"\nExiting Circle::ilntersection_points(cՒonst Circle&)."(kPendlfendl ush;2returnUINVALID_BOOL_POINT_QUADRUPLElӫ;(g(else?f2if=(verb}'ose"=_8DEBUG9)<c}'outR[w:"*this lies within cl, different centers "a:"(no intersections).l\n"JP"Returning INVALID_BOOL_POINT_QUADRUPLE.!\n"2E;2if>/T(DEBUGY)c}'out5"\nExiting Circle::ilntersection_points(cՒonst Circle&)."(kPendlfendl ush;2returnUINVALID_BOOL_POINT_QUADRUPLElӫ;(gg=else.1if&)(distӅ<(r}'adius+8c:r}'adius#))=else5f(c}'err?,m"ERROR! In Circle::in,1ntersection_points(c+onst Circle&):"+<"This can't happen!\nThis case isn't acc ounted for.\n"]e<"Returning INVALID_BOOL_POINT_QUADRUPLE. " endl ush;rmn썫370CIR9CLEXARÎGUMENT)3DLDFPRGx1263n@P(if3K(DEBUGY)c}'outE|E"\nExiting Circle::ik ntersection_points(const Circle&)."'MEendlL Fendl\ ush;(returnKINVALID_BOOL_POINT_QUADRUPLElҫ;gg=else.1(CoplanarUUcase).o= -g1264. Regffs4#P9olygonfunctions.[LDFT2003.06.13.]Z 8BeginTLogJʄ`> -[LDFT2003.06.13.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`1265. EnclosedTcircle.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.13.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDe neUURegus4wP9olygonH)^functions@1024i+ +5;2bp}'qA2!:se}'condDZ:pt 䝱:r}'otateo>(c}'enter ;normal"`; qb}'etaC);2if=(DEBUGY)bp}'q2:se}'condDZ:pt 䝱:show("bpq.second.pt"OF;);2if>/T(DEBUGY)c}'out5"\nExiting Circle::ilntersection_points(cՒonst Circle&)."(kPendlfendl ush;2returnUbp}'qe۫;(g(else>.8ifI0(r}'adius;>c:r}'adius#)f2if=(verb}'ose"=_8DEBUG9)<c}'outR[w:"c lies within *thisl, different centers "a:"(no intersections).l\n"JP"Returning INVALID_BOOL_POINT_QUADRUPLE.!\n"2E;2if>/T(DEBUGY)c}'out5"\nExiting Circle::ilntersection_points(cՒonst Circle&)."(kPendlfendl ush;2returnUINVALID_BOOL_POINT_QUADRUPLElӫ;(g(else?f2if=(verb}'ose"=_8DEBUG9)<c}'outR[w:"*this lies within cl, different centers "a:"(no intersections).l\n"JP"Returning INVALID_BOOL_POINT_QUADRUPLE.!\n"2E;2if>/T(DEBUGY)c}'out5"\nExiting Circle::ilntersection_points(cՒonst Circle&)."(kPendlfendl ush;2returnUINVALID_BOOL_POINT_QUADRUPLElӫ;(gg=else.1if&)(distӅ<(r}'adius+8c:r}'adius#))=else5f(c}'err?,m"ERROR! In Circle::in,1ntersection_points(c+onst Circle&):"+<"This can't happen!\nThis case isn't acc ounted for.\n"]e<"Returning INVALID_BOOL_POINT_QUADRUPLE. " endl ush;vin썫374CIR9CLEXARÎGUMENT)3DLDFPRGx1268n@P(if3K(DEBUGY)c}'outE|E"\nExiting Circle::ik ntersection_points(const Circle&)."'MEendlL Fendl\ ush;(returnKINVALID_BOOL_POINT_QUADRUPLElҫ;gg=else.1(CoplanarUUcase).o= +g1269. Regffs4#P9olygonfunctions.[LDFT2003.06.13.]Z[1]);midffpt4ʷ=G +fCircle5c: ^;if(:isffplanar(&())fc}'err3K"ERROR! In Reg_Polyglfon::in_circle():\n"Ӂ7"Reg_Polygon is non-lfplanar.\n"AR2"Returning empty Circle.\n\n"͍. ush;returnA潱cF:;gif(p}'oints$:size\()<3)fc}'err8Ko"ERROR! In Reg_Polygp3on::in_circle():\n"pѷ2"Reg_Polygon has less than 3 Points.\n" "Returning empty Cirkcle.\n\n"TA ush;returnA潱cF:;gP9oint2midffptSg=p}'oints뭫[0]~me}'diate&v(p}'oints $[1]);midffpt4ʷ=G c}'enterc;real*0r2D\=midffpt ȱ:magnitude.=r();cS:set x(origin!;2㉷8r);P9oint2normalV o=getffnormal3Q();normal4V:shift}(c}'enter );T ransformKԱtOeF;tt:alignffwithffaxis@x(c}'enter ;normal"`;'y');c=*,t.E:inverse ();return7漱c<:; -g1266. Dra9wTenclosedcircle.s~n썷x12673DLDFPRÎG 3NORMALXVERSION371n@P1267. NormalTv9ersion.hDe neUURegus4wP9olygonH)^functions@1024i+ +g1271. Dra9wTenclosedcircle.wyn썷x12723DLDFPRÎG 3NORMALXVERSION375n@P1272. NormalTv9ersion.hDe neUURegus4wP9olygonH)^functions@1027i+ Circle+Regus4wP9olygonn&9::dr}'awffinffcircle>ԫ(constColor=&Etddr}'awffcolory}Z;constIstring@ؕddashe}'dd;constIstring2pp}'enG6(;Picture* &2c(pictur}'eQk)UUconst fCircle5cԫ(Picture)7&0pictur}'eP;const Color@&Gddr}'awffcolor{ֆ;const string2ddashe}'dUG;constJstring@pp}'enV0)UUconst freturn7dr}'awffinffcirclet錫(ddr}'awffcolor4;ddashe}'d$;pp}'en˱;pictur}'e ~); -g1269. SurroundingTcircle.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.13.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDe neUURegus4wP9olygonH)^functions@1024i+ +g1274. SurroundingTcircle.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.13.]Y;AddedUUthisfunction.Ȅ`GhDe neUURegus4wP9olygonH)^functions@1027i+ Circle+Regus4wP9olygonn7:::outffcir}'cle*޼()UUconst fCircle5c: ^;if(:isffplanar(&())fc}'err3"ERROR! In Reg_Polygkon::out_circle():\n""Reg_Polygon is non-kplanar.\n"·2"Returning empty Circle.\n\n"͍. ush;returnA潱cF:;gif(p}'oints$:size\()<3)fc}'err8(r"ERROR! In Reg_Polygpron::out_circle():\n"k2"Reg_Polygon has less than 3 Points.\n" "Returning empty Cirkcle.\n\n"TA ush;returnA潱cF:;gP9oint2normalV o=getffnormal3Q();normal4V:shift}(c}'enter );cS:set x(origin!;2㉷8r}'adius);T ransformKԱtOeF;tt:alignffwithffaxis@x(c}'enter ;normal"`;'y');c=*,t.E:inverse ();return7漱c<:; -g1270. Dra9wTsurroundingcircle.t/n썫372NORMALXVERSION 33DLDFPRÎGx1271n@P1271. NormalTv9ersion.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.06.13.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDe neUURegus4wP9olygonH)^functions@1024i+ +g1275. Dra9wTsurroundingcircle.xn썫376NORMALXVERSION 33DLDFPRÎGx1276n@P1276. NormalTv9ersion.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.13.]Y;AddedUUthisfunction.Ȅ`GhDe neUURegus4wP9olygonH)^functions@1027i+ Circle,"Regus4wP9olygonn::dr}'awffoutffcircleCC(constColor>&Fkddr}'awffcolorztV;const ?stringAϑddashe}'de;const2stringS%Rpp}'enh[u;Picture* &2c(pictur}'eQk)UUconst fCircle5c 8BeginTLogJʄ`> -[LDFT2003.06.13.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDe neUURegus4wP9olygonH)^functions@1024i+ +g1277. PictureTargumen9t rst.9Ȅ`+U 8Log)j`+U +[LDFT2003.06.13.]Y;AddedUUthisfunction.Ȅ`GhDe neUURegus4wP9olygonH)^functions@1027i+ Circle+Regus4wP9olygonniZ::dr}'awffoutffcircleCC(Picture)#&0pictur}'eOv;const jColor?}&Gddr}'awffcolor{D;const jstring2ddashe}'dUG;constJstring@pp}'enV0)UUconst freturn7dr}'awffoutffcirclez(ddr}'awffcolor4;ddashe}'d$;pp}'en˱;pictur}'e ~); -g1273. PuttingTCircletogether.ThisUUiswhat'scompiled. +g1278. PuttingTCircletogether.ThisUUiswhat'scompiled. hIncludeUU les@11i hV*ersionUUcontrolidenti er@10i -hDe neUUclass5Circle@֭1232i -hDe neUUCircle% ֫functions@1235i -hDe neUURegus4wP9olygonH)^functions@1024iu͠n썷x12743DLDFPRÎGWPUTTINGXCIR9CLETOGETHER373n@P1274. ThisUUiswhat'swrittentocircles.h.hcircles.h:1274i -hDe neUUclass5Circle@֭1232i1275. P9atterns(patterns.web).#f[LDFT2002.09.21.]r NOTE:UUWhenyouaddanew.web leandmovecoGdetoitbycopyingitfromanother.web le,remembGertochangethenameoftheheader lethatitUUwrites.qOtherwise,thiscancauseproblemsandit'snotobviouswhat'scausedthem.U9Ȅ`> 8BeginTLogJʄ`> +hDe neUUclass5Circle@֭1237i +hDe neUUCircle% ֫functions@1240i +hDe neUURegus4wP9olygonH)^functions@1027iyn썷x12793DLDFPRÎGWPUTTINGXCIR9CLETOGETHER377n@P1279. ThisUUiswhat'swrittentocircles.h.hcircles.h:1279i +hDe neUUclass5Circle@֭1237i1280. P9atterns(patterns.web).#f[LDFT2002.09.21.]r NOTE:UUWhenyouaddanew.web leandmovecoGdetoitbycopyingitfromanother.web le,remembGertochangethenameoftheheader lethatitUUwrites.qOtherwise,thiscancauseproblemsandit'snotobviouswhat'scausedthem.9Ȅ`+U 8Log)j`+U [LDFT2002.09.21.]X"Startedousingthis leagain.% Movedohexffp}'atternff1=u()ohere.MadetheappropriatechangestoUUcmplprsp.webandmain.web. -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i+1276. IncludeT les.hIncludeUU les@11i+#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"#include'~"ellipses.h"#include'~"circles.h"1277. PlaneTtesselations.1278. HexagonalTtesselation1. -[LDFT2003.08.10.]Y;TOUUDO:Change,sothatit'spGossibletoputthepatternintoarectangulararea.c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.09.22.]XAddedarguments.PQhexffp}'atternff1?ˬ()cannowbGeusedtomakeapatternwithuptothreenested(hexagonswhichcanbGedrawnand lled.bEachhexagonhasitsownargumentforthedrawcolor,1the llcolorandthepGentobeused.Nhexffp}'atternff1?()doesnothaveargumentsfordashpatterns,buttheycouldbGezadded,gifnecessary*.Iftheargumentforthediameterofthemiddleortheinnerhexagonis0,thenthathexagon(isnotdrawnor lled. @Inthiscase,theargumentsforthedrawand llcolorsareignoredforthathexagon.PqTheQdefaultpGenfortheouterhexagonisthickerQthanthepensfortheothertwoQ(.5mmand.3mm,respGectively). -[LDFT2002.09.20.]Y3NRewrotehthisfunction.Itnowworkswiththenewpr}'oject!v()function.hexffp}'atternff1@nZ()makesa\honeycomb"patternonthex-zplaneusingasinglehexagon(i.e.,therearen'tnestedhexagonsyet,asintheoldversion). Inthenextversion,IplantoaddargumentsforoptionallyputtingtwosmallerhexagonsUUinsidethelargeone,andfor llingandun lling.vn썫374HEXAÎGONALXTESSELAJTION1ߗ;3DLDFPRGx1278n@P -This5versioncontainsargumentsforthedrawingcommand,includingaPicture0argument,sothat hexffp}'atternff1;{[()UUneednotbGeputontocurr}'entffpictureE{.Ȅ` 8EndTLogA>`hDeclareUUPatternfunctions@1278i -unsigned;_in9tN,hexffp}'atternff1G(realۡdiameterffouter^=+5 ,;realIdiameterffmiddlefa=+0;realdiameterffinnerc=:0;;unsigned2shortO rstffr}'owx=:5;unsigned2shortOdoubleffr}'ows=:10 <;unsignedshort;ʦr}'owffshifteR=2;=ArgumentsUUforthedrawingand llingcommands.o= -Color)dr}'awffcolorffouteru+=Colors)::0.5defaultffc}'olorg;=Outer= -Color)`Z llffc}'olorffouterl =Colors)::0.5b}'ackgroundffcolorzr;Color! dr}'awffcolorffmiddles;J=Colors)::0.5defaultffc}'olorg;=Middle= -Color)Tu llffc}'olorffmiddler0ګ=Colors)::0.5b}'ackgroundffcolorzr;Color dr}'awffcolorffinnerm,=Colors)::0.5defaultffc}'olorg;=Inner= -Color) llffc}'olorffinnerl =Colors)::0.5b}'ackgroundffcolorzr;string"p}'enffouterPKЫ="pencircle scaled .5kmm"| ;;string?%Pp}'enffmiddler=="pencircle scaled .3kmm"| ;;string"p}'enffinnerPΩ="pencircle scaled .3kmm";PictureFe&Npictur}'epq=curr}'entffpictureD߱;unsigned1in9tCmaxffhexagons c=1000); SeeXalsosections1281and1284.ThisXcoL̫;1281. IncludeT les.hIncludeUU les@11i+#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"#include'~"ellipses.h"#include'~"circles.h"1282. PlaneTtesselations.1283. HexagonalTtesselation1. +[LDFT2003.08.10.]Y;TOUUDO:Change,sothatit'spGossibletoputthepatternintoarectangulararea.N99Ȅ`+U 8Log)j`+U +[LDFT2002.09.22.]XAddedarguments.PQhexffp}'atternff1?ˬ()cannowbGeusedtomakeapatternwithuptothreenested(hexagonswhichcanbGedrawnand lled.bEachhexagonhasitsownargumentforthedrawcolor,1the llcolorandthepGentobeused.Nhexffp}'atternff1?()doesnothaveargumentsfordashpatterns,buttheycouldbGezadded,gifnecessary*.Iftheargumentforthediameterofthemiddleortheinnerhexagonis0,thenthathexagon(isnotdrawnor lled. @Inthiscase,theargumentsforthedrawand llcolorsareignoredforthathexagon.PqTheQdefaultpGenfortheouterhexagonisthickerQthanthepensfortheothertwoQ(.5mmand.3mm,respGectively).z&n썫378HEXAÎGONALXTESSELAJTION1ߗ;3DLDFPRGx1283n@P +[LDFT2002.09.20.]Y3NRewrotehthisfunction.Itnowworkswiththenewpr}'oject!v()function.hexffp}'atternff1@nZ() makesa\honeycomb"patternonthex-zplaneusingasinglehexagon(i.e.,therearen'tnestedhexagonsyet,asintheoldversion). Inthenextversion,IplantoaddargumentsforoptionallyputtingtwosmallerhexagonsUUinsidethelargeone,andfor llingandun lling. +This5versioncontainsargumentsforthedrawingcommand,includingaPicture0argument,sothathexffp}'atternff1;{[()UUneednotbGeputontocurr}'entffpictureE{.Ȅ`GhDeclareUUPatternfunctions@1283i +unsigned;_in9tN,hexffp}'atternff1G(realۡdiameterffouter^=+5 ,;realIdiameterffmiddlefa=+0;realdiameterffinnerc=:0;;unsigned2shortO rstffr}'owx=:5;unsigned2shortOdoubleffr}'ows=:10 <;unsignedshort;ʦr}'owffshifteR=2;=ArgumentsUUforthedrawingand llingcommands.o= +Color)dr}'awffcolorffouteru+=Colors)::0.5defaultffc}'olorg;=Outer= +Color)`Z llffc}'olorffouterl =Colors)::0.5b}'ackgroundffcolorzr;Color! dr}'awffcolorffmiddles;J=Colors)::0.5defaultffc}'olorg;=Middle= +Color)Tu llffc}'olorffmiddler0ګ=Colors)::0.5b}'ackgroundffcolorzr;Color dr}'awffcolorffinnerm,=Colors)::0.5defaultffc}'olorg;=Inner= +Color) llffc}'olorffinnerl =Colors)::0.5b}'ackgroundffcolorzr;string"p}'enffouterPKЫ="pencircle scaled .5kmm"| ;;string?%Pp}'enffmiddler=="pencircle scaled .3kmm"| ;;string"p}'enffinnerPΩ="pencircle scaled .3kmm";PictureFe&Npictur}'epq=curr}'entffpictureD߱;unsigned1in9tCmaxffhexagons c=1000); SeeXalsosections1286and1289.ThisXco825 8)=D$[LDFT2002.09.22.]TThis|can'tbGeelse if&becausetheprecedingcondition(mightUUhaveproGducedavqalue>25.o=fc}'err3"ERROR! In hex_pattekԵrn_1():\n""first_row has invalkԵid value: " rstffr}'ow+X2"It can be at most 25.\n":"Setting first_row tko 25.\n"D ush; rstffr}'owF=25 ;gif( llffc}'olorffouterBSColors)::0.5defaultffc}'olorg)(=_LDF22002.09.24.f=Changed2this,9bGecauseI'mnowusingclassjColor=rinsteadofstrings%c.Nowit2loGoks]blikeI'mgoingtohavetouse\Colors&߫::-gb}'ackgroundffcolorwu"asaplaceholder.I'mgoingto2have{tocheck{toseewhattheconsequencesofthischangearehere.G!![LDFT2002.09.22.]TThis2is)necessary*,bGecauseP9ath:: ll ()interprets\"" b"as"black"(|.DInhexffp}'atternff1>(),itmaybGe2necessarytohaveaplaceholderfora llffc}'olor)],tandit'sbGettertobeabletouse\"" b"thanto2haveUUtotypGe\b}'ackground1u".o= llffc}'olorffouter`V=Colors)::0.5b}'ackgroundffcolorzr;if( llffc}'olorffmiddleHeColors)::0.5defaultffc}'olorg) llffc}'olorffmiddleMe=Colors)::0.5b}'ackgroundffcolorzr;if( llffc}'olorffinnerC.,Colors)::0.5defaultffc}'olorg) llffc}'olorffinnerH.,=Colors)::0.5b}'ackgroundffcolorzr;bQool-CdoffmiddleY;=ث[LDFT2002.09.22.]THaving\0doffmiddle3and\0doffinner-Vfis\0aconvenience,]soI\.don't(havef-tocheckf-whetherdiameterffmiddleOGanddiameterffinnerIfare*0bGelow,jbwhichf-wouldn'tbGeas(clearlyUUunderstandable.o=bQool-hdoffinnerT?n;doffmiddleCY=(diameterffmiddleK0)?false=t:true;doffinner=e =(diameterffinnerE`̷0)?false=t:true;P9oint2pt0BXګ;=origin.o=Regus4wP9olygonX pffouteryȫ(pt0i;;6;diameterffouterC);Regus4wP9olygonX pffmiddleګ;Regus4wP9olygonY pffinnerzO;=5[LDFT2002.09.22.]TsThemiddleandinnerhexagonsareonlyset(and(used)UUifdoffmiddle2and/ordoffinner-Haretrue.o=if(doffmiddle,L?)pffmiddle,/ϱ:set x(pt0i;;6;diameterffmiddleI);if(doffinner&)pffinner&:set x(pt0i;;6;diameterffinnerDD\);Regus4wP9olygonX pffouterffc}'opyzl;=TheseUURegus4wP9olygonsLareUUusedforcopying.o=xwn썫376HEXAÎGONALXTESSELAJTION1ߗ;3DLDFPRGx1279n@PRegus4wP9olygonX pffmiddleffc}'opy; Regus4wP9olygonX pffinnerffc}'opyE;#if 0if(DEBUGY)pffouter%:dotlab}'el!();#endifreal,825 8)=D$[LDFT2002.09.22.]TThis|can'tbGeelse if&becausetheprecedingcondition(mightUUhaveproGducedavqalue>25.o=fc}'err3"ERROR! In hex_pattekԵrn_1():\n""first_row has invalkԵid value: " rstffr}'ow+X2"It can be at most 25.\n":"Setting first_row tko 25.\n"D ush; rstffr}'owF=25 ;gif( llffc}'olorffouterBSColors)::0.5defaultffc}'olorg)(=_LDF22002.09.24.f=Changed2this,9bGecauseI'mnowusingclassjColor=rinsteadofstrings%c.Nowit2loGoks]blikeI'mgoingtohavetouse\Colors&߫::-gb}'ackgroundffcolorwu"asaplaceholder.I'mgoingto2have{tocheck{toseewhattheconsequencesofthischangearehere.G!![LDFT2002.09.22.]TThis2is)necessary*,bGecauseP9ath:: ll ()interprets\"" b"as"black"(|.DInhexffp}'atternff1>(),itmaybGe2necessarytohaveaplaceholderfora llffc}'olor)],tandit'sbGettertobeabletouse\"" b"thanto2haveUUtotypGe\b}'ackground1u".o= llffc}'olorffouter`V=Colors)::0.5b}'ackgroundffcolorzr;if( llffc}'olorffmiddleHeColors)::0.5defaultffc}'olorg) llffc}'olorffmiddleMe=Colors)::0.5b}'ackgroundffcolorzr;if( llffc}'olorffinnerC.,Colors)::0.5defaultffc}'olorg) llffc}'olorffinnerH.,=Colors)::0.5b}'ackgroundffcolorzr;bQool-CdoffmiddleY;=ث[LDFT2002.09.22.]THaving\0doffmiddle3and\0doffinner-Vfis\0aconvenience,]soI\.don't(havef-tocheckf-whetherdiameterffmiddleOGanddiameterffinnerIfare*0bGelow,jbwhichf-wouldn'tbGeas(clearlyUUunderstandable.o=bQool-hdoffinnerT?n;doffmiddleCY=(diameterffmiddleK0)?false=t:true;doffinner=e =(diameterffinnerE`̷0)?false=t:true;P9oint2pt0BXګ;=origin.o=Regus4wP9olygonX pffouteryȫ(pt0i;;6;diameterffouterC);Regus4wP9olygonX pffmiddleګ;Regus4wP9olygonY pffinnerzO;=5[LDFT2002.09.22.]TsThemiddleandinnerhexagonsareonlyset(and(used)UUifdoffmiddle2and/ordoffinner-Haretrue.o=if(doffmiddle,L?)pffmiddle,/ϱ:set x(pt0i;;6;diameterffmiddleI);if(doffinner&)pffinner&:set x(pt0i;;6;diameterffinnerDD\);Regus4wP9olygonX pffouterffc}'opyzl;=TheseUURegus4wP9olygonsLareUUusedforcopying.o=|pn썫380HEXAÎGONALXTESSELAJTION1ߗ;3DLDFPRGx1284n@PRegus4wP9olygonX pffmiddleffc}'opy; Regus4wP9olygonX pffinnerffc}'opyE;#if 0if(DEBUGY)pffouter%:dotlab}'el!();#endifreal,tB!;if(doffinner&)pffinner)H=8t;(++4G$iffmaxN;(t.c=pffouter#ձ:shift}(leftffshift%V);(if3(doffmiddle,L?)pffmiddle.=>tB!;(if3(doffinner&)pffinner)H=8tiffminWd?;2t8c=pffouterffc}'opy:my:shift}(leftffshift%V);2if=(doffmiddle,L?)pffmiddleffc}'opyE=UtYf;2if=(doffinner&)pffinnerffc}'opy?R=O~tS;(g(for9芫(i9 =iffminP;i 9 <iffmax*֫;++Gi)2=[LDFT2002.09.22.]T7ThisUUloGopdrawsand/or llsthehorizontalrows.o=(f2if=( llffc}'olorffouterBSColors)::0.5b}'ackgroundffcolorzr)<pffouterffc}'opysg:dr}'aw(۫(dr}'awffcolorffouterI8;"" +6[1 .salready\hasonehexagonmorethanthe rstrowdrawn,]sowhenr}'owffshift-p[1\,the2e ectl6isthateachsinglerowisonehexagonlongerthanthelast.iThismakestheedgesrecede2diagonally*.o=if)(kLn6=0 ^8r}'owffshift,A6=0^8k %ERr}'owffshift=M0)f(4iffminMd>;(++4G$iffmaxN;(t.c=pffouter#ձ:shift}(leftffshift%V);(if3(doffmiddle,L?)pffmiddle.=>tB!;(if3(doffinner&)pffinner)H=8tiffminWd?;2t8c=pffouterffc}'opy:my:shift}(leftffshift%V);2if=(doffmiddle,L?)pffmiddleffc}'opyE=UtYf;2if=(doffinner&)pffinnerffc}'opy?R=O~tS;(g(for9芫(i9 =iffminP;i 9 <iffmax*֫;++Gi)2=[LDFT2002.09.22.]T7ThisUUloGopdrawsand/or llsthehorizontalrows.o=(f2if=( llffc}'olorffouterBSColors)::0.5b}'ackgroundffcolorzr)<pffouterffc}'opysg:dr}'aw(۫(dr}'awffcolorffouterI8;"" ;p}'enffouter,_k;pictur}'e ~);2elseH.9ifS1(dr}'awffcolorffouterK7 llffc}'olorffouterBS)pffouterffc}'opyG%hexagonffctrrzy;2if=(hexagonffctr6lmaxffhexagons@)f<c}'errR_ɷ"ERROR! In hex_pattelrn_1():\n"ZH"Too many sets of helxagons: "KPhexagonffctrt". Returning."Tkendl ush;<return_hexagonffctr;2g2t8c=pffouterffc}'opy:my:shift}(rightffshift,);2if=(doffmiddle,L?)pffmiddleffc}'opyE=UtYf;2if=(doffinner&)pffinnerffc}'opy?R=O~tS;(ggpffouterAط=QTmoveffb}'ack|;if)(doffmiddle,L?)pffmiddle.=>moveffb}'ackl;if)(doffinner&)pffinner)H=8moveffb}'ackf٫;++*G#iffminC+[;gif(DEBUGY)c}'out O"Exiting hex_patternk_1().\n"D ush;return7hexagonffctrl; -g SeeXalsosections1282and1285.ThisXco 8BeginTLogJʄ`> +g SeeXalsosections1287and1290.ThisXco`hDeclareUUPatternfunctions@1278i+ -unsigned:7in9tKepicycloidffp}'atternff1=(real.diameterffinnerYL;real4ªdiameterffouterffstartv~;realmOdiameterffouterffendm|;realmOstep*;unsigned1/in9tCo sets`R;v9ector!ThconstColor=BiUUc}'olors s=Colors$::+.4defaultffc}'olorffvectorHn;in9tOar}'cffdivisionsNV׫=72 );{ܠn썷x12823DLDFPRÎGeEPICYCLOIDXPJATTERN1379n@P1282.hDe neUUPatternfunctions@1279i+ +[LDFT2003.08.27.]Y;RemovedUUthedeclarationconst!ColorA$F$currffc}'olorr ,sincecurrffc}'olor3j̫wasneverused.Ȅ`GhDeclareUUPatternfunctions@1283i+ +unsigned:7in9tKepicycloidffp}'atternff1=(real.diameterffinnerYL;real4ªdiameterffouterffstartv~;realmOdiameterffouterffendm|;realmOstep*;unsigned1/in9tCo sets`R;v9ector!ThconstColor=BiUUc}'olors s=Colors$::+.4defaultffc}'olorffvectorHn;in9tOar}'cffdivisionsNV׫=72 );ՠn썷x12873DLDFPRÎGeEPICYCLOIDXPJATTERN1383n@P1287.hDe neUUPatternfunctions@1284i+ unsigned;Xin9tNepicycloidffp}'atternff1%(real"diameterffinnerZmֱ;real~diameterffouterffstarts2;real2diameterffouterffend>;real#step+ױ;unsigned2Zin9tDwGo setsa$c;v9ector!ThconstColor>/C0i͢c}'olorsN;in9t2ar}'cffdivisionsj@%) -fbQool-hDEBUGK.٫=falsev\;=true=if(diameterffinnerE`̱<diameterffouterffstart\z)fc}'err7|UƬ"WARNING! diameter_iopnner < diameter_oute4r!\n"S92"This is likely to lead to strange results.\n"&"Continuing.\n\n"_Te ush;gusing2SnamespacekColorsܫ;unsignedD7in9tUspir}'alffcounter=0;real*0r}'adiusffoutera;real*0phi9ԫ;P9ath/spir}'alI;spir}'al/+=BKU".."Wѱ;real*0r}'adiusffinnerdR=diameterffinnerE`̱=2;Circle5innerffcir}'cleh (origin!;diameterffinnerDD\);innerffcir}'cleG2:dr}'aw(۫();if(DEBUGY)innerffcir}'cle82:getffc}'enter,=G():dotlab}'el!("inner_circle"J>;"rt"1);Circle5outerffcir}'clehhG;P9oint2outerffcir}'cleffcenter̫;P9oint2normalSFW;P9oint2p0?_;real*0thetaD8=360:09=ar}'cffdivisions8@ ;Circle5tempffcir}'clegv;P9oint2p2?_;P9oint2tempffcir}'cleffcenter;P9oint2tempffcir}'cleffnormal(;if(o setst4<1)fc}'err6;g"WARNING! offsets hangVs invalid value: "go sets'|@gendl2"offsets must be >= 1. Setting to 1.\n\n" ush;o sets=t7=1;greal*0diameterffouterl ;v9ector3Jhconst*Color=ϕBϖi::Biter}'ator)7iter=+M=c}'olorsH:b}'egin();for'(diameterffouterFA=fdiameterffouterffstart^y:;2-diameterffouterMnfdiameterffouterffendYԟ;2diameterffouterv=3Lstepw)fif)(iter6=c}'olorsH:endಫ()818)++G iter";r}'adiusffouterW=diameterffouterD=2;outerffcir}'cleffcentero$0:set x(0;0;r}'adiusffinner:֫+8r}'adiusffouter8U);normalAӫ=outerffcir}'cleffcenterSE;normal>V:shift}(0;1);p0*ñ:set x(0;0;r}'adiusffinner:֫+8diameterffouterDO);outerffcir}'clePDZ:set x(outerffcir}'cleffcenterQ$-;diameterffouterC);if)(c}'olors:size\()0)c}'olors:pushffb}'ack+XR(defaultffc}'olor7{۫);for/艫(unsigned07in9tAiH=0;i 9 <o setst4;++Gi)f(if3(i9 6=0)outerffcir}'cleffcenterXE=hy|normalL=%p0[=outerffcir}'cleAV:r}'otateo>(0;360:0qɱ=o sets);(else?f| ?n썫380EPICYCLOIDXPJATTERN1e3DLDFPRÎGx1282n@P2if=(DEBUGY)f <p0HƱ:dotlab}'el!("p0"\);<outerffcir}'clenʱ:dr}'aw(۫(bluebw);2g(g(if3(DEBUGY)f2p0>ű:dotlab}'el!("p0"\;"bot"q);2outerffcir}'cledɱ:dr}'aw(۫(gr}'een ;"evenly",0);(g(spir}'alC+=VKWp0bb;(phi9=theta8r}'adiusffinner9.=r}'adiusffouter6Uu;(tempffcir}'cle\=outerffcir}'cle5vܫ;(tempffcir}'cleffcenterzx=outerffcir}'cleffcenterSE;(tempffcir}'cleffnormal~Х=normal#Ы;(p26ܫ=p0ث;(for9芫(in9tjӫ=1;j wٷar}'cffdivisions;8;++Gj)f2p2@ݷ=Pltempffcir}'cleffnormal<=tempffcir}'cleffcenter N`=ܗtempffcir}'cleJ$:r}'otateo>(0;thetaiR);2p2>ű:r}'otateo>(tempffcir}'cleffcenterO\;tempffcir}'cleffnormalU1;phi|L);2spir}'alM+=`KXp2lb;2if=(DEBUGY)f<p2HƱ:dotlab}'el!("p2"\;"lft"q);<tempffcir}'clemG:dr}'aw(۫(black Ա;"evenly",0);2g(g(spir}'alA.:dr}'aw(۫( +fbQool-hDEBUGK.٫=falsev\;=true=if(diameterffinnerE`̱<diameterffouterffstart\z)fc}'err7|UƬ"WARNING! diameter_iopnner < diameter_oute4r!\n"S92"This is likely to lead to strange results.\n"&"Continuing.\n\n"_Te ush;gusing2SnamespacekColorsܫ;unsignedD7in9tUspir}'alffcounter=0;real*0r}'adiusffoutera;real*0phi9ԫ;P9ath/spir}'alI;spir}'al/+=BKU".."Wѱ;real*0r}'adiusffinnerdR=diameterffinnerE`̱=2;Circle5innerffcir}'cleh (origin!;diameterffinnerDD\);innerffcir}'cleG2:dr}'aw(۫();if(DEBUGY)innerffcir}'cle82:getffc}'enter,=G():dotlab}'el!("inner_circle"J>;"rt"1);Circle5outerffcir}'clehhG;P9oint2outerffcir}'cleffcenter̫;P9oint2normalSFW;P9oint2p0?_;real*0thetaD8=360:09=ar}'cffdivisions8@ ;Circle5tempffcir}'clegv;P9oint2p2?_;P9oint2tempffcir}'cleffcenter;P9oint2tempffcir}'cleffnormal(;if(o setst4<1)fc}'err6;g"WARNING! offsets hangVs invalid value: "go sets'|@gendl2"offsets must be >= 1. Setting to 1.\n\n" ush;o sets=t7=1;greal*0diameterffouterl ;v9ector3Jhconst*Color=ϕBϖi::Biter}'ator)7iter=+M=c}'olorsH:b}'egin();for'(diameterffouterFA=fdiameterffouterffstart^y:;2-diameterffouterMnfdiameterffouterffendYԟ;2diameterffouterv=3Lstepw)fif)(iter6=c}'olorsH:endಫ()818)++G iter";r}'adiusffouterW=diameterffouterD=2;outerffcir}'cleffcentero$0:set x(0;0;r}'adiusffinner:֫+8r}'adiusffouter8U);normalAӫ=outerffcir}'cleffcenterSE;normal>V:shift}(0;1);p0*ñ:set x(0;0;r}'adiusffinner:֫+8diameterffouterDO);outerffcir}'clePDZ:set x(outerffcir}'cleffcenterQ$-;diameterffouterC);if)(c}'olors:size\()0)c}'olors:pushffb}'ack+XR(defaultffc}'olor7{۫);for/艫(unsigned07in9tAiH=0;i 9 <o setst4;++Gi)f(if3(i9 6=0)outerffcir}'cleffcenterXE=hy|normalL=%p0[=outerffcir}'cleAV:r}'otateo>(0;360:0qɱ=o sets);(else?f n썫384EPICYCLOIDXPJATTERN1e3DLDFPRÎGx1287n@P2if=(DEBUGY)f <p0HƱ:dotlab}'el!("p0"\);<outerffcir}'clenʱ:dr}'aw(۫(bluebw);2g(g(if3(DEBUGY)f2p0>ű:dotlab}'el!("p0"\;"bot"q);2outerffcir}'cledɱ:dr}'aw(۫(gr}'een ;"evenly",0);(g(spir}'alC+=VKWp0bb;(phi9=theta8r}'adiusffinner9.=r}'adiusffouter6Uu;(tempffcir}'cle\=outerffcir}'cle5vܫ;(tempffcir}'cleffcenterzx=outerffcir}'cleffcenterSE;(tempffcir}'cleffnormal~Х=normal#Ы;(p26ܫ=p0ث;(for9芫(in9tjӫ=1;j wٷar}'cffdivisions;8;++Gj)f2p2@ݷ=Pltempffcir}'cleffnormal<=tempffcir}'cleffcenter N`=ܗtempffcir}'cleJ$:r}'otateo>(0;thetaiR);2p2>ű:r}'otateo>(tempffcir}'cleffcenterO\;tempffcir}'cleffnormalU1;phi|L);2spir}'alM+=`KXp2lb;2if=(DEBUGY)f<p2HƱ:dotlab}'el!("p2"\;"lft"q);<tempffcir}'clemG:dr}'aw(۫(black Ա;"evenly",0);2g(g(spir}'alA.:dr}'aw(۫( iter);(++4G$spir}'alffcounterq;(spir}'alA.:cle}'ar(٫();(spir}'alC+=VKW".."kѳ;ggreturn7spir}'alffcounteru"; -g1283. Epicycloidpattern2.[LDFT2003.02.11.]\)_This~patternshouldbGelikeepicycloidffp}'atternff1\ŵ(),exceptthattheo setsarenotmadebyrotatingtheouterCircle&4«aroundthecenteroftheinnerCircle"K,butUUbyrotatingtheP9oint"DusedfortracingtheepicycloidabGoutthecenteroftheouterCircle!.1284. Epicycloidpattern3.[LDFT2003.02.11.]ZvThisfunctionworkswellforouterCircles*withradiithatUUarenotevendivisorsoftheradiusoftheinnerCircle!.9Ȅ`> 8BeginTLogJʄ`> +g1288. Epicycloidpattern2.[LDFT2003.02.11.]\)_This~patternshouldbGelikeepicycloidffp}'atternff1\ŵ(),exceptthattheo setsarenotmadebyrotatingtheouterCircle&4«aroundthecenteroftheinnerCircle"K,butUUbyrotatingtheP9oint"DusedfortracingtheepicycloidabGoutthecenteroftheouterCircle!.1289. Epicycloidpattern3.[LDFT2003.02.11.]ZvThisfunctionworkswellforouterCircles*withradiithatUUarenotevendivisorsoftheradiusoftheinnerCircle!.9Ȅ`+U 8Log)j`+U [LDFT2003.02.11.]Y;AddedUUthisfunction. -[LDFT2003.08.27.]Y;RemovedUUthedeclarationrealr}'adiusffratioP=r}'adiusffouter9ʱ=r}'adiusffinner6N,sincer}'adiusffratio6 wasUUneverused.Ȅ` 8EndTLogA>`hDeclareUUPatternfunctions@1278i+ -unsigned:Yin9tL!epicycloidffp}'atternff3ɫ(realdiameterffinnerYo;realdiameterffouterZw;v9ector!ThconstMhColor>!C"ic}'olors;H!=Colors$::+.4defaultffc}'olorffvectorHn;unsigned1in9tClimit[ʫ=100;in9tOar}'cffdivisionsNV׫=72 );}n썷x12853DLDFPRÎGeEPICYCLOIDXPJATTERN3381n@P1285.hDe neUUPatternfunctions@1279i+ +[LDFT2003.08.27.]Y;RemovedUUthedeclarationrealr}'adiusffratioP=r}'adiusffouter9ʱ=r}'adiusffinner6N,sincer}'adiusffratio6 wasUUneverused.Ȅ`GhDeclareUUPatternfunctions@1283i+ +unsigned:Yin9tL!epicycloidffp}'atternff3ɫ(realdiameterffinnerYo;realdiameterffouterZw;v9ector!ThconstMhColor>!C"ic}'olors;H!=Colors$::+.4defaultffc}'olorffvectorHn;unsigned1in9tClimit[ʫ=100;in9tOar}'cffdivisionsNV׫=72 );n썷x12903DLDFPRÎGeEPICYCLOIDXPJATTERN3385n@P1290.hDe neUUPatternfunctions@1284i+ unsigned:Yin9tL!epicycloidffp}'atternff3ɫ(realdiameterffinnerYo;realdiameterffouterZw;v9ector!ThconstMhColor>!C"i2c}'olorsL ;unsigned1in9tClimitY,;in9tOar}'cffdivisionsK) fusing2SnamespacekColorsܫ;bQool-hDEBUGK.٫=falsev\;=true=v9ector3Jhconst*Color=ϕBϖi::Biter}'ator)7c}'olorffiterU=c}'olorsH:b}'egin();real*0r}'adiusffoutercϽ=diameterffouterD=2;real*0r}'adiusffinnerdR=diameterffinnerE`̱=2;real*0thetaD8=360:09=ar}'cffdivisions8@ ;real*0philimitm)f(c}'out> S"Exceeded limit. itker_ctr == ";iterffctr&*ȷendl"Breaking.\n\n"Tk ush;(breakDh;gelse4.7if?/(iterffctr#c>0 ^8(fmo}'d((iterffctr"xr}'adiusffouter8U);r}'adiusffinner8)0))f(c}'out@N}"Came out even.\n"i,N}"iter_ctr == "T8N}iterffctr+9N}endl<"fmod((iter_ctr * radius_outer), radius_ inner) == "K fmo}'dG((iterffctr!$r}'adiusffouter7j);<r}'adiusffinnerrT)endl"Breaking.\n\n"Tk ush;(breakDh;g~/Zn썫382EPICYCLOIDXPJATTERN3e3DLDFPRÎGx1285n@Pouterffcir}'cleffcenterqH=ynormalO=%p0^=ґouterffcir}'cleAY:r}'otateo>(0;thetaiR); p0*ñ:r}'otateo>(outerffcir}'cleffcenterQ$-;normal"`;phi|L);thetafftotalN +=a9`thetaw +c}'olorffiter4^++?~);(spir}'alA.:cle}'ar(٫();(spir}'alC+=VKW".."kѳ;(if3(c}'olorffiter,Utc}'olorsH:endಫ())c}'olorffiter1Ut=c}'olors:b}'egin();gif)(iterffctr#c>limitm)f(c}'out> S"Exceeded limit. itker_ctr == ";iterffctr&*ȷendl"Breaking.\n\n"Tk ush;(breakDh;gelse4.7if?/(iterffctr#c>0 ^8(fmo}'d((iterffctr"xr}'adiusffouter8U);r}'adiusffinner8)0))f(c}'out@N}"Came out even.\n"i,N}"iter_ctr == "T8N}iterffctr+9N}endl<"fmod((iter_ctr * radius_outer), radius_ inner) == "K fmo}'dG((iterffctr!$r}'adiusffouter7j);<r}'adiusffinnerrT)endl"Breaking.\n\n"Tk ush;(breakDh;g+n썫386EPICYCLOIDXPJATTERN3e3DLDFPRÎGx1290n@Pouterffcir}'cleffcenterqH=ynormalO=%p0^=ґouterffcir}'cleAY:r}'otateo>(0;thetaiR); p0*ñ:r}'otateo>(outerffcir}'cleffcenterQ$-;normal"`;phi|L);thetafftotalN +=a9`thetaw ;if)(DEBUGY)f(outerffcir}'cleZȱ:dr}'aw(۫(black Ա;"evenly",0);(p04ı:dotlab}'el!("p0"\);gspir}'al9+=LKVp0Xb;++*G#spir}'alffcounterg;greturn7spir}'alffcounteru"; -g1286. PuttingTpatternstogether.1287. ThisUUiswhat'scompiled. +g1291. PuttingTpatternstogether.1292. ThisUUiswhat'scompiled. hIncludeUU les@11i hV*ersionUUcontrolidenti er@10i -hDeclareUUPatternfunctions@1278i -hDe neUUPatternfunctions@1279iB-n썷x12883DLDFPRÎGϴPUTTINGXPJATTERNSTOGETHER383n@P1288. ThisUUiswhat'swrittentopatterns.h.hpatterns.h@01288i -hDeclareUUPatternfunctions@1278i1289. Solid(solids.web).[LDFT2002.11.12.]m-TOUUDO:Addgetffc}'enter/().qMustsetc}'enter"5intheP9olyhedra6ֱbGeforeUUthisisuseful.U9Ȅ`> 8BeginTLogJʄ`> +hDeclareUUPatternfunctions@1283i +hDe neUUPatternfunctions@1284i>Рn썷x12933DLDFPRÎGϴPUTTINGXPJATTERNSTOGETHER387n@P1293. ThisUUiswhat'swrittentopatterns.h.hpatterns.h@01293i +hDeclareUUPatternfunctions@1283i1294. Solid(solids.web).[LDFT2002.11.12.]m-TOUUDO:Addgetffc}'enter/().qMustsetc}'enter"5intheP9olyhedra6ֱbGeforeUUthisisuseful.9Ȅ`+U 8Log)j`+U [LDFT2002.09.29.]Y;CreatedUUthis le. -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i+1290. IncludeT les.hIncludeUU les@11i+#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"#include'~"ellipses.h"#include'~"circles.h"1291. SolidTclassde nition.9Ȅ`> 8BeginTLogJʄ`> +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`GhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: solids.web,v 1k.2 2003/12/10 16:46:Ơ34 lfinsto1 Exp $"3ҫ;1295. IncludeT les.hIncludeUU les@11i+#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"#include'~"ellipses.h"#include'~"circles.h"1296. SolidTclassde nition.9Ȅ`+U 8Log)j`+U [LDFT2002.09.30.]Y2~AddedthedatamembGerscir}'cles ,)ellipses$ ,)p}'olygons)ju,)andp}'athsE.Ontheonehand,thisiss_wasteful,sincemostifnotallSolids&ѫwillcontainonlyonekindofP9athë;eontheotherhand,it'sanadvqantage~ltobGeabletohavethedrawingand llingfunctionsbGemembGersofSolidC,sincetheydon'thavetoknowwhatkindofaP9ath jaP9athis,inordertodrawor llit.8 Thisway*,Idon'thavetode nethedrawingUUand llingfunctionsforSpher}'e!X|,Ellipsoid*ֶ,P9olyhedron=c",etc. [LDFT2002.10.01.]Y;AddedUUthedatamembGerpr}'ojectiveffextremesWY. [LDFT2003.04.11.]ZPAdded*thestatic%-constDOdatamembGersPATH#,CIRCLE$u,ELLIPSE*5r,REG_POLYGON?5f,andRECTANGLE/M.qCurrently*,UUtheironlyuseisasargumentstogetffshap}'effptr<()andgetffshap}'effcenterJ}(). -[LDFT2003.04.11.]Y(RenamedcBp}'olygons,ЫtocBr}'egffpolygons9V.ThiscBisincaseIc?decidetomakeitpGossibletohaveirregularUUpGolygons.qInthiscase,Imayde neaclass5P9olygonJandderivedRegus4wP9olygonH)^fromit.Ȅ` 8EndTLogA>`hDe neUUclass5Solid;1291i +[LDFT2003.04.11.]Y(RenamedcBp}'olygons,ЫtocBr}'egffpolygons9V.ThiscBisincaseIc?decidetomakeitpGossibletohaveirregularUUpGolygons.qInthiscase,Imayde neaclass5P9olygonJandderivedRegus4wP9olygonH)^fromit.Ȅ`GC͠n썫388SOLIDXCLASSDEFINITION;X3DLDFPRÎGx1296n@PhDe neUUclass5Solid;1296i class$RSolidA~:qpublic'ShapQeIFSf -protected:o:bQoolfonfffr}'eeffstoreVFX;P9oint2c}'enterN*;G*n썫384SOLIDXCLASSDEFINITION;X3DLDFPRÎGx1291n@PbQool-hdoffoutputX;=LDFUU2002.10.01.qAdded.o= v9ector3JhCircle!&iUUcir}'clesṫ;v9ector3JhEllipse%>.*>/iUUellipses#ƫ;v9ector3JhP9ath湷 iUUp}'aths;v9ector3JhRectangle5:iUUr}'ectangles.;v9ector3JhRegus4wP9olygonD I +protected:o:bQoolfonfffr}'eeffstoreVFX;P9oint2c}'enterN*;bQool-hdoffoutputX;=LDFUU2002.10.01.qAdded.o=v9ector3JhCircle!&iUUcir}'clesṫ;v9ector3JhEllipse%>.*>/iUUellipses#ƫ;v9ector3JhP9ath湷 iUUp}'aths;v9ector3JhRectangle5:iUUr}'ectangles.;v9ector3JhRegus4wP9olygonD I iUUr}'egffpolygons9H;v\ralarra9y=ZChreal]ٷiUUpr}'ojectiveffextremesWY; -public)=֫:static$HconstBs{unsignedrshortu,CIRCLE{;static3HconstQs}unsignedshortu.ELLIPSEĻ;static3HconstQs}unsignedshortu.PATH;static3HconstQs}unsignedshortu.RECTANGLE;{;static3HconstQs}unsignedshortu.REG_POLYGONٻu;hDeclareUUSolid (functions@1294i -g; ThisXco 8BeginTLogJʄ`> -[LDFT2003.04.11.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`hDe neUUstatic".const@Solid]dataUUmembGers@1292i +public)=֫:static$HconstBs{unsignedrshortu,CIRCLE{;static3HconstQs}unsignedshortu.ELLIPSEĻ;static3HconstQs}unsignedshortu.PATH;static3HconstQs}unsignedshortu.RECTANGLE;{;static3HconstQs}unsignedshortu.REG_POLYGONٻu;hDeclareUUSolid (functions@1299i +g; ThisXco c=4; ThisXco c=4; ThisXco.*>/i::Bc}'onstffiteratorCiterW=sw:ellipses q:b}'egin();iter6=s:ellipses:endಫ();++Giter")fellipses>t:pushffb}'ack+XR(Ellipse"ݫ::)wcr}'eateffnewffellipsewxv());#(ellipses q:b}'ackë())= iter;gfor$O(v9ectorHhRegus4wP9olygonCзHi::Bc}'onstffiteratorCiterW=sw:r}'egffpolygons5P:b}'egin();iterڷ6=s:r}'egffpolygons:endಫ();2++>G%iterO#)fr}'egffpolygonsSS:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8());#(r}'egffpolygons5P:b}'ackë())= iter;gfor&?(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW2=X9s9:r}'ectangles+E:b}'egin();WiterzH6=X9s:r}'ectangles:endಫ();2++>G%iterO#)fr}'ectanglesIH:pushffb}'ack+XR(Rectangle3?::9cr}'eateffnewffr}'ectangle());#(r}'ectangles+E:b}'ackë())= iter;g -g1298. Pseudo-constructorfordynamicalloQcation.[LDFT2003.05.06.]\TODO:AddanoptionalSolid,%(argument,UUandaversionwitharequiredconst!Solid>S#&Ioargument.hDeclareUUSolid (functions@1294i+ -static)HSolidFKcr}'eateffnewffsolid=«();hn썷x12993DLDFPRÎGuPSEUDO-CONSTRUCTORXFORDYNAMICALLOCAJTION387n@P1299.hDe neUUSolid (functions@1295i+ +g1303. Pseudo-constructorfordynamicalloQcation.[LDFT2003.05.06.]\TODO:AddanoptionalSolid,%(argument,UUandaversionwitharequiredconst!Solid>S#&Ioargument.hDeclareUUSolid (functions@1299i+ +static)HSolidFKcr}'eateffnewffsolid=«();fn썷x13043DLDFPRÎGuPSEUDO-CONSTRUCTORXFORDYNAMICALLOCAJTION391n@P1304.hDe neUUSolid (functions@1300i+ Solid&-+.SolidFQ ::LGcr}'eateffnewffsolid() fSolid0.5/s=JG=newϜ(Solid}׫);s~onfffr}'eeffstoreW =true;s~doffoutputJmN=true;return7漱s<; -g1300. Destructor.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.08.27.]Y(Addeduavirtual)$,destructorwithanemptyde nition,}bGecauseGCCuwiththe\-Wall"optionUUissuedthefollowingwarning:q\`classSolid'hasvirtualfunctionsbutnon-virtualdestructor".Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual/Է7TSolidPɫ();1301.hDe neUUSolid (functions@1295i+ +g1305. Destructor.9Ȅ`+U 8Log)j`+U +[LDFT2003.08.27.]Y(Addeduavirtual)$,destructorwithanemptyde nition,}bGecauseGCCuwiththe\-Wall"optionUUissuedthefollowingwarning:q\`classSolid'hasvirtualfunctionsbutnon-virtualdestructor".Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/Է7TSolidPɫ();1306.hDe neUUSolid (functions@1300i+ Solid$}ܫ::+ 28SolidLQ() -fg1302. Assignmen9t.hDeclareUUSolid (functions@1294i+ -virtual/constMvSolidj&rRopQeratoru=(const*Solid:Ϋ&BsGt);wun썫388ASSIGNMENT#C3DLDFPRÎGx1303n@P1303.hDe neUUSolid (functions@1295i+ +fg1307. Assignmen9t.hDeclareUUSolid (functions@1299i+ +virtual/constMvSolidj&rRopQeratoru=(const*Solid:Ϋ&BsGt);uwn썫392ASSIGNMENT#C3DLDFPRÎGx1308n@P1308.hDe neUUSolid (functions@1300i+ const(*SolidDϫ&LSolidgBȫ::mopQeratorg=.(const*Solid:Ϋ&BsGt) fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Solid::opekrator=().\n"M ;if(thisη& 6s>6)=MakeUUsureit'snotself-assignment.o=returnA潷FthisWt;c}'enter2Х=sw:c}'enter ;=4LDFS2002.10.06.q/AddedSthisline,SbGecausec}'enter"isnowamembGerofSolidc.(==X[LDFT2002.10.02.]TqFirst,callthedestructoronalloftheelementsofp}'aths>,cir}'cles P~,(ellipsesHu,W&r}'egffpolygons9Jv,W&andVr}'ectangles.,bGecauseVthey'vebeenallocateddynamically*.v"Thenclearout(theUUvectors.o=if(p}'aths:size\()>0)ffor/艫(v9ectorHhP9ath湷 i::Biter}'ator)7iter=+M=p}'athsWű:b}'egin();iter6=p}'aths:endಫ();++Giter")( @@ -4776,107 +4842,107 @@ iter):cle}'ar(٫();cir}'cles:g:cle}'ar(٫();gif(ellipses q:size\()>0)ffor/艫(v9ectorHhEllipse%>.*>/i::Biter}'ator)7iter=+M=ellipses#I:b}'egin();iter6=ellipses:endಫ();++Giter")(( iter):cle}'ar(٫();ellipses>t:cle}'ar(٫();gif(r}'egffpolygons5P:size\()>0)ffor0- (v9ectorHhRegus4wP9olygonEJi::Biter}'ator)7iter=~=9Ir}'egffpolygons9,:b}'egin();DiterHȷ6=9Ir}'egffpolygons:endಫ();<++HG&iterY$)( iter):cle}'ar(٫();r}'egffpolygonsSS:cle}'ar(٫();gif(r}'ectangles+E:size\()>0)ffor/艫(v9ectorHhRectangle5:i::Biter}'ator)7iter=+M=r}'ectangles.g]:b}'egin();iter6=r}'ectangles:endಫ();++Giter")(( -iter):cle}'ar(٫();r}'ectanglesIH:cle}'ar(٫();g=۫[LDFT2002.10.02.]T7Now,s*createm3newP9ath,Circle!V,Ellipse%\,Regus4wP9olygonDޫ,andRectangle2pGointers,YallocateXmemoryforthem,assignvqaluestotheob8jectstheypGointtofroms,andpush2themUUontotheappropriatevectors.o=for%舫(v9ectorHhP9ath湷 i::Bc}'onstffiteratorCiterW=sw:p}'aths:b}'egin();iter6=s:p}'aths:endಫ();++Giter")fp}'aths5:pushffb}'ack+XR(P9athh:: cr}'eateffnewffp}'athe3E());#(p}'aths:b}'ackë())= iter;gfor%舫(v9ectorHhCircle!&i::Bc}'onstffiteratorCiterW=sw:cir}'clesd:b}'egin();iter6=s:cir}'cles:endಫ();++Giter")fcir}'cles:g:pushffb}'ack+XR(Circlec0::%ncr}'eateffnewffcir}'cleo());#(cir}'clesd:b}'ackë())= iter;gfor%舫(v9ectorHhEllipse%>.*>/i::Bc}'onstffiteratorCiterW=sw:ellipses q:b}'egin();iter6=s:ellipses:endಫ();++Giter")fellipses>t:pushffb}'ack+XR(Ellipse"ݫ::)wcr}'eateffnewffellipsewxv());#(ellipses q:b}'ackë())= iter;gfor$O(v9ectorHhRegus4wP9olygonCзHi::Bc}'onstffiteratorCiterW=sw:r}'egffpolygons5P:b}'egin();iterڷ6=s:r}'egffpolygons:endಫ();2++>G%iterO#)f}cn썷x13033DLDFPRÎG#CASSIGNMENT389n@Pr}'egffpolygonsSS:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8()); #(r}'egffpolygons5P:b}'ackë())= iter;gfor&?(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW2=X9s9:r}'ectangles+E:b}'egin();WiterzH6=X9s:r}'ectangles:endಫ();2++>G%iterO#)fr}'ectanglesIH:pushffb}'ack+XR(Rectangle3?::9cr}'eateffnewffr}'ectangle());#(r}'ectangles+E:b}'ackë())= iter;gpr}'ojectiveffextremesjk=0;=F*orUUoutput.o=doffoutputAM=true;if(DEBUGY)fc}'out4 R"paths.size() == "dbp}'athsWű:size\()endl ush;c}'out4 R"circles.size() == "o\cir}'clesS|:size\()endl ush;c}'out4 R"ellipses.size() == k"tTYellipses#I:size\()endl ush;c}'out4 R"reg_polygons.size()k == "TMr}'egffpolygons8h:size\()endl ush;c}'out4 R"rectangles.size() =k= "~Sr}'ectangles.g]:size\()endl ush;gif(DEBUGY)c}'out O"Exiting Solid::operkator=().\n" #;return7漷 8BeginTLogJʄ`> +iter):cle}'ar(٫();r}'ectanglesIH:cle}'ar(٫();g=۫[LDFT2002.10.02.]T7Now,s*createm3newP9ath,Circle!V,Ellipse%\,Regus4wP9olygonDޫ,andRectangle2pGointers,YallocateXmemoryforthem,assignvqaluestotheob8jectstheypGointtofroms,andpush2themUUontotheappropriatevectors.o=for%舫(v9ectorHhP9ath湷 i::Bc}'onstffiteratorCiterW=sw:p}'aths:b}'egin();iter6=s:p}'aths:endಫ();++Giter")fp}'aths5:pushffb}'ack+XR(P9athh:: cr}'eateffnewffp}'athe3E());#(p}'aths:b}'ackë())= iter;gfor%舫(v9ectorHhCircle!&i::Bc}'onstffiteratorCiterW=sw:cir}'clesd:b}'egin();iter6=s:cir}'cles:endಫ();++Giter")fcir}'cles:g:pushffb}'ack+XR(Circlec0::%ncr}'eateffnewffcir}'cleo());#(cir}'clesd:b}'ackë())= iter;gfor%舫(v9ectorHhEllipse%>.*>/i::Bc}'onstffiteratorCiterW=sw:ellipses q:b}'egin();iter6=s:ellipses:endಫ();++Giter")fellipses>t:pushffb}'ack+XR(Ellipse"ݫ::)wcr}'eateffnewffellipsewxv());#(ellipses q:b}'ackë())= iter;gfor$O(v9ectorHhRegus4wP9olygonCзHi::Bc}'onstffiteratorCiterW=sw:r}'egffpolygons5P:b}'egin();iterڷ6=s:r}'egffpolygons:endಫ();2++>G%iterO#)f{:n썷x13083DLDFPRÎG#CASSIGNMENT393n@Pr}'egffpolygonsSS:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8()); #(r}'egffpolygons5P:b}'ackë())= iter;gfor&?(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW2=X9s9:r}'ectangles+E:b}'egin();WiterzH6=X9s:r}'ectangles:endಫ();2++>G%iterO#)fr}'ectanglesIH:pushffb}'ack+XR(Rectangle3?::9cr}'eateffnewffr}'ectangle());#(r}'ectangles+E:b}'ackë())= iter;gpr}'ojectiveffextremesjk=0;=F*orUUoutput.o=doffoutputAM=true;if(DEBUGY)fc}'out4 R"paths.size() == "dbp}'athsWű:size\()endl ush;c}'out4 R"circles.size() == "o\cir}'clesS|:size\()endl ush;c}'out4 R"ellipses.size() == k"tTYellipses#I:size\()endl ush;c}'out4 R"reg_polygons.size()k == "TMr}'egffpolygons8h:size\()endl ush;c}'out4 R"rectangles.size() =k= "~Sr}'ectangles.g]:size\()endl ush;gif(DEBUGY)c}'out O"Exiting Solid::operkator=().\n" #;return7漷`hDeclareUUSolid (functions@1294i+ -virtual/ShapQeQ6V7getffc}'opy{()UUconst*;Ϡn썫390COPYING43DLDFPRÎGx1305n@P1305.hDe neUUSolid (functions@1295i+ +yfromShapQe$,~toSolidGw$Gx.LFInoticedthisbugwhenItriedtocopyaUUPicture,FcontainingUUaCubQoid(,andthecopycontainedasingleemptyShapQe%- onshap}'es Cޫ.Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/ShapQeQ6V7getffc}'opy{()UUconst*;n썫394COPYING43DLDFPRÎGx1310n@P1310.hDe neUUSolid (functions@1300i+ ShapQe,Ac1AdSolidK?::getffc}'opy%ø()UUconst fSolid0.5/s=JG=cr}'eateffnewffsolidIӫ();s w=thisϫ;return7dynamicus4wcast{WhShapQe"Ab'Aci(s); -g1306. SetTonfreestore.hDeclareUUSolid (functions@1294i+ +g1311. SetTonfreestore.hDeclareUUSolid (functions@1299i+ inline)IvirtualObQoolhsetffonfffr}'eeffstoreY(bQoolfb (=true) fonfffr}'eeffstoreNl =b«;return7漱b<1f; -g1307. ReturningTelemen9tsandinformation.[LDFT2003.04.11.]Z6TheUUfunctionsgetffshap}'effptr<(),getffcir}'cleffptr9??(),ZgetffellipseffptrAܦ(),Zgetffp}'athffptr8(),Zgetffr}'ectangleffptrLz(),Zandcgetffr}'egffpolygonffptrW ()callreturnconstpGointersϣtoShapQe",6Circle"Qb,6Ellipse%,6etc.Therefore,theyϣmustbGeinvokedinsuchaway*,6thattheconst뜫quali erOisnotdiscarded.\F*orexample,"followingDoQdecahedronN,dT (origin!;5);,twoOwaysofinvokinggetffr}'egffpolygonffptrR+()UUare:qconst"iRegus4wP9olygongprlpsptr}tR=d:getffr}'egffpolygonffptr(5);andRegus4wP9olygonD AO"=d :getffr}'egffpolygonffptrR+(5);.c9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.05.09.]Y;ChangedUUthenamesofgetffshap}'e,O(),getffcir}'cle+(),getffellipse/(),getffp}'ath&@(),getffr}'ectangle7{(),UUandgetffr}'egffpolygonEW()togetffshap}'effptr<(),getffcir}'cleffptr<(),getffellipseffptr@(),getffp}'athffptr7ݫ(),getffr}'ectangleffptrHS (),Fandgetffr}'egffpolygonffptrW\A(). Thenameswithout\ffptrګ"wereconfusing,bGecausetheydidn'tUUmakeclearthatthefunctionsreturnedpGointers.Ȅ` 8EndTLogA>`1308. GetTcen9ter.9Ȅ`> 8BeginTLogJʄ`> +g1312. ReturningTelemen9tsandinformation.[LDFT2003.04.11.]Z6TheUUfunctionsgetffshap}'effptr<(),getffcir}'cleffptr9??(),ZgetffellipseffptrAܦ(),Zgetffp}'athffptr8(),Zgetffr}'ectangleffptrLz(),Zandcgetffr}'egffpolygonffptrW ()callreturnconstpGointersϣtoShapQe",6Circle"Qb,6Ellipse%,6etc.Therefore,theyϣmustbGeinvokedinsuchaway*,6thattheconst뜫quali erOisnotdiscarded.\F*orexample,"followingDoQdecahedronN,dT (origin!;5);,twoOwaysofinvokinggetffr}'egffpolygonffptrR+()UUare:qconst"iRegus4wP9olygongprlpsptr}tR=d:getffr}'egffpolygonffptr(5);andRegus4wP9olygonD AO"=d :getffr}'egffpolygonffptrR+(5);.N99Ȅ`+U 8Log)j`+U +[LDFT2003.05.09.]Y;ChangedUUthenamesofgetffshap}'e,O(),getffcir}'cle+(),getffellipse/(),getffp}'ath&@(),getffr}'ectangle7{(),UUandgetffr}'egffpolygonEW()togetffshap}'effptr<(),getffcir}'cleffptr<(),getffellipseffptr@(),getffp}'athffptr7ݫ(),getffr}'ectangleffptrHS (),Fandgetffr}'egffpolygonffptrW\A(). Thenameswithout\ffptrګ"wereconfusing,bGecausetheydidn'tUUmakeclearthatthefunctionsreturnedpGointers.Ȅ`G1313. GetTcen9ter.9Ȅ`+U 8Log)j`+U [LDFT2003.05.06.]Y;AddedUUthisfunction. -[LDFT2003.08.10.]Y;MadeUUthisfunctionconst*.Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual/constMvP9ointl&to1getffc}'enterx()UUconst*;n썷x13093DLDFPRÎG#'GETXCENTER391n@P1309.hDe neUUSolid (functions@1295i+ +[LDFT2003.08.10.]Y;MadeUUthisfunctionconst*.Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/constMvP9ointl&to1getffc}'enterx()UUconst*;n썷x13143DLDFPRÎG#'GETXCENTER395n@P1314.hDe neUUSolid (functions@1300i+ const(*P9ointG@&N^Solidi_9::getffc}'enter-=K()UUconst freturn7c}'enterSG; -g1310. GettingTShapQes.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.04.30.]Y;ChangedUUthefunctionsgetffcir}'cleffptr<(),getffellipseffptr@(),getffp}'athffptr7ݫ(),getffr}'ectangleffptrHS (),T`andT"getffr}'egffpolygonffptrUM().qaTheyT"nolongerusegetffshap}'effptr<().There'snogoGodT"reasonforUUcastingpGointersfromonetypGetoanother.qIratherdoubtthatgetffshap}'effptr<()isneeded,anyway*.Ȅ` 8EndTLogA>`1311. Get%ShapQepoin9ter. [LDFT2003.05.30.][)ThisyHfunctioncopiesoneoftheob8jectsononeofthevectorsSofShapQe(Ƴ2bGelongingtotheSolidk*,SRandreturnsapointertoShapQe(Ƴthatpointstothecopy*.Currently*,InaFtSolid +g1315. GettingTShapQes.9Ȅ`+U 8Log)j`+U +[LDFT2003.04.30.]Y;ChangedUUthefunctionsgetffcir}'cleffptr<(),getffellipseffptr@(),getffp}'athffptr7ݫ(),getffr}'ectangleffptrHS (),T`andT"getffr}'egffpolygonffptrUM().qaTheyT"nolongerusegetffshap}'effptr<().There'snogoGodT"reasonforUUcastingpGointersfromonetypGetoanother.qIratherdoubtthatgetffshap}'effptr<()isneeded,anyway*.Ȅ`G1316. Get%ShapQepoin9ter. [LDFT2003.05.30.][)ThisyHfunctioncopiesoneoftheob8jectsononeofthevectorsSofShapQe(Ƴ2bGelongingtotheSolidk*,SRandreturnsapointertoShapQe(Ƴthatpointstothecopy*.Currently*,InaFtSolid containsFtthevectorscir}'clesث,ellipses#߫,p}'aths,r}'ectangles.鳫,andr}'egffpolygons99ī.lTheargumentshap}'efftype1ثindicates"whichvectorshouldbGeaccessed. Normally*,UFthecorrespondingpublic'staticGconstdatammembGersCIRCLE$s,ELLIPSE),PATH: ,RECTANGLE4y,orREG_POLYGONC!shouldbepassedastheshap}'efftypeargument,UUe.g.,Circle% ַ* cffptrC睫=staticus4wcast7hCircle!&i(getffshap}'effptr9d(Solid}۫::! CIRCLEAo;3)). -[LDFT2003.04.30.]Y;ThisUUfunctionwasmainlyintendedforuseinthefunctionsgetffcir}'cleffptr<(),getffellipseffptr=5L(),etc.,andwasnotintendedforuseinusercoGde.4IWnowdoubtwhetherthisfunctionisneededatUUall,espGeciallysinceitisnolongerusedinthefunctionsmentionedabove.U9Ȅ`> 8BeginTLogJʄ`> +[LDFT2003.04.30.]Y;ThisUUfunctionwasmainlyintendedforuseinthefunctionsgetffcir}'cleffptr<(),getffellipseffptr=5L(),etc.,andwasnotintendedforuseinusercoGde.4IWnowdoubtwhetherthisfunctionisneededatUUall,espGeciallysinceitisnolongerusedinthefunctionsmentionedabove.9Ȅ`+U 8Log)j`+U [LDFT2003.04.11.]Y;AddedUUthisfunction. [LDFT2003.04.30.]XM5NowOusinggetffc}'opy'^()insteadofstaticus4wcast7hconstoShapQe>Ci().3pThewayitwascausedcompilationUUerrorsunderT*ru64(DECALPHA). -[LDFT2003.05.30.]XChanged<returnvqaluetoShapQe%dG-efromconst!MShapQeCuHu.i_Theway<itwasbGeforecaused\MemoryUUfault"errorsatrun-time.Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual/ShapQeQ6V7getffshap}'effptrp(const*unsignedNashortl,Sshap}'efftype;constJunsignedP Xshortmsr)UUconst*;n썫392GETXSHAPEPOINTER3DLDFPRÎGx1312n@P1312.hDe neUUSolid (functions@1295i+ +[LDFT2003.05.30.]XChanged<returnvqaluetoShapQe%dG-efromconst!MShapQeCuHu.i_Theway<itwasbGeforecaused\MemoryUUfault"errorsatrun-time.Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/ShapQeQ6V7getffshap}'effptrp(const*unsignedNashortl,Sshap}'efftype;constJunsignedP Xshortmsr)UUconst*;<n썫396GETXSHAPEPOINTER3DLDFPRÎGx1317n@P1317.hDe neUUSolid (functions@1300i+ ShapQe,Ac1AdSolidK?::getffshap}'effptr:h(const*unsignedNashortl,Sshap}'efftype;constJunsignedP Xshortmsr)UUconst fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)fc}'out4 R"Entering Solid::getk_shape_ptr().\n", ush;gif(shap}'efftype0ڷCIRCLE"n)fif)(sw<cir}'clesS|:size\())f(returnKcir}'cleshs"[s]~getffc}'opy(õ();gelse5f(c}'err=|·"ERROR! In Solid::gekt_shape_ptr():\n"T)"s (" Ts >0") > circles.size() k("yV<cir}'clesXj:size\()")\nReturning a nullk pointer (0).\n\n"͔& ush;(returnKstaticus4wcastd`hShapQe"Ab'Aci(0);ggelse*.6if5.(shap}'efftype0ڷELLIPSE( k)fif)(sw<ellipses#I:size\())f(returnKellipsesli/[s]~getffc}'opy(õ();gelse5f(c}'errA T>"ERROR! In Solid::geoTt_shape_ptr():\n"nuT>"s ("'nշ<sG") > ellipses.size()p ("ellipses'W:size\()<")\nReturning a null pointer (0).\n\n" ush;(returnKstaticus4wcastd`hShapQe"Ab'Aci(0);ggelse*.6if5.(shap}'efftype0ڷPATHMt)fif)(sw<p}'athsWű:size\())f(returnKp}'athscwk[s]~getffc}'opy(õ();gelse5f(c}'err=$z"ERROR! In Solid::gek>t_shape_ptr():\n"Ȅz"s (" Mzs -nz") > paths.size() ("oE <p}'athsS:size\()")\nReturning a nullk pointer (0).\n\n"͔& ush;(returnKstaticus4wcastd`hShapQe"Ab'Aci(0);ggelse*.6if5.(shap}'efftype0ڷRECTANGLE2e)fif)(sw<r}'ectangles.g]:size\())f(returnKr}'ectanglesw[s]~getffc}'opy(õ();gelse5f(c}'errA T>"ERROR! In Solid::geoTt_shape_ptr():\n"nuT>"s ("'nշ<sGG") > rectangles.sizeo() ("r}'ectangles283:size\()<")\nReturning a null pointer (0).\n\n" ush;(returnKstaticus4wcastd`hShapQe"Ab'Aci(0);ggelse*.6if5.(shap}'efftype0ڷREG_POLYGON= _)fif)(sw<r}'egffpolygons8h:size\())fn썷x13123DLDFPRÎGGETXSHAPEPOINTER393n@P(returnKr}'egffpolygons[s]~getffc}'opy(õ(); gelse5f(c}'errA T>"ERROR! In Solid::geoTt_shape_ptr():\n"nuT>"s ("'nշ<sF") > reg_polygons.sioze() ("qr}'egffpolygons< 8:size\()<")\nReturning a null pointer (0).\n\n" ush;(returnKstaticus4wcastd`hShapQe"Ab'Aci(0);ggelse+fc}'err3K"ERROR! In Solid::gelft_shape_ptr():\n"="Invalid value for slfhape_type: "L2shap}'efftypeb߷endl"Returning a null pokinter (0).\n\n"/ ush;returnAstaticus4wcastvd_hShapQe"Ab'Aci(0);g -g1313. GetTCirclepQoin9ter.U9Ȅ`> 8BeginTLogJʄ`> +nz") > paths.size() ("oE <p}'athsS:size\()")\nReturning a nullk pointer (0).\n\n"͔& ush;(returnKstaticus4wcastd`hShapQe"Ab'Aci(0);ggelse*.6if5.(shap}'efftype0ڷRECTANGLE2e)fif)(sw<r}'ectangles.g]:size\())f(returnKr}'ectanglesw[s]~getffc}'opy(õ();gelse5f(c}'errA T>"ERROR! In Solid::geoTt_shape_ptr():\n"nuT>"s ("'nշ<sGG") > rectangles.sizeo() ("r}'ectangles283:size\()<")\nReturning a null pointer (0).\n\n" ush;(returnKstaticus4wcastd`hShapQe"Ab'Aci(0);ggelse*.6if5.(shap}'efftype0ڷREG_POLYGON= _)fif)(sw<r}'egffpolygons8h:size\())fn썷x13173DLDFPRÎGGETXSHAPEPOINTER397n@P(returnKr}'egffpolygons[s]~getffc}'opy(õ(); gelse5f(c}'errA T>"ERROR! In Solid::geoTt_shape_ptr():\n"nuT>"s ("'nշ<sF") > reg_polygons.sioze() ("qr}'egffpolygons< 8:size\()<")\nReturning a null pointer (0).\n\n" ush;(returnKstaticus4wcastd`hShapQe"Ab'Aci(0);ggelse+fc}'err3K"ERROR! In Solid::gelft_shape_ptr():\n"="Invalid value for slfhape_type: "L2shap}'efftypeb߷endl"Returning a null pokinter (0).\n\n"/ ush;returnAstaticus4wcastvd_hShapQe"Ab'Aci(0);g +g1318. GetTCirclepQoin9ter.9Ȅ`+U 8Log)j`+U [LDFT2003.04.11.]Y;AddedUUthisfunction. -[LDFT2003.04.30.]Y;ChangedUUthisfunction,sothatitnolongerusesgetffshap}'effptr<().Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual/constMvCircleoptpgetffcir}'cleffptr7(const*unsignedNashortl,SspS)UUconst*;1314.hDe neUUSolid (functions@1295i+ +[LDFT2003.04.30.]Y;ChangedUUthisfunction,sothatitnolongerusesgetffshap}'effptr<().Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/constMvCircleoptpgetffcir}'cleffptr7(const*unsignedNashortl,SspS)UUconst*;1319.hDe neUUSolid (functions@1300i+ const(*CircleI$N%Solidia::getffcir}'cleffptr:?C(const*unsignedNashortl,SspS)UUconst fif(cir}'clesd:size\()>sw)freturnAcir}'cles^s![s];gelse+freturnAstaticus4wcastvd_hconst*Circle?#D$i(0);g -g1315. GetTEllipsepQoin9ter.U9Ȅ`> 8BeginTLogJʄ`> +g1320. GetTEllipsepQoin9ter.9Ȅ`+U 8Log)j`+U [LDFT2003.04.11.]Y;AddedUUthisfunction. -[LDFT2003.04.30.]Y;ChangedUUthisfunction,sothatitnolongerusesgetffshap}'effptr<().Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual/constMvEllipserwgetffellipseffptr+(const*unsignedNashortl,SspS)UUconst*;jn썫394GETXELLIPSEPOINTER3DLDFPRÎGx1316n@P1316.hDe neUUSolid (functions@1295i+ +[LDFT2003.04.30.]Y;ChangedUUthisfunction,sothatitnolongerusesgetffshap}'effptr<().Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/constMvEllipserwgetffellipseffptr+(const*unsignedNashortl,SspS)UUconst*;ln썫398GETXELLIPSEPOINTER3DLDFPRÎGx1321n@P1321.hDe neUUSolid (functions@1300i+ const(*EllipseMhѷRhSolidl歫::getffellipseffptr>5P(const*unsignedNashortl,SspS)UUconst fif(ellipses q:size\()>sw)freturnAellipsesbi.[s];gelse+freturnAstaticus4wcastvd_hconst*EllipseChзHhi(0);g -g1317. GetTP9athpQointer.U9Ȅ`> 8BeginTLogJʄ`> +g1322. GetTP9athpQointer.9Ȅ`+U 8Log)j`+U [LDFT2003.04.11.]Y;AddedUUthisfunction. -[LDFT2003.04.30.]Y;ChangedUUthisfunction,sothatitnolongerusesgetffshap}'effptr<().Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual/constMvP9athi/n0getffp}'athffptr⸫(const*unsignedNashortl,SspS)UUconst*;1318.hDe neUUSolid (functions@1295i+ +[LDFT2003.04.30.]Y;ChangedUUthisfunction,sothatitnolongerusesgetffshap}'effptr<().Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/constMvP9athi/n0getffp}'athffptr⸫(const*unsignedNashortl,SspS)UUconst*;1323.hDe neUUSolid (functions@1300i+ const(*P9athD\I]Solidc8::getffp}'athffptr5C(const*unsignedNashortl,SspS)UUconst fif(p}'aths:size\()>sw)freturnAp}'athsYwj[s];gelse+freturnAstaticus4wcastvd_hconst*P9ath:[?\i(0);g -g1319. GetTRectanglepQoin9ter.U9Ȅ`> 8BeginTLogJʄ`> +g1324. GetTRectanglepQoin9ter.9Ȅ`+U 8Log)j`+U [LDFT2003.04.11.]Y;AddedUUthisfunction. -[LDFT2003.04.30.]Y;ChangedUUthisfunction,sothatitnolongerusesgetffshap}'effptr<().Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual/constMvRectangleM`Magetffr}'ectangleffptrР(const*unsignedNashortl,SspS)UUconst*;ڠn썷x13203DLDFPRÎGGETXRECT -ANGLEPOINTER395n@P1320.hDe neUUSolid (functions@1295i+ +[LDFT2003.04.30.]Y;ChangedUUthisfunction,sothatitnolongerusesgetffshap}'effptr<().Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/constMvRectangleM`Magetffr}'ectangleffptrР(const*unsignedNashortl,SspS)UUconst*;Ԇn썷x13253DLDFPRÎGGETXRECT +ANGLEPOINTER399n@P1325.hDe neUUSolid (functions@1300i+ const(*Rectangle]bSolid}=i::getffr}'ectangleffptrIS$(const*unsignedNashortl,SspS)UUconst fif(r}'ectangles+E:size\()>sw)freturnAr}'ectanglesm[s];gelse+freturnAstaticus4wcastvd_hconst*RectangleSXi(0);g -g1321. GetTRegffs4#P9olygonpQointer.U9Ȅ`> 8BeginTLogJʄ`> +g1326. GetTRegffs4#P9olygonpQointer.9Ȅ`+U 8Log)j`+U [LDFT2003.04.11.]Y;AddedUUthisfunction. -[LDFT2003.04.30.]Y;ChangedUUthisfunction,sothatitnolongerusesgetffshap}'effptr<().Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual/constMvRegus4wP9olygongetffr}'egffpolygonffptr2(const*unsignedNashortl,SspS)UUconst*;1322.hDe neUUSolid (functions@1295i+ +[LDFT2003.04.30.]Y;ChangedUUthisfunction,sothatitnolongerusesgetffshap}'effptr<().Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/constMvRegus4wP9olygongetffr}'egffpolygonffptr2(const*unsignedNashortl,SspS)UUconst*;1327.hDe neUUSolid (functions@1300i+ const(*Regus4wP9olygonlqSolid|::getffr}'egffpolygonffptrS/(const*unsignedNashortl,SspS)UUconst fif(r}'egffpolygons5P:size\()>sw)freturnAr}'egffpolygonsw [s];gelse+freturnAstaticus4wcastvd_hconst*Regus4wP9olygonbgi(0);g -g1323. Getting ShapQecen9ters.[LDFT2003.04.30.][TOcDO:d.IthinkitmightbGepossibletocodethefunctionsUUinthissectionmoresuccinctly*.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.04.11.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`Xn썫396GETXSHAPECENTERo3DLDFPRÎGx1324n@P1324. Get7ShapQecen9ter.ThisafunctionreturnsthecenteroftheCircle"썫,dEllipse&=,dRectangle7,dor Regus4wP9olygonEnumbGer=s +ԫin=cir}'cles N,xellipses$,xr}'ectangles0S,xor=r}'egffpolygons:1:,respectively*.+If=s +ԫis=largerthanhve}'ctori:UUsizep(),UUanerrormessageisissuedandINVALID_POINTKpisreturned. +g1328. Getting ShapQecen9ters.[LDFT2003.04.30.][TOcDO:d.IthinkitmightbGepossibletocodethefunctionsUUinthissectionmoresuccinctly*.9Ȅ`+U 8Log)j`+U +[LDFT2003.04.11.]Y;AddedUUthissection.Ȅ`Gݮn썫400GETXSHAPECENTERo3DLDFPRÎGx1329n@P1329. Get7ShapQecen9ter.ThisafunctionreturnsthecenteroftheCircle"썫,dEllipse&=,dRectangle7,dor Regus4wP9olygonEnumbGer=s +ԫin=cir}'cles N,xellipses$,xr}'ectangles0S,xor=r}'egffpolygons:1:,respectively*.+If=s +ԫis=largerthanhve}'ctori:UUsizep(),UUanerrormessageisissuedandINVALID_POINTKpisreturned. Oneq)ofthefollowingpublic& 'staticEconstcJdatamembGersofSolid `)can(andprobablyshould)beusedastheUUshap}'efftype4largument:qCIRCLE$x,UUELLIPSE(,UURECTANGLE3,UUandREG_POLYGON=. -!!ZNotethatthisfunctionwillhavetobGechanged,"ifnewvectorsofShapQe&1pGointersareaddedtoclassSolid}׫!9Ȅ`> 8BeginTLogJʄ`> +!!ZNotethatthisfunctionwillhavetobGechanged,"ifnewvectorsofShapQe&1pGointersareaddedtoclassSolid}׫!9Ȅ`+U 8Log)j`+U [LDFT2002.10.16.]Y;AddedUUthisfunction. [LDFT2003.04.09.]Y;MovedUUthisfunctionfromP9olyhedron@wtoSolid,. [LDFT2003.04.11.]X-Changedzthisfunctionfromgetffp}'olygonffcenterRڤ()togetffshap}'effcenterI().(Addedthec9harargumentshap}'efftype5WʫtoindicatewhetheritshouldreturnthecenterofaCircle"$,ܐEllipse%i,ܐRectangle6%,ܐorRegus4wP9olygonA~. -[LDFT2003.04.11.]Y;ChangedUUtheshap}'efftype4largumentfromc9hartoconst!unsignedQshortl,S.Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual/;constMDP9ointlH&tfgetffshap}'effcenter(const5 unsignedNv~shortlKshap}'efftype J;const߱unsignedP!&shortm0sr0)const8P;갠n썷x13253DLDFPRÎGoGETXSHAPECENTER397n@P1325.hDe neUUSolid (functions@1295i+ +[LDFT2003.04.11.]Y;ChangedUUtheshap}'efftype4largumentfromc9hartoconst!unsignedQshortl,S.Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/;constMDP9ointlH&tfgetffshap}'effcenter(const5 unsignedNv~shortlKshap}'efftype J;const߱unsignedP!&shortm0sr0)const8P;氠n썷x13303DLDFPRÎGoGETXSHAPECENTER401n@P1330.hDe neUUSolid (functions@1300i+ const(F(P9ointGQJ&OhSolidiC::getffshap}'effcenterHn,(constF'unsignedNshortl~shap}'efftypeS;constunsignedPCbshortn)srي)2const fif(shap}'efftype0ڷCIRCLE"n)fif)(sw<cir}'clesS|:size\())return(cir}'clesEs[s]~getffc}'enter0=H();else5f(c}'err@ WS"ERROR! In Solid::genSqt_shape_center():\n"-JS"s ("%mSsWZ<") > circles.size() (">ٷ8cir}'cles:size\()8")\nReturning INVALIl8qD_POINT.\n\n"7_< ushQ;(returnKINVALID_POINT;ggelse*.6if5.(shap}'efftype0ڷELLIPSE( k)fif)(sw<ellipses#I:size\())return(ellipsesIi+[s]~getffc}'enter0=H();else5f(c}'err@ WS"ERROR! In Solid::genSqt_shape_center():\n"-JS"s ("%mSsWZ<") > ellipses.size() ("ES*ellipses#:size\()*")\nReturning INVALIkD_POINT.\n\n"Y< ushQ;(returnKINVALID_POINT;ggelse*.6if5.(shap}'efftype0ڷRECTANGLE2e)fif)(sw<r}'ectangles.g]:size\())return(r}'ectanglesT[s]~getffc}'enter0=H();else5f(c}'err@"ERROR! In Solid::gent_shape_center():\n"i"s ("&'<sGG") > rectangles.sizeo() ("r}'ectangles283:size\()<")\nReturning INVALID_POINT.\n\n"# ush;(returnKINVALID_POINT;ggelse*.6if5.(shap}'efftype0ڷREG_POLYGON= _)fif)(sw<r}'egffpolygons8h:size\())return(r}'egffpolygons^ [s]~getffc}'enter0=H();else5f(c}'err@"ERROR! In Solid::gent_shape_center():\n"i"s ("&'<sF") > reg_polygons.sioze() ("qr}'egffpolygons< 8:size\()<")\nReturning INVALID_POINT.\n\n"# ush;(returnKINVALID_POINT;ggelse+fc}'err8(r"ERROR! In Solid::geprt_shape_center():\n"k2"Invalid argument for shape_type: "ثshap}'efftype9ثendl2"Returning INVALID_POINT.\n\n"+ ush;returnAINVALID_POINT;g -gڠn썫398GETXCIRÎCLECENTER3DLDFPRGx1326n@P1326. GetTCirclecen9ter.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.04.11.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual/constMvP9ointl&to1getffcir}'cleffcenter{4(const*unsignedNashortl,SspS)UUconst*;1327.hDe neUUSolid (functions@1295i+ +gﯠn썫402GETXCIRÎCLECENTER3DLDFPRGx1331n@P1331. GetTCirclecen9ter.9Ȅ`+U 8Log)j`+U +[LDFT2003.04.11.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/constMvP9ointl&to1getffcir}'cleffcenter{4(const*unsignedNashortl,SspS)UUconst*;1332.hDe neUUSolid (functions@1300i+ const(*P9ointG@&N^Solidi_9::getffcir}'cleffcenterH (const*unsignedNashortl,SspS)UUconst freturn7getffshap}'effcenterT(CIRCLE V;sZ); -g1328. GetTEllipsecen9ter.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.04.11.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual/constMvP9ointl&to1getffellipseffc}'enterqA(const*unsignedNashortl,SspS)UUconst*;1329.hDe neUUSolid (functions@1295i+ +g1333. GetTEllipsecen9ter.9Ȅ`+U 8Log)j`+U +[LDFT2003.04.11.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/constMvP9ointl&to1getffellipseffc}'enterqA(const*unsignedNashortl,SspS)UUconst*;1334.hDe neUUSolid (functions@1300i+ const(*P9ointG@&N^Solidi_9::getffellipseffc}'enterL(const*unsignedNashortl,SspS)UUconst freturn7getffshap}'effcenterT(ELLIPSE%FS;sZ); -g1330. GetTRectanglecen9ter.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.04.11.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual/constMvP9ointl&to1getffr}'ectangleffcenterʏ(const*unsignedNashortl,SspS)UUconst*;1331.hDe neUUSolid (functions@1295i+ +g1335. GetTRectanglecen9ter.9Ȅ`+U 8Log)j`+U +[LDFT2003.04.11.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/constMvP9ointl&to1getffr}'ectangleffcenterʏ(const*unsignedNashortl,SspS)UUconst*;1336.hDe neUUSolid (functions@1300i+ const(*P9ointG@&N^Solidi_9::getffr}'ectangleffcenterW(const*unsignedNashortl,SspS)UUconst freturn7getffshap}'effcenterT(RECTANGLE/M;sZ); -gn썷x13323DLDFPRÎGGETXREGffs4#POL -YGONCENTER399n@P1332. GetTRegffs4#P9olygoncenter.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.04.11.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual/constMvP9ointl&to1getffr}'egffpolygonffcenter (const*unsignedNashortl,SspS)UUconst*;1333.hDe neUUSolid (functions@1295i+ +gn썷x13373DLDFPRÎGGETXREGffs4#POL +YGONCENTER403n@P1337. GetTRegffs4#P9olygoncenter.9Ȅ`+U 8Log)j`+U +[LDFT2003.04.11.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/constMvP9ointl&to1getffr}'egffpolygonffcenter (const*unsignedNashortl,SspS)UUconst*;1338.hDe neUUSolid (functions@1300i+ const(*P9ointG@&N^Solidi_9::getffr}'egffpolygonffcenterar(const*unsignedNashortl,SspS)UUconst freturn7getffshap}'effcenterT(REG_POLYGON:FG;sZ); -g1334. IsTonfreestore.hDeclareUUSolid (functions@1294i+ -virtual/bQoolI/:isffonfffr}'eeffstore()UUconst*;1335.hDe neUUSolid (functions@1295i+ +g1339. IsTonfreestore.hDeclareUUSolid (functions@1299i+ +virtual/bQoolI/:isffonfffr}'eeffstore()UUconst*;1340.hDe neUUSolid (functions@1300i+ bQool#gSolid>B::isffonfffr}'eeffstoreCz٫()UUconst fbQool-hb4*=true;return7漱b<1f; -g1336. Sho9w.hDeclareUUSolid (functions@1294i+ +g1341. Sho9w.hDeclareUUSolid (functions@1299i+ virtual/[v9oidIshow_(string!ltext6=>N""D;c9har\xc}'oords:R=>N'w';const bQool:doffp}'erspbD=>Ntrue;const bQooldoffapplyGd=true$;F -oQcus" )' *f0'=0;const *unsignedPbshortnWpr}'ojY=Projections=::Di.PERSP_/;const *realfactor;=1)UUconst*; Bn썫400SHOÎWCE3DLDFPRGx1337n@P1337.hDe neUUSolid (functions@1295i+ +oQcus" )' *f0'=0;const *unsignedPbshortnWpr}'ojY=Projections=::Di.PERSP_/;const *realfactor;=1)UUconst*;n썫404SHOÎWCE3DLDFPRGx1342n@P1342.hDe neUUSolid (functions@1300i+ v9oid#hSolid> C::show(string!text3 ;c9harc}'oords7 ;const cbQool:doffp}'ersp`=;const cbQool:doffapply`;F oQcus27f<;constJunsignedP Xshortmpr}'ojʾ;constJreal6xfactorQV)UUconst @@ -4884,10 +4950,10 @@ iter):show(g :str 7();c}'oords4;doffp}'ersp'S;doffapply'};f;pr}'ojk;factor);(g- :str 7("" b);ggelse+c}'outA0"paths is empty.\n"g G;if(cir}'clesd:size\()>0)fc}'out4 R"Showing circles.\n"lMD;i$9=0;for/艫(v9ectorHhCircle!&i::Bc}'onstffiteratorCiterW=cir}'clesS|:b}'egin();iter6=cir}'cles:endಫ();++Giter")f(g/"Circle "5T}i ++GD":" w;(( iter):show(g :str 7();c}'oords4;doffp}'ersp'S;doffapply'};f;pr}'ojk;factor);(g- :str 7("" b);ggelse+c}'outA0"circles is empty.\nk"qA;if(ellipses q:size\()>0)fc}'out4 R"Showing ellipses.\nk"qA;i$9=0;for/艫(v9ectorHhEllipse%>.*>/i::Bc}'onstffiteratorCiterW=ellipses#I:b}'egin();iter6=ellipses:endಫ();++Giter")f(g/"Ellipse ":zi ++GD":" w;(( iter):show(g :str 7();c}'oords4;doffp}'ersp'S;doffapply'};f;pr}'ojk;factor);(g- :str 7("" b);ggelse+c}'outA0"ellipses is empty.\kn"v>;if(r}'egffpolygons5P:size\()>0)fc}'out4 R"Showing reg_polygonks.\n"5;i$9=0;for/M(v9ectorHhRegus4wP9olygonD8I9i::Bc}'onstffiteratorCiterW=r}'egffpolygons8h:b}'egin();diter 6=r}'egffpolygons:endಫ();<++HG&iterY$)f(g/"Polygon ":zi ++GD":" w;(( -iter):show(g :str 7();c}'oords4;doffp}'ersp'S;doffapply'};f;pr}'ojk;factor);(g- :str 7("" b);ggelse+c}'outA0"reg_polygons is empkty.\n"2;n썷x13373DLDFPRÎGCESHOW401n@Pif(r}'ectangles+E:size\()>0)f c}'out4 R"Showing rectangles.k\n"| ;;i$9=0;for0Q(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterWd=vkr}'ectangles/:b}'egin();i/iter6=vkr}'ectangles:endಫ();<++HG&iterY$)f(g/"Rectangle "Eti ++GD":" w;(( +iter):show(g :str 7();c}'oords4;doffp}'ersp'S;doffapply'};f;pr}'ojk;factor);(g- :str 7("" b);ggelse+c}'outA0"reg_polygons is empkty.\n"2;Bn썷x13423DLDFPRÎGCESHOW405n@Pif(r}'ectangles+E:size\()>0)f c}'out4 R"Showing rectangles.k\n"| ;;i$9=0;for0Q(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterWd=vkr}'ectangles/:b}'egin();i/iter6=vkr}'ectangles:endಫ();<++HG&iterY$)f(g/"Rectangle "Eti ++GD":" w;(( iter):show(g :str 7();c}'oords4;doffp}'ersp'S;doffapply'};f;pr}'ojk;factor);(g- :str 7("" b);ggelse+c}'outA0"rectangles is emptyk.\n"M8;c}'out* Qendl ush;return4g; -g1338. Clear.[LDFT2002.10.07.]ZReplaceddummyde nitionwitharealone.ONow,cle}'ar\()iscalledforallUUoftheob8jectsintheSolid,.hDeclareUUSolid (functions@1294i+ -virtual/v9oidHcle}'ar^();1339.hDe neUUSolid (functions@1295i+ +g1343. Clear.[LDFT2002.10.07.]ZReplaceddummyde nitionwitharealone.ONow,cle}'ar\()iscalledforallUUoftheob8jectsintheSolid,.hDeclareUUSolid (functions@1299i+ +virtual/v9oidHcle}'ar^();1344.hDe neUUSolid (functions@1300i+ v9oid"Solid={::cle}'ar(ݫ() fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Solid::clekar().\n"D ush;for%舫(v9ectorHhP9ath湷 i::Biter}'ator)7iter=+M=p}'athsWű:b}'egin();iter6=p}'aths:endಫ();++Giter")( iter):cle}'ar(٫();p}'aths+:cle}'ar(٫();for%(v9ectorHhCircle!&i::Biter}'ator)7iter=+M=cir}'clesS|:b}'egin();aiterw6=cir}'cles:endಫ();}a++Diter")( @@ -4895,12 +4961,12 @@ iter):cle}'ar(٫();ellipses4s:cle}'ar(٫();for&Q˫(v9ectorHhRegus4wP9olygonE=LJ=Mi::Biter}'ator)7iter=ڼ=vr}'egffpolygons9iױ:b}'egin();i@iterŷ6=vr}'egffpolygons:endಫ();2++>G%iterO#)( iter):cle}'ar(٫();r}'egffpolygonsIR:cle}'ar(٫();for%舫(v9ectorHhRectangle5:i::Biter}'ator)7iter=+M=r}'ectangles.g]:b}'egin();iter6=r}'ectangles:endಫ();++Giter")( iter):cle}'ar(٫();r}'ectangles?G:cle}'ar(٫();if(DEBUGY)c}'out O"Exiting Solid::cleakr().\n"G ush;return4g; -g1340. T -ransformations.1341. MultiplyingTb9yaT -ransform.hDeclareUUSolid (functions@1294i+ +g1345. T +ransformations.1346. MultiplyingTb9yaT +ransform.hDeclareUUSolid (functions@1299i+ virtual/T ransformgVopQerator[=z(const*T -ransformUt&]taW);':n썫402MULJTIPLYINGXBYATRANSF9ORM3DLDFPRÎGx1342n@P1342.hDe neUUSolid (functions@1295i+ +ransformUt&]taW);"cn썫406MULJTIPLYINGXBYATRANSF9ORM3DLDFPRÎGx1347n@P1347.hDe neUUSolid (functions@1300i+ T ransformASolid\F::bopQeratork=2(const*T ransformUt&]taW) @@ -4909,10 +4975,10 @@ iter"=2 Ot5;for%舫(v9ectorHhCircle!&i::Biter}'ator)7iter=+M=cir}'clesS|:b}'egin();iter6=cir}'cles:endಫ();++Giter") iter"=2 Ot5;for&Q˫(v9ectorHhRegus4wP9olygonE=LJ=Mi::Biter}'ator)7iter=ڼ=vr}'egffpolygons9iױ:b}'egin();i@iterŷ6=vr}'egffpolygons:endಫ();2++>G%iterO#) iter"=2 Ot5;for%舫(v9ectorHhRectangle5:i::Biter}'ator)7iter=+M=r}'ectangles.g]:b}'egin();iter6=r}'ectangles:endಫ();++Giter")#(iter;=K RtNī;return7漱t;.; -g1343. ApplyingTatransformation.U9Ȅ`> 8BeginTLogJʄ`> +g1348. ApplyingTatransformation.9Ȅ`+U 8Log)j`+U [LDFT2003.01.05.]Z{Addedԕthisfunction.It'snowneededbGecauseI'vemadeapplyfftr}'ansformJt()apurevirtual$2functioninclassdShapQe;q.7`hDeclareUUSolid (functions@1294i+ -virtual/v9oidHapplyfftr}'ansform(v9oid);1344.hDe neUUSolid (functions@1295i+ +ransform7ұt;eD;curr}'entffpictureHB4=Wkt[lݫ".Ȅ`GhDeclareUUSolid (functions@1299i+ +virtual/v9oidHapplyfftr}'ansform(v9oid);1349.hDe neUUSolid (functions@1300i+ v9oid"Solid={::applyfftr}'ansformG(v9oid) fc}'enter0 :applyfftr}'ansformF߫();for%舫(v9ectorHhP9ath湷 i::Biter}'ator)7iter=+M=p}'athsWű:b}'egin();iter6=p}'aths:endಫ();++Giter")( iter):applyfftr}'ansformF߫();for%舫(v9ectorHhEllipse%>.*>/i::Biter}'ator)7iter=+M=ellipses#I:b}'egin();iter6=ellipses:endಫ();++Giter")( @@ -4920,56 +4986,56 @@ iter):applyfftr}'ansformF߫();for&Q˫(v9ectorHhRegus4wP9olygonE=LJ=Mi::Biter}'ator)7iter=ڼ=vr}'egffpolygons9iױ:b}'egin();i@iterŷ6=vr}'egffpolygons:endಫ();2++>G%iterO#)( iter):applyfftr}'ansformF߫();for%舫(v9ectorHhRectangle5:i::Biter}'ator)7iter=+M=r}'ectangles.g]:b}'egin();iter6=r}'ectangles:endಫ();++Giter")( iter):applyfftr}'ansformF߫(); -g1345. Scale.hDeclareUUSolid (functions@1294i+ +g1350. Scale.hDeclareUUSolid (functions@1299i+ virtual/T -ransformgVsc}'ale} (real.xx!f;real]yy&@K=0;real]zz%=0);7?n썷x13463DLDFPRÎGArCSCALE403n@P1346.hDe neUUSolid (functions@1295i+ +ransformgVsc}'ale} (real.xx!f;real]yy&@K=0;real]zz%=0);2hn썷x13513DLDFPRÎGArCSCALE407n@P1351.hDe neUUSolid (functions@1300i+ T ransformASolid\F::sc}'ale(real.xx!f;real]yy#y3;real]zz"H۫) fT ransformKԱtOeF;tt:sc}'ale(xx 8;yy ;zz );this,ѷ=(real.xy!;real]xz"ը;real]yx#;real]yz# ;real]zx"A;real]zy") fT ransformKԱtOeF;tt:she}'ar4:(xy ;xz "z;yx V;yz Y;zx ;zy «);this,ѷ=(xx 8;yy ;zz );this,ѷ= 8BeginTLogJʄ`> -[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ +g1361. RotatationTaroundanarbitraryaxis.9Ȅ`+U 8Log)j`+U +[LDFT2003.05.02.]YSChangedmnameofthisfunctionfromr}'otateffaround@()tor}'otate().ThisfunctionnowoverloadsUUr}'otateē()UUwiththreerealarguments.Ȅ`GhDeclareUUSolid (functions@1299i+ virtual/T -ransformgVr}'otate(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleQ=180);1357.hDe neUUSolid (functions@1295i+ +ransformgVr}'otate(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleQ=180);1362.hDe neUUSolid (functions@1300i+ T ransformASolid\F::r}'otateoB(const*P9oint=?&D]p0P;constJP9oint>&Fp1Rű;constJreal6xangleNH˫) fT ransformKԱtOeF;tt:r}'otateo>(p0 ;p1 h;anglej);this,ѷ=uC&FuC&FuC&F8"WARNING! In Solid::lextract():\n"3"Polygon cannot be plrojected. "L9<"Returning empty vector .\n"M ush;(returnK澱vQ{;(breakDh;ggfor%舫(v9ectorHhRectangle5:i::Biter}'ator)7iter=+M=r}'ectangles.g]:b}'egin();iter6=r}'ectangles:endಫ();++Giter")f( iter):applyfftr}'ansformF߫();if)(:( -iter):pr}'ojectw(f;pr}'ojk;factor))f(c}'err=2A"WARNING! In Solid::lALextract():\n"IA"Rectangle cannot belAL projected. "<"Returning empty vector .\n"M ush;(returnK澱vQ{;(breakDh;ggv4:pushffb}'ack+XR(this붫);_n썫406EXTRAÎCT23DLDFPRGx1360n@Preturn7漱v=y; -g1361. SetTextremes.hDeclareUUSolid (functions@1294i+ -virtual/bQoolI/:setffextr}'emesë();p[n썷x13623DLDFPRÎGSETXEXTREMES407n@P1362.hDe neUUSolid (functions@1295i+ +iter):pr}'ojectw(f;pr}'ojk;factor))f(c}'err=2A"WARNING! In Solid::lALextract():\n"IA"Rectangle cannot belAL projected. "<"Returning empty vector .\n"M ush;(returnK澱vQ{;(breakDh;ggv4:pushffb}'ack+XR(this붫);Yՠn썫410EXTRAÎCT23DLDFPRGx1365n@Preturn7漱v=y; +g1366. SetTextremes.hDeclareUUSolid (functions@1299i+ +virtual/bQoolI/:setffextr}'emesë();k.n썷x13673DLDFPRÎGSETXEXTREMES411n@P1367.hDe neUUSolid (functions@1300i+ bQool#gSolid>B::setffextr}'emes7() fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Solid::setk_extremes()"8"\n" ush;v\ralarra9y=ZChreal]ٷiUUv;v4:r}'esizei(6;0);=ӫLDFX*2002.12.13.zHAdded.NeededX+forcompilingunderGNU/LinuxusingGCCon(theUUInteli686computergwdu101.gwdg.de.o=for%舫(v9ectorHhP9ath湷 i::Biter}'ator)7iter=+M=p}'athsWű:b}'egin();iter6=p}'aths:endಫ();++Giter")fif)(:( iter):setffextr}'emes6())f(c}'errBp׷-"ERROR! In Solid::sept_extremes():\n"V<"Path::set_extremes() returned false. " "Returning false.\n\kn"yV ush;(returnKfalse`;gv%ث=( @@ -4992,42 +5058,42 @@ iter):setffextr}'emes6())f(c}'errBp׷-"ERROR! In Solid::sept_extremes():\n"V<"Path::set_extremes() returned false. " "Returning false.\n\kn"yV ush;(returnKfalse`;gv%ث=( iter):getffextr}'emes7D`();for/艫(in9ti=0;i 9 <3;++Gi)=Minima.o=f(pr}'ojectiveffextremes|U[iq]=min-(pr}'ojectiveffextremesTQ[i];ve[i]);gfor/艫(in9ti=3;i 9 <6;++Gi)=Maxima.o=f(pr}'ojectiveffextremes|U[iq]=maxk(pr}'ojectiveffextremesTQ[i];ve[i]);ggfor%舫(v9ectorHhCircle!&i::Biter}'ator)7iter=+M=cir}'clesS|:b}'egin();iter6=cir}'cles:endಫ();++Giter")fif)(:( iter):setffextr}'emes6())f(c}'errBp׷-"ERROR! In Solid::sept_extremes():\n"V<"Path::set_extremes() returned false. " "Returning false.\n\kn"yV ush;(returnKfalse`;gv%ث=( -iter):getffextr}'emes7D`();for/艫(in9ti=0;i 9 <3;++Gi)=Minima.o=f(pr}'ojectiveffextremes|U[iq]=min-(pr}'ojectiveffextremesTQ[i];ve[i]);qn썫408SETXEXTREMES3DLDFPRÎGx1362n@Pg for/艫(in9ti=3;i 9 <6;++Gi)=Maxima.o=f(pr}'ojectiveffextremes|U[iq]=maxk(pr}'ojectiveffextremesTQ[i];ve[i]);ggfor&Q˫(v9ectorHhRegus4wP9olygonE=LJ=Mi::Biter}'ator)7iter=ڼ=vr}'egffpolygons9iױ:b}'egin();i@iterŷ6=vr}'egffpolygons:endಫ();2++>G%iterO#)fif)(:( +iter):getffextr}'emes7D`();for/艫(in9ti=0;i 9 <3;++Gi)=Minima.o=f(pr}'ojectiveffextremes|U[iq]=min-(pr}'ojectiveffextremesTQ[i];ve[i]);l~n썫412SETXEXTREMES3DLDFPRÎGx1367n@Pg for/艫(in9ti=3;i 9 <6;++Gi)=Maxima.o=f(pr}'ojectiveffextremes|U[iq]=maxk(pr}'ojectiveffextremesTQ[i];ve[i]);ggfor&Q˫(v9ectorHhRegus4wP9olygonE=LJ=Mi::Biter}'ator)7iter=ڼ=vr}'egffpolygons9iױ:b}'egin();i@iterŷ6=vr}'egffpolygons:endಫ();2++>G%iterO#)fif)(:( iter):setffextr}'emes6())f(c}'errBp׷-"ERROR! In Solid::sept_extremes():\n"V<"Path::set_extremes() returned false. " "Returning false.\n\kn"yV ush;(returnKfalse`;gv%ث=( iter):getffextr}'emes7D`();for/艫(in9ti=0;i 9 <3;++Gi)=Minima.o=f(pr}'ojectiveffextremes|U[iq]=min-(pr}'ojectiveffextremesTQ[i];ve[i]);gfor/艫(in9ti=3;i 9 <6;++Gi)=Maxima.o=f(pr}'ojectiveffextremes|U[iq]=maxk(pr}'ojectiveffextremesTQ[i];ve[i]);ggfor%舫(v9ectorHhRectangle5:i::Biter}'ator)7iter=+M=r}'ectangles.g]:b}'egin();iter6=r}'ectangles:endಫ();++Giter")fif)(:( iter):setffextr}'emes6())f(c}'errBp׷-"ERROR! In Solid::sept_extremes():\n"V<"Path::set_extremes() returned false. " "Returning false.\n\kn"yV ush;(returnKfalse`;gv%ث=( iter):getffextr}'emes7D`();for/艫(in9ti=0;i 9 <3;++Gi)=Minima.o=f(pr}'ojectiveffextremes|U[iq]=min-(pr}'ojectiveffextremesTQ[i];ve[i]);gfor/艫(in9ti=3;i 9 <6;++Gi)=Maxima.o=f(pr}'ojectiveffextremes|U[iq]=maxk(pr}'ojectiveffextremesTQ[i];ve[i]);ggif(DEBUGY)c}'out O"Exiting Solid::set_kextremes()";"\n" ush;return7trueJT; -g1363. GetTextremes.hDeclareUUSolid (functions@1294i+ +g1368. GetTextremes.hDeclareUUSolid (functions@1299i+ inline)IvirtualOconstmBv\ralarra9yhreal]ٷiUUgetffextr}'emes:()UUconst freturn7pr}'ojectiveffextremes ; -g1364. GetTminim9umz.hDeclareUUSolid (functions@1294i+n썷x13643DLDFPRÎGGETXMINIMUMZ409n@P -virtual/realFAgetffminimumffzګ()UUconst*;1365.hDe neUUSolid (functions@1295i+ +g1369. GetTminim9umz.hDeclareUUSolid (functions@1299i+~Rn썷x13693DLDFPRÎGGETXMINIMUMZ413n@P +virtual/realFAgetffminimumffzګ()UUconst*;1370.hDe neUUSolid (functions@1300i+ real /Solid;1 ::getffminimumffzD]ܫ()UUconst fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)fc}'out4 R"Entering Solid::getk_minimum_z()"T5endl ush;c}'out4 R"projective_extremesk[4] == "Dpr}'ojectiveffextremesVi[4]endl ush;c}'out4 R"Exiting Solid::get_kminimum_z()"8endl ush;greturn7pr}'ojectiveffextremes [4]; -g1366. GetTmaxim9umz.hDeclareUUSolid (functions@1294i+ -virtual/realFAgetffmaximumffz()UUconst*;1367.hDe neUUSolid (functions@1295i+ +g1371. GetTmaxim9umz.hDeclareUUSolid (functions@1299i+ +virtual/realFAgetffmaximumffz()UUconst*;1372.hDe neUUSolid (functions@1300i+ real /Solid;1 ::getffmaximumffzEm()UUconst fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)fc}'out4 R"Entering Solid::getk_maximum_z()"T5endl ush;c}'out4 R"projective_extremesk[5] == "Dpr}'ojectiveffextremesVi[5]endl ush;c}'out4 R"Exiting Solid::get_kmaximum_z()"8endl ush;greturn7pr}'ojectiveffextremes [5]; -g1368. GetTmeanz.[LDFT2003.05.16.]Z6AddedUUthisfunction.hDeclareUUSolid (functions@1294i+ -virtual/realFAgetffme}'anffzv ()UUconst*;1369.hDe neUUSolid (functions@1295i+ +g1373. GetTmeanz.[LDFT2003.05.16.]Z6AddedUUthisfunction.hDeclareUUSolid (functions@1299i+ +virtual/realFAgetffme}'anffzv ()UUconst*;1374.hDe neUUSolid (functions@1300i+ real /Solid;1 ::getffme}'anffz1()UUconst freturn7漫((pr}'ojectiveffextremesTQ[4]8+pr}'ojectiveffextremesV=1[5])=2); -g1370. SuppressToutput.hDeclareUUSolid (functions@1294i+ -virtual/v9oidHsuppr}'essffoutputr.();ʠn썫410SUPPRESSXOUTPUT e3DLDFPRÎGx1371n@P1371.hDe neUUSolid (functions@1295i+ +g1375. SuppressToutput.hDeclareUUSolid (functions@1299i+ +virtual/v9oidHsuppr}'essffoutputr.();n썫414SUPPRESSXOUTPUT e3DLDFPRÎGx1376n@P1376.hDe neUUSolid (functions@1300i+ v9oid"Solid={::suppr}'essffoutputE憫() fdoffoutputAM=falsev\;return4g; -g1372. UnsuppressToutput.hDeclareUUSolid (functions@1294i+ -virtual/v9oidHunsuppr}'essffoutputoR();1373.hDe neUUSolid (functions@1295i+ +g1377. UnsuppressToutput.hDeclareUUSolid (functions@1299i+ +virtual/v9oidHunsuppr}'essffoutputoR();1378.hDe neUUSolid (functions@1300i+ v9oid"Solid={::unsuppr}'essffoutputP㪫() fdoffoutputAM=true;return4g; -g1374. Output.[LDFT2002.10.02.]Z6InUUPicture)f::outputD(),UUshap}'es#3isUUsortedaccordingtothevqaluesinpr}'ojectiveffextremesWforeachShapQe".wHowever,^it'spGossible(andevenlikely)thattheindividualP9aths$ina +g1379. Output.[LDFT2002.10.02.]Z6InUUPicture)f::outputD(),UUshap}'es#3isUUsortedaccordingtothevqaluesinpr}'ojectiveffextremesWforeachShapQe".wHowever,^it'spGossible(andevenlikely)thattheindividualP9aths$ina Solid!5are notorderedinsuchawaythattheywillbGeoutputinthecorrectorder.Therefore,Ideclareav9ector#hShapQe"'is 2andputtheP9aths%;ҫfromp}'athsF,?jcir}'cles Ϋ,?jellipses$۫,?jr}'egffpolygons:2,?jandr}'ectangles3wontoit.FThenIsorts randcalloutput!()foreachShapQe"ƫ.Currently*,output!(()willresolvetoP9ath!::outputD(),bGecausezoutput ()zhasn'tbeenoverloadedzforCircle!d,?Ellipse$,?Regus4wP9olygonD,?orRectangle8B(andprobablywon'tUUbGe). -TheinvoGcationofpushffb}'ack.j()ineachofthefourloGopsdependsonthefactthatP9ath(::extr}'acts()returnsa{:v9ector(containing{:onlyoneelement.uThat'swhyIzusefr}'ont˫().uThereisnoopGeratororfunctionforconcatenatingUUv9ectors'٫,UUatleastIcouldn't ndoneinStroustrup.qTODO:Getreference!hDeclareUUSolid (functions@1294i+ -virtual/v9oidHoutpute(); n썷x13753DLDFPRÎG8\/OUTPUT411n@P1375.hDe neUUSolid (functions@1295i+ +TheinvoGcationofpushffb}'ack.j()ineachofthefourloGopsdependsonthefactthatP9ath(::extr}'acts()returnsa{:v9ector(containing{:onlyoneelement.uThat'swhyIzusefr}'ont˫().uThereisnoopGeratororfunctionforconcatenatingUUv9ectors'٫,UUatleastIcouldn't ndoneinStroustrup.qTODO:Getreference!hDeclareUUSolid (functions@1299i+ +virtual/v9oidHoutpute();ߠn썷x13803DLDFPRÎG8\/OUTPUT415n@P1380.hDe neUUSolid (functions@1300i+ v9oid"Solid={::outputD() fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Solid::outkput().\n");v9ector3JhShapQe"Ab'AciUUsU;for%舫(v9ectorHhP9ath湷 i::Biter}'ator)7iter=+M=p}'athsWű:b}'egin();iter6=p}'aths:endಫ();++Giter")s":pushffb}'ack+XR(( iter):getffc}'opy$ô());for%舫(v9ectorHhCircle!&i::Biter}'ator)7iter=+M=cir}'clesS|:b}'egin();iter6=cir}'cles:endಫ();++Giter")s":pushffb}'ack+XR(( @@ -5036,7 +5102,7 @@ iter):getffc}'opy$ô());for%舫(v9ectorHhRectangle5:i::Biter}'ator)7iter=+M=r}'ectangles.g]:b}'egin();iter6=r}'ectangles:endಫ();++Giter")s":pushffb}'ack+XR(( iter):getffc}'opy$ô());sort&2ԫ(s:b}'egin();sZ:endಫ();Compareus4wmaxim9umus4zpO());for%舫(v9ectorHhShapQe"Ab'Aci::Biter}'ator)7iter=+M=sw:b}'egin();iter6=s:endಫ();++Giter")f( iter):output@();delete?ƽ(iter);gif(DEBUGY)c}'out O"Exiting Solid::outpkut().\n"M,; -g1376. Dra9wingTand lling.n썫412DRA8WINGXANDFILLINGE3DLDFPRÎGx1377n@P1377. ProGcessvectorsfordr}'aw().M[LDFT2002.10.09.]RIAddedthissection.MThesamethingsaredonetoeach of theShapQe'-Y0Nvectorsp}'athsS,Szellipses$,Szcir}'cles ޫ,Szr}'egffpolygons:Fʫ,Szandr}'ectangles/,soI'veputthecoGdeinthisnamedUUsection.qEachtimeitit'sused,iteruisaniteratorforadi erentvector.hProGcessUUvectorsfordr}'aw~0()@1377i +g1381. Dra9wingTand lling.n썫416DRA8WINGXANDFILLINGE3DLDFPRÎGx1382n@P1382. ProGcessvectorsfordr}'aw().M[LDFT2002.10.09.]RIAddedthissection.MThesamethingsaredonetoeach of theShapQe'-Y0Nvectorsp}'athsS,Szellipses$,Szcir}'cles ޫ,Szr}'egffpolygons:Fʫ,Szandr}'ectangles/,soI'veputthecoGdeinthisnamedUUsection.qEachtimeitit'sused,iteruisaniteratorforadi erentvector.hProGcessUUvectorsfordr}'aw~0()@1382i fif(cffiter6=v:endಫ())fc}'olorffptrG@=cffiter!Y++- ;g( iter):setff llffdr}'awffvalueN\(DRAW\);=LDFUU2002.10.09.qAddedcoGdeforhandlingdr}'awffcolor2A.o=if(DEBUGY)fc}'out4 R"color_ptr->get_use_kname() == ";c}'olorffptr'=~->getffuseffnameh}D()endl ush;gif(c}'olorffptr%%~+&getffuseffnamee,()falsev\)fif)(DEBUGY)c}'out O"Allocating memory fkor Color.\n"8 ush;Color=BcI=Color ::&cr}'eateffnewffc}'olorn();#c*=c}'olorffptr.>;( iter):setffdr}'awffcolor>(cS۫);gelse+fif)(DEBUGY)c}'out O"color_ptr->get_namek() == "Gc}'olorffptr'=~->getffnameV()endl ush;( @@ -5044,13 +5110,13 @@ iter):setff llffc}'olor5I:(staticus4wcast4}hColor$i(0));( iter):setffdashffp}'atternFݖ(ddashe}'d#G);( iter):setffp}'enʘ(pp}'en6#); -g ThisXco(ihconst~!Color>vCviԱv /ѫ=R@Colors%+::+\defaultffc}'olorffvectorӖ;const (stringddashe}'dD,="" z;constJstring@pp}'enXҫ="";Picture* -&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;3n썷x13793DLDFPRÎGBDRA8W413n@P1379.hDe neUUSolid (functions@1295i+ +&2c(pictur}'eT3=curr}'entffpictureD߫)UUconst*;n썷x13843DLDFPRÎGBDRA8W417n@P1384.hDe neUUSolid (functions@1300i+ v9oid":Solid=L::dr}'aw(߫(constv9ector=KhconstColor=pWBpXi%vZs;conststring@Yddashe}'dcj;conststring@Ypp}'enU|;Picture2&9#pictur}'eX)UUconst -fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Solid::drakw():"TM"\n" ush;Solid0.5/s=JG=cr}'eateffnewffsolidIӫ();s w=thisϫ;const2*ColorQϗVϘc}'olorffptrի=Colors$::+.4defaultffc}'olorb;v9ector3Jhconst*Color=ϕBϖi::Bc}'onstffiteratorCcffiter_\=v:b}'egin();for%舫(v9ectorHhP9ath湷 i::Bc}'onstffiteratorCiterW=sw~ wp}'aths#Ʊ:b}'egin();iter6=sw~ wp}'aths:endಫ();++Giter")fhProGcessUUvectorsfordr}'aw~0()@1377igcffiter/«=v:b}'egin();for%舫(v9ectorHhCircle!&i::Bc}'onstffiteratorCiterW=sw~ wcir}'cles(}:b}'egin();iter6=sw~ wcir}'cles:endಫ();++Giter")fhProGcessUUvectorsfordr}'aw~0()@1377igcffiter/«=v:b}'egin();for%舫(v9ectorHhEllipse%>.*>/i::Bc}'onstffiteratorCiterW=sw~ wellipses+:b}'egin();iter6=sw~ wellipses:endಫ();++Giter")fhProGcessUUvectorsfordr}'aw~0()@1377ig=for+=cffiter/«=v:b}'egin();for'$(v9ectorHhRegus4wP9olygonFKi::Bc}'onstffiteratorCiterZ=sf~fr}'egffpolygonsDYi:b}'egin();2iterE6=sw~ wr}'egffpolygonsAji:endಫ();++Giter")fhProGcessUUvectorsfordr}'aw~0()@1377igfor&6(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW:=IAsA~ Br}'ectangles7:b}'egin();NiterbU6=IAsA~ Br}'ectangles:endಫ();2++>G%iterO#)fhProGcessUUvectorsfordr}'aw~0()@1377igpictur}'e5+=H%Ddynamicus4wcasthShapQe"Ab'Aci(s);if(DEBUGY)fc}'out4 R"Exiting Solid::drawk():"P"\n" ush;g -gn썫414DRA8WB3DLDFPRÎGx1380n@P1380. ProGcess:vectorsfor ll().v[LDFT2002.10.09.]T]Addedthissection.vThesamethingsaredonetoeach of theShapQe'-Y0Nvectorsp}'athsS,Szellipses$,Szcir}'cles ޫ,Szr}'egffpolygons:Fʫ,Szandr}'ectangles/,soI'veputthecoGdeinthisnamedUUsection.qEachtimeitit'sused,iteruisaniteratorforadi erentvector.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2003.08.10.]Y;NowUUsettingpGento""[,becauseI'veremovedthepGenargumentfrom llH().Ȅ` 8EndTLogA>`hProGcessUUvectorsfor llH()@1380i +fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Solid::drakw():"TM"\n" ush;Solid0.5/s=JG=cr}'eateffnewffsolidIӫ();s w=thisϫ;const2*ColorQϗVϘc}'olorffptrի=Colors$::+.4defaultffc}'olorb;v9ector3Jhconst*Color=ϕBϖi::Bc}'onstffiteratorCcffiter_\=v:b}'egin();for%舫(v9ectorHhP9ath湷 i::Bc}'onstffiteratorCiterW=sw~ wp}'aths#Ʊ:b}'egin();iter6=sw~ wp}'aths:endಫ();++Giter")fhProGcessUUvectorsfordr}'aw~0()@1382igcffiter/«=v:b}'egin();for%舫(v9ectorHhCircle!&i::Bc}'onstffiteratorCiterW=sw~ wcir}'cles(}:b}'egin();iter6=sw~ wcir}'cles:endಫ();++Giter")fhProGcessUUvectorsfordr}'aw~0()@1382igcffiter/«=v:b}'egin();for%舫(v9ectorHhEllipse%>.*>/i::Bc}'onstffiteratorCiterW=sw~ wellipses+:b}'egin();iter6=sw~ wellipses:endಫ();++Giter")fhProGcessUUvectorsfordr}'aw~0()@1382ig=for+=cffiter/«=v:b}'egin();for'$(v9ectorHhRegus4wP9olygonFKi::Bc}'onstffiteratorCiterZ=sf~fr}'egffpolygonsDYi:b}'egin();2iterE6=sw~ wr}'egffpolygonsAji:endಫ();++Giter")fhProGcessUUvectorsfordr}'aw~0()@1382igfor&6(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW:=IAsA~ Br}'ectangles7:b}'egin();NiterbU6=IAsA~ Br}'ectangles:endಫ();2++>G%iterO#)fhProGcessUUvectorsfordr}'aw~0()@1382igpictur}'e5+=H%Ddynamicus4wcasthShapQe"Ab'Aci(s);if(DEBUGY)fc}'out4 R"Exiting Solid::drawk():"P"\n" ush;g +gn썫418DRA8WB3DLDFPRÎGx1385n@P1385. ProGcess:vectorsfor ll().v[LDFT2002.10.09.]T]Addedthissection.vThesamethingsaredonetoeach of theShapQe'-Y0Nvectorsp}'athsS,Szellipses$,Szcir}'cles ޫ,Szr}'egffpolygons:Fʫ,Szandr}'ectangles/,soI'veputthecoGdeinthisnamedUUsection.qEachtimeitit'sused,iteruisaniteratorforadi erentvector.9Ȅ`+U 8Log)j`+U +[LDFT2003.08.10.]Y;NowUUsettingpGento""[,becauseI'veremovedthepGenargumentfrom llH().Ȅ`GhProGcessUUvectorsfor llH()@1385i fif(cffiter6=v:endಫ())fc}'olorffptrG@=cffiter!Y++- ;g( iter):setff llffdr}'awffvalueN\(FILL\);=LDFUU2002.10.09.qAddedcoGdeforhandlingdr}'awffcolor5and llffc}'olor(.o=if(DEBUGY)fc}'out4 R"color_ptr->get_use_kname() == ";c}'olorffptr'=~->getffuseffnameh}D()endl ush;gif(c}'olorffptr%%~+&getffuseffnamee,()falsev\)fif)(DEBUGY)c}'out O"Allocating memory fkor Color.\n"8 ush;Color=BcI=Color ::&cr}'eateffnewffc}'olorn();#c*=c}'olorffptr.>; ( iter):setff llffc}'olor5I:(cS۫);gelse+fif)(DEBUGY)c}'out O"color_ptr->get_namek() == "Gc}'olorffptr'=~->getffnameV()endl ush;( @@ -5058,13 +5124,13 @@ iter):setffdr}'awffcolor>(staticus4wcast4}hColor$i(0));( iter):setffdashffp}'atternFݖ("" b);( iter):setffp}'enʘ("" b); -g ThisXco 8BeginTLogJʄ`> -[LDFT2003.08.10.]Y;RemovedUUpGenargument,since llingdoesn'tuseapen.Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual0Wv9oidJv llVi(constv9ector>ϷhconstColor?c_Dc`i:v k=Colors%q::,~defaultffc}'olorffvector;Picture&%!pictur}'eG=curr}'entffpictureD߫)UUconst*;Зn썷x13823DLDFPRÎGJyFILL415n@P1382.hDe neUUSolid (functions@1295i+ +g ThisXcoϷhconstColor?c_Dc`i:v k=Colors%q::,~defaultffc}'olorffvector;Picture&%!pictur}'eG=curr}'entffpictureD߫)UUconst*;jn썷x13873DLDFPRÎGJyFILL419n@P1387.hDe neUUSolid (functions@1300i+ v9oid"Solid={:: ll (const*v9ector=hconst*Color=ϕBϖiUUv;Picture* &2c(pictur}'eQk)UUconst -fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Solid::filkl():"TM"\n" ush;Solid0.5/s=JG=cr}'eateffnewffsolidIӫ();s w=thisϫ;const2*ColorQϗVϘc}'olorffptrի=Colors$::+.4defaultffc}'olorb;v9ector3Jhconst*Color=ϕBϖi::Bc}'onstffiteratorCcffiter_\=v:b}'egin();for%舫(v9ectorHhP9ath湷 i::Bc}'onstffiteratorCiterW=sw~ wp}'aths#Ʊ:b}'egin();iter6=sw~ wp}'aths:endಫ();++Giter")fhProGcessUUvectorsfor llH()@1380igcffiter/«=v:b}'egin();for%舫(v9ectorHhCircle!&i::Bc}'onstffiteratorCiterW=sw~ wcir}'cles(}:b}'egin();iter6=sw~ wcir}'cles:endಫ();++Giter")fhProGcessUUvectorsfor llH()@1380igcffiter/«=v:b}'egin();for%舫(v9ectorHhEllipse%>.*>/i::Bc}'onstffiteratorCiterW=sw~ wellipses+:b}'egin();iter6=sw~ wellipses:endಫ();++Giter")fhProGcessUUvectorsfor llH()@1380igcffiter/«=v:b}'egin();for'$(v9ectorHhRegus4wP9olygonFKi::Bc}'onstffiteratorCiterZ=sf~fr}'egffpolygonsDYi:b}'egin();2iterE6=sw~ wr}'egffpolygonsAji:endಫ();++Giter")fhProGcessUUvectorsfor llH()@1380igcffiter/«=v:b}'egin();for&6(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW:=IAsA~ Br}'ectangles7:b}'egin();NiterbU6=IAsA~ Br}'ectangles:endಫ();2++>G%iterO#)fhProGcessUUvectorsfor llH()@1380igpictur}'e5+=H%Ddynamicus4wcasthShapQe"Ab'Aci(s);if(DEBUGY)fc}'out4 R"Exiting Solid::fillk():"P"\n" ush;g -gߙn썫416FILLJy3DLDFPRÎGx1383n@P1383. ProGcessvectorsfor lldr}'aw().{[LDFT2002.10.09.]T܂Addedthissection.{Thesamethingsaredoneto eachoftheShapQe&//vectorsp}'aths>,ellipses$P,cir}'cles C,r}'egffpolygons:/,andr}'ectangles/֫,soI'veputthecoGdeinthisUUnamedsection.qEachtimeitit'sused,iteruisaniteratorforadi erentvector.bhProGcessUUvectorsfor lldr}'aw$()@1383i +fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Solid::filkl():"TM"\n" ush;Solid0.5/s=JG=cr}'eateffnewffsolidIӫ();s w=thisϫ;const2*ColorQϗVϘc}'olorffptrի=Colors$::+.4defaultffc}'olorb;v9ector3Jhconst*Color=ϕBϖi::Bc}'onstffiteratorCcffiter_\=v:b}'egin();for%舫(v9ectorHhP9ath湷 i::Bc}'onstffiteratorCiterW=sw~ wp}'aths#Ʊ:b}'egin();iter6=sw~ wp}'aths:endಫ();++Giter")fhProGcessUUvectorsfor llH()@1385igcffiter/«=v:b}'egin();for%舫(v9ectorHhCircle!&i::Bc}'onstffiteratorCiterW=sw~ wcir}'cles(}:b}'egin();iter6=sw~ wcir}'cles:endಫ();++Giter")fhProGcessUUvectorsfor llH()@1385igcffiter/«=v:b}'egin();for%舫(v9ectorHhEllipse%>.*>/i::Bc}'onstffiteratorCiterW=sw~ wellipses+:b}'egin();iter6=sw~ wellipses:endಫ();++Giter")fhProGcessUUvectorsfor llH()@1385igcffiter/«=v:b}'egin();for'$(v9ectorHhRegus4wP9olygonFKi::Bc}'onstffiteratorCiterZ=sf~fr}'egffpolygonsDYi:b}'egin();2iterE6=sw~ wr}'egffpolygonsAji:endಫ();++Giter")fhProGcessUUvectorsfor llH()@1385igcffiter/«=v:b}'egin();for&6(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW:=IAsA~ Br}'ectangles7:b}'egin();NiterbU6=IAsA~ Br}'ectangles:endಫ();2++>G%iterO#)fhProGcessUUvectorsfor llH()@1385igpictur}'e5+=H%Ddynamicus4wcasthShapQe"Ab'Aci(s);if(DEBUGY)fc}'out4 R"Exiting Solid::fillk():"P"\n" ush;g +gn썫420FILLJy3DLDFPRÎGx1388n@P1388. ProGcessvectorsfor lldr}'aw().{[LDFT2002.10.09.]T܂Addedthissection.{Thesamethingsaredoneto eachoftheShapQe&//vectorsp}'aths>,ellipses$P,cir}'cles C,r}'egffpolygons:/,andr}'ectangles/֫,soI'veputthecoGdeinthisUUnamedsection.qEachtimeitit'sused,iteruisaniteratorforadi erentvector.bhProGcessUUvectorsfor lldr}'aw$()@1388i fif(dr}'awffcolorffiterD6=dr}'awffcolors5:endಫ())fdr}'awffcolorffptr`ǫ=dr}'awffcolorffiterJ++U;gif( llffc}'olorffiter;B6= llffc}'olors,4:endಫ())f llffc}'olorffptrV= llffc}'olorffiter@++L8;g( iter):setff llffdr}'awffvalueN\(FILLDRAW*P);if(DEBUGY)fc}'out4&"draw_color_ptr->getl&_use_name() == "Ӷ&dr}'awffcolorffptr@g~Fggetffuseffname()&ݷendl?|2 ushG;gif(dr}'awffcolorffptr=@~C@getffuseffname}()falsev\)fif)(DEBUGY)c}'out O"Allocating memory fkor Color.\n"8 ush;Color=BcI=Color ::&cr}'eateffnewffc}'olorn();#c*=dr}'awffcolorffptrGū;( iter):setffdr}'awffcolor>(cS۫);gelse+fif)(DEBUGY)(c}'out> S"draw_color_ptr->getk_name() == "8dr}'awffcolorffptr@ğ~Fgetffnameo()endl ush;( @@ -5073,188 +5139,194 @@ iter):setff llffc}'olor5I:( llffc}'olorffptr5ȫ);g( iter):setffp}'enʘ(pp}'en6#);( iter):setffdashffp}'atternFݖ(ddashe}'d#G); -g bThisXcoQUhconst Color>kClidr}'awffcolors6M;const Qv9ector?hconst Color>ki2 llffc}'olors[m;constJstring@ddashe}'ddA;constJstring@pp}'enV0;Picture* &2c(pictur}'eQk)UUconst -fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Solid::filkldraw():"TA"\n" ush;Solid0.5/s=JG=cr}'eateffnewffsolidIӫ();s w=thisϫ;const2*ColorQϗVϘdr}'awffcolorffptrD;const2*ColorQϗVϘ llffc}'olorffptr`;v9ector3Jhconst*Color=ϕBϖi::Bc}'onstffiteratorCdr}'awffcolorffiter=dr}'awffcolors5:b}'egin();v9ector3Jhconst*Color=ϕBϖi::Bc}'onstffiteratorC llffc}'olorffiter~= llffc}'olors,4:b}'egin();for%舫(v9ectorHhP9ath湷 i::Bc}'onstffiteratorCiterW=sw~ wp}'aths#Ʊ:b}'egin();iter6=sw~ wp}'aths:endಫ();++Giter")fhProGcessUUvectorsfor lldr}'aw$()@1383igdr}'awffcolorffiterX=dr}'awffcolors5:b}'egin(); llffc}'olorffiterOB= llffc}'olors,4:b}'egin();for%舫(v9ectorHhCircle!&i::Bc}'onstffiteratorCiterW=sw~ wcir}'cles(}:b}'egin();iter6=sw~ wcir}'cles:endಫ();++Giter")fhProGcessUUvectorsfor lldr}'aw$()@1383igdr}'awffcolorffiterX=dr}'awffcolors5:b}'egin(); llffc}'olorffiterOB= llffc}'olors,4:b}'egin();for%舫(v9ectorHhEllipse%>.*>/i::Bc}'onstffiteratorCiterW=sw~ wellipses+:b}'egin();iter6=sw~ wellipses:endಫ();++Giter")fhProGcessUUvectorsfor lldr}'aw$()@1383igdr}'awffcolorffiterX=dr}'awffcolors5:b}'egin(); llffc}'olorffiterOB= llffc}'olors,4:b}'egin();for'$(v9ectorHhRegus4wP9olygonFKi::Bc}'onstffiteratorCiterZ=sf~fr}'egffpolygonsDYi:b}'egin();2iterE6=sw~ wr}'egffpolygonsAji:endಫ();++Giter")fhProGcessUUvectorsfor lldr}'aw$()@1383igfor&6(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW:=IAsA~ Br}'ectangles7:b}'egin();NiterbU6=IAsA~ Br}'ectangles:endಫ();2++>G%iterO#)fhProGcessUUvectorsfor lldr}'aw$()@1383igpictur}'e5+=H%Ddynamicus4wcasthShapQe"Ab'Aci(s);if(DEBUGY)fc}'out4 R"Exiting Solid::fillkdraw():"D"\n" ush;g -g~n썫418FILLDRA8W/3DLDFPRÎGx1386n@P1386. ProGcessvectorsforundr}'aw().3[LDFT2002.10.09.]TAddedthissection.3Thesamethingsaredoneto eachoftheShapQe&//vectorsp}'aths>,ellipses$P,cir}'cles C,r}'egffpolygons:/,andr}'ectangles/֫,soI'veputthecoGdeinthisUUnamedsection.qEachtimeitit'sused,iteruisaniteratorforadi erentvector.hProGcessUUvectorsforundr}'aw${T()@1386i +fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Solid::filkldraw():"TA"\n" ush;Solid0.5/s=JG=cr}'eateffnewffsolidIӫ();s w=thisϫ;const2*ColorQϗVϘdr}'awffcolorffptrD;const2*ColorQϗVϘ llffc}'olorffptr`;v9ector3Jhconst*Color=ϕBϖi::Bc}'onstffiteratorCdr}'awffcolorffiter=dr}'awffcolors5:b}'egin();v9ector3Jhconst*Color=ϕBϖi::Bc}'onstffiteratorC llffc}'olorffiter~= llffc}'olors,4:b}'egin();for%舫(v9ectorHhP9ath湷 i::Bc}'onstffiteratorCiterW=sw~ wp}'aths#Ʊ:b}'egin();iter6=sw~ wp}'aths:endಫ();++Giter")fhProGcessUUvectorsfor lldr}'aw$()@1388igdr}'awffcolorffiterX=dr}'awffcolors5:b}'egin(); llffc}'olorffiterOB= llffc}'olors,4:b}'egin();for%舫(v9ectorHhCircle!&i::Bc}'onstffiteratorCiterW=sw~ wcir}'cles(}:b}'egin();iter6=sw~ wcir}'cles:endಫ();++Giter")fhProGcessUUvectorsfor lldr}'aw$()@1388igdr}'awffcolorffiterX=dr}'awffcolors5:b}'egin(); llffc}'olorffiterOB= llffc}'olors,4:b}'egin();for%舫(v9ectorHhEllipse%>.*>/i::Bc}'onstffiteratorCiterW=sw~ wellipses+:b}'egin();iter6=sw~ wellipses:endಫ();++Giter")fhProGcessUUvectorsfor lldr}'aw$()@1388igdr}'awffcolorffiterX=dr}'awffcolors5:b}'egin(); llffc}'olorffiterOB= llffc}'olors,4:b}'egin();for'$(v9ectorHhRegus4wP9olygonFKi::Bc}'onstffiteratorCiterZ=sf~fr}'egffpolygonsDYi:b}'egin();2iterE6=sw~ wr}'egffpolygonsAji:endಫ();++Giter")fhProGcessUUvectorsfor lldr}'aw$()@1388igfor&6(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW:=IAsA~ Br}'ectangles7:b}'egin();NiterbU6=IAsA~ Br}'ectangles:endಫ();2++>G%iterO#)fhProGcessUUvectorsfor lldr}'aw$()@1388igpictur}'e5+=H%Ddynamicus4wcasthShapQe"Ab'Aci(s);if(DEBUGY)fc}'out4 R"Exiting Solid::fillkdraw():"D"\n" ush;g +gn썫422FILLDRA8W/3DLDFPRÎGx1391n@P1391. ProGcessvectorsforundr}'aw().3[LDFT2002.10.09.]TAddedthissection.3Thesamethingsaredoneto eachoftheShapQe&//vectorsp}'aths>,ellipses$P,cir}'cles C,r}'egffpolygons:/,andr}'ectangles/֫,soI'veputthecoGdeinthisUUnamedsection.qEachtimeitit'sused,iteruisaniteratorforadi erentvector.hProGcessUUvectorsforundr}'aw${T()@1391i f( iter):setff llffdr}'awffvalueN\(UNDRAW V);( iter):setffdr}'awffcolor>(staticus4wcast4}hColor$i(0));( iter):setff llffc}'olor5I:(staticus4wcast4}hColor$i(0));( iter):setffdashffp}'atternFݖ(ddashe}'d#G);( iter):setffp}'enʘ(pp}'en6#); -g ThisXco.*>/i::Bc}'onstffiteratorCiterW=sw~ wellipses+:b}'egin();iter6=sw~ wellipses:endಫ();++Giter")fhProGcessUUvectorsforundr}'aw${T()@1386igfor'$(v9ectorHhRegus4wP9olygonFKi::Bc}'onstffiteratorCiterZ=sf~fr}'egffpolygonsDYi:b}'egin();2iterE6=sw~ wr}'egffpolygonsAji:endಫ();++Giter")fhProGcessUUvectorsforundr}'aw${T()@1386igfor&6(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW:=IAsA~ Br}'ectangles7:b}'egin();NiterbU6=IAsA~ Br}'ectangles:endಫ();2++>G%iterO#)fhProGcessUUvectorsforundr}'aw${T()@1386igpictur}'e5+=H%Ddynamicus4wcasthShapQe"Ab'Aci(s);if(DEBUGY)fc}'out4 R"Exiting Solid::undrkaw():"J"\n" ush;g -gn썷x13893DLDFPRÎG6#IUNDRA8W419n@P1389. ProGcessUUvectorsforun ll().c9Ȅ`> 8BeginTLogJʄ`> +fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Solid::undkraw():"G"\n" ush;Solid0.5/s=JG=cr}'eateffnewffsolidIӫ();s w=thisϫ;for%舫(v9ectorHhP9ath湷 i::Bc}'onstffiteratorCiterW=sw~ wp}'aths#Ʊ:b}'egin();iter6=sw~ wp}'aths:endಫ();++Giter")fhProGcessUUvectorsforundr}'aw${T()@1391igfor%舫(v9ectorHhCircle!&i::Bc}'onstffiteratorCiterW=sw~ wcir}'cles(}:b}'egin();iter6=sw~ wcir}'cles:endಫ();++Giter")fhProGcessUUvectorsforundr}'aw${T()@1391igfor%舫(v9ectorHhEllipse%>.*>/i::Bc}'onstffiteratorCiterW=sw~ wellipses+:b}'egin();iter6=sw~ wellipses:endಫ();++Giter")fhProGcessUUvectorsforundr}'aw${T()@1391igfor'$(v9ectorHhRegus4wP9olygonFKi::Bc}'onstffiteratorCiterZ=sf~fr}'egffpolygonsDYi:b}'egin();2iterE6=sw~ wr}'egffpolygonsAji:endಫ();++Giter")fhProGcessUUvectorsforundr}'aw${T()@1391igfor&6(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW:=IAsA~ Br}'ectangles7:b}'egin();NiterbU6=IAsA~ Br}'ectangles:endಫ();2++>G%iterO#)fhProGcessUUvectorsforundr}'aw${T()@1391igpictur}'e5+=H%Ddynamicus4wcasthShapQe"Ab'Aci(s);if(DEBUGY)fc}'out4 R"Exiting Solid::undrkaw():"J"\n" ush;g +grn썷x13943DLDFPRÎG6#IUNDRA8W423n@P1394. ProGcessUUvectorsforun ll().N99Ȅ`+U 8Log)j`+U [LDFT2002.10.09.]YAddedܡthissection.ThesamethingsaredonetoeachoftheShapQe&O/vectorsp}'athsmN,ellipses q,cir}'cles 9l,r}'egffpolygons9X,and~r}'ectangles/;ë,so~I'veputthecoGdeinthisnamedsection.DAEachtimeitit'sused,UUiteruisUUaniteratorforadi erentvector. -[LDFT2003.08.10.]Y;NowUUsettingpGento""[,sinceI'veremovedthepGenargumenttoun lll().Ȅ` 8EndTLogA>`hProGcessUUvectorsforun lll()@1389i +[LDFT2003.08.10.]Y;NowUUsettingpGento""[,sinceI'veremovedthepGenargumenttoun lll().Ȅ`GhProGcessUUvectorsforun lll()@1394i f( iter):setff llffdr}'awffvalueN\(UNFILL V);( iter):setffdr}'awffcolor>(staticus4wcast4}hColor$i(0));( iter):setff llffc}'olor5I:(staticus4wcast4}hColor$i(0));( iter):setffdashffp}'atternFݖ("" b);( iter):setffp}'enʘ("" b); -g ThisXco 8BeginTLogJʄ`> -[LDFT2003.08.10.]Y;RemovedUUthepGenargument,sinceun llingdoesn'tuseapen.Ȅ` 8EndTLogA>`hDeclareUUSolid (functions@1294i+ -virtual/v9oidHun ll`Rë(Picture(b&0pictur}'eRn=curr}'entffpictureD߫)UUconst*;)n썫420UNFILL=α3DLDFPRÎGx1391n@P1391.hDe neUUSolid (functions@1295i+ +g ThisXco.*>/i::Bc}'onstffiteratorCiterW=sw~ wellipses+:b}'egin();iter6=sw~ wellipses:endಫ();++Giter")fhProGcessUUvectorsforun lll()@1389igfor'$(v9ectorHhRegus4wP9olygonFKi::Bc}'onstffiteratorCiterZ=sf~fr}'egffpolygonsDYi:b}'egin();2iterE6=sw~ wr}'egffpolygonsAji:endಫ();++Giter")fhProGcessUUvectorsforun lll()@1389igfor&6(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW:=IAsA~ Br}'ectangles7:b}'egin();NiterbU6=IAsA~ Br}'ectangles:endಫ();2++>G%iterO#)fhProGcessUUvectorsforun lll()@1389igpictur}'e5+=H%Ddynamicus4wcasthShapQe"Ab'Aci(s);if(DEBUGY)fc}'out4 R"Exiting Solid::unfikll():"J"\n" ush;g -g2rn썷x13923DLDFPRÎG=αUNFILL421n@P1392. ProGcess;vectorsforun lldr}'aw().z[LDFT2002.10.09.]UAAddedthissection.zThesamethingsaredone toJ^eachoftheShapQe%ɷ-(vectorsp}'aths ,Lellipses#,Lcir}'cles,Lr}'egffpolygons9?,Landr}'ectangles.꣫,soI'veputthecoGdeinthisUUnamedsection.qEachtimeitit'sused,iteruisaniteratorforadi erentvector.hProGcessUUvectorsforun lldr}'aw/()@1392i +fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Solid::unfkill():"G"\n" ush;Solid0.5/s=JG=cr}'eateffnewffsolidIӫ();s w=thisϫ;for%舫(v9ectorHhP9ath湷 i::Bc}'onstffiteratorCiterW=sw~ wp}'aths#Ʊ:b}'egin();iter6=sw~ wp}'aths:endಫ();++Giter")fhProGcessUUvectorsforun lll()@1394igfor%舫(v9ectorHhCircle!&i::Bc}'onstffiteratorCiterW=sw~ wcir}'cles(}:b}'egin();iter6=sw~ wcir}'cles:endಫ();++Giter")fhProGcessUUvectorsforun lll()@1394igfor%舫(v9ectorHhEllipse%>.*>/i::Bc}'onstffiteratorCiterW=sw~ wellipses+:b}'egin();iter6=sw~ wellipses:endಫ();++Giter")fhProGcessUUvectorsforun lll()@1394igfor'$(v9ectorHhRegus4wP9olygonFKi::Bc}'onstffiteratorCiterZ=sf~fr}'egffpolygonsDYi:b}'egin();2iterE6=sw~ wr}'egffpolygonsAji:endಫ();++Giter")fhProGcessUUvectorsforun lll()@1394igfor&6(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW:=IAsA~ Br}'ectangles7:b}'egin();NiterbU6=IAsA~ Br}'ectangles:endಫ();2++>G%iterO#)fhProGcessUUvectorsforun lll()@1394igpictur}'e5+=H%Ddynamicus4wcasthShapQe"Ab'Aci(s);if(DEBUGY)fc}'out4 R"Exiting Solid::unfikll():"J"\n" ush;g +g,n썷x13973DLDFPRÎG=αUNFILL425n@P1397. ProGcess;vectorsforun lldr}'aw().z[LDFT2002.10.09.]UAAddedthissection.zThesamethingsaredone toJ^eachoftheShapQe%ɷ-(vectorsp}'aths ,Lellipses#,Lcir}'cles,Lr}'egffpolygons9?,Landr}'ectangles.꣫,soI'veputthecoGdeinthisUUnamedsection.qEachtimeitit'sused,iteruisaniteratorforadi erentvector.hProGcessUUvectorsforun lldr}'aw/()@1397i f( iter):setff llffdr}'awffvalueN\(UNFILLDRAW5J);( iter):setffdr}'awffcolor>(staticus4wcast4}hColor$i(0));( iter):setff llffc}'olor5I:(staticus4wcast4}hColor$i(0));( iter):setffdashffp}'atternFݖ(ddashe}'d#G);( iter):setffp}'enʘ(pp}'en6#); -g ThisXcoen썫422UNFILLDRA8W"S3DLDFPRÎGx1394n@P1394.hDe neUUSolid (functions@1295i+ +bTODO:Checkwhat lldra9wandun lldra9wUUmeaninMET*APOSTandMETAFONT.hDeclareUUSolid (functions@1299i+ +virtual0v9oidJ}un lldr}'awvᩫ(const#YstringAA]ddashe}'dh =e""k;const stringBpp}'en\ū=e"";Picture&%!pictur}'eG=curr}'entffpictureD߫)UUconst*;8n썫426UNFILLDRA8W"S3DLDFPRÎGx1399n@P1399.hDe neUUSolid (functions@1300i+ v9oid"Solid={::un lldr}'aw-d(const*string?Oddashe}'db;constJstring@pp}'enV0;Picture* &2c(pictur}'eQk)UUconst -fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Solid::unfkilldraw():";"\n" ush;Solid0.5/s=JG=cr}'eateffnewffsolidIӫ();s w=thisϫ;for%舫(v9ectorHhP9ath湷 i::Bc}'onstffiteratorCiterW=sw~ wp}'aths#Ʊ:b}'egin();iter6=sw~ wp}'aths:endಫ();++Giter")fhProGcessUUvectorsforun lldr}'aw/()@1392ig=for+=for%舫(v9ectorHhCircle!&i::Bc}'onstffiteratorCiterW=sw~ wcir}'cles(}:b}'egin();iter6=sw~ wcir}'cles:endಫ();++Giter")fhProGcessUUvectorsforun lldr}'aw/()@1392igfor%舫(v9ectorHhEllipse%>.*>/i::Bc}'onstffiteratorCiterW=sw~ wellipses+:b}'egin();iter6=sw~ wellipses:endಫ();++Giter")fhProGcessUUvectorsforun lldr}'aw/()@1392igfor'$(v9ectorHhRegus4wP9olygonFKi::Bc}'onstffiteratorCiterZ=sf~fr}'egffpolygonsDYi:b}'egin();2iterE6=sw~ wr}'egffpolygonsAji:endಫ();++Giter")fhProGcessUUvectorsforun lldr}'aw/()@1392igfor&6(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW:=IAsA~ Br}'ectangles7:b}'egin();NiterbU6=IAsA~ Br}'ectangles:endಫ();2++>G%iterO#)fhProGcessUUvectorsforun lldr}'aw/()@1392igpictur}'e5+=H%Ddynamicus4wcasthShapQe"Ab'Aci(s);if(DEBUGY)fc}'out4 R"Exiting Solid::unfiklldraw():">"\n" ush;g -g1395. PuttingTSolidtogether.1396. ThisUUiswhat'scompiled. +fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Solid::unfkilldraw():";"\n" ush;Solid0.5/s=JG=cr}'eateffnewffsolidIӫ();s w=thisϫ;for%舫(v9ectorHhP9ath湷 i::Bc}'onstffiteratorCiterW=sw~ wp}'aths#Ʊ:b}'egin();iter6=sw~ wp}'aths:endಫ();++Giter")fhProGcessUUvectorsforun lldr}'aw/()@1397ig=for+=for%舫(v9ectorHhCircle!&i::Bc}'onstffiteratorCiterW=sw~ wcir}'cles(}:b}'egin();iter6=sw~ wcir}'cles:endಫ();++Giter")fhProGcessUUvectorsforun lldr}'aw/()@1397igfor%舫(v9ectorHhEllipse%>.*>/i::Bc}'onstffiteratorCiterW=sw~ wellipses+:b}'egin();iter6=sw~ wellipses:endಫ();++Giter")fhProGcessUUvectorsforun lldr}'aw/()@1397igfor'$(v9ectorHhRegus4wP9olygonFKi::Bc}'onstffiteratorCiterZ=sf~fr}'egffpolygonsDYi:b}'egin();2iterE6=sw~ wr}'egffpolygonsAji:endಫ();++Giter")fhProGcessUUvectorsforun lldr}'aw/()@1397igfor&6(v9ectorHhRectangle5:i::Bc}'onstffiteratorCiterW:=IAsA~ Br}'ectangles7:b}'egin();NiterbU6=IAsA~ Br}'ectangles:endಫ();2++>G%iterO#)fhProGcessUUvectorsforun lldr}'aw/()@1397igpictur}'e5+=H%Ddynamicus4wcasthShapQe"Ab'Aci(s);if(DEBUGY)fc}'out4 R"Exiting Solid::unfiklldraw():">"\n" ush;g +g1400. PuttingTSolidtogether.1401. ThisUUiswhat'scompiled. hIncludeUU les@11i hV*ersionUUcontrolidenti er@10i -hDe neUUclass5Solid;1291i -hDe neUUstatic".const@Solid]dataUUmembGers@1292i -hDe neUUSolid (functions@1295iHn썷x13973DLDFPRÎGڶTPUTTINGXSOLIDTOGETHER423n@P1397. ThisUUiswhat'swrittentosolids.h.hsolids.h51397i -hDe neUUclass5Solid;1291i1398. Solidffs4#F -aced(solfaced.web).c9Ȅ`> 8BeginTLogJʄ`> +hDe neUUclass5Solid;1296i +hDe neUUstatic".const@Solid]dataUUmembGers@1297i +hDe neUUSolid (functions@1300iB۠n썷x14023DLDFPRÎGڶTPUTTINGXSOLIDTOGETHER427n@P1402. ThisUUiswhat'swrittentosolids.h.hsolids.h51402i +hDe neUUclass5Solid;1296i1403. Solidffs4#F +aced(solfaced.web).N99Ȅ`+U 8Log)j`+U [LDFT2002.09.26.]Y;CreatedUUthis le. -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i+1399. IncludeT les.hIncludeUU les@11i+#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"#include'~"ellipses.h"#include'~"circles.h"#include'~"solids.h"1400. Solidffs4#F +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`GhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: solfaced.web,vk 1.2 2003/12/10 16:4Ơ5:17 lfinsto1 Exp $">L̫;1404. IncludeT les.hIncludeUU les@11i+#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"#include'~"ellipses.h"#include'~"circles.h"#include'~"solids.h"1405. Solidffs4#F acedTclassde nition.hDe neUUclass5Solidus4wF -aced]k{1400i +aced]k{1405i class$RSolidus4wF acedc+x:qpublic'SolidCf protected:o:unsigned57shortSfac}'esiKA;unsignedD7shortbvertic}'es;unsignedD7shortbe}'dgesyʫ; public)=֫:hDeclareUUSolidus4wF -acedA{functions@1401i -g; ThisXco 8BeginTLogJʄ`> +aced]k{1405i1411. CubQoid(cuboid.web).N99Ȅ`+U 8Log)j`+U [LDFT2002.04.22.]X9Created this le.-WhenI'vefoundoutwhattheEnglishwordisfor\Quader",NI'llchangeitUUglobally*. [LDFT2002.04.22.]W2CubQoidisFLthe rstthree-dimensionalob8jectI'vede ned.oI'vejustquicklyputittogetherfor?useinadrawing.jUltimately*,CI'dliketoderiveitfromShapQe"+,Cwhichwillrequirede ningversionsofalltheUUpurevirtual((functionsinShapQe"Ab. [LDFT2002.04.23.]ZChangedQuader+toCubQoid*<. 8Haven'tchangednameof le,RbGecausethisismorecomplicated,UUbGecauseofRCS(thesourcecodecontrolsystem). [LDFT2002.05.03.]Z#ChangedR=thenameofthis lefromquader.webtocuboid.web.hThismeansthatifyou.needtocomparethis lewithrevisionsearlierthantheinitialversionofthis le,$you'llhavetocheckrevisionsUUofquader.web. -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>` -format3c(Cub}'oid[*9SolidhV*ersionUUcontrolidenti er@10i+1407. IncludeT les.hIncludeUU les@11i+#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"#include'~"ellipses.h"#include'~"circles.h"#include'~"solids.h"#include'~"solfaced.h"1408. CubQoidTclassde nition.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.04.22.]Y;AddedUUthisclass5declaration. -[LDFT2003.08.10.]Y;RemovedUUdihe}'dralffangle@.Ȅ` 8EndTLogA>`hDe neUUclass5CubQoidGD1408ian썫426CUBOIDXCLASSDEFINITION4@3DLDFPRÎGx1408n@P +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`G +format3c(Cub}'oid[*9SolidhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: cuboid.web,v 1k.2 2003/12/10 15:26:Ơ04 lfinsto1 Exp $"3ҫ;1412. IncludeT les.hIncludeUU les@11i+#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"#include'~"ellipses.h"#include'~"circles.h"#include'~"solids.h"#include'~"solfaced.h"1413. CubQoidTclassde nition.9Ȅ`+U 8Log)j`+U +[LDFT2002.04.22.]Y;AddedUUthisclass5declaration.]͠n썫430CUBOIDXCLASSDEFINITION4@3DLDFPRÎGx1413n@P +[LDFT2003.08.10.]Y;RemovedUUdihe}'dralffangle@.Ȅ`GhDe neUUclass5CubQoidGD1413i class$RCubQoidMA:qpublic'Solidus4wF -acedePf +acedePf protected:o:real.height6y;real*0widthC;Ы;real*0depthC;ϫ; -public)=֫:hDeclareUUCubQoid+Dfunctions@1410i -g; ThisXco};const real7 df=0);sn썫428CENTER,XHEIGHT,WIDTH,DEPTH,ANDANGLES 3DLDFPRÎGx1415n@P1415.hDe neUUCubQoid+Dfunctions@1411i+ +=0;constJreal6xz>f=0);qSn썫432CENTER,XHEIGHT,WIDTH,DEPTH,ANDANGLES 3DLDFPRÎGx1420n@P1420.hDe neUUCubQoid+Dfunctions@1416i+ CubQoid0O::CubQoid&O(constdP9oint=-&EUKcI&;const Areal6fh<];const Areal6fw>j;const Areal6fd<0;const Areal6fx<;const2realH3yM+;constJreal6xz;) :qheight(h);width(wm);depth(d4r)UUfbQool-hDEBUGK.٫=falsev\;=trueĒ=onfffr}'eeffstoreNl =falsev\;doffoutputAM=true;pr}'ojectiveffextremeshS:r}'esizei(6;0);c}'enter2Х=c;fac}'es-=6;vertic}'es8X=8;e}'dges.1=12 ;P9oint2pts@E[9];pts!ڨ[1]:shift}(:58width; qƱ:5qķ8height~+; qƱ:58depth);pts!ڨ[2]:shift}(:5 8width; qƱ:5qķ8height~+; qƱ:58depth);pts!ڨ[3]:shift}(:5 8width;:5 8height~+; qƱ:5qķ8depth);pts!ڨ[4]:shift}(:58width;:5 8height~+; qƱ:5qķ8depth);pts!ڨ[5]:shift}(:58width; qƱ:5qķ8height~+;:5 8depth);pts!ڨ[6]:shift}(:5 8width; qƱ:5qķ8height~+;:5 8depth);pts!ڨ[7]:shift}(:5 8width;:5 8height~+;:58depth);pts!ڨ[8]:shift}(:58width;:5 8height~+;:58depth);for%舫(in9ti=0;i 9 <6;i++)fr}'ectanglesIH:pushffb}'ack+XR(Rectangle3?::9cr}'eateffnewffr}'ectangle());gr}'ectangles?G[0]~setx(pts ڦ[1];ptsN[2];pts[3];pts[4]);=front=r}'ectangles?G[1]~setx(pts ڦ[5];ptsN[6];pts[7];pts[8]);=back=r}'ectangles?G[2]~setx(pts ڦ[1];ptsN[4];pts[8];pts[5]);=left=r}'ectangles?G[3]~setx(pts ڦ[2];ptsN[6];pts[7];pts[3]);=right=r}'ectangles?G[4]~setx(pts ڦ[3];ptsN[7];pts[8];pts[4]);=top=r}'ectangles?G[5]~setx(pts ڦ[1];ptsN[2];pts[6];pts[5]);=bGottom=r}'otate.o@(x;y;zƫ);shift((cS۫);if(DEBUGY)for/艫(in9ti=1;i 9 <9;i++)ptsڦ[iq]:dotlab}'el!(i); -g1416. Pseudo-constructorTfordynamicalloQcation.[LDFT2002.04.22.]Z6AddedUUthisfunction.hDeclareUUCubQoid+Dfunctions@1410i+ -static)HCubQoidQɷVcr}'eateffnewffcub}'oidx(const*CubQoidFϑKϒcRꅫ=0);z٠n썷x14173DLDFPRÎGuPSEUDO-CONSTRUCTORXFORDYNAMICALLOCAJTION429n@P1417.hDe neUUCubQoid+Dfunctions@1411i+ +g1421. Pseudo-constructorTfordynamicalloQcation.[LDFT2002.04.22.]Z6AddedUUthisfunction.hDeclareUUCubQoid+Dfunctions@1415i+ +static)HCubQoidQɷVcr}'eateffnewffcub}'oidx(const*CubQoidFϑKϒcRꅫ=0);xEn썷x14223DLDFPRÎGuPSEUDO-CONSTRUCTORXFORDYNAMICALLOCAJTION433n@P1422.hDe neUUCubQoid+Dfunctions@1416i+ CubQoid27CubQoid]::cr}'eateffnewffcub}'oidO(const*CubQoidFϑKϒcP#m) fCubQoid<AqI>=newϜ(CubQoid%O);if(c6=0) që=c ;qҬ~ҭonfffr}'eeffstoreW>=true;qҬ~ҭdoffoutputJ=true;qҬ~ҭpr}'ojectiveffextremesp:r}'esizei(6;0);return7漱qCubQoidc() ffor%舫(v9ectorHhRectangle5:i::Biter}'ator)7iter=+M=r}'ectangles.g]:b}'egin();iter6=r}'ectangles:endಫ();iterJ++")fdelete?ƽDƾiterU;gr}'ectangles?G:cle}'ar(٫(); -g1420. Assignmen9t.hDeclareUUCubQoid+Dfunctions@1410i+ -v9oid"opQeratorN=V[(const*CubQoidFϑ&NcRꊫ);1421.hDe neUUCubQoid+Dfunctions@1411i+ +g1425. Assignmen9t.hDeclareUUCubQoid+Dfunctions@1415i+ +v9oid"opQeratorN=V[(const*CubQoidFϑ&NcRꊫ);1426.hDe neUUCubQoid+Dfunctions@1416i+ v9oid"CubQoidIMw::O۵opQerator{rj=9(const*CubQoidFϑ&NcRꊫ) fthis"븟~(SolidCi::IopQeratoru=}U(cS۫);height2 e=c:heightEK;width/O=c:width;depth/O=c:depth; -g1422. PuttingTCubQoidtogether.ThisUUiswhat'scompiled. +g1427. PuttingTCubQoidtogether.ThisUUiswhat'scompiled. hIncludeUU les@11i hV*ersionUUcontrolidenti er@10i -hDe neUUclass5CubQoidGD1408i -hDe neUUCubQoid+Dfunctions@1411i3n썫430PUTTINGXCUBOIDTOGETHERί<3DLDFPRÎGx1423n@P1423. ThisUUiswhat'swrittentocuboid.h.hcuboid.h51423i -hDe neUUclass5CubQoidGD1408i1424. P9olyhedra(polyhedra.web).쬫[LDFT2002.11.12.]mTOUUDO:Setc}'enter"5forDoQdecahedronL,Icosahedron<ϫ,UUandT;runcffOctahe}'dronS|.qFindouthowtosetitforT +hDe neUUclass5CubQoidGD1413i +hDe neUUCubQoid+Dfunctions@1416in썫434PUTTINGXCUBOIDTOGETHERί<3DLDFPRÎGx1428n@P1428. ThisUUiswhat'swrittentocuboid.h.hcuboid.h51428i +hDe neUUclass5CubQoidGD1413i1429. P9olyhedra(polyhedra.web).쬫[LDFT2002.11.12.]mTOUUDO:Setc}'enter"5forDoQdecahedronL,Icosahedron<ϫ,UUandT;runcffOctahe}'dronS|.qFindouthowtosetitforT etrahedronAY. -[LDFT2002.11.12.]XFTODO:AddassignmentopGeratorsforP9olyhedra6r!1]TheindividualtypGeswillneedthereown,UUbuttheycancallP9olyhedron>c&::DdopQeratorp=xO7().c9Ȅ`> 8BeginTLogJʄ`> +[LDFT2002.11.12.]XFTODO:AddassignmentopGeratorsforP9olyhedra6r!1]TheindividualtypGeswillneedthereown,UUbuttheycancallP9olyhedron>c&::DdopQeratorp=xO7().N99Ȅ`+U 8Log)j`+U [LDFT2002.09.26.]Y;CreatedUUthis le. -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i+1425. IncludeT les.hIncludeUU les@11i+#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"#include'~"ellipses.h"#include'~"circles.h"#include'~"solids.h"#include'~"solfaced.h"1426. P9olyhedronnclassde nition.[LDFT2002.10.06.]YʻP9olyhedronpbismeanttobGeusedonlyasabaseclass,UUsothere'snoneedforconstructorsorsettingfunctions. -TO2=DO:2v[LDFT2003.08.15.]TIf2vIaddanyfunctions,iIshouldaddanexplanationto\@node?PolyhedronGetstart"UUinDOCUMENTATION/gssolfig.texiabGoutabstractornon-abstractbaseclasses.r9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.08.]YGotridofpurevirtual).functionP9olyhedron>멫::getffnet 4̫(). OI'vemadeitstatic#4intheclassesUUderivedfromP9olyhedron=c",whichmakesmoresense.qvirtual)functionsmustbGenon-static.Ȅ` 8EndTLogA>` -format3c(Polyhe}'dronm R}'egffPolygonhDe neUUclass5P9olyhedron\w1426i +[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. +[LDFT2003.12.10.]YQPuttheversioncontrolidenti ersbackintomyreleaseversionsfor3DLDF1.1.4.MI'vealready"putsomeofthembackin,,nowI'mdoingtherestofthem.`However,,thereleaseversionsarenowintheirUUownRCSrepGository*.Ȅ`GhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: polyhed.web,v k1.3 2003/12/10 16:27Ơ:16 lfinsto1 Exp $"9 ϫ;1430. IncludeT les.hIncludeUU les@11i+#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"#include'~"ellipses.h"#include'~"circles.h"#include'~"solids.h"#include'~"solfaced.h"1431. P9olyhedronnclassde nition.[LDFT2002.10.06.]YʻP9olyhedronpbismeanttobGeusedonlyasabaseclass,UUsothere'snoneedforconstructorsorsettingfunctions. +TO2=DO:2v[LDFT2003.08.15.]TIf2vIaddanyfunctions,iIshouldaddanexplanationto\@node?PolyhedronGetstart"UUinDOCUMENTATION/gssolfig.texiabGoutabstractornon-abstractbaseclasses.9Ȅ`+U 8Log)j`+U +[LDFT2002.11.08.]YGotridofpurevirtual).functionP9olyhedron>멫::getffnet 4̫(). OI'vemadeitstatic#4intheclassesUUderivedfromP9olyhedron=c",whichmakesmoresense.qvirtual)functionsmustbGenon-static.Ȅ`G +format3c(Polyhe}'dronm R}'egffPolygonn썷x14313DLDFPRÎGPOL +YHEDR9ONXCLASSDEFINITION435n@PhDe neUUclass5P9olyhedron\w1431i class$RP9olyhedronbCt:qpublic'Solidus4wF acedePf -protected:o:unsigned57shortSnumb}'erffofffpolygonfftypesЫ;real*0fac}'effradius[;;On썷x14263DLDFPRÎGPOL -YHEDR9ONXCLASSDEFINITION431n@Preal*0e}'dgeffradius\«; real*0vertexffr}'adiusd#; -public)=֫:hDeclareUUP9olyhedron@wfunctions@1427i -g; ThisXco 8BeginTLogJʄ`> +protected:o:unsigned57shortSnumb}'erffofffpolygonfftypesЫ;real*0fac}'effradius[;;real*0e}'dgeffradius\«;real*0vertexffr}'adiusd#; +public)=֫:hDeclareUUP9olyhedron@wfunctions@1432i +g; ThisXco`hDeclareUUP9olyhedron@wfunctions@1427i#if 0 -virtual/v9ectorO8hP9ointHiUUinterse}'ctionffpointsT4(const*Regus4wP9olygonb&jɱroݫ)UUconst*;#endif ThisXcoc&::interse}'ctionffpointsR(const*Regus4wP9olygonb&jɱroݫ)UUconst fv9ector3JhP9ointHiUUv;v9ector3JhP9ointHiUUw ;for%<ث(v9ectorHhRegus4wP9olygonD(YI(Zi::Bc}'onstffiteratorCiter0\x=r}'egffpolygons8h:b}'egin();TMiter0JL6=r}'egffpolygons:endಫ();2++>G%iter0Tv )ffor0Y(v9ectorHhRegus4wP9olygonEE|JE}i::Bc}'onstffiteratorCiter1]6 =+iter07+1;qpiter1$6=+r}'egffpolygons9w{:endಫ();<++HG&iter1^v )f(v/٫=( iter0 .):interse}'ctionffpointsQ߫( iter1);(c}'out> S"v.size() == "Onv:size\()endl ush;(for9芫(v9ectorHhP9ointHi::Biter}'ator)7ptffiterIHK=v:b}'egin();ptffiter$6=v:endಫ();++Gptffiter./)2w9m:pushffb}'ack+XR(ptffiter!);ggreturn7漱w?T^; -g#endif ThisXco 8BeginTLogJʄ`> -[LDFT2002.11.12.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`1431. T -etrahedronTclassde nition.9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.12.]Y;AddedUUthissection.Ȅ` 8EndTLogA>` -format3c(T;etr}'ahedronpUPolyhe}'dronhDe neUUclass5T -etrahedrona1431i +g#endif ThisXco 8BeginTLogJʄ`> -[LDFT2002.11.12.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`hDe neUUstatic".const@T -etrahedron)dataUUmembGers@1432i +etrahedronEFfunctions@1439i +g; ThisXcoT -etrahedron~y٫::dihe}'dralffangleA=PIZ8(70 8+32=60:0 )=180:0!;n썷x14323DLDFPRÎG:bDEFINEXST -ATICTCONSTTETRAHEDR9ONDÎAJTAMEMBERS433n@PThisXco 8BeginTLogJʄ`> -[LDFT2002.11.12.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUT -etrahedronEFfunctions@1434i +etrahedron~y٫::dihe}'dralffangleA=PIZ8(70 8+32=60:0 )=180:0!;n썷x14373DLDFPRÎG:bDEFINEXST +ATICTCONSTTETRAHEDR9ONDÎAJTAMEMBERS437n@PThisXcoK&.o=vertic}'es8X=4;e}'dges.1=6;c}'enter2Х=INVALID_POINTGY;=fromUUP9olyhedron=c".o=numb}'erffofffpolygonfftypesR9=1;fac}'effradiusG%=e}'dgeffradius7j«=vertexffr}'adius>=INVALID_REALBM\;triangleffr}'adiusWUn=INVALID_REALBM\;=F*romUUT etrahedronAY.o= -gSeeXalsosections1438,1439,1440,1442,1444,and1446.ThisXco 8BeginTLogJʄ`> +gSeeXalsosections1443,1444,1445,1447,1449,and1451.ThisXco`hDeclareUUT -etrahedronEFfunctions@1434i+ +[LDFT2002.08.12.]Y;RewroteUUthisfunction.qItnowworkspropGerly*.Ȅ`GhDeclareUUT +etrahedronEFfunctions@1439i+ T -etrahedronH(constP9oint&E pJ ;const Rreal7$triangleffdiameterJ;real,angleffx9a;real2angleffyRk;real]angleffz8]L)fUUbQoolDEBUG:,=true;=false=onfffr}'eeffstoreXl =falsev\;=fromUUSolid,.o=doffoutputKN=true;fac}'es7=4;=fromUUSolidus4wF @@ -5262,12 +5334,12 @@ ];in9t/i3;for/艫(i9 =0;i 9 <3;++Gi)ptsڦ[iq]=r}'egffpolygons8h[0]~getffp}'oint+bI(i);r}'egffpolygonsSS[1]~r}'otateo?(pts ڦ[0];ptsN[1];anglej);r}'egffpolygonsSS[2]~r}'otateo?(pts ڦ[2];ptsN[0];anglej);r}'egffpolygonsSS[3]~r}'otateo?(pts ڦ[1];ptsN[2]; qangle!2);#if 0for/艫(i9 =0;i 9 <3;++Gi)ptsڦ[iq]:lab}'elt(i;"" );#endiffor/艫(i9 =3;i 9 <7;++Gi)f(pts5ڪ[iq]=r}'egffpolygons8h[iԷ838]~getffc}'enter0=H();#if 0(pts5ڪ[iq]:lab}'elt(i;"" );#endifgpts+ک[7]=r}'egffpolygons8h[3]~getffp}'oint+bI(0);#if 0pts+ک[7]:lab}'elt(7;"" -);#endifpts+ک[8]=me}'diate%(pts ڦ[0];ptsN[1]);pts+ک[9]=me}'diate%(pts ڦ[1];ptsN[2]);pts+ک[10 -]=me}'diate%(pts ڦ[2];ptsN[0]);#if 0for/艫(i9 =8;i 9 <11 ;i++)ptsڦ[iq]:lab}'elt(i);#endifusingisthedistancealongoneoftheselinesegmentstotheintersectionpGointUUdividedbythelengthoftheentirelinesegment.q[LDFT2002.08.12.] +);#endifpts+ک[8]=pts[0]:me}'diate"u(pts ڦ[1]);pts+ک[9]=pts[1]:me}'diate"u(pts ڦ[2]);pts+ک[10 +]=pts[2]:me}'diate"u(pts ڦ[0]);#if 0for/艫(i9 =8;i 9 <11 ;i++)ptsڦ[iq]:lab}'elt(i);#endifusingisthedistancealongoneoftheselinesegmentstotheintersectionpGointUUdividedbythelengthoftheentirelinesegment.q[LDFT2002.08.12.] Since/thisratioshouldbGethesameforallT;etr}'ahedra4b,;ethere'snoneedtorecalculateiteachtimeaT etrahedronCkisconstructed.Inaddition,-intersectionscan'talwaysbGefound,-becauseofinaccuraciescausedUUbyrotatingthetriangles.q[LDFT2002.08.12.] Therefore,xgI'veqccalculateddistanceusingthecommented-outcoGdebelow,xgandnowsimplyusethevqalueIfound.q[LDFT2002.08.12.]hDe neUUT -etrahedronEFfunctions@1435i+ +etrahedronEFfunctions@1440i+ real /distanc}'eGD=0:74997889995574951171875}M;#if 0 P9oint(P06=P9ointad::%interse}'ctionffpointsx(pts ڦ[0];ptsN[6];pts[1];pts[5]):pt 䝫; P0c:show("P0 = 0, 6, 1, 5:"_2); @@ -5286,70 +5358,70 @@ c}'outY8:pr}'ecision'6(25 ); c}'out P"distance == "Ondistanc}'e)-endl ush; -c}'outY8:pr}'ecision'6(6);#endif1440.hDe neUUT -etrahedronEFfunctions@1435i+ -c}'enter(Ф=me}'diate%(pts ڦ[1];ptsN[5];distanc}'e%); +c}'outY8:pr}'ecision'6(6);#endif1445.hDe neUUT +etrahedronEFfunctions@1440i+ +c}'enter(Ф=pts[1]:me}'diate"u(pts ڦ[5];distanc}'e%); for臫(i9 =0;i 9 <4;++Gi)r}'egffpolygons:P[iq]~shift~(c}'enter#Щ); c}'enter& :shift}(c}'enter#Щ); if(angleffx#L6=0 _8angleffy%k6=0_8angleffz$n6=0)ffor%舫(i9 =0;i 9 <4;++Gi)r}'egffpolygons:P[iq]~r}'otateo?(angleffx ܱ;angleffy"3;angleffz!); g if(p6=origin9)fc}'enter2Х=p;for%舫(i9 =0;i 9 <4;++Gi)r}'egffpolygons:P[iq]~shift~(p); g -return*f;qǷgen썫436SETTINGXFUNCTIONu=3DLDFPRÎGx1441n@P1441. Setting'function.[LDFT2002.11.12.][AG!!Thisfworks, 8BeginTLogJʄ`> -[LDFT2002.11.12.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUT -etrahedronEFfunctions@1434i+ -v9oid#=set06(constj{P9oint=&EapJi;const #real7*diameterffoffftriangle!;realangleffx 8BeginTLogJʄ`> +g1448. GetYnet.[LDFT2002.11.12.]ZUnlikethegetffnet"()functionsforsomeoftheotherP9olyhedra6k:,]thisfunctionUUhasno\bQoolfdoffhalf:"argument.qItdoGesn'tpayforaT +etrahedronAY.9Ȅ`+U 8Log)j`+U [LDFT2002.11.12.]Y;AddedUUthisfunction. -[LDFT2002.08.12.]Y;RemovedUUc}'enterff0+1argument.Ȅ` 8EndTLogA>`hDeclareUUT -etrahedronEFfunctions@1434i+ +[LDFT2002.08.12.]Y;RemovedUUc}'enterff0+1argument.Ȅ`GhDeclareUUT +etrahedronEFfunctions@1439i+ static)Hv9ectorH"hRegus4wP9olygonD I -iUUgetffnet"(const*real4triangleffdiametern);n썷x14443DLDFPRÎG6OGETXNET437n@P1444.hDe neUUT -etrahedronEFfunctions@1435i+ +iUUgetffnet"(const*real4triangleffdiametern);n썷x14493DLDFPRÎG6OGETXNET441n@P1449.hDe neUUT +etrahedronEFfunctions@1440i+ v9ector)IhRegus4wP9olygonD I iUUT etrahedronB]::getffnet 4̫(const*real4triangleffdiametern) fv9ector3JhRegus4wP9olygonD I iUUtriangles).;in9t%i);for%舫(i9 =0;i 9 <4;i++)triangles+ٱ:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8());triangles:۫[0]~setx(origin!;3;triangleffdiameterN;α;0;180);triangles:۫[1]~setx(origin!;3;triangleffdiameterN;Ϋ);P9oint2pts@E[6];for%舫(i9 =0;i 9 <3;++Gi)fpts+ک[iq]=triangles)J[0]~getffp}'oint+bI(i);gfor%舫(i9 =3;i 9 <6;++Gi)fpts+ک[iq]=triangles)J[1]~getffp}'oint+bI(iԷ838);gtriangles?ܫ[2]=triangles.J[3]=triangles.J[1];triangles:۫[1]~shift~(pts ڦ[0]8pts[4]);triangles:۫[2]~shift~(pts ڦ[0]8pts[5]);triangles:۫[3]~shift~(pts ڦ[2]8pts[4]);return7triangles^j; -g1445. Dra9wnet.[LDFT2002.11.12.][VAs#$ofthisdateit'snecessarytorotatethetrianglesintothex-yplane,YbGecauseXSP9oint::interse}'ctionffpointNګ()XShasabugthatIXRdiscoveredXSwhenItriedtocallitonP9oints&*intheC -x-zplane.kIt'snotsoterrible,FbGecauseasofthisdateit'snecessarytoputthePicture,"!inthex-yplaneinordertousetheparallelpro8jection. MThelattercurrentlyonlyworksforthex-yplane. MTOsDO:FixthebugUUandgetparallelpro8jectionontoothermajorplanestowork!U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.11.12.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUT -etrahedronEFfunctions@1434i+ -static)Hv9oidBFdr}'awffnetiE(const*real4triangleffdiametern;bQoolLmakefftabsJ=true);n썫438DRA8WXNET-i3DLDFPRÎGx1446n@P1446.hDe neUUT -etrahedronEFfunctions@1435i+ +g1450. Dra9wnet.[LDFT2002.11.12.][VAs#$ofthisdateit'snecessarytorotatethetrianglesintothex-yplane,YbGecauseXSP9oint::interse}'ctionffpointNګ()XShasabugthatIXRdiscoveredXSwhenItriedtocallitonP9oints&*intheC +x-zplane.kIt'snotsoterrible,FbGecauseasofthisdateit'snecessarytoputthePicture,"!inthex-yplaneinordertousetheparallelpro8jection. MThelattercurrentlyonlyworksforthex-yplane. MTOsDO:FixthebugUUandgetparallelpro8jectionontoothermajorplanestowork!9Ȅ`+U 8Log)j`+U +[LDFT2002.11.12.]Y;AddedUUthisfunction.Ȅ`GhDeclareUUT +etrahedronEFfunctions@1439i+ +static)Hv9oidBFdr}'awffnetiE(const*real4triangleffdiametern;bQoolLmakefftabsJ=true);3n썫442DRA8WXNET-i3DLDFPRÎGx1451n@P1451.hDe neUUT +etrahedronEFfunctions@1440i+ v9oid"T etrahedronb::dr}'awffnet(A(const*real4triangleffdiametern;bQoolLmakefftabsG|) fv9ector3JhRegus4wP9olygonD I iUUv Q*=getffnet!(triangleffdiameterL&);in9t%i);for%舫(i9 =0;i 9 <4;i++)fv#4[iq]~r}'otateo?(90 );v#4[iq]~dr}'aw(ܫ();v#4[iq]~getffc}'enter0=H():lab}'elt(i;"" );gif(:makefftabs,n)return%e;P9oint2pts@E[32 -];pts!ڨ[0]=vի[2]~getffp}'oint+bI(1);pts!ڨ[1]=vի[2]~getffp}'oint+bI(2);pts!ڨ[2]=vի[1]~getffp}'oint+bI(2);pts!ڨ[3]=vի[1]~getffp}'oint+bI(0);pts!ڨ[4]=vի[3]~getffp}'oint+bI(0);pts!ڨ[5]=vի[3]~getffp}'oint+bI(1);pts!ڨ[6]=me}'diate%(pts ڦ[0];ptsN[5];:075q);pts!ڨ[7]=me}'diate%(pts ڦ[5];ptsN[0];:075q);pts!ڨ[8]=pts[6];pts!ڨ[9]=pts[7];pts!ڨ[8]=UOpts /[9]:shift}(0;0;1);pts!ڨ[10 +];pts!ڨ[0]=vի[2]~getffp}'oint+bI(1);pts!ڨ[1]=vի[2]~getffp}'oint+bI(2);pts!ڨ[2]=vի[1]~getffp}'oint+bI(2);pts!ڨ[3]=vի[1]~getffp}'oint+bI(0);pts!ڨ[4]=vի[3]~getffp}'oint+bI(0);pts!ڨ[5]=vի[3]~getffp}'oint+bI(1);pts!ڨ[6]=pts[0]:me}'diate"u(pts ڦ[5];:075q);pts!ڨ[7]=pts[5]:me}'diate"u(pts ڦ[0];:075q);pts!ڨ[8]=pts[6];pts!ڨ[9]=pts[7];pts!ڨ[8]=UOpts /[9]:shift}(0;0;1);pts!ڨ[10 ]=pts[0];pts!ڨ[11 ]=pts[5];pts!ڨ[10 ]:r}'otateo>(pts ڦ[6];ptsN[8]; qƫ110q);pts!ڨ[11 ]:r}'otateo>(pts ڦ[7];ptsN[9];110);pts!ڨ[10 -]=me}'diate%(pts ڦ[6];ptsN[10];1:5q);pts!ڨ[11 -]=me}'diate%(pts ڦ[7];ptsN[11];1:5q);#if 0for%舫(i9 =0;i 9 <8;i++)ptsڦ[iq]:dotlab}'el!(i);pts!ڨ[10 +]=pts[6]:me}'diate"u(pts ڦ[10];1:5q);pts!ڨ[11 +]=pts[7]:me}'diate"u(pts ڦ[11];1:5q);#if 0for%舫(i9 =0;i 9 <8;i++)ptsڦ[iq]:dotlab}'el!(i);pts!ڨ[10 ]:dotlab}'el!(10);pts!ڨ[11 ]:dotlab}'el!(11);#endifP9ath/滱p4[6];p[0]:set x("--"\;trueo@;& qptsLl[6];& qpts[10 ];& qpts[11];& qpts[7];0);p[0]:dr}'aw(۫();pts!ڨ[12 -]=me}'diate%(pts ڦ[6];ptsN[7]);pts!ڨ[13 -]=me}'diate%(pts ڦ[10];ptsN[11]);#if 0pts!ڨ[12 +]=pts[6]:me}'diate"u(pts ڦ[7]);pts!ڨ[13 +]=pts[10]:me}'diate"u(pts ڦ[11]);#if 0pts!ڨ[12 ]:dotlab}'el!(12);pts!ڨ[13 ]:dotlab}'el!(13);#endifp[1]:set x(pts ڦ[12 ];ptsN[13]);#if 0p[1]:dr}'awffhelp*Ũ(Colors&߫::-ghelpffc}'olorY!;"" );#endifpts!ڨ[14 -]=me}'diate%(pts ڦ[12];ptsN[13]);#if 0pts!ڨ[14 -]:dotlab}'el!(14);n썷x14463DLDFPRÎG-iDRA8WXNET439n@P#endif pts!ڨ[15 -]=me}'diate%(pts ڦ[6];ptsN[7];:25q);#if 0pts!ڨ[15 +]=pts[12]:me}'diate"u(pts ڦ[13]);#if 0pts!ڨ[14 +]:dotlab}'el!(14);n썷x14513DLDFPRÎG-iDRA8WXNET443n@P#endif pts!ڨ[15 +]=pts[6]:me}'diate"u(pts ڦ[7];:25q);#if 0pts!ڨ[15 ]:dotlab}'el!(15);#endifpts!ڨ[16 ]=pts[14];pts!ڨ[16 ]:shift}(pts ڦ[15]8pts[12 @@ -5363,21 +5435,21 @@ ]:dotlab}'el!(18);#endifp[2]:set x(pts ڦ[17 ];ptsN[18]);#if 0p[2]:dr}'awffhelp*Ũ(Colors&߫::-ghelpffc}'olorY!;"" );#endiffor%舫(i9 =1;i 9 <16 ;++Gi)fpts+ک[19 -]=me}'diate%(pts ڦ[17];ptsN[18];i=16:0 );pts+ک[19 +]=pts[17]:me}'diate"u(pts ڦ[18];i=16:0 );pts+ک[19 ]:dr}'awdot#(Colors&߫::-gdefaultffc}'olord;"pencircle scaled .5jlmm"z˫);gpts!ڨ[20 ]=pts[17];pts!ڨ[21 ]=pts[18];p[3]=p[0];T ransformKԱtOeF;tt:shift}(pts ڦ[4]8pts[5]); tt:r}'otateo>(pts ڦ[4];ptsN[5]);pts!ڨ[20 ]=UOpts /[21]=UOp]O[3]=UOt;p[3]:dr}'aw(۫();for%舫(i9 =1;i 9 <16 ;++Gi)fpts+ک[19 -]=me}'diate%(pts ڦ[20];ptsN[21];i=16:0 );pts+ک[19 +]=pts[20]:me}'diate"u(pts ڦ[21];i=16:0 );pts+ک[19 ]:dr}'awdot#(Colors&߫::-gdefaultffc}'olord;"pencircle scaled .5jlmm"z˫);gtt:r}'esetƷ();tt:r}'otateo>(pts ڦ[4];ptsN[1]);pts!ڨ[20 ]=UOpts /[21]=UOp]O[3]=UOt;p[3]:dr}'aw(۫();for%舫(i9 =1;i 9 <16 ;++Gi)fpts+ک[19 -]=me}'diate%(pts ڦ[20];ptsN[21];i=16:0 );pts+ک[19 +]=pts[20]:me}'diate"u(pts ڦ[21];i=16:0 );pts+ک[19 ]:dr}'awdot#(Colors&߫::-gdefaultffc}'olord;"pencircle scaled .5jlmm"z˫);gpts!ڨ[20 ]=pts[17];pts!ڨ[21 -]=pts[18];p[3]=p[0]; 4n썫440DRA8WXNET-i3DLDFPRÎGx1446n@Ppts!ڨ[20 +]=pts[18];p[3]=p[0]; n썫444DRA8WXNET-i3DLDFPRÎGx1451n@Ppts!ڨ[20 ]=UOpts /[21]=UOp]O[3]=UOt; p[3]:dr}'aw(۫();for%舫(i9 =1;i 9 <16 ;++Gi)fpts+ک[19 -]=me}'diate%(pts ڦ[20];ptsN[21];i=16:0 );pts+ک[19 +]=pts[20]:me}'diate"u(pts ڦ[21];i=16:0 );pts+ک[19 ]:dr}'awdot#(Colors&߫::-gdefaultffc}'olord;"pencircle scaled .5jlmm"z˫);gtt:r}'esetƷ();pts!ڨ[22 ]=vի[2]~getffc}'enter0=H();pts!ڨ[23 ]=pts[22];pts!ڨ[23 @@ -5386,34 +5458,34 @@ ]=pts[17];pts!ڨ[21 ]=pts[18];p[3]=p[0];pts!ڨ[20 ]=UOpts /[21]=UOp]O[3]=UOt;p[3]:dr}'aw(۫();for%舫(i9 =1;i 9 <16 ;++Gi)fpts+ک[19 -]=me}'diate%(pts ڦ[20];ptsN[21];i=16:0 );pts+ک[19 +]=pts[20]:me}'diate"u(pts ڦ[21];i=16:0 );pts+ک[19 ]:dr}'awdot#(Colors&߫::-gdefaultffc}'olord;"pencircle scaled .5jlmm"z˫);gtt:r}'otateo>(pts ڦ[4];ptsN[1]);tt:r}'otateo>(pts ڦ[0];ptsN[2]);pts!ڨ[20 ]=pts[17];pts!ڨ[21 ]=pts[18];p[3]=p[0];pts!ڨ[20 ]=UOpts /[21]=UOp]O[3]=UOt;p[3]:dr}'aw(۫();for%舫(i9 =1;i 9 <16 ;++Gi)fpts+ک[19 -]=me}'diate%(pts ڦ[20];ptsN[21];i=16:0 );pts+ک[19 +]=pts[20]:me}'diate"u(pts ڦ[21];i=16:0 );pts+ک[19 ]:dr}'awdot#(Colors&߫::-gdefaultffc}'olord;"pencircle scaled .5jlmm"z˫);g -g1447. DoQdecahedron.1448. DoQdecahedronTclassde nition. -format3c(Do}'decahedronxLhPolyhe}'dronhDe neUUclass5DoQdecahedronk581448i +g1452. DoQdecahedron.1453. DoQdecahedronTclassde nition. +format3c(Do}'decahedronxLhPolyhe}'dronhDe neUUclass5DoQdecahedronk581453i class$RDoQdecahedronp5:qpublic'P9olyhedrondhf protected:o:static$HconstBs{realY&dihe}'dralffangleqq;=InUUradians!o=real*0p}'entagonffradiusp; -public)=֫:hDeclareUUDoQdecahedronOj8functions@1451i -g; ThisXco 8BeginTLogJʄ`> -[LDFT2003.07.18.]X#GNowpapassing\2.0"insteadof\2.0"astheargumenttoatanA().%vGCCp'3.3couldn'tcompilethisUU le,thewayUUitwasbGefore.Ȅ` 8EndTLogA>`En썷x14493DLDFPRÎG0m@DEFINEXST -ATICTCONSTDODECAHEDR9ONDÎAJTAMEMBERS441n@PhDe neUUstatic".const@DoQdecahedronݳdataUUmembGers@1449i -const(*real>DoQdecahedronc::dihe}'dralffangleA=PIZ8atan(2:0 ); ThisXcoDoQdecahedronc::dihe}'dralffangleA=PIZ8atan(2:0 ); ThisXcoK&.o=vertic}'es8X=20 ;e}'dges.1=30 ;c}'enter2Х=INVALID_POINTGY;=fromUUP9olyhedron=c".o=numb}'erffofffpolygonfftypesR9=1;fac}'effradiusG%=e}'dgeffradius7j«=vertexffr}'adius>=INVALID_REALBM\;p}'entagonffradius\=INVALID_REALBM\;=F*romUUDoQdecahedronL.o= -gSeeXalsosections1455,1456,1458,and1460.ThisXco 8BeginTLogJʄ`> +gSeeXalsosections1460,1461,1463,and1465.ThisXco`hDeclareUUDoQdecahedronOj8functions@1451i+ -DoQdecahedronR(constP9oint;-&CKpHK;const,real57fp}'entagonffdiameterG;realMangleffx;A=0;realMangleffy:=0;realangleffz@Ƒ=0);*Un썫442CONSTRÎUCTORBy3DLDFPRGx1455n@P1455.hDe neUUDoQdecahedronOj8functions@1452i+ +ransform9Q::alignffwithffaxisA|().R7I'mstillnotentirelyhappywiththewayI'vehadtospGecifyUUtherotations,seethe\TODO"noteofthisdate,above.Ȅ`GhDeclareUUDoQdecahedronOj8functions@1456i+ +DoQdecahedronR(constP9oint;-&CKpHK;const,real57fp}'entagonffdiameterG;realMangleffx;A=0;realMangleffy:=0;realangleffz@Ƒ=0);'Yn썫446CONSTRÎUCTORBy3DLDFPRGx1460n@P1460.hDe neUUDoQdecahedronOj8functions@1457i+ DoQdecahedronS::DoQdecahedronI(constBxP9oint=I&E pJ ;const real6$p}'entagonffdiameterܱ;realuangleffx8;real2angleffyRk;real]angleffz8]L)fUUbQoolDEBUG:,=falsev\;=trueĒ=if)(DEBUGY)c}'out O"Entering Dodecahedrkon::Dodecahedron().\Ơn" ush;onfffr}'eeffstoreXl =falsev\;=fromUUSolid,.o=doffoutputKN=true;fac}'es7=12 ;=fromUUSolidus4wF -aced>K&.o=vertic}'esBY=20 ;e}'dges82=30 ;numb}'erffofffpolygonfftypesR:=1;#if 0$=ST*ARTUUHERE.TODO:Mustcalculatethese!o=fac}'effradiusQ&=0;e}'dgeffradiusR=0;vertexffr}'adiusZ7=0;#endifp}'entagonffradiusf=p}'entagonffdiameterTб=2:0 ;r}'egffpolygonsVk=getffnet!(p}'entagonffdiameterR;trueo@);P9ointK&.o=vertic}'esBY=20 ;e}'dges82=30 ;numb}'erffofffpolygonfftypesR:=1;#if 0$=ST*ARTUUHERE.TODO:Mustcalculatethese!o=fac}'effradiusQ&=0;e}'dgeffradiusR=0;vertexffr}'adiusZ7=0;#endifp}'entagonffradiusf=p}'entagonffdiameterTб=2:0 ;r}'egffpolygonsVk=getffnet!(p}'entagonffdiameterR;trueo@);P9oint.n썫448CONSTRÎUCTORBy3DLDFPRGx1461n@P if(angleffx#L6=0 _8angleffy%k6=0_8angleffz$n6=0)tr:r}'otateo>(angleffx ܱ;angleffy"3;angleffz!); if(p6=origin9)c}'enter#У=3^ڱt6L:shift}(p); for臫(v9ectorHhRegus4wP9olygonD I i::Biter}'ator)7iter=+M=r}'egffpolygons8h:b}'egin();iter6=r}'egffpolygons:endಫ();++Giter")( iter)=UOt; if(DEBUGY)c}'out O"Exiting Dodecahedrokn::Dodecahedron().\nƠ"T ush; -return*f;qǷg1457. Getunet.[LDFT2002.09.29.]YChangedthisfunction..TODO.I'veremovedr}'otate()andnowrotatethepGentagonsinthex-zplaneonlyinordertoavoidhavingthey-coGordinatesbeo bysmallamounts.MVThismightbnothappGenwithr}'otatef()onceIJimplementtheroutineinSalomon(!!RvGetreference!)forcalculatingsineUUandcosineusingintegers. -const(P9ointH&Pgc}'enterff0yʫisonlyeverusedwhendoffhalf(t ffalse,IPthatis,whenthenetisn'tjustbGeinggeneratedd@forusebyaconstructor.Ifgetffnet"()is6acalledbyaconstructor,gthenetisalwaysmadewiththecenterofpGentagon0attheorigin.]Evenifc}'enterff0,isused,thenetisalwaysgeneratedinaplaneparalleltoUUthex-zplane.U9Ȅ`> 8BeginTLogJʄ`> -[LDFT2002.08.12.]Y;RemovedUUc}'enterff0+1argument.Ȅ` 8EndTLogA>`hDeclareUUDoQdecahedronOj8functions@1451i+ +return*f;qǷg1462. Getunet.[LDFT2002.09.29.]YChangedthisfunction..TODO.I'veremovedr}'otate()andnowrotatethepGentagonsinthex-zplaneonlyinordertoavoidhavingthey-coGordinatesbeo bysmallamounts.MVThismightbnothappGenwithr}'otatef()onceIJimplementtheroutineinSalomon(!!RvGetreference!)forcalculatingsineUUandcosineusingintegers. +const(P9ointH&Pgc}'enterff0yʫisonlyeverusedwhendoffhalf(t ffalse,IPthatis,whenthenetisn'tjustbGeinggeneratedd@forusebyaconstructor.Ifgetffnet"()is6acalledbyaconstructor,gthenetisalwaysmadewiththecenterofpGentagon0attheorigin.]Evenifc}'enterff0,isused,thenetisalwaysgeneratedinaplaneparalleltoUUthex-zplane.9Ȅ`+U 8Log)j`+U +[LDFT2002.08.12.]Y;RemovedUUc}'enterff0+1argument.Ȅ`GhDeclareUUDoQdecahedronOj8functions@1456i+ static)Hv9ectorH"hRegus4wP9olygonD I -iUUgetffnet"(const*real4p}'entagonffdiameter툱;bQoolLdoffhalf>s=falsev\);Un썷x14583DLDFPRÎG6OGETXNET445n@P1458.hDe neUUDoQdecahedronOj8functions@1452i+ +iUUgetffnet"(const*real4p}'entagonffdiameter툱;bQoolLdoffhalf>s=falsev\);Qn썷x14633DLDFPRÎG6OGETXNET449n@P1463.hDe neUUDoQdecahedronOj8functions@1457i+ v9ector)IhRegus4wP9olygonD I iUUDoQdecahedronM::getffnet 4̫(const*real4p}'entagonffdiameter툱;bQoolLdoffhalf;) fin9t%i);v9ector3JhRegus4wP9olygonD I @@ -5466,13 +5538,13 @@ 0++)2if=(p}'ents[iq]~getffp}'oint+bI(jī):getffyt()6=0)f<c}'errR?U"ERROR! In Dodecahedlron::get_net():\n"U"y-coordinate != 0!\ln"{зP"You'd better fix this!\n\n"M4 ush;2ggreturnAp}'entsYwi;gfor%舫(i9 =6;i 9 <12 ;i++)fp}'ents5:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8());#p}'ents:[iq]=p}'entsWū[iԷ868];p}'ents5[iq]~r}'otateo?(0;180);gpts!ڨ[0]=p}'entsWī[11 ]~getffp}'oint+bI(0);pts!ڨ[1]=p}'entsWī[5]~getffp}'oint+bI(1);for%舫(i9 =6;i 9 <12 ;++Gi)p}'ents[iq]~shift~(pts ڦ[1]8pts[0]);for%舫(i9 =0;i 9 <12 ;++Gi)ffor/艫(in9tjӫ=0;j w<5;j 0++)(if3(p}'ents[iq]~getffp}'oint+bI(jī):getffyt()6=0)f2c}'errH}q"ERROR! In DodecahedlNJron::get_net():\n"ϕ"y-coordinate != 0!\lNJn"{F"You'd better fix this!\n\n"M3 ush;(ggreturn7p}'entsOwh; -g_n썫446DRA8WXNET-i3DLDFPRÎGx1459n@P1459. Dra9wnet.[LDFT2002.11.10.]YThisbfunctionisfordrawingthenetofaDoQdecahedronK". Normally*, thism)willbGedoneinordertomakeacardboardmodel,whichwillrequiretabsforgluingthepentagonstogether.qIfUUnotabsaredesired,passingfalseYasthemakefftabs3Jargumentwillsuppressthetabs. +g\/n썫450DRA8WXNET-i3DLDFPRÎGx1464n@P1464. Dra9wnet.[LDFT2002.11.10.]YThisbfunctionisfordrawingthenetofaDoQdecahedronK". Normally*, thism)willbGedoneinordertomakeacardboardmodel,whichwillrequiretabsforgluingthepentagonstogether.qIfUUnotabsaredesired,passingfalseYasthemakefftabs3Jargumentwillsuppressthetabs. [LDFT2002.11.10.]Y0TODO:JThearraysP9oint#pts5`̫andP9ath p)BhavetoGomanymembGers.]Inworkingonthis:function,@2I:endedupgettingridofsomeofthemembGersofthesearraysafterI'dalreadyusedmembGersfollowingUUthem.qIshouldgothroughandreassignthenumbGers,sothatnomembGersareskipped. [LDFT2002.11.10.]Y;TOUUDO:Addtheusualargumentsfordrawingand llingcommands. -[LDFT2002.11.10.]XTOHDO:Hp}'ortrait(|>doGesn'tHworkright.mFixit!!!KLUDGE:p}'ortrait(|>issettofalseABatthebGeginningUUofthisfunctionandawarningisissued.U9Ȅ`> 8BeginTLogJʄ`> +[LDFT2002.11.10.]XTOHDO:Hp}'ortrait(|>doGesn'tHworkright.mFixit!!!KLUDGE:p}'ortrait(|>issettofalseABatthebGeginningUUofthisfunctionandawarningisissued.9Ȅ`+U 8Log)j`+U [LDFT2002.11.10.]Y;AddedUUthisfunction. -[LDFT2002.11.10.]Y;T*riedUUtogetoutputinpGortraitformattowork,butitdoesn'tyet.Ȅ` 8EndTLogA>`hDeclareUUDoQdecahedronOj8functions@1451i+ -static)Hv9oidBFdr}'awffnetiE(const*real4p}'entagonffdiameter툱;bQoolLp}'ortrait?f=true;bQoolLmakefftabsJ=true);sߠn썷x14603DLDFPRÎG-iDRA8WXNET447n@P1460.:hDe neUUDoQdecahedronOj8functions@1452i+ +[LDFT2002.11.10.]Y;T*riedUUtogetoutputinpGortraitformattowork,butitdoesn'tyet.Ȅ`GhDeclareUUDoQdecahedronOj8functions@1456i+ +static)Hv9oidBFdr}'awffnetiE(const*real4p}'entagonffdiameter툱;bQoolLp}'ortrait?f=true;bQoolLmakefftabsJ=true);pn썷x14653DLDFPRÎG-iDRA8WXNET451n@P1465.:hDe neUUDoQdecahedronOj8functions@1457i+ v9oid"DoQdecahedronlk::dr}'awffnet(A(const*real4p}'entagonffdiameter툱;bQoolLp}'ortrait=6N;bQoolLmakefftabsG|) fv9ector3JhRegus4wP9olygonD I iUUv Q*=getffnet!(p}'entagonffdiameterR);for%舫(v9ectorHhRegus4wP9olygonD I @@ -5485,46 +5557,46 @@ iter):dr}'aw(۫();( iter):getffc}'enter,=G():lab}'elt(i++;"" );gif(:makefftabs,n)return%e;return4g; -g1461. Icosahedron.1462. IcosahedronTclassde nition.hDe neUUclass5Icosahedron_Ny1462i +g1466. Icosahedron.1467. IcosahedronTclassde nition.hDe neUUclass5Icosahedron_Ny1467i class$RIcosahedronev:qpublic'P9olyhedrondhf protected:o:static$HconstBs{realY&dihe}'dralffangleqq;=InUUradians!o=real*0triangleffr}'adiuskA; -public)=֫:hDeclareUUIcosahedronCyfunctions@1465i -g; :ThisXcoIcosahedron|::dihe}'dralffangleA=PIZ8asinc(2:0 =3:0); :ThisXcoIcosahedron|::dihe}'dralffangleA=PIZ8asinc(2:0 =3:0); :ThisXcoK&.o=vertic}'es8X=12 ;e}'dges.1=30 ;c}'enter2Х=INVALID_POINTGY;=fromUUP9olyhedron=c".o=numb}'erffofffpolygonfftypesR9=1;fac}'effradiusG%=e}'dgeffradius7j«=vertexffr}'adius>=INVALID_REALBM\;triangleffr}'adiusWUn=INVALID_REALBM\; -g SeeXalsosections1469,1471,and1473.ThisXco 8BeginTLogJʄ`> -[LDFT2002.10.16.]Y;De nedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUIcosahedronCyfunctions@1465i+ -IcosahedronFЫ(const)P9oint0&EͱpJ;const `real7triangleffdiameter0;realangleffx9n;real2angleffyRk;real]angleffz8]L) fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Icosahedrokn::Icosahedron().\n"  ush;onfffr}'eeffstoreNl =falsev\;=fromUUSolid,.o=doffoutputAM=true;fac}'es-=20 ;=fromUUSolidus4wF aced>K&.o=vertic}'es8X=12 ;e}'dges.1=30 ;numb}'erffofffpolygonfftypesR9=1;#if 0$=ST*ARTUUHERE.TODO:Mustcalculatethese!o=fac}'effradiusG%=0;e}'dgeffradiusH=0;vertexffr}'adiusP7=0;#endiftriangleffr}'adiusWUn=triangleffdiameterOX>=2:0 ;in9t%i);r}'egffpolygonsIR:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8());r}'egffpolygonsIR:fr}'ontI()~setx(origin!;3;triangleffdiameterN;Ϋ);P9oint2pts@E[7];for%舫(i9 =0;i 9 <3;++Gi)ptsڦ[iq]=r}'egffpolygons8h:fr}'ontI()~getffp}'oint+bI(i);for%舫(i9 =1;i 9 <6;++Gi)fr}'egffpolygonsSS:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8(r}'egffpolygons5P:fr}'ontI()));gr}'egffpolygonsIR[1]~shift~(pts ڦ[2]8pts[1]);r}'egffpolygonsIR[2]~shift~(pts ڦ[1]8pts[2]);r}'egffpolygonsIR[3]~shift~(pts ڦ[0]8pts[2]);r}'egffpolygonsIR[4]~shift~(pts ڦ[0]8pts[1]);if(DEBUGY)origin!:lab}'elt("O"F_;"" -);r}'egffpolygonsIR[5]~r}'otateo?(0;180);r}'egffpolygonsIR[5]~shift~(pts ڦ[1]8r}'egffpolygons8,0[5]~getffp}'oint+bI(0));for%舫(i9 =6;i 9 <10 ;++Gi)fr}'egffpolygonsSS:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8(r}'egffpolygons5P[5]));gr}'egffpolygonsIR[6]~shift~(pts ڦ[2]8pts[1]);r}'egffpolygonsIR[7]~shift~(pts ڦ[1]8pts[0]);r}'egffpolygonsIR[8]~shift~(pts ڦ[2]8pts[0]);r}'egffpolygonsIR[9]~shift~(pts ڦ[2]8pts[0]);r}'egffpolygonsIR[9]~shift~(pts ڦ[2]8pts[1]);pts!ڨ[3]=r}'egffpolygons8h[2]~getffp}'oint+bI(1);pts!ڨ[4]=r}'egffpolygons8h[2]~getffp}'oint+bI(0);pts!ڨ[5]=r}'egffpolygons8h[1]~getffp}'oint+bI(2);pts!ڨ[6]=r}'egffpolygons8h[1]~getffp}'oint+bI(0);real*0angleE:=180:08(dihe}'dralffangle?180:0=PI b);r}'egffpolygonsNS[9]=UOUPr}'egffpolygonsMH[8]=UOr}'egffpolygonsHH[7]~r}'otateo?(pts ڦ[3];ptsN[5]; qangle!2);r}'egffpolygonsNS[3]=UOr}'egffpolygonsHH[4]~r}'otateo?(pts ڦ[4];ptsN[6];anglej);r}'egffpolygonsNS[2]=UOr}'egffpolygonsHH[7]~r}'otateo?(pts ڦ[1];ptsN[4]; qangle!2);n썫450CONSTRÎUCTORBy3DLDFPRGx1469n@Pr}'egffpolygonsNS[7]=UOUPr}'egffpolygonsMH[2]=UOUPr}'egffpolygons[3]=UOr}'egffpolygonsHH[5]~r}'otateo?(pts ڦ[1];ptsN[0]; (/"angleGu);r}'egffpolygonsNS[1]=UOr}'egffpolygonsHH[9]~r}'otateo?(pts ڦ[2];ptsN[6];anglej);r}'egffpolygonsNS[9]=UOUPr}'egffpolygonsMH[1]=UOUPr}'egffpolygons[6]=UOr}'egffpolygonsHH[4]~r}'otateo?(pts ڦ[2];ptsN[0];anglej);for%舫(i9 =10 ;i 9 <20;++Gi)fr}'egffpolygonsSS:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8(r}'egffpolygons5P[iԷ810 8]));r}'egffpolygonsSS:b}'ackë()~r}'otateo?(180);r}'egffpolygonsSS:b}'ackë()~shift~(0;12 );gif(DEBUGY)fr}'egffpolygonsSS[4]~dotlab}'el%();r}'egffpolygonsSS[19 +);r}'egffpolygonsIR[5]~r}'otateo?(0;180);r}'egffpolygonsIR[5]~shift~(pts ڦ[1]8r}'egffpolygons8,0[5]~getffp}'oint+bI(0));for%舫(i9 =6;i 9 <10 ;++Gi)fr}'egffpolygonsSS:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8(r}'egffpolygons5P[5]));gr}'egffpolygonsIR[6]~shift~(pts ڦ[2]8pts[1]);r}'egffpolygonsIR[7]~shift~(pts ڦ[1]8pts[0]);r}'egffpolygonsIR[8]~shift~(pts ڦ[2]8pts[0]);r}'egffpolygonsIR[9]~shift~(pts ڦ[2]8pts[0]);r}'egffpolygonsIR[9]~shift~(pts ڦ[2]8pts[1]);pts!ڨ[3]=r}'egffpolygons8h[2]~getffp}'oint+bI(1);pts!ڨ[4]=r}'egffpolygons8h[2]~getffp}'oint+bI(0);pts!ڨ[5]=r}'egffpolygons8h[1]~getffp}'oint+bI(2);pts!ڨ[6]=r}'egffpolygons8h[1]~getffp}'oint+bI(0);real*0angleE:=180:08(dihe}'dralffangle?180:0=PI b);r}'egffpolygonsNS[9]=UOUPr}'egffpolygonsMH[8]=UOr}'egffpolygonsHH[7]~r}'otateo?(pts ڦ[3];ptsN[5]; qangle!2);r}'egffpolygonsNS[3]=UOr}'egffpolygonsHH[4]~r}'otateo?(pts ڦ[4];ptsN[6];anglej);r}'egffpolygonsNS[2]=UOr}'egffpolygonsHH[7]~r}'otateo?(pts ڦ[1];ptsN[4]; qangle!2);6n썫454CONSTRÎUCTORBy3DLDFPRGx1474n@Pr}'egffpolygonsNS[7]=UOUPr}'egffpolygonsMH[2]=UOUPr}'egffpolygons[3]=UOr}'egffpolygonsHH[5]~r}'otateo?(pts ڦ[1];ptsN[0]; (/"angleGu);r}'egffpolygonsNS[1]=UOr}'egffpolygonsHH[9]~r}'otateo?(pts ڦ[2];ptsN[6];anglej);r}'egffpolygonsNS[9]=UOUPr}'egffpolygonsMH[1]=UOUPr}'egffpolygons[6]=UOr}'egffpolygonsHH[4]~r}'otateo?(pts ڦ[2];ptsN[0];anglej);for%舫(i9 =10 ;i 9 <20;++Gi)fr}'egffpolygonsSS:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8(r}'egffpolygons5P[iԷ810 8]));r}'egffpolygonsSS:b}'ackë()~r}'otateo?(180);r}'egffpolygonsSS:b}'ackë()~shift~(0;12 );gif(DEBUGY)fr}'egffpolygonsSS[4]~dotlab}'el%();r}'egffpolygonsSS[19 ]~dotlab}'el%();greal*0yffshiftJ ۫=r}'egffpolygons8h[4]~getffp}'oint+bI(0):getffyt()8r}'egffpolygons8,0[19 -]~getffp}'oint(0):getffyt();for%舫(i9 =10 ;i 9 <20;++Gi)r}'egffpolygons:P[iq]~shift~(0;yffshiftQ;); c}'enter2Х=me}'diate%(r}'egffpolygons5P[0]~getffc}'enter0=H();r}'egffpolygons7[10 -]~getffc}'enter());for%舫(i9 =0;i 9 <20 ;++Gi)r}'egffpolygons:P[iq]~shift~(c}'enter#Щ);c}'enter2Х=origin9;if(angleffx#L6=0 _8angleffy%k6=0_8angleffz$n6=0)for0- (v9ectorHhRegus4wP9olygonEJi::Biter}'ator)7iter=~=9Ir}'egffpolygons9,:b}'egin();DiterHȷ6=9Ir}'egffpolygons:endಫ();<++HG&iterY$)( +]~getffp}'oint(0):getffyt();for%舫(i9 =10 ;i 9 <20;++Gi)r}'egffpolygons:P[iq]~shift~(0;yffshiftQ;); c}'enter2Х=r}'egffpolygons8h[0]~getffc}'enter0=H():me}'diate"u(r}'egffpolygons5P[10 +]~getffc}'enter());for%舫(i9 =0;i 9 <20 ;++Gi)r}'egffpolygons:P[iq]~shift~(c}'enter#Щ);c}'enter2Х=origin9;if(angleffx#L6=0 _8angleffy%k6=0_8angleffz$n6=0)for0- (v9ectorHhRegus4wP9olygonEJi::Biter}'ator)7iter=~=9Ir}'egffpolygons9,:b}'egin();DiterHȷ6=9Ir}'egffpolygons:endಫ();<++HG&iterY$)( iter):r}'otateo>(angleffx ܱ;angleffy"3;angleffz!);if(p6=origin9)ffor0- (v9ectorHhRegus4wP9olygonEJi::Biter}'ator)7iter=~=9Ir}'egffpolygons9,:b}'egin();DiterHȷ6=9Ir}'egffpolygons:endಫ();<++HG&iterY$)f(( iter):shift}(p@8c}'enterBk);gc}'enter<Ц=p;gif(DEBUGY)fc}'out4 R"Exiting Icosahedronk::Icosahedron().\n"# ush;greturn4g; -g1470. GetTnet.9Ȅ`> 8BeginTLogJʄ`> +g1475. GetTnet.9Ȅ`+U 8Log)j`+U [LDFT2002.11.10.]Y;BUGUUFIX:RemovedUUerroneouscoGdethatcreated6extratriangles. [LDFT2002.08.12.]Y;RemovedUUc}'enterff0+1argument. -[LDFT2003.08.27.]YjAddedsizeus4wt#ltrianglesffsizeaandaddedsizeus4wt#li*toaforloGop,cwhereit'scomparedtotrianglesffsize9M.qThisUUoGccursindebuggingcode.Ȅ` 8EndTLogA>`hDeclareUUIcosahedronCyfunctions@1465i+ +[LDFT2003.08.27.]YjAddedsizeus4wt#ltrianglesffsizeaandaddedsizeus4wt#li*toaforloGop,cwhereit'scomparedtotrianglesffsize9M.qThisUUoGccursindebuggingcode.Ȅ`GhDeclareUUIcosahedronCyfunctions@1470i+ static)Hv9ectorH"hRegus4wP9olygonD I -iUUgetffnet"(const*real4triangleffdiametern;bQoolLdoffhalf>s=falsev\);n썷x14713DLDFPRÎG6OGETXNET451n@P1471.hDe neUUIcosahedronCyfunctions@1466i+ +iUUgetffnet"(const*real4triangleffdiametern;bQoolLdoffhalf>s=falsev\);=n썷x14763DLDFPRÎG6OGETXNET455n@P1476.hDe neUUIcosahedronCyfunctions@1471i+ v9ector)IhRegus4wP9olygonD I iUUIcosahedronA.(::getffnet 4̫(const*real4triangleffdiametern;bQoolLdoffhalf;) fbQool-hDEBUGK.٫=falsev\;=trueĒ=v9ector3JhRegus4wP9olygonD I iUUtriangles).;in9t%i);for%舫(i9 =0;i 9 <10 ;++Gi)triangles+ٱ:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8());(=TheUUbGottomlefttriangle.o=triangles:۫[0]~setx(origin!;3;triangleffdiameterN;α;0;180);P9oint2pts@E[4];pts!ڨ[0]=triangles)J[0]~getffp}'oint+bI(0);pts!ڨ[1]=triangles)J[0]~getffp}'oint+bI(1);pts!ڨ[2]=triangles)J[0]~getffp}'oint+bI(2);triangles?ܫ[1]=triangles.J[0];triangles:۫[1]~r}'otateo?(0;180);triangles:۫[1]~shift~(pts ڦ[2]8triangles([1]~getffp}'oint+bI(1));pts!ڨ[3]=triangles)J[1]~getffp}'oint+bI(0);triangles?ܫ[2]=triangles.J[0];triangles:۫[2]~shift~(pts ڦ[3]8pts[2]);triangles?ܫ[3]=triangles.J[1];triangles:۫[3]~shift~(pts ڦ[3]8pts[2]);for%舫(i9 =0;i 9 <4;++Gi)f#trianglesIݫ[48+8iԫ]=triangles.J[iq];trianglesDܫ[48+8iԫ]~shift~(pts ڦ[1]8pts[2]);gif(DEBUGY)for/艫(i9 =0;i 9 <4;++Gi)ptsڦ[iq]:dotlab}'el!(i);if(doffhalf#'true)f#trianglesIݫ[8]=triangles.J[4];#trianglesIݫ[9]=triangles.J[5];#trianglesIݫ[8]=UOtriangles8([9]~shift~(pts ڦ[1]8pts[2]);for/艫(i9 =0;i 9 <10 ;++Gi)f(for9芫(in9tjӫ=0;j w<3;j -0++)2if=(triangles&٫[iq]~getffp}'oint+bI(jī):getffyt()6=0)f<c}'errR_ɷ"ERROR! In Icosahedrlon::get_net():\n"3"y-coordinate != 0!\ln"{Z`P"You'd better fix this!\n\n"M4 ush;2ggreturnAtriangleshj;g=DoUUthesecondhalf.o=if(DEBUGY)c}'out O"Doing the second haklf.\n"2;for%舫(i9 =0;i 9 <10 ;++Gi)triangles+ٱ:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8());for%舫(in9tjӫ=8;j wٷ16 ;j+=-4#.)for/艫(i9 =0;i 9 <4;++Gi)f(-trianglesSޫ[j餫+8iԫ]=triangles.J[j84 q+8iԫ];(trianglesNݫ[j餫+8iԫ]~shift~(pts ڦ[1]8pts[2]);gif(DEBUGY)fsizeus4wt=Rtrianglesffsizez=triangles)J:size\();for/艫(sizeus4wtRi%=0;i 9 <trianglesffsize0)triangles+٫[i]~getffc}'enter0=H():lab}'elt(i;"" +0++)2if=(triangles&٫[iq]~getffp}'oint+bI(jī):getffyt()6=0)f<c}'errR_ɷ"ERROR! In Icosahedrlon::get_net():\n"3"y-coordinate != 0!\ln"{Z`P"You'd better fix this!\n\n"M4 ush;2ggreturnAtriangleshj;g=DoUUthesecondhalf.o=if(DEBUGY)c}'out O"Doing the second haklf.\n"2;for%舫(i9 =0;i 9 <10 ;++Gi)triangles+ٱ:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8());for%舫(in9tjӫ=8;j wٷ16 ;j+=-4#.)for/艫(i9 =0;i 9 <4;++Gi)f(-trianglesSޫ[j餫+8iԫ]=triangles.J[j84 q+8iԫ];(trianglesNݫ[j餫+8iԫ]~shift~(pts ڦ[1]8pts[2]);gif(DEBUGY)fsizeus4wt=Rtrianglesffsizez=triangles)J:size\();for/艫(sizeus4wtRi%=0;i 9 <trianglesffsize0)triangles+٫[i]~getffc}'enter0=H():lab}'elt(i;"" ); gfor%舫(i9 =0;i 9 <20 ;++Gi)ffor/艫(in9tjӫ=0;j w<3;j 0++)(if3(triangles&٫[iq]~getffp}'oint+bI(jī):getffyt()6=0)f2c}'errH8"ERROR! In IcosahedrlQon::get_net():\n"ʗ"y-coordinate != 0!\lQn"{@F"You'd better fix this!\n\n"M3 ush;(ggreturn7triangles^j; -g1472. Dra9wTnet.TOUUDO:Addparallelpro8jectionsontoplanesotherthanthex-yplane.U9Ȅ`> 8BeginTLogJʄ`> +g1477. Dra9wTnet.TOUUDO:Addparallelpro8jectionsontoplanesotherthanthex-yplane.9Ȅ`+U 8Log)j`+U [LDFT2002.11.10.]YAdded thisfunction.p}'ortrait,works,9Dunlike DoQdecahedronM@::TY~dr}'awffnet{()p}'olyhed C:web(asUUofthisdate). [LDFT2002.08.12.]Y;Changed,UUsothatnetisdrawninx-zplane. -[LDFT2002.08.12.]XThisfunctionnowreturnsbGeforethecodeformakingthetabscanbeexecuted,vbecauseitUUdoGesn'tworkyet.qTODO:W*ritecoGdefortabs.Ȅ` 8EndTLogA>`hDeclareUUIcosahedronCyfunctions@1465i+ -static)Hv9oidBFdr}'awffnetiE(const*real4triangleffdiametern;bQoolLp}'ortrait?f=true;bQoolLmakefftabsJ=true);^n썷x14733DLDFPRÎG-iDRA8WXNET453n@P1473.hDe neUUIcosahedronCyfunctions@1466i+ +[LDFT2002.08.12.]XThisfunctionnowreturnsbGeforethecodeformakingthetabscanbeexecuted,vbecauseitUUdoGesn'tworkyet.qTODO:W*ritecoGdefortabs.Ȅ`GhDeclareUUIcosahedronCyfunctions@1470i+ +static)Hv9oidBFdr}'awffnetiE(const*real4triangleffdiametern;bQoolLp}'ortrait?f=true;bQoolLmakefftabsJ=true);Іn썷x14783DLDFPRÎG-iDRA8WXNET457n@P1478.hDe neUUIcosahedronCyfunctions@1471i+ v9oid"Icosahedron`֬::dr}'awffnet(A(const*real4triangleffdiametern;bQoolLp}'ortrait=6N;bQoolLmakefftabsG|) fv9ector3JhRegus4wP9olygonD I iUUv Q*=getffnet!(triangleffdiameterL&);in9t%i+=0;for%舫(v9ectorHhRegus4wP9olygonD I @@ -5534,69 +5606,69 @@ );( iter):dr}'aw(۫();greturn4g;=Delete,UUwhenIstartwritingcoGdefortabs.q[LDFT2002.08.12.]U$=if(:makefftabs,n)return%e;P9ath/滱p4[11 ];P9oint2pts@E[11 -];#if 0v4[0]~dotlab}'el%();#endifpts!ڨ[0]=vի[0]~getffp}'oint+bI(0);pts!ڨ[1]=vի[0]~getffp}'oint+bI(1);pts!ڨ[2]=vի[0]~getffp}'oint+bI(2);pts!ڨ[3]=me}'diate%(pts ڦ[0];ptsN[1];:1 q);pts!ڨ[4]=me}'diate%(pts ڦ[1];ptsN[0];:1 q);#if 0pts!ڨ[3]:dotlab}'el!(2);pts!ڨ[4]:dotlab}'el!(3);#endifpts!ڨ[5]=me}'diate%(pts ڦ[0];ptsN[3];:1 q);pts!ڨ[6]=me}'diate%(pts ڦ[1];ptsN[4];:1 q);pts!ڨ[7]=pts[3];pts!ڨ[7]:shift}(0;0;1);pts!ڨ[8]=pts[4];pts!ڨ[8]:shift}(0;0;1);pts!ڨ[5]:r}'otateo>(pts ڦ[3];ptsN[7];90 );pts!ڨ[6]:r}'otateo>(pts ڦ[8];ptsN[4];90 );#if 0pts!ڨ[5]:dotlab}'el!(4);pts!ڨ[6]:dotlab}'el!(5);#endifpts!ڨ[9]=me}'diate%(pts ڦ[5];ptsN[6];:1 q);pts!ڨ[10 -]=me}'diate%(pts ڦ[6];ptsN[5];:1 q);#if 0pts!ڨ[9]:dotlab}'el!(8);pts!ڨ[10 +];#if 0v4[0]~dotlab}'el%();#endifpts!ڨ[0]=vի[0]~getffp}'oint+bI(0);pts!ڨ[1]=vի[0]~getffp}'oint+bI(1);pts!ڨ[2]=vի[0]~getffp}'oint+bI(2);pts!ڨ[3]=pts[0]:me}'diate"u(pts ڦ[1];:1 q);pts!ڨ[4]=pts[1]:me}'diate"u(pts ڦ[0];:1 q);#if 0pts!ڨ[3]:dotlab}'el!(2);pts!ڨ[4]:dotlab}'el!(3);#endifpts!ڨ[5]=pts[0]:me}'diate"u(pts ڦ[3];:1 q);pts!ڨ[6]=pts[1]:me}'diate"u(pts ڦ[4];:1 q);pts!ڨ[7]=pts[3];pts!ڨ[7]:shift}(0;0;1);pts!ڨ[8]=pts[4];pts!ڨ[8]:shift}(0;0;1);pts!ڨ[5]:r}'otateo>(pts ڦ[3];ptsN[7];90 );pts!ڨ[6]:r}'otateo>(pts ڦ[8];ptsN[4];90 );#if 0pts!ڨ[5]:dotlab}'el!(4);pts!ڨ[6]:dotlab}'el!(5);#endifpts!ڨ[9]=pts[5]:me}'diate"u(pts ڦ[6];:1 q);pts!ڨ[10 +]=pts[6]:me}'diate"u(pts ڦ[5];:1 q);#if 0pts!ڨ[9]:dotlab}'el!(8);pts!ڨ[10 ]:dotlab}'el!(9);#endifp[0]:set x("--"\;trueo@;& qptsLl[3];& qpts[9];& qpts[10 ];& qpts[4];0);p[1]=p[2]=p[3]=p[4]=p[5]=p[0];p[1]:shift}(v4[4]~getffp}'oint+bI(1)8pts[1]);p[2]:shift}(v4[8]~getffp}'oint+bI(1)8pts[1]);p[3]:shift}(v4[12 ]~getffp}'oint+bI(1)8pts[1]);p[4]:shift}(v4[16 -]~getffp}'oint+bI(1)8pts[1]);ܡn썫454DRA8WXNET-i3DLDFPRÎGx1473n@Pp[5]:shift}(v4[18 +]~getffp}'oint+bI(1)8pts[1]);؞n썫458DRA8WXNET-i3DLDFPRÎGx1478n@Pp[5]:shift}(v4[18 ]~getffp}'oint+bI(1)8pts[1]); p[6]=p[0];p[6]:r}'otateo>(0;0;240);p[6]:r}'otateo>(pts ڦ[0];ptsN[2]);#if 0v4[3]~dotlab}'el%();#endifp[7]=p[8]=p[9]=p[10 ]=p[6];p[6]:shift}(v4[3]~getffp}'oint+bI(0)8pts[2]);p[7]:shift}(v4[7]~getffp}'oint+bI(0)8pts[2]);p[8]:shift}(v4[11 ]~getffp}'oint+bI(0)8pts[2]);p[9]:shift}(v4[15 ]~getffp}'oint+bI(0)8pts[2]);p[10 ]:shift}(v4[19]~getffp}'oint+bI(0)8pts[2]);for%舫(i9 =0;i 9 <11 ;i++)p [iq]:dr}'aw(۫();return4g; -g1474. Semi-RegularTArc9himedeanPolyhedra.1475. T -runcatedTOctahedron.1476. T +g1479. Semi-RegularTArc9himedeanPolyhedra.1480. T +runcatedTOctahedron.1481. T runcffs4#OctahedronTclassde nition.hDe neUUclass5T -runcus4wOctahedronDT1476i +runcus4wOctahedronDT1481i class$RT runcus4wOctahedronQ:qpublic'P9olyhedrondhf protected:o:static$HconstBs{realY&angleffhexffsquar}'e;=InUUradians!o=static3HconstQs}realh&angleffhexffhexj5;=InUUradians!o=real*0hexagonffr}'adiusl; public)=֫:hDeclareUUT -runcus4wOctahedrondyTfunctions@1479i -g; ThisXcoT runcus4wOctahedron::angleffhexffsquar}'eL=(1258+8(16:0 =60:0))(PI b=180:0!); const(*real>T runcus4wOctahedron::angleffhexffhex@ -=(1098+8(28:0 =60:0))(PI b=180:0!); ThisXco 8BeginTLogJʄ`> -[LDFT2003.04.15.]YCommented-outtheconstructorsandgetffnet#)ܫ().QTheymadeuseofthefact,whichisno longertrue,thatRectangle8WywasformerlyderivedfromRegus4wP9olygonD.YQNowthatRectangle8WyisderivedfromUUP9ath湫,UUsomeofthecoGdeinthesefunctionsdoesn'twork.qTODO:Fixthesefunctions!Ȅ` 8EndTLogA>`1479. DefaultTconstructor.(NoUUarguments.)hDeclareUUT -runcus4wOctahedrondyTfunctions@1479i +=(1098+8(28:0 =60:0))(PI b=180:0!); ThisXcoi|.[LDFT2002.10.29.]SXT*runcatedsoGctahedronsconsistof6squares(andUU8hexagons.o=vertic}'es8X=24 ;e}'dges.1=36 ;c}'enter2Х=INVALID_POINTGY;=fromUUP9olyhedron=c".o=numb}'erffofffpolygonfftypesR9=2;fac}'effradiusG%=e}'dgeffradius7j«=vertexffr}'adius>=INVALID_REALBM\;hexagonffr}'adiusY=INVALID_REALBM\; -g SeeXalsosections1483,1485,and1486.ThisXco 8BeginTLogJʄ`> -[LDFT2002.11.08.]Y;AddedUUthisfunction.Ȅ` 8EndTLogA>`hDeclareUUT -runcus4wOctahedrondyTfunctions@1479i+#if 0 +g SeeXalsosections1488,1490,and1491.ThisXco@&F%pK%;const h.real7@diameterffofffhexagon;realangleffx=2~=0;realangleffyA2=0;real]angleffz;$d=0);#endif]n썫456CONSTRÎUCTORBy3DLDFPRGx1483n@P1483.hDe neUUT -runcus4wOctahedrondyTfunctions@1480i+ #if 0 +runcus4wOctahedrongΫ(constP9oint>@&F%pK%;const h.real7@diameterffofffhexagon;realangleffx=2~=0;realangleffyA2=0;real]angleffz;$d=0);#endifn썫460CONSTRÎUCTORBy3DLDFPRGx1488n@P1488.hDe neUUT +runcus4wOctahedrondyTfunctions@1485i+ #if 0 T runcus4wOctahedronhί::T runcus4wOctahedron^ή(const7P9oint=i&EpJć;const Breal7chexagonffdiameter;real2angleffxR;real]angleffy8a;real]angleffz8]L) fbQool-hDEBUGK.٫=falsev\;=trueĒ=if(DEBUGY)c}'out O"Entering Trunc_Octakhedron::Trunc_OctaheƠdron().\n"  ush;c}'enter2Х=p;onfffr}'eeffstoreNl =falsev\;=fromUUSolid,.o=doffoutputAM=true;=ST*ARTUUHERE.TODO:Mustcalculatethese!o=fac}'effradiusG%=0;e}'dgeffradiusH=0;vertexffr}'adiusP7=0;fac}'es-C9=14 ;=SfromsSolidus4wF aced>i|.[LDFT2002.10.29.]SXT*runcatedsoGctahedronsconsistof6squares(andUU8hexagons.o=vertic}'es8X=24 ;e}'dges.1=36 ;numb}'erffofffpolygonfftypesR9=2;hexagonffr}'adiusY=hexagonffdiameterQ s=2:0 ;r}'egffpolygonsLj=getffnet!(hexagonffdiameterND[;trueo@);P9oint2pts@E[24 ];in9t%i);for%舫(i9 =0;i 9 <6;i++)ptsڦ[iq]=r}'egffpolygons8h[0]~getffp}'oint+bI(i);#if 0pts!ڨ[0]:dotlab}'el!(0);pts!ڨ[1]:dotlab}'el!(1;"lft"q);pts!ڨ[2]:dotlab}'el!(2;"bot"q);pts!ڨ[3]:dotlab}'el!(3;"bot"q);pts!ڨ[4]:dotlab}'el!(4;"rt"1);pts!ڨ[5]:dotlab}'el!(5);#endifreal*0angleffhffhVө=180:08(angleffhexffhex>|j180:0=PI b);r}'egffpolygonsIR[1]~r}'otateo?(pts ڦ[4];ptsN[5];angleffhffh+ );r}'egffpolygonsIR[2]~r}'otateo?(pts ڦ[3];ptsN[2]; qangleffhffh2');r}'egffpolygonsIR[3]~r}'otateo?(pts ڦ[0];ptsN[1];angleffhffh+ );real*0angleffhffsU۷=180:08(angleffhexffsquar}'eK'÷180:0=PI b);r}'egffpolygonsIR[4]~r}'otateo?(pts ڦ[0];ptsN[5];angleffhffs* );r}'egffpolygonsIR[5]~r}'otateo?(pts ڦ[1];ptsN[2];angleffhffs* );r}'egffpolygonsIR[6]~r}'otateo?(pts ڦ[3];ptsN[4];angleffhffs* );=[LDFT2002.11.07.]T7DoUUsomethingabGoutthesecomments!o==7=r}'egffpolygonsIR:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8(r}'egffpolygons5P[0]));=8=r}'egffpolygonsIR:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8(r}'egffpolygons5P[1]));=9=r}'egffpolygonsIR:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8(r}'egffpolygons5P[2]));=10=r}'egffpolygonsIR:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8(r}'egffpolygons5P[3]));=11=r}'egffpolygonsIR:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8(r}'egffpolygons5P[4]));=12=r}'egffpolygonsIR:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8(r}'egffpolygons5P[5]));=13=r}'egffpolygonsIR:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8(r}'egffpolygons5P[6]));T -ransformKԱtOeF;tt:r}'otateo>(180);Ҡn썷x14833DLDFPRÎGByCONSTRUCTOR457n@Ptt:shift}(0;15 ); for%舫(i9 =7;i 9 <14 ;i++) +ransformKԱtOeF;tt:r}'otateo>(180);bn썷x14883DLDFPRÎGByCONSTRUCTOR461n@Ptt:shift}(0;15 ); for%舫(i9 =7;i 9 <14 ;i++) r}'egffpolygons?Q[iq]=UOt;tt:r}'esetƷ();tt:shift}(r}'egffpolygons5P[2]~getffp}'oint+bI(2)8r}'egffpolygons8,0[11 ]~getffp}'oint(3));for%舫(i9 =7;i 9 <14 ;i++) r}'egffpolygons?Q[iq]=UOt;i9=0;for&Q˫(v9ectorHhRegus4wP9olygonE=LJ=Mi::Biter}'ator)7iter=ڼ=vr}'egffpolygons9iױ:b}'egin();i@iterŷ6=vr}'egffpolygons:endಫ();2++>G%iterO#)fif)(c}'enterУ6=origin9)( iter):shift}(c}'enter );gif(DEBUGY)fc}'out4 R"Exiting Trunc_Octahkedron::Trunc_OctahedƠron()." endlendl ush;greturn4g; -g#endif1484. GetTnet.9Ȅ`> 8BeginTLogJʄ`> +g#endif1489. GetTnet.9Ȅ`+U 8Log)j`+U [LDFT2002.11.08.]Y;AddedUUthisfunction. -[LDFT2002.08.12.]Y;RemovedUUc}'enterff0+1argument.Ȅ` 8EndTLogA>`hDeclareUUT -runcus4wOctahedrondyTfunctions@1479i+ #if 0 +[LDFT2002.08.12.]Y;RemovedUUc}'enterff0+1argument.Ȅ`GhDeclareUUT +runcus4wOctahedrondyTfunctions@1484i+ #if 0 static)Hv9ectorH"hRegus4wP9olygonD I -iUUgetffnet"(const*real4hexagonffdiameter"+;bQoolLdoffhalf>s=falsev\);#endif ՠn썫458GETXNET6O3DLDFPRÎGx1485n@P1485.hDe neUUT -runcus4wOctahedrondyTfunctions@1480i+ #if 0 +iUUgetffnet"(const*real4hexagonffdiameter"+;bQoolLdoffhalf>s=falsev\);#endifen썫462GETXNET6O3DLDFPRÎGx1490n@P1490.hDe neUUT +runcus4wOctahedrondyTfunctions@1485i+ #if 0 v9ector)IhRegus4wP9olygonD䦷IieT runcus4wOctahedronb4::getffnet 4̫(const;?real4 hexagonffdiameterCe;bQool\doffhalf;4)f2bQoolKkDEBUGi.ܫ=falsev\;=trueĒ=v9ector=KhRegus4wP9olygonD I @@ -5613,8 +5685,8 @@ ]:shift}(pts ڦ[3]8pts[4]);r":set x(pts ڦ[11 ];ptsN[4];pts[3];pts[13 ]);r}'egffpolygonsSS:pushffb}'ack+XR(Regus4wP9olygonB~::I cr}'eateffnewffr}'egffpolygon8(r));if)(doffhalf `)return(r}'egffpolygons^ -;#endif)٠n썷x14863DLDFPRÎG6OGETXNET459n@P1486. [LDFT2002.11.08.][Ifwejustwantthenet,r}'egffpolygons:)[5]andr}'egffpolygons:B[6]mustbGechanged, bGecauseQI'vemadethenetabitdi erentlyfromthewayit'sdoneinCundy*.Getreference!!Page104.ImadeUUtwoofthesquaresslanted,inordertoavoidhavingtorotatethemtwice.hDe neUUT -runcus4wOctahedrondyTfunctions@1480i+#if 0 +;#endif%>n썷x14913DLDFPRÎG6OGETXNET463n@P1491. [LDFT2002.11.08.][Ifwejustwantthenet,r}'egffpolygons:)[5]andr}'egffpolygons:B[6]mustbGechanged, bGecauseQI'vemadethenetabitdi erentlyfromthewayit'sdoneinCundy*.Getreference!!Page104.ImadeUUtwoofthesquaresslanted,inordertoavoidhavingtorotatethemtwice.hDe neUUT +runcus4wOctahedrondyTfunctions@1485i+#if 0 r}'egffpolygonsDR[6]=r}'egffpolygons=i[5]=r}'egffpolygons=i[4]; ptsڧ[14 ]=r}'egffpolygons8h[4]~getffp}'oint+bI(2); @@ -5639,47 +5711,49 @@ =O3 O4r}'egffpolygons[12]D =r}'egffpolygonsSS[13 ]~shift~(pts ڦ[4]8+pts[3]pts[2]pts[1]); -return-r}'egffpolygonsc ;qǷg#endif1487. PuttingTpQolyhedratogether.1488. ThisUUiswhat'scompiled. +return-r}'egffpolygonsc ;qǷg#endif1492. PuttingTpQolyhedratogether.1493. ThisUUiswhat'scompiled. hIncludeUU les@11i hV*ersionUUcontrolidenti er@10i -hDe neUUclass5P9olyhedron\w1426i +hDe neUUclass5P9olyhedron\w1431i hDe neUUclass5T -etrahedrona1431i +etrahedrona1436i hDe neUUstatic".const@T -etrahedron)dataUUmembGers@1432i -hDe neUUclass5DoQdecahedronk581448i -hDe neUUstatic".const@DoQdecahedronݳdataUUmembGers@1449i -hDe neUUclass5Icosahedron_Ny1462i -hDe neUUstatic".const@IcosahedrondataUUmembGers@1463i +etrahedron)dataUUmembGers@1437i +hDe neUUclass5DoQdecahedronk581453i +hDe neUUstatic".const@DoQdecahedronݳdataUUmembGers@1454i +hDe neUUclass5Icosahedron_Ny1467i +hDe neUUstatic".const@IcosahedrondataUUmembGers@1468i hDe neUUclass5T -runcus4wOctahedronDT1476i +runcus4wOctahedronDT1481i hDe neUUstatic".const@T -runcus4wOctahedronϫdataUUmembGers@1477i -hDe neUUP9olyhedron@wfunctions@1428i +runcus4wOctahedronϫdataUUmembGers@1482i +hDe neUUP9olyhedron@wfunctions@1433i hDe neUUT -etrahedronEFfunctions@1435i -hDe neUUDoQdecahedronOj8functions@1452i -hDe neUUIcosahedronCyfunctions@1466i +etrahedronEFfunctions@1440i +hDe neUUDoQdecahedronOj8functions@1457i +hDe neUUIcosahedronCyfunctions@1471i hDe neUUT -runcus4wOctahedrondyTfunctions@1480i>n썫460PUTTINGXPOLJYHEDRATOGETHER83DLDFPRÎGx1489n@P1489. ThisUUiswhat'swrittentopolyhed.h.hpolyhed.h:1489i -hDe neUUclass5P9olyhedron\w1426i +runcus4wOctahedrondyTfunctions@1485i:n썫464PUTTINGXPOLJYHEDRATOGETHER83DLDFPRÎGx1494n@P1494. ThisUUiswhat'swrittentopolyhed.h.hpolyhed.h:1494i +hDe neUUclass5P9olyhedron\w1431i hDe neUUclass5T -etrahedrona1431i -hDe neUUclass5DoQdecahedronk581448i -hDe neUUclass5Icosahedron_Ny1462i +etrahedrona1436i +hDe neUUclass5DoQdecahedronk581453i +hDe neUUclass5Icosahedron_Ny1467i hDe neUUclass5T -runcus4wOctahedronDT1476i1490. P9arsing(parser.web).O9Ȅ`> 8BeginTLogJʄ`> +runcus4wOctahedronDT1481i1495. P9arsing(parser.web).N99Ȅ`+U 8Log)j`+U RemovedUUthecoGdefromthis le.qIplantouseBisonformakingtheparser.[LDFT2003.08.25.] -[LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i+1491. IncludeUU les.hIncludeUU les@11i+#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"#include'~"ellipses.h"#include'~"circles.h"#include'~"patterns.h"#include'~"solids.h"#include'~"solfaced.h"#include'~"cuboid.h"#include'~"polyhed.h"#include'~"utility.h"1492. P9arse.hDeclareUUparserfunctions@1492i ThisXco 8BeginTLogJʄ`> +hDe neUUparserfunctions@1498iZ|n썫466PUTTINGXTHEPJARSERTOGETHERE3DLDFPRÎGx1501n@P1501. ThisUUiswhat'swrittentoparser.h.hparser.h51501i +hDeclareUUparserfunctions@1497i1502. Main(main.web).N99Ȅ`+U 8Log)j`+U [LDFT2002.11.18.]XChangednameofthis lefrompersp.webtomain.web.VItnowhasfewerthan8lettersandUUcanbGeusedunderDOS. [LDFT2003.08.29.]YMovedOgetopt.hfromloader.webtohere,QbGecauseit'sonlyusedhere.oTOODO:MovetheUUrestoftheincludecommandstothe leswherethey'reneeded,andTgetridofloader.web. [LDFT2003.11.12.]ZCRemovedtheversioncontrolidenti ersfromtheCWEB lesforthedistributionof3DLDFUU1.1.qThey'restillusedinmydevelopmentversions. -[LDFT2003.12.01.]Y$PutR>theversioncontrolidenti ersbackintothereleaseversions,RbGecauseI'veputtheminUUtheirownRCSrepGository*.Ȅ` 8EndTLogA>`hV*ersionUUcontrolidenti er@10i+ -static)HstringJn'r}'csffidg(="$Id: main.web,v 1.6k 2003/12/01 19:39:22Ơ lfinsto1 Exp $")Lث;1498. IncludeT les.hIncludeUU les@11i+#include'~"loader.h"#ifdefe__GNUC__#include'~pɱ=F*orUUproGcessingthecommandlineoptions.q[LDFT2003.08.14.]U$=#endif#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"#include'~"ellipses.h"#include'~"circles.h"#include'~"patterns.h"#include'~"solids.h"#include'~"solfaced.h"#include'~"cuboid.h"#include'~"polyhed.h"#include'~"utility.h"#include'~"parser.h"#include'~"examples.h"1499. Getinput.IRplanbtouseFlexandBisontohandlescanningandparsinginput.\Ihaven'tbstartedworkUUonthisyet.q[LDFT2003.08.20.]_Pn썷x14993DLDFPRÎG,GETXINPUT463n@PhGetUUinput@1499i1500. ActionsTinmain.hActionsUUinmain@1500i +[LDFT2003.12.01.]Y$PutR>theversioncontrolidenti ersbackintothereleaseversions,RbGecauseI'veputtheminUUtheirownRCSrepGository*.Ȅ`GhV*ersionUUcontrolidenti er@10i+ +static)HstringJn'r}'csffidg(="$Id: main.web,v 1.9k 2003/12/09 15:33:08Ơ lfinsto1 Exp $")Lث;1503. IncludeT les.hIncludeUU les@11i+#include'~"loader.h"#ifdefe__GNUC__#include'~pɱ=F*orUUproGcessingthecommandlineoptions.q[LDFT2003.08.14.]U$=#endif#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"#include'~"ellipses.h"#include'~"circles.h"#include'~"patterns.h"#include'~"solids.h"#include'~"solfaced.h"#include'~"cuboid.h"#include'~"polyhed.h"#include'~"utility.h"#include'~"parser.h"#include'~"examples.h"1504. Getinput.IRplanbtouseFlexandBisontohandlescanningandparsinginput.\Ihaven'tbstartedworkUUonthisyet.q[LDFT2003.08.20.]\Mn썷x15043DLDFPRÎG,GETXINPUT467n@PhGetUUinput@1504i1505. ActionsTinmain.hActionsUUinmain@1505i using(SnamespaceaColors۫; using(SnamespaceaProjectionsa; v9ector)Ihconst*Color=ϕBϖiUUv;#if 1 @@ -5705,7 +5779,7 @@ v4:pushffb}'ack+XR(&yellowffgr}'een>/); v4:pushffb}'ack+XR(&gr}'eenffyellow>~); v4:pushffb}'ack+XR(&blueffviolet5K); -v4:pushffb}'ack+XR(&violetffr}'ed1));#endif#endif SeeXalsosection1501.ThisXco 8BeginTLogJʄ`> -[LDFT2003.08.14.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`hProGcessUUcommandlineoptions@1502i#ifdefe__GNUC__ -hGCCUUcommandlineoptionproGcessing@1503i#else#ifdefe__DECCXX -hDECUUcommandlineoptionproGcessing@1505i#endif#endif ThisXco 8BeginTLogJʄ`> +end g$();1507. ProQcesscommandlineoptions.This sectionincludesoneof(currently)twoothersections,onenfortheGCC/LinuxversionandonefortheDECMversion.FThesectiontobGeincludedischosenbytestingwhetherepreproGcessormacrosarede nedornot.VwPutanotherway*,theecommandlineoptionprocessingcodeisUUconditionallycompiled.q[LDFT2003.08.14.] +Thelproblemisthat,'unlikeGCC,theDEC^C++ccompilerdoGesn'tsupportlongcommandlineoptions,'SoIhavetoimplementthecommandlineoptionproGcessingcodeseparatelyforeachversion.TE[LDFT2003.08.14.]N99Ȅ`+U 8Log)j`+U +[LDFT2003.08.14.]Y;AddedUUthissection.Ȅ`GhProGcessUUcommandlineoptions@1507i#ifdefe__GNUC__ +hGCCUUcommandlineoptionproGcessing@1508i#else#ifdefe__DECCXX +hDECUUcommandlineoptionproGcessing@1510i#endif#endif ThisXco{AddedcoGdeforhandlingthe\--silent"option,includingtheconstantSILENT_INDEXB٫.Ȅ` 8EndTLogA>`hGCCUUcommandlineoptionproGcessing@1503i +[LDFT2003.08.14.]X>{AddedcoGdeforhandlingthe\--silent"option,includingtheconstantSILENT_INDEXB٫.Ȅ`GhGCCUUcommandlineoptionproGcessing@1508i fbQool-hDEBUGK.٫=falsev\;=true=in9t%optionffctrRe;in9t%digitffoptind\(L=0;const2*unsignedbashort,UHELP_INDEX=0;const2*unsignedbashort,USILENT_INDEXy=1;const2*unsignedbashort,UVERBOSE_INDEXǹ=2;const2*unsignedbashort,UVERSION_INDEXǹ=3;static3HstructToptiont݇longffoptions2[]=ff"help" V;0;0;0g;f"silent"*P;0;0;0g;f"verbose"/M;0;0;0g;(f"version"/M;0;0;0g;f0;0;0;0gg;in9t%optionffindex`3Q=0;in9t%thisffoptionffoptindw=optind"q?optind:1;while2C.(1)foptionffctrM?=getoptfflongffonlyI(ar}'gcʱ;ar}'gvEI;"hv"1;longffoptions8 ;& qoptionffindexA9);if)(DEBUGY)f(c}'out> S"option_ctr == "Zhoptionffctr2NTendl ush;(c}'out> S"option_index == "dboptionffindex=Upendl ush;(c}'out> S"optarg == "Etoptar}'g!酷endl ush;gif)(optionffctr/< -617)f(if3(DEBUGY)c}'out O"No more options."dbendlendl ush;(breakDh;gif)(optionffctr/<0)f(if3(DEBUGY)f2c}'outH T"option "5T}longffoptions9[optionffindex7@]:name;2if=(optar}'g[U)c}'out O" with arg "Etoptar}'g"m;2c}'outH Tendlګ;(g(if3(optionffindex:XHELP_INDEX7b)f2c}'outI\"3DLDF Version "]?\VERSION_3DLDFM÷\". "?޷\COPYRIGHT_3DLDFWFendl`R"Valid options for 3oDLDF are:"HRendl!4fF"--help: Prints this message and exits "6@AX"with return value 0lA."zַFendl]>׷Mendl޷M"--silent: SupprelLsses some output to Lstandard output"-ܷFendl]," and stlandard error when 3dϴldf is run."&$,endlFendl^Q0_g"--verbose: Causesm_+ status information ^to be printed "*F"to standard output"ط(endlC (" when 3m(iDLDF is run."OFendl]@ NDendlJND"--version: PrintslN the version number Mof 3DLDF"b]NDendlF" to standard output and "i˷c"exits with return vlcalue 0."MFendl\endl ush;2if=(DEBUGY)c}'out O"Exiting with returnk value 0.">endl ush;2exitCf(0);(g(else>.8ifI0(optionffindex:XSILENT_INDEXBM\)f2if=(DEBUGY)c}'out O"Setting SILENT_GLOBkAL to true."8endlګ;{3n썫466PRÎOCESSXCOMMANDLINEOPTIONS$G3DLDFPRGx1503n@P2SILENT_GLOBALy^=true; (g(else>.8ifI0(optionffindex:XVERBOSE_INDEXGY)f2if=(DEBUGY)c}'out O"Setting VERBOSE_GLOkBAL to true."T5endlګ;2VERBOSE_GLOBAL~[=true;(g(else>.8ifI0(optionffindex:XVERSION_INDEXGY)f2c}'outH T"3DLDF Version "ZhVERSION_3DLDFJTq". "COPYRIGHT_3DLDFTkendl ush;2if=(DEBUGY)c}'out O"Exiting with returnk value 0.">endl ush;2exitCf(0);(g(else?f2c}'errG|÷"This can't happen! k"tTY"option_index has inkvalid value: "2optionffindex=UpFendl\"Will try to continuke."~Sendlendl ush;(ggelse4.7if?/(optionffctr/<'?' w)f(c}'err=|·"getopt_long() returkned ambiguous match.Ơ Breaking."endlendl ush;(breakDh;gelse5f(c}'err=|·"getopt_long() returkned invalid option." endl ush;gif)(DEBUGY)c}'out O"*******************k**\n\n" /;g=while$ѷ=if(optind<ar}'gc)fc}'out4 R"non-option ARGV-elekments: "M,;while 8BeginTLogJʄ`> -[LDFT2003.08.14.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`hDECUUcommandlineoptionproGcessing@1505i=Donothing.o= ThisXco 8BeginTLogJʄ`> -[LDFT2003.08.14.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`hPrintUUversion,copyright,andlicenseinformation@1506i -if(:SILENT_GLOBALDA)f#ifdefeLDF_GCC_2_95hGCCUU2.95printversion,copyright,andlicenseinformation@1507i#elsehGCCUU3.3andDECprintversion,copyright,andlicenseinformation@1508i#endif -g ThisXco 8BeginTLogJʄ`> -[LDFT2003.08.14.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`hGCCUU2.95printversion,copyright,andlicenseinformation@1507i +617)f(if3(DEBUGY)c}'out O"No more options."dbendlendl ush;(breakDh;gif)(optionffctr/<0)f(if3(DEBUGY)f2c}'outH T"option "5T}longffoptions9[optionffindex7@]:name;2if=(optar}'g[U)c}'out O" with arg "Etoptar}'g"m;2c}'outH Tendlګ;(g(if3(optionffindex:XHELP_INDEX7b)f2c}'outI\"3DLDF Version "]?\VERSION_3DLDFM÷\". "?޷\COPYRIGHT_3DLDFWFendl`R"Valid options for 3oDLDF are:"HRendl!4fF"--help: Prints this message and exits "6@AX"with return value 0lA."zַFendl]>׷Mendl޷M"--silent: SupprelLsses some output to Lstandard output"-ܷFendl]," and stlandard error when 3dϴldf is run."&$,endlFendl^Q0_g"--verbose: Causesm_+ status information ^to be printed "*F"to standard output"ط(endlC (" when 3m(idldf is run."OFendl]@ NDendlJND"--version: PrintslN the version number Mof 3DLDF"b]NDendlF" to standard output and "i˷c"exits with return vlcalue 0."MFendl\endl ush;2if=(DEBUGY)c}'out O"Exiting with returnk value 0.">endl ush;2exitCf(0);(g(else>.8ifI0(optionffindex:XSILENT_INDEXBM\)f2if=(DEBUGY)c}'out O"Setting SILENT_GLOBkAL to true."8endlګ;wڠn썫470PRÎOCESSXCOMMANDLINEOPTIONS$G3DLDFPRGx1508n@P2SILENT_GLOBALy^=true; (g(else>.8ifI0(optionffindex:XVERBOSE_INDEXGY)f2if=(DEBUGY)c}'out O"Setting VERBOSE_GLOkBAL to true."T5endlګ;2VERBOSE_GLOBAL~[=true;(g(else>.8ifI0(optionffindex:XVERSION_INDEXGY)f2c}'outH T"3DLDF Version "ZhVERSION_3DLDFJTq". "COPYRIGHT_3DLDFTkendl ush;2if=(DEBUGY)c}'out O"Exiting with returnk value 0.">endl ush;2exitCf(0);(g(else?f2c}'errG|÷"This can't happen! k"tTY"option_index has inkvalid value: "2optionffindex=UpFendl\"Will try to continuke."~Sendlendl ush;(ggelse4.7if?/(optionffctr/<'?' w)f(c}'err=|·"getopt_long() returkned ambiguous match.Ơ Breaking."endlendl ush;(breakDh;gelse5f(c}'err=|·"getopt_long() returkned invalid option." endl ush;gif)(DEBUGY)c}'out O"*******************k**\n\n" /;g=while$ѷ=if(optind<ar}'gc)fc}'out4 R"non-option ARGV-elekments: "M,;while 8BeginTLogJʄ`> -[LDFT2003.08.14.]Y;AddedUUthissection.Ȅ` 8EndTLogA>`hGCCUU3.3andDECprintversion,copyright,andlicenseinformation@1508i +c}'outY8:pr}'ecision'6(6); ThisXcoVExXGsectionUUabGove.o=if)(INVALID_REALBM\MAX_REAL-Mh)f(c}'err=|·"ERROR! In main():\nkINVALID_REAL == MAX_ƠREAL.\nExiting.")Lث;(exit9e(1);ghProGcessUUcommandlineoptions@1502i; SeeXalsosections1510and1511.ThisXco 8BeginTLogJʄ`> -[LDFT2003.08.29.]YVExXGsectionUUabGove.o= SeeXalsosections1515,1516,1517,1518,and1519.ThisXco޷"Exiting with returnk value 1.">endlendl ush;exit%c(1); +gn썷x15163DLDFPRÎG$MAINXITSELF473n@P1516. ThistestswhetherMAX_REAL1~hasareasonablevqalue.ThisissystemdepGendent,gsoitmayneedto bGeUU ddledwithwhen3DLDFisported.q[LDFT2003.12.08.] +TOUUDO:IfLDF_REAL_DOUBLER,thr}'eshold.smustbGesettoasmallervqalue.q[LDFT2003.12.08.]hMain@1514i+#ifdefeWORDS_BIGENDIAN +fc}'err,I"ERROR! In main():\nneThis is a big-endian) computer.\n"" ("You will have to change the way MAX_REAL is calculated\n"^m("in pspglb.web and recompile. Sorry about this.\n"5("Exiting with return value 1\n\n"؍! ush;exit%c(1); +g#endif +freal*0thr}'esholdU=1810^35!xޫ;#if LDF_REAL_DOUBLEc}'err)8ߐ"WARNING! In main()kT:"yFߐendlߐ"threshold must be skTet to a smaller value, "E("because real is a synonym for double."Kendl"$("Proceding with fingers crossed."؍!endlendl ush;#endifif((INVALID_REALA$8MAX_REAL,0)>thr}'eshold+ )fc}'err6#n"ERROR! In main():\nnmINVALID_REAL - MAX_RmEAL > 1e35.\n.",!2"INVALID_REAL == "INVALID_REALGJendl"MAX_REAL == "Q MAX_REAL2J2endlJ E"INVALID_REAL - MAX_m REAL == "E(INVALID_REALB|MAX_REAL-|)2endlI=v"This may mean that l:your computer represents floating point\>n"M蚷2"numbers differently from the one 3DLDF was developed on.\n"rŒ2"You'll have to change the way MAX_REAL is set in pspglb.weblQ."{)vendlԮ2"Exiting with return value 1."+endlendl ush;exit/d(1);g +g1517.hMain@1514i+ +hProGcessUUcommandlineoptions@1507i;1518.9Ȅ`+U 8Log)j`+U +[LDFT2003.08.29.]YVExX#text8abGove,qthatreferredtotheprecisionusedwhenprintingoutVERSION_3DLDFF$. -ThisUUisnolongerrelevqant,bGecauseVERSION_3DLDFKpisnowastring$zratherthanareal..Ȅ` 8EndTLogA>`hMain@1509i+ -hPrintUUversion,copyright,andlicenseinformation@1506i; n썷x15113DLDFPRÎG$KMAINU>ITSELF469n@P1511.hMain@1509i+ +ThisUUisnolongerrelevqant,bGecauseVERSION_3DLDFKpisnowastring$zratherthanareal..Ȅ`GhMain@1514i+ +hPrintUUversion,copyright,andlicenseinformation@1511i;n썫474MAINU>ITSELF$K3DLDFPRÎGx1519n@P1519.hMain@1514i+ initializeffio<("3DLDFin.ldf"DA;"3DLDFput.mp"Fp;"3DLDFput.tex"K;ar}'gvEI[0]); Color'O::initializeffc}'olorsD(); -hActionsUUinmain@1500i; +hActionsUUinmain@1505i; writefffo}'otersA();#if 0 inffstr}'eam4$.:close7˫();#endif outffstr}'eam9@:close7˫(); texffstr}'eam8u:close7˫(); if(:SILENT_GLOBALDA)fc}'out* Q"Exiting 3DLDF Versikon "PVERSION_3DLDFJTq".\n\n"*ԃ ush; g -return-滫(0);qǷg1512. PuttingTMaintogether.ThisUUiswhat'scompiled. +return-滫(0);qǷg1520. PuttingTMaintogether.ThisUUiswhat'scompiled. hIncludeUU les@11i hV*ersionUUcontrolidenti er@10i -hMain@1509i#endif1513. AppQendices.1514. References.Cundy*,U>H.MartynandA.P.Rollet.Mathematic}'alModels.Oxford1961.OxfordUniversityU>Press.sUnfortunatelyU>outofprint.Finston,U>LaurenceD.3DLDFUserandR}'eferenceU>Manual.Gottingen2003.Fischer,U>Gerd.Eb}'enealgebraischeKurven.ViewegStudium.AufbaukursMathematik.F*riedr.Vieweg SohnU>V*erlagsgesellschaftmbH.Braunschweig/Wiesbaden1994.Hobby*,U>JohnD.AUser'sManualforMetaPost.ATT pBellLabGoratories.MurrayHill,NJ.Nodate.Jones,U>Huw.ComputerGr}'aphicsthroughKeyMathematics.Springer-V*erlagLondonLimited2001.ISBNU>1-85233-422-3.Knuth,U>DonaldErvin.Metafont:TheU>Pr}'ogram.ComputersandTypGesetting;D.AddisonW*esleyPublish-ingU>Company*,Inc.Reading,Massachusetts1986.ISBNU>0-201-13438-1.Knuth,U>DonaldErvin.TheMET;AFONTb}'ook.ComputersU>andTypGesetting;C.AddisonW*esleyPublishingCompany*,U>Inc.Reading,Massachusetts1986.Knuth,U>DonaldErvin.T;eX:ThePr}'ogram.ComputersU>andTypGesetting;B.AddisonW*esleyPublishingCompany*,U>Inc.Reading,Massachusetts1986.ISBNU>0-201-13437-3.Knuth,U>DonaldE.TheTKßVE-X&b}'ook.ComputersU>andTypGesetting;A.AddisonW*esleyPublishingCompany*,Inc.Reading,U>Massachusetts1986.Knuth,U>DonaldE.andSilvioLevy*.TheCWEBSystemofStructur}'edU>Documentation.V*ersionU>3.64|February2002.ޠn썫470REFERENCES#\3DLDFPRÎGx1514n@PSalomon,U>David.ComputerGr}'aphicsandGeometricModeling.Berlin1999.Springer-V*erlag. ISBN:U>0-387-98682-0.StoGer,U>Josef.NumerischeMathematik1.Achte,U>neubGearbeiteteU>underweiterteAu age.Springer-V*erlag.BerlinU>1999.ISBN3-540-66154-9.Stroustrup,U>Bjarne.TheC++^Pr}'ogrammingU>Language.SpGecialU>Edition.Reading,MassachusettsU>2000.Addison-W*esley.ISBNU>0-201-70073-5.Stroustrup,U>Bjarne.TheDesignandEvolutionofC++ G .Reading,MassachusettsU>1994.Addison-W*esleyPublishingU>Company*.ISBNU>0-201-54330-3.1515. GNU^F +hMain@1514i#endif1521. AppQendices.1522. References.Cundy*,U>H.MartynandA.P.Rollet.Mathematic}'alModels.Oxford1961.OxfordUniversityU>Press.sUnfortunatelyU>outofprint.Finston,U>LaurenceD.3DLDFUserandR}'eferenceU>Manual.Gottingen2003.Fischer,U>Gerd.Eb}'enealgebraischeKurven.ViewegStudium.AufbaukursMathematik.F*riedr.Vieweg SohnU>V*erlagsgesellschaftmbH.Braunschweig/Wiesbaden1994.Hobby*,U>JohnD.AUser'sManualforMetaPost.ATT pBellLabGoratories.MurrayHill,NJ.Nodate.Jones,U>Huw.ComputerGr}'aphicsthroughKeyMathematics.Springer-V*erlagLondonLimited2001.ISBNU>1-85233-422-3.Knuth,U>DonaldErvin.Metafont:TheU>Pr}'ogram.ComputersandTypGesetting;D.AddisonW*esleyPublish-ingU>Company*,Inc.Reading,Massachusetts1986.ISBNU>0-201-13438-1.Knuth,U>DonaldErvin.TheMET;AFONTb}'ook.ComputersU>andTypGesetting;C.AddisonW*esleyPublishingCompany*,U>Inc.Reading,Massachusetts1986.Knuth,U>DonaldErvin.T;eX:ThePr}'ogram.ComputersU>andTypGesetting;B.AddisonW*esleyPublishingCompany*,U>Inc.Reading,Massachusetts1986.ISBNU>0-201-13437-3.Knuth,U>DonaldE.TheTKßVE-X&b}'ook.ComputersU>andTypGesetting;A.AddisonW*esleyPublishingCompany*,Inc.Reading,U>Massachusetts1986.Knuth,U>DonaldE.andSilvioLevy*.TheCWEBSystemofStructur}'edU>Documentation.V*ersionU>3.64|February2002.-n썷x15223DLDFPRÎG#\REFERENCES475n@PSalomon,U>David.ComputerGr}'aphicsandGeometricModeling.Berlin1999.Springer-V*erlag. ISBN:U>0-387-98682-0.StoGer,U>Josef.NumerischeMathematik1.Achte,U>neubGearbeiteteU>underweiterteAu age.Springer-V*erlag.BerlinU>1999.ISBN3-540-66154-9.Stroustrup,U>Bjarne.TheC++^Pr}'ogrammingU>Language.SpGecialU>Edition.Reading,MassachusettsU>2000.Addison-W*esley.ISBNU>0-201-70073-5.Stroustrup,U>Bjarne.TheDesignandEvolutionofC++ G .Reading,MassachusettsU>1994.Addison-W*esleyPublishingU>Company*.ISBNU>0-201-54330-3.1523. GNU^F reeDoQcumen9tationLicense.TheGNUF*reeDoGcumentationLicense,whichfollows,appliesUUtothisdoGcument.GGNUUUF*reeDoGcumentationLicenseV*ersionUU1.2,NovembGerUU2002CopyrightrcUU 2000,2001,2002UUF*reeSoftwareUUFoundation,Inc.59UUT*emplePlace,Suite330,Boston,MA02111-1307USAEveryoneoispGermittedtocopyanddistributeverbatimcopiesofthislicensedoGcument,ubutchangingitisnotUUallowed.0.qPREAMBLE TheRpurpGoseofthisLicenseistomakeamanual,textbGook,orRotherfunctionalandusefuldoGcument\free"inthesenseoffreedom:C\toassureeveryonethee ectivefreedomtocopyandredistributeit, withorwithoutmoGdifyingݥit,eithercommerciallyornoncommercially*.ISecondarily,thisݥLicensepreservesfortheauthorandpublisher~away~togetcreditfortheirwork,IwhilenotbGeingconsideredresponsibleformodi cationsmadebyUUothers. This0~Licenseisakindof\copyleft",7which0~meansthatderivqativeworksofthedoGcumentmustthemselvesbGe_afreeinthesamesense.ItcomplementstheGNU_GeneralPublicLicense,whichisacopyleftlicensedesignedUUforfreesoftware. @@ -5762,7 +5848,7 @@ regardlessofhsub8jectmatterorwhetheritispublishedasaprintedbGook.W*ehrecommendthisLicenseprincipallyforworksUUwhosepurpGoseisinstructionorreference._1.qAPPLICABILITYUUANDDEFINITIONS ThishLicenseappliestoanymanualorotherwork,inanymedium,thatcontainsanoticeplacedbythe copyrightPholdersayingitcanbGedistributedunderthetermsofthisLicense.pSuchanoticegrantsaworld-wide,royalty-freeTlicense,unlimitedinduration,tousethatworkundertheconditionsstatedherein.vThe\DoGcument",}hbelow,}hrefersB1toanysuchmanualorwork.8\AnymembGerofthepublicisalicensee,}handisaddressedas\you".FY*ouacceptthelicenseifyoucopy*,moGdifyordistributetheworkinawayrequiringpGermissionUUundercopyrightUUlaw. A$\MoGdi edDV*ersion"oftheDocumentmeansanyworkcontainingtheDoGcumentorapGortionofit,zeithercopiedUUverbatim,orwithmoGdi cationsand/ortranslatedintoanotherlanguage. -A\\Secondary]Section"isanamedappGendixorafront-mattersectionoftheDocumentthatdealsexclusively0withtherelationshipofthepublishersorauthorsoftheDoGcumenttotheDoGcument'soverallsub8jectp(ortorelatedmatters)andcontainsnothingthatcouldfalldirectlywithinthatoverallsub8ject.n썷x15153DLDFPRÎGGGNUXFREEDOCUMENTJATIONXLICENSE471n@P(Thus,fif0theDoGcumentisinpartatextbGook0ofmathematics,faSecondarySectionmaynotexplainany mathematics.)LTheqrelationshipcouldbGeamatterofhistoricalconnectionwiththesub8jectorwithrelatedmatters,UUoroflegal,commercial,philosophical,ethicalorpGoliticalpositionregardingthem. +A\\Secondary]Section"isanamedappGendixorafront-mattersectionoftheDocumentthatdealsexclusively0withtherelationshipofthepublishersorauthorsoftheDoGcumenttotheDoGcument'soverallsub8jectp(ortorelatedmatters)andcontainsnothingthatcouldfalldirectlywithinthatoverallsub8ject.n썫476GNUXFREEDOCUMENTJATIONXLICENSEG3DLDFPRÎGx1523n@P(Thus,fif0theDoGcumentisinpartatextbGook0ofmathematics,faSecondarySectionmaynotexplainany mathematics.)LTheqrelationshipcouldbGeamatterofhistoricalconnectionwiththesub8jectorwithrelatedmatters,UUoroflegal,commercial,philosophical,ethicalorpGoliticalpositionregardingthem. TheE\InvqariantSections"arecertainSecondarySectionswhosetitlesaredesignated,asbGeingthoseofInvqariantЕSections,"inthenoticethatsaysthattheDoGcumentisreleasedunderthisLicense.EIfasectiondoGesnotQ ttheabGoveQde nitionofSecondarythenitisnotallowedQtobedesignatedasInvqariant.SpTheQDocumentmay6containzeroInvqariantSections.jIftheDoGcumentdoGesnotidentifyanyInvqariantSectionsthenthereareUUnone. TheO\CoverT*exts"arecertainshortpassagesoftextthatarelisted,PYasFront-CoverT*extsorBack-CoverT*exts,inthenoticethatsaysthattheDoGcumentisreleasedunderthisLicense.W=AF*ront-CoverT*extmaybGeatUUmost5words,andaBack-CoverT*extmaybGeatmost25words. A\T*ransparent")copyoftheDoGcumentmeansamachine-readablecopy*,representedinaformatwhosespGeci cationisavqailabletothegeneralpublic,Ǔthatissuitableforrevisingthedocumentstraightforwardlywithgenerictexteditorsor(forimagescompGosedofpixels)genericpaintprogramsor(fordrawings)somewidely!avqailabledrawingeditor,,andthatissuitableforinputtotextformattersorforautomatictranslationto\avqarietyofformatssuitableforinputtotextformatters.RA\?copymadeinanotherwiseT*ransparent leM%formatwhosemarkup,orabsenceofmarkup,hasbGeenarrangedtothwartM%ordiscouragesubsequentmoGdi cationX(byreadersisnotT*ransparent.z@AnimageformatisnotT*ransparentifusedforanysubstantialamountUUoftext.qAcopythatisnot\T*ransparent"iscalled\Opaque". @@ -5771,14 +5857,14 @@ A^sectionq\EntitledXYZ"meansanamedsubunitoftheDoGcumentwhosetitleeitherispreciselyXYZorcontainsXYZinparenthesesfollowingtextthattranslatesXYZinanotherlanguage.^K(HereXYZstandsforaW3spGeci csectionnamementionedbelow,WsuchW3as\Acknowledgements",\Dedications",\Endorsements",or\History".)Q&T*op\PreservetheTitle"ofsuchasectionwhenyoumoGdifytheDocumentmeansthatitremainsaUUsection\EntitledXYZ"accordingtothisde nition. ThesDoGcumentmayincludeW*arrantyDisclaimersnexttothenoticewhichstatesthatthisLicenseappliestostheDoGcument.!TheseW*arrantyDisclaimersareconsideredtobGeincludedbyreferenceinthisLicense,butonlyasregardsdisclaimingwarranties:3anyotherimplicationthattheseW*arrantyDisclaimersmayhaveisUUvoidandhasnoe ectonthemeaningofthisLicense.Bd2.qVERBA*TIMUUCOPYING Y*ouvmaycopyanddistributetheDoGcumentinanymedium,eithercommerciallyornoncommercially*, providedthatthisLicense,thecopyrightnotices,andthelicensenoticesayingthisLicenseappliestotheDoGcumentarereproducedinallcopies, -GandthatyouaddnootherconditionswhatsoevertothoseofthisLicense.$Y*oumaynotusetechnicalmeasurestoobstructorcontrolthereadingorfurthercopyingofthecopiesXyoumakeordistribute.However,youmayacceptcompGensationinexchangeforcopies.IfyoudistributeUUalargeenoughnumbGerUUofcopiesyoumustalsofollowtheconditionsinsection3.Fn썫472GNUXFREEDOCUMENTJATIONXLICENSEG3DLDFPRÎGx1515n@P +GandthatyouaddnootherconditionswhatsoevertothoseofthisLicense.$Y*oumaynotusetechnicalmeasurestoobstructorcontrolthereadingorfurthercopyingofthecopiesXyoumakeordistribute.However,youmayacceptcompGensationinexchangeforcopies.IfyoudistributeUUalargeenoughnumbGerUUofcopiesyoumustalsofollowtheconditionsinsection3.וn썷x15233DLDFPRÎGGGNUXFREEDOCUMENTJATIONXLICENSE477n@P Y*ouUUmayalsolendcopies,underthesameconditionsstatedabGove,andyoumaypubliclydisplaycopies.+3.qCOPYINGUUINQUANTITY Ifʻyoupublishprintedcopies(orcopiesinmediathatcommonlyhaveprintedcovers)oftheDoGcument, numbGeringmorethan100,#LandtheDocument'slicensenoticerequiresCoverT*exts,#Lyoumustenclosethecopies_incovers_thatcarry*,baclearlyandlegibly,baalltheseCover_Texts:Front-Cover_Textsonthefrontcover,andpBack-CoverT*extsonthebackcover.Bothcoversmustalsoclearlyandlegiblyidentifyyouasthepublisherzofthesecopies.6Thefrontcovermustpresentthefulltitlewithallwordsofthetitleequallyprominentandvisible.QY*oumayaddothermaterialonthecoversinaddition.QCopyingwithchangeslimitedto thecovers,as longastheypreservethetitleoftheDoGcumentandsatisfytheseconditions,canbGetreatedasUUverbatimcopyinginotherrespGects. If]therequiredtextsforeithercover]aretoGovoluminousto tlegibly*,_youshouldputthe rstoneslisted(asUUmanyas treasonably)ontheactualcover,andcontinuetherestontoadjacentpages. IfyoupublishordistributeOpaquecopiesoftheDoGcumentnumbGeringmorethan100,VyoumusteitherincludeIamachine-readableT*ransparentcopyalongwitheachOpaquecopy*,orstateinorwitheachOpaquecopy'acomputer-networkloGcationfromwhichthegeneralnetwork-usingpublichasaccesstodownloadusingpublic-standardznetworkprotoGcolsacompleteT*ransparentcopyoftheDoGcument,' freeofaddedmaterial.^~Ifyouusethelatteroption,]youmusttakereasonablyprudentsteps,]whenyoubGegindistributionofOpaquecopiesinquantity*,toensurethatthisTransparentcopywillremainthusaccessibleatthestatedloGcationuntil"atleastoneyearafterthelasttimeyoudistributeanOpaquecopy(directlyorthroughyouragentsorretailers)UUofthateditiontothepublic. It(Fisrequested,1Ibutnotrequired,thatyoucontacttheauthorsoftheDoGcumentwellbGeforeredistributinganylargenumbGerofcopies,AtogivethemachancetoprovideyouwithanupGdatedversionoftheDoGcument.e4.qMODIFICA*TIONS Y*ouVmaycopyanddistributeaMoGdi edV*ersionoftheDocumentundertheconditionsofsections2and 3i!abGove,providedthatyoureleasetheMoGdi edV*ersionunderpreciselythisLicense,withtheModi edV*ersion llingtheroleoftheDoGcument,thus licensingdistributionandmodi cationoftheModi edV*ersiontoUUwhoGeverpossessesacopyofit.qInaddition,youmustdothesethingsintheMoGdi edV*ersion: -A.V UseintheTitlePage(andonthecovers,V9ifany)atitledistinctfromthatoftheDoGcument,V9andfromthoseofpreviousversions(whichshould,iftherewereany*,bGelistedintheHistorysectionoftheDocument).Y*ouamayusethesametitleasapreviousversioniftheoriginalpublisherofthatversiongivespGermission.B.6ListontheTitlePage,.asauthors,oneormorepGersonsorentitiesresponsibleforauthorshipofthemoGdi cationsIintheModi edV*ersion,togetherwithatleast veoftheprincipalauthorsoftheDocument(allTofitsprincipalauthors,ifithasfewerthan ve),unlesstheyreleaseyoufromthisrequirement.NC.StateontheTitlepagethenameofthepublisheroftheMoGdi edV*ersion,asthepublisher.D.Preserveallthecopyright@noticesoftheDoGcument.jE.AddanappropriatecopyrightnoticeforyourmoGdi cationsadjacenttoɜtheothercopyrightɜnotices.ΜF.Include,immediatelyafterthecopyrightɜnotices,alicensenoticegivingthe9publicpGermissiontousetheModi edV*ersionunderthetermsofthisLicense,>intheformshownintheAddendumbGelow.DTG.PreserveinthatlicensenoticethefulllistsofInvqariantSectionsandrequiredCoverT*extszgivenintheDoGcument'slicensenotice.H.IncludeanunalteredcopyofthisLicense.I.PreservethesectionJEntitled\History",PreserveitsTitle,andaddtoitanitemstatingatleastthetitle,year,newauthors, andpublisheroftheMoGdi edV*ersionasgivenontheTitlePage.'$IfthereisnosectionEntitled\History"OintheDoGcument,createonestatingthetitle,year,authors,andpublisheroftheDoGcumentasgivenonitsTitlePage,\thenaddanitemdescribingtheMoGdi edV*ersionasstatedintheprevioussentence.J.R%PreservethenetworkloGcation,Xifany*,XgivenintheDoGcumentforpublicaccesstoaT*ransparentcopyof;$theDoGcument,tandlikewisethenetworkloGcationsgivenintheDoGcumentforpreviousversionsitwasbasedWon.xThesemaybGeplacedinthe\History"section.Y*oumayomitanetworkloGcationforawork᭠n썷x15153DLDFPRÎGGGNUXFREEDOCUMENTJATIONXLICENSE473n@PthatnwaspublishedatleastfouryearsbGeforetheDocumentitself,uoriftheoriginalpublisheroftheversion itͶreferstogivespGermission.K.F*oranysectionEntitled\Acknowledgements"or\Dedications",PreservetheTitleofthesection,#andpreserveinthesectionallthesubstanceandtoneofeachofthecontributoracknowledgements]and/ordedicationsgiventherein.OL.PreservealltheInvqariantSectionsoftheDoGcument,unalteredpintheirtextandintheirtitles.SectionnumbGersportheequivqalentarenotconsideredpartofthesectiontitles.yM.DeleteanysectionEntitled\Endorsements".ySuchasectionmaynotbGeincludedintheMoGdi ed1V*ersion.UN.DonotretitleanyexistingsectiontobeEntitled\Endorsements"ortocon ictintitlewithUUanyInvqariantSection.qO.PreserveanyW*arrantyDisclaimers. +A.V UseintheTitlePage(andonthecovers,V9ifany)atitledistinctfromthatoftheDoGcument,V9andfromthoseofpreviousversions(whichshould,iftherewereany*,bGelistedintheHistorysectionoftheDocument).Y*ouamayusethesametitleasapreviousversioniftheoriginalpublisherofthatversiongivespGermission.B.6ListontheTitlePage,.asauthors,oneormorepGersonsorentitiesresponsibleforauthorshipofthemoGdi cationsIintheModi edV*ersion,togetherwithatleast veoftheprincipalauthorsoftheDocument(allTofitsprincipalauthors,ifithasfewerthan ve),unlesstheyreleaseyoufromthisrequirement.NC.StateontheTitlepagethenameofthepublisheroftheMoGdi edV*ersion,asthepublisher.D.Preserveallthecopyright@noticesoftheDoGcument.jE.AddanappropriatecopyrightnoticeforyourmoGdi cationsadjacenttoɜtheothercopyrightɜnotices.ΜF.Include,immediatelyafterthecopyrightɜnotices,alicensenoticegivingthe9publicpGermissiontousetheModi edV*ersionunderthetermsofthisLicense,>intheformshownintheAddendumbGelow.DTG.PreserveinthatlicensenoticethefulllistsofInvqariantSectionsandrequiredCoverT*extszgivenintheDoGcument'slicensenotice.H.IncludeanunalteredcopyofthisLicense.I.PreservethesectionJEntitled\History",PreserveitsTitle,andaddtoitanitemstatingatleastthetitle,year,newauthors, andpublisheroftheMoGdi edV*ersionasgivenontheTitlePage.'$IfthereisnosectionEntitled\History"OintheDoGcument,createonestatingthetitle,year,authors,andpublisheroftheDoGcumentasgivenonitsTitlePage,\thenaddanitemdescribingtheMoGdi edV*ersionasstatedintheprevioussentence.J.R%PreservethenetworkloGcation,Xifany*,XgivenintheDoGcumentforpublicaccesstoaT*ransparentcopyof;$theDoGcument,tandlikewisethenetworkloGcationsgivenintheDoGcumentforpreviousversionsitwasbasedWon.xThesemaybGeplacedinthe\History"section.Y*oumayomitanetworkloGcationforaworkn썫478GNUXFREEDOCUMENTJATIONXLICENSEG3DLDFPRÎGx1523n@PthatnwaspublishedatleastfouryearsbGeforetheDocumentitself,uoriftheoriginalpublisheroftheversion itͶreferstogivespGermission.K.F*oranysectionEntitled\Acknowledgements"or\Dedications",PreservetheTitleofthesection,#andpreserveinthesectionallthesubstanceandtoneofeachofthecontributoracknowledgements]and/ordedicationsgiventherein.OL.PreservealltheInvqariantSectionsoftheDoGcument,unalteredpintheirtextandintheirtitles.SectionnumbGersportheequivqalentarenotconsideredpartofthesectiontitles.yM.DeleteanysectionEntitled\Endorsements".ySuchasectionmaynotbGeincludedintheMoGdi ed1V*ersion.UN.DonotretitleanyexistingsectiontobeEntitled\Endorsements"ortocon ictintitlewithUUanyInvqariantSection.qO.PreserveanyW*arrantyDisclaimers. IfvtheMoGdi edV*ersionincludesnewfront-mattersectionsorappendicesthatqualifyasSecondarySectionsandcontainnomaterialcopiedfromtheDoGcument,youmayatyouroptiondesignatesomeorallofthesesectionsJasinvqariant.XT*oJdothis,addtheirtitlestothelistofInvariantJSectionsintheMoGdi edV*ersion'slicenseUUnotice.qThesetitlesmustbGedistinctfromanyothersectiontitles. Y*ouzmayaddasectionEntitled\Endorsements",5provideditcontainsnothingbutendorsementsofyourMoGdi edUOV*ersionbyvqariousparties{forexample,statementsofpGeerrevieworthatthetexthasbeenapprovedbyUUanorganizationastheauthoritativede nitionofastandard. Y*ouQmayaddapassageofupto vewordsasaF*ront-CoverT*ext,andapassageofupto25wordsasao|Back-CoverT*ext,totheendofthelistofCoverT*extsintheMoGdi edVersion.=OnlyonepassageofF*ront-CoverJTextandoneofBack-CoverJTextmaybGeaddedby(orthrougharrangementsmadeby)anyone#entity*.aTIftheDoGcumentalreadyincludesacovertextforthesamecover,-previouslyaddedbyyouorbyarrangementmadebythesameentityyouareactingonbGehalfof,(youmaynotaddanother;RbutyoumayreplaceUUtheoldone,onexplicitpGermissionfromthepreviouspublisherthataddedtheoldone. @@ -5788,7 +5874,7 @@ In1thecombination,8you1mustcombineanysectionsEntitled\History"inthevqariousoriginaldoGcuments,forming +onesectionEntitled\History";clikewisecombineanysectionsEntitled\Acknowledgements",6 andanyUUsectionsEntitled\Dedications".qY*oumustdeleteallsectionsEntitled\Endorsements".} 6.qCOLLECTIONSUUOFDOCUMENTS Y*ouNmaymakeacollectionconsistingoftheDoGcumentandotherdoGcumentsreleasedunderthisLicense, andreplacetheindividualcopiesofthisLicenseinthevqariousdoGcumentswithasinglecopythatisincludedinsthecollection,providedthatyoufollowtherulesofthisLicenseforverbatimcopyingofeachofthedoGcumentsUUinallotherrespects. -Y*ou~DmayextractasingledoGcumentfromsuchacollection,GanddistributeitindividuallyunderthisLicense,providedseyouinsertacopyofthisLicenseintotheextracteddoGcument,zandfollowthisLicenseinallotherrespGectsUUregardingverbatimcopyingofthatdoGcument.@n썫474GNUXFREEDOCUMENTJATIONXLICENSEG3DLDFPRÎGx1515n@Pqt%7.qAGGREGA*TIONUUWITHINDEPENDENTWORKS +Y*ou~DmayextractasingledoGcumentfromsuchacollection,GanddistributeitindividuallyunderthisLicense,providedseyouinsertacopyofthisLicenseintotheextracteddoGcument,zandfollowthisLicenseinallotherrespGectsUUregardingverbatimcopyingofthatdoGcument.n썷x15233DLDFPRÎGGGNUXFREEDOCUMENTJATIONXLICENSE479n@Pqt%7.qAGGREGA*TIONUUWITHINDEPENDENTWORKS AvbcompilationvoftheDoGcumentoritsderivqativeswithotherseparateandindepGendentdoGcumentsorworks, inoronavolumeofastorageordistributionmedium,θiscalledan\aggregate"ifthecopyrightresultingfromthecompilationisnotusedtolimitthelegalrightsofthecompilation'susersbGeyondwhattheindividualworkspGermit.V=WhentheDocumentisincludedinanaggregate,1thisLicensedoesnotapplytotheotherworksUUintheaggregatewhicharenotthemselvesderivqativeworksoftheDoGcument. IfEtheCoverET*extrequirementofsection3isapplicabletothesecopiesoftheDoGcument,theniftheDoGcumentislessthanonehalfoftheentireaggregate,~theDoGcument'sCoverT*extsmaybGeplacedoncoversthatMbrackettheDoGcumentwithintheaggregate,ortheelectronicequivqalentofcoversiftheDoGcumentisinUUelectronicform.qOtherwisetheymustappGearonprintedcoversthatbracketthewholeaggregate.1/8.qTRANSLA*TION T*ranslationisconsideredakindofmoGdi cation,soyoumaydistributetranslationsoftheDoGcumentunderڿthetermsofsection4.HReplacingInvqariantڿSectionswithtranslationsrequiresspGecialpermissionfromtheircopyrightholders,butyoumayincludetranslationsofsomeorallInvqariantSectionsinadditiontotheoriginalversionsoftheseInvqariantSections.:Y*oumayincludeatranslationofthisLicense,тandallthelicensenoticesintheDoGcument,andanyW*arrantyDisclaimers,providedthatyoualsoincludetheoriginalEnglishversion~/ofthisLicenseandtheoriginalversionsofthosenoticesanddisclaimers.VIncaseofadisagreementbGetweenthetranslationandtheoriginalversionofthisLicenseoranoticeordisclaimer, theoriginalversionwillUUprevqail. @@ -5796,16 +5882,16 @@ Y*ou1maynotcopy*,8moGdify,sublicense,or1distributetheDoGcumentexceptasexpresslyprovidedforunderthisULicense.xAnyotherattempttocopy*,-moGdify,sublicenseUordistributetheDoGcumentisvoid,-andwillautomaticallyöterminateyourrightsunderthisLicense.A=However,partieswhohavereceivedcopies,orrights,from youunderthisLicensewillnothavetheirlicensesterminatedsolongassuchpartiesremaininfullcompliance.1/10.qFUTUREUUREVISIONSOFTHISLICENSE TheF*reeSoftwareFoundationmaypublishnew,revisedversionsoftheGNUӲF*reeDoGcumentationLicensefromtimetotime.^9SuchnewversionswillbGesimilarinspirittothepresentversion,&fbutmaydi erindetailtoUUaddressnewproblemsorconcerns.qSeehttp://www.gnu.org/copyleft/. EachversionoftheLicenseisgivenadistinguishingversionnumbGer.%IftheDocumentspeci esthataparticularnumbGeredversionofthisLicense\oranylaterversion"appliestoit,youhavetheoptionoffollowingthetermsandconditionseitherofthatspGeci edversionorofanylaterversionthathasbGeenpublished#(notasadraft)bytheF*reeSoftwareF*oundation.ݼIftheDoGcumentdoGesnotspecifyaversionnumbGer7ofthisLicense,#oyoumaychoGoseanyversioneverpublished(notasadraft)bytheF*reeSoftwareF*oundation.1/i9zADDENDUM:UUHowtousethisLicenseforyourdoGcuments -T*ofusethisLicenseinadoGcumentyouhavewritten,includeacopyoftheLicenseinthedoGcumentandputUUthefollowingcopyrightandlicensenoticesjustafterthetitlepage:Copyright]c@ :YEAR1YOURNAME.@Permissionisgrantedtocopy*,(wdistributeand/ormoGdifythisdocumentunder:thetermsoftheGNU:~F*reeDoGcumentationLicense,?Version1.2oranylaterversionpublishedbythe n썷x15153DLDFPRÎGGGNUXFREEDOCUMENTJATIONXLICENSE475n@PF*reeESoftwareF*oundation;žwithnoInvqariantSections,noF*ront-CoverT*exts,andnoBack-CoverT*exts.RA copyUUofthelicenseisincludedinthesectionentitled\GNUF*reeDoGcumentationLicense". +T*ofusethisLicenseinadoGcumentyouhavewritten,includeacopyoftheLicenseinthedoGcumentandputUUthefollowingcopyrightandlicensenoticesjustafterthetitlepage:Copyright]c@ :YEAR1YOURNAME.@Permissionisgrantedtocopy*,(wdistributeand/ormoGdifythisdocumentunder:thetermsoftheGNU:~F*reeDoGcumentationLicense,?Version1.2oranylaterversionpublishedbythenn썫480GNUXFREEDOCUMENTJATIONXLICENSEG3DLDFPRÎGx1523n@PF*reeESoftwareF*oundation;žwithnoInvqariantSections,noF*ront-CoverT*exts,andnoBack-CoverT*exts.RA copyUUofthelicenseisincludedinthesectionentitled\GNUF*reeDoGcumentationLicense". IfpyouhaveInvqariantSections,vF*ront-CoverT*extsandBack-CoverT*exts,vreplacethe\with...Texts."linewithUUthis:withAtheInvqariantASectionsbGeingLISTATHEIRTITLES,AwiththeF*ront-CoverATextsbGeingLIST,andwiththeUUBack-CoverT*extsbGeingLIST. If\youhaveInvqariantSectionswithoutCoverT*exts,^orsomeothercombinationofthethree,^mergethosetwoUUalternativestosuitthesituation. -Ifh2yourdoGcumentcontainsnontrivialexamplesofprogramcoGde,lwerecommendreleasingtheseexamplesinparallelunderyourchoiceoffreesoftwarelicense, suchastheGNU`GeneralPublicLicense, topGermittheirUUuseinfreesoftware.hGNUUUF*reeDoGcumentationLicense@1515i=ThissectioncontainsnoC++ucoGde.o= ThisXcolicensesformostsoftware>aredesignedtotakeawayyourfreedomtoshareandchangeit.:jBycontrast,theLGNU/GeneralPublicLicenseisintendedtoguaranteeyourfreedomtoshareandchangefreesoftware{tomakeR+surethesoftwareisfreeforallitsusers.hJThisGeneralPublicLicenseappliestomostoftheF*reeSoftwareF*oundation'ssoftwareandtoanyotherprogramwhoseauthorscommittousingit.x=(SomeotherF*ree?SoftwareF*oundationsoftwareiscoveredbytheGNU$LibraryGeneralPublicLicenseinstead.)NjY*oucanapplyUUittoyourprograms,toGo. WhenywespGeakoffreesoftware,wearereferringtofreedom,notprice.OurGeneralPublicLicensesaredesignedtomakesurethatyouhavethefreedomtodistributecopiesoffreesoftware(andchargeforthisserviceifyouwish),ƠthatyoureceivesourcecoGdeorcangetitifyouwantit,ƠthatyoucanchangethesoftwareorUUusepiecesofitinnewfreeprograms;andthatyouknowyoucandothesethings. T*o(aprotectyourrights,1^weneedtomakerestrictionsthatforbidanyonetodenyyoutheserightsortoaskyouStosurrendertherights.:TheserestrictionstranslatetocertainrespGonsibilitiesforyouifyoudistributecopiesUUofthesoftware,UUorifyoumoGdifyit. F*or~example,,ifyoudistributecopiesofsuchaprogram,,whethergratisorforafee,youmustgivetherecipientsalltherightsthatyouhave.zY*oumustmakesurethatthey*,.stoGo,receiveorcangetthesourcecoGde.qAndUUyoumustshowthemthesetermssotheyknowtheirrights. W*eprotectyourrightswithtwosteps:M(1)copyrightthesoftware,@and(2)o eryouthislicensewhichgivesUUyoulegalpGermissiontocopy*,distributeand/ormoGdifythesoftware. -Also,forғeachauthor'sprotectionandours,wewanttomakecertainthateveryoneunderstandsthatthereis@nowarranty@forthisfreesoftware.jIf@thesoftware@ismoGdi edbysomeoneelseandpassedon,Ewewantitsrecipientstoknowthatwhattheyhaveisnottheoriginal,sothatanyproblemsintroGducedbyotherswillnotUUre ectontheoriginalauthors'reputations.ߠn썫476GNUXGENERALPUBLICLICENSEс}3DLDFPRÎGx1516n@P +Also,forғeachauthor'sprotectionandours,wewanttomakecertainthateveryoneunderstandsthatthereis@nowarranty@forthisfreesoftware.jIf@thesoftware@ismoGdi edbysomeoneelseandpassedon,Ewewantitsrecipientstoknowthatwhattheyhaveisnottheoriginal,sothatanyproblemsintroGducedbyotherswillnotUUre ectontheoriginalauthors'reputations.+.n썷x15243DLDFPRÎGс}GNUXGENERALPUBLICLICENSE481n@P Finally*,anyufreeprogramisthreatenedconstantlybysoftwarepatents.ӪW*ewishtoavoidthedanger thatWredistributorsofafreeprogramwillindividuallyobtainpatentlicenses,ine ectmakingtheprogramproprietary*.lToF preventthis,IwehavemadeitclearthatanypatentmustbGelicensedforeveryone'sfreeuseorUUnotlicensedatall. TheUUprecisetermsandconditionsforcopying,distributionandmoGdi cationfollow.NGNUUUGENERALPUBLICLICENSE$TERMSUUANDCONDITIONSFORCOPYING,DISTRIBUTIONANDMODIFICA*TION @@ -5815,7 +5901,7 @@ Y*outherecipientautomaticallyreceives zalicensefromtheoriginallicensortocopy*,sdistributeormoGdifytheProgramsub8jecttothesetermsandvconditions.UY*oumaynotimpGoseanyfurtherrestrictionsontherecipients'exerciseoftherightsgrantedherein.qY*ouUUarenotrespGonsibleforenforcingcompliancebythirdpartiestothisLicense. -7.1|If,assaconsequenceofacourtjudgmentorallegationofpatentinfringementorforanyotherreason(notlimitedDtopatentissues),conditionsareimpGosedonyou(whetherbycourtorder,agreementorotherwise)thatcontradicttheconditionsofthisLicense,EtheydonotexcuseyoufromtheconditionsofthisLicense.IfyoucannotdistributesoastosatisfysimultaneouslyyourobligationsunderthisLicenseandanyotherpGertinent.obligations,thenasaconsequenceyoumaynotdistributetheProgramatall.vQF*orexample,ifapatentglicensewouldnotpGermitroyalty-freeredistributionoftheProgrambyallthosewhoreceivecopiesdirectly@5orindirectlythroughyou,DnthentheonlywayyoucouldsatisfybGothitandthisLicensewouldbGetorefrainUUentirelyfromdistributionoftheProgram.Fn썫478GNUXGENERALPUBLICLICENSEс}3DLDFPRÎGx1516n@P +7.1|If,assaconsequenceofacourtjudgmentorallegationofpatentinfringementorforanyotherreason(notlimitedDtopatentissues),conditionsareimpGosedonyou(whetherbycourtorder,agreementorotherwise)thatcontradicttheconditionsofthisLicense,EtheydonotexcuseyoufromtheconditionsofthisLicense.IfyoucannotdistributesoastosatisfysimultaneouslyyourobligationsunderthisLicenseandanyotherpGertinent.obligations,thenasaconsequenceyoumaynotdistributetheProgramatall.vQF*orexample,ifapatentglicensewouldnotpGermitroyalty-freeredistributionoftheProgrambyallthosewhoreceivecopiesdirectly@5orindirectlythroughyou,DnthentheonlywayyoucouldsatisfybGothitandthisLicensewouldbGetorefrainUUentirelyfromdistributionoftheProgram.QRn썷x15243DLDFPRÎGс}GNUXGENERALPUBLICLICENSE483n@P IfnanypGortionofthissectionisheldinvqalidorunenforceableunderanyparticularcircumstance,Qthebalance ofUUthesectionisintendedtoapplyandthesectionasawholeisintendedtoapplyinothercircumstances. ItisnotthepurpGoseofthissectiontoinduceyoutoinfringeanypatentsorotherpropGertyrightclaimsoroGtocontestvqalidityofanysuchclaims;|AthissectionhasthesolepurpGoseofprotectingtheintegrityofthefreesoftwaredistributionsystem,whichisimplementedbypubliclicensepractices.WFManypGeoplehavemadegenerouscontributionstothewiderangeofsoftwaredistributedthroughthatsysteminrelianceonconsistentapplication@ofthatsystem;itisuptotheauthor/donortodecideifheorsheiswillingtodistributesoftwarethroughUUanyothersystemandalicenseecannotimpGosethatchoice. ThisOgsectionisintendedtomakethoroughlyclearwhatisbGelievedtobGeaconsequenceoftherestofthisLicense. @@ -5833,7 +5919,7 @@ EachversionisgivenadistinguishingversionnumbGer.6IftheProgramspeci esaversionnumbGerofthisLicensewhichappliestoitand\anylaterversion",րyouhavetheoptionoffollowingthetermsandconditionseither 'ofthatversionorofanylaterversionpublishedbytheF*reeSoftwareF*oundation.>IftheProgramdoGes~notspecifyaversionnumbGerofthisLicense,youmaychoGoseanyversioneverpublishedbytheF*reeSoftwareUUF*oundation. 10.D If youwishtoincorpGoratepartsoftheProgramintootherfreeprogramswhosedistributionconditionsare:di erent,swritetotheauthortoaskforpGermission.XvF*orsoftwarewhichiscopyrightedbytheF*reeSoftwarefF*oundation,writetotheFreeSoftwarefFoundation;owefsometimesmakeexceptionsforthis.OurdecisionwillbGeguidedbythetwogoalsofpreservingthefreestatusofallderivqativesofourfreesoftwareandUUofpromotingthesharingandreuseofsoftwareUUgenerally*..NOUUWARRANTY 11.BECAUSERTHEPROGRAMISLICENSEDFREEOFCHARGE,RTHEREISNOWARRANTYFORTHE PROGRAM,6TOTHEEXTENTPERMITTEDBYAPPLICABLELAW.EXCEPTWHENOTH-ERWISEST*ATEDINWRITINGTHECOPYRIGHTHOLDERSAND/OROTHERPARTIESPROVIDETHEePROGRAM\ASIS"WITHOUTWARRANTYOFANYKIND,eaEITHEREXPRESSEDORIM-PLIED,-JINCLUDING,BUT-@NOTLIMITEDTO,-JTHEIMPLIEDWARRANTIESOFMERCHANT*ABIL-ITYsANDFITNESSFORAP*ARTICULARsPURPOSE.tTHEENTIRERISKASTOTHEQUALITYANDPERFORMANCE;OFTHEPROGRAMISWITHYOU.nSHOULDTHEPROGRAMPROVEDEFEC-TIVE,UUYOUASSUMETHECOSTOFALLNECESSAR*YSERVICING,REPAIRORCORRECTION. -12.LIN NOEVENTUNLESSREQUIREDBYAPPLICABLELAWORAGREEDTOINWRITINGWILLJqANYCOPYRIGHTHOLDER,JORANYOTHERP*ARTYJqWHOMA*YMODIFYAND/ORRE-DISTRIBUTETHEPROGRAMASPERMITTEDABOVE,BELIABLETOYOUFORDAMAGES,INCLUDINGQANYGENERAL,QSPECIAL,INCIDENT*ALQORCONSEQUENTIALDAMAGESQARISINGOUTPOFTHEUSEORINABILITYTOUSETHEPROGRAM(INCLUDINGBUTNOTLIMITEDTOLOSSYFOFDA*TAYFORDA*TAYFBEINGRENDEREDINACCURA*TEORLOSSESSUSTAINEDBYYOUOR,THIRDP*ARTIES,ORAFAILUREOFTHEPROGRAMTOOPERA*TEWITHANYOTHERPRO-GRAMS),?EVENIFSUCHHOLDEROROTHERP*ARTYHASBEENADVISEDOFTHEPOSSIBILITYOFUUSUCHDAMAGES.[Cn썷x15163DLDFPRÎGс}GNUXGENERALPUBLICLICENSE479n@PENDUUOFTERMSANDCONDITIONSz+DHowUUtoApplyTheseT*ermstoYourNewPrograms +12.LIN NOEVENTUNLESSREQUIREDBYAPPLICABLELAWORAGREEDTOINWRITINGWILLJqANYCOPYRIGHTHOLDER,JORANYOTHERP*ARTYJqWHOMA*YMODIFYAND/ORRE-DISTRIBUTETHEPROGRAMASPERMITTEDABOVE,BELIABLETOYOUFORDAMAGES,INCLUDINGQANYGENERAL,QSPECIAL,INCIDENT*ALQORCONSEQUENTIALDAMAGESQARISINGOUTPOFTHEUSEORINABILITYTOUSETHEPROGRAM(INCLUDINGBUTNOTLIMITEDTOLOSSYFOFDA*TAYFORDA*TAYFBEINGRENDEREDINACCURA*TEORLOSSESSUSTAINEDBYYOUOR,THIRDP*ARTIES,ORAFAILUREOFTHEPROGRAMTOOPERA*TEWITHANYOTHERPRO-GRAMS),?EVENIFSUCHHOLDEROROTHERP*ARTYHASBEENADVISEDOFTHEPOSSIBILITYOFUUSUCHDAMAGES.fn썫484GNUXGENERALPUBLICLICENSEс}3DLDFPRÎGx1524n@PENDUUOFTERMSANDCONDITIONSz+DHowUUtoApplyTheseT*ermstoYourNewPrograms Ifyoudevelopanewprogram,AandyouwantittobGeofthegreatestpossibleusetothepublic,Athebest waytoachievethisistomakeitfreesoftwarewhicheveryonecanredistributeandchangeundertheseterms. T*odoso,?attachthefollowingnoticestotheprogram.;Itissafesttoattachthemtothestartofeachsource leXtomoste ectivelyconveytheexclusionofwarranty;andeach leshouldhaveatleastthe\copyright"lineUUandapGointertowherethefullnoticeisfound.honeUUlinetogivetheprogram'snameandabriefideaofwhatitdoGes.iCopyrightUU(C)hyearihnameofauthoriThis\programisfreesoftware;&you\canredistributeitand/ormoGdifyitunderthetermsoftheGNUJGeneralPublicLicenseaspublishedbytheF*reeSoftwareF*oundation;Keitherversion2oftheLicense,"or(atyouroption)UUanylaterversion.This(fprogramisdistributedinthehopGethatitwillbeuseful,1cbutWITHOUT([ANYWARRANTY;(fwithouteventheimpliedwarrantyofMERCHANT*ABILITYorFITNESSFORAP*ARTICULARPURPOSE.SeetheUUGNUGeneralPublicLicenseformoredetails.Y*ouqshouldhaveqreceivedacopyoftheGNUqGeneralPublicLicensealongwiththisprogram;ifnot,xwritetoUUtheF*reeSoftwareUUFoundation,Inc.,59TemplePlace,Suite330,Boston,MA02111-1307USA AlsoUUaddinformationonhowtocontactyoubyelectronicandpapGermail. @@ -5842,29 +5928,29 @@ Y*ouu+shouldalsogetyouremployer(ifyouworkasaprogrammer)oryourschoGol,ifany*,tosigna\copyrightdisclaimer"UUfortheprogram,ifnecessary*.qHereisasample;alterthenames: Y*oyoGdyne, Inc.,herebydisclaimsallcopyrightinterestintheprogram`Gnomovision'(whichmakespassesatUUcompilers)writtenbyJamesHacker. hsignatureUUofTyCoGoni,1April1989TyCoGon,PresidentofVice -This9iGeneralPublicLicensedoGesnotpermitincorporatingyourprogramintoproprietaryprograms.$Ifyourprogramlisasubroutinelibrary*,ryoumayconsideritmoreusefultopGermitlinkingproprietaryapplicationswithCthelibrary*.ZIfthisiswhatyouwanttodo,usetheGNU2LibraryGeneralPublicLicenseinsteadofthisLicense.hGNUUUGeneralPublicLicense@1516i=ThissectioncontainsnoC++ucoGde.o= ThisXcoVExXmacrosthatI|useforn0n썫480INDEXA3DLDFPRÎGx1517n29formattingtheindexentries,"sotheorderoftheentriesisabitpGeculiar.^EF*orexample,"\cfunc{z}would come'GbGefore\ofunc{a}(\cfuncisforclassfunctions,0}and\ofuncisforoperatorsthataren'tmembersofaclass). +This9iGeneralPublicLicensedoGesnotpermitincorporatingyourprogramintoproprietaryprograms.$Ifyourprogramlisasubroutinelibrary*,ryoumayconsideritmoreusefultopGermitlinkingproprietaryapplicationswithCthelibrary*.ZIfthisiswhatyouwanttodo,usetheGNU2LibraryGeneralPublicLicenseinsteadofthisLicense.hGNUUUGeneralPublicLicense@1524i=ThissectioncontainsnoC++ucoGde.o= ThisXcoVExXmacrosthatI|useforyn썷x15253DLDFPRÎGAINDEX485n29formattingtheindexentries,"sotheorderoftheentriesisabitpGeculiar.^EF*orexample,"\cfunc{z}would come'GbGefore\ofunc{a}(\cfuncisforclassfunctions,0}and\ofuncisforoperatorsthataren'tmembersofaclass). First"cometheindexentrieswhichstartwith\??"`and\!!".Thesearefollowed"bythenon-opGeratorclassmembGerfunctionsforalloftheclasses.J_ThencometheclassmembGeroperatorsforalloftheclasses,followedbyWthenon-classopGerators.$Currently*, I'monlyputtingindexentriesinbyhandwheretheclassmembGerfunctionsUUandopGeratorsaredeclared. [LDFT2002.10.11.]YqAnotherproblemisthat\op}'erator&,칫"and\op}'erator&=4H"usetheitalicampGersand.ItwouldUUbGepossibleto xthis,butslightlytricky*.qTODO:Fixthis!鍍2wBUG>FIX: -15,E150,173,404,549,656,658, 828, 1343,1470. !!: -56,60,111,112,114,122,130,148,162,163,181,311,404,436,458,502,503,515,528,685,791,~l800,863,874,893,923,1077,1115,1229,1278,<1324,1393,1418,1427,1441,1457,1486.!!BUG: +15,E150,173,404,549,656,658, 828, 1348,1475. !!: +56,60,111,112,114,122,130,148,162,163,181,311,404,436,458,502,503,515,528,685,791,~l800,863,874,896,926,1080,1120,1234,1283,<1329,1398,1423,1432,1446,1462,1491.!!BUG: 379, 537,677.!!TKLUDGE: -16,Va265,272,401,431,1459,1509.!! LOOKM UP: +16,Va265,272,401,431,1464,1514.!! LOOKM UP: 397.!! NOTE: -1275.!!|TODO: -5,16,16,21,29,31,33,138,139,181,>l222,264,354,379,395,397,400,401,409,>l431,461,463,465,547,556,557,591,603,>l604,643,654,686,708,720,723,742,914,l920,945,947,949,964,992,1021,1056,1084,<1128,1158,1160,1169,1221,1225,1226,1257,<1278,1281,1289,1298,1323,1374,1393,1424,<1426,1441,1445,1451,1454,1457,1459,1472,[1478,1497,1517.!! UR9GENT: +1280.!!|TODO: +5,16,16,21,29,31,33,138,139,181,>l222,264,354,379,395,397,400,401,409,>l431,461,463,465,547,556,557,591,603,>l604,643,654,686,708,720,723,742,917,l923,948,950,952,967,995,1024,1059,1082,<1089,1133,1163,1165,1174,1226,1230,1231,<1262,1283,1286,1294,1303,1328,1379,1398,<1429,1431,1446,1450,1456,1459,1462,1464,1477,1483,1502,1516,1525.!! UR9GENT: 26, 656.??: -16,)114,199,310,311,486,494,546,644,656,667,S677,686,792,839,1033,1034.Circlec,::Cir}'cle: -1234,1237.Circlec,::cr}'eateffnewffcir}'cleJ N: -1242,1244.Circlec,::getffdiameter7: -1256.Circlec,::getffr}'adius+߫: -1255.Circlec,::interse}'ctionffpointsQ߫: -1258,1260,1262.Circlec,::isffcir}'cular-: -1253.Circlec,::set x: -1239.ColorO::Colorë: +114,199,310,311,486,494,546,644,656,667,S677,686,792,839,1036,1037.Circlec,::Cir}'cle: +1239,1242.Circlec,::cr}'eateffnewffcir}'cleJ N: +1247,1249.Circlec,::getffdiameter7: +1261.Circlec,::getffr}'adius+߫: +1260.Circlec,::interse}'ctionffpointsQ߫: +1263,1265,1267.Circlec,::isffcir}'cular-: +1258.Circlec,::set x: +1244.ColorO::Colorë: 58,z60,63,68.ColorO::cr}'eateffnewffc}'olorHS": 72.ColorO::de neffc}'olorffmpDn: 105.ColorO::getffblueffp}'art7: @@ -5883,39 +5969,39 @@ 82.Color0B::set x: 65,70.Color0B::show: 92.CubQoid0>::~Cub}'oid$,: -1418.CubQoid0>::cr}'eateffnewffcub}'oidN: -1416.CubQoid0>::Cub}'oidq: -1410,!g1412,1414.DoQdecahedron=2::Do}'decahedron<: -1451,l1454.DoQdecahedron=2::dr}'awffnet'A: -1459.DoQdecahedron=2::getffnet4ȫ: -1457.Ellipse}::~Ellipse#J: -1113.Ellipse}::angleffp}'oint1Y: -1158.Ellipse}::cr}'eateffnewffellipseN[: -1109,1111.Ellipse}::dotlab}'el!: -1119.Ellipse}::dr}'awffoutffrectangleQ3 : -1217.Ellipse}::Ellipseګ: -1101,-1104.Ellipse}::getffaxisffh+-I: -1154,^1156.Ellipse}::getffaxisffv*: -1149,_91151.Ellipse}::getffc}'enter,=G: -1134,[1136.Ellipse}::getffc}'oecients@r: -1131.Ellipse}::getfffo}'cus'A: -1139,kw1141.Ellipse}::inffr}'ectangle3*: -1215.Ellipse}::interse}'ctionffpointsQ߫: -1165,1167,1169.Ellipse}::isffcubic"%$: -1124.Ellipse}::isffelliptic}'al0얫: -1121.Ellipse}::isffquadr}'atic3: -1123.Ellipse}::isffquartic*1: -1126.Ellipse}::lab}'elt: -1117.Ellipse}::lo}'cation"}: -1162.Ellipse}::outffr}'ectangle8: -1213.Ellipse}::r}'otateo>: -1191,<1208,1210.Ellipse}::sc}'ale: -1193.Ellipse}::set x: -1106.Ellipse}::she}'ar4:: -1195.Ellipse}::shiftfftimes.;: -1203,R:1205.Ellipse}::shift}: -1198,z1200.Ellipse}::solve7˫: -1128.F +1423.CubQoid0>::cr}'eateffnewffcub}'oidN: +1421.CubQoid0>::Cub}'oidq: +1415,!g1417,1419.DoQdecahedron=2::Do}'decahedron<: +1456,l1459.DoQdecahedron=2::dr}'awffnet'A: +1464.DoQdecahedron=2::getffnet4ȫ: +1462.Ellipse}::~Ellipse#J: +1118.Ellipse}::angleffp}'oint1Y: +1163.Ellipse}::cr}'eateffnewffellipseN[: +1114,1116.Ellipse}::dotlab}'el!: +1124.Ellipse}::dr}'awffoutffrectangleQ3 : +1222.Ellipse}::Ellipseګ: +1106,-1109.Ellipse}::getffaxisffh+-I: +1159,^1161.Ellipse}::getffaxisffv*: +1154,_91156.Ellipse}::getffc}'enter,=G: +1139,[1141.Ellipse}::getffc}'oecients@r: +1136.Ellipse}::getfffo}'cus'A: +1144,kw1146.Ellipse}::inffr}'ectangle3*: +1220.Ellipse}::interse}'ctionffpointsQ߫: +1170,1172,1174.Ellipse}::isffcubic"%$: +1129.Ellipse}::isffelliptic}'al0얫: +1126.Ellipse}::isffquadr}'atic3: +1128.Ellipse}::isffquartic*1: +1131.Ellipse}::lab}'elt: +1122.Ellipse}::lo}'cation"}: +1167.Ellipse}::outffr}'ectangle8: +1218.Ellipse}::r}'otateo>: +1196,<1213,1215.Ellipse}::sc}'ale: +1198.Ellipse}::set x: +1111.Ellipse}::she}'ar4:: +1200.Ellipse}::shiftfftimes.;: +1208,R:1210.Ellipse}::shift}: +1203,z1205.Ellipse}::solve7˫: +1133.F oQcus::F;o}'cus: 558,560,565.F oQcus::getffdir}'ection7,: @@ -5927,7 +6013,7 @@ oQcus::getffp}'ersp': 583.F oQcus::getffp}'osition3x: -576.n썷x15173DLDFPRÎGAINDEX481n@PF +576.Cn썫486INDEXA3DLDFPRÎGx1525n@PF oQcusL::getfftr}'ansformffelementa=ū: 581. !F oQcusL::getfftr}'ansform;: @@ -5940,13 +6026,13 @@ 562,567.F oQcusL::show: 573.Icosahedron<ϫ::dr}'awffnet'A: -1472.Icosahedron<ϫ::getffnet4ȫ: -1470.Icosahedron<ϫ::Ic}'osahedron4H: -1465,1468.LabQelAc::getffc}'opy$ô: +1477.Icosahedron<ϫ::getffnet4ȫ: +1475.Icosahedron<ϫ::Ic}'osahedron4H: +1470,1473.LabQelAc::getffc}'opy$ô: 471.LabQelAc::output@: 472.LineX::getffdistanc}'e4y: 604.LineX::getffp}'ath#: -602,h931.LineX::Lineѫ: +602,h934.LineX::Lineѫ: 595,!597.LineX::show: 608.P9athd::~Path: 684.P9athd::alignffwithffaxis@x: @@ -5964,18 +6050,18 @@ 806,g808.P9athd::getffc}'opy$ô: 688.P9athd::getffextr}'emes7D`: 845.P9athd::getfflastffp}'oint:$>: -889.P9athd::getfflineffswitch?}: +892.P9athd::getfflineffswitch?}: 876.P9athd::getffline!O: -929.P9athd::getffmaximumffzDm}: +932.P9athd::getffmaximumffzDm}: 848.P9athd::getffme}'anffz0 : 850.P9athd::getffminimumffzC]ث: 846.P9athd::getffnormal0t: -893.P9athd::getffplane(v: -899.P9athd::getffp}'oint'bH: -887.P9athd::getffsize!O: -891.P9athd::interse}'ctionffpointM֫: -917.P9athd::isffcycle!O: +896.P9athd::getffplane(v: +902.P9athd::getffp}'oint'bH: +888,890.P9athd::getffsize!O: +894.P9athd::interse}'ctionffpointM֫: +920.P9athd::isffcycle!O: 877.P9athd::isffline}'ar%}: 874.P9athd::isffonfffr}'eeffstoreBzի: 871.P9athd::isffplanar(&: @@ -5984,11 +6070,11 @@ 856.P9athd::Path: 660, 663,668,673,677.P9athd::pr}'ojectw: 742.P9athd::r}'everseb: -908,912.P9athd::r}'otateo>: +911,915.P9athd::r}'otateo>: 713,719,721.P9athd::sc}'ale: 723.@PP9ath r::setffc}'onnectors>: 708. !P9ath r::setffcycle&*: -905.P9ath r::setffdashffp}'atternFݖ: +908.P9ath r::setffdashffp}'atternFݖ: 704.P9ath r::setffdr}'awffcolor>: 695,^?697.P9ath r::setffextr}'emes6: 841.P9ath r::setff llffc}'olor5I:: @@ -6025,7 +6111,7 @@ 230.Plane::getffdistanc}'e4y: 633,ql635.Plane::interse}'ctionfflineG: 643.Plane::interse}'ctionffpointM֫: -919.Plane::PlaneB: +922.Plane::PlaneB: 619,v621,623.Plane::show: 645.P9ointz::~Pointy: 297.P9ointz::angleS: @@ -6038,7 +6124,7 @@ 466,s468.P9ointz::dr}'awffhelp*Ũ: 428, 429,798,799.P9ointz::dr}'aw(۫: 419,H0420,780,781.P9ointz::dr}'awarrow.ī: -422,423,789,790.on썫482INDEXA3DLDFPRÎGx1517n@PP9ointH::dr}'awdot#: +422,423,789,790.Ơn썷x15253DLDFPRÎGAINDEX487n@PP9ointH::dr}'awdot#: 410,B412. !P9ointH::epsilono: 308.P9ointH::extr}'acto: 442.P9ointH::getffallffc}'oords:: @@ -6050,7 +6136,7 @@ : 449.P9ointH::getffminimumffzC]ث: 445.P9ointH::getffnormal0t: -513,898.P9ointH::getfftr}'ansform;: +513,901.P9ointH::getfftr}'ansform;: 341.P9ointH::getffwo: 337,339.P9ointH::getffxg: 322,324.P9ointH::getffyt: @@ -6064,7 +6150,8 @@ 356.P9ointH::isffonffse}'gment=5O: 349,X352.P9ointH::lab}'elt: 461, 463.P9ointH::magnitude.=r: -502.P9ointH::output@: +502.P9ointH::me}'diate"u: +511.P9ointH::output@: 457.P9ointH::Point]{: 279,w282,286.P9ointH::pr}'ojectw: 398,402.P9ointH::r}'esetfftransformCY: @@ -6085,89 +6172,90 @@ 414,416.P9ointH::unitffve}'ctor0u: 507,q509.P9ointH::unsuppr}'essffoutputO㦫: 440.P9olygon)::getffc}'enter,=G: -975,d977.P9olygon)::interse}'ctionffpointsQ߫: -981,A990,992.P9olygon)::r}'otateo>: -1000,%1003,1005.P9olygon)::sc}'ale: -1007.P9olygon)::she}'ar4:: -1009.P9olygon)::shiftfftimes.;: -1017,:1019.P9olygon)::shift}: -1012,1014.P9olyhedron: ͫ::interse}'ctionffpointsQ߫: -1427.@PRectangle' 9::~R}'ectangle/: -1075. #Rectangle' 9::c}'ornerq^: -1080.Rectangle' 9::cr}'eateffnewffr}'ectangleY/: -1071,1073.Rectangle' 9::midffp}'oint+7: -1082.Rectangle' 9::R}'ectangle*: -1058,F1061,1066.Rectangle' 9::set x: -1063,1068.Regus4wClus4Planeus4Curv9e]<::angleffp}'oint1Y: -947.Regus4wClus4Planeus4Curv9e]<::getffc}'oecients@r: -943.Regus4wClus4Planeus4Curv9e]<::halfy: -966.Regus4wClus4Planeus4Curv9e]<::interse}'ctionffpointsQ߫: -950, 961.Regus4wClus4Planeus4Curv9e]<::isffcubic"%$: -941.Regus4wClus4Planeus4Curv9e]<::isffquadr}'atic3: -940.Regus4wClus4Planeus4Curv9e]<::isffquartic*1: -942.Regus4wClus4Planeus4Curv9e]<::lo}'cation"}: -945.Regus4wClus4Planeus4Curv9e]<::quarter!F: -967.Regus4wClus4Planeus4Curv9e]<::se}'gment#: -964.Regus4wClus4Planeus4Curv9e]<::solve7˫: -944.Regus4wP9olygon6_X::cr}'eateffnewffr}'egffpolygoncvB: -1036.Regus4wP9olygon6_X::cr}'eateffnewffR}'egffPolygonh: -1038.Regus4wP9olygon6_X::dr}'awffinffcircle=Ы: -1046,t1047,1267,1268.Regus4wP9olygon6_X::dr}'awffoutffcircleB?: -1050,K1051,1270,1271,V1272.Regus4wP9olygon6_X::getffr}'adius+߫: -1042.Regus4wP9olygon6_X::inffcir}'cle$I: -1044, 1265.Regus4wP9olygon6_X::outffcir}'cle)޸: -1048,1269.Regus4wP9olygon6_X::R}'egffPolygon7: -1026,o1029.Regus4wP9olygon6_X::set x: -1032.Solid^{::~SolidC: -1300.Solid^{::applyfftr}'ansformF߫: -1343.Solid^{::cle}'ar(٫: -1338.Solid^{::cr}'eateffnewffsolidG!: -1298.Solid^{::dr}'aw(۫: -1378.Solid^{::extr}'acto: -1359.Solid^{:: ll : -1381.Solid^{:: lldr}'aw!gk: -1384.Solid^{::getffc}'enter,=G: -1308.Solid^{::getffcir}'cleffcenterG : -1326.Solid^{::getffcir}'cleffptr9??: -1313.Solid^{::getffc}'opy$ô: -1304.Solid^{::getffellipseffc}'enterK: -1328.Solid^{::getffellipseffptr=5L: -1315.Solid^{::getffextr}'emes7D`: -1363.Solid^{::getffmaximumffzDm}: -1366.Solid^{::getffme}'anffz0 +978,d980.P9olygon)::interse}'ctionffpointsQ߫: +984,A993,995.P9olygon)::r}'otateo>: +1003,%1006,1008.P9olygon)::sc}'ale: +1010.P9olygon)::she}'ar4:: +1012.P9olygon)::shiftfftimes.;: +1020,:1022.P9olygon)::shift}: +1015,1017.@PP9olyhedron.q::interse}'ctionffpointsQ߫: +1432. #Rectangle' 9::~R}'ectangle/: +1078.Rectangle' 9::c}'ornerq^: +1085.Rectangle' 9::cr}'eateffnewffr}'ectangleY/: +1074,1076.Rectangle' 9::isffr}'ectangular<: +1082.Rectangle' 9::midffp}'oint+7: +1087.Rectangle' 9::R}'ectangle*: +1061,F1064,1069.Rectangle' 9::set x: +1066,1071.Regus4wClus4Planeus4Curv9e]<::angleffp}'oint1Y: +950.Regus4wClus4Planeus4Curv9e]<::getffc}'oecients@r: +946.Regus4wClus4Planeus4Curv9e]<::halfy: +969.Regus4wClus4Planeus4Curv9e]<::interse}'ctionffpointsQ߫: +953, 964.Regus4wClus4Planeus4Curv9e]<::isffcubic"%$: +944.Regus4wClus4Planeus4Curv9e]<::isffquadr}'atic3: +943.Regus4wClus4Planeus4Curv9e]<::isffquartic*1: +945.Regus4wClus4Planeus4Curv9e]<::lo}'cation"}: +948.Regus4wClus4Planeus4Curv9e]<::quarter!F: +970.Regus4wClus4Planeus4Curv9e]<::se}'gment#: +967.Regus4wClus4Planeus4Curv9e]<::solve7˫: +947.Regus4wP9olygon6_X::cr}'eateffnewffr}'egffpolygoncvB: +1039.Regus4wP9olygon6_X::cr}'eateffnewffR}'egffPolygonh: +1041.Regus4wP9olygon6_X::dr}'awffinffcircle=Ы: +1049,t1050,1272,1273.Regus4wP9olygon6_X::dr}'awffoutffcircleB?: +1053,K1054,1275,1276,V1277.Regus4wP9olygon6_X::getffr}'adius+߫: +1045.Regus4wP9olygon6_X::inffcir}'cle$I: +1047, 1270.Regus4wP9olygon6_X::outffcir}'cle)޸: +1051,1274.Regus4wP9olygon6_X::R}'egffPolygon7: +1029,o1032.Regus4wP9olygon6_X::set x: +1035.Solid^{::~SolidC: +1305.Solid^{::applyfftr}'ansformF߫: +1348.Solid^{::cle}'ar(٫: +1343.Solid^{::cr}'eateffnewffsolidG!: +1303.Solid^{::dr}'aw(۫: +1383.Solid^{::extr}'acto: +1364.Solid^{:: ll : +1386.Solid^{:: lldr}'aw!gk: +1389.Solid^{::getffc}'enter,=G: +1313.Solid^{::getffcir}'cleffcenterG : +1331.Solid^{::getffcir}'cleffptr9??: +1318.Solid^{::getffc}'opy$ô: +1309.Solid^{::getffellipseffc}'enterK: +1333.Solid^{::getffellipseffptr=5L: +1320.Solid^{::getffextr}'emes7D`: +1368.Solid^{::getffmaximumffzDm}: +1371.Solid^{::getffme}'anffz0 : -1368.Solid^{::getffminimumffzC]ث: -1364.Solid^{::getffp}'athffptr4C: -1317.Solid^{::getffr}'ectangleffcenterV: -1330.Solid^{::getffr}'ectangleffptrHS : -1319.Solid^{::getffr}'egffpolygonffcenter`r: -1332.Solid^{::getffr}'egffpolygonffptrR+: -1321.n썷x15173DLDFPRÎGAINDEX483n@PSolid}׫::getffshap}'effcenterGn(: -1324. "Solid}׫::getffshap}'effptr9d: -1311.Solid}׫::isffonfffr}'eeffstoreBzի: -1334.Solid}׫::output@: -1374.Solid}׫::r}'otateo>: -1354,b1356.Solid}׫::sc}'ale: -1345.Solid}׫::setffextr}'emes6: -1361.Solid}׫::setffonfffr}'eeffstoreGU׫: -1306.Solid}׫::she}'ar4:: -1347.Solid}׫::shift}: -1350,01352.Solid}׫::show: -1336.Solid}׫::Solidӫ: -1294,1296.Solid}׫::suppr}'essffoutputD悫: -1370.Solid}׫::undr}'aw!%: -1387.Solid}׫::un ll: -1390.Solid}׫::un lldr}'aw,d: -1393.Solid}׫::unsuppr}'essffoutputO㦫: -1372.T +1373.Solid^{::getffminimumffzC]ث: +1369.Solid^{::getffp}'athffptr4C: +1322.Solid^{::getffr}'ectangleffcenterV: +1335.Solid^{::getffr}'ectangleffptrHS : +1324.Un썫488INDEXA3DLDFPRÎGx1525n@PSolid}׫::getffr}'egffpolygonffcenter`r: +1337. "Solid}׫::getffr}'egffpolygonffptrR+: +1326.Solid}׫::getffshap}'effcenterGn(: +1329.Solid}׫::getffshap}'effptr9d: +1316.Solid}׫::isffonfffr}'eeffstoreBzի: +1339.Solid}׫::output@: +1379.Solid}׫::r}'otateo>: +1359,b1361.Solid}׫::sc}'ale: +1350.Solid}׫::setffextr}'emes6: +1366.Solid}׫::setffonfffr}'eeffstoreGU׫: +1311.Solid}׫::she}'ar4:: +1352.Solid}׫::shift}: +1355,01357.Solid}׫::show: +1341.Solid}׫::Solidӫ: +1299,1301.Solid}׫::suppr}'essffoutputD悫: +1375.Solid}׫::undr}'aw!%: +1392.Solid}׫::un ll: +1395.Solid}׫::un lldr}'aw,d: +1398.Solid}׫::unsuppr}'essffoutputO㦫: +1377.T etrahedron>::dr}'awffnet'A: -1445.T +1450.T etrahedron>::getffnet4ȫ: -1443.T +1448.T etrahedron>::set x: -1441.T +1446.T etrahedron>::T;etr}'ahedron5'ث: -1434,;1437.T +1439,;1442.T ransform4s}::alignffwithffaxis@x: 168,379.T ransform4s}::cle}'anA: @@ -6197,24 +6285,24 @@ ransform4s}::T;r}'ansform.Q: 124,&126,128.T runcus4wOctahedron]Ϊ::getffnet4ȫ: -1484.T +1489.T runcus4wOctahedron]Ϊ::T;runcffOctahe}'dronP': -1479, 1482.Circlec,::op}'erator=,: -1248,ei1250.ColorO::op}'erator!=/: +1484, 1487.Circlec,::op}'erator=,: +1253,ei1255.ColorO::op}'erator!=/: 77.ColorO::op}'erator==4H: 75.ColorO::op}'erator=,: 73.CubQoid%O::op}'erator=,: -1420.Ellipse!٫::op}'erator*=1]: -1189.Ellipse!٫::op}'erator=,: -1114.Ellipse!٫::op}'eratordofftransform\e: -1187.LineX::op}'erator=,: +1425.Ellipse!٫::op}'erator*=1]: +1194.Ellipse!٫::op}'erator=,: +1119.Ellipse!٫::op}'eratordofftransform\e: +1192.LineX::op}'erator=,: 599.P9athd::op}'erator*=1]: 738.P9athd::op}'erator+=4H: 754,@758.P9athd::op}'erator+,S: -756.P9athd::op}'erator==4H: -914.P9athd::op}'erator=,: -656.@PP9ath r::op}'erator&=4H: -762. &eP9ath r::op}'erator&,칫: +756.@PP9ath r::op}'erator==4H: +917. %P9ath r::op}'erator=,: +656.P9ath r::op}'erator&=4H: +762.P9ath r::op}'erator&,칫: 767.Picture|::op}'erator*=1]: 246.Picture|::op}'erator+=4H: 224,d225,227,545.Picture|::op}'erator=,: @@ -6230,11 +6318,11 @@ 496.P9ointz::op}'erator==4H: 515,-516,523.P9ointz::op}'erator=,: 299.P9olygon咫::op}'erator*=1]: -998.Rectangle' 9::op}'erator=,: -1076.Regus4wP9olygon6_X::op}'erator=,: -1023.Solid^{::op}'erator*=1]: -1341.Solid^{::op}'erator=,: -1302.T +1001.Rectangle' 9::op}'erator=,: +1079.Regus4wP9olygon6_X::op}'erator=,: +1026.Solid^{::op}'erator*=1]: +1346.Solid^{::op}'erator=,: +1307.T ransform)T!::op}'erator*=1]: 171,,173.T ransform)T!::op}'erator**2: @@ -6244,20 +6332,20 @@ 103,&436.op}'erator*֫: 490.__CXXL_PI$: 36.__DECCXXf: -6,Z7,15,23,25,36,44,278,399,1502.__GNUC__f: -7,^16,21,26,44,278,399,1498,1502.__USE_STD_IOSTREAMS֫: +6,Z7,16,23,25,36,44,278,399,1507.__GNUC__f: +7,u21,26,44,278,399,1503,1507.__USE_STD_IOSTREAMS֫: 7 fe._GNU_SOURCE/&: 7 fe.}ffptr~: -1307.ऱA`: -1307 +1312.ऱA`: +1312 fe.ऱa)ԫ: 13 fe ,n29nfe p,n30nfe -,n179nfeq,n270nfe,n292nfe,n294nfe,n296nfe,n346nfe,n353nfe, 389টfe,>l393>lfe>o,>l395>lfe,>l478>lfe,>l482>lfe,>l489>lfe,>l493>lfe,>l497>lfe,>l499>lfe,501টfe,>l503>lfe>o,>l510>lfe,>l516>lfe,>l681>lfe,>l683>lfe,>l879>lfe,>l880>lfe,>l886>lfe,887টfe,k+888k+fek.,k+1122k+fek/,k+1178k+fe,k+1263k+fe. &eaffmffc}'oord!: +,n179nfeq,n270nfe,n292nfe,n294nfe,n296nfe,n346nfe,n353nfe, 389টfe,393ҟfe,395ҟfe,478ҟfe,482ҟfe,489ҟfe,493ҟfe,497ҟfe,499ҟfe,501ҟfe,503টfe,>l510>lfe>o,>l516>lfe,>l681>lfe,>l683>lfe,>l879>lfe,>l880>lfe,>l886>lfe,>l888>lfe,889টfe,d890dfeg,d891dfe,d1083dfeh,d1127dfe,d1183dfe,d1268dfe. %affmffc}'oord!: 346 fe,347.affnffc}'oord!: 346 @@ -6268,86 +6356,87 @@ fe.affzl: 606 fe.aa`: -1178 +1183 fe.aarr}'ow]d: 419 fe,Y420Yfe\,Y775Yfe,Y776Yfe,Y777Yfe,Y778Yfe,Y780Yfe,Y781Yfe.aaxisffh: -1061 -fe,1062fe,1063fe,1064fe,1104fe,1105fe, 1106টfe,V1107V՟feV.aaxisffv: -1061 -fe,$1062$fe(,$1063$fe,$1064$fe,$1104$fe,$1105$fe,1106টfe,V1107V՟feV.absf: -1279.ac}'os: -505.alignffwithffaxis5: +1064 +fe,1065fe,1066fe,1067fe,1109fe,1110fe, 1111টfe,V1112V՟feV.aaxisffv: +1064 +fe,$1065$fe(,$1066$fe,$1067$fe,$1109$fe,$1110$fe,1111টfe,V1112V՟feV.absf: +1284.ac}'os: +505.sn썷x15253DLDFPRÎGAINDEX489n@Palignffwithffaxis@x: 168 -fe,f264ffei,f379,380fe,395,561,572,747টfe,l748lfeo,l749lfe,l750lfe,l751lfe,l752lfe,l946,950,1122,sn썫484INDEXA3DLDFPRÎGx1517n@P1177,1223,1224,1265,1269,1454. Bsang: -559,ļ560ļfeĿ,ļ561ļfe,ļ562ļfe,ļ563ļfe,ļ565ļfe,ļ566ļfe,ļ567ļfe,ļ568ļfe, 571fe#,572fe҂,954fe,1122fe҃.angleS: +fe,f264ffei,f379,380fe,395,561,572, 747fe#,l748lfeo,l749lfe,l750lfe,l751lfe,l752lfe,l949,953,1127,1182,1228,1229,1270,1274,1459. Gang: +559,ļ560ļfeĿ,ļ561ļfe,ļ562ļfe,ļ563ļfe,ļ565ļfe,ļ566ļfe,ļ567ļfe,ļ568ļfe,571fe#,572fe҂,957fe,1127fe҃.angleS: 166 -fe,j167jڟfej,j243jڟfe,j380jڟfe,j382,384,385,386,387,391,>l392>lfe>o,>l393>lfe,>l394>lfe,>l395>lfe,>l396>lfe,>l504>lfe,>l505>lfe,>l556>lfe,557,>l559,561,570,572,574,716fe>o,717fe,719fe,720fe#,>l721>lfe>o,>l722>lfe,>l947>lfe,>l948>lfe,>l950,954,964fe>o,965fe,966fe#,967fe,1003fe,1004fe,1005fe,1006fe,1122,1158fe,1159fe(,<1208<fe<,<1209<fe,<1210<fe,<1211<fe,<1223<fe,<1224<fe,<1356<fe,1357fe(,Kx1438KxfeK|,Kx1455Kxfe,Kx1456,1469feK|.angleffhffh)Ya: -1483 -fe.angleffhffs(ao: -1483 -fe.angleffhexffhexl392>lfe>o,>l393>lfe,>l394>lfe,>l395>lfe,>l396>lfe,>l504>lfe,>l505>lfe,>l556>lfe,557,>l559,561,570,572,574,716fe>o,717fe,719fe,720fe#,>l721>lfe>o,>l722>lfe,>l950>lfe,>l951>lfe,>l953,957,967fe>o,968fe,969fe#,970fe,1006fe,1007fe,1008fe,1009fe,1083,1127,1163fe(,<1164<fe<,<1213<fe,<1214<fe,<1215<fe,<1216<fe,<1228<fe,<1229<fe,1361fe(,1362fe,1443fe,1460fe,1461,1474fe.angleffhffh)Ya: +1488 +fe.angleffhffs(ao: +1488 +fe.angleffhexffhexl436,443,451,457,463,472,476,478,480,>l482,484,486,489,493,495,497,499,501,>l503,508,512,529,531,549,561,572,596,>l597,598,624,732,740fe>o,741fe,839,887,901,K976,978,1030,1062,1105,1135,1137,1140,1142,1238,1343fe,1344fe,1360.ar}'cffdivisions8@ : -1281 -fe,1282fe,1284fe,1285fe.ar}'g: +fe,305,313,318,346,350,374,379,380,381,385,389,395,397,399,404fe,405fe,431,436,443,451,457,463,472,476,478,480,482,>l484,486,489,493,495,497,499,501,503,>l508,529,531,549,561,572,596,597,598,>l624,732,740fe>o,741fe,839,888,889,891,904,K979,981,1033,1065,1110,1140,1142,1145,1147,1243,1348fe,1349fe,1365.ar}'cffdivisions8@ : +1286 +fe,1287fe,1289fe,1290fe.ar}'g: 270 -fe.ar}'gffptrU}: +fe.ar}'gffptrU}: 669 -fe,(a671(afe(d.ar}'gcʫ: -1503,/1509/Ÿfe/.ar}'gument) : +fe,(a671(afe(d.ar}'gcʫ: +1508,/1514/Ÿfe/.ar}'gument) : 556 -fe.ar}'gv: -1503,515095fe9,51511.arr}'ow`P: +fe.ar}'gv: +1508,515145fe9,51519.arr}'ow`P: 654 -fe,e658,661,664,666,669,671,674,676,T776,856,859,861,863.asctime":: -43.asin*ū: -1463.assign: +fe,e658,661,664,666,669,671,674,676,T776,856,859,861,863.asctime":: +43.asin*ū: +1468.assign: 187 -fe,Q 188Q feQ#,Q 506,507fe,508fe,749fe,750fe,769fe,770fe#,771,908fe,909fe.atanq: -25,1263,1449.ax w: -559,560fe,561fe,562fe,563fe,565fe,566fe,567fe,568fe.axffhѽ: -1132 -fe,#1163#fe#,#1172#fe,#1174,1178.@Paxffv~: -1132 -fe,$/1163$/fe$3,$/1172$/fe,$/1174,1178. =axisl: +fe,Q 188Q feQ#,Q 506,507fe,508fe,749fe,750fe,769fe,770fe#,771,911fe,912fe.atanq: +25,1268,1454.@PaxW: +559,560fe,561fe,562fe,563fe,565fe,566fe,567fe,568fe. 9axffha: +1137 +fe,#1168#fe#,#1177#fe,#1179,1183.axffv~: +1137 +fe,$/1168$/fe$3,$/1177$/fe,$/1179,1183.axisl: 168 fe,n380nfeq,n382,383,388,395fe,556fe,557,559, 561,570,572,574,747fe,748fe,749fe,750fe,751fe,752fe.axisffh1: -1056 -fe,1061,1062,1067,1077,1084,1086,1098টfe,<1105,1115,1128,1131,1147,1157,1158,1162,<1172,1173,1174,1187,1188,1191,1198,1208,[1238,1250,1251.axisffhffhalf$: -1061,1062fe,1105fe,1188fe.axisffunknown1Tt: -1128 -fe,1129fe.axisffv: -1056 -fe,1061,1062,1067,1077,1084,1088,1098টfe,<1105,1115,1128,1131,1147,1152,1158,1162,<1172,1173,1174,1187,1188,1191,1198,1208,[1238,1250,1251.axisffvffhalf$7ī: -1061,!1062!fe!,!1105!fe,!1188!fe.AXON +1059 +fe,1064,1065,1070,1080,1089,1091,1103টfe,<1110,1120,1133,1136,1152,1162,1163,1167,<1177,1178,1179,1192,1193,1196,1203,1213,[1243,1255,1256.axisffhffhalf$: +1064,1065fe,1110fe,1193fe.axisffunknown1Tt: +1133 +fe,1134fe.axisffv: +1059 +fe,1064,1065,1070,1080,1089,1093,1103টfe,<1110,1120,1133,1136,1152,1157,1163,1167,<1177,1178,1179,1192,1193,1196,1203,1213,[1243,1255,1256.axisffvffhalf$7ī: +1064,!1065!fe!,!1110!fe,!1193!fe.AXON g: 211 fe,H212HfeH.a0d: -897 +900 fe.a1d: -897 +900 fe.ऱb+N: 13 fe -,29fe -,30fe +,16fe +,29fe +,30fe ,63fe ,64fe ,65fe @@ -6356,94 +6445,95 @@ ,69fe ,70fe ,71fe -,82fe -,83টfe -,`84`ԟfe - `,`85`ԟfe -,`90`ԟfe -,`91`ԟfe -,`200`ԟfe`,`268`ԟfe,`270`ԟfe,`272`ԟfe,`301`ԟfe,`350`ԟfe,393টfe,690fe,879fe,880fe,903fe,1122fe,1178fe,1306fe,1335fe.bffx: +,82টfe +,83fe +,84fe +,85fe +,90fe +,91fe +,200fe,268fe,270fe,272fe,301টfe,l350lfeo,l393lfe,l690lfe,l879lfe,l880lfe,l906lfe,l1083lfep,l1127lfe,1183টfe,s1311sfew,s1340sfe.bffx: 606 fe.bffyh: 606 fe.bffz: 606 fe.b}'ackg: -545,764,765,770,886,910,930,985,987,1105,1297,1303,1413,1456,1469.b}'ackground&V: -108,?1279.b}'ackgroundffcolor?$: +545,764,765,770,886,913,933,988,990,1110,1302,1308,1418,1461,1474.b}'ackground&V: +108,?1284.b}'ackgroundffcolor?$: 112 -fe,/113/fe/,/115,415,776,802,806,S808,823,825,862,1278,1279.b}'ackgroundffcolorffvector\[: +fe,/113/fe/,/115,415,776,802,806,S808,823,825,862,1283,1284.b}'ackgroundffcolorffvector\[: 115 -fe,116ȟfe,1384.bb8D: +fe,116ȟfe,1389.bb8D: 268 -fe,p272pfes,p1178pfet,p1263pfe.b}'egin L: -249,w543,545,546,549,550,552,553,657,659,685,734,739,741,743,765,766,770,771,830,840,843,859,860,862,867,895,897,911,985,K987,994,1118,1122,1254,1282,1285,1297,<1303,1337,1339,1342,1344,1360,1362,1375,<1379,1382,1385,1388,1391,1394,1413,1419,1428,1456,1460,1469,1473,1483.b}'egin gE: +fe,p272pfes,p1183pfet,p1268pfe.b}'egin L: +249,w543,545,546,549,550,552,553,657,659,685,734,739,741,743,765,766,770,771,830,840,843,859,860,862,867,898,900,914,988,K990,997,1123,1127,1259,1287,1290,1302,<1308,1342,1344,1347,1349,1365,1367,1380,<1384,1387,1390,1393,1396,1399,1418,1424,1433,1461,1465,1474,1478,1488.b}'egin gE: 47 fe ,48fe -,470,1501.b}'etaG!: -1263 -fe.black x: -108,112fe,113fe,954,1282,1285,1456.blueC: -108,112fe,113fe,946,954,1282,1438,1456,1500.blueffp}'artc: +,470,1506.b}'etaG!: +1268 +fe.bitset: +16.black x: +108,112fe,113fe,957,1287,1290,1461.blueC: +108,112fe,113fe,949,957,1287,1443,1461,1505.blueffp}'artc: 56 fe ,59,61,64,66,69,71,74,75,76,"85,91,99.blueffviolet"e : -108,W112WfeW,W113Wfe,W1500.bQoolus4wpair#: +108,W112WfeW,W113Wfe,W1505.bQoolus4wpair#: 12 fe .bQoolus4wpoin9t*2: 33 fe -,R267,268feU,269fe,270,274,275,527,528,529,530,603,604,640,641,642,917,918,919,949,960,985,987,994,1446.bQoolus4wpoin9tus4pairB=: +,R267,268feU,269fe,270,274,275,527,528,529,530,603,604,640,641,642,920,921,zn썫490INDEXA3DLDFPRÎGx1525n@P922,952,963,988,990,997,1451. rbQoolus4wpoin9tus4pairN: 267 -fe,274,275,949,950,951,961,l962,981,982,990,991,996,1159,1165,1166, 1167,1168,1174,1183,1216,1223,n썷x15173DLDFPRÎGAINDEX485n@P1258,[1259,1260,1261. 1]bQoolus4wpoin9tus4quadruplelV: +fe,274,275,952,953,954, 964,l965,984,985,993,994,999,1164,1170,1171, 1172,1173,1179,1188,1221,1228,1263,[1264,1265,1266.bQoolus4wpoin9tus4quadruplelV: 270 -fe,271fe,274,275, 1169,Kx1170,1171,1262,1263.bQoolus4wreal-,: +fe,271fe,274,275,1174,Kx1175,1176,1267,1268.bQoolus4wreal-,: 12 fe -,є349,350,352,353,354,355,603,,4958,996.bQoolus4wrealus4pQoin9tLa: +,є349,350,352,353,354,355,603,,4961,999.bQoolus4wrealus4pQoin9tLa: 33 fe -,R272RfeR,R273Rfe,R274,275,603,604,,4605,917.bQoolsM: -667,7949,1294.b}'otfflft1: -1062 -fe.b}'otffrt3^: -1062 -fe.bp +,R272RfeR,R273Rfe,R274,275,603,604,,4605,920.bQoolsM: +667,7952,1299.b}'otfflft1: +1065 +fe.b}'otffrt3^: +1065 +fe.bp y: 268 -fe,530fe,541,603fe,641fe,960fe,985fe,987fe,988,994fe#,gK1446gKfegO.bpp: -950,Ά951ΆfeΉ,Ά955,956,957,958,960,982fe,985,987,a988,989,996fed,1158,1159fee,1183fe,1223fe.bppffe]V: -1174 -fe.bppffthis#l@: +fe,530fe,541,603fe,641fe,963fe,988fe,990fe,991,997fe#,gK1451gKfegO.bpp: +953,Ά954ΆfeΉ,Ά958,959,960,961,963,985fe,988,990,a991,992,999fed,1163,1164fee,1188fe,1228fe.bppffe]V: +1179 +fe.bppffthis#l@: +1179 +fe.bpp0ǫ: +1221 +fe.bpp1ǫ: +1221 +fe.bp}'q2: 1174 -fe.bpp0ǫ: -1216 -fe.bpp1ǫ: -1216 -fe.bp}'q2: -1169 -fe,ݿ1171ݿfe,ݿ1179,1181,1183,1263fe.br +fe,ݿ1176ݿfe,ݿ1184,1186,1188,1268fe.br gs: 355 -fe,mG996mGfemJ.brffp: +fe,mG999mGfemJ.brffp: 603 -fe.brffq~ : +fe.brffq~ : 603 -fe.brp: +fe.brp: 272 -fe,603֟fe,605֟fe,606,607.BUGzFIX: -119,A150,265,349,386,397,463,474,>l545,601,623,633,672,901,950,964,1061,Kx1147,1158,1187,1304.BUGS: -395.b0 : -897 -fe.b1 : -897 -fe.C̫: +fe,603֟fe,605֟fe,606,607.BUGzFIX: +119,A150,265,349,386,397,463,474,>l545,601,623,633,672,888,904,953,967,]1064,1152,1163,1192,1309.BUGS: +395.b0 : +900 +fe.b1 : +900 +fe.C̫: 31 fe ,32֟fe -,1214֟fe,1223֟fe,1224֟fe.cS۫: +,1219֟fe,1228֟fe,1229֟fe.cS۫: 13 fe ,#29#fe @@ -6457,56 +6547,56 @@ ,#76#fe ,#77#fe ,#78#fe -,103fe#,104ҟfe,270ҟfe,317ҟfe,318ҟfe,319ҟfe,320ҟfe,695ҟfe,696ҟfe,697ҟfe,698fe#,>l700>lfe>o,>l701>lfe,>l702>lfe,>l703>lfe,>l776>lfe,>l802>lfe,>l807>lfe,>l824>lfe,901fe#,K905KfeN,K906Kfe,K1076KfeO,K1077Kfe,K1080Kfe,K1081Kfe,K1082Kfe,1083fe(,<1118<fe<,<1169<fe,<1178<fe,<1188<fe,<1240<fe,<1243<fe,<1245<fe,1248fe(,<1249<fe<,<1253<fe,<1254<fe,<1262<fe,<1263<fe,<1265<fe,<1267<fe,1269fe(,<1271<fe<,<1377<fe,<1380<fe,<1383<fe,<1412<fe,<1413<fe,<1414<fe,1415fe(,1416fe,1417fe,1420fe,1421fe,1501fe.cffiter: -657,"1377,1379,1380,1382.cffplane ֫: -1263 -fe.cffptrq: -1311 -fe.cffr}'adius$ͫ: -1262 -fe.cffstr~: -44.cffxU: -901 -fe,_[903.cffy: -901 -fe,r902,903.cffz: -901 -fe,902,903.c}'c : -1178 -fe.c}'center I: -1029 -fe,\1030\ڟfe\,\1032\ڟfe,\1033\ڟfe,\1034,1061fe\,1062fe,1063fe(, 1064 fe , 1104 fe, 1105 fe, 1106 fe, 1107 fe, 1237 fe,1238fe(,s1239sfew,s1240sfe.c}'cos: +,103fe#,104ҟfe,270ҟfe,317ҟfe,318ҟfe,319ҟfe,320ҟfe,695ҟfe,696ҟfe,697ҟfe,698fe#,700ҟfe,701ҟfe,702ҟfe,703ҟfe,776ҟfe,802ҟfe,807ҟfe,824ҟfe,904ҟfe,908fe#,909fe,1079fe,1080fe,1083fe,1085fe,1086fe,1087fe,1088fe(,<1123<fe<,<1174<fe,<1183<fe,<1193<fe,<1245<fe,<1248<fe,<1250<fe,1253fe(,<1254<fe<,<1258<fe,<1259<fe,<1267<fe,<1268<fe,<1270<fe,<1272<fe,1274fe(,<1276<fe<,<1382<fe,<1385<fe,<1388<fe,<1417<fe,<1418<fe,<1419<fe,1420fe(,1421fe,1422fe,1425fe,1426fe,1506fe.cffiter: +657,"1382,1384,1385,1387.cffplane ֫: +1268 +fe.cffptrq: +1316 +fe.cffr}'adius$ͫ: +1267 +fe.cffstr~: +44.cffxU: +904 +fe,_[906.cffy: +904 +fe,r905,906.cffz: +904 +fe,905,906.c}'c : +1183 +fe.@Pc}'center: +1032 +fe,\1033\ڟfe\,\1035\ڟfe,\1036\ڟfe,\1037,1064fe\,1065fe, 1066টfe, 1067 fe , 1109 fe, 1110 fe, 1111 fe, 1112 fe, 1242 fe,1243টfe,s1244sfew,s1245sfe. s.c}'cosK: 161 -fe,162,163,164.Center: -1159 -fe.@Pc}'enter/: -938 -fe,N945,949,950,961,963,965,966, 967,>l972>lfe>o,>l976,978,981,982,987,988,999,1018, 1021,1024,1030,1031,1062,1067,1077, 1104,1105,1115,1122,1135,1137,1158,<1166,1174,1187,1188,1204,1238,1263,1265,<1269,1289,1291fe<,1303,1309,1342,1344,1415,<1424,1435,1439,1440,1452,1454,1456,1466,[1469,1480,1483. s.c}'enterff0+: -1443,1456쿟fe,1457쿟fe,1470,1484.c}'enterff6+: -1456 +fe,162,163,164.Center@: +1164 +fe.c}'enter/: +941 +fe,N948,952,953,964,966,968,969, 970,l975lfeo,l979,981,984,985,990,991,1002,1021, 1024,1027,1033,1034,1065,1070,1080, 1109,1110,1120,1127,1140,1142,1163,<1171,1179,1192,1193,1209,1243,1268,1270,<1274,1294,1296fe<,1308,1314,1347,1349,1420,<1429,1440,1444,1445,1457,1459,1461,1471,[1474,1485,1488. s.c}'enterff0+: +1448,1461쿟fe,1462쿟fe,1475,1489.c}'enterff6+: +1461 fe.c}'errJ: -69,71,85,87,89,91,106,108,151,153, 161,183,188,313,318,346,347,350,351,380,383,393,400,401,432,443,452,458,462,464,472,503,505,508,536,540,549,550,551,561,572,>l606,624,641,644,716,717,722,743,748,>l750,763,765,776,802,807,813,821,824,>l830,842,844,858,863,867,873,880,883,>l884,885,888,890,894,895,896,898,900,>l901,903,909,919,924,930,946,948,952,>l959,962,965,976,978,983,986,991,995,1006,1067,1081,1083,1105,1122,1129,1140,<1142,1163,1168,1174,1177,1179,1180,1181,<1182,1188,1211,1216,1223,1224,1251,1254,<1263,1265,1269,1279,1282,1312,1325,1360,1362,1458,1471,1503,1509. s.che}'ck v: -1187 -fe,W1188Wfe[,W1189,1191,1198,1208.che}'ckffprojectionfflimitsW: +69,71,85,87,89,91,106,108,151,153, 161,183,188,313,318,346,347,350,351,380,383,393,400,401,432,443,452,458,462,464,472,503,505,508,536,540,549,550,551,561,572,606,624,641,644,716,717,722,743,748,750,763,765,776,802,807,813,821,824,830,842,844,858,863,867,873,880,883,884,885,889,>l891,893,897,898,899,901,903,904,906,>l912,922,927,933,949,951,955,962,965,l968,979,981,986,989,994,998,1009,1070,<1086,1088,1110,1127,1134,1145,1147,1168,<1173,1179,1182,1184,1185,1186,1187,1193,<1216,1221,1228,1229,1256,1259,1268,1270,<1274,1284,1287,1317,1330,1365,1367,1463,Kx1476,1508,1515,1516. s.che}'ck v: +1192 +fe,W1193Wfe[,W1194,1196,1203,1213.che}'ckffprojectionfflimitsW: 252.CIRCLE: -1291 -fe,WH1292WHfeWL,WH1311,1312,1324,1325,1327.CircleCЫ: +1296 +fe,WH1297WHfeWL,WH1316,1317,1329,1330,1332.CircleCЫ: 33 fe -,686,963,1021,1043,1044,1046, 1047,<1048,1050,1051,1169,1170,1232fe<,1234,1235টfe,<1237,1238fe<,1240,1242,1243,1244,1245,1246,<1248,1249,1250,1251,1253,1254,1257,1259,<1261,1262,1263,1264,1265,1267,1268,1269,<1271,1272,1281,1282,1283,1284,1285,1291,<1297,1303,1307,1311,1313,1314,1324,1337,<1339,1342,1344,1360,1362,1374,1375,1379,1382,1385,1388,1391,1394,1501. s.cir}'clesm: -1291 -fe,1297,1303,1311,1312,1314,1324,1325,<1337,1339,1342,1344,1360,1362,1374,1375,<1377,1379,1380,1382,1383,1385,1386,1388,Kx1389,1391,1392,1394.Circles : -1173,It1253,1281,1284.classesW: +,686,966,1024,1046,1047,1049, 1050,<1051,1053,1054,1174,1175,1237fe<,1239,1240টfe,<1242,1243fe<,1245,1247,1248,1249,1250,1251,<1253,1254,1255,1256,1258,1259,1262,1264,<1266,1267,1268,1269,1270,1272,1273,1274,<1276,1277,1286,1287,1288,1289,1290,1296,<1302,1308,1312,1316,1318,1319,1329,1342,<1344,1347,1349,1365,1367,1379,1380,1384,1387,1390,1393,1396,1399,1506. s.cir}'clesm: +1296 +fe,1302,1308,1316,1317,1319,1329,1330,<1342,1344,1347,1349,1365,1367,1379,1380,<1382,1384,1385,1387,1388,1390,1391,1393,Kx1394,1396,1397,1399.Circles : +1178,It1258,1286,1289.classesW: 656.cle}'an "&: 136 fe,q2137q2feq5,q2141,143,151,153,156,164,172,174,T177,179,304feW,305fe,395,516,517,520.cle}'ar }: 200 -fe,221,222,232,255fe,302fe,303fe,470,543,l546lfeo,l659,685,686fe,687fe,709,996,1024,1040, 1075,1077,1113,1246,1282,1285,1303,[1338[fe_,[1339[fe,[1419.close o: -1511.close}'d4: -964 -fe,965fe,966fe,967fe.c}'oe s j: -957 -fe.,n썫486INDEXA3DLDFPRÎGx1517n@Pc}'ol Lɫ: +fe,221,222,232,255fe,302fe,303fe,470,543,l546lfeo,l659,685,686fe,687fe,709,999,1027,7n썷x15253DLDFPRÎGAINDEX491n@P1043, 1078,1080,1118,1251,1287,1290, 1308,[1343[fe_,[1344[fe,[1424. Gclose7˫: +1519.close}'d: +967 +fe,968fe,969fe,970fe.c}'oe sƫ: +960 +fe.c}'ol Lɫ: 134 fe, 135 @@ -6514,8 +6604,8 @@ 145 fe, 146 -fe. Nc}'olffvec: -1456 +fe.c}'olffvec: +1461 fe.ColorO: 56 fe @@ -6523,149 +6613,150 @@  Ȉ,60,61fe ,63,64fe ,66,68,69fe -,71, 72,73,74,75,76,77,78,81,83,85,87,89,91,93,101,103,104,106,108,111,112,113,115,116,264,409,410,411,412,413,419,420,422,423,428,429,654,655,657,695,696,697,698,700,701,702,703,775,776,777,778,780,781,784,785,786,787,789,790,793,794,795,796,>l798,799,801,802,803,804,806,807,808,>l809,823,824,825,826,921,922,926,927,1046,1047,1050,1051,1092,1093,1217,1218,<1219,1220,1225,1226,1267,1268,1271,1272,<1278,1279,1281,1282,1284,1285,1377,1378,<1379,1380,1381,1382,1383,1384,1385,1386,1389,1392,1456,1500,1511. Nc}'olorffiter)\: -1285.c}'olorffptr'%: -1377,<^1379<^fel798,799,801,802,803,804,806,807,808,>l809,823,824,825,826,924,925,929,930,1049,1050,1053,1054,1097,1098,1222,1223,<1224,1225,1230,1231,1272,1273,1276,1277,<1283,1284,1286,1287,1289,1290,1382,1383,<1384,1385,1386,1387,1388,1389,1390,1391,1394,1397,1461,1505,1519.c}'olorffiter)\: +1290.c}'olorffptr'%: +1382,<^1384<^feA: +667,668fe,669fe,670fe,671fe,769fe,770fe,881fe#,882⋟fe,885,886.c}'onnectorffiter>A: 859,1860,862,864.c}'onnectorffptr;M: 674 fe,676fe.c}'onnectorffstringG|: 674 fe,676fe,859fe,860,862,864,867fe.c}'onnectors/4.: 654 -fe,x1657,659,664,666,669,671,674,>l676,685,709,759,764,765,766,770,771,>l859,860,862,864,866,867,885,886,895,{910,911,1067,1105.c}'onnectorsffiterBXD: +fe,x1657,659,664,666,669,671,674,>l676,685,709,759,764,765,766,770,771,>l859,860,862,864,866,867,885,886,898,{913,914,1070,1110.c}'onnectorsffiterBXD: 867.c}'onstffiterator;: -543,545,657,765,766,770,771,830,l867,895,897,985,987,994,1118,1122,1254,<1297,1303,1337,1379,1382,1385,1388,1391,[1394,1413,1428.c}'onstsl: -24,D274.c}'oords : +543,545,657,765,766,770,771,830,l867,898,900,988,990,997,1123,1127,1259,<1302,1308,1342,1384,1387,1390,1393,1396,[1399,1418,1433.c}'onstsl: +24,D274.@Pc}'oords0: 200 -fe,N312NfeN,N313Nfe,N314Nfe,N315Nfe,N317Nfe,N318Nfe,N319Nfe,320fe#,>l322>lfe>o,>l323>lfe,>l324>lfe,>l325>lfe,>l327>lfe,>l328>lfe,>l329>lfe,>l330>lfe,332fe#,>l333>lfe>o,>l334>lfe,>l335>lfe,>l337>lfe,>l338>lfe,>l339>lfe,>l340>lfe,>l431>lfe,432fe#,{866{fe{,{867{fe,{1336{fe{,{1337{fe.c}'opy: +fe,N312NfeN,N313Nfe,N314Nfe,N315Nfe,N317Nfe,N318Nfe,N319Nfe, 320টfe,>l322>lfe>o,>l323>lfe,>l324>lfe,>l325>lfe,>l327>lfe,>l328>lfe,>l329>lfe,>l330>lfe,332টfe,>l333>lfe>o,>l334>lfe,>l335>lfe,>l337>lfe,>l338>lfe,>l339>lfe,>l340>lfe,>l431>lfe,432টfe,{866{fe{,{867{fe,{1341{fe{,{1342{fe. Zc}'opy p: 524 -fe,֥946֥fe֨,֥954֥fe,֥1174֥fe֩,֥1175,1177,1178,@P1179,V1180. REc}'opyffaxisfforientationQw: -1178 -fe.c}'opyffcenter': -1174 -fe,;1175,1177,1178.c}'opyffnormal,: -946 -fe.COPYRIGHT_3DLDFD&߫: +fe,֥949֥fe֨,֥957֥fe,֥1179֥fe֩,֥1180,1182,1183,1184,V1185.c}'opyffaxisfforientationQw: +1183 +fe.c}'opyffcenter': +1179 +fe,;1180,1182,1183.c}'opyffnormal,: +949 +fe.COPYRIGHT_3DLDFD&߫: 19 fe ,|20|fe - ~,|1503,1507,1508.c}'ornerR: -1080 -fe, 1081 fe .c}'os: -162,163,164,1105.c}'ounter: + ~,|1508,1512,1513.c}'ornerR: +1085 +fe, 1086 fe .c}'os: +162,163,164,1110.c}'ounter: 864 -fe.c}'out9۫: -32,48,50,72,93,148,174,182,183,184, 185,186,188,249,350,380,382,385,387,388,395,399,400,401,405,411,432,434,443,446,448,452,458,462,464,517,519,520,521,522,530,531,532,533,534,535,536,537,538,540,541,546,548,549,550,551,552,553,561,574,603,605,606,607,609,644,646,661,664,669,674,678,681,683,685,687,726,776,802,807,824,830,840,842,843,844,847,849,857,859,861,862,863,864,867,869,873,875,886,894,897,901,903,911,918,946,951,952,954,955,956,957,958,960,982,983,985,987,988,989,993,K994,996,1030,1031,1033,1034,1122,1163,<1171,1172,1174,1175,1177,1178,1179,1180,<1181,1183,1184,1188,1223,1224,1254,1263,<1279,1285,1303,1312,1337,1339,1362,1365,<1367,1375,1377,1379,1380,1382,1383,1385,<1388,1391,1394,1428,1439,1455,1456,1469,1471,1483,1503,1507,1508,1511. REcr}'eateL: -200.cr}'eateffnew$ph: +fe.c}'out9۫: +32,48,50,72,93,148,174,182,183,184,185,186,188,249,350,380,382,385,387,388,395,399,400,401,405,411,432,434,443,446,448,452,458,462,464,517,519,520,521,522,530,531,532,533,534,535,536,537,538,540,541,546,548,549,550,551,552,553,561,574,603,605,606,607,609,644,646,661,664,669,674,678,681,683,685,687,726,776,802,807,824,830,840,842,843,844,847,849,857,859,861,862,863,864,867,869,873,875,886,897,900,904,906,914,921,949,954,955,957,958,959,960,961,963,985,986,988,990,991,992,996,K997,999,1033,1034,1036,1037,1127,1168,<1176,1177,1179,1180,1182,1183,1184,1185,<1186,1188,1189,1193,1228,1229,1259,1268,<1284,1290,1308,1317,1342,1344,1367,1370,<1372,1380,1382,1384,1385,1387,1388,1390,<1393,1396,1399,1433,1444,1460,1461,1474,1476,1488,1508,1512,1513,1519.cr}'eateL: +200.cr}'eateffnew$ph: 31 fe ,ɘ32ɘfe -ɚ,ɘ200.cr}'eateffnewffcir}'cle>: -1242 -fe,1243fe,1244fe,1245fe,1297, 1303.cr}'eateffnewffc}'olor=3ƫ: +ɚ,ɘ200.cr}'eateffnewffcir}'cle>: +1247 +fe,1248fe,1249fe,1250fe,1302,1308.cr}'eateffnewffc}'olor=3ƫ: 72 fe -,L776,802,807,824,1377,1380,V1383.cr}'eateffnewffcub}'oidCk: -1416 -fe,l 1417l fel.cr}'eateffnewffellipseB: -1109 -fe,H1110HfeL,H1111Hfe,H1112Hfe,H1297,1303.cr}'eateffnewffp}'ath9C: +,L776,802,807,824,1382,1385,V1388.cr}'eateffnewffcub}'oidCk: +1421 +fe,l 1422l fel.cr}'eateffnewffellipseB: +1114 +fe,H1115HfeL,H1116Hfe,H1117Hfe,H1302,1308.cr}'eateffnewffp}'ath9C: 680 -fe,681fe,682fe,683fe,689,776,802,807,5T813,821,824,1297,1303.cr}'eateffnewffp}'oint=: -290,E8291E8feE;,E8292E8fe,E8293E8fe,E8294E8fe,E8295E8fe,296টfe,>l343,411,415,462,471,657,664,666,669,>l671,674,676,755,757,765,770,885,886,[R1031,1062,1067,1105.cr}'eateffnewffr}'ectangleMӫ: -1071 -fe,ʄ1072ʄfeʈ,ʄ1073ʄfe,ʄ1074ʄfe,1297,[1303,1413,1415.cr}'eateffnewffr}'egffpolygonXV: -1036 -fe, 1037 fe, 1038 fe, 1039 fe,1297, 1303,1444,1456,1458,1469,1471,1483,s1485,1486.cr}'eateffnewffsolid<_: -1294,1B12981Bfe1F,1B12991Bfe,1B1305,1379,1382,Kx1385,1388,1391,1394.cr}'oss «: -950,h951hfeh,h953,982fe,984.cr}'ossffproduct/m: +fe,681fe,682fe,683fe,689,776,802,807,5T813,821,824,1302,1308.cr}'eateffnewffp}'oint=: +290,E8291E8feE;,E8292E8fe,E8293E8fe,E8294E8fe,E8295E8fe,296টfe,>l343,411,415,462,471,657,664,666,669,>l671,674,676,755,757,765,770,885,886,[R1034,1065,1070,1110.cr}'eateffnewffr}'ectangleMӫ: +1074 +fe,ʄ1075ʄfeʈ,ʄ1076ʄfe,ʄ1077ʄfe,1302,[1308,1418,1420.cr}'eateffnewffr}'egffpolygonXV: +1039 +fe, 1040 fe, 1041 fe, 1042 fe,1302, 1308,1449,1461,1463,1474,1476,1488,s1490,1491.]n썫492INDEXA3DLDFPRÎGx1525n@Pcr}'eateffnewffsolidG!: +1299,1B13031Bfe1F,1B13041Bfe,1B1310,1384, 1387,Kx1390,1393,1396,1399. =cr}'oss: +953,h954hfeh,h956,985fe,987.cr}'ossffproduct:: 500 -fe,W501WfeZ,W605,644,897,951,982,gK1067.Rfn썷x15173DLDFPRÎGAINDEX487n@Pctr : +fe,501џfe,605,644,900,954,985,1070,s1082,1083.ctr : 318 -fe,bX346bXfeb[. BsCubQoid%O: -442,1304,1406,1408fe,1410,1411fe, 1412, 1413 fe , 1414,1415fe,1416,1417,1418,1419fe(,s1420,1421.currffangle-ë: -1105 -fe.currffc}'olor,": -1281 -fe.currfflo}'cation8: -1180 -fe.currffp}'oint-B: -1180 -fe,ٜ1181.currffxo: -1105 -fe.CURR_Y V: +fe,bX346bXfeb[.CubQoid%O: +442,1309,1411,1413fe,1415,1416fe,1417, 1418 fe , 1419,1420fe,1421,1422,1423,1424fe(,s1425,1426.currffangle-ë: +1110 +fe.currffc}'olor,": +1286 +fe.currfflo}'cation8: +1185 +fe.currffp}'oint-B: +1185 +fe,ٜ1186.currffxo: +1110 +fe.CURR_Y V: 264 -fe,265fe,282,284.CURR_Z V: +fe,265fe,282,284.CURR_Z V: 264 -fe,265fe,282,284.currffz赫: -1105 -fe.curr}'entffpictureB%ǫ: +fe,265fe,282,284.currffz赫: +1110 +fe.curr}'entffpictureB%ǫ: 257 -fe,j258jşfej,j410,414,419,422,425,428,461,463,466,468,470,775,784,793,801,806,l812,820,823,829,834,921,926,1046,1050,<1092,1093,1117,1119,1217,1219,1278,1343,<1378,1381,1384,1387,1390,1393,1501.curveff0" +fe,j258jşfej,j410,414,419,422,425,428,461,463,466,468,470,775,784,793,801,806,l812,820,823,829,834,924,929,1049,1053,<1097,1098,1122,1124,1222,1224,1283,1348,<1383,1386,1389,1392,1395,1398,1506.curveff0" y: -954 -fe.curveff4" +957 +fe.curveff4" y: -954 -fe.cyanw: -108,M112MݟfeM,M113Mݟfe,M1456,1500.cycley5: +957 +fe.cyanw: +108,M112MݟfeM,M113Mݟfe,M1461,1505.cycley5: 667 -fe,^E668,669,670,671,881fe^H,882fe,885,886.cycleffswitch5: +fe,^E668,669,670,671,881fe^H,882fe,885,886.cycleffswitch5: 654 -fe,%657,661,664,666,669,671,674,676,867,877,906,1027,1030,1037,1039, 1059,1062,1067,1072,1074,1102,1105,[1235,1238,1243.d4r: -21 +fe,%657,661,664,666,669,671,674,676,867,877,909,1030,1033,1040,1042, 1062,1065,1070,1075,1077,1107,1110,[1240,1243,1248.d4r: +16 fe -,t822t8fe - t:,t8270t8fet;,t8644t8fe,t8901t8fe,t81178t8fet<,t81307t8fe,t81414t8fe,t81415t8fe.dffx%.: -901 -fe,]903.dffy +,X?21X?fe +XA,X?22X?fe +,X?270X?feXB,X?644X?fe,X?904X?fe,X?1083X?feXC,X?1183X?fe,X?1312X?fe,1419fe(,V1420V՟feV.dffx%.: +904 +fe,]906.dffy ݫ: -901 -fe,902,903.dffzȫ: -901 -fe,(902,903.dashe}'d*: +904 +fe,905,906.dffzȫ: +904 +fe,(905,906.dashe}'d*: 654 -fe,1657,658,661,664,666,669,671,674,>l676,705,776,802,807,813,821,824,859,861,862,863.datestamp-: +fe,1657,658,661,664,666,669,671,674,>l676,705,776,802,807,813,821,824,859,861,862,863.datestamp-: 43 fe -,44.DBL_MAX%FS: -16.dd C: -1178 -fe.ddashe}'d#G: +,44.DBL_MAX%FS: +16.dd C: +1183 +fe.ddashe}'d#G: 419 -fe,!420!fe$,!422!fe,!423!fe,!425!fe,!426!fe,!428!fe,!429!fe,775fe#,>l776>lfe>o,>l777>lfe,>l778>lfe,>l780>lfe,>l781>lfe,>l784>lfe,>l785>lfe,>l786>lfe,787fe#,>l789>lfe>o,>l790>lfe,>l793>lfe,>l794>lfe,>l795>lfe,>l796>lfe,>l798>lfe,>l799>lfe,806fe#,>l807>lfe>o,>l808>lfe,>l809>lfe,>l812>lfe,>l813>lfe,>l814>lfe,>l815>lfe,>l817>lfe,818fe#,>l823>lfe>o,>l824>lfe,>l825>lfe,>l826>lfe,>l920,921fe>o,922fe,925,926fe#,927fe,1046fe,1047fe,1050fe,1051fe,1092fe,1093fe,1217fe(,<1218<fe<,<1219<fe,<1220<fe,<1225<fe,<1226<fe,<1267<fe,<1268<fe,1271fe(,<1272<fe<,<1377,1378fe,1379fe,1383,1384fe,1385fe,1386,1387fe,1388fe,1392,1393fe,1394fe.ddiameter,e: -1029 -fe,&1030&fe&,&1032&fe,&1033&fe,&1034,1237fe&,1238fe(,s1239sfew,s1240sfe.ddr}'awffcolor4: +fe,!420!fe$,!422!fe,!423!fe,!425!fe,!426!fe,!428!fe,!429!fe,775fe#,>l776>lfe>o,>l777>lfe,>l778>lfe,>l780>lfe,>l781>lfe,>l784>lfe,>l785>lfe,>l786>lfe,787fe#,>l789>lfe>o,>l790>lfe,>l793>lfe,>l794>lfe,>l795>lfe,>l796>lfe,>l798>lfe,>l799>lfe,806fe#,>l807>lfe>o,>l808>lfe,>l809>lfe,>l812>lfe,>l813>lfe,>l814>lfe,>l815>lfe,>l817>lfe,818fe#,>l823>lfe>o,>l824>lfe,>l825>lfe,>l826>lfe,>l923,924fe>o,925fe,928,929fe#,930fe,1049fe,1050fe,1053fe,1054fe,1097fe,1098fe,1222fe(,<1223<fe<,<1224<fe,<1225<fe,<1230<fe,<1231<fe,<1272<fe,<1273<fe,1276fe(,<1277<fe<,<1382,1383fe,1384fe,1388,1389fe,1390fe,1391,1392fe,1393fe,1397,1398fe,1399fe.ddiameter,e: +1032 +fe,&1033&fe&,&1035&fe,&1036&fe,&1037,1242fe&,1243fe(,s1244sfew,s1245sfe.@Pddr}'awffcolor(M: 419 -fe,34203fe3,34223fe,34233fe,34283fe,34293fe,37753fe,776fe#,>l777>lfe>o,>l778>lfe,>l780>lfe,>l781>lfe,>l784>lfe,>l785>lfe,>l786>lfe,>l787>lfe,789fe#,>l790>lfe>o,>l793>lfe,>l794>lfe,>l795>lfe,>l796>lfe,>l798>lfe,>l799>lfe,>l805,806fe#,>l807>lfe>o,>l808>lfe,>l809>lfe,>l823>lfe,>l824>lfe,>l825>lfe,>l826>lfe,>l921>lfe,922fe#,Y925,926feY,927fe,1046feY,1047fe,1050fe,1051fe,1092fe(,<1093<fe<,<1217<fe,<1218<fe,<1219<fe,<1220<fe,<1225<fe,<1226<fe,@P1267টfe,[1268[fe_,[1271[fe,[1272[fe. Bsddr}'awdotffcolor6t: +fe,34203fe3,34223fe,34233fe,34283fe,34293fe,37753fe, 776টfe,>l777>lfe>o,>l778>lfe,>l780>lfe,>l781>lfe,>l784>lfe,>l785>lfe,>l786>lfe,>l787>lfe,789টfe,>l790>lfe>o,>l793>lfe,>l794>lfe,>l795>lfe,>l796>lfe,>l798>lfe,>l799>lfe,>l805,806টfe,>l807>lfe>o,>l808>lfe,>l809>lfe,>l823>lfe,>l824>lfe,>l825>lfe,>l826>lfe,>l924>lfe,925টfe,Y928,929feY,930fe,1049feY,1050fe,1053fe,1054fe,1097টfe,<1098<fe<,<1222<fe,<1223<fe,<1224<fe,<1225<fe,<1230<fe,<1231<fe,1272টfe,[1273[fe_,[1276[fe,[1277[fe. REddr}'awdotffcolor6t: 409,410῟fe,411῟fe,412῟fe,413῟fe.DEBUG: 72 fe -,'159'fe*,'161'fe,'174'fe,'182'fe,'183,184,185,186, 188টfe,346ҟfe,350ҟfe,380ҟfe,381,382,385,387,388,389,395টfe,399ҟfe,400,401,405fe,411fe,432fe,443fe,446fe,448fe,452টfe,458ҟfe,462ҟfe,464ҟfe,505ҟfe,517ҟfe,518,519,520,521,522,530ҟfe,531,532,533,534,535,536,537,538,540,541,546fe,548fe,549,550,551,552,553,561fe,603টfe,605ҟfe,606,607,644fe,661fe,664fe,669fe,674fe,678fe,681টfe,683ҟfe,685ҟfe,687ҟfe,726ҟfe,776ҟfe,802ҟfe,807ҟfe,824ҟfe,830ҟfe,840টfe,842ҟfe,843,844,847fe,849fe,857fe,859,861,862,863,864,873fe,875fe,882fe,886,894fe,897,901fe,903,909টfe,911,946fe,951fe,952,954,955,956,957,958,960,982ҟfe,983,985,987,988,989,993fe,994,996,1030টfe,<1031,1033fe<,1034,1122fe,1163fe,1171fe,1172,1173,<1174,1175,1177,1178,1179,1180,1181,1183,<1188<fe<,<1254<fe,<1263<fe,<1279<fe,<1282<fe,<1285<fe,<1303<fe,1312টfe,<1339<fe<,<1362<fe,<1365<fe,<1367<fe,<1375<fe,<1377,1379fe<,1380,<1382<fe<,<1383,1385fe,1388fe,1391fe,1394fe,1415fe,1438টfe,<1455<fe<,<1456,1469fe,1471fe,1483fe,1485fe,1503fe. Bsde}'cimal": +,'159'fe*,'161'fe,'174'fe,'182'fe,'183,184,185,186, 188টfe,346ҟfe,350ҟfe,380ҟfe,381,382,385,387,388,389,395টfe,399ҟfe,400,401,405fe,411fe,432fe,443fe,446fe,448fe,452টfe,458ҟfe,462ҟfe,464ҟfe,505ҟfe,517ҟfe,518,519,520,521,522,530ҟfe,531,532,533,534,535,536,537,538,540,541,546fe,548fe,549,550,551,552,553,561fe,603টfe,605ҟfe,606,607,644fe,661fe,664fe,669fe,674fe,678fe,681টfe,683ҟfe,685ҟfe,687ҟfe,726ҟfe,776ҟfe,802ҟfe,807ҟfe,824ҟfe,830ҟfe,840টfe,842ҟfe,843,844,847fe,849fe,857fe,859,861,862,863,864,873fe,875fe,882fe,886,897fe,900,904fe,906,912টfe,914,949fe,954fe,955,957,958,959,960,961,963,985ҟfe,986,988,990,991,992,996fe,997,999,1033টfe,<1034,1036fe<,1037,1127fe,1168fe,1176fe,1177,1178,<1179,1180,1182,1183,1184,1185,1186,1188,<1193<fe<,<1259<fe,<1268<fe,<1284<fe,<1287<fe,<1290<fe,<1308<fe,1317টfe,<1344<fe<,<1367<fe,<1370<fe,<1372<fe,<1380<fe,<1382,1384fe<,1385,<1387<fe<,<1388,1390fe,1393fe,1396fe,1399fe,1420fe,1443টfe,<1460<fe<,<1461,1474fe,1476fe,1488fe,1490fe,1508fe. REde}'cimal": 96,97fe ,98fe ,99fe .defaultffb}'ackgroundG&ë: 108,8F1128Ffe8I,8F1138Ffe.defaultffc}'olor,\: 112 -fe,n113nfeq,n115,410,412,419,420, 422,>l423,458,775,777,784,786,801,803,806,l808,859,861,862,863,921,1046,1047,1050,<1051,1092,1093,1217,1219,1278,1279,1282,[1379,1382,1446. Bsdefaultffc}'olorffvectorIޫ: +fe,n113nfeq,n115,410,412,419,420, 422,>l423,458,775,777,784,786,801,803,806,l808,859,861,862,863,924,1049,1050,1053,<1054,1097,1098,1222,1224,1283,1284,1287,[1384,1387,1451. REdefaultffc}'olorffvectorIޫ: 115 -fe,116fe,1281,1284,1378,1381,V1384.defaultfffo}'cus,: +fe,116fe,1286,1289,1383,1386,V1389.defaultfffo}'cus,: 313,318,397,402,403,431,443,457,554,586fe,587fe.DEFAULT_NUMBER_OF_POINTSsfī: -1098 -fe,1099fe,1104,1105,[1106,1237,1239.de neffc}'olorffmp9N: +1103 +fe,1104fe,1109,1110,[1111,1242,1244.de neffc}'olorffmp9N: 105 fe,eE106eEfeeH,eE108.deltaffx: 522 @@ -6687,26 +6778,26 @@ 532 fe,534.denominator-r: 641 -fe,č1178čfeđ.depth iC: -1408 -fe,/1415,1421.diameterffinner7zX: -1278 -fe,y1279yŸfey,y1281yŸfe,y1282yŸfe,y1284yŸfe,1285টfe.diameterffmiddle=(: -1278 -fe,1279fe.diameterffofffhexagonNh: -1482 -fe.diameterffoffftriangleL+: -1437 -fe,1441fe,1468fe.diameterffouter6: -1278 -fe,1279fe,1282fe,1284fe,1285fe.diameterffouterffendIݫ: -1281 -fe,V1282VfeV.wn썫488INDEXA3DLDFPRÎGx1517n@PdiameterffouterffstartYԫ: -1281 -fe,GQ1282GQfeGU. ;digitffoptind3;: -1503 +fe,č1183čfeđ.depth iC: +1413 +fe,/1420,1426.diameterffinner7zX: +1283 +fe,y1284yŸfey,y1286yŸfe,y1287yŸfe,y1289yŸfe, n썷x15253DLDFPRÎGAINDEX493n@P1290fe(. 5diameterffmiddleHG: +1283 +fe,1284fe.diameterffofffhexagonYī: +1487 +fe.diameterffoffftriangleX: +1442 +fe,1446fe,1473fe.diameterffouterB۫: +1283 +fe,1284fe,1287fe,1289fe,1290fe.diameterffouterffendU9: +1286 +fe,V1287VfeV.diameterffouterffstartYԫ: +1286 +fe,GQ1287GQfeGU.digitffoptind3;: +1508 fe.dihe}'dralffangle=Jȫ: -1408,ΰ1431ΰfeδ,ΰ1432ΰfe,ΰ1438,1448feδ, 1449fe(,Kx1455,1462feK|,1463fe,1469.dir \: +1413,ΰ1436ΰfeδ,ΰ1437ΰfe,ΰ1443,1453feδ, 1454fe(,Kx1460,1467feK|,1468fe,1474.dir \: 565 fe,?y566?yfe?|,?y567?yfe,?y568?yfe,?y595?yfe,?y596?yfe.dirffxm: 560 @@ -6716,218 +6807,225 @@ 560 fe,m561mfep,m562mfe,m563mfe.dir}'ection&: 556 -fe,X557,559,561,570,572,574,577,593fe#,>l594,596,597,598,600,601,605,606,609,931,996,1183.dir}'ectionffline:{#: -1159 +fe,X557,559,561,570,572,574,577,593fe#,>l594,596,597,598,600,601,605,606,609,934,999,1188.dir}'ectionffline:{#: +1164 fe.dir}'ectionffpt3Dd: -1159 +1164 fe.dir}'ectionffvectorDz: 644 fe.DISCLAIMER_3DLDFT8: 19 fe ,t20tfe - v,t1507,1508.dist m: -559,560fe,561fe,562fe,563fe,565fe,566fe,567fe,568fe,920,99219fe<,99229fe,9923,925,926fe<,927fe,1263fe=.distanc}'e$E: + v,t1512,1513.dist m: +559,560fe,561fe,562fe,563fe,565fe,566fe,567fe,568fe,923,99249fe<,99259fe,9926,928,929fe<,930fe,1268fe=.distanc}'e$E: 556 -fe,559,561,570,572,574,578,617fe#,>l619,620,623,624,626,629,635,636,641,>l644,646,951fe>o,954,982fe,985,993fe,994,1172,s1439sfew,s1440.doffapply& +fe,559,561,570,572,574,578,617fe#,>l619,620,623,624,626,629,635,636,641,>l644,646,954fe>o,957,985fe,988,996fe,997,1177,s1444sfew,s1445.doffapply& ի: 200 -fe,312fe,313fe,314fe,315fe,317fe,318fe,319fe,320fe#,>l322>lfe>o,>l323>lfe,>l324>lfe,>l325>lfe,>l327>lfe,>l328>lfe,>l329>lfe,>l330>lfe,332fe#,>l333>lfe>o,>l334>lfe,>l335>lfe,>l337>lfe,>l338>lfe,>l339>lfe,>l340>lfe,>l431>lfe,432fe#,{866{fe{,{867{fe,{1336{fe{,{1337{fe.doffhalf `: -1443 -fe,V11457V1feV5,V11458V1fe,V11470V1fe,V11471V1fe,V11484V1fe,V11485V1fe.doffhelpfflines89: +fe,312fe,313fe,314fe,315fe,317fe,318fe,319fe,320fe#,>l322>lfe>o,>l323>lfe,>l324>lfe,>l325>lfe,>l327>lfe,>l328>lfe,>l329>lfe,>l330>lfe,332fe#,>l333>lfe>o,>l334>lfe,>l335>lfe,>l337>lfe,>l338>lfe,>l339>lfe,>l340>lfe,>l431>lfe,432fe#,{866{fe{,{867{fe,{1341{fe{,{1342{fe.doffhalf `: +1448 +fe,V11462V1feV5,V11463V1fe,V11475V1fe,V11476V1fe,V11489V1fe,V11490V1fe.doffhelpfflines89: 427,EG654EGfeEJ,EG655EGfe,EG794.doffinner&: -1279 +1284 fe.dofflab}'els&;: 209,n216nfen,n219,229,230,249,544,553.DO_LABELS/M: 208 -fe,209fe,216,462,830,1118.doffmiddle,L?: -1279 +fe,209fe,216,462,830,1123.doffmiddle,L?: +1284 fe.doffoutput*3: 264 -fe,280,283,285,287,289,300,439,441,458,552,654fe,657,661,664,666,669,671,674,676,853,855,857,1291fe,1294,1295,1297,1299,<1303,1371,1373,1411,1413,1415,1417,1435,<1438,1452,1455,1466,1469,1480,1483.doffp}'ersp%8: +fe,280,283,285,287,289,300,439,441,458,552,654fe,657,661,664,666,669,671,674,676,853,855,857,1296fe,1299,1300,1302,1304,<1308,1376,1378,1416,1418,1420,1422,1440,<1443,1457,1460,1471,1474,1485,1488.doffp}'ersp%8: 200 -fe,312fe,313fe,314fe,315fe,317fe,318fe,319fe,320fe#,>l322>lfe>o,>l323>lfe,>l324>lfe,>l325>lfe,>l327>lfe,>l328>lfe,>l329>lfe,>l330>lfe,332fe#,>l333>lfe>o,>l334>lfe,>l335>lfe,>l337>lfe,>l338>lfe,>l339>lfe,>l340>lfe,>l431>lfe,432fe#,{866{fe{,{867{fe,{1336{fe{,{1337{fe.doffsort ū: +fe,312fe,313fe,314fe,315fe,317fe,318fe,319fe,320fe#,>l322>lfe>o,>l323>lfe,>l324>lfe,>l325>lfe,>l327>lfe,>l328>lfe,>l329>lfe,>l330>lfe,332fe#,>l333>lfe>o,>l334>lfe,>l335>lfe,>l337>lfe,>l338>lfe,>l339>lfe,>l340>lfe,>l431>lfe,432fe#,{866{fe{,{867{fe,{1341{fe{,{1342{fe.doffsort ū: 547 fe.dofftr}'ansform94: 549 -fe,&1122,1187fe*,1188fe,1189,1190,1191,1192,1198,1199,1208,1209.doffwarnings64«: +fe,&1127,1192fe*,1193fe,1194,1195,1196,1197,1203,1204,1213,1214.doffwarnings64«: 253 fe,254fe,547,548fe,551,554fe.DoQdecahedronH: -196,gd1307,1424,1448fegh,1449,1451, 1452 fe , 1454,1455fe,1458,1459,1460,1468,V1472.dot : +196,gd1312,1429,1453fegh,1454,1456, 1457 fe , 1459,1460fe,1463,1464,1465,@P1473,V1477. /dotᱫ: 208 -fe,461џfe,462џfe,463џfe,464џfe,471,472,828,829fe,830fe#,%831%fe%,%832%fe,%1117%fe%,%1118%fe,%1119.dotffpr}'oduct2!: +fe,461џfe,462џfe,463џfe,464џfe,471,472,828,829fe, 830টfe,%831%fe%,%832%fe,%1122%fe%,%1123%fe,%1124.dotffpr}'oduct'`ū: 498 -fe,ġ499ġfeĤ,ġ504,505,605,624,634,641.dotlab}'el!: -207,X209,461,465,466fe[,467fe,468fe,469fe,828,l834lfeo,l835lfe,l836lfe,l837lfe,l946,954,1119fep,1174,@P1177,<1179,1214,1263,1279,1282,1285,1415, 1446,1456,1460,1469,1471,1473,1483. .doubleffr}'ows(Ș: -1278 -fe,ý1279ýfe.doubles: -12,4!138.dr}'aw : -418,419fe,420fe,427,775fe,776fe,777fe,778fe,779,>l780>lfe>o,>l781>lfe,>l785,787,794,805,858,946,954,1218,1220,1225,1226,1267,1271,1279,1282, 1285,1378fe ,1379fe,1438,1446,1456,1460,[1473,1501,1517.DRAW +fe,ġ499ġfeĤ,ġ504,505,605,624,634,641.dotlab}'el: +207,X209,461,465,466fe[,467fe,468fe,469fe,828,l834lfeo,l835lfe,l836lfe,l837lfe,l949,957,1124fep,1179,1182,<1184,1219,1268,1284,1287,1290,1420,1451,1461,1465,1474,1476,1478,1488.doubleffr}'ows(Ș: +1283 +fe,ý1284ýfe.doubles: +12,4!138.dp=: +16 +fe +.dr}'aw : +418,419fe,420fe,427,775fe,776fe,777fe,778fe,779,>l780>lfe>o,>l781>lfe,>l785,787,794,805,858,949,957,1223,1225,1230,1231,1272,1276,1284,1287, 1290,1383fe ,1384fe,1443,1451,1461,1465,[1478,1506,1525.DRAW g: 199 -fe,]201]fe],]776,859,1377.dr}'awffaxes z: -921 -fe,&922&fe&,&926&fe,&927&fe,&954.dr}'awffcolor#ݫ: +fe,]201]fe],]776,859,1382.dr}'awffaxes z: +924 +fe,&925&fe&,&929&fe,&930&fe,&957.dr}'awffcolor#ݫ: 654 -fe,Gy657,661,664,666,669,671,674,676,>l681,685,686,687,696,698,775,776,802,>l806,807,813,821,824,859,861,862,863,{864,869,1377,1380.dr}'awffcolorffinner>: -1278 -fe,{1279{fe{.dr}'awffcolorffiter6: -1383,1385.dr}'awffcolorffmiddleDIի: -1278 -fe,i21279i2fei6.dr}'awffcolorffouter>ë: -1278 -fe,}1279}fe}.dr}'awffcolorffptr4!P: -1383,c1385cfeg.dr}'awffcolors'1: -1383,m1384mfem,m1385mfe.dr}'awffhelpL: -427,84288fe;,84298fe,8791,793fe;,794fe,795fe,796টfe,798fe҂,799fe,1446.dr}'awffinffcircle1t: -1046 -fe,1047fe,1267fe,1268fe.dr}'awffinffellipse5ف: -1093 -fe,1226fe.dr}'awffinffrectangle@U: -1219 -fe,t"1220t"fet&.dr}'awffnet"7: -1445 -fe,j1446jfen,j1459jfe,j1460jfe,j1472jfe,j1473jfe.dr}'awffoutffcircle6: -1050 -fe,S1051SfeW,S1271Sfe,S1272Sfe.dr}'awffoutffellipse:: -1092 -fe,1225fe.dr}'awffoutffrectangleFī: -1217 -fe,cN1218cNfecR.dr}'awarrow#h: +fe,Gy657,661,664,666,669,671,674,676,>l681,685,686,687,696,698,775,776,802,>l806,807,813,821,824,859,861,862,863,{864,869,1382,1385.dr}'awffcolorffinner>: +1283 +fe,{1284{fe{.dr}'awffcolorffiter6: +1388,1390.dr}'awffcolorffmiddleDIի: +1283 +fe,i21284i2fei6.dr}'awffcolorffouter>ë: +1283 +fe,}1284}fe}.dr}'awffcolorffptr4!P: +1388,c1390cfeg.dr}'awffcolors'1: +1388,m1389mfem,m1390mfe.dr}'awffhelpL: +427,84288fe;,84298fe,8791,793fe;,794fe,795fe,796টfe,798fe҂,799fe,1451.dr}'awffinffcircle1t: +1049 +fe,1050fe,1272fe,1273fe.dr}'awffinffellipse5ف: +1098 +fe,1231fe.dr}'awffinffrectangle@U: +1224 +fe,t"1225t"fet&.dr}'awffnet"7: +1450 +fe,j1451jfen,j1464jfe,j1465jfe,j1477jfe,j1478jfe.dr}'awffoutffcircle6: +1053 +fe,S1054SfeW,S1276Sfe,S1277Sfe.dr}'awffoutffellipse:: +1097 +fe,1230fe.dr}'awffoutffrectangleFī: +1222 +fe,cN1223cNfecR.dr}'awarrow#h: 422 -fe,{423{ӟfe{,{654,784fe,785fe,786fe,787fe,789টfe,790⋟fe,856,925.DRAWDOT&: +fe,{423{ӟfe{,{654,784fe,785fe,786fe,787fe,789টfe,790⋟fe,856,928.DRAWDOT&: 199 fe,201fe,411,458.dr}'awdott%: -409,410fe,411fe,412fe,413fe,465,1446.dr}'awdotffcolor1X8: +409,410fe,411fe,412fe,413fe,465,1451.dr}'awdotffcolor1X8: 264 fe,k300,302,409,411,415,458.dr}'awdotffvalue2+m: 264 fe,i300,302,409,411,415,458.ऱe: 644 -fe,901fe,1107fe,1109fe,1110fe,1111fe,1112fe,1114fe,1115টfe,<1122<fe<,<1160<fe,<1161<fe,<1170<fe,<1171<fe,<1184<fe,<1223<fe,1224টfe,1225fe,1226fe,1238fe,1250fe,1251fe.effaxisffh!۫: -1251 +fe,904fe,1112fe,1114fe,1115fe,1116fe,1117fe,1119fe,1120টfe,<1127<fe<,<1165<fe,<1166<fe,<1175<fe,<1176<fe,<1189<fe,<1228<fe,1229টfe,1230fe,1231fe,1243fe,1255fe,1256fe.effaxisffh!۫: +1256 fe.effaxisfforientationC1m: -1173 -fe,c1174,1178.effaxisfforientationffr}'otateddF: -1173 -fe,1174,1178.effaxisffv,: -1251 +1178 +fe,c1179,1183.effaxisfforientationffr}'otateddF: +1178 +fe,1179,1183.effaxisffv,: +1256 fe.effc}'enter1٫: -1177 -fe,1178.effplanekz: -1171 -fe,(1172,1183.effx: -901 -fe,_[903.effyh: -901 -fe,r902,903.effz: -901 -fe,902,903.e}'dgeffradius&6: -1426 -fe,l1435,1438,1452,1455,1466,1469,s1480,1483.e}'dges : -1400 -fe,1411,1413,1415,1435,1438,1452,1455,Kx1466,1469,1480,1483.n썷x15173DLDFPRÎGAINDEX489n@Pelements&: -438,X440,442,453fe[,549fe,550,551,552, 839,852,854,856fe. {hELLIPSE%FS: -1291 -fe,712927fe;,71311,1312,1324,1325,1329.Ellipse!٫: +1182 +fe,1183.effplanekz: +1176 +fe,(1177,1188.àn썫494INDEXA3DLDFPRÎGx1525n@PeffxU: +904 +fe,_[906. s.effy: +904 +fe,r905,906.effz: +904 +fe,905,906.e}'dgeffradius1ܒ: +1431 +fe,l1440,1443,1457,1460,1471, 1474,s1485,1488.e}'dges: +1405 +fe,1416,1418,1420,1440,1443,1457,1460,Kx1471,1474,1485,1488.elements&: +438,X440,442,453fe[,549fe,550,551,552,839,852,854,856fe.ELLIPSE%FS: +1296 +fe,712977fe;,71316,1317,1329,1330,1334.Ellipse!٫: 33 fe -,_290,644,1089,1090,1091,1092,1093,<1098<fe<,<1099,1101,1102fe,1104,1105fe,1107,1109,<1110,1111,1112,1113,1114,1115,1118,1119,<1122,1125,1127,1128,1129,1132,1135,1137,<1140,1142,1144,1146,1147,1150,1152,1155,<1157,1159,1160,1161,1162,1163,1166,1168,<1169,1170,1171,1173,1174,1177,1184,1187,<1188,1190,1191,1192,1194,1196,1198,1199,<1201,1204,1206,1208,1209,1211,1214,1216,<1218,1220,1221,1223,1224,1225,1226,1232,<1238,1246,1248,1249,1250,1251,1257,1259,<1261,1263,1291,1297,1303,1307,1315,1316,<1324,1337,1339,1342,1344,1360,1362,1374,<1375,1379,1382,1385,1388,1391,1394.ellipseffpt0..: -1177 +,_290,644,1094,1095,1096,1097,1098,<1103<fe<,<1104,1106,1107fe,1109,1110fe,1112,1114,<1115,1116,1117,1118,1119,1120,1123,1124,<1127,1130,1132,1133,1134,1137,1140,1142,<1145,1147,1149,1151,1152,1155,1157,1160,<1162,1164,1165,1166,1167,1168,1171,1173,<1174,1175,1176,1178,1179,1182,1189,1192,<1193,1195,1196,1197,1199,1201,1203,1204,<1206,1209,1211,1213,1214,1216,1219,1221,<1223,1225,1226,1228,1229,1230,1231,1237,<1243,1251,1253,1254,1255,1256,1262,1264,<1266,1268,1296,1302,1308,1312,1320,1321,<1329,1342,1344,1347,1349,1365,1367,1379,<1380,1384,1387,1390,1393,1396,1399.ellipseffpt0..: +1182 fe.ellipseffpt4..: -1177 +1182 fe.Ellipses&r: -1115,>&1170,1173,1174.ellipses q: -1291 -fe,Wf1297,1303,1311,1312,1316,1324,1325,<1337,1339,1342,1344,1360,1362,1374,1375,<1377,1379,1380,1382,1383,1385,1386,1388,Kx1389,1391,1392,1394.Ellipsoid'a: -1291.endಫ: -249,543,545,546,549,550,552,553,657,659,685,734,739,741,743,765,766,770,771,830,>l840,843,864,867,881fe>o,882fe,883,884,885,l886,895,897,911,985,987,994,1118,1122,<1254,1282,1285,1297,1303,1337,1339,1342,<1344,1360,1362,1375,1377,1379,1380,1382,<1383,1385,1388,1391,1394,1413,1419,1428,1456,1460,1469,1473,1483.end g: +1120,>&1175,1178,1179.ellipses q: +1296 +fe,Wf1302,1308,1316,1317,1321,1329,1330,<1342,1344,1347,1349,1365,1367,1379,1380,<1382,1384,1385,1387,1388,1390,1391,1393,Kx1394,1396,1397,1399.Ellipsoid'a: +1296.endಫ: +249,543,545,546,549,550,552,553,657,659,685,734,739,741,743,765,766,770,771,830,>l840,843,864,867,881fe>o,882fe,883,884,885,l886,898,900,914,988,990,997,1123,1127,<1259,1287,1290,1302,1308,1342,1344,1347,<1349,1365,1367,1380,1382,1384,1385,1387,<1388,1390,1393,1396,1399,1418,1424,1433,1461,1465,1474,1478,1488.end g: 49 fe ,U50Ufe -W,U1501.endl«: -44,46,48,50,85,87,89,91,93,148,151,153,182,183,185,186,249,318,346,380,382,383,385,387,388,400,401,405,434,446,448,452,464,519,521,522,536,537,538,541,548,551,>l552,561,572,574,603,605,606,609,641,>l646,776,802,807,824,840,842,843,844,>l847,849,867,886,895,903,911,919,924,>l946,954,955,957,958,959,960,965,986,K987,993,1105,1122,1140,1142,1168,1171,<1174,1178,1179,1180,1181,1183,1188,1223,<1224,1254,1263,1279,1282,1285,1303,1312,<1325,1337,1365,1367,1377,1380,1383,1428,1439,1483,1503,1507,1508.epicycloidffp}'atternff1W7: -1281 -fe,1282fe,1283.epicycloidffp}'atternff3W7: -1281,1284fe,1285fe.eps!«: +W,U1506.endl«: +44,46,48,50,85,87,89,91,93,148,151,153,182,183,185,186,249,318,346,380,382,383,385,387,388,400,401,405,434,446,448,452,464,519,521,522,536,537,538,541,548,551,552,561,572,574,603,605,606,609,641,646,776,802,807,824,840,842,843,844,847,849,>l867,886,898,906,914,922,927,949,957,>l958,960,961,962,963,968,989,990,996,1110,1127,1145,1147,1173,1176,1179,1183,<1184,1185,1186,1188,1193,1228,1229,1259,<1268,1284,1287,1290,1308,1317,1330,@P1342,<1370,1372,1382,1385,1388,1433,1444, 1488,1508,1512,1513,1515,1516. kepicycloidffp}'atternff1L۫: +1286 +fe,1287fe,1288.epicycloidffp}'atternff3L۫: +1286,1289fe,1290fe.epsf: 137 -fe,.151.fe1,.153.fe,.156.fe,.161.fe,.162,163,164,305fe1,401fe#,A405AfeD,A515,516,517fe,521,522.epsilono: -15,24,135,136,137,138fe,139,150,151,@P153,156,161,305,308fe,401,405,498,499,515, 517,l606,624,633,634,945,946,993,1121,1122,<1162,1163,1172,1188,1251,1253,1254. er}'ase >ӫ: +fe,.151.fe1,.153.fe,.156.fe,.161.fe,.162,163,164,305fe1,401টfe,A405AfeD,A515,516,517fe,521,522.epsilonO: +15,24,135,136,137,138fe,139,150,151,>l153,156,161,305,308fe>o,401,405,498,499,>l515,517,606,624,633,634,948,949,996,1082,1083,1126,1127,1167,1168,1177,1193,[1256,1258,1259.er}'ase >ӫ: 43.exchangeffxffz-: -901 -fe,903.exchangeffyffz-#: -901 +904 +fe,906.exchangeffyffz-#: +904 fe.exit: -1503,6\1509.extr}'act: +1508,c1515,1516.extr}'act: 200 -fe,*442*fe*,*443*fe,*457,549,839fe*,840fe,841, 856,g1359gfek,g1360gfe,g1374.extr}'emesH: +fe,*442*fe*,*443*fe,*457,549,839fe*,840fe,841,856,g1364gfek,g1365gfe,g1379.extr}'emesH: 549,ĵ550ĵfeĸ,ĵ551.ऱfي: +16 +fe +,~)200~)fe~,,~)210~)fe,~)253~)fe,~)312~)fe,~)313~)fe,~)314~)fe,~)315~)fe,~)317~)fe,~)318~)fe,319টfe,>l320>lfe>o,>l322>lfe,>l323>lfe,>l324>lfe,>l325>lfe,>l327>lfe,>l328>lfe,>l329>lfe,330টfe,>l332>lfe>o,>l333>lfe,>l334>lfe,>l335>lfe,>l337>lfe,>l338>lfe,>l339>lfe,>l340>lfe,398টfe,>l399>lfe>o,>l402>lfe,>l431>lfe,>l432>lfe,>l442>lfe,>l443>lfe,>l472>lfe,>l548>lfe,563টfe,>l566>lfe>o,>l568>lfe,>l570>lfe,>l636>lfe,>l742>lfe,>l743>lfe,>l839>lfe,>l840>lfe,866টfe,867fe,1341fe ,1342fe,1364fe,1365fe.fabsv: +135,137,151,153,156,162,163,164,183,305,>l401,405,499,516,521,522,605,624,634,636,949,968,996,1083,1127,1134,1168,1177,1183,1193,1256,1258,1259.fac}'effradius%4: +1431 +fe,1440,1443,1457,1460,1471,1474,s1485,1488.fac}'es *4: +1405 +fe,1416,1418,1420,1440,1443,1457,1460,Kx1471,1474,1485,1488.factor䂫: 200 -fe,&`210&`fe&c,&`253&`fe,&`312&`fe,&`313&`fe,&`314&`fe,&`315&`fe,&`317&`fe,&`318&`fe,&`319&`fe,320টfe,>l322>lfe>o,>l323>lfe,>l324>lfe,>l325>lfe,>l327>lfe,>l328>lfe,>l329>lfe,>l330>lfe,332টfe,>l333>lfe>o,>l334>lfe,>l335>lfe,>l337>lfe,>l338>lfe,>l339>lfe,>l340>lfe,>l398>lfe,399টfe,>l402>lfe>o,>l431>lfe,>l432>lfe,>l442>lfe,>l443>lfe,>l472>lfe,>l548>lfe,>l563>lfe,566টfe,>l568>lfe>o,>l570>lfe,>l636>lfe,>l742>lfe,>l743>lfe,>l839>lfe,>l840>lfe,>l866>lfe,867টfe,[R1336[Rfe[V,[R1337[Rfe,[R1359[Rfe,[R1360[Rfe.fabsv: -135,137,151,153,156,162,163,164,183,305,>l401,405,499,516,521,522,605,624,634,636,946,965,993,1122,1129,1163,1172,1178,Kx1188,1251,1253,1254.fac}'effradius%4: -1426 -fe,1435,1438,1452,1455,1466,1469,s1480,1483.fac}'es *4: -1400 -fe,1411,1413,1415,1435,1438,1452,1455,Kx1466,1469,1480,1483.factor䂫: -200 -fe,"210"fe","253"fe,"254"fe,"304"fe,"305"fe,"312"fe,"313"fe,"314"fe,315টfe,317ҟfe,318ҟfe,319ҟfe,320ҟfe,322ҟfe,323ҟfe,324ҟfe,325ҟfe,327ҟfe,328টfe,329ҟfe,330ҟfe,332ҟfe,333ҟfe,334ҟfe,335ҟfe,337ҟfe,338ҟfe,339ҟfe,340টfe,398ҟfe,399ҟfe,400,402fe,403fe,431fe,432fe,442fe,443fe,472টfe,516,517fe,548fe,549,553,554fe,742fe,743fe,839fe,840টfe,866fe,867fe,964fe,965fe,1336fe,1337fe,1359fe,1360fe.false : -17,e47,49,59,61,64,65,66,69,71,72,74,97,98,99,141,143,159,161,174,182,187,188,209,216,229,248,269,273,274,280,283,287,346,350,351,356,357,380,395,399,401,405,409,411,419,420,431,432,437,439,443,446,448,452,458,461,462,463,464,472,505,507,508,517,518,521,527,529,530,541,546,548,549,550,552,561,573,603,605,607,637,641,644,658,661,664,666,669,671,674,676,678,681,683,685,687,726,743,749,750,775,776,777,794,802,807,824,829,830,831,840,842,>l843,844,847,849,853,857,868,872,873,>l874,875,881,882,894,901,903,908,909,>l917,925,940,941,942,945,946,949,951,l958,965,982,985,993,996,1027,1030,1033,<1037,1039,1059,1062,1067,1072,1074,1102,<1105,1117,1118,1121,1122,1125,1127,1158,<1163,1170,1171,1174,1183,1187,1188,1191,<1192,1198,1199,1208,1209,1235,1238,1243,<1253,1254,1262,1263,1279,1282,1285,1294,<1295,1297,1303,1312,1339,1362,1365,1367,<1371,1375,1377,1379,1380,1382,1383,⹠n썫490INDEXA3DLDFPRÎGx1517n@P1385,<1388,1391,1394,1411,1413,1415,1435, 1438,<1452,1455,1457,1459,1466,1469,1470,1471,1480,1483,1484,1485,1503. Gllffc}'olor(: +fe,"210"fe","253"fe,"254"fe,"304"fe,"305"fe,"312"fe,"313"fe,"314"fe,315টfe,317ҟfe,318ҟfe,319ҟfe,320ҟfe,322ҟfe,323ҟfe,324ҟfe,325ҟfe,327ҟfe,328টfe,329ҟfe,330ҟfe,332ҟfe,333ҟfe,334ҟfe,335ҟfe,337ҟfe,338ҟfe,339ҟfe,340টfe,398ҟfe,399ҟfe,400,402fe,403fe,431fe,432fe,442fe,443fe,472টfe,516,517fe,548fe,549,553,554fe,742fe,743fe,839fe,840টfe,866fe,867fe,967fe,968fe,1341fe,1342fe,1364fe,1365fe.false : +17,e47,49,59,61,64,65,66,69,71,72,74,97,98,99,141,143,159,161,174,182,187,188,209,216,229,248,269,273,274,280,283,287,346,350,351,356,357,380,395,399,401,405,409,411,419,420,431,432,437,439,443,446,448,452,458,461,462,463,464,472,505,507,508,517,518,521,527,529,530,541,546,548,549,550,552,561,573,603,605,607,637,641,644,658,661,664,666,669,671,674,676,678,681,683,685,687,726,743,749,750,775,776,777,794,802,807,824,829,830,831,840,842,843,844,847,849,853,857,868,872,873,874,>l875,881,882,897,904,906,911,912,920,>l928,943,944,945,948,949,952,954, n썷x15253DLDFPRÎGAINDEX495n@P961,~l968,985,988,996,999,1030,1033,1036, 1040,<1042,1062,1065,1070,1075,1077,1083,1107,<1110,1122,1123,1126,1127,1130,1132,1163,<1168,1175,1176,1179,1188,1192,1193,1196,<1197,1203,1204,1213,1214,1240,1243,1248,<1258,1259,1267,1268,1284,1287,1290,1299,<1300,1302,1308,1317,1344,1367,1370,1372,<1376,1380,1382,1384,1385,1387,1388,1390,<1393,1396,1399,1416,1418,1420,1440,1443,<1457,1460,1462,1464,1471,1474,1475,1476,1485,1488,1489,1490,1508. Gllffc}'olor(: 801 fe,j802jfem,j803jfe,j804jfe,j805,806fem,807fe,808fe#,w809wfew. gffnum"Xӫ: 39 fe ,ˮ40ˮfe ˰,ˮ48,50. ll : -553,,801,fe/,,802,fe,,803,fe,,804,fe,,805,966,967,1279,1380,s1381sfew,s1382sfe.FILL\: +553,,801,fe/,,802,fe,,803,fe,,804,fe,,805,969,970,1284,1385,s1386sfew,s1387sfe.FILL\: 199 -fe,]201]fe],]802,859,1380. llffc}'olor%U: +fe,]201]fe],]802,859,1385. llffc}'olor%U: 654 -fe,657,661,664,666,669,671,674,676,>l681,685,686,687,701,703,775,776,801,>l802,806,807,813,821,824,859,864,869, 1279,1380. llffc}'olorffinner@g: -1278 -fe,1279fe. llffc}'olorffiter8z: -1383,1385. llffc}'olorffmiddleFM: -1278 -fe,1279fe. llffc}'olorffouter?;: -1278 -fe,H1279HfeL. llffc}'olorffptr5ȫ: -1383,1385fe. llffc}'olors)m: -1383,G1384GfeK,G1385Gfe. llffdr}'awffvalue>: +fe,657,661,664,666,669,671,674,676,>l681,685,686,687,701,703,775,776,801,>l802,806,807,813,821,824,859,864,869, 1284,1385. llffc}'olorffinner@g: +1283 +fe,1284fe. llffc}'olorffiter8z: +1388,1390. llffc}'olorffmiddleFM: +1283 +fe,1284fe. llffc}'olorffouter?;: +1283 +fe,H1284HfeL. llffc}'olorffptr5ȫ: +1388,1390fe. llffc}'olors)m: +1388,G1389GfeK,G1390Gfe. llffdr}'awffvalue>: 654 fe,3657,661,664,666,669,671,674,>l676,681,693,776,802,807,813,821,824,A859,861,862,863,866,867. llffoutffellipsel955,956,957,958,960,985,987,988,996,1130,1131,1132,1158,1159,1174,1179,1181,Kx1183,1216,1223,1263. rstffp}'ointffptr<: +,+b30,270fe+e,271,355,541,603,633,948,949,>l958,959,960,961,963,988,990,991,999,1135,1136,1137,1163,1164,1179,1184,1186,Kx1188,1221,1228,1268. rstffp}'ointffptr<: 667 fe,672,673fe,674fe,675fe,676fe. rstffr}'ow%v: -1278 -fe,1279fe. xe}'df: -44,h864,1507. o}'at eld&X: -44,M1507. o}'atsT: +1283 +fe,1284fe. xe}'df: +44,h864,1512. o}'at eld&X: +44,M1512. o}'atsT: 12,˺24,138,502. o}'ord: -1180,(/1251.FLT_MAX%FS: +1185,(/1256.FLT_MAX%FS: 7,F416. ush: -32,48,50,106,108,148,151,153,161,174,182,183,184,185,186,188,249,313,318,346,350,351,380,382,383,385,387,388,393,399,400,401,405,411,432,443,446,448,452,458,462,464,472,508,517,519,521,522,530,531,532,533,534,535,536,537,538,540,541,546,548,549,550,551,552,553,561,572,574,603,605,606,607,624,641,644,646,661,664,669,674,678,681,683,685,743,750,765,776,802,807,813,821,824,830,842,843,844,847,849,857,858,859,861,862,863,864,867,873,875,880,883,884,885,886,888,890,894,895,896,897,>l898,900,901,903,909,911,918,919,924,>l930,946,948,951,952,954,955,957,958,>l959,960,962,965,976,978,982,983,@P986,l987,989,991,993,995,996,1030,1031, 1033,<1034,1067,1081,1083,1105,1122,1129,1140,<1142,1163,1168,1172,1174,1175,1177,1178,<1179,1180,1181,1183,1188,1216,1223,1224,<1254,1263,1265,1269,1279,1282,1285,1303,<1312,1325,1337,1339,1360,1362,1365,1367,<1377,1379,1380,1382,1383,1385,1388,1391,<1394,1428,1439,1455,1456,1458,1469,1471,1483,1503,1507,1508,1511. Kfmo}'d `: -965,51285.fmt agst$: -1507.fo}'cus y: +32,48,50,106,108,148,151,153,161,174,182,183,184,185,186,188,249,313,318,346,350,351,380,382,383,385,387,388,393,399,400,401,405,411,432,443,446,448,452,458,462,464,472,508,517,519,521,522,530,531,532,533,534,535,536,537,538,540,541,546,548,549,550,551,552,553,561,572,574,603,@P605,606,607,624,641,644,646,661,664,669, 674,678,681,683,685,743,750,765,776,802,807,813,821,824,830,842,843,844,847,849,857,858,859,861,862,863,864,867,873,875,880,883,884,885,886,889,891,893,897,898,899,900,901,903,904,906,912,914,921,922,927,933,949,951,954,955,957,958,960,961,962,>l963,965,968,979,981,985,986,989,990,~l992,994,996,998,999,1033,1034,1036,1037,<1070,1086,1088,1110,1127,1134,1145,1147,<1168,1173,1177,1179,1180,1182,1183,1184,<1185,1186,1188,1193,1221,1228,1229,1259,<1268,1270,1274,1284,1287,1290,1308,1317,<1330,1342,1344,1365,1367,1370,1372,1382,<1384,1385,1387,1388,1390,1393,1396,1399,<1433,1444,1460,1461,1463,1474,1476,1488,1508,1512,1513,1515,1516,1519. efmo}'d `: +968,51290.fmt agst$: +1512.fo}'cus y: 856.F oQcus: 33 fe -,h4122,200,210,252,253,264,311,312, 313,314,315,317,318,319,320,322,323,324,325,327,328,329,330,332,333,334,335,337,338,>l339,340,397,398,399,402,431,432,442,>l443,453,457,472,547,548,549,552,553,>l556>lfe>o,>l557,558fe,559,560,561fe,563,565,566টfe,>l568,569,570,572,574,575,581,582,584,>l585,586,587,742,743,839,840,844,866,d867,920,1336,1337,1359,1360. KF;o}'cusesP: -122,*920.fo}'cus0Ϋ: -1098 -fe,1104,1105,1115,1140,1142,1162, 1187,[1188,1203,1204.fo}'cus1Ϋ: -1098 -fe,1104,1105,1115,1140,1142,1187,1188,s1203,1204.found: -985 +,h4122,200,210,252,253,264,311,312, 313,314,315,317,318,319,320,322,323,324,325,327,328,329,330,332,333,334,335,337,338,>l339,340,397,398,399,402,431,432,442,>l443,453,457,472,547,548,549,552,553,>l556>lfe>o,>l557,558fe,559,560,561fe,563,565,566টfe,>l568,569,570,572,574,575,581,582,584,>l585,586,587,742,743,839,840,844,866,d867,923,1341,1342,1364,1365. eF;o}'cusesP: +122,*923.fo}'cus0Ϋ: +1103 +fe,1109,1110,1120,1145,1147,1167, 1192,[1193,1208,1209.fo}'cus1Ϋ: +1103 +fe,1109,1110,1120,1145,1147,1192,1193,s1208,1209.found: +988 fe.fourthY: 270 -fe,*271,1179,1181,1183.fr}'ont *5: -930,)985,987,994,1374,1469.ऱg: +fe,*271,1184,1186,1188.fp2: +16 +fe +.fr}'ont *5: +933,)988,990,997,1379,1474.ऱg: 63 fe ,V64Vfe @@ -6941,136 +7039,136 @@ ,V85Vfe ,V88Vfe ,V89Vfe -,V1337VfeZ.getffallffc}'oords/: +,V1342VfeZ.getffallffc}'oords/: 312 fe,313fe,314fe,315fe,432,867.getffaxisffh : -1085 -fe,@1086@fe@,@1128,1129,1131,1132,1147, 1154 fe , 1155 fe, 1156 fe, 1157 fe, 1158,1159,1163,[1172,1178,1251.getffaxisffv>: -1087 -fe,C 1088C feC$,C 1128,1129,1131,1132,1147, 1149 fe , 1150 fe, 1151 fe, 1152 fe, 1158,1159,1163,[1172,1178,1251.getffblueffp}'art,^: +1090 +fe,@1091@fe@,@1133,1134,1136,1137,1152, 1159 fe , 1160 fe, 1161 fe, 1162 fe, 1163,1164,1168,[1177,1183,1256.getffaxisffv>: +1092 +fe,C 1093C feC$,C 1133,1134,1136,1137,1152, 1154 fe , 1155 fe, 1156 fe, 1157 fe, 1163,1164,1168,[1177,1183,1256.getffblueffp}'art,^: 61,093,99fe 0,104,106.getffc}'enter!: -954,!975!fe$,!976!fe,!977!fe,!978!fe,!1079,1122,1134টfe,<1135<fe<,<1136<fe,<1137<fe,<1150,1152,1155,1157,1158,<1159,1173,1174,1177,1188,1214,1223,1224,<1253,1254,1282,1289,1308fe<,1309fe,1325,1438,1446,1456,1460,1469,1471,1473.getffcir}'clex>: -1307.getffcir}'cleffcenter;짫: -1326 -fe,1327fe.getffcir}'cleffptr.: -1307,1310,1311,1313fe,1314fe.getffc}'oecients5: -943 -fe, 7957,1131fe ;,1132fe.getffc}'oord=: -316,317fe,318fe,319fe,320fe,323,325,328,330,333,335,338,340.getffc}'opyX: +957,!978!fe$,!979!fe,!980!fe,!981!fe,!1084,1127,1139টfe,<1140<fe<,<1141<fe,<1142<fe,<1155,1157,1160,1162,1163,<1164,1178,1179,1182,1193,1219,1228,1229,<1258,1259,1287,1294,1313fe<,1314fe,1330,1443,1451,1461,1465,1474,1476,1478.Ƞn썫496INDEXA3DLDFPRÎGx1525n@Pgetffcir}'cle(: +1312. 4[getffcir}'cleffcenterG : +1331 +fe,1332fe.getffcir}'cleffptr9??: +1312,1315,1316,1318fe,1319fe.getffc}'oecients@r: +946 +fe, 7960,1136fe ;,1137fe.getffc}'oord(\: +316,317fe,318fe,319fe,320fe,323,325,328, 330,333,335,338,340.getffc}'opy$ô: 200 -fe,210fe,222,342fe,343fe,471fe,543,545,688টfe,689fe,1304fe,1305fe,1311,1312,1375.getffdiameter,U: -1256 -fe.ݠn썷x15173DLDFPRÎGAINDEX491n@Pgetffdir}'ection7,: +fe,210fe,222,342fe,343fe,471fe,543,545,688fe#,689fe,1309fe,1310fe,1316,1317,1380.getffdiameter7: +1261 +fe.getffdir}'ection7,: 577 -fe. 5getffdistanc}'e4y: -12,3B401,578fe3E,603,604fe,605fe,633fe,634fe, 635fe#,A636AfeD,A637,945,946,951,982.getffelement3#: +fe.getffdistanc}'e4y: +12,3B401,578fe3E,603,604fe,605fe,633fe,634fe,635fe#,A636AfeD,A637,948,949,954,985.getffelement3#: 122,j145jfem,j146jfe,j581,582,584,585.getffellipse,: -1307.getffellipseffc}'enterK: -1328 -fe,w1329wfew.getffellipseffptr=5L: -1307,[1310,1311,1315fe_,1316fe.getffextr}'emes7D`: +1312.getffellipseffc}'enterK: +1333 +fe,w1334wfew.getffellipseffptr=5L: +1312,[1315,1316,1320fe_,1321fe.getffextr}'emes7D`: 200 -fe,444fe,551,845fe,1362,1363fe.getfffo}'cus'A: -1139 -fe,1140fe,1141fe,1142fe,1163.getffgr}'eenffpart=5H: +fe,444fe,551,845fe,1367,1368fe.getfffo}'cus'A: +1144 +fe,1145fe,1146fe,1147fe,1168.getffgr}'eenffpart=5H: 61,$93,98fe &,104,106.getfflastffp}'oint:$>: -716,ܢ721,722,750,889feܥ,890fe,917,918,f919,962,965,981,991,1006,1167,1168,V1211.getffline!O: +716,ܢ721,722,750,892feܥ,893fe,920,921,f922,965,968,984,994,1009,1172,1173,V1216.getffline!O: 309 -fe,594,601fe,603,929fe,930fe.getfflineffswitch?}: -418,̸716,717,721,748,749,876fe#,,4879,917.getffline}'arffeccentricity^: -1143 -fe,6H11446Hfe6L.getffmaximumffzDm}: +fe,594,601fe,603,932fe,933fe.getfflineffswitch?}: +418,̸716,717,721,748,749,876fe#,,4879,920.getffline}'arffeccentricity^: +1148 +fe,6H11496Hfe6L.getffmaximumffzDm}: 200 -fe,447fe,448fe,455,456,552,848fe#,s849sfev,s1366sfew,s1367sfe.getffme}'anffz0 +fe,447fe,448fe,455,456,552,848fe#,s849sfev,s1371sfew,s1372sfe.getffme}'anffz0 : -199,b200bfeb,b449bfe,b450bfe,b552,850feb,851fe,1368fe(,V1369V՟feV.getffmidffp}'oint;k[: -1082 -fe,1083֟fe,1223,1224.getffminimumffzC]ث: -199,Yo200YofeYr,Yo445Yofe,Yo446Yofe,Yo454,456,550,552,{846{fe{,{847{fe,{1364{fe{,{1365{fe.getffname(: -93,102fe,104,776,802,807,824,1377,s1380,1383.getffnet4ȫ: -1426,Y1438,1443fe],1444fe,1446,1455,1457fe(, 1458 fe , 1460,1470fe,1471fe,1473,1478,1483,s1484sfew,s1485sfe.getffnormal0t: +199,b200bfeb,b449bfe,b450bfe,b552,850feb,851fe,1373fe(,V1374V՟feV.getffmidffp}'oint;k[: +1087 +fe,1088֟fe,1228,1229.getffminimumffzC]ث: +199,Yo200YofeYr,Yo445Yofe,Yo446Yofe,Yo454,456,550,552,{846{fe{,{847{fe,{1369{fe{,{1370{fe.getffname(: +93,102fe,104,776,802,807,824,1382,s1385,1388.getffnet4ȫ: +1431,Y1443,1448fe],1449fe,1451,1460,1462fe(, 1463 fe , 1465,1475fe,1476fe,1478,1483,1488,s1489sfew,s1490sfe.getffnormal0t: 513 -fe,e-872,873,874,875,893fee0,894fe,898fe#,~l899,900,945,946,965,1121,1122,1159,1223,Kx1224,1263,1265,1269.getffnumeric}'alffeccentricityq: -1145 -fe,1146fe.getffp}'ath#: +fe,e-872,873,874,875,896fee0,897fe,901fe#,~l902,903,948,949,968,1126,1127,1164,1228,Kx1229,1268,1270,1274.getffnumeric}'alffeccentricityq: +1150 +fe,1151fe.getffp}'ath#: 602 -fe,931fe,1307.getffp}'athffptr4C: -1307,1310,1317fe,1318fe.getffp}'ersp': +fe,934fe,1312.getffp}'athffptr4C: +1312,1315,1322fe,1323fe.getffp}'ersp': 583 fe.getffp}'erspffelementMo: 401,H584HfeH,H585Hfe.getffplane(v: -619,>899>feA,>900>fe,>901,945,946,951,982,993,g1163,1171,1263.getffp}'oint'bH: -716,717,721,722,750,765,887fe,888fe,900,>l919,946,951,954,962,965,981,982,991,1006,1122,1150,1152,1155,1157,1159,1167, 1168,1173,1174,1177,1178,1179,1188,<1211,1214,1216,1223,1224,1279,1438,1444,<1446,1455,1456,1458,1460,1469,1471,1473,[1483,1485,1486.getffp}'olygonffcenterP_: -1324.getffp}'osition3x: +619,>902>feA,>903>fe,>904,948,949,954,985,996,g1168,1176,1268.getffp}'oint'bH: +716,717,721,722,750,765,888fe,889fe,890fe#,>l891>lfe>o,>l903,922,949,954,957,965,968,984,K985,994,1009,1083,1127,1155,1157,1160,<1162,1164,1172,1173,1178,1179,1182,@P1183,<1184,1193,1216,1219,1221,1228,1229, 1284,<1443,1449,1451,1460,1461,1463,1465,1474,1476,1478,1488,1490,1491. 4[getffp}'olygonffcenterE@: +1329.getffp}'osition(X: 576 -fe.getffr}'adius+߫: -1042 -fe,1255џfe.getffr}'ectangle7{: -1307.getffr}'ectangleffcenterV: -1330 -fe,S1331SfeS.getffr}'ectangleffptrHS : -1307,k1310,1319feo,1320fe.@Pgetffr}'edffpart(_: +fe.getffr}'adius ܃: +1045 +fe,1260џfe.getffr}'ectangle,: +1312.getffr}'ectangleffcenterK: +1335 +fe,S1336SfeS.getffr}'ectangleffptr=3ī: +1312,k1315,1324feo,1325fe.getffr}'edffpart(_: 61,=93,97fe -=,104,106. 2Ѝgetffr}'egffpolygon62: -1307.getffr}'egffpolygonffcenterUS: -1332 -fe,113331fe1.getffr}'egffpolygonffptrGϫ: -1307,I1310,1321feM,1322fe.getffshap}'ec: -1307.getffshap}'effcenterl373,378,379,395,437,463,464,472,476,>l498,500,502,516,566,568,606,644,731,736,843,946,954,1015,1020,1122,1175,1176,Kx1201,1206,1279,1485.getffy T: +264,z&310,316,322fez),323fe,324fe,325fe,349,371,372,>l373,378,379,395,437,463,464,472,476,>l498,500,502,516,566,568,606,644,731,736,843,949,957,1018,1023,1127,1180,1181,Kx1206,1211,1284,1490.getffy T: 327 -fe,328fe,329fe,330fe,349,371,372,373,378,>l379,395,437,463,464,472,476,498,500,>l502,516,566,568,606,644,731,736,843,K946,954,1015,1020,1175,1176,1201,1206,[1458,1469,1471.getffz +fe,328fe,329fe,330fe,349,371,372,373,378,>l379,395,437,463,464,472,476,498,500,>l502,516,566,568,606,644,731,736,843,K949,957,1018,1023,1180,1181,1206,1211,[1463,1474,1476.getffz 襫: 332 -fe,333ޟfe,334ޟfe,335ޟfe,349,371,372,373,378,379,383,463,464,476,498,500,502,516,566,568,l606,644,731,736,843,946,954,1015,1020,1122,1175,1176,1201,1206.getchar: -182,@249,458,644,685,858,863,869,,4911,946.getoptfflongffonly;: -1503.gr}'ay: +fe,333ޟfe,334ޟfe,335ޟfe,349,371,372,373,378,379,383,463,464,476,498,500,502,516,566,568,l606,644,731,736,843,949,957,1018,1023,1127,1180,1181,1206,1211.getchar: +182,@249,458,644,685,858,863,869,,4914,949.getoptfflongffonly;: +1508.gr}'ay: 108,112fe,113fe.gr}'een ű: -108,112ӟfe,113ӟfe,1282,1438,1456,1500.gr}'eenffpart!0: +108,112ӟfe,113ӟfe,1287,1443,1461,1505.gr}'eenffpart!0: 56 fe ,59,61,64,66,69,71,74,75,76,"85,89,98.gr}'eenffyellow+8: -108,:112:fe:,:113:fe,:1500.ऱh: -1414 -fe,[1415[fe[.hfflength: -1223 -fe,~1224~fe.halfZ:: -33,963,966fe.HAVE_FLOAT_H4f: +108,:112:fe:,:113:fe,:1505.ऱh: +1419 +fe,[1420[fe[.hfflength: +1228 +fe,~1229~fe.halfZ:: +33,966,969fe.HAVE_FLOAT_H4f: 7.HAVE_LIMITS_H9: -7.HAVE_STDLIB_H9: -7.height%: -1408 -fe,J1415,1421.helpffc}'olor : +7.6n썷x15253DLDFPRÎGAINDEX497n@PHAVE_STDLIB_HDA: +7. SheightEK: +1413 +fe,J1420,1426.helpffc}'olor+t: 112 -fe,113fe,115,427,428,429,654fe,655টfe,793,795,1446.helpffc}'olorffvector>9w: +fe,113fe,115,427,428,429,654fe, 655fe#,793,795,1451.helpffc}'olorffvectorIXӫ: 115 -fe,116fe.helpffdashffp}'atternA: +fe,116fe.helpffdashffp}'atternL;s: 654 -fe,655fe,793,795.HELP_INDEX): -1503 -fe.hexffp}'atternff10[: -1275,Q1278QfeQ,Q1279Qfe.hexffp}'attern1,: -397.--n썫492INDEXA3DLDFPRÎGx1517n@Phexagonffctr43T: -1279 -fe. +hexagonffdiameterND[: -1483 -fe,1484fe,1485fe.hexagonffr}'adiusBA: -1476 -fe,;1480,1483.hi 4: +fe,655fe,793,795.HELP_INDEX5J: +1508 +fe.hexffp}'atternff1;{[: +1280,Q1283QfeQ,Q1284Qfe.hexffp}'attern17H: +397.hexagonffctr43T: +1284 +fe.hexagonffdiameterND[: +1488 +fe,1489fe,1490fe.hexagonffr}'adiusBA: +1481 +fe,;1485,1488.hi 4: 181,$ 182$ fe$#,$ 184.horizontal,c: 400 fe.hr @@ -7079,255 +7177,261 @@ fe, 3184,185.hv Ln: 182 fe,jV186.iq: -22 +16 fe -,47ȟfe - ,48ȟfe -,49ȟfe -,50ȟfe -,127ȟfe,131ȟfe,133ȟfe,137ȟfe,141ȟfe,143ȟfe, 148fe#,>l161>lfe>o,>l164>lfe,>l172>lfe,>l174>lfe,>l182>lfe,>l303>lfe,>l305>lfe,>l395>lfe,399fe#,>l405>lfe>o,>l452>lfe,>l486>lfe,>l495>lfe,>l508>lfe,>l551>lfe,>l828>lfe,>l840>lfe,843fe#,l844lfeo,l881lfe,l885lfe,l886lfe,l954lfe,l965lfe,l1031lfep,l1062lfe,1105fe(,<1122<fe<,<1174<fe,<1180<fe,<1254<fe,<1279<fe,<1282<fe,<1337<fe,1362fe(,<1415<fe<,<1438<fe,<1444<fe,<1446<fe,<1455<fe,<1458<fe,<1460<fe,1469fe(,1470fe,1471fe,1473fe,1483fe,1485fe. +iffmaxc: -1279 +,22fe + ,47fe +,48fe +,49fe +,50fe +,127fe,131fe,133fe,137fe,141fe,143fe#,148ҟfe,161ҟfe,164ҟfe,172ҟfe,174ҟfe,182ҟfe,303ҟfe,305ҟfe,395ҟfe,399fe#,>l405>lfe>o,>l452>lfe,>l486>lfe,>l495>lfe,>l508>lfe,>l551>lfe,>l828>lfe,>l840>lfe,843fe#,l844lfeo,l881lfe,l885lfe,l886lfe,l957lfe,l968lfe,l1034lfep,l1065lfe,1110fe(,<1127<fe<,<1179<fe,<1185<fe,<1259<fe,<1284<fe,<1287<fe,<1342<fe,1367fe(,<1420<fe<,<1443<fe,<1449<fe,<1451<fe,<1460<fe,<1463<fe,<1465<fe,1474fe(,1475fe,1476fe,1478fe,1488fe,1490fe.iffmaxc: +1284 fe.iffmin8: -1279 +1284 fe.Icosahedron<ϫ: -658,J1424,1462feN,1463,1465,1466fe, 1468,[1469[fe_,[1471,1473.IDENTITY_TRANSFORM_2: +658,J1429,1467feN,1468,1470,1471fe,1473,[1474[fe_,[1476,1478.IDENTITY_TRANSFORM_2: 191 fe,V192VfeV.ifstream)x֫: 39,'40.inffangle$: -1180 +1185 fe.inffcir}'cle$I: -1021,C1044CfeC,C1265Cfe,C1267.inffdistanc}'e0h: -1223 +1024,C1047CfeC,C1270Cfe,C1272.inffdistanc}'e0h: +1228 fe.inffellipse(V: -1091 -fe,1224fe,1226.inffr}'ectangle3*: -1215 -fe,js1216jsfejw,js1220.inffstr}'eam*$-: +1096 +fe,1229fe,1231.inffr}'ectangle3*: +1220 +fe,js1221jsfejw,js1225.inffstr}'eam*$-: 39 fe ,40fe -,42,44,1510,1511.inffstr}'eamffnameEQ: +,42,44,1518,1519.inffstr}'eamffnameEQ: 42 fe ,$43$fe &,$44.initializeffc}'olorsC: 107 -fe,=108=fe@,=112,1511.initializeffio2: +fe,=108=fe@,=112,1519.initializeffio2: 42 fe ,Wp43Wpfe -Wr,Wp1510,1511.innerffcir}'cle32: -1282 -fe,1285fe.internalffangle=5: -1022 -fe,1024,1030,1031.interse}'ctionffctrD"8: -1180 -fe,Q1181.interse}'ctionfflineG: -594,643fe,644fe,996,1183.interse}'ctionffpointM֫: -33,H272,527,528feH,529fe,530fe,603fe#,>l604,640fe>o,641fe,642fe,917fe,918fe,919fe,950,960,985,987,994,1439,1445,1446.interse}'ctionffpointsQ߫: -268,528,644,949,950fe,951fe,961fe#,962ҟfe,981ҟfe,982ҟfe,988,990fe,991fe,992fe,993fe,996,1159,<1165<fe<,<1166<fe,<1167<fe,<1168<fe,<1169,1170fe<,1171fe,1174,<1183,1184,1216,1223,1257,1258fe<,1259fe,1260fe(,1261fe,1262fe,1263fe,1427fe,1428fe.intsn: -667.INVALID_BOOL_POINT_2: -271,B273,274feB,275fe,536,540,T541,603,641,918,919.INVALID_BOOL_POINT_PAIRyF#: +Wr,Wp1518,1519.innerffcir}'cle32: +1287 +fe,1290fe.internalffangle=5: +1025 +fe,1027,1033,1034.interse}'ctionffctrD"8: +1185 +fe,Q1186.interse}'ctionfflineG: +594,643fe,644fe,999,1188.interse}'ctionffpointM֫: +33,H272,527,528feH,529fe,530fe,603fe#,>l604,640fe>o,641fe,642fe,920fe,921fe,922fe,953,963,988,990,997,1444,1450,1451.interse}'ctionffpointsQ߫: +268,528,644,952,953fe,954fe,964fe#,965ҟfe,984ҟfe,985ҟfe,991,993fe,994fe,995fe,996fe,999,1164,<1170<fe<,<1171<fe,<1172<fe,<1173<fe,<1174,1175fe<,1176fe,1179,<1188,1189,1221,1228,1262,1263fe<,1264fe,1265fe(,1266fe,1267fe,1268fe,1432fe,1433fe.intsn: +667.@PINVALID_BOOL_POINTS֫: +271,B273,274feB,275fe,536, 540,T541,603,641,921,922. ?INVALID_BOOL_POINT_PAIRn&ǫ: 274 -fe,275fe",951,952,959,9960,962,982,983,986,991,1168.INVALID_BOOL_POINT_QUADRUPLE: +fe,275fe",954,955,962,9963,965,985,986,989,994,1173.INVALID_BOOL_POINT_QUADRUPLEf: 274 -fe,275fe ,1171,1174,1177,1179,1180,1181,1182,1263.INVALID_BOOL_REAL_POINTyF#: +fe,275fe ,1176,1179,1182,1184,1185,1186,1187,1268.INVALID_BOOL_REAL_POINTn&ǫ: 274 -fe,275fe,606.INVALID_LINE?D: +fe,275fe,606.INVALID_LINE4f: 610 -fe,A611AfeD,A644,929,930.INVALID_PATH?D: -883.@PINVALID_PLANE9: -619,a623,646,647fed,648fe,900, 901,w946. =INVALID_POINT9: -24,269,273,274fe,275fe,350,432,462,>l507,508,518,527,536,541,603,605,607,>l610,623,624,641,647,873,888,890,893,>l894,895,897,898,900,948,949,952,955,>l956,957,958,976,978,983,985,996,1081,<1083,1121,1122,1140,1142,1158,1159,1174,<1179,1183,1187,1216,1324,1325,1435,1451,[1452,1466,1480.INVALID_REAL4f: -12,e15efe - g,e16efe -,e24,25,27fe - g,30,191,273,274,318,346,347,349,350,351,355,382,385,387,401,452,503,505,518,533,534,535,536,538,539,540,541,623,624,842,844,879,880,943,l944,946,955,956,957,958,1147,1150,1152,<1155,1157,1163,1178,1179,1187,1188,1435,1451,1452,1466,1480,1509.INVALID_REAL_PAIRN٫: +fe,A611AfeD,A644,932,933.INVALID_PATH4f: +883.INVALID_PLANE9: +619,a623,646,647fed,648fe,903,904,w949.INVALID_POINT9: +24,269,273,274fe,275fe,350,432,462,>l507,508,518,527,536,541,603,605,607,>l610,623,624,641,647,873,889,891,893,>l896,897,898,900,901,903,951,952,955,>l958,959,960,961,979,981,986,988,999,1086,1088,1126,1127,1145,1147,1163,1164,<1179,1184,1188,1192,1221,1329,1330,1440,Kx1456,1457,1471,1485.INVALID_REAL4f: +12,e15,16fe + g,24,25,27fe +,30,191,273,274,318,346,347,349,350,351,355,382,385,387,401,452,503,505,518,533,534,535,536,538,539,540,541,623,624,842,844,879,880,946,l947,949,958,959,960,961,1152,1155,1157,<1160,1162,1168,1183,1184,1192,1193,1440,<1456,1457,1471,1485,1514,1515,1516.INVALID_REAL_PAIRN٫: 25 fe ,0&270&fe -0(,0&1129.INVALID_REAL_SHORTS֫: +0(,0&1134.INVALID_REAL_SHORTS֫: 24,?25?fe ?,?27?fe .INVALID_TRANSFORMN٫: -24,r183,191feu,192fe,716,717,722,{748,750,1006,1211.inverse+: +24,r183,191feu,192fe,716,717,722,{748,750,1009,1216.inverse+: 181 -fe,182fe,187fe,188fe,395,561,572,958,1177,Kx1223,1224,1265,1269.invert̫: +fe,182fe,187fe,188fe,395,561,572,961,1182,Kx1228,1229,1270,1274.invert̫: 187.iosy߫: -44,b1507.iosffb}'ase: -44.isffcir}'cular": -1253 -fe,Y1254Yfe].isffcubicȫ: -941 -fe,311243fe7,311253fe.isffcycle/: -763,864,877fe,909.isffellipser: -1147.isffelliptic}'al%:: -1121 -fe,1122鉟fe,1150,1152,1155,1157,1187,s1188,1189.isffidentity"F: +44,b1512.iosffb}'ase: +44.ip2: +16 +fe +.isffcir}'cular": +1258 +fe,Y1259Yfe].isffcubicȫ: +944 +fe,311293fe7,311303fe.isffcycle/: +763,864,877fe,912.isffellipser: +1152.isffelliptic}'al%:: +1126 +fe,1127鉟fe,1155,1157,1160,1162,1192,s1193,1194.isffidentity"F: 140 fe,141fe,142fe,143fe,174,283,307fe,399,405,472,549,553.isffinfftriangle.pE: 357 -fe,901fe,988.isffline: +fe,904fe,991.isffline: 876,3879.isffline}'ar!: -716,721,722,749,750,874fe,875fe,876,879,l880,917,918,919,930,962,991,1006,1167,s1168,1211.isffonfffr}'eeffstore7[y: +716,721,722,749,750,874fe,875fe,876,879,l880,920,921,922,933,965,994,1009,1172,s1173,1216.isffonfffr}'eeffstore7[y: 95 fe -,(200(fe+,(344(fe,(685,687,698,703,871টfe, 1334 fe , 1335 fe.isffonffline;: -349,354fe,355fe.isffonffplane&c~: +,(200(fe+,(344(fe,(685,687,698,703,871টfe, 1339 fe , 1340 fe.isffonffline;: +349,354fe,355fe.`ڠn썫498INDEXA3DLDFPRÎGx1525n@Pisffonffplane1ګ: 356 -fe,J637JǟfeJ,J901,1163.isffonffse}'gment2: +fe,J637JǟfeJ,J904,1168. 4[isffonffse}'gment=5O: 349 -fe,350fe,352fe,353fe,355,541,603,958,T960,985,987,988,996.isffop}'en쪫: -106,&108.isffplanar3: +fe,350fe,352fe,353fe,355,541,603, 961,T963,988,990,991,999.isffop}'en : +106,&108.isffp}'arallel+p: +1082.isffplanar(&: 872 -fe,+873+fe.,+898,939,1041,1253,1254,1265,V1269.isffquadr}'atic(Ș: -940 -fe,957,1123fe.isffquartic: -942 -fe, 1126 fe , 1127 fe.ise}'ctfflineԳ: -1183 -fe.ISO': +fe,+873+fe.,+901,942,1044,1083,1258,1259,s1270,1274.isffquadr}'atic3: +943 +fe,960,1128fe.isffquartic*1: +945 +fe, 1131 fe , 1132 fe.isffr}'ectangular<: +1082 +fe,1083fe.ise}'ctffline': +1188 +fe.ISOF_: 211 -fe,Y212YfeY.Vn썷x15173DLDFPRÎGAINDEX493n@Piter: -249,543,545,546,549,550,551,552,659, 685,734,739,741,743,765,766,770,771,830,840,l843,895,897,911,985,987,994,1118,1122,<1254,1282,1297,1303,1337,1339,1342,1344,<1360,1362,1375,1377,1379,1380,1382,1383,<1385,1386,1388,1389,1391,1392,1394,1413,1419,1456,1460,1469,1473,1483. 9iterffctr : -1285 +fe,Y212YfeY.iter: +249,543,545,546,549,550,551,552,659,685,734,739,741,743,765,766,770,771,830,840,l843,898,900,914,988,990,997,1123,1127,<1259,1287,1302,1308,1342,1344,1347,1349,<1365,1367,1380,1382,1384,1385,1387,1388,<1390,1391,1393,1394,1396,1397,1399,1418,1424,1461,1465,1474,1478,1488.iterffctr : +1290 fe.iter}'ator" : -249,546,549,553,659,685,734,739, 741,~l743,840,843,859,911,1282,1285,1303,1339,<1342,1344,1360,1362,1375,1419,1428,1456,Kx1460,1469,1473,1483. 9iter0.: -1428.iter1.: -1428.jī: +249,546,549,553,659,685,734,739,741,~l743,840,843,859,914,1287,1290,1308,1344,<1347,1349,1365,1367,1380,1424,1433,1461,Kx1465,1474,1478,1488.iter0.: +1433.iter1.: +1433.jī: 127 -fe,J131J՟feJ,J133J՟fe,J137J՟fe,J141J՟fe,J143J՟fe,J148J՟fe,J172J՟fe,J174J՟fe,J182J՟fe, 399fe#,d405dfeg,d452dfe,d1279dfeh,d1282dfe,d1458dfe,d1471dfe.kV: +fe,J131J՟feJ,J133J՟fe,J137J՟fe,J141J՟fe,J143J՟fe,J148J՟fe,J172J՟fe,J174J՟fe,J182J՟fe,399fe#,d405dfeg,d452dfe,d1284dfeh,d1287dfe,d1463dfe,d1476dfe.kV: 174 -fe,!{182!{fe!~,!{1279!{fe!.killfflab}'els)L: +fe,!{182!{fe!~,!{1284!{fe!.killfflab}'els)L: 231 fe,232fe.known̫: -1128 -fe,1129fe,1130.l.:: +1133 +fe,1134fe,1135.l.:: 597 -fe,598۟fe,599۟fe,600۟fe,601۟fe,604۟fe,605۟fe,996۟fe.lffp }-: +fe,598۟fe,599۟fe,600۟fe,601۟fe,604۟fe,605۟fe,999۟fe.lffp }-: 603 fe.lffq ;9: 603 fe.lab}'elt: 207, -209,227fe ,228fe,264,265,461fe,462fe,463fe,464fe#,>l465,467,469,828,829fe>o,830fe,831fe,832fe,835,K920,925,1117feO,1118fe,1119,1438,1446,1460,[1469,1471,1473.LabQelAc: +209,227fe ,228fe,264,265,461fe,462fe,463fe,464fe#,>l465,467,469,828,829fe>o,830fe,831fe,832fe,835,K923,928,1122feO,1123fe,1124,1443,1451,1465,[1474,1476,1478.LabQelAc: 208 -fe,K209,210,216,222,227,228,264,461,>l462,470fe>o,471,472,543,545,546,553,830,920,1118.LabQels ʟ: +fe,K209,210,216,222,227,228,264,461,>l462,470fe>o,471,472,543,545,546,553,830,923,1123.LabQels ʟ: 196,207,208,209,216,552.lab}'elsT: 216 fe,221,228,232,249,462fe,543,545,546,,4548,553.lamb}'dao: -903 +906 fe.lamb}'daffdenominatorZ~: -901 -fe,e903.lastffc}'onnector> Ы: +904 +fe,e906.lastffc}'onnector> Ы: 763 -fe,2U764,770fe2X,910fe.lbl Aj: +fe,2U764,770fe2X,913fe.lbl Aj: 462 fe,471fe,543fe.LDF_GCC_2_95?D: -5,L6,7,8,21,22,1506.LDF_GCC_3_3:FG: +5,L6,7,8,21,22,1511.LDF_GCC_3_3:FG: 5,6,7fe .LDF_PUBLIC5J: 5,"7"Пfe ".LDF_REAL_DOUBLEOF;: 12 fe -,|16.LDF_REAL_FLOATJ>: +,M16,1515,1516.@PLDF_REAL_FLOAT>: 12 fe -,16.left : -148.leftffshift%V: -1279 -fe.lightffgr}'ay*ګ: -108,)112)fe,,)113)fe.limit: +,cV16,1515. 1]leftᰫ: +148.leftffshift7: 1284 -fe,'X1285'Xfe'\.LineX: +fe.lightffgr}'ay~: +108,)112)fe,,)113)fe.limit +: +1289 +fe,'X1290'Xfe'\.Line 9': 33 fe -,޼272,309,528,591,593fe޿,594,595,596fe#,>l597,598fe>o,599,600,601,602,603,604,605,>l609,610,611,643,644,662,917,929,930,931,996,1183.lineffswitch/: +,޼272,309,528,591,593fe޿,594,595, 596টfe,>l597,598fe>o,599,600,601,602,603,604,605,>l609,610,611,643,644,662,920,932,933,934,999,1188. 1]lineffswitch$e: 654 -fe,r 657,661,664,666,669,671,674,676,874,875,876,1027,1037,1039,1059, 1062,1067,1072,1074,1102,1105,@P1235,s1238,1243. +1line}'arffeccentricityC: -1098 -fe,|1104,1105,1144, 1187,V1188.Linesc: -528,n591,594,603,949,1170.lo}'caltime7: -43.lo}'cation!: -945 -fe,S946SfeS,S950,960,1162feS,1163fe,1179,1180,V1183.lo}'cationffswitch6%~: -1180 -fe.longffoptions+6: -1503 -fe.lo}'opffctrT: +fe,r 657,661,664,666,669,671,674,676,874,875,876,1030,1040,1042,1062, 1065,1070,1075,1077,1107,1110,1240,s1243,1248.line}'arffeccentricityC: +1103 +fe,|1109,1110,1149,1192,V1193.Linesc: +528,n591,594,603,952,1175.lo}'caltime7: +43.lo}'cation!: +948 +fe,S949SfeS,S953,963,1167feS,1168fe,1184,1185,V1188.lo}'cationffswitch6%~: +1185 +fe.longffoptions+6: +1508 +fe.lo}'opffctrT: 867 -fe.lt7 : +fe.lt7 : 43 fe -.ऱMN: -1223 -fe,K1224KfeK.ऱm[: +.ऱMN: +1228 +fe,K1229KfeK.ऱm[: 345 -fe,'#346'#fe'&,'#508'#fe.mag): +fe,'#346'#fe'&,'#508'#fe.mag): 505 -fe,1163fe,1253fe,1254fe.magenta2: -108,112fe ,113fe,1456,1500.magnitude#: -388,502fe,503fe,505,507,508,557,605,946,1067,1122,1150,1152,1155,1157,1162, 1163,1188,1223,1224,1253,1254,1263,s1265,1439.mag0 {: -1253 -fe,1254fe.main "): -1509 -fe.makefftabs!: -1445 -fe,1446fe,1459fe,1460fe,1472fe,1473fe.Matrixnw: +fe,1168fe,1258fe,1259fe.magenta2: +108,112fe ,113fe,1461,1505.magnitude#: +388,502fe,503fe,505,507,508,557,605,949,1070,1127,1155,1157,1160,1162,1167, 1168,1193,1228,1229,1258,1259,1268,s1270,1444.mag0 {: +1258 +fe,1259fe.main "): +1514 +fe.makefftabs!: +1450 +fe,1451fe,1464fe,1465fe,1477fe,1478fe.Matrixnw: 12 fe -,122,171,174.matrix ?: +,122,171,174.matrix ?: 122 -fe,0126,127,128,129,130,131,133,135,136,137,138,141,143,146,148,151,153,156,>l158,159,162,163,164,172,174,182,183,A184,185,186,405,581,584.max?: -15,182fe,183,843,1159,1162,1163,1174,1263,V1362.maxffaxO: -1163 -fe.maxffhexagons2B: -1278 -fe,1279fe.MAX_REALf: -12,15fe -,16fe -,24,25,27fe -,503,843,844,gK1509.MAX_REAL_SQRT9: +fe,0126,127,128,129,130,131,133,135,136,137,138,141,143,146,148,151,153,156,>l158,159,162,163,164,172,174,182,183,A184,185,186,405,581,584.max?: +16,182fe,183,843,1164,1167,1168,1179,1268,V1367.maxffaxO: +1168 +fe.maxffhexagons2B: +1283 +fe,1284fe.MAX_REALf: +12,15,16fe + ,24,25,27fe +,503,843,844,1514,s1515,1516.MAX_REAL_SQRT9: 24,25fe ,26fe ,27fe -,503.maxffxffpr}'oj%: -252,h253hfek,h254hfe,h547,548fek,551,554fe.maxffyffpr}'oj% : +,503.maxffxffpr}'oj%: +252,h253hfek,h254hfe,h547,548fek,551,554fe.maxffyffpr}'oj% : 253 -fe,254fe,548fe,551,554fe.MAX_Z: +fe,254fe,548fe,551,554fe.MAX_Z: 213 -fe,214ǟfe,253,254,453,547,552.maxffzffpr}'oj%4ʫ: +fe,214ǟfe,253,254,453,547,552.maxffzffpr}'oj%4ʫ: 253 -fe,k254kfen,k548kfe,k551,554fen.MEAN_Z: +fe,k254kfen,k548kfe,k551,554fen.MEAN_Z: 213 -fe,214fe,453,552.me}'asurementffunitsH7x: +fe,214fe,453,552.me}'asurementffunitsH7x: 264 -fe,s265sfev,s437,458,472.me}'diate: +fe,s265sfev,s437,458,472.n썷x15253DLDFPRÎGAINDEX499n@Pme}'diate"u: 511 -fe,512fe,1067,1082,1083,1265,1438,1440,Kx1446,1456,1469,1473.midffp}'oint C: -1082.midffptT: -1265 -fe.min: -15,q843,1263,1362.MIN_REALf: -843,844.minffxffpr}'oj$: -252,253fe,254fe,547,548fe,551,554fe.minffyffpr}'oj$h: +fe,512fe,1070,1087,1088,1270,1443, 1445,Kx1451,1461,1474,1478. +1midffp}'oint+7: +1087.midffpt: +1270 +fe.min%: +15,q843,1268,1367.MIN_REAL*P: +843,844.minffxffpr}'oj/N: +252,253fe,254fe,547,548fe,551,554fe.minffyffpr}'oj0ī: 253 -fe,Z254Zfe],Z548Zfe,Z551,554fe].MIN_Z: +fe,Z254Zfe],Z548Zfe,Z551,554fe].MIN_ZY: 213 -fe,\214\fe\,\453,547,552.minffzffpr}'oj$%%: +fe,\214\fe\,\453,547,552.minffzffpr}'oj/D: 253 -fe,254ȟfe,548ȟfe,551,554fe.mo}'dify&: +fe,254ȟfe,548ȟfe,551,554fe.mo}'difyF: 84 fe ,L85Lʟfe -L.moveffb}'ack#: -1279 -fe.Dn썫494INDEXA3DLDFPRÎGx1517n@Pmuҙ: -903 -fe. 4[muffdenominatorI=: -901 -fe,O903.mx+: +L.moveffb}'ack.': +1284 +fe.muҙ: +906 +fe.muffdenominatorI=: +904 +fe,O906.mx+: 644 fe.mymګ: 644 @@ -7344,126 +7448,126 @@ ,j182jfej,j345jfe,j346jfe,j623jfe,j624jfe.name: 56 fe -,59,61,64,66,67,69,71,74,75, 81,102,106,1503.newffc}'oordinatesFNP: +,59,61,64,66,67,69,71,74,75,81,102,106,1508.newffc}'oordinatesFNP: 405 fe.newffshap}'effptr=: 32.nnumb}'erffofffpointsP_: -1104 -fe,_1105_fec,_1106_fe,_1107_fe,_1237_fe,1238fe(,s1239sfew,s1240sfe.NO_SORT%FS: +1109 +fe,_1110_fec,_1111_fe,_1112_fe,_1242_fe,1243fe(,s1244sfew,s1245sfe.NO_SORT%FS: 213 fe,214fe,453,547.nonffstop&Ϡ: 458,863.normal V: 605 -fe,606,617fe,619,620,623,624,626,629,>l634,641,644,646,900fe>o,951,952,953,960,l965lfeo,l982,983,984,987,993,1121,1122fep,1159fe(,<1171,1173,1174,1176,1223fe<,1224fe,1263fe,1265fe(,[1269[fe_,[1282[fe,[1285[fe.normalffp}'oint9: -1173 -fe,1174.normalffunit5Oɫ: +fe,606,617fe,619,620,623,624,626,629,>l634,641,644,646,903fe>o,954,955,956,963,l968lfeo,l985,986,987,990,996,1126,1127fep,1164fe(,<1176,1178,1179,1181,1228fe<,1229fe,1268fe,1270fe(,[1274[fe_,[1287[fe,[1290[fe.normalffp}'oint9: +1178 +fe,1179.normalffunit5Oɫ: 605 fe.normalffx(: -1176 -fe,41177.normalffy(«: -1176 -fe,1177.normalffz(M: -1176 -fe,1177.nullffc}'oordinatesF : +1181 +fe,41182.normalffy(«: +1181 +fe,1182.normalffz(M: +1181 +fe,1182.nullffc}'oordinatesF : 15 fe ,D23Dfe  F,D277,278,399.numb}'erffofffpointsJ: -938 -fe,([945,946,954,964,965,1105, 1115,1122,1150,1152,1174,1177,1188,s1214,1238.numb}'erffofffpolygonfftypesj: -1426 -fe,11435,1438,1452,1455,Kx1466,1469,1480,1483.numer}'ator.: +941 +fe,([948,949,957,967,968,1110, 1120,1127,1155,1157,1179,1182,1193,s1219,1243.numb}'erffofffpolygonfftypesj: +1431 +fe,11440,1443,1457,1460,Kx1471,1474,1485,1488.numer}'ator.: 641 -fe,1178fe.n9umericus4wlimitsI : +fe,1183fe.n9umericus4wlimitsI : 15,16,23,265,843.numeric}'alffeccentricity`Ϋ: -1098 -fe,G%1104,1105,1146,1187,V1188.nx : +1103 +fe,G%1109,1110,1151,1192,V1193.nx : 644 fe.ny ߢ: 644 fe.nz s: 644 fe.o set: -1279 +1284 fe.o sets: -1281 -fe,512825fe9.ofstream,: -39,40.oldffaxisffh+n: -1188 -fe.oldffaxisffv+; : -1188 -fe.onfffr}'eeffstore7: +1286 +fe,512875fe9.ofstream,: +39,40.@Poldffaxisffh O\: +1193 +fe. ?oldffaxisffv : +1193 +fe.onfffr}'eeffstore,: 56 fe -,ҟ59,61,64,69,71,72,95,264feҢ,280,>l283,287,290,292,294,296,301,344,432,>l654>lfe>o,>l656,661,664,669,671,674,676,678,681,683,690,871,1022fe ,1027,1030,1037, 1039,1056fe ,1059,1062,1067,1072,1074,<1102,1105,1110,1112,1235,1238,1243,1245,<1291<fe<,<1294,1295,1297,1299,1306,1337,1411,<1413,1415,1417,1435,1438,1452,1455,1466,[1469,1480,1483.onffse}'gment2_l: -950,958鴟fe.@Pop}'en +,ҟ59,61,64,69,71,72,95,264feҢ, 280,>l283,287,290,292,294,296,301,344,432,>l654>lfe>o,>l656,661,664,669,671,674,676,678,681,683,690,871,1025fe ,1030,1033,1040, 1042,1059fe ,1062,1065,1070,1075,1077,<1107,1110,1115,1117,1240,1243,1248,1250,<1296<fe<,<1299,1300,1302,1304,1311,1342,1416,<1418,1420,1422,1440,1443,1457,1460,1471,[1474,1485,1488. ?onffse}'gment'@: +953,961鴟fe.op}'en ǫ: -44. Koptar}'g;: -1503.optind*: -1503.option: -1503.optionffctr!ȫ: -1503 +44.optar}'g;: +1508.optind*: +1508.option: +1508.optionffctr!ȫ: +1508 fe.optionffindex,: -1503 +1508 fe.or}'ange˫: -108,R112RfeU,R113Rfe,R1438,1456,1500.or}'angeffred#֫: +108,R112RfeU,R113Rfe,R1443,1461,1505.or}'angeffred#֫: 112 fe,41134fe7.orientation&S: -946 -fe,t1177tfex,t1179.originū: +949 +fe,t1182tfex,t1184.originū: 274 -fe,$h275$hfe$k,$h381,507,595,605,619,620,623, 624,>l635,644,873,875,893,896,897,900,921,926,946,952,983,1105,1169,1174,1175,1178,<1223,1224,1265,1269,1282,1285,1307,1440,<1444,1456,1458,1469,1471,1483,1485. Kostr}'eam֫: +fe,]-275]-fe]0,]-381,507,595,605,619,620, 623,>l624,635,644,873,875,896,899,900,903,~l924,929,949,955,986,1083,1110,1174,1179, 1180,1183,1228,1229,1270,1274,1287, 1290,1312,1445,1449,1461,1463,1474,[1476,1488,1490. ?ostr}'eam֫: 103,104şfe,436,437fe.OTHER: -1177 +1182 fe.outffangleѫ: -1180 +1185 fe.outffcir}'cle\: -1021,3)10483)fe3-,3)12693)fe,3)1271.outffdistanc}'e*{: -1223 +1024,3)10513)fe3-,3)12743)fe,3)1276.outffdistanc}'e*{: +1228 fe.outffellipse"i: -1090 -fe,}1223}fe},}1225.outffr}'ectangle-=: -1213 -fe,1214şfe,1216,1218.outffstr}'eam$!@: +1095 +fe,}1228}fe},}1230.outffr}'ectangle-=: +1218 +fe,1219şfe,1221,1223.outffstr}'eam$!@: 39 fe , 40 fe  , -44,46,48,50,67,106,108, 264,>l414,436,457,458,461,472,856,859,861,5T862,863,864,1393,1511. Koutffstr}'eamffname?N: +44,46,48,50,67,106,108, 264,>l414,436,457,458,461,472,856,859,861,5T862,863,864,1398,1519. ?outffstr}'eamffname?N: 42 fe ,43fe ,44.outerffcir}'cle'h: -1282 -fe,1285fe.outerffcir}'cleffcenterFѫ: -1282 -fe,c1285cfec.output: -45,67,200fe,210fe,213,252,253fe,254fe,264, 316,>l397,436,438,440,442,453,457fe>o,458fe,472টfe,>l548>lfe>o,>l549,551,552,553,554fe,654,656,791,>l839,841,844,852,854,856fe>o,857fe,858,1343,[1374[fe_,[1375[fe,[1501. KऱP: -1263 +1287 +fe,1290fe.outerffcir}'cleffcenterFѫ: +1287 +fe,c1290cfec.output: +45,67,200fe,210fe,213,252,253fe,254fe,264, 316,>l397,436,438,440,442,453,457fe>o,458fe,472টfe,>l548>lfe>o,>l549,551,552,553,554fe,654,656,791,>l839,841,844,852,854,856fe>o,857fe,858,1348,[1379[fe_,[1380[fe,[1506. ?ऱP: +1268 fe.ऱp褫: 30 fe -,157fe,167fe,182fe,220fe,222fe,224fe,240fe,285fe,286fe, 287টfe,288ҟfe,289ҟfe,291ҟfe,292ҟfe,293ҟfe,294ҟfe,299ҟfe,300ҟfe,315ҟfe,320টfe,343ҟfe,345ҟfe,346ҟfe,356ҟfe,370ҟfe,371ҟfe,372ҟfe,373ҟfe,377ҟfe,378টfe,394ҟfe,419ҟfe,420ҟfe,422ҟfe,423ҟfe,436ҟfe,437ҟfe,477ҟfe,478ҟfe,479টfe,480ҟfe,481ҟfe,482ҟfe,483ҟfe,484ҟfe,490ҟfe,491ҟfe,498ҟfe,499ҟfe,500টfe,501ҟfe,504ҟfe,505ҟfe,513ҟfe,516ҟfe,517ҟfe,523ҟfe,524ҟfe,525ҟfe,526টfe,543ҟfe,544ҟfe,545ҟfe,621ҟfe,622ҟfe,623ҟfe,624ҟfe,625ҟfe,626ҟfe,628টfe,>l629>lfe>o,>l630>lfe,>l631>lfe,>l633>lfe,>l634>lfe,>l637>lfe,>l642>lfe,>l656>lfe,657টfe,>l677>lfe>o,>l678>lfe,>l680>lfe,>l681>lfe,>l682>lfe,>l683>lfe,>l689>lfe,>l716>lfe,717টfe,>l721>lfe>o,>l722>lfe,>l730>lfe,>l731>lfe,>l735>lfe,>l736>lfe,>l776>lfe,>l780>lfe,781টfe,>l789>lfe>o,>l790>lfe,>l802>lfe,>l807>lfe,>l813>lfe,>l821>lfe,>l824>lfe,>l873>lfe,875টfe,>l879>lfe>o,>l882>lfe,>l898>lfe,>l913>lfe,>l914>lfe,>l915>lfe,>l919>lfe,>l931>lfe,961টfe,~l962~lfe~o,~l965~lfe,~l978~lfe,~l990~lfe,~l991~lfe,~l1005~lfe~p,~l1006~lfe,~l1014~lfe,1015টfe,<1019<fe<,<1020<fe,<1023<fe,<1024<fe,<1034<fe,<1037<fe,<1039<fe,1071টfe,<1072<fe<,<1073<fe,<1074<fe,<1137<fe,<1142<fe,<1162<fe,<1163<fe,1167টfe,<1168<fe<,<1200<fe,<1201<fe,<1205<fe,<1206<fe,<1210<fe,<1211<fe,1242টfe,<1243<fe<,<1244<fe,<1245<fe,<1253<fe,<1254<fe,<1260<fe,<1261<fe,1437টfe,<1438<fe<,<1441<fe,<1442<fe,<1446<fe,<1454<fe,<1455<fe,<1459<fe,1460টfe,1468fe,1469fe,1473fe,1482fe,1483fe,1501fe.wn썷x15173DLDFPRÎGAINDEX495n@Ppffinner!: -1279 -fe. Epffinnerffc}'opy8):: -1279 +,157fe,167fe,182fe,220fe,222fe,224fe,240fe,285fe,286fe, 287টfe,288ҟfe,289ҟfe,291ҟfe,292ҟfe,293ҟfe,294ҟfe,299ҟfe,300ҟfe,315ҟfe,320টfe,343ҟfe,345ҟfe,346ҟfe,356ҟfe,370ҟfe,371ҟfe,372ҟfe,373ҟfe,377ҟfe,378টfe,394ҟfe,419ҟfe,420ҟfe,422ҟfe,423ҟfe,436ҟfe,437ҟfe,477ҟfe,478ҟfe,479টfe,480ҟfe,481ҟfe,482ҟfe,483ҟfe,484ҟfe,490ҟfe,491ҟfe,498ҟfe,499ҟfe,500টfe,501ҟfe,504ҟfe,505ҟfe,511ҟfe,512ҟfe,513ҟfe,516ҟfe,517ҟfe,523ҟfe,n썫500INDEXA3DLDFPRÎGx1525n@P524fe#,525ҟfe,526ҟfe,543ҟfe,544ҟfe,545ҟfe,621ҟfe,622ҟfe,623ҟfe,624ҟfe, 625fe#,626ҟfe,628ҟfe,629ҟfe,630ҟfe,631ҟfe,633ҟfe,634ҟfe,637ҟfe,642ҟfe,656fe#,657ҟfe,677ҟfe,678ҟfe,680ҟfe,681ҟfe,682ҟfe,683ҟfe,689ҟfe,716ҟfe,717fe#,721ҟfe,722ҟfe,730ҟfe,731ҟfe,735ҟfe,736ҟfe,776ҟfe,780ҟfe,781ҟfe,789fe#,>l790>lfe>o,>l802>lfe,>l807>lfe,>l813>lfe,>l821>lfe,>l824>lfe,>l873>lfe,>l875>lfe,879fe#,>l882>lfe>o,>l891>lfe,>l901>lfe,>l916>lfe,>l917>lfe,>l918>lfe,>l922>lfe,>l934>lfe,964fe#,~l965~lfe~o,~l968~lfe,~l981~lfe,~l993~lfe,~l994~lfe,~l1008~lfe~p,~l1009~lfe,~l1017~lfe,1018fe(,<1022<fe<,<1023<fe,<1026<fe,<1027<fe,<1037<fe,<1040<fe,<1042<fe,1074fe(,<1075<fe<,<1076<fe,<1077<fe,<1142<fe,<1147<fe,<1167<fe,<1168<fe,1172fe(,<1173<fe<,<1205<fe,<1206<fe,<1210<fe,<1211<fe,<1215<fe,<1216<fe,1247fe(,<1248<fe<,<1249<fe,<1250<fe,<1258<fe,<1259<fe,<1265<fe,<1266<fe,1442fe(,<1443<fe<,<1446<fe,<1447<fe,<1451<fe,<1459<fe,<1460<fe,<1464<fe,1465fe(,1473fe,1474fe,1478fe,1487fe,1488fe,1506fe. Gpffinner!: +1284 +fe.pffinnerffc}'opy8):: +1284 fe.pffiter: 657.pffmffc}'oord,J: 346 fe,347.pffmaga: 505 fe.pffmiddle'/ϫ: -1279 +1284 fe.pffmiddleffc}'opy>*: -1279 +1284 fe.pffnffc}'oord*A: 346 fe,n347.pffouter : -1279 +1284 fe.pffouterffc}'opy7a: -1279 +1284 fe.pffx%.: 517 fe,;518,519,520,521,522.pffxffsign#: @@ -7480,8 +7584,8 @@ fe.p}'a D: 425 -fe,44264fe7,47574fe,47624fe,47634fe,4764,765,766,767fe7, 768fe#,769ҟfe,770ҟfe,771,780fe,789fe,798fe,817fe,917fe,918fe.pair|: -12,*29,267,270,350,351,944.pairsM: +fe,44264fe7,47574fe,47624fe,47634fe,4764,765,766,767fe7, 768fe#,769ҟfe,770ҟfe,771,780fe,789fe,798fe,817fe,920fe,921fe.pair|: +12,*29,267,270,350,351,947.pairsM: 270.PARALLEL*P: 400.PARALLEL_X_Y?D: 211 @@ -7492,58 +7596,59 @@ fe,u6212u6feu9,u6400.P9athd: 33 fe -,f167,196,290,316,357,394,409,418,419,420,422,423,425,426,427,428,429,436,513,527,549,602,619,641,642,654fe,655,656,657,658,660,661fe,663,664fe,666,667,668,669fe,671,673,674,676,677,678fe,680,681,682,683,684fe#,685ҟfe,686,687,689,693,696,698,701,703,705,707,709,714,716,717,720,721,722,724,726,729,731,732,734,736,739,741,743,747,748,750,752,754,755,756,757,759,762,763,766,767,768,769,770,771,776,777,778,779,780,781,785,787,789,790,791,794,796,798,799,802,804,805,807,809,813,815,817,818,821,824,826,830,832,835,837,839,840,841,842,847,849,851,853,855,856,857,858,860,862,864,867,869,873,874,875,879,880,881,882,883,886,888,890,893,894,895,898,900,901,906,908,909,912,913,914,915,917,918,919,930,931,938,939,945,961,962,964,965,966,l967,972,990,991,998,999,1005,1006,1018,<1022,1023,1024,1034,1040,1041,1075,1077,<1078,1079,1113,1115,1160,1167,1168,1188,<1204,1210,1211,1214,1246,1257,1260,1261,<1279,1282,1285,1291,1297,1303,1317,1318,<1337,1339,1342,1343,1344,1360,1362,1374,<1375,1379,1382,1385,1388,1391,1393,1394,1446,1459,1473,1478,1517.PATH\: -1291 -fe,tt1292ttfetx,tt1311,1312.P9aths: -207,@O549,656,662,763,765,828,839,@P872,876,879,917,1374. kp}'aths qQ: -1291 -fe,֛1297,1303,1311,1312,1318,1337, 1339, 1342,1344,1360,1362,1374,1375,1377,<1379,1380,1382,1383,1385,1386,1388,1389,[1391,1392,1394.p}'a0: -1214 -fe.p}'enW: +,f167,196,290,316,357,394,409,418,419,420,422,423,425,426,427,428,429,436,513,527,549,602,619,641,642,654fe,655,656,657,658,660,661fe,663,664fe,666,667,668,669fe,671,673,674,676,677,678fe,680,681,682,683,684fe#,685ҟfe,686,687,689,693,696,698,701,703,705,707,709,714,716,717,720,721,722,724,726,729,731,732,734,736,739,741,743,747,748,750,752,754,755,756,757,759,762,763,766,767,768,769,770,771,776,777,778,779,780,781,785,787,789,790,791,794,796,798,799,802,804,805,807,809,813,815,817,818,821,824,826,830,832,835,837,839,840,841,842,847,849,851,853,855,856,857,858,860,862,864,867,869,873,874,875,879,880,881,@P882,883,886,889,891,893,896,897,898,901, 903,904,909,911,912,915,916,917,918,920,921,922,933,934,941,942,948,964,965,967,968,~l969,970,975,993,994,1001,1002,1008,1009,<1021,1025,1026,1027,1037,1043,1044,1078,<1080,1081,1082,1084,1118,1120,1165,1172,<1173,1193,1209,1215,1216,1219,1251,1262,<1265,1266,1284,1287,1290,1296,1302,1308,<1322,1323,1342,1344,1347,1348,1349,1365,<1367,1379,1380,1384,1387,1390,1393,1396,<1398,1399,1451,1464,1478,1483,1525. _PATH +g: +1296 +fe,tt1297ttfetx,tt1316,1317.P9athsD: +207,@O549,656,662,763,765,828,839, 872,876,879,920,1379.p}'aths qQ: +1296 +fe,֛1302,1308,1316,1317,1323,1342,1344, 1347,1349,1365,1367,1379,1380,1382,<1384,1385,1387,1388,1390,1391,1393,1394,[1396,1397,1399.p}'a0: +1219 +fe.p}'enW: 264 -fe,278,300,302,409,411,415,458,461,465,>l654>lfe>o,>l657,658,661,664,666,669,671,674,>l676,707,776,802,807,813,821,824,859,861,862,863.p}'enffinner @: -1278 -fe,W1279Wfe[.p}'enffmiddle%y: -1278 -fe,ͤ1279ͤfeͨ.p}'enffouterg: -1278 -fe,1279fe -.p}'entagonffdiameterF\: -1454 -fe,C1455CfeC,C1457Cfe,C1458Cfe,1459টfe,V1460V՟feV.p}'entagonffradius:튫: -1448 -fe,/@1452,1455.p}'ents qP: -1458 -fe.p}'ersp : +fe,278,300,302,409,411,415,458,461,465,>l654>lfe>o,>l657,658,661,664,666,669,671,674,>l676,707,776,802,807,813,821,824,859,861,862,863.p}'enffinner @: +1283 +fe,W1284Wfe[.p}'enffmiddle%y: +1283 +fe,ͤ1284ͤfeͨ.p}'enffouterg: +1283 +fe,1284fe +.p}'entagonffdiameterF\: +1459 +fe,C1460CfeC,C1462Cfe,C1463Cfe,1464টfe,V1465V՟feV.p}'entagonffradius:튫: +1453 +fe,/@1457,1460.p}'ents qP: +1463 +fe.p}'ersp : 556 -fe,559,561,570,572,574,583,585.PERSP: +fe,559,561,570,572,574,583,585.PERSP: 211 -fe,_212_fe_,_253,254,312,314,317,319,322,>l324,327,329,332,334,337,339,398,402,431,866,1336.p}'erspfftransform:˫: -397.phiH: -1282 -fe,=1285=ӟfe=.PI: +fe,_212_fe_,_253,254,312,314,317,319,322,>l324,327,329,332,334,337,339,398,402,431,866,1341.p}'erspfftransform:˫: +397.phiH: +1287 +fe,=1290=ӟfe=.PI: 24,}25}fe  },}27}fe ,}36}fe -,}162,163,164,505,1105,1263,1432,<1438,1449,1455,1463,1469,1477,1483.pictur}'ez: -409,&L410&Lfe&O,&L411&Lfe,&L412&Lfe,&L413&Lfe,&L414&Lfe,&L415&Lfe,&L416&Lfe,417টfe,419ҟfe,420ҟfe,422ҟfe,423ҟfe,425ҟfe,426ҟfe,428ҟfe,429ҟfe,461ҟfe,462টfe,463ҟfe,464ҟfe,466ҟfe,467ҟfe,468ҟfe,469ҟfe,775ҟfe,776ҟfe,777ҟfe,778টfe,780ҟfe,781ҟfe,784ҟfe,785ҟfe,786ҟfe,787ҟfe,789ҟfe,790ҟfe,793ҟfe,794টfe,795ҟfe,796ҟfe,798ҟfe,799ҟfe,801ҟfe,802ҟfe,803ҟfe,804ҟfe,806ҟfe,807টfe,808ҟfe,809ҟfe,812ҟfe,813ҟfe,814ҟfe,815ҟfe,817ҟfe,818ҟfe,820ҟfe,821টfe,823ҟfe,824ҟfe,825ҟfe,826ҟfe,829ҟfe,830ҟfe,831ҟfe,832ҟfe,834ҟfe,835টfe,l836lfeo,l837lfe,l921lfe,l922lfe,l925,926feo,927fe,1046fep,1047টfe,<1050<fe<,<1051<fe,<1092<fe,<1093<fe,<1117<fe,<1118<fe,<1119<fe,1217টfe,<1218<fe<,<1219<fe,<1220<fe,<1225<fe,<1226<fe,<1267<fe,<1268<fe,1271টfe,<1272<fe<,<1278<fe,<1279<fe,<1378<fe,<1379<fe,<1381<fe,<1382<fe,1384টfe,<1385<fe<,<1387<fe,<1388<fe,<1390<fe,<1391<fe,<1393<fe,<1394<fe.Picture|: +,}162,163,164,505,1110,1268,1437,<1443,1454,1460,1468,1474,1482,1488.pictur}'ez: +409,&L410&Lfe&O,&L411&Lfe,&L412&Lfe,&L413&Lfe,&L414&Lfe,&L415&Lfe,&L416&Lfe,417টfe,419ҟfe,420ҟfe,422ҟfe,423ҟfe,425ҟfe,426ҟfe,428ҟfe,429ҟfe,461ҟfe,462টfe,463ҟfe,464ҟfe,466ҟfe,467ҟfe,468ҟfe,469ҟfe,775ҟfe,776ҟfe,777ҟfe,778টfe,780ҟfe,781ҟfe,784ҟfe,785ҟfe,786ҟfe,787ҟfe,789ҟfe,790ҟfe,793ҟfe,794টfe,795ҟfe,796ҟfe,798ҟfe,799ҟfe,801ҟfe,802ҟfe,803ҟfe,804ҟfe,806ҟfe,807টfe,808ҟfe,809ҟfe,812ҟfe,813ҟfe,814ҟfe,815ҟfe,817ҟfe,818ҟfe,820ҟfe,821টfe,823ҟfe,824ҟfe,825ҟfe,826ҟfe,829ҟfe,830ҟfe,831ҟfe,832ҟfe,834ҟfe,835টfe,l836lfeo,l837lfe,l924lfe,l925lfe,l928,929feo,930fe,1049fep,1050টfe,<1053<fe<,<1054<fe,<1097<fe,<1098<fe,<1122<fe,<1123<fe,<1124<fe,1222টfe,<1223<fe<,<1224<fe,<1225<fe,<1230<fe,<1231<fe,<1272<fe,<1273<fe,1276টfe,<1277<fe<,<1283<fe,<1284<fe,<1383<fe,<1384<fe,<1386<fe,<1387<fe,1389টfe,<1390<fe<,<1392<fe,<1393<fe,<1395<fe,<1396<fe,<1398<fe,<1399<fe.Picture|: 33 fe -,196,200,208fe,209,213,216fe,218,219টfe,220,221,222,224,226,228,229,232,233,236,239,242,245,247,249,251,252,257,258,264,373,396,397,400,409,410,411,412,413,414,415,416,417,419,420,422,423,425,426,428,429,438,440,442,453,457,461,462,463,464,466,467,468,469,543,544fe,545,546,548,551,552,553,554,654,686,775,776,777,778,780,>l781,784,785,786,787,789,790,793,794,>l795,796,798,799,801,802,803,804,806,>l807,808,809,812,813,814,815,817,818,>l820,821,823,824,825,826,829,830,831,>l832,834,835,836,837,839,841,844,852,l854,856,858,921,922,926,927,1046,1047,<1050,1051,1092,1093,1117,1118,1119,#n썫496INDEXA3DLDFPRÎGx1517n@P1217,<1218,1219,1220,1221,1225,1226,1267, 1268,<1271,1272,1278,1279,1304,1343,1374,1378,<1379,1381,1382,1384,1385,1387,1388,1390,Kx1391,1393,1394,1445. ЍPictures*%I: -122,?R207,209,216,233,264,686,1294.pinkƫ: +,196,200,208fe,209,213,216fe,218,219টfe,220,221,222,224,226,228,229,232,233,\n썷x15253DLDFPRÎGAINDEX501n@P236,239,242,245,247,249,251,252,257,258, 264,373,396,397,400,409,410,411,412,413,414,415,416,417,419,420,422,423,425,426,428,429,438,440,442,453,457,461,462,463,464,466,467,468,469,543,544fe,545,546,548,551,552,553,554,654,686,775,776,777,778,780,>l781,784,785,786,787,789,790,793,794,>l795,796,798,799,801,802,803,804,806,>l807,808,809,812,813,814,815,817,818,>l820,821,823,824,825,826,829,830,831,>l832,834,835,836,837,839,841,844,852,l854,856,858,924,925,929,930,1049,1050,<1053,1054,1097,1098,1122,1123,1124,1222,<1223,1224,1225,1226,1230,1231,1272,1273,<1276,1277,1283,1284,1309,1348,1379,1383,<1384,1386,1387,1389,1390,1392,1393,1395,Kx1396,1398,1399,1450. ЍPictures*%I: +122,?R207,209,216,233,264,686,1299.pinkƫ: 112 fe,M113MfeM.pl 6 : 643 -fe,$644$fe$,$946$fe,$951$fe,$952,953,960,982fe$,983, 984,987,993fe,996.plffnormal+s: +fe,$644$fe$,$949$fe,$954$fe,$955,956,963,985fe$,986, 987,990,996fe,999.plffnormal+s: 644 fe.Planec: 12,3333fe - 5,3356,594,615,617fe6,619,620fe,621,622fe#,>l623,624fe>o,625,626,628,629,630,631,633,>l634,635,636,637,641,643,644,646,647,>l648,899,900,901,919,945,946,950,951,{982,993,1171,1263.Planes!j: -615,644,1170.P9ointH: + 5,3356,594,615,617fe6,619,620fe,621,622fe#,>l623,624fe>o,625,626,628,629,630,631,633,>l634,635,636,637,641,643,644,646,647,>l648,902,903,904,922,948,949,953,954,{985,996,1176,1268.Planes!j: +615,644,1175.P9ointH: 2,33fe - ,122fe,149,157,166,168,196,199,200,208ҟfe,210,224,240,243,262,264fe,265,267,268,272,274,275,278,279,280fe,282,283fe,284,285,286,287fe,288,289,290,291,292,293,294,295,296,297fe,298fe,299,300,303,305,309,313,315,318,320,323,325,328,330,333,335,338,340,343,345,346,349,350,351,352,353,354,355,357,361,363,365,369,370,371,372,373,376,377,378,379,380,381fe,382,383,386,392,393,395,396,399,402,403,404,405,407,411,413,415,417,419,420,422,423,425,426,428,429,432,434,436,437,439,441,442,443,446,448,450,452,458,461,462,463,464,465,467,469,471,472,475,477,478,479,480,481,482,483,484,485,486,488,489,490,491,492,493,495,496,497,498,499,500,501,502,503,504,505,507,508,509,510,511,512,513,516,517,523,524,525,526,527,528,529,530,541,549,553,556,557,565,566,567,568,576,577,579,591,593,594,595,596,601,603,604,605,606,615,617,623,624,633,634,635,637,640,641,644,654,657,659,663,664,665,666,667,669,671,672,673,674,675,676,685,717,719,720,730,731,732,734,735,736,739,741,743,748,751,752,754,755,756,757,765,770,780,781,789,790,791,798,799,817,818,828,830,839,840,843,844,856,859,867,873,875,885,886,887,>l888,889,890,893,894,897,898,900,901,>l911,917,918,920,921,922,925,926,927,>l931,938,945,946,947,948,949,950,951,>l954,961,962,964,965,972,975,976,977,>l978,981,982,985,987,992,993,994,996,1003,1004,1014,1015,1019,1020,1029,1030,<1031,1032,1033,1061,1062,1063,1064,1065,<1066,1067,1068,1069,1080,1081,1082,1083,<1098,1104,1105,1106,1107,1118,1121,1122,<1134,1135,1136,1137,1139,1140,1141,@P1142,<1158,1159,1162,1163,1165,1166,1167, 1172,<1173,1174,1177,1178,1180,1183,1188,1200,<1201,1205,1206,1208,1209,1214,1223,1224,<1237,1238,1239,1240,1251,1253,1254,1257,<1258,1259,1263,1265,1269,1279,1282,1283,<1285,1291,1308,1309,1324,1325,1326,1327,<1328,1329,1330,1331,1332,1333,1352,1353,<1356,1357,1414,1415,1427,1428,1437,1438,<1439,1441,1442,1444,1445,1446,1454,1455,<1456,1457,1458,1459,1460,1468,1469,1471,1473,1482,1483,1485,1501. REp}'oint 0: + ,122fe,149,157,166,168,196,199,200,208ҟfe,210,224,240,243,262,264fe,265,267,268,272,274,275,278,279,280fe,282,283fe,284,285,286,287fe,288,289,290,291,292,293,294,295,296,297fe,298fe,299,300,303,305,309,313,315,318,320,323,325,328,330,333,335,338,340,343,345,346,349,350,351,352,353,354,355,357,361,363,365,369,370,371,372,373,376,377,378,379,380,381fe,382,383,386,392,393,395,396,399,402,403,404,405,407,411,413,415,417,419,420,422,423,425,426,428,429,432,434,436,437,439,441,442,443,446,448,450,452,458,461,462,463,464,465,467,469,471,472,475,477,478,479,480,481,482,483,484,485,486,488,489,490,491,492,493,495,496,497,498,499,500,501,502,503,504,505,507,508,509,510,511,512,513,516,517,523,524,525,526,527,528,529,530,541,549,553,556,557,565,566,567,568,576,577,579,591,593,594,595,596,601,603,604,605,606,615,617,623,624,633,634,635,637,640,641,644,654,657,659,663,664,665,666,667,669,671,672,673,674,675,676,685,717,719,720,730,731,732,734,735,736,739,741,743,748,@P751,752,754,755,756,757,765,770,780,781, 789,790,791,798,799,817,818,828,830,839,840,843,844,856,859,867,873,875,885,886,888,889,890,891,892,893,896,897,900,901,903,904,914,920,921,923,924,925,928,929,930,934,941,948,949,950,951,952,953,954,957,964,965,967,968,975,978,979,980,981,984,l985,988,990,995,996,997,999,1006,1007,<1017,1018,1022,1023,1032,1033,1034,1035,<1036,1064,1065,1066,1067,1068,1069,1070,<1071,1072,1082,1083,1085,1086,1087,1088,<1103,1109,1110,1111,1112,1123,1126,1127,<1139,1140,1141,1142,1144,1145,1146,1147,<1163,1164,1167,1168,1170,1171,1172,1177,<1178,1179,1182,1183,1185,1188,1193,1205,<1206,1210,1211,1213,1214,1219,1228,1229,<1242,1243,1244,1245,1256,1258,1259,1262,<1263,1264,1268,1270,1274,1284,1287,1288,<1290,1296,1313,1314,1329,1330,1331,1332,<1333,1334,1335,1336,1337,1338,1357,1358,<1361,1362,1419,1420,1432,1433,1442,1443,<1444,1446,1447,1449,1450,1451,1459,1460,<1461,1462,1463,1464,1465,1473,1474,1476,1478,1487,1488,1490,1506. ōp}'oint 0: 617 -fe,619,620,623,624,626,629,634,646,900fe҂,982,1158.p}'ointffiter: +fe,619,620,623,624,626,629,634,646,903fe҂,985,1163.p}'ointffiter: 859,+861,862,863,864.p}'ointffonffline-̸: 644 fe.pQoin9tus4wpair(b: @@ -7553,50 +7658,50 @@ fe, 676 fe .P9oints(: -2,~122,138,168,207,262,264,265,290,349,>l379,397,402,418,442,451,518,520,527,>l531,549,594,602,654,662,667,721,732,>l764,765,769,770,828,839,841,842,856,>l858,864,867,876,885,886,893,895,901,~l910,917,945,964,996,1021,1121,1167,1170,[1253,1343,1445.p}'oints9: +2,~122,138,168,207,262,264,265,290,349,>l379,397,402,418,442,451,518,520,527,>l531,549,594,602,654,662,667,721,732,>l764,765,769,770,828,839,841,842,856,>l858,864,867,876,885,886,896,898,904,~l913,920,948,967,999,1024,1082,1126,1172,Kx1175,1258,1348,1450.p}'oints9: 654 -fe,657,659,664,666,669,671,672,674,676,685,732,734,739,741,743,748,755,757,764,765,770,776,802,807,813,821,824,830,839টfe,840,842,843,856,858,859,862,864,866,867,>l878,880,881,884,885,886,888,890,891,>l894,896,897,910,911,917,918,930,966,l967,976,978,985,987,994,998,1021,1031,<1062,1067,1081,1083,1105,1118,1121,1122,1173,1253fe,1254,1265,1269.p}'ointsffiter#)O: +fe,657,659,664,666,669,671,672,674,676,685,732,734,739,741,743,748,755,757,764,765,770,776,802,807,813,821,824,830,839টfe,840,842,843,856,858,859,862,864,866,867,878,880,881,884,885,886,889,891,893,894,>l897,899,900,913,914,920,921,933,969,l970,979,981,988,990,997,1001,1024,1034,<1065,1070,1086,1088,1110,1123,1126,1127,1178,1258fe,1259,1270,1274.p}'ointsffiter#)O: 867.P9olygon咫: -970,972ğfe,974,976,978,980,982,985,991,992,993,997,999,1001,1004,1006,1008, 1010,1013,1015,1018,1020,1022,1054,[1056,1079,1291.Polygons߫: -996.p}'olygons: -1291.p}'olyhed: -1472.P9olyhedra(b: -528,1289,1424,1441,1443.P9olyhedron.q: -1291,`1324,1424,1426fe`,1428,1431,1435,<1441,1448,1452,1462,1466,1476,1480.p}'opffback]: -685.pGorting: -656.Porting: -864.p}'ortrait: -1459 -fe,L1460LfeL,L1472Lfe,L1473Lfe.p}'osf: +973,975ğfe,977,979,981,983,985,988,994,K995,996,1000,1002,1004,1007,1009,1011, 1013,1016,1018,1021,1023,1025,1057,[1059,1084,1296.Polygons߫: +999.Pn썫502INDEXA3DLDFPRÎGx1525n@Pp}'olygons%L: +1296. =p}'olyhed C: +1477.P9olyhedra3\: +528,1294,1429,1446,1448.P9olyhedron: ͫ: +1296,`1329,1429,1431fe`,1433,1436, 1440,<1446,1453,1457,1467,1471,1481,1485.p}'opffback&}M: +685.pGorting: +656.Porting: +864.p}'ortrait!@: +1464 +fe,L1465LfeL,L1477Lfe,L1478Lfe.p}'os!«: 565 -fe,566fe,567fe,568fe,595fe,596fe,1117fe,1118fe,1119fe.p}'osffx ): +fe,566fe,567fe,568fe,595fe,596fe,1122fe,1123fe,1124fe.p}'osffxՅ: 560 -fe,P561PfeS,P562Pfe,P563Pfe,P920,921feS,922fe,923,924,925,926fe,927fe.p}'osffy ث: +fe,P561PfeS,P562Pfe,P563Pfe,P923,924feS,925fe,926,927,928,929fe,930fe.p}'osffy4: 560 -fe,561fe,562fe,563fe,920,921fe,922fe,923,n썷x15173DLDFPRÎGAINDEX497n@P924,925,926fe,927fe. REp}'osffzO: +fe,561fe,562fe,563fe,923,924fe,925fe,926,927,928,929fe,930fe.p}'osffzO: 560 -fe,c561cfef,c562cfe,c563cfe,c920,921fef,922fe,923, 924,925,926fe,927fe.p}'osition#DW: +fe,c561cfef,c562cfe,c563cfe,c923,924fef,925fe,926,927,928,929fe,930fe.p}'osition#DW: 208 -fe,E462,471,472,556feH,557,559,561,570,572,574,576,593fe,594,596,597,598,600,601,605,606,609,931,996,1183.p}'ositionffstr2D: +fe,E462,471,472,556feH,557,559,561,570,572,574,576,593fe,594,596,597,598,600,601,605,606,609,934,999,1188.p}'ositionffstr2D: 461 fe,462fe,463fe,464fe,466fe,467fe,468fe,469fe.p}'ositionffstring?#: 829 fe,ʐ830ʐfeʓ,ʐ831ʐfe,ʐ832ʐfe,ʐ834ʐfe,ʐ835ʐfe,836fe#,w837wfew.pp}'en6#: 410 -fe,]411]fe`,]412]fe,]413]fe,]414]fe,]415]fe,]416]fe,]417]fe,]419]fe,420fe#,422ҟfe,423ҟfe,425ҟfe,426ҟfe,428ҟfe,429ҟfe,775ҟfe,776ҟfe,777ҟfe,778fe#,780ҟfe,781ҟfe,784ҟfe,785ҟfe,786ҟfe,787ҟfe,789ҟfe,790ҟfe,793ҟfe,794fe#,795ҟfe,796ҟfe,798ҟfe,799ҟfe,806ҟfe,807ҟfe,808ҟfe,809ҟfe,812ҟfe,813fe#,814ҟfe,815ҟfe,817ҟfe,818ҟfe,823ҟfe,824ҟfe,825ҟfe,826ҟfe,920ҟfe,921fe#,922fe,925,926fe,927fe,1046fe,1047fe,1050fe,1051fe,1092fe(,<1093<fe<,<1217<fe,<1218<fe,<1219<fe,<1220<fe,<1225<fe,<1226<fe,1267fe(,<1268<fe<,<1271<fe,<1272<fe,<1377,1378fe<,1379fe,1383,1384fe(,<1385<fe<,<1386,1387fe,1388fe,1392,1393fe,1394fe.ppt : +fe,]411]fe`,]412]fe,]413]fe,]414]fe,]415]fe,]416]fe,]417]fe,]419]fe,420fe#,422ҟfe,423ҟfe,425ҟfe,426ҟfe,428ҟfe,429ҟfe,775ҟfe,776ҟfe,777ҟfe,778fe#,780ҟfe,781ҟfe,784ҟfe,785ҟfe,786ҟfe,787ҟfe,789ҟfe,790ҟfe,793ҟfe,794fe#,795ҟfe,796ҟfe,798ҟfe,799ҟfe,806ҟfe,807ҟfe,808ҟfe,809ҟfe,812ҟfe,813fe#,814ҟfe,815ҟfe,817ҟfe,818ҟfe,823ҟfe,824ҟfe,825ҟfe,826ҟfe,923ҟfe,924fe#,925fe,928,929fe,930fe,1049fe,1050fe,1053fe,1054fe,1097fe(,<1098<fe<,<1222<fe,<1223<fe,<1224<fe,<1225<fe,<1230<fe,<1231<fe,1272fe(,<1273<fe<,<1276<fe,<1277<fe,<1382,1383fe<,1384fe,1388,1389fe(,<1390<fe<,<1391,1392fe,1393fe,1397,1398fe,1399fe.ppt : 268 fe,^#272^#fe^&.pp030: 528 fe,V603VfeV.pp130: 528 fe,V603VfeV.pr}'ecision'6: -1439,1507,1508.pr}'ogramffname?vݫ: +1444,1512,1513.pr}'ogramffname?vݫ: 42 fe ,)43)fe +,)44.pr}'ojë: 200 -fe,H210HfeK,H254Hfe,H312Hfe,H313Hfe,H314Hfe,H315Hfe,H317Hfe,H318Hfe,319fe#,>l320>lfe>o,>l322>lfe,>l323>lfe,>l324>lfe,>l325>lfe,>l327>lfe,>l328>lfe,>l329>lfe,330fe#,>l332>lfe>o,>l333>lfe,>l334>lfe,>l335>lfe,>l337>lfe,>l338>lfe,>l339>lfe,>l340>lfe,398fe#,>l399>lfe>o,>l400,402fe,403fe,431fe,432fe,442fe,443fe,472fe#,>l548>lfe>o,>l549,553,554fe,742fe,743fe,839fe,840fe,866fe#,867fe,1336fe ,1337fe,1359fe,1360fe.pr}'ojffonffxffzffplaneKp : +fe,H210HfeK,H254Hfe,H312Hfe,H313Hfe,H314Hfe,H315Hfe,H317Hfe,H318Hfe,319fe#,>l320>lfe>o,>l322>lfe,>l323>lfe,>l324>lfe,>l325>lfe,>l327>lfe,>l328>lfe,>l329>lfe,330fe#,>l332>lfe>o,>l333>lfe,>l334>lfe,>l335>lfe,>l337>lfe,>l338>lfe,>l339>lfe,>l340>lfe,398fe#,>l399>lfe>o,>l400,402fe,403fe,431fe,432fe,442fe,443fe,472fe#,>l548>lfe>o,>l549,553,554fe,742fe,743fe,839fe,840fe,866fe#,867fe,1341fe ,1342fe,1364fe,1365fe.pr}'ojffonffxffzffplaneKp : 381 fe,~382,383,384,386.PROJ_VALUE5J: 264.PROJ_VALUES:FG: @@ -7604,79 +7709,79 @@ fe,265fe,463,464,829.PROJ_VALUES_X_YOF;: 264 fe,B265BfeB ,B463.pr}'ojectw: -313,-316,318,397,398fe-,399fe,402fe,403fe,431,>l436,442,443,444,451,457,463,472,742fe#,S743SfeV,S839,841,845,1278,1360.pr}'ojection,a: +313,-316,318,397,398fe-,399fe,402fe,403fe,431,>l436,442,443,444,451,457,463,472,742fe#,S743SfeV,S839,841,845,1283,1365.pr}'ojection,a: 253 fe.Projections9`: 211 -fe,212ჟfe,253,254,312,314,317,319,>l322,324,327,329,332,334,337,339,398,S400SfeV,S402,431,866,1336,1500feW.pr}'ojectiveffcoordinates^: +fe,212ჟfe,253,254,312,314,317,319,>l322,324,327,329,332,334,337,339,@P398,S400SfeV,S402,431,866,1341,1505feW. 9pr}'ojectiveffcoordinatesS: 264 -fe,G265,278,300,303,313,>l318,397,399,400,401,431,436,443,452,457,458,463,841.pr}'ojectiveffextremesTQ: -252,264ٟfe,278,300,444,446,448,450,452,453,551fe,654fe,656,657,661,664,666,>l669,671,674,676,842,843,844,845,847,K849,851,1027,1030,1037,1039,1291feO,1294,<1295,1297,1303,1362,1363,1365,1367,1369,1374,1411,1413,1415,1417.pt 䝫: +fe,G265,278,300,303, 313,>l318,397,399,400,401,431,436,443,452,457,458,463,841.pr}'ojectiveffextremesH: +252,264ٟfe,278,300,444,446,448,450,452,453,551fe,654fe,656,657,661,664,666,>l669,671,674,676,842,843,844,845,847,K849,851,1030,1033,1040,1042,1296feO,1299,<1300,1302,1308,1367,1368,1370,1372,1374,1379,1416,1418,1420,1422.ptA: 208 -fe,=210,268fe@,269,270,272fe,273,309fe,411fe,415fe#,>l425>lfe>o,>l426>lfe,>l428>lfe,>l429>lfe,>l462,470,471,472,541,>l545,546,553,601fe>o,603,605,606,607,@P641,>l754>lfe>o,>l755>lfe,>l756>lfe,>l757>lfe,>l798>lfe,>l799>lfe,>l817>lfe,>l818>lfe, 955,>l956,957,958,960,985,987,988,994,996,1158,1159,1174,1179,1181,1183,1216,1223,1263,1352fe,1353fe,1439,1446. 7ptffc4 : -946 -fe.ptffiterȠ: -1428.ptffonffxffaxis)ի: +fe,=210,268fe@,269,270,272fe,273,309fe,411fe,415টfe,>l425>lfe>o,>l426>lfe,>l428>lfe,>l429>lfe,>l462,470,471,472,541,>l545,546,553,601fe>o,603,605,606,607,641,>l754>lfe>o,>l755>lfe,>l756>lfe,>l757>lfe,>l798>lfe,>l799>lfe,>l817>lfe,>l818>lfe,958,>l959,960,961,963,988,990,991,997,999,1163,1164,1179,1184,1186,1188,1221,1228,1268,1357fe,1358fe,1444,1451.ptffc4 : +949 +fe.ptffiterȠ: +1433.ptffonffxffaxis)ի: 382 -fe.ptffonffzffaxis)i: +fe.ptffonffzffaxis)i: 383 -fe,384,386.ptffve}'ctorU: -950,951şfe,952,953,960,982fe,983, 984,w987.ptrk: -994 -fe,P31307P3feP7.ptsJ: -1415 -fe,`1438`fe`,`1439,1440,1444fe,1446fe,1455fe,1456, 1458 fe , 1459 fe, 1469 fe, 1471 fe, 1473 fe, 1483 fe,1485টfe,V1486.pt0I߫: +fe,384,386.ptffve}'ctorU: +953,954şfe,955,956,963,985fe,986,987,w990.ptrk: +997 +fe,P31312P3feP7.ptsJ: +1420 +fe,`1443`fe`,`1444,1445,1449fe,1451fe,1460fe,1461, 1463 fe , 1464 fe, 1474 fe, 1476 fe, 1478 fe, 1488 fe,1490টfe,V1491.pt0I߫: 149 -fe,՛717՛fe՞,՛945՛fe,՛946՛fe,՛951՛fe,՛954,958,960,981fe՞,982টfe,|985,987,988,1066fe|,1067fe,1068fe,1069fe,1158,1159টfe,<1166<fe<,<1174<fe,<1183<fe,<1214<fe,<1258<fe,<1259<fe,<1279<fe.pt0ffh }: -946 -fe,954fe,956,957.pt0ffv J: -946 -fe,954fe,955,957.pt1I߫: +fe,՛717՛fe՞,՛948՛fe,՛949՛fe,՛954՛fe,՛957,961,963,984fe՞,985টfe,|988,990,991,1069fe|,1070fe,1071fe,1072fe,1163,1164টfe,<1171<fe<,<1179<fe,<1188<fe,<1219<fe,<1263<fe,<1264<fe,<1284<fe.pt0ffh }: +949 +fe,957fe,959,960.pt0ffv J: +949 +fe,957fe,958,960.pt1I߫: 149 -fe,՛717՛fe՞,՛946՛fe,՛951՛fe,՛954,958,960,981fe՞,982fe,985,K987,988,1066feO,1067fe,1068fe,1069fe,1166fe,1174টfe,[1214[fe_,[1258[fe,[1259[fe.pt1ffh }: -954 -fe,A956.pt1ffv J: -954 -fe.pt2I߫: +fe,՛717՛fe՞,՛949՛fe,՛954՛fe,՛957,961,963,984fe՞,985fe,988,K990,991,1069feO,1070fe,1071fe,1072fe,1171fe,1179টfe,[1219[fe_,[1263[fe,[1264[fe.pt1ffh }: +957 +fe,A959.pt1ffv J: +957 +fe.pt2I߫: 149 -fe,"1066"fe&,"1067"fe,"1068"fe,"1069"fe,"1174"fe,"1214"fe.pt20 fO: -1178 -fe,+ 1179.pt21 fO: -1178 -fe,+ 1179.pt22 fO: -1178 -fe,+ 1179.pt23 fO: -1178 -fe,+ 1179.pt3I߫: -1066 -fe,1067fe,1068fe,1069fe,1174fe,1214fe.pt4I߫: -1067 -fe,;1214;fe;.pt5I߫: -1067 -fe,;1214;fe;.pt6I߫: -1067 -fe,;1214;fe;.pt7I߫: -1067 -fe,;1214;fe;.pt8I߫: -1067 -fe,;1214;fe;.pt9I߫: -1214 -fe.purple٫: -108,112fe,113fe.pushffb}'ack 8: -226,n228,443,543,545,549,657,664,666,669,671,674,676,709,755,757,759,764,765,766,770,771,840,885,886,910,994,996,1031,<1062,1067,1105,1282,1297,1303,1360,1374,<1375,1413,1415,1428,1444,1456,1458,1469,1471,1483,1485,1486,1500.p0d: +fe,"1069"fe&,"1070"fe,"1071"fe,"1072"fe,"1179"fe,"1219"fe.pt20 fO: +1183 +fe,+ 1184.pt21 fO: +1183 +fe,+ 1184.pt22 fO: +1183 +fe,+ 1184.pt23 fO: +1183 +fe,+ 1184.pt3I߫: +1069 +fe,1070fe,1071fe,1072fe,1179fe,1219fe.pt4I߫: +1070 +fe,;1219;fe;.pt5I߫: +1070 +fe,;1219;fe;.pt6I߫: +1070 +fe,;1219;fe;.pt7I߫: +1070 +fe,;1219;fe;.pt8I߫: +1070 +fe,;1219;fe;.pt9I߫: +1219 +fe.purple٫: +108,112fe,113fe.pushffb}'ack 8: +226,n228,443,543,545,549,657,664,666,669,671,674,676,709,755,757,759,764,*Mn썷x15253DLDFPRÎGAINDEX503n@P765,766,770,771,840,885,886,913,997,999, 1034,<1065,1070,1110,1287,1302,1308,1365,1379,<1380,1418,1420,1433,1449,1461,1463,1474,1476,1488,1490,1491,1505. ԍp0 : 166 -fe,!168!fe$,!243!fe,!349!fe,!350!fe,!351,352fe$,353fe,354fe,355টfe,357ҟfe,379,380fe,381,389,392fe,393fe,395fe,396fe,476,511ҟfe,512ҟfe,529ҟfe,530ҟfe,531,541,640fe,641fe,663fe,664টfe,665ҟfe,666ҟfe,719ҟfe,720ҟfe,721ҟfe,748ҟfe,751ҟfe,752ҟfe,897ҟfe,901টfe,950fe,1003fe,1004fe,1083fe,1122fe,1165fe,1208fe,1209টfe,1223fe,1282fe,1285fe,1356fe,1357fe.P0: -1439 -fe.p0ffx "B: +fe,!168!fe$,!243!fe,!349!fe,!350!fe,!351,352fe$,353fe,354fe,355fe#,357ҟfe,379,380fe,381,389,392fe,393fe,395fe,396fe,476,>l529>lfe>o,>l530>lfe,>l531,541,640fe>o,641fe,663fe,664fe,665fe#,>l666>lfe>o,>l719>lfe,>l720>lfe,>l721>lfe,>l748>lfe,>l751>lfe,>l752>lfe,>l900>lfe,904fe#,953fe,1006fe,1007fe,1088fe,1127fe,1170fe,1213fe,1214fe(,1228fe,1287fe,1290fe,1361fe,1362fe.P0 b: +1444 +fe.p0ffxA: 531 -fe,+532,535,536,538,540.p0ffy : +fe,+532,535,536,538,540.p0ffy'M: 531 -fe,q532,535,536,539. Hn썫498INDEXA3DLDFPRÎGx1517n@Pp0ffz8: +fe,q532,535,536,539.p0ffz8: 531 -fe,s532,536,538,540. 2Ѝp1 : +fe,s532,536,538,540.p1 : 166 -fe,!168!fe$,!243!fe,!349!fe,!350!fe,!351,352fe$,353fe,354fe, 355fe#,357ҟfe,379,380fe,381,382,383,385,386,387,388,389,392fe,393fe,395fe,396fe,511fe,512fe,529fe,530fe,531,541,640fe,641fe,663fe,664fe,665fe,666fe,719fe,720fe,721,l748lfeo,l751lfe,l752lfe,l897lfe,l901lfe,l950lfe,l1003lfep,l1004lfe,1083fe(,1165fe,1208fe,1209fe,1356fe,1357fe.P1 b: -1439 +fe,!168!fe$,!243!fe,!349!fe,!350!fe,!351,352fe$,353fe,354fe,355fe#,357ҟfe,379,380fe,381,382,383,385,386,387,388,>l389,392fe>o,393fe,395fe,396fe,529fe,530fe,531,541,>l640>lfe>o,>l641>lfe,>l663>lfe,>l664>lfe,>l665>lfe,>l666>lfe,>l719>lfe,>l720>lfe,721,l748lfeo,l751lfe,l752lfe,l900lfe,l904lfe,l953lfe,l1006lfep,l1007lfe,1088fe(,1170fe,1213fe,1214fe,1361fe,1362fe.P1 b: +1444 fe.p1ffxA: 531 fe,532,536,540.p1ffy'M: @@ -7685,21 +7790,21 @@ 531 fe,f532,536,540.p2 : 357 -fe,k897kfek,k901kfe,k1083kfek,k1282kfe.P2 b: -1439 +fe,k900kfek,k904kfe,k1088kfek,k1287kfe.P2 b: +1444 fe.qҪ: 513 -fe,516fe,886fe,898fe,901fe,1163fe,1417fe,1501fe.qffpl}: -901 +fe,516fe,886fe,901fe,904fe,1168fe,1422fe,1506fe.qffpl}: +904 fe.qq0-~: 528 fe,ZF603ZFfeZI.qq1-~: 528 fe,ZF603ZFfeZI.Quader!׫: -1406.quarter!F: -33,963,967fe.q0 : +1411.quarter!F: +33,966,970fe.q0 : 529 -fe,530fe,531,541,985fe.q0ffxū: +fe,530fe,531,541,988fe.q0ffxū: 531 fe,-n532,535,536,538,540.q0ffyt: 531 @@ -7707,7 +7812,7 @@ 531 fe,t532,536,538,540.q1 : 529 -fe,530fe,531,541,985fe.q1ffxū: +fe,530fe,531,541,988fe.q1ffxū: 531 fe,[532,536,540.q1ffyt: 531 @@ -7728,171 +7833,172 @@ ,=85=fe ,=86=fe ,=87=fe -,=126=fe@,127fe#,134ҟfe,135ҟfe,171ҟfe,172ҟfe,176ҟfe,177ҟfe,272ҟfe,350ҟfe,485ҟfe,486fe#,488ҟfe,489ҟfe,491ҟfe,494ҟfe,495ҟfe,496ҟfe,497ҟfe,499ҟfe,501ҟfe,503fe#,511ҟfe,512ҟfe,522ҟfe,633ҟfe,634ҟfe,768ҟfe,770ҟfe,840ҟfe,898ҟfe,992fe#,993fe,1036fe,1037fe,1038fe,1039fe,1064fe,1069fe,1072fe(,<1074<fe<,<1110<fe,<1112<fe,<1122<fe,<1129<fe,<1132<fe,<1214<fe,1218fe(,1220fe,1223fe,1265fe,1427fe,1428fe,1485fe.rfffabsZ: +,=126=fe@,127fe#,134ҟfe,135ҟfe,171ҟfe,172ҟfe,176ҟfe,177ҟfe,272ҟfe,350ҟfe,485ҟfe,486fe#,488ҟfe,489ҟfe,491ҟfe,494ҟfe,495ҟfe,496ҟfe,497ҟfe,499ҟfe,501ҟfe,503fe#,511ҟfe,512ҟfe,522ҟfe,633ҟfe,634ҟfe,768ҟfe,770ҟfe,840ҟfe,901ҟfe,995fe#,996fe,1039fe,1040fe,1041fe,1042fe,1067fe,1072fe,1075fe(,<1077<fe<,<1115<fe,<1117<fe,<1127<fe,<1134<fe,<1137<fe,<1219<fe,1223fe(,1225fe,1228fe,1270fe,1432fe,1433fe,1490fe.rfffabsZ: 633,96349fe9.rffiter: -994.rffpl: -993 -fe,W6996.rffptr"O: -994 -fe.r}'adius#: -1022 -fe,1024,1030fe,1031,1042,1232fe,1238,1249,1251,1255,1256,1262,1263,1269.r}'adiusffinner6N: -1282 -fe,`1284,1285fe`.r}'adiusffknown;: -1129 -fe,\1130.r}'adiusffouter6Uu: -1282 -fe,bU1284,1285febY.r}'adiusffratio3: -1284 -fe.r}'adiusffunknownE+: -1129 -fe,/1130.r}'csffid: +997.rffpl: +996 +fe,W6999.rffptr"O: +997 +fe.@Pr}'adiusǫ: +1025 +fe,1027,1033fe,1034,1045,1237fe,1243, 1254,1256,1260,1261,1267,1268,1274. Ѝr}'adiusffinner+: +1287 +fe,`1289,1290fe`.r}'adiusffknown/⫫: +1134 +fe,\1135.r}'adiusffouter+6: +1287 +fe,bU1289,1290febY.r}'adiusffratio(wX: +1289 +fe.r}'adiusffunknown:ϫ: +1134 +fe,/1135.r}'csffid: 10 fe -,ߕ1229ߕfeߙ,ߕ1497ߕfe.real]٫: +,37fe +,54fe +,120fe,196fe,205fe,262fe,591fe,615fe,652টfe,K938KfeN,K973Kfe,K1057KfeO,K1101Kfe,K1234Kfe,K1280Kfe,K1294Kfe,1403টfe,Kx1411KxfeK|,Kx1429Kxfe,Kx1495Kxfe,Kx1502Kxfe.real>}: 12 fe -,s13,15,16,20,23,24,25,26,27,29,30,36,56,67,68,69,70,71,84,85,86,87,88,89,190,91,96,97,98,99,126,127,128,129,134,135,137,138,145,146,150,151,152,153,155,156,158,159,160,161,166,167,171,172,176,177,181,182,200,210,235,236,238,239,@P241,242,243,252,253,254,264,265,272,282, 283,284,285,295,296,305,308,312,313,314,315,317,318,319,320,322,323,324,325,327,328,329,330,332,333,334,335,337,338,339,340,345,346,349,350,351,360,361,362,363,364,365,368,369,375,376,379,380,389,392,393,394,395,396,398,399,401,402,403,405,431,432,442,443,444,445,446,447,448,449,450,465,472,485,486,488,489,490,491,494,495,496,497,498,499,502,503,504,505,508,511,512,517,522,531,532,533,534,535,536,538,548,550,551,554,556,559,560,561,562,563,565,566,567,568,571,572,578,581,582,584,585,606,617,633,634,636,641,644,654,713,714,716,717,719,720,721,722,723,724,725,726,728,729,733,734,742,743,839,840,843,845,846,847,848,849,850,851,866,867,879,880,893,901,903,921,922,926,927,943,944,>l945,946,947,948,954,957,964,965,966,K967,993,1000,1001,1003,1004,1005,1006,<1007,1008,1009,1010,1012,1013,1017,1018,<1022,1029,1030,1032,1033,1042,1056,1061,<1062,1063,1064,1085,1086,1087,1088,1098,<1104,1105,1106,1107,1122,1128,1129,1131,<1132,1143,1144,1145,1146,1149,1150,1151,<1152,1154,1155,1156,1157,1158,1159,1163,<1172,1176,1178,1180,1188,1191,1192,1193,<1194,1195,1196,1198,1199,1203,1204,1208,<1209,1210,1211,1223,1224,1232,1237,1238,<1239,1240,1251,1253,1254,1255,1256,1262,<1263,1265,1278,1279,1281,1282,1284,1285,<1291,1336,1337,1345,1346,1347,1348,1350,<1351,1354,1355,1356,1357,1359,1360,1362,<1363,1364,1365,1366,1367,1368,1369,1408,<1414,1415,1426,1431,1432,1437,1438,1439,<1441,1442,1443,1444,1445,1446,1448,1449,<1454,1455,1457,1458,1459,1460,1462,1463,<1468,1469,1470,1471,1472,1473,1476,1477,1482,1483,1484,1485,1510. Ѝr}'ealfflimits!ǫ: -15 -fe -,"23"fe -$.realus4wpair Ы: +,s13,15,16,20,23,24,25,26,27,29,30,36,56,67,68,69,70,71,84,85,86,87,88,89,190,91,96,97,98,99,126,127,128,129,134,135,137,138,145,146,150,151,152,153,155,156,158,159,160,161,166,167,171,172,176,177,181,182,200,210,235,236,238,239,241,242,243,252,253,254,264,265,272,282,283,284,285,295,296,305,308,312,313,314,315,317,318,319,320,322,323,324,325,327,328,329,330,332,333,334,335,337,338,339,340,345,346,349,350,351,360,361,362,363,364,365,368,369,375,376,379,380,389,392,393,394,395,396,398,399,401,402,403,405,431,432,442,443,444,445,446,447,448,449,450,465,472,485,486,488,489,490,491,494,495,496,497,498,499,502,503,504,505,508,511,512,517,522,531,532,533,534,535,536,538,548,550,551,554,556,559,560,561,562,563,565,566,567,568,571,572,578,581,582,584,585,606,617,633,634,636,641,644,654,713,714,716,717,719,720,721,722,723,724,725,726,728,729,733,734,742,743,839,840,843,845,846,847,848,849,850,851,866,867,879,880,896,904,906,924,925,929,930,946,947,948,949,950,951,957,960,967,968,969,970,996,1003,1004,1006,1007,1008,1009,1010,<1011,1012,1013,1015,1016,1020,1021,1025,<1032,1033,1035,1036,1045,1059,1064,1065,<1066,1067,1090,1091,1092,1093,1103,1109,<1110,1111,1112,1127,1133,1134,1136,1137,<1148,1149,1150,1151,1154,1155,1156,1157,<1159,1160,1161,1162,1163,1164,1168,1177,<1181,1183,1185,1193,1196,1197,1198,1199,<1200,1201,1203,1204,1208,1209,1213,1214,<1215,1216,1228,1229,1237,1242,1243,1244,<1245,1256,1258,1259,1260,1261,1267,1268,<1270,1283,1284,1286,1287,1289,1290,1296,<1341,1342,1350,1351,1352,1353,1355,1356,<1359,1360,1361,1362,1364,1365,1367,1368,<1369,1370,1371,1372,1373,1374,1413,1419,<1420,1431,1436,1437,1442,1443,1444,1446,<1447,1448,1449,1450,1451,1453,1454,_n썫504INDEXA3DLDFPRÎGx1525n@P1459,<1460,1462,1463,1464,1465,1467,1468, 1473,<1474,1475,1476,1477,1478,1481,1482,1487,1488,1489,1490,1516,1518. Zr}'ealfflimits,#: +15,16fe +,23fe +.realus4wpair,,: 12 fe -,25,27,29,30,946,954,1128,1129.realus4wshort& : +,25,27,29,30,949,957,1133,1134.realus4wshort2i: 12 fe -,x^25,27,633,634,635,636,945.realus4wtriple(T: +,x^25,27,633,634,635,636,948.realus4wtriple3t: 13 fe -,943,957,1131,1132.reals ǹ: -12,QM277.RECTANGLE$: -1291 -fe,1292ٟfe,1311,1312,1324,1325, 1331.Rectangle' 9: -290,970,972,974,997,1022,1054,1056টfe,<1058,1059fe<,1060,1061,1062fe,1064,1065,1066,<1067<fe<,<1069,1071,1072,1073,1074,1075,1076,<1077,1078,1079,1081,1083,1084,1086,1088,<1213,1214,1215,1216,1217,1218,1219,1220,<1223,1224,1225,1226,1291,1297,1303,Wn썷x15173DLDFPRÎGAINDEX499n@P1319,<1320,1324,1337,1339,1342,1344,1360, 1362,<1374,1375,1379,1382,1385,1388,1391,1394,1413,1415,1419,1478,1485. Vbr}'ectangles+E: -1291 -fe,9R1297,1303,1311,1312,1320,1324, 1325,1337,1339,1342,1344,1360,1362, 1374,1375,1377,1379,1380,1382,1383, 1385,1386,1388,1389,1391,1392,1394,[1413,1415,1419.Rectangles6ѫ: -1077.r}'eds-: -108,ˀ112ˀfe˃,ˀ113ˀfe,ˀ655,1438,1456,1500.r}'edfforange.: -112.r}'edffpart#K: +,946,960,1136,1137.reals: +12,QM277.RECTANGLE/M: +1296 +fe,1297ٟfe,1316,1317,1329,1330, 1336.Rectangle2?: +290,w973,975,977,1000,1025,1057,1059fe(,<1061,1062fe<,1063,1064,1065fe,1067,1068,1069,<1070<fe<,<1072,1074,1075,1076,1077,1078,1079,<1080,1081,1082,1083,1084,1086,1088,1089,<1091,1093,1218,1219,1220,1221,1222,1223,<1224,1225,1228,1229,1230,1231,1296,1302,<1308,1324,1325,1329,1342,1344,1347,1349,<1365,1367,1379,1380,1384,1387,1390,1393,<1396,1399,1418,1420,1424,1483,1490.r}'ectangles+E: +1296 +fe,9R1302,1308,1316,1317,1325,1329, 1330,1342,1344,1347,1349,1365,1367, 1379,1380,1382,1384,1385,1387,1388, 1390,1391,1393,1394,1396,1397,1399,[1418,1420,1424.Rectangles6ѫ: +1080.r}'eds-: +108,ˀ112ˀfe˃,ˀ113ˀfe,ˀ655,1443,1461,1505.r}'edfforange.: +112.r}'edffpart#K: 56 fe -,59,61,64,66,69,71,74,75,76,"85,87,97.r}'efffpt: -945 -fe,V946VΟfeV,V949,950fe,951fe,954,960,961fe,962fe.Regus4wClus4Planeus4Curv9eh: -290,937,938fe,939,944,945,946,948,949,950,951,954,961,962,963,964,|965,966,967,1022,1098,1115,1162,1166.Regus4wClus4Planeus4Curv9esmԫ: -938,' 949.REG_POLYGON:FG: -1291 -fe,1292fe,1311,1312,1324,1325,V1333.Regus4wP9olygonA~: -290,386,970,972,974,997,1021, 1022 fe , 1023,1024,1026,1027fe,1029,1030fe(, 1033,1034,1036,1037,1038,1039,1040,<1041,1054,1075,1078,1079,1265,1267,1268,<1269,1271,1272,1279,1291,1297,1303,1307,<1321,1322,1324,1337,1339,1342,1344,1360,<1362,1374,1375,1379,1382,1385,1388,1391,<1394,1427,1428,1443,1444,1446,1456,1457,<1458,1460,1469,1470,1471,1473,1478,1483,[1484,1485,1486.Regus4wP9olygonsF: -658,1279.r}'egffpolygons5P: -1291 -fe,1297,1303,1311,1312,1322,1324,<1325,1337,1339,1342,1344,1360,1362,1374,<1375,1377,1379,1380,1382,1383,1385,1386,<1388,1389,1391,1392,1394,1428,1438,1439,<1440,1455,1456,1469,1483,1485fe<,1486.R}'egularffClosedffPlaneffCurve{: -937.r}'esetƷ: -125,"132"fe%,"133"fe,"256,278,303,405,407,545,546,553,561,572,1122,1446,1483.r}'esetffangle/k: +,59,61,64,66,69,71,74,75,76,"85,87,97.r}'efffpt: +948 +fe,V949VΟfeV,V952,953fe,954fe,957,963,964fe,965fe.Regus4wClus4Planeus4Curv9eh: +290,940,941fe,942,947,948,949,951,952,953,954,957,964,965,966,967,|968,969,970,1025,1103,1120,1167,1171.Regus4wClus4Planeus4Curv9esmԫ: +941,' 952.REG_POLYGON:FG: +1296 +fe,1297fe,1316,1317,1329,1330,V1338.Regus4wP9olygonA~: +290,hy386,973,975,977,1000,1024, 1025 fe , 1026,1027,1029,1030fe,1032,1033fe(, 1036,1037,1039,1040,1041,1042,1043,<1044,1057,1078,1081,1084,1270,1272,1273,<1274,1276,1277,1284,1296,1302,1308,1312,<1326,1327,1329,1342,1344,1347,1349,1365,<1367,1379,1380,1384,1387,1390,1393,1396,<1399,1432,1433,1448,1449,1451,1461,1462,<1463,1465,1474,1475,1476,1478,1483,1488,[1489,1490,1491.Regus4wP9olygonsF: +658,1284.r}'egffpolygons5P: +1296 +fe,1302,1308,1316,1317,1327,1329,<1330,1342,1344,1347,1349,1365,1367,1379,<1380,1382,1384,1385,1387,1388,1390,1391,<1393,1394,1396,1397,1399,1433,1443,1444,<1445,1460,1461,1474,1488,1490fe<,1491.@PR}'egularffClosedffPlaneffCurvep: +940. 5r}'eset +[: +125,"132"fe%,"133"fe,"256,278,303,405,407,545, 546,553,561,572,1127,1451,1488.r}'esetffangle$: 571 -fe,Y572Yfe\.r}'esetfftransformCY: -224, v256 vfe y, v406 vfe, v407 vfe.r}'esizei: -278,r 399,405,657,661,664,669,674,867,1027,1030,1037,1039,1295,1297,1362,1411,[1413,1415,1417.r}'everseb: -908 -fe,M6909M6feM9,M6911,912fe,913fe.rightffshift,: -1279 -fe.r}'otateo>: -149,5E1605Efe5H,5E1615Efe,5E164,166fe5H,167fe,181,200fe,241fe,242fe#,243ҟfe,360ҟfe,361ҟfe,379,382,385,387,388,389,392fe#,393ҟfe,394ҟfe,395ҟfe,396ҟfe,561,572,713fe,714fe,716fe,717fe#,l719lfeo,l720lfe,l721lfe,l722lfe,l954,965,1000fep,1001fe,1003fe(,<1004<fe<,<1005<fe,<1006<fe,<1031,1062,1105,1122,1159,<1169,1174,1191fe<,1192fe,1208fe,1209fe,1210fe,@P1211টfe,<1223,1224,1263,1282,1285,1354fe<,1355fe, 1356টfe,<1357<fe<,<1415,1438,1440,1446,1456,1457,1458,1460,1469,1471,1473,1483,1485. 2Ѝr}'otateffaround1M3: -166, 167,243,379,392,394,395,f396,716,717,719,721,1003,1005,1208,s1210,1356.r}'ow: +fe,Y572Yfe\.r}'esetfftransform8: +224, v256 vfe y, v406 vfe, v407 vfe.r}'esizeJ3: +278,r 399,405,657,661,664,669,674,867,1030,1033,1040,1042,1300,1302,1367,1416,[1418,1420,1422.r}'everse: +911 +fe,M6912M6feM9,M6914,915fe,916fe.rightffshift ;: +1284 +fe.r}'otateO: +149,5E1605Efe5H,5E1615Efe,5E164,166fe5H,167fe,181,200fe,241fe,242টfe,243ҟfe,360ҟfe,361ҟfe,379,382,385,387,388,389,392টfe,393ҟfe,394ҟfe,395ҟfe,396ҟfe,561,572,713fe,714fe,716fe,717টfe,l719lfeo,l720lfe,l721lfe,l722lfe,l957,968,1003fep,1004fe,1006টfe,<1007<fe<,<1008<fe,<1009<fe,<1034,1065,1110,1127,1164,<1174,1179,1196fe<,1197fe,1213fe,1214fe,1215fe,1216টfe,<1228,1229,1268,1287,1290,1359fe<,1360fe,1361টfe,<1362<fe<,<1420,1443,1445,1451,1461,1462,1463,1465,1474,1476,1478,1488,1490.r}'otateffaround1M3: +166, 167,243,379,392,394,395,f396,716,717,719,721,1006,1008,1213,s1215,1361.r}'ow: 134 -fe,135⽟fe,145⽟fe,146⽟fe,182⽟fe,183,184,581fe,582টfe,,4584,4fe,7,,4585,4fe.r}'owffshift"8: -1278 -fe,a1279afee.rr: +fe,135⽟fe,145⽟fe,146⽟fe,182⽟fe,183,184,581fe,582টfe,,4584,4fe,7,,4585,4fe.r}'owffshift"8: +1283 +fe,a1284afee.rr: 272 -fe,946fe,954fe,955,956,957,958.RunffState!F: -458,863.r0i: -945,~F946~Ffe~I,~F987~Ffe,~F988,1216fe~J.r0ff0: +fe,949fe,957fe,958,959,960,961.RunffState!F: +458,863.r0i: +948,~F949~Ffe~I,~F990~Ffe,~F991,1221fe~J.r0ff0: 128 -fe,M129MfeM.r0ff1: +fe,M129MfeM.r0ff1: 128 -fe,M129MfeM.r0ff2: +fe,M129MfeM.r0ff2: 128 -fe,M129MfeM.r0ff3: +fe,M129MfeM.r0ff3: 128 -fe,M129MfeM.r1i: -987 +fe,M129MfeM.r1i: +990 fe, -988,1216fe.r1ff0: +991,1221fe.r1ff0: 128 -fe,M129MfeM.r1ff1: +fe,M129MfeM.r1ff1: 128 -fe,M129MfeM.r1ff2: +fe,M129MfeM.r1ff2: 128 -fe,M129MfeM.r1ff3: +fe,M129MfeM.r1ff3: 128 -fe,M129MfeM.r2i: -1216 -fe.r2ff0: +fe,M129MfeM.r2i: +1221 +fe.r2ff0: 128 -fe,M129MfeM.r2ff1: +fe,M129MfeM.r2ff1: 128 -fe,M129MfeM.r2ff2: +fe,M129MfeM.r2ff2: 128 -fe,M129MfeM.r2ff3: +fe,M129MfeM.r2ff3: 128 -fe,M129MfeM.r3ff0: +fe,M129MfeM.r3ff0: 128 -fe,M129MfeM.r3ff1: +fe,M129MfeM.r3ff1: 128 -fe,M129MfeM.r3ff2: +fe,M129MfeM.r3ff2: 128 -fe,M129MfeM.r3ff3: +fe,M129MfeM.r3ff3: 128 -fe,M129MfeM.ऱs: +fe,M129MfeM.ऱs: 80 fe ,81Ɵfe - ,225Ɵfe,226Ɵfe,464Ɵfe,634Ɵfe,636Ɵfe,692Ɵfe,693Ɵfe,704Ɵfe,705টfe,>l706>lfe>o,>l707>lfe,>l708>lfe,>l709>lfe,>l758>lfe,>l759>lfe,>l886>lfe,>l960>lfe,1118টfe, 1139 fe , 1140 fe, 1141 fe, 1142 fe, 1296 fe, 1297 fe,1299টfe, 1302 fe , 1303 fe, 1305 fe, 1311 fe, 1312 fe, 1313 fe,1314টfe, 1315 fe , 1316 fe, 1317 fe, 1318 fe, 1319 fe, 1320 fe,1321টfe,<1322<fe<,<1324<fe,<1325<fe,<1326<fe,<1327<fe,<1328<fe,<1329<fe,1330টfe,<1331<fe<,<1332<fe,<1333<fe,<1374<fe,<1375<fe,<1379<fe,<1382<fe,1385টfe,[1388[fe_,[1391[fe,[1394[fe.sffeC: -1183 -fe,A1184.sfftm: -1183 -fe,EK1184.saveffangle"h: -1180 -fe.saveffzZ: + ,225Ɵfe,226Ɵfe,464Ɵfe,634Ɵfe,636Ɵfe,692Ɵfe,693Ɵfe,704Ɵfe,705টfe,>l706>lfe>o,>l707>lfe,>l708>lfe,>l709>lfe,>l758>lfe,>l759>lfe,>l886>lfe,>l963>lfe,1123টfe, 1144 fe , 1145 fe, 1146 fe, 1147 fe, 1301 fe, 1302 fe,1304টfe, 1307 fe , 1308 fe, 1310 fe, 1316 fe, 1317 fe, 1318 fe,1319টfe, 1320 fe , 1321 fe, 1322 fe, 1323 fe, 1324 fe, 1325 fe,1326টfe,<1327<fe<,<1329<fe,<1330<fe,<1331<fe,<1332<fe,<1333<fe,<1334<fe,bn썷x15253DLDFPRÎGAINDEX505n@P1335fe(,<1336<fe<,<1337<fe,<1338<fe,<1379<fe,<1380<fe,<1384<fe,<1387<fe, 1390fe(,[1393[fe_,[1396[fe,[1399[fe. 9sffe : +1188 +fe,A1189.sfft : +1188 +fe,EK1189.saveffangle-ī: +1185 +fe.saveffz趫: 401 -fe.sc}'ale -: +fe.sc}'ale: 150 -fe,151fe,200fe,235fe,236fe,362fe,363fe,723fe,724fe,1007টfe,<1008<fe<,<1193<fe,<1194<fe,<1223,1253,1345fe<,1346fe.sc}'aleffvalue$[: -1223 -fe.se}'condk: +fe,151fe,200fe,235fe,236fe,362fe,363fe,723fe,724fe,1010fe(,<1011<fe<,<1198<fe,<1199<fe,<1228,1258,1350fe<,1351fe.sc}'aleffvalue/: +1228 +fe.se}'condǫ: 13 fe -,H30,270feK,271,355,603,633,637,946,951,l955,956,957,958,982,985,996,1130,1131, 1132,1158,1159,1174,1179,1181,1183,[1216,1223,1263.se}'gmentE: +,H30,270feK,271,355,603,633,637,949,954,l958,959,960,961,985,988,999,1135,1136, 1137,1163,1164,1179,1184,1186,1188,[1221,1228,1268.se}'gment#: 33, -Q963,964fe -T,965fe,966,967.setY(: +Q966,967fe +T,968fe,969,970.set x: 65 fe ,ٛ66ٛfe  ٝ,ٛ70ٛfe ,ٛ71ٛfe -,ٛ284ٛfeٞ,ٛ285ٛfe,ٛ288ٛfe,ٛ289ٛfe,ٛ296,382,383,>l541,561,562fe>o,563fe,567fe,568fe,572,665fe,n썫500INDEXA3DLDFPRÎGx1517n@P666fe#,l670lfeo,l671lfe,l675,676,955,956,957,1032fep, 1033fe(, 1034,1063fe ,1064fe,1068fe,1069fe,1106fe,1107fe(, 1179,1239fe ,1240fe,1263,1265,1269,1279,<1282,1415,1441fe<,1442fe,1444,1446,1458,1469,[1471,1473,1485. Bssetffblueffp}'art73: +,ٛ284ٛfeٞ,ٛ285ٛfe,ٛ288ٛfe,ٛ289ٛfe,ٛ296,382,383,>l541,561,562fe>o,563fe,567fe,568fe,572,665fe,666fe#,l670lfeo,l671lfe,l675,676,958,959,960,1035fep,1036fe(, 1037,1066fe ,1067fe,1071fe,1072fe,1111fe,1112fe(, 1184,1244fe ,1245fe,1268,1270,1274,1284,<1287,1420,1446fe<,1447fe,1449,1451,1463,1474,[1476,1478,1490.setffblueffp}'art73: 90 fe ,91fe .setffc}'onnectors>: 708 -fe,wB709wBfewE,wB898.setffcycle&*: -885,8886,905fe8,906fe,965.setffdashffp}'atternFݖ: +fe,wB709wBfewE,wB901.setffcycle&*: +885,8886,908fe8,909fe,968.setffdashffp}'atternFݖ: 704 -fe,Մ705ՄfeՇ,Մ1377,1380,1383, 1386,s1389,1392.setffdr}'awffcolor>: +fe,Մ705ՄfeՇ,Մ1382,1385,1388,1391,s1394,1397.setffdr}'awffcolor>: 695 -fe,H696HfeH,H697Hfe,H698Hfe,H1377,1380,1383,[1386,1389,1392.setffelement2׫: +fe,H696HfeH,H697Hfe,H698Hfe,H1382,1385,1388,[1391,1394,1397.setffelement2׫: 122,̽134̽fe,̽135̽fe,̽559,561,572.setffextr}'emes6: 200 -fe, 451 ȟfe , 452 ȟfe, 550,552,841fe ,842fe,858, 1361 fe , 1362 fe.setff llffc}'olor5I:: +fe, 451 ȟfe , 452 ȟfe, 550,552,841fe ,842fe,858, 1366 fe , 1367 fe.setff llffc}'olor5I:: 700 fe,701fe -,702fe,703fe,1377,1380,1383,[1386,1389,1392.setff llffdr}'awffvalueN\: +,702fe,703fe,1382,1385,1388,[1391,1394,1397.setff llffdr}'awffvalueN\: 692 -fe,]693]fe],]1377,1380,1383,1386,s1389,1392.setffgr}'eenffpart81+>fe +@.setffonfffr}'eeffstoreGU׫: -32,200feς,301fe,690fe,1306feσ.setffp}'enʘ: +32,200feς,301fe,690fe,1311feσ.setffp}'enʘ: 706 -fe,707՟fe,1377,1380,1383,1386,1389,1392.setffr}'edffpart2k: +fe,707՟fe,1382,1385,1388,1391,1394,1397.setffr}'edffpart2k: 86 fe ,87fe @@ -7915,257 +8021,264 @@ fe ,83ܟfe .setfP: -44,U<1507.setpr}'ecision3: +44,U<1512.setpr}'ecision3: 148.setw>1: 148.ShapQe : -196,'199'Пfe','200,201,216,225,226,249,264,302,342,343,411,415,438,440,442,443,453,454,455,456,457,543,545,546,547,549,550,551,552,654,686,688,689,776,802,807,813,l821,824,839,840,852,854,856,1291,1304,<1305,1307,1311,1312,1324,1343,1359,1360,<1374,1375,1377,1379,1380,1382,1383,1385,<1386,1388,1389,1391,1392,1394,1406.shap}'efftype-«: -1311 -fe,&r1312&rfe&v,&r1324&rfe,&r1325&rfe.ShapQes#uI: -196,207,213,252,262,453,457,545,547,T549,551,591,615,686.shap}'es: +196,'199'Пfe','200,201,216,225,226,249,264,302,342,343,411,415,438,440,442,443,453,454,455,456,457,543,545,546,547,549,550,551,552,654,686,688,689,776,802,807,813,l821,824,839,840,852,854,856,1296,@P1309,<1310,1312,1316,1317,1329,1348,1364, 1365,<1379,1380,1382,1384,1385,1387,1388,1390,<1391,1393,1394,1396,1397,1399,1411. Nshap}'efftype"f: +1316 +fe,&r1317&rfe&v,&r1329&rfe,&r1330&rfe.ShapQesU: +196,207,213,252,262,453,457,545, 547,T549,551,591,615,686.shap}'es-: 216 -fe,B221,226,249,409feB,442fe,457fe,543,545,5T546,548,549,1304,1374.she}'ar4:: +fe,B221,226,249,409feB,442fe,457fe,543,545,5T546,548,549,1309,1379.she}'ar ޫ: 152 -fe,>153>fe>,>200>fe,>364>fe,>365>fe,>725>fe,>726>fe,>1009>fe>,1010fe(,1195fe,1196fe,1253,1347fe,1348fe.shift}: +fe,>153>fe>,>200>fe,>364>fe,>365>fe,>725>fe,>726>fe,>1012>fe>,1013টfe,1200fe,1201fe,1258,1352fe,1353fe.shift!: 155 -fe,e156efeh,e157efe,e181,200feh,238fe,239fe,240fe,368fe,369fe#,370ҟfe,371ҟfe,372ҟfe,373ҟfe,374,381,389,478,480,482,484,561,572,728fe,729fe,730fe,731fe,732,946,954,965,1012fe,1013fe,1014fe,1015fe,1031,1062,1105,<1122,1159,1169,1174,1175,1183,1185,1188,<1198<fe<,<1199<fe,<1200<fe,<1201<fe,<1214,1223,1224,@P1263,<1265,1269,1279,1282,1285,1350fe<,1351fe, 1352টfe,<1353<fe<,<1415,1440,1444,1446,1456,1458,1469,1471,1473,1483,1485,1486. Bsshiftfftimes#߫: +fe,e156efeh,e157efe,e181,200feh,238fe,239fe,240fe,368fe,369টfe,370ҟfe,371ҟfe,372ҟfe,373ҟfe,374,381,389,478,480,482,484,561,572,728fe,729fe,730fe,731fe,732,949,957,968,1015fe,1016fe,1017fe,1018fe,1034,1065,1110,<1127,1164,1174,1179,1180,1188,1190,1193,<1203<fe<,<1204<fe,<1205<fe,<1206<fe,<1219,1228,1229,1268,<1270,1274,1284,1287,1290,1355fe<,1356fe,1357টfe,<1358<fe<,<1420,1445,1449,1451,1461,1463,1474,1476,1478,1488,1490,1491.shiftfftimes#߫: 158 -fe,Gx159GxfeG{,Gx374,375fe,376fe,377fe,378fe,732,733টfe,Y734YfeY,Y735Yfe,Y736Yfe,Y1017YfeY,Y1018Yfe,Y1019Yfe,Y1020Yfe,1203টfe,[1204[fe_,[1205[fe,[1206[fe.shiftffx-: -920,m921mfep,m922mfe,m925,926fep,927fe.shiftffyvܫ: -920,921fe,922fe,925,926fe,927fe.shiftffz +fe,Gx159GxfeG{,Gx374,375fe,376fe,377fe,378fe,732,733টfe,Y734YfeY,Y735Yfe,Y736Yfe,Y1020YfeY,Y1021Yfe,Y1022Yfe,Y1023Yfe,1208টfe,[1209[fe_,[1210[fe,[1211[fe.shiftffx-: +923,m924mfep,m925mfe,m928,929fep,930fe.shiftffyvܫ: +923,924fe,925fe,928,929fe,930fe.shiftffz ǫ: -920,921fe,922fe,925,926fe,927fe.show k: +923,924fe,925fe,928,929fe,930fe.show k: 92 fe ,R93Rfe - T,R147RfeU,R148Rfe,R159,182,200feU,248fe,249fe,251,346,350,381,382,385,387,388,389,431fe,432টfe,434,503,530,541,549,561,573fe,574fe,603,605,>l606,608fe>o,609fe,644,645fe,646fe,685,866fe,867টfe,>l869,897,901,911,946,951,952,954,955,l958,960,982,983,985,987,993,1122,1171,<1173,1174,1177,1179,1180,1183,1223,1224,Kx1263,1336feK|,1337fe,1439.showffc}'olors(U: + T,R147RfeU,R148Rfe,R159,182,200feU,248fe,249fe,251,346,350,381,382,385,387,388,389,431fe,432টfe,434,503,530,541,549,561,573fe,574fe,603,605,>l606,608fe>o,609fe,644,645fe,646fe,685,866fe,867টfe,>l869,900,904,914,949,954,955,957,958,l961,963,985,986,988,990,996,1127,1176,<1178,1179,1182,1184,1185,1188,1228,1229,Kx1268,1341feK|,1342fe,1444.showffc}'olors(U: 868 -fe,.869.fe1.showfftr}'ansform96: +fe,.869.fe1.showfftr}'ansform96: 250 -fe,i251ifel,i433ife,i434ife.showfftr}'ansforms=[: +fe,i251ifel,i433ife,i434ife.showfftr}'ansforms=[: 573 -fe,574fe.SHRT_MAXf: -265.sidefflength$d: -1485 -fe.sides *6: -1022 -fe,r1024,1030,1031.silent : +fe,574fe.SHRT_MAXf: +265.sidefflength$d: +1490 +fe.sides *6: +1025 +fe,r1027,1033,1034.silent : 47 fe ,48fe  ,49fe ,50fe -,507fe,508fe,644fe,950,992.SILENT_GLOBAL9: +,507fe,508fe,644fe,953,995.SILENT_GLOBAL9: 17 fe ,18fe -,47,48,49,50,1503,1506,V1511.SILENT_INDEX4f: -1503 -fe.sin: -162,163,164,1105.size: -43,249,546,548,549,552,656,657,659,764,765,770,776,802,807,813,821,824,830,840,842,858,859,860,862,866,867,878fe,884,885,886,888,890,891,894,896,910,976,978,987,1265,1269,1282,1303,1312,1314,1316,1318,<1320,1322,1324,1325,1337,1428,1471.Slop}'e : -954 -fe,955,956,957,1131fe,1132fe.slop}'e o: +,47,48,49,50,1508,1511,V1519.SILENT_INDEX4f: +1508 +fe.sin: +162,163,164,1110.size: +43,249,546,548,549,552,656,657,659,764,>l765,770,776,802,807,813,821,824,830,>l840,842,858,859,860,862,866,867,878টfe,>l884,885,886,889,891,893,894,897,899,913,979,981,990,1270,1274,1287,1308,<1317,1319,1321,1323,1325,1327,1329,1330,[1342,1433,1476.Slop}'e : +957 +fe,958,959,960,1136fe,1137fe.ߠn썫506INDEXA3DLDFPRÎGx1525n@Pslop}'e7˫: 345 -fe,%346%fe%,%347,879fe,880fe,954.slop}'effpffxffy$ʫ: +fe,%346%fe%,%347,879fe,880fe,957. 5slop}'effpffxffy/&: 533 -fe,_535,536,537.slop}'effpffxffz$s: +fe,_535,536,537.slop}'effpffxffz/: 533 fe,a -538,539,540.slop}'effpffzffy$R: +538,539,540.slop}'effpffzffy/rY: 533 -fe,V536.slop}'effqffxffy$\: +fe,V536.slop}'effqffxffy/|M: 534 -fe,aS535,536,537.slop}'effqffxffz#ܫ: +fe,aS535,536,537.slop}'effqffxffz/8: 534 -fe,538,539.slop}'effqffzffy#$: +fe,538,539.slop}'effqffzffy.: 534 -fe,536.Solid^{: -409,549,656,1291fe,1292,1294,1295fe,1296,<1297<fe<,<1298,1299,1300fe,1301fe,1302,1303,1304,<1305,1309,1311,1312,1314,1316,1318,1320,<1322,1324,1325,1327,1329,1331,1333,1335,<1337,1338,1339,1342,1344,1346,1348,1351,<1353,1355,1357,1360,1362,1365,1367,1369,<1371,1373,1374,1375,1379,1382,1385,1388,<1391,1393,1394,1400,1421,1435,1438,1452,1455,1466,1469,1480,1483.Solidus4wF -aced/u: -1400 -fe,Kc1408,1426,1435,1438,1452,on썷x15173DLDFPRÎGAINDEX501n@P1455,Kx1466,1469,1480,1483. 5Solids: -549,yB996,1291,1294.solve7˫: -944 -fe,z946,955,956,1128fe~,1129fe,1162.solveffquadr}'aticA: +fe,536.Solid}׫: +409,549,656,1296fe,1297,1299,1300fe, 1301,<1302<fe<,<1303,1304,1305fe,1306fe,1307,1308,1309,<1310,1314,1316,1317,1319,1321,1323,1325,<1327,1329,1330,1332,1334,1336,1338,1340,<1342,1343,1344,1347,1349,1351,1353,1356,<1358,1360,1362,1365,1367,1370,1372,1374,<1376,1378,1379,1380,1384,1387,1390,1393,<1396,1398,1399,1405,1426,1440,1443,1457,1460,1471,1474,1485,1488. 5Solidus4wF +aced:ѫ: +1405 +fe,Kc1413,1431,1440,1443,1457,1460,Kx1471,1474,1485,1488.Solids: +549,yB999,1296,1299.solve7˫: +947 +fe,z949,958,959,1133fe~,1134fe,1167.solveffquadr}'aticA: 29 fe ,30fe -,957.sort2ҫ: -552,C)1375.sortffvalue+: +,960.sort2ҫ: +552,C)1380.sortffvalue+: 253 -fe,254ßfe,453,547fe,548fe,552,554fe.Sorting%jF: +fe,254ßfe,453,547fe,548fe,552,554fe.Sorting%jF: 213 -fe,214ݟfe,253,254,453,547,548fe.Spher}'e': -1291.spir}'al.: -1282 -fe,1285fe.spir}'alffcounter=;׫: -1282 -fe,1285fe .sqrt: -25, -26,30,503,1105,1130,1178,1188,1263.ssffc}'opy k: -1179 -fe.ssffe_: -1179 -fe.ssides`R: -1029 -fe,1030Ÿfe,1032Ÿfe,1033Ÿfe,1034.ssin%: +fe,214ݟfe,253,254,453,547,548fe.Spher}'e': +1296.spir}'al.: +1287 +fe,1290fe.spir}'alffcounter=;׫: +1287 +fe,1290fe .sqrt: +25, -26,30,503,1110,1135,1183,1193,1268.ssffc}'opy k: +1184 +fe.ssffe_: +1184 +fe.ssides`R: +1032 +fe,1033Ÿfe,1035Ÿfe,1036Ÿfe,1037.ssin%: 161 -fe,}162,163,164.startM: +fe,}162,163,164.startM: 881 -fe,'882'ߟfe','883,884,885,886.startffpt!K: -1285 -fe.std߫: +fe,'882'ߟfe','883,884,885,886.startffpt!K: +1290 +fe.std߫: 9 -fe,{911.stderr$: -503,,920,1187,1223,1224.stdout$: -47,49,503,866.stepC: -1281 -fe,2|12822|fe2.stopƍ: +fe,{914.stderr$: +503,,923,1192,1228,1229.stdout$: +47,49,503,866.stepC: +1286 +fe,2|12872|fe2.stopƍ: 248 -fe,w249wfez,w868wfe,w869wfe.str 7: -463,y464,1337.str}'eam«: -45.string: -10,19,20,42,43,56,60,61,63,64,65, 66,`80,81,92,93,102,147,148,200,208,248,249,250,251,264,265,410,411,412,413,414,415,416,417,419,420,422,423,425,426,428,429,431,432,433,434,461,462,463,464,466,467,468,469,573,574,608,609,645,646,654,655,657,667,668,669,670,671,674,676,704,705,706,707,708,709,758,759,763,766,769,770,771,775,776,777,778,780,781,784,785,786,787,789,790,793,794,795,796,798,799,806,>l807,808,809,812,813,814,815,817,818,>l823,824,825,826,829,830,831,832,834,>l835,836,837,859,866,867,872,873,874,>l875,881,882,886,895,910,911,921,922,K926,927,1046,1047,1050,1051,1092,1093,<1117,1118,1119,1183,1217,1218,1219,1220,<1225,1226,1229,1267,1268,1271,1272,1278,<1279,1336,1337,1378,1379,1384,1385,1387,1388,1393,1394,1497,1510. 5strings"0P: -461,{766,771,1279.stringstream?b: -464,1337.subp}'ath!zb: +fe,w249wfez,w868wfe,w869wfe.str 7: +463,y464,1342.str}'eam«: +45.string: +10,19,20,37,42,43,54,56,60,61,63,64,165,66,80,81,92,93,102,120,147,148,196,200,205,208,248,249,250,251,262,264,265,410,411,412,413,414,415,416,417,419,420,422,423,425,426,428,429,431,432,433,434,461,462,463,464,466,467,468,469,573,574,591,608,609,615,645,646,652,654,655,657,667,668,669,670,671,674,676,704,705,706,707,708,709,758,759,763,766,769,770,771,775,776,777,778,780,781,784,785,786,787,789,790,793,794,795,796,798,799,806,@P807,808,809,812,813,814,815,817,818,823, 824,>l825,826,829,830,831,832,834,835,836,>l837,859,866,867,872,873,874,875,881,>l882,886,898,913,914,924,925,929,930,K938,973,1049,1050,1053,1054,1057,1097,<1098,1101,1122,1123,1124,1188,1222,1223,<1224,1225,1230,1231,1234,1272,1273,1276,<1277,1280,1283,1284,1294,1341,1342,1383,<1384,1389,1390,1392,1393,1398,1399,1403,1411,1429,1495,1502,1518. ;strings: +461,{766,771,1284.stringstream4: +464,1342.subp}'ath[: 881 -fe,882ޟfe,965.subp}'athffsize4: -964 -fe,965fe.suppr}'essfflabels@,2: -216,G229GfeJ.suppr}'essffoutputD悫: +fe,882ޟfe,968.subp}'athffsize)8: +967 +fe,968fe.suppr}'essfflabels5 ֫: +216,G229GfeJ.suppr}'essffoutput9&: 200 -fe,|438|fe,|439|fe,|550,551,552, 852fe#,s853sfev,s1370sfew,s1371sfe.suppr}'essffwarningsP%: -945 -fe,946fe.suppr}'essffx.1: -920.@Psuppr}'essffy"@: -920. 1]suppr}'essffz"+: -920.surfacehiding: -996.surfac}'effvector2P: -950,951fe,953,981,982fe,984.s1: +fe,|438|fe,|439|fe,|550,551,552, 852টfe,s853sfev,s1375sfew,s1376sfe.suppr}'essffwarningsE: +948 +fe,949fe.suppr}'essffx#: +923.suppr}'essffy"@: +923.suppr}'essffz"+: +923.surfacehiding: +999.surfac}'effvector2P: +953,954fe,956,984,985fe,987.system["depGendencies: +1516.s1: 454 fe,455fe,456fe.s2: 454 fe,455fe,456fe.ऱt}: 130 -fe,l131lfel,l143lfe,l149lfe,l151lfe,l153lfe,l156lfe,l173lfe,l174lfe, 177টfe,>l178>lfe>o,>l179>lfe,>l182>lfe,>l210>lfe,>l244>lfe,>l245>lfe,>l246>lfe,>l247>lfe,360টfe,>l362>lfe>o,>l364>lfe,>l369>lfe,>l375>lfe,>l380>lfe,>l393>lfe,>l395>lfe,>l396>lfe,472টfe,>l474>lfe>o,>l475>lfe,>l606>lfe,>l714>lfe,>l716>lfe,>l720>lfe,>l724>lfe,>l726>lfe,729টfe,>l738>lfe>o,>l739>lfe,>l748>lfe,>l749>lfe,>l750>lfe,>l752>lfe,>l901>lfe,>l998>lfe,999টfe,1001fe,1004fe,1008fe,1010fe,1013fe,1105fe,1122fe,1169টfe,<1174<fe<,<1187<fe,<1188<fe,<1189<fe,<1190<fe,<1192<fe,<1194<fe,1196টfe,<1199<fe<,<1209<fe,<1223<fe,<1224<fe,<1265<fe,<1269<fe,<1279<fe,1341টfe,<1342<fe<,<1343<fe,<1346<fe,<1348<fe,<1351<fe,<1353<fe,<1355<fe,1357টfe,Kx1442KxfeK|,Kx1446Kxfe,Kx1456Kxfe,Kx1483Kxfe. 1]tffall(M: +fe,]131]fe^,]143]fe,]149]fe,]151]fe,]153]fe,]156]fe,]173]fe,]174]fe,]177]fe,178টfe,>l179>lfe>o,>l182>lfe,>l210>lfe,>l244>lfe,>l245>lfe,>l246>lfe,>l247>lfe,>l360>lfe,362টfe,>l364>lfe>o,>l369>lfe,>l375>lfe,>l380>lfe,>l393>lfe,>l395>lfe,>l396>lfe,>l472>lfe,474টfe,>l475>lfe>o,>l512>lfe,>l606>lfe,>l714>lfe,>l716>lfe,>l720>lfe,>l724>lfe,>l726>lfe,729টfe,l738lfeo,l739lfe,l748lfe,l749lfe,l750lfe,l752lfe,l904lfe,l1001lfep,1002টfe,<1004<fe<,<1007<fe,<1011<fe,<1013<fe,<1016<fe,<1110<fe,<1127<fe,1174টfe,<1179<fe<,<1192<fe,<1193<fe,<1194<fe,<1195<fe,<1197<fe,<1199<fe,1201টfe,<1204<fe<,<1214<fe,<1228<fe,<1229<fe,<1270<fe,<1274<fe,<1284<fe,1346টfe,<1347<fe<,<1348<fe,<1351<fe,<1353<fe,<1356<fe,<1358<fe,<1360<fe,1362টfe,Kx1447KxfeK|,Kx1451Kxfe,Kx1461Kxfe,Kx1488Kxfe.tffall(M: 161 fe,P164.tffinverse﹫: -958 -fe,h1174hfel,h1177,1179,1181.tffx;ݫ: +961 +fe,h1179hfel,h1182,1184,1186.tffx;ݫ: 161 -fe,|162,164,517fe,518,519,520,521, 522,,4901,4fe,7,,4903.tffxffsignھ: +fe,|162,164,517fe,518,519,520,521,522,,4904,4fe,7,,4906.tffxffsignھ: 521 fe.tffy!: 161 -fe,9163,164,517fe<,518,519,520,521,522,901টfe,,4902,903.tffyffsign4: +fe,9163,164,517fe<,518,519,520,521,522,904টfe,,4905,906.tffyffsign4: 521 fe.tffzw: 161 -fe,164,517fe,518,519,520,521,522,901টfe,,4902,903.tffzffsignM: +fe,164,517fe,518,519,520,521,522,904টfe,,4905,906.tffzffsignM: 521 fe.temp ;: 503 -fe,901fe,902,903.tempffb}'ool: -1183 -fe,1184.tempffcir}'cle&(: -1282 +fe,904fe,905,906.tempffb}'ool: +1188 +fe,1189.tempffcir}'cle&(: +1287 fe.tempffcir}'cleffcenterD: -1282 +1287 fe.tempffcir}'cleffnormalH-: -1282 -fe.tempffc}'oordinates?: -397,Q 399Q feQ,Q 401.tempffmatrix,T: +1287 +fe.n썷x15253DLDFPRÎGAINDEX507n@Ptempffc}'oordinatesJ{: +397,Q 399Q feQ,Q 401. ?tempffmatrix7#: 174 -fe.tempffptV: +fe.tempffpt"Ȳ: 605 -fe.tempffstring(: -1183 -fe, 1184.temp1: +fe.tempffstring34 : +1188 +fe, 1189.temp10R: 161 -fe,A162,163,164.temp2: +fe,A162,163,164.temp20R: 161 -fe,A162,163,164.testffangleW: -1180 -fe.testffp}'oints#: -357,901.T;etr}'ahedra$i4: -1439.T -etrahedron3|: -1424,1431fe,1432,1434,1435fe,1437,<1438<fe<,<1439,1441,1442,1443,1444,1446.texffstr}'eam": +fe,A162,163,164.testffangle*ó: +1185 +fe.testffp}'oints.': +357,904.T;etr}'ahedra/: +1444.T +etrahedron>: +1429,1436fe,1437,1439,1440fe, 1442,<1443<fe<,<1444,1446,1447,1448,1449,1451.texffstr}'eam.t: 39 fe ,40Οfe -,44,45,46,1511.texffstr}'eamffname>: +,44,45,46,1519.texffstr}'eamffnameI0N: 42 fe ,43fe -,44.text8p: +,44.textW̫: 92 fe ,c93cfe - e,c147cfef,c148cfe,c200cfe,c208cfe,c248cfe,c249cfe,c250cfe,c251cfe,431টfe,432ҟfe,433ҟfe,434ҟfe,462,471,472,608fe,609fe,645fe,646টfe,n!866n!fen$,n!867n!fe,n!872n!fe,n!873n!fe,n!874n!fe,n!875n!fe,n!1336n!fen%,n!1337n!fe.textffshort: + e,c147cfef,c148cfe,c200cfe,c208cfe,c248cfe,c249cfe,c250cfe,c251cfe,431fe#,432ҟfe,433ҟfe,434ҟfe,462,471,472,608fe,609fe,645fe,646fe#,n!866n!fen$,n!867n!fe,n!872n!fe,n!873n!fe,n!874n!fe,n!875n!fe,n!1341n!fen%,n!1342n!fe.textffshort*o: 463 -fe,464˟fe,468˟fe,469˟fe,828˟fe,829˟fe,830˟fe,831˟fe,832টfe,834fe,835fe,836fe,837fe.textffstr: +fe,464˟fe,468˟fe,469˟fe,828˟fe,829˟fe,830˟fe,831˟fe,832fe#,834fe,835fe,836fe,837fe.textffstr D: 461 -fe,462fe,466fe,467fe,573fe,574fe.theta N: -1282 -fe,#1285#fe#.Ҡn썫502INDEXA3DLDFPRÎGx1517n@Pthetafftotal.: -1285 -fe. 捍thir}'dj: +fe,462fe,466fe,467fe,573fe,574fe.theta: +1287 +fe,#1290#fe#.thetafftotal.: +1290 +fe.thir}'dj: 13 fe -,Rf270RffeRi,Rf271,957,1131,1132,1179, 1181,V1183.this붫: -78,H143,149,151,153,156,159,164,171,173,174,177,179,188,224,239,284,285,287,289,315,320,343,345,346,349,350,351,353,356,357,388,392,393,395,409,411,415,418,431,432,442,443,462,463,478,482,489,493,497,499,501,503,504,507,508,510,523,524,526,544,545,557,563,566,568,570,601,622,626,637,646,657,677,678,689,714,716,720,724,726,729,750,751,752,754,757,762,764,768,770,771,776,780,789,798,802,807,813,817,821,824,840,872,874,881,886,893fe,898,901,909,911,912,913,917,929,945,946,950,954,K964,996,1001,1004,1008,1010,1013,1024,<1034,1064,1069,1077,1107,1115,1121,1122,<1147,1162,1171,1173,1174,1187,1191,1193,<1194,1195,1196,1198,1208,1238,1240,1248,<1249,1250,1251,1253,1303,1305,1346,1348,<1351,1353,1355,1357,1360,1379,1382,1385,1388,1391,1394,1421,1442.thisffaxisfforientationYM: -1173 -fe,H1174.thisffoptionffoptindO.: -1503 +,Rf270RffeRi,Rf271,960,1136,1137,1184,1186,V1188.this붫: +78,H143,149,151,153,156,159,164,171,173,174,177,179,188,224,239,284,285,287,289,315,320,343,345,346,349,350,351,353,356,357,388,392,393,395,409,411,415,418,431,432,442,443,462,463,478,482,489,493,497,499,501,503,504,507,508,510,512,523,524,526,544,545,557,563,566,568,570,601,622,626,637,646,657,677,678,689,714,716,720,724,726,729,750,751,752,754,757,762,764,768,770,771,776,780,789,798,802,807,813,817,821,824,840,872,874,881,886,896fe,901,>l904,912,914,915,916,920,932,948,949,953,957,967,999,1004,1007,1011,1013,1016,<1027,1037,1067,1072,1080,1112,1120,1126,<1127,1152,1167,1176,1178,1179,1192,1196,<1198,1199,1200,1201,1203,1213,1243,1245,<1253,1254,1255,1256,1258,1308,1310,1351,<1353,1356,1358,1360,1362,1365,1384,1387,1390,1393,1396,1399,1426,1447.thisffaxisfforientationYM: +1178 +fe,H1179.thisffoptionffoptindO.: +1508 fe.thisffplane+: -1171 -fe,:1172,1173,1174,1176,1183,1263fe(.timem׫: +1176 +fe,:1177,1178,1179,1181,1188,1268fe(.thr}'eshold(Bɫ: +1516 +fe.timem׫: 43.tmi: 43.tolower!%: -313,n318,346,380,432,561,867,1129.topfflft: -1062 +313,n318,346,380,432,561,867,1134.topfflft: +1065 fe.topffrt9: -1062 -fe.tr}'ace: +1065 +fe.@Ptr}'ace +: 529 -fe,530ԟfe,917ԟfe,918ԟfe.tr}'aceffxffzff0/: -954 -fe.T -ransform4s}: +fe,530ԟfe,920ԟfe,921ԟfe. ōtr}'aceffxffzff0$sV: +957 +fe.T +ransform)T!: 122 -fe,-124,125fe-,126,127fe,128,129fe,130,131,133,135,137,138,141,143,146,148,149,150,151,152,153,155,156,157,158,159,160,161,166,167,168,172,173,174,176,177,178,179,181,182,187,188,189,190,191,192,200,210,216,235,236,238,239,240,241,242,243,244,245,246,247,264,341,360,361,362,363,364,365,368,369,370,371,372,373,375,376,377,378,379,380,392,393,394,395,396,397,404,472,474,475,553,556,559,561,572,580,581,583,584,710,713,714,716,717,719,720,721,722,723,724,725,726,728,729,730,731,>l732,738,739,747,748,749,750,751,752,l946,950,954,958,997,998,999,1000,1001,<1003,1004,1005,1006,1007,1008,1009,1010,<1012,1013,1014,1015,1021,1054,1105,1122,<1174,1177,1187,1188,1189,1190,1191,1192,<1193,1194,1195,1196,1198,1199,1200,1201,<1208,1209,1210,1211,1223,1224,1265,@P1269,<1279,1341,1342,1343,1345,1346,1347, 1348,<1350,1351,1352,1353,1354,1355,1356,1357,Kx1446,1454,1456,1483. {htr}'ansform : +fe,-124,125fe-,126,127fe,128,129fe, 130,131,133,135,137,138,141,143,146,148,149,150,151,152,153,155,156,157,158,159,160,161,166,167,168,172,173,174,176,177,178,179,181,182,187,188,189,190,191,192,200,210,216,235,236,238,239,240,241,242,243,244,245,246,247,264,341,360,361,362,363,364,365,368,369,370,371,372,373,375,376,377,378,379,380,392,393,394,395,396,397,404,472,474,475,553,556,559,561,572,580,581,583,584,710,713,714,716,717,719,720,>l721,722,723,724,725,726,728,729,730,>l731,732,738,739,747,748,749,750,751,~l752,949,953,957,961,1000,1001,1002,1003,<1004,1006,1007,1008,1009,1010,1011,1012,<1013,1015,1016,1017,1018,1024,1057,1110,<1127,1179,1182,1192,1193,1194,1195,1196,<1197,1198,1199,1200,1201,1203,1204,1205,<1206,1213,1214,1215,1216,1228,1229,1270,<1274,1284,1346,1347,1348,1350,1351,1352,<1353,1355,1356,1357,1358,1359,1360,1361,1362,1451,1459,1461,1488. ōtr}'ansform : 216 fe,{224,236,239,242,245,247,249,251,256,264fe,278,300,302,303,307,341,361,363,365,369,375,376,378,393,396,397,399,404,405,407,431,432,434,474,475,486,494,543,>l545,546,549,553,556fe>o,557,561,570,572,A574,580,581,582,584,597.tr}'ansforms$c: 732.T ransforms-]: 122,138.triangleffdiameterAqʫ: -1438 -fe,K1442KfeO,K1443Kfe,K1444Kfe,K1445Kfe,1446টfe,1469fe,1470fe,1471fe,1472fe,1473fe.triangleffr}'adius5n: -1431 -fe,x1435,1438,1462fe|,1466,1469.trianglesd}: -1444 -fe,1471ҟfe.trianglesffsize.: -1470 -fe,1471ǟfe.true<: -17,732,47,48,49,50,60,61,63,64,66,72,n104,112,141,143,159,161,174,182,188,200,209,216,219,230,253,254,280,283,285,287,289,290,292,294,296,300,301,312,314,317,319,322,324,327,329,332,334,337,339,346,349,350,351,355,356,357,380,393,395,399,400,401,405,411,418,427,431,432,441,443,446,448,452,458,461,462,464,467,469,472,506,507,510,517,520,527,529,530,541,544,546,548,549,551,552,553,561,574,603,605,606,624,637,641,644,655,661,664,666,669,671,674,676,678,681,683,685,687,690,698,703,726,743,769,771,776,785,787,802,807,824,830,835,840,842,844,847,849,855,856,857,859,861,863,866,872,873,874,875,876,882,894,897,901,903,905,909,912,913,946,950,951,958,964,966,967,982,985,988,992,993,1027,1030,1033,1034,1037,1039,1059,<1062,1067,1072,1074,1102,1105,1110,1112,<1119,1121,1122,1123,1159,1170,1171,1173,<1174,1178,1179,1180,1181,1183,1187,1188,<1189,1190,1235,1238,1243,1245,1253,1254,<1262,1263,1279,1285,1295,1297,1299,1303,<1306,1312,1335,1336,1339,1362,1365,1367,<1373,1375,1379,1382,1385,1388,1391,1394,<1411,1413,1415,1417,1435,1438,1445,1446,<1452,1455,1458,1459,1466,1469,1471,1472,1473,1480,1483,1485,1503.trunc ߫: +1443 +fe,K1447KfeO,K1448Kfe,K1449Kfe,K1450Kfe,1451টfe,1474fe,1475fe,1476fe,1477fe,1478fe.triangleffr}'adius5n: +1436 +fe,x1440,1443,1467fe|,1471,1474.trianglesd}: +1449 +fe,1476ҟfe.trianglesffsize.: +1475 +fe,1476ǟfe.true<: +17,732,47,48,49,50,60,61,63,64,66,72,n104,112,141,143,159,161,174,182,188,200,209,216,219,230,253,254,280,283,285,287,289,290,292,294,296,300,301,312,314,317,319,322,324,327,329,332,334,337,339,346,349,350,351,355,356,357,380,393,395,399,400,401,405,411,418,427,431,432,441,443,446,448,452,458,461,462,464,467,469,472,506,507,510,517,520,527,529,530,541,544,546,548,549,551,552,553,561,574,603,605,606,624,637,641,644,655,661,664,666,669,671,674,676,678,681,683,685,687,690,698,703,726,743,769,771,776,785,787,802,807,824,830,835,840,842,844,847,849,855, tn썫508INDEXA3DLDFPRÎGx1525n@P856,857,859,861,863,866,872,873,874,875, 876,882,897,900,904,906,908,912,915,916,949,953,954,961,967,969,970,985,988,991,995,996,1030,1033,1036,1037,1040,1042,1062,<1065,1070,1075,1077,1107,1110,1115,1117,<1124,1126,1127,1128,1164,1175,1176,1178,<1179,1183,1184,1185,1186,1188,1192,1193,<1194,1195,1240,1243,1248,1250,1258,1259,<1267,1268,1284,1290,1300,1302,1304,1308,<1311,1317,1340,1341,1344,1367,1370,1372,<1378,1380,1384,1387,1390,1393,1396,1399,<1416,1418,1420,1422,1440,1443,1450,1451,<1457,1460,1463,1464,1471,1474,1476,1477,1478,1485,1488,1490,1508. 7trunc4;: 21 fe ,!22!fe -#,!97,98,99.T -runcus4wOctahedronRN: -401,1424,1476fe,1477,1479,Kx1480KxfeK|,Kx1482,1483fe,1485.ttL: +#,!97,98,99.T +runcus4wOctahedron]Ϊ: +401,1429,1481fe,1482, 1484,Kx1485KxfeK|,Kx1487,1488fe,1490.tt: 43 fe -.t0-o: -954 -fe,958,1177fe.t1-o: -946 -fe,])1177])fe]-.t2-o: -946 -fe.n썷x15173DLDFPRÎGAINDEX503n@Pt3 +.t0 L˫: -946 -fe. -wu~: +957 +fe,961,1182fe.t1 +L˫: +949 +fe,])1182])fe]-.t2 +L˫: +949 +fe.t3 +L˫: +949 +fe.u~: 60 fe ,@61@fe @@ -8183,31 +8296,31 @@ 561 fe,572fe.UNDRAW V: 199 -fe,<@201<@fe265>fe>,>463,464.USER_VALUES_X_YOF;: +fe,>265>fe>,>463,464.@PUSER_VALUES_X_YD&߫: 264 -fe,B265BfeB ,B463.v4: +fe,B265BfeB ,B463. 7ऱva: 315 -fe,;432;fe>,;443;fe,;549;fe,;840;fe,;867;fe,;993;fe,;1360;fe?,;1362;fe,1378fe(, 1379 fe , 1381 fe, 1382 fe, 1428 fe, 1446 fe, 1460 fe,1473fe(,V1500V՟feV.vffc}'oord pޫ: -957 -fe.vffinter}'cept/-: -957 -fe,1131ןfe,1132ןfe.vfflength#^: -1223 -fe,-1224-fe1.vffxU: +fe,;432;fe>,;443;fe,;549;fe,;840;fe,;867;fe,;996;fe,;1365;fe?,;1367;fe, 1383টfe, 1384 fe , 1386 fe, 1387 fe, 1433 fe, 1451 fe, 1465 fe,1478টfe,V1505V՟feV.vffc}'oordQ: +960 +fe.vffinter}'cept$F: +960 +fe,1136ןfe,1137ןfe.vfflength?$: +1228 +fe,-1229-fe1.vffx: 606 -fe.vffy: +fe.vffyh: 606 -fe.vffz: +fe.vffz: 606 -fe.vaffar}'g4: -669,5671,674,676.vaffendD̫: -669,671,674,676.vaffstart"g: -669,671,674,676.v\ralarra9y)ZA: -15,"23,200,264,277,312,313,314,315,>l399,405,432,444,550,551,654,845,867,g1291,1362,1363.v\ralarra9ys-: -277.v9ectorH: -115,116,200,216,249,409,442,443,453,457,462,543,545,546,548,549,553,654,657,659,685,708,734,739,741,743,765,766,770,771,791,830,839,840,843,856,859,867,@P895,>l897,911,985,987,992,993,994,996, 1118,<1122,1254,1281,1282,1284,1285,1291,1297,<1303,1337,1339,1342,1344,1359,1360,1362,<1374,1375,1378,1379,1381,1382,1384,1385,<1388,1391,1394,1413,1419,1427,1428,1443,<1444,1446,1456,1457,1458,1460,1469,1470,1471,1473,1483,1484,1485,1500. 1]v9ectors(: -1374.verb}'oser: -17,357fe,872fe,873fe,874fe,875fe,901fe,903,988, 1170টfe,1171fe,1181,1183,1184fe,1262fe,1263fe.VERBOSE_GLOBAL>: +fe.vaffar}'g: +669,5671,674,676.vaffend%p: +669,671,674,676.vaffstart : +669,671,674,676.v\ralarra9y:: +15,"23,200,264,277,312,313,314,315,>l399,405,432,444,550,551,654,845,867,g1296,1367,1368.v\ralarra9ys"=: +277.v9ector: +115,116,200,216,249,409,442,443,453,457,462,543,545,546,548,549,553,654,657,659,685,708,734,739,741,743,765,766,770,771,791,830,839,840,843,856,859,867,898,>l900,914,988,990,995,996,997,999,1123,<1127,1259,1286,1287,1289,1290,1296,1302,<1308,1342,1344,1347,1349,1364,1365,1367,<1379,1380,1383,1384,1386,1387,1389,1390,<1393,1396,1399,1418,1424,1432,1433,1448,<1449,1451,1461,1462,1463,1465,1474,1475,1476,1478,1488,1489,1490,1505.v9ectors(: +1379.verb}'oser: +17,357fe,872fe,873fe,874fe,875fe,904fe,906,991,1175টfe,1176fe,1186,1188,1189fe,1267fe,1268fe.VERBOSE_GLOBAL>: 17 fe ,18fe - ,872,873,874,875,901,1170,Kx1171,1262,1263,1503.VERBOSE_INDEX9: -1503 -fe.VERSION_INDEX9: -1503 -fe.VERSION_3DLDF9: + ,872,873,874,875,904,1175,Kx1176,1267,1268,1508.VERBOSE_INDEX9: +1508 +fe.VERSION_INDEX9: +1508 +fe.VERSION_3DLDF9: 19 fe ,20˟fe - ,1503,1507,1508,1510,1511.vertex: -1031 -fe.vertexffr}'adius.Q: -1426 -fe,iO1435,1438,1452,1455,1466,1469,s1480,1483.vertic}'al: + ,1508,1512,1513,1518,1519.vertex: +1034 +fe.vertexffr}'adius.Q: +1431 +fe,iO1440,1443,1457,1460,1471,1474,s1485,1488.vertic}'al: 400 -fe.vertic}'es: -1400 -fe,1411,1413,1415,1435,1438,1452,1455,Kx1466,1469,1480,1483.viewffc}'oordinates=:S: +fe.vertic}'es: +1405 +fe,1416,1418,1420,1440,1443,1457,1460,Kx1471,1474,1485,1488.viewffc}'oordinates=:S: 264 -fe,L278,300,303,313,318,431,w635.VIEW_VALUE): -264.VIEW_VALUES/&: +fe,L278,300,303,313,318,431,w635.VIEW_VALUE): +264.VIEW_VALUES/&: 264 -fe,265fe,463,464,830.VIEW_VALUES_X_YD&߫: +fe,265fe,463,464,830.VIEW_VALUES_X_YD&߫: 264 -fe,M265MfeP,M463,829.violet : -108,[112[fe^,[113[fe,[1500.violetffr}'edCE: -108,d112d۟fed,d113d۟fe,d1500.vx: +fe,M265MfeP,M463,829.violet : +108,[112[fe^,[113[fe,[1505.violetffr}'edCE: +108,d112d۟fed,d113d۟fe,d1505.vx: 644 -fe.vy: +fe.vy: 644 -fe.vzN: +fe./n썷x15253DLDFPRÎGAINDEX509n@Pvz +mܫ: 644 -fe.v0t: +fe. 1]v0 : 350 -fe.v1t: +fe.v1 : 350 -fe.v2t: +fe.v2 : 350 -fe.ऱwNF: -1414 -fe,1415ȟfe,1428ȟfe.wffxZ: +fe.wm: +1419 +fe,1420ȟfe,1433ȟfe.wffx: 606 -fe.wffyt : +fe.wffye: 606 -fe.wffz: +fe.wffz'P: 606 -fe.web<: -1472.white c: -108,112fe,113fe.width iD: -1408 -fe,/1415,1421.worldffc}'oordinatesA: +fe.web: +1477.white: +108,112fe,113fe.width: +1413 +fe,/1420,1426.WORDS_BIGENDIANOF;: +1516.worldffc}'oordinatesM: 264 -fe,V265,277,278,283,300,303,305,313,318,345,346,349,351,379,381,384,386,389,399,400,405,431,443,463,476,478,480,482,484,486,495,498,499,500,501,502,́503,508,516,517,531,556,901.WORLD_VALUE/&: -264.WORLD_VALUES4f: +fe,V265,277,278,283,300, 303,305,313,318,345,346,349,351,379,381,384,386,389,399,400,405,431,443,463,476,478,480,482,484,486,495,498,499,500,501,502,́503,508,516,517,531,556,904. 1]WORLD_VALUE:FG: +264.WORLD_VALUES?D: 264 -fe,\265\fe_,\463,464,829,830.WORLD_VALUES_X_YIfܫ: +fe,\265\fe_,\463,464,829,830.WORLD_VALUES_X_YT8: 264 -fe,265fe,463,464,829.WORLD_VALUES_Z>: +fe,265fe,463,464,829.WORLD_VALUES_ZJ>: 264 -fe, '265 'fe *, '463,464.writefffo}'oters,: +fe, '265 'fe *, '463,464.writefffo}'oters7: 45 fe ,Z46Zfe -\,Z1511." -n썫504INDEXA3DLDFPRÎGx1517n@Px: +\,Z1519.x: 150 -fe,-151-fe-,-155-fe,-156-fe,-158-fe,-159-fe,-160-fe,-161-fe,-235-fe,-236-fe, 238fe#,239ҟfe,241ҟfe,242ҟfe,282ҟfe,283ҟfe,284ҟfe,285ҟfe,295ҟfe,296ҟfe,360fe#,361ҟfe,362ҟfe,363ҟfe,368ҟfe,369ҟfe,375ҟfe,376ҟfe,644ҟfe,713ҟfe,714fe#,l723lfeo,l724lfe,l728lfe,l729lfe,l733lfe,l734lfe,l1000lfep,l1001lfe,1007fe(,<1008<fe<,<1012<fe,<1013<fe,<1017<fe,<1018<fe,<1122<fe,<1178<fe,1191fe(,<1192<fe<,<1193<fe,<1194<fe,<1203<fe,<1204<fe,<1414<fe,<1415<fe. ԍxffaxish: -946 +fe,-151-fe-,-155-fe,-156-fe,-158-fe,-159-fe,-160-fe,-161-fe,-235-fe,-236-fe, 238fe#,239ҟfe,241ҟfe,242ҟfe,282ҟfe,283ҟfe,284ҟfe,285ҟfe,295ҟfe,296ҟfe,360fe#,361ҟfe,362ҟfe,363ҟfe,368ҟfe,369ҟfe,375ҟfe,376ҟfe,644ҟfe,713ҟfe,714fe#,l723lfeo,l724lfe,l728lfe,l729lfe,l733lfe,l734lfe,l1003lfep,l1004lfe,1010fe(,<1011<fe<,<1015<fe,<1016<fe,<1020<fe,<1021<fe,<1127<fe,<1183<fe,1196fe(,<1197<fe<,<1198<fe,<1199<fe,<1208<fe,<1209<fe,<1419<fe,<1420<fe. 1]xffaxish: +949 fe.xffaxisffpt&: -954 -fe,M1122MfeM,M1223Mfe,M1224Mfe.xffi d: +957 +fe,M1127MfeM,M1228Mfe,M1229Mfe.xffi d: 535 fe,B536,537,539,540,541.X_YF_: -946 -fe,G1177GfeK,G1179.X_ZF_: -946 -fe,G1177GfeK,G1179.xx +949 +fe,G1182GfeK,G1184.X_ZF_: +949 +fe,G1182GfeK,G1184.xx 8: -1198 -fe,1199fe,1345fe,1346fe,1350fe,1351fe,1354fe,1355fe.xy +1203 +fe,1204fe,1350fe,1351fe,1355fe,1356fe,1359fe,1360fe.xy : 152 -fe,y153yfe|,y200yfe,y364yfe,y365yfe,y725yfe,y726yfe,y1009yfe},y1010yfe, 1195fe(,[1196[fe_,[1347[fe,[1348[fe.xz +fe,y153yfe|,y200yfe,y364yfe,y365yfe,y725yfe,y726yfe,y1012yfe},y1013yfe, 1200fe(,[1201[fe_,[1352[fe,[1353[fe.xz wҫ: 152 -fe,153fe,200fe,364fe,365fe,725fe,726fe,1009fe,1010fe,1195fe(,[1196[fe_,[1347[fe,[1348[fe.x0 ݫ: -925 +fe,153fe,200fe,364fe,365fe,725fe,726fe,1012fe,1013fe,1200fe(,[1201[fe_,[1352[fe,[1353[fe.x0 ݫ: +928 fe.x1 ݫ: -925 +928 fe.yB: 150 -fe,:151:fe:,:155:fe,:156:fe,:158:fe,:159:fe,:160:fe,:161:fe,:235:fe,:236:fe,238fe#,239ҟfe,241ҟfe,242ҟfe,282ҟfe,283ҟfe,284ҟfe,285ҟfe,295ҟfe,296ҟfe,360fe#,361ҟfe,362ҟfe,363ҟfe,368ҟfe,369ҟfe,375ҟfe,376ҟfe,644ҟfe,713ҟfe,714fe#,l723lfeo,l724lfe,l728lfe,l729lfe,l733lfe,l734lfe,l1000lfep,l1001lfe,1007fe(,<1008<fe<,<1012<fe,<1013<fe,<1017<fe,<1018<fe,<1178<fe,<1191<fe,1192fe(,1193fe,1194fe,1203fe,1204fe,1414fe,1415fe.yffi !ګ: +fe,:151:fe:,:155:fe,:156:fe,:158:fe,:159:fe,:160:fe,:161:fe,:235:fe,:236:fe,238fe#,239ҟfe,241ҟfe,242ҟfe,282ҟfe,283ҟfe,284ҟfe,285ҟfe,295ҟfe,296ҟfe,360fe#,361ҟfe,362ҟfe,363ҟfe,368ҟfe,369ҟfe,375ҟfe,376ҟfe,644ҟfe,713ҟfe,714fe#,l723lfeo,l724lfe,l728lfe,l729lfe,l733lfe,l734lfe,l1003lfep,l1004lfe,1010fe(,<1011<fe<,<1015<fe,<1016<fe,<1020<fe,<1021<fe,<1183<fe,<1196<fe,1197fe(,1198fe,1199fe,1208fe,1209fe,1419fe,1420fe.yffi !ګ: 535 fe,536,537,539,541.yffintffpzޫ: 535 @@ -8346,198 +8460,196 @@ fe,s536,537.yffintffqffz&U: 536 fe.yffshift: -1469 -fe.yellowk: -108,w112wfez,w113wfe,w1500.yellowffgr}'een6hj: -108,;112;fe;,;113;fe,;1500.yx 5: +1474 +fe.@PyellowLU: +108,w112wfez,w113wfe,w1505. yellowffgr}'een+I: +108,;112;fe;,;113;fe,;1505.yxR: 152 -fe,b153bfee,b200bfe,b364bfe,b365bfe,b725bfe,b726bfe,b1009bfef,b1010bfe,1195fe(,[1196[fe_,[1347[fe,[1348[fe.yy ]: -1198 -fe,r1199rfev,r1345rfe,r1346rfe,r1350rfe,r1351rfe,r1354rfe,r1355rfe.yz -H: +fe,b153bfee,b200bfe,b364bfe,b365bfe,b725bfe,b726bfe,b1012bfef,b1013bfe,1200টfe,[1201[fe_,[1352[fe,[1353[fe.yy: +1203 +fe,r1204rfev,r1350rfe,r1351rfe,r1355rfe,r1356rfe,r1359rfe,r1360rfe.yz: 152 -fe,153fe,200fe,364fe,365fe,725fe,726fe,1009fe,1010fe,1195fe(,[1196[fe_,[1347[fe,[1348[fe.y0 S: -925 -fe.y1 S: -925 -fe.z: +fe,153fe,200fe,364fe,365fe,725fe,726fe,1012fe,1013fe,1200টfe,[1201[fe_,[1352[fe,[1353[fe.y0: +928 +fe.y1: +928 +fe.ऱz«: 150 -fe,?v151?vfe?y,?v155?vfe,?v156?vfe,?v158?vfe,?v159?vfe,?v160?vfe,?v161?vfe,?v235?vfe,?v236?vfe,238fe#,239ҟfe,241ҟfe,242ҟfe,282ҟfe,283ҟfe,284ҟfe,285ҟfe,295ҟfe,296ҟfe,360fe#,361ҟfe,362ҟfe,363ҟfe,368ҟfe,369ҟfe,375ҟfe,376ҟfe,644ҟfe,713ҟfe,714fe#,l723lfeo,l724lfe,l728lfe,l729lfe,l733lfe,l734lfe,l1000lfep,l1001lfe,1007fe(,<1008<fe<,<1012<fe,<1013<fe,<1017<fe,<1018<fe,<1122<fe,<1191<fe,1192fe(,1193fe,1194fe,1203fe,1204fe,1414fe,1415fe.zffaxis: -946 -fe.zffaxisffpt&?P: -954 -fe.zffi ]: +fe,?v151?vfe?y,?v155?vfe,?v156?vfe,?v158?vfe,?v159?vfe,?v160?vfe,?v161?vfe,?v235?vfe,?v236?vfe,238টfe,239ҟfe,241ҟfe,242ҟfe,282ҟfe,283ҟfe,284ҟfe,285ҟfe,295ҟfe,296ҟfe,360টfe,361ҟfe,362ҟfe,363ҟfe,368ҟfe,369ҟfe,375ҟfe,376ҟfe,644ҟfe,713ҟfe,714টfe,l723lfeo,l724lfe,l728lfe,l729lfe,l733lfe,l734lfe,l1003lfep,l1004lfe,1010টfe,<1011<fe<,<1015<fe,<1016<fe,<1020<fe,<1021<fe,<1127<fe,<1196<fe,1197টfe,1198fe,1199fe,1208fe,1209fe,1419fe,1420fe.zffaxis?: +949 +fe.zffaxisffpt: +957 +fe.zffi>;: 535 -fe,i536,538,540,541.zffintffp: +fe,i536,538,540,541.zffintffp?: 538 -fe,539,540.zffintffqt: +fe,539,540.zffintffqUK: 538 -fe,539,540.Z_YF_: -946 -fe,G1177GfeK,G1179.@PzxR: +fe,539,540.Z_Y': +949 +fe,G1182GfeK,G1184.zxR: 152 -fe,21532fe5,22002fe,23642fe,23652fe,27252fe,27262fe,210092fe6,210102fe, 1195টfe,[1196[fe_,[1347[fe,[1348[fe.zy7: +fe,21532fe5,22002fe,23642fe,23652fe,27252fe,27262fe,210122fe6,210132fe,1200টfe,[1201[fe_,[1352[fe,[1353[fe.zy7: 152 -fe,153fe,200fe,364fe,365fe,725fe,726fe,1009fe,1010fe,1195টfe,[1196[fe_,[1347[fe,[1348[fe.zz˩: -1198 -fe,1199fe,1345fe,1346fe,1350fe,1351fe,1354fe,1355fe.z0: -925 +fe,153fe,200fe,364fe,365fe,725fe,726fe,1012fe,1013fe,1200টfe,[1201[fe_,[1352[fe,[1353[fe.zz˩: +1203 +fe,1204fe,1350fe,1351fe,1355fe,1356fe,1359fe,1360fe.z0: +928 fe.z1: -925 -fe.En썭3DLDFPRÎG*NAMESXOFTHESECTIONS505n@PhActionsUUinmain@1500,X1501i -Usedinsection1511. 5hAllUUColors(n30i -CitedXinsections109and114.hCheckUUintersectionpGointloGcations@1184i -UsedXinsection1183.hDECUUcommandlineoptionproGcessing@1505i -UsedXinsection1502.hDeclarationsܡfortheheader le@18,e20,23,27,190,192,258,275,587,611,648i +928 +fe.RMn썫510NAMESXOFTHESECTIONS*3DLDFPRÎGn@PhActionsUUinmain@1505,X1506i +Usedinsection1519. 5hAllUUColors(n30i +CitedXinsections109and114.hCheckUUintersectionpGointloGcations@1189i +UsedXinsection1188.hDECUUcommandlineoptionproGcessing@1510i +UsedXinsection1507.hDeclarationsܡfortheheader le@18,e20,23,27,190,192,258,275,587,611,648i CitedHYinsection21.Usedin sectionsX36,195,261,590,614,and651.hDeclareUUI/Ofunctions@42,X45,47,49i -Usedinsection53.hDeclareUUPatternfunctions@1278,X1281,1284i -Usedinsections1287and1288.hDeclareUUnamespaceProjectionsAa211i +Usedinsection53.hDeclareUUPatternfunctions@1283,X1286,1289i +Usedinsections1292and1293.hDeclareUUnamespaceProjectionsAa211i UsedXinsection260.hDeclareUUnamespaceSorting,213i UsedXinsection260.hDeclareUUnon-membGerfunctionsforColor#103i -UsedXinsection119.hDeclareUUnon-membGerfunctionsforP9oints'ݭ436,X490,511i -Usedinsection590.hDeclareUUparserfunctions@1492i -UsedXinsection1496.hDeclareUUutilityfunctions@21,X29,31i -Citedinsection21.qUsedinsection36.hDeclareFCircle&functions@1234,1237,1239,1242,1244,1248,1250,1253,1255,1256,1258,1260,1262i -Used{insectionX1232.hDeclarerColor#functions@58,060,63,65,68,70,72,73,75,77,80,82,84,86,88,90,92,95,97,98,99,100,102,105,107i -UsedXinsection56.hDeclareUUCubQoid+Dfunctions@1410,X1412,1414,1416,1418,1420i -Usedinsection1408.hDeclareUUDoQdecahedronOj8functions@1451,X1454,1457,1459i -Usedinsection1448.hDeclareܕEllipse)functions@1101,e 1104,1106,1109,1111,1114,1117,1119,1121,1123,1124,1126,1128,1131,1134,1136,1139,1141,1143,1145,1149,1151,1154,1156,1158,1160,1162,1165,1167,1170,1187,1189,1191,1193,1195,1198,X1200,1203,1205,1208,1210,1213,1215,1217,1219i -Usedinsection1098.hDeclareZF +UsedXinsection119.hDeclareUUnon-membGerfunctionsforP9oints'ݭ436,X490i +Usedinsection590.hDeclareUUparserfunctions@1497i +UsedXinsection1501.hDeclareUUutilityfunctions@21,X29,31i +Citedinsection21.qUsedinsection36.hDeclareFCircle&functions@1239,1242,1244,1247,1249,1253,1255,1258,1260,1261,1263,1265,1267i +Used{insectionX1237.hDeclarerColor#functions@58,060,63,65,68,70,72,73,75,77,80,82,84,86,88,90,92,95,97,98,99,100,102,105,107i +UsedXinsection56.hDeclareUUCubQoid+Dfunctions@1415,X1417,1419,1421,1423,1425i +Usedinsection1413.hDeclareUUDoQdecahedronOj8functions@1456,X1459,1462,1464i +Usedinsection1453.hDeclareܕEllipse)functions@1106,e 1109,1111,1114,1116,1119,1122,1124,1126,1128,1129,1131,1133,1136,1139,1141,1144,1146,1148,1150,1154,1156,1159,1161,1163,1165,1167,1170,1172,1175,1192,1194,1196,1198,1200,1203,X1205,1208,1210,1213,1215,1218,1220,1222,1224i +Usedinsection1103.hDeclareZF oQcus%.functions@558,560,562,565,567,569,571,573,576,577,578,579,580,581,583,584i -Used~insectionX556.hDeclareUUIcosahedronCyfunctions@1465,X1468,1470,1472i -Usedinsection1462.hDeclareUULabQel" functions@210i +Used~insectionX556.hDeclareUUIcosahedronCyfunctions@1470,X1473,1475,1477i +Usedinsection1467.hDeclareUULabQel" functions@210i UsedXinsection208.hDeclareUULine-constructors@595,X597i Usedinsection593.hDeclareUULine-functions@599,X602,604,608i -Usedinsection593.hDeclareVP9ath>functions@656,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,872,874,876,877,878,879,881,887,889,891,893,899,905,908,912,914,917,929i -UsedinsectionX654.hDeclareyPicture,-functions@218,220,222,224,225,227,229,230,231,235,238,240,241,243,244,246,248,250,253,254,X255,256i +Usedinsection593.hDeclareVP9ath>functions@656,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,Vw856,866,868,871,872,874,876,877,878,879,881,888,890,892,894,896,902,908,911,915,917,920,932iUsedXinsection654.hDeclareyPicture,-functions@218,220,222,224,225,227,229,230,231,235,238,240,241,243,244,246,248,250,253,254,X255,256i Usedinsection216.hDeclareUUPlane# functions@619,X621,623,625,628,630,633,635,640,642,643,645i Usedinsection617.hDeclareUUP9oint"Dconstructors@279,X282,286i -Usedinsection264.hDeclare$P9oint!functions@284,b288,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,477,479,481,483,485,488,492,494,496,498,500,502,504,507,509,513,516,523,525,528,529i -UsedXinsection264.hDeclaresP9olygon/functions@975,977,981,990,992,998,1000,1003,1005,1007,1009,1012,1014,1017,1019i -UsedinXsection972.hDeclareUUP9olyhedron@wfunctions@1427i -UsedXinsection1426.hDeclareY]Rectangle8Ofunctions@1058,٠1061,1063,1066,1068,1071,1073,1076,1080,1082,1085,1087,1090,1091,1092,1093i -UsedXinsection1056.hDeclareSRegus4wClus4Planeus4Curv9eq >functions@940,G941,942,943,944,945,947,950,961,964,966,967i -UsedwinsectionX938.hDeclare(Regus4wP9olygonG2functions@1023,1026,1029,1032,1036,1038,1042,1044,1046,1047,1048,1050,1051i -UsedinXsection1022.p:n썫506NAMESXOFTHESECTIONS*3DLDFPRÎGn@PhDeclareUUSolidus4wF -acedA{functions@1401i -UsedXinsection1400. hDeclarem%Solid X!functions@1294,1296,1298,1300,1302,1304,1306,1308,1311,1313,1315,1317,1319,1321,1324,1326, 1328,1330,1332,1334,1336,1338,1341,1343,1345,1347,1350,1352,1354,1356,1359,1361,1363,1364,1366,1368,1370,X1372,1374,1378,1381,1384,1387,1390,1393i -Usedinsection1291.hDeclareUUT -etrahedronEFfunctions@1434,X1437,1441,1443,1445i -Usedinsection1431.hDeclareQT +Usedinsection264.hDeclare$P9oint!functions@284,b288,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,477,479,481,483,485,488,492,494,496,498,500,502,504,507,509,511,513,516,523,525,528,X529i +Usedinsection264.hDeclareKP9olygon/Zfunctions@978,980,984,993,995,1001,1003,1006,1008,1010,1012,1015,1017,1020,1022i +UsedinXsection975.hDeclareUUP9olyhedron@wfunctions@1432i +UsedXinsection1431.hDeclareY]Rectangle8Ofunctions@1061,٠1064,1066,1069,1071,1074,1076,1079,1082,1085,1087,1090,1092,1095,1096,1097,X1098i +Usedinsection1059.hDeclareSRegus4wClus4Planeus4Curv9eq >functions@943,G944,945,946,947,948,950,953,964,967,969,970i +UsedwinsectionX941.hDeclare(Regus4wP9olygonG2functions@1026,1029,1032,1035,1039,1041,1045,1047,1049,1050,1051,1053,1054i +UsedinXsection1025.n썭3DLDFPRÎG*NAMESXOFTHESECTIONS511n@PhDeclareUUSolidus4wF +acedA{functions@1406i +UsedXinsection1405. hDeclarem%Solid X!functions@1299,1301,1303,1305,1307,1309,1311,1313,1316,1318,1320,1322,1324,1326,1329,1331, 1333,1335,1337,1339,1341,1343,1346,1348,1350,1352,1355,1357,1359,1361,1364,1366,1368,1369,1371,1373,1375,X1377,1379,1383,1386,1389,1392,1395,1398i +Usedinsection1296.hDeclareUUT +etrahedronEFfunctions@1439,X1442,1446,1448,1450i +Usedinsection1436.hDeclareQT ransform;functions@124,126,128,130,132,134,136,138,140,142,145,147,150,152,155,157,158,160,166,X167,168,171,173,176,178,181,187i Usedinsection122.hDeclareUUT -runcus4wOctahedrondyTfunctions@1479,X1482,1484i -Usedinsection1476.hDeclareUUdr}'awffaxes/[+()@921,X926i -Usedinsection934.hDeclareUUnamespaceH56i -UsedXinsections118and119.hDe neUUclass5CubQoidGD1408i -UsedXinsections1422and1423.hDe neUUclass5DoQdecahedronk581448i -UsedXinsections1488and1489.hDe neUUclass5EllipseD^1098i -UsedXinsections1227and1228.hDe neUUclass5F +UsedXinsection589.hDe neUUclass5Circle@֭1237i +UsedXinsections1278and1279.hDe neUUclass5Color>H56i +UsedXinsections118and119.hDe neUUclass5CubQoidGD1413i +UsedXinsections1427and1428.hDe neUUclass5DoQdecahedronk581453i +UsedXinsections1493and1494.hDe neUUclass5EllipseD^1103i +UsedXinsections1232and1233.hDe neUUclass5F oQcus?j556i -UsedXinsections589and590.hDe neUUclass5Icosahedron_Ny1462i -UsedXinsections1488and1489.hDe neUUclass5P9ath;654i -UsedXinsections933and934.hDe neUUclass5P9oint>264i -UsedXinsections589and590.hDe neUUclass5P9olygonKz972i -UsedXinsections1052and1053.hDe neUUclass5P9olyhedron\w1426i -UsedXinsections1488and1489.hDe neUUclass5RectangleT?1056i -UsedXinsections1094and1095.hDe neUUclass5Regus4wClus4Planeus4Curv9emB938i -UsedXinsections968and969.hDe neUUclass5Regus4wP9olygonc^1022i -UsedXinsections1052and1053.hDe neUUclass5Solidus4wF -aced]k{1400i -UsedXinsections1404and1405.hDe neUUclass5Solid;1291i -UsedXinsections1396and1397.hDe neUUclass5T -etrahedrona1431i -UsedXinsections1488and1489.hDe neUUclass5T +UsedXinsections589and590.hDe neUUclass5Icosahedron_Ny1467i +UsedXinsections1493and1494.hDe neUUclass5P9ath;654i +UsedXinsections936and937.hDe neUUclass5P9oint>264i +UsedXinsections589and590.hDe neUUclass5P9olygonKz975i +UsedXinsections1055and1056.hDe neUUclass5P9olyhedron\w1431i +UsedXinsections1493and1494.hDe neUUclass5RectangleT?1059i +UsedXinsections1099and1100.hDe neUUclass5Regus4wClus4Planeus4Curv9emB941i +UsedXinsections971and972.hDe neUUclass5Regus4wP9olygonc^1025i +UsedXinsections1055and1056.hDe neUUclass5Solidus4wF +aced]k{1405i +UsedXinsections1409and1410.hDe neUUclass5Solid;1296i +UsedXinsections1401and1402.hDe neUUclass5T +etrahedrona1436i +UsedXinsections1493and1494.hDe neUUclass5T ransformV'122i UsedXinsections194and195.hDe neUUclass5T -runcus4wOctahedronDT1476i -UsedXinsections1488and1489.hDe neUUdr}'awffaxes/[+()@922,X923,924,925,927i -Usedinsection933.hDe neUUstatic".P9ointA˫dataUUmembGers@265i -UsedXinsection589.hDe neUUstatic".const@DoQdecahedronݳdataUUmembGers@1449i -UsedXinsection1488.hDe neUUstatic".const@IcosahedrondataUUmembGers@1463i -UsedXinsection1488.hDe neUUstatic".const@Solid]dataUUmembGers@1292i -UsedXinsection1396.hDe neUUstatic".const@T -etrahedron)dataUUmembGers@1432i -UsedXinsection1488.hDe neUUstatic".const@T -runcus4wOctahedronϫdataUUmembGers@1477i -UsedXinsection1488.hDe neUUstatic".EllipseG\dataUUmembGers@1099i -UsedXinsection1227.hDe neUUstatic".ShapQeDߐmembGerUUvqariables@201i +runcus4wOctahedronDT1481i +UsedXinsections1493and1494.hDe neUUdr}'awffaxes/[+()@925,X926,927,928,930i +Usedinsection936.hDe neUUstatic".P9ointA˫dataUUmembGers@265i +UsedXinsection589.hDe neUUstatic".const@DoQdecahedronݳdataUUmembGers@1454i +UsedXinsection1493.hDe neUUstatic".const@IcosahedrondataUUmembGers@1468i +UsedXinsection1493.hDe neUUstatic".const@Solid]dataUUmembGers@1297i +UsedXinsection1401.hDe neUUstatic".const@T +etrahedron)dataUUmembGers@1437i +UsedXinsection1493.hDe neUUstatic".const@T +runcus4wOctahedronϫdataUUmembGers@1482i +UsedXinsection1493.hDe neUUstatic".EllipseG\dataUUmembGers@1104i +UsedXinsection1232.hDe neUUstatic".ShapQeDߐmembGerUUvqariables@201i UsedXinsection203.hDe neUUstatic".class=~P9athYe8dataUUmembGers@655i -UsedXinsection933.hDe neUUstruct$LLine?ӭ593i +UsedXinsection936.hDe neUUstruct$LLine?ӭ593i UsedXinsections613and614.hDe neUUstruct$LPlaneF617i UsedXinsections650and651.hDiscardUUp}'oints!?andUUc}'onnectors6ɇ659i UsedXinsections657,666,671,676,and687.hF*orwardUUdeclarations@33i -UsedXinsection36.hGCCUU2.95printversion,copyright,andlicenseinformation@1507i -UsedXinsection1506.hGCCUU3.3andDECprintversion,copyright,andlicenseinformation@1508i -UsedXinsection1506.rn썫508NAMESXOFTHESECTIONS*3DLDFPRÎGn@PhGCCUUcommandlineoptionproGcessing@1503i -UsedXinsection1502. $hGNUUUF*reeDoGcumentationLicense@1515i -CitedXinsection1.hGNUUUGeneralPublicLicense@1516i -CitedXinsection1.hGetUUinput@1499ihGlobalUUconstants@19,X25,26,115,191,274i +UsedXinsection36.hGCCUU2.95printversion,copyright,andlicenseinformation@1512i +UsedXinsection1511.hGCCUU3.3andDECprintversion,copyright,andlicenseinformation@1513i +UsedXinsection1511.Gn썭3DLDFPRÎG*NAMESXOFTHESECTIONS513n@PhGCCUUcommandlineoptionproGcessing@1508i +UsedXinsection1507. $hGNUUUF*reeDoGcumentationLicense@1523i +CitedXinsection1.hGNUUUGeneralPublicLicense@1524i +CitedXinsection1.hGetUUinput@1504ihGlobalUUconstants@19,X25,26,115,191,274i Usedinsections35,118,194,and589.hGlobalUUvqariables@15,X16,17,39,189,257,586i -Citedinsection22.qUsedinsections35,52,194,260,and589.hHandleUUintersectionpGoint@1181i -UsedXinsection1180.hInclude\ les@11,38,55,121,197,206,263,592,616,653,936,971,1055,1097,1230,1276,1290,1399,1407,1425,1491, 1498i -Used%;insections35,9352,118,194,203,260,589,613,650,933,968,1052,1094,1227,1273,1287,1396,1404,1422,X1488,1495,and1512. $hInitializeUUcoGordinatesandlimits@278i +Citedinsection22.qUsedinsections35,52,194,260,and589.hHandleUUintersectionpGoint@1186i +UsedXinsection1185.hInclude\ les@11,38,55,121,197,206,263,592,616,653,939,974,1058,1102,1235,1281,1295,1404,1412,1430,1496, 1503i +Used%;insections35,9352,118,194,203,260,589,613,650,936,971,1055,1099,1232,1278,1292,1401,1409,1427,X1493,1500,and1520. $hInitializeUUcoGordinatesandlimits@278i UsedXinsections280,283,and287.hInitializeUUstatic".LabQelB4dataUUmembGers@209i -UsedXinsection260.hMain@1509,X1510,1511i -Usedinsection1512.hMa8jorUUColors(n3112i +UsedXinsection260.hMain@1514,X1515,1516,1517,1518,1519i +Usedinsection1520.hMa8jorUUColors(n3112i CitedXinsections109and114.qUsedinsection109.hNormalizeUUpGoint@389i UsedXinsection381.hOutputUUP9ath &864i -UsedXinsections859,861,862,and863.hPrintUUversion,copyright,andlicenseinformation@1506i -UsedXinsection1510.hProGcessUUcommandlineoptions@1502i -UsedXinsection1509.hProGcessUUvectorsfordr}'aw~0()@1377i -UsedXinsection1379.hProGcessUUvectorsfor llH()@1380i -UsedXinsection1382.hProGcessUUvectorsfor lldr}'aw$()@1383i -UsedXinsection1385.hProGcessUUvectorsforundr}'aw${T()@1386i -UsedXinsection1388.hProGcessUUvectorsforun lll()@1389i -UsedXinsection1391.hProGcessUUvectorsforun lldr}'aw/()@1392i -UsedXinsection1394.hTypGeUUde nitions@12,X267,268,270,272i +UsedXinsections859,861,862,and863.hPrintUUversion,copyright,andlicenseinformation@1511i +UsedXinsection1518.hProGcessUUcommandlineoptions@1507i +UsedXinsection1517.hProGcessUUvectorsfordr}'aw~0()@1382i +UsedXinsection1384.hProGcessUUvectorsfor llH()@1385i +UsedXinsection1387.hProGcessUUvectorsfor lldr}'aw$()@1388i +UsedXinsection1390.hProGcessUUvectorsforundr}'aw${T()@1391i +UsedXinsection1393.hProGcessUUvectorsforun lll()@1394i +UsedXinsection1396.hProGcessUUvectorsforun lldr}'aw/()@1397i +UsedXinsection1399.hTypGeUUde nitions@12,X267,268,270,272i Usedinsections35,36,589,and590.hUtilityUUclasses@13i -UsedXinsections35and36.hV*ersioncontrolidenti er@10,37,54,120,196,205,262,591,615,652,935,970,1054,1096,1229,1275,1289,1398,1406, 1424,931490,1497i -Used%;insections35,9352,118,194,203,260,589,613,650,933,968,1052,1094,1227,1273,1287,1396,X1404,1422,1488,1495,and1512. $hcircles.h:1274ihcolors.h5119ihcuboid.h51423ihcurves.h5969ihellipses.h@01228ihio.h 53ihlines.h0p614ihloader.h56,X7,8,9ihparser.h51496ihpaths.h0p934ihpatterns.h@01288ihpictures.h@0261ihplanes.h5651ihpoints.h5590ihpolygons.h@01053ihpolyhed.h:1489ihpspglb.h536ihrectangs.h@01095ihshapes.h5204ihsolfaced.h@01405ihsolids.h51397ihtransfor.h@0195ihLineXglobalUUconstants@610i -UsedXinsection613.0n썭3DLDFPRÎG*NAMESXOFTHESECTIONS509n@PhPlane!`globalUUconstants@647i +UsedXinsections35and36.hV*ersioncontrolidenti er@10,37,54,120,196,205,262,591,615,652,938,973,1057,1101,1234,1280,1294,1403,1411, 1429,931495,1502i +Used%;insections35,9352,118,194,203,260,589,613,650,936,971,1055,1099,1232,1278,1292,1401,X1409,1427,1493,1500,and1520. $hcircles.h:1279ihcolors.h5119ihcuboid.h51428ihcurves.h5972ihellipses.h@01233ihio.h 53ihlines.h0p614ihloader.h56,X7,8,9ihparser.h51501ihpaths.h0p937ihpatterns.h@01293ihpictures.h@0261ihplanes.h5651ihpoints.h5590ihpolygons.h@01056ihpolyhed.h:1494ihpspglb.h536ihrectangs.h@01100ihshapes.h5204ihsolfaced.h@01410ihsolids.h51402ihtransfor.h@0195ihLineXglobalUUconstants@610i +UsedXinsection613.n썫514NAMESXOFTHESECTIONS*3DLDFPRÎGn@PhPlane!`globalUUconstants@647i UsedXinsection650. hextern%~AllUUColors(n30i CitedXinsection110.hextern%~Ma8jorUUColors(n3113i CitedXinsection110.qUsedinsection110.hextern%~declarationUUofnamespaceProjectionsAa212i @@ -8545,44 +8657,44 @@ UsedXinsection261.hextern%~globalUUconstantdeclarations@116i UsedXinsection119.hextern%~vqariableUUdeclarations@40i UsedXinsection53.hextern%~namespace_kColors'declaration@110i -CitedXinsections110and114.qUsedinsection119..nݠnUJc!.ٓRcmr73DLDF:TheProgram[BVersion1.1.3byLaurenceD.Finston@NovembGerUU2003[Section Page CopyrightUUandLicense؍................................................................. C11In9troQduction (3DLDF.web)T........................................................... C21F*ormattingUUcommandsq................................................................. C32PreproQcessorTv\rariablesandlibrary les (loader.web)............................... C53Con gurationUU lef...................................................................... C63LibraryUU les?.......................................................................... C74GlobalTitems (pspglb.web)........................................................ B106IncludeUU les......................................................................... B116TypGeUUde nitionsh...................................................................... B126UtilityUUclasses3........................................................................ B137GlobalUUvqariables...................................................................... B147F*orUUcompilation.................................................................. B157F*orUUtheheader le/................................................................ B2310GlobalUUconstantsÅ..................................................................... B2410F*orUUcompilation.................................................................. B2510F*orUUtheheader le/................................................................ B2711UtilityUUfunctionsG..................................................................... B2811SolveUUquadraticequation}.......................................................... B2911DynamicUUalloGcation#~............................................................... B3112F*orwardUUdeclarationsUJ................................................................. B3313PuttingUUpspglbtogether8.............................................................. B3413I/O (io.web)NY...................................................................... B3714IncludeUU les......................................................................... B3814GlobalUUvqariables...................................................................... B3914I/OUUfunctions........................................................................ B4115InitializeUUI/O8ڍ.................................................................... B4215W*riteUUfoGoters.................................................................... B4516BeginUU gureUL..................................................................... B4717EndUU gureG....................................................................... B4918PuttingUUI/OtogetherUH................................................................. B5118n썫iiTJABLEXOFCONTENTS13DLDFPRÎGn@PColor (colors.web)Q................................................................ B5419 IncludeUU les......................................................................... B5519ColorUUclassde nition`................................................................. B5619ConstructorsUUandsettingfunctionsUB..................................................... B5719DefaultUUconstructor............................................................... B5819CopyUUconstructorUJ................................................................. B6020NameUUandunsignedTshortarguments:.............................................. B6220(Constructor................................................................. B6320(SettingUUfunctionԍ.............................................................. B6521ThreeUUrealarguments............................................................. B6721(Constructor................................................................. B6821(SettingUUfunctionԍ.............................................................. B7022Pseudo-constructorUUfordynamicalloGcationct............................................... B7223AssignmentUO.......................................................................... B7324Equalityꤍ............................................................................ B7524Inequalityk........................................................................... B7724MoGdifying/........................................................................... B7924SetUUnameq........................................................................ B8024SetUUusename*.................................................................... B8225MoGdifyㅍ.......................................................................... B8425SetUUredpart*..................................................................... B8626SetUUgreenpartۍ................................................................... B8827SetUUbluepart.................................................................... B9027Showč............................................................................... B9228ReturningUUelementsandinformationj.................................................... B9428IsUUonfreestoreO................................................................... B9528GetUUColorpartsu................................................................. B9628(GetUUredpart................................................................. B9729(GetUUgreenpartn/............................................................... B9829(GetUUbluepartuK................................................................ B9929GetUUusename................................................................... A10029GetUUname'...................................................................... A10229OutputUUopGeratorq.................................................................... A10329De neUUColorsinMET*APOST........................................................ A10530InitializeUUColorsVȍ.................................................................... A10730NamespaceUUColorsV.................................................................. A10931Ma8jorUUColors;...................................................................... A11132InternalUU(withinitialization)z...................................................... A11232ExternalUM....................................................................... A11333AllUUColorsVˍ......................................................................... A11433GlobalUUconstantsÅ.................................................................... A11533PuttingUUColortogetherp.............................................................. A11734T -ransformations (transform.web)................................................. A12035IncludeUU les........................................................................ A12135T -ransformUUclassde nition<"........................................................... A12235Constructorsݍ........................................................................ A12335DefaultUUconstructor.............................................................. A12435ConstructorUUwithonerealargument-............................................... A12636ConstructorUUwith16realargumentsf............................................... A12836AssignmentUO......................................................................... A13037ResetUUtoidentityUUmatrix8׍.............................................................. A13237SettingUUvqaluesi....................................................................... A13438닠n썭3DLDFPRÎG.vTJABLEXOFCONTENTSiiin@PClean.............................................................................. A13638 EpsilonP............................................................................ A13839T*estUUforidentityUUmatrix,.............................................................. A13939Non-constUUversion................................................................ A14039constUUversion................................................................... A14239Querying........................................................................... A14440GetUUelement.................................................................... A14540Showč.............................................................................. A14740AneUUtransformations*............................................................... A14941Scale.......................................................................... A15041Shear.......................................................................... A15242Shift*........................................................................... A15443(realUUarguments............................................................. A15543(P9ointUUargument8............................................................ A15744(ShiftUUwithmultiplication8΍..................................................... A15844RotationUUaroundthemainaxescy.................................................... A16044RotationUUaroundanarbitraryaxis ................................................. A16546(P9ointUUargumentsG............................................................ A16646(P9athUUargumentAǍ............................................................. A16747AlignmentUUwithanaxisq.............................................................. A16847MatrixUUmultiplication)................................................................ A16947WithUUassignment................................................................ A17047(realUUargumentuR.............................................................. A17147(T -ransformUUargument_........................................................ A17347PlainUUmultiplicationꚍ............................................................. A17548(realUUargumentuR.............................................................. A17648(T -ransformUUargument_........................................................ A17848MatrixUUinversion.................................................................... A18049constUUversion(noassignment)K.................................................... A18149Non-constUUversion(withassignment)S+.............................................. A18752GlobalUUvqariables..................................................................... A18952GlobalUUconstantsÅ.................................................................... A19153PuttingUUT -ransformtogetherؑ......................................................... A19353ShapQe (shapes.web).............................................................. A19653IncludeUU les........................................................................ A19753ShapQeUUclassde nitionÒ............................................................... A19853StaticUUdatamembGers\f................................................................. A20155PuttingUUShapQetogether`.............................................................. A20255PictureTandLabQel (pictures.web)΅................................................ A20557IncludeUU les........................................................................ A20657LabQelQҍ............................................................................. A20757LabQelUUclassde nitionn<................................................................ A20857StaticUUdatamembGers\f................................................................. A20957DeclarationsUUforLabQelfunctions.5...................................................... A21058namespaceTProjections6............................................................ A21158namespaceTSorting................................................................ A21359Picture(........................................................................... A21560PictureUUclassde nition.............................................................. A21660Constructorsݍ........................................................................ A21760DefaultUUconstructor.............................................................. A21860CopyUUconstructorUJ................................................................ A22061*?n썫ivTJABLEXOFCONTENTS/)3DLDFPRÎGn@PDestructor\m.......................................................................... A22161 AssignmentUO......................................................................... A22261AddingUUelements*.................................................................... A22361AddUUPicture\................................................................... A22461AddUUShapQe\.................................................................... A22561AddUULabQel`..................................................................... A22762SuppressUULabQelsY.................................................................... A22962UnsuppressUULabQels.................................................................. A23062KillUULabQelsV̍......................................................................... A23162T*ransformationsٍ..................................................................... A23363AneUUtransformations(........................................................... A23463(Scale...................................................................... A23563(Shift*....................................................................... A23763<realUUversion)0 3196 y Fl(See)26 b(also)f(sections)i +(38,)e(55,)h(121,)g(197,)g(206,)h(263,)f(592,)g(616,)g(653,)g(939,)g +(974,)g(1058,)h(1102,)f(1235,)h(1281,)f(1295,)g(1404,)h(1412,)f(1430,)h +(1496,)166 3279 y(and)d(1503.)0 3387 y(This)e(co)r(de)j(is)d(used)h(in) +g(sections)h(35,)f(52,)g(118,)h(194,)f(203,)g(260,)h(589,)f(613,)h +(650,)f(936,)h(971,)f(1055,)h(1099,)g(1232,)f(1278,)h(1292,)g(1401,)g +(1409,)f(1427,)166 3470 y(1493,)h(1500,)h(and)f(1520.)0 +3669 y Fk(12.)94 b(T)m(yp)s(e)40 b(de\014nitions.)94 b Fm([)p Fh(LDF)25 b(2002.10.15.)p Fm(])67 b(Curren)n(tly)-7 b(,)35 b(all)f(\015oating)f(p)r(oin)n(t)h(v)-5 b(ariables)33 -b(are)g(declared)g(as)g Fk(reals)5 b Fm(.)0 3670 y(I'v)n(e)32 +b(are)g(declared)g(as)g Fk(reals)5 b Fm(.)0 3769 y(I'v)n(e)32 b(de\014ned)g Fk(real)37 b Fm(in)32 b(order)f(to)h(mak)n(e)f(it)i(easy) e(to)h(switc)n(h)g(b)r(et)n(w)n(een)g(using)f Fi(\015o)l(ats)43 b Fm(and)32 b Fi(doubles)45 b Fm(simply)32 b(b)n(y)f(c)n(hanging)0 -3770 y(the)d(v)-5 b(alue)27 b(of)h(the)g(#)p Fk(if)41 -b Fm(expression.)83 3869 y(I)29 b(try)f(to)g(a)n(v)n(oid)f(using)h +3869 y(the)d(v)-5 b(alue)27 b(of)h(the)g(#)p Fk(if)41 +b Fm(expression.)83 3968 y(I)29 b(try)f(to)g(a)n(v)n(oid)f(using)h (prepro)r(cessor)e(commands)i(\(see)g(In)n(tro)r(duction\),)h(but)g (this)g(is)f(one)g(of)g(the)h(cases)f(where)f(there's)0 -3969 y(no)39 b(b)r(etter)g(alternativ)n(e)f(to)i(using)e(the)i(prepro)r +4068 y(no)39 b(b)r(etter)g(alternativ)n(e)f(to)i(using)e(the)i(prepro)r (cessor)d(\(I)i(don't)g(consider)g(commen)n(ting)f(out)i(the)f(un)n(w)n -(an)n(ted)g(v)n(ersion)0 4069 y(preferable)27 b(to)g(using)g(the)h -(prepro)r(cessor\).)p 0 4173 1643 4 v 1738 4205 a Fk(Begin)j(Log)p -2257 4173 V 83 4346 a Fm([)p Fh(LDF)25 b(2002.04.10.)p -Fm(])61 b(Added)28 b(formatting)f(commands.)83 4445 y([)p -Fh(LDF)e(2002.04.10.)p Fm(])61 b(Added)28 b(declaration)f(of)g -Fk(b)s(o)s(ol)p 1714 4445 29 5 v 39 w(real)t Fm(.)83 -4545 y([)p Fh(LDF)e(2002.12.11.)p Fm(])73 b(Added)41 -b(the)f(macros)e Ff(LDF_REAL_FLOAT)h Fm(and)g Ff(LDF_REAL_DOUBLE)o -Fm(.)73 b(They're)39 b(needed)h(b)r(elo)n(w,)0 4645 y(where)27 -b Ff(MAX_REAL)i Fm(and)e Ff(INVALID_REAL)g Fm(are)g(declared)g(in)g -(the)h(GNU/Lin)n(ux)g(v)n(ersion)e(\(using)i(GCC\).)83 -4744 y([)p Fh(LDF)d(2003.06.03.)p Fm(])61 b(Added)28 -b Fi(r)l(e)l(al)p 1137 4744 26 4 v 31 w(short)13 b Fm(.)37 -b(It's)28 b(the)f(return)h(t)n(yp)r(e)f(of)h Fk(Plane)13 -b Fm(::)8 b Fi(get)p 2652 4744 V 31 w(distanc)l(e)j Fm(\()j(\).)p -0 4836 1678 4 v 1773 4869 a Fk(End)32 b(Log)p 2222 4836 -V 83 4993 a(format)65 b Fi(r)l(e)l(al)82 b(\015o)l(at)83 -5093 y Fk(format)65 b Fi(r)l(e)l(al)p 560 5093 26 4 v -31 w(p)l(air)83 b(r)l(e)l(al)83 5193 y Fk(format)65 b -Fi(b)l(o)l(ol)p 567 5193 V 31 w(p)l(air)83 b(r)l(e)l(al)p -949 5193 V 31 w(p)l(air)83 5292 y Fk(format)65 b Fi(r)l(e)l(al)p -560 5292 V 31 w(p)l(air)83 b(r)l(e)l(al)p 942 5292 V -31 w(short)83 5392 y Fk(format)65 b Fi(Matrix)83 b(int)p -eop end +(an)n(ted)g(v)n(ersion)0 4168 y(preferable)27 b(to)g(using)g(the)h +(prepro)r(cessor\).)p 0 4271 1779 4 v 1874 4303 a Fk(Log)p +2122 4271 V 83 4444 a Fm([)p Fh(LDF)d(2002.04.10.)p Fm(])61 +b(Added)28 b(formatting)f(commands.)83 4544 y([)p Fh(LDF)e(2002.04.10.) +p Fm(])61 b(Added)28 b(declaration)f(of)g Fk(b)s(o)s(ol)p +1714 4544 29 5 v 39 w(real)t Fm(.)83 4643 y([)p Fh(LDF)e(2002.12.11.)p +Fm(])73 b(Added)41 b(the)f(macros)e Ff(LDF_REAL_FLOAT)h +Fm(and)g Ff(LDF_REAL_DOUBLE)o Fm(.)73 b(They're)39 b(needed)h(b)r(elo)n +(w,)0 4743 y(where)27 b Ff(MAX_REAL)i Fm(and)e Ff(INVALID_REAL)g +Fm(are)g(declared)g(in)g(the)h(GNU/Lin)n(ux)g(v)n(ersion)e(\(using)i +(GCC\).)83 4843 y([)p Fh(LDF)d(2003.06.03.)p Fm(])61 +b(Added)28 b Fi(r)l(e)l(al)p 1137 4843 26 4 v 31 w(short)13 +b Fm(.)37 b(It's)28 b(the)f(return)h(t)n(yp)r(e)f(of)h +Fk(Plane)13 b Fm(::)8 b Fi(get)p 2652 4843 V 31 w(distanc)l(e)j +Fm(\()j(\).)p 0 4935 3900 4 v 83 5092 a Fk(format)65 +b Fi(r)l(e)l(al)82 b(\015o)l(at)83 5191 y Fk(format)65 +b Fi(r)l(e)l(al)p 560 5191 26 4 v 31 w(p)l(air)83 b(r)l(e)l(al)83 +5291 y Fk(format)65 b Fi(b)l(o)l(ol)p 567 5291 V 31 w(p)l(air)83 +b(r)l(e)l(al)p 949 5291 V 31 w(p)l(air)83 5391 y Fk(format)65 +b Fi(r)l(e)l(al)p 560 5391 V 31 w(p)l(air)83 b(r)l(e)l(al)p +942 5391 V 31 w(short)p eop end %%Page: 7 7 TeXDict begin 7 6 bop 0 83 a Fn(x)p Fm(12)140 b Fl(3DLDFPR)n(G)2372 -b(TYPE)23 b(DEFINITIONS)142 b Fm(7)0 263 y Fk(#de\014ne)63 -b Ff(LDF_REAL_FLOAT)68 b Fm(1)0 363 y Fk(#de\014ne)63 -b Ff(LDF_REAL_DOUBLE)68 b Fm(0)0 479 y Fn(h)14 b Fm(T)n(yp)r(e)28 -b(de\014nitions)35 b Fl(12)14 b Fn(i)24 b(\021)0 579 -y Fm(#)p Fk(if)41 b Ff(LDF_REAL_FLOAT)83 678 y Fk(t)m(yp)s(edef)h -(\015oat)33 b(real)t Fm(;)0 778 y(#)p Fk(elif)41 b Ff(LDF_REAL_DOUBLE) -83 878 y Fk(t)m(yp)s(edef)h(double)31 b(real)5 b Fm(;)0 -977 y(#)p Fk(else)83 1077 y(t)m(yp)s(edef)42 b(\015oat)33 -b(real)t Fm(;)0 1176 y(#)p Fk(endif)83 1276 y(t)m(yp)s(edef)42 -b(real)32 b(Matrix)5 b Fm([4][4];)83 1376 y Fk(t)m(yp)s(edef)42 +b(TYPE)23 b(DEFINITIONS)142 b Fm(7)83 263 y Fk(format)65 +b Fi(Matrix)83 b(int)0 363 y Fk(#de\014ne)63 b Ff(LDF_REAL_FLOAT)68 +b Fm(1)0 462 y Fk(#de\014ne)63 b Ff(LDF_REAL_DOUBLE)68 +b Fm(0)0 587 y Fn(h)14 b Fm(T)n(yp)r(e)28 b(de\014nitions)35 +b Fl(12)14 b Fn(i)24 b(\021)0 686 y Fm(#)p Fk(if)41 b +Ff(LDF_REAL_FLOAT)83 786 y Fk(t)m(yp)s(edef)h(\015oat)33 +b(real)t Fm(;)0 886 y(#)p Fk(elif)41 b Ff(LDF_REAL_DOUBLE)83 +985 y Fk(t)m(yp)s(edef)h(double)31 b(real)5 b Fm(;)0 +1085 y(#)p Fk(else)83 1185 y(t)m(yp)s(edef)42 b(\015oat)33 +b(real)t Fm(;)0 1284 y(#)p Fk(endif)83 1384 y(t)m(yp)s(edef)42 +b(real)32 b(Matrix)5 b Fm([4][4];)83 1483 y Fk(t)m(yp)s(edef)42 b(pair)5 b Fn(h)p Fk(real)g Fe(;)14 b Fk(real)5 b Fn(i)28 -b Fk(real)p 1216 1376 29 5 v 40 w(pair)5 b Fm(;)83 1475 +b Fk(real)p 1216 1483 29 5 v 40 w(pair)5 b Fm(;)83 1583 y Fk(t)m(yp)s(edef)42 b(pair)5 b Fn(h)p Fk(real)g Fe(;)14 -b Fk(signed)31 b(short)5 b Fn(i)28 b Fk(real)p 1569 1475 -V 40 w(short)t Fm(;)83 1575 y Fk(t)m(yp)s(edef)42 b(pair)5 +b Fk(signed)31 b(short)5 b Fn(i)28 b Fk(real)p 1569 1583 +V 40 w(short)t Fm(;)83 1683 y Fk(t)m(yp)s(edef)42 b(pair)5 b Fn(h)p Fk(b)s(o)s(ol)s Fe(;)14 b Fk(b)s(o)s(ol)s Fn(i)28 -b Fk(b)s(o)s(ol)p 1290 1575 V 39 w(pair)5 b Fm(;)83 1675 +b Fk(b)s(o)s(ol)p 1290 1683 V 39 w(pair)5 b Fm(;)83 1782 y Fk(t)m(yp)s(edef)42 b(pair)5 b Fn(h)p Fk(b)s(o)s(ol)s Fe(;)14 b Fk(real)5 b Fn(i)28 b Fk(b)s(o)s(ol)p 1266 -1675 V 38 w(real)5 b Fm(;)0 1774 y Fl(See)24 b(also)g(sections)g(267,)g -(268,)g(270,)g(and)h(272.)0 1874 y(This)e(co)r(de)i(is)e(used)h(in)f -(sections)i(35,)e(36,)h(589,)g(and)g(590.)0 2073 y Fk(13.)94 -b(Utilit)m(y)32 b(classes.)0 2190 y Fn(h)14 b Fm(Utilit)n(y)28 -b(classes)34 b Fl(13)15 b Fn(i)23 b(\021)83 2289 y Fk(struct)33 -b(real)p 522 2289 V 40 w(triple)f Fn(f)166 2389 y Fk(real)h -Fi(\014rst)11 b Fm(;)166 2489 y Fk(real)33 b Fi(se)l(c)l(ond)13 -b Fm(;)166 2588 y Fk(real)33 b Fi(thir)l(d)13 b Fm(;)166 -2704 y Fk(real)p 326 2704 V 40 w(triple)t Fm(\()h(\))166 -2804 y(:)37 b Fi(\014rst)11 b Fm(\(0\))p Fe(;)42 b Fi(se)l(c)l(ond)13 +1782 V 38 w(real)5 b Fm(;)0 1890 y Fl(See)24 b(also)g(sections)g(267,)g +(268,)g(270,)g(and)h(272.)0 1998 y(This)e(co)r(de)i(is)e(used)h(in)f +(sections)i(35,)e(36,)h(589,)g(and)g(590.)0 2197 y Fk(13.)94 +b(Utilit)m(y)32 b(classes.)0 2322 y Fn(h)14 b Fm(Utilit)n(y)28 +b(classes)34 b Fl(13)15 b Fn(i)23 b(\021)83 2422 y Fk(struct)33 +b(real)p 522 2422 V 40 w(triple)f Fn(f)166 2521 y Fk(real)h +Fi(\014rst)11 b Fm(;)166 2621 y Fk(real)33 b Fi(se)l(c)l(ond)13 +b Fm(;)166 2720 y Fk(real)33 b Fi(thir)l(d)13 b Fm(;)166 +2845 y Fk(real)p 326 2845 V 40 w(triple)t Fm(\()h(\))166 +2945 y(:)37 b Fi(\014rst)11 b Fm(\(0\))p Fe(;)42 b Fi(se)l(c)l(ond)13 b Fm(\(0\))p Fe(;)42 b Fi(thir)l(d)13 b Fm(\(0\))28 b -Fn(f)14 b(g)166 2920 y Fk(real)p 326 2920 V 40 w(triple)t +Fn(f)14 b(g)166 3069 y Fk(real)p 326 3069 V 40 w(triple)t Fm(\()p Fk(real)33 b Fe(a;)14 b Fk(real)32 b Fe(b;)14 -b Fk(real)32 b Fe(c)p Fm(\))166 3020 y(:)37 b Fi(\014rst)11 +b Fk(real)32 b Fe(c)p Fm(\))166 3169 y(:)37 b Fi(\014rst)11 b Fm(\()p Fe(a)q Fm(\))p Fe(;)41 b Fi(se)l(c)l(ond)14 b Fm(\()p Fe(b)o Fm(\))p Fe(;)42 b Fi(thir)l(d)14 b Fm(\()p -Fe(c)p Fm(\))28 b Fn(f)14 b(g)83 3120 y(g)p Fm(;)0 3219 +Fe(c)p Fm(\))28 b Fn(f)14 b(g)83 3268 y(g)p Fm(;)0 3376 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(35)f(and)g(36.)0 -3419 y Fk(14.)94 b(Global)32 b(v)-5 b(ariables.)0 3618 +3576 y Fk(14.)94 b(Global)32 b(v)-5 b(ariables.)0 3775 y(15.)94 b(F)-8 b(or)44 b(compilation.)93 b Fm([)p Fh(LDF)26 b(2003.08.25.)p Fm(])70 b(GCC)38 b(2.95)e(do)r(esn't)h(ha)n(v)n(e)f -(the)i Fk(n)m(umeric)p 3073 3618 V 40 w(limits)i Fm(template,)g(and)0 -3718 y(GCC)28 b(3.3)f(do)r(esn't)g(seem)h(to)f(ha)n(v)n(e)g(it)h -(either.)p 0 3777 1643 4 v 1738 3810 a Fk(Begin)j(Log)p -2257 3777 V 83 3950 a Fm([)p Fh(LDF)25 b(2002.12.11.)p -Fm(])73 b(BUG)40 b(FIX:)h(Disco)n(v)n(ered)d(that)i(the)g(w)n(a)n(y)f -(this)h(w)n(as)f(b)r(efore,)j Ff(MAX_REAL)j Fm(=)d Ff(INVALID_REAL)26 -b Fn(\000)0 4050 y Fi(r)l(e)l(al)p 133 4050 26 4 v 31 +(the)i Fk(n)m(umeric)p 3073 3775 V 40 w(limits)i Fm(template,)g(and)0 +3874 y(GCC)28 b(3.3)f(do)r(esn't)g(seem)h(to)f(ha)n(v)n(e)g(it)h +(either.)p 0 3950 1779 4 v 1874 3983 a Fk(Log)p 2122 +3950 V 83 4124 a Fm([)p Fh(LDF)d(2002.12.11.)p Fm(])73 +b(BUG)40 b(FIX:)h(Disco)n(v)n(ered)d(that)i(the)g(w)n(a)n(y)f(this)h(w) +n(as)f(b)r(efore,)j Ff(MAX_REAL)j Fm(=)d Ff(INVALID_REAL)26 +b Fn(\000)0 4223 y Fi(r)l(e)l(al)p 133 4223 26 4 v 31 w(limits)12 b Fe(:)p Fi(epsilon)g Fm(\()i(\))36 b(caused)f Ff(MAX_REAL)j Fm(and)d Ff(INVALID_REAL)h Fm(to)g(b)r(e)g(equal!)62 b(I)36 b(didn't)h(notice)f(the)g(problem)g(un)n(til)0 -4150 y(I)44 b(started)f(to)g(p)r(ort)h(3DLDF)g(to)g(GNU/Lin)n(ux.)85 +4323 y(I)44 b(started)f(to)g(p)r(ort)h(3DLDF)g(to)g(GNU/Lin)n(ux.)85 b(It)44 b(also)e(do)r(esn't)i(w)n(ork)e(to)i(use)g Ff(MAX_REAL)50 -b Fm(=)g Ff(INVALID_REAL)28 b Fn(\000)0 4249 y Fi(r)l(e)l(al)p -133 4249 V 31 w(limits)12 b Fe(:)p Fi(min)e Fm(\()k(\).)p -0 4341 1678 4 v 1773 4374 a Fk(End)32 b(Log)p 2222 4341 -V 0 4490 a Fn(h)14 b Fm(Global)27 b(v)-5 b(ariables)34 -b Fl(15)15 b Fn(i)23 b(\021)83 4590 y Fk(v)-5 b(alarra)m(y)8 -b Fn(h)p Fk(real)d Fn(i)28 b Fi(nul)t(l)p 822 4590 26 -4 v 31 w(c)l(o)l(or)l(dinates)12 b Fm(\(4\);)0 4689 y(#)p -Fk(ifdef)41 b Ff(__DECCXX)83 4789 y Fk(n)m(umeric)p 422 -4789 29 5 v 40 w(limits)s Fn(h)p Fk(real)5 b Fn(i)28 -b Fi(r)l(e)l(al)p 1083 4789 26 4 v 31 w(limits)11 b Fm(;)83 -4889 y Fk(extern)33 b(const)f(real)h Ff(INVALID_REAL)22 -b Fm(=)h Fi(r)l(e)l(al)p 1593 4889 V 31 w(limits)11 b -Fe(:)p Fi(max)k Fm(\()f(\);)83 4988 y Fk(extern)33 b(const)f(real)h -Ff(MAX_REAL)24 b Fm(=)f Ff(INVALID_REAL)17 b Fn(\000)h -Fe(:)p Fm(00000003)d Fn(\003)j Ff(INVALID_REAL)o Fm(;)0 -5088 y(#)p Fk(endif)0 5188 y Fl(See)24 b(also)g(sections)g(16,)g(17,)g -(39,)g(189,)g(257,)f(and)i(586.)0 5287 y(This)e(co)r(de)i(is)e(cited)h -(in)g(section)g(22.)0 5387 y(This)f(co)r(de)i(is)e(used)h(in)f -(sections)i(35,)e(52,)h(194,)g(260,)g(and)g(589.)p eop -end +b Fm(=)g Ff(INVALID_REAL)28 b Fn(\000)0 4422 y Fi(r)l(e)l(al)p +133 4422 V 31 w(limits)12 b Fe(:)p Fi(min)e Fm(\()k(\).)p +0 4514 3900 4 v 0 4671 a Fn(h)g Fm(Global)27 b(v)-5 b(ariables)34 +b Fl(15)15 b Fn(i)23 b(\021)83 4771 y Fk(v)-5 b(alarra)m(y)8 +b Fn(h)p Fk(real)d Fn(i)28 b Fi(nul)t(l)p 822 4771 26 +4 v 31 w(c)l(o)l(or)l(dinates)12 b Fm(\(4\);)0 4879 y +Fl(See)24 b(also)g(sections)g(16,)g(17,)g(39,)g(189,)g(257,)f(and)i +(586.)0 4987 y(This)e(co)r(de)i(is)e(cited)h(in)g(section)g(22.)0 +5095 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(35,)e(52,)h(194,)g +(260,)g(and)g(589.)p eop end %%Page: 8 8 TeXDict begin 8 7 bop 0 83 a Fm(8)141 b Fl(F)n(OR)23 b(COMPILA)-6 b(TION)2377 b(3DLDFPR)n(G)141 b Fn(x)p Fm(16)0 -263 y Fk(16.)94 b Fm([)p Fh(LDF)26 b(2002.12.11.)p Fm(])63 -b(!!)44 b(KLUDGE:)30 b(Using)g(the)g(macros)e Ff(FLT_MAX)k -Fm(or)d Ff(DBL_MAX)i Fm(b)r(ecause)f(the)g Fk(n)m(umeric)p -3625 263 29 5 v 40 w(limits)0 363 y Fm(template)23 b(do)r(esn't)g(seem) -f(to)h(b)r(e)g(a)n(v)-5 b(ailable)21 b(under)i(GNU/Lin)n(ux)g(using)f -(GCC,)h(at)g(least)f(not)h(on)f(the)h(computer)f(I'm)h(using.)83 -462 y([)p Fh(LDF)i(2002.12.13.)p Fm(])61 b(TO)27 b(DO:)g(T)-7 -b(ry)27 b(to)g(get)g(the)g(binary)g(represen)n(tation)e(of)i(a)g -Fk(real)32 b Fm(and)27 b(c)n(hange)f(the)i(least)f(signi\014can)n(t)0 -562 y(bit)i(in)f(the)g(part)g(that's)g(not)g(the)h(exp)r(onen)n(t)e -(\(the)i(man)n(tissa?\).)38 b(It)28 b(mak)n(es)f(sense)h(that)g(the)h -(steps)e(b)r(et)n(w)n(een)h(a)g Fk(\015oat)33 b Fm(or)27 -b(a)0 662 y Fk(double)32 b Fm(and)27 b(the)h(next)g(largest)e -Fk(\015oat)33 b Fm(or)26 b Fk(double)32 b Fm(di\013er)c(dep)r(ending)g -(on)f(the)h(exp)r(onen)n(t.)0 786 y Fn(h)14 b Fm(Global)27 -b(v)-5 b(ariables)34 b Fl(15)15 b Fn(i)23 b Fm(+)p Fn(\021)0 -886 y Fm(#)p Fk(ifdef)41 b Ff(__GNUC__)0 985 y Fm(#)p -Fk(if)g Ff(LDF_REAL_FLOAT)83 1085 y Fk(extern)33 b(const)f(real)h -Ff(INVALID_REAL)22 b Fm(=)h Ff(FLT_MAX)q Fm(;)83 1185 +263 y Fk(16.)94 b Ff(MAX_REAL)20 b Fm(is)e(the)h(second)f(largest)f +Fk(real)23 b Fm(v)-5 b(alue)18 b(on)g(a)g(little-endian)h(platform)f +(where)g Fk(sizeof)13 b Fm(\()p Fk(\015oat)5 b Fm(\))24 +b Fn(\021)e Fk(sizeof)13 b Fm(\()p Fk(unsigned)p 4134 +284 42 84 v 0 363 a(long)5 b Fm(\))33 b(and)f Fk(sizeof)14 +b Fm(\()p Fk(double)t Fm(\))31 b Fn(\021)g Fk(sizeof)13 +b Fm(\()p Fk(unsigned)37 b(long)h(long)5 b Fm(\).)52 +b(The)33 b(terms)f(\\endianness",)g(\\big-endian",)g(and)0 +462 y(\\little-endian")26 b(refer)g(to)h(the)g(w)n(a)n(y)e(in)i(whic)n +(h)g(data)f(is)g(stored)g(in)h(\\w)n(ords")e(in)i(a)f(particular)f +(computer)i(arc)n(hitecture.)35 b(In)0 562 y(a)27 b(big-endian)g(arc)n +(hitecture,)g(the)h(most)f(signi\014can)n(t)g(b)n(yte)g(is)h(stored)e +(\014rst.)37 b([)p Fh(LDF)26 b(2003.12.09.)p Fm(])83 +662 y(TO)j(DO:)h(W)-7 b(rite)29 b(conditionally)g(compiled)g(co)r(de)h +(for)e(pro)r(cessors,)g(where)h(this)h(is)f(not)g(the)h(case!)42 +b(The)29 b(endianness)g(of)0 761 y(the)c(pro)r(cessor)e(and)i(the)g(v) +-5 b(alue)25 b Ff(MAX_REAL)h Fm(are)e(tested)i(in)f Fj(main.web)p +Fm(.)33 b(If)25 b(the)h(pro)r(cessor)c(is)j(big-endian,)g(or)f +Ff(MAX_REAL)g Fn(\021)0 861 y Ff(INVALID_REAL)o Fm(,)k(or)f +Ff(INVALID_REAL)18 b Fn(\000)g Ff(MAX_REAL)29 b Fm(is)f(greater)e(than) +i(a)f(threshold)h(v)-5 b(alue)27 b(\(curren)n(tly)g(1)18 +b Fn(\001)h Fm(10)3473 831 y Fg(35)3542 861 y Fm(\),)29 +b(3DLDF)0 960 y(will)f(issue)f(an)g(error)f(message)g(and)i(exit)f +(with)h(return)g(v)-5 b(alue)27 b(1.)37 b([)p Fh(LDF)25 +b(2003.12.09.)p Fm(])61 b([)p Fh(LDF)25 b(2003.12.09.)p +Fm(])83 1060 y Fk(rein)m(terpret)p 540 1060 29 5 v 41 +w(cast)5 b Fm(\()14 b(\))27 b(is)g(used,)g(b)r(ecause)g(neither)g +Fk(static)p 1964 1060 V 40 w(cast)5 b Fm(\()15 b(\))27 +b(nor)f Fk(dynamic)p 2776 1060 V 40 w(cast)6 b Fm(\()14 +b(\))27 b(w)n(ork.)35 b(Stroustrup,)27 b Fi(The)0 1160 +y Fh(C)59 1152 y Fg(+)-8 b(+)185 1160 y Fi(Pr)l(o)l(gr)l(amming)29 +b(L)l(anguage)p Fm(,)d Fn(x)p Fm(6.2.7,)f(p.)h(130,)e(go)r(es)h(in)n +(to)g(this.)36 b(He)26 b(explicitly)g(men)n(tions)f(that)h +Fk(rein)m(terpret)p 3617 1160 V 40 w(cast)6 b Fm(\()14 +b(\))0 1259 y(\\)p Fe(:)g(:)g(:)k Fm(generally)f([)p +Fe(:)d(:)g(:)p Fm(])k(pro)r(duces)g(a)g(v)-5 b(alue)18 +b(of)g(a)g(new)h(t)n(yp)r(e)f(that)h(has)f(the)h(same)e(bit)i(pattern)f +(as)g(its)h(argumen)n(t.")32 b([)p Fh(LDF)25 b(2003.12.08.)p +Fm(])p 4069 1280 42 84 v 83 1359 a(The)20 b(metho)r(d)g(I'm)f(using)g +(no)n(w)g(to)h(calculate)e Ff(MAX_REAL)j Fm(ma)n(y)e(fail)g(on)g +(systems)g(that)h(represen)n(t)e(\015oating)h(p)r(oin)n(t)h(n)n(um)n(b) +r(ers)0 1459 y(di\013eren)n(tly)28 b(from)f(the)h(platform)f(I'm)h +(using.)36 b(LDF)29 b(2003.12.08.)83 1558 y(!!)37 b(KLUDGE:)26 +b(Using)g(the)g(macros)f Ff(FLT_MAX)j Fm(or)d Ff(DBL_MAX)j +Fm(b)r(ecause)e(the)g Fk(n)m(umeric)p 2791 1558 29 5 +v 40 w(limits)j Fm(template)e(do)r(esn't)f(seem)0 1658 +y(to)h(b)r(e)h(a)n(v)-5 b(ailable)27 b(under)g(GNU/Lin)n(ux)h(using)f +(GCC,)h(at)f(least)h(not)f(on)g(the)h(computer)g(I'm)g(using.)36 +b([)p Fh(LDF)25 b(2002.12.11.)p Fm(])p 0 1761 1779 4 +v 1874 1794 a Fk(Log)p 2122 1761 V 83 1934 a Fm([)p Fh(LDF)g +(2003.12.08.)p Fm(])69 b(Changed)34 b(the)i(de\014nition)f(of)g +Ff(MAX_REAL)q Fm(.)60 b(Previously)-7 b(,)35 b(it)g(w)n(as)g +(calculated)f(using)h Fe(:)p Fm(00000003)19 b Fn(\003)0 +2034 y Ff(FLT_MAX)q Fm(,)28 b(whic)n(h)g(w)n(as)e(a)i(kludge.)p +0 2126 3900 4 v 0 2283 a Fn(h)14 b Fm(Global)27 b(v)-5 +b(ariables)34 b Fl(15)15 b Fn(i)23 b Fm(+)p Fn(\021)0 +2383 y Fm(#)p Fk(ifdef)41 b Ff(__DECCXX)83 2482 y Fk(n)m(umeric)p +422 2482 29 5 v 40 w(limits)s Fn(h)p Fk(real)5 b Fn(i)28 +b Fi(r)l(e)l(al)p 1083 2482 26 4 v 31 w(limits)11 b Fm(;)83 +2582 y Fk(extern)33 b(const)f(real)h Ff(INVALID_REAL)22 +b Fm(=)h Fi(r)l(e)l(al)p 1593 2582 V 31 w(limits)11 b +Fe(:)p Fi(max)k Fm(\()f(\);)0 2682 y(#)p Fk(else)0 2781 +y Fm(#)p Fk(if)41 b Ff(LDF_REAL_DOUBLE)83 2881 y Fk(extern)33 +b(const)f(real)h Ff(INVALID_REAL)22 b Fm(=)h Ff(DBL_MAX)q +Fm(;)0 2980 y(#)p Fk(else)170 b Fe(=)p Fn(\003)40 b Ff(LDF_REAL_FLOAT)o +Fm(,)28 b(or)e(not)i(sp)r(eci\014ed.)37 b(LDF)28 b(2003.12.08.)47 +b Fn(\003)p Fe(=)83 3080 y Fk(extern)33 b(const)f(real)h +Ff(INVALID_REAL)22 b Fm(=)h Ff(FLT_MAX)q Fm(;)0 3180 +y(#)p Fk(endif)0 3279 y Fm(#)p Fk(endif)0 3379 y Fm(#)p +Fk(if)41 b Ff(LDF_REAL_DOUBLE)83 3479 y Fk(real)32 b +Fe(d)24 b Fm(=)e Ff(INVALID_REAL)p Fm(;)83 3578 y Fk(real)32 +b Fn(\003)p Fi(dp)h Fm(=)23 b(&)p Fe(d)p Fm(;)83 3678 +y Fk(unsigned)31 b(long)i(long)g Fn(\003)o Fi(ip)h Fm(=)23 +b Fk(rein)m(terpret)p 1588 3678 29 5 v 40 w(cast)5 b +Fn(h)p Fk(unsigned)32 b(long)h(long)g Fn(\003)o(i)p Fm(\()p +Fi(dp)11 b Fm(\);)83 3777 y Fk(unsigned)31 b(long)i(long)g +Fe(i)23 b Fm(=)f(\()p Fn(\003)p Fi(ip)10 b Fm(\))24 b +Fn(\000)p Fm(=)e(1)o(;)83 3877 y Fk(bitset)t Fn(h)p Fm(8)c +Fn(\003)g Fk(sizeof)13 b Fm(\()p Fk(unsigned)32 b(long)h(long)5 +b Fm(\))p Fn(i)28 b Fe(b)23 b Fm(=)f Fe(i)p Fm(;)83 3977 y Fk(extern)33 b(const)f(real)h Ff(MAX_REAL)24 b Fm(=)f -Ff(FLT_MAX)c Fn(\000)f Fe(:)p Fm(00000003)d Fn(\003)j -Ff(FLT_MAX)q Fm(;)0 1284 y(#)p Fk(elif)41 b Ff(LDF_REAL_DOUBLE)83 -1384 y Fk(extern)33 b(const)f(real)h Ff(INVALID_REAL)22 -b Fm(=)h Ff(DBL_MAX)q Fm(;)83 1483 y Fk(extern)33 b(const)f(real)h -Ff(MAX_REAL)24 b Fm(=)f Ff(DBL_MAX)c Fn(\000)f Fe(:)p -Fm(00000003)d Fn(\003)j Ff(DBL_MAX)q Fm(;)0 1583 y(#)p -Fk(else)83 1683 y(extern)33 b(const)f(real)h Ff(INVALID_REAL)22 -b Fm(=)h Ff(FLT_MAX)q Fm(;)83 1782 y Fk(extern)33 b(const)f(real)h -Ff(MAX_REAL)24 b Fm(=)f Ff(FLT_MAX)c Fn(\000)f Fe(:)p -Fm(00000003)d Fn(\003)j Ff(FLT_MAX)q Fm(;)0 1882 y(#)p -Fk(endif)0 1982 y Fm(#)p Fk(endif)0 2181 y(17.)94 b Fm([)p -Fh(LDF)26 b(2003.08.14.)p Fm(])64 b Ff(VERBOSE_GLOBAL)30 +Fn(\003)o Fm(\()p Fk(rein)m(terpret)p 1816 3977 V 41 +w(cast)5 b Fn(h)p Fk(real)33 b Fn(\003i)p Fm(\(&)p Fe(i)o +Fm(\)\);)0 4076 y(#)p Fk(else)170 b Fe(=)p Fn(\003)40 +b Ff(LDF_REAL_FLOAT)o Fm(,)28 b(or)e(not)i(sp)r(eci\014ed.)37 +b(LDF)28 b(2003.12.08.)47 b Fn(\003)p Fe(=)83 4176 y +Fk(real)32 b Fe(f)g Fm(=)23 b Ff(INVALID_REAL)o Fm(;)83 +4276 y Fk(real)32 b Fn(\003)p Fi(fp)h Fm(=)23 b(&)p Fe(f)8 +b Fm(;)83 4375 y Fk(unsigned)31 b(long)i Fn(\003)p Fi(ip)g +Fm(=)23 b Fk(rein)m(terpret)p 1379 4375 V 40 w(cast)6 +b Fn(h)p Fk(unsigned)31 b(long)i Fn(\003i)p Fm(\()p Fi(fp)11 +b Fm(\);)83 4475 y Fk(unsigned)31 b(long)i Fe(i)23 b +Fm(=)f(\()p Fn(\003)p Fi(ip)11 b Fm(\))23 b Fn(\000)p +Fm(=)f(1;)83 4574 y Fk(bitset)t Fn(h)p Fm(8)c Fn(\003)g +Fk(sizeof)13 b Fm(\()p Fk(unsigned)32 b(long)5 b Fm(\))p +Fn(i)28 b Fe(b)23 b Fm(=)g Fe(i)o Fm(;)83 4674 y Fk(extern)33 +b(const)f(real)h Ff(MAX_REAL)24 b Fm(=)f Fn(\003)o Fm(\()p +Fk(rein)m(terpret)p 1816 4674 V 41 w(cast)5 b Fn(h)p +Fk(real)33 b Fn(\003i)p Fm(\(&)p Fe(i)o Fm(\)\);)0 4774 +y(#)p Fk(endif)p eop end +%%Page: 9 9 +TeXDict begin 9 8 bop 0 83 a Fn(x)p Fm(17)140 b Fl(3DLDFPR)n(G)2377 +b(F)n(OR)23 b(COMPILA)-6 b(TION)141 b Fm(9)0 263 y Fk(17.)94 +b Fm([)p Fh(LDF)26 b(2003.08.14.)p Fm(])64 b Ff(VERBOSE_GLOBAL)30 b Fm(is)h Fi(false)43 b Fm(b)n(y)31 b(default.)49 b(It)32 b(is)f(set)g(to)g Fi(true)41 b Fm(b)n(y)31 b(the)h(command)f(line)g -(option)0 2280 y(\\)p Fj(--verbose)p Fm(".)h(If)c Ff(VERBOSE_GLOBAL)f +(option)0 363 y(\\)p Fj(--verbose)p Fm(".)h(If)c Ff(VERBOSE_GLOBAL)f Fm(is)g Fi(true)10 b Fm(,)28 b(the)g(lo)r(cal)f Fi(verb)l(ose)39 b Fm(v)-5 b(ariables)26 b(in)i(functions)g(are)e(set)i(to)f -Fi(true)10 b Fm(.)p 0 2380 1643 4 v 1738 2412 a Fk(Begin)31 -b(Log)p 2257 2380 V 83 2553 a Fm([)p Fh(LDF)25 b(2003.08.14.)p +Fi(true)10 b Fm(.)p 0 461 1779 4 v 1874 494 a Fk(Log)p +2122 461 V 83 635 a Fm([)p Fh(LDF)25 b(2003.08.14.)p Fm(])61 b(Added)28 b Ff(VERBOSE_GLOBAL)f Fm(and)g Ff(SILENT_GLOBAL)o -Fm(.)p 0 2645 1678 4 v 1773 2678 a Fk(End)32 b(Log)p -2222 2645 V 0 2802 a Fn(h)14 b Fm(Global)27 b(v)-5 b(ariables)34 -b Fl(15)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2902 y Fk(b)s(o)s(ol)31 -b Ff(VERBOSE_GLOBAL)21 b Fm(=)i Fi(false)12 b Fm(;)83 -3001 y Fk(b)s(o)s(ol)31 b Ff(SILENT_GLOBAL)22 b Fm(=)g -Fi(false)12 b Fm(;)0 3201 y Fk(18.)0 3325 y Fn(h)i Fm(Declarations)26 -b(for)h(the)h(header)f(\014le)36 b Fl(18)14 b Fn(i)23 -b(\021)83 3425 y Fk(extern)33 b(b)s(o)s(ol)e Ff(VERBOSE_GLOBAL)n -Fm(;)83 3524 y Fk(extern)i(b)s(o)s(ol)e Ff(SILENT_GLOBAL)o -Fm(;)0 3632 y Fl(See)24 b(also)g(sections)g(20,)g(23,)g(27,)g(190,)g -(192,)f(258,)h(275,)g(587,)g(611,)g(and)h(648.)0 3740 -y(This)e(co)r(de)i(is)e(cited)h(in)g(section)g(21.)0 -3848 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(36,)e(195,)h(261,)g -(590,)g(614,)g(and)h(651.)p eop end -%%Page: 9 9 -TeXDict begin 9 8 bop 0 83 a Fn(x)p Fm(19)140 b Fl(3DLDFPR)n(G)2377 -b(F)n(OR)23 b(COMPILA)-6 b(TION)141 b Fm(9)0 263 y Fk(19.)p -0 339 1643 4 v 1738 371 a(Begin)31 b(Log)p 2257 339 V -83 512 a Fm([)p Fh(LDF)25 b(2003.08.14.)p Fm(])61 b(Added)28 -b Ff(VERSION_3DLDF)f Fm(and)g Ff(COPYRIGHT_3DLDF)o Fm(.)p -0 604 1678 4 v 1773 637 a Fk(End)32 b(Log)p 2222 604 -V 0 761 a Fn(h)14 b Fm(Global)27 b(constan)n(ts)34 b -Fl(19)15 b Fn(i)23 b(\021)83 861 y Fk(extern)33 b(const)f(string)h -Ff(VERSION_3DLDF)23 b Fm(=)f Ff("1.1.3")r Fm(;)83 960 +Fm(.)p 0 726 3900 4 v 0 884 a Fn(h)14 b Fm(Global)27 +b(v)-5 b(ariables)34 b Fl(15)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +983 y Fk(b)s(o)s(ol)31 b Ff(VERBOSE_GLOBAL)21 b Fm(=)i +Fi(false)12 b Fm(;)83 1083 y Fk(b)s(o)s(ol)31 b Ff(SILENT_GLOBAL)22 +b Fm(=)g Fi(false)12 b Fm(;)0 1282 y Fk(18.)0 1407 y +Fn(h)i Fm(Declarations)26 b(for)h(the)h(header)f(\014le)36 +b Fl(18)14 b Fn(i)23 b(\021)83 1506 y Fk(extern)33 b(b)s(o)s(ol)e +Ff(VERBOSE_GLOBAL)n Fm(;)83 1606 y Fk(extern)i(b)s(o)s(ol)e +Ff(SILENT_GLOBAL)o Fm(;)0 1714 y Fl(See)24 b(also)g(sections)g(20,)g +(23,)g(27,)g(190,)g(192,)f(258,)h(275,)g(587,)g(611,)g(and)h(648.)0 +1822 y(This)e(co)r(de)i(is)e(cited)h(in)g(section)g(21.)0 +1930 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(36,)e(195,)h(261,)g +(590,)g(614,)g(and)h(651.)0 2129 y Fk(19.)p 0 2205 1779 +4 v 1874 2237 a(Log)p 2122 2205 V 83 2378 a Fm([)p Fh(LDF)g +(2003.08.14.)p Fm(])61 b(Added)28 b Ff(VERSION_3DLDF)f +Fm(and)g Ff(COPYRIGHT_3DLDF)o Fm(.)p 0 2470 3900 4 v +0 2627 a Fn(h)14 b Fm(Global)27 b(constan)n(ts)34 b Fl(19)15 +b Fn(i)23 b(\021)83 2727 y Fk(extern)33 b(const)f(string)h +Ff(VERSION_3DLDF)23 b Fm(=)f Ff("1.1.4")r Fm(;)83 2826 y Fk(extern)33 b(const)f(string)h Ff(COPYRIGHT_3DLDF)22 b Fm(=)g Ff("Copyright)p Fj( )p Ff(\(C\))p Fj( )p Ff(20)o(03)o Fj( )-6 b Ff(by)p Fj( )p Ff(Laurence)p Fj( )p Ff(D.)p -Fj( )p Ff(F)o(ins)o(t)g(on.")r Fm(;)83 1060 y Fk(extern)39 +Fj( )p Ff(F)o(ins)o(t)g(on.")r Fm(;)83 2926 y Fk(extern)39 b(const)f(string)h Ff(DISCLAIMER_3DLDF)31 b Fm(=)h Ff("3DLDF)p Fj( )p Ff(comes)p Fj( )p Ff(with)o Fj( )p Ff(A)o(B)-6 b(SOLUTELY)p Fj( )p Ff(NO)p Fj( )p Ff(WARR)o(ANT)o(Y)g(\\)249 -1160 y(;\\nfor)p Fj( )p Ff(details)p Fj( )p Ff(s)o(ee)p +3026 y(;\\nfor)p Fj( )p Ff(details)p Fj( )p Ff(s)o(ee)p Fj( )o Ff(t)g(he)p Fj( )p Ff(file)p Fj( )p Ff(COPYING,)o(\\n)o(wh)g (ich)p Fj( )p Ff(you)p Fj( )p Ff(should)p Fj( )o Ff(ha)o(ve)p Fj( )f Ff(received\\nin)p Fj( )p Ff(the)p Fj( )o Ff(di)o(s)h(\\)249 -1259 y(tribution)p Fj( )p Ff(of)p Fj( )p Ff(3DL)o(DF)p -Fj( )o Ff(1)g(.1.3\\nThis)p Fj( )p Ff(is)p Fj( )p Ff(fr)o(ee)o +3125 y(tribution)p Fj( )p Ff(of)p Fj( )p Ff(3DL)o(DF)p +Fj( )o Ff(1)g(.1.4\\nThis)p Fj( )p Ff(is)p Fj( )p Ff(fr)o(ee)o Fj( )p Ff(s)g(oftware,)p Fj( )p Ff(and)p Fj( )p Ff(yo)o(u)p Fj( )o Ff(are)f Fj( )p Ff(welcome\\nto)p Fj( )p Ff(redi)o(st)o(r)h(\\) -249 1359 y(ibute)p Fj( )p Ff(it)p Fj( )p Ff(under)p Fj( )p +249 3225 y(ibute)p Fj( )p Ff(it)p Fj( )p Ff(under)p Fj( )p Ff(c)o(ert)o(a)g(in)p Fj( )p Ff(conditions;\\n)o(fo)o(r)p Fj( )g Ff(details,)p Fj( )p Ff(again,)o Fj( )p Ff(s)o(ee)p Fj( )f Ff(the)p Fj( )p Ff(file)p Fj( )p Ff(COPYING.)o(\\n)o(\\)h(\\)249 -1459 y(nPlease)p Fj( )p Ff(send)p Fj( )p Ff(bug)o Fj( )p +3324 y(nPlease)p Fj( )p Ff(send)p Fj( )p Ff(bug)o Fj( )p Ff(re)o(p)g(orts)p Fj( )p Ff(to)p Fj( )p Ff(the)p Fj( )p Ff(auth)o(or)o Fj( )p Ff(a)g(t:\\n\\nEmail:)p Fj( )o( )p Ff(l)o(fin)f(sto1@gwdg.de\\n)p Fj( )o( )o( )h Ff(\\)249 -1558 y Fj( )p Ff(or)p Fj( )p Ff(s246794@s)o(tud)o(.)g +3424 y Fj( )p Ff(or)p Fj( )p Ff(s246794@s)o(tud)o(.)g (uni-goettingen.d)o(e\\)o(nW)g(eb)p Fj( )p Ff(site:)p Fj( )p Ff(http::)o(//)o(www)f(user.gwdg.de/~lfi)o(ns)o(t)h(o1")s -Fm(;)0 1666 y Fl(See)24 b(also)g(sections)g(25,)g(26,)g(115,)g(191,)g -(and)g(274.)0 1774 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(35,)e -(118,)h(194,)g(and)h(589.)0 1973 y Fk(20.)p 0 2049 1643 -4 v 1738 2082 a(Begin)31 b(Log)p 2257 2049 V 83 2222 -a Fm([)p Fh(LDF)25 b(2003.11.28.)p Fm(])68 b(Changed)34 -b Ff(VERSION_3DLDF)g Fm(from)h(a)f Fk(real)40 b Fm(to)35 -b(a)f Fk(string)5 b Fm(.)59 b(This)35 b(is)f(necessary)-7 -b(,)35 b(b)r(ecause)g(I)g(no)n(w)0 2322 y(ha)n(v)n(e)26 -b(v)n(ersions)g(with)i(three)g(digits)f(separated)f(b)n(y)i(p)r(erio)r -(ds.)p 0 2414 1678 4 v 1773 2447 a Fk(End)k(Log)p 2222 -2414 V 0 2571 a Fn(h)14 b Fm(Declarations)26 b(for)h(the)h(header)f -(\014le)36 b Fl(18)14 b Fn(i)23 b Fm(+)p Fn(\021)83 2671 -y Fk(extern)33 b(const)f(string)h Ff(VERSION_3DLDF)o -Fm(;)83 2770 y Fk(extern)g(const)f(string)h Ff(COPYRIGHT_3DLDF)o -Fm(;)83 2870 y Fk(extern)g(const)f(string)h Ff(DISCLAIMER_3DLDF)n -Fm(;)0 3069 y Fk(21.)94 b Fm(TO)24 b(DO:)h(Find)g(out)f(wh)n(y)g(the)g -(library)f(v)n(ersion)g(of)h Fi(trunc)8 b Fm(\()14 b(\))25 -b(can't)f(b)r(e)h(found)f(in)h(the)f(v)n(ersion)f(for)h(GCC)g(2.95)f -(under)0 3169 y(Lin)n(ux!)37 b([)p Fh(LDF)25 b(2002.12.10.)p -Fm(])83 3268 y(The)j(problem)f(do)r(esn't)h(exist)f(for)g(GCC)h(3.3)f -(under)g(Lin)n(ux.)37 b([)p Fh(LDF)25 b(2003.08.14.)p -Fm(])p 0 3372 1643 4 v 1738 3405 a Fk(Begin)31 b(Log)p -2257 3372 V 83 3546 a Fm([)p Fh(LDF)25 b(2003.08.14.)p -Fm(])73 b(Put)39 b(this)h(function)g(declaration)d(in)j -Fn(h)14 b Fm(Declare)39 b(utilit)n(y)g(functions)d Fl(21)14 -b Fn(i)p Fm(.)73 b(F)-7 b(ormerly)g(,)41 b(it)f(w)n(as)e(in)0 -3645 y Fn(h)14 b Fm(Declarations)26 b(for)h(the)h(header)f(\014le)36 -b Fl(18)14 b Fn(i)p Fm(.)83 3745 y(Changed)26 b(the)h(conditional)f +Fm(;)0 3532 y Fl(See)24 b(also)g(sections)g(25,)g(26,)g(115,)g(191,)g +(and)g(274.)0 3640 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(35,)e +(118,)h(194,)g(and)h(589.)0 3839 y Fk(20.)p 0 3915 1779 +4 v 1874 3948 a(Log)p 2122 3915 V 83 4088 a Fm([)p Fh(LDF)g +(2003.11.28.)p Fm(])68 b(Changed)34 b Ff(VERSION_3DLDF)g +Fm(from)h(a)f Fk(real)40 b Fm(to)35 b(a)f Fk(string)5 +b Fm(.)59 b(This)35 b(is)f(necessary)-7 b(,)35 b(b)r(ecause)g(I)g(no)n +(w)0 4188 y(ha)n(v)n(e)26 b(v)n(ersions)g(with)i(three)g(digits)f +(separated)f(b)n(y)i(p)r(erio)r(ds.)p 0 4280 3900 4 v +0 4437 a Fn(h)14 b Fm(Declarations)26 b(for)h(the)h(header)f(\014le)36 +b Fl(18)14 b Fn(i)23 b Fm(+)p Fn(\021)83 4537 y Fk(extern)33 +b(const)f(string)h Ff(VERSION_3DLDF)o Fm(;)83 4636 y +Fk(extern)g(const)f(string)h Ff(COPYRIGHT_3DLDF)o Fm(;)83 +4736 y Fk(extern)g(const)f(string)h Ff(DISCLAIMER_3DLDF)n +Fm(;)p eop end +%%Page: 10 10 +TeXDict begin 10 9 bop 0 83 a Fm(10)140 b Fl(F)n(OR)24 +b(COMPILA)-6 b(TION)2335 b(3DLDFPR)n(G)141 b Fn(x)p Fm(21)0 +263 y Fk(21.)94 b Fm(TO)24 b(DO:)h(Find)g(out)f(wh)n(y)g(the)g(library) +f(v)n(ersion)g(of)h Fi(trunc)8 b Fm(\()14 b(\))25 b(can't)f(b)r(e)h +(found)f(in)h(the)f(v)n(ersion)f(for)h(GCC)g(2.95)f(under)0 +363 y(Lin)n(ux!)37 b([)p Fh(LDF)25 b(2002.12.10.)p Fm(])83 +462 y(The)j(problem)f(do)r(esn't)h(exist)f(for)g(GCC)h(3.3)f(under)g +(Lin)n(ux.)37 b([)p Fh(LDF)25 b(2003.08.14.)p Fm(])p +0 565 1779 4 v 1874 598 a Fk(Log)p 2122 565 V 83 739 +a Fm([)p Fh(LDF)g(2003.08.14.)p Fm(])73 b(Put)39 b(this)h(function)g +(declaration)d(in)j Fn(h)14 b Fm(Declare)39 b(utilit)n(y)g(functions)d +Fl(21)14 b Fn(i)p Fm(.)73 b(F)-7 b(ormerly)g(,)41 b(it)f(w)n(as)e(in)0 +838 y Fn(h)14 b Fm(Declarations)26 b(for)h(the)h(header)f(\014le)36 +b Fl(18)14 b Fn(i)p Fm(.)83 938 y(Changed)26 b(the)h(conditional)f (from)h(#)p Fk(ifdef)40 b Ff(__GNUC__)28 b Fm(to)e(#)p Fk(ifdef)41 b Ff(LDF_GCC_2_95)o Fm(,)27 b(b)r(ecause)g(the)g(library)e -(v)n(ersion)g(of)0 3845 y Fi(trunc)8 b Fm(\()14 b(\))28 +(v)n(ersion)g(of)0 1038 y Fi(trunc)8 b Fm(\()14 b(\))28 b(is)g(found)f(when)h(compiling)f(with)i(GCC)e(3.3)g(under)g(Lin)n(ux.) -p 0 3936 1678 4 v 1773 3969 a Fk(End)32 b(Log)p 2222 -3936 V 0 4094 a Fn(h)14 b Fm(Declare)27 b(utilit)n(y)h(functions)36 -b Fl(21)14 b Fn(i)23 b(\021)0 4193 y Fm(#)p Fk(ifdef)41 -b Ff(LDF_GCC_2_95)83 4293 y Fk(double)32 b Fi(trunc)8 -b Fm(\()p Fk(double)31 b Fe(d)q Fm(\);)0 4392 y(#)p Fk(endif)0 -4500 y Fl(See)24 b(also)g(sections)g(29)h(and)f(31.)0 -4608 y(This)f(co)r(de)i(is)e(cited)h(in)g(section)g(21.)0 -4716 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(36.)p +p 0 1130 3900 4 v 0 1287 a Fn(h)14 b Fm(Declare)27 b(utilit)n(y)h +(functions)36 b Fl(21)14 b Fn(i)23 b(\021)0 1386 y Fm(#)p +Fk(ifdef)41 b Ff(LDF_GCC_2_95)83 1486 y Fk(double)32 +b Fi(trunc)8 b Fm(\()p Fk(double)31 b Fe(d)q Fm(\);)0 +1586 y(#)p Fk(endif)0 1694 y Fl(See)24 b(also)g(sections)g(29)h(and)f +(31.)0 1801 y(This)f(co)r(de)i(is)e(cited)h(in)g(section)g(21.)0 +1909 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(36.)p eop end -%%Page: 10 10 -TeXDict begin 10 9 bop 0 83 a Fm(10)140 b Fl(F)n(OR)24 -b(COMPILA)-6 b(TION)2335 b(3DLDFPR)n(G)141 b Fn(x)p Fm(22)0 -263 y Fk(22.)p 0 339 1643 4 v 1738 371 a(Begin)31 b(Log)p -2257 339 V 83 512 a Fm([)p Fh(LDF)25 b(2003.08.14.)p -Fm(])75 b(Put)41 b(this)h(function)g(de\014nition)g(in)n(to)f -Fn(h)14 b Fm(De\014ne)42 b(utilit)n(y)g(functions)36 -b Fl(22)14 b Fn(i)p Fm(.)79 b(F)-7 b(ormerly)g(,)44 b(it)d(w)n(as)g(in) -0 612 y Fn(h)14 b Fm(Global)27 b(v)-5 b(ariables)34 b -Fl(15)15 b Fn(i)p Fm(.)p 0 704 1678 4 v 1773 736 a Fk(End)32 -b(Log)p 2222 704 V 0 861 a Fn(h)14 b Fm(De\014ne)28 b(utilit)n(y)g -(functions)36 b Fl(22)14 b Fn(i)24 b(\021)0 960 y Fm(#)p -Fk(ifdef)43 b Ff(LDF_GCC_2_95)165 b Fe(=)p Fn(\003)42 -b Fm(KLUDGE!!)f([)p Fh(LDF)25 b(2002.12.1.)p Fm(])62 -b Fi(trunc)8 b Fm(\()14 b(\))30 b(isn't)f(a)n(v)-5 b(ailable)28 -b(on)g(the)i(Lin)n(ux)e(mac)n(hine)249 1060 y(gwdg-wb02.gwdg.de!)34 -b(Find)28 b(out)g(wh)n(y)f(not!)51 b Fn(\003)p Fe(=)83 -1160 y Fk(double)32 b Fi(trunc)8 b Fm(\()p Fk(double)31 -b Fe(d)q Fm(\))83 1259 y Fn(f)166 1359 y Fk(in)m(t)i -Fe(i)o Fm(;)166 1483 y Fe(i)23 b Fm(=)f Fk(static)p 536 -1483 29 5 v 41 w(cast)5 b Fn(h)p Fk(in)m(t)g Fn(i)p Fm(\()p -Fe(d)q Fm(\);)166 1583 y Fk(return)33 b(static)p 695 -1583 V 40 w(cast)6 b Fn(h)p Fk(double)t Fn(i)p Fm(\()p -Fe(i)p Fm(\);)83 1683 y Fn(g)0 1782 y Fm(#)p Fk(endif)0 -1890 y Fl(See)24 b(also)g(sections)g(30)h(and)f(32.)0 +%%Page: 11 11 +TeXDict begin 11 10 bop 0 83 a Fn(x)p Fm(22)140 b Fl(3DLDFPR)n(G)2335 +b(F)n(OR)24 b(COMPILA)-6 b(TION)141 b Fm(11)0 263 y Fk(22.)p +0 339 1779 4 v 1874 371 a(Log)p 2122 339 V 83 512 a Fm([)p +Fh(LDF)25 b(2003.08.14.)p Fm(])75 b(Put)41 b(this)h(function)g +(de\014nition)g(in)n(to)f Fn(h)14 b Fm(De\014ne)42 b(utilit)n(y)g +(functions)36 b Fl(22)14 b Fn(i)p Fm(.)79 b(F)-7 b(ormerly)g(,)44 +b(it)d(w)n(as)g(in)0 612 y Fn(h)14 b Fm(Global)27 b(v)-5 +b(ariables)34 b Fl(15)15 b Fn(i)p Fm(.)p 0 704 3900 4 +v 0 861 a Fn(h)f Fm(De\014ne)28 b(utilit)n(y)g(functions)36 +b Fl(22)14 b Fn(i)24 b(\021)0 960 y Fm(#)p Fk(ifdef)43 +b Ff(LDF_GCC_2_95)165 b Fe(=)p Fn(\003)42 b Fm(KLUDGE!!)f([)p +Fh(LDF)25 b(2002.12.1.)p Fm(])62 b Fi(trunc)8 b Fm(\()14 +b(\))30 b(isn't)f(a)n(v)-5 b(ailable)28 b(on)g(the)i(Lin)n(ux)e(mac)n +(hine)249 1060 y(gwdg-wb02.gwdg.de!)34 b(Find)28 b(out)g(wh)n(y)f(not!) +51 b Fn(\003)p Fe(=)83 1160 y Fk(double)32 b Fi(trunc)8 +b Fm(\()p Fk(double)31 b Fe(d)q Fm(\))83 1259 y Fn(f)166 +1359 y Fk(in)m(t)i Fe(i)o Fm(;)166 1483 y Fe(i)23 b Fm(=)f +Fk(static)p 536 1483 29 5 v 41 w(cast)5 b Fn(h)p Fk(in)m(t)g +Fn(i)p Fm(\()p Fe(d)q Fm(\);)166 1583 y Fk(return)33 +b(static)p 695 1583 V 40 w(cast)6 b Fn(h)p Fk(double)t +Fn(i)p Fm(\()p Fe(i)p Fm(\);)83 1683 y Fn(g)0 1782 y +Fm(#)p Fk(endif)0 1890 y Fl(See)24 b(also)g(sections)g(30)h(and)f(32.)0 1998 y(This)f(co)r(de)i(is)e(cited)h(in)g(section)g(22.)0 2106 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(35.)0 2305 y Fk(23.)94 b(F)-8 b(or)32 b(the)g(header)g(\014le.)0 @@ -4803,39 +4859,38 @@ 3924 y Ff(MAX_REAL)38 b Fm(is)f(the)g(largest)e(p)r(ermitted)j Fk(real)j Fm(v)-5 b(alue.)65 b Ff(MAX_REAL_SQRT)35 b Fm(is)i(con)n(v)n(enien)n(t)f(to)g(ha)n(v)n(e)g(for)g(testing)h(when)0 -4024 y(computing)27 b(distances.)p 0 4123 1643 4 v 1738 -4156 a Fk(Begin)k(Log)p 2257 4123 V 83 4297 a Fm([)p -Fh(LDF)25 b(2002.09.25.)p Fm(])68 b(Added)36 b(this)f(section.)57 -b(Previously)-7 b(,)35 b(I)g(declared)f(and)g(initialized)h(m)n(y)f -(global)g(constan)n(ts)g(in)h(the)0 4396 y(header)42 -b(\014le.)82 b(This)43 b(mean)n(t)f(that)h(eac)n(h)f(compilation)g -(unit)h(that)g(loaded)f Fj(pspglb.h)d Fm(had)k(its)g(o)n(wn)f(v)n -(ersion)f(of)h Ff(PI)t Fm(,)0 4496 y Ff(INVALID_REAL)o -Fm(,)31 b(etc.)45 b(I)30 b(didn't)i(kno)n(w)d(that)h -Fi(c)l(onsts)41 b Fm(had)30 b(in)n(ternal)g(link)-5 b(age)29 -b(b)n(y)h(default)h(and)f(that)g(I)h(could)f(mak)n(e)f(their)0 -4595 y(link)-5 b(age)33 b(external)f(b)n(y)h(using)f -Fk(extern)39 b Fm(in)33 b(the)h(declaration)d(with)j(the)f -(initialization,)i(and)e(put)g(a)g(second)f(declaration,)0 -4695 y(also)27 b(with)h Fk(extern)5 b Fm(,)28 b(in)f(the)h(header)f -(\014le.)37 b(This)28 b(is)f(what)h(I'v)n(e)f(done)g(no)n(w.)83 -4795 y([)p Fh(LDF)e(2003.06.03.)p Fm(])61 b(Added)28 -b Ff(INVALID_REAL_SHOR)o(T)n Fm(.)p 0 4887 1678 4 v 1773 -4919 a Fk(End)k(Log)p 2222 4887 V 0 5118 a(25.)94 b(F)-8 -b(or)32 b(compilation.)0 5243 y Fn(h)14 b Fm(Global)27 +4024 y(computing)27 b(distances.)p 0 4123 1779 4 v 1874 +4155 a Fk(Log)p 2122 4123 V 83 4296 a Fm([)p Fh(LDF)e(2002.09.25.)p +Fm(])68 b(Added)36 b(this)f(section.)57 b(Previously)-7 +b(,)35 b(I)g(declared)f(and)g(initialized)h(m)n(y)f(global)g(constan)n +(ts)g(in)h(the)0 4395 y(header)42 b(\014le.)82 b(This)43 +b(mean)n(t)f(that)h(eac)n(h)f(compilation)g(unit)h(that)g(loaded)f +Fj(pspglb.h)d Fm(had)k(its)g(o)n(wn)f(v)n(ersion)f(of)h +Ff(PI)t Fm(,)0 4495 y Ff(INVALID_REAL)o Fm(,)31 b(etc.)45 +b(I)30 b(didn't)i(kno)n(w)d(that)h Fi(c)l(onsts)41 b +Fm(had)30 b(in)n(ternal)g(link)-5 b(age)29 b(b)n(y)h(default)h(and)f +(that)g(I)h(could)f(mak)n(e)f(their)0 4595 y(link)-5 +b(age)33 b(external)f(b)n(y)h(using)f Fk(extern)39 b +Fm(in)33 b(the)h(declaration)d(with)j(the)f(initialization,)i(and)e +(put)g(a)g(second)f(declaration,)0 4694 y(also)27 b(with)h +Fk(extern)5 b Fm(,)28 b(in)f(the)h(header)f(\014le.)37 +b(This)28 b(is)f(what)h(I'v)n(e)f(done)g(no)n(w.)83 4794 +y([)p Fh(LDF)e(2003.06.03.)p Fm(])61 b(Added)28 b Ff(INVALID_REAL_SHOR) +o(T)n Fm(.)p 0 4886 3900 4 v 0 5118 a Fk(25.)94 b(F)-8 +b(or)32 b(compilation.)0 5242 y Fn(h)14 b Fm(Global)27 b(constan)n(ts)34 b Fl(19)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -5343 y Fk(extern)33 b(const)f(real)h Ff(PI)26 b Fm(=)d(4)p +5342 y Fk(extern)33 b(const)f(real)h Ff(PI)26 b Fm(=)d(4)p Fe(:)p Fm(0)18 b Fn(\003)f Fi(atan)11 b Fm(\(1)p Fe(:)p Fm(0\);)p eop end -%%Page: 11 11 -TeXDict begin 11 10 bop 0 83 a Fn(x)p Fm(25)140 b Fl(3DLDFPR)n(G)2335 -b(F)n(OR)24 b(COMPILA)-6 b(TION)141 b Fm(11)83 263 y -Fk(extern)33 b(const)f(real)p 793 263 29 5 v 40 w(pair)h -Ff(INVALID_REAL_PAIR)m Fm(\()p Ff(INVALID_REAL)p Fe(;)14 -b Ff(INVALID_REAL)o Fm(\);)83 363 y Fk(extern)33 b(const)f(real)p -793 363 V 40 w(short)h Ff(INVALID_REAL_SHO)o(RT)n Fm(\()p -Ff(INVALID_REAL)o Fe(;)14 b Fm(0\);)0 462 y(#)p Fk(ifdef)41 -b Ff(__DECCXX)83 562 y Fk(extern)33 b(const)f(real)h +%%Page: 12 12 +TeXDict begin 12 11 bop 0 83 a Fm(12)140 b Fl(F)n(OR)24 +b(COMPILA)-6 b(TION)2335 b(3DLDFPR)n(G)141 b Fn(x)p Fm(25)83 +263 y Fk(extern)33 b(const)f(real)p 793 263 29 5 v 40 +w(pair)h Ff(INVALID_REAL_PAIR)m Fm(\()p Ff(INVALID_REAL)p +Fe(;)14 b Ff(INVALID_REAL)o Fm(\);)83 363 y Fk(extern)33 +b(const)f(real)p 793 363 V 40 w(short)h Ff(INVALID_REAL_SHO)o(RT)n +Fm(\()p Ff(INVALID_REAL)o Fe(;)14 b Fm(0\);)0 462 y(#)p +Fk(ifdef)41 b Ff(__DECCXX)83 562 y Fk(extern)33 b(const)f(real)h Ff(MAX_REAL_SQRT)22 b Fm(=)g Fi(sqrt)12 b Fm(\()p Ff(MAX_REAL)r Fm(\);)0 662 y(#)p Fk(endif)0 861 y(26.)94 b Fm([)p Fh(LDF)26 b(2002.12.10.)p Fm(])61 b(UR)n(GENT:)27 b(Find)h(out)g(wh)n(y)f @@ -4860,22 +4915,21 @@ b Fm([)p Fh(LDF)25 b(2002.09.03.)p Fm(])60 b(TO)26 b(DO:)h(Ma)n(yb)r(e) f(add)h(functions)g(for)f(solving)f(cubic)i(and)0 2704 y(quartic)g(equations,)g(if)h(this)g(is)f(practicable.)p -0 2803 1643 4 v 1738 2836 a Fk(Begin)k(Log)p 2257 2803 -V 83 2976 a Fm([)p Fh(LDF)25 b(2003.06.1.)p Fm(])61 b(Changed)27 -b(return)g(t)n(yp)r(e)h(from)f Fk(pair)5 b Fn(h)p Fk(real)g -Fe(;)14 b Fk(real)5 b Fn(i)28 b Fm(to)f Fk(real)p 2566 -2976 29 5 v 40 w(pair)5 b Fm(,)28 b(whic)n(h)g(is)f(equiv)-5 -b(alen)n(t.)p 0 3068 1678 4 v 1773 3101 a Fk(End)32 b(Log)p -2222 3068 V 0 3226 a Fn(h)14 b Fm(Declare)27 b(utilit)n(y)h(functions) -36 b Fl(21)14 b Fn(i)23 b Fm(+)p Fn(\021)83 3325 y Fk(real)p -243 3325 29 5 v 40 w(pair)33 b Fi(solve)p 655 3325 26 -4 v 31 w(quadr)l(atic)10 b Fm(\()p Fk(real)33 b Fe(a;)14 -b Fk(real)32 b Fe(b;)14 b Fk(real)32 b Fe(c)p Fm(\);)p -eop end -%%Page: 12 12 -TeXDict begin 12 11 bop 0 83 a Fm(12)140 b Fl(SOL)-8 -b(VE)24 b(QUADRA)-6 b(TIC)23 b(EQUA)-6 b(TION)1923 b(3DLDFPR)n(G)141 -b Fn(x)p Fm(30)0 263 y Fk(30.)0 388 y Fn(h)14 b Fm(De\014ne)28 +0 2802 1779 4 v 1874 2835 a Fk(Log)p 2122 2802 V 83 2976 +a Fm([)p Fh(LDF)e(2003.06.1.)p Fm(])61 b(Changed)27 b(return)g(t)n(yp)r +(e)h(from)f Fk(pair)5 b Fn(h)p Fk(real)g Fe(;)14 b Fk(real)5 +b Fn(i)28 b Fm(to)f Fk(real)p 2566 2976 29 5 v 40 w(pair)5 +b Fm(,)28 b(whic)n(h)g(is)f(equiv)-5 b(alen)n(t.)p 0 +3068 3900 4 v 0 3225 a Fn(h)14 b Fm(Declare)27 b(utilit)n(y)h +(functions)36 b Fl(21)14 b Fn(i)23 b Fm(+)p Fn(\021)83 +3324 y Fk(real)p 243 3324 29 5 v 40 w(pair)33 b Fi(solve)p +655 3324 26 4 v 31 w(quadr)l(atic)10 b Fm(\()p Fk(real)33 +b Fe(a;)14 b Fk(real)32 b Fe(b;)14 b Fk(real)32 b Fe(c)p +Fm(\);)p eop end +%%Page: 13 13 +TeXDict begin 13 12 bop 0 83 a Fn(x)p Fm(30)140 b Fl(3DLDFPR)n(G)1923 +b(SOL)-8 b(VE)24 b(QUADRA)-6 b(TIC)23 b(EQUA)-6 b(TION)141 +b Fm(13)0 263 y Fk(30.)0 388 y Fn(h)14 b Fm(De\014ne)28 b(utilit)n(y)g(functions)36 b Fl(22)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(real)p 243 487 29 5 v 40 w(pair)33 b Fi(solve)p 655 487 26 4 v 31 w(quadr)l(atic)10 b Fm(\()p @@ -4909,11 +4963,11 @@ b Fn(i)28 b Fe(C)6 b Fn(\003)p Fi(cr)l(e)l(ate)p 1159 3028 26 4 v 30 w(new)13 b Fm(\()p Fe(C)25 b Fn(\003)18 b Fe(c)23 b Fm(=)g(0\);)0 3127 y(#)p Fk(endif)p eop end -%%Page: 13 13 -TeXDict begin 13 12 bop 0 83 a Fn(x)p Fm(32)140 b Fl(3DLDFPR)n(G)2176 -b(D)n(YNAMIC)23 b(ALLOCA)-6 b(TION)141 b Fm(13)0 263 -y Fk(32.)0 388 y Fn(h)14 b Fm(De\014ne)28 b(utilit)n(y)g(functions)36 -b Fl(22)14 b Fn(i)24 b Fm(+)p Fn(\021)0 487 y Fm(#)p +%%Page: 14 14 +TeXDict begin 14 13 bop 0 83 a Fm(14)140 b Fl(D)n(YNAMIC)23 +b(ALLOCA)-6 b(TION)2176 b(3DLDFPR)n(G)141 b Fn(x)p Fm(32)0 +263 y Fk(32.)0 388 y Fn(h)14 b Fm(De\014ne)28 b(utilit)n(y)g(functions) +36 b Fl(22)14 b Fn(i)24 b Fm(+)p Fn(\021)0 487 y Fm(#)p Fk(if)41 b Fm(0)83 587 y Fk(template)t Fn(h)p Fk(class)33 b Fe(C)6 b Fn(i)28 b Fe(C)6 b Fn(\003)p Fi(cr)l(e)l(ate)p 1159 587 26 4 v 30 w(new)13 b Fm(\()p Fe(C)25 b Fn(\003)18 @@ -4937,61 +4991,60 @@ 1683 y(other)d(classes)f(that)i(ha)n(v)n(en't)f(b)r(een)h(de\014ned)g (y)n(et.)36 b(F)-7 b(orw)n(ard)24 b(declarations)g(mak)n(e)h(it)h(p)r (ossible)f(to)h(do)f(this.)36 b(TO)26 b(DO:)f(GET)0 1782 -y(CIT)-7 b(A)g(TION)28 b(from)f(Stroustrup.)p 0 1882 -1643 4 v 1738 1914 a Fk(Begin)k(Log)p 2257 1882 V 83 -2055 a Fm([)p Fh(LDF)25 b(2002.04.10.)p Fm(])68 b(Added)35 -b(the)f(forw)n(ard)f(declaration)g(of)h Fk(b)s(o)s(ol)p -2202 2055 29 5 v 38 w(real)p 2396 2055 V 40 w(p)s(oin)m(t)5 -b Fm(.)56 b(It's)35 b(needed)f(b)r(ecause)g(it's)h(used)f(as)0 -2155 y(the)25 b(return)g(v)-5 b(alue)25 b(of)g Fk(P)m(oin)m(t)13 -b Fm(::)8 b Fi(interse)l(ction)p 1413 2155 26 4 v 31 +y(CIT)-7 b(A)g(TION)28 b(from)f(Stroustrup.)p 0 1881 +1779 4 v 1874 1914 a Fk(Log)p 2122 1881 V 83 2054 a Fm([)p +Fh(LDF)e(2002.04.10.)p Fm(])68 b(Added)35 b(the)f(forw)n(ard)f +(declaration)g(of)h Fk(b)s(o)s(ol)p 2202 2054 29 5 v +38 w(real)p 2396 2054 V 40 w(p)s(oin)m(t)5 b Fm(.)56 +b(It's)35 b(needed)f(b)r(ecause)g(it's)h(used)f(as)0 +2154 y(the)25 b(return)g(v)-5 b(alue)25 b(of)g Fk(P)m(oin)m(t)13 +b Fm(::)8 b Fi(interse)l(ction)p 1413 2154 26 4 v 31 w(p)l(oint)13 b Fm(\()h(\),)26 b(whic)n(h)e(is,)i(of)f(course,)f (declared)g(within)i(the)f(declaration)f(of)h Fk(class)0 -2254 y(P)m(oin)m(t)5 b Fm(.)53 b(Ho)n(w)n(ev)n(er,)33 -b Fk(b)s(o)s(ol)p 856 2254 29 5 v 38 w(real)p 1050 2254 +2253 y(P)m(oin)m(t)5 b Fm(.)53 b(Ho)n(w)n(ev)n(er,)33 +b Fk(b)s(o)s(ol)p 856 2253 29 5 v 38 w(real)p 1050 2253 V 40 w(p)s(oin)m(t)38 b Fm(can)32 b(only)h(b)r(e)g(de\014ned)h Fi(after)43 b Fk(P)m(oin)m(t)38 b Fm(is)33 b(de\014ned.)53 -b(This)33 b(forw)n(ard)e(declaration)0 2354 y(solv)n(es)26 +b(This)33 b(forw)n(ard)e(declaration)0 2353 y(solv)n(es)26 b(the)i(problem.)83 2453 y([)p Fh(LDF)d(2003.07.16.)p Fm(])60 b(Added)28 b(forw)n(ard)d(declaration)g(of)i Fk(Ellipse)r Fm(.)37 b(It's)27 b(needed,)g(b)r(ecause)f(I'v)n(e)h -(declared)f Fk(Ellipse)j Fm(to)e(b)r(e)0 2553 y(a)e Fk(friend)31 +(declared)f Fk(Ellipse)j Fm(to)e(b)r(e)0 2552 y(a)e Fk(friend)31 b Fm(of)26 b Fk(P)m(ath)6 b Fm(.)36 b(F)-7 b(ormerly)g(,)26 b Fk(Circle)k Fm(w)n(as)25 b(a)g Fk(friend)31 b Fm(of)26 b Fk(P)m(ath)6 b Fm(,)26 b(but)h(no)n(w)e(it)h(m)n(ust)g(b)r(e)g -Fk(Ellipse)s Fm(,)g(b)r(ecause)g(I'v)n(e)f(made)0 2653 +Fk(Ellipse)s Fm(,)g(b)r(ecause)g(I'v)n(e)f(made)0 2652 y(the)j(\\segmen)n(t")e(functions)i Fi(se)l(gment)11 b Fm(\()k(\),)28 b Fi(half)23 b Fm(\()14 b(\),)28 b(and)g Fi(quarter)13 b Fm(\()h(\))28 b(mem)n(b)r(ers)f(of)h -Fk(Ellipse)i Fm(instead)d(of)h Fk(Circle)t Fm(.)p 0 2745 -1678 4 v 1773 2777 a Fk(End)k(Log)p 2222 2745 V 0 2902 -a Fn(h)14 b Fm(F)-7 b(orw)n(ard)26 b(declarations)33 +Fk(Ellipse)i Fm(instead)d(of)h Fk(Circle)t Fm(.)p 0 2744 +3900 4 v 0 2901 a Fn(h)14 b Fm(F)-7 b(orw)n(ard)26 b(declarations)33 b Fl(33)15 b Fn(i)23 b(\021)83 3001 y Fk(struct)33 b(b)s(o)s(ol)p -548 3001 29 5 v 39 w(p)s(oin)m(t)t Fm(;)83 3101 y Fk(struct)g(b)s(o)s -(ol)p 548 3101 V 39 w(real)p 743 3101 V 40 w(p)s(oin)m(t)t -Fm(;)83 3201 y Fk(class)f(Circle)t Fm(;)83 3300 y Fk(class)g(Ellipse)s -Fm(;)83 3400 y Fk(struct)h(F)-8 b(o)s(cus)5 b Fm(;)83 -3499 y Fk(struct)33 b(Line)5 b Fm(;)83 3599 y Fk(class)32 -b(P)m(ath)6 b Fm(;)83 3699 y Fk(class)32 b(Picture)5 -b Fm(;)83 3798 y Fk(struct)33 b(Plane)5 b Fm(;)83 3898 -y Fk(class)32 b(P)m(oin)m(t)5 b Fm(;)0 4006 y Fl(This)23 -b(co)r(de)i(is)e(used)h(in)f(section)i(36.)0 4205 y Fk(34.)94 +548 3001 29 5 v 39 w(p)s(oin)m(t)t Fm(;)83 3100 y Fk(struct)g(b)s(o)s +(ol)p 548 3100 V 39 w(real)p 743 3100 V 40 w(p)s(oin)m(t)t +Fm(;)83 3200 y Fk(class)f(Circle)t Fm(;)83 3300 y Fk(class)g(Ellipse)s +Fm(;)83 3399 y Fk(struct)h(F)-8 b(o)s(cus)5 b Fm(;)83 +3499 y Fk(struct)33 b(Line)5 b Fm(;)83 3598 y Fk(class)32 +b(P)m(ath)6 b Fm(;)83 3698 y Fk(class)32 b(Picture)5 +b Fm(;)83 3798 y Fk(struct)33 b(Plane)5 b Fm(;)83 3897 +y Fk(class)32 b(P)m(oin)m(t)5 b Fm(;)0 4005 y Fl(This)23 +b(co)r(de)i(is)e(used)h(in)f(section)i(36.)0 4204 y Fk(34.)94 b(Putting)32 b Fj(pspglb)e Fk(together.)0 4404 y(35.)94 -b Fm(This)28 b(is)g(what's)f(compiled.)83 4529 y Fn(h)14 -b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 4629 +b Fm(This)28 b(is)g(what's)f(compiled.)83 4528 y Fn(h)14 +b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 4628 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)83 4728 y(h)f Fm(T)n(yp)r(e)28 b(de\014nitions)35 -b Fl(12)14 b Fn(i)83 4828 y(h)g Fm(Utilit)n(y)28 b(classes)34 +b Fl(12)14 b Fn(i)83 4827 y(h)g Fm(Utilit)n(y)28 b(classes)34 b Fl(13)15 b Fn(i)83 4927 y(h)f Fm(Global)27 b(v)-5 b(ariables)34 -b Fl(15)15 b Fn(i)83 5027 y(h)f Fm(Global)27 b(constan)n(ts)34 -b Fl(19)15 b Fn(i)83 5127 y(h)f Fm(De\014ne)28 b(utilit)n(y)g +b Fl(15)15 b Fn(i)83 5026 y(h)f Fm(Global)27 b(constan)n(ts)34 +b Fl(19)15 b Fn(i)83 5126 y(h)f Fm(De\014ne)28 b(utilit)n(y)g (functions)36 b Fl(22)14 b Fn(i)p eop end -%%Page: 14 14 -TeXDict begin 14 13 bop 0 83 a Fm(14)140 b Fl(PUTTING)24 -b Fj(PSPGLB)d Fl(TOGETHER)1971 b(3DLDFPR)n(G)141 b Fn(x)p -Fm(36)0 263 y Fk(36.)94 b Fm(This)28 b(is)g(what's)f(written)h(to)f -(the)h Fj(pspglb.h)p Fm(.)0 388 y Fn(h)14 b Ff(pspglb.h)80 -b Fl(36)14 b Fn(i)24 b(\021)83 487 y(h)14 b Fm(T)n(yp)r(e)28 +%%Page: 15 15 +TeXDict begin 15 14 bop 0 83 a Fn(x)p Fm(36)140 b Fl(3DLDFPR)n(G)1971 +b(PUTTING)24 b Fj(PSPGLB)d Fl(TOGETHER)141 b Fm(15)0 +263 y Fk(36.)94 b Fm(This)28 b(is)g(what's)f(written)h(to)f(the)h +Fj(pspglb.h)p Fm(.)0 388 y Fn(h)14 b Ff(pspglb.h)80 b +Fl(36)14 b Fn(i)24 b(\021)83 487 y(h)14 b Fm(T)n(yp)r(e)28 b(de\014nitions)35 b Fl(12)14 b Fn(i)83 587 y(h)g Fm(Utilit)n(y)28 b(classes)34 b Fl(13)15 b Fn(i)83 686 y(h)f Fm(Declarations)26 b(for)h(the)h(header)f(\014le)36 b Fl(18)14 b Fn(i)166 @@ -5007,116 +5060,124 @@ (functions)36 b Fl(21)14 b Fn(i)83 1533 y(h)g Fm(F)-7 b(orw)n(ard)26 b(declarations)33 b Fl(33)15 b Fn(i)0 1733 y Fk(37.)94 b(I/O)i(\()p Fj(io.web)p Fk(\).)p 0 -1836 1643 4 v 1738 1869 a(Begin)31 b(Log)p 2257 1836 -V 83 2010 a Fm([)p Fh(LDF)25 b(2003.11.12.)p Fm(])71 -b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i -(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g(of)0 -2109 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h -(dev)n(elopmen)n(t)f(v)n(ersions.)p 0 2201 1678 4 v 1773 -2234 a Fk(End)32 b(Log)p 2222 2201 V 0 2358 a Fn(h)14 -b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 -b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)0 2558 y Fk(38.)94 -b(Include)32 b(\014les.)0 2682 y Fn(h)14 b Fm(Include)28 -b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 -2782 y Fm(#)p Fk(include)32 b Ff("loader.h")0 2881 y -Fm(#)p Fk(include)g Ff("pspglb.h")0 2981 y Fm(#)p Fk(include)g -Ff()0 3180 y Fk(39.)94 b(Global)31 b(v)-5 b(ariables.)94 -b Fm([)p Fh(LDF)26 b(2002.10.16.)p Fm(])60 b Fi(in)p -1743 3180 26 4 v 30 w(str)l(e)l(am)38 b Fm(is)26 b(an)h(input)g(stream) -f(attac)n(hed)h(to)f(a)h(\014le)g(with)g(user)f(co)r(de)0 -3280 y(for)i(input.)41 b(Curren)n(tly)-7 b(,)28 b(it)h(is)g(used,)g -(but)g(it)g(ful\014lls)h(no)e(useful)h(function,)h(b)r(ecause)e(I)h(ha) -n(v)n(en't)f(de\014ned)h(an)f(input)h(routine)0 3380 -y(y)n(et.)35 b Fi(out)p 289 3380 V 30 w(str)l(e)l(am)c -Fm(is)21 b(an)g(output)h(stream)e(attac)n(hed)g(to)h(the)h(\014le)f(of) -g(MET)-7 b(APOST)21 b(co)r(de)g(that)g(3DLDF)h(curren)n(tly)e(pro)r -(duces)0 3479 y(as)28 b(its)h(output.)40 b Fi(tex)p 637 -3479 V 30 w(str)l(e)l(am)f Fm(is)28 b(an)g(output)i(stream)d(attac)n -(hed)h(to)h(a)f(\014le)h(of)f(T)2474 3494 y(E)2520 3479 -y(X)h(co)r(de.)40 b(The)29 b(user)f(can)g(write)g(T)3599 -3494 y(E)3645 3479 y(X)h(co)r(de)0 3579 y(to)e(this)h(\014le)g(and)g -(load)e(it)i(in)n(to)g Fj(persp.tex)c Fm(or)i(use)i(it)g(for)f(some)g -(other)g(purp)r(ose.)36 b(3DLDF)28 b(mak)n(es)f(no)g(use)h(of)f(it)h -(itself.)p 0 3680 1643 4 v 1738 3713 a Fk(Begin)j(Log)p -2257 3680 V 83 3854 a Fm([)p Fh(LDF)25 b(2002.08.30.)p -Fm(])67 b(Added)34 b Fi(tex)p 1126 3854 26 4 v 30 w(str)l(e)l(am)44 -b Fm(so)33 b(that)h(I)f(can)g(include)h(T)2285 3869 y(E)2331 -3854 y(X)g(co)r(de)g(in)f(m)n(y)h(user)f(co)r(de.)54 -b(Co)r(de)34 b(written)f(b)n(y)0 3953 y(3DLDF)20 b(to)f -Fi(tex)p 497 3953 V 30 w(str)l(e)l(am)30 b Fm(will)19 -b(b)r(e)h(loaded)f(b)n(y)g Fj(persp.tex)p Fm(,)f(or)g(whatev)n(er)g(T) -2327 3969 y(E)2374 3953 y(X)h(\014le)h(includes)g(the)f(P)n(ostScript)g -(\014le)g(generated)0 4053 y(b)n(y)k(MET)-7 b(APOST)22 -b(from)h(the)h(output)g(of)f(3DLDF.)h(User)f(co)r(de)g(is)g(curren)n -(tly)f(in)i Fj(main.web)p Fm(.)32 b(In)23 b(pro)r(duction)g(v)n -(ersions)f(user)0 4153 y(co)r(de)27 b(will)h(b)r(e)g(in)g -Fj(user.web)p Fm(.)83 4252 y([)p Fh(LDF)d(2003.07.16.)p -Fm(])61 b(Added)28 b Fi(\014g)p 1094 4252 V 31 w(num)10 -b Fm(.)p 0 4344 1678 4 v 1773 4377 a Fk(End)32 b(Log)p -2222 4344 V 83 4501 a(format)65 b Fi(ifstr)l(e)l(am)80 -b(int)83 4601 y Fk(format)65 b Fi(ofstr)l(e)l(am)80 b(int)0 -4725 y Fn(h)14 b Fm(Global)27 b(v)-5 b(ariables)34 b -Fl(15)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4825 y Fk(ifstream)32 -b Fi(in)p 532 4825 26 4 v 31 w(str)l(e)l(am)10 b Fm(;)83 -4925 y Fk(ofstream)32 b Fi(out)p 596 4925 V 30 w(str)l(e)l(am)11 -b Fm(;)83 5024 y Fk(ofstream)32 b Fi(tex)p 586 5024 V -30 w(str)l(e)l(am)10 b Fm(;)83 5124 y Fk(unsigned)31 -b(short)i Fi(\014g)p 821 5124 V 30 w(num)10 b Fm(;)p -eop end -%%Page: 15 15 -TeXDict begin 15 14 bop 0 83 a Fn(x)p Fm(40)140 b Fl(3DLDFPR)n(G)2295 -b(GLOBAL)24 b(V)-8 b(ARIABLES)141 b Fm(15)0 263 y Fk(40.)94 -b(extern)33 b Fm(declarations)26 b(for)h(the)h(global)f(v)-5 -b(ariables.)0 388 y Fn(h)14 b Fk(extern)33 b Fm(v)-5 -b(ariable)27 b(declarations)33 b Fl(40)14 b Fn(i)24 b(\021)83 -487 y Fk(extern)33 b(ifstream)f Fi(in)p 832 487 26 4 -v 31 w(str)l(e)l(am)10 b Fm(;)83 587 y Fk(extern)33 b(ofstream)f -Fi(out)p 896 587 V 30 w(str)l(e)l(am)10 b Fm(;)83 686 -y Fk(extern)33 b(ofstream)f Fi(tex)p 886 686 V 30 w(str)l(e)l(am)10 -b Fm(;)83 786 y Fk(extern)33 b(unsigned)e(short)h Fi(\014g)p -1120 786 V 31 w(num)10 b Fm(;)0 894 y Fl(This)23 b(co)r(de)i(is)e(used) -h(in)f(section)i(53.)0 1093 y Fk(41.)94 b(I/O)32 b(functions.)0 -1292 y(42.)94 b(Initialize)31 b(I/O.)p 0 1396 1643 4 -v 1738 1429 a(Begin)g(Log)p 2257 1396 V 83 1570 a Fm([)p -Fh(LDF)25 b(2003.08.29.)p Fm(])61 b(Changed,)27 b(so)g(that)h -Fi(in)p 1467 1570 26 4 v 31 w(str)l(e)l(am)38 b Fm(isn't)27 -b(op)r(ened.)p 0 1662 1678 4 v 1773 1694 a Fk(End)32 -b(Log)p 2222 1662 V 0 1819 a Fn(h)14 b Fm(Declare)27 -b(I/O)g(functions)35 b Fl(42)15 b Fn(i)23 b(\021)83 1918 -y Fk(v)m(oid)36 b Fi(initialize)p 609 1918 26 4 v 33 -w(io)10 b Fm(\()p Fk(string)37 b Fi(in)p 1102 1918 V -31 w(str)l(e)l(am)p 1370 1918 V 30 w(name)11 b Fe(;)j -Fk(string)36 b Fi(out)p 2036 1918 V 31 w(str)l(e)l(am)p -2304 1918 V 30 w(name)10 b Fe(;)k Fk(string)37 b Fi(tex)p -2960 1918 V 30 w(str)l(e)l(am)p 3227 1918 V 30 w(name)11 -b Fe(;)j Fk(c)m(har)249 2018 y Fn(\003)p Fi(pr)l(o)l(gr)l(am)p -586 2018 V 31 w(name)c Fm(\);)0 2126 y Fl(See)24 b(also)g(sections)g -(45,)g(47,)g(and)g(49.)0 2234 y(This)f(co)r(de)i(is)e(used)h(in)f -(section)i(53.)0 2433 y Fk(43.)0 2558 y Fn(h)14 b Fm(De\014ne)28 -b(I/O)f(functions)36 b Fl(43)14 b Fn(i)23 b(\021)83 2657 -y Fk(v)m(oid)36 b Fi(initialize)p 609 2657 V 33 w(io)10 -b Fm(\()p Fk(string)37 b Fi(in)p 1102 2657 V 31 w(str)l(e)l(am)p -1370 2657 V 30 w(name)11 b Fe(;)j Fk(string)36 b Fi(out)p -2036 2657 V 31 w(str)l(e)l(am)p 2304 2657 V 30 w(name)10 -b Fe(;)k Fk(string)37 b Fi(tex)p 2960 2657 V 30 w(str)l(e)l(am)p -3227 2657 V 30 w(name)11 b Fe(;)j Fk(c)m(har)415 2757 -y Fn(\003)p Fi(pr)l(o)l(gr)l(am)p 752 2757 V 31 w(name)d -Fm(\))p Fn(f)27 b Fk(time)p 1277 2757 29 5 v 39 w(t)33 -b Fi(tt)11 b Fm(;)249 2857 y Fk(tm)32 b Fn(\003)p Fi(lt)12 -b Fm(;)249 2981 y Fi(tt)34 b Fm(=)23 b Fi(time)11 b Fm(\(0)o(\);)249 -3081 y Fi(lt)35 b Fm(=)23 b Fi(lo)l(c)l(altime)11 b Fm(\(&)p -Fi(tt)g Fm(\);)249 3205 y Fk(string)33 b Fi(datestamp)11 -b Fm(\()p Fi(asctime)g Fm(\()p Fi(lt)h Fm(\)\);)249 3330 +1836 1779 4 v 1874 1868 a(Log)p 2122 1836 V 83 2009 a +Fm([)p Fh(LDF)25 b(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 +b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB) +g(\014les)g(for)f(the)h(distribution)g(of)0 2109 y(3DLDF)28 +b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t) +f(v)n(ersions.)83 2208 y([)p Fh(LDF)e(2003.12.10.)p Fm(])64 +b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden)n(ti\014ers)h(bac)n(k)f +(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h(3DLDF)i(1.1.4.)43 +b(I'v)n(e)0 2308 y(already)24 b(put)j(some)e(of)h(them)h(bac)n(k)e(in,) +i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.)37 b(Ho)n(w)n(ev)n +(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w)i(in)0 +2408 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 b(.)p +0 2499 3900 4 v 0 2657 a Fn(h)14 b Fm(V)-7 b(ersion)27 +b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 2756 y Fk(static)33 b(string)g Fi(r)l(cs)p +726 2756 26 4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p +Ff(io.web,v)p Fj( )p Ff(1)o(.2)o Fj( )p Ff(2)-6 b(003/12/10)p +Fj( )p Ff(15:39)o(:4)o(0)p Fj( )p Ff(l)f(finsto1)p Fj( )p +Ff(Exp)p Fj( )p Ff($")o Fm(;)0 2955 y Fk(38.)94 b(Include)32 +b(\014les.)0 3080 y Fn(h)14 b Fm(Include)28 b(\014les)35 +b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 3180 y Fm(#)p +Fk(include)32 b Ff("loader.h")0 3279 y Fm(#)p Fk(include)g +Ff("pspglb.h")0 3379 y Fm(#)p Fk(include)g Ff()0 +3578 y Fk(39.)94 b(Global)31 b(v)-5 b(ariables.)94 b +Fm([)p Fh(LDF)26 b(2002.10.16.)p Fm(])60 b Fi(in)p 1743 +3578 V 30 w(str)l(e)l(am)38 b Fm(is)26 b(an)h(input)g(stream)f(attac)n +(hed)h(to)f(a)h(\014le)g(with)g(user)f(co)r(de)0 3678 +y(for)i(input.)41 b(Curren)n(tly)-7 b(,)28 b(it)h(is)g(used,)g(but)g +(it)g(ful\014lls)h(no)e(useful)h(function,)h(b)r(ecause)e(I)h(ha)n(v)n +(en't)f(de\014ned)h(an)f(input)h(routine)0 3777 y(y)n(et.)35 +b Fi(out)p 289 3777 V 30 w(str)l(e)l(am)c Fm(is)21 b(an)g(output)h +(stream)e(attac)n(hed)g(to)h(the)h(\014le)f(of)g(MET)-7 +b(APOST)21 b(co)r(de)g(that)g(3DLDF)h(curren)n(tly)e(pro)r(duces)0 +3877 y(as)28 b(its)h(output.)40 b Fi(tex)p 637 3877 V +30 w(str)l(e)l(am)f Fm(is)28 b(an)g(output)i(stream)d(attac)n(hed)h(to) +h(a)f(\014le)h(of)f(T)2474 3892 y(E)2520 3877 y(X)h(co)r(de.)40 +b(The)29 b(user)f(can)g(write)g(T)3599 3892 y(E)3645 +3877 y(X)h(co)r(de)0 3977 y(to)e(this)h(\014le)g(and)g(load)e(it)i(in)n +(to)g Fj(persp.tex)c Fm(or)i(use)i(it)g(for)f(some)g(other)g(purp)r +(ose.)36 b(3DLDF)28 b(mak)n(es)f(no)g(use)h(of)f(it)h(itself.)p +0 4078 1779 4 v 1874 4110 a Fk(Log)p 2122 4078 V 83 4251 +a Fm([)p Fh(LDF)d(2002.08.30.)p Fm(])67 b(Added)34 b +Fi(tex)p 1126 4251 26 4 v 30 w(str)l(e)l(am)44 b Fm(so)33 +b(that)h(I)f(can)g(include)h(T)2285 4266 y(E)2331 4251 +y(X)g(co)r(de)g(in)f(m)n(y)h(user)f(co)r(de.)54 b(Co)r(de)34 +b(written)f(b)n(y)0 4350 y(3DLDF)20 b(to)f Fi(tex)p 497 +4350 V 30 w(str)l(e)l(am)30 b Fm(will)19 b(b)r(e)h(loaded)f(b)n(y)g +Fj(persp.tex)p Fm(,)f(or)g(whatev)n(er)g(T)2327 4366 +y(E)2374 4350 y(X)h(\014le)h(includes)g(the)f(P)n(ostScript)g(\014le)g +(generated)0 4450 y(b)n(y)k(MET)-7 b(APOST)22 b(from)h(the)h(output)g +(of)f(3DLDF.)h(User)f(co)r(de)g(is)g(curren)n(tly)f(in)i +Fj(main.web)p Fm(.)32 b(In)23 b(pro)r(duction)g(v)n(ersions)f(user)0 +4550 y(co)r(de)27 b(will)h(b)r(e)g(in)g Fj(user.web)p +Fm(.)83 4649 y([)p Fh(LDF)d(2003.07.16.)p Fm(])61 b(Added)28 +b Fi(\014g)p 1094 4649 V 31 w(num)10 b Fm(.)p 0 4741 +3900 4 v 83 4898 a Fk(format)65 b Fi(ifstr)l(e)l(am)80 +b(int)83 4998 y Fk(format)65 b Fi(ofstr)l(e)l(am)80 b(int)0 +5123 y Fn(h)14 b Fm(Global)27 b(v)-5 b(ariables)34 b +Fl(15)15 b Fn(i)23 b Fm(+)p Fn(\021)83 5222 y Fk(ifstream)32 +b Fi(in)p 532 5222 26 4 v 31 w(str)l(e)l(am)10 b Fm(;)83 +5322 y Fk(ofstream)32 b Fi(out)p 596 5322 V 30 w(str)l(e)l(am)11 +b Fm(;)p eop end +%%Page: 16 16 +TeXDict begin 16 15 bop 0 83 a Fm(16)140 b Fl(GLOBAL)24 +b(V)-8 b(ARIABLES)2295 b(3DLDFPR)n(G)141 b Fn(x)p Fm(39)83 +263 y Fk(ofstream)32 b Fi(tex)p 586 263 26 4 v 30 w(str)l(e)l(am)10 +b Fm(;)83 363 y Fk(unsigned)31 b(short)i Fi(\014g)p 821 +363 V 30 w(num)10 b Fm(;)0 562 y Fk(40.)94 b(extern)33 +b Fm(declarations)26 b(for)h(the)h(global)f(v)-5 b(ariables.)0 +686 y Fn(h)14 b Fk(extern)33 b Fm(v)-5 b(ariable)27 b(declarations)33 +b Fl(40)14 b Fn(i)24 b(\021)83 786 y Fk(extern)33 b(ifstream)f +Fi(in)p 832 786 V 31 w(str)l(e)l(am)10 b Fm(;)83 886 +y Fk(extern)33 b(ofstream)f Fi(out)p 896 886 V 30 w(str)l(e)l(am)10 +b Fm(;)83 985 y Fk(extern)33 b(ofstream)f Fi(tex)p 886 +985 V 30 w(str)l(e)l(am)10 b Fm(;)83 1085 y Fk(extern)33 +b(unsigned)e(short)h Fi(\014g)p 1120 1085 V 31 w(num)10 +b Fm(;)0 1193 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(53.)0 +1392 y Fk(41.)94 b(I/O)32 b(functions.)0 1591 y(42.)94 +b(Initialize)31 b(I/O.)p 0 1695 1779 4 v 1874 1727 a(Log)p +2122 1695 V 83 1868 a Fm([)p Fh(LDF)25 b(2003.08.29.)p +Fm(])61 b(Changed,)27 b(so)g(that)h Fi(in)p 1467 1868 +26 4 v 31 w(str)l(e)l(am)38 b Fm(isn't)27 b(op)r(ened.)p +0 1960 3900 4 v 0 2117 a Fn(h)14 b Fm(Declare)27 b(I/O)g(functions)35 +b Fl(42)15 b Fn(i)23 b(\021)83 2217 y Fk(v)m(oid)36 b +Fi(initialize)p 609 2217 26 4 v 33 w(io)10 b Fm(\()p +Fk(string)37 b Fi(in)p 1102 2217 V 31 w(str)l(e)l(am)p +1370 2217 V 30 w(name)11 b Fe(;)j Fk(string)36 b Fi(out)p +2036 2217 V 31 w(str)l(e)l(am)p 2304 2217 V 30 w(name)10 +b Fe(;)k Fk(string)37 b Fi(tex)p 2960 2217 V 30 w(str)l(e)l(am)p +3227 2217 V 30 w(name)11 b Fe(;)j Fk(c)m(har)249 2316 +y Fn(\003)p Fi(pr)l(o)l(gr)l(am)p 586 2316 V 31 w(name)c +Fm(\);)0 2424 y Fl(See)24 b(also)g(sections)g(45,)g(47,)g(and)g(49.)0 +2532 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(53.)0 +2731 y Fk(43.)0 2856 y Fn(h)14 b Fm(De\014ne)28 b(I/O)f(functions)36 +b Fl(43)14 b Fn(i)23 b(\021)83 2955 y Fk(v)m(oid)36 b +Fi(initialize)p 609 2955 V 33 w(io)10 b Fm(\()p Fk(string)37 +b Fi(in)p 1102 2955 V 31 w(str)l(e)l(am)p 1370 2955 V +30 w(name)11 b Fe(;)j Fk(string)36 b Fi(out)p 2036 2955 +V 31 w(str)l(e)l(am)p 2304 2955 V 30 w(name)10 b Fe(;)k +Fk(string)37 b Fi(tex)p 2960 2955 V 30 w(str)l(e)l(am)p +3227 2955 V 30 w(name)11 b Fe(;)j Fk(c)m(har)415 3055 +y Fn(\003)p Fi(pr)l(o)l(gr)l(am)p 752 3055 V 31 w(name)d +Fm(\))p Fn(f)27 b Fk(time)p 1277 3055 29 5 v 39 w(t)33 +b Fi(tt)11 b Fm(;)249 3155 y Fk(tm)32 b Fn(\003)p Fi(lt)12 +b Fm(;)249 3279 y Fi(tt)34 b Fm(=)23 b Fi(time)11 b Fm(\(0)o(\);)249 +3379 y Fi(lt)35 b Fm(=)23 b Fi(lo)l(c)l(altime)11 b Fm(\(&)p +Fi(tt)g Fm(\);)249 3503 y Fk(string)33 b Fi(datestamp)11 +b Fm(\()p Fi(asctime)g Fm(\()p Fi(lt)h Fm(\)\);)249 3628 y Fi(datestamp)e Fe(:)p Fi(er)l(ase)i Fm(\()p Fi(datestamp)e Fe(:)p Fi(size)h Fm(\()j(\))19 b Fn(\000)f Fm(1\);)166 b Fe(=)p Fn(\003)41 b Fm(Remo)n(v)n(e)26 b(terminal)h(line-feed.)51 -b Fn(\003)p Fe(=)0 3438 y Fl(See)24 b(also)g(sections)g(44,)g(46,)g -(48,)g(and)g(50.)0 3546 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i +b Fn(\003)p Fe(=)0 3736 y Fl(See)24 b(also)g(sections)g(44,)g(46,)g +(48,)g(and)g(50.)0 3844 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i (52.)p eop end -%%Page: 16 16 -TeXDict begin 16 15 bop 0 83 a Fm(16)140 b Fl(INITIALIZE)25 -b(I/O)2497 b(3DLDFPR)n(G)141 b Fn(x)p Fm(44)0 263 y Fk(44.)94 -b Fm(Op)r(en)28 b Fi(out)p 561 263 26 4 v 30 w(str)l(e)l(am)38 +%%Page: 17 17 +TeXDict begin 17 16 bop 0 83 a Fn(x)p Fm(44)140 b Fl(3DLDFPR)n(G)2496 +b(INITIALIZE)25 b(I/O)142 b Fm(17)0 263 y Fk(44.)94 b +Fm(Op)r(en)28 b Fi(out)p 561 263 26 4 v 30 w(str)l(e)l(am)38 b Fm(and)28 b Fi(tex)p 1133 263 V 29 w(str)l(e)l(am)11 b Fm(.)37 b Fi(in)p 1542 263 V 30 w(str)l(e)l(am)h Fm(is)28 b(curren)n(tly)e(not)i(op)r(ened.)37 b([)p Fh(LDF)25 @@ -5177,11 +5238,11 @@ b Fm(Declare)27 b(I/O)g(functions)35 b Fl(42)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2604 y Fk(v)m(oid)33 b Fi(write)p 477 2604 V 30 w(fo)l(oters)12 b Fm(\()i(\);)p eop end -%%Page: 17 17 -TeXDict begin 17 16 bop 0 83 a Fn(x)p Fm(46)140 b Fl(3DLDFPR)n(G)2413 -b(WRITE)24 b(F)n(OOTERS)141 b Fm(17)0 263 y Fk(46.)0 -388 y Fn(h)14 b Fm(De\014ne)28 b(I/O)f(functions)36 b -Fl(43)14 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 +%%Page: 18 18 +TeXDict begin 18 17 bop 0 83 a Fm(18)140 b Fl(WRITE)24 +b(F)n(OOTERS)2413 b(3DLDFPR)n(G)141 b Fn(x)p Fm(46)0 +263 y Fk(46.)0 388 y Fn(h)14 b Fm(De\014ne)28 b(I/O)f(functions)36 +b Fl(43)14 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b Fi(write)p 477 487 26 4 v 30 w(fo)l(oters)12 b Fm(\()i(\))83 587 y Fn(f)0 686 y Fm(#)p Fk(if)41 b Fm(0)166 786 y Fi(out)p 286 786 V 30 w(str)l(e)l(am)c Fn(\034)26 b Fi(end)t(l)40 @@ -5222,183 +5283,190 @@ b Fn(\034)i Ff("\045\045)p Fj( )p Ff(End:\\n")p Fm(;)0 1882 y(#)p Fk(endif)166 1982 y(return)5 b Fm(;)83 2081 y Fn(g)0 2280 y Fk(47.)94 b(Begin)31 b(\014gure.)p 0 -2380 1643 4 v 1738 2412 a(Begin)g(Log)p 2257 2380 V 83 -2553 a Fm([)p Fh(LDF)25 b(2003.07.16.)p Fm(])68 b(Added)35 -b Fi(silent)47 b Fm(argumen)n(t,)35 b(and)g(a)f(message)f(prin)n(ted)i +2379 1779 4 v 1874 2412 a(Log)p 2122 2379 V 83 2552 a +Fm([)p Fh(LDF)25 b(2003.07.16.)p Fm(])68 b(Added)35 b +Fi(silent)47 b Fm(argumen)n(t,)35 b(and)g(a)f(message)f(prin)n(ted)i (conditionally)e(to)i Fi(stdout)12 b Fm(,)36 b(sa)n(ying)d(whic)n(h)0 -2653 y(\014gure)27 b(is)g(b)r(eing)h(started.)36 b(This)28 +2652 y(\014gure)27 b(is)g(b)r(eing)h(started.)36 b(This)28 b(should)f(help)h(in)g(\014nding)g(where)f(errors)e(o)r(ccur.)83 2752 y([)p Fh(LDF)g(2003.07.16.)p Fm(])61 b(Made)27 b(non-inline.)83 -2852 y([)p Fh(LDF)e(2003.08.17.)p Fm(])61 b(Made)27 b +2851 y([)p Fh(LDF)e(2003.08.17.)p Fm(])61 b(Made)27 b Fi(silent)40 b Fm(non-)p Fk(const)5 b Fm(.)37 b(Setting)27 b(it)h(to)g Fi(true)10 b Fm(,)28 b(if)g Ff(SILENT_GLOBAL)e -Fm(is)i Fi(true)10 b Fm(.)p 0 2944 1678 4 v 1773 2976 -a Fk(End)32 b(Log)p 2222 2944 V 0 3101 a Fn(h)14 b Fm(Declare)27 -b(I/O)g(functions)35 b Fl(42)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3201 y Fk(v)m(oid)33 b Fi(b)l(e)l(gin\014g)11 b Fm(\()p -Fk(unsigned)32 b(short)g Fe(i;)14 b Fk(b)s(o)s(ol)30 -b Fi(silent)36 b Fm(=)22 b Fi(false)12 b Fm(\);)p eop -end -%%Page: 18 18 -TeXDict begin 18 17 bop 0 83 a Fm(18)140 b Fl(BEGIN)24 -b(FIGURE)2495 b(3DLDFPR)n(G)141 b Fn(x)p Fm(48)0 263 -y Fk(48.)0 388 y Fn(h)14 b Fm(De\014ne)28 b(I/O)f(functions)36 -b Fl(43)14 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 -b Fi(b)l(e)l(gin\014g)11 b Fm(\()p Fk(unsigned)32 b(short)g -Fe(i;)14 b Fk(b)s(o)s(ol)30 b Fi(silent)13 b Fm(\))83 -587 y Fn(f)166 686 y Fk(if)41 b Fm(\()p Ff(SILENT_GLOBAL)p -Fm(\))g Fi(silent)36 b Fm(=)22 b Fi(true)10 b Fm(;)166 -786 y Fi(\014g)p 256 786 26 4 v 30 w(num)33 b Fm(=)23 -b Fe(i)o Fm(;)166 886 y Fi(out)p 286 886 V 30 w(str)l(e)l(am)33 -b Fn(\034)23 b Ff("beginfig\(")g Fn(\034)g Fi(\014g)p -1390 886 V 31 w(num)33 b Fn(\034)23 b Ff("\);\\n")r Fm(;)166 -985 y Fk(if)41 b Fm(\()p Fn(:)p Fi(silent)13 b Fm(\))42 -b Fi(c)l(out)35 b Fn(\034)23 b Ff("Beginning)p Fj( )p -Ff(figu)o(re)p Fj( )o Ff(")e Fn(\034)i Fi(\014g)p 1971 -985 V 31 w(num)32 b Fn(\034)24 b Ff(".")i Fn(\034)d Fi(end)t(l)36 -b Fn(\034)24 b Fi(\015ush)10 b Fm(;)166 1085 y Fk(return)5 -b Fm(;)83 1185 y Fn(g)0 1384 y Fk(49.)94 b(End)27 b(\014gure.)95 +Fm(is)i Fi(true)10 b Fm(.)p 0 2943 3900 4 v 0 3100 a +Fn(h)k Fm(Declare)27 b(I/O)g(functions)35 b Fl(42)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3200 y Fk(v)m(oid)33 b +Fi(b)l(e)l(gin\014g)11 b Fm(\()p Fk(unsigned)32 b(short)g +Fe(i;)14 b Fk(b)s(o)s(ol)30 b Fi(silent)36 b Fm(=)22 +b Fi(false)12 b Fm(\);)p eop end +%%Page: 19 19 +TeXDict begin 19 18 bop 0 83 a Fn(x)p Fm(48)140 b Fl(3DLDFPR)n(G)2494 +b(BEGIN)24 b(FIGURE)142 b Fm(19)0 263 y Fk(48.)0 388 +y Fn(h)14 b Fm(De\014ne)28 b(I/O)f(functions)36 b Fl(43)14 +b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b Fi(b)l(e)l +(gin\014g)11 b Fm(\()p Fk(unsigned)32 b(short)g Fe(i;)14 +b Fk(b)s(o)s(ol)30 b Fi(silent)13 b Fm(\))83 587 y Fn(f)166 +686 y Fk(if)41 b Fm(\()p Ff(SILENT_GLOBAL)p Fm(\))g Fi(silent)36 +b Fm(=)22 b Fi(true)10 b Fm(;)166 786 y Fi(\014g)p 256 +786 26 4 v 30 w(num)33 b Fm(=)23 b Fe(i)o Fm(;)166 886 +y Fi(out)p 286 886 V 30 w(str)l(e)l(am)33 b Fn(\034)23 +b Ff("beginfig\(")g Fn(\034)g Fi(\014g)p 1390 886 V 31 +w(num)33 b Fn(\034)23 b Ff("\);\\n")r Fm(;)166 985 y +Fk(if)41 b Fm(\()p Fn(:)p Fi(silent)13 b Fm(\))42 b Fi(c)l(out)35 +b Fn(\034)23 b Ff("Beginning)p Fj( )p Ff(figu)o(re)p +Fj( )o Ff(")e Fn(\034)i Fi(\014g)p 1971 985 V 31 w(num)32 +b Fn(\034)24 b Ff(".")i Fn(\034)d Fi(end)t(l)36 b Fn(\034)24 +b Fi(\015ush)10 b Fm(;)166 1085 y Fk(return)5 b Fm(;)83 +1185 y Fn(g)0 1384 y Fk(49.)94 b(End)27 b(\014gure.)95 b Fm(The)23 b Fk(unsigned)k(short)i Fm(argumen)n(t)22 b(is)h(\\syn)n(tactic)f(sugar".)34 b(It's)23 b(ignored)f(b)n(y)h Fi(end\014g)12 b Fm(\()i(\),)25 b(but)f(ma)n(y)0 1483 y(b)r(e)k(con)n(v)n(enien)n(t)f(for)g(a)g(user)g(for)g(k)n(eeping)g (trac)n(k)f(of)i(what)f(\014gure)g(is)g(b)r(eing)h(ended.)p -0 1583 1643 4 v 1738 1615 a Fk(Begin)j(Log)p 2257 1583 -V 83 1756 a Fm([)p Fh(LDF)25 b(2003.07.16.)p Fm(])68 -b(Added)35 b Fi(silent)47 b Fm(argumen)n(t,)35 b(and)g(a)f(message)f -(prin)n(ted)i(conditionally)e(to)i Fi(stdout)12 b Fm(,)36 -b(sa)n(ying)d(whic)n(h)0 1856 y(\014gure)27 b(is)g(b)r(eing)h(ended.)37 -b(This)28 b(should)f(help)h(in)g(\014nding)g(where)f(errors)e(o)r -(ccur.)83 1955 y([)p Fh(LDF)g(2003.07.16.)p Fm(])61 b(Made)27 -b(non-inline.)83 2055 y([)p Fh(LDF)e(2003.08.17.)p Fm(])61 -b(Made)27 b Fi(silent)40 b Fm(non-)p Fk(const)5 b Fm(.)37 -b(Setting)27 b(it)h(to)g Fi(true)10 b Fm(,)28 b(if)g -Ff(SILENT_GLOBAL)e Fm(is)i Fi(true)10 b Fm(.)p 0 2147 -1678 4 v 1773 2179 a Fk(End)32 b(Log)p 2222 2147 V 0 -2304 a Fn(h)14 b Fm(Declare)27 b(I/O)g(functions)35 b -Fl(42)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2404 y Fk(v)m(oid)33 -b Fi(end\014g)11 b Fm(\()p Fk(unsigned)32 b(short)g Fe(i)23 +0 1582 1779 4 v 1874 1615 a Fk(Log)p 2122 1582 V 83 1755 +a Fm([)p Fh(LDF)d(2003.07.16.)p Fm(])68 b(Added)35 b +Fi(silent)47 b Fm(argumen)n(t,)35 b(and)g(a)f(message)f(prin)n(ted)i +(conditionally)e(to)i Fi(stdout)12 b Fm(,)36 b(sa)n(ying)d(whic)n(h)0 +1855 y(\014gure)27 b(is)g(b)r(eing)h(ended.)37 b(This)28 +b(should)f(help)h(in)g(\014nding)g(where)f(errors)e(o)r(ccur.)83 +1955 y([)p Fh(LDF)g(2003.07.16.)p Fm(])61 b(Made)27 b(non-inline.)83 +2054 y([)p Fh(LDF)e(2003.08.17.)p Fm(])61 b(Made)27 b +Fi(silent)40 b Fm(non-)p Fk(const)5 b Fm(.)37 b(Setting)27 +b(it)h(to)g Fi(true)10 b Fm(,)28 b(if)g Ff(SILENT_GLOBAL)e +Fm(is)i Fi(true)10 b Fm(.)p 0 2146 3900 4 v 0 2303 a +Fn(h)k Fm(Declare)27 b(I/O)g(functions)35 b Fl(42)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 2403 y Fk(v)m(oid)33 b +Fi(end\014g)11 b Fm(\()p Fk(unsigned)32 b(short)g Fe(i)23 b Fm(=)f(0)p Fe(;)14 b Fk(b)s(o)s(ol)31 b Fi(silent)k -Fm(=)23 b Fi(false)11 b Fm(\);)0 2603 y Fk(50.)0 2727 +Fm(=)23 b Fi(false)11 b Fm(\);)0 2602 y Fk(50.)0 2727 y Fn(h)j Fm(De\014ne)28 b(I/O)f(functions)36 b Fl(43)14 -b Fn(i)23 b Fm(+)p Fn(\021)83 2827 y Fk(v)m(oid)33 b +b Fn(i)23 b Fm(+)p Fn(\021)83 2826 y Fk(v)m(oid)33 b Fi(end\014g)11 b Fm(\()p Fk(unsigned)32 b(short)g Fe(i;)14 -b Fk(b)s(o)s(ol)30 b Fi(silent)13 b Fm(\))83 2927 y Fn(f)166 +b Fk(b)s(o)s(ol)30 b Fi(silent)13 b Fm(\))83 2926 y Fn(f)166 3026 y Fk(if)41 b Fm(\()p Ff(SILENT_GLOBAL)p Fm(\))g -Fi(silent)36 b Fm(=)22 b Fi(true)10 b Fm(;)166 3126 y -Fi(out)p 286 3126 26 4 v 30 w(str)l(e)l(am)33 b Fn(\034)23 -b Ff("endfig")i Fn(\034)e Ff(";\\n")r Fm(;)166 3226 y +Fi(silent)36 b Fm(=)22 b Fi(true)10 b Fm(;)166 3125 y +Fi(out)p 286 3125 26 4 v 30 w(str)l(e)l(am)33 b Fn(\034)23 +b Ff("endfig")i Fn(\034)e Ff(";\\n")r Fm(;)166 3225 y Fk(if)41 b Fm(\()p Fn(:)p Fi(silent)13 b Fm(\))42 b Fi(c)l(out)35 b Fn(\034)23 b Ff("Ending)p Fj( )p Ff(figure)p Fj( )o -Ff(")e Fn(\034)j Fi(\014g)p 1841 3226 V 30 w(num)33 b +Ff(")e Fn(\034)j Fi(\014g)p 1841 3225 V 30 w(num)33 b Fn(\034)23 b Ff(".")j Fn(\034)d Fi(end)t(l)37 b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)24 b Fi(\015ush)10 b Fm(;)166 -3325 y Fk(return)5 b Fm(;)83 3425 y Fn(g)0 3624 y Fk(51.)94 +3324 y Fk(return)5 b Fm(;)83 3424 y Fn(g)0 3623 y Fk(51.)94 b(Putting)32 b(I/O)g(together.)0 3823 y(52.)94 b Fm(This)28 -b(is)g(what's)f(compiled.)83 3948 y Fn(h)14 b Fm(Include)28 +b(is)g(what's)f(compiled.)83 3947 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 4047 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 -b Fn(i)83 4147 y(h)f Fm(Global)27 b(v)-5 b(ariables)34 -b Fl(15)15 b Fn(i)83 4247 y(h)f Fm(De\014ne)28 b(I/O)f(functions)36 +b Fn(i)83 4146 y(h)f Fm(Global)27 b(v)-5 b(ariables)34 +b Fl(15)15 b Fn(i)83 4246 y(h)f Fm(De\014ne)28 b(I/O)f(functions)36 b Fl(43)14 b Fn(i)p eop end -%%Page: 19 19 -TeXDict begin 19 18 bop 0 83 a Fn(x)p Fm(53)140 b Fl(3DLDFPR)n(G)2117 -b(PUTTING)24 b(I/O)g(TOGETHER)141 b Fm(19)0 263 y Fk(53.)94 -b Fm(This)28 b(is)g(what's)f(written)h(to)f Fj(io.h)p -Fm(.)0 388 y Fn(h)14 b Ff(io.h)82 b Fl(53)14 b Fn(i)23 -b(\021)83 487 y(h)14 b Fk(extern)33 b Fm(v)-5 b(ariable)27 -b(declarations)33 b Fl(40)14 b Fn(i)83 587 y(h)g Fm(Declare)27 -b(I/O)g(functions)35 b Fl(42)15 b Fn(i)0 786 y Fk(54.)94 -b(Color)h(\()p Fj(colors.web)p Fk(\).)p 0 890 1643 4 -v 1738 923 a(Begin)31 b(Log)p 2257 890 V 83 1063 a Fm([)p -Fh(LDF)25 b(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 +%%Page: 20 20 +TeXDict begin 20 19 bop 0 83 a Fm(20)140 b Fl(PUTTING)24 +b(I/O)g(TOGETHER)2117 b(3DLDFPR)n(G)141 b Fn(x)p Fm(53)0 +263 y Fk(53.)94 b Fm(This)28 b(is)g(what's)f(written)h(to)f +Fj(io.h)p Fm(.)0 388 y Fn(h)14 b Ff(io.h)82 b Fl(53)14 +b Fn(i)23 b(\021)83 487 y(h)14 b Fk(extern)33 b Fm(v)-5 +b(ariable)27 b(declarations)33 b Fl(40)14 b Fn(i)83 587 +y(h)g Fm(Declare)27 b(I/O)g(functions)35 b Fl(42)15 b +Fn(i)0 786 y Fk(54.)94 b(Color)h(\()p Fj(colors.web)p +Fk(\).)p 0 889 1779 4 v 1874 922 a(Log)p 2122 889 V 83 +1063 a Fm([)p Fh(LDF)25 b(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB) -g(\014les)g(for)f(the)h(distribution)g(of)0 1163 y(3DLDF)28 +g(\014les)g(for)f(the)h(distribution)g(of)0 1162 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t) -f(v)n(ersions.)p 0 1255 1678 4 v 1773 1287 a Fk(End)32 -b(Log)p 2222 1255 V 0 1412 a Fn(h)14 b Fm(V)-7 b(ersion)27 +f(v)n(ersions.)83 1262 y([)p Fh(LDF)e(2003.12.10.)p Fm(])64 +b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden)n(ti\014ers)h(bac)n(k)f +(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h(3DLDF)i(1.1.4.)43 +b(I'v)n(e)0 1361 y(already)24 b(put)j(some)e(of)h(them)h(bac)n(k)e(in,) +i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.)37 b(Ho)n(w)n(ev)n +(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w)i(in)0 +1461 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 b(.)p +0 1553 3900 4 v 0 1710 a Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 -b Fm(+)p Fn(\021)0 1611 y Fk(55.)94 b(Include)32 b(\014les.)0 -1736 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 -b Fn(i)23 b Fm(+)p Fn(\021)0 1835 y Fm(#)p Fk(include)32 -b Ff("loader.h")0 1935 y Fm(#)p Fk(include)g Ff("pspglb.h")0 -2035 y Fm(#)p Fk(include)g Ff("io.h")0 2234 y Fk(56.)94 -b(Color)37 b(class)g(de\014nition.)94 b Fm([)p Fh(LDF)25 -b(2002.09.25.)p Fm(])65 b(!!)51 b(Remem)n(b)r(er)32 b(to)g(c)n(hange)f -(the)i(constructors,)f(setting)g(func-)0 2334 y(tions,)27 -b(and)h(assignmen)n(t)e(op)r(erator)g(if)i(I)g(add)g(or)e(c)n(hange)h -(an)n(ything)g(here!!)0 2458 y Fn(h)14 b Fm(De\014ne)28 -b Fk(class)k(Color)40 b Fl(56)14 b Fn(i)23 b(\021)83 -2558 y Fk(class)32 b(Color)g Fn(f)166 2657 y Fk(string)h -Fi(name)11 b Fm(;)166 2757 y Fk(b)s(o)s(ol)31 b Fi(use)p -501 2757 26 4 v 30 w(name)11 b Fm(;)166 2857 y Fk(b)s(o)s(ol)31 -b Fi(on)p 473 2857 V 30 w(fr)l(e)l(e)p 631 2857 V 31 -w(stor)l(e)11 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fm(LDF)29 -b(2002.10.06.)k(Added.)51 b Fn(\003)p Fe(=)166 2956 y -Fk(real)33 b Fi(r)l(e)l(d)p 467 2956 V 30 w(p)l(art)13 -b Fm(;)166 3056 y Fk(real)33 b Fi(gr)l(e)l(en)p 548 3056 -V 30 w(p)l(art)12 b Fm(;)166 3155 y Fk(real)33 b Fi(blue)p -502 3155 V 30 w(p)l(art)13 b Fm(;)83 3280 y Fk(public)t +b Fm(+)p Fn(\021)83 1810 y Fk(static)33 b(string)g Fi(r)l(cs)p +726 1810 26 4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p +Ff(colors.web)o(,v)o Fj( )p Ff(1)-6 b(.2)p Fj( )p Ff(2003/12/10)p +Fj( )p Ff(1)o(5:)o(22:)f(33)p Fj( )p Ff(lfinsto1)p Fj( )p +Ff(Exp)p Fj( )p Ff($)o(")n Fm(;)0 2009 y Fk(55.)94 b(Include)32 +b(\014les.)0 2134 y Fn(h)14 b Fm(Include)28 b(\014les)35 +b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 2233 y Fm(#)p +Fk(include)32 b Ff("loader.h")0 2333 y Fm(#)p Fk(include)g +Ff("pspglb.h")0 2432 y Fm(#)p Fk(include)g Ff("io.h")0 +2632 y Fk(56.)94 b(Color)37 b(class)g(de\014nition.)94 +b Fm([)p Fh(LDF)25 b(2002.09.25.)p Fm(])65 b(!!)51 b(Remem)n(b)r(er)32 +b(to)g(c)n(hange)f(the)i(constructors,)f(setting)g(func-)0 +2731 y(tions,)27 b(and)h(assignmen)n(t)e(op)r(erator)g(if)i(I)g(add)g +(or)e(c)n(hange)h(an)n(ything)g(here!!)0 2856 y Fn(h)14 +b Fm(De\014ne)28 b Fk(class)k(Color)40 b Fl(56)14 b Fn(i)23 +b(\021)83 2955 y Fk(class)32 b(Color)g Fn(f)166 3055 +y Fk(string)h Fi(name)11 b Fm(;)166 3155 y Fk(b)s(o)s(ol)31 +b Fi(use)p 501 3155 V 30 w(name)11 b Fm(;)166 3254 y +Fk(b)s(o)s(ol)31 b Fi(on)p 473 3254 V 30 w(fr)l(e)l(e)p +631 3254 V 31 w(stor)l(e)11 b Fm(;)166 b Fe(=)p Fn(\003)40 +b Fm(LDF)29 b(2002.10.06.)k(Added.)51 b Fn(\003)p Fe(=)166 +3354 y Fk(real)33 b Fi(r)l(e)l(d)p 467 3354 V 30 w(p)l(art)13 +b Fm(;)166 3454 y Fk(real)33 b Fi(gr)l(e)l(en)p 548 3454 +V 30 w(p)l(art)12 b Fm(;)166 3553 y Fk(real)33 b Fi(blue)p +502 3553 V 30 w(p)l(art)13 b Fm(;)83 3678 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 b Fk(Color)32 b Fm(functions)j -Fl(58)15 b Fn(i)83 3380 y(g)p Fm(;)0 3488 y Fl(This)23 +Fl(58)15 b Fn(i)83 3777 y(g)p Fm(;)0 3885 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(118)f(and)g(119.)0 -3687 y Fk(57.)94 b(Constructors)32 b(and)h(setting)e(functions.)0 -3886 y(58.)94 b(Default)33 b(constructor.)96 b Fm([)p +4085 y Fk(57.)94 b(Constructors)32 b(and)h(setting)e(functions.)0 +4284 y(58.)94 b(Default)33 b(constructor.)96 b Fm([)p Fh(LDF)25 b(2002.10.06.)p Fm(])61 b(Added)28 b(co)r(de)f(to)h (de\014nition.)37 b(Previously)-7 b(,)26 b(it)i(w)n(as)f(empt)n(y)-7 -b(.)0 4011 y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 b -Fm(functions)j Fl(58)15 b Fn(i)23 b(\021)83 4110 y Fk(Color)t -Fm(\()14 b(\);)0 4218 y Fl(See)24 b(also)g(sections)g(60,)g(63,)g(65,)g +b(.)0 4408 y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 b +Fm(functions)j Fl(58)15 b Fn(i)23 b(\021)83 4508 y Fk(Color)t +Fm(\()14 b(\);)0 4616 y Fl(See)24 b(also)g(sections)g(60,)g(63,)g(65,)g (68,)f(70,)h(72,)g(73,)f(75,)h(77,)g(80,)f(82,)h(84,)g(86,)f(88,)h(90,) g(92,)g(95,)f(97,)h(98,)g(99,)f(100,)h(102,)g(105,)g(and)h(107.)0 -4326 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i(56.)p +4724 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i(56.)p eop end -%%Page: 20 20 -TeXDict begin 20 19 bop 0 83 a Fm(20)140 b Fl(DEF)-8 -b(A)n(UL)i(T)24 b(CONSTR)n(UCTOR)2111 b(3DLDFPR)n(G)141 -b Fn(x)p Fm(59)0 263 y Fk(59.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Color)k Fm(functions)k Fl(59)14 b Fn(i)23 b(\021)83 -487 y Fk(Color)12 b Fm(::)c Fk(Color)d Fm(\()14 b(\))83 -587 y Fn(f)166 686 y Fi(r)l(e)l(d)p 278 686 26 4 v 31 -w(p)l(art)35 b Fm(=)23 b Fi(gr)l(e)l(en)p 763 686 V 30 -w(p)l(art)35 b Fm(=)23 b Fi(blue)p 1201 686 V 31 w(p)l(art)35 -b Fm(=)23 b(0)p Fe(:)p Fm(0)o(;)166 786 y Fi(name)34 -b Fm(=)22 b Ff("")t Fm(;)166 886 y Fi(use)p 288 886 V -30 w(name)34 b Fm(=)23 b Fi(false)11 b Fm(;)166 985 y -Fi(on)p 260 985 V 31 w(fr)l(e)l(e)p 419 985 V 31 w(stor)l(e)33 -b Fm(=)23 b Fi(false)11 b Fm(;)83 1085 y Fn(g)0 1193 -y Fl(See)24 b(also)g(sections)g(61,)g(64,)g(66,)g(69,)f(71,)h(74,)g -(76,)f(78,)h(81,)g(83,)f(85,)h(87,)g(89,)f(91,)h(93,)g(101,)g(106,)g -(and)g(108.)0 1301 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(118.)0 +%%Page: 21 21 +TeXDict begin 21 20 bop 0 83 a Fn(x)p Fm(59)140 b Fl(3DLDFPR)n(G)2112 +b(DEF)-8 b(A)n(UL)i(T)23 b(CONSTR)n(UCTOR)141 b Fm(21)0 +263 y Fk(59.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k +Fm(functions)k Fl(59)14 b Fn(i)23 b(\021)83 487 y Fk(Color)12 +b Fm(::)c Fk(Color)d Fm(\()14 b(\))83 587 y Fn(f)166 +686 y Fi(r)l(e)l(d)p 278 686 26 4 v 31 w(p)l(art)35 b +Fm(=)23 b Fi(gr)l(e)l(en)p 763 686 V 30 w(p)l(art)35 +b Fm(=)23 b Fi(blue)p 1201 686 V 31 w(p)l(art)35 b Fm(=)23 +b(0)p Fe(:)p Fm(0)o(;)166 786 y Fi(name)34 b Fm(=)22 +b Ff("")t Fm(;)166 886 y Fi(use)p 288 886 V 30 w(name)34 +b Fm(=)23 b Fi(false)11 b Fm(;)166 985 y Fi(on)p 260 +985 V 31 w(fr)l(e)l(e)p 419 985 V 31 w(stor)l(e)33 b +Fm(=)23 b Fi(false)11 b Fm(;)83 1085 y Fn(g)0 1193 y +Fl(See)24 b(also)g(sections)g(61,)g(64,)g(66,)g(69,)f(71,)h(74,)g(76,)f +(78,)h(81,)g(83,)f(85,)h(87,)g(89,)f(91,)h(93,)g(101,)g(106,)g(and)g +(108.)0 1301 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(118.)0 1500 y Fk(60.)94 b(Cop)m(y)39 b(constructor.)96 b Fm(!!)52 b(Remem)n(b)r(er)33 b(to)g(add)f(or)g(c)n(hange)g(co)r(de)h(here)f(if)h (I)g(add)g(or)f(c)n(hange)f(an)n(ything)i(in)g(the)0 -1600 y Fk(class)f Fm(de\014nition!!)p 0 1675 1643 4 v -1738 1708 a Fk(Begin)f(Log)p 2257 1675 V 83 1849 a Fm([)p -Fh(LDF)25 b(2002.09.25.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 1941 1678 4 v 1773 1973 a Fk(End)k(Log)p 2222 1941 -V 0 2098 a Fn(h)14 b Fm(Declare)27 b Fk(Color)32 b Fm(functions)j -Fl(58)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2197 y Fk(Color)t -Fm(\()p Fk(const)33 b(Color)f Fm(&)o Fe(c;)14 b Fk(const)32 -b(string)i Fe(n)22 b Fm(=)h Ff("")t Fe(;)14 b Fk(const)32 -b(b)s(o)s(ol)f Fe(u)22 b Fm(=)h Fi(true)10 b Fm(\);)0 -2397 y Fk(61.)0 2521 y Fn(h)k Fm(De\014ne)28 b Fk(Color)k -Fm(functions)k Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 -2621 y Fk(Color)12 b Fm(::)c Fk(Color)d Fm(\()p Fk(const)33 -b(Color)e Fm(&)p Fe(c;)14 b Fk(const)32 b(string)h Fe(n;)14 -b Fk(const)33 b(b)s(o)s(ol)d Fe(u)p Fm(\))83 2720 y Fn(f)166 -2820 y Fi(name)k Fm(=)22 b Fe(n)p Fm(;)166 2920 y Fi(r)l(e)l(d)p -278 2920 26 4 v 31 w(p)l(art)35 b Fm(=)23 b Fe(c:)p Fi(get)p -738 2920 V 30 w(r)l(e)l(d)p 875 2920 V 31 w(p)l(art)12 -b Fm(\()i(\);)166 3019 y Fi(gr)l(e)l(en)p 359 3019 V -30 w(p)l(art)36 b Fm(=)22 b Fe(c:)p Fi(get)p 818 3019 -V 31 w(gr)l(e)l(en)p 1037 3019 V 30 w(p)l(art)13 b Fm(\()h(\);)166 -3119 y Fi(blue)p 313 3119 V 31 w(p)l(art)35 b Fm(=)23 -b Fe(c:)p Fi(get)p 773 3119 V 30 w(blue)p 945 3119 V -31 w(p)l(art)12 b Fm(\()i(\);)166 3219 y Fk(if)41 b Fm(\()p -Fe(n)23 b Fn(6)p Fm(=)g Ff("")f Fn(^)d Fe(u)j Fn(\021)h -Fi(true)10 b Fm(\))42 b Fn(f)249 3318 y Fi(use)p 371 -3318 V 30 w(name)34 b Fm(=)23 b Fi(true)9 b Fm(;)166 +1600 y Fk(class)f Fm(de\014nition!!)p 0 1675 1779 4 v +1874 1708 a Fk(Log)p 2122 1675 V 83 1849 a Fm([)p Fh(LDF)25 +b(2002.09.25.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 1941 3900 4 v 0 2098 a Fn(h)14 b Fm(Declare)27 b Fk(Color)32 +b Fm(functions)j Fl(58)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2197 y Fk(Color)t Fm(\()p Fk(const)33 b(Color)f Fm(&)o +Fe(c;)14 b Fk(const)32 b(string)i Fe(n)22 b Fm(=)h Ff("")t +Fe(;)14 b Fk(const)32 b(b)s(o)s(ol)f Fe(u)22 b Fm(=)h +Fi(true)10 b Fm(\);)0 2397 y Fk(61.)0 2521 y Fn(h)k Fm(De\014ne)28 +b Fk(Color)k Fm(functions)k Fl(59)14 b Fn(i)23 b Fm(+)p +Fn(\021)83 2621 y Fk(Color)12 b Fm(::)c Fk(Color)d Fm(\()p +Fk(const)33 b(Color)e Fm(&)p Fe(c;)14 b Fk(const)32 b(string)h +Fe(n;)14 b Fk(const)33 b(b)s(o)s(ol)d Fe(u)p Fm(\))83 +2720 y Fn(f)166 2820 y Fi(name)k Fm(=)22 b Fe(n)p Fm(;)166 +2920 y Fi(r)l(e)l(d)p 278 2920 26 4 v 31 w(p)l(art)35 +b Fm(=)23 b Fe(c:)p Fi(get)p 738 2920 V 30 w(r)l(e)l(d)p +875 2920 V 31 w(p)l(art)12 b Fm(\()i(\);)166 3019 y Fi(gr)l(e)l(en)p +359 3019 V 30 w(p)l(art)36 b Fm(=)22 b Fe(c:)p Fi(get)p +818 3019 V 31 w(gr)l(e)l(en)p 1037 3019 V 30 w(p)l(art)13 +b Fm(\()h(\);)166 3119 y Fi(blue)p 313 3119 V 31 w(p)l(art)35 +b Fm(=)23 b Fe(c:)p Fi(get)p 773 3119 V 30 w(blue)p 945 +3119 V 31 w(p)l(art)12 b Fm(\()i(\);)166 3219 y Fk(if)41 +b Fm(\()p Fe(n)23 b Fn(6)p Fm(=)g Ff("")f Fn(^)d Fe(u)j +Fn(\021)h Fi(true)10 b Fm(\))42 b Fn(f)249 3318 y Fi(use)p +371 3318 V 30 w(name)34 b Fm(=)23 b Fi(true)9 b Fm(;)166 3418 y Fn(g)166 3517 y Fk(else)45 b Fi(use)p 486 3517 V 30 w(name)34 b Fm(=)23 b Fi(false)11 b Fm(;)166 3617 y Fi(on)p 260 3617 V 31 w(fr)l(e)l(e)p 419 3617 V 31 @@ -5414,12 +5482,12 @@ b Fk(const)34 b(unsigned)f(short)249 4539 y Fe(b;)14 b Fk(const)32 b(b)s(o)s(ol)f Fe(u)22 b Fm(=)h Fi(true)10 b Fm(\);)p eop end -%%Page: 21 21 -TeXDict begin 21 20 bop 0 83 a Fn(x)p Fm(64)140 b Fl(3DLDFPR)n(G)2468 -b(CONSTR)n(UCTOR)141 b Fm(21)0 263 y Fk(64.)0 388 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Color)k Fm(functions)k Fl(59)14 -b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Color)12 b Fm(::)c -Fk(Color)d Fm(\()p Fk(const)34 b(string)g Fe(n)o(;)14 +%%Page: 22 22 +TeXDict begin 22 21 bop 0 83 a Fm(22)140 b Fl(CONSTR)n(UCTOR)2468 +b(3DLDFPR)n(G)141 b Fn(x)p Fm(64)0 263 y Fk(64.)0 388 +y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k Fm(functions)k +Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Color)12 +b Fm(::)c Fk(Color)d Fm(\()p Fk(const)34 b(string)g Fe(n)o(;)14 b Fk(const)34 b(unsigned)e(short)h Fe(r)s(;)14 b Fk(const)33 b(unsigned)f(short)i Fe(g)r(;)14 b Fk(const)34 b(unsigned)415 587 y(short)e Fe(b;)14 b Fk(const)32 b(b)s(o)s(ol)f Fe(u)p @@ -5488,13 +5556,13 @@ Fn(\021)83 4945 y Fk(Color)t Fm(\()p Fk(const)33 b(real)f Fe(r)s(;)14 b Fk(const)32 b(real)h Fe(g)r(;)14 b Fk(const)33 b(real)f Fe(b)p Fm(\);)p eop end -%%Page: 22 22 -TeXDict begin 22 21 bop 0 83 a Fm(22)140 b Fl(CONSTR)n(UCTOR)2468 -b(3DLDFPR)n(G)141 b Fn(x)p Fm(69)0 263 y Fk(69.)0 388 -y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k Fm(functions)k -Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Color)12 -b Fm(::)c Fk(Color)d Fm(\()p Fk(const)33 b(real)f Fe(r)s(;)14 -b Fk(const)32 b(real)h Fe(g)r(;)14 b Fk(const)33 b(real)f +%%Page: 23 23 +TeXDict begin 23 22 bop 0 83 a Fn(x)p Fm(69)140 b Fl(3DLDFPR)n(G)2468 +b(CONSTR)n(UCTOR)141 b Fm(23)0 263 y Fk(69.)0 388 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Color)k Fm(functions)k Fl(59)14 +b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Color)12 b Fm(::)c +Fk(Color)d Fm(\()p Fk(const)33 b(real)f Fe(r)s(;)14 b +Fk(const)32 b(real)h Fe(g)r(;)14 b Fk(const)33 b(real)f Fe(b)p Fm(\))83 587 y Fn(f)166 686 y Fi(name)i Fm(=)22 b Ff("")t Fm(;)166 786 y Fi(use)p 288 786 26 4 v 30 w(name)34 b Fm(=)23 b Fi(false)11 b Fm(;)166 886 y Fi(on)p 260 @@ -5566,27 +5634,28 @@ Fk(const)33 b(real)g Fe(r)r(;)14 b Fk(const)33 b(real)f Fe(g)s(;)14 b Fk(const)32 b(real)g Fe(b)p Fm(\);)p eop end -%%Page: 23 23 -TeXDict begin 23 22 bop 0 83 a Fn(x)p Fm(71)140 b Fl(3DLDFPR)n(G)2296 -b(SETTING)24 b(FUNCTION)141 b Fm(23)0 263 y Fk(71.)0 -388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k Fm(functions)k -Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 -b(Color)12 b Fm(::)c Fi(set)k Fm(\()p Fk(const)33 b(real)f -Fe(r)s(;)14 b Fk(const)32 b(real)h Fe(g)r(;)14 b Fk(const)33 -b(real)f Fe(b)p Fm(\))83 587 y Fn(f)166 686 y Fi(name)i -Fm(=)22 b Ff("")t Fm(;)166 786 y Fi(use)p 288 786 26 -4 v 30 w(name)34 b Fm(=)23 b Fi(false)11 b Fm(;)166 886 -y Fi(on)p 260 886 V 31 w(fr)l(e)l(e)p 419 886 V 31 w(stor)l(e)33 -b Fm(=)23 b Fi(false)11 b Fm(;)166 985 y Fk(if)41 b Fm(\()p -Fe(r)26 b(<)d Fm(0)o(\))42 b Fn(f)249 1085 y Fi(c)l(err)60 -b Fn(\034)46 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Col)o(or)o(::)-6 -b(Color\(\))p Fj( )p Ff(\(three)p Fj( )o Ff(rea)o(l)p -Fj( )f Ff(arguments\):\\n")45 b Fn(\034)415 1185 y Ff("Red)p -Fj( )p Ff(part)p Fj( )p Ff(argume)o(nt)p Fj( )o Ff(<)-6 -b Fj( )p Ff(0.)p Fj( )p Ff(Setting)p Fj( )p Ff(red)o(_p)o(ar)g(t)p -Fj( )p Ff(to)p Fj( )p Ff(0.\\n\\n")o Fm(;)249 1284 y -Fi(r)l(e)l(d)p 361 1284 V 31 w(p)l(art)35 b Fm(=)23 b(0)o(;)166 -1384 y Fn(g)166 1483 y Fk(else)31 b(if)41 b Fm(\()p Fe(r)26 +%%Page: 24 24 +TeXDict begin 24 23 bop 0 83 a Fm(24)140 b Fl(SETTING)24 +b(FUNCTION)2296 b(3DLDFPR)n(G)141 b Fn(x)p Fm(71)0 263 +y Fk(71.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k +Fm(functions)k Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(v)m(oid)33 b(Color)12 b Fm(::)c Fi(set)k Fm(\()p +Fk(const)33 b(real)f Fe(r)s(;)14 b Fk(const)32 b(real)h +Fe(g)r(;)14 b Fk(const)33 b(real)f Fe(b)p Fm(\))83 587 +y Fn(f)166 686 y Fi(name)i Fm(=)22 b Ff("")t Fm(;)166 +786 y Fi(use)p 288 786 26 4 v 30 w(name)34 b Fm(=)23 +b Fi(false)11 b Fm(;)166 886 y Fi(on)p 260 886 V 31 w(fr)l(e)l(e)p +419 886 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(false)11 b +Fm(;)166 985 y Fk(if)41 b Fm(\()p Fe(r)26 b(<)d Fm(0)o(\))42 +b Fn(f)249 1085 y Fi(c)l(err)60 b Fn(\034)46 b Ff("WARNING!)p +Fj( )p Ff(In)p Fj( )p Ff(Col)o(or)o(::)-6 b(Color\(\))p +Fj( )p Ff(\(three)p Fj( )o Ff(rea)o(l)p Fj( )f Ff(arguments\):\\n")45 +b Fn(\034)415 1185 y Ff("Red)p Fj( )p Ff(part)p Fj( )p +Ff(argume)o(nt)p Fj( )o Ff(<)-6 b Fj( )p Ff(0.)p Fj( )p +Ff(Setting)p Fj( )p Ff(red)o(_p)o(ar)g(t)p Fj( )p Ff(to)p +Fj( )p Ff(0.\\n\\n")o Fm(;)249 1284 y Fi(r)l(e)l(d)p +361 1284 V 31 w(p)l(art)35 b Fm(=)23 b(0)o(;)166 1384 +y Fn(g)166 1483 y Fk(else)31 b(if)41 b Fm(\()p Fe(r)26 b(>)d Fm(1\))41 b Fn(f)249 1583 y Fi(c)l(err)60 b Fn(\034)46 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Col)o(or)o(::)-6 b(Color\(\))p Fj( )p Ff(\(three)p Fj( )o Ff(rea)o(l)p @@ -5655,10 +5724,10 @@ Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Color::c)o(rea)-7 b(te_new_color\(\).\\)o(n")n Fm(;)p eop end -%%Page: 24 24 -TeXDict begin 24 23 bop 0 83 a Fm(24)140 b Fl(PSEUDO-CONSTR)n(UCTOR)22 -b(F)n(OR)i(D)n(YNAMIC)f(ALLOCA)-6 b(TION)1097 b(3DLDFPR)n(G)141 -b Fn(x)p Fm(72)166 263 y Fk(return)33 b Fe(c)p Fm(;)83 +%%Page: 25 25 +TeXDict begin 25 24 bop 0 83 a Fn(x)p Fm(72)140 b Fl(3DLDFPR)n(G)1097 +b(PSEUDO-CONSTR)n(UCTOR)22 b(F)n(OR)i(D)n(YNAMIC)f(ALLOCA)-6 +b(TION)141 b Fm(25)166 263 y Fk(return)33 b Fe(c)p Fm(;)83 363 y Fn(g)0 562 y Fk(73.)94 b(Assignmen)m(t.)g Fm([)p Fh(LDF)26 b(2002.09.24.)p Fm(])60 b(Added)28 b(this)g(op)r(erator)e (function.)0 686 y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 @@ -5722,167 +5791,167 @@ 5020 y Fk(v)m(oid)33 b Fi(set)p 396 5020 V 30 w(name)10 b Fm(\()p Fk(const)33 b(string)g Fe(s)p Fm(\);)p eop end -%%Page: 25 25 -TeXDict begin 25 24 bop 0 83 a Fn(x)p Fm(81)140 b Fl(3DLDFPR)n(G)2649 -b(SET)24 b(NAME)140 b Fm(25)0 263 y Fk(81.)0 388 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Color)k Fm(functions)k Fl(59)14 -b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(Color)12 -b Fm(::)c Fi(set)p 693 487 26 4 v 31 w(name)i Fm(\()p -Fk(const)33 b(string)g Fe(s)p Fm(\))83 587 y Fn(f)166 -686 y Fi(name)h Fm(=)22 b Fe(s)p Fm(;)83 786 y Fn(g)0 -985 y Fk(82.)94 b(Set)32 b(use)g(name.)0 1110 y Fn(h)14 -b Fm(Declare)27 b Fk(Color)32 b Fm(functions)j Fl(58)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 1209 y Fk(v)m(oid)33 b -Fi(set)p 396 1209 V 30 w(use)p 543 1209 V 30 w(name)11 -b Fm(\()p Fk(const)32 b(b)s(o)s(ol)f Fe(b)p Fm(\);)0 -1409 y Fk(83.)0 1533 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k -Fm(functions)k Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 -1633 y Fk(v)m(oid)33 b(Color)12 b Fm(::)c Fi(set)p 693 -1633 V 31 w(use)p 841 1633 V 30 w(name)i Fm(\()p Fk(const)33 -b(b)s(o)s(ol)e Fe(b)p Fm(\))83 1733 y Fn(f)166 1832 y -Fi(use)p 288 1832 V 30 w(name)j Fm(=)23 b Fe(b)o Fm(;)83 -1932 y Fn(g)0 2131 y Fk(84.)94 b(Mo)s(dify)-8 b(.)0 2256 -y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 b Fm(functions)j -Fl(58)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2355 y Fk(v)m(oid)33 -b Fi(mo)l(dify)13 b Fm(\()p Fk(const)33 b(real)f Fe(r)s(;)14 -b Fk(const)32 b(real)h Fe(g)25 b Fm(=)e(0)o Fe(;)14 b -Fk(const)33 b(real)f Fe(b)23 b Fm(=)g(0)o(\);)p eop end %%Page: 26 26 -TeXDict begin 26 25 bop 0 83 a Fm(26)140 b Fl(MODIFY)2731 -b(3DLDFPR)n(G)141 b Fn(x)p Fm(85)0 263 y Fk(85.)0 388 -y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k Fm(functions)k -Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 -b(Color)12 b Fm(::)c Fi(mo)l(dify)14 b Fm(\()p Fk(const)32 -b(real)h Fe(r)s(;)14 b Fk(const)32 b(real)g Fe(g)s(;)14 -b Fk(const)32 b(real)h Fe(b)o Fm(\))83 587 y Fn(f)166 -686 y Fi(r)l(e)l(d)p 278 686 26 4 v 31 w(p)l(art)i Fm(+=)22 -b Fe(r)s Fm(;)166 786 y Fi(gr)l(e)l(en)p 359 786 V 30 -w(p)l(art)36 b Fm(+=)22 b Fe(g)s Fm(;)166 886 y Fi(blue)p -313 886 V 31 w(p)l(art)35 b Fm(+=)22 b Fe(b)p Fm(;)166 -985 y Fk(if)41 b Fm(\()p Fi(r)l(e)l(d)p 407 985 V 31 -w(p)l(art)36 b Fe(>)22 b Fm(1\))42 b Fn(f)249 1085 y -Fi(c)l(err)36 b Fn(\034)24 b Ff("WARNING!)p Fj( )p Ff(In)p -Fj( )p Ff(Co)o(lor)o(::)-7 b(modify\(\):\\n")23 b Fn(\034)g -Ff("red_part)p Fj( )p Ff(is)p Fj( )p Ff(gre)o(at)o(er)-6 -b Fj( )p Ff(than)p Fj( )p Ff(1:)p Fj( )p Ff(")23 b Fn(\034)g -Fi(r)l(e)l(d)p 3615 1085 V 31 w(p)l(art)35 b Fn(\034)415 -1185 y Fi(end)t(l)i Fn(\034)23 b Ff("Setting)p Fj( )p -Ff(red_par)o(t)p Fj( )o Ff(to)-6 b Fj( )p Ff(1.\\n\\n")q -Fm(;)249 1284 y Fi(r)l(e)l(d)p 361 1284 V 31 w(p)l(art)35 -b Fm(=)23 b(1)o(;)166 1384 y Fn(g)166 1483 y Fk(else)31 -b(if)41 b Fm(\()p Fi(r)l(e)l(d)p 591 1483 V 31 w(p)l(art)36 -b Fe(<)22 b Fm(0\))42 b Fn(f)249 1583 y Fi(c)l(err)d -Fn(\034)27 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Co)o(lo)o(r::)-7 -b(modify\(\):\\n")26 b Fn(\034)g Ff("red_part)p Fj( )p -Ff(is)p Fj( )p Ff(les)o(s)p Fj( )o Ff(th)-6 b(an)p Fj( )p -Ff(0:)p Fj( )p Ff(")27 b Fn(\034)f Fi(r)l(e)l(d)p 3502 -1583 V 31 w(p)l(art)38 b Fn(\034)415 1683 y Fi(end)t(l)f -Fn(\034)23 b Ff("Setting)p Fj( )p Ff(red_par)o(t)p Fj( )o -Ff(to)-6 b Fj( )p Ff(0.\\n\\n")q Fm(;)249 1782 y Fi(r)l(e)l(d)p -361 1782 V 31 w(p)l(art)35 b Fm(=)23 b(0)o(;)166 1882 -y Fn(g)166 1982 y Fk(if)41 b Fm(\()p Fi(gr)l(e)l(en)p -488 1982 V 31 w(p)l(art)35 b Fe(>)23 b Fm(1)o(\))42 b -Fn(f)249 2081 y Fi(c)l(err)j Fn(\034)31 b Ff("WARNING!)p -Fj( )p Ff(In)p Fj( )p Ff(Col)o(or)o(::)-6 b(modify\(\):\\n")30 -b Fn(\034)h Ff("green_part)p Fj( )p Ff(is)p Fj( )p Ff(gr)o(ea)o(t)-6 -b(er)p Fj( )p Ff(than)p Fj( )p Ff(1:)p Fj( )p Ff(")31 -b Fn(\034)415 2181 y Fi(gr)l(e)l(en)p 608 2181 V 30 w(p)l(art)36 -b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Ff("Setting)p -Fj( )p Ff(green_)o(par)o(t)p Fj( )-7 b Ff(to)p Fj( )p -Ff(1.\\n\\n")q Fm(;)249 2280 y Fi(gr)l(e)l(en)p 442 2280 -V 30 w(p)l(art)36 b Fm(=)22 b(1;)166 2380 y Fn(g)166 -2480 y Fk(else)31 b(if)41 b Fm(\()p Fi(gr)l(e)l(en)p -672 2480 V 31 w(p)l(art)35 b Fe(<)23 b Fm(0\))41 b Fn(f)249 -2579 y Fi(c)l(err)36 b Fn(\034)24 b Ff("WARNING!)p Fj( )p -Ff(In)p Fj( )p Ff(Co)o(lor)o(::)-7 b(modify\(\):\\n")23 -b Fn(\034)g Ff("green_part)p Fj( )p Ff(is)p Fj( )p Ff(l)o(es)o(s)p -Fj( )-6 b Ff(than)p Fj( )p Ff(0:)p Fj( )p Ff(")23 b Fn(\034)g -Fi(gr)l(e)l(en)p 3652 2579 V 31 w(p)l(art)35 b Fn(\034)415 -2679 y Fi(end)t(l)i Fn(\034)23 b Ff("Setting)p Fj( )p -Ff(green_p)o(ar)o(t)p Fj( )-6 b Ff(to)p Fj( )p Ff(0.\\n\\n")p -Fm(;)249 2779 y Fi(gr)l(e)l(en)p 442 2779 V 30 w(p)l(art)36 -b Fm(=)22 b(0;)166 2878 y Fn(g)166 2978 y Fk(if)41 b -Fm(\()p Fi(blue)p 442 2978 V 31 w(p)l(art)36 b Fe(>)22 -b Fm(1\))42 b Fn(f)249 3077 y Fi(c)l(err)k Fn(\034)32 -b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Col)o(or)o(::)-6 -b(modify\(\):\\n")31 b Fn(\034)i Ff("blue_part)p Fj( )p -Ff(is)p Fj( )p Ff(g)o(rea)o(te)-7 b(r)p Fj( )p Ff(than)p -Fj( )p Ff(1:)p Fj( )p Ff(")32 b Fn(\034)415 3177 y Fi(blue)p -562 3177 V 31 w(p)l(art)j Fn(\034)23 b Fi(end)t(l)37 -b Fn(\034)23 b Ff("Setting)p Fj( )p Ff(blue_pa)o(rt)p -Fj( )o Ff(t)-6 b(o)p Fj( )p Ff(1.\\n\\n")p Fm(;)249 3277 -y Fi(blue)p 396 3277 V 31 w(p)l(art)35 b Fm(=)23 b(1)o(;)166 -3376 y Fn(g)166 3476 y Fk(else)31 b(if)41 b Fm(\()p Fi(blue)p -626 3476 V 31 w(p)l(art)36 b Fe(<)22 b Fm(0\))42 b Fn(f)249 -3576 y Fi(c)l(err)c Fn(\034)24 b Ff("WARNING!)p Fj( )p -Ff(In)p Fj( )p Ff(Col)o(or)o(::)-6 b(modify\(\):\\n")23 -b Fn(\034)h Ff("blue_part)p Fj( )p Ff(is)p Fj( )p Ff(les)o(s)p -Fj( )p Ff(t)-7 b(han)p Fj( )p Ff(0:)p Fj( )p Ff(")25 -b Fn(\034)g Fi(blue)p 3570 3576 V 30 w(p)l(art)37 b Fn(\034)415 -3675 y Fi(end)t(l)g Fn(\034)23 b Ff("Setting)p Fj( )p -Ff(blue_pa)o(rt)o Fj( )p Ff(t)-6 b(o)p Fj( )p Ff(0.\\n\\n")p -Fm(;)249 3775 y Fi(blue)p 396 3775 V 31 w(p)l(art)35 -b Fm(=)23 b(0)o(;)166 3874 y Fn(g)166 3974 y Fk(return)5 -b Fm(;)83 4074 y Fn(g)0 4273 y Fk(86.)94 b(Set)32 b(red)g(part.)0 -4398 y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 b Fm(functions)j -Fl(58)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4497 y Fk(v)m(oid)33 -b Fi(set)p 396 4497 V 30 w(r)l(e)l(d)p 533 4497 V 30 -w(p)l(art)13 b Fm(\()p Fk(const)33 b(real)f Fe(r)s Fm(\);)p +TeXDict begin 26 25 bop 0 83 a Fm(26)140 b Fl(SET)24 +b(NAME)2648 b(3DLDFPR)n(G)141 b Fn(x)p Fm(81)0 263 y +Fk(81.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k +Fm(functions)k Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(v)m(oid)33 b(Color)12 b Fm(::)c Fi(set)p 693 +487 26 4 v 31 w(name)i Fm(\()p Fk(const)33 b(string)g +Fe(s)p Fm(\))83 587 y Fn(f)166 686 y Fi(name)h Fm(=)22 +b Fe(s)p Fm(;)83 786 y Fn(g)0 985 y Fk(82.)94 b(Set)32 +b(use)g(name.)0 1110 y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 +b Fm(functions)j Fl(58)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1209 y Fk(v)m(oid)33 b Fi(set)p 396 1209 V 30 w(use)p +543 1209 V 30 w(name)11 b Fm(\()p Fk(const)32 b(b)s(o)s(ol)f +Fe(b)p Fm(\);)0 1409 y Fk(83.)0 1533 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Color)k Fm(functions)k Fl(59)14 b Fn(i)23 b Fm(+)p +Fn(\021)83 1633 y Fk(v)m(oid)33 b(Color)12 b Fm(::)c +Fi(set)p 693 1633 V 31 w(use)p 841 1633 V 30 w(name)i +Fm(\()p Fk(const)33 b(b)s(o)s(ol)e Fe(b)p Fm(\))83 1733 +y Fn(f)166 1832 y Fi(use)p 288 1832 V 30 w(name)j Fm(=)23 +b Fe(b)o Fm(;)83 1932 y Fn(g)0 2131 y Fk(84.)94 b(Mo)s(dify)-8 +b(.)0 2256 y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 b +Fm(functions)j Fl(58)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2355 y Fk(v)m(oid)33 b Fi(mo)l(dify)13 b Fm(\()p Fk(const)33 +b(real)f Fe(r)s(;)14 b Fk(const)32 b(real)h Fe(g)25 b +Fm(=)e(0)o Fe(;)14 b Fk(const)33 b(real)f Fe(b)23 b Fm(=)g(0)o(\);)p eop end %%Page: 27 27 -TeXDict begin 27 26 bop 0 83 a Fn(x)p Fm(87)140 b Fl(3DLDFPR)n(G)2498 -b(SET)24 b(RED)f(P)-6 b(AR)g(T)141 b Fm(27)0 263 y Fk(87.)0 -388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k Fm(functions)k -Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 -b(Color)12 b Fm(::)c Fi(set)p 693 487 26 4 v 31 w(r)l(e)l(d)p -831 487 V 30 w(p)l(art)13 b Fm(\()p Fk(const)32 b(real)h -Fe(r)s Fm(\))83 587 y Fn(f)166 686 y Fk(if)41 b Fm(\()p -Fe(r)26 b(>)d Fm(1)o(\))42 b Fn(f)249 786 y Fi(c)l(err)36 -b Fn(\034)24 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Co)o(lor)o(::)-7 -b(set_red_part\(\):\\n)o(")21 b Fn(\034)i Ff("r)p Fj( )p -Ff(is)p Fj( )p Ff(greater)p Fj( )p Ff(tha)o(n)p Fj( )o -Ff(1)-6 b(:)p Fj( )p Ff(")26 b Fn(\034)d Fe(r)j Fn(\034)d -Fi(end)t(l)37 b Fn(\034)415 886 y Ff("Setting)p Fj( )p -Ff(red_par)o(t)p Fj( )p Ff(t)o(o)-6 b Fj( )p Ff(1.\\n\\n")q -Fm(;)249 985 y Fi(r)l(e)l(d)p 361 985 V 31 w(p)l(art)35 -b Fm(=)23 b(1)o(;)166 1085 y Fn(g)166 1185 y Fk(else)31 -b(if)41 b Fm(\()p Fe(r)26 b(<)d Fm(0\))41 b Fn(f)249 -1284 y Fi(c)l(err)e Fn(\034)26 b Ff("WARNING!)p Fj( )p -Ff(In)p Fj( )p Ff(Colo)o(r:)o(:)-6 b(set_red_part\(\):\\)o(n")24 -b Fn(\034)i Ff("r)p Fj( )p Ff(is)p Fj( )p Ff(less)p Fj( )p -Ff(than)p Fj( )o Ff(0:)p Fj( )o Ff(")e Fn(\034)i Fe(r)j -Fn(\034)d Fi(end)t(l)39 b Fn(\034)415 1384 y Ff("Setting)p -Fj( )p Ff(red_par)o(t)p Fj( )p Ff(t)o(o)-6 b Fj( )p Ff(0.\\n\\n")q -Fm(;)249 1483 y Fi(r)l(e)l(d)p 361 1483 V 31 w(p)l(art)35 -b Fm(=)23 b(0)o(;)166 1583 y Fn(g)166 1683 y Fk(else)45 -b Fi(r)l(e)l(d)p 476 1683 V 31 w(p)l(art)35 b Fm(=)23 -b Fe(r)s Fm(;)166 1782 y Fk(return)5 b Fm(;)83 1882 y -Fn(g)0 2081 y Fk(88.)94 b(Set)32 b(green)g(part.)0 2206 -y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 b Fm(functions)j -Fl(58)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2305 y Fk(v)m(oid)33 -b Fi(set)p 396 2305 V 30 w(gr)l(e)l(en)p 614 2305 V 30 -w(p)l(art)12 b Fm(\()p Fk(const)33 b(real)g Fe(g)r Fm(\);)0 -2505 y Fk(89.)0 2629 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k -Fm(functions)k Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 -2729 y Fk(v)m(oid)33 b(Color)12 b Fm(::)c Fi(set)p 693 -2729 V 31 w(gr)l(e)l(en)p 912 2729 V 30 w(p)l(art)k Fm(\()p -Fk(const)33 b(real)f Fe(g)s Fm(\))83 2828 y Fn(f)166 -2928 y Fk(if)41 b Fm(\()p Fe(g)26 b(>)d Fm(1)o(\))42 -b Fn(f)249 3028 y Fi(c)l(err)f Fn(\034)28 b Ff("WARNING!)p -Fj( )p Ff(In)p Fj( )p Ff(Col)o(or:)o(:)-6 b(set_green_part\(\))o(:\\)o -(n")26 b Fn(\034)i Ff("g)p Fj( )p Ff(is)p Fj( )p Ff(greater)p -Fj( )p Ff(t)o(han)o Fj( )p Ff(1)-7 b(:)p Fj( )p Ff(")31 -b Fn(\034)d Fe(g)i Fn(\034)415 3127 y Fi(end)t(l)37 b +TeXDict begin 27 26 bop 0 83 a Fn(x)p Fm(85)140 b Fl(3DLDFPR)n(G)2731 +b(MODIFY)141 b Fm(27)0 263 y Fk(85.)0 388 y Fn(h)14 b +Fm(De\014ne)28 b Fk(Color)k Fm(functions)k Fl(59)14 b +Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(Color)12 +b Fm(::)c Fi(mo)l(dify)14 b Fm(\()p Fk(const)32 b(real)h +Fe(r)s(;)14 b Fk(const)32 b(real)g Fe(g)s(;)14 b Fk(const)32 +b(real)h Fe(b)o Fm(\))83 587 y Fn(f)166 686 y Fi(r)l(e)l(d)p +278 686 26 4 v 31 w(p)l(art)i Fm(+=)22 b Fe(r)s Fm(;)166 +786 y Fi(gr)l(e)l(en)p 359 786 V 30 w(p)l(art)36 b Fm(+=)22 +b Fe(g)s Fm(;)166 886 y Fi(blue)p 313 886 V 31 w(p)l(art)35 +b Fm(+=)22 b Fe(b)p Fm(;)166 985 y Fk(if)41 b Fm(\()p +Fi(r)l(e)l(d)p 407 985 V 31 w(p)l(art)36 b Fe(>)22 b +Fm(1\))42 b Fn(f)249 1085 y Fi(c)l(err)36 b Fn(\034)24 +b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Co)o(lor)o(::)-7 +b(modify\(\):\\n")23 b Fn(\034)g Ff("red_part)p Fj( )p +Ff(is)p Fj( )p Ff(gre)o(at)o(er)-6 b Fj( )p Ff(than)p +Fj( )p Ff(1:)p Fj( )p Ff(")23 b Fn(\034)g Fi(r)l(e)l(d)p +3615 1085 V 31 w(p)l(art)35 b Fn(\034)415 1185 y Fi(end)t(l)i +Fn(\034)23 b Ff("Setting)p Fj( )p Ff(red_par)o(t)p Fj( )o +Ff(to)-6 b Fj( )p Ff(1.\\n\\n")q Fm(;)249 1284 y Fi(r)l(e)l(d)p +361 1284 V 31 w(p)l(art)35 b Fm(=)23 b(1)o(;)166 1384 +y Fn(g)166 1483 y Fk(else)31 b(if)41 b Fm(\()p Fi(r)l(e)l(d)p +591 1483 V 31 w(p)l(art)36 b Fe(<)22 b Fm(0\))42 b Fn(f)249 +1583 y Fi(c)l(err)d Fn(\034)27 b Ff("WARNING!)p Fj( )p +Ff(In)p Fj( )p Ff(Co)o(lo)o(r::)-7 b(modify\(\):\\n")26 +b Fn(\034)g Ff("red_part)p Fj( )p Ff(is)p Fj( )p Ff(les)o(s)p +Fj( )o Ff(th)-6 b(an)p Fj( )p Ff(0:)p Fj( )p Ff(")27 +b Fn(\034)f Fi(r)l(e)l(d)p 3502 1583 V 31 w(p)l(art)38 +b Fn(\034)415 1683 y Fi(end)t(l)f Fn(\034)23 b Ff("Setting)p +Fj( )p Ff(red_par)o(t)p Fj( )o Ff(to)-6 b Fj( )p Ff(0.\\n\\n")q +Fm(;)249 1782 y Fi(r)l(e)l(d)p 361 1782 V 31 w(p)l(art)35 +b Fm(=)23 b(0)o(;)166 1882 y Fn(g)166 1982 y Fk(if)41 +b Fm(\()p Fi(gr)l(e)l(en)p 488 1982 V 31 w(p)l(art)35 +b Fe(>)23 b Fm(1)o(\))42 b Fn(f)249 2081 y Fi(c)l(err)j +Fn(\034)31 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Col)o(or)o(::)-6 +b(modify\(\):\\n")30 b Fn(\034)h Ff("green_part)p Fj( )p +Ff(is)p Fj( )p Ff(gr)o(ea)o(t)-6 b(er)p Fj( )p Ff(than)p +Fj( )p Ff(1:)p Fj( )p Ff(")31 b Fn(\034)415 2181 y Fi(gr)l(e)l(en)p +608 2181 V 30 w(p)l(art)36 b Fn(\034)23 b Fi(end)t(l)37 +b Fn(\034)23 b Ff("Setting)p Fj( )p Ff(green_)o(par)o(t)p +Fj( )-7 b Ff(to)p Fj( )p Ff(1.\\n\\n")q Fm(;)249 2280 +y Fi(gr)l(e)l(en)p 442 2280 V 30 w(p)l(art)36 b Fm(=)22 +b(1;)166 2380 y Fn(g)166 2480 y Fk(else)31 b(if)41 b +Fm(\()p Fi(gr)l(e)l(en)p 672 2480 V 31 w(p)l(art)35 b +Fe(<)23 b Fm(0\))41 b Fn(f)249 2579 y Fi(c)l(err)36 b +Fn(\034)24 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Co)o(lor)o(::)-7 +b(modify\(\):\\n")23 b Fn(\034)g Ff("green_part)p Fj( )p +Ff(is)p Fj( )p Ff(l)o(es)o(s)p Fj( )-6 b Ff(than)p Fj( )p +Ff(0:)p Fj( )p Ff(")23 b Fn(\034)g Fi(gr)l(e)l(en)p 3652 +2579 V 31 w(p)l(art)35 b Fn(\034)415 2679 y Fi(end)t(l)i Fn(\034)23 b Ff("Setting)p Fj( )p Ff(green_p)o(ar)o(t)p -Fj( )-6 b Ff(to)p Fj( )p Ff(1.\\n\\n")p Fm(;)249 3227 -y Fi(gr)l(e)l(en)p 442 3227 V 30 w(p)l(art)36 b Fm(=)22 -b(1;)166 3327 y Fn(g)166 3426 y Fk(else)31 b(if)41 b -Fm(\()p Fe(g)26 b(<)d Fm(0)o(\))42 b Fn(f)249 3526 y -Fi(c)l(err)37 b Fn(\034)24 b Ff("WARNING!)p Fj( )p Ff(In)p -Fj( )p Ff(Colo)o(r:)o(:)-6 b(set_green_part\(\))o(:\\n)o(")22 -b Fn(\034)i Ff("g)p Fj( )p Ff(is)p Fj( )p Ff(less)p Fj( )p -Ff(than)p Fj( )p Ff(0)o(:)p Fj( )o Ff(")e Fn(\034)i Fe(g)j -Fn(\034)d Fi(end)t(l)37 b Fn(\034)415 3625 y Ff("Setting)p +Fj( )-6 b Ff(to)p Fj( )p Ff(0.\\n\\n")p Fm(;)249 2779 +y Fi(gr)l(e)l(en)p 442 2779 V 30 w(p)l(art)36 b Fm(=)22 +b(0;)166 2878 y Fn(g)166 2978 y Fk(if)41 b Fm(\()p Fi(blue)p +442 2978 V 31 w(p)l(art)36 b Fe(>)22 b Fm(1\))42 b Fn(f)249 +3077 y Fi(c)l(err)k Fn(\034)32 b Ff("WARNING!)p Fj( )p +Ff(In)p Fj( )p Ff(Col)o(or)o(::)-6 b(modify\(\):\\n")31 +b Fn(\034)i Ff("blue_part)p Fj( )p Ff(is)p Fj( )p Ff(g)o(rea)o(te)-7 +b(r)p Fj( )p Ff(than)p Fj( )p Ff(1:)p Fj( )p Ff(")32 +b Fn(\034)415 3177 y Fi(blue)p 562 3177 V 31 w(p)l(art)j +Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Ff("Setting)p +Fj( )p Ff(blue_pa)o(rt)p Fj( )o Ff(t)-6 b(o)p Fj( )p +Ff(1.\\n\\n")p Fm(;)249 3277 y Fi(blue)p 396 3277 V 31 +w(p)l(art)35 b Fm(=)23 b(1)o(;)166 3376 y Fn(g)166 3476 +y Fk(else)31 b(if)41 b Fm(\()p Fi(blue)p 626 3476 V 31 +w(p)l(art)36 b Fe(<)22 b Fm(0\))42 b Fn(f)249 3576 y +Fi(c)l(err)c Fn(\034)24 b Ff("WARNING!)p Fj( )p Ff(In)p +Fj( )p Ff(Col)o(or)o(::)-6 b(modify\(\):\\n")23 b Fn(\034)h +Ff("blue_part)p Fj( )p Ff(is)p Fj( )p Ff(les)o(s)p Fj( )p +Ff(t)-7 b(han)p Fj( )p Ff(0:)p Fj( )p Ff(")25 b Fn(\034)g +Fi(blue)p 3570 3576 V 30 w(p)l(art)37 b Fn(\034)415 3675 +y Fi(end)t(l)g Fn(\034)23 b Ff("Setting)p Fj( )p Ff(blue_pa)o(rt)o +Fj( )p Ff(t)-6 b(o)p Fj( )p Ff(0.\\n\\n")p Fm(;)249 3775 +y Fi(blue)p 396 3775 V 31 w(p)l(art)35 b Fm(=)23 b(0)o(;)166 +3874 y Fn(g)166 3974 y Fk(return)5 b Fm(;)83 4074 y Fn(g)0 +4273 y Fk(86.)94 b(Set)32 b(red)g(part.)0 4398 y Fn(h)14 +b Fm(Declare)27 b Fk(Color)32 b Fm(functions)j Fl(58)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 4497 y Fk(v)m(oid)33 b +Fi(set)p 396 4497 V 30 w(r)l(e)l(d)p 533 4497 V 30 w(p)l(art)13 +b Fm(\()p Fk(const)33 b(real)f Fe(r)s Fm(\);)p eop end +%%Page: 28 28 +TeXDict begin 28 27 bop 0 83 a Fm(28)140 b Fl(SET)24 +b(RED)f(P)-6 b(AR)g(T)2498 b(3DLDFPR)n(G)141 b Fn(x)p +Fm(87)0 263 y Fk(87.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Color)k Fm(functions)k Fl(59)14 b Fn(i)23 b Fm(+)p +Fn(\021)83 487 y Fk(v)m(oid)33 b(Color)12 b Fm(::)c Fi(set)p +693 487 26 4 v 31 w(r)l(e)l(d)p 831 487 V 30 w(p)l(art)13 +b Fm(\()p Fk(const)32 b(real)h Fe(r)s Fm(\))83 587 y +Fn(f)166 686 y Fk(if)41 b Fm(\()p Fe(r)26 b(>)d Fm(1)o(\))42 +b Fn(f)249 786 y Fi(c)l(err)36 b Fn(\034)24 b Ff("WARNING!)p +Fj( )p Ff(In)p Fj( )p Ff(Co)o(lor)o(::)-7 b(set_red_part\(\):\\n)o(")21 +b Fn(\034)i Ff("r)p Fj( )p Ff(is)p Fj( )p Ff(greater)p +Fj( )p Ff(tha)o(n)p Fj( )o Ff(1)-6 b(:)p Fj( )p Ff(")26 +b Fn(\034)d Fe(r)j Fn(\034)d Fi(end)t(l)37 b Fn(\034)415 +886 y Ff("Setting)p Fj( )p Ff(red_par)o(t)p Fj( )p Ff(t)o(o)-6 +b Fj( )p Ff(1.\\n\\n")q Fm(;)249 985 y Fi(r)l(e)l(d)p +361 985 V 31 w(p)l(art)35 b Fm(=)23 b(1)o(;)166 1085 +y Fn(g)166 1185 y Fk(else)31 b(if)41 b Fm(\()p Fe(r)26 +b(<)d Fm(0\))41 b Fn(f)249 1284 y Fi(c)l(err)e Fn(\034)26 +b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Colo)o(r:)o(:)-6 +b(set_red_part\(\):\\)o(n")24 b Fn(\034)i Ff("r)p Fj( )p +Ff(is)p Fj( )p Ff(less)p Fj( )p Ff(than)p Fj( )o Ff(0:)p +Fj( )o Ff(")e Fn(\034)i Fe(r)j Fn(\034)d Fi(end)t(l)39 +b Fn(\034)415 1384 y Ff("Setting)p Fj( )p Ff(red_par)o(t)p +Fj( )p Ff(t)o(o)-6 b Fj( )p Ff(0.\\n\\n")q Fm(;)249 1483 +y Fi(r)l(e)l(d)p 361 1483 V 31 w(p)l(art)35 b Fm(=)23 +b(0)o(;)166 1583 y Fn(g)166 1683 y Fk(else)45 b Fi(r)l(e)l(d)p +476 1683 V 31 w(p)l(art)35 b Fm(=)23 b Fe(r)s Fm(;)166 +1782 y Fk(return)5 b Fm(;)83 1882 y Fn(g)0 2081 y Fk(88.)94 +b(Set)32 b(green)g(part.)0 2206 y Fn(h)14 b Fm(Declare)27 +b Fk(Color)32 b Fm(functions)j Fl(58)15 b Fn(i)23 b Fm(+)p +Fn(\021)83 2305 y Fk(v)m(oid)33 b Fi(set)p 396 2305 V +30 w(gr)l(e)l(en)p 614 2305 V 30 w(p)l(art)12 b Fm(\()p +Fk(const)33 b(real)g Fe(g)r Fm(\);)0 2505 y Fk(89.)0 +2629 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k Fm(functions)k +Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 2729 y Fk(v)m(oid)33 +b(Color)12 b Fm(::)c Fi(set)p 693 2729 V 31 w(gr)l(e)l(en)p +912 2729 V 30 w(p)l(art)k Fm(\()p Fk(const)33 b(real)f +Fe(g)s Fm(\))83 2828 y Fn(f)166 2928 y Fk(if)41 b Fm(\()p +Fe(g)26 b(>)d Fm(1)o(\))42 b Fn(f)249 3028 y Fi(c)l(err)f +Fn(\034)28 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Col)o(or:)o(:)-6 +b(set_green_part\(\))o(:\\)o(n")26 b Fn(\034)i Ff("g)p +Fj( )p Ff(is)p Fj( )p Ff(greater)p Fj( )p Ff(t)o(han)o +Fj( )p Ff(1)-7 b(:)p Fj( )p Ff(")31 b Fn(\034)d Fe(g)i +Fn(\034)415 3127 y Fi(end)t(l)37 b Fn(\034)23 b Ff("Setting)p +Fj( )p Ff(green_p)o(ar)o(t)p Fj( )-6 b Ff(to)p Fj( )p +Ff(1.\\n\\n")p Fm(;)249 3227 y Fi(gr)l(e)l(en)p 442 3227 +V 30 w(p)l(art)36 b Fm(=)22 b(1;)166 3327 y Fn(g)166 +3426 y Fk(else)31 b(if)41 b Fm(\()p Fe(g)26 b(<)d Fm(0)o(\))42 +b Fn(f)249 3526 y Fi(c)l(err)37 b Fn(\034)24 b Ff("WARNING!)p +Fj( )p Ff(In)p Fj( )p Ff(Colo)o(r:)o(:)-6 b(set_green_part\(\))o(:\\n)o +(")22 b Fn(\034)i Ff("g)p Fj( )p Ff(is)p Fj( )p Ff(less)p +Fj( )p Ff(than)p Fj( )p Ff(0)o(:)p Fj( )o Ff(")e Fn(\034)i +Fe(g)j Fn(\034)d Fi(end)t(l)37 b Fn(\034)415 3625 y Ff("Setting)p Fj( )p Ff(green_p)o(art)o Fj( )-6 b Ff(to)p Fj( )p Ff(0.\\n\\n")p Fm(;)249 3725 y Fi(gr)l(e)l(en)p 442 3725 V 30 w(p)l(art)36 b Fm(=)22 b(0;)166 3825 y Fn(g)166 3924 y Fk(else)45 @@ -5893,93 +5962,92 @@ Fl(58)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4547 y Fk(v)m(oid)33 b Fi(set)p 396 4547 V 30 w(blue)p 568 4547 V 30 w(p)l(art)13 b Fm(\()p Fk(const)33 b(real)f Fe(b)p Fm(\);)p eop end -%%Page: 28 28 -TeXDict begin 28 27 bop 0 83 a Fm(28)140 b Fl(SET)24 -b(BLUE)f(P)-6 b(AR)g(T)2457 b(3DLDFPR)n(G)141 b Fn(x)p -Fm(91)0 263 y Fk(91.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Color)k Fm(functions)k Fl(59)14 b Fn(i)23 b Fm(+)p -Fn(\021)83 487 y Fk(v)m(oid)33 b(Color)12 b Fm(::)c Fi(set)p -693 487 26 4 v 31 w(blue)p 866 487 V 30 w(p)l(art)13 -b Fm(\()p Fk(const)32 b(real)h Fe(b)o Fm(\))83 587 y -Fn(f)166 686 y Fk(if)41 b Fm(\()p Fe(b)23 b(>)g Fm(1)o(\))42 -b Fn(f)249 786 y Fi(c)l(err)g Fn(\034)29 b Ff("WARNING!)p -Fj( )p Ff(In)p Fj( )p Ff(Colo)o(r::)-7 b(set_blue_part\(\):\\)o(n")27 -b Fn(\034)i Ff("b)p Fj( )p Ff(is)p Fj( )p Ff(greater)p -Fj( )p Ff(t)o(han)o Fj( )p Ff(1)-7 b(:)p Fj( )p Ff(")33 -b Fn(\034)c Fe(b)f Fn(\034)415 886 y Fi(end)t(l)37 b -Fn(\034)23 b Ff("Setting)p Fj( )p Ff(blue_pa)o(rt)o Fj( )p -Ff(t)-6 b(o)p Fj( )p Ff(1.\\n\\n")p Fm(;)249 985 y Fi(blue)p -396 985 V 31 w(p)l(art)35 b Fm(=)23 b(1)o(;)166 1085 -y Fn(g)166 1185 y Fk(else)31 b(if)41 b Fm(\()p Fe(b)23 -b(<)g Fm(0\))41 b Fn(f)249 1284 y Fi(c)l(err)d Fn(\034)26 -b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Co)o(lor)o(::)-7 -b(set_blue_part\(\):\\)o(n")23 b Fn(\034)i Ff("b)p Fj( )p -Ff(is)p Fj( )p Ff(less)p Fj( )p Ff(than)p Fj( )o Ff(0:)p -Fj( )o Ff(")e Fn(\034)i Fe(b)g Fn(\034)g Fi(end)t(l)39 -b Fn(\034)415 1384 y Ff("Setting)p Fj( )p Ff(blue_pa)o(rt)p -Fj( )o Ff(t)-6 b(o)p Fj( )p Ff(0.\\n\\n")p Fm(;)249 1483 -y Fi(blue)p 396 1483 V 31 w(p)l(art)35 b Fm(=)23 b(0)o(;)166 -1583 y Fn(g)166 1683 y Fk(else)45 b Fi(blue)p 511 1683 -V 31 w(p)l(art)35 b Fm(=)23 b Fe(b)o Fm(;)166 1782 y -Fk(return)5 b Fm(;)83 1882 y Fn(g)0 2081 y Fk(92.)94 -b(Sho)m(w.)0 2206 y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 -b Fm(functions)j Fl(58)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2305 y Fk(v)m(oid)33 b Fi(show)14 b Fm(\()p Fk(string)33 -b Fi(text)h Fm(=)23 b Ff("")s Fm(\))28 b Fk(const)5 b -Fm(;)0 2505 y Fk(93.)0 2629 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Color)k Fm(functions)k Fl(59)14 b Fn(i)23 b Fm(+)p -Fn(\021)83 2729 y Fk(v)m(oid)33 b(Color)12 b Fm(::)c -Fi(show)14 b Fm(\()p Fk(string)34 b Fi(text)11 b Fm(\))28 -b Fk(const)83 2828 y Fn(f)166 2928 y Fk(if)41 b Fm(\()p -Fi(text)35 b Fn(\021)22 b Ff("")t Fm(\))42 b Fi(text)34 -b Fm(=)22 b Ff("Color:")q Fm(;)166 3028 y Fi(c)l(out)35 -b Fn(\034)23 b Fi(text)34 b Fn(\034)23 b Fi(end)t(l)14 -b Fm(;)166 3127 y Fi(c)l(out)35 b Fn(\034)23 b Ff("name)p -Fj( )p Ff(==)p Fj( )p Ff(")g Fn(\034)g Fi(get)p 1134 -3127 V 31 w(name)10 b Fm(\()k(\))24 b Fn(\034)f Fi(end)t(l)14 -b Fm(;)166 3227 y Fi(c)l(out)35 b Fn(\034)23 b Ff("use_name)p -Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)j Fi(get)p 1309 -3227 V 30 w(use)p 1456 3227 V 30 w(name)11 b Fm(\()j(\))23 -b Fn(\034)h Fi(end)t(l)13 b Fm(;)166 3327 y Fi(c)l(out)35 -b Fn(\034)23 b Ff("red_part)p Fj( )p Ff(==)p Fj( )p Ff(")e -Fn(\034)j Fi(get)p 1309 3327 V 30 w(r)l(e)l(d)p 1446 -3327 V 31 w(p)l(art)12 b Fm(\()i(\))24 b Fn(\034)f Fi(end)t(l)13 -b Fm(;)166 3426 y Fi(c)l(out)35 b Fn(\034)23 b Ff("green_part)p -Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)i Fi(get)p 1396 -3426 V 30 w(gr)l(e)l(en)p 1614 3426 V 31 w(p)l(art)12 -b Fm(\()i(\))23 b Fn(\034)g Fi(end)t(l)14 b Fm(;)166 -3526 y Fi(c)l(out)35 b Fn(\034)23 b Ff("blue_part)p Fj( )p -Ff(==)p Fj( )p Ff(")e Fn(\034)i Fi(get)p 1352 3526 V -31 w(blue)p 1525 3526 V 30 w(p)l(art)13 b Fm(\()h(\))23 -b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 b Fi(end)t(l)14 -b Fm(;)166 3625 y Fk(return)5 b Fm(;)83 3725 y Fn(g)0 -3924 y Fk(94.)94 b(Returning)31 b(elemen)m(ts)g(and)h(information.)0 -4124 y(95.)94 b(Is)32 b(on)g(free)g(store.)0 4248 y Fn(h)14 +%%Page: 29 29 +TeXDict begin 29 28 bop 0 83 a Fn(x)p Fm(91)140 b Fl(3DLDFPR)n(G)2457 +b(SET)23 b(BLUE)h(P)-6 b(AR)g(T)141 b Fm(29)0 263 y Fk(91.)0 +388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k Fm(functions)k +Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 +b(Color)12 b Fm(::)c Fi(set)p 693 487 26 4 v 31 w(blue)p +866 487 V 30 w(p)l(art)13 b Fm(\()p Fk(const)32 b(real)h +Fe(b)o Fm(\))83 587 y Fn(f)166 686 y Fk(if)41 b Fm(\()p +Fe(b)23 b(>)g Fm(1)o(\))42 b Fn(f)249 786 y Fi(c)l(err)g +Fn(\034)29 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Colo)o(r::)-7 +b(set_blue_part\(\):\\)o(n")27 b Fn(\034)i Ff("b)p Fj( )p +Ff(is)p Fj( )p Ff(greater)p Fj( )p Ff(t)o(han)o Fj( )p +Ff(1)-7 b(:)p Fj( )p Ff(")33 b Fn(\034)c Fe(b)f Fn(\034)415 +886 y Fi(end)t(l)37 b Fn(\034)23 b Ff("Setting)p Fj( )p +Ff(blue_pa)o(rt)o Fj( )p Ff(t)-6 b(o)p Fj( )p Ff(1.\\n\\n")p +Fm(;)249 985 y Fi(blue)p 396 985 V 31 w(p)l(art)35 b +Fm(=)23 b(1)o(;)166 1085 y Fn(g)166 1185 y Fk(else)31 +b(if)41 b Fm(\()p Fe(b)23 b(<)g Fm(0\))41 b Fn(f)249 +1284 y Fi(c)l(err)d Fn(\034)26 b Ff("WARNING!)p Fj( )p +Ff(In)p Fj( )p Ff(Co)o(lor)o(::)-7 b(set_blue_part\(\):\\)o(n")23 +b Fn(\034)i Ff("b)p Fj( )p Ff(is)p Fj( )p Ff(less)p Fj( )p +Ff(than)p Fj( )o Ff(0:)p Fj( )o Ff(")e Fn(\034)i Fe(b)g +Fn(\034)g Fi(end)t(l)39 b Fn(\034)415 1384 y Ff("Setting)p +Fj( )p Ff(blue_pa)o(rt)p Fj( )o Ff(t)-6 b(o)p Fj( )p +Ff(0.\\n\\n")p Fm(;)249 1483 y Fi(blue)p 396 1483 V 31 +w(p)l(art)35 b Fm(=)23 b(0)o(;)166 1583 y Fn(g)166 1683 +y Fk(else)45 b Fi(blue)p 511 1683 V 31 w(p)l(art)35 b +Fm(=)23 b Fe(b)o Fm(;)166 1782 y Fk(return)5 b Fm(;)83 +1882 y Fn(g)0 2081 y Fk(92.)94 b(Sho)m(w.)0 2206 y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 b Fm(functions)j Fl(58)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 4348 y Fk(inline)31 b(b)s(o)s(ol)g -Fi(is)p 622 4348 V 31 w(on)p 742 4348 V 30 w(fr)l(e)l(e)p -900 4348 V 31 w(stor)l(e)11 b Fm(\()j(\))28 b Fk(const)83 -4447 y Fn(f)166 4547 y Fk(return)33 b Fi(on)p 558 4547 -V 31 w(fr)l(e)l(e)p 717 4547 V 31 w(stor)l(e)10 b Fm(;)83 -4647 y Fn(g)0 4846 y Fk(96.)94 b(Get)36 b(Color)g(parts.)95 +b Fn(i)23 b Fm(+)p Fn(\021)83 2305 y Fk(v)m(oid)33 b +Fi(show)14 b Fm(\()p Fk(string)33 b Fi(text)h Fm(=)23 +b Ff("")s Fm(\))28 b Fk(const)5 b Fm(;)0 2505 y Fk(93.)0 +2629 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k Fm(functions)k +Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 2729 y Fk(v)m(oid)33 +b(Color)12 b Fm(::)c Fi(show)14 b Fm(\()p Fk(string)34 +b Fi(text)11 b Fm(\))28 b Fk(const)83 2828 y Fn(f)166 +2928 y Fk(if)41 b Fm(\()p Fi(text)35 b Fn(\021)22 b Ff("")t +Fm(\))42 b Fi(text)34 b Fm(=)22 b Ff("Color:")q Fm(;)166 +3028 y Fi(c)l(out)35 b Fn(\034)23 b Fi(text)34 b Fn(\034)23 +b Fi(end)t(l)14 b Fm(;)166 3127 y Fi(c)l(out)35 b Fn(\034)23 +b Ff("name)p Fj( )p Ff(==)p Fj( )p Ff(")g Fn(\034)g Fi(get)p +1134 3127 V 31 w(name)10 b Fm(\()k(\))24 b Fn(\034)f +Fi(end)t(l)14 b Fm(;)166 3227 y Fi(c)l(out)35 b Fn(\034)23 +b Ff("use_name)p Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)j +Fi(get)p 1309 3227 V 30 w(use)p 1456 3227 V 30 w(name)11 +b Fm(\()j(\))23 b Fn(\034)h Fi(end)t(l)13 b Fm(;)166 +3327 y Fi(c)l(out)35 b Fn(\034)23 b Ff("red_part)p Fj( )p +Ff(==)p Fj( )p Ff(")e Fn(\034)j Fi(get)p 1309 3327 V +30 w(r)l(e)l(d)p 1446 3327 V 31 w(p)l(art)12 b Fm(\()i(\))24 +b Fn(\034)f Fi(end)t(l)13 b Fm(;)166 3426 y Fi(c)l(out)35 +b Fn(\034)23 b Ff("green_part)p Fj( )p Ff(==)p Fj( )p +Ff(")e Fn(\034)i Fi(get)p 1396 3426 V 30 w(gr)l(e)l(en)p +1614 3426 V 31 w(p)l(art)12 b Fm(\()i(\))23 b Fn(\034)g +Fi(end)t(l)14 b Fm(;)166 3526 y Fi(c)l(out)35 b Fn(\034)23 +b Ff("blue_part)p Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)i +Fi(get)p 1352 3526 V 31 w(blue)p 1525 3526 V 30 w(p)l(art)13 +b Fm(\()h(\))23 b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 +b Fi(end)t(l)14 b Fm(;)166 3625 y Fk(return)5 b Fm(;)83 +3725 y Fn(g)0 3924 y Fk(94.)94 b(Returning)31 b(elemen)m(ts)g(and)h +(information.)0 4124 y(95.)94 b(Is)32 b(on)g(free)g(store.)0 +4248 y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 b Fm(functions)j +Fl(58)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4348 y Fk(inline)31 +b(b)s(o)s(ol)g Fi(is)p 622 4348 V 31 w(on)p 742 4348 +V 30 w(fr)l(e)l(e)p 900 4348 V 31 w(stor)l(e)11 b Fm(\()j(\))28 +b Fk(const)83 4447 y Fn(f)166 4547 y Fk(return)33 b Fi(on)p +558 4547 V 31 w(fr)l(e)l(e)p 717 4547 V 31 w(stor)l(e)10 +b Fm(;)83 4647 y Fn(g)0 4846 y Fk(96.)94 b(Get)36 b(Color)g(parts.)95 b Fm([)p Fh(LDF)26 b(2002.09.24.)p Fm(])64 b(These)31 b(functions)h(alw)n(a)n(ys)d(return)i(a)g Fk(real)5 b Fm(;)33 b(the)e(argumen)n(t)g Fi(de)l(cimal)0 4945 y Fm(can't)d(mak)n(e)e(them)j(return)e(an)g Fk(unsigned)k(short)5 b Fm(.)p eop end -%%Page: 29 29 -TeXDict begin 29 28 bop 0 83 a Fn(x)p Fm(97)140 b Fl(3DLDFPR)n(G)2482 -b(GET)24 b(RED)f(P)-6 b(AR)g(T)141 b Fm(29)0 263 y Fk(97.)94 -b(Get)32 b(red)g(part.)0 388 y Fn(h)14 b Fm(Declare)27 -b Fk(Color)32 b Fm(functions)j Fl(58)15 b Fn(i)23 b Fm(+)p -Fn(\021)83 487 y Fk(inline)31 b(real)h Fi(get)p 642 487 -26 4 v 31 w(r)l(e)l(d)p 780 487 V 31 w(p)l(art)12 b Fm(\()p -Fk(b)s(o)s(ol)31 b Fi(de)l(cimal)37 b Fm(=)23 b Fi(false)12 -b Fm(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(if)41 -b Fm(\()p Fi(de)l(cimal)15 b Fm(\))42 b Fk(return)33 -b Fi(trunc)8 b Fm(\(\()p Fi(r)l(e)l(d)p 1329 686 V 31 -w(p)l(art)31 b Fn(\003)18 b Fm(255)n(\))h(+)f Fe(:)p -Fm(5\);)166 786 y Fk(else)45 b(return)33 b Fi(r)l(e)l(d)p +%%Page: 30 30 +TeXDict begin 30 29 bop 0 83 a Fm(30)140 b Fl(GET)24 +b(RED)f(P)-6 b(AR)g(T)2482 b(3DLDFPR)n(G)141 b Fn(x)p +Fm(97)0 263 y Fk(97.)94 b(Get)32 b(red)g(part.)0 388 +y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 b Fm(functions)j +Fl(58)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(inline)31 +b(real)h Fi(get)p 642 487 26 4 v 31 w(r)l(e)l(d)p 780 +487 V 31 w(p)l(art)12 b Fm(\()p Fk(b)s(o)s(ol)31 b Fi(de)l(cimal)37 +b Fm(=)23 b Fi(false)12 b Fm(\))28 b Fk(const)83 587 +y Fn(f)166 686 y Fk(if)41 b Fm(\()p Fi(de)l(cimal)15 +b Fm(\))42 b Fk(return)33 b Fi(trunc)8 b Fm(\(\()p Fi(r)l(e)l(d)p +1329 686 V 31 w(p)l(art)31 b Fn(\003)18 b Fm(255)n(\))h(+)f +Fe(:)p Fm(5\);)166 786 y Fk(else)45 b(return)33 b Fi(r)l(e)l(d)p 774 786 V 31 w(p)l(art)12 b Fm(;)83 886 y Fn(g)0 1085 y Fk(98.)94 b(Get)32 b(green)g(part.)0 1209 y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 b Fm(functions)j Fl(58)15 @@ -6026,35 +6094,34 @@ b Fm(&)18 b Fe(o)q(;)c Fk(const)32 b(Color)g Fm(&)o Fe(c)p Fm(\);)0 4929 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(119.) p eop end -%%Page: 30 30 -TeXDict begin 30 29 bop 0 83 a Fm(30)140 b Fl(OUTPUT)23 -b(OPERA)-6 b(TOR)2245 b(3DLDFPR)n(G)142 b Fn(x)p Fm(104)0 -263 y Fk(104.)0 388 y Fn(h)14 b Fm(De\014ne)28 b(non-mem)n(b)r(er)f -(functions)h(for)f Fk(Color)39 b Fl(104)15 b Fn(i)24 -b(\021)83 487 y Fi(ostr)l(e)l(am)29 b Fm(&)18 b Fk(op)s(erator)5 -b Fn(\034)p Fm(\()p Fi(ostr)l(e)l(am)29 b Fm(&)18 b Fe(o)q(;)c -Fk(const)32 b(Color)g Fm(&)o Fe(c)p Fm(\))83 587 y Fn(f)166 -686 y Fk(if)41 b Fm(\()p Fe(c:)p Fi(get)p 463 686 26 -4 v 31 w(use)p 611 686 V 30 w(name)11 b Fm(\()j(\))23 -b Fn(\021)g Fi(true)10 b Fm(\))42 b Fn(f)249 786 y Fe(o)23 -b Fn(\034)g Fe(c:)p Fi(get)p 586 786 V 31 w(name)11 b -Fm(\()j(\);)166 886 y Fn(g)166 985 y Fk(else)45 b Fn(f)249 -1085 y Fe(o)23 b Fn(\034)g Ff("\(")k Fn(\034)c Fe(c:)p -Fi(get)p 851 1085 V 30 w(r)l(e)l(d)p 988 1085 V 31 w(p)l(art)12 -b Fm(\()i(\))24 b Fn(\034)f Ff(",)p Fj( )p Ff(")j Fn(\034)d -Fe(c:)p Fi(get)p 1853 1085 V 30 w(gr)l(e)l(en)p 2071 -1085 V 30 w(p)l(art)13 b Fm(\()h(\))23 b Fn(\034)g Ff(",)p -Fj( )p Ff(")j Fn(\034)d Fe(c:)p Fi(get)p 2935 1085 V -31 w(blue)p 3108 1085 V 30 w(p)l(art)13 b Fm(\()h(\))23 -b Fn(\034)g Ff("\)")s Fm(;)166 1185 y Fn(g)166 1284 y -Fk(return)33 b Fe(o)p Fm(;)83 1384 y Fn(g)0 1492 y Fl(This)23 -b(co)r(de)i(is)e(used)h(in)f(section)i(118.)0 1691 y -Fk(105.)94 b(De\014ne)32 b(Colors)f(in)g(MET)-8 b(APOST.)0 -1816 y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 b Fm(functions)j -Fl(58)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1915 y Fk(v)m(oid)33 -b Fi(de\014ne)p 508 1915 V 30 w(c)l(olor)p 712 1915 V -32 w(mp)10 b Fm(\()k(\))28 b Fk(const)t Fm(;)0 2114 y -Fk(106.)0 2239 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k +%%Page: 31 31 +TeXDict begin 31 30 bop 0 83 a Fn(x)p Fm(104)140 b Fl(3DLDFPR)n(G)2245 +b(OUTPUT)23 b(OPERA)-6 b(TOR)141 b Fm(31)0 263 y Fk(104.)0 +388 y Fn(h)14 b Fm(De\014ne)28 b(non-mem)n(b)r(er)f(functions)h(for)f +Fk(Color)39 b Fl(104)15 b Fn(i)24 b(\021)83 487 y Fi(ostr)l(e)l(am)29 +b Fm(&)18 b Fk(op)s(erator)5 b Fn(\034)p Fm(\()p Fi(ostr)l(e)l(am)29 +b Fm(&)18 b Fe(o)q(;)c Fk(const)32 b(Color)g Fm(&)o Fe(c)p +Fm(\))83 587 y Fn(f)166 686 y Fk(if)41 b Fm(\()p Fe(c:)p +Fi(get)p 463 686 26 4 v 31 w(use)p 611 686 V 30 w(name)11 +b Fm(\()j(\))23 b Fn(\021)g Fi(true)10 b Fm(\))42 b Fn(f)249 +786 y Fe(o)23 b Fn(\034)g Fe(c:)p Fi(get)p 586 786 V +31 w(name)11 b Fm(\()j(\);)166 886 y Fn(g)166 985 y Fk(else)45 +b Fn(f)249 1085 y Fe(o)23 b Fn(\034)g Ff("\(")k Fn(\034)c +Fe(c:)p Fi(get)p 851 1085 V 30 w(r)l(e)l(d)p 988 1085 +V 31 w(p)l(art)12 b Fm(\()i(\))24 b Fn(\034)f Ff(",)p +Fj( )p Ff(")j Fn(\034)d Fe(c:)p Fi(get)p 1853 1085 V +30 w(gr)l(e)l(en)p 2071 1085 V 30 w(p)l(art)13 b Fm(\()h(\))23 +b Fn(\034)g Ff(",)p Fj( )p Ff(")j Fn(\034)d Fe(c:)p Fi(get)p +2935 1085 V 31 w(blue)p 3108 1085 V 30 w(p)l(art)13 b +Fm(\()h(\))23 b Fn(\034)g Ff("\)")s Fm(;)166 1185 y Fn(g)166 +1284 y Fk(return)33 b Fe(o)p Fm(;)83 1384 y Fn(g)0 1492 +y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(118.)0 +1691 y Fk(105.)94 b(De\014ne)32 b(Colors)f(in)g(MET)-8 +b(APOST.)0 1816 y Fn(h)14 b Fm(Declare)27 b Fk(Color)32 +b Fm(functions)j Fl(58)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1915 y Fk(v)m(oid)33 b Fi(de\014ne)p 508 1915 V 30 w(c)l(olor)p +712 1915 V 32 w(mp)10 b Fm(\()k(\))28 b Fk(const)t Fm(;)0 +2114 y Fk(106.)0 2239 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k Fm(functions)k Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 2339 y Fk(v)m(oid)33 b(Color)12 b Fm(::)c Fi(de\014ne)p 805 2339 V 31 w(c)l(olor)p 1010 2339 V 32 w(mp)h Fm(\()15 @@ -6094,20 +6161,20 @@ b Fn(i)23 b Fm(+)p Fn(\021)83 4356 y Fk(static)33 b(v)m(oid)f Fi(initialize)p 865 4356 V 33 w(c)l(olors)12 b Fm(\()i(\);)p eop end -%%Page: 31 31 -TeXDict begin 31 30 bop 0 83 a Fn(x)p Fm(108)140 b Fl(3DLDFPR)n(G)2175 -b(INITIALIZE)25 b Fk(COLORS)141 b Fm(31)0 263 y Fk(108.)0 -388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k Fm(functions)k -Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 -b(Color)12 b Fm(::)c Fi(initialize)p 903 487 26 4 v 33 -w(c)l(olors)k Fm(\()i(\))83 587 y Fn(f)166 686 y Fk(using)33 -b(namespace)f(Colors)t Fm(;)166 811 y Fk(if)41 b Fm(\()p -Fn(:)p Fi(out)p 470 811 V 31 w(str)l(e)l(am)10 b Fe(:)p -Fi(is)p 830 811 V 31 w(op)l(en)h Fm(\()j(\)\))42 b Fn(f)249 -911 y Fi(c)l(err)74 b Fn(\034)61 b Ff("ERROR!)p Fj( )p -Ff(In)p Fj( )p Ff(Color)o(::)o(in)-6 b(itialize_colors)o(\(\):)o(\\n)f -(")65 b Fn(\034)415 1010 y Ff("out_stream)p Fj( )p Ff(is)p -Fj( )p Ff(c)o(los)o(e)-6 b(d!)p Fj( )p Ff(Returning.\\n)o(")21 +%%Page: 32 32 +TeXDict begin 32 31 bop 0 83 a Fm(32)140 b Fl(INITIALIZE)25 +b Fk(COLORS)2175 b Fl(3DLDFPR)n(G)142 b Fn(x)p Fm(108)0 +263 y Fk(108.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k +Fm(functions)k Fl(59)14 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(v)m(oid)33 b(Color)12 b Fm(::)c Fi(initialize)p +903 487 26 4 v 33 w(c)l(olors)k Fm(\()i(\))83 587 y Fn(f)166 +686 y Fk(using)33 b(namespace)f(Colors)t Fm(;)166 811 +y Fk(if)41 b Fm(\()p Fn(:)p Fi(out)p 470 811 V 31 w(str)l(e)l(am)10 +b Fe(:)p Fi(is)p 830 811 V 31 w(op)l(en)h Fm(\()j(\)\))42 +b Fn(f)249 911 y Fi(c)l(err)74 b Fn(\034)61 b Ff("ERROR!)p +Fj( )p Ff(In)p Fj( )p Ff(Color)o(::)o(in)-6 b(itialize_colors)o(\(\):)o +(\\n)f(")65 b Fn(\034)415 1010 y Ff("out_stream)p Fj( )p +Ff(is)p Fj( )p Ff(c)o(los)o(e)-6 b(d!)p Fj( )p Ff(Returning.\\n)o(")21 b Fn(\034)i Fi(\015ush)11 b Fm(;)249 1110 y Fk(return)5 b Fm(;)166 1209 y Fn(g)166 1309 y Fi(out)p 286 1309 V 30 w(str)l(e)l(am)33 b Fn(\034)23 b Ff("\045\045\045)p @@ -6186,41 +6253,40 @@ Fn(i)41 b(\003)p Fe(=)0 4829 y Fl(This)23 b(co)r(de)i(is)e(cited)h(in)g (section)g(109.)0 4937 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i (118.)p eop end -%%Page: 32 32 -TeXDict begin 32 31 bop 0 83 a Fm(32)140 b Fl(NAMESP)-6 -b(A)n(CE)23 b Fk(COLORS)2119 b Fl(3DLDFPR)n(G)142 b Fn(x)p -Fm(110)0 263 y Fk(110.)94 b Fm([)p Fh(LDF)26 b(2002.09.25.)p -Fm(])57 b(Here)25 b(I)f(can)g(put)h(either)g Fn(h)14 -b Fk(extern)30 b Fm(Ma)5 b(jor)23 b Fk(Colors)39 b Fl(113)15 -b Fn(i)25 b Fm(or)e Fn(h)14 b Fk(extern)30 b Fm(All)25 -b Fk(Colors)39 b Fl(0)14 b Fn(i)25 b Fm(in)n(to)0 363 -y Fn(h)14 b Fk(extern)33 b(namespace)f(Colors)g Fm(declaration)i -Fl(110)14 b Fn(i)0 485 y(h)g Fk(extern)33 b(namespace)f(Colors)g -Fm(declaration)i Fl(110)14 b Fn(i)24 b(\021)83 585 y(h)14 -b Fk(extern)33 b Fm(Ma)5 b(jor)26 b Fk(Colors)39 b Fl(113)15 -b Fn(i)0 690 y Fl(This)23 b(co)r(de)i(is)e(cited)h(in)g(sections)g(110) -g(and)h(114.)0 796 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i(119.)0 +%%Page: 33 33 +TeXDict begin 33 32 bop 0 83 a Fn(x)p Fm(110)140 b Fl(3DLDFPR)n(G)2119 +b(NAMESP)-6 b(A)n(CE)23 b Fk(COLORS)141 b Fm(33)0 263 +y Fk(110.)94 b Fm([)p Fh(LDF)26 b(2002.09.25.)p Fm(])57 +b(Here)25 b(I)f(can)g(put)h(either)g Fn(h)14 b Fk(extern)30 +b Fm(Ma)5 b(jor)23 b Fk(Colors)39 b Fl(113)15 b Fn(i)25 +b Fm(or)e Fn(h)14 b Fk(extern)30 b Fm(All)25 b Fk(Colors)39 +b Fl(0)14 b Fn(i)25 b Fm(in)n(to)0 363 y Fn(h)14 b Fk(extern)33 +b(namespace)f(Colors)g Fm(declaration)i Fl(110)14 b Fn(i)0 +485 y(h)g Fk(extern)33 b(namespace)f(Colors)g Fm(declaration)i +Fl(110)14 b Fn(i)24 b(\021)83 585 y(h)14 b Fk(extern)33 +b Fm(Ma)5 b(jor)26 b Fk(Colors)39 b Fl(113)15 b Fn(i)0 +690 y Fl(This)23 b(co)r(de)i(is)e(cited)h(in)g(sections)g(110)g(and)h +(114.)0 796 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i(119.)0 995 y Fk(111.)94 b(Ma)5 b(jor)42 b(Colors.)94 b Fm(The)35 b(colors)f(\\red",)i(\\green",)g(\\blue",)h(\\blac)n(k",)f(and)f (\\white")g(are)g(already)f(de\014ned)i(in)0 1095 y(MET)-7 b(APOST,)27 b(ho)n(w)n(ev)n(er,)e(w)n(e)j(need)f(them)h(here)g(in)f (order)g(to)g(access)g(the)h Fk(Color)j Fm(functions)d(for)f(them.)83 -1194 y(!!)44 b([)p Fh(LDF)25 b(2002.09.24.)p Fm(])63 +1195 y(!!)44 b([)p Fh(LDF)25 b(2002.09.24.)p Fm(])63 b(If)30 b(this)h(de\014nition)f(isn't)g(explicitly)g(written)g(to)g (the)g(header)f(\014le,)i(as)e(it)h(is)g(b)r(elo)n(w,)g(this)g(causes)0 1294 y(real)d(problems!!)36 b(It)28 b(to)r(ok)f(me)h(a)n(while)f(to)g (\014nd)h(out)g(that)g(this)g(w)n(as)e(the)i(cause.)0 -1493 y Fk(112.)94 b(In)m(ternal)28 b(\(with)f(initialization\).)94 +1494 y Fk(112.)94 b(In)m(ternal)28 b(\(with)f(initialization\).)94 b Fm([)p Fh(LDF)25 b(2002.09.25.)p Fm(])57 b(!!)36 b(If)23 b(I)h(add)g Fk(Colors)j Fm(here,)d(remem)n(b)r(er)f(to)g(add)h(them)0 1593 y(in)k(the)g(\\External")d(section)i(b)r(elo)n(w,)h(and)f(in)h (the)g(de\014nition)g(of)g Fk(Color)12 b Fm(::)c Fi(initialize)p 2676 1593 26 4 v 33 w(c)l(olors)k Fm(\()i(\))28 b(b)r(elo)n(w.)p -0 1692 1643 4 v 1738 1725 a Fk(Begin)j(Log)p 2257 1692 -V 83 1866 a Fm([)p Fh(LDF)25 b(2002.10.26.)p Fm(])61 -b(Added)28 b Fi(help)p 1152 1866 26 4 v 32 w(c)l(olor)14 -b Fm(.)p 0 1957 1678 4 v 1773 1990 a Fk(End)32 b(Log)p -2222 1957 V 0 2112 a Fn(h)14 b Fm(Ma)5 b(jor)26 b Fk(Colors)39 +0 1692 1779 4 v 1874 1725 a Fk(Log)p 2122 1692 V 83 1865 +a Fm([)p Fh(LDF)d(2002.10.26.)p Fm(])61 b(Added)28 b +Fi(help)p 1152 1865 26 4 v 32 w(c)l(olor)14 b Fm(.)p +0 1957 3900 4 v 0 2112 a Fn(h)g Fm(Ma)5 b(jor)26 b Fk(Colors)39 b Fl(112)15 b Fn(i)23 b(\021)83 2212 y Fk(namespace)33 b(Colors)e Fn(f)165 b Fe(=)p Fn(\003)41 b Fm(Primaries,)26 b(additiv)n(e.)50 b Fn(\003)p Fe(=)166 2312 y Fk(extern)33 @@ -6321,13 +6387,13 @@ b(co)r(de.)37 b(Chec)n(k)27 b(MET)-7 b(APOST)27 b(do)r(cumen)n (tation!!)36 b(I)28 b(b)r(eliev)n(e)f(it)h(has)f(something)g(similar.) 332 5400 y Fn(\003)p Fe(=)p eop end -%%Page: 33 33 -TeXDict begin 33 32 bop 0 83 a Fn(x)p Fm(112)140 b Fl(3DLDFPR)n(G)1728 -b(INTERNAL)23 b(\(WITH)i(INITIALIZA)-6 b(TION\))143 b -Fm(33)83 263 y Fn(g)0 371 y Fl(This)23 b(co)r(de)i(is)e(cited)h(in)g -(sections)g(109)g(and)h(114.)0 479 y(This)e(co)r(de)i(is)e(used)h(in)f -(section)i(109.)0 678 y Fk(113.)94 b(External.)0 803 -y Fn(h)14 b Fk(extern)33 b Fm(Ma)5 b(jor)26 b Fk(Colors)39 +%%Page: 34 34 +TeXDict begin 34 33 bop 0 83 a Fm(34)140 b Fl(INTERNAL)24 +b(\(WITH)g(INITIALIZA)-6 b(TION\))1730 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(112)83 263 y Fn(g)0 371 y Fl(This)23 b(co)r(de)i(is)e +(cited)h(in)g(sections)g(109)g(and)h(114.)0 479 y(This)e(co)r(de)i(is)e +(used)h(in)f(section)i(109.)0 678 y Fk(113.)94 b(External.)0 +803 y Fn(h)14 b Fk(extern)33 b Fm(Ma)5 b(jor)26 b Fk(Colors)39 b Fl(113)15 b Fn(i)23 b(\021)83 902 y Fk(namespace)37 b(Colors)e Fn(f)165 b Fe(=)p Fn(\003)45 b Fm([)p Fh(LDF)25 b(2002.09.27.)p Fm(])65 b(The)32 b(ordering)e(should)h(b)r(e)h(as)f(ab) @@ -6396,45 +6462,45 @@ Fm(declaration)h Fl(110)15 b Fn(i)0 4306 y Fm(ab)r(o)n(v)n(e.)83 4406 y Ff(@)t Fm(i)28 b Fj(colall.web)23 b Fm(\(Commen)n(ted)28 b(out\).)0 4605 y Fk(115.)94 b(Global)31 b(constan)m(ts.)p -0 4681 1643 4 v 1738 4713 a(Begin)g(Log)p 2257 4681 V -83 4854 a Fm([)p Fh(LDF)25 b(2002.10.26.)p Fm(])61 b(Added)28 +0 4681 1779 4 v 1874 4713 a(Log)p 2122 4681 V 83 4854 +a Fm([)p Fh(LDF)25 b(2002.10.26.)p Fm(])61 b(Added)28 b Fi(help)p 1152 4854 26 4 v 32 w(c)l(olor)p 1358 4854 -V 32 w(ve)l(ctor)13 b Fm(.)p 0 4946 1678 4 v 1773 4979 -a Fk(End)32 b(Log)p 2222 4946 V 0 5103 a Fn(h)14 b Fm(Global)27 -b(constan)n(ts)34 b Fl(19)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -5203 y Fk(namespace)33 b(Colors)e Fn(f)166 5302 y Fk(extern)i(const)f -(v)m(ector)6 b Fn(h)p Fk(const)33 b(Color)f Fn(\003)o(i)c -Fi(default)p 1872 5302 26 4 v 32 w(c)l(olor)p 2078 5302 -V 31 w(ve)l(ctor)14 b Fm(\(1)o Fe(;)g Fi(default)p 2689 -5302 V 32 w(c)l(olor)g Fm(\);)p eop end -%%Page: 34 34 -TeXDict begin 34 33 bop 0 83 a Fm(34)140 b Fl(GLOBAL)24 -b(CONST)-6 b(ANTS)2223 b(3DLDFPR)n(G)142 b Fn(x)p Fm(115)166 -263 y Fk(extern)33 b(const)f(v)m(ector)6 b Fn(h)p Fk(const)33 -b(Color)f Fn(\003)o(i)c Fi(help)p 1774 263 26 4 v 32 -w(c)l(olor)p 1980 263 V 32 w(ve)l(ctor)13 b Fm(\(1)p -Fe(;)h Fi(help)p 2494 263 V 32 w(c)l(olor)g Fm(\);)249 -363 y Fe(=)p Fn(\003)41 b Fm(LDF)28 b(2002.10.26.)33 -b(Added.)51 b Fn(\003)p Fe(=)166 462 y Fk(extern)33 b(const)f(v)m -(ector)6 b Fn(h)p Fk(const)33 b(Color)f Fn(\003)o(i)c -Fi(b)l(ackgr)l(ound)p 2028 462 V 32 w(c)l(olor)p 2234 -462 V 31 w(ve)l(ctor)14 b Fm(\(1)o Fe(;)g Fi(b)l(ackgr)l(ound)p -3001 462 V 32 w(c)l(olor)g Fm(\);)83 562 y Fn(g)0 761 -y Fk(116.)0 886 y Fn(h)g Fk(extern)33 b Fm(global)26 -b(constan)n(t)h(declarations)34 b Fl(116)15 b Fn(i)23 -b(\021)83 985 y Fk(namespace)33 b(Colors)e Fn(f)166 1085 -y Fk(extern)i(const)f(v)m(ector)6 b Fn(h)p Fk(const)33 -b(Color)f Fn(\003)o(i)c Fi(default)p 1872 1085 V 32 w(c)l(olor)p -2078 1085 V 31 w(ve)l(ctor)14 b Fm(;)166 1185 y Fk(extern)33 +V 32 w(ve)l(ctor)13 b Fm(.)p 0 4946 3900 4 v 0 5103 a +Fn(h)h Fm(Global)27 b(constan)n(ts)34 b Fl(19)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 5203 y Fk(namespace)33 b(Colors)e +Fn(f)166 5302 y Fk(extern)i(const)f(v)m(ector)6 b Fn(h)p +Fk(const)33 b(Color)f Fn(\003)o(i)c Fi(default)p 1872 +5302 26 4 v 32 w(c)l(olor)p 2078 5302 V 31 w(ve)l(ctor)14 +b Fm(\(1)o Fe(;)g Fi(default)p 2689 5302 V 32 w(c)l(olor)g +Fm(\);)p eop end +%%Page: 35 35 +TeXDict begin 35 34 bop 0 83 a Fn(x)p Fm(115)140 b Fl(3DLDFPR)n(G)2223 +b(GLOBAL)24 b(CONST)-6 b(ANTS)141 b Fm(35)166 263 y Fk(extern)33 b(const)f(v)m(ector)6 b Fn(h)p Fk(const)33 b(Color)f -Fn(\003)o(i)c Fi(help)p 1774 1185 V 32 w(c)l(olor)p 1980 -1185 V 32 w(ve)l(ctor)13 b Fm(;)166 b Fe(=)p Fn(\003)41 +Fn(\003)o(i)c Fi(help)p 1774 263 26 4 v 32 w(c)l(olor)p +1980 263 V 32 w(ve)l(ctor)13 b Fm(\(1)p Fe(;)h Fi(help)p +2494 263 V 32 w(c)l(olor)g Fm(\);)249 363 y Fe(=)p Fn(\003)41 b Fm(LDF)28 b(2002.10.26.)33 b(Added.)51 b Fn(\003)p -Fe(=)166 1284 y Fk(extern)33 b(const)f(v)m(ector)6 b -Fn(h)p Fk(const)33 b(Color)f Fn(\003)o(i)c Fi(b)l(ackgr)l(ound)p -2028 1284 V 32 w(c)l(olor)p 2234 1284 V 31 w(ve)l(ctor)14 -b Fm(;)83 1384 y Fn(g)0 1492 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f -(section)i(119.)0 1691 y Fk(117.)94 b(Putting)32 b(Color)f(together.)0 +Fe(=)166 462 y Fk(extern)33 b(const)f(v)m(ector)6 b Fn(h)p +Fk(const)33 b(Color)f Fn(\003)o(i)c Fi(b)l(ackgr)l(ound)p +2028 462 V 32 w(c)l(olor)p 2234 462 V 31 w(ve)l(ctor)14 +b Fm(\(1)o Fe(;)g Fi(b)l(ackgr)l(ound)p 3001 462 V 32 +w(c)l(olor)g Fm(\);)83 562 y Fn(g)0 761 y Fk(116.)0 886 +y Fn(h)g Fk(extern)33 b Fm(global)26 b(constan)n(t)h(declarations)34 +b Fl(116)15 b Fn(i)23 b(\021)83 985 y Fk(namespace)33 +b(Colors)e Fn(f)166 1085 y Fk(extern)i(const)f(v)m(ector)6 +b Fn(h)p Fk(const)33 b(Color)f Fn(\003)o(i)c Fi(default)p +1872 1085 V 32 w(c)l(olor)p 2078 1085 V 31 w(ve)l(ctor)14 +b Fm(;)166 1185 y Fk(extern)33 b(const)f(v)m(ector)6 +b Fn(h)p Fk(const)33 b(Color)f Fn(\003)o(i)c Fi(help)p +1774 1185 V 32 w(c)l(olor)p 1980 1185 V 32 w(ve)l(ctor)13 +b Fm(;)166 b Fe(=)p Fn(\003)41 b Fm(LDF)28 b(2002.10.26.)33 +b(Added.)51 b Fn(\003)p Fe(=)166 1284 y Fk(extern)33 +b(const)f(v)m(ector)6 b Fn(h)p Fk(const)33 b(Color)f +Fn(\003)o(i)c Fi(b)l(ackgr)l(ound)p 2028 1284 V 32 w(c)l(olor)p +2234 1284 V 31 w(ve)l(ctor)14 b Fm(;)83 1384 y Fn(g)0 +1492 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(119.)0 +1691 y Fk(117.)94 b(Putting)32 b(Color)f(together.)0 1890 y(118.)94 b Fm(This)28 b(is)f(compiled.)83 2015 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 2114 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 @@ -6446,141 +6512,150 @@ (functions)h(for)f Fk(Color)40 b Fl(104)14 b Fn(i)83 2613 y(h)g Fm(Global)27 b(constan)n(ts)34 b Fl(19)15 b Fn(i)p eop end -%%Page: 35 35 -TeXDict begin 35 34 bop 0 83 a Fn(x)p Fm(119)140 b Fl(3DLDFPR)n(G)1849 -b(PUTTING)24 b Fk(COLOR)f Fl(TOGETHER)141 b Fm(35)0 263 -y Fk(119.)94 b Fm(This)20 b(is)f(written)h(to)g Fj(colors.h)p -Fm(.)31 b(BUG)20 b(FIX:)g(The)g(prepro)r(cessor)d(\\)p +%%Page: 36 36 +TeXDict begin 36 35 bop 0 83 a Fm(36)140 b Fl(PUTTING)24 +b Fk(COLOR)f Fl(TOGETHER)1849 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(119)0 263 y Fk(119.)94 b Fm(This)20 b(is)f(written)h(to)g +Fj(colors.h)p Fm(.)31 b(BUG)20 b(FIX:)g(The)g(prepro)r(cessor)d(\\)p Fk(de\014ne)t Fm(")i(command)g(m)n(ust)h(b)r(e)g(here,)h(otherwise)0 363 y(it's)28 b(not)f(written)h(to)g(the)g(header)e(\014le.)37 b(Using)28 b(\\@)p Fe(d)o Fm(")f(ab)r(o)n(v)n(e)g(do)r(esn't)g(do)h -(it.)0 485 y Fn(h)14 b Ff(colors.h)80 b Fl(119)15 b Fn(i)23 -b(\021)83 585 y(h)14 b Fm(De\014ne)28 b Fk(class)k(Color)40 -b Fl(56)14 b Fn(i)83 685 y(h)g Fk(extern)33 b(namespace)g(Colors)e -Fm(declaration)j Fl(110)14 b Fn(i)83 784 y(h)g Fm(Declare)27 +(it.)0 487 y Fn(h)14 b Ff(colors.h)80 b Fl(119)15 b Fn(i)23 +b(\021)83 586 y(h)14 b Fm(De\014ne)28 b Fk(class)k(Color)40 +b Fl(56)14 b Fn(i)83 686 y(h)g Fk(extern)33 b(namespace)g(Colors)e +Fm(declaration)j Fl(110)14 b Fn(i)83 785 y(h)g Fm(Declare)27 b(non-mem)n(b)r(er)g(functions)h(for)f Fk(Color)39 b -Fl(103)15 b Fn(i)83 884 y(h)f Fk(extern)33 b Fm(global)26 +Fl(103)15 b Fn(i)83 885 y(h)f Fk(extern)33 b Fm(global)26 b(constan)n(t)h(declarations)34 b Fl(116)15 b Fn(i)0 -1083 y Fk(120.)94 b(T)-8 b(ransformations)96 b(\()p Fj(transform.web)p -Fk(\).)p 0 1183 1643 4 v 1738 1216 a(Begin)31 b(Log)p -2257 1183 V 83 1356 a Fm([)p Fh(LDF)25 b(2003.11.12.)p -Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n -(ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g -(of)0 1456 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n -(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)p 0 1548 1678 4 -v 1773 1580 a Fk(End)32 b(Log)p 2222 1548 V 0 1703 a -Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 -b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)0 1902 y Fk(121.)94 -b(Include)32 b(\014les.)0 2025 y Fn(h)14 b Fm(Include)28 -b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 -2125 y Fm(#)p Fk(include)32 b Ff("loader.h")0 2224 y -Fm(#)p Fk(include)g Ff("pspglb.h")0 2324 y Fm(#)p Fk(include)g -Ff("io.h")0 2423 y Fm(#)p Fk(include)g Ff("colors.h")0 -2623 y Fk(122.)94 b(T)-8 b(ransform)30 b(class)g(de\014nition.)94 -b Fm(The)25 b Fk(T)-8 b(ransform)31 b Fm(class)25 b(has)g(a)g(4)14 +1084 y Fk(120.)94 b(T)-8 b(ransformations)96 b(\()p Fj(transform.web)p +Fk(\).)p 0 1186 1779 4 v 1874 1219 a(Log)p 2122 1186 +V 83 1359 a Fm([)p Fh(LDF)25 b(2003.11.12.)p Fm(])71 +b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i +(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g(of)0 +1459 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h +(dev)n(elopmen)n(t)f(v)n(ersions.)83 1559 y([)p Fh(LDF)e(2003.12.10.)p +Fm(])64 b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden)n(ti\014ers)h +(bac)n(k)f(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h(3DLDF)i +(1.1.4.)43 b(I'v)n(e)0 1658 y(already)24 b(put)j(some)e(of)h(them)h +(bac)n(k)e(in,)i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.)37 +b(Ho)n(w)n(ev)n(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w)i +(in)0 1758 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 +b(.)p 0 1850 3900 4 v 0 2006 a Fn(h)14 b Fm(V)-7 b(ersion)27 +b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 2106 y Fk(static)33 b(string)g Fi(r)l(cs)p +726 2106 26 4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p +Ff(transfor.w)o(eb)o(,v)-6 b Fj( )p Ff(1.3)p Fj( )p Ff(2003/12/10)o +Fj( )p Ff(1)o(6:5)f(2:21)p Fj( )p Ff(lfinsto1)p Fj( )p +Ff(Exp)o Fj( )p Ff($)o(")n Fm(;)0 2305 y Fk(121.)94 b(Include)32 +b(\014les.)0 2429 y Fn(h)14 b Fm(Include)28 b(\014les)35 +b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 2529 y Fm(#)p +Fk(include)32 b Ff("loader.h")0 2628 y Fm(#)p Fk(include)g +Ff("pspglb.h")0 2728 y Fm(#)p Fk(include)g Ff("io.h")0 +2828 y Fm(#)p Fk(include)g Ff("colors.h")0 3027 y Fk(122.)94 +b(T)-8 b(ransform)30 b(class)g(de\014nition.)94 b Fm(The)25 +b Fk(T)-8 b(ransform)31 b Fm(class)25 b(has)g(a)g(4)14 b Fn(\002)g Fm(4)26 b(transformation)e(matrix)h(as)g(its)g(only)0 -2722 y(data)i(mem)n(b)r(er)g(and)g(a)g(n)n(um)n(b)r(er)g(of)g(mem)n(b)r +3127 y(data)i(mem)n(b)r(er)g(and)g(a)g(n)n(um)n(b)r(er)g(of)g(mem)n(b)r (er)g(functions.)37 b Fk(P)m(oin)m(ts)5 b Fm(,)27 b Fk(Pictures)5 b Fm(,)28 b(and)f Fi(F)-6 b(o)l(cuses)38 b Fm(con)n(tain)26 -b Fk(T)-8 b(ransforms)33 b Fm(as)0 2822 y(data)27 b(mem)n(b)r(ers.)83 -2922 y(!!)37 b(Remem)n(b)r(er)28 b(to)f(add)g(items)h(to)g +b Fk(T)-8 b(ransforms)33 b Fm(as)0 3226 y(data)27 b(mem)n(b)r(ers.)83 +3326 y(!!)37 b(Remem)n(b)r(er)28 b(to)f(add)g(items)h(to)g Fk(op)s(erator)5 b Fm(=)o(\()14 b(\))28 b(if)g(if)h(I)e(add)h(them)g -(to)f(the)h(class)f(de\014nition)h(here.)p 0 3022 1643 -4 v 1738 3054 a Fk(Begin)j(Log)p 2257 3022 V 83 3195 -a Fm([)p Fh(LDF)25 b(2003.07.04.)p Fm(])65 b(Remo)n(v)n(ed)31 -b Fk(friend)37 b Fm(declaration)30 b(for)i Fk(F)-8 b(o)s(cus)t -Fm(.)50 b(I'v)n(e)31 b(added)h Fi(set)p 2783 3195 26 -4 v 30 w(element)12 b Fm(\()i(\))32 b(and)g Fi(get)p -3483 3195 V 30 w(element)13 b Fm(\()h(\),)0 3295 y(whic)n(h)28 -b(are)e(used)i(in)g(the)g Fk(F)-8 b(o)s(cus)32 b Fm(functions,)c(so)f -(the)h(latter)f(need)g(no)h(longer)e(b)r(e)i(a)f Fk(friend)33 -b Fm(of)27 b Fk(T)-8 b(ransform)6 b Fm(.)p 0 3386 1678 -4 v 1773 3419 a Fk(End)32 b(Log)p 2222 3386 V 83 3542 -a(format)65 b Fi(T)-6 b(r)l(ansform)80 b(int)0 3664 y -Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(T)-8 b(ransform)41 -b Fl(122)15 b Fn(i)23 b(\021)83 3764 y Fk(class)32 b(T)-8 -b(ransform)33 b Fn(f)166 3864 y Fk(friend)f(class)g(P)m(oin)m(t)6 -b Fm(;)166 3963 y Fk(Matrix)35 b Fi(matrix)14 b Fm(;)166 -b Fe(=)p Fn(\003)43 b Fm(When)31 b(I'v)n(e)e(got)g(things)h(w)n -(orking,)f(I)h(can)f(try)h(to)f(optimize)h(use)g(of)g(storage)e(b)n(y)h -(not)332 4063 y(storing)e(the)h(parts)g(of)g(the)g(matrix)g(that)g(I)g -(don't)h(need.)38 b(This)28 b(is)g(a)g(little)g(complicated,)g(b)r -(ecause)g(the)g(ro)n(w)f(or)332 4162 y(column)h(whic)n(h)f(isn't)h -(needed)g(di\013ers)f(b)r(et)n(w)n(een)h(the)g(a\016ne)f(and)h(p)r -(ersp)r(ectiv)n(e)f(transformations.)49 b Fn(\003)p Fe(=)83 -4285 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 -b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(124)14 b -Fn(i)83 4385 y(g)p Fm(;)0 4491 y Fl(This)23 b(co)r(de)i(is)e(used)h(in) -f(sections)i(194)f(and)g(195.)0 4690 y Fk(123.)94 b(Constructors.)0 -4889 y(124.)g(Default)40 b(constructor.)96 b Fm(\(No)35 +(to)f(the)h(class)f(de\014nition)h(here.)p 0 3428 1779 +4 v 1874 3460 a Fk(Log)p 2122 3428 V 83 3601 a Fm([)p +Fh(LDF)d(2003.07.04.)p Fm(])65 b(Remo)n(v)n(ed)31 b Fk(friend)37 +b Fm(declaration)30 b(for)i Fk(F)-8 b(o)s(cus)t Fm(.)50 +b(I'v)n(e)31 b(added)h Fi(set)p 2783 3601 26 4 v 30 w(element)12 +b Fm(\()i(\))32 b(and)g Fi(get)p 3483 3601 V 30 w(element)13 +b Fm(\()h(\),)0 3701 y(whic)n(h)28 b(are)e(used)i(in)g(the)g +Fk(F)-8 b(o)s(cus)32 b Fm(functions,)c(so)f(the)h(latter)f(need)g(no)h +(longer)e(b)r(e)i(a)f Fk(friend)33 b Fm(of)27 b Fk(T)-8 +b(ransform)6 b Fm(.)p 0 3793 3900 4 v 83 3949 a Fk(format)65 +b Fi(T)-6 b(r)l(ansform)80 b(int)0 4073 y Fn(h)14 b Fm(De\014ne)28 +b Fk(class)k(T)-8 b(ransform)41 b Fl(122)15 b Fn(i)23 +b(\021)83 4173 y Fk(class)32 b(T)-8 b(ransform)33 b Fn(f)166 +4272 y Fk(friend)f(class)g(P)m(oin)m(t)6 b Fm(;)166 4372 +y Fk(Matrix)35 b Fi(matrix)14 b Fm(;)166 b Fe(=)p Fn(\003)43 +b Fm(When)31 b(I'v)n(e)e(got)g(things)h(w)n(orking,)f(I)h(can)f(try)h +(to)f(optimize)h(use)g(of)g(storage)e(b)n(y)h(not)332 +4471 y(storing)e(the)h(parts)g(of)g(the)g(matrix)g(that)g(I)g(don't)h +(need.)38 b(This)28 b(is)g(a)g(little)g(complicated,)g(b)r(ecause)g +(the)g(ro)n(w)f(or)332 4571 y(column)h(whic)n(h)f(isn't)h(needed)g +(di\013ers)f(b)r(et)n(w)n(een)h(the)g(a\016ne)f(and)h(p)r(ersp)r(ectiv) +n(e)f(transformations.)49 b Fn(\003)p Fe(=)83 4695 y +Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 b Fk(T)-8 +b(ransform)33 b Fm(functions)j Fl(124)14 b Fn(i)83 4795 +y(g)p Fm(;)0 4902 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i +(194)f(and)g(195.)0 5101 y Fk(123.)94 b(Constructors.)0 +5300 y(124.)g(Default)40 b(constructor.)96 b Fm(\(No)35 b(argumen)n(ts\).)57 b(Initializes)35 b(a)f(new)h(transformation)e -(matrix)h(as)g(the)h(iden)n(tit)n(y)0 4989 y(matrix)0 -5111 y Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(ransform)33 -b Fm(functions)j Fl(124)14 b Fn(i)24 b(\021)83 5211 y -Fk(T)-8 b(ransform)5 b Fm(\()15 b(\);)0 5317 y Fl(See)23 +(matrix)h(as)g(the)h(iden)n(tit)n(y)0 5400 y(matrix)p +eop end +%%Page: 37 37 +TeXDict begin 37 36 bop 0 83 a Fn(x)p Fm(124)140 b Fl(3DLDFPR)n(G)2070 +b(DEF)-8 b(A)n(UL)i(T)23 b(CONSTR)n(UCTOR)141 b Fm(37)0 +263 y Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(ransform)33 +b Fm(functions)j Fl(124)14 b Fn(i)24 b(\021)83 363 y +Fk(T)-8 b(ransform)5 b Fm(\()15 b(\);)0 471 y Fl(See)23 b(also)g(sections)g(126,)g(128,)g(130,)h(132,)f(134,)g(136,)g(138,)g (140,)g(142,)g(145,)g(147,)h(150,)f(152,)g(155,)g(157,)g(158,)g(160,)g -(166,)g(167,)h(168,)f(171,)g(173,)g(176,)166 5400 y(178,)h(181,)g(and)g -(187.)p eop end -%%Page: 36 36 -TeXDict begin 36 35 bop 0 83 a Fm(36)140 b Fl(DEF)-8 -b(A)n(UL)i(T)24 b(CONSTR)n(UCTOR)2069 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(124)0 263 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f -(section)i(122.)0 462 y Fk(125.)0 587 y Fn(h)14 b Fm(De\014ne)28 -b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(125)15 b -Fn(i)23 b(\021)83 686 y Fk(T)-8 b(ransform)14 b Fm(::)8 -b Fk(T)-8 b(ransform)6 b Fm(\()14 b(\))83 786 y Fn(f)166 -886 y Fi(r)l(eset)e Fm(\()i(\);)83 985 y Fn(g)0 1093 -y Fl(See)23 b(also)g(sections)g(127,)g(129,)g(131,)h(133,)f(135,)g -(137,)g(141,)g(143,)g(146,)g(148,)g(151,)h(153,)f(156,)g(159,)g(161,)g -(162,)g(163,)g(164,)g(172,)h(174,)f(177,)g(179,)g(182,)166 -1176 y(183,)h(184,)g(185,)g(186,)g(188,)g(372,)g(380,)g(381,)g(382,)g -(383,)g(384,)g(385,)g(386,)g(387,)g(388,)g(395,)g(and)g(716.)0 -1284 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(194,)f(589,)g(and)g -(933.)0 1483 y Fk(126.)94 b(Constructor)33 b(with)e(one)g(real)h -(argumen)m(t.)96 b Fm(All)28 b(elemen)n(ts)f(of)h Fi(matrix)41 -b Fm(are)27 b(set)h(to)f(the)h Fk(real)33 b Fm(argumen)n(t)26 -b Fe(r)s Fm(.)0 1608 y Fn(h)14 b Fm(Declare)27 b Fk(T)-8 -b(ransform)33 b Fm(functions)j Fl(124)14 b Fn(i)24 b -Fm(+)p Fn(\021)83 1708 y Fk(T)-8 b(ransform)5 b Fm(\()p -Fk(real)33 b Fe(r)s Fm(\);)0 1907 y Fk(127.)0 2031 y -Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j -Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2131 y Fk(T)-8 -b(ransform)14 b Fm(::)8 b Fk(T)-8 b(ransform)6 b Fm(\()p -Fk(real)32 b Fe(r)s Fm(\))83 2231 y Fn(f)166 2330 y Fk(for)h -Fm(\()p Fk(in)m(t)f Fe(i)23 b Fm(=)g(0)o(;)42 b Fe(i)23 -b(<)f Fm(4;)41 b Fe(i)1017 2322 y Fg(+)-8 b(+)1115 2330 -y Fm(\))249 2430 y Fk(for)33 b Fm(\()p Fk(in)m(t)g Fe(j)28 -b Fm(=)22 b(0;)41 b Fe(j)28 b(<)23 b Fm(4)o(;)42 b Fe(j)1131 -2422 y Fg(+)-8 b(+)1229 2430 y Fm(\))42 b Fi(matrix)14 -b Fm([)p Fe(i)o Fm(][)p Fe(j)5 b Fm(])24 b(=)e Fe(r)s -Fm(;)83 2530 y Fn(g)0 2729 y Fk(128.)94 b(Constructor)44 -b(with)f(16)f(real)h(argumen)m(ts.)95 b Fm([)p Fh(LDF)26 -b(2002.09.06.)p Fm(])70 b(Added)38 b(this)g(constructor.)64 -b(This)38 b(con-)0 2828 y(structor)27 b(mak)n(es)f(it)i(p)r(ossible)f -(to)h(sp)r(ecify)g(all)f(of)h(the)g(elemen)n(ts)f(of)h -Fi(matrix)14 b Fm(.)0 2953 y Fn(h)g Fm(Declare)27 b Fk(T)-8 -b(ransform)33 b Fm(functions)j Fl(124)14 b Fn(i)24 b -Fm(+)p Fn(\021)83 3053 y Fk(T)-8 b(ransform)5 b Fm(\()p -Fk(real)34 b Fi(r0)p 822 3053 26 4 v 31 w(0)16 b Fe(;)e -Fk(real)33 b Fi(r0)p 1214 3053 V 31 w(1)16 b Fe(;)e Fk(real)33 -b Fi(r0)p 1606 3053 V 31 w(2)16 b Fe(;)e Fk(real)33 b -Fi(r0)p 1998 3053 V 31 w(3)16 b Fe(;)e Fk(real)34 b Fi(r1)p -2391 3053 V 31 w(0)16 b Fe(;)e Fk(real)33 b Fi(r1)p 2783 -3053 V 31 w(1)16 b Fe(;)e Fk(real)33 b Fi(r1)p 3175 3053 -V 31 w(2)16 b Fe(;)e Fk(real)33 b Fi(r1)p 3567 3053 V -31 w(3)16 b Fe(;)e Fk(real)249 3152 y Fi(r2)p 331 3152 -V 31 w(0)i Fe(;)e Fk(real)32 b Fi(r2)p 722 3152 V 31 -w(1)16 b Fe(;)e Fk(real)33 b Fi(r2)p 1114 3152 V 31 w(2)16 -b Fe(;)e Fk(real)32 b Fi(r2)p 1505 3152 V 31 w(3)16 b -Fe(;)e Fk(real)32 b Fi(r3)p 1896 3152 V 31 w(0)16 b Fe(;)e -Fk(real)32 b Fi(r3)p 2287 3152 V 31 w(1)16 b Fe(;)e Fk(real)33 -b Fi(r3)p 2679 3152 V 31 w(2)16 b Fe(;)e Fk(real)32 b -Fi(r3)p 3070 3152 V 31 w(3)16 b Fm(\);)p eop end -%%Page: 37 37 -TeXDict begin 37 36 bop 0 83 a Fn(x)p Fm(129)140 b Fl(3DLDFPR)n(G)1329 -b(CONSTR)n(UCTOR)23 b(WITH)i(16)f Fk(REAL)f Fl(AR)n(GUMENTS)141 -b Fm(37)0 263 y Fk(129.)0 388 y Fn(h)14 b Fm(De\014ne)28 +(166,)g(167,)h(168,)f(171,)g(173,)g(176,)166 554 y(178,)h(181,)g(and)g +(187.)0 662 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(122.)0 +861 y Fk(125.)0 985 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 +b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b(\021)83 +1085 y Fk(T)-8 b(ransform)14 b Fm(::)8 b Fk(T)-8 b(ransform)6 +b Fm(\()14 b(\))83 1185 y Fn(f)166 1284 y Fi(r)l(eset)e +Fm(\()i(\);)83 1384 y Fn(g)0 1492 y Fl(See)23 b(also)g(sections)g(127,) +g(129,)g(131,)h(133,)f(135,)g(137,)g(141,)g(143,)g(146,)g(148,)g(151,)h +(153,)f(156,)g(159,)g(161,)g(162,)g(163,)g(164,)g(172,)h(174,)f(177,)g +(179,)g(182,)166 1575 y(183,)h(184,)g(185,)g(186,)g(188,)g(372,)g(380,) +g(381,)g(382,)g(383,)g(384,)g(385,)g(386,)g(387,)g(388,)g(395,)g(and)g +(716.)0 1683 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(194,)f +(589,)g(and)g(936.)0 1882 y Fk(126.)94 b(Constructor)33 +b(with)e(one)g(real)h(argumen)m(t.)96 b Fm(All)28 b(elemen)n(ts)f(of)h +Fi(matrix)41 b Fm(are)27 b(set)h(to)f(the)h Fk(real)33 +b Fm(argumen)n(t)26 b Fe(r)s Fm(.)0 2006 y Fn(h)14 b +Fm(Declare)27 b Fk(T)-8 b(ransform)33 b Fm(functions)j +Fl(124)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2106 y Fk(T)-8 +b(ransform)5 b Fm(\()p Fk(real)33 b Fe(r)s Fm(\);)0 2305 +y Fk(127.)0 2430 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 +b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b +Fm(+)p Fn(\021)83 2530 y Fk(T)-8 b(ransform)14 b Fm(::)8 +b Fk(T)-8 b(ransform)6 b Fm(\()p Fk(real)32 b Fe(r)s +Fm(\))83 2629 y Fn(f)166 2729 y Fk(for)h Fm(\()p Fk(in)m(t)f +Fe(i)23 b Fm(=)g(0)o(;)42 b Fe(i)23 b(<)f Fm(4;)41 b +Fe(i)1017 2721 y Fg(+)-8 b(+)1115 2729 y Fm(\))249 2828 +y Fk(for)33 b Fm(\()p Fk(in)m(t)g Fe(j)28 b Fm(=)22 b(0;)41 +b Fe(j)28 b(<)23 b Fm(4)o(;)42 b Fe(j)1131 2820 y Fg(+)-8 +b(+)1229 2828 y Fm(\))42 b Fi(matrix)14 b Fm([)p Fe(i)o +Fm(][)p Fe(j)5 b Fm(])24 b(=)e Fe(r)s Fm(;)83 2928 y +Fn(g)0 3127 y Fk(128.)94 b(Constructor)44 b(with)f(16)f(real)h(argumen) +m(ts.)95 b Fm([)p Fh(LDF)26 b(2002.09.06.)p Fm(])70 b(Added)38 +b(this)g(constructor.)64 b(This)38 b(con-)0 3227 y(structor)27 +b(mak)n(es)f(it)i(p)r(ossible)f(to)h(sp)r(ecify)g(all)f(of)h(the)g +(elemen)n(ts)f(of)h Fi(matrix)14 b Fm(.)0 3351 y Fn(h)g +Fm(Declare)27 b Fk(T)-8 b(ransform)33 b Fm(functions)j +Fl(124)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3451 y Fk(T)-8 +b(ransform)5 b Fm(\()p Fk(real)34 b Fi(r0)p 822 3451 +26 4 v 31 w(0)16 b Fe(;)e Fk(real)33 b Fi(r0)p 1214 3451 +V 31 w(1)16 b Fe(;)e Fk(real)33 b Fi(r0)p 1606 3451 V +31 w(2)16 b Fe(;)e Fk(real)33 b Fi(r0)p 1998 3451 V 31 +w(3)16 b Fe(;)e Fk(real)34 b Fi(r1)p 2391 3451 V 31 w(0)16 +b Fe(;)e Fk(real)33 b Fi(r1)p 2783 3451 V 31 w(1)16 b +Fe(;)e Fk(real)33 b Fi(r1)p 3175 3451 V 31 w(2)16 b Fe(;)e +Fk(real)33 b Fi(r1)p 3567 3451 V 31 w(3)16 b Fe(;)e Fk(real)249 +3551 y Fi(r2)p 331 3551 V 31 w(0)i Fe(;)e Fk(real)32 +b Fi(r2)p 722 3551 V 31 w(1)16 b Fe(;)e Fk(real)33 b +Fi(r2)p 1114 3551 V 31 w(2)16 b Fe(;)e Fk(real)32 b Fi(r2)p +1505 3551 V 31 w(3)16 b Fe(;)e Fk(real)32 b Fi(r3)p 1896 +3551 V 31 w(0)16 b Fe(;)e Fk(real)32 b Fi(r3)p 2287 3551 +V 31 w(1)16 b Fe(;)e Fk(real)33 b Fi(r3)p 2679 3551 V +31 w(2)16 b Fe(;)e Fk(real)32 b Fi(r3)p 3070 3551 V 31 +w(3)16 b Fm(\);)p eop end +%%Page: 38 38 +TeXDict begin 38 37 bop 0 83 a Fm(38)140 b Fl(CONSTR)n(UCTOR)23 +b(WITH)h(16)g Fk(REAL)g Fl(AR)n(GUMENTS)1329 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(129)0 263 y Fk(129.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)14 b Fm(::)8 b Fk(T)-8 b(ransform)6 b Fm(\()p Fk(real)29 @@ -6649,81 +6724,80 @@ b Fm(functions)j Fl(124)14 b Fn(i)24 b Fm(+)p Fn(\021)83 4248 y Fk(v)m(oid)33 b Fi(r)l(eset)11 b Fm(\()j(\);)p eop end -%%Page: 38 38 -TeXDict begin 38 37 bop 0 83 a Fm(38)140 b Fl(RESET)24 -b(TO)f(IDENTITY)h(MA)-6 b(TRIX)1919 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(133)0 263 y Fk(133.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(125)15 b -Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(T)-8 -b(ransform)13 b Fm(::)8 b Fi(r)l(eset)k Fm(\()j(\))83 -587 y Fn(f)166 686 y Fk(for)33 b Fm(\()p Fk(in)m(t)f -Fe(i)23 b Fm(=)g(0)o(;)42 b Fe(i)23 b(<)f Fm(4;)41 b -Fe(i)1017 678 y Fg(+)-8 b(+)1115 686 y Fm(\))166 b Fe(=)p -Fn(\003)41 b Fm(Ro)n(ws.)49 b Fn(\003)p Fe(=)249 786 -y Fk(for)33 b Fm(\()p Fk(in)m(t)g Fe(j)28 b Fm(=)22 b(0;)41 -b Fe(j)28 b(<)23 b Fm(4)o(;)42 b Fe(j)1131 778 y Fg(+)-8 -b(+)1229 786 y Fm(\))166 b Fe(=)p Fn(\003)41 b Fm(Columns.)50 -b Fn(\003)p Fe(=)249 886 y Fn(f)332 985 y Fi(matrix)14 -b Fm([)p Fe(i)p Fm(][)p Fe(j)5 b Fm(])23 b(=)g(\()p Fe(i)g -Fn(\021)f Fe(j)5 b Fm(\))24 b(?)f(1)f(:)i(0)o(;)249 1085 -y Fn(g)83 1185 y(g)0 1384 y Fk(134.)94 b(Setting)31 b(v)-5 -b(alues.)p 0 1483 1643 4 v 1738 1516 a(Begin)31 b(Log)p -2257 1483 V 83 1656 a Fm([)p Fh(LDF)25 b(2003.07.04.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 1748 1678 4 -v 1773 1781 a Fk(End)k(Log)p 2222 1748 V 0 1905 a Fn(h)14 +%%Page: 39 39 +TeXDict begin 39 38 bop 0 83 a Fn(x)p Fm(133)140 b Fl(3DLDFPR)n(G)1919 +b(RESET)24 b(TO)f(IDENTITY)h(MA)-6 b(TRIX)141 b Fm(39)0 +263 y Fk(133.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 +b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b +Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(T)-8 b(ransform)13 +b Fm(::)8 b Fi(r)l(eset)k Fm(\()j(\))83 587 y Fn(f)166 +686 y Fk(for)33 b Fm(\()p Fk(in)m(t)f Fe(i)23 b Fm(=)g(0)o(;)42 +b Fe(i)23 b(<)f Fm(4;)41 b Fe(i)1017 678 y Fg(+)-8 b(+)1115 +686 y Fm(\))166 b Fe(=)p Fn(\003)41 b Fm(Ro)n(ws.)49 +b Fn(\003)p Fe(=)249 786 y Fk(for)33 b Fm(\()p Fk(in)m(t)g +Fe(j)28 b Fm(=)22 b(0;)41 b Fe(j)28 b(<)23 b Fm(4)o(;)42 +b Fe(j)1131 778 y Fg(+)-8 b(+)1229 786 y Fm(\))166 b +Fe(=)p Fn(\003)41 b Fm(Columns.)50 b Fn(\003)p Fe(=)249 +886 y Fn(f)332 985 y Fi(matrix)14 b Fm([)p Fe(i)p Fm(][)p +Fe(j)5 b Fm(])23 b(=)g(\()p Fe(i)g Fn(\021)f Fe(j)5 b +Fm(\))24 b(?)f(1)f(:)i(0)o(;)249 1085 y Fn(g)83 1185 +y(g)0 1384 y Fk(134.)94 b(Setting)31 b(v)-5 b(alues.)p +0 1482 1779 4 v 1874 1515 a(Log)p 2122 1482 V 83 1656 +a Fm([)p Fh(LDF)25 b(2003.07.04.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 1748 3900 4 v 0 1905 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(ransform)33 b Fm(functions)j -Fl(124)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2005 y Fk(v)m(oid)33 -b Fi(set)p 396 2005 26 4 v 30 w(element)12 b Fm(\()p +Fl(124)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2004 y Fk(v)m(oid)33 +b Fi(set)p 396 2004 26 4 v 30 w(element)12 b Fm(\()p Fk(const)33 b(unsigned)e(short)h Fi(r)l(ow)14 b Fe(;)g Fk(const)32 b(unsigned)f(short)i Fi(c)l(ol)13 b Fe(;)h -Fk(real)32 b Fe(r)s Fm(\);)0 2204 y Fk(135.)0 2329 y +Fk(real)32 b Fe(r)s Fm(\);)0 2204 y Fk(135.)0 2328 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j -Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2429 y Fk(v)m(oid)33 -b(T)-8 b(ransform)13 b Fm(::)8 b Fi(set)p 893 2429 V +Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2428 y Fk(v)m(oid)33 +b(T)-8 b(ransform)13 b Fm(::)8 b Fi(set)p 893 2428 V 31 w(element)k Fm(\()p Fk(const)33 b(unsigned)e(short)h Fi(r)l(ow)14 b Fe(;)g Fk(const)32 b(unsigned)g(short)g -Fi(c)l(ol)13 b Fe(;)h Fk(real)33 b Fe(r)r Fm(\))83 2528 -y Fn(f)166 2628 y Fi(matrix)14 b Fm([)p Fi(r)l(ow)g Fm(][)p +Fi(c)l(ol)13 b Fe(;)h Fk(real)33 b Fe(r)r Fm(\))83 2527 +y Fn(f)166 2627 y Fi(matrix)14 b Fm([)p Fi(r)l(ow)g Fm(][)p Fi(c)l(ol)f Fm(])23 b(=)g(\()p Fi(fabs)12 b Fm(\()p Fe(r)s Fm(\))24 b Fe(<)e Fi(epsilon)12 b Fm(\()i(\)\))24 b(?)f(0)g(:)g -Fe(r)s Fm(;)166 2727 y Fk(return)5 b Fm(;)83 2827 y Fn(g)0 +Fe(r)s Fm(;)166 2727 y Fk(return)5 b Fm(;)83 2826 y Fn(g)0 3026 y Fk(136.)94 b(Clean.)h Fi(cle)l(an)11 b Fm(\()j(\))28 b(c)n(hanges)e(elemen)n(ts)i(in)g Fi(matrix)41 b Fm(whose)27 b(absolute)g(v)-5 b(alues)27 b(are)g Fe(<)g Fi(epsilon)12 -b Fm(\()i(\))28 b(to)g(0.)0 3151 y Fn(h)14 b Fm(Declare)27 +b Fm(\()i(\))28 b(to)g(0.)0 3150 y Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(124)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3250 y Fk(v)m(oid)33 b Fi(cle)l(an)11 b Fm(\()j(\);)p eop end -%%Page: 39 39 -TeXDict begin 39 38 bop 0 83 a Fn(x)p Fm(137)140 b Fl(3DLDFPR)n(G)2738 -b(CLEAN)141 b Fm(39)0 263 y Fk(137.)0 388 y Fn(h)14 b -Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j -Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 -b(T)-8 b(ransform)13 b Fm(::)8 b Fi(cle)l(an)k Fm(\()i(\))83 -587 y Fn(f)166 686 y Fk(real)33 b Fi(eps)h Fm(=)23 b -Fi(epsilon)12 b Fm(\()i(\);)166 811 y Fk(for)33 b Fm(\()p -Fk(in)m(t)f Fe(i)23 b Fm(=)g(0)o(;)42 b Fe(i)23 b(<)f -Fm(4;)41 b Fe(i)1017 803 y Fg(+)-8 b(+)1115 811 y Fm(\))166 -b Fe(=)p Fn(\003)41 b Fm(Ro)n(ws.)49 b Fn(\003)p Fe(=)249 -911 y Fk(for)33 b Fm(\()p Fk(in)m(t)g Fe(j)28 b Fm(=)22 -b(0;)41 b Fe(j)28 b(<)23 b Fm(4)o(;)42 b Fe(j)1131 903 -y Fg(+)-8 b(+)1229 911 y Fm(\))166 b Fe(=)p Fn(\003)41 -b Fm(Columns.)50 b Fn(\003)p Fe(=)249 1010 y Fn(f)332 -1110 y Fk(if)41 b Fm(\()p Fi(fabs)13 b Fm(\()p Fi(matrix)h -Fm([)p Fe(i)p Fm(][)p Fe(j)5 b Fm(]\))23 b Fe(<)g Fi(eps)11 -b Fm(\))42 b Fi(matrix)14 b Fm([)p Fe(i)p Fm(][)p Fe(j)5 -b Fm(])23 b(=)g(0)o(;)249 1209 y Fn(g)83 1309 y(g)0 1508 -y Fk(138.)94 b(Epsilon.)f Fm(Minim)n(um)24 b(magnitude)f(of)g(v)-5 -b(alues)22 b(stored)g(in)h Fi(matrix)14 b Fm(.)36 b([)p -Fh(LDF)25 b(2002.10.16.)p Fm(])56 b(The)23 b(v)-5 b(alue)23 -b(returned)f(b)n(y)0 1608 y Fi(epsilon)12 b Fm(\()i(\))27 -b(has)e(to)h(b)r(e)h(fairly)e(large)g(b)r(ecause)h(of)g(the)g(p)r(o)r -(or)g(precision)f(resulting)h(from)f(the)i(use)f Fi(\015o)l(ats)37 -b Fm(and)26 b(the)h(Standard)0 1708 y(Library)c(v)n(ersions)g(of)h(the) -h(trigonometric)e(functions.)36 b(There)24 b(is)g(curren)n(tly)f(no)h -(equalit)n(y)g(op)r(erator)f(for)h Fk(T)-8 b(ransform)5 -b Fm(,)25 b(but)0 1807 y(the)i(precision)e(of)i(the)f -Fk(T)-8 b(ransforms)32 b Fm(a\013ects)26 b(that)h(of)f +%%Page: 40 40 +TeXDict begin 40 39 bop 0 83 a Fm(40)140 b Fl(CLEAN)2738 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(137)0 263 y Fk(137.)0 388 +y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b +Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(v)m(oid)33 b(T)-8 b(ransform)13 b Fm(::)8 b +Fi(cle)l(an)k Fm(\()i(\))83 587 y Fn(f)166 686 y Fk(real)33 +b Fi(eps)h Fm(=)23 b Fi(epsilon)12 b Fm(\()i(\);)166 +811 y Fk(for)33 b Fm(\()p Fk(in)m(t)f Fe(i)23 b Fm(=)g(0)o(;)42 +b Fe(i)23 b(<)f Fm(4;)41 b Fe(i)1017 803 y Fg(+)-8 b(+)1115 +811 y Fm(\))166 b Fe(=)p Fn(\003)41 b Fm(Ro)n(ws.)49 +b Fn(\003)p Fe(=)249 911 y Fk(for)33 b Fm(\()p Fk(in)m(t)g +Fe(j)28 b Fm(=)22 b(0;)41 b Fe(j)28 b(<)23 b Fm(4)o(;)42 +b Fe(j)1131 903 y Fg(+)-8 b(+)1229 911 y Fm(\))166 b +Fe(=)p Fn(\003)41 b Fm(Columns.)50 b Fn(\003)p Fe(=)249 +1010 y Fn(f)332 1110 y Fk(if)41 b Fm(\()p Fi(fabs)13 +b Fm(\()p Fi(matrix)h Fm([)p Fe(i)p Fm(][)p Fe(j)5 b +Fm(]\))23 b Fe(<)g Fi(eps)11 b Fm(\))42 b Fi(matrix)14 +b Fm([)p Fe(i)p Fm(][)p Fe(j)5 b Fm(])23 b(=)g(0)o(;)249 +1209 y Fn(g)83 1309 y(g)0 1508 y Fk(138.)94 b(Epsilon.)f +Fm(Minim)n(um)24 b(magnitude)f(of)g(v)-5 b(alues)22 b(stored)g(in)h +Fi(matrix)14 b Fm(.)36 b([)p Fh(LDF)25 b(2002.10.16.)p +Fm(])56 b(The)23 b(v)-5 b(alue)23 b(returned)f(b)n(y)0 +1608 y Fi(epsilon)12 b Fm(\()i(\))27 b(has)e(to)h(b)r(e)h(fairly)e +(large)g(b)r(ecause)h(of)g(the)g(p)r(o)r(or)g(precision)f(resulting)h +(from)f(the)i(use)f Fi(\015o)l(ats)37 b Fm(and)26 b(the)h(Standard)0 +1708 y(Library)c(v)n(ersions)g(of)h(the)h(trigonometric)e(functions.)36 +b(There)24 b(is)g(curren)n(tly)f(no)h(equalit)n(y)g(op)r(erator)f(for)h +Fk(T)-8 b(ransform)5 b Fm(,)25 b(but)0 1807 y(the)i(precision)e(of)i +(the)f Fk(T)-8 b(ransforms)32 b Fm(a\013ects)26 b(that)h(of)f Fk(P)m(oin)m(ts)5 b Fm(.)37 b(TO)26 b(DO:)g(I)h(hop)r(e)f(to)g(b)r(e)h (able)f(to)g(solv)n(e)g(the)g(problem)g(b)n(y)0 1907 y(\014nding)33 b(routines)f(for)g(calculating)g(the)h(trigonometric)e @@ -6774,13 +6848,13 @@ Fn(i)24 b Fm(+)p Fn(\021)83 4995 y Fk(b)s(o)s(ol)31 b Fi(is)p 360 4995 V 31 w(identity)12 b Fm(\()i(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 40 40 -TeXDict begin 40 39 bop 0 83 a Fm(40)140 b Fk(CONST)24 -b Fl(VERSION)2303 b(3DLDFPR)n(G)142 b Fn(x)p Fm(143)0 -263 y Fk(143.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 -b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b -Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)31 b(T)-8 b(ransform)14 -b Fm(::)8 b Fi(is)p 858 487 26 4 v 31 w(identity)k Fm(\()i(\))28 +%%Page: 41 41 +TeXDict begin 41 40 bop 0 83 a Fn(x)p Fm(143)140 b Fl(3DLDFPR)n(G)2303 +b Fk(CONST)24 b Fl(VERSION)141 b Fm(41)0 263 y Fk(143.)0 +388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 +b Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(b)s(o)s(ol)31 b(T)-8 b(ransform)14 b Fm(::)8 +b Fi(is)p 858 487 26 4 v 31 w(identity)k Fm(\()i(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 811 y Fe(t)23 b Fm(=)g Fn(\003)o Fi(this)12 b Fm(;)166 911 y Fe(t:)p Fi(cle)l(an)f Fm(\()j(\);)166 @@ -6797,13 +6871,12 @@ b Fk(return)33 b Fi(false)11 b Fm(;)166 1309 y Fk(return)33 b Fi(true)10 b Fm(;)83 1409 y Fn(g)0 1608 y Fk(144.)94 b(Querying.)0 1807 y(145.)g(Get)32 b(elemen)m(t.)p 0 -1883 1643 4 v 1738 1916 a(Begin)f(Log)p 2257 1883 V 83 -2056 a Fm([)p Fh(LDF)25 b(2003.07.04.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 2148 1678 4 v 1773 2181 a Fk(End)k(Log)p -2222 2148 V 0 2305 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 -b(ransform)33 b Fm(functions)j Fl(124)14 b Fn(i)24 b -Fm(+)p Fn(\021)83 2405 y Fk(real)32 b Fi(get)p 380 2405 -26 4 v 31 w(element)12 b Fm(\()p Fk(const)33 b(unsigned)e(short)h +1883 1779 4 v 1874 1916 a(Log)p 2122 1883 V 83 2056 a +Fm([)p Fh(LDF)25 b(2003.07.04.)p Fm(])61 b(Added)28 b(this)g(function.) +p 0 2148 3900 4 v 0 2305 a Fn(h)14 b Fm(Declare)27 b +Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(124)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 2405 y Fk(real)32 b Fi(get)p 380 +2405 26 4 v 31 w(element)12 b Fm(\()p Fk(const)33 b(unsigned)e(short)h Fi(r)l(ow)14 b Fe(;)g Fk(const)32 b(unsigned)g(short)g Fi(c)l(ol)13 b Fm(\))28 b Fk(const)5 b Fm(;)0 2604 y Fk(146.)0 2729 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 @@ -6819,20 +6892,20 @@ Fm(+)p Fn(\021)83 3551 y Fk(v)m(oid)33 b Fi(show)14 b Fm(\()p Fk(string)33 b Fi(text)h Fm(=)23 b Ff("")s Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 41 41 -TeXDict begin 41 40 bop 0 83 a Fn(x)p Fm(148)140 b Fl(3DLDFPR)n(G)2769 -b(SHO)n(W)142 b Fm(41)0 263 y Fk(148.)0 388 y Fn(h)14 -b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j -Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 -b(T)-8 b(ransform)13 b Fm(::)8 b Fi(show)15 b Fm(\()p -Fk(string)33 b Fi(text)11 b Fm(\))28 b Fk(const)83 587 -y Fn(f)166 686 y Fk(if)41 b Fm(\()p Fi(text)35 b Fn(\021)22 -b Ff("")t Fm(\))42 b Fi(text)34 b Fm(=)22 b Ff("Transform:")p -Fm(;)166 786 y Fi(c)l(out)35 b Fn(\034)23 b Fi(text)34 -b Fn(\034)23 b Ff("\\n")s Fm(;)166 886 y Fk(for)33 b -Fm(\()p Fk(in)m(t)f Fe(i)23 b Fm(=)g(0)o(;)42 b Fe(i)23 -b(<)f Fm(4;)41 b Fe(i)1017 878 y Fg(+)-8 b(+)1115 886 -y Fm(\))42 b Fn(f)249 985 y Fk(for)34 b Fm(\()p Fk(in)m(t)g +%%Page: 42 42 +TeXDict begin 42 41 bop 0 83 a Fm(42)140 b Fl(SHO)n(W)2770 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(148)0 263 y Fk(148.)0 388 +y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b +Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(v)m(oid)33 b(T)-8 b(ransform)13 b Fm(::)8 b +Fi(show)15 b Fm(\()p Fk(string)33 b Fi(text)11 b Fm(\))28 +b Fk(const)83 587 y Fn(f)166 686 y Fk(if)41 b Fm(\()p +Fi(text)35 b Fn(\021)22 b Ff("")t Fm(\))42 b Fi(text)34 +b Fm(=)22 b Ff("Transform:")p Fm(;)166 786 y Fi(c)l(out)35 +b Fn(\034)23 b Fi(text)34 b Fn(\034)23 b Ff("\\n")s Fm(;)166 +886 y Fk(for)33 b Fm(\()p Fk(in)m(t)f Fe(i)23 b Fm(=)g(0)o(;)42 +b Fe(i)23 b(<)f Fm(4;)41 b Fe(i)1017 878 y Fg(+)-8 b(+)1115 +886 y Fm(\))42 b Fn(f)249 985 y Fk(for)34 b Fm(\()p Fk(in)m(t)g Fe(j)c Fm(=)25 b(0;)43 b Fe(j)30 b(<)25 b Fm(4)o(;)43 b Fe(j)1145 977 y Fg(+)-8 b(+)1243 985 y Fm(\))42 b Fn(f)166 b Fe(=)p Fn(\003)41 b Fm(!!)h([)p Fh(LDF)25 b(2002.02.07.)p @@ -6867,9 +6940,9 @@ Fi(pt0)16 b Fm(,)28 b Fi(pt1)16 b Fm(,)27 b(and)h Fi(pt2)43 b Fm(are)27 b(all)g(rotated)g(90)1303 3047 y Fd(\016)1368 3077 y Fm(around)g(the)h(x,)f(y)-7 b(,)28 b(and)f(z-axes.)0 -3277 y Fk(150.)94 b(Scale.)p 0 3352 1643 4 v 1738 3385 -a(Begin)31 b(Log)p 2257 3352 V 83 3526 a Fm([)p Fh(LDF)25 -b(2002.10.15.)p Fm(])59 b(BUG)25 b(FIX:)h(If)g(the)g(absolute)e(v)-5 +3277 y Fk(150.)94 b(Scale.)p 0 3352 1779 4 v 1874 3385 +a(Log)p 2122 3352 V 83 3526 a Fm([)p Fh(LDF)25 b(2002.10.15.)p +Fm(])59 b(BUG)25 b(FIX:)h(If)g(the)g(absolute)e(v)-5 b(alue)25 b(of)h(an)f(argumen)n(t)f(is)h Fe(<)g Fi(epsilon)12 b Fm(\()i(\),)26 b(the)g(argumen)n(t)e(is)h(no)n(w)g(set)0 3625 y(to)30 b(0)g(instead)g(of)g(1.)45 b(Setting)30 @@ -6879,25 +6952,25 @@ (er)f(of)g(v)n(ery)g(small)g(magnitude.)83 3825 y([)p Fh(LDF)e(2003.03.25.)p Fm(])61 b(BUG)28 b(FIX:)g(Fixed)g(conditional)f (that)h(tests)f(whether)h(all)f(the)h(argumen)n(ts)f(are)f(1.)p -0 3917 1678 4 v 1773 3949 a Fk(End)32 b(Log)p 2222 3917 -V 0 4074 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(ransform)33 -b Fm(functions)j Fl(124)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -4173 y Fk(T)-8 b(ransform)33 b Fi(sc)l(ale)11 b Fm(\()p -Fk(real)33 b Fe(x)q(;)14 b Fk(real)32 b Fe(y)26 b Fm(=)c(1)p -Fe(;)14 b Fk(real)32 b Fe(z)26 b Fm(=)d(1\);)p eop end -%%Page: 42 42 -TeXDict begin 42 41 bop 0 83 a Fm(42)140 b Fl(SCALE)2752 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(151)0 263 y Fk(151.)0 388 -y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b -Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -487 y Fk(T)-8 b(ransform)33 b(T)-8 b(ransform)14 b Fm(::)8 -b Fi(sc)l(ale)k Fm(\()p Fk(real)32 b Fe(x)q(;)14 b Fk(real)32 -b Fe(y)s(;)14 b Fk(real)32 b Fe(z)s Fm(\))83 587 y Fn(f)166 -686 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 811 y Fk(if)41 -b Fm(\()p Fe(x)24 b Fn(\021)f Fm(1)18 b Fn(^)g Fe(y)26 -b Fn(\021)d Fm(1)18 b Fn(^)h Fe(z)26 b Fn(\021)d Fm(1)o(\))42 -b Fn(f)249 911 y Fi(c)l(err)81 b Fn(\034)67 b Ff("WARNING!)p -Fj( )p Ff(In)p Fj( )p Ff(Tran)o(sf)o(o)-6 b(rm::scale\(\):\\n")66 +0 3917 3900 4 v 0 4074 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 +b(ransform)33 b Fm(functions)j Fl(124)14 b Fn(i)24 b +Fm(+)p Fn(\021)83 4173 y Fk(T)-8 b(ransform)33 b Fi(sc)l(ale)11 +b Fm(\()p Fk(real)33 b Fe(x)q(;)14 b Fk(real)32 b Fe(y)26 +b Fm(=)c(1)p Fe(;)14 b Fk(real)32 b Fe(z)26 b Fm(=)d(1\);)p +eop end +%%Page: 43 43 +TeXDict begin 43 42 bop 0 83 a Fn(x)p Fm(151)140 b Fl(3DLDFPR)n(G)2752 +b(SCALE)141 b Fm(43)0 263 y Fk(151.)0 388 y Fn(h)14 b +Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j +Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 +b(ransform)33 b(T)-8 b(ransform)14 b Fm(::)8 b Fi(sc)l(ale)k +Fm(\()p Fk(real)32 b Fe(x)q(;)14 b Fk(real)32 b Fe(y)s(;)14 +b Fk(real)32 b Fe(z)s Fm(\))83 587 y Fn(f)166 686 y Fk(T)-8 +b(ransform)33 b Fe(t)p Fm(;)166 811 y Fk(if)41 b Fm(\()p +Fe(x)24 b Fn(\021)f Fm(1)18 b Fn(^)g Fe(y)26 b Fn(\021)d +Fm(1)18 b Fn(^)h Fe(z)26 b Fn(\021)d Fm(1)o(\))42 b Fn(f)249 +911 y Fi(c)l(err)81 b Fn(\034)67 b Ff("WARNING!)p Fj( )p +Ff(In)p Fj( )p Ff(Tran)o(sf)o(o)-6 b(rm::scale\(\):\\n")66 b Fn(\034)415 1010 y Ff("All)p Fj( )p Ff(arguments)p Fj( )p Ff(=)o(=)p Fj( )p Ff(1)o(.)-6 b Fj( )p Ff(Returning)p Fj( )p Ff(iden)o(ti)o(ty)g Fj( )p Ff(transformation)o(.")21 @@ -6926,55 +6999,55 @@ Fe(;)14 b Fk(real)33 b Fi(yz)k Fm(=)23 b(0)p Fe(;)14 b Fk(real)32 b Fi(zx)37 b Fm(=)22 b(0)p Fe(;)14 b Fk(real)32 b Fi(zy)j Fm(=)23 b(0)o(\);)p eop end -%%Page: 43 43 -TeXDict begin 43 42 bop 0 83 a Fn(x)p Fm(153)140 b Fl(3DLDFPR)n(G)2742 -b(SHEAR)141 b Fm(43)0 263 y Fk(153.)0 388 y Fn(h)14 b -Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j -Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 -b(ransform)33 b(T)-8 b(ransform)14 b Fm(::)8 b Fi(she)l(ar)14 -b Fm(\()p Fk(real)33 b Fi(xy)11 b Fe(;)j Fk(real)33 b -Fi(xz)14 b Fe(;)g Fk(real)32 b Fi(yx)14 b Fe(;)g Fk(real)32 -b Fi(yz)15 b Fe(;)f Fk(real)33 b Fi(zx)13 b Fe(;)h Fk(real)33 -b Fi(zy)11 b Fm(\))83 587 y Fn(f)166 686 y Fk(T)-8 b(ransform)33 -b Fe(t)p Fm(;)166 786 y Fk(real)g Fi(eps)h Fm(=)23 b -Fi(epsilon)12 b Fm(\()i(\);)166 911 y Fk(if)41 b Fm(\()p -Fi(fabs)13 b Fm(\()p Fi(xy)e Fm(\))24 b Fe(<)e Fi(eps)12 -b Fm(\))42 b Fi(xy)34 b Fm(=)23 b(0)o(;)166 1010 y Fk(if)41 -b Fm(\()p Fi(fabs)13 b Fm(\()p Fi(xz)h Fm(\))23 b Fe(<)g -Fi(eps)11 b Fm(\))42 b Fi(xz)37 b Fm(=)23 b(0)o(;)166 -1110 y Fk(if)41 b Fm(\()p Fi(fabs)13 b Fm(\()p Fi(yx)h -Fm(\))23 b Fe(<)g Fi(eps)12 b Fm(\))41 b Fi(yx)c Fm(=)23 -b(0;)166 1209 y Fk(if)41 b Fm(\()p Fi(fabs)13 b Fm(\()p -Fi(yz)i Fm(\))23 b Fe(<)g Fi(eps)11 b Fm(\))42 b Fi(yz)c -Fm(=)22 b(0;)166 1309 y Fk(if)41 b Fm(\()p Fi(fabs)13 -b Fm(\()p Fi(zx)h Fm(\))23 b Fe(<)g Fi(eps)11 b Fm(\))42 -b Fi(zx)37 b Fm(=)22 b(0;)166 1409 y Fk(if)41 b Fm(\()p -Fi(fabs)13 b Fm(\()p Fi(zy)f Fm(\))23 b Fe(<)g Fi(eps)11 -b Fm(\))42 b Fi(zy)35 b Fm(=)23 b(0)o(;)166 1508 y Fk(if)41 -b Fm(\()p Fi(xy)35 b Fn(\021)23 b Fm(0)18 b Fn(^)g Fi(xz)37 -b Fn(\021)23 b Fm(0)18 b Fn(^)h Fi(yx)37 b Fn(\021)23 -b Fm(0)17 b Fn(^)i Fi(yz)38 b Fn(\021)23 b Fm(0)18 b -Fn(^)g Fi(zx)37 b Fn(\021)23 b Fm(0)18 b Fn(^)h Fi(zy)34 -b Fn(\021)23 b Fm(0\))41 b Fn(f)249 1608 y Fi(c)l(err)81 -b Fn(\034)67 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Tran)o(sf)o(o)-6 -b(rm::shear\(\):\\n")66 b Fn(\034)415 1708 y Ff("All)p -Fj( )p Ff(arguments)p Fj( )p Ff(a)o(re)p Fj( )o Ff(0)-6 -b(.)p Fj( )p Ff(Returning)p Fj( )p Ff(ide)o(nt)o(it)g(y)p -Fj( )p Ff(transformatio)o(n.")21 b Fn(\034)i Fi(end)t(l)36 -b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 -b Fm(;)249 1807 y Fk(return)33 b Fe(t)p Fm(;)166 1907 -y Fn(g)166 2006 y Fe(t:)p Fi(matrix)14 b Fm([1][0)o(])24 -b(=)e Fi(xy)12 b Fm(;)166 2106 y Fe(t:)p Fi(matrix)i -Fm([2][0)o(])24 b(=)e Fi(xz)14 b Fm(;)166 2206 y Fe(t:)p -Fi(matrix)g Fm([0][1)o(])24 b(=)e Fi(yx)14 b Fm(;)166 -2305 y Fe(t:)p Fi(matrix)g Fm([2][1)o(])24 b(=)e Fi(yz)15 -b Fm(;)166 2405 y Fe(t:)p Fi(matrix)f Fm([0][2)o(])24 -b(=)e Fi(zx)14 b Fm(;)166 2505 y Fe(t:)p Fi(matrix)g -Fm([1][2)o(])24 b(=)e Fi(zy)12 b Fm(;)166 2604 y(\()p -Fn(\003)p Fi(this)f Fm(\))24 b Fn(\003)p Fm(=)e Fe(t)p -Fm(;)166 2704 y Fi(cle)l(an)11 b Fm(\()j(\);)166 2803 -y Fk(return)33 b Fe(t)p Fm(;)83 2903 y Fn(g)0 3102 y -Fk(154.)94 b(Shift.)h Fm(\(T)-7 b(ranslation.\))0 3302 +%%Page: 44 44 +TeXDict begin 44 43 bop 0 83 a Fm(44)140 b Fl(SHEAR)2742 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(153)0 263 y Fk(153.)0 388 +y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b +Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(T)-8 b(ransform)33 b(T)-8 b(ransform)14 b Fm(::)8 +b Fi(she)l(ar)14 b Fm(\()p Fk(real)33 b Fi(xy)11 b Fe(;)j +Fk(real)33 b Fi(xz)14 b Fe(;)g Fk(real)32 b Fi(yx)14 +b Fe(;)g Fk(real)32 b Fi(yz)15 b Fe(;)f Fk(real)33 b +Fi(zx)13 b Fe(;)h Fk(real)33 b Fi(zy)11 b Fm(\))83 587 +y Fn(f)166 686 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 +786 y Fk(real)g Fi(eps)h Fm(=)23 b Fi(epsilon)12 b Fm(\()i(\);)166 +911 y Fk(if)41 b Fm(\()p Fi(fabs)13 b Fm(\()p Fi(xy)e +Fm(\))24 b Fe(<)e Fi(eps)12 b Fm(\))42 b Fi(xy)34 b Fm(=)23 +b(0)o(;)166 1010 y Fk(if)41 b Fm(\()p Fi(fabs)13 b Fm(\()p +Fi(xz)h Fm(\))23 b Fe(<)g Fi(eps)11 b Fm(\))42 b Fi(xz)37 +b Fm(=)23 b(0)o(;)166 1110 y Fk(if)41 b Fm(\()p Fi(fabs)13 +b Fm(\()p Fi(yx)h Fm(\))23 b Fe(<)g Fi(eps)12 b Fm(\))41 +b Fi(yx)c Fm(=)23 b(0;)166 1209 y Fk(if)41 b Fm(\()p +Fi(fabs)13 b Fm(\()p Fi(yz)i Fm(\))23 b Fe(<)g Fi(eps)11 +b Fm(\))42 b Fi(yz)c Fm(=)22 b(0;)166 1309 y Fk(if)41 +b Fm(\()p Fi(fabs)13 b Fm(\()p Fi(zx)h Fm(\))23 b Fe(<)g +Fi(eps)11 b Fm(\))42 b Fi(zx)37 b Fm(=)22 b(0;)166 1409 +y Fk(if)41 b Fm(\()p Fi(fabs)13 b Fm(\()p Fi(zy)f Fm(\))23 +b Fe(<)g Fi(eps)11 b Fm(\))42 b Fi(zy)35 b Fm(=)23 b(0)o(;)166 +1508 y Fk(if)41 b Fm(\()p Fi(xy)35 b Fn(\021)23 b Fm(0)18 +b Fn(^)g Fi(xz)37 b Fn(\021)23 b Fm(0)18 b Fn(^)h Fi(yx)37 +b Fn(\021)23 b Fm(0)17 b Fn(^)i Fi(yz)38 b Fn(\021)23 +b Fm(0)18 b Fn(^)g Fi(zx)37 b Fn(\021)23 b Fm(0)18 b +Fn(^)h Fi(zy)34 b Fn(\021)23 b Fm(0\))41 b Fn(f)249 1608 +y Fi(c)l(err)81 b Fn(\034)67 b Ff("WARNING!)p Fj( )p +Ff(In)p Fj( )p Ff(Tran)o(sf)o(o)-6 b(rm::shear\(\):\\n")66 +b Fn(\034)415 1708 y Ff("All)p Fj( )p Ff(arguments)p +Fj( )p Ff(a)o(re)p Fj( )o Ff(0)-6 b(.)p Fj( )p Ff(Returning)p +Fj( )p Ff(ide)o(nt)o(it)g(y)p Fj( )p Ff(transformatio)o(n.")21 +b Fn(\034)i Fi(end)t(l)36 b Fn(\034)23 b Fi(end)t(l)37 +b Fn(\034)23 b Fi(\015ush)10 b Fm(;)249 1807 y Fk(return)33 +b Fe(t)p Fm(;)166 1907 y Fn(g)166 2006 y Fe(t:)p Fi(matrix)14 +b Fm([1][0)o(])24 b(=)e Fi(xy)12 b Fm(;)166 2106 y Fe(t:)p +Fi(matrix)i Fm([2][0)o(])24 b(=)e Fi(xz)14 b Fm(;)166 +2206 y Fe(t:)p Fi(matrix)g Fm([0][1)o(])24 b(=)e Fi(yx)14 +b Fm(;)166 2305 y Fe(t:)p Fi(matrix)g Fm([2][1)o(])24 +b(=)e Fi(yz)15 b Fm(;)166 2405 y Fe(t:)p Fi(matrix)f +Fm([0][2)o(])24 b(=)e Fi(zx)14 b Fm(;)166 2505 y Fe(t:)p +Fi(matrix)g Fm([1][2)o(])24 b(=)e Fi(zy)12 b Fm(;)166 +2604 y(\()p Fn(\003)p Fi(this)f Fm(\))24 b Fn(\003)p +Fm(=)e Fe(t)p Fm(;)166 2704 y Fi(cle)l(an)11 b Fm(\()j(\);)166 +2803 y Fk(return)33 b Fe(t)p Fm(;)83 2903 y Fn(g)0 3102 +y Fk(154.)94 b(Shift.)h Fm(\(T)-7 b(ranslation.\))0 3302 y Fk(155.)94 b(real)32 b(argumen)m(ts.)0 3426 y Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(124)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3526 y Fk(T)-8 @@ -7003,12 +7076,12 @@ Fi(this)d Fm(\))24 b Fn(\003)p Fm(=)e Fe(t)p Fm(;)166 4970 y Fi(cle)l(an)11 b Fm(\()j(\);)166 5070 y Fk(return)33 b Fe(t)p Fm(;)83 5170 y Fn(g)p eop end -%%Page: 44 44 -TeXDict begin 44 43 bop 0 83 a Fm(44)140 b Fk(POINT)24 -b Fl(AR)n(GUMENT)2221 b(3DLDFPR)n(G)142 b Fn(x)p Fm(157)0 -263 y Fk(157.)94 b(P)m(oin)m(t)48 b(argumen)m(t.)96 b -Fm([)p Fh(LDF)25 b(2002.04.24.)p Fm(])75 b(Added)42 b(this)f(function.) -79 b(It)42 b(m)n(ust)g(b)r(e)g(de\014ned)f(in)h Fj(points.web)p +%%Page: 45 45 +TeXDict begin 45 44 bop 0 83 a Fn(x)p Fm(157)140 b Fl(3DLDFPR)n(G)2222 +b Fk(POINT)23 b Fl(AR)n(GUMENT)141 b Fm(45)0 263 y Fk(157.)94 +b(P)m(oin)m(t)48 b(argumen)m(t.)96 b Fm([)p Fh(LDF)25 +b(2002.04.24.)p Fm(])75 b(Added)42 b(this)f(function.)79 +b(It)42 b(m)n(ust)g(b)r(e)g(de\014ned)f(in)h Fj(points.web)p Fm(,)0 363 y(b)r(ecause)27 b Fk(P)m(oin)m(t)33 b Fm(is)28 b(an)f(incomplete)h(t)n(yp)r(e)f(here.)0 487 y Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(ransform)33 b Fm(functions)j @@ -7056,10 +7129,10 @@ b(ransform)33 b Fi(r)l(otate)11 b Fm(\()p Fk(real)32 b Fe(x)q(;)14 b Fk(real)32 b Fe(y)26 b Fm(=)d(0)o Fe(;)14 b Fk(real)32 b Fe(z)27 b Fm(=)22 b(0\);)p eop end -%%Page: 45 45 -TeXDict begin 45 44 bop 0 83 a Fn(x)p Fm(161)140 b Fl(3DLDFPR)n(G)1654 -b(R)n(OT)-6 b(A)g(TION)24 b(AR)n(OUND)e(THE)i(MAIN)f(AXES)141 -b Fm(45)0 263 y Fk(161.)0 388 y Fn(h)14 b Fm(De\014ne)28 +%%Page: 46 46 +TeXDict begin 46 45 bop 0 83 a Fm(46)140 b Fl(R)n(OT)-6 +b(A)g(TION)24 b(AR)n(OUND)f(THE)g(MAIN)g(AXES)1654 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(161)0 263 y Fk(161.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(T)-8 b(ransform)14 b Fm(::)8 b Fi(r)l(otate)j Fm(\()p @@ -7153,11 +7226,11 @@ Fm(\))23 b(?)g Fi(temp1)39 b Fm(:)23 b(0;)166 4796 y Fn(g)83 4896 y(g)166 b Fe(=)p Fn(\003)40 b Fk(if)55 b Fn(\003)p Fe(=)p eop end -%%Page: 46 46 -TeXDict begin 46 45 bop 0 83 a Fm(46)140 b Fl(R)n(OT)-6 -b(A)g(TION)24 b(AR)n(OUND)f(THE)g(MAIN)g(AXES)1654 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(164)0 263 y Fk(164.)94 b Fm(Rotation)27 b(around)g(the)h -(z-axis.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 +%%Page: 47 47 +TeXDict begin 47 46 bop 0 83 a Fn(x)p Fm(164)140 b Fl(3DLDFPR)n(G)1654 +b(R)n(OT)-6 b(A)g(TION)24 b(AR)n(OUND)e(THE)i(MAIN)f(AXES)141 +b Fm(47)0 263 y Fk(164.)94 b Fm(Rotation)27 b(around)g(the)h(z-axis.)0 +388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(if)41 b Fm(\()p Fe(z)27 b Fn(6)p Fm(=)22 b(0\))42 b Fn(f)166 587 y Fe(z)26 b Fn(\003)p Fm(=)d Ff(PI)s Fe(=)p @@ -7201,54 +7274,53 @@ y(166.)94 b(P)m(oin)m(t)32 b(argumen)m(ts.)95 b Fm(De\014ned)29 b(in)f Fj(points.web)23 b Fm(b)r(ecause)k Fk(P)m(oin)m(t)33 b Fm(is)28 b(an)f(incomplete)h(t)n(yp)r(e)f(here.)p 0 -2681 1643 4 v 1738 2714 a Fk(Begin)k(Log)p 2257 2681 -V 83 2854 a Fm([)p Fh(LDF)25 b(2002.4.7.)p Fm(])60 b(Added)29 -b(default)f(v)-5 b(alue)27 b(for)g Fi(angle)39 b Fn(\021)23 -b Fm(180.)83 2954 y([)p Fh(LDF)i(2003.05.02.)p Fm(])67 -b(Changed)34 b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p -2343 2954 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f +2680 1779 4 v 1874 2713 a Fk(Log)p 2122 2680 V 83 2854 +a Fm([)p Fh(LDF)e(2002.4.7.)p Fm(])60 b(Added)29 b(default)f(v)-5 +b(alue)27 b(for)g Fi(angle)39 b Fn(\021)23 b Fm(180.)83 +2953 y([)p Fh(LDF)i(2003.05.02.)p Fm(])67 b(Changed)34 +b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p +2343 2953 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 3053 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 3145 -1678 4 v 1773 3178 a Fk(End)g(Log)p 2222 3145 V 0 3303 -a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(ransform)33 b Fm(functions)j -Fl(124)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3402 y Fk(T)-8 -b(ransform)33 b Fi(r)l(otate)11 b Fm(\()p Fk(P)m(oin)m(t)33 -b Fi(p0)16 b Fe(;)e Fk(P)m(oin)m(t)33 b Fi(p1)16 b Fe(;)e -Fk(const)33 b(real)f Fi(angle)i Fm(=)23 b(180)n(\);)p -eop end -%%Page: 47 47 -TeXDict begin 47 46 bop 0 83 a Fn(x)p Fm(167)140 b Fl(3DLDFPR)n(G)2273 -b Fk(P)-8 b(A)g(TH)24 b Fl(AR)n(GUMENT)141 b Fm(47)0 +3900 4 v 0 3302 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(ransform)33 +b Fm(functions)j Fl(124)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +3401 y Fk(T)-8 b(ransform)33 b Fi(r)l(otate)11 b Fm(\()p +Fk(P)m(oin)m(t)33 b Fi(p0)16 b Fe(;)e Fk(P)m(oin)m(t)33 +b Fi(p1)16 b Fe(;)e Fk(const)33 b(real)f Fi(angle)i Fm(=)23 +b(180)n(\);)p eop end +%%Page: 48 48 +TeXDict begin 48 47 bop 0 83 a Fm(48)140 b Fk(P)-8 b(A)g(TH)24 +b Fl(AR)n(GUMENT)2273 b(3DLDFPR)n(G)142 b Fn(x)p Fm(167)0 263 y Fk(167.)94 b(P)m(ath)44 b(argumen)m(t.)95 b Fm([)p Fh(LDF)25 b(2002.05.03.)p Fm(])70 b(De\014ned)37 b(in)g Fj(paths.web)c Fm(b)r(ecause)k Fk(P)m(ath)42 b Fm(is)37 b(an)f(incomplete)h(t)n(yp)r(e)0 363 y(here.)p 0 438 -1643 4 v 1738 471 a Fk(Begin)31 b(Log)p 2257 438 V 83 -612 a Fm([)p Fh(LDF)25 b(2002.05.03.)p Fm(])61 b(Added)28 -b(this)g(function.)83 711 y([)p Fh(LDF)d(2003.05.02.)p -Fm(])67 b(Changed)34 b(name)f(of)h(this)h(function)f(from)g -Fi(r)l(otate)p 2343 711 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 -b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 +1779 4 v 1874 471 a Fk(Log)p 2122 438 V 83 612 a Fm([)p +Fh(LDF)25 b(2002.05.03.)p Fm(])61 b(Added)28 b(this)g(function.)83 +711 y([)p Fh(LDF)d(2003.05.02.)p Fm(])67 b(Changed)34 +b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p +2343 711 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f +Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 811 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 -b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 903 1678 -4 v 1773 936 a Fk(End)g(Log)p 2222 903 V 0 1060 a Fn(h)14 -b Fm(Declare)27 b Fk(T)-8 b(ransform)33 b Fm(functions)j -Fl(124)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1160 y Fk(T)-8 -b(ransform)33 b Fi(r)l(otate)11 b Fm(\()p Fk(const)32 -b(P)m(ath)i Fm(&)p Fe(p)o(;)14 b Fk(const)33 b(real)f -Fi(angle)i Fm(=)23 b(180)o(\);)0 1359 y Fk(168.)94 b(Alignmen)m(t)37 -b(with)g(an)h(axis.)95 b Fm(De\014ned)33 b(in)g Fj(points.web)p -Fm(,)d(b)r(ecause)i(it)h(uses)f Fk(P)m(oin)m(ts)5 b Fm(,)34 -b(whic)n(h)f(ha)n(v)n(en't)f(b)r(een)0 1459 y(de\014ned)c(y)n(et.)0 -1583 y Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(ransform)33 +b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 903 3900 +4 v 0 1060 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(124)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -1683 y Fk(T)-8 b(ransform)33 b Fi(align)p 724 1683 26 -4 v 32 w(with)p 906 1683 V 31 w(axis)11 b Fm(\()p Fk(P)m(oin)m(t)33 -b Fi(p0)17 b Fe(;)d Fk(P)m(oin)m(t)33 b Fi(p1)16 b Fe(;)e -Fk(c)m(har)34 b Fi(axis)g Fm(=)23 b Ff('z')s Fm(\);)166 -b Fe(=)p Fn(\003)41 b Fm(Default)28 b(is)g(the)g(z-axis.)49 -b Fn(\003)p Fe(=)0 1882 y Fk(169.)94 b(Matrix)32 b(m)m(ultiplication.)0 +1160 y Fk(T)-8 b(ransform)33 b Fi(r)l(otate)11 b Fm(\()p +Fk(const)32 b(P)m(ath)i Fm(&)p Fe(p)o(;)14 b Fk(const)33 +b(real)f Fi(angle)i Fm(=)23 b(180)o(\);)0 1359 y Fk(168.)94 +b(Alignmen)m(t)37 b(with)g(an)h(axis.)95 b Fm(De\014ned)33 +b(in)g Fj(points.web)p Fm(,)d(b)r(ecause)i(it)h(uses)f +Fk(P)m(oin)m(ts)5 b Fm(,)34 b(whic)n(h)f(ha)n(v)n(en't)f(b)r(een)0 +1459 y(de\014ned)c(y)n(et.)0 1583 y Fn(h)14 b Fm(Declare)27 +b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(124)14 b +Fn(i)24 b Fm(+)p Fn(\021)83 1683 y Fk(T)-8 b(ransform)33 +b Fi(align)p 724 1683 26 4 v 32 w(with)p 906 1683 V 31 +w(axis)11 b Fm(\()p Fk(P)m(oin)m(t)33 b Fi(p0)17 b Fe(;)d +Fk(P)m(oin)m(t)33 b Fi(p1)16 b Fe(;)e Fk(c)m(har)34 b +Fi(axis)g Fm(=)23 b Ff('z')s Fm(\);)166 b Fe(=)p Fn(\003)41 +b Fm(Default)28 b(is)g(the)g(z-axis.)49 b Fn(\003)p Fe(=)0 +1882 y Fk(169.)94 b(Matrix)32 b(m)m(ultiplication.)0 2081 y(170.)94 b(With)31 b(assignmen)m(t.)0 2280 y(171.)94 b(real)37 b(argumen)m(t.)95 b Fm([)p Fh(LDF)26 b(2002.11.19.)p Fm(])64 b(This)32 b(function)g(m)n(ultiplies)g(eac)n(h)f(elemen)n(t)h @@ -7257,50 +7329,47 @@ b(This)29 b(mak)n(es)e(it)j(p)r(ossible)f(to)f(c)n(hain)h(in)n(v)n(o)r (cations)e(of)i(this)g(function.)42 b(Not)29 b(curren)n(tly)f(used)0 2480 y(an)n(ywhere,)e(but)i(it)h(ma)n(y)d(turn)i(out)g(to)f(b)r(e)h -(useful)g(for)f(something.)p 0 2579 1643 4 v 1738 2612 -a Fk(Begin)k(Log)p 2257 2579 V 83 2752 a Fm([)p Fh(LDF)25 -b(2002.08.22.)p Fm(])61 b(Added)28 b(this)g(function.)83 -2852 y([)p Fh(LDF)d(2002.11.19.)p Fm(])61 b(Changed)27 -b(return)g(v)-5 b(alue)28 b(from)f Fn(\003)o Fi(this)40 -b Fm(to)27 b Fe(r)s Fm(.)p 0 2944 1678 4 v 1773 2976 -a Fk(End)32 b(Log)p 2222 2944 V 0 3101 a Fn(h)14 b Fm(Declare)27 -b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(124)14 b -Fn(i)24 b Fm(+)p Fn(\021)83 3201 y Fk(real)32 b(op)s(erator)5 -b Fn(\003)p Fm(=)o(\()p Fk(real)33 b Fe(r)s Fm(\);)0 -3400 y Fk(172.)0 3524 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 +(useful)g(for)f(something.)p 0 2578 1779 4 v 1874 2611 +a Fk(Log)p 2122 2578 V 83 2752 a Fm([)p Fh(LDF)e(2002.08.22.)p +Fm(])61 b(Added)28 b(this)g(function.)83 2851 y([)p Fh(LDF)d +(2002.11.19.)p Fm(])61 b(Changed)27 b(return)g(v)-5 b(alue)28 +b(from)f Fn(\003)o Fi(this)40 b Fm(to)27 b Fe(r)s Fm(.)p +0 2943 3900 4 v 0 3100 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 +b(ransform)33 b Fm(functions)j Fl(124)14 b Fn(i)24 b +Fm(+)p Fn(\021)83 3200 y Fk(real)32 b(op)s(erator)5 b +Fn(\003)p Fm(=)o(\()p Fk(real)33 b Fe(r)s Fm(\);)0 3399 +y Fk(172.)0 3524 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b -Fm(+)p Fn(\021)83 3624 y Fk(real)32 b(T)-8 b(ransform)14 +Fm(+)p Fn(\021)83 3623 y Fk(real)32 b(T)-8 b(ransform)14 b Fm(::)9 b Fk(op)s(erator)c Fn(\003)p Fm(=)o(\()p Fk(real)32 -b Fe(r)s Fm(\))83 3724 y Fn(f)166 3823 y Fk(for)h Fm(\()p +b Fe(r)s Fm(\))83 3723 y Fn(f)166 3823 y Fk(for)h Fm(\()p Fk(in)m(t)f Fe(i)23 b Fm(=)g(0)o(;)42 b Fe(i)23 b(<)f Fm(4;)41 b Fe(i)1017 3815 y Fg(+)-8 b(+)1115 3823 y Fm(\))249 -3923 y Fk(for)33 b Fm(\()p Fk(in)m(t)g Fe(j)28 b Fm(=)22 -b(0;)41 b Fe(j)28 b(<)23 b Fm(4)o(;)42 b Fe(j)1131 3915 -y Fg(+)-8 b(+)1229 3923 y Fm(\))42 b Fi(matrix)14 b Fm([)p +3922 y Fk(for)33 b Fm(\()p Fk(in)m(t)g Fe(j)28 b Fm(=)22 +b(0;)41 b Fe(j)28 b(<)23 b Fm(4)o(;)42 b Fe(j)1131 3914 +y Fg(+)-8 b(+)1229 3922 y Fm(\))42 b Fi(matrix)14 b Fm([)p Fe(i)o Fm(][)p Fe(j)5 b Fm(])24 b Fn(\003)p Fm(=)e Fe(r)s -Fm(;)166 4023 y Fi(cle)l(an)11 b Fm(\()j(\);)166 4122 -y Fk(return)33 b Fe(r)s Fm(;)83 4222 y Fn(g)0 4421 y -Fk(173.)94 b(T)-8 b(ransform)33 b(argumen)m(t.)p 0 4520 -1643 4 v 1738 4553 a(Begin)e(Log)p 2257 4520 V 83 4694 -a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])62 b(If)29 b -Fe(t)f Fm(is)h(the)g(iden)n(tit)n(y)f Fk(T)-8 b(ransform)6 -b Fm(,)28 b(it)h(is)g(returned)f(righ)n(t)f(a)n(w)n(a)n(y)-7 -b(.)38 b(If)29 b Fn(\003)o Fi(this)40 b Fm(is,)29 b(it)g(is)f(set)h(to) -f Fe(t)g Fm(using)0 4793 y Fk(op)s(erator)5 b Fm(=)o(\()14 -b(\).)70 b(BUG)39 b(FIX:)g(No)n(w)f Fe(t)g Fm(is)g(alw)n(a)n(ys)f -(returned,)j(instead)e(of)h Fn(\003)o Fi(this)12 b Fm(.)69 -b(This)38 b(mak)n(es)g(it)g(p)r(ossible)g(to)h(c)n(hain)0 -4893 y(expressions)26 b(using)h(this)h(function.)p 0 -4985 1678 4 v 1773 5017 a Fk(End)k(Log)p 2222 4985 V -0 5142 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(ransform)33 -b Fm(functions)j Fl(124)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -5242 y Fk(T)-8 b(ransform)33 b(op)s(erator)5 b Fn(\003)p -Fm(=)o(\()p Fk(const)33 b(T)-8 b(ransform)33 b Fm(&)p -Fe(t)p Fm(\);)p eop end -%%Page: 48 48 -TeXDict begin 48 47 bop 0 83 a Fm(48)140 b Fk(TRANSF)m(ORM)23 -b Fl(AR)n(GUMENT)1906 b(3DLDFPR)n(G)142 b Fn(x)p Fm(174)0 -263 y Fk(174.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 +Fm(;)166 4022 y Fi(cle)l(an)11 b Fm(\()j(\);)166 4121 +y Fk(return)33 b Fe(r)s Fm(;)83 4221 y Fn(g)0 4420 y +Fk(173.)94 b(T)-8 b(ransform)33 b(argumen)m(t.)p 0 4519 +1779 4 v 1874 4552 a(Log)p 2122 4519 V 83 4692 a Fm([)p +Fh(LDF)25 b(2002.11.06.)p Fm(])62 b(If)29 b Fe(t)f Fm(is)h(the)g(iden)n +(tit)n(y)f Fk(T)-8 b(ransform)6 b Fm(,)28 b(it)h(is)g(returned)f(righ)n +(t)f(a)n(w)n(a)n(y)-7 b(.)38 b(If)29 b Fn(\003)o Fi(this)40 +b Fm(is,)29 b(it)g(is)f(set)h(to)f Fe(t)g Fm(using)0 +4792 y Fk(op)s(erator)5 b Fm(=)o(\()14 b(\).)70 b(BUG)39 +b(FIX:)g(No)n(w)f Fe(t)g Fm(is)g(alw)n(a)n(ys)f(returned,)j(instead)e +(of)h Fn(\003)o Fi(this)12 b Fm(.)69 b(This)38 b(mak)n(es)g(it)g(p)r +(ossible)g(to)h(c)n(hain)0 4892 y(expressions)26 b(using)h(this)h +(function.)p 0 4983 3900 4 v 0 5141 a Fn(h)14 b Fm(Declare)27 +b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(124)14 b +Fn(i)24 b Fm(+)p Fn(\021)83 5240 y Fk(T)-8 b(ransform)33 +b(op)s(erator)5 b Fn(\003)p Fm(=)o(\()p Fk(const)33 b(T)-8 +b(ransform)33 b Fm(&)p Fe(t)p Fm(\);)p eop end +%%Page: 49 49 +TeXDict begin 49 48 bop 0 83 a Fn(x)p Fm(174)140 b Fl(3DLDFPR)n(G)1906 +b Fk(TRANSF)m(ORM)23 b Fl(AR)n(GUMENT)141 b Fm(49)0 263 +y Fk(174.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(T)-8 b(ransform)14 b Fm(::)8 b Fk(op)s(erator)d Fn(\003)p @@ -7383,10 +7452,10 @@ b(op)s(erator)5 b Fn(\003)p Fm(\()p Fk(const)32 b(T)-8 b(ransform)33 b Fe(t)p Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 49 49 -TeXDict begin 49 48 bop 0 83 a Fn(x)p Fm(179)140 b Fl(3DLDFPR)n(G)1906 -b Fk(TRANSF)m(ORM)23 b Fl(AR)n(GUMENT)141 b Fm(49)0 263 -y Fk(179.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 +%%Page: 50 50 +TeXDict begin 50 49 bop 0 83 a Fm(50)140 b Fk(TRANSF)m(ORM)23 +b Fl(AR)n(GUMENT)1906 b(3DLDFPR)n(G)142 b Fn(x)p Fm(179)0 +263 y Fk(179.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(T)-8 b(ransform)14 b Fm(::)8 b Fk(op)s(erator)d Fn(\003)p @@ -7414,28 +7483,27 @@ 2006 y(I'v)n(e)f(tak)n(en)g(the)h(algorithm)f(from)g(Sto)r(er,)g (Josef.)36 b Fi(Numerische)31 b(Mathematik)g(1)2549 1976 y Fg(1)2615 2006 y Fm(and)c(adapted)g(it)h(to)g Fh(C)3338 -1998 y Fg(+)-8 b(+)3436 2006 y Fm(.)p 0 2106 1643 4 v -1738 2138 a Fk(Begin)31 b(Log)p 2257 2106 V 83 2279 a -Fm([)p Fh(LDF)25 b(2002.12.01.)p Fm(])66 b(!!)52 b(Changed)32 -b Fi(hi)46 b Fm(from)32 b Fk(real)37 b Fm(to)c Fk(in)m(t)k -Fm(b)r(ecause)32 b(of)g(a)h(w)n(arning,)f(when)h(I)f(tried)h(to)f -(compile)g(under)0 2379 y(GNU/Lin)n(ux.)37 b(I)28 b(think)g -Fi(hi)41 b Fm(can)27 b(b)r(e)h(an)f Fk(in)m(t)5 b Fm(,)28 -b(but)g(test)g(to)g(b)r(e)g(sure!)p 0 2471 1678 4 v 1773 -2503 a Fk(End)k(Log)p 2222 2471 V 0 2628 a Fn(h)14 b -Fm(Declare)27 b Fk(T)-8 b(ransform)33 b Fm(functions)j -Fl(124)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2727 y Fk(T)-8 -b(ransform)33 b Fi(inverse)11 b Fm(\()j(\))28 b Fk(const)5 -b Fm(;)p 0 4003 1200 4 v 4 4065 a Fg(1)83 4095 y Fm(Sto)r(er,)27 -b(Josef.)36 b Fi(Numerische)30 b(Mathematik)h(1)p Fm(.)38 -b(Ac)n(h)n(te,)27 b(neu)h(b)r(earb)r(eitete)f(und)h(erw)n(eiterte)e -(Au\015age.)37 b(Springer-V)-7 b(erlag.)0 4194 y(Berlin)27 -b(1999.)35 b(ISBN)28 b(3-540-66154-9,)22 b(page)27 b(205.)p -eop end -%%Page: 50 50 -TeXDict begin 50 49 bop 0 83 a Fm(50)140 b Fk(CONST)24 -b Fl(VERSION)f(\(NO)h(ASSIGNMENT\))1613 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(182)0 263 y Fk(182.)0 388 y Fn(h)14 b Fm(De\014ne)28 +1998 y Fg(+)-8 b(+)3436 2006 y Fm(.)p 0 2105 1779 4 v +1874 2138 a Fk(Log)p 2122 2105 V 83 2278 a Fm([)p Fh(LDF)25 +b(2002.12.01.)p Fm(])66 b(!!)52 b(Changed)32 b Fi(hi)46 +b Fm(from)32 b Fk(real)37 b Fm(to)c Fk(in)m(t)k Fm(b)r(ecause)32 +b(of)g(a)h(w)n(arning,)f(when)h(I)f(tried)h(to)f(compile)g(under)0 +2378 y(GNU/Lin)n(ux.)37 b(I)28 b(think)g Fi(hi)41 b Fm(can)27 +b(b)r(e)h(an)f Fk(in)m(t)5 b Fm(,)28 b(but)g(test)g(to)g(b)r(e)g(sure!) +p 0 2470 3900 4 v 0 2627 a Fn(h)14 b Fm(Declare)27 b +Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(124)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 2727 y Fk(T)-8 b(ransform)33 b Fi(inverse)11 +b Fm(\()j(\))28 b Fk(const)5 b Fm(;)p 0 4002 1200 4 v +4 4064 a Fg(1)83 4094 y Fm(Sto)r(er,)27 b(Josef.)36 b +Fi(Numerische)30 b(Mathematik)h(1)p Fm(.)38 b(Ac)n(h)n(te,)27 +b(neu)h(b)r(earb)r(eitete)f(und)h(erw)n(eiterte)e(Au\015age.)37 +b(Springer-V)-7 b(erlag.)0 4194 y(Berlin)27 b(1999.)35 +b(ISBN)28 b(3-540-66154-9,)22 b(page)27 b(205.)p eop +end +%%Page: 51 51 +TeXDict begin 51 50 bop 0 83 a Fn(x)p Fm(182)140 b Fl(3DLDFPR)n(G)1612 +b Fk(CONST)24 b Fl(VERSION)f(\(NO)h(ASSIGNMENT\))142 +b Fm(51)0 263 y Fk(182.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(T)-8 b(ransform)14 b Fm(::)8 b Fi(inverse)j Fm(\()k(\))28 @@ -7485,10 +7553,10 @@ Fm(\()p Fe(j)28 b Fm(=)23 b(0)o(;)42 b Fe(j)28 b(<)22 b(n)p Fm(;)42 b Fe(j)993 4016 y Fg(+)-8 b(+)1091 4024 y Fm(\))28 b Fn(f)p eop end -%%Page: 51 51 -TeXDict begin 51 50 bop 0 83 a Fn(x)p Fm(183)140 b Fl(3DLDFPR)n(G)1612 -b Fk(CONST)24 b Fl(VERSION)f(\(NO)h(ASSIGNMENT\))142 -b Fm(51)0 263 y Fk(183.)94 b Fm(Piv)n(ot)27 b(searc)n(h.)0 +%%Page: 52 52 +TeXDict begin 52 51 bop 0 83 a Fm(52)140 b Fk(CONST)24 +b Fl(VERSION)f(\(NO)h(ASSIGNMENT\))1613 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(183)0 263 y Fk(183.)94 b Fm(Piv)n(ot)27 b(searc)n(h.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fi(max)37 b Fm(=)23 b Fi(fabs)12 b Fm(\()p Fe(t:)p @@ -7577,10 +7645,10 @@ Fn(\034)23 b Ff("Finished)p Fj( )p Ff(Transfo)o(rma)-7 b(tion.\\n")24 b Fn(\034)f Fi(\015ush)11 b Fm(;)p eop end -%%Page: 52 52 -TeXDict begin 52 51 bop 0 83 a Fm(52)140 b Fk(CONST)24 -b Fl(VERSION)f(\(NO)h(ASSIGNMENT\))1613 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(186)0 263 y Fk(186.)94 b Fm(Column)28 b(exc)n(hange.)0 +%%Page: 53 53 +TeXDict begin 53 52 bop 0 83 a Fn(x)p Fm(186)140 b Fl(3DLDFPR)n(G)1612 +b Fk(CONST)24 b Fl(VERSION)f(\(NO)h(ASSIGNMENT\))142 +b Fm(53)0 263 y Fk(186.)94 b Fm(Column)28 b(exc)n(hange.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(for)33 b Fm(\()p Fe(i)23 b Fm(=)f(0;)41 b Fe(i)23 @@ -7660,21 +7728,21 @@ b(ariables)34 b Fl(15)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4472 y Fk(T)-8 b(ransform)33 b Fi(user)p 703 4472 26 4 v 30 w(tr)l(ansform)11 b Fm(;)p eop end -%%Page: 53 53 -TeXDict begin 53 52 bop 0 83 a Fn(x)p Fm(190)140 b Fl(3DLDFPR)n(G)2253 -b(GLOBAL)24 b(V)-8 b(ARIABLES)141 b Fm(53)0 263 y Fk(190.)0 -388 y Fn(h)14 b Fm(Declarations)26 b(for)h(the)h(header)f(\014le)36 -b Fl(18)14 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(extern)33 -b(T)-8 b(ransform)33 b Fi(user)p 1003 487 26 4 v 30 w(tr)l(ansform)11 -b Fm(;)0 686 y Fk(191.)94 b(Global)31 b(constan)m(ts.)0 -811 y Fn(h)14 b Fm(Global)27 b(constan)n(ts)34 b Fl(19)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 911 y Fk(extern)33 b(const)f(T)-8 -b(ransform)33 b Ff(INVALID_TRANSFORM)n Fm(\()p Ff(INVALID_REAL)o -Fm(\);)83 1010 y Fk(extern)g(const)f(T)-8 b(ransform)33 -b Ff(IDENTITY_TRANSFOR)o(M)n Fm(;)0 1209 y Fk(192.)0 -1334 y Fn(h)14 b Fm(Declarations)26 b(for)h(the)h(header)f(\014le)36 -b Fl(18)14 b Fn(i)23 b Fm(+)p Fn(\021)83 1434 y Fk(extern)33 -b(const)f(T)-8 b(ransform)33 b Ff(INVALID_TRANSFORM)n +%%Page: 54 54 +TeXDict begin 54 53 bop 0 83 a Fm(54)140 b Fl(GLOBAL)24 +b(V)-8 b(ARIABLES)2253 b(3DLDFPR)n(G)142 b Fn(x)p Fm(190)0 +263 y Fk(190.)0 388 y Fn(h)14 b Fm(Declarations)26 b(for)h(the)h +(header)f(\014le)36 b Fl(18)14 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(extern)33 b(T)-8 b(ransform)33 b Fi(user)p 1003 +487 26 4 v 30 w(tr)l(ansform)11 b Fm(;)0 686 y Fk(191.)94 +b(Global)31 b(constan)m(ts.)0 811 y Fn(h)14 b Fm(Global)27 +b(constan)n(ts)34 b Fl(19)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +911 y Fk(extern)33 b(const)f(T)-8 b(ransform)33 b Ff(INVALID_TRANSFORM) +n Fm(\()p Ff(INVALID_REAL)o Fm(\);)83 1010 y Fk(extern)g(const)f(T)-8 +b(ransform)33 b Ff(IDENTITY_TRANSFOR)o(M)n Fm(;)0 1209 +y Fk(192.)0 1334 y Fn(h)14 b Fm(Declarations)26 b(for)h(the)h(header)f +(\014le)36 b Fl(18)14 b Fn(i)23 b Fm(+)p Fn(\021)83 1434 +y Fk(extern)33 b(const)f(T)-8 b(ransform)33 b Ff(INVALID_TRANSFORM)n Fm(;)83 1533 y Fk(extern)g(const)f(T)-8 b(ransform)33 b Ff(IDENTITY_TRANSFOR)o(M)n Fm(;)0 1733 y Fk(193.)94 b(Putting)32 b(T)-8 b(ransform)32 b(together.)0 1932 @@ -7686,81 +7754,88 @@ b(v)-5 b(ariables)34 b Fl(15)15 b Fn(i)83 2455 y(h)f Fm(Global)27 b(constan)n(ts)34 b Fl(19)15 b Fn(i)83 2554 y(h)f Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j -Fl(125)15 b Fn(i)0 2754 y Fk(195.)94 b Fm(This)28 b(is)f(what's)h -(written)f(to)h Fj(transfor.h)p Fm(.)0 2878 y Fn(h)14 -b Ff(transfor.h)79 b Fl(195)15 b Fn(i)23 b(\021)83 2978 -y(h)14 b Fm(De\014ne)28 b Fk(class)k(T)-8 b(ransform)41 -b Fl(122)15 b Fn(i)83 3077 y(h)f Fm(Declarations)26 b(for)h(the)h -(header)f(\014le)36 b Fl(18)14 b Fn(i)0 3277 y Fk(196.)94 -b(Shap)s(e)i(\()p Fj(shapes.web)p Fk(\).)640 b Fm([)p -Fh(LDF)26 b(2002.10.20.)p Fm(])60 b Fk(Shap)s(e)33 b -Fm(is)27 b(an)g(abstract)g(class.)36 b(This)28 b(means)0 -3376 y(that)j(no)f(ob)5 b(jects)30 b(of)g(t)n(yp)r(e)g -Fk(Shap)s(e)36 b Fm(ma)n(y)29 b(b)r(e)i(declared.)44 -b Fk(Shap)s(e)36 b Fm(is)30 b(used)g(as)g(a)g(base)f(class)h(for)g(all) -g(\\dra)n(w)n(able")d(classes,)0 3476 y(e.g.,)i Fk(P)m(oin)m(t)5 +Fl(125)15 b Fn(i)p eop end +%%Page: 55 55 +TeXDict begin 55 54 bop 0 83 a Fn(x)p Fm(195)140 b Fl(3DLDFPR)n(G)1561 +b(PUTTING)24 b Fk(TRANSF)m(ORM)f Fl(TOGETHER)141 b Fm(55)0 +263 y Fk(195.)94 b Fm(This)28 b(is)f(what's)h(written)f(to)h +Fj(transfor.h)p Fm(.)0 388 y Fn(h)14 b Ff(transfor.h)79 +b Fl(195)15 b Fn(i)23 b(\021)83 487 y(h)14 b Fm(De\014ne)28 +b Fk(class)k(T)-8 b(ransform)41 b Fl(122)15 b Fn(i)83 +587 y(h)f Fm(Declarations)26 b(for)h(the)h(header)f(\014le)36 +b Fl(18)14 b Fn(i)0 786 y Fk(196.)94 b(Shap)s(e)i(\()p +Fj(shapes.web)p Fk(\).)640 b Fm([)p Fh(LDF)26 b(2002.10.20.)p +Fm(])60 b Fk(Shap)s(e)33 b Fm(is)27 b(an)g(abstract)g(class.)36 +b(This)28 b(means)0 886 y(that)j(no)f(ob)5 b(jects)30 +b(of)g(t)n(yp)r(e)g Fk(Shap)s(e)36 b Fm(ma)n(y)29 b(b)r(e)i(declared.) +44 b Fk(Shap)s(e)36 b Fm(is)30 b(used)g(as)g(a)g(base)f(class)h(for)g +(all)g(\\dra)n(w)n(able")d(classes,)0 985 y(e.g.,)i Fk(P)m(oin)m(t)5 b Fm(,)30 b Fk(P)m(ath)6 b Fm(,)30 b(and)f Fk(Do)s(decahedron)5 b Fm(.)41 b(All)30 b(ob)5 b(jects)29 b(that)g(are)f(put)i(on)n(to)e(a)h Fk(Picture)35 b Fm(m)n(ust)29 b(b)r(e)h(either)f Fk(Shap)s(es)0 -3576 y Fm(or)e Fk(Lab)s(els)t Fm(.)p 0 3651 1643 4 v -1738 3684 a Fk(Begin)k(Log)p 2257 3651 V 83 3825 a Fm([)p -Fh(LDF)25 b(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 -b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB) -g(\014les)g(for)f(the)h(distribution)g(of)0 3924 y(3DLDF)28 -b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t) -f(v)n(ersions.)p 0 4016 1678 4 v 1773 4049 a Fk(End)32 -b(Log)p 2222 4016 V 0 4173 a Fn(h)14 b Fm(V)-7 b(ersion)27 +1085 y Fm(or)e Fk(Lab)s(els)t Fm(.)p 0 1161 1779 4 v +1874 1193 a Fk(Log)p 2122 1161 V 83 1334 a Fm([)p Fh(LDF)e(2003.11.12.) +p Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n +(ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g +(of)0 1434 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n +(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)83 1533 y([)p Fh(LDF)e +(2003.12.10.)p Fm(])64 b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden) +n(ti\014ers)h(bac)n(k)f(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h +(3DLDF)i(1.1.4.)43 b(I'v)n(e)0 1633 y(already)24 b(put)j(some)e(of)h +(them)h(bac)n(k)e(in,)i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.) +37 b(Ho)n(w)n(ev)n(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w) +i(in)0 1733 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 +b(.)p 0 1824 3900 4 v 0 1982 a Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 -b Fm(+)p Fn(\021)0 4373 y Fk(197.)94 b(Include)32 b(\014les.)0 -4497 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 -b Fn(i)23 b Fm(+)p Fn(\021)0 4597 y Fm(#)p Fk(include)32 -b Ff("loader.h")0 4696 y Fm(#)p Fk(include)g Ff("pspglb.h")0 -4796 y Fm(#)p Fk(include)g Ff("io.h")0 4896 y Fm(#)p -Fk(include)g Ff("colors.h")0 4995 y Fm(#)p Fk(include)g -Ff("transfor.h")0 5195 y Fk(198.)94 b(Shap)s(e)32 b(class)f -(de\014nition.)0 5394 y(199.)94 b(class)32 b(P)m(oin)m(t)h +b Fm(+)p Fn(\021)83 2081 y Fk(static)33 b(string)g Fi(r)l(cs)p +726 2081 26 4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p +Ff(shapes.web)o(,v)o Fj( )p Ff(1)-6 b(.2)p Fj( )p Ff(2003/12/10)p +Fj( )p Ff(1)o(6:)o(44:)f(36)p Fj( )p Ff(lfinsto1)p Fj( )p +Ff(Exp)p Fj( )p Ff($)o(")n Fm(;)0 2280 y Fk(197.)94 b(Include)32 +b(\014les.)0 2405 y Fn(h)14 b Fm(Include)28 b(\014les)35 +b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 2505 y Fm(#)p +Fk(include)32 b Ff("loader.h")0 2604 y Fm(#)p Fk(include)g +Ff("pspglb.h")0 2704 y Fm(#)p Fk(include)g Ff("io.h")0 +2803 y Fm(#)p Fk(include)g Ff("colors.h")0 2903 y Fm(#)p +Fk(include)g Ff("transfor.h")0 3102 y Fk(198.)94 b(Shap)s(e)32 +b(class)f(de\014nition.)0 3302 y(199.)94 b(class)32 b(P)m(oin)m(t)h Fm(is)28 b(kno)n(wn)f(when)g Fj(shapes.c)e Fm(is)i(compiled,)h(b)r -(ecause)f(it's)h(declared)f(\(but)h(not)g(de\014ned\))g(in)p +(ecause)f(it's)h(declared)f(\(but)h(not)g(de\014ned\))g(in)83 +3401 y Fj(transfor.web)p Fm(,)23 b(whic)n(h)k(is)h(pro)r(cessed)e(b)n +(y)i Ff(cmpl)i Fm(\014rst.)83 3501 y(??)37 b(Apparen)n(tly)-7 +b(,)25 b(b)r(oth)i(the)f(return)f(v)-5 b(alue)25 b(and)h(the)g(argumen) +n(t)f(t)n(yp)r(es)g(of)h(pure)f(virtual)h(functions)g(m)n(ust)f(b)r(e)i +(the)f(same,)0 3601 y(otherwise)h(the)h(deriv)n(ed)e(classes)h(will)h +(cause)e(compiler)h(errors.)35 b(Chec)n(k)27 b(where)g(this)h(is)g +(stated.)p 0 3699 1779 4 v 1874 3732 a Fk(Log)p 2122 +3699 V 83 3872 a Fm([)p Fh(LDF)d(2003.05.16.)p Fm(])61 +b(Added)28 b(declarations)e(of)i Fi(get)p 1670 3872 26 +4 v 30 w(minimum)p 2046 3872 V 31 w(z)14 b Fm(\()g(\))28 +b(and)g Fi(get)p 2497 3872 V 30 w(me)l(an)p 2718 3872 +V 31 w(z)14 b Fm(\()g(\).)p 0 3964 3900 4 v 83 4121 a +Fk(format)65 b Fi(Shap)l(e)80 b(int)0 4246 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Shap)s(e)33 b Fm(class)h Fl(199)15 +b Fn(i)23 b(\021)83 4346 y Fk(class)32 b(Shap)s(e)h Fn(f)0 +4445 y Fk(protected)5 b Fm(:)42 b Fk(static)32 b(const)h(signed)e +(short)h Ff(DRAWDOT)r Fm(;)166 b Fe(=)p Fn(\003)41 b +Fk(const)32 b Fm(v)-5 b(alues)27 b(used)h(for)f(output.)51 +b Fn(\003)p Fe(=)83 4545 y Fk(static)33 b(const)f(signed)f(short)i +Ff(DRAW)r Fm(;)83 4645 y Fk(static)g(const)f(signed)f(short)i +Ff(FILL)r Fm(;)83 4744 y Fk(static)g(const)f(signed)f(short)i +Ff(FILLDRAW)q Fm(;)83 4844 y Fk(static)g(const)f(signed)f(short)i +Ff(UNDRAWDOT)p Fm(;)83 4943 y Fk(static)g(const)f(signed)f(short)i +Ff(UNDRAW)r Fm(;)83 5043 y Fk(static)g(const)f(signed)f(short)i +Ff(UNFILL)r Fm(;)83 5143 y Fk(static)g(const)f(signed)f(short)i +Ff(UNFILLDRAW)p Fm(;)0 5251 y Fl(See)24 b(also)g(section)h(200.)0 +5358 y(This)e(co)r(de)i(is)e(used)h(in)f(sections)i(203)f(and)g(204.)p eop end -%%Page: 54 54 -TeXDict begin 54 53 bop 0 83 a Fm(54)140 b Fk(SHAPE)24 +%%Page: 56 56 +TeXDict begin 56 55 bop 0 83 a Fm(56)140 b Fk(SHAPE)24 b Fl(CLASS)f(DEFINITION)1951 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(199)83 263 y Fj(transfor.web)p Fm(,)23 b(whic)n(h)k(is)h(pro)r -(cessed)e(b)n(y)i Ff(cmpl)i Fm(\014rst.)83 363 y(??)37 -b(Apparen)n(tly)-7 b(,)25 b(b)r(oth)i(the)f(return)f(v)-5 -b(alue)25 b(and)h(the)g(argumen)n(t)f(t)n(yp)r(es)g(of)h(pure)f -(virtual)h(functions)g(m)n(ust)f(b)r(e)i(the)f(same,)0 -462 y(otherwise)h(the)h(deriv)n(ed)e(classes)h(will)h(cause)e(compiler) -h(errors.)35 b(Chec)n(k)27 b(where)g(this)h(is)g(stated.)p -0 562 1643 4 v 1738 594 a Fk(Begin)j(Log)p 2257 562 V -83 735 a Fm([)p Fh(LDF)25 b(2003.05.16.)p Fm(])61 b(Added)28 -b(declarations)e(of)i Fi(get)p 1670 735 26 4 v 30 w(minimum)p -2046 735 V 31 w(z)14 b Fm(\()g(\))28 b(and)g Fi(get)p -2497 735 V 30 w(me)l(an)p 2718 735 V 31 w(z)14 b Fm(\()g(\).)p -0 827 1678 4 v 1773 859 a Fk(End)32 b(Log)p 2222 827 -V 83 984 a(format)65 b Fi(Shap)l(e)80 b(int)0 1108 y -Fn(h)14 b Fm(De\014ne)28 b Fk(Shap)s(e)33 b Fm(class)h -Fl(199)15 b Fn(i)23 b(\021)83 1208 y Fk(class)32 b(Shap)s(e)h -Fn(f)0 1308 y Fk(protected)5 b Fm(:)42 b Fk(static)32 -b(const)h(signed)e(short)h Ff(DRAWDOT)r Fm(;)166 b Fe(=)p -Fn(\003)41 b Fk(const)32 b Fm(v)-5 b(alues)27 b(used)h(for)f(output.)51 -b Fn(\003)p Fe(=)83 1407 y Fk(static)33 b(const)f(signed)f(short)i -Ff(DRAW)r Fm(;)83 1507 y Fk(static)g(const)f(signed)f(short)i -Ff(FILL)r Fm(;)83 1607 y Fk(static)g(const)f(signed)f(short)i -Ff(FILLDRAW)q Fm(;)83 1706 y Fk(static)g(const)f(signed)f(short)i -Ff(UNDRAWDOT)p Fm(;)83 1806 y Fk(static)g(const)f(signed)f(short)i -Ff(UNDRAW)r Fm(;)83 1905 y Fk(static)g(const)f(signed)f(short)i -Ff(UNFILL)r Fm(;)83 2005 y Fk(static)g(const)f(signed)f(short)i -Ff(UNFILLDRAW)p Fm(;)0 2113 y Fl(See)24 b(also)g(section)h(200.)0 -2221 y(This)e(co)r(de)i(is)e(used)h(in)f(sections)i(203)f(and)g(204.)p -eop end -%%Page: 55 55 -TeXDict begin 55 54 bop 0 83 a Fn(x)p Fm(200)140 b Fl(3DLDFPR)n(G)1950 -b Fk(SHAPE)23 b Fl(CLASS)h(DEFINITION)142 b Fm(55)0 263 -y Fk(200.)94 b(Shap)s(e)33 b Fm(function)28 b(declarations.)35 -b(All)28 b Fk(Shap)s(e)k Fm(functions)c(are)f(pure)g(virtual)g -(functions.)83 363 y([)p Fh(LDF)e(2002.10.20.)p Fm(])100 -b(I'v)n(e)67 b(though)n(t)f(ab)r(out)h(getting)f(rid)h(of)f +Fm(200)0 263 y Fk(200.)94 b(Shap)s(e)33 b Fm(function)28 +b(declarations.)35 b(All)28 b Fk(Shap)s(e)k Fm(functions)c(are)f(pure)g +(virtual)g(functions.)83 363 y([)p Fh(LDF)e(2002.10.20.)p +Fm(])100 b(I'v)n(e)67 b(though)n(t)f(ab)r(out)h(getting)f(rid)h(of)f Fi(get)p 2335 363 26 4 v 31 w(c)l(opy)12 b Fm(\()j(\))67 b(a)f(couple)g(of)h(times,)77 b(and)66 b(using)0 462 y Ff(create_new_)p Fn(h)p Fi(typ)l(e)6 b Fn(i)p Fm(\()15 @@ -7873,180 +7948,187 @@ y Fl(This)h(co)r(de)i(is)e(used)h(in)f(section)i(203.)0 5004 y Fk(202.)94 b(Putting)32 b(Shap)s(e)g(together.)p eop end -%%Page: 56 56 -TeXDict begin 56 55 bop 0 83 a Fm(56)140 b Fl(PUTTING)24 -b Fk(SHAPE)g Fl(TOGETHER)1862 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(203)0 263 y Fk(203.)94 b Fm(This)28 b(is)f(what's)h(compiled.)83 +%%Page: 57 57 +TeXDict begin 57 56 bop 0 83 a Fn(x)p Fm(203)140 b Fl(3DLDFPR)n(G)1863 +b(PUTTING)23 b Fk(SHAPE)h Fl(TOGETHER)141 b Fm(57)0 263 +y Fk(203.)94 b Fm(This)28 b(is)f(what's)h(compiled.)83 388 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 487 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er) 35 b Fl(10)15 b Fn(i)83 587 y(h)f Fm(De\014ne)28 b Fk(Shap)s(e)33 b Fm(class)h Fl(199)15 b Fn(i)83 686 y(h)f Fm(De\014ne)28 b Fk(static)33 b(Shap)s(e)f Fm(mem)n(b)r(er)c(v)-5 b(ariables)34 b Fl(201)15 b Fn(i)p eop end -%%Page: 57 57 -TeXDict begin 57 56 bop 0 83 a Fn(x)p Fm(204)140 b Fl(3DLDFPR)n(G)1863 -b(PUTTING)23 b Fk(SHAPE)h Fl(TOGETHER)141 b Fm(57)0 263 -y Fk(204.)94 b Fm(This)28 b(is)f(what's)h(written)f(to)h +%%Page: 58 58 +TeXDict begin 58 57 bop 0 83 a Fm(58)140 b Fl(PUTTING)24 +b Fk(SHAPE)g Fl(TOGETHER)1862 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(204)0 263 y Fk(204.)94 b Fm(This)28 b(is)f(what's)h(written)f(to)h Fj(shapes.h)p Fm(.)0 388 y Fn(h)14 b Ff(shapes.h)80 b Fl(204)15 b Fn(i)23 b(\021)83 487 y(h)14 b Fm(De\014ne)28 b Fk(Shap)s(e)33 b Fm(class)h Fl(199)15 b Fn(i)0 686 y Fk(205.)94 b(Picture)33 b(and)f(Lab)s(el)95 b(\()p -Fj(pictures.web)p Fk(\).)p 0 790 1643 4 v 1738 823 a(Begin)31 -b(Log)p 2257 790 V 83 964 a Fm([)p Fh(LDF)25 b(2003.11.12.)p +Fj(pictures.web)p Fk(\).)p 0 790 1779 4 v 1874 822 a(Log)p +2122 790 V 83 963 a Fm([)p Fh(LDF)25 b(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n (ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g (of)0 1063 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n -(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)p 0 1155 1678 4 -v 1773 1188 a Fk(End)32 b(Log)p 2222 1155 V 0 1312 a -Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 -b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)0 1512 y Fk(206.)94 -b(Include)32 b(\014les.)0 1636 y Fn(h)14 b Fm(Include)28 -b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 -1736 y Fm(#)p Fk(include)32 b Ff("loader.h")0 1835 y -Fm(#)p Fk(include)g Ff("pspglb.h")0 1935 y Fm(#)p Fk(include)g -Ff("io.h")0 2035 y Fm(#)p Fk(include)g Ff("colors.h")0 -2134 y Fm(#)p Fk(include)g Ff("transfor.h")0 2234 y Fm(#)p -Fk(include)g Ff("shapes.h")0 2433 y Fk(207.)94 b(Lab)s(el.)h -Fm([)p Fh(LDF)25 b(2002.10.20.)p Fm(])64 b Fk(Lab)s(els)36 -b Fm(are)29 b(the)j(only)e(ob)5 b(jects,)31 b(other)g(than)f +(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)83 1162 y([)p Fh(LDF)e +(2003.12.10.)p Fm(])64 b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden) +n(ti\014ers)h(bac)n(k)f(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h +(3DLDF)i(1.1.4.)43 b(I'v)n(e)0 1262 y(already)24 b(put)j(some)e(of)h +(them)h(bac)n(k)e(in,)i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.) +37 b(Ho)n(w)n(ev)n(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w) +i(in)0 1361 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 +b(.)p 0 1453 3900 4 v 0 1611 a Fn(h)14 b Fm(V)-7 b(ersion)27 +b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 1710 y Fk(static)33 b(string)g Fi(r)l(cs)p +726 1710 26 4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p +Ff(pictures.w)o(eb)o(,v)-6 b Fj( )p Ff(1.2)p Fj( )p Ff(2003/12/10)o +Fj( )p Ff(1)o(6:1)f(7:06)p Fj( )p Ff(lfinsto1)p Fj( )p +Ff(Exp)o Fj( )p Ff($)o(")n Fm(;)0 1909 y Fk(206.)94 b(Include)32 +b(\014les.)0 2034 y Fn(h)14 b Fm(Include)28 b(\014les)35 +b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 2134 y Fm(#)p +Fk(include)32 b Ff("loader.h")0 2233 y Fm(#)p Fk(include)g +Ff("pspglb.h")0 2333 y Fm(#)p Fk(include)g Ff("io.h")0 +2432 y Fm(#)p Fk(include)g Ff("colors.h")0 2532 y Fm(#)p +Fk(include)g Ff("transfor.h")0 2632 y Fm(#)p Fk(include)g +Ff("shapes.h")0 2831 y Fk(207.)94 b(Lab)s(el.)h Fm([)p +Fh(LDF)25 b(2002.10.20.)p Fm(])64 b Fk(Lab)s(els)36 b +Fm(are)29 b(the)j(only)e(ob)5 b(jects,)31 b(other)g(than)f Fk(Shap)s(es)5 b Fm(,)32 b(that)f(can)f(b)r(e)h(put)h(on)n(to)0 -2533 y Fk(Pictures)5 b Fm(.)36 b(They)25 b(are)g(created)g(b)n(y)g(the) +2931 y Fk(Pictures)5 b Fm(.)36 b(They)25 b(are)g(created)g(b)n(y)g(the) h(functions)f Fi(lab)l(el)14 b Fm(\()g(\))26 b(and)f Fi(dotlab)l(el)15 b Fm(\()f(\),)26 b(whic)n(h)g(are)e(curren)n(tly)g -(de\014ned)i(for)f Fk(P)m(oin)m(ts)0 2632 y Fm(and)i -Fk(P)m(aths)6 b Fm(.)0 2832 y Fk(208.)94 b(Lab)s(el)33 +(de\014ned)i(for)f Fk(P)m(oin)m(ts)0 3030 y Fm(and)i +Fk(P)m(aths)6 b Fm(.)0 3229 y Fk(208.)94 b(Lab)s(el)33 b(class)g(de\014nition.)94 b Fm(A)29 b Fk(Lab)s(el)k Fm(con)n(tains)28 b(a)g(p)r(oin)n(ter)h(to)f(a)h Fk(P)m(oin)m(t)5 b Fm(,)29 b(whic)n(h)g(is)g(its)f(lo)r(cation,)h(a)f -Fk(b)s(o)s(ol)k Fm(to)0 2931 y(indicate)j(whether)f(the)h(lab)r(el)g +Fk(b)s(o)s(ol)k Fm(to)0 3329 y(indicate)j(whether)f(the)h(lab)r(el)g (should)f(ha)n(v)n(e)g(a)g(dot)h(or)e(not,)k(a)d Fk(string)40 b Fm(for)34 b(the)h(text)g(of)g(the)g(lab)r(el)g(and)f(a)g -Fk(string)41 b Fm(for)0 3031 y(p)r(ositioning)30 b(the)h(text)g(with)g +Fk(string)41 b Fm(for)0 3429 y(p)r(ositioning)30 b(the)h(text)g(with)g (resp)r(ect)f(to)g(the)h(lab)r(el.)45 b Fi(pt)e Fm(m)n(ust)30 b(b)r(e)h(a)f(p)r(oin)n(ter,)h(b)r(ecause)f Fk(P)m(oin)m(t)36 -b Fm(is)30 b(an)g(incomplete)h(t)n(yp)r(e)0 3131 y(here.)55 +b Fm(is)30 b(an)g(incomplete)h(t)n(yp)r(e)0 3528 y(here.)55 b Fi(p)l(osition)46 b Fm(can)33 b(b)r(e)i(an)n(y)e(of)h(the)g(strings)f (used)h(in)g(MET)-7 b(AF)n(ONT,)33 b(i.e.,)j Ff("top")r Fm(,)g Ff("bot")r Fm(,)g Ff("lft")r Fm(,)g Ff("rt")r -Fm(,)g Ff("llft")r Fm(,)0 3230 y Ff("ulft")r Fm(,)28 -b Ff("lrt")r Fm(,)g(or)e Ff("urt")s Fm(.)83 3330 y([)p +Fm(,)g Ff("llft")r Fm(,)0 3628 y Ff("ulft")r Fm(,)28 +b Ff("lrt")r Fm(,)g(or)e Ff("urt")s Fm(.)83 3728 y([)p Fh(LDF)f(2002.10.09.)p Fm(])61 b Fk(Lab)s(els)32 b Fm(are)27 b(curren)n(tly)f(only)h(ev)n(er)g(created)g(on)g(the)h(free)f(store.)83 -3454 y Fk(format)65 b Fi(L)l(ab)l(el)82 b(int)0 3579 +3852 y Fk(format)65 b Fi(L)l(ab)l(el)82 b(int)0 3977 y Fn(h)14 b Fm(De\014ne)28 b(classes)34 b Fl(208)15 b -Fn(i)23 b(\021)83 3678 y Fk(class)32 b(Lab)s(el)g Fn(f)166 -3778 y Fk(friend)g(class)g(P)m(oin)m(t)6 b Fm(;)166 3878 -y Fk(friend)32 b(class)g(Picture)6 b Fm(;)166 3977 y -Fk(P)m(oin)m(t)33 b Fn(\003)o Fi(pt)13 b Fm(;)166 4077 -y Fk(b)s(o)s(ol)31 b Fi(dot)12 b Fm(;)166 4177 y Fk(string)33 -b Fi(text)11 b Fm(;)166 4276 y Fk(string)33 b Fi(p)l(osition)12 -b Fm(;)83 4376 y Fk(public)t Fm(:)42 b Fk(static)33 b(b)s(o)s(ol)d -Ff(DO_LABELS)q Fm(;)166 4500 y Fn(h)14 b Fm(Declare)27 +Fn(i)23 b(\021)83 4076 y Fk(class)32 b(Lab)s(el)g Fn(f)166 +4176 y Fk(friend)g(class)g(P)m(oin)m(t)6 b Fm(;)166 4276 +y Fk(friend)32 b(class)g(Picture)6 b Fm(;)166 4375 y +Fk(P)m(oin)m(t)33 b Fn(\003)o Fi(pt)13 b Fm(;)166 4475 +y Fk(b)s(o)s(ol)31 b Fi(dot)12 b Fm(;)166 4574 y Fk(string)33 +b Fi(text)11 b Fm(;)166 4674 y Fk(string)33 b Fi(p)l(osition)12 +b Fm(;)83 4774 y Fk(public)t Fm(:)42 b Fk(static)33 b(b)s(o)s(ol)d +Ff(DO_LABELS)q Fm(;)166 4898 y Fn(h)14 b Fm(Declare)27 b Fk(Lab)s(el)32 b Fm(functions)k Fl(210)15 b Fn(i)83 -4600 y(g)p Fm(;)0 4708 y Fl(See)24 b(also)g(section)h(216.)0 -4816 y(This)e(co)r(de)i(is)e(used)h(in)f(sections)i(260)f(and)g(261.)0 -5015 y Fk(209.)94 b(Static)39 b(data)h(mem)m(b)s(ers.)93 +4998 y(g)p Fm(;)0 5106 y Fl(See)24 b(also)g(section)h(216.)0 +5214 y(This)e(co)r(de)i(is)e(used)h(in)f(sections)i(260)f(and)g(261.)p +eop end +%%Page: 59 59 +TeXDict begin 59 58 bop 0 83 a Fn(x)p Fm(209)140 b Fl(3DLDFPR)n(G)2118 +b(ST)-6 b(A)g(TIC)24 b(D)n(A)-6 b(T)g(A)24 b(MEMBERS)140 +b Fm(59)0 263 y Fk(209.)94 b(Static)39 b(data)h(mem)m(b)s(ers.)93 b Ff(DO_LABELS)35 b Fm(is)e(used)g(for)g(globally)f(enabling)h(or)g -(suppressing)f(putting)i Fk(Lab)s(els)0 5115 y Fm(on)n(to)27 +(suppressing)f(putting)i Fk(Lab)s(els)0 363 y Fm(on)n(to)27 b Fk(Pictures)5 b Fm(:)36 b(If)28 b Ff(DO_LABELS)g Fm(is)g Fi(false)11 b Fm(,)28 b(then)g Fi(lab)l(el)14 b Fm(\()g(\))28 b(and)f Fi(dotlab)l(el)14 b Fm(\()g(\))28 b(ha)n(v)n(e)e(no)i (e\013ect,)g(i.e.,)f(no)g Fk(Lab)s(el)33 b Fm(is)27 b(put)h(on)n(to)0 -5214 y(the)d Fk(Picture)5 b Fm(.)36 b(Note)24 b(that)g +462 y(the)d Fk(Picture)5 b Fm(.)36 b(Note)24 b(that)g Fk(Picture)30 b Fm(has)24 b(a)g Fk(priv)-5 b(ate)29 b -Fm(data)24 b(mem)n(b)r(er)g Fi(do)p 2342 5214 26 4 v -31 w(lab)l(els)12 b Fm(,)25 b(whic)n(h)f(is)h(for)e(enabling)h(or)f -(suppressing)0 5314 y(output)28 b(of)g Fk(Lab)s(els)k +Fm(data)24 b(mem)n(b)r(er)g Fi(do)p 2342 462 26 4 v 31 +w(lab)l(els)12 b Fm(,)25 b(whic)n(h)f(is)h(for)e(enabling)h(or)f +(suppressing)0 562 y(output)28 b(of)g Fk(Lab)s(els)k Fm(for)27 b(a)g(single)g Fk(Picture)33 b Fm(\(see)27 -b(b)r(elo)n(w\).)p eop end -%%Page: 58 58 -TeXDict begin 58 57 bop 0 83 a Fm(58)140 b Fl(ST)-6 b(A)g(TIC)24 -b(D)n(A)-6 b(T)g(A)24 b(MEMBERS)2117 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(209)p 0 205 1643 4 v 1738 238 a Fk(Begin)31 -b(Log)p 2257 205 V 83 378 a Fm([)p Fh(LDF)25 b(2002.10.20.)p -Fm(])61 b(Added)28 b(this)g(section.)37 b Ff(DO_LABELS)28 -b Fm(w)n(as)f(formerly)f(a)h(global)g(v)-5 b(ariable)26 -b(de\014ned)i(in)g Fj(pspglb.web)p Fm(.)p 0 470 1678 -4 v 1773 503 a Fk(End)k(Log)p 2222 470 V 0 627 a Fn(h)14 +b(b)r(elo)n(w\).)p 0 665 1779 4 v 1874 698 a Fk(Log)p +2122 665 V 83 838 a Fm([)p Fh(LDF)e(2002.10.20.)p Fm(])61 +b(Added)28 b(this)g(section.)37 b Ff(DO_LABELS)28 b Fm(w)n(as)f +(formerly)f(a)h(global)g(v)-5 b(ariable)26 b(de\014ned)i(in)g +Fj(pspglb.web)p Fm(.)p 0 930 3900 4 v 0 1087 a Fn(h)14 b Fm(Initialize)28 b Fk(static)k(Lab)s(el)h Fm(data)27 -b(mem)n(b)r(ers)35 b Fl(209)14 b Fn(i)24 b(\021)83 727 +b(mem)n(b)r(ers)35 b Fl(209)14 b Fn(i)24 b(\021)83 1187 y Fk(b)s(o)s(ol)31 b(Lab)s(el)13 b Fm(::)8 b Ff(DO_LABELS)24 -b Fm(=)e Fi(true)10 b Fm(;)0 835 y Fl(This)23 b(co)r(de)i(is)e(used)h -(in)f(section)i(260.)0 1034 y Fk(210.)94 b(Declarations)32 +b Fm(=)e Fi(true)10 b Fm(;)0 1295 y Fl(This)23 b(co)r(de)i(is)e(used)h +(in)f(section)i(260.)0 1494 y Fk(210.)94 b(Declarations)32 b(for)g(Lab)s(el)f(functions.)95 b Fm(These)27 b(m)n(ust)g(b)r(e)h (de\014ned)g(in)f Fj(points.web)p Fm(,)d(b)r(ecause)j(they)g(require)0 -1134 y(op)r(erations)f(on)i Fi(pt)12 b Fm(,)27 b(and)h +1594 y(op)r(erations)f(on)i Fi(pt)12 b Fm(,)27 b(and)h Fk(P)m(oin)m(t)33 b Fm(is)27 b(an)h(incomplete)f(t)n(yp)r(e)h(in)g -(this)g(\014le.)p 0 1233 1643 4 v 1738 1266 a Fk(Begin)j(Log)p -2257 1233 V 83 1406 a Fm([)p Fh(LDF)25 b(2002.10.23.)p -Fm(])61 b(Added)28 b(argumen)n(ts)f Fi(pr)l(oj)45 b Fm(and)27 -b Fi(factor)14 b Fm(.)p 0 1498 1678 4 v 1773 1531 a Fk(End)32 -b(Log)p 2222 1498 V 0 1655 a Fn(h)14 b Fm(Declare)27 -b Fk(Lab)s(el)32 b Fm(functions)k Fl(210)14 b Fn(i)24 -b(\021)83 1755 y Fk(v)m(oid)33 b Fi(output)11 b Fm(\()p -Fk(const)33 b(F)-8 b(o)s(cus)32 b Fm(&)o Fe(f)9 b(;)14 -b Fk(const)32 b(unsigned)f(short)i Fi(pr)l(oj)17 b Fe(;)d -Fk(real)32 b Fi(factor)15 b Fe(;)f Fk(const)32 b(T)-8 -b(ransform)33 b Fm(&)p Fe(t)p Fm(\);)83 1855 y Fk(Lab)s(el)f -Fn(\003)p Fi(get)p 496 1855 26 4 v 30 w(c)l(opy)13 b -Fm(\()h(\))28 b Fk(const)5 b Fm(;)0 1963 y Fl(This)23 -b(co)r(de)i(is)e(used)h(in)f(section)i(208.)0 2162 y -Fk(211.)94 b(namespace)32 b(Pro)5 b(jections.)p 0 2261 -1643 4 v 1738 2294 a(Begin)31 b(Log)p 2257 2261 V 83 -2435 a Fm([)p Fh(LDF)25 b(2003.05.11.)p Fm(])61 b(Added)28 -b Ff(AXON)s Fm(.)p 0 2526 1678 4 v 1773 2559 a Fk(End)k(Log)p -2222 2526 V 0 2684 a Fn(h)14 b Fm(Declare)27 b(namespace)g -Fk(Pro)5 b(jections)40 b Fl(211)14 b Fn(i)24 b(\021)83 -2783 y Fk(namespace)33 b(Pro)5 b(jections)32 b Fn(f)166 -2883 y Fk(extern)h(const)f(unsigned)g(short)g Ff(PERSP)25 -b Fm(=)e(0)o(;)166 2982 y Fk(extern)33 b(const)f(unsigned)g(short)g -Ff(PARALLEL_X_Y)22 b Fm(=)h(1;)166 3082 y Fk(extern)33 +(this)g(\014le.)p 0 1693 1779 4 v 1874 1725 a Fk(Log)p +2122 1693 V 83 1866 a Fm([)p Fh(LDF)d(2002.10.23.)p Fm(])61 +b(Added)28 b(argumen)n(ts)f Fi(pr)l(oj)45 b Fm(and)27 +b Fi(factor)14 b Fm(.)p 0 1958 3900 4 v 0 2115 a Fn(h)g +Fm(Declare)27 b Fk(Lab)s(el)32 b Fm(functions)k Fl(210)14 +b Fn(i)24 b(\021)83 2215 y Fk(v)m(oid)33 b Fi(output)11 +b Fm(\()p Fk(const)33 b(F)-8 b(o)s(cus)32 b Fm(&)o Fe(f)9 +b(;)14 b Fk(const)32 b(unsigned)f(short)i Fi(pr)l(oj)17 +b Fe(;)d Fk(real)32 b Fi(factor)15 b Fe(;)f Fk(const)32 +b(T)-8 b(ransform)33 b Fm(&)p Fe(t)p Fm(\);)83 2314 y +Fk(Lab)s(el)f Fn(\003)p Fi(get)p 496 2314 26 4 v 30 w(c)l(opy)13 +b Fm(\()h(\))28 b Fk(const)5 b Fm(;)0 2422 y Fl(This)23 +b(co)r(de)i(is)e(used)h(in)f(section)i(208.)0 2621 y +Fk(211.)94 b(namespace)32 b(Pro)5 b(jections.)p 0 2720 +1779 4 v 1874 2753 a(Log)p 2122 2720 V 83 2893 a Fm([)p +Fh(LDF)25 b(2003.05.11.)p Fm(])61 b(Added)28 b Ff(AXON)s +Fm(.)p 0 2985 3900 4 v 0 3142 a Fn(h)14 b Fm(Declare)27 +b(namespace)g Fk(Pro)5 b(jections)40 b Fl(211)14 b Fn(i)24 +b(\021)83 3242 y Fk(namespace)33 b(Pro)5 b(jections)32 +b Fn(f)166 3342 y Fk(extern)h(const)f(unsigned)g(short)g +Ff(PERSP)25 b Fm(=)e(0)o(;)166 3441 y Fk(extern)33 b(const)f(unsigned)g +(short)g Ff(PARALLEL_X_Y)22 b Fm(=)h(1;)166 3541 y Fk(extern)33 b(const)f(unsigned)g(short)g Ff(PARALLEL_X_Z)22 b Fm(=)h(2;)166 -3182 y Fk(extern)33 b(const)f(unsigned)g(short)g Ff(PARALLEL_Z_Y)22 -b Fm(=)h(3;)166 3281 y Fk(extern)33 b(const)f(unsigned)g(short)g -Ff(AXON)26 b Fm(=)c(4;)166 3381 y Fk(extern)33 b(const)f(unsigned)g -(short)g Ff(ISO)26 b Fm(=)d(5)o(;)83 3481 y Fn(g)p Fm(;)0 -3589 y Fl(This)g(co)r(de)i(is)e(used)h(in)f(section)i(260.)p +3640 y Fk(extern)33 b(const)f(unsigned)g(short)g Ff(PARALLEL_Z_Y)22 +b Fm(=)h(3;)166 3740 y Fk(extern)33 b(const)f(unsigned)g(short)g +Ff(AXON)26 b Fm(=)c(4;)166 3840 y Fk(extern)33 b(const)f(unsigned)g +(short)g Ff(ISO)26 b Fm(=)d(5)o(;)83 3939 y Fn(g)p Fm(;)0 +4047 y Fl(This)g(co)r(de)i(is)e(used)h(in)f(section)i(260.)p eop end -%%Page: 59 59 -TeXDict begin 59 58 bop 0 83 a Fn(x)p Fm(212)140 b Fl(3DLDFPR)n(G)1604 -b Fk(NAMESP)-8 b(A)m(CE)32 b(PR)m(OJECTIONS)191 b Fm(59)0 -263 y Fk(212.)94 b Fm(External.)0 388 y Fn(h)14 b Fk(extern)33 -b Fm(declaration)26 b(of)i(namespace)e Fk(Pro)5 b(jections)40 -b Fl(212)15 b Fn(i)23 b(\021)83 487 y Fk(namespace)33 -b(Pro)5 b(jections)32 b Fn(f)166 587 y Fk(extern)h(const)f(unsigned)g -(short)g Ff(PERSP)r Fm(;)166 686 y Fk(extern)h(const)f(unsigned)g -(short)g Ff(PARALLEL_X_Y)o Fm(;)166 786 y Fk(extern)h(const)f(unsigned) -g(short)g Ff(PARALLEL_X_Z)o Fm(;)166 886 y Fk(extern)h(const)f -(unsigned)g(short)g Ff(PARALLEL_Z_Y)o Fm(;)166 985 y -Fk(extern)h(const)f(unsigned)g(short)g Ff(AXON)s Fm(;)166 -1085 y Fk(extern)h(const)f(unsigned)g(short)g Ff(ISO)s -Fm(;)83 1185 y Fn(g)p Fm(;)0 1292 y Fl(This)23 b(co)r(de)i(is)e(used)h -(in)f(section)i(261.)0 1492 y Fk(213.)94 b(namespace)39 -b(Sorting.)94 b Fm(This)34 b(namespace)e(con)n(tains)h(constan)n(ts)f -(that)i(are)e(passed)h(to)g Fk(Picture)14 b Fm(::)8 b -Fi(output)k Fm(\()i(\))0 1591 y(for)29 b(determining)g(ho)n(w)f(the)i -Fk(Shap)s(es)k Fm(on)29 b(the)g Fk(Picture)35 b Fm(are)28 -b(sorted)h(in)g(order)f(to)h(determine)h(the)f(order)f(in)i(whic)n(h)f -(they)0 1691 y(are)e(output.)p 0 1790 1643 4 v 1738 1823 -a Fk(Begin)k(Log)p 2257 1790 V 83 1964 a Fm([)p Fh(LDF)25 -b(2003.05.16.)p Fm(])61 b(Added)28 b(this)g(namespace.)p -0 2055 1678 4 v 1773 2088 a Fk(End)k(Log)p 2222 2055 -V 0 2213 a Fn(h)14 b Fm(Declare)27 b(namespace)g Fk(Sorting)40 +%%Page: 60 60 +TeXDict begin 60 59 bop 0 83 a Fm(60)140 b Fk(NAMESP)-8 +b(A)m(CE)32 b(PR)m(OJECTIONS)1470 b(3DLDFPR)m(G)192 b +Fn(x)p Fm(212)0 263 y Fk(212.)94 b Fm(External.)0 388 +y Fn(h)14 b Fk(extern)33 b Fm(declaration)26 b(of)i(namespace)e +Fk(Pro)5 b(jections)40 b Fl(212)15 b Fn(i)23 b(\021)83 +487 y Fk(namespace)33 b(Pro)5 b(jections)32 b Fn(f)166 +587 y Fk(extern)h(const)f(unsigned)g(short)g Ff(PERSP)r +Fm(;)166 686 y Fk(extern)h(const)f(unsigned)g(short)g +Ff(PARALLEL_X_Y)o Fm(;)166 786 y Fk(extern)h(const)f(unsigned)g(short)g +Ff(PARALLEL_X_Z)o Fm(;)166 886 y Fk(extern)h(const)f(unsigned)g(short)g +Ff(PARALLEL_Z_Y)o Fm(;)166 985 y Fk(extern)h(const)f(unsigned)g(short)g +Ff(AXON)s Fm(;)166 1085 y Fk(extern)h(const)f(unsigned)g(short)g +Ff(ISO)s Fm(;)83 1185 y Fn(g)p Fm(;)0 1292 y Fl(This)23 +b(co)r(de)i(is)e(used)h(in)f(section)i(261.)0 1492 y +Fk(213.)94 b(namespace)39 b(Sorting.)94 b Fm(This)34 +b(namespace)e(con)n(tains)h(constan)n(ts)f(that)i(are)e(passed)h(to)g +Fk(Picture)14 b Fm(::)8 b Fi(output)k Fm(\()i(\))0 1591 +y(for)29 b(determining)g(ho)n(w)f(the)i Fk(Shap)s(es)k +Fm(on)29 b(the)g Fk(Picture)35 b Fm(are)28 b(sorted)h(in)g(order)f(to)h +(determine)h(the)f(order)f(in)i(whic)n(h)f(they)0 1691 +y(are)e(output.)p 0 1790 1779 4 v 1874 1822 a Fk(Log)p +2122 1790 V 83 1963 a Fm([)p Fh(LDF)e(2003.05.16.)p Fm(])61 +b(Added)28 b(this)g(namespace.)p 0 2055 3900 4 v 0 2212 +a Fn(h)14 b Fm(Declare)27 b(namespace)g Fk(Sorting)40 b Fl(213)15 b Fn(i)24 b(\021)83 2312 y Fk(namespace)33 -b(Sorting)g Fn(f)166 2412 y Fk(extern)g(const)f(unsigned)g(short)g -Ff(NO_SORT)24 b Fm(=)f(0;)166 2512 y Fk(extern)33 b(const)f(unsigned)g -(short)g Ff(MAX_Z)25 b Fm(=)e(1)o(;)166 2611 y Fk(extern)33 +b(Sorting)g Fn(f)166 2411 y Fk(extern)g(const)f(unsigned)g(short)g +Ff(NO_SORT)24 b Fm(=)f(0;)166 2511 y Fk(extern)33 b(const)f(unsigned)g +(short)g Ff(MAX_Z)25 b Fm(=)e(1)o(;)166 2610 y Fk(extern)33 b(const)f(unsigned)g(short)g Ff(MIN_Z)25 b Fm(=)e(2)o(;)166 -2711 y Fk(extern)33 b(const)f(unsigned)g(short)g Ff(MEAN_Z)25 +2710 y Fk(extern)33 b(const)f(unsigned)g(short)g Ff(MEAN_Z)25 b Fm(=)e(3)o(;)83 2810 y Fn(g)p Fm(;)0 2918 y Fl(This)g(co)r(de)i(is)e (used)h(in)f(section)i(260.)p eop end -%%Page: 60 60 -TeXDict begin 60 59 bop 0 83 a Fm(60)140 b Fk(NAMESP)-8 -b(A)m(CE)32 b(SOR)-8 b(TING)1718 b(3DLDFPR)m(G)192 b -Fn(x)p Fm(214)0 263 y Fk(214.)94 b Fm(External.)0 388 -y Fn(h)14 b Fk(extern)33 b Fm(declaration)26 b(of)i(namespace)e -Fk(Sorting)41 b Fl(214)15 b Fn(i)23 b(\021)83 487 y Fk(namespace)33 +%%Page: 61 61 +TeXDict begin 61 60 bop 0 83 a Fn(x)p Fm(214)140 b Fl(3DLDFPR)n(G)1853 +b Fk(NAMESP)-8 b(A)m(CE)31 b(SOR)-8 b(TING)191 b Fm(61)0 +263 y Fk(214.)94 b Fm(External.)0 388 y Fn(h)14 b Fk(extern)33 +b Fm(declaration)26 b(of)i(namespace)e Fk(Sorting)41 +b Fl(214)15 b Fn(i)23 b(\021)83 487 y Fk(namespace)33 b(Sorting)g Fn(f)166 587 y Fk(extern)g(const)f(unsigned)g(short)g Ff(NO_SORT)q Fm(;)166 686 y Fk(extern)h(const)f(unsigned)g(short)g Ff(MAX_Z)r Fm(;)166 786 y Fk(extern)h(const)f(unsigned)g(short)g @@ -8099,22 +8181,22 @@ (248,)g(250,)g(253,)g(254,)g(255,)g(and)g(256.)0 4099 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(216.)p eop end -%%Page: 61 61 -TeXDict begin 61 60 bop 0 83 a Fn(x)p Fm(219)140 b Fl(3DLDFPR)n(G)2070 -b(DEF)-8 b(A)n(UL)i(T)23 b(CONSTR)n(UCTOR)141 b Fm(61)0 -263 y Fk(219.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 -b Fm(functions)j Fl(219)14 b Fn(i)24 b(\021)83 487 y -Fk(Picture)14 b Fm(::)8 b Fk(Picture)d Fm(\()14 b(\))83 -587 y(:)37 b Fi(do)p 232 587 26 4 v 31 w(lab)l(els)12 -b Fm(\()p Fi(true)f Fm(\))27 b Fn(f)14 b(g)0 695 y Fl(See)26 -b(also)e(sections)i(226,)f(228,)h(232,)f(236,)h(239,)f(242,)g(245,)h -(247,)f(249,)h(251,)f(373,)h(396,)f(543,)g(544,)h(545,)f(546,)h(548,)f -(549,)h(550,)f(551,)g(552,)h(553,)166 778 y(and)e(554.)0 -886 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(260)f(and)g(589.)0 -1085 y Fk(220.)94 b(Cop)m(y)40 b(constructor.)96 b Fm(!!)56 -b(POR)-7 b(TING.)34 b([)p Fh(LDF)26 b(2002.12.05.)p Fm(])67 -b(Mo)n(v)n(ed)33 b(to)h Fj(points.web)c Fm(b)r(ecause)j(I'v)n(e)h(mo)n -(v)n(ed)0 1185 y Fk(Picture)14 b Fm(::)8 b Fk(op)s(erator)d +%%Page: 62 62 +TeXDict begin 62 61 bop 0 83 a Fm(62)140 b Fl(DEF)-8 +b(A)n(UL)i(T)24 b(CONSTR)n(UCTOR)2069 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(219)0 263 y Fk(219.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Picture)33 b Fm(functions)j Fl(219)14 b Fn(i)24 +b(\021)83 487 y Fk(Picture)14 b Fm(::)8 b Fk(Picture)d +Fm(\()14 b(\))83 587 y(:)37 b Fi(do)p 232 587 26 4 v +31 w(lab)l(els)12 b Fm(\()p Fi(true)f Fm(\))27 b Fn(f)14 +b(g)0 695 y Fl(See)26 b(also)e(sections)i(226,)f(228,)h(232,)f(236,)h +(239,)f(242,)g(245,)h(247,)f(249,)h(251,)f(373,)h(396,)f(543,)g(544,)h +(545,)f(546,)h(548,)f(549,)h(550,)f(551,)g(552,)h(553,)166 +778 y(and)e(554.)0 886 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i +(260)f(and)g(589.)0 1085 y Fk(220.)94 b(Cop)m(y)40 b(constructor.)96 +b Fm(!!)56 b(POR)-7 b(TING.)34 b([)p Fh(LDF)26 b(2002.12.05.)p +Fm(])67 b(Mo)n(v)n(ed)33 b(to)h Fj(points.web)c Fm(b)r(ecause)j(I'v)n +(e)h(mo)n(v)n(ed)0 1185 y Fk(Picture)14 b Fm(::)8 b Fk(op)s(erator)d Fm(=)o(\()14 b(\))33 b(to)e Fj(points.web)p Fm(,)e(so)i(the)h(latter)f (is)h(unde\014ned)g(in)g(this)g(\014le.)50 b(I'v)n(e)31 b(had)g(to)h(do)f(these)h(things)0 1284 y(b)r(ecause)27 @@ -8163,35 +8245,33 @@ (it)i(done)g(automatically)-7 b(.)39 b(If)30 b(it)0 3426 y(turns)d(out)h(to)g(b)r(e)g(useful,)g(I)f(can)g(add)h(a)f Fk(const)33 b Fm(v)n(ersion)26 b(of)h(this)h(function.)p -0 3525 1643 4 v 1738 3558 a Fk(Begin)j(Log)p 2257 3525 -V 83 3699 a Fm([)p Fh(LDF)25 b(2002.04.17.)p Fm(])61 -b(Added)28 b(this)g(declaration.)p 0 3791 1678 4 v 1773 -3823 a Fk(End)k(Log)p 2222 3791 V 0 3948 a Fn(h)14 b -Fm(Declare)27 b Fk(Picture)33 b Fm(functions)i Fl(218)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 4047 y Fk(v)m(oid)33 b(op)s(erator)t +0 3525 1779 4 v 1874 3557 a Fk(Log)p 2122 3525 V 83 3698 +a Fm([)p Fh(LDF)d(2002.04.17.)p Fm(])61 b(Added)28 b(this)g +(declaration.)p 0 3790 3900 4 v 0 3947 a Fn(h)14 b Fm(Declare)27 +b Fk(Picture)33 b Fm(functions)i Fl(218)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 4047 y Fk(v)m(oid)33 b(op)s(erator)t Fm(+=\()p Fk(const)f(Picture)h Fm(&)p Fe(p)p Fm(\);)0 -4247 y Fk(225.)94 b(Add)32 b(Shap)s(e.)0 4371 y Fn(h)14 +4246 y Fk(225.)94 b(Add)32 b(Shap)s(e.)0 4371 y Fn(h)14 b Fm(Declare)27 b Fk(Picture)33 b Fm(functions)i Fl(218)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 4471 y Fk(v)m(oid)33 b(op)s(erator)t +b Fn(i)23 b Fm(+)p Fn(\021)83 4470 y Fk(v)m(oid)33 b(op)s(erator)t Fm(+=\()p Fk(Shap)s(e)f Fn(\003)p Fe(s)p Fm(\);)p eop end -%%Page: 62 62 -TeXDict begin 62 61 bop 0 83 a Fm(62)140 b Fl(ADD)23 -b Fk(SHAPE)2475 b Fl(3DLDFPR)n(G)142 b Fn(x)p Fm(226)0 -263 y Fk(226.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 -b Fm(functions)j Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -487 y Fk(v)m(oid)33 b(Picture)13 b Fm(::)8 b Fk(op)s(erator)d -Fm(+=\()p Fk(Shap)s(e)32 b Fn(\003)p Fe(s)p Fm(\))83 -587 y Fn(f)166 686 y Fi(shap)l(es)12 b Fe(:)p Fi(push)p -597 686 26 4 v 31 w(b)l(ack)i Fm(\()p Fe(s)p Fm(\);)83 -786 y Fn(g)0 985 y Fk(227.)94 b(Add)32 b(Lab)s(el.)0 -1110 y Fn(h)14 b Fm(Declare)27 b Fk(Picture)33 b Fm(functions)i -Fl(218)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1209 y Fk(v)m(oid)33 -b(op)s(erator)t Fm(+=\()p Fk(Lab)s(el)f Fn(\003)p Fi(lab)l(el)13 -b Fm(\);)0 1409 y Fk(228.)0 1533 y Fn(h)h Fm(De\014ne)28 -b Fk(Picture)33 b Fm(functions)j Fl(219)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 1633 y Fk(v)m(oid)33 b(Picture)13 -b Fm(::)8 b Fk(op)s(erator)d Fm(+=\()p Fk(Lab)s(el)32 +%%Page: 63 63 +TeXDict begin 63 62 bop 0 83 a Fn(x)p Fm(226)140 b Fl(3DLDFPR)n(G)2475 +b(ADD)23 b Fk(SHAPE)141 b Fm(63)0 263 y Fk(226.)0 388 +y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j +Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 +b(Picture)13 b Fm(::)8 b Fk(op)s(erator)d Fm(+=\()p Fk(Shap)s(e)32 +b Fn(\003)p Fe(s)p Fm(\))83 587 y Fn(f)166 686 y Fi(shap)l(es)12 +b Fe(:)p Fi(push)p 597 686 26 4 v 31 w(b)l(ack)i Fm(\()p +Fe(s)p Fm(\);)83 786 y Fn(g)0 985 y Fk(227.)94 b(Add)32 +b(Lab)s(el.)0 1110 y Fn(h)14 b Fm(Declare)27 b Fk(Picture)33 +b Fm(functions)i Fl(218)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1209 y Fk(v)m(oid)33 b(op)s(erator)t Fm(+=\()p Fk(Lab)s(el)f +Fn(\003)p Fi(lab)l(el)13 b Fm(\);)0 1409 y Fk(228.)0 +1533 y Fn(h)h Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j +Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1633 y Fk(v)m(oid)33 +b(Picture)13 b Fm(::)8 b Fk(op)s(erator)d Fm(+=\()p Fk(Lab)s(el)32 b Fn(\003)p Fi(lab)l(el)13 b Fm(\))83 1733 y Fn(f)166 1832 y Fi(lab)l(els)f Fe(:)p Fi(push)p 559 1832 V 31 w(b)l(ack)i Fm(\()p Fi(lab)l(el)g Fm(\);)83 1932 y Fn(g)0 @@ -8207,41 +8287,41 @@ b Fm(\()i(\))83 2654 y Fn(f)166 2754 y Fi(do)p 255 2754 V 31 w(lab)l(els)36 b Fm(=)22 b Fi(false)12 b Fm(;)83 2853 y Fn(g)0 3053 y Fk(230.)94 b(Unsuppress)32 b(Lab)s(els.)p -0 3152 1643 4 v 1738 3184 a(Begin)f(Log)p 2257 3152 V -83 3325 a Fm([)p Fh(LDF)25 b(2002.12.20.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 3417 1678 4 v 1773 3450 a Fk(End)k(Log)p -2222 3417 V 0 3574 a Fn(h)14 b Fm(Declare)27 b Fk(Picture)33 +0 3151 1779 4 v 1874 3184 a(Log)p 2122 3151 V 83 3324 +a Fm([)p Fh(LDF)25 b(2002.12.20.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 3416 3900 4 v 0 3574 a Fn(h)14 +b Fm(Declare)27 b Fk(Picture)33 b Fm(functions)i Fl(218)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3673 y Fk(inline)31 b(v)m(oid)h +Fi(unsuppr)l(ess)p 949 3673 26 4 v 30 w(lab)l(els)12 +b Fm(\()i(\))83 3773 y Fn(f)166 3872 y Fi(do)p 255 3872 +V 31 w(lab)l(els)36 b Fm(=)22 b Fi(true)10 b Fm(;)83 +3972 y Fn(g)0 4171 y Fk(231.)94 b(Kill)30 b(Lab)s(els.)p +0 4247 1779 4 v 1874 4280 a(Log)p 2122 4247 V 83 4420 +a Fm([)p Fh(LDF)25 b(2003.05.07.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 4512 3900 4 v 0 4669 a Fn(h)14 +b Fm(Declare)27 b Fk(Picture)33 b Fm(functions)i Fl(218)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 4769 y Fk(v)m(oid)33 b +Fi(kil)t(l)p 405 4769 26 4 v 31 w(lab)l(els)12 b Fm(\()j(\);)p +eop end +%%Page: 64 64 +TeXDict begin 64 63 bop 0 83 a Fm(64)140 b Fl(KILL)24 +b Fk(LABELS)2425 b Fl(3DLDFPR)n(G)142 b Fn(x)p Fm(232)0 +263 y Fk(232.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 +b Fm(functions)j Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +487 y Fk(v)m(oid)33 b(Picture)13 b Fm(::)8 b Fi(kil)t(l)p +779 487 26 4 v 32 w(lab)l(els)k Fm(\()i(\))83 587 y Fn(f)166 +686 y Fi(lab)l(els)e Fe(:)p Fi(cle)l(ar)i Fm(\()g(\);)83 +786 y Fn(g)0 985 y Fk(233.)94 b(T)-8 b(ransformations.)95 +b Fm(T)-7 b(ransformations)38 b(for)h Fk(Pictures)45 +b Fm(are)38 b(sa)n(v)n(ed)h(up,)k(and)c(then)i(p)r(erformed)e(when)h +(the)0 1085 y Fk(Picture)33 b Fm(is)27 b(output.)0 1284 +y Fk(234.)94 b(A\016ne)32 b(transformations.)0 1483 y(235.)94 +b(Scale.)0 1608 y Fn(h)14 b Fm(Declare)27 b Fk(Picture)33 b Fm(functions)i Fl(218)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3674 y Fk(inline)31 b(v)m(oid)h Fi(unsuppr)l(ess)p 949 -3674 26 4 v 30 w(lab)l(els)12 b Fm(\()i(\))83 3773 y -Fn(f)166 3873 y Fi(do)p 255 3873 V 31 w(lab)l(els)36 -b Fm(=)22 b Fi(true)10 b Fm(;)83 3973 y Fn(g)0 4172 y -Fk(231.)94 b(Kill)30 b(Lab)s(els.)p 0 4248 1643 4 v 1738 -4280 a(Begin)h(Log)p 2257 4248 V 83 4421 a Fm([)p Fh(LDF)25 -b(2003.05.07.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 4513 1678 4 v 1773 4546 a Fk(End)k(Log)p 2222 4513 -V 0 4670 a Fn(h)14 b Fm(Declare)27 b Fk(Picture)33 b -Fm(functions)i Fl(218)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4770 y Fk(v)m(oid)33 b Fi(kil)t(l)p 405 4770 26 4 v 31 -w(lab)l(els)12 b Fm(\()j(\);)p eop end -%%Page: 63 63 -TeXDict begin 63 62 bop 0 83 a Fn(x)p Fm(232)140 b Fl(3DLDFPR)n(G)2424 -b(KILL)24 b Fk(LABELS)142 b Fm(63)0 263 y Fk(232.)0 388 -y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j -Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 -b(Picture)13 b Fm(::)8 b Fi(kil)t(l)p 779 487 26 4 v -32 w(lab)l(els)k Fm(\()i(\))83 587 y Fn(f)166 686 y Fi(lab)l(els)e -Fe(:)p Fi(cle)l(ar)i Fm(\()g(\);)83 786 y Fn(g)0 985 -y Fk(233.)94 b(T)-8 b(ransformations.)95 b Fm(T)-7 b(ransformations)38 -b(for)h Fk(Pictures)45 b Fm(are)38 b(sa)n(v)n(ed)h(up,)k(and)c(then)i -(p)r(erformed)e(when)h(the)0 1085 y Fk(Picture)33 b Fm(is)27 -b(output.)0 1284 y Fk(234.)94 b(A\016ne)32 b(transformations.)0 -1483 y(235.)94 b(Scale.)0 1608 y Fn(h)14 b Fm(Declare)27 -b Fk(Picture)33 b Fm(functions)i Fl(218)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 1708 y Fk(T)-8 b(ransform)33 b Fi(sc)l(ale)11 -b Fm(\()p Fk(real)33 b Fe(x)q(;)14 b Fk(real)32 b Fe(y)26 -b Fm(=)c(1)p Fe(;)14 b Fk(real)32 b Fe(z)26 b Fm(=)d(1\);)0 -1907 y Fk(236.)0 2031 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 +1708 y Fk(T)-8 b(ransform)33 b Fi(sc)l(ale)11 b Fm(\()p +Fk(real)33 b Fe(x)q(;)14 b Fk(real)32 b Fe(y)26 b Fm(=)c(1)p +Fe(;)14 b Fk(real)32 b Fe(z)26 b Fm(=)d(1\);)0 1907 y +Fk(236.)0 2031 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2131 y Fk(T)-8 b(ransform)33 b(Picture)14 b Fm(::)8 b Fi(sc)l(ale)j Fm(\()p Fk(real)33 b Fe(x)q(;)14 b Fk(real)32 @@ -8287,10 +8367,10 @@ Fk(const)32 b(real)h Fe(x;)14 b Fk(const)33 b(real)f Fe(y)26 b Fm(=)c(0)p Fe(;)14 b Fk(const)32 b(real)h Fe(z)26 b Fm(=)d(0)o(\);)p eop end -%%Page: 64 64 -TeXDict begin 64 63 bop 0 83 a Fm(64)140 b Fl(R)n(OT)-6 -b(A)g(TION)24 b(AR)n(OUND)f(THE)g(MAIN)g(AXES)1654 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(242)0 263 y Fk(242.)0 388 y Fn(h)14 b Fm(De\014ne)28 +%%Page: 65 65 +TeXDict begin 65 64 bop 0 83 a Fn(x)p Fm(242)140 b Fl(3DLDFPR)n(G)1654 +b(R)n(OT)-6 b(A)g(TION)24 b(AR)n(OUND)e(THE)i(MAIN)f(AXES)141 +b Fm(65)0 263 y Fk(242.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(Picture)14 b Fm(::)8 b Fi(r)l(otate)j Fm(\()p Fk(const)32 b(real)h @@ -8303,58 +8383,55 @@ Fj(points.web)p Fm(,)0 1085 y(b)r(ecause)g(it)h(has)f Fk(P)m(oin)m(t)33 b Fm(argumen)n(ts,)26 b(and)i Fk(P)m(oin)m(t)33 b Fm(is)27 b(an)g(incomplete)h(t)n(yp)r(e)g(in)g(this)g(\014le.)p -0 1184 1643 4 v 1738 1217 a Fk(Begin)j(Log)p 2257 1184 -V 83 1358 a Fm([)p Fh(LDF)25 b(2002.05.03.)p Fm(])61 -b(Added)28 b(this)g(declaration.)83 1457 y([)p Fh(LDF)d(2003.05.02.)p -Fm(])67 b(Changed)34 b(name)f(of)h(this)h(function)f(from)g -Fi(r)l(otate)p 2343 1457 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 -b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 -1557 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 -b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 1649 -1678 4 v 1773 1681 a Fk(End)g(Log)p 2222 1649 V 0 1806 -a Fn(h)14 b Fm(Declare)27 b Fk(Picture)33 b Fm(functions)i -Fl(218)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1905 y Fk(T)-8 -b(ransform)33 b Fi(r)l(otate)11 b Fm(\()p Fk(const)32 -b(P)m(oin)m(t)h Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)32 -b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fe(;)e Fk(const)33 -b(real)f Fi(angle)i Fm(=)23 b(180)n(\);)166 2005 y Fe(=)p -Fn(\003)41 b Fm(Remem)n(b)r(er)27 b(to)h(add)f(shear!)50 +0 1184 1779 4 v 1874 1216 a Fk(Log)p 2122 1184 V 83 1357 +a Fm([)p Fh(LDF)d(2002.05.03.)p Fm(])61 b(Added)28 b(this)g +(declaration.)83 1456 y([)p Fh(LDF)d(2003.05.02.)p Fm(])67 +b(Changed)34 b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p +2343 1456 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f +Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 +1556 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 +b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 1648 +3900 4 v 0 1805 a Fn(h)14 b Fm(Declare)27 b Fk(Picture)33 +b Fm(functions)i Fl(218)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1905 y Fk(T)-8 b(ransform)33 b Fi(r)l(otate)11 b Fm(\()p +Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p0)16 b Fe(;)e +Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fe(;)e +Fk(const)33 b(real)f Fi(angle)i Fm(=)23 b(180)n(\);)166 +2004 y Fe(=)p Fn(\003)41 b Fm(Remem)n(b)r(er)27 b(to)h(add)f(shear!)50 b Fn(\003)p Fe(=)0 2204 y Fk(244.)94 b(Set)32 b(transform.)p -0 2280 1643 4 v 1738 2313 a(Begin)f(Log)p 2257 2280 V -83 2453 a Fm([)p Fh(LDF)25 b(2003.01.17.)p Fm(])61 b(Made)27 +0 2279 1779 4 v 1874 2312 a(Log)p 2122 2279 V 83 2453 +a Fm([)p Fh(LDF)25 b(2003.01.17.)p Fm(])61 b(Made)27 b(non-inline)h(and)f(c)n(hanged)g Fe(t)h Fm(from)f(plain)g Fk(T)-8 b(ransform)33 b Fm(to)28 b Fk(const)k(T)-8 b(ransform)34 -b Fm(&)o(.)p 0 2545 1678 4 v 1773 2578 a Fk(End)e(Log)p -2222 2545 V 0 2702 a Fn(h)14 b Fm(Declare)27 b Fk(Picture)33 -b Fm(functions)i Fl(218)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2802 y Fk(T)-8 b(ransform)33 b Fi(set)p 651 2802 26 4 -v 30 w(tr)l(ansform)11 b Fm(\()p Fk(const)33 b(T)-8 b(ransform)33 -b Fm(&)p Fe(t)p Fm(\);)0 3001 y Fk(245.)0 3126 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j Fl(219)14 -b Fn(i)24 b Fm(+)p Fn(\021)83 3226 y Fk(T)-8 b(ransform)33 -b(Picture)14 b Fm(::)8 b Fi(set)p 1026 3226 V 30 w(tr)l(ansform)j -Fm(\()p Fk(const)33 b(T)-8 b(ransform)33 b Fm(&)p Fe(t)p -Fm(\))83 3325 y Fn(f)166 3425 y Fi(tr)l(ansform)h Fm(=)23 -b Fe(t)p Fm(;)166 3524 y Fk(return)33 b Fe(t)p Fm(;)83 -3624 y Fn(g)0 3823 y Fk(246.)94 b(Multiplying)30 b(transform.)p -0 3923 1643 4 v 1738 3955 a(Begin)h(Log)p 2257 3923 V -83 4096 a Fm([)p Fh(LDF)25 b(2003.01.17.)p Fm(])61 b(Changed)27 -b Fe(t)h Fm(from)f(plain)h Fk(T)-8 b(ransform)33 b Fm(to)27 -b Fk(const)33 b(T)-8 b(ransform)33 b Fm(&)o(.)p 0 4188 -1678 4 v 1773 4220 a Fk(End)f(Log)p 2222 4188 V 0 4345 -a Fn(h)14 b Fm(Declare)27 b Fk(Picture)33 b Fm(functions)i -Fl(218)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4445 y Fk(T)-8 -b(ransform)33 b(op)s(erator)5 b Fn(\003)p Fm(=)o(\()p -Fk(const)33 b(T)-8 b(ransform)33 b Fm(&)p Fe(t)p Fm(\);)p -eop end -%%Page: 65 65 -TeXDict begin 65 64 bop 0 83 a Fn(x)p Fm(247)140 b Fl(3DLDFPR)n(G)1829 -b(MUL)-6 b(TIPL)g(YING)24 b Fk(TRANSF)m(ORM)141 b Fm(65)0 -263 y Fk(247.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 +b Fm(&)o(.)p 0 2545 3900 4 v 0 2702 a Fn(h)14 b Fm(Declare)27 +b Fk(Picture)33 b Fm(functions)i Fl(218)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 2801 y Fk(T)-8 b(ransform)33 b Fi(set)p +651 2801 26 4 v 30 w(tr)l(ansform)11 b Fm(\()p Fk(const)33 +b(T)-8 b(ransform)33 b Fm(&)p Fe(t)p Fm(\);)0 3001 y +Fk(245.)0 3125 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -487 y Fk(T)-8 b(ransform)33 b(Picture)14 b Fm(::)8 b -Fk(op)s(erator)d Fn(\003)p Fm(=)o(\()p Fk(const)33 b(T)-8 -b(ransform)33 b Fm(&)p Fe(t)p Fm(\))83 587 y Fn(f)166 +3225 y Fk(T)-8 b(ransform)33 b(Picture)14 b Fm(::)8 b +Fi(set)p 1026 3225 V 30 w(tr)l(ansform)j Fm(\()p Fk(const)33 +b(T)-8 b(ransform)33 b Fm(&)p Fe(t)p Fm(\))83 3324 y +Fn(f)166 3424 y Fi(tr)l(ansform)h Fm(=)23 b Fe(t)p Fm(;)166 +3524 y Fk(return)33 b Fe(t)p Fm(;)83 3623 y Fn(g)0 3823 +y Fk(246.)94 b(Multiplying)30 b(transform.)p 0 3921 1779 +4 v 1874 3954 a(Log)p 2122 3921 V 83 4094 a Fm([)p Fh(LDF)25 +b(2003.01.17.)p Fm(])61 b(Changed)27 b Fe(t)h Fm(from)f(plain)h +Fk(T)-8 b(ransform)33 b Fm(to)27 b Fk(const)33 b(T)-8 +b(ransform)33 b Fm(&)o(.)p 0 4186 3900 4 v 0 4344 a Fn(h)14 +b Fm(Declare)27 b Fk(Picture)33 b Fm(functions)i Fl(218)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 4443 y Fk(T)-8 b(ransform)33 +b(op)s(erator)5 b Fn(\003)p Fm(=)o(\()p Fk(const)33 b(T)-8 +b(ransform)33 b Fm(&)p Fe(t)p Fm(\);)p eop end +%%Page: 66 66 +TeXDict begin 66 65 bop 0 83 a Fm(66)140 b Fl(MUL)-6 +b(TIPL)g(YING)24 b Fk(TRANSF)m(ORM)1829 b Fl(3DLDFPR)n(G)142 +b Fn(x)p Fm(247)0 263 y Fk(247.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Picture)33 b Fm(functions)j Fl(219)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(Picture)14 +b Fm(::)8 b Fk(op)s(erator)d Fn(\003)p Fm(=)o(\()p Fk(const)33 +b(T)-8 b(ransform)33 b Fm(&)p Fe(t)p Fm(\))83 587 y Fn(f)166 686 y Fi(tr)l(ansform)h Fn(\003)p Fm(=)22 b Fe(t)p Fm(;)166 786 y Fk(return)33 b Fe(t)p Fm(;)83 886 y Fn(g)0 1085 y Fk(248.)94 b(Sho)m(w.)0 1209 y Fn(h)14 b Fm(Declare)27 @@ -8404,33 +8481,32 @@ Fi(show)p 469 3551 V 31 w(tr)l(ansform)11 b Fm(\()p Fk(string)33 b Fi(text)h Fm(=)23 b Ff("Transform)p Fj( )p Ff(from)p Fj( )o Ff(Pic)o(t)-6 b(ure:")r Fm(\);)p eop end -%%Page: 66 66 -TeXDict begin 66 65 bop 0 83 a Fm(66)140 b Fl(SHO)n(W)24 -b Fk(TRANSF)m(ORM)2116 b Fl(3DLDFPR)n(G)142 b Fn(x)p -Fm(251)0 263 y Fk(251.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Picture)33 b Fm(functions)j Fl(219)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(Picture)13 -b Fm(::)8 b Fi(show)p 843 487 26 4 v 32 w(tr)l(ansform)j -Fm(\()p Fk(string)33 b Fi(text)11 b Fm(\))83 587 y Fn(f)166 -686 y Fi(tr)l(ansform)g Fe(:)p Fi(show)j Fm(\()p Fi(text)d -Fm(\);)83 786 y Fn(g)0 985 y Fk(252.)94 b(Output.)h Fm([)p -Fh(LDF)26 b(2002.09.18.)p Fm(])62 b(Added)29 b(the)g(optional)g -Fk(real)k Fm(argumen)n(ts)28 b Fi(min)p 2825 985 V 30 -w(x)p 2894 985 V 30 w(pr)l(oj)18 b Fm(,)29 b Fi(max)p -3283 985 V 30 w(x)p 3352 985 V 31 w(pr)l(oj)17 b Fm(,)29 -b(etc.)41 b(The)0 1085 y(purp)r(ose)c(of)g(these)g(is)g(to)g(suppress)f -(output)i(of)f Fk(Shap)s(es)k Fm(whose)c Fi(pr)l(oje)l(ctive)p -2513 1085 V 32 w(extr)l(emes)47 b Fm(fall)37 b(outside)g(of)g(these)h -(limits,)0 1185 y(whereb)n(y)26 b(the)h(\\z")f(v)-5 b(alues)27 -b(are)f(not)h(curren)n(tly)f(c)n(hec)n(k)n(ed.)35 b(They)27 -b(are)f(not)h(set)g(for)f(a)h(particular)f Fk(F)-8 b(o)s(cus)31 -b Fm(or)26 b Fk(Picture)5 b Fm(,)27 b(but)0 1284 y(for)j(a)h -(particular)f(in)n(v)n(o)r(cation)f(of)i Fi(output)11 -b Fm(\()j(\).)48 b(I)31 b(b)r(eliev)n(e)f(the)i(default)f(v)-5 -b(alues)31 b(are)f(su\016cien)n(tly)h(generous,)f(but)h(they)g(can)0 -1384 y(alw)n(a)n(ys)c(b)r(e)i(c)n(hanged)f(if)h(it)h(turns)e(out)h -(that)g(they're)g(not.)41 b(Alternativ)n(ely)-7 b(,)28 -b(I)h(could)g(store)f(them)h(in)g(the)h Fk(Picture)k +%%Page: 67 67 +TeXDict begin 67 66 bop 0 83 a Fn(x)p Fm(251)140 b Fl(3DLDFPR)n(G)2117 +b(SHO)n(W)23 b Fk(TRANSF)m(ORM)141 b Fm(67)0 263 y Fk(251.)0 +388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j +Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 +b(Picture)13 b Fm(::)8 b Fi(show)p 843 487 26 4 v 32 +w(tr)l(ansform)j Fm(\()p Fk(string)33 b Fi(text)11 b +Fm(\))83 587 y Fn(f)166 686 y Fi(tr)l(ansform)g Fe(:)p +Fi(show)j Fm(\()p Fi(text)d Fm(\);)83 786 y Fn(g)0 985 +y Fk(252.)94 b(Output.)h Fm([)p Fh(LDF)26 b(2002.09.18.)p +Fm(])62 b(Added)29 b(the)g(optional)g Fk(real)k Fm(argumen)n(ts)28 +b Fi(min)p 2825 985 V 30 w(x)p 2894 985 V 30 w(pr)l(oj)18 +b Fm(,)29 b Fi(max)p 3283 985 V 30 w(x)p 3352 985 V 31 +w(pr)l(oj)17 b Fm(,)29 b(etc.)41 b(The)0 1085 y(purp)r(ose)c(of)g +(these)g(is)g(to)g(suppress)f(output)i(of)f Fk(Shap)s(es)k +Fm(whose)c Fi(pr)l(oje)l(ctive)p 2513 1085 V 32 w(extr)l(emes)47 +b Fm(fall)37 b(outside)g(of)g(these)h(limits,)0 1185 +y(whereb)n(y)26 b(the)h(\\z")f(v)-5 b(alues)27 b(are)f(not)h(curren)n +(tly)f(c)n(hec)n(k)n(ed.)35 b(They)27 b(are)f(not)h(set)g(for)f(a)h +(particular)f Fk(F)-8 b(o)s(cus)31 b Fm(or)26 b Fk(Picture)5 +b Fm(,)27 b(but)0 1284 y(for)j(a)h(particular)f(in)n(v)n(o)r(cation)f +(of)i Fi(output)11 b Fm(\()j(\).)48 b(I)31 b(b)r(eliev)n(e)f(the)i +(default)f(v)-5 b(alues)31 b(are)f(su\016cien)n(tly)h(generous,)f(but)h +(they)g(can)0 1384 y(alw)n(a)n(ys)c(b)r(e)i(c)n(hanged)f(if)h(it)h +(turns)e(out)h(that)g(they're)g(not.)41 b(Alternativ)n(ely)-7 +b(,)28 b(I)h(could)g(store)f(them)h(in)g(the)h Fk(Picture)k Fm(or)28 b(the)0 1483 y Fk(F)-8 b(o)s(cus)t Fm(,)28 b(if)g(that)g (turns)g(out)f(b)r(e)h(more)f(con)n(v)n(enien)n(t.)36 b(They)27 b(are)g(c)n(hec)n(k)n(ed)f(in)i Fk(Picture)14 @@ -8503,233 +8579,238 @@ b(Picture)g Fi(curr)l(ent)p 990 5020 V 29 w(pictur)l(e)11 b Fm(;)0 5219 y Fk(259.)94 b(Putting)32 b(Picture)g(and)h(Lab)s(el)e (together.)p eop end -%%Page: 67 67 -TeXDict begin 67 66 bop 0 83 a Fn(x)p Fm(260)140 b Fl(3DLDFPR)n(G)1222 -b(PUTTING)23 b Fk(PICTURE)i Fl(AND)e Fk(LABEL)h Fl(TOGETHER)141 -b Fm(67)0 263 y Fk(260.)94 b Fm(This)28 b(is)f(what's)h(compiled.)83 -388 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 -b Fn(i)83 487 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er) -35 b Fl(10)15 b Fn(i)83 587 y(h)f Fm(Declare)27 b(namespace)g -Fk(Pro)5 b(jections)40 b Fl(211)14 b Fn(i)83 686 y(h)g -Fm(Declare)27 b(namespace)g Fk(Sorting)41 b Fl(213)14 -b Fn(i)83 786 y(h)g Fm(De\014ne)28 b(classes)34 b Fl(208)15 -b Fn(i)83 886 y(h)f Fm(Initialize)28 b Fk(static)k(Lab)s(el)h -Fm(data)27 b(mem)n(b)r(ers)35 b Fl(209)14 b Fn(i)83 985 -y(h)g Fm(Global)27 b(v)-5 b(ariables)34 b Fl(15)15 b -Fn(i)83 1085 y(h)f Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j -Fl(219)14 b Fn(i)p eop end %%Page: 68 68 TeXDict begin 68 67 bop 0 83 a Fm(68)140 b Fl(PUTTING)24 b Fk(PICTURE)g Fl(AND)f Fk(LABEL)i Fl(TOGETHER)1221 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(261)0 263 y Fk(261.)94 b Fm(This)28 b(is)f(what's)h -(written)f(to)h Fj(pictures.h)p Fm(.)0 388 y Fn(h)14 -b Ff(pictures.h)79 b Fl(261)15 b Fn(i)23 b(\021)83 487 -y(h)14 b Fk(extern)33 b Fm(declaration)26 b(of)i(namespace)e -Fk(Pro)5 b(jections)40 b Fl(212)15 b Fn(i)83 587 y(h)f -Fk(extern)33 b Fm(declaration)26 b(of)i(namespace)e Fk(Sorting)41 -b Fl(214)15 b Fn(i)83 686 y(h)f Fm(De\014ne)28 b(classes)34 -b Fl(208)15 b Fn(i)83 786 y(h)f Fm(Declarations)26 b(for)h(the)h -(header)f(\014le)36 b Fl(18)14 b Fn(i)0 985 y Fk(262.)94 -b(P)m(oin)m(t)i(\()p Fj(points.web)p Fk(\).)83 1085 y -Fm([)p Fh(LDF)25 b(2002.10.20.)p Fm(])62 b Fk(P)m(oin)m(t)33 -b Fm(is)27 b(the)i(most)f(basic)f(dra)n(w)n(able)f(\(not)i -(\014llable!\))38 b(t)n(yp)r(e.)g(All)29 b(of)f(the)g(other)f -Fk(Shap)s(es)33 b Fm(con)n(tain)0 1185 y Fk(P)m(oin)m(ts)45 -b Fm(and)40 b(are)g(ultimately)g(de\014ned)h(b)n(y)f(their)g -Fk(P)m(oin)m(ts)45 b Fm(and)c(the)f(relationships)f(among)h(them.)75 -b(It)41 b(is)f(therefore)0 1284 y(understandable)28 b(that)h -Fj(points.web)c Fm(is)j(b)n(y)h(far)f(the)h(largest)f(of)g(the)i -(source)d(\014les)i(of)g(3DLDF)g(and)f(that)h Fk(P)m(oin)m(t)34 +b Fn(x)p Fm(260)0 263 y Fk(260.)94 b Fm(This)28 b(is)f(what's)h +(compiled.)83 388 y Fn(h)14 b Fm(Include)28 b(\014les)35 +b Fl(11)15 b Fn(i)83 487 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden) +n(ti\014er)35 b Fl(10)15 b Fn(i)83 587 y(h)f Fm(Declare)27 +b(namespace)g Fk(Pro)5 b(jections)40 b Fl(211)14 b Fn(i)83 +686 y(h)g Fm(Declare)27 b(namespace)g Fk(Sorting)41 b +Fl(213)14 b Fn(i)83 786 y(h)g Fm(De\014ne)28 b(classes)34 +b Fl(208)15 b Fn(i)83 886 y(h)f Fm(Initialize)28 b Fk(static)k(Lab)s +(el)h Fm(data)27 b(mem)n(b)r(ers)35 b Fl(209)14 b Fn(i)83 +985 y(h)g Fm(Global)27 b(v)-5 b(ariables)34 b Fl(15)15 +b Fn(i)83 1085 y(h)f Fm(De\014ne)28 b Fk(Picture)33 b +Fm(functions)j Fl(219)14 b Fn(i)p eop end +%%Page: 69 69 +TeXDict begin 69 68 bop 0 83 a Fn(x)p Fm(261)140 b Fl(3DLDFPR)n(G)1222 +b(PUTTING)23 b Fk(PICTURE)i Fl(AND)e Fk(LABEL)h Fl(TOGETHER)141 +b Fm(69)0 263 y Fk(261.)94 b Fm(This)28 b(is)f(what's)h(written)f(to)h +Fj(pictures.h)p Fm(.)0 388 y Fn(h)14 b Ff(pictures.h)79 +b Fl(261)15 b Fn(i)23 b(\021)83 487 y(h)14 b Fk(extern)33 +b Fm(declaration)26 b(of)i(namespace)e Fk(Pro)5 b(jections)40 +b Fl(212)15 b Fn(i)83 587 y(h)f Fk(extern)33 b Fm(declaration)26 +b(of)i(namespace)e Fk(Sorting)41 b Fl(214)15 b Fn(i)83 +686 y(h)f Fm(De\014ne)28 b(classes)34 b Fl(208)15 b Fn(i)83 +786 y(h)f Fm(Declarations)26 b(for)h(the)h(header)f(\014le)36 +b Fl(18)14 b Fn(i)0 985 y Fk(262.)94 b(P)m(oin)m(t)i(\()p +Fj(points.web)p Fk(\).)83 1085 y Fm([)p Fh(LDF)25 b(2002.10.20.)p +Fm(])62 b Fk(P)m(oin)m(t)33 b Fm(is)27 b(the)i(most)f(basic)f(dra)n(w)n +(able)f(\(not)i(\014llable!\))38 b(t)n(yp)r(e.)g(All)29 +b(of)f(the)g(other)f Fk(Shap)s(es)33 b Fm(con)n(tain)0 +1185 y Fk(P)m(oin)m(ts)45 b Fm(and)40 b(are)g(ultimately)g(de\014ned)h +(b)n(y)f(their)g Fk(P)m(oin)m(ts)45 b Fm(and)c(the)f(relationships)f +(among)h(them.)75 b(It)41 b(is)f(therefore)0 1284 y(understandable)28 +b(that)h Fj(points.web)c Fm(is)j(b)n(y)h(far)f(the)h(largest)f(of)g +(the)i(source)d(\014les)i(of)g(3DLDF)g(and)f(that)h Fk(P)m(oin)m(t)34 b Fm(has)29 b(the)0 1384 y(most)f(functions)g(of)g(an)n(y)f(class)g(in) h(3DLDF.)g(Man)n(y)g(of)f(the)i(functions)f(in)g(the)g(other)g(classes) e(do)i(little)g(more)f(than)h(apply)0 1483 y(the)g Fk(P)m(oin)m(t)33 b Fm(v)n(ersion)26 b(of)h(the)h(function)h(to)e(their)h -Fk(P)m(oin)m(ts)t Fm(.)p 0 1559 1643 4 v 1738 1592 a -Fk(Begin)j(Log)p 2257 1559 V 83 1733 a Fm([)p Fh(LDF)25 -b(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n -(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h -(distribution)g(of)0 1832 y(3DLDF)28 b(1.1.)36 b(They're)27 -b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)p -0 1924 1678 4 v 1773 1957 a Fk(End)32 b(Log)p 2222 1924 -V 0 2081 a Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n -(ti\014er)35 b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)0 -2280 y Fk(263.)94 b(Include)32 b(\014les.)0 2405 y Fn(h)14 -b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p -Fn(\021)0 2505 y Fm(#)p Fk(include)32 b Ff("loader.h")0 -2604 y Fm(#)p Fk(include)g Ff("pspglb.h")0 2704 y Fm(#)p -Fk(include)g Ff("io.h")0 2803 y Fm(#)p Fk(include)g Ff("colors.h")0 -2903 y Fm(#)p Fk(include)g Ff("transfor.h")0 3003 y Fm(#)p -Fk(include)g Ff("shapes.h")0 3102 y Fm(#)p Fk(include)g -Ff("pictures.h")0 3302 y Fk(264.)94 b(P)m(oin)m(t)32 -b(class)g(de\014nition.)94 b Fm([)p Fh(LDF)25 b(2002.10.20.)p -Fm(])0 3401 y Fn(\017)41 b Fi(world)p 283 3401 26 4 v -32 w(c)l(o)l(or)l(dinates)f Fm(con)n(tains)26 b(the)i(co)r(ordinates)e -(of)i(the)g Fk(P)m(oin)m(t)33 b Fm(in)28 b(the)g(global)e(co)r -(ordinate)g(system.)0 3501 y Fn(\017)41 b Fi(user)p 240 -3501 V 30 w(c)l(o)l(or)l(dinates)f Fm(and)27 b Fi(view)p -1028 3501 V 32 w(c)l(o)l(or)l(dinates)40 b Fm(are)26 -b(not)i(curren)n(tly)f(used.)0 3601 y Fn(\017)41 b Fi(user)p -240 3601 V 30 w(c)l(o)l(or)l(dinates)c Fm(is)25 b(in)n(tended)h(for)e -(use)h(with)h(a)e(user-de\014ned)g(co)r(ordinate)g(system.)36 -b(F)-7 b(or)24 b(example,)i(it)f(ma)n(y)f(b)r(e)i(con)n(v)n(e-)83 -3700 y(nien)n(t)h(to)g(de\014ne)g(a)g(co)r(ordinate)e(system)i(based)g -(on)f(a)h(plane)f(de\014ned)i(b)n(y)e(an)h(ob)5 b(ject)27 -b(in)g(a)g(dra)n(wing.)35 b(The)27 b(user-de\014ned)83 -3800 y(co)r(ordinate)f(system)g(will)h(b)r(e)g(de\014ned)g(in)g(terms)g +Fk(P)m(oin)m(ts)t Fm(.)p 0 1559 1779 4 v 1874 1592 a +Fk(Log)p 2122 1559 V 83 1733 a Fm([)p Fh(LDF)d(2003.11.12.)p +Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n +(ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g +(of)0 1832 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n +(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)83 1932 y([)p Fh(LDF)e +(2003.12.10.)p Fm(])64 b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden) +n(ti\014ers)h(bac)n(k)f(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h +(3DLDF)i(1.1.4.)43 b(I'v)n(e)0 2031 y(already)24 b(put)j(some)e(of)h +(them)h(bac)n(k)e(in,)i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.) +37 b(Ho)n(w)n(ev)n(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w) +i(in)0 2131 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 +b(.)p 0 2223 3900 4 v 0 2380 a Fn(h)14 b Fm(V)-7 b(ersion)27 +b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 2480 y Fk(static)33 b(string)g Fi(r)l(cs)p +726 2480 26 4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p +Ff(points.web)o(,v)o Fj( )p Ff(1)-6 b(.3)p Fj( )p Ff(2003/12/10)p +Fj( )p Ff(1)o(6:)o(21:)f(48)p Fj( )p Ff(lfinsto1)p Fj( )p +Ff(Exp)p Fj( )p Ff($)o(")n Fm(;)0 2679 y Fk(263.)94 b(Include)32 +b(\014les.)0 2803 y Fn(h)14 b Fm(Include)28 b(\014les)35 +b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 2903 y Fm(#)p +Fk(include)32 b Ff("loader.h")0 3003 y Fm(#)p Fk(include)g +Ff("pspglb.h")0 3102 y Fm(#)p Fk(include)g Ff("io.h")0 +3202 y Fm(#)p Fk(include)g Ff("colors.h")0 3302 y Fm(#)p +Fk(include)g Ff("transfor.h")0 3401 y Fm(#)p Fk(include)g +Ff("shapes.h")0 3501 y Fm(#)p Fk(include)g Ff("pictures.h")0 +3700 y Fk(264.)94 b(P)m(oin)m(t)32 b(class)g(de\014nition.)94 +b Fm([)p Fh(LDF)25 b(2002.10.20.)p Fm(])0 3800 y Fn(\017)41 +b Fi(world)p 283 3800 V 32 w(c)l(o)l(or)l(dinates)f Fm(con)n(tains)26 +b(the)i(co)r(ordinates)e(of)i(the)g Fk(P)m(oin)m(t)33 +b Fm(in)28 b(the)g(global)e(co)r(ordinate)g(system.)0 +3899 y Fn(\017)41 b Fi(user)p 240 3899 V 30 w(c)l(o)l(or)l(dinates)f +Fm(and)27 b Fi(view)p 1028 3899 V 32 w(c)l(o)l(or)l(dinates)40 +b Fm(are)26 b(not)i(curren)n(tly)f(used.)0 3999 y Fn(\017)41 +b Fi(user)p 240 3999 V 30 w(c)l(o)l(or)l(dinates)c Fm(is)25 +b(in)n(tended)h(for)e(use)h(with)h(a)e(user-de\014ned)g(co)r(ordinate)g +(system.)36 b(F)-7 b(or)24 b(example,)i(it)f(ma)n(y)f(b)r(e)i(con)n(v)n +(e-)83 4099 y(nien)n(t)h(to)g(de\014ne)g(a)g(co)r(ordinate)e(system)i +(based)g(on)f(a)h(plane)f(de\014ned)i(b)n(y)e(an)h(ob)5 +b(ject)27 b(in)g(a)g(dra)n(wing.)35 b(The)27 b(user-de\014ned)83 +4198 y(co)r(ordinate)f(system)g(will)h(b)r(e)g(de\014ned)g(in)g(terms)g (of)f(the)h(global)f(co)r(ordinate)g(system)g(and)h(the)g -Fi(world)p 3309 3800 V 32 w(c)l(o)l(or)l(dinates)38 b -Fm(can)83 3899 y(b)r(e)28 b(deriv)n(ed)f(from)g(the)h -Fi(user)p 983 3899 V 30 w(c)l(o)l(or)l(dinates)40 b Fm(b)n(y)27 -b(using)h(the)g(appropriate)d(transformation.)0 3999 -y Fn(\017)41 b Fi(pr)l(oje)l(ctive)p 429 3999 V 32 w(c)l(o)l(or)l +Fi(world)p 3309 4198 V 32 w(c)l(o)l(or)l(dinates)38 b +Fm(can)83 4298 y(b)r(e)28 b(deriv)n(ed)f(from)g(the)h +Fi(user)p 983 4298 V 30 w(c)l(o)l(or)l(dinates)40 b Fm(b)n(y)27 +b(using)h(the)g(appropriate)d(transformation.)0 4398 +y Fn(\017)41 b Fi(pr)l(oje)l(ctive)p 429 4398 V 32 w(c)l(o)l(or)l (dinates)34 b Fm(is)22 b(used)g(for)g(pro)5 b(jecting)20 b(the)j(three-dimensional)e Fk(P)m(oin)m(ts)26 b Fm(on)n(to)c(t)n(w)n -(o-dimensions)e(for)h(output.)83 4099 y(Curren)n(tly)-7 +(o-dimensions)e(for)h(output.)83 4497 y(Curren)n(tly)-7 b(,)32 b(the)g(only)g(pro)5 b(jection)31 b(routines)g(are)f(for)i(p)r (ersp)r(ectiv)n(e)f(and)h(parallel)f(pro)5 b(jection.)48 -b(I)32 b(plan)g(to)f(add)h(others)83 4198 y(\(axionometric,)26 -b(etc.\))38 b(so)r(on.)0 4298 y Fn(\017)j Fi(tr)l(ansform)34 +b(I)32 b(plan)g(to)f(add)h(others)83 4597 y(\(axionometric,)26 +b(etc.\))38 b(so)r(on.)0 4696 y Fn(\017)j Fi(tr)l(ansform)34 b Fm(is)23 b(used)g(for)f(storing)g(the)h(transformations)e(that)j(are) e(applied)h(the)g Fk(P)m(oin)m(t)5 b Fm(.)35 b(It)24 -b(is)f(not)g(necessary)e(to)i(up)r(date)83 4398 y Fi(world)p -283 4398 V 32 w(c)l(o)l(or)l(dinates)47 b Fm(\(or)34 -b Fi(user)p 1056 4398 V 30 w(c)l(o)l(or)l(dinates)12 +b(is)f(not)g(necessary)e(to)i(up)r(date)83 4796 y Fi(world)p +283 4796 V 32 w(c)l(o)l(or)l(dinates)47 b Fm(\(or)34 +b Fi(user)p 1056 4796 V 30 w(c)l(o)l(or)l(dinates)12 b Fm(,)37 b(if)f(they're)e(b)r(eing)h(used\))g(ev)n(ery)f(time)h(a)g Fk(P)m(oin)m(t)40 b Fm(is)34 b(transformed.)58 b(The)83 -4497 y(transformations)28 b(can)i(b)r(e)h(sa)n(v)n(ed)e(up)i(and)f +4896 y(transformations)28 b(can)i(b)r(e)h(sa)n(v)n(ed)e(up)i(and)f (their)g(result)g(applied)g(to)g(the)h Fk(P)m(oin)m(t)36 b Fm(when)30 b(needed.)45 b(This)31 b(will)f(b)r(e)h(when)83 -4597 y(the)e Fk(P)m(oin)m(t)k Fm(or)28 b(the)h Fk(Shap)s(e)k +4995 y(the)e Fk(P)m(oin)m(t)k Fm(or)28 b(the)h Fk(Shap)s(e)k Fm(or)27 b Fk(Lab)s(el)33 b Fm(con)n(taining)28 b(it)h(is)f(output,)h (or)e(when)i(a)f(function)h(\(suc)n(h)f(as)g Fi(get)p -3398 4597 V 31 w(x)13 b Fm(\()h(\)\))29 b(requires)83 -4696 y(up-to-date)e(co)r(ordinate)f(v)-5 b(alues.)0 4796 -y Fn(\017)41 b Fi(dr)l(awdot)p 370 4796 V 32 w(value)11 -b Fm(,)59 b Fi(dr)l(awdot)p 961 4796 V 32 w(c)l(olor)14 +3398 4995 V 31 w(x)13 b Fm(\()h(\)\))29 b(requires)83 +5095 y(up-to-date)e(co)r(ordinate)f(v)-5 b(alues.)0 5195 +y Fn(\017)41 b Fi(dr)l(awdot)p 370 5195 V 32 w(value)11 +b Fm(,)59 b Fi(dr)l(awdot)p 961 5195 V 32 w(c)l(olor)14 b Fm(,)59 b(and)53 b Fi(p)l(en)63 b Fm(are)52 b(used)h(in)g(the)g(dra)n (wing)e(and)i(undra)n(wing)e(functions)i(and)g(in)83 -4896 y Fk(P)m(oin)m(t)13 b Fm(::)8 b Fi(output)k Fm(\()i(\).)38 -b(They)27 b(are)g(explained)g(b)r(elo)n(w.)0 4995 y Fn(\017)41 -b Fi(pr)l(oje)l(ctive)p 429 4995 V 32 w(extr)l(emes)48 -b Fm(is)38 b(used)g(in)g(outputting)g Fk(Pictures)5 b -Fm(.)67 b(It's)38 b(for)f(culling)g Fk(P)m(oin)m(ts)43 -b Fm(that)38 b(are)f(in)n(visible)g(using)g(a)83 5095 +5294 y Fk(P)m(oin)m(t)13 b Fm(::)8 b Fi(output)k Fm(\()i(\).)38 +b(They)27 b(are)g(explained)g(b)r(elo)n(w.)p eop end +%%Page: 70 70 +TeXDict begin 70 69 bop 0 83 a Fm(70)140 b Fk(POINT)24 +b Fl(CLASS)g(DEFINITION)1964 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(264)0 263 y Fn(\017)41 b Fi(pr)l(oje)l(ctive)p 429 +263 26 4 v 32 w(extr)l(emes)48 b Fm(is)38 b(used)g(in)g(outputting)g +Fk(Pictures)5 b Fm(.)67 b(It's)38 b(for)f(culling)g Fk(P)m(oin)m(ts)43 +b Fm(that)38 b(are)f(in)n(visible)g(using)g(a)83 363 y(particular)26 b Fk(F)-8 b(o)s(cus)5 b Fm(,)27 b(or)g(that)h(lie)g (outside)f(the)h(b)r(oundaries)f(passed)g(as)g(argumen)n(ts)f(to)h -Fk(Picture)14 b Fm(::)8 b Fi(output)k Fm(\()i(\).)0 5195 -y Fn(\017)41 b Fi(do)p 172 5195 V 31 w(output)i Fm(is)32 +Fk(Picture)14 b Fm(::)8 b Fi(output)k Fm(\()i(\).)0 462 +y Fn(\017)41 b Fi(do)p 172 462 V 31 w(output)i Fm(is)32 b(for)f(enabling)g(or)f(suppressing)h(output)h(of)f(a)g Fk(P)m(oin)m(t)5 b Fm(.)49 b(It's)32 b(needed)f(when)h(a)f Fk(P)m(oin)m(t)37 b Fm(has)31 b(b)r(een)h(culled,)83 -5294 y(as)27 b(describ)r(ed)h(ab)r(o)n(v)n(e.)35 b(Culling)28 +562 y(as)27 b(describ)r(ed)h(ab)r(o)n(v)n(e.)35 b(Culling)28 b(do)r(es)f(not)h(actually)f(remo)n(v)n(e)f(a)h Fk(P)m(oin)m(t)33 b Fm(\(or)27 b(an)n(y)g(other)g Fk(Shap)s(e)5 b Fm(\))28 -b(from)f(a)h Fk(Picture)5 b Fm(,)28 b(so)p eop end -%%Page: 69 69 -TeXDict begin 69 68 bop 0 83 a Fn(x)p Fm(264)140 b Fl(3DLDFPR)n(G)1963 -b Fk(POINT)24 b Fl(CLASS)g(DEFINITION)142 b Fm(69)83 -263 y(a)27 b(w)n(a)n(y)g(of)h(suppressing)f(output)h(is)g(needed.)38 -b(Ho)n(w)n(ev)n(er,)26 b(it)i(m)n(ust)g(b)r(e)g(p)r(ossible)g(to)f -(enable)h(output)g(again,)f(b)r(ecause)h(the)83 363 y -Fk(Picture)33 b Fm(ma)n(y)27 b(b)r(e)h(output)g(again)e(using)i(a)f -(di\013eren)n(t)g Fk(F)-8 b(o)s(cus)33 b Fm(and/or)26 -b(di\013eren)n(t)h(v)-5 b(alues)27 b(for)h(the)g(b)r(oundaries.)0 -462 y Fn(\017)41 b Fi(me)l(asur)l(ement)p 561 462 26 -4 v 30 w(units)34 b Fm(is)25 b(a)e Fk(string)30 b Fm(that)25 -b(is)f(attac)n(hed)g(to)g(the)h(n)n(umerical)e(v)-5 b(alues)24 -b(of)g(the)h Fi(pr)l(oje)l(ctive)p 3246 462 V 32 w(c)l(o)l(or)l -(dinates)37 b Fm(when)83 562 y(the)27 b(MET)-7 b(APOST)26 -b(co)r(de)g(is)h(output)g(to)f Fi(out)p 1491 562 V 31 -w(str)l(e)l(am)10 b Fm(.)36 b(It)27 b(is)g(curren)n(tly)f -Ff("cm")j Fm(and)d(at)h(the)g(presen)n(t)f(time)h(\(2002.10.20\),)83 -662 y(it's)35 b(not)g(a)f(go)r(o)r(d)g(idea)h(to)f(use)h(more)f(than)h -(one)f(v)-5 b(alue)34 b(for)h(a)f(single)g(dra)n(wing.)57 -b(Changing)34 b(this)h(will)g(only)f(b)r(ecome)83 761 -y(urgen)n(t)27 b(when)h(I)f(start)g(writing)h(the)f(input)i(routine.)36 -b(TO)28 b(DO.)p 0 860 1643 4 v 1738 893 a Fk(Begin)j(Log)p -2257 860 V 83 1034 a Fm([)p Fh(LDF)25 b(2003.04.01.)p +b(from)f(a)h Fk(Picture)5 b Fm(,)28 b(so)83 662 y(a)f(w)n(a)n(y)g(of)h +(suppressing)f(output)h(is)g(needed.)38 b(Ho)n(w)n(ev)n(er,)26 +b(it)i(m)n(ust)g(b)r(e)g(p)r(ossible)g(to)f(enable)h(output)g(again,)f +(b)r(ecause)h(the)83 761 y Fk(Picture)33 b Fm(ma)n(y)27 +b(b)r(e)h(output)g(again)e(using)i(a)f(di\013eren)n(t)g +Fk(F)-8 b(o)s(cus)33 b Fm(and/or)26 b(di\013eren)n(t)h(v)-5 +b(alues)27 b(for)h(the)g(b)r(oundaries.)0 861 y Fn(\017)41 +b Fi(me)l(asur)l(ement)p 561 861 V 30 w(units)34 b Fm(is)25 +b(a)e Fk(string)30 b Fm(that)25 b(is)f(attac)n(hed)g(to)g(the)h(n)n +(umerical)e(v)-5 b(alues)24 b(of)g(the)h Fi(pr)l(oje)l(ctive)p +3246 861 V 32 w(c)l(o)l(or)l(dinates)37 b Fm(when)83 +960 y(the)27 b(MET)-7 b(APOST)26 b(co)r(de)g(is)h(output)g(to)f +Fi(out)p 1491 960 V 31 w(str)l(e)l(am)10 b Fm(.)36 b(It)27 +b(is)g(curren)n(tly)f Ff("cm")j Fm(and)d(at)h(the)g(presen)n(t)f(time)h +(\(2002.10.20\),)83 1060 y(it's)35 b(not)g(a)f(go)r(o)r(d)g(idea)h(to)f +(use)h(more)f(than)h(one)f(v)-5 b(alue)34 b(for)h(a)f(single)g(dra)n +(wing.)57 b(Changing)34 b(this)h(will)g(only)f(b)r(ecome)83 +1160 y(urgen)n(t)27 b(when)h(I)f(start)g(writing)h(the)f(input)i +(routine.)36 b(TO)28 b(DO.)p 0 1250 1779 4 v 1874 1283 +a Fk(Log)p 2122 1250 V 83 1423 a Fm([)p Fh(LDF)d(2003.04.01.)p Fm(])64 b(Added)30 b Ff(WORLD_VALUES)p Fm(,)g Ff(PROJ_VALUES)p Fm(,)h Ff(USER_VALUES)p Fm(,)f(and)g Ff(VIEW_VALUES)p -Fm(.)44 b(They)30 b(are)f(used)0 1133 y(in)f Fi(lab)l(el)14 +Fm(.)44 b(They)30 b(are)f(used)0 1523 y(in)f Fi(lab)l(el)14 b Fm(\()g(\))28 b(for)f(lab)r(elling)g Fk(P)m(oin)m(ts)33 b Fm(using)27 b(the)h(v)-5 b(alues)27 b(in)h Fi(world)p -2033 1133 26 4 v 32 w(c)l(o)l(or)l(dinates)12 b Fm(,)28 -b Fi(pr)l(oje)l(ctive)p 2870 1133 V 32 w(c)l(o)l(or)l(dinates)12 -b Fm(,)28 b(etc.)83 1233 y([)p Fh(LDF)d(2003.05.06.)p +2033 1523 26 4 v 32 w(c)l(o)l(or)l(dinates)12 b Fm(,)28 +b Fi(pr)l(oje)l(ctive)p 2870 1523 V 32 w(c)l(o)l(or)l(dinates)12 +b Fm(,)28 b(etc.)83 1623 y([)p Fh(LDF)d(2003.05.06.)p Fm(])63 b(Changed)29 b Ff(WORLD_VALUE)p Fm(,)h Ff(PROJ_VALUE)p Fm(,)g Ff(USER_VALUE)q Fm(,)g(and)f Ff(VIEW_VALUE)h Fm(to)g -Ff(WORLD_VALUES)o Fm(,)0 1333 y Ff(PROJ_VALUES)p Fm(,)e +Ff(WORLD_VALUES)o Fm(,)0 1722 y Ff(PROJ_VALUES)p Fm(,)e Ff(USER_VALUES)o Fm(,)g(and)g Ff(VIEW_VALUES)o Fm(.)37 b(Added)28 b Ff(WORLD_VALUES_X_Y)n Fm(,)g Ff(PROJ_VALUES_X_Y)n -Fm(,)0 1432 y Ff(USER_VALUES_X_Y)n Fm(,)g(and)f Ff(VIEW_VALUES_X_Y)f -Fm(for)h(suppressing)g(the)h(z-co)r(ordinate.)83 1532 +Fm(,)0 1822 y Ff(USER_VALUES_X_Y)n Fm(,)g(and)f Ff(VIEW_VALUES_X_Y)f +Fm(for)h(suppressing)g(the)h(z-co)r(ordinate.)83 1921 y([)p Fh(LDF)d(2003.05.20.)p Fm(])61 b(Added)28 b Ff(WORLD_VALUES_Z)o -Fm(.)p 0 1624 1678 4 v 1773 1656 a Fk(End)k(Log)p 2222 -1624 V 83 1781 a(format)65 b Fi(Point)81 b(Shap)l(e)0 -1905 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(oin)m(t)41 -b Fl(264)15 b Fn(i)23 b(\021)83 2005 y Fk(class)32 b(P)m(oin)m(t)h -Fm(:)k Fk(protected)c(Shap)s(e)f Fn(f)166 2105 y Fk(friend)g(T)-8 -b(ransform)33 b(T)-8 b(ransform)14 b Fm(::)9 b Fi(align)p -1583 2105 26 4 v 31 w(with)p 1764 2105 V 31 w(axis)j -Fm(\()p Fk(P)m(oin)m(t)5 b Fe(;)14 b Fk(P)m(oin)m(t)5 -b Fe(;)14 b Fk(c)m(har)7 b Fm(\);)83 2204 y Fk(priv)-5 -b(ate)5 b Fm(:)42 b Fk(T)-8 b(ransform)33 b Fi(tr)l(ansform)11 -b Fm(;)166 2304 y Fk(b)s(o)s(ol)31 b Fi(on)p 473 2304 -V 30 w(fr)l(e)l(e)p 631 2304 V 31 w(stor)l(e)11 b Fm(;)166 -2404 y Fk(v)-5 b(alarra)m(y)8 b Fn(h)p Fk(real)d Fn(i)28 -b Fi(world)p 962 2404 V 32 w(c)l(o)l(or)l(dinates)12 -b Fm(;)166 2503 y Fk(v)-5 b(alarra)m(y)8 b Fn(h)p Fk(real)d -Fn(i)28 b Fi(user)p 919 2503 V 31 w(c)l(o)l(or)l(dinates)12 -b Fm(;)166 2603 y Fk(v)-5 b(alarra)m(y)8 b Fn(h)p Fk(real)d -Fn(i)28 b Fi(view)p 923 2603 V 32 w(c)l(o)l(or)l(dinates)12 -b Fm(;)166 2702 y Fk(v)-5 b(alarra)m(y)8 b Fn(h)p Fk(real)d -Fn(i)28 b Fi(pr)l(oje)l(ctive)p 1108 2702 V 33 w(c)l(o)l(or)l(dinates) -12 b Fm(;)166 2802 y Fk(signed)31 b(short)i Fi(dr)l(awdot)p -995 2802 V 31 w(value)11 b Fm(;)166 2902 y Fk(const)32 -b(Color)g Fn(\003)p Fi(dr)l(awdot)p 1008 2902 V 32 w(c)l(olor)14 -b Fm(;)166 3001 y Fk(string)33 b Fi(p)l(en)11 b Fm(;)83 -3101 y Fk(protected)5 b Fm(:)166 b Fe(=)p Fn(\003)40 -b Fm(LDF)28 b(2002.09.18.)33 b(Added)28 b Fi(pr)l(oje)l(ctive)p -2044 3101 V 32 w(extr)l(emes)10 b Fm(.)37 b(It)28 b(con)n(tains)e(the)h -(minim)n(um)h(and)f(maxim)n(um)332 3201 y(v)-5 b(alues)27 -b(for)g(x,)h(y)-7 b(,)28 b(and)f(z)h(in)f Fi(pr)l(oje)l(ctive)p -1557 3201 V 33 w(c)l(o)l(or)l(dinates)12 b Fm(.)51 b -Fn(\003)p Fe(=)166 3300 y Fk(v)-5 b(alarra)m(y)8 b Fn(h)p -Fk(real)d Fn(i)28 b Fi(pr)l(oje)l(ctive)p 1108 3300 V -33 w(extr)l(emes)10 b Fm(;)166 3400 y Fk(b)s(o)s(ol)31 -b Fi(do)p 468 3400 V 31 w(output)12 b Fm(;)166 b Fe(=)p +Fm(.)p 0 2013 3900 4 v 83 2166 a Fk(format)65 b Fi(Point)81 +b(Shap)l(e)0 2287 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(oin)m(t) +41 b Fl(264)15 b Fn(i)23 b(\021)83 2386 y Fk(class)32 +b(P)m(oin)m(t)h Fm(:)k Fk(protected)c(Shap)s(e)f Fn(f)166 +2486 y Fk(friend)g(T)-8 b(ransform)33 b(T)-8 b(ransform)14 +b Fm(::)9 b Fi(align)p 1583 2486 26 4 v 31 w(with)p 1764 +2486 V 31 w(axis)j Fm(\()p Fk(P)m(oin)m(t)5 b Fe(;)14 +b Fk(P)m(oin)m(t)5 b Fe(;)14 b Fk(c)m(har)7 b Fm(\);)83 +2586 y Fk(priv)-5 b(ate)5 b Fm(:)42 b Fk(T)-8 b(ransform)33 +b Fi(tr)l(ansform)11 b Fm(;)166 2685 y Fk(b)s(o)s(ol)31 +b Fi(on)p 473 2685 V 30 w(fr)l(e)l(e)p 631 2685 V 31 +w(stor)l(e)11 b Fm(;)166 2785 y Fk(v)-5 b(alarra)m(y)8 +b Fn(h)p Fk(real)d Fn(i)28 b Fi(world)p 962 2785 V 32 +w(c)l(o)l(or)l(dinates)12 b Fm(;)166 2884 y Fk(v)-5 b(alarra)m(y)8 +b Fn(h)p Fk(real)d Fn(i)28 b Fi(user)p 919 2884 V 31 +w(c)l(o)l(or)l(dinates)12 b Fm(;)166 2984 y Fk(v)-5 b(alarra)m(y)8 +b Fn(h)p Fk(real)d Fn(i)28 b Fi(view)p 923 2984 V 32 +w(c)l(o)l(or)l(dinates)12 b Fm(;)166 3084 y Fk(v)-5 b(alarra)m(y)8 +b Fn(h)p Fk(real)d Fn(i)28 b Fi(pr)l(oje)l(ctive)p 1108 +3084 V 33 w(c)l(o)l(or)l(dinates)12 b Fm(;)166 3183 y +Fk(signed)31 b(short)i Fi(dr)l(awdot)p 995 3183 V 31 +w(value)11 b Fm(;)166 3283 y Fk(const)32 b(Color)g Fn(\003)p +Fi(dr)l(awdot)p 1008 3283 V 32 w(c)l(olor)14 b Fm(;)166 +3383 y Fk(string)33 b Fi(p)l(en)11 b Fm(;)83 3482 y Fk(protected)5 +b Fm(:)166 b Fe(=)p Fn(\003)40 b Fm(LDF)28 b(2002.09.18.)33 +b(Added)28 b Fi(pr)l(oje)l(ctive)p 2044 3482 V 32 w(extr)l(emes)10 +b Fm(.)37 b(It)28 b(con)n(tains)e(the)h(minim)n(um)h(and)f(maxim)n(um) +332 3582 y(v)-5 b(alues)27 b(for)g(x,)h(y)-7 b(,)28 b(and)f(z)h(in)f +Fi(pr)l(oje)l(ctive)p 1557 3582 V 33 w(c)l(o)l(or)l(dinates)12 +b Fm(.)51 b Fn(\003)p Fe(=)166 3681 y Fk(v)-5 b(alarra)m(y)8 +b Fn(h)p Fk(real)d Fn(i)28 b Fi(pr)l(oje)l(ctive)p 1108 +3681 V 33 w(extr)l(emes)10 b Fm(;)166 3781 y Fk(b)s(o)s(ol)31 +b Fi(do)p 468 3781 V 31 w(output)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fm(LDF)28 b(2002.09.18.)33 b(Added)c(this)f(data)f(mem)n -(b)r(er.)50 b Fn(\003)p Fe(=)83 3499 y Fk(public)t Fm(:)42 +(b)r(er.)50 b Fn(\003)p Fe(=)83 3881 y Fk(public)t Fm(:)42 b Fk(static)33 b(string)g Fi(me)l(asur)l(ement)p 1420 -3499 V 30 w(units)10 b Fm(;)166 3599 y Fk(static)33 b(real)f -Ff(CURR_Y)r Fm(;)166 3699 y Fk(static)h(real)f Ff(CURR_Z)r -Fm(;)166 3798 y Fk(static)h(const)f(short)h Ff(WORLD_VALUES)o -Fm(;)166 3898 y Fk(static)g(const)f(short)h Ff(PROJ_VALUES)o -Fm(;)166 3998 y Fk(static)g(const)f(short)h Ff(USER_VALUES)o -Fm(;)166 4097 y Fk(static)g(const)f(short)h Ff(VIEW_VALUES)o -Fm(;)166 4197 y Fk(static)g(const)f(short)h Ff(WORLD_VALUES_X_)o(Y)n -Fm(;)166 4297 y Fk(static)g(const)f(short)h Ff(PROJ_VALUES_X_Y)n -Fm(;)166 4396 y Fk(static)g(const)f(short)h Ff(USER_VALUES_X_Y)n -Fm(;)166 4496 y Fk(static)g(const)f(short)h Ff(VIEW_VALUES_X_Y)n -Fm(;)166 4595 y Fk(static)g(const)f(short)h Ff(WORLD_VALUES_Z)n -Fm(;)166 4720 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 -b Fm(constructors)g Fl(279)15 b Fn(i)166 4820 y(h)f Fm(Declare)27 +3881 V 30 w(units)10 b Fm(;)166 3980 y Fk(static)33 b(real)f +Ff(CURR_Y)r Fm(;)166 4080 y Fk(static)h(real)f Ff(CURR_Z)r +Fm(;)166 4180 y Fk(static)h(const)f(short)h Ff(WORLD_VALUES)o +Fm(;)166 4279 y Fk(static)g(const)f(short)h Ff(PROJ_VALUES)o +Fm(;)166 4379 y Fk(static)g(const)f(short)h Ff(USER_VALUES)o +Fm(;)166 4478 y Fk(static)g(const)f(short)h Ff(VIEW_VALUES)o +Fm(;)166 4578 y Fk(static)g(const)f(short)h Ff(WORLD_VALUES_X_)o(Y)n +Fm(;)166 4678 y Fk(static)g(const)f(short)h Ff(PROJ_VALUES_X_Y)n +Fm(;)166 4777 y Fk(static)g(const)f(short)h Ff(USER_VALUES_X_Y)n +Fm(;)166 4877 y Fk(static)g(const)f(short)h Ff(VIEW_VALUES_X_Y)n +Fm(;)166 4977 y Fk(static)g(const)f(short)h Ff(WORLD_VALUES_Z)n +Fm(;)166 5097 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(constructors)g Fl(279)15 b Fn(i)166 5197 y(h)f Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)83 -4919 y(g)p Fm(;)0 5027 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f +5296 y(g)p Fm(;)0 5400 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f (sections)i(589)f(and)g(590.)p eop end -%%Page: 70 70 -TeXDict begin 70 69 bop 0 83 a Fm(70)140 b Fk(POINT)24 -b Fl(CLASS)g(DEFINITION)1964 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(265)0 263 y Fk(265.)p 0 339 1643 4 v 1738 371 a(Begin)31 -b(Log)p 2257 339 V 83 512 a Fm(LDF)f(2003.04.01.)39 b(Added)30 -b(initialization)f(of)h Ff(WORLD_VALUES)o Fm(,)g Ff(PROJ_VALUES)p -Fm(,)g Ff(USER_VALUES)p Fm(,)g(and)f Ff(VIEW_VALUES)p -Fm(.)0 612 y(They)g(are)g(used)g(in)h Fi(lab)l(el)14 -b Fm(\()g(\))30 b(for)e(lab)r(elling)i Fk(P)m(oin)m(ts)k -Fm(using)29 b(the)h(v)-5 b(alues)29 b(in)h Fi(world)p -2598 612 26 4 v 31 w(c)l(o)l(or)l(dinates)13 b Fm(,)30 -b Fi(pr)l(oje)l(ctive)p 3437 612 V 32 w(c)l(o)l(or)l(dinates)12 -b Fm(,)0 711 y(etc.)56 b(!!)g(KLUDGE:)34 b(Using)f(the)i(macro)d +%%Page: 71 71 +TeXDict begin 71 70 bop 0 83 a Fn(x)p Fm(265)140 b Fl(3DLDFPR)n(G)1963 +b Fk(POINT)24 b Fl(CLASS)g(DEFINITION)142 b Fm(71)0 263 +y Fk(265.)p 0 339 1779 4 v 1874 371 a(Log)p 2122 339 +V 83 512 a Fm(LDF)30 b(2003.04.01.)39 b(Added)30 b(initialization)f(of) +h Ff(WORLD_VALUES)o Fm(,)g Ff(PROJ_VALUES)p Fm(,)g Ff(USER_VALUES)p +Fm(,)g(and)f Ff(VIEW_VALUES)p Fm(.)0 612 y(They)g(are)g(used)g(in)h +Fi(lab)l(el)14 b Fm(\()g(\))30 b(for)e(lab)r(elling)i +Fk(P)m(oin)m(ts)k Fm(using)29 b(the)h(v)-5 b(alues)29 +b(in)h Fi(world)p 2598 612 26 4 v 31 w(c)l(o)l(or)l(dinates)13 +b Fm(,)30 b Fi(pr)l(oje)l(ctive)p 3437 612 V 32 w(c)l(o)l(or)l(dinates) +12 b Fm(,)0 711 y(etc.)56 b(!!)g(KLUDGE:)34 b(Using)f(the)i(macro)d Ff(SHRT_MAX)j Fm(b)r(ecause)f(the)g Fk(n)m(umeric)p 2541 711 29 5 v 40 w(limits)j Fm(template)d(do)r(esn't)g(seem)g(to)g(b)r(e)0 811 y(a)n(v)-5 b(ailable)26 b(under)i(GNU/Lin)n(ux)f(using)h(GCC,)f(at) @@ -8740,18 +8821,18 @@ 1110 y Fm(LDF)41 b(2003.05.22.)72 b(BUG)41 b(FIX:)g(Changed)f Ff(WORLD_VALUES_Z)f Fm(so)h(that)h(it's)g(one)f(less)g(than)h Ff(VIEW_VALUES_X_Y)n Fm(.)0 1209 y(Previously)-7 b(,)26 -b(it)i(had)f(the)h(same)f(v)-5 b(alue.)p 0 1301 1678 -4 v 1773 1334 a Fk(End)32 b(Log)p 2222 1301 V 0 1459 -a Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(P)m(oin)m(t)g -Fm(data)27 b(mem)n(b)r(ers)35 b Fl(265)14 b Fn(i)24 b(\021)83 -1558 y Fk(string)33 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(me)l(asur)l(ement)p -1128 1558 26 4 v 30 w(units)33 b Fm(=)23 b Ff("cm")r -Fm(;)83 1658 y Fk(real)32 b(P)m(oin)m(t)14 b Fm(::)8 -b Ff(CURR_Y)25 b Fm(=)e(0)o(;)83 1757 y Fk(real)32 b(P)m(oin)m(t)14 -b Fm(::)8 b Ff(CURR_Z)25 b Fm(=)e(0)o(;)83 1857 y Fk(const)32 -b(short)h(P)m(oin)m(t)13 b Fm(::)8 b Ff(WORLD_VALUES)23 -b Fm(=)g Ff(SHRT_MAX)q Fm(;)83 1957 y Fk(const)32 b(short)h(P)m(oin)m -(t)13 b Fm(::)8 b Ff(PROJ_VALUES)24 b Fm(=)e Ff(WORLD_VALUES)c +b(it)i(had)f(the)h(same)f(v)-5 b(alue.)p 0 1301 3900 +4 v 0 1459 a Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 +b(P)m(oin)m(t)g Fm(data)27 b(mem)n(b)r(ers)35 b Fl(265)14 +b Fn(i)24 b(\021)83 1558 y Fk(string)33 b(P)m(oin)m(t)14 +b Fm(::)8 b Fi(me)l(asur)l(ement)p 1128 1558 26 4 v 30 +w(units)33 b Fm(=)23 b Ff("cm")r Fm(;)83 1658 y Fk(real)32 +b(P)m(oin)m(t)14 b Fm(::)8 b Ff(CURR_Y)25 b Fm(=)e(0)o(;)83 +1757 y Fk(real)32 b(P)m(oin)m(t)14 b Fm(::)8 b Ff(CURR_Z)25 +b Fm(=)e(0)o(;)83 1857 y Fk(const)32 b(short)h(P)m(oin)m(t)13 +b Fm(::)8 b Ff(WORLD_VALUES)23 b Fm(=)g Ff(SHRT_MAX)q +Fm(;)83 1957 y Fk(const)32 b(short)h(P)m(oin)m(t)13 b +Fm(::)8 b Ff(PROJ_VALUES)24 b Fm(=)e Ff(WORLD_VALUES)c Fn(\000)g Fm(1;)83 2056 y Fk(const)32 b(short)h(P)m(oin)m(t)13 b Fm(::)8 b Ff(USER_VALUES)24 b Fm(=)e Ff(WORLD_VALUES)c Fn(\000)g Fm(2;)83 2156 y Fk(const)32 b(short)h(P)m(oin)m(t)13 @@ -8771,83 +8852,80 @@ (and)i(utilit)m(y)f(structures.)96 b Fm(Some)33 b(of)g(the)h(t)n(yp)r (es)f(are)g(simple)g(enough)g(to)g(b)r(e)h(de\014ned)0 3061 y(using)27 b Fk(t)m(yp)s(edef)14 b Fm(,)28 b(but)g(others)f -(require)g Fk(struct)33 b Fm(de\014nitions.)p 0 3160 -1643 4 v 1738 3193 a Fk(Begin)e(Log)p 2257 3160 V 83 -3333 a Fm([)p Fh(LDF)25 b(2002.04.10.)p Fm(])105 b(Added)71 -b(these)g(formatting)f(instructions.)167 b(They)71 b(are)f(duplicated)h -(using)g(\\@)p Fj(s)p Fm(")e(in)0 3433 y Fj(cwdriver.web)p -Fm(.)p 0 3525 1678 4 v 1773 3558 a Fk(End)32 b(Log)p -2222 3525 V 83 3682 a(format)65 b Fi(p)l(oint)p 612 3682 -26 4 v 31 w(p)l(air)83 b(Point)83 3782 y Fk(format)65 -b Fi(b)l(o)l(ol)p 567 3782 V 31 w(p)l(oint)82 b(Point)83 +(require)g Fk(struct)33 b Fm(de\014nitions.)p 0 3159 +1779 4 v 1874 3192 a Fk(Log)p 2122 3159 V 83 3333 a Fm([)p +Fh(LDF)25 b(2002.04.10.)p Fm(])105 b(Added)71 b(these)g(formatting)f +(instructions.)167 b(They)71 b(are)f(duplicated)h(using)g(\\@)p +Fj(s)p Fm(")e(in)0 3432 y Fj(cwdriver.web)p Fm(.)p 0 +3524 3900 4 v 83 3681 a Fk(format)c Fi(p)l(oint)p 612 +3681 26 4 v 31 w(p)l(air)83 b(Point)83 3781 y Fk(format)65 +b Fi(b)l(o)l(ol)p 567 3781 V 31 w(p)l(oint)82 b(Point)83 3881 y Fk(format)65 b Fi(b)l(o)l(ol)p 567 3881 V 31 w(p)l(oint)p -778 3881 V 31 w(p)l(air)83 b(Point)83 3981 y Fk(format)65 -b Fi(b)l(o)l(ol)p 567 3981 V 31 w(p)l(oint)p 778 3981 -V 31 w(quadruple)81 b(Point)83 4081 y Fk(format)65 b -Fi(b)l(o)l(ol)p 567 4081 V 31 w(r)l(e)l(al)p 726 4081 -V 31 w(p)l(oint)82 b(Point)0 4280 y Fk(267.)94 b(p)s(oin)m(t)p -489 4280 29 4 v 34 w(pair)32 b(and)g(b)s(o)s(ol)p 1086 -4280 V 33 w(p)s(oin)m(t)p 1337 4280 V 34 w(pair.)0 4404 +778 3881 V 31 w(p)l(air)83 b(Point)83 3980 y Fk(format)65 +b Fi(b)l(o)l(ol)p 567 3980 V 31 w(p)l(oint)p 778 3980 +V 31 w(quadruple)81 b(Point)83 4080 y Fk(format)65 b +Fi(b)l(o)l(ol)p 567 4080 V 31 w(r)l(e)l(al)p 726 4080 +V 31 w(p)l(oint)82 b(Point)0 4279 y Fk(267.)94 b(p)s(oin)m(t)p +489 4279 29 4 v 34 w(pair)32 b(and)g(b)s(o)s(ol)p 1086 +4279 V 33 w(p)s(oin)m(t)p 1337 4279 V 34 w(pair.)0 4404 y Fn(h)14 b Fm(T)n(yp)r(e)28 b(de\014nitions)35 b Fl(12)14 -b Fn(i)24 b Fm(+)p Fn(\021)83 4504 y Fk(t)m(yp)s(edef)42 +b Fn(i)24 b Fm(+)p Fn(\021)83 4503 y Fk(t)m(yp)s(edef)42 b(pair)5 b Fn(h)p Fk(P)m(oin)m(t)g Fe(;)14 b Fk(P)m(oin)m(t)5 -b Fn(i)28 b Fk(p)s(oin)m(t)p 1414 4504 29 5 v 40 w(pair)5 -b Fm(;)83 4604 y Fk(t)m(yp)s(edef)42 b(pair)5 b Fn(h)p -Fk(b)s(o)s(ol)p 823 4604 V 39 w(p)s(oin)m(t)t Fe(;)14 -b Fk(b)s(o)s(ol)p 1303 4604 V 38 w(p)s(oin)m(t)t Fn(i)28 -b Fk(b)s(o)s(ol)p 1805 4604 V 39 w(p)s(oin)m(t)p 2062 -4604 V 39 w(pair)5 b Fm(;)0 4803 y Fk(268.)94 b(b)s(o)s(ol)p -453 4803 29 4 v 33 w(p)s(oin)m(t.)p 0 4902 1643 4 v 1738 -4935 a(Begin)31 b(Log)p 2257 4902 V 83 5076 a Fm(LDF)e(2002.04.15.)36 +b Fn(i)28 b Fk(p)s(oin)m(t)p 1414 4503 29 5 v 40 w(pair)5 +b Fm(;)83 4603 y Fk(t)m(yp)s(edef)42 b(pair)5 b Fn(h)p +Fk(b)s(o)s(ol)p 823 4603 V 39 w(p)s(oin)m(t)t Fe(;)14 +b Fk(b)s(o)s(ol)p 1303 4603 V 38 w(p)s(oin)m(t)t Fn(i)28 +b Fk(b)s(o)s(ol)p 1805 4603 V 39 w(p)s(oin)m(t)p 2062 +4603 V 39 w(pair)5 b Fm(;)0 4802 y Fk(268.)94 b(b)s(o)s(ol)p +453 4802 29 4 v 33 w(p)s(oin)m(t.)p 0 4901 1779 4 v 1874 +4933 a(Log)p 2122 4901 V 83 5074 a Fm(LDF)29 b(2002.04.15.)36 b(Added)29 b(this)g(section.)39 b Fk(b)s(o)s(ol)p 1649 -5076 29 5 v 38 w(p)s(oin)m(t)33 b Fm(w)n(as)28 b(formerly)f(a)h(simple) +5074 29 5 v 38 w(p)s(oin)m(t)33 b Fm(w)n(as)28 b(formerly)f(a)h(simple) h Fk(t)m(yp)s(edef)14 b Fm(.)40 b(I'v)n(e)28 b(had)g(to)g(c)n(hange)g -(it)0 5175 y(to)f(a)h Fk(struct)5 b Fm(,)28 b(in)g(order)e(for)h +(it)0 5174 y(to)f(a)h Fk(struct)5 b Fm(,)28 b(in)g(order)e(for)h Fk(P)m(oin)m(t)14 b Fm(::)8 b Fi(interse)l(ction)p 1632 -5175 26 4 v 31 w(p)l(oints)j Fm(\()j(\))28 b(to)g(return)f(one.)p +5174 26 4 v 31 w(p)l(oints)j Fm(\()j(\))28 b(to)g(return)f(one.)p eop end -%%Page: 71 71 -TeXDict begin 71 70 bop 0 83 a Fn(x)p Fm(268)140 b Fl(3DLDFPR)n(G)2320 -b Fk(BOOL)p 3284 83 29 4 v 34 w(POINT)191 b Fm(71)83 -263 y(LDF)22 b(2003.05.30.)31 b(Remo)n(v)n(ed)20 b(the)i(de\014nition)g -(of)f(the)h(default)g(constructor)e(to)h(the)h(new)f(section)g -Fn(h)14 b Fm(De\014ne)22 b Fk(b)s(o)s(ol)p 3643 263 29 -5 v 39 w(p)s(oin)m(t)0 363 y Fm(functions)36 b Fl(269)14 -b Fn(i)p Fm(.)37 b(See)28 b(b)r(elo)n(w)f(for)g(an)h(explanation.)p -0 455 1678 4 v 1773 487 a Fk(End)k(Log)p 2222 455 V 0 -612 a Fn(h)14 b Fm(T)n(yp)r(e)28 b(de\014nitions)35 b -Fl(12)14 b Fn(i)24 b Fm(+)p Fn(\021)83 711 y Fk(struct)33 -b(b)s(o)s(ol)p 548 711 29 5 v 39 w(p)s(oin)m(t)f Fn(f)166 -811 y Fk(b)s(o)s(ol)f Fe(b)o Fm(;)166 911 y Fk(P)m(oin)m(t)i -Fi(pt)12 b Fm(;)166 1035 y Fk(b)s(o)s(ol)p 352 1035 V -38 w(p)s(oin)m(t)5 b Fm(\()14 b(\);)166 1160 y Fk(b)s(o)s(ol)p -352 1160 V 38 w(p)s(oin)m(t)5 b Fm(\()p Fk(b)s(o)s(ol)31 -b Fi(bb)10 b Fe(;)k Fk(const)32 b(P)m(oin)m(t)h Fm(&)o -Fi(ppt)13 b Fm(\))166 1259 y(:)37 b Fe(b)p Fm(\()p Fi(bb)10 -b Fm(\))p Fe(;)42 b Fi(pt)12 b Fm(\()p Fi(ppt)h Fm(\))28 -b Fn(f)14 b(g)166 1384 y Fk(v)m(oid)33 b(op)s(erator)t +%%Page: 72 72 +TeXDict begin 72 71 bop 0 83 a Fm(72)140 b Fk(BOOL)p +499 83 29 4 v 34 w(POINT)2186 b(3DLDFPR)m(G)192 b Fn(x)p +Fm(268)83 263 y(LDF)22 b(2003.05.30.)31 b(Remo)n(v)n(ed)20 +b(the)i(de\014nition)g(of)f(the)h(default)g(constructor)e(to)h(the)h +(new)f(section)g Fn(h)14 b Fm(De\014ne)22 b Fk(b)s(o)s(ol)p +3643 263 29 5 v 39 w(p)s(oin)m(t)0 363 y Fm(functions)36 +b Fl(269)14 b Fn(i)p Fm(.)37 b(See)28 b(b)r(elo)n(w)f(for)g(an)h +(explanation.)p 0 455 3900 4 v 0 612 a Fn(h)14 b Fm(T)n(yp)r(e)28 +b(de\014nitions)35 b Fl(12)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +711 y Fk(struct)33 b(b)s(o)s(ol)p 548 711 29 5 v 39 w(p)s(oin)m(t)f +Fn(f)166 811 y Fk(b)s(o)s(ol)f Fe(b)o Fm(;)166 911 y +Fk(P)m(oin)m(t)i Fi(pt)12 b Fm(;)166 1035 y Fk(b)s(o)s(ol)p +352 1035 V 38 w(p)s(oin)m(t)5 b Fm(\()14 b(\);)166 1160 +y Fk(b)s(o)s(ol)p 352 1160 V 38 w(p)s(oin)m(t)5 b Fm(\()p +Fk(b)s(o)s(ol)31 b Fi(bb)10 b Fe(;)k Fk(const)32 b(P)m(oin)m(t)h +Fm(&)o Fi(ppt)13 b Fm(\))166 1259 y(:)37 b Fe(b)p Fm(\()p +Fi(bb)10 b Fm(\))p Fe(;)42 b Fi(pt)12 b Fm(\()p Fi(ppt)h +Fm(\))28 b Fn(f)14 b(g)166 1384 y Fk(v)m(oid)33 b(op)s(erator)t Fm(=\()p Fk(const)g(b)s(o)s(ol)p 1269 1384 V 38 w(p)s(oin)m(t)f Fm(&)p Fi(bp)10 b Fm(\))166 1483 y Fn(f)249 1583 y Fe(b)23 b Fm(=)f Fi(bp)10 b Fe(:b)p Fm(;)249 1683 y Fi(pt)35 b Fm(=)23 b Fi(bp)10 b Fe(:)p Fi(pt)i Fm(;)166 1782 y Fn(g)83 1882 y(g)p Fm(;)p eop end -%%Page: 72 72 -TeXDict begin 72 71 bop 0 83 a Fm(72)140 b Fk(BOOL)p -499 83 29 4 v 34 w(POINT)2186 b(3DLDFPR)m(G)192 b Fn(x)p -Fm(269)0 263 y Fk(269.)p 0 339 1643 4 v 1738 371 a(Begin)31 -b(Log)p 2257 339 V 83 512 a Fm(LDF)40 b(2003.05.30.)69 -b(Added)40 b(this)g(section,)i(and)d(the)h(de\014nition)g(of)g -Fk(b)s(o)s(ol)p 2534 512 29 5 v 38 w(p)s(oin)m(t)t Fm(\()p -Fk(v)m(oid)6 b Fm(\).)73 b(Previously)-7 b(,)40 b Fe(b)g -Fm(and)f Fi(pt)0 612 y Fm(w)n(ere)c(not)h(set,)i(so)e(their)g(v)-5 -b(alues)36 b(w)n(ere)f(unpredictable.)62 b(I)36 b(had)g(to)g(remo)n(v)n -(e)e(the)j(de\014nition)f(from)g(the)g(declaration)f(of)0 -711 y Fk(b)s(o)s(ol)p 186 711 V 38 w(p)s(oin)m(t)5 b -Fm(,)27 b(b)r(ecause)h Ff(INVALID_POINT)e Fm(isn't)i(de\014ned,)g(when) -g(the)g(declaration)e(is)i(read)e(b)n(y)i(the)g(compiler.)p -0 803 1678 4 v 1773 836 a Fk(End)k(Log)p 2222 803 V 0 -960 a Fn(h)14 b Fm(De\014ne)28 b Fk(b)s(o)s(ol)p 489 -960 29 5 v 39 w(p)s(oin)m(t)k Fm(functions)j Fl(269)15 +%%Page: 73 73 +TeXDict begin 73 72 bop 0 83 a Fn(x)p Fm(269)140 b Fl(3DLDFPR)n(G)2320 +b Fk(BOOL)p 3284 83 29 4 v 34 w(POINT)191 b Fm(73)0 263 +y Fk(269.)p 0 339 1779 4 v 1874 371 a(Log)p 2122 339 +V 83 512 a Fm(LDF)40 b(2003.05.30.)69 b(Added)40 b(this)g(section,)i +(and)d(the)h(de\014nition)g(of)g Fk(b)s(o)s(ol)p 2534 +512 29 5 v 38 w(p)s(oin)m(t)t Fm(\()p Fk(v)m(oid)6 b +Fm(\).)73 b(Previously)-7 b(,)40 b Fe(b)g Fm(and)f Fi(pt)0 +612 y Fm(w)n(ere)c(not)h(set,)i(so)e(their)g(v)-5 b(alues)36 +b(w)n(ere)f(unpredictable.)62 b(I)36 b(had)g(to)g(remo)n(v)n(e)e(the)j +(de\014nition)f(from)g(the)g(declaration)f(of)0 711 y +Fk(b)s(o)s(ol)p 186 711 V 38 w(p)s(oin)m(t)5 b Fm(,)27 +b(b)r(ecause)h Ff(INVALID_POINT)e Fm(isn't)i(de\014ned,)g(when)g(the)g +(declaration)e(is)i(read)e(b)n(y)i(the)g(compiler.)p +0 803 3900 4 v 0 960 a Fn(h)14 b Fm(De\014ne)28 b Fk(b)s(o)s(ol)p +489 960 29 5 v 39 w(p)s(oin)m(t)k Fm(functions)j Fl(269)15 b Fn(i)23 b(\021)83 1060 y Fk(b)s(o)s(ol)p 269 1060 V 38 w(p)s(oin)m(t)13 b Fm(::)8 b Fk(b)s(o)s(ol)p 774 1060 V 39 w(p)s(oin)m(t)t Fm(\()14 b(\))83 1160 y Fn(f)166 @@ -8900,70 +8978,71 @@ Fe(:)p Fi(pt)35 b Fm(=)23 b Fi(ar)l(g)12 b Fe(:)p Fi(fourth)f Fe(:)p Fi(pt)h Fm(;)166 4065 y Fn(g)83 4165 y(g)p Fm(;)p eop end -%%Page: 73 73 -TeXDict begin 73 72 bop 0 83 a Fn(x)p Fm(271)140 b Fl(3DLDFPR)n(G)602 -b(DEF)-8 b(A)n(UL)i(T)23 b(CONSTR)n(UCTOR)g(F)n(OR)h -Fk(BOOL)p 2681 83 29 4 v 34 w(POINT)p 3029 83 V 34 w(QUADR)m(UPLE)143 -b Fm(73)0 263 y Fk(271.)94 b(Default)32 b(Constructor)h(for)f(b)s(o)s -(ol)p 1478 263 V 32 w(p)s(oin)m(t)p 1728 263 V 34 w(quadruple.)p -0 362 1643 4 v 1738 395 a(Begin)f(Log)p 2257 362 V 83 -536 a Fm(LDF)25 b(2003.06.1.)32 b(Added)25 b(this)f(section.)36 -b(Rede\014ned)24 b(the)h(default)f(constructor)f Fk(b)s(o)s(ol)p -2818 536 29 5 v 38 w(p)s(oin)m(t)p 3074 536 V 40 w(quadruple)5 +%%Page: 74 74 +TeXDict begin 74 73 bop 0 83 a Fm(74)140 b Fl(DEF)-8 +b(A)n(UL)i(T)24 b(CONSTR)n(UCTOR)f(F)n(OR)g Fk(BOOL)p +1614 83 29 4 v 34 w(POINT)p 1962 83 V 35 w(QUADR)m(UPLE)603 +b Fl(3DLDFPR)n(G)142 b Fn(x)p Fm(271)0 263 y Fk(271.)94 +b(Default)32 b(Constructor)h(for)f(b)s(o)s(ol)p 1478 +263 V 32 w(p)s(oin)m(t)p 1728 263 V 34 w(quadruple.)p +0 362 1779 4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm(LDF)25 +b(2003.06.1.)32 b(Added)25 b(this)f(section.)36 b(Rede\014ned)24 +b(the)h(default)f(constructor)f Fk(b)s(o)s(ol)p 2818 +535 29 5 v 38 w(p)s(oin)m(t)p 3074 535 V 40 w(quadruple)5 b Fm(\()p Fk(v)m(oid)g Fm(\),)26 b(so)0 635 y(that)e Fi(\014rst)11 b Fm(,)24 b Fi(se)l(c)l(ond)13 b Fm(,)25 b Fi(thir)l(d)13 b Fm(,)24 b(and)f Fi(fourth)35 b Fm(are)22 b(all)h(set)g(to)h Ff(INVALID_BOOL_PO)o(INT)m Fm(.)36 b(In)23 b(order)f(to)h(do)g(this,)i(it)f(w)n(as)e(necessary)0 -735 y(to)31 b(remo)n(v)n(e)e(the)i(de\014nition)h(from)e(the)i -(declaration)d(of)i Fk(b)s(o)s(ol)p 1973 735 V 39 w(p)s(oin)m(t)p -2230 735 V 39 w(quadruple)5 b Fm(,)32 b(b)r(ecause)f(when)g(the)g +734 y(to)31 b(remo)n(v)n(e)e(the)i(de\014nition)h(from)e(the)i +(declaration)d(of)i Fk(b)s(o)s(ol)p 1973 734 V 39 w(p)s(oin)m(t)p +2230 734 V 39 w(quadruple)5 b Fm(,)32 b(b)r(ecause)f(when)g(the)g (compiler)g(sees)0 834 y(it,)d Ff(INVALID_BOOL_POI)o(NT)e -Fm(isn't)i(de\014ned)g(y)n(et.)p 0 926 1678 4 v 1773 -959 a Fk(End)k(Log)p 2222 926 V 0 1084 a Fn(h)14 b Fm(De\014ne)28 -b Fk(b)s(o)s(ol)p 489 1084 29 5 v 39 w(p)s(oin)m(t)p -746 1084 V 39 w(quadruple)33 b Fm(functions)j Fl(271)15 -b Fn(i)23 b(\021)83 1183 y Fk(b)s(o)s(ol)p 269 1183 V -38 w(p)s(oin)m(t)p 525 1183 V 40 w(quadruple)14 b Fm(::)8 -b Fk(b)s(o)s(ol)p 1233 1183 V 39 w(p)s(oin)m(t)p 1490 -1183 V 39 w(quadruple)d Fm(\()15 b(\))83 1283 y(:)51 -b Fi(\014rst)11 b Fm(\()p Ff(INVALID_BOOL_POINT)m Fm(\))p -Fe(;)49 b Fi(se)l(c)l(ond)14 b Fm(\()p Ff(INVALID_BOOL_POI)o(NT)n -Fm(\))p Fe(;)49 b Fi(thir)l(d)13 b Fm(\()p Ff(INVALID_BOOL_POIN)o(T)n +Fm(isn't)i(de\014ned)g(y)n(et.)p 0 926 3900 4 v 0 1083 +a Fn(h)14 b Fm(De\014ne)28 b Fk(b)s(o)s(ol)p 489 1083 +29 5 v 39 w(p)s(oin)m(t)p 746 1083 V 39 w(quadruple)33 +b Fm(functions)j Fl(271)15 b Fn(i)23 b(\021)83 1182 y +Fk(b)s(o)s(ol)p 269 1182 V 38 w(p)s(oin)m(t)p 525 1182 +V 40 w(quadruple)14 b Fm(::)8 b Fk(b)s(o)s(ol)p 1233 +1182 V 39 w(p)s(oin)m(t)p 1490 1182 V 39 w(quadruple)d +Fm(\()15 b(\))83 1282 y(:)51 b Fi(\014rst)11 b Fm(\()p +Ff(INVALID_BOOL_POINT)m Fm(\))p Fe(;)49 b Fi(se)l(c)l(ond)14 +b Fm(\()p Ff(INVALID_BOOL_POI)o(NT)n Fm(\))p Fe(;)49 +b Fi(thir)l(d)13 b Fm(\()p Ff(INVALID_BOOL_POIN)o(T)n Fm(\))p Fe(;)249 1382 y Fi(fourth)e Fm(\()p Ff(INVALID_BOOL_POIN)o(T)n Fm(\))28 b Fn(f)14 b(g)0 1490 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f -(section)i(589.)0 1690 y Fk(272.)94 b(b)s(o)s(ol)p 453 -1690 29 4 v 33 w(real)p 642 1690 V 34 w(p)s(oin)m(t.)h +(section)i(589.)0 1689 y Fk(272.)94 b(b)s(o)s(ol)p 453 +1689 29 4 v 33 w(real)p 642 1689 V 34 w(p)s(oin)m(t.)h Fm([)p Fh(LDF)25 b(2002.04.10.)p Fm(])61 b(Added)28 b(this)g(t)n(yp)r (e.)37 b Fk(Line)13 b Fm(::)8 b Fi(interse)l(ction)p -2986 1690 26 4 v 31 w(p)l(oint)13 b Fm(\()h(\))28 b(returns)e(a)0 +2986 1689 26 4 v 31 w(p)l(oint)13 b Fm(\()h(\))28 b(returns)e(a)0 1789 y Fk(b)s(o)s(ol)p 186 1789 29 5 v 38 w(real)p 380 1789 V 41 w(p)s(oin)m(t)t Fm(.)36 b(I)23 b(ma)n(y)h(c)n(hange)e Fk(P)m(oin)m(t)14 b Fm(::)8 b Fi(interse)l(ction)p 1916 1789 26 4 v 31 w(p)l(oint)k Fm(\()i(\))25 b(so)e(that)h(it)g(calls)f Fk(Line)13 b Fm(::)8 b Fi(interse)l(ction)p 3445 1789 -V 31 w(p)l(oint)13 b Fm(\()h(\))24 b(and)0 1889 y(returns)j(a)g -Fk(b)s(o)s(ol)p 542 1889 29 5 v 39 w(real)p 737 1889 +V 31 w(p)l(oint)13 b Fm(\()h(\))24 b(and)0 1888 y(returns)j(a)g +Fk(b)s(o)s(ol)p 542 1888 29 5 v 39 w(real)p 737 1888 V 40 w(p)s(oin)m(t)t Fm(,)h(to)r(o.)83 1988 y([)p Fh(LDF)d(2002.10.26.) p Fm(])61 b(!!)37 b(KLUDGE:)28 b Fj(\\newline)c Fm(inserted)j(in)h(the) g(text)g(ab)r(o)n(v)n(e)e(to)i(a)n(v)n(oid)e(o)n(v)n(erfull)g(b)r(o)n -(xes.)0 2113 y Fn(h)14 b Fm(T)n(yp)r(e)28 b(de\014nitions)35 -b Fl(12)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2213 y Fk(struct)33 -b(b)s(o)s(ol)p 548 2213 V 39 w(real)p 743 2213 V 40 w(p)s(oin)m(t)f -Fn(f)166 2312 y Fk(b)s(o)s(ol)f Fe(b)o Fm(;)166 2412 -y Fk(real)i Fe(r)r Fm(;)166 2512 y Fk(P)m(oin)m(t)g Fi(pt)12 -b Fm(;)166 2636 y Fk(b)s(o)s(ol)p 352 2636 V 38 w(real)p -546 2636 V 41 w(p)s(oin)m(t)t Fm(\()i(\);)166 b Fe(=)p +(xes.)0 2112 y Fn(h)14 b Fm(T)n(yp)r(e)28 b(de\014nitions)35 +b Fl(12)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2212 y Fk(struct)33 +b(b)s(o)s(ol)p 548 2212 V 39 w(real)p 743 2212 V 40 w(p)s(oin)m(t)f +Fn(f)166 2312 y Fk(b)s(o)s(ol)f Fe(b)o Fm(;)166 2411 +y Fk(real)i Fe(r)r Fm(;)166 2511 y Fk(P)m(oin)m(t)g Fi(pt)12 +b Fm(;)166 2635 y Fk(b)s(o)s(ol)p 352 2635 V 38 w(real)p +546 2635 V 41 w(p)s(oin)m(t)t Fm(\()i(\);)166 b Fe(=)p Fn(\003)41 b Fm(Default)28 b(constructor.)49 b Fn(\003)p -Fe(=)166 2761 y Fk(b)s(o)s(ol)p 352 2761 V 38 w(real)p -546 2761 V 41 w(p)s(oin)m(t)t Fm(\()p Fk(const)33 b(b)s(o)s(ol)p -1274 2761 V 38 w(real)p 1468 2761 V 40 w(p)s(oin)m(t)f +Fe(=)166 2760 y Fk(b)s(o)s(ol)p 352 2760 V 38 w(real)p +546 2760 V 41 w(p)s(oin)m(t)t Fm(\()p Fk(const)33 b(b)s(o)s(ol)p +1274 2760 V 38 w(real)p 1468 2760 V 40 w(p)s(oin)m(t)f Fm(&)p Fi(brp)10 b Fm(\))166 2860 y(:)37 b Fe(b)p Fm(\()p Fi(brp)10 b Fe(:b)p Fm(\))p Fe(;)42 b(r)r Fm(\()p Fi(brp)11 b Fe(:r)s Fm(\))p Fe(;)41 b Fi(pt)13 b Fm(\()p Fi(brp)d Fe(:)p Fi(pt)i Fm(\))28 b Fn(f)14 b(g)165 b Fe(=)p Fn(\003)41 b Fm(Cop)n(y)26 b(constructor.)14 b Fn(\003)p Fe(=)166 -2985 y Fk(b)s(o)s(ol)p 352 2985 V 38 w(real)p 546 2985 +2984 y Fk(b)s(o)s(ol)p 352 2984 V 38 w(real)p 546 2984 V 41 w(p)s(oin)m(t)t Fm(\()p Fk(const)33 b(b)s(o)s(ol)d Fm(&)p Fi(bb)10 b Fe(;)k Fk(const)32 b(real)h Fm(&)o Fi(rr)13 b Fe(;)h Fk(const)33 b(P)m(oin)m(t)g Fm(&)o @@ -8972,116 +9051,113 @@ b Fi(pt)12 b Fm(\()p Fi(ppt)h Fm(\))28 b Fn(f)14 b(g)165 b Fe(=)p Fn(\003)40 b Fm(Construcor)26 b(with)i Fk(b)s(o)s(ol)s Fm(,)g Fk(real)5 b Fm(,)27 b(and)h Fk(P)m(oin)m(t)33 -b Fm(argumen)n(ts.)49 b Fn(\003)p Fe(=)166 3209 y Fk(v)m(oid)33 +b Fm(argumen)n(ts.)49 b Fn(\003)p Fe(=)166 3208 y Fk(v)m(oid)33 b(op)s(erator)t Fm(=\()p Fk(const)g(b)s(o)s(ol)p 1269 -3209 V 38 w(real)p 1463 3209 V 40 w(p)s(oin)m(t)f Fm(&)p +3208 V 38 w(real)p 1463 3208 V 40 w(p)s(oin)m(t)f Fm(&)p Fi(brp)10 b Fm(\))166 b Fe(=)p Fn(\003)41 b Fm(Assignmen)n(t)27 -b(op)r(erator.)49 b Fn(\003)p Fe(=)166 3309 y Fn(f)249 -3408 y Fe(b)23 b Fm(=)f Fi(brp)11 b Fe(:b)o Fm(;)249 -3508 y Fe(r)26 b Fm(=)d Fi(brp)10 b Fe(:r)r Fm(;)249 +b(op)r(erator.)49 b Fn(\003)p Fe(=)166 3308 y Fn(f)249 +3407 y Fe(b)23 b Fm(=)f Fi(brp)11 b Fe(:b)o Fm(;)249 +3507 y Fe(r)26 b Fm(=)d Fi(brp)10 b Fe(:r)r Fm(;)249 3607 y Fi(pt)35 b Fm(=)23 b Fi(brp)10 b Fe(:)p Fi(pt)i -Fm(;)166 3707 y Fn(g)83 3807 y(g)p Fm(;)p eop end -%%Page: 74 74 -TeXDict begin 74 73 bop 0 83 a Fm(74)140 b Fl(DEF)-8 -b(A)n(UL)i(T)24 b(CONSTR)n(UCTOR)f(F)n(OR)g Fk(BOOL)p -1614 83 29 4 v 34 w(REAL)p 1912 83 V 34 w(POINT)957 b -Fl(3DLDFPR)n(G)142 b Fn(x)p Fm(273)0 263 y Fk(273.)94 -b(Default)32 b(Constructor)h(for)f(b)s(o)s(ol)p 1478 -263 V 32 w(real)p 1666 263 V 35 w(p)s(oin)m(t.)p 0 362 -1643 4 v 1738 395 a(Begin)f(Log)p 2257 362 V 83 536 a -Fm(LDF)c(2003.06.1.)34 b(Added)27 b(this)g(section.)36 -b(Rede\014ned)27 b(the)g(default)g(constructor)e Fk(b)s(o)s(ol)p -2837 536 29 5 v 39 w(real)p 3032 536 V 40 w(p)s(oin)m(t)t +Fm(;)166 3706 y Fn(g)83 3806 y(g)p Fm(;)p eop end +%%Page: 75 75 +TeXDict begin 75 74 bop 0 83 a Fn(x)p Fm(273)140 b Fl(3DLDFPR)n(G)956 +b(DEF)-8 b(A)n(UL)i(T)24 b(CONSTR)n(UCTOR)f(F)n(OR)g +Fk(BOOL)p 3035 83 29 4 v 34 w(REAL)p 3333 83 V 35 w(POINT)141 +b Fm(75)0 263 y Fk(273.)94 b(Default)32 b(Constructor)h(for)f(b)s(o)s +(ol)p 1478 263 V 32 w(real)p 1666 263 V 35 w(p)s(oin)m(t.)p +0 362 1779 4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm(LDF)27 +b(2003.06.1.)34 b(Added)27 b(this)g(section.)36 b(Rede\014ned)27 +b(the)g(default)g(constructor)e Fk(b)s(o)s(ol)p 2837 +535 29 5 v 39 w(real)p 3032 535 V 40 w(p)s(oin)m(t)t Fm(\()p Fk(v)m(oid)5 b Fm(\),)27 b(so)f(that)h Fe(b)0 635 y Fm(is)i(set)g(to)f Fi(false)12 b Fm(,)29 b Fe(r)j Fm(is)d(set)g(to)g Ff(INVALID_REAL)o Fm(,)g(and)g Fi(pt)41 b Fm(is)29 b(set)g(to)g Ff(INVALID_BOOL_PO)o(INT)m Fm(.)41 -b(In)29 b(order)f(to)h(do)f(this,)i(it)f(w)n(as)0 735 +b(In)29 b(order)f(to)h(do)f(this,)i(it)f(w)n(as)0 734 y(necessary)21 b(to)i(remo)n(v)n(e)f(the)i(de\014nition)f(from)g(the)h -(declaration)d(of)i Fk(b)s(o)s(ol)p 2274 735 V 39 w(real)p -2469 735 V 40 w(p)s(oin)m(t)t Fm(,)h(b)r(ecause)f(when)h(the)f +(declaration)d(of)i Fk(b)s(o)s(ol)p 2274 734 V 39 w(real)p +2469 734 V 40 w(p)s(oin)m(t)t Fm(,)h(b)r(ecause)f(when)h(the)f (compiler)g(sees)0 834 y(it,)28 b Ff(INVALID_REAL)f Fm(and)h Ff(INVALID_POINT)e Fm(aren't)h(de\014ned)h(y)n(et.)p -0 926 1678 4 v 1773 959 a Fk(End)k(Log)p 2222 926 V 0 -1084 a Fn(h)14 b Fm(De\014ne)28 b Fk(b)s(o)s(ol)p 489 -1084 29 5 v 39 w(real)p 684 1084 V 40 w(p)s(oin)m(t)k -Fm(functions)j Fl(273)15 b Fn(i)23 b(\021)83 1183 y Fk(b)s(o)s(ol)p -269 1183 V 38 w(real)p 463 1183 V 41 w(p)s(oin)m(t)12 -b Fm(::)c Fk(b)s(o)s(ol)p 970 1183 V 39 w(real)p 1165 -1183 V 40 w(p)s(oin)m(t)t Fm(\()14 b(\))83 1283 y(:)37 +0 926 3900 4 v 0 1083 a Fn(h)14 b Fm(De\014ne)28 b Fk(b)s(o)s(ol)p +489 1083 29 5 v 39 w(real)p 684 1083 V 40 w(p)s(oin)m(t)k +Fm(functions)j Fl(273)15 b Fn(i)23 b(\021)83 1182 y Fk(b)s(o)s(ol)p +269 1182 V 38 w(real)p 463 1182 V 41 w(p)s(oin)m(t)12 +b Fm(::)c Fk(b)s(o)s(ol)p 970 1182 V 39 w(real)p 1165 +1182 V 40 w(p)s(oin)m(t)t Fm(\()14 b(\))83 1282 y(:)37 b Fe(b)p Fm(\()p Fi(false)12 b Fm(\))p Fe(;)41 b(r)s Fm(\()p Ff(INVALID_REAL)p Fm(\))p Fe(;)h Fi(pt)12 b Fm(\()p -Ff(INVALID_POINT)o Fm(\))28 b Fn(f)14 b(g)0 1391 y Fl(This)23 -b(co)r(de)i(is)e(used)h(in)f(section)i(589.)0 1590 y +Ff(INVALID_POINT)o Fm(\))28 b Fn(f)14 b(g)0 1390 y Fl(This)23 +b(co)r(de)i(is)e(used)h(in)f(section)i(589.)0 1589 y Fk(274.)94 b(Global)30 b(constan)m(ts.)96 b Fm([)p Fh(LDF)25 b(2002.09.25.)p Fm(])59 b(Changed)26 b(this)h(section.)36 b(I)26 b(no)n(w)g(kno)n(w)g(that)g Fi(c)l(onsts)38 b -Fm(ha)n(v)n(e)25 b(in)n(ternal)0 1690 y(link)-5 b(age)27 +Fm(ha)n(v)n(e)25 b(in)n(ternal)0 1689 y(link)-5 b(age)27 b(b)n(y)g(default)h(and)g(that)g(I)f(m)n(ust)h(declare)f(them)h(with)g Fk(extern)33 b Fm(in)28 b(order)e(to)h(giv)n(e)g(them)h(external)f -(link)-5 b(age.)0 1814 y Fn(h)14 b Fm(Global)27 b(constan)n(ts)34 -b Fl(19)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1914 y Fk(extern)33 +(link)-5 b(age.)0 1813 y Fn(h)14 b Fm(Global)27 b(constan)n(ts)34 +b Fl(19)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1913 y Fk(extern)33 b(const)f(P)m(oin)m(t)h Ff(INVALID_POINT)o Fm(\()p Ff(INVALID_REAL)p Fe(;)14 b Ff(INVALID_REAL)o Fe(;)g Ff(INVALID_REAL)o Fm(\);)83 2013 y Fk(extern)33 b(const)f(P)m(oin)m(t)h Fi(origin)12 b Fm(\(0)p Fe(;)i Fm(0)o Fe(;)g Fm(0\);)83 -2113 y Fk(extern)33 b(const)f(b)s(o)s(ol)p 819 2113 V +2112 y Fk(extern)33 b(const)f(b)s(o)s(ol)p 819 2112 V 39 w(p)s(oin)m(t)g Ff(INVALID_BOOL_PO)o(INT)n Fm(\()p -Fi(false)12 b Fe(;)i Ff(INVALID_POINT)n Fm(\);)83 2213 -y Fk(extern)33 b(const)f(b)s(o)s(ol)p 819 2213 V 39 w(p)s(oin)m(t)p -1076 2213 V 39 w(pair)h Ff(INVALID_BOOL_POI)o(NT_)o(PA)o(IR)n +Fi(false)12 b Fe(;)i Ff(INVALID_POINT)n Fm(\);)83 2212 +y Fk(extern)33 b(const)f(b)s(o)s(ol)p 819 2212 V 39 w(p)s(oin)m(t)p +1076 2212 V 39 w(pair)h Ff(INVALID_BOOL_POI)o(NT_)o(PA)o(IR)n Fm(\()p Ff(INVALID_BOOL_POIN)o(T)n Fe(;)249 2312 y Ff(INVALID_BOOL_POI) -o(NT)n Fm(\);)83 2412 y Fk(extern)g(const)f(b)s(o)s(ol)p -819 2412 V 39 w(real)p 1014 2412 V 40 w(p)s(oin)m(t)g +o(NT)n Fm(\);)83 2411 y Fk(extern)g(const)f(b)s(o)s(ol)p +819 2411 V 39 w(real)p 1014 2411 V 40 w(p)s(oin)m(t)g Ff(INVALID_BOOL_REA)o(L_)o(POI)o(NT)n Fm(\()p Fi(false)12 b Fe(;)i Ff(INVALID_REAL)o Fe(;)g Ff(INVALID_POINT)o -Fm(\);)83 2512 y Fk(extern)33 b(const)f(b)s(o)s(ol)p -819 2512 V 39 w(p)s(oin)m(t)p 1076 2512 V 39 w(quadruple)h +Fm(\);)83 2511 y Fk(extern)33 b(const)f(b)s(o)s(ol)p +819 2511 V 39 w(p)s(oin)m(t)p 1076 2511 V 39 w(quadruple)h Ff(INVALID_BOOL_POIN)o(T_)o(QUA)o(DR)o(UPL)o(E)n Fm(\()p -Ff(INVALID_BOOL_POIN)o(T)n Fe(;)249 2611 y Ff(INVALID_BOOL_POI)o(NT)n +Ff(INVALID_BOOL_POIN)o(T)n Fe(;)249 2610 y Ff(INVALID_BOOL_POI)o(NT)n Fe(;)14 b Ff(INVALID_BOOL_POI)o(NT)n Fe(;)g Ff(INVALID_BOOL_PO)o(INT)n -Fm(\);)0 2810 y Fk(275.)0 2935 y Fn(h)g Fm(Declarations)26 +Fm(\);)0 2810 y Fk(275.)0 2934 y Fn(h)g Fm(Declarations)26 b(for)h(the)h(header)f(\014le)36 b Fl(18)14 b Fn(i)23 -b Fm(+)p Fn(\021)83 3035 y Fk(extern)33 b(const)f(P)m(oin)m(t)h +b Fm(+)p Fn(\021)83 3034 y Fk(extern)33 b(const)f(P)m(oin)m(t)h Ff(INVALID_POINT)o Fm(;)83 3134 y Fk(extern)g(const)f(P)m(oin)m(t)h -Fi(origin)12 b Fm(;)83 3234 y Fk(extern)33 b(const)f(b)s(o)s(ol)p -819 3234 V 39 w(p)s(oin)m(t)g Ff(INVALID_BOOL_PO)o(INT)n +Fi(origin)12 b Fm(;)83 3233 y Fk(extern)33 b(const)f(b)s(o)s(ol)p +819 3233 V 39 w(p)s(oin)m(t)g Ff(INVALID_BOOL_PO)o(INT)n Fm(;)83 3333 y Fk(extern)h(const)f(b)s(o)s(ol)p 819 3333 V 39 w(p)s(oin)m(t)p 1076 3333 V 39 w(pair)h Ff(INVALID_BOOL_POI)o(NT_) -o(PA)o(IR)n Fm(;)83 3433 y Fk(extern)g(const)f(b)s(o)s(ol)p -819 3433 V 39 w(real)p 1014 3433 V 40 w(p)s(oin)m(t)g -Ff(INVALID_BOOL_REA)o(L_)o(POI)o(NT)n Fm(;)83 3533 y -Fk(extern)h(const)f(b)s(o)s(ol)p 819 3533 V 39 w(p)s(oin)m(t)p -1076 3533 V 39 w(quadruple)h Ff(INVALID_BOOL_POIN)o(T_)o(QUA)o(DR)o -(UPL)o(E)n Fm(;)0 3732 y Fk(276.)94 b(Constructors)32 +o(PA)o(IR)n Fm(;)83 3432 y Fk(extern)g(const)f(b)s(o)s(ol)p +819 3432 V 39 w(real)p 1014 3432 V 40 w(p)s(oin)m(t)g +Ff(INVALID_BOOL_REA)o(L_)o(POI)o(NT)n Fm(;)83 3532 y +Fk(extern)h(const)f(b)s(o)s(ol)p 819 3532 V 39 w(p)s(oin)m(t)p +1076 3532 V 39 w(quadruple)h Ff(INVALID_BOOL_POIN)o(T_)o(QUA)o(DR)o +(UPL)o(E)n Fm(;)0 3731 y Fk(276.)94 b(Constructors)32 b(and)h(setting)d(functions.)p eop end -%%Page: 75 75 -TeXDict begin 75 74 bop 0 83 a Fn(x)p Fm(277)140 b Fl(3DLDFPR)n(G)1408 -b(CONSTR)n(UCTORS)23 b(AND)h(SETTING)g(FUNCTIONS)141 -b Fm(75)0 263 y Fk(277.)94 b Fm(The)26 b Fk(v)-5 b(alarra)m(ys)33 -b Fm(I)26 b(use)f(for)h(the)g(v)-5 b(arious)24 b(sets)i(of)g(co)r -(ordinates)e(can)i(b)r(e)g(declared)f(in)h(the)g Fk(class)31 -b Fm(declaration,)24 b(but)0 363 y(neither)29 b(can)g(their)f(size)h(b) -r(e)g(set)g(nor)g(can)f(they)h(b)r(e)h(initialized.)41 -b Fi(nul)t(l)p 2208 363 26 4 v 30 w(c)l(o)l(or)l(dinates)h -Fm(is)28 b(de\014ned)i(in)f Fj(pspglb.web)c Fm(and)k(is)f(a)0 -462 y Fk(v)-5 b(alarra)m(y)35 b Fm(of)27 b Fk(reals)32 -b Fm(with)27 b(4)f(elemen)n(ts)h(=)c(0.)36 b(Setting)27 -b Fi(world)p 1959 462 V 32 w(c)l(o)l(or)l(dinates)12 +%%Page: 76 76 +TeXDict begin 76 75 bop 0 83 a Fm(76)140 b Fl(CONSTR)n(UCTORS)23 +b(AND)g(SETTING)i(FUNCTIONS)1408 b(3DLDFPR)n(G)142 b +Fn(x)p Fm(277)0 263 y Fk(277.)94 b Fm(The)26 b Fk(v)-5 +b(alarra)m(ys)33 b Fm(I)26 b(use)f(for)h(the)g(v)-5 b(arious)24 +b(sets)i(of)g(co)r(ordinates)e(can)i(b)r(e)g(declared)f(in)h(the)g +Fk(class)31 b Fm(declaration,)24 b(but)0 363 y(neither)29 +b(can)g(their)f(size)h(b)r(e)g(set)g(nor)g(can)f(they)h(b)r(e)h +(initialized.)41 b Fi(nul)t(l)p 2208 363 26 4 v 30 w(c)l(o)l(or)l +(dinates)h Fm(is)28 b(de\014ned)i(in)f Fj(pspglb.web)c +Fm(and)k(is)f(a)0 462 y Fk(v)-5 b(alarra)m(y)35 b Fm(of)27 +b Fk(reals)32 b Fm(with)27 b(4)f(elemen)n(ts)h(=)c(0.)36 +b(Setting)27 b Fi(world)p 1959 462 V 32 w(c)l(o)l(or)l(dinates)12 b Fm(,)27 b(etc.)37 b(to)27 b Fi(nul)t(l)p 2859 462 V 30 w(c)l(o)l(or)l(dinates)39 b Fm(mak)n(es)26 b(them)i(the)0 562 y(righ)n(t)f(size.)0 761 y Fk(278.)94 b(Initialize)31 -b(co)s(ordinates)g(and)i(limits.)p 0 837 1643 4 v 1738 -870 a(Begin)e(Log)p 2257 837 V 83 1010 a Fm([)p Fh(LDF)25 -b(2002.4.3.)p Fm(])54 b(No)n(w)20 b(setting)h Fi(world)p -1304 1010 26 4 v 31 w(c)l(o)l(or)l(dinates)12 b Fm([3],)22 -b Fi(user)p 2033 1010 V 31 w(c)l(o)l(or)l(dinates)12 -b Fm([3)o(],)23 b(and)d Fi(view)p 2920 1010 V 32 w(c)l(o)l(or)l -(dinates)12 b Fm([3)o(])24 b(=)e(1.)34 b(It)21 b(\014xes)0 -1110 y(a)27 b(bug)h(that)f(sho)n(w)n(ed)g(up)h(when)g(I)f(tried)h(to)f -(shift)i(a)e Fk(P)m(oin)m(t)33 b Fm(with)28 b(co)r(ordinates)e -Fn(\021)d Fm(0.)p 0 1202 1678 4 v 1773 1234 a Fk(End)32 -b(Log)p 2222 1202 V 0 1359 a Fn(h)14 b Fm(Initialize)28 +b(co)s(ordinates)g(and)i(limits.)p 0 837 1779 4 v 1874 +870 a(Log)p 2122 837 V 83 1010 a Fm([)p Fh(LDF)25 b(2002.4.3.)p +Fm(])54 b(No)n(w)20 b(setting)h Fi(world)p 1304 1010 +26 4 v 31 w(c)l(o)l(or)l(dinates)12 b Fm([3],)22 b Fi(user)p +2033 1010 V 31 w(c)l(o)l(or)l(dinates)12 b Fm([3)o(],)23 +b(and)d Fi(view)p 2920 1010 V 32 w(c)l(o)l(or)l(dinates)12 +b Fm([3)o(])24 b(=)e(1.)34 b(It)21 b(\014xes)0 1110 y(a)27 +b(bug)h(that)f(sho)n(w)n(ed)g(up)h(when)g(I)f(tried)h(to)f(shift)i(a)e +Fk(P)m(oin)m(t)33 b Fm(with)28 b(co)r(ordinates)e Fn(\021)d +Fm(0.)p 0 1202 3900 4 v 0 1359 a Fn(h)14 b Fm(Initialize)28 b(co)r(ordinates)e(and)h(limits)36 b Fl(278)15 b Fn(i)23 b(\021)0 1459 y Fm(#)p Fk(ifdef)41 b Ff(__DECCXX)83 1558 y Fi(world)p 283 1558 26 4 v 32 w(c)l(o)l(or)l(dinates)35 @@ -9119,64 +9195,62 @@ 3991 y Fl(See)24 b(also)g(sections)g(282)h(and)f(286.)0 4099 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(264.)p eop end -%%Page: 76 76 -TeXDict begin 76 75 bop 0 83 a Fm(76)140 b Fl(DEF)-8 -b(A)n(UL)i(T)24 b(VERSION)2305 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(280)0 263 y Fk(280.)0 388 y Fn(h)14 b Fm(De\014ne)28 +%%Page: 77 77 +TeXDict begin 77 76 bop 0 83 a Fn(x)p Fm(280)140 b Fl(3DLDFPR)n(G)2305 +b(DEF)-8 b(A)n(UL)i(T)24 b(VERSION)141 b Fm(77)0 263 +y Fk(280.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(constructors)h Fl(280)14 b Fn(i)24 b(\021)83 487 +y Fk(P)m(oin)m(t)13 b Fm(::)8 b Fk(P)m(oin)m(t)e Fm(\()14 +b(\))83 587 y Fn(f)166 686 y(h)g Fm(Initialize)28 b(co)r(ordinates)e +(and)h(limits)36 b Fl(278)15 b Fn(i)166 786 y Fi(on)p +260 786 26 4 v 31 w(fr)l(e)l(e)p 419 786 V 31 w(stor)l(e)33 +b Fm(=)23 b Fi(false)11 b Fm(;)166 886 y Fi(do)p 255 +886 V 31 w(output)35 b Fm(=)22 b Fi(true)10 b Fm(;)83 +985 y Fn(g)0 1093 y Fl(See)24 b(also)g(sections)g(283)h(and)f(287.)0 +1201 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(589.)0 +1400 y Fk(281.)94 b(Three)32 b(real)g(v)-5 b(alues.)0 +1600 y(282.)94 b(Constructor.)p 0 1675 1779 4 v 1874 +1708 a(Log)p 2122 1675 V 83 1849 a Fm([)p Fh(LDF)25 b(2002.12.01.)p +Fm(])61 b(Made)27 b(argumen)n(ts)g Fk(const)5 b Fm(.)p +0 1941 3900 4 v 0 2098 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(constructors)g Fl(279)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2197 y Fk(P)m(oin)m(t)5 b Fm(\()p Fk(const)33 b(real)f +Fe(x)q(;)14 b Fk(const)32 b(real)h Fe(y)25 b Fm(=)e Ff(CURR_Y)r +Fe(;)14 b Fk(const)32 b(real)h Fe(z)26 b Fm(=)d Ff(CURR_Z)r +Fm(\);)0 2397 y Fk(283.)0 2521 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(constructors)h Fl(280)14 b Fn(i)24 -b(\021)83 487 y Fk(P)m(oin)m(t)13 b Fm(::)8 b Fk(P)m(oin)m(t)e -Fm(\()14 b(\))83 587 y Fn(f)166 686 y(h)g Fm(Initialize)28 +b Fm(+)p Fn(\021)83 2621 y Fk(P)m(oin)m(t)13 b Fm(::)8 +b Fk(P)m(oin)m(t)e Fm(\()p Fk(const)33 b(real)f Fe(x)q(;)14 +b Fk(const)32 b(real)h Fe(y)r(;)14 b Fk(const)33 b(real)f +Fe(z)s Fm(\))83 2720 y Fn(f)166 2820 y(h)14 b Fm(Initialize)28 b(co)r(ordinates)e(and)h(limits)36 b Fl(278)15 b Fn(i)166 -786 y Fi(on)p 260 786 26 4 v 31 w(fr)l(e)l(e)p 419 786 -V 31 w(stor)l(e)33 b Fm(=)23 b Fi(false)11 b Fm(;)166 -886 y Fi(do)p 255 886 V 31 w(output)35 b Fm(=)22 b Fi(true)10 -b Fm(;)83 985 y Fn(g)0 1093 y Fl(See)24 b(also)g(sections)g(283)h(and)f -(287.)0 1201 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(589.)0 -1400 y Fk(281.)94 b(Three)32 b(real)g(v)-5 b(alues.)0 -1599 y(282.)94 b(Constructor.)p 0 1675 1643 4 v 1738 -1708 a(Begin)31 b(Log)p 2257 1675 V 83 1848 a Fm([)p -Fh(LDF)25 b(2002.12.01.)p Fm(])61 b(Made)27 b(argumen)n(ts)g -Fk(const)5 b Fm(.)p 0 1940 1678 4 v 1773 1973 a Fk(End)32 -b(Log)p 2222 1940 V 0 2098 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(oin)m(t)33 b Fm(constructors)g Fl(279)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 2197 y Fk(P)m(oin)m(t)5 b Fm(\()p -Fk(const)33 b(real)f Fe(x)q(;)14 b Fk(const)32 b(real)h -Fe(y)25 b Fm(=)e Ff(CURR_Y)r Fe(;)14 b Fk(const)32 b(real)h -Fe(z)26 b Fm(=)d Ff(CURR_Z)r Fm(\);)0 2396 y Fk(283.)0 -2521 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b -Fm(constructors)h Fl(280)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -2620 y Fk(P)m(oin)m(t)13 b Fm(::)8 b Fk(P)m(oin)m(t)e -Fm(\()p Fk(const)33 b(real)f Fe(x)q(;)14 b Fk(const)32 -b(real)h Fe(y)r(;)14 b Fk(const)33 b(real)f Fe(z)s Fm(\))83 -2720 y Fn(f)166 2820 y(h)14 b Fm(Initialize)28 b(co)r(ordinates)e(and)h -(limits)36 b Fl(278)15 b Fn(i)166 2919 y Fi(on)p 260 -2919 26 4 v 31 w(fr)l(e)l(e)p 419 2919 V 31 w(stor)l(e)33 -b Fm(=)23 b Fi(false)11 b Fm(;)166 3019 y Fi(do)p 255 -3019 V 31 w(output)35 b Fm(=)22 b Fi(true)10 b Fm(;)0 -3119 y(#)p Fk(if)39 b Fm(0)165 b Fe(=)p Fn(\003)39 b -Fm([)p Fh(LDF)25 b(2002.10.23.)p Fm(])58 b Fi(user)p -1304 3119 V 30 w(tr)l(ansform)36 b Fm(is)25 b(not)h(curren)n(tly)e(in)h -(use.)36 b(It)26 b(is)f(in)n(tended)g(for)g(use)g(in)g(implemen)n(ting) -332 3218 y(user-de\014ned)i(co)r(ordinate)f(systems.)51 -b Fn(\003)p Fe(=)166 3318 y Fk(if)41 b Fm(\()p Fi(user)p +2920 y Fi(on)p 260 2920 26 4 v 31 w(fr)l(e)l(e)p 419 +2920 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(false)11 b Fm(;)166 +3019 y Fi(do)p 255 3019 V 31 w(output)35 b Fm(=)22 b +Fi(true)10 b Fm(;)0 3119 y(#)p Fk(if)39 b Fm(0)165 b +Fe(=)p Fn(\003)39 b Fm([)p Fh(LDF)25 b(2002.10.23.)p +Fm(])58 b Fi(user)p 1304 3119 V 30 w(tr)l(ansform)36 +b Fm(is)25 b(not)h(curren)n(tly)e(in)h(use.)36 b(It)26 +b(is)f(in)n(tended)g(for)g(use)g(in)g(implemen)n(ting)332 +3219 y(user-de\014ned)i(co)r(ordinate)f(systems.)51 b +Fn(\003)p Fe(=)166 3318 y Fk(if)41 b Fm(\()p Fi(user)p 452 3318 V 31 w(tr)l(ansform)11 b Fe(:)p Fi(is)p 928 -3318 V 31 w(identity)h Fm(\()i(\)\))0 3417 y(#)p Fk(endif)249 +3318 V 31 w(identity)h Fm(\()i(\)\))0 3418 y(#)p Fk(endif)249 3517 y Fi(world)p 449 3517 V 32 w(c)l(o)l(or)l(dinates)e Fm([0])23 b(=)f Fe(x)q Fm(;)166 3617 y Fi(world)p 366 3617 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([1])23 b(=)f -Fe(y)s Fm(;)166 3716 y Fi(world)p 366 3716 V 32 w(c)l(o)l(or)l(dinates) +Fe(y)s Fm(;)166 3717 y Fi(world)p 366 3717 V 32 w(c)l(o)l(or)l(dinates) 12 b Fm([2])23 b(=)f Fe(z)t Fm(;)166 3816 y Fi(world)p 366 3816 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([3])23 b(=)f(1;)83 3916 y Fn(g)0 4115 y Fk(284.)94 b(Setting)31 b(function.)p -0 4214 1643 4 v 1738 4247 a(Begin)g(Log)p 2257 4214 V -83 4387 a Fm([)p Fh(LDF)25 b(2002.12.01.)p Fm(])61 b(Made)27 +0 4214 1779 4 v 1874 4246 a(Log)p 2122 4214 V 83 4387 +a Fm([)p Fh(LDF)25 b(2002.12.01.)p Fm(])61 b(Made)27 b(argumen)n(ts)g Fk(const)5 b Fm(.)83 4487 y([)p Fh(LDF)25 b(2003.03.25.)p Fm(])62 b(Changed)28 b(this)h(function,)g(so)f(that)h (it)g(returns)f Fn(\003)o Fi(this)40 b Fm(instead)29 b(of)f Fk(v)m(oid)5 b Fm(.)40 b(This)28 b(mak)n(es)f(it)i(p)r(ossible)0 4586 y(to)e(c)n(hain)h(in)n(v)n(o)r(cations)e(of)h(this)h(function.)p -0 4678 1678 4 v 1773 4711 a Fk(End)k(Log)p 2222 4678 -V 0 4836 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +0 4678 3900 4 v 0 4835 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b(\021)83 4935 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(set)12 b Fm(\()p Fk(const)32 b(real)h Fe(x;)14 b Fk(const)33 b(real)f @@ -9191,24 +9265,24 @@ f(428,)h(429,)f(431,)g(433,)h(438,)f(440,)h(442,)f(444,)g(445,)h(447,)f (449,)g(451,)h(457,)f(461,)h(463,)f(466,)g(468,)166 5292 y(474,)g(477,)g(479,)g(481,)g(483,)g(485,)g(488,)g(492,)g(494,)g(496,)g -(498,)g(500,)g(502,)g(504,)g(507,)g(509,)g(513,)g(516,)g(523,)g(525,)g -(528,)g(and)g(529.)0 5400 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i -(264.)p eop end -%%Page: 77 77 -TeXDict begin 77 76 bop 0 83 a Fn(x)p Fm(285)140 b Fl(3DLDFPR)n(G)2254 -b(SETTING)24 b(FUNCTION)141 b Fm(77)0 263 y Fk(285.)0 -388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b -Fm(functions)j Fl(285)14 b Fn(i)24 b(\021)83 487 y Fk(const)32 -b(P)m(oin)m(t)h Fm(&)p Fk(P)m(oin)m(t)13 b Fm(::)8 b -Fi(set)13 b Fm(\()p Fk(const)32 b(real)h Fe(x;)14 b Fk(const)33 -b(real)f Fe(y)s(;)14 b Fk(const)32 b(real)h Fe(z)s Fm(\))83 -587 y Fn(f)166 686 y Fk(P)m(oin)m(t)g Fe(p)p Fm(\()p -Fe(x;)14 b(y)s(;)g(z)s Fm(\);)166 811 y Fn(\003)p Fi(this)34 -b Fm(=)23 b Fe(p)p Fm(;)166 911 y Fi(do)p 255 911 26 -4 v 31 w(output)35 b Fm(=)22 b Fi(true)10 b Fm(;)166 -1010 y Fk(return)33 b Fn(\003)p Fi(this)11 b Fm(;)166 -b Fe(=)p Fn(\003)41 b Fm(LDF)28 b(2003.03.25.)33 b(Added)28 -b(this.)37 b(F)-7 b(ormerly)g(,)27 b(the)h(return)f(v)-5 +(498,)g(500,)g(502,)g(504,)g(507,)g(509,)g(511,)g(513,)g(516,)g(523,)g +(525,)g(528,)g(and)g(529.)0 5400 y(This)f(co)r(de)i(is)e(used)h(in)f +(section)i(264.)p eop end +%%Page: 78 78 +TeXDict begin 78 77 bop 0 83 a Fm(78)140 b Fl(SETTING)24 +b(FUNCTION)2254 b(3DLDFPR)n(G)142 b Fn(x)p Fm(285)0 263 +y Fk(285.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b(\021)83 487 y +Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fk(P)m(oin)m(t)13 +b Fm(::)8 b Fi(set)13 b Fm(\()p Fk(const)32 b(real)h +Fe(x;)14 b Fk(const)33 b(real)f Fe(y)s(;)14 b Fk(const)32 +b(real)h Fe(z)s Fm(\))83 587 y Fn(f)166 686 y Fk(P)m(oin)m(t)g +Fe(p)p Fm(\()p Fe(x;)14 b(y)s(;)g(z)s Fm(\);)166 811 +y Fn(\003)p Fi(this)34 b Fm(=)23 b Fe(p)p Fm(;)166 911 +y Fi(do)p 255 911 26 4 v 31 w(output)35 b Fm(=)22 b Fi(true)10 +b Fm(;)166 1010 y Fk(return)33 b Fn(\003)p Fi(this)11 +b Fm(;)166 b Fe(=)p Fn(\003)41 b Fm(LDF)28 b(2003.03.25.)33 +b(Added)28 b(this.)37 b(F)-7 b(ormerly)g(,)27 b(the)h(return)f(v)-5 b(alue)28 b(w)n(as)e Fk(v)m(oid)5 b Fm(.)51 b Fn(\003)p Fe(=)83 1110 y Fn(g)0 1218 y Fl(See)23 b(also)g(sections)g(289,)g(292,) g(294,)h(296,)f(298,)g(300,)g(303,)g(305,)g(313,)g(315,)g(318,)h(320,)f @@ -9218,48 +9292,48 @@ (411,)g(413,)h(415,)f(417,)h(432,)f(434,)g(439,)166 1384 y(441,)g(443,)h(446,)f(448,)h(450,)f(452,)g(458,)h(462,)f(464,)h(467,)f (469,)g(475,)h(478,)f(480,)h(482,)f(484,)g(486,)h(489,)f(493,)g(495,)h -(497,)f(499,)h(501,)f(503,)g(505,)166 1467 y(508,)g(510,)h(517,)f(518,) -h(519,)f(520,)g(521,)h(522,)f(524,)h(526,)f(530,)g(531,)h(532,)f(533,)h -(534,)f(535,)g(536,)h(537,)f(538,)g(539,)h(540,)f(541,)h(601,)f(603,)g -(637,)166 1550 y(717,)g(780,)g(781,)g(789,)g(790,)g(798,)g(799,)g(817,) -g(818,)g(898,)g(901,)g(902,)g(and)g(903.)0 1658 y(This)f(co)r(de)i(is)e -(used)h(in)f(sections)i(589,)f(613,)g(650,)g(and)g(933.)0 -1857 y Fk(286.)94 b(Cop)m(y)33 b(constructor.)0 1982 -y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(constructors)g -Fl(279)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2081 y Fk(P)m(oin)m(t)5 -b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\);)0 -2280 y Fk(287.)0 2405 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 -b Fm(constructors)h Fl(280)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -2505 y Fk(P)m(oin)m(t)13 b Fm(::)8 b Fk(P)m(oin)m(t)e -Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\))83 -2604 y Fn(f)166 2704 y(h)14 b Fm(Initialize)28 b(co)r(ordinates)e(and)h -(limits)36 b Fl(278)15 b Fn(i)166 2803 y(\003)p Fi(this)34 -b Fm(=)23 b Fe(p)p Fm(;)166 2903 y Fi(on)p 260 2903 V -31 w(fr)l(e)l(e)p 419 2903 V 31 w(stor)l(e)33 b Fm(=)23 -b Fi(false)11 b Fm(;)166 3003 y Fi(do)p 255 3003 V 31 -w(output)35 b Fm(=)22 b Fi(true)10 b Fm(;)83 3102 y Fn(g)0 -3302 y Fk(288.)94 b(Setting)40 b(function.)95 b Fm([)p -Fh(LDF)25 b(2002.10.23.)p Fm(])68 b(This)35 b(function)h(is)e -(unnecessary)-7 b(,)36 b(b)r(ecause)e(it)i(do)r(es)e(nothing)h(that)0 -3401 y(the)24 b(assignmen)n(t)f(op)r(erator)f(can't)i(do.)35 -b(Ho)n(w)n(ev)n(er,)23 b(I'v)n(e)g(tried)h(to)g(use)f -Fi(set)12 b Fm(\()i(\))25 b(a)e(couple)g(of)h(times)g(with)h(a)e -Fk(P)m(oin)m(t)29 b Fm(argumen)n(t,)0 3501 y(so)e(it's)h(con)n(v)n -(enien)n(t)e(to)i(ha)n(v)n(e)e(it.)37 b(If)28 b(nothing)g(else,)f(it)h -(prev)n(en)n(ts)f(compilation)g(from)g(failing)g(o)r(ccasionally)-7 -b(.)p 0 3600 1643 4 v 1738 3633 a Fk(Begin)31 b(Log)p -2257 3600 V 83 3773 a Fm([)p Fh(LDF)25 b(2002.10.23.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 3865 1678 4 -v 1773 3898 a Fk(End)k(Log)p 2222 3865 V 0 4023 a Fn(h)14 +(497,)f(499,)h(501,)f(503,)g(505,)166 1467 y(508,)g(510,)h(512,)f(517,) +h(518,)f(519,)g(520,)h(521,)f(522,)h(524,)f(526,)g(530,)h(531,)f(532,)h +(533,)f(534,)g(535,)h(536,)f(537,)g(538,)h(539,)f(540,)h(541,)f(601,)g +(603,)166 1550 y(637,)g(717,)g(780,)g(781,)g(789,)g(790,)g(798,)g(799,) +g(817,)g(818,)g(901,)g(904,)g(905,)g(and)g(906.)0 1658 +y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(589,)f(613,)g(650,)g +(and)g(936.)0 1857 y Fk(286.)94 b(Cop)m(y)33 b(constructor.)0 +1982 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b +Fm(constructors)g Fl(279)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2081 y Fk(P)m(oin)m(t)5 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g +Fm(&)o Fe(p)p Fm(\);)0 2280 y Fk(287.)0 2405 y Fn(h)14 +b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(constructors)h +Fl(280)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2505 y Fk(P)m(oin)m(t)13 +b Fm(::)8 b Fk(P)m(oin)m(t)e Fm(\()p Fk(const)33 b(P)m(oin)m(t)g +Fm(&)o Fe(p)p Fm(\))83 2604 y Fn(f)166 2704 y(h)14 b +Fm(Initialize)28 b(co)r(ordinates)e(and)h(limits)36 b +Fl(278)15 b Fn(i)166 2803 y(\003)p Fi(this)34 b Fm(=)23 +b Fe(p)p Fm(;)166 2903 y Fi(on)p 260 2903 V 31 w(fr)l(e)l(e)p +419 2903 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(false)11 b +Fm(;)166 3003 y Fi(do)p 255 3003 V 31 w(output)35 b Fm(=)22 +b Fi(true)10 b Fm(;)83 3102 y Fn(g)0 3302 y Fk(288.)94 +b(Setting)40 b(function.)95 b Fm([)p Fh(LDF)25 b(2002.10.23.)p +Fm(])68 b(This)35 b(function)h(is)e(unnecessary)-7 b(,)36 +b(b)r(ecause)e(it)i(do)r(es)e(nothing)h(that)0 3401 y(the)24 +b(assignmen)n(t)f(op)r(erator)f(can't)i(do.)35 b(Ho)n(w)n(ev)n(er,)23 +b(I'v)n(e)g(tried)h(to)g(use)f Fi(set)12 b Fm(\()i(\))25 +b(a)e(couple)g(of)h(times)g(with)h(a)e Fk(P)m(oin)m(t)29 +b Fm(argumen)n(t,)0 3501 y(so)e(it's)h(con)n(v)n(enien)n(t)e(to)i(ha)n +(v)n(e)e(it.)37 b(If)28 b(nothing)g(else,)f(it)h(prev)n(en)n(ts)f +(compilation)g(from)g(failing)g(o)r(ccasionally)-7 b(.)p +0 3599 1779 4 v 1874 3632 a Fk(Log)p 2122 3599 V 83 3773 +a Fm([)p Fh(LDF)25 b(2002.10.23.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 3865 3900 4 v 0 4022 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4122 y Fk(v)m(oid)33 +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4121 y Fk(v)m(oid)33 b Fi(set)11 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\);)p eop end -%%Page: 78 78 -TeXDict begin 78 77 bop 0 83 a Fm(78)140 b Fl(SETTING)24 -b(FUNCTION)2254 b(3DLDFPR)n(G)142 b Fn(x)p Fm(289)0 263 -y Fk(289.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 -b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +%%Page: 79 79 +TeXDict begin 79 78 bop 0 83 a Fn(x)p Fm(289)140 b Fl(3DLDFPR)n(G)2254 +b(SETTING)24 b(FUNCTION)141 b Fm(79)0 263 y Fk(289.)0 +388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b +Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(set)k Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\))83 587 y Fn(f)166 686 y(\003)p Fi(this)h Fm(=)23 b Fe(p)p @@ -9290,107 +9364,105 @@ 865 1683 V 31 w(p)l(oint)12 b Fm(\()i(\))28 b(and)g(it)g(is)f(unlik)n (ely)g(that)h(other)f(classes)g(of)g(this)h(kind)g(will)g(use)f(it.)0 1882 y Fk(291.)94 b(Optional)31 b(p)s(oin)m(ter)h(argumen)m(t.)p -0 1981 1643 4 v 1738 2014 a(Begin)f(Log)p 2257 1981 V -83 2155 a Fm([)p Fh(LDF)25 b(2002.10.29.)p Fm(])65 b(Made)32 +0 1981 1779 4 v 1874 2013 a(Log)p 2122 1981 V 83 2154 +a Fm([)p Fh(LDF)25 b(2002.10.29.)p Fm(])65 b(Made)32 b(this)g(function)h(non-)p Fk(inline)r Fm(.)50 b(Added)33 b(argumen)n(t)e Fk(const)36 b(P)m(oin)m(t)i Fn(\003)o Fe(p)p Fm(.)50 b(If)32 b Fe(p)e Fn(6)p Fm(=)g(0,)j(the)f(new)0 -2254 y Fk(P)m(oin)m(t)h Fm(is)27 b(assigned)g(to)g(using)g(the)h(v)-5 -b(alues)28 b(from)f Fe(p)p Fm(.)p 0 2346 1678 4 v 1773 -2379 a Fk(End)32 b(Log)p 2222 2346 V 0 2503 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2603 y Fk(static)33 -b(P)m(oin)m(t)g Fn(\003)o Fi(cr)l(e)l(ate)p 857 2603 -26 4 v 31 w(new)p 1028 2603 V 30 w(p)l(oint)13 b Fm(\()p +2253 y Fk(P)m(oin)m(t)h Fm(is)27 b(assigned)g(to)g(using)g(the)h(v)-5 +b(alues)28 b(from)f Fe(p)p Fm(.)p 0 2345 3900 4 v 0 2503 +a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2602 y Fk(static)33 +b(P)m(oin)m(t)g Fn(\003)o Fi(cr)l(e)l(ate)p 857 2602 +26 4 v 31 w(new)p 1028 2602 V 30 w(p)l(oint)13 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)f Fn(\003)p Fe(p)23 b Fm(=)f(0\);)0 -2802 y Fk(292.)0 2927 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +2801 y Fk(292.)0 2926 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3026 y Fk(P)m(oin)m(t)33 b Fn(\003)o Fk(P)m(oin)m(t)14 b Fm(::)8 b Fi(cr)l(e)l(ate)p 889 3026 V 31 w(new)p 1060 3026 V 30 w(p)l(oint)13 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g -Fn(\003)o Fe(p)p Fm(\))83 3126 y Fn(f)166 3226 y Fk(P)m(oin)m(t)g +Fn(\003)o Fe(p)p Fm(\))83 3125 y Fn(f)166 3225 y Fk(P)m(oin)m(t)g Fn(\003)o Fe(a)23 b Fm(=)g Fk(new)34 b Fm(\()p Fk(P)m(oin)m(t)5 -b Fm(\);)166 3350 y Fe(a)193 3375 y(~)243 3350 y Fi(on)p -337 3350 V 31 w(fr)l(e)l(e)p 496 3350 V 31 w(stor)l(e)33 -b Fm(=)23 b Fi(true)10 b Fm(;)166 3450 y Fk(if)41 b Fm(\()p +b Fm(\);)166 3349 y Fe(a)193 3374 y(~)243 3349 y Fi(on)p +337 3349 V 31 w(fr)l(e)l(e)p 496 3349 V 31 w(stor)l(e)33 +b Fm(=)23 b Fi(true)10 b Fm(;)166 3449 y Fk(if)41 b Fm(\()p Fe(p)23 b Fn(6)p Fm(=)g(0\))41 b Fn(\003)p Fe(a)23 b Fm(=)f Fn(\003)p Fe(p)p Fm(;)166 3549 y Fk(return)33 -b Fe(a)p Fm(;)83 3649 y Fn(g)0 3848 y Fk(293.)94 b(Required)31 -b(P)m(oin)m(t)i(argumen)m(t.)0 3973 y Fn(h)14 b Fm(Declare)27 +b Fe(a)p Fm(;)83 3648 y Fn(g)0 3847 y Fk(293.)94 b(Required)31 +b(P)m(oin)m(t)i(argumen)m(t.)0 3972 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4072 y Fk(static)33 b(P)m(oin)m(t)g Fn(\003)o Fi(cr)l(e)l(ate)p 857 4072 V 31 w(new)p 1028 4072 V 30 w(p)l(oint)13 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fe(p)p Fm(\);)p eop end -%%Page: 79 79 -TeXDict begin 79 78 bop 0 83 a Fn(x)p Fm(294)140 b Fl(3DLDFPR)n(G)1811 -b(REQUIRED)24 b Fk(POINT)f Fl(AR)n(GUMENT)141 b Fm(79)0 -263 y Fk(294.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 -b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -487 y Fk(P)m(oin)m(t)33 b Fn(\003)o Fk(P)m(oin)m(t)14 -b Fm(::)8 b Fi(cr)l(e)l(ate)p 889 487 26 4 v 31 w(new)p -1060 487 V 30 w(p)l(oint)13 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g -Fm(&)o Fe(p)p Fm(\))83 587 y Fn(f)166 686 y Fk(P)m(oin)m(t)g -Fn(\003)o Fe(a)23 b Fm(=)g Fk(new)34 b Fm(\()p Fk(P)m(oin)m(t)5 -b Fm(\);)166 811 y Fe(a)193 836 y(~)243 811 y Fi(on)p -337 811 V 31 w(fr)l(e)l(e)p 496 811 V 31 w(stor)l(e)33 -b Fm(=)23 b Fi(true)10 b Fm(;)166 911 y Fn(\003)p Fe(a)23 -b Fm(=)f Fe(p)p Fm(;)166 1010 y Fk(return)33 b Fe(a)p -Fm(;)83 1110 y Fn(g)0 1309 y Fk(295.)94 b(real)32 b(argumen)m(ts.)p -0 1408 1643 4 v 1738 1441 a(Begin)f(Log)p 2257 1408 V -83 1582 a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 1674 1678 4 v 1773 1706 a Fk(End)k(Log)p -2222 1674 V 0 1831 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 -b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -1930 y Fk(static)33 b(P)m(oin)m(t)g Fn(\003)o Fi(cr)l(e)l(ate)p -857 1930 26 4 v 31 w(new)p 1028 1930 V 30 w(p)l(oint)13 -b Fm(\()p Fk(const)33 b(real)f Fe(x;)14 b Fk(const)33 -b(real)f Fe(y)26 b Fm(=)d(0)o Fe(;)14 b Fk(const)32 b(real)h -Fe(z)26 b Fm(=)d(0)o(\);)0 2130 y Fk(296.)0 2254 y Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2354 y Fk(P)m(oin)m(t)33 +%%Page: 80 80 +TeXDict begin 80 79 bop 0 83 a Fm(80)140 b Fl(REQUIRED)24 +b Fk(POINT)f Fl(AR)n(GUMENT)1811 b(3DLDFPR)n(G)142 b +Fn(x)p Fm(294)0 263 y Fk(294.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 487 y Fk(P)m(oin)m(t)33 b Fn(\003)o +Fk(P)m(oin)m(t)14 b Fm(::)8 b Fi(cr)l(e)l(ate)p 889 487 +26 4 v 31 w(new)p 1060 487 V 30 w(p)l(oint)13 b Fm(\()p +Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\))83 587 +y Fn(f)166 686 y Fk(P)m(oin)m(t)g Fn(\003)o Fe(a)23 b +Fm(=)g Fk(new)34 b Fm(\()p Fk(P)m(oin)m(t)5 b Fm(\);)166 +811 y Fe(a)193 836 y(~)243 811 y Fi(on)p 337 811 V 31 +w(fr)l(e)l(e)p 496 811 V 31 w(stor)l(e)33 b Fm(=)23 b +Fi(true)10 b Fm(;)166 911 y Fn(\003)p Fe(a)23 b Fm(=)f +Fe(p)p Fm(;)166 1010 y Fk(return)33 b Fe(a)p Fm(;)83 +1110 y Fn(g)0 1309 y Fk(295.)94 b(real)32 b(argumen)m(ts.)p +0 1408 1779 4 v 1874 1440 a(Log)p 2122 1408 V 83 1581 +a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 1673 3900 4 v 0 1830 a Fn(h)14 +b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1930 y Fk(static)33 +b(P)m(oin)m(t)g Fn(\003)o Fi(cr)l(e)l(ate)p 857 1930 +26 4 v 31 w(new)p 1028 1930 V 30 w(p)l(oint)13 b Fm(\()p +Fk(const)33 b(real)f Fe(x;)14 b Fk(const)33 b(real)f +Fe(y)26 b Fm(=)d(0)o Fe(;)14 b Fk(const)32 b(real)h Fe(z)26 +b Fm(=)d(0)o(\);)0 2129 y Fk(296.)0 2253 y Fn(h)14 b +Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 +b Fn(i)24 b Fm(+)p Fn(\021)83 2353 y Fk(P)m(oin)m(t)33 b Fn(\003)o Fk(P)m(oin)m(t)14 b Fm(::)8 b Fi(cr)l(e)l(ate)p -889 2354 V 31 w(new)p 1060 2354 V 30 w(p)l(oint)13 b +889 2353 V 31 w(new)p 1060 2353 V 30 w(p)l(oint)13 b Fm(\()p Fk(const)33 b(real)f Fe(x)q(;)14 b Fk(const)32 b(real)g Fe(y)s(;)14 b Fk(const)32 b(real)h Fe(z)s Fm(\))83 -2453 y Fn(f)166 2553 y Fk(P)m(oin)m(t)g Fn(\003)o Fe(a)23 +2453 y Fn(f)166 2552 y Fk(P)m(oin)m(t)g Fn(\003)o Fe(a)23 b Fm(=)g Fk(new)34 b Fm(\()p Fk(P)m(oin)m(t)5 b Fm(\);)166 -2678 y Fe(a)193 2702 y(~)243 2678 y Fi(on)p 337 2678 -V 31 w(fr)l(e)l(e)p 496 2678 V 31 w(stor)l(e)33 b Fm(=)23 -b Fi(true)10 b Fm(;)166 2777 y Fe(a)193 2802 y(~)243 +2677 y Fe(a)193 2702 y(~)243 2677 y Fi(on)p 337 2677 +V 31 w(fr)l(e)l(e)p 496 2677 V 31 w(stor)l(e)33 b Fm(=)23 +b Fi(true)10 b Fm(;)166 2777 y Fe(a)193 2801 y(~)243 2777 y Fi(set)i Fm(\()p Fe(x)q(;)i(y)r(;)g(z)s Fm(\);)166 -2877 y Fk(return)33 b Fe(a)p Fm(;)83 2976 y Fn(g)0 3176 -y Fk(297.)94 b(Destructor.)p 0 3251 1643 4 v 1738 3284 -a(Begin)31 b(Log)p 2257 3251 V 83 3425 a Fm([)p Fh(LDF)25 -b(2003.08.27.)p Fm(])62 b(Added)29 b(a)g Fk(virtual)34 -b Fm(destructor)27 b(with)i(an)g(empt)n(y)f(de\014nition,)i(b)r(ecause) -e(GCC)h(with)g(the)g(\\)p Fj(-Wall)p Fm(")0 3524 y(option)e(issued)h -(the)g(follo)n(wing)e(w)n(arning:)36 b(\\`class)26 b(P)n(oin)n(t')g -(has)i(virtual)f(functions)g(but)i(non-virtual)d(destructor".)p -0 3616 1678 4 v 1773 3649 a Fk(End)32 b(Log)p 2222 3616 -V 0 3773 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +2876 y Fk(return)33 b Fe(a)p Fm(;)83 2976 y Fn(g)0 3175 +y Fk(297.)94 b(Destructor.)p 0 3251 1779 4 v 1874 3283 +a(Log)p 2122 3251 V 83 3424 a Fm([)p Fh(LDF)25 b(2003.08.27.)p +Fm(])62 b(Added)29 b(a)g Fk(virtual)34 b Fm(destructor)27 +b(with)i(an)g(empt)n(y)f(de\014nition,)i(b)r(ecause)e(GCC)h(with)g(the) +g(\\)p Fj(-Wall)p Fm(")0 3524 y(option)e(issued)h(the)g(follo)n(wing)e +(w)n(arning:)36 b(\\`class)26 b(P)n(oin)n(t')g(has)i(virtual)f +(functions)g(but)i(non-virtual)d(destructor".)p 0 3616 +3900 4 v 0 3773 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3873 y Fk(virtual)33 b Fn(\030)o Fk(P)m(oin)m(t)6 b Fm(\()14 -b(\);)0 4072 y Fk(298.)0 4197 y Fn(h)g Fm(De\014ne)28 +3872 y Fk(virtual)33 b Fn(\030)o Fk(P)m(oin)m(t)6 b Fm(\()14 +b(\);)0 4072 y Fk(298.)0 4196 y Fn(h)g Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 4297 y Fk(P)m(oin)m(t)13 b Fm(::)c -Fn(\030)o Fk(P)m(oin)m(t)d Fm(\()14 b(\))83 4396 y Fn(f)g(g)0 -4595 y Fk(299.)94 b(Assignmen)m(t.)p 0 4695 1643 4 v -1738 4727 a(Begin)31 b(Log)p 2257 4695 V 83 4868 a Fm([)p -Fh(LDF)25 b(2003.03.25.)p Fm(])64 b(Changed)30 b(this)h(function,)h(so) -e(that)h(it)g(returns)f Fe(p)g Fm(instead)h(of)f Fk(v)m(oid)5 +b Fm(+)p Fn(\021)83 4296 y Fk(P)m(oin)m(t)13 b Fm(::)c +Fn(\030)o Fk(P)m(oin)m(t)d Fm(\()14 b(\))83 4395 y Fn(f)g(g)0 +4595 y Fk(299.)94 b(Assignmen)m(t.)p 0 4693 1779 4 v +1874 4726 a(Log)p 2122 4693 V 83 4867 a Fm([)p Fh(LDF)25 +b(2003.03.25.)p Fm(])64 b(Changed)30 b(this)h(function,)h(so)e(that)h +(it)g(returns)f Fe(p)g Fm(instead)h(of)f Fk(v)m(oid)5 b Fm(.)46 b(This)30 b(mak)n(es)g(it)h(p)r(ossible)f(to)0 -4968 y(c)n(hain)d(in)n(v)n(o)r(cations)f(of)i(this)g(function.)p -0 5060 1678 4 v 1773 5092 a Fk(End)k(Log)p 2222 5060 -V 0 5217 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +4966 y(c)n(hain)d(in)n(v)n(o)r(cations)f(of)i(this)g(function.)p +0 5058 3900 4 v 0 5215 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -5316 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fk(op)s(erator)5 +5315 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fk(op)s(erator)5 b Fm(=)o(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\);)p eop end -%%Page: 80 80 -TeXDict begin 80 79 bop 0 83 a Fm(80)140 b Fl(ASSIGNMENT)2506 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(300)0 263 y Fk(300.)0 388 -y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +%%Page: 81 81 +TeXDict begin 81 80 bop 0 83 a Fn(x)p Fm(300)140 b Fl(3DLDFPR)n(G)2505 +b(ASSIGNMENT)142 b Fm(81)0 263 y Fk(300.)0 388 y Fn(h)14 +b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fk(P)m(oin)m(t)13 b Fm(::)c Fk(op)s(erator)c Fm(=)o(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p)p @@ -9437,40 +9509,40 @@ Fk(return)33 b Fe(b)p Fm(;)83 2903 y Fn(g)0 3102 y Fk(302.)94 b(Clear.)h Fm(I)28 b(need)g(this)f(function)i(b)r(ecause)e(it's)h(a)f Fk(virtual)33 b Fm(function)28 b(in)g Fk(Shap)s(e)t Fm(.)p -0 3202 1643 4 v 1738 3234 a Fk(Begin)j(Log)p 2257 3202 -V 83 3375 a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])63 -b(Rede\014ned)29 b(this)h(function.)43 b(F)-7 b(ormerly)g(,)28 -b(it)i(w)n(as)e(inline)i(and)f(empt)n(y)-7 b(.)42 b(No)n(w)29 -b(it)h(sets)f(all)g(of)g(the)g(x,)h(y)-7 b(,)0 3475 y(and)20 -b(z)h(co)r(ordinates)e(to)h(0,)i(and)e(resets)g Fi(tr)l(ansform)10 -b Fm(.)35 b(It)21 b(do)r(esn't)f(seem)h(w)n(orth)n(while)e(to)i(set)f -Fi(dr)l(awdot)p 3108 3475 26 4 v 32 w(value)11 b Fm(,)22 -b Fi(dr)l(awdot)p 3662 3475 V 32 w(c)l(olor)14 b Fm(,)0 -3574 y(or)27 b Fi(p)l(en)38 b Fm(to)28 b(an)n(y)e(particular)h(v)-5 -b(alues.)p 0 3666 1678 4 v 1773 3699 a Fk(End)32 b(Log)p -2222 3666 V 0 3823 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +0 3201 1779 4 v 1874 3234 a Fk(Log)p 2122 3201 V 83 3374 +a Fm([)p Fh(LDF)d(2002.10.27.)p Fm(])63 b(Rede\014ned)29 +b(this)h(function.)43 b(F)-7 b(ormerly)g(,)28 b(it)i(w)n(as)e(inline)i +(and)f(empt)n(y)-7 b(.)42 b(No)n(w)29 b(it)h(sets)f(all)g(of)g(the)g +(x,)h(y)-7 b(,)0 3474 y(and)20 b(z)h(co)r(ordinates)e(to)h(0,)i(and)e +(resets)g Fi(tr)l(ansform)10 b Fm(.)35 b(It)21 b(do)r(esn't)f(seem)h(w) +n(orth)n(while)e(to)i(set)f Fi(dr)l(awdot)p 3108 3474 +26 4 v 32 w(value)11 b Fm(,)22 b Fi(dr)l(awdot)p 3662 +3474 V 32 w(c)l(olor)14 b Fm(,)0 3574 y(or)27 b Fi(p)l(en)38 +b Fm(to)28 b(an)n(y)e(particular)h(v)-5 b(alues.)p 0 +3665 3900 4 v 0 3823 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3923 y Fk(v)m(oid)33 b Fi(cle)l(ar)13 b Fm(\()i(\);)p +3922 y Fk(v)m(oid)33 b Fi(cle)l(ar)13 b Fm(\()i(\);)p eop end -%%Page: 81 81 -TeXDict begin 81 80 bop 0 83 a Fn(x)p Fm(303)140 b Fl(3DLDFPR)n(G)2739 -b(CLEAR)141 b Fm(81)0 263 y Fk(303.)0 388 y Fn(h)14 b -Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 -b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 -b Fm(::)8 b Fi(cle)l(ar)14 b Fm(\()g(\))83 587 y Fn(f)166 -686 y Fk(for)33 b Fm(\()p Fk(in)m(t)f Fe(i)23 b Fm(=)g(0)o(;)42 -b Fe(i)23 b(<)f Fm(4;)41 b Fe(i)1017 678 y Fg(+)-8 b(+)1115 -686 y Fm(\))42 b Fn(f)249 786 y Fi(world)p 449 786 26 -4 v 32 w(c)l(o)l(or)l(dinates)12 b Fm([)p Fe(i)p Fm(])23 -b(=)f Fi(user)p 1231 786 V 31 w(c)l(o)l(or)l(dinates)12 -b Fm([)p Fe(i)o Fm(])24 b(=)e Fi(view)p 2016 786 V 32 -w(c)l(o)l(or)l(dinates)12 b Fm([)p Fe(i)p Fm(])23 b(=)f -Fi(pr)l(oje)l(ctive)p 2987 786 V 32 w(c)l(o)l(or)l(dinates)13 -b Fm([)p Fe(i)o Fm(])23 b(=)g(0;)166 886 y Fn(g)166 985 -y Fi(tr)l(ansform)11 b Fe(:)p Fi(r)l(eset)h Fm(\()i(\);)166 -1085 y Fk(return)5 b Fm(;)83 1185 y Fn(g)0 1384 y Fk(304.)94 -b(Clean.)0 1508 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 -b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 82 82 +TeXDict begin 82 81 bop 0 83 a Fm(82)140 b Fl(CLEAR)2739 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(303)0 263 y Fk(303.)0 388 +y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 +b(P)m(oin)m(t)13 b Fm(::)8 b Fi(cle)l(ar)14 b Fm(\()g(\))83 +587 y Fn(f)166 686 y Fk(for)33 b Fm(\()p Fk(in)m(t)f +Fe(i)23 b Fm(=)g(0)o(;)42 b Fe(i)23 b(<)f Fm(4;)41 b +Fe(i)1017 678 y Fg(+)-8 b(+)1115 686 y Fm(\))42 b Fn(f)249 +786 y Fi(world)p 449 786 26 4 v 32 w(c)l(o)l(or)l(dinates)12 +b Fm([)p Fe(i)p Fm(])23 b(=)f Fi(user)p 1231 786 V 31 +w(c)l(o)l(or)l(dinates)12 b Fm([)p Fe(i)o Fm(])24 b(=)e +Fi(view)p 2016 786 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([)p +Fe(i)p Fm(])23 b(=)f Fi(pr)l(oje)l(ctive)p 2987 786 V +32 w(c)l(o)l(or)l(dinates)13 b Fm([)p Fe(i)o Fm(])23 +b(=)g(0;)166 886 y Fn(g)166 985 y Fi(tr)l(ansform)11 +b Fe(:)p Fi(r)l(eset)h Fm(\()i(\);)166 1085 y Fk(return)5 +b Fm(;)83 1185 y Fn(g)0 1384 y Fk(304.)94 b(Clean.)0 +1508 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b +Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1608 y Fk(v)m(oid)33 b Fi(cle)l(an)11 b Fm(\()p Fk(in)m(t)32 b Fi(factor)38 b Fm(=)22 b(1\);)0 1807 y Fk(305.)0 1932 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j @@ -9513,18 +9585,18 @@ b Fm(??)37 b(Change)27 b Fi(get)p 1741 5045 V 30 w(x)14 b Fm(\()g(\),)28 b(etc.,)g(bac)n(k)f(to)g Fk(inline)t Fm(??)p eop end -%%Page: 82 82 -TeXDict begin 82 81 bop 0 83 a Fm(82)140 b Fl(GET)24 -b(ALL)g(COORDINA)-6 b(TES)2114 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(311)0 263 y Fk(311.)94 b(Get)39 b(all)e(co)s(ordinates.)95 -b Fm([)p Fh(LDF)25 b(2002.09.19.)p Fm(])67 b(Added)34 -b(this)f(function.)55 b(??)g([)p Fh(LDF)25 b(2002.12.01.)p -Fm(])66 b(Can)34 b(I)f(mak)n(e)0 363 y(the)26 b Fk(F)-8 -b(o)s(cus)29 b Fn(\003)c Fm(argumen)n(t)g Fk(const)t -Fm(?)37 b(What)25 b(is)g(the)h(syn)n(tax)f(for)f(a)h(p)r(oin)n(ter)g -(to)g(a)g Fk(const)5 b Fm(,)26 b(as)e(opp)r(osed)h(to)g(a)g -Fk(const)30 b Fm(p)r(oin)n(ter?)0 462 y(Lo)r(ok)d(up!!)37 -b(Mak)n(e)27 b(sure)g(I)g(c)n(hange)g(this)h(is)f Fj(3DLDF.texi)d +%%Page: 83 83 +TeXDict begin 83 82 bop 0 83 a Fn(x)p Fm(311)140 b Fl(3DLDFPR)n(G)2115 +b(GET)23 b(ALL)h(COORDINA)-6 b(TES)141 b Fm(83)0 263 +y Fk(311.)94 b(Get)39 b(all)e(co)s(ordinates.)95 b Fm([)p +Fh(LDF)25 b(2002.09.19.)p Fm(])67 b(Added)34 b(this)f(function.)55 +b(??)g([)p Fh(LDF)25 b(2002.12.01.)p Fm(])66 b(Can)34 +b(I)f(mak)n(e)0 363 y(the)26 b Fk(F)-8 b(o)s(cus)29 b +Fn(\003)c Fm(argumen)n(t)g Fk(const)t Fm(?)37 b(What)25 +b(is)g(the)h(syn)n(tax)f(for)f(a)h(p)r(oin)n(ter)g(to)g(a)g +Fk(const)5 b Fm(,)26 b(as)e(opp)r(osed)h(to)g(a)g Fk(const)30 +b Fm(p)r(oin)n(ter?)0 462 y(Lo)r(ok)d(up!!)37 b(Mak)n(e)27 +b(sure)g(I)g(c)n(hange)g(this)h(is)f Fj(3DLDF.texi)d Fm(if)k(I)f(c)n(hange)g(it)h(here!)0 662 y Fk(312.)94 b(Non-const)31 b(v)m(ersion.)95 b Fm([)p Fh(LDF)26 b(2002.09.19.)p Fm(])60 b(Added)28 b(this)g(function.)0 786 y Fn(h)14 @@ -9618,17 +9690,17 @@ Fe(;)i Fi(do)p 1859 5045 V 31 w(p)l(ersp)d Fe(;)j Fi(do)p 2209 5045 V 31 w(apply)f Fe(;)h(f)9 b Fm(\);)166 5170 y Fk(return)33 b Fe(v)s Fm(;)83 5269 y Fn(g)p eop end -%%Page: 83 83 -TeXDict begin 83 82 bop 0 83 a Fn(x)p Fm(316)140 b Fl(3DLDFPR)n(G)2542 -b(GET)24 b(COORD)141 b Fm(83)0 263 y Fk(316.)94 b(Get)38 -b(co)s(ord.)95 b Fm([)p Fh(LDF)25 b(2002.09.14.)p Fm(])66 -b(Added)33 b Fi(get)p 1854 263 26 4 v 30 w(c)l(o)l(or)l(d)14 -b Fm(\()g(\).)52 b(Fixing)33 b(a)f(bug)g(that)h(caused)f -Fi(get)p 3305 263 V 31 w(x)13 b Fm(\()p Ff('p')t Fm(\),)34 -b(etc.,)g(to)0 363 y(call)27 b Fi(pr)l(oje)l(ct)13 b -Fm(\()h(\))28 b(m)n(ultiple)g(times)g(when)g(doing)f -Fk(P)m(ath)14 b Fm(::)8 b Fi(output)k Fm(\()i(\).)0 562 -y Fk(317.)94 b(Non-const)25 b(v)m(ersion.)95 b Fm([)p +%%Page: 84 84 +TeXDict begin 84 83 bop 0 83 a Fm(84)140 b Fl(GET)24 +b(COORD)2542 b(3DLDFPR)n(G)142 b Fn(x)p Fm(316)0 263 +y Fk(316.)94 b(Get)38 b(co)s(ord.)95 b Fm([)p Fh(LDF)25 +b(2002.09.14.)p Fm(])66 b(Added)33 b Fi(get)p 1854 263 +26 4 v 30 w(c)l(o)l(or)l(d)14 b Fm(\()g(\).)52 b(Fixing)33 +b(a)f(bug)g(that)h(caused)f Fi(get)p 3305 263 V 31 w(x)13 +b Fm(\()p Ff('p')t Fm(\),)34 b(etc.,)g(to)0 363 y(call)27 +b Fi(pr)l(oje)l(ct)13 b Fm(\()h(\))28 b(m)n(ultiple)g(times)g(when)g +(doing)f Fk(P)m(ath)14 b Fm(::)8 b Fi(output)k Fm(\()i(\).)0 +562 y Fk(317.)94 b(Non-const)25 b(v)m(ersion.)95 b Fm([)p Fh(LDF)26 b(2002.10.27.)p Fm(])55 b(The)23 b(argumen)n(t)e Fe(c)i Fm(refers)e(to)h(either)h(the)g(x,)g(y)-7 b(,)24 b(z,)f(or)f(w)g(co)r(ordinate.)0 686 y Fn(h)14 b Fm(Declare)27 @@ -9716,11 +9788,11 @@ b Fm(=)31 b Fk(Pro)5 b(jections)13 b Fm(::)8 b Ff(PERSP)s Fe(;)14 b Fk(real)249 4970 y Fi(factor)37 b Fm(=)23 b(1\))28 b Fk(const)t Fm(;)p eop end -%%Page: 84 84 -TeXDict begin 84 83 bop 0 83 a Fm(84)140 b Fk(CONST)24 -b Fl(VERSION)2303 b(3DLDFPR)n(G)142 b Fn(x)p Fm(320)0 -263 y Fk(320.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 -b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +%%Page: 85 85 +TeXDict begin 85 84 bop 0 83 a Fn(x)p Fm(320)140 b Fl(3DLDFPR)n(G)2303 +b Fk(CONST)24 b Fl(VERSION)141 b Fm(85)0 263 y Fk(320.)0 +388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b +Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(real)30 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(get)p 669 487 26 4 v 31 w(c)l(o)l(or)l(d)14 b Fm(\()p Fk(c)m(har)32 b Fe(c;)14 b Fk(c)m(har)31 b Fi(c)l(o)l(or)l(ds)12 b @@ -9804,37 +9876,38 @@ Fi(pr)l(oj)41 b Fm(=)22 b Fk(Pro)5 b(jections)14 b Fm(::)8 b Ff(PERSP)r Fe(;)14 b Fk(real)33 b Fi(factor)k Fm(=)23 b(1)o(\);)p eop end -%%Page: 85 85 -TeXDict begin 85 84 bop 0 83 a Fn(x)p Fm(328)140 b Fl(3DLDFPR)n(G)2119 -b(NON-)p Fk(CONST)23 b Fl(VERSION)141 b Fm(85)0 263 y -Fk(328.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 -b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -487 y Fk(real)32 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(get)p -671 487 26 4 v 31 w(y)k Fm(\()p Fk(c)m(har)34 b Fi(c)l(o)l(or)l(ds)12 -b Fe(;)i Fk(const)31 b(b)s(o)s(ol)f Fi(do)p 1812 487 -V 32 w(p)l(ersp)10 b Fe(;)k Fk(const)32 b(b)s(o)s(ol)e -Fi(do)p 2624 487 V 31 w(apply)14 b Fe(;)g Fk(F)-8 b(o)s(cus)31 -b Fn(\003)p Fe(f)8 b(;)14 b Fk(const)32 b(unsigned)415 -587 y(short)g Fi(pr)l(oj)18 b Fe(;)c Fk(real)32 b Fi(factor)14 -b Fm(\))83 686 y Fn(f)166 786 y Fk(return)33 b Fi(get)p -573 786 V 31 w(c)l(o)l(or)l(d)13 b Fm(\()p Ff('y')t Fe(;)h -Fi(c)l(o)l(or)l(ds)d Fe(;)j Fi(do)p 1362 786 V 32 w(p)l(ersp)c -Fe(;)k Fi(do)p 1712 786 V 31 w(apply)g Fe(;)g(f)8 b(;)14 -b Fi(pr)l(oj)j Fe(;)d Fi(factor)g Fm(\);)83 886 y Fn(g)0 -1085 y Fk(329.)94 b(const)32 b(v)m(ersion.)0 1209 y Fn(h)14 -b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1309 y Fk(real)36 -b Fi(get)p 384 1309 V 31 w(y)12 b Fm(\()p Fk(c)m(har)38 -b Fi(c)l(o)l(or)l(ds)j Fm(=)28 b Ff('w')s Fe(;)14 b Fk(const)37 -b(b)s(o)s(ol)d Fi(do)p 1796 1309 V 31 w(p)l(ersp)40 b -Fm(=)29 b Fi(true)10 b Fe(;)k Fk(const)36 b(b)s(o)s(ol)e -Fi(do)p 2895 1309 V 31 w(apply)43 b Fm(=)29 b Fi(true)10 -b Fe(;)k Fk(F)-8 b(o)s(cus)249 1409 y Fn(\003)p Fe(f)31 -b Fm(=)23 b(0)o Fe(;)14 b Fk(const)33 b(unsigned)e(short)h -Fi(pr)l(oj)41 b Fm(=)22 b Fk(Pro)5 b(jections)14 b Fm(::)8 -b Ff(PERSP)r Fe(;)14 b Fk(real)33 b Fi(factor)k Fm(=)23 -b(1)o(\))28 b Fk(const)5 b Fm(;)0 1608 y Fk(330.)0 1733 -y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +%%Page: 86 86 +TeXDict begin 86 85 bop 0 83 a Fm(86)140 b Fl(NON-)p +Fk(CONST)23 b Fl(VERSION)2119 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(328)0 263 y Fk(328.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 487 y Fk(real)32 b(P)m(oin)m(t)13 +b Fm(::)8 b Fi(get)p 671 487 26 4 v 31 w(y)k Fm(\()p +Fk(c)m(har)34 b Fi(c)l(o)l(or)l(ds)12 b Fe(;)i Fk(const)31 +b(b)s(o)s(ol)f Fi(do)p 1812 487 V 32 w(p)l(ersp)10 b +Fe(;)k Fk(const)32 b(b)s(o)s(ol)e Fi(do)p 2624 487 V +31 w(apply)14 b Fe(;)g Fk(F)-8 b(o)s(cus)31 b Fn(\003)p +Fe(f)8 b(;)14 b Fk(const)32 b(unsigned)415 587 y(short)g +Fi(pr)l(oj)18 b Fe(;)c Fk(real)32 b Fi(factor)14 b Fm(\))83 +686 y Fn(f)166 786 y Fk(return)33 b Fi(get)p 573 786 +V 31 w(c)l(o)l(or)l(d)13 b Fm(\()p Ff('y')t Fe(;)h Fi(c)l(o)l(or)l(ds)d +Fe(;)j Fi(do)p 1362 786 V 32 w(p)l(ersp)c Fe(;)k Fi(do)p +1712 786 V 31 w(apply)g Fe(;)g(f)8 b(;)14 b Fi(pr)l(oj)j +Fe(;)d Fi(factor)g Fm(\);)83 886 y Fn(g)0 1085 y Fk(329.)94 +b(const)32 b(v)m(ersion.)0 1209 y Fn(h)14 b Fm(Declare)27 +b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 1309 y Fk(real)36 b Fi(get)p 384 +1309 V 31 w(y)12 b Fm(\()p Fk(c)m(har)38 b Fi(c)l(o)l(or)l(ds)j +Fm(=)28 b Ff('w')s Fe(;)14 b Fk(const)37 b(b)s(o)s(ol)d +Fi(do)p 1796 1309 V 31 w(p)l(ersp)40 b Fm(=)29 b Fi(true)10 +b Fe(;)k Fk(const)36 b(b)s(o)s(ol)e Fi(do)p 2895 1309 +V 31 w(apply)43 b Fm(=)29 b Fi(true)10 b Fe(;)k Fk(F)-8 +b(o)s(cus)249 1409 y Fn(\003)p Fe(f)31 b Fm(=)23 b(0)o +Fe(;)14 b Fk(const)33 b(unsigned)e(short)h Fi(pr)l(oj)41 +b Fm(=)22 b Fk(Pro)5 b(jections)14 b Fm(::)8 b Ff(PERSP)r +Fe(;)14 b Fk(real)33 b Fi(factor)k Fm(=)23 b(1)o(\))28 +b Fk(const)5 b Fm(;)0 1608 y Fk(330.)0 1733 y Fn(h)14 +b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1832 y Fk(real)32 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(get)p 671 1832 V 31 w(y)k Fm(\()p Fk(c)m(har)34 b Fi(c)l(o)l(or)l(ds)12 b Fe(;)i @@ -9904,11 +9977,11 @@ V 32 w(p)l(ersp)c Fe(;)k Fi(do)p 1712 5020 V 31 w(apply)g Fe(;)g(f)8 b(;)14 b Fi(pr)l(oj)j Fe(;)d Fi(factor)g Fm(\);)83 5120 y Fn(g)0 5319 y Fk(336.)94 b(Get)32 b(w.)p eop end -%%Page: 86 86 -TeXDict begin 86 85 bop 0 83 a Fm(86)140 b Fl(NON-)p -Fk(CONST)23 b Fl(VERSION)2119 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(337)0 263 y Fk(337.)94 b(Non-const)31 b(v)m(ersion.)0 -388 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +%%Page: 87 87 +TeXDict begin 87 86 bop 0 83 a Fn(x)p Fm(337)140 b Fl(3DLDFPR)n(G)2119 +b(NON-)p Fk(CONST)23 b Fl(VERSION)141 b Fm(87)0 263 y +Fk(337.)94 b(Non-const)31 b(v)m(ersion.)0 388 y Fn(h)14 +b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(real)36 b Fi(get)p 384 487 26 4 v 30 w(w)14 b Fm(\()p Fk(c)m(har)38 b Fi(c)l(o)l(or)l(ds)i Fm(=)29 b Ff('w')s Fe(;)14 b Fk(const)36 @@ -9962,45 +10035,44 @@ V 32 w(p)l(ersp)c Fe(;)k Fi(do)p 1712 2654 V 31 w(apply)g Fe(;)g(f)8 b(;)14 b Fi(pr)l(oj)j Fe(;)d Fi(factor)g Fm(\);)83 2754 y Fn(g)0 2953 y Fk(341.)94 b(Get)32 b(transform.)p -0 3029 1643 4 v 1738 3061 a(Begin)f(Log)p 2257 3029 V -83 3202 a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(Made)27 -b(this)h(function)h Fk(const)t Fm(.)p 0 3294 1678 4 v -1773 3327 a Fk(End)j(Log)p 2222 3294 V 0 3451 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3551 y Fk(inline)31 -b(T)-8 b(ransform)33 b Fi(get)p 917 3551 26 4 v 31 w(tr)l(ansform)10 -b Fm(\()k(\))28 b Fk(const)83 3650 y Fn(f)166 3750 y -Fk(return)33 b Fi(tr)l(ansform)11 b Fm(;)83 3850 y Fn(g)0 -4049 y Fk(342.)94 b(Get)32 b(cop)m(y)-8 b(.)p 0 4148 -1643 4 v 1738 4181 a(Begin)31 b(Log)p 2257 4148 V 83 +0 3029 1779 4 v 1874 3061 a(Log)p 2122 3029 V 83 3202 +a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(Made)27 +b(this)h(function)h Fk(const)t Fm(.)p 0 3294 3900 4 v +0 3451 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3551 y Fk(inline)31 b(T)-8 b(ransform)33 b Fi(get)p 917 +3551 26 4 v 31 w(tr)l(ansform)10 b Fm(\()k(\))28 b Fk(const)83 +3650 y Fn(f)166 3750 y Fk(return)33 b Fi(tr)l(ansform)11 +b Fm(;)83 3850 y Fn(g)0 4049 y Fk(342.)94 b(Get)32 b(cop)m(y)-8 +b(.)p 0 4147 1779 4 v 1874 4180 a(Log)p 2122 4147 V 83 4321 a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(Made)27 -b(this)h(function)h Fk(const)t Fm(.)p 0 4413 1678 4 v -1773 4446 a Fk(End)j(Log)p 2222 4413 V 0 4570 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4670 y Fk(Shap)s(e)32 -b Fn(\003)p Fi(get)p 518 4670 26 4 v 30 w(c)l(opy)13 -b Fm(\()h(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 87 87 -TeXDict begin 87 86 bop 0 83 a Fn(x)p Fm(343)140 b Fl(3DLDFPR)n(G)2602 -b(GET)24 b(COPY)141 b Fm(87)0 263 y Fk(343.)0 388 y Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(Shap)s(e)32 -b Fn(\003)p Fk(P)m(oin)m(t)13 b Fm(::)8 b Fi(get)p 809 -487 26 4 v 31 w(c)l(opy)13 b Fm(\()h(\))28 b Fk(const)83 -587 y Fn(f)166 686 y Fk(P)m(oin)m(t)33 b Fn(\003)o Fe(p)23 -b Fm(=)g Fi(cr)l(e)l(ate)p 833 686 V 31 w(new)p 1004 -686 V 30 w(p)l(oint)13 b Fm(\()h(\);)166 811 y Fn(\003)p -Fe(p)22 b Fm(=)h Fn(\003)p Fi(this)11 b Fm(;)166 911 -y Fk(return)33 b(static)p 695 911 29 5 v 40 w(cast)6 -b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)p Fm(\()p Fe(p)p -Fm(\);)83 1010 y Fn(g)0 1209 y Fk(344.)94 b(Is)32 b(on)g(free)f(store.) -0 1334 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b(this)h(function)h Fk(const)t Fm(.)p 0 4413 3900 4 v +0 4570 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -1434 y Fk(inline)31 b(b)s(o)s(ol)g Fi(is)p 622 1434 26 -4 v 31 w(on)p 742 1434 V 30 w(fr)l(e)l(e)p 900 1434 V -31 w(stor)l(e)11 b Fm(\()j(\))28 b Fk(const)83 1533 y -Fn(f)166 1633 y Fk(return)33 b Fi(on)p 558 1633 V 31 -w(fr)l(e)l(e)p 717 1633 V 31 w(stor)l(e)10 b Fm(;)83 +4669 y Fk(Shap)s(e)32 b Fn(\003)p Fi(get)p 518 4669 26 +4 v 30 w(c)l(opy)13 b Fm(\()h(\))28 b Fk(const)5 b Fm(;)p +eop end +%%Page: 88 88 +TeXDict begin 88 87 bop 0 83 a Fm(88)140 b Fl(GET)24 +b(COPY)2602 b(3DLDFPR)n(G)142 b Fn(x)p Fm(343)0 263 y +Fk(343.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +487 y Fk(Shap)s(e)32 b Fn(\003)p Fk(P)m(oin)m(t)13 b +Fm(::)8 b Fi(get)p 809 487 26 4 v 31 w(c)l(opy)13 b Fm(\()h(\))28 +b Fk(const)83 587 y Fn(f)166 686 y Fk(P)m(oin)m(t)33 +b Fn(\003)o Fe(p)23 b Fm(=)g Fi(cr)l(e)l(ate)p 833 686 +V 31 w(new)p 1004 686 V 30 w(p)l(oint)13 b Fm(\()h(\);)166 +811 y Fn(\003)p Fe(p)22 b Fm(=)h Fn(\003)p Fi(this)11 +b Fm(;)166 911 y Fk(return)33 b(static)p 695 911 29 5 +v 40 w(cast)6 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)p +Fm(\()p Fe(p)p Fm(\);)83 1010 y Fn(g)0 1209 y Fk(344.)94 +b(Is)32 b(on)g(free)f(store.)0 1334 y Fn(h)14 b Fm(Declare)27 +b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 1434 y Fk(inline)31 b(b)s(o)s(ol)g +Fi(is)p 622 1434 26 4 v 31 w(on)p 742 1434 V 30 w(fr)l(e)l(e)p +900 1434 V 31 w(stor)l(e)11 b Fm(\()j(\))28 b Fk(const)83 +1533 y Fn(f)166 1633 y Fk(return)33 b Fi(on)p 558 1633 +V 31 w(fr)l(e)l(e)p 717 1633 V 31 w(stor)l(e)10 b Fm(;)83 1733 y Fn(g)0 1932 y Fk(345.)94 b(Slop)s(e.)g Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])64 b Fi(slop)l(e)12 b Fm(\()i(\))31 b(returns)f(the)i(slop)r(e)e(of)h(the)h @@ -10009,29 +10081,28 @@ (b)n(y)f(the)h Fk(c)m(har)34 b Fm(argumen)n(ts)27 b Fe(m)g Fm(and)h Fe(n)p Fm(.)37 b(These)27 b(should)g(b)r(e)h Ff('x')s Fm(,)g Ff('y')s Fm(,)g Ff('z')s Fm(,)g Ff('X')s -Fm(,)g Ff('Y')s Fm(,)f(or)g Ff('Z')s Fm(.)p 0 2133 1643 -4 v 1738 2166 a Fk(Begin)k(Log)p 2257 2133 V 83 2306 -a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(No)n(w)27 -b(using)h Fi(world)p 1346 2306 26 4 v 31 w(c)l(o)l(or)l(dinates)40 +Fm(,)g Ff('Y')s Fm(,)f(or)g Ff('Z')s Fm(.)p 0 2132 1779 +4 v 1874 2165 a Fk(Log)p 2122 2132 V 83 2306 a Fm([)p +Fh(LDF)e(2002.10.27.)p Fm(])61 b(No)n(w)27 b(using)h +Fi(world)p 1346 2306 26 4 v 31 w(c)l(o)l(or)l(dinates)40 b Fm(directly)27 b(instead)h(of)f(\\get")g(functions.)83 -2406 y([)p Fh(LDF)e(2002.10.27.)p Fm(])61 b(Changed)27 +2405 y([)p Fh(LDF)e(2002.10.27.)p Fm(])61 b(Changed)27 b(argumen)n(t)g Fe(p)g Fm(from)g Fk(const)33 b(P)m(oin)m(t)g -Fm(&)27 b(to)g Fk(P)m(oin)m(t)5 b Fm(.)p 0 2498 1678 -4 v 1773 2530 a Fk(End)32 b(Log)p 2222 2498 V 0 2655 -a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2755 y Fk(real)32 -b Fi(slop)l(e)12 b Fm(\()p Fk(P)m(oin)m(t)33 b Fe(p;)14 -b Fk(c)m(har)34 b Fe(m)23 b Fm(=)f Ff('x')s Fe(;)14 b -Fk(c)m(har)34 b Fe(n)23 b Fm(=)g Ff('y')s Fm(\))28 b -Fk(const)5 b Fm(;)p eop end -%%Page: 88 88 -TeXDict begin 88 87 bop 0 83 a Fm(88)140 b Fl(SLOPE)2753 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(346)0 263 y Fk(346.)0 388 -y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(real)32 -b(P)m(oin)m(t)14 b Fm(::)8 b Fi(slop)l(e)k Fm(\()p Fk(P)m(oin)m(t)33 -b Fe(p;)14 b Fk(c)m(har)34 b Fe(m;)14 b Fk(c)m(har)33 -b Fe(n)p Fm(\))28 b Fk(const)5 b Fn(f)27 b Fk(b)s(o)s(ol)k +Fm(&)27 b(to)g Fk(P)m(oin)m(t)5 b Fm(.)p 0 2497 3900 +4 v 0 2654 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2754 y Fk(real)32 b Fi(slop)l(e)12 b Fm(\()p Fk(P)m(oin)m(t)33 +b Fe(p;)14 b Fk(c)m(har)34 b Fe(m)23 b Fm(=)f Ff('x')s +Fe(;)14 b Fk(c)m(har)34 b Fe(n)23 b Fm(=)g Ff('y')s Fm(\))28 +b Fk(const)5 b Fm(;)p eop end +%%Page: 89 89 +TeXDict begin 89 88 bop 0 83 a Fn(x)p Fm(346)140 b Fl(3DLDFPR)n(G)2753 +b(SLOPE)141 b Fm(89)0 263 y Fk(346.)0 388 y Fn(h)14 b +Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 +b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(real)32 b(P)m(oin)m(t)14 +b Fm(::)8 b Fi(slop)l(e)k Fm(\()p Fk(P)m(oin)m(t)33 b +Fe(p;)14 b Fk(c)m(har)34 b Fe(m;)14 b Fk(c)m(har)33 b +Fe(n)p Fm(\))28 b Fk(const)5 b Fn(f)27 b Fk(b)s(o)s(ol)k Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p Fe(=)249 612 y Fk(P)m(oin)m(t)33 b Fe(a)p Fm(\()p Fn(\003)p Fi(this)11 b Fm(\);)249 736 @@ -10110,90 +10181,89 @@ Fn(\000)18 b Fi(p)p 1843 4522 V 31 w(m)p 1942 4522 V 30 w(c)l(o)l(or)l(d)c Fm(\);)28 b Fn(g)0 4721 y Fk(348.)94 b(Is)32 b(on)g(segmen)m(t.)p eop end -%%Page: 89 89 -TeXDict begin 89 88 bop 0 83 a Fn(x)p Fm(349)140 b Fl(3DLDFPR)n(G)2114 -b(NON-)p Fk(CONST)28 b Fl(VERSION)141 b Fm(89)0 263 y -Fk(349.)94 b(Non-const)46 b(v)m(ersion.)95 b Fm([)p Fh(LDF)25 -b(2002.10.29.)p Fm(])69 b Fi(is)p 1883 263 26 4 v 31 -w(on)p 2003 263 V 31 w(se)l(gment)12 b Fm(\()i(\))36 -b(returns)g(a)f Fk(b)s(o)s(ol)p 3001 263 29 5 v 39 w(real)41 -b Fm(with)36 b(the)h Fk(b)s(o)s(ol)i Fm(in-)0 363 y(dicating)c(whether) -g Fn(\003)o Fi(this)47 b Fm(lies)35 b(on)g(the)g(line)h(segmen)n(t)e(b) -r(et)n(w)n(een)h Fi(p0)52 b Fm(and)35 b Fi(p1)16 b Fm(,)37 -b(and)e(a)g Fk(real)40 b Fm(v)-5 b(alue)35 b Fe(t)g Fm(represen)n(ting) -f(the)0 462 y(distance)28 b(of)g Fn(\003)p Fi(this)40 -b Fm(on)28 b(the)h(w)n(a)n(y)e(from)h Fi(p0)45 b Fm(to)28 -b Fi(p1)16 b Fm(.)39 b(If)29 b(the)g Fk(b)s(o)s(ol)i -Fm(is)e Fi(true)9 b Fm(,)29 b(then)g(0)24 b Fe(<)p Fm(=)f -Fe(t)i(<)p Fm(=)e(1.)39 b(If)29 b Fe(t)24 b(<)g Fm(0)k(or)f -Fe(t)d(>)g Fm(1,)29 b(then)0 562 y Fn(\003)p Fi(this)39 -b Fm(lies)28 b(on)g(the)h(line)f(passing)f(through)h -Fi(p0)44 b Fm(and)28 b Fi(p1)17 b Fm(,)28 b(but)h(not)f(on)g(the)g -(segmen)n(t.)39 b(If)28 b Fn(\003)p Fi(this)39 b Fm(do)r(esn't)29 -b(lie)f(on)g(the)g(line,)h Fe(t)0 662 y Fm(will)f(b)r(e)g -Ff(INVALID_REAL)o Fm(.)83 761 y([)p Fh(LDF)d(2002.10.29.)p -Fm(])61 b(T)-7 b(o)27 b(c)n(hec)n(k)g(whether)h Fn(\003)o -Fi(this)39 b Fm(lies)28 b(on)f(the)h(line,)g(use)f Fi(is)p -2402 761 26 4 v 31 w(on)p 2522 761 V 31 w(line)11 b Fm(\()j(\).)p -0 865 1643 4 v 1738 898 a Fk(Begin)31 b(Log)p 2257 865 -V 83 1038 a Fm([)p Fh(LDF)25 b(2002.10.29.)p Fm(])59 -b(BUG)26 b(FIX:)g(Added)g(co)r(de)f(to)h(c)n(hec)n(k)e(whether)i(the)g -(unit)g(v)n(ectors)e Fn(\003)o Fi(this)i Fn(\000)14 b -Fi(p0)42 b Fm(and)25 b Fi(p1)31 b Fn(\000)14 b(\003)o -Fi(this)37 b Fm(are)0 1138 y(equal)25 b(b)r(efore)g(calculating)f -Fe(r)s Fm(.)36 b(Before)25 b(I)g(did)h(this,)g Fi(true)35 -b Fm(w)n(as)24 b(returned)h(for)g Fk(P)m(oin)m(ts)30 -b Fm(that)c(w)n(eren't)e(on)h(the)h(line)g(segmen)n(t.)83 -1238 y([)p Fh(LDF)f(2002.10.29.)p Fm(])61 b(No)n(w)27 -b(using)h Fi(world)p 1346 1238 26 4 v 31 w(c)l(o)l(or)l(dinates)40 -b Fm(directly)27 b(instead)h(of)f Fi(get)p 2605 1238 -V 31 w(x)14 b Fm(\()g(\),)28 b Fi(get)p 2922 1238 V 30 -w(y)12 b Fm(\()i(\),)28 b(and)g Fi(get)p 3399 1238 V -30 w(z)15 b Fm(\()f(\).)p 0 1330 1678 4 v 1773 1362 a -Fk(End)32 b(Log)p 2222 1330 V 0 1487 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 1586 y Fk(b)s(o)s(ol)p 269 1586 29 -5 v 38 w(real)33 b Fi(is)p 556 1586 26 4 v 31 w(on)p -676 1586 V 31 w(se)l(gment)11 b Fm(\()p Fk(P)m(oin)m(t)33 -b Fi(p0)17 b Fe(;)d Fk(P)m(oin)m(t)32 b Fi(p1)17 b Fm(\);)p -eop end %%Page: 90 90 TeXDict begin 90 89 bop 0 83 a Fm(90)140 b Fl(NON-)p Fk(CONST)27 b Fl(VERSION)2115 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(350)0 263 y Fk(350.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)p 269 487 29 -5 v 38 w(real)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(is)p -847 487 26 4 v 32 w(on)p 968 487 V 30 w(se)l(gment)k -Fm(\()p Fk(P)m(oin)m(t)33 b Fi(p0)16 b Fe(;)e Fk(P)m(oin)m(t)33 -b Fi(p1)17 b Fm(\))p Fn(f)27 b Fk(b)s(o)s(ol)k Ff(DEBUG)25 -b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b -Fi(true)52 b Fn(\003)p Fe(=)249 612 y Fk(if)41 b Fm(\()p -Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p -Fj( )p Ff(Point::)o(is_)-7 b(on_segment\(\).\\n")21 b -Fn(\034)i Fi(\015ush)10 b Fm(;)249 711 y Fi(apply)p 441 -711 V 32 w(tr)l(ansform)h Fm(\()j(\);)249 811 y Fi(p0)i -Fe(:)p Fi(apply)p 564 811 V 33 w(tr)l(ansform)11 b Fm(\()j(\);)249 -911 y Fi(p1)i Fe(:)p Fi(apply)p 564 911 V 33 w(tr)l(ansform)11 -b Fm(\()j(\);)249 1010 y Fk(if)41 b Fm(\()p Ff(DEBUG)s -Fm(\))h Fn(f)332 1110 y Fi(show)14 b Fm(\()p Ff("this")r -Fm(\);)332 1209 y Fi(p0)i Fe(:)p Fi(show)f Fm(\()p Ff("p0")s -Fm(\);)332 1309 y Fi(p1)h Fe(:)p Fi(show)f Fm(\()p Ff("p1")s -Fm(\);)249 1409 y Fn(g)249 1508 y Fk(if)41 b Fm(\()p -Fn(\003)p Fi(this)35 b Fn(\021)22 b Ff(INVALID_POINT)c -Fn(_)g Fi(p0)40 b Fn(\021)23 b Ff(INVALID_POINT)17 b -Fn(_)i Fi(p1)39 b Fn(\021)23 b Ff(INVALID_POINT)o Fm(\))42 -b Fn(f)332 1608 y Fi(c)l(err)37 b Fn(\034)24 b Ff("ERROR!)p -Fj( )p Ff(In)p Fj( )p Ff(Point:)o(:i)o(s)-6 b(_on_segment\(\):\\n)o(") -22 b Fn(\034)i Ff("One)p Fj( )p Ff(of)p Fj( )p Ff(the)p -Fj( )p Ff(Poin)o(ts)o Fj( )p Ff(i)-6 b(s)p Fj( )p Ff(invalid!)p -Fj( )p Ff(")23 b Fn(\034)498 1708 y Ff("Returning)p Fj( )p -Ff(false)p Fj( )o Ff(an)o(d)-6 b Fj( )p Ff(INVALID_REAL.\\n)o(\\n)o(") -21 b Fn(\034)i Fi(\015ush)11 b Fm(;)332 1807 y Fk(return)33 -b(pair)5 b Fn(h)p Fk(b)s(o)s(ol)t Fe(;)14 b Fk(real)t -Fn(i)p Fm(\()p Fi(false)f Fe(;)h Ff(INVALID_REAL)o Fm(\);)249 -1907 y Fn(g)249 2031 y Fk(b)s(o)s(ol)31 b Fe(b)o Fm(;)249 -2131 y Fk(real)i Fe(r)r Fm(;)249 2256 y Fk(if)41 b Fm(\()p +Fm(349)0 263 y Fk(349.)94 b(Non-const)46 b(v)m(ersion.)95 +b Fm([)p Fh(LDF)25 b(2002.10.29.)p Fm(])69 b Fi(is)p +1883 263 26 4 v 31 w(on)p 2003 263 V 31 w(se)l(gment)12 +b Fm(\()i(\))36 b(returns)g(a)f Fk(b)s(o)s(ol)p 3001 +263 29 5 v 39 w(real)41 b Fm(with)36 b(the)h Fk(b)s(o)s(ol)i +Fm(in-)0 363 y(dicating)c(whether)g Fn(\003)o Fi(this)47 +b Fm(lies)35 b(on)g(the)g(line)h(segmen)n(t)e(b)r(et)n(w)n(een)h +Fi(p0)52 b Fm(and)35 b Fi(p1)16 b Fm(,)37 b(and)e(a)g +Fk(real)40 b Fm(v)-5 b(alue)35 b Fe(t)g Fm(represen)n(ting)f(the)0 +462 y(distance)28 b(of)g Fn(\003)p Fi(this)40 b Fm(on)28 +b(the)h(w)n(a)n(y)e(from)h Fi(p0)45 b Fm(to)28 b Fi(p1)16 +b Fm(.)39 b(If)29 b(the)g Fk(b)s(o)s(ol)i Fm(is)e Fi(true)9 +b Fm(,)29 b(then)g(0)24 b Fe(<)p Fm(=)f Fe(t)i(<)p Fm(=)e(1.)39 +b(If)29 b Fe(t)24 b(<)g Fm(0)k(or)f Fe(t)d(>)g Fm(1,)29 +b(then)0 562 y Fn(\003)p Fi(this)39 b Fm(lies)28 b(on)g(the)h(line)f +(passing)f(through)h Fi(p0)44 b Fm(and)28 b Fi(p1)17 +b Fm(,)28 b(but)h(not)f(on)g(the)g(segmen)n(t.)39 b(If)28 +b Fn(\003)p Fi(this)39 b Fm(do)r(esn't)29 b(lie)f(on)g(the)g(line,)h +Fe(t)0 662 y Fm(will)f(b)r(e)g Ff(INVALID_REAL)o Fm(.)83 +761 y([)p Fh(LDF)d(2002.10.29.)p Fm(])61 b(T)-7 b(o)27 +b(c)n(hec)n(k)g(whether)h Fn(\003)o Fi(this)39 b Fm(lies)28 +b(on)f(the)h(line,)g(use)f Fi(is)p 2402 761 26 4 v 31 +w(on)p 2522 761 V 31 w(line)11 b Fm(\()j(\).)p 0 864 +1779 4 v 1874 897 a Fk(Log)p 2122 864 V 83 1038 a Fm([)p +Fh(LDF)25 b(2002.10.29.)p Fm(])59 b(BUG)26 b(FIX:)g(Added)g(co)r(de)f +(to)h(c)n(hec)n(k)e(whether)i(the)g(unit)g(v)n(ectors)e +Fn(\003)o Fi(this)i Fn(\000)14 b Fi(p0)42 b Fm(and)25 +b Fi(p1)31 b Fn(\000)14 b(\003)o Fi(this)37 b Fm(are)0 +1137 y(equal)25 b(b)r(efore)g(calculating)f Fe(r)s Fm(.)36 +b(Before)25 b(I)g(did)h(this,)g Fi(true)35 b Fm(w)n(as)24 +b(returned)h(for)g Fk(P)m(oin)m(ts)30 b Fm(that)c(w)n(eren't)e(on)h +(the)h(line)g(segmen)n(t.)83 1237 y([)p Fh(LDF)f(2002.10.29.)p +Fm(])61 b(No)n(w)27 b(using)h Fi(world)p 1346 1237 26 +4 v 31 w(c)l(o)l(or)l(dinates)40 b Fm(directly)27 b(instead)h(of)f +Fi(get)p 2605 1237 V 31 w(x)14 b Fm(\()g(\),)28 b Fi(get)p +2922 1237 V 30 w(y)12 b Fm(\()i(\),)28 b(and)g Fi(get)p +3399 1237 V 30 w(z)15 b Fm(\()f(\).)p 0 1329 3900 4 v +0 1486 a Fn(h)g Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1586 y Fk(b)s(o)s(ol)p +269 1586 29 5 v 38 w(real)33 b Fi(is)p 556 1586 26 4 +v 31 w(on)p 676 1586 V 31 w(se)l(gment)11 b Fm(\()p Fk(P)m(oin)m(t)33 +b Fi(p0)17 b Fe(;)d Fk(P)m(oin)m(t)32 b Fi(p1)17 b Fm(\);)p +eop end +%%Page: 91 91 +TeXDict begin 91 90 bop 0 83 a Fn(x)p Fm(350)140 b Fl(3DLDFPR)n(G)2114 +b(NON-)p Fk(CONST)28 b Fl(VERSION)141 b Fm(91)0 263 y +Fk(350.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +487 y Fk(b)s(o)s(ol)p 269 487 29 5 v 38 w(real)33 b(P)m(oin)m(t)13 +b Fm(::)8 b Fi(is)p 847 487 26 4 v 32 w(on)p 968 487 +V 30 w(se)l(gment)k Fm(\()p Fk(P)m(oin)m(t)33 b Fi(p0)16 +b Fe(;)e Fk(P)m(oin)m(t)33 b Fi(p1)17 b Fm(\))p Fn(f)27 +b Fk(b)s(o)s(ol)k Ff(DEBUG)25 b Fm(=)e Fi(false)12 b +Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p +Fe(=)249 612 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h +Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p Ff(Point::)o(is_)-7 +b(on_segment\(\).\\n")21 b Fn(\034)i Fi(\015ush)10 b +Fm(;)249 711 y Fi(apply)p 441 711 V 32 w(tr)l(ansform)h +Fm(\()j(\);)249 811 y Fi(p0)i Fe(:)p Fi(apply)p 564 811 +V 33 w(tr)l(ansform)11 b Fm(\()j(\);)249 911 y Fi(p1)i +Fe(:)p Fi(apply)p 564 911 V 33 w(tr)l(ansform)11 b Fm(\()j(\);)249 +1010 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)332 +1110 y Fi(show)14 b Fm(\()p Ff("this")r Fm(\);)332 1209 +y Fi(p0)i Fe(:)p Fi(show)f Fm(\()p Ff("p0")s Fm(\);)332 +1309 y Fi(p1)h Fe(:)p Fi(show)f Fm(\()p Ff("p1")s Fm(\);)249 +1409 y Fn(g)249 1508 y Fk(if)41 b Fm(\()p Fn(\003)p Fi(this)35 +b Fn(\021)22 b Ff(INVALID_POINT)c Fn(_)g Fi(p0)40 b Fn(\021)23 +b Ff(INVALID_POINT)17 b Fn(_)i Fi(p1)39 b Fn(\021)23 +b Ff(INVALID_POINT)o Fm(\))42 b Fn(f)332 1608 y Fi(c)l(err)37 +b Fn(\034)24 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Point:)o(:i)o(s)-6 +b(_on_segment\(\):\\n)o(")22 b Fn(\034)i Ff("One)p Fj( )p +Ff(of)p Fj( )p Ff(the)p Fj( )p Ff(Poin)o(ts)o Fj( )p +Ff(i)-6 b(s)p Fj( )p Ff(invalid!)p Fj( )p Ff(")23 b Fn(\034)498 +1708 y Ff("Returning)p Fj( )p Ff(false)p Fj( )o Ff(an)o(d)-6 +b Fj( )p Ff(INVALID_REAL.\\n)o(\\n)o(")21 b Fn(\034)i +Fi(\015ush)11 b Fm(;)332 1807 y Fk(return)33 b(pair)5 +b Fn(h)p Fk(b)s(o)s(ol)t Fe(;)14 b Fk(real)t Fn(i)p Fm(\()p +Fi(false)f Fe(;)h Ff(INVALID_REAL)o Fm(\);)249 1907 y +Fn(g)249 2031 y Fk(b)s(o)s(ol)31 b Fe(b)o Fm(;)249 2131 +y Fk(real)i Fe(r)r Fm(;)249 2256 y Fk(if)41 b Fm(\()p Fi(p0)f Fn(\021)23 b Fi(p1)34 b Fn(^)19 b(\003)p Fi(this)34 b Fn(\021)23 b Fi(p0)16 b Fm(\))42 b Fn(f)332 2355 y Fi(c)l(err)76 b Fn(\034)64 b Ff("ERROR!)p Fj( )p Ff(In)p @@ -10245,18 +10315,18 @@ Fi(show)e Fm(\()p Ff("v0")s Fm(\);)332 5294 y Fi(v1)i Fe(:)p Fi(show)e Fm(\()p Ff("v1")s Fm(\);)249 5394 y Fn(g)p eop end -%%Page: 91 91 -TeXDict begin 91 90 bop 0 83 a Fn(x)p Fm(350)140 b Fl(3DLDFPR)n(G)2114 -b(NON-)p Fk(CONST)28 b Fl(VERSION)141 b Fm(91)249 263 -y Fk(P)m(oin)m(t)33 b Fi(v2)16 b Fm(\()p Fn(\000)p Fi(v1)g -Fm(\);)249 388 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h -Fn(f)332 487 y Fi(v2)16 b Fe(:)p Fi(show)e Fm(\()p Ff("v2")s -Fm(\);)249 587 y Fn(g)249 686 y Fk(if)41 b Fm(\()p Fi(v0)f -Fn(6)p Fm(=)22 b Fi(v1)35 b Fn(^)19 b Fi(v0)39 b Fn(6)p -Fm(=)23 b Fi(v2)16 b Fm(\))41 b Fn(f)332 786 y Fk(if)g -Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 -b Ff("Not)p Fj( )p Ff(on)p Fj( )p Ff(line.\\n")n Fm(;)332 -886 y Fk(return)33 b(pair)5 b Fn(h)p Fk(b)s(o)s(ol)t +%%Page: 92 92 +TeXDict begin 92 91 bop 0 83 a Fm(92)140 b Fl(NON-)p +Fk(CONST)27 b Fl(VERSION)2115 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(350)249 263 y Fk(P)m(oin)m(t)33 b Fi(v2)16 b Fm(\()p +Fn(\000)p Fi(v1)g Fm(\);)249 388 y Fk(if)41 b Fm(\()p +Ff(DEBUG)s Fm(\))h Fn(f)332 487 y Fi(v2)16 b Fe(:)p Fi(show)e +Fm(\()p Ff("v2")s Fm(\);)249 587 y Fn(g)249 686 y Fk(if)41 +b Fm(\()p Fi(v0)f Fn(6)p Fm(=)22 b Fi(v1)35 b Fn(^)19 +b Fi(v0)39 b Fn(6)p Fm(=)23 b Fi(v2)16 b Fm(\))41 b Fn(f)332 +786 y Fk(if)g Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 +b Fn(\034)23 b Ff("Not)p Fj( )p Ff(on)p Fj( )p Ff(line.\\n")n +Fm(;)332 886 y Fk(return)33 b(pair)5 b Fn(h)p Fk(b)s(o)s(ol)t Fe(;)14 b Fk(real)t Fn(i)p Fm(\()p Fi(false)f Fe(;)h Ff(INVALID_REAL)o Fm(\);)249 985 y Fn(g)512 1085 y Fe(=)p Fn(\003)41 b Fm([)p Fh(LDF)25 b(2002.10.29.)p Fm(])61 @@ -10325,22 +10395,21 @@ b Fm(=)f Fi(false)12 b Fm(;)83 3302 y Fk(return)33 b(pair)5 b Fn(h)p Fk(b)s(o)s(ol)t Fe(;)14 b Fk(real)t Fn(i)p Fm(\()p Fe(b;)g(r)s Fm(\);)28 b Fn(g)0 3501 y Fk(352.)94 b(const)37 -b(v)m(ersion.)p 0 3577 1643 4 v 1738 3609 a(Begin)31 -b(Log)p 2257 3577 V 83 3750 a Fm([)p Fh(LDF)25 b(2002.10.29.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 3842 1678 4 -v 1773 3874 a Fk(End)k(Log)p 2222 3842 V 0 3999 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +b(v)m(ersion.)p 0 3577 1779 4 v 1874 3609 a(Log)p 2122 +3577 V 83 3750 a Fm([)p Fh(LDF)25 b(2002.10.29.)p Fm(])61 +b(Added)28 b(this)g(function.)p 0 3842 3900 4 v 0 3999 +a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4099 y Fk(b)s(o)s(ol)p 269 4099 29 5 v 38 w(real)33 b Fi(is)p 556 4099 26 4 v 31 w(on)p 676 4099 V 31 w(se)l(gment)11 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(p0)17 b Fe(;)d Fk(const)32 b(P)m(oin)m(t)h Fm(&)o Fi(p1)17 b Fm(\))28 b Fk(const)t Fm(;)p eop end -%%Page: 92 92 -TeXDict begin 92 91 bop 0 83 a Fm(92)140 b Fk(CONST)28 -b Fl(VERSION)2299 b(3DLDFPR)n(G)142 b Fn(x)p Fm(353)0 -263 y Fk(353.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 -b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +%%Page: 93 93 +TeXDict begin 93 92 bop 0 83 a Fn(x)p Fm(353)140 b Fl(3DLDFPR)n(G)2299 +b Fk(CONST)28 b Fl(VERSION)141 b Fm(93)0 263 y Fk(353.)0 +388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b +Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)p 269 487 29 5 v 38 w(real)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(is)p 847 487 26 4 v 32 w(on)p 968 487 V 30 w(se)l(gment)k Fm(\()p Fk(const)33 b(P)m(oin)m(t)g @@ -10353,128 +10422,122 @@ y Fk(354.)94 b(Is)29 b(on)h(line.)93 b Fm([)p Fh(LDF)26 b(2002.10.29.)p Fm(])58 b(TO)26 b(DO:)f(Ma)n(yb)r(e)g(add)g(a)g(non-)p Fk(const)30 b Fm(v)n(ersion.)35 b(This)25 b(isn't)h(urgen)n(t,)f -(though.)p 0 1214 1643 4 v 1738 1246 a Fk(Begin)31 b(Log)p -2257 1214 V 83 1387 a Fm([)p Fh(LDF)25 b(2002.10.29.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 1479 1678 4 -v 1773 1512 a Fk(End)k(Log)p 2222 1479 V 0 1636 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1736 y Fk(b)s(o)s(ol)p -269 1736 29 5 v 38 w(real)33 b Fi(is)p 556 1736 26 4 -v 31 w(on)p 676 1736 V 31 w(line)11 b Fm(\()p Fk(const)32 +(though.)p 0 1213 1779 4 v 1874 1246 a Fk(Log)p 2122 +1213 V 83 1386 a Fm([)p Fh(LDF)g(2002.10.29.)p Fm(])61 +b(Added)28 b(this)g(function.)p 0 1478 3900 4 v 0 1635 +a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1735 y Fk(b)s(o)s(ol)p +269 1735 29 5 v 38 w(real)33 b Fi(is)p 556 1735 26 4 +v 31 w(on)p 676 1735 V 31 w(line)11 b Fm(\()p Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fm(\))28 b Fk(const)5 -b Fm(;)0 1935 y Fk(355.)0 2060 y Fn(h)14 b Fm(De\014ne)28 +b Fm(;)0 1934 y Fk(355.)0 2059 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 2159 y Fk(b)s(o)s(ol)p 269 2159 29 +b Fm(+)p Fn(\021)83 2158 y Fk(b)s(o)s(ol)p 269 2158 29 5 v 38 w(real)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(is)p -847 2159 26 4 v 32 w(on)p 968 2159 V 30 w(line)j Fm(\()p +847 2158 26 4 v 32 w(on)p 968 2158 V 30 w(line)j Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fm(\))28 -b Fk(const)83 2259 y Fn(f)166 2358 y Fk(b)s(o)s(ol)p +b Fk(const)83 2258 y Fn(f)166 2358 y Fk(b)s(o)s(ol)p 352 2358 29 5 v 38 w(real)33 b Fi(br)j Fm(=)23 b Fi(is)p 836 2358 26 4 v 31 w(on)p 956 2358 V 31 w(se)l(gment)11 -b Fm(\()p Fi(p0)17 b Fe(;)d Fi(p1)i Fm(\);)166 2483 y +b Fm(\()p Fi(p0)17 b Fe(;)d Fi(p1)i Fm(\);)166 2482 y Fk(if)41 b Fm(\()p Fi(br)14 b Fe(:)p Fi(se)l(c)l(ond)36 b Fn(6)p Fm(=)23 b Ff(INVALID_REAL)o Fm(\))42 b Fi(br)13 b Fe(:)p Fi(\014rst)35 b Fm(=)23 b Fi(true)9 b Fm(;)166 -2583 y Fk(return)33 b Fi(br)13 b Fm(;)83 2682 y Fn(g)0 +2582 y Fk(return)33 b Fi(br)13 b Fm(;)83 2682 y Fn(g)0 2881 y Fk(356.)94 b(Is)31 b(on)f(Plane.)95 b Fm([)p Fh(LDF)26 b(2003.06.04.)p Fm(])59 b(This)27 b(function)g(returns)f Fi(true)10 b Fm(,)27 b(if)g Fn(\003)o Fi(this)38 b Fm(lies)27 -b(on)f(the)h Fk(Plane)k Fe(p)p Fm(,)c(otherwise)0 2981 +b(on)f(the)h Fk(Plane)k Fe(p)p Fm(,)c(otherwise)0 2980 y Fi(false)12 b Fm(.)37 b(It)28 b(m)n(ust)f(b)r(e)h(de\014ned)g(in)g Fj(planes.web)p Fm(,)c(b)r(ecause)j Fk(Plane)32 b Fm(is)c(an)f -(incomplete)h(t)n(yp)r(e)g(here.)p 0 3083 1643 4 v 1738 -3115 a Fk(Begin)j(Log)p 2257 3083 V 83 3256 a Fm([)p -Fh(LDF)25 b(2003.06.04.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 3348 1678 4 v 1773 3380 a Fk(End)k(Log)p 2222 3348 -V 0 3505 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +(incomplete)h(t)n(yp)r(e)g(here.)p 0 3081 1779 4 v 1874 +3114 a Fk(Log)p 2122 3081 V 83 3255 a Fm([)p Fh(LDF)d(2003.06.04.)p +Fm(])61 b(Added)28 b(this)g(function.)p 0 3346 3900 4 +v 0 3504 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3605 y Fk(b)s(o)s(ol)31 b Fi(is)p 360 3605 26 4 v 31 -w(on)p 480 3605 V 30 w(plane)12 b Fm(\()p Fk(const)33 -b(Plane)f Fm(&)p Fe(p)o Fm(\))c Fk(const)5 b Fm(;)0 3804 +3603 y Fk(b)s(o)s(ol)31 b Fi(is)p 360 3603 26 4 v 31 +w(on)p 480 3603 V 30 w(plane)12 b Fm(\()p Fk(const)33 +b(Plane)f Fm(&)p Fe(p)o Fm(\))c Fk(const)5 b Fm(;)0 3803 y Fk(357.)94 b(Is)25 b(in)f(triangle.)94 b Fm([)p Fh(LDF)26 b(2003.06.11.)p Fm(])54 b(This)21 b(function)h(returns)f Fi(true)10 b Fm(,)22 b(if)g Fn(\003)p Fi(this)33 b Fm(lies)21 -b(within)h(the)f(triangle)g(de\014ned)0 3904 y(b)n(y)30 +b(within)h(the)f(triangle)g(de\014ned)0 3902 y(b)n(y)30 b(the)h(three)f Fk(P)m(oin)m(t)35 b Fm(argumen)n(ts,)30 b(otherwise)f Fi(false)12 b Fm(.)44 b(De\014ned)31 b(in)g Fj(paths.web)p Fm(,)c(b)r(ecause)j(it)h(uses)e Fk(class)35 -b(P)m(ath)6 b Fm(,)31 b(whic)n(h)0 4003 y(is)c(an)h(incompletely)f -(de\014ned)h(t)n(yp)r(e)g(here.)p 0 4102 1643 4 v 1738 -4135 a Fk(Begin)j(Log)p 2257 4102 V 83 4276 a Fm([)p -Fh(LDF)25 b(2003.06.11.)p Fm(])61 b(Added)28 b(this)g(function.)83 -4375 y([)p Fh(LDF)d(2003.06.24.)p Fm(])61 b(Remo)n(v)n(ed)27 -b(the)h(argumen)n(t)e Fi(test)p 1745 4375 26 4 v 30 w(p)l(oints)11 -b Fm(.)p 0 4467 1678 4 v 1773 4500 a Fk(End)32 b(Log)p -2222 4467 V 0 4624 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b(P)m(ath)6 b Fm(,)31 b(whic)n(h)0 4002 y(is)c(an)h(incompletely)f +(de\014ned)h(t)n(yp)r(e)g(here.)p 0 4100 1779 4 v 1874 +4133 a Fk(Log)p 2122 4100 V 83 4274 a Fm([)p Fh(LDF)d(2003.06.11.)p +Fm(])61 b(Added)28 b(this)g(function.)83 4373 y([)p Fh(LDF)d +(2003.06.24.)p Fm(])61 b(Remo)n(v)n(ed)27 b(the)h(argumen)n(t)e +Fi(test)p 1745 4373 26 4 v 30 w(p)l(oints)11 b Fm(.)p +0 4465 3900 4 v 0 4622 a Fn(h)j Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4724 y Fk(b)s(o)s(ol)33 b Fi(is)p 362 4724 26 4 v 31 -w(in)p 465 4724 V 31 w(triangle)11 b Fm(\()p Fk(const)35 +4722 y Fk(b)s(o)s(ol)33 b Fi(is)p 362 4722 26 4 v 31 +w(in)p 465 4722 V 31 w(triangle)11 b Fm(\()p Fk(const)35 b(P)m(oin)m(t)g Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)35 b(P)m(oin)m(t)g Fm(&)p Fi(p1)16 b Fe(;)e Fk(const)35 b(P)m(oin)m(t)g Fm(&)p Fi(p2)16 b Fe(;)e Fk(b)s(o)s(ol)33 b Fi(verb)l(ose)38 b Fm(=)27 b Fi(false)12 b Fm(\))249 -4824 y Fk(const)5 b Fm(;)0 5023 y Fk(358.)94 b(T)-8 b(ransformations.)0 -5222 y(359.)94 b(A\016ne)32 b(transformations.)p eop +4822 y Fk(const)5 b Fm(;)0 5021 y Fk(358.)94 b(T)-8 b(ransformations.)0 +5220 y(359.)94 b(A\016ne)32 b(transformations.)p eop end -%%Page: 93 93 -TeXDict begin 93 92 bop 0 83 a Fn(x)p Fm(360)140 b Fl(3DLDFPR)n(G)1654 -b(R)n(OT)-6 b(A)g(TION)24 b(AR)n(OUND)e(THE)i(MAIN)f(AXES)141 -b Fm(93)0 263 y Fk(360.)94 b(Rotation)31 b(around)i(the)f(main)f(axes.) -p 0 339 1643 4 v 1738 371 a(Begin)g(Log)p 2257 339 V +%%Page: 94 94 +TeXDict begin 94 93 bop 0 83 a Fm(94)140 b Fl(R)n(OT)-6 +b(A)g(TION)24 b(AR)n(OUND)f(THE)g(MAIN)g(AXES)1654 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(360)0 263 y Fk(360.)94 b(Rotation)31 b(around)i(the)f(main) +f(axes.)p 0 339 1779 4 v 1874 371 a(Log)p 2122 339 V 83 512 a Fm([)p Fh(LDF)25 b(2003.01.22.)p Fm(])66 b(Replaced)33 b(b)r(o)r(dy)g(of)g(function.)53 b Fk(T)-8 b(ransform)14 b Fm(::)8 b Fi(r)l(otate)j Fm(\()j(\))33 b(returns)g(a)f Fk(T)-8 b(ransform)39 b Fm(represen)n(ting)0 612 y(the)28 b(rotation)e(only)-7 b(,)28 b(so)f(I)g(don't)h(need)g(to)f(use)h(a)f (lo)r(cally)g(declared)g Fk(T)-8 b(ransform)33 b Fe(t)27 -b Fm(in)h(this)g(function.)p 0 704 1678 4 v 1773 736 -a Fk(End)k(Log)p 2222 704 V 0 861 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 960 y Fk(T)-8 b(ransform)33 b Fi(r)l(otate)11 -b Fm(\()p Fk(const)32 b(real)h Fe(x;)14 b Fk(const)33 -b(real)f Fe(y)26 b Fm(=)c(0)p Fe(;)14 b Fk(const)32 b(real)h -Fe(z)26 b Fm(=)d(0)o(\);)0 1160 y Fk(361.)0 1284 y Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1384 y Fk(T)-8 -b(ransform)33 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(r)l(otate)j -Fm(\()p Fk(const)32 b(real)h Fe(x;)14 b Fk(const)33 b(real)f -Fe(y)s(;)14 b Fk(const)32 b(real)g Fe(z)t Fm(\))83 1483 -y Fn(f)166 1583 y Fk(return)h Fi(tr)l(ansform)11 b Fe(:)p -Fi(r)l(otate)f Fm(\()p Fe(x)q(;)k(y)s(;)g(z)s Fm(\);)83 -1683 y Fn(g)0 1882 y Fk(362.)94 b(Scale.)p 0 1958 1643 -4 v 1738 1990 a(Begin)31 b(Log)p 2257 1958 V 83 2131 +b Fm(in)h(this)g(function.)p 0 704 3900 4 v 0 861 a Fn(h)14 +b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 960 y Fk(T)-8 +b(ransform)33 b Fi(r)l(otate)11 b Fm(\()p Fk(const)32 +b(real)h Fe(x;)14 b Fk(const)33 b(real)f Fe(y)26 b Fm(=)c(0)p +Fe(;)14 b Fk(const)32 b(real)h Fe(z)26 b Fm(=)d(0)o(\);)0 +1160 y Fk(361.)0 1284 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +1384 y Fk(T)-8 b(ransform)33 b(P)m(oin)m(t)14 b Fm(::)8 +b Fi(r)l(otate)j Fm(\()p Fk(const)32 b(real)h Fe(x;)14 +b Fk(const)33 b(real)f Fe(y)s(;)14 b Fk(const)32 b(real)g +Fe(z)t Fm(\))83 1483 y Fn(f)166 1583 y Fk(return)h Fi(tr)l(ansform)11 +b Fe(:)p Fi(r)l(otate)f Fm(\()p Fe(x)q(;)k(y)s(;)g(z)s +Fm(\);)83 1683 y Fn(g)0 1882 y Fk(362.)94 b(Scale.)p +0 1958 1779 4 v 1874 1990 a(Log)p 2122 1958 V 83 2131 a Fm([)p Fh(LDF)25 b(2003.01.22.)p Fm(])56 b(Replaced)23 b(b)r(o)r(dy)g(of)f(function.)36 b Fk(T)-8 b(ransform)14 b Fm(::)8 b Fi(sc)l(ale)k Fm(\()i(\))23 b(returns)f(a)g Fk(T)-8 b(ransform)28 b Fm(represen)n(ting)22 b(the)0 2231 y(rotation)k(only)-7 b(,)28 b(so)f(I)g(don't)h(need)g(to)f(use)h (a)f(lo)r(cally)g(declared)g Fk(T)-8 b(ransform)33 b -Fe(t)27 b Fm(in)h(this)g(function.)p 0 2323 1678 4 v -1773 2355 a Fk(End)k(Log)p 2222 2323 V 0 2480 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2579 y Fk(T)-8 -b(ransform)33 b Fi(sc)l(ale)11 b Fm(\()p Fk(real)33 b -Fe(x)q(;)14 b Fk(real)32 b Fe(y)26 b Fm(=)c(1)p Fe(;)14 -b Fk(real)32 b Fe(z)26 b Fm(=)d(1\);)0 2779 y Fk(363.)0 -2903 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b -Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +Fe(t)27 b Fm(in)h(this)g(function.)p 0 2323 3900 4 v +0 2480 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2579 y Fk(T)-8 b(ransform)33 b Fi(sc)l(ale)11 b Fm(\()p +Fk(real)33 b Fe(x)q(;)14 b Fk(real)32 b Fe(y)26 b Fm(=)c(1)p +Fe(;)14 b Fk(real)32 b Fe(z)26 b Fm(=)d(1\);)0 2779 y +Fk(363.)0 2903 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3003 y Fk(T)-8 b(ransform)33 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(sc)l(ale)j Fm(\()p Fk(real)33 b Fe(x;)14 b Fk(real)33 b Fe(y)r(;)14 b Fk(real)33 b Fe(z)s Fm(\))83 3102 y Fn(f)166 3202 y Fk(return)g Fi(tr)l(ansform)11 b Fe(:)p Fi(sc)l(ale)g Fm(\()p Fe(x)q(;)j(y)s(;)g(z)s Fm(\);)83 3302 y Fn(g)0 -3501 y Fk(364.)94 b(Shear.)p 0 3577 1643 4 v 1738 3609 -a(Begin)31 b(Log)p 2257 3577 V 83 3750 a Fm([)p Fh(LDF)25 -b(2003.01.22.)p Fm(])68 b(Replaced)34 b(b)r(o)r(dy)h(of)g(function.)58 +3501 y Fk(364.)94 b(Shear.)p 0 3577 1779 4 v 1874 3609 +a(Log)p 2122 3577 V 83 3750 a Fm([)p Fh(LDF)25 b(2003.01.22.)p +Fm(])68 b(Replaced)34 b(b)r(o)r(dy)h(of)g(function.)58 b Fk(T)-8 b(ransform)14 b Fm(::)8 b Fi(she)l(ar)14 b Fm(\()g(\))35 b(returns)f(a)g Fk(T)-8 b(ransform)41 b Fm(represen)n(ting)0 3850 y(the)28 b(rotation)e(only)-7 b(,)28 b(so)f(I)g(don't)h(need)g(to)f(use)h(a)f(lo)r(cally)g(declared)g Fk(T)-8 b(ransform)33 b Fe(t)27 b Fm(in)h(this)g(function.)p -0 3941 1678 4 v 1773 3974 a Fk(End)k(Log)p 2222 3941 -V 0 4099 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +0 3941 3900 4 v 0 4099 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4198 y Fk(T)-8 b(ransform)33 b Fi(she)l(ar)14 b Fm(\()p Fk(real)33 b Fi(xy)11 b Fe(;)j Fk(real)33 b Fi(xz)k Fm(=)22 @@ -10494,10 +10557,10 @@ Fe(;)g Fi(zy)d Fm(\);)83 4921 y Fn(g)0 5120 y Fk(366.)94 b(Shift.)0 5319 y(367.)g(P)m(oin)m(t)32 b(v)m(ersions.)p eop end -%%Page: 94 94 -TeXDict begin 94 93 bop 0 83 a Fm(94)140 b Fl(THREE)23 -b Fk(REAL)h Fl(AR)n(GUMENTS)1957 b(3DLDFPR)n(G)142 b -Fn(x)p Fm(368)0 263 y Fk(368.)94 b(Three)32 b(real)g(argumen)m(ts.)0 +%%Page: 95 95 +TeXDict begin 95 94 bop 0 83 a Fn(x)p Fm(368)140 b Fl(3DLDFPR)n(G)1957 +b(THREE)24 b Fk(REAL)f Fl(AR)n(GUMENTS)141 b Fm(95)0 +263 y Fk(368.)94 b(Three)32 b(real)g(argumen)m(ts.)0 388 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b Fi(shift)13 b Fm(\()p Fk(real)33 b Fe(x;)14 @@ -10562,104 +10625,100 @@ b(and)0 4622 y Fi(b)l(efor)l(e)35 b Fm(an)27 b(op)r(eration)g(is)g (applied)h(that)g(causes)e Fi(apply)p 1730 4622 V 33 w(tr)l(ansform)10 b Fm(\()15 b(\))28 b(to)f(b)r(e)h(called.)p -0 4726 1643 4 v 1738 4758 a Fk(Begin)j(Log)p 2257 4726 -V 83 4899 a Fm([)p Fh(LDF)25 b(2003.01.19.)p Fm(])61 -b(Added)28 b(this)g(section.)p 0 4991 1678 4 v 1773 5023 -a Fk(End)k(Log)p 2222 4991 V eop end -%%Page: 95 95 -TeXDict begin 95 94 bop 0 83 a Fn(x)p Fm(375)140 b Fl(3DLDFPR)n(G)1957 -b(THREE)24 b Fk(REAL)f Fl(AR)n(GUMENTS)141 b Fm(95)0 -263 y Fk(375.)94 b(Three)32 b(real)g(argumen)m(ts.)p -0 362 1643 4 v 1738 395 a(Begin)f(Log)p 2257 362 V 83 -536 a Fm([)p Fh(LDF)25 b(2003.01.19.)p Fm(])61 b(Added)28 -b(this)g(function.)83 635 y([)p Fh(LDF)d(2003.01.22.)p -Fm(])64 b(Got)31 b(rid)f(of)h(lo)r(cal)f Fk(T)-8 b(ransform)37 -b Fe(t)p Fm(.)46 b(It)31 b(w)n(asn't)f(needed.)46 b(No)n(w)31 -b(just)g(returning)f(the)h(return)f(v)-5 b(alue)0 735 -y(of)28 b Fi(tr)l(ansform)10 b Fe(:)p Fi(shift)p 639 -735 26 4 v 32 w(times)h Fm(\()j(\).)p 0 827 1678 4 v -1773 859 a Fk(End)32 b(Log)p 2222 827 V 0 984 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1084 y Fk(T)-8 -b(ransform)33 b Fi(shift)p 705 1084 26 4 v 32 w(times)11 -b Fm(\()p Fk(real)32 b Fe(x)q(;)14 b Fk(real)32 b Fe(y)26 -b Fm(=)d(1)o Fe(;)14 b Fk(real)33 b Fe(z)26 b Fm(=)c(1\);)0 -1283 y Fk(376.)0 1407 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 -b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -1507 y Fk(T)-8 b(ransform)33 b(P)m(oin)m(t)14 b Fm(::)8 -b Fi(shift)p 997 1507 V 31 w(times)k Fm(\()p Fk(real)32 -b Fe(x)q(;)14 b Fk(real)32 b Fe(y)s(;)14 b Fk(real)32 -b Fe(z)s Fm(\))83 1607 y Fn(f)166 1706 y Fk(return)h -Fi(tr)l(ansform)11 b Fe(:)p Fi(shift)p 1009 1706 V 31 -w(times)h Fm(\()p Fe(x;)i(y)s(;)g(z)s Fm(\);)83 1806 -y Fn(g)0 2005 y Fk(377.)94 b(P)m(oin)m(t)32 b(argumen)m(t.)p -0 2104 1643 4 v 1738 2137 a(Begin)f(Log)p 2257 2104 V -83 2278 a Fm([)p Fh(LDF)25 b(2003.01.19.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 2370 1678 4 v 1773 2402 a Fk(End)k(Log)p -2222 2370 V 0 2527 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +0 4725 1779 4 v 1874 4758 a Fk(Log)p 2122 4725 V 83 4898 +a Fm([)p Fh(LDF)d(2003.01.19.)p Fm(])61 b(Added)28 b(this)g(section.)p +0 4990 3900 4 v eop end +%%Page: 96 96 +TeXDict begin 96 95 bop 0 83 a Fm(96)140 b Fl(THREE)23 +b Fk(REAL)h Fl(AR)n(GUMENTS)1957 b(3DLDFPR)n(G)142 b +Fn(x)p Fm(375)0 263 y Fk(375.)94 b(Three)32 b(real)g(argumen)m(ts.)p +0 362 1779 4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm([)p +Fh(LDF)25 b(2003.01.19.)p Fm(])61 b(Added)28 b(this)g(function.)83 +635 y([)p Fh(LDF)d(2003.01.22.)p Fm(])64 b(Got)31 b(rid)f(of)h(lo)r +(cal)f Fk(T)-8 b(ransform)37 b Fe(t)p Fm(.)46 b(It)31 +b(w)n(asn't)f(needed.)46 b(No)n(w)31 b(just)g(returning)f(the)h(return) +f(v)-5 b(alue)0 734 y(of)28 b Fi(tr)l(ansform)10 b Fe(:)p +Fi(shift)p 639 734 26 4 v 32 w(times)h Fm(\()j(\).)p +0 826 3900 4 v 0 983 a Fn(h)g Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1083 y Fk(T)-8 b(ransform)33 b Fi(shift)p 705 1083 26 +4 v 32 w(times)11 b Fm(\()p Fk(real)32 b Fe(x)q(;)14 +b Fk(real)32 b Fe(y)26 b Fm(=)d(1)o Fe(;)14 b Fk(real)33 +b Fe(z)26 b Fm(=)c(1\);)0 1282 y Fk(376.)0 1407 y Fn(h)14 +b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1506 y Fk(T)-8 +b(ransform)33 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(shift)p +997 1506 V 31 w(times)k Fm(\()p Fk(real)32 b Fe(x)q(;)14 +b Fk(real)32 b Fe(y)s(;)14 b Fk(real)32 b Fe(z)s Fm(\))83 +1606 y Fn(f)166 1706 y Fk(return)h Fi(tr)l(ansform)11 +b Fe(:)p Fi(shift)p 1009 1706 V 31 w(times)h Fm(\()p +Fe(x;)i(y)s(;)g(z)s Fm(\);)83 1805 y Fn(g)0 2004 y Fk(377.)94 +b(P)m(oin)m(t)32 b(argumen)m(t.)p 0 2103 1779 4 v 1874 +2136 a(Log)p 2122 2103 V 83 2276 a Fm([)p Fh(LDF)25 b(2003.01.19.)p +Fm(])61 b(Added)28 b(this)g(function.)p 0 2368 3900 4 +v 0 2525 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2626 y Fk(T)-8 b(ransform)33 b Fi(shift)p 705 2626 26 +2625 y Fk(T)-8 b(ransform)33 b Fi(shift)p 705 2625 26 4 v 32 w(times)11 b Fm(\()p Fk(const)32 b(P)m(oin)m(t)h -Fm(&)p Fe(p)p Fm(\);)0 2826 y Fk(378.)0 2950 y Fn(h)14 +Fm(&)p Fe(p)p Fm(\);)0 2824 y Fk(378.)0 2949 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3050 y Fk(T)-8 +Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3048 y Fk(T)-8 b(ransform)33 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(shift)p -997 3050 V 31 w(times)k Fm(\()p Fk(const)32 b(P)m(oin)m(t)h -Fm(&)p Fe(p)p Fm(\))83 3149 y Fn(f)166 3249 y Fk(return)g -Fi(tr)l(ansform)11 b Fe(:)p Fi(shift)p 1009 3249 V 31 -w(times)h Fm(\()p Fe(p:)p Fi(get)p 1446 3249 V 30 w(x)i -Fm(\()g(\))p Fe(;)g(p:)p Fi(get)p 1813 3249 V 31 w(y)d -Fm(\()j(\))p Fe(;)g(p)q(:)p Fi(get)p 2180 3249 V 30 w(z)h -Fm(\()f(\)\);)83 3349 y Fn(g)0 3548 y Fk(379.)94 b(Alignmen)m(t)39 +997 3048 V 31 w(times)k Fm(\()p Fk(const)32 b(P)m(oin)m(t)h +Fm(&)p Fe(p)p Fm(\))83 3148 y Fn(f)166 3248 y Fk(return)g +Fi(tr)l(ansform)11 b Fe(:)p Fi(shift)p 1009 3248 V 31 +w(times)h Fm(\()p Fe(p:)p Fi(get)p 1446 3248 V 30 w(x)i +Fm(\()g(\))p Fe(;)g(p:)p Fi(get)p 1813 3248 V 31 w(y)d +Fm(\()j(\))p Fe(;)g(p)q(:)p Fi(get)p 2180 3248 V 30 w(z)h +Fm(\()f(\)\);)83 3347 y Fn(g)0 3547 y Fk(379.)94 b(Alignmen)m(t)39 b(with)h(an)g(axis.)95 b Fm(Declared)34 b(in)h Fj(transfor.web)p Fm(.)53 b(De\014ned)35 b(here,)h(b)r(ecause)f(it)g(needs)f -Fk(P)m(oin)m(ts)5 b Fm(.)0 3648 y([)p Fh(LDF)25 b(2002.10.23.)p -Fm(])59 b Fi(align)p 832 3648 V 32 w(with)p 1014 3648 +Fk(P)m(oin)m(ts)5 b Fm(.)0 3646 y([)p Fh(LDF)25 b(2002.10.23.)p +Fm(])59 b Fi(align)p 832 3646 V 32 w(with)p 1014 3646 V 31 w(axis)12 b Fm(\()i(\))26 b(returns)f(the)h Fk(T)-8 -b(ransform)32 b Fm(needed)26 b(to)g(align)2760 3620 y -Fn(\000)-27 b(\000)f(!)2760 3648 y Fe(p)2802 3660 y Fg(0)2839 -3648 y Fe(p)2881 3660 y Fg(1)2944 3648 y Fm(with)26 b(one)g(of)g(the)g -(main)g(axes.)83 3747 y([)p Fh(LDF)f(2003.05.04.)p Fm(])61 +b(ransform)32 b Fm(needed)26 b(to)g(align)2760 3619 y +Fn(\000)-27 b(\000)f(!)2760 3646 y Fe(p)2802 3658 y Fg(0)2839 +3646 y Fe(p)2881 3658 y Fg(1)2944 3646 y Fm(with)26 b(one)g(of)g(the)g +(main)g(axes.)83 3746 y([)p Fh(LDF)f(2003.05.04.)p Fm(])61 b(BUG:)28 b(TO)f(DO:)h(T)-7 b(ry)27 b(to)h(\014nd)g(out)f(wh)n(y)g(I)h -(sometimes)f(get)h(erroneous)d(results)i(with)0 3847 +(sometimes)f(get)h(erroneous)d(results)i(with)0 3845 y Fi(r)l(otate)10 b Fm(\()p Fk(P)m(oin)m(t)c Fe(;)14 b Fk(P)m(oin)m(t)5 b Fe(;)14 b Fk(real)5 b Fm(\))28 b(\(formerly)e -Fi(r)l(otate)p 1583 3847 V 31 w(ar)l(ound)13 b Fm(\()h(\)\).)38 +Fi(r)l(otate)p 1583 3845 V 31 w(ar)l(ound)13 b Fm(\()h(\)\).)38 b(I)27 b(think)i(the)e(problem)h(ma)n(y)e(b)r(e)i(here.)p -0 3951 1643 4 v 1738 3983 a Fk(Begin)j(Log)p 2257 3951 -V 83 4124 a Fm([)p Fh(LDF)25 b(2002.12.10.)p Fm(])68 -b(Made)34 b(this)g(function)h(a)f Fk(friend)39 b Fm(in)34 -b Fk(class)39 b(P)m(oin)m(t)5 b Fm(.)57 b(No)n(w)33 b(calling)h -Fi(p0)16 b Fe(:)p Fi(apply)p 3263 4124 26 4 v 33 w(tr)l(ansform)11 -b Fm(\()j(\))34 b(and)0 4224 y Fi(p1)16 b Fe(:)p Fi(apply)p -315 4224 V 33 w(tr)l(ansform)11 b Fm(\()j(\))28 b(at)f(the)h(b)r -(eginning)g(of)f(this)h(function)g(and)g(using)f Fi(p0)16 -b Fe(:)p Fi(world)p 2720 4224 V 32 w(c)l(o)l(or)l(dinates)40 -b Fm(and)0 4323 y Fi(p1)16 b Fe(:)p Fi(world)p 323 4323 -V 32 w(c)l(o)l(or)l(dinates)40 b Fm(directly)27 b(instead)h(of)f -Fi(get)p 1583 4323 V 31 w(x)14 b Fm(\()g(\),)28 b Fi(get)p -1900 4323 V 30 w(y)12 b Fm(\()i(\),)28 b(and)g Fi(get)p -2377 4323 V 30 w(z)15 b Fm(\()f(\).)p 0 4415 1678 4 v -1773 4448 a Fk(End)32 b(Log)p 2222 4415 V eop end -%%Page: 96 96 -TeXDict begin 96 95 bop 0 83 a Fm(96)140 b Fl(ALIGNMENT)24 -b(WITH)g(AN)f(AXIS)1992 b(3DLDFPR)n(G)142 b Fn(x)p Fm(380)0 -263 y Fk(380.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 -b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b -Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(T)-8 -b(ransform)14 b Fm(::)8 b Fi(align)p 1222 487 26 4 v -32 w(with)p 1404 487 V 31 w(axis)j Fm(\()p Fk(P)m(oin)m(t)34 -b Fi(p0)16 b Fe(;)e Fk(P)m(oin)m(t)33 b Fi(p1)16 b Fe(;)e -Fk(c)m(har)34 b Fi(axis)11 b Fm(\))332 587 y Fe(=)p Fn(\003)41 -b Fm(Default)28 b(is)f(the)h(z-axis.)50 b Fn(\003)p Fe(=)249 -686 y Fn(f)27 b Fk(b)s(o)s(ol)k Ff(DEBUG)25 b Fm(=)e -Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 -b Fn(\003)p Fe(=)249 811 y Fk(if)41 b Fm(\()p Ff(DEBUG)s -Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p -Ff(Transfo)o(rm:)-7 b(:align_with_axis.)o(")21 b Fn(\034)i -Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)249 -911 y Fi(p0)16 b Fe(:)p Fi(apply)p 564 911 V 33 w(tr)l(ansform)11 -b Fm(\()j(\);)166 b Fe(=)p Fn(\003)41 b Fm(LDF)28 b(2002.12.10.)33 +0 3949 1779 4 v 1874 3981 a Fk(Log)p 2122 3949 V 83 4122 +a Fm([)p Fh(LDF)d(2002.12.10.)p Fm(])68 b(Made)34 b(this)g(function)h +(a)f Fk(friend)39 b Fm(in)34 b Fk(class)39 b(P)m(oin)m(t)5 +b Fm(.)57 b(No)n(w)33 b(calling)h Fi(p0)16 b Fe(:)p Fi(apply)p +3263 4122 26 4 v 33 w(tr)l(ansform)11 b Fm(\()j(\))34 +b(and)0 4222 y Fi(p1)16 b Fe(:)p Fi(apply)p 315 4222 +V 33 w(tr)l(ansform)11 b Fm(\()j(\))28 b(at)f(the)h(b)r(eginning)g(of)f +(this)h(function)g(and)g(using)f Fi(p0)16 b Fe(:)p Fi(world)p +2720 4222 V 32 w(c)l(o)l(or)l(dinates)40 b Fm(and)0 4321 +y Fi(p1)16 b Fe(:)p Fi(world)p 323 4321 V 32 w(c)l(o)l(or)l(dinates)40 +b Fm(directly)27 b(instead)h(of)f Fi(get)p 1583 4321 +V 31 w(x)14 b Fm(\()g(\),)28 b Fi(get)p 1900 4321 V 30 +w(y)12 b Fm(\()i(\),)28 b(and)g Fi(get)p 2377 4321 V +30 w(z)15 b Fm(\()f(\).)p 0 4413 3900 4 v eop end +%%Page: 97 97 +TeXDict begin 97 96 bop 0 83 a Fn(x)p Fm(380)140 b Fl(3DLDFPR)n(G)1992 +b(ALIGNMENT)23 b(WITH)h(AN)g(AXIS)141 b Fm(97)0 263 y +Fk(380.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 +b Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(T)-8 b(ransform)33 b(T)-8 b(ransform)14 b Fm(::)8 +b Fi(align)p 1222 487 26 4 v 32 w(with)p 1404 487 V 31 +w(axis)j Fm(\()p Fk(P)m(oin)m(t)34 b Fi(p0)16 b Fe(;)e +Fk(P)m(oin)m(t)33 b Fi(p1)16 b Fe(;)e Fk(c)m(har)34 b +Fi(axis)11 b Fm(\))332 587 y Fe(=)p Fn(\003)41 b Fm(Default)28 +b(is)f(the)h(z-axis.)50 b Fn(\003)p Fe(=)249 686 y Fn(f)27 +b Fk(b)s(o)s(ol)k Ff(DEBUG)25 b Fm(=)e Fi(false)12 b +Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p +Fe(=)249 811 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h +Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p Ff(Transfo)o(rm:)-7 +b(:align_with_axis.)o(")21 b Fn(\034)i Fi(end)t(l)37 +b Fn(\034)23 b Fi(\015ush)10 b Fm(;)249 911 y Fi(p0)16 +b Fe(:)p Fi(apply)p 564 911 V 33 w(tr)l(ansform)11 b +Fm(\()j(\);)166 b Fe(=)p Fn(\003)41 b Fm(LDF)28 b(2002.12.10.)33 b(Added)28 b(these)g(t)n(w)n(o)f(lines.)50 b Fn(\003)p Fe(=)249 1010 y Fi(p1)16 b Fe(:)p Fi(apply)p 564 1010 V 33 w(tr)l(ansform)11 b Fm(\()j(\);)249 1135 y Fk(T)-8 @@ -10718,10 +10777,10 @@ 654 4173 V 31 w(on)p 774 4173 V 31 w(x)p 844 4173 V 30 w(z)p 908 4173 V 30 w(plane)12 b Fe(:)p Fi(show)i Fm(\()p Ff("proj_on_x_z_plan)o(e")n Fm(\);)p eop end -%%Page: 97 97 -TeXDict begin 97 96 bop 0 83 a Fn(x)p Fm(382)140 b Fl(3DLDFPR)n(G)1992 -b(ALIGNMENT)23 b(WITH)h(AN)g(AXIS)141 b Fm(97)0 263 y -Fk(382.)94 b Fm([)p Fh(LDF)26 b(2002.10.23.)p Fm(])58 +%%Page: 98 98 +TeXDict begin 98 97 bop 0 83 a Fm(98)140 b Fl(ALIGNMENT)24 +b(WITH)g(AN)f(AXIS)1992 b(3DLDFPR)n(G)142 b Fn(x)p Fm(382)0 +263 y Fk(382.)94 b Fm([)p Fh(LDF)26 b(2002.10.23.)p Fm(])58 b(If)26 b(w)n(e're)f(aligning)g(with)h(the)g(x)f(or)g(y-axis,)g(rotate) f Fi(p1)43 b Fm(on)n(to)24 b(the)i(x-y)f(plane)h(and)f(then)h(to)g(the) 0 363 y(x-axis.)0 487 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 @@ -10801,13 +10860,12 @@ b Fi(\015ush)10 b Fm(;)166 2953 y Fi(pt)p 241 2953 V 31 w(on)p 361 2953 V 30 w(z)p 425 2953 V 31 w(axis)h Fe(:)p Fi(set)h Fm(\(0)p Fe(;)i Fm(0)o Fe(;)g Fn(\000)p -Fm(1)o(\);)83 3053 y Fn(g)0 3252 y Fk(384.)p 0 3328 1643 -4 v 1738 3360 a(Begin)31 b(Log)p 2257 3328 V 83 3501 -a Fm([)p Fh(LDF)25 b(2002.12.10.)p Fm(])69 b(Added)35 -b(the)h(follo)n(wing)e(conditional.)59 b(T)-7 b(rying)34 -b(to)h(\014x)g(a)g(bug)g(that)g(o)r(ccurred)f(while)i(p)r(orting)e(to)0 -3601 y(GNU/Lin)n(ux.)p 0 3692 1678 4 v 1773 3725 a Fk(End)e(Log)p -2222 3692 V 0 3850 a Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 +Fm(1)o(\);)83 3053 y Fn(g)0 3252 y Fk(384.)p 0 3328 1779 +4 v 1874 3360 a(Log)p 2122 3328 V 83 3501 a Fm([)p Fh(LDF)25 +b(2002.12.10.)p Fm(])69 b(Added)35 b(the)h(follo)n(wing)e(conditional.) +59 b(T)-7 b(rying)34 b(to)h(\014x)g(a)g(bug)g(that)g(o)r(ccurred)f +(while)i(p)r(orting)e(to)0 3601 y(GNU/Lin)n(ux.)p 0 3692 +3900 4 v 0 3850 a Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3949 y Fk(if)41 b Fm(\()p Fi(pr)l(oj)p 357 3949 26 4 v 32 w(on)p 478 3949 V 31 w(x)p 548 3949 @@ -10838,17 +10896,17 @@ Fj( )p Ff(t)-7 b(o)p Fj( )p Ff(z-y)p Fj( )p Ff(plane")p Fm(\);)83 4771 y Fi(p1)16 b Fe(:)p Fi(apply)p 398 4771 V 33 w(tr)l(ansform)11 b Fm(\()j(\);)p eop end -%%Page: 98 98 -TeXDict begin 98 97 bop 0 83 a Fm(98)140 b Fl(ALIGNMENT)24 -b(WITH)g(AN)f(AXIS)1992 b(3DLDFPR)n(G)142 b Fn(x)p Fm(386)0 -263 y Fk(386.)p 0 339 1643 4 v 1738 371 a(Begin)31 b(Log)p -2257 339 V 83 512 a Fm([)p Fh(LDF)25 b(2002.12.10.)p -Fm(])69 b(Added)35 b(the)h(follo)n(wing)e(conditional.)59 -b(T)-7 b(rying)34 b(to)h(\014x)g(a)g(bug)g(that)g(o)r(ccurred)f(while)i -(p)r(orting)e(to)0 612 y(GNU/Lin)n(ux.)83 711 y([)p Fh(LDF)25 -b(2003.06.13.)p Fm(])55 b(BUG)21 b(FIX:)g(Changed)g Fi(pr)l(oj)p -1615 711 26 4 v 31 w(on)p 1735 711 V 31 w(x)p 1805 711 -V 30 w(z)p 1869 711 V 31 w(plane)32 b Fm(to)21 b Fi(p1)38 +%%Page: 99 99 +TeXDict begin 99 98 bop 0 83 a Fn(x)p Fm(386)140 b Fl(3DLDFPR)n(G)1992 +b(ALIGNMENT)23 b(WITH)h(AN)g(AXIS)141 b Fm(99)0 263 y +Fk(386.)p 0 339 1779 4 v 1874 371 a(Log)p 2122 339 V +83 512 a Fm([)p Fh(LDF)25 b(2002.12.10.)p Fm(])69 b(Added)35 +b(the)h(follo)n(wing)e(conditional.)59 b(T)-7 b(rying)34 +b(to)h(\014x)g(a)g(bug)g(that)g(o)r(ccurred)f(while)i(p)r(orting)e(to)0 +612 y(GNU/Lin)n(ux.)83 711 y([)p Fh(LDF)25 b(2003.06.13.)p +Fm(])55 b(BUG)21 b(FIX:)g(Changed)g Fi(pr)l(oj)p 1615 +711 26 4 v 31 w(on)p 1735 711 V 31 w(x)p 1805 711 V 30 +w(z)p 1869 711 V 31 w(plane)32 b Fm(to)21 b Fi(p1)38 b Fm(in)21 b(the)g(\\)p Fk(if)13 b Fm(")21 b(part)f(of)h(the)h(follo)n (wing)e(conditional.)0 811 y(The)28 b(y-co)r(ordinate)e(of)i Fi(pr)l(oj)p 891 811 V 32 w(on)p 1012 811 V 30 w(x)p @@ -10861,13 +10919,12 @@ (ter)g(of)g(the)g Fk(Reg)p 3524 911 V 39 w(P)m(olygon)0 1010 y Fm(in)i(the)g(direction)f(of)h(its)f(normal,)g(and)g(the)h (resulting)f Fk(P)m(oin)m(t)33 b Fm(w)n(as)27 b(not)g(in)h(the)g(same)f -(plane.)p 0 1102 1678 4 v 1773 1135 a Fk(End)32 b(Log)p -2222 1102 V 0 1259 a Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 -b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b -Fm(+)p Fn(\021)83 1359 y Fk(if)41 b Fm(\()p Fi(p1)17 -b Fe(:)p Fi(world)p 536 1359 26 4 v 32 w(c)l(o)l(or)l(dinates)12 -b Fm([1)o(])24 b Fn(\021)e Fm(0\))41 b Fi(angle)35 b -Fm(=)22 b(0;)83 1459 y Fk(else)45 b Fi(angle)34 b Fm(=)23 +(plane.)p 0 1102 3900 4 v 0 1259 a Fn(h)14 b Fm(De\014ne)28 +b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(125)15 b +Fn(i)23 b Fm(+)p Fn(\021)83 1359 y Fk(if)41 b Fm(\()p +Fi(p1)17 b Fe(:)p Fi(world)p 536 1359 26 4 v 32 w(c)l(o)l(or)l(dinates) +12 b Fm([1)o(])24 b Fn(\021)e Fm(0\))41 b Fi(angle)35 +b Fm(=)22 b(0;)83 1459 y Fk(else)45 b Fi(angle)34 b Fm(=)23 b Fi(p1)16 b Fe(:)p Fi(angle)c Fm(\()p Fi(pt)p 1017 1459 V 30 w(on)p 1136 1459 V 31 w(z)p 1201 1459 V 31 w(axis)f Fm(\);)0 1658 y Fk(387.)0 1782 y Fn(h)j Fm(De\014ne)28 @@ -10912,23 +10969,23 @@ Ff(Transfor)o(m::)-7 b(align_with_axis.)o(")21 b Fn(\034)j Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 b Fm(;)83 3700 y Fk(return)33 b Fe(t)p Fm(;)k Fn(g)p eop end -%%Page: 99 99 -TeXDict begin 99 98 bop 0 83 a Fn(x)p Fm(389)140 b Fl(3DLDFPR)n(G)2293 -b(NORMALIZE)24 b(POINT)141 b Fm(99)0 263 y Fk(389.)94 -b(Normalize)29 b(p)s(oin)m(t.)95 b Fm(It)26 b(mak)n(es)f(it)i(easier)e -(to)h(determine)g(the)g(correct)f(direction)h(of)g(rotation)f(to)n(w)n -(ard)f(the)j(x-y)0 363 y(or)h(y-z)g(plane)h(if)g Fi(p1)16 -b Fm('s)29 b(co)r(ordinates)e(are)h(all)g Fe(>)p Fm(=)d(0,)j(so)g(w)n -(e)h(rotate)f(it)h(in)g(order)e(to)i(mak)n(e)f(them)h(so.)40 -b(The)29 b(only)f(case)g(that)0 462 y(requires)d(more)h(than)g(a)g -(rotation)f(around)g(a)h(single)g(axis)g(is)g(the)h(case)e(that)i -Fe(x)2465 474 y Fc(p)p Fg(1)2537 462 y Fm(,)f Fe(y)2627 -474 y Fc(p)p Fg(1)2699 462 y Fm(,)g(and)h Fe(z)2948 474 -y Fc(p)p Fg(1)3045 462 y Fm(are)e(all)h Fe(<)d Fm(0.)36 -b(It)27 b(w)n(ould)f(b)r(e)0 562 y(nice)i(if)g(I)f(could)h(replace)e -(this)i(long)f(conditional)g(with)h(a)f(more)g(elegan)n(t)g -(construction,)g(but)h(I)g(don't)f(kno)n(w)g(one.)0 686 -y Fn(h)14 b Fm(Normalize)27 b(p)r(oin)n(t)35 b Fl(389)15 +%%Page: 100 100 +TeXDict begin 100 99 bop 0 83 a Fm(100)140 b Fl(NORMALIZE)23 +b(POINT)2252 b(3DLDFPR)n(G)142 b Fn(x)p Fm(389)0 263 +y Fk(389.)94 b(Normalize)29 b(p)s(oin)m(t.)95 b Fm(It)26 +b(mak)n(es)f(it)i(easier)e(to)h(determine)g(the)g(correct)f(direction)h +(of)g(rotation)f(to)n(w)n(ard)f(the)j(x-y)0 363 y(or)h(y-z)g(plane)h +(if)g Fi(p1)16 b Fm('s)29 b(co)r(ordinates)e(are)h(all)g +Fe(>)p Fm(=)d(0,)j(so)g(w)n(e)h(rotate)f(it)h(in)g(order)e(to)i(mak)n +(e)f(them)h(so.)40 b(The)29 b(only)f(case)g(that)0 462 +y(requires)d(more)h(than)g(a)g(rotation)f(around)g(a)h(single)g(axis)g +(is)g(the)h(case)e(that)i Fe(x)2465 474 y Fc(p)p Fg(1)2537 +462 y Fm(,)f Fe(y)2627 474 y Fc(p)p Fg(1)2699 462 y Fm(,)g(and)h +Fe(z)2948 474 y Fc(p)p Fg(1)3045 462 y Fm(are)e(all)h +Fe(<)d Fm(0.)36 b(It)27 b(w)n(ould)f(b)r(e)0 562 y(nice)i(if)g(I)f +(could)h(replace)e(this)i(long)f(conditional)g(with)h(a)f(more)g +(elegan)n(t)g(construction,)g(but)h(I)g(don't)f(kno)n(w)g(one.)0 +686 y Fn(h)14 b Fm(Normalize)27 b(p)r(oin)n(t)35 b Fl(389)15 b Fn(i)23 b(\021)83 786 y(f)166 886 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(p1)16 b Fe(:)p Fi(show)e Fm(\()p Ff("p1)p Fj( )p Ff(before)p Fj( )p Ff(normal)o(iza)-7 @@ -11021,10 +11078,10 @@ Fh(LDF)25 b(2002.4.7.)p Fm(])60 b(Added)28 b(default)g(v)-5 b(alue)28 b(for)f Fi(angle)39 b Fn(\021)22 b Fm(180.)p eop end -%%Page: 100 100 -TeXDict begin 100 99 bop 0 83 a Fm(100)140 b Fk(POINT)24 -b Fl(AR)n(GUMENTS)2140 b(3DLDFPR)n(G)142 b Fn(x)p Fm(392)0 -263 y Fk(392.)94 b(P)m(oin)m(t)47 b(argumen)m(ts.)95 +%%Page: 101 101 +TeXDict begin 101 100 bop 0 83 a Fn(x)p Fm(392)140 b +Fl(3DLDFPR)n(G)2141 b Fk(POINT)24 b Fl(AR)n(GUMENTS)140 +b Fm(101)0 263 y Fk(392.)94 b(P)m(oin)m(t)47 b(argumen)m(ts.)95 b Fm(This)40 b(function)h(\014rst)f(c)n(hec)n(ks)f(to)h(see)f(if)i Fn(\003)p Fi(this)51 b Fm(lies)40 b(on)g(the)h(axis.)74 b(It)40 b(do)r(es)g(this)g(b)n(y)0 363 y(creating)22 @@ -11035,71 +11092,68 @@ b(b)n(y)g(-1,)g(then)g(w)n(e)f(don't)g(b)r(other)h(to)f(p)r(erform)g (the)h(rotation.)51 b(Otherwise,)33 b(w)n(e)f(call)g Fk(T)-8 b(ransform)14 b Fm(::)8 b Fi(r)l(otate)j Fm(\()j(\))0 -562 y(\(de\014ned)28 b(b)r(elo)n(w\).)p 0 666 1643 4 -v 1738 698 a Fk(Begin)j(Log)p 2257 666 V 83 839 a Fm([)p -Fh(LDF)25 b(2002.4.7.)p Fm(])60 b(Added)29 b(default)f(v)-5 -b(alue)27 b(for)g Fi(angle)39 b Fn(\021)23 b Fm(180.)83 -939 y([)p Fh(LDF)i(2003.05.02.)p Fm(])67 b(Changed)34 -b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p -2343 939 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f -Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 +562 y(\(de\014ned)28 b(b)r(elo)n(w\).)p 0 665 1779 4 +v 1874 698 a Fk(Log)p 2122 665 V 83 838 a Fm([)p Fh(LDF)d(2002.4.7.)p +Fm(])60 b(Added)29 b(default)f(v)-5 b(alue)27 b(for)g +Fi(angle)39 b Fn(\021)23 b Fm(180.)83 938 y([)p Fh(LDF)i(2003.05.02.)p +Fm(])67 b(Changed)34 b(name)f(of)h(this)h(function)f(from)g +Fi(r)l(otate)p 2343 938 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 +b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 1038 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 1130 -1678 4 v 1773 1163 a Fk(End)g(Log)p 2222 1130 V 0 1287 -a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1387 y Fk(T)-8 -b(ransform)33 b Fi(r)l(otate)11 b Fm(\()p Fk(const)32 -b(P)m(oin)m(t)h Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)32 -b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fe(;)e Fk(const)33 -b(real)f Fi(angle)i Fm(=)23 b(180)n(\);)0 1586 y Fk(393.)0 -1711 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b -Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +3900 4 v 0 1287 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1386 y Fk(T)-8 b(ransform)33 b Fi(r)l(otate)11 b Fm(\()p +Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p0)16 b Fe(;)e +Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fe(;)e +Fk(const)33 b(real)f Fi(angle)i Fm(=)23 b(180)n(\);)0 +1586 y Fk(393.)0 1710 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1810 y Fk(T)-8 b(ransform)33 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(r)l(otate)j Fm(\()p Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fe(;)e Fk(const)32 b(real)h Fi(angle)11 -b Fm(\))83 1910 y Fn(f)166 2010 y Fk(P)m(oin)m(t)33 b +b Fm(\))83 1909 y Fn(f)166 2009 y Fk(P)m(oin)m(t)33 b Fe(a)23 b Fm(=)f Fi(p1)35 b Fn(\000)18 b Fi(p0)f Fm(;)166 2109 y Fk(P)m(oin)m(t)33 b Fe(b)23 b Fm(=)f Fn(\003)p -Fi(this)30 b Fn(\000)18 b Fi(p0)e Fm(;)166 2234 y Fe(a:)p -Fi(unit)p 383 2234 26 4 v 30 w(ve)l(ctor)d Fm(\()p Fi(true)d -Fm(\);)166 2334 y Fe(b:)p Fi(unit)p 375 2334 V 30 w(ve)l(ctor)j -Fm(\()p Fi(true)d Fm(\);)166 2458 y Fk(T)-8 b(ransform)33 -b Fe(t)p Fm(;)166 2583 y Fk(if)41 b Fm(\()p Fe(a)23 b +Fi(this)30 b Fn(\000)18 b Fi(p0)e Fm(;)166 2233 y Fe(a:)p +Fi(unit)p 383 2233 26 4 v 30 w(ve)l(ctor)d Fm(\()p Fi(true)d +Fm(\);)166 2333 y Fe(b:)p Fi(unit)p 375 2333 V 30 w(ve)l(ctor)j +Fm(\()p Fi(true)d Fm(\);)166 2457 y Fk(T)-8 b(ransform)33 +b Fe(t)p Fm(;)166 2582 y Fk(if)41 b Fm(\()p Fe(a)23 b Fn(\021)g Fe(b)18 b Fn(_)h Fe(a)k Fn(\021)g(\000)o Fe(b)p Fm(\))42 b Fn(f)249 2682 y Fi(c)l(err)d Fn(\034)26 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Poin)o(t:)o(:)-6 b(rotate\(\).\\n")25 b Fn(\034)h Ff("Point)p Fj( )p Ff(to)p Fj( )p Ff(be)p Fj( )p Ff(rot)o(ate)o(d)-6 b Fj( )p Ff(lies)p Fj( )p Ff(on)p Fj( )p Ff(axis.\\n)o(")24 b Fn(\034)415 -2782 y Ff("Returning)p Fj( )p Ff(ident)o(ity)o Fj( )-6 +2781 y Ff("Returning)p Fj( )p Ff(ident)o(ity)o Fj( )-6 b Ff(Transform.\\n\\n")21 b Fn(\034)i Fi(\015ush)10 b -Fm(;)249 2881 y Fk(return)33 b Fe(t)p Fm(;)166 2981 y -Fn(g)166 3081 y Fk(return)g Fi(tr)l(ansform)11 b Fe(:)p +Fm(;)249 2881 y Fk(return)33 b Fe(t)p Fm(;)166 2980 y +Fn(g)166 3080 y Fk(return)g Fi(tr)l(ansform)11 b Fe(:)p Fi(r)l(otate)f Fm(\()p Fi(p0)17 b Fe(;)d Fi(p1)i Fe(;)e -Fi(angle)d Fm(\);)83 3180 y Fn(g)0 3380 y Fk(394.)94 +Fi(angle)d Fm(\);)83 3180 y Fn(g)0 3379 y Fk(394.)94 b(P)m(ath)36 b(argumen)m(t.)95 b Fm(De\014ned)31 b(in)f Fj(paths.web)p Fm(,)d(b)r(ecause)j Fk(P)m(ath)36 b Fm(is)30 b(still)g(an)g(incomplete)g(t)n(yp)r(e)g(in)g(this)h(compi-)0 -3479 y(lation)c(unit.)p 0 3555 1643 4 v 1738 3588 a Fk(Begin)k(Log)p -2257 3555 V 83 3728 a Fm([)p Fh(LDF)25 b(2002.04.07.)p -Fm(])61 b(Added)28 b(default)g(v)-5 b(alue)28 b(for)f -Fi(angle)39 b Fn(\021)22 b Fm(180.)83 3828 y([)p Fh(LDF)j(2003.05.02.)p +3479 y(lation)c(unit.)p 0 3554 1779 4 v 1874 3587 a Fk(Log)p +2122 3554 V 83 3728 a Fm([)p Fh(LDF)e(2002.04.07.)p Fm(])61 +b(Added)28 b(default)g(v)-5 b(alue)28 b(for)f Fi(angle)39 +b Fn(\021)22 b Fm(180.)83 3827 y([)p Fh(LDF)j(2003.05.02.)p Fm(])67 b(Changed)34 b(name)f(of)h(this)h(function)f(from)g -Fi(r)l(otate)p 2343 3828 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 +Fi(r)l(otate)p 2343 3827 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 -3928 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 +3927 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 4019 -1678 4 v 1773 4052 a Fk(End)g(Log)p 2222 4019 V 0 4177 -a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4276 y Fk(T)-8 -b(ransform)33 b Fi(r)l(otate)11 b Fm(\()p Fk(const)32 -b(P)m(ath)i Fm(&)p Fe(p)o(;)14 b Fk(const)33 b(real)f -Fi(angle)i Fm(=)23 b(180)o(\);)p eop end -%%Page: 101 101 -TeXDict begin 101 100 bop 0 83 a Fn(x)p Fm(395)140 b -Fl(3DLDFPR)n(G)1967 b Fk(TRANSF)m(ORM)23 b Fl(VERSION)141 -b Fm(101)0 263 y Fk(395.)94 b(T)-8 b(ransform)35 b(v)m(ersion.)95 +3900 4 v 0 4176 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4276 y Fk(T)-8 b(ransform)33 b Fi(r)l(otate)11 b Fm(\()p +Fk(const)32 b(P)m(ath)i Fm(&)p Fe(p)o(;)14 b Fk(const)33 +b(real)f Fi(angle)i Fm(=)23 b(180)o(\);)p eop end +%%Page: 102 102 +TeXDict begin 102 101 bop 0 83 a Fm(102)140 b Fk(TRANSF)m(ORM)23 +b Fl(VERSION)1967 b(3DLDFPR)n(G)142 b Fn(x)p Fm(395)0 +263 y Fk(395.)94 b(T)-8 b(ransform)35 b(v)m(ersion.)95 b Fm(Declared)29 b(in)h Fj(transfor.web)p Fm(.)39 b([)p Fh(LDF)25 b(2002.09.29.)p Fm(])63 b(TO)29 b(DO:)h(P)n(ossible)e(BUG!!) 44 b(Ac-)0 363 y(tually)-7 b(,)30 b(the)h(problem)e(that)h(o)r(ccurred) @@ -11107,179 +11161,176 @@ (direction)g(of)f(rotation.)43 b(I'v)n(e)29 b(c)n(hanged)g(the)0 462 y(place)e(where)g(the)h(problem)f(o)r(ccurred,)g(so)g(I'll)h(ha)n (v)n(e)e(to)i(write)f(a)g(routine)g(to)h(test)g(this.)p -0 562 1643 4 v 1738 594 a Fk(Begin)j(Log)p 2257 562 V -83 735 a Fm([)p Fh(LDF)25 b(2002.10.23.)p Fm(])61 b(Changed,)26 +0 561 1779 4 v 1874 593 a Fk(Log)p 2122 561 V 83 734 +a Fm([)p Fh(LDF)d(2002.10.23.)p Fm(])61 b(Changed,)26 b(so)h(that)g(the)h(direction)f(of)1971 707 y Fn(\000)-27 -b(\000)f(!)1971 735 y Fe(p)2013 747 y Fg(0)2050 735 y -Fe(p)2092 747 y Fg(1)2156 735 y Fm(is)27 b(tested.)37 +b(\000)f(!)1971 734 y Fe(p)2013 746 y Fg(0)2050 734 y +Fe(p)2092 746 y Fg(1)2156 734 y Fm(is)27 b(tested.)37 b(If)28 b(it)f(is)h(parallel)e(to)h(the)g(x)g(or)g(y-axis,)f(then)0 834 y(that)i(axis)f(is)h(used)g(for)f(alignmen)n(t.)38 b(Otherwise,)27 b(the)h(z-axis)f(is)g(used.)38 b(This)28 b(ma)n(y)f(help)h(reduce)g(inaccuracies)e(caused)h(b)n(y)0 -934 y(rotations.)36 b(Ha)n(v)n(en't)27 b(tested)g(it)h(y)n(et.)37 -b(TO)27 b(DO:)h(T)-7 b(est)28 b(this!)83 1034 y([)p Fh(LDF)d +933 y(rotations.)36 b(Ha)n(v)n(en't)27 b(tested)g(it)h(y)n(et.)37 +b(TO)27 b(DO:)h(T)-7 b(est)28 b(this!)83 1033 y([)p Fh(LDF)d (2002.11.03.)p Fm(])61 b(TO)27 b(DO:)h(See)g(if)g(I)f(can't)h(mak)n(e)f Fk(P)m(oin)m(t)33 b Fm(argumen)n(ts)26 b Fk(const)5 b Fm(.)83 1133 y([)p Fh(LDF)25 b(2003.05.02.)p Fm(])67 b(Changed)34 b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p 2343 1133 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 -1233 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 -b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 1325 -1678 4 v 1773 1358 a Fk(End)g(Log)p 2222 1325 V 0 1482 -a Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b -Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -1582 y Fk(T)-8 b(ransform)33 b(T)-8 b(ransform)14 b Fm(::)8 -b Fi(r)l(otate)j Fm(\()p Fk(P)m(oin)m(t)33 b Fi(p0)16 -b Fe(;)e Fk(P)m(oin)m(t)33 b Fi(p1)16 b Fe(;)e Fk(const)33 -b(real)f Fi(angle)11 b Fm(\))83 1681 y Fn(f)166 1781 -y Fk(b)s(o)s(ol)31 b Ff(DEBUG)25 b Fm(=)e Fi(false)12 +1232 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 +b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 1324 +3900 4 v 0 1481 a Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 +b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b +Fm(+)p Fn(\021)83 1581 y Fk(T)-8 b(ransform)33 b(T)-8 +b(ransform)14 b Fm(::)8 b Fi(r)l(otate)j Fm(\()p Fk(P)m(oin)m(t)33 +b Fi(p0)16 b Fe(;)e Fk(P)m(oin)m(t)33 b Fi(p1)16 b Fe(;)e +Fk(const)33 b(real)f Fi(angle)11 b Fm(\))83 1681 y Fn(f)166 +1780 y Fk(b)s(o)s(ol)31 b Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p Fe(=)166 1905 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p Ff(Transfo)o(rm:)-7 -b(:rotate\(\).\\n")o Fm(;)166 2005 y Fi(p0)16 b Fe(:)p -Fi(apply)p 481 2005 26 4 v 33 w(tr)l(ansform)11 b Fm(\()j(\);)166 -2105 y Fi(p1)i Fe(:)p Fi(apply)p 481 2105 V 33 w(tr)l(ansform)11 +b(:rotate\(\).\\n")o Fm(;)166 2004 y Fi(p0)16 b Fe(:)p +Fi(apply)p 481 2004 26 4 v 33 w(tr)l(ansform)11 b Fm(\()j(\);)166 +2104 y Fi(p1)i Fe(:)p Fi(apply)p 481 2104 V 33 w(tr)l(ansform)11 b Fm(\()j(\);)166 2229 y Fk(P)m(oin)m(t)33 b Fe(a)23 -b Fm(=)f Fi(p1)35 b Fn(\000)18 b Fi(p0)f Fm(;)166 2354 -y Fe(a:)p Fi(unit)p 383 2354 V 30 w(ve)l(ctor)c Fm(\()p +b Fm(=)f Fi(p1)35 b Fn(\000)18 b Fi(p0)f Fm(;)166 2353 +y Fe(a:)p Fi(unit)p 383 2353 V 30 w(ve)l(ctor)c Fm(\()p Fi(true)d Fm(\);)166 2478 y Fk(c)m(har)34 b Fi(axis)11 -b Fm(;)166 2603 y Fk(if)41 b Fm(\()p Fe(a:)p Fi(get)p -471 2603 V 31 w(x)14 b Fm(\()g(\))23 b Fn(\021)g Fm(1)18 -b Fn(_)h Fe(a)o(:)p Fi(get)p 1048 2603 V 31 w(x)14 b +b Fm(;)166 2602 y Fk(if)41 b Fm(\()p Fe(a:)p Fi(get)p +471 2602 V 31 w(x)14 b Fm(\()g(\))23 b Fn(\021)g Fm(1)18 +b Fn(_)h Fe(a)o(:)p Fi(get)p 1048 2602 V 31 w(x)14 b Fm(\()g(\))23 b Fn(\021)g(\000)o Fm(1\))42 b Fi(axis)34 b Fm(=)23 b Ff('x')s Fm(;)166 2702 y Fk(else)31 b(if)41 b Fm(\()p Fe(a)q(:)p Fi(get)p 656 2702 V 30 w(y)12 b Fm(\()i(\))24 b Fn(\021)e Fm(1)c Fn(_)h Fe(a:)p Fi(get)p 1232 2702 V 30 w(y)12 b Fm(\()i(\))24 b Fn(\021)e(\000)p Fm(1)o(\))42 b Fi(axis)35 b Fm(=)22 b Ff('y')s Fm(;)166 -2802 y Fk(else)45 b Fi(axis)34 b Fm(=)23 b Ff('z')s Fm(;)166 -2927 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 3051 y -Fe(t:)p Fi(align)p 397 3051 V 32 w(with)p 579 3051 V +2801 y Fk(else)45 b Fi(axis)34 b Fm(=)23 b Ff('z')s Fm(;)166 +2926 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 3050 y +Fe(t:)p Fi(align)p 397 3050 V 32 w(with)p 579 3050 V 31 w(axis)11 b Fm(\()p Fi(p0)17 b Fe(;)d Fi(p1)i Fe(;)e -Fi(axis)d Fm(\);)166 3176 y Fk(T)-8 b(ransform)33 b Fe(i)23 +Fi(axis)d Fm(\);)166 3175 y Fk(T)-8 b(ransform)33 b Fe(i)23 b Fm(=)f Fe(t:)p Fi(inverse)12 b Fm(\()i(\);)166 3300 y Fk(if)41 b Fm(\()p Fi(axis)35 b Fn(\021)23 b Ff('x')s Fm(\))42 b Fe(t:)p Fi(r)l(otate)10 b Fm(\()p Fi(angle)i -Fm(\);)166 3400 y Fk(else)31 b(if)41 b Fm(\()p Fi(axis)35 +Fm(\);)166 3399 y Fk(else)31 b(if)41 b Fm(\()p Fi(axis)35 b Fn(\021)23 b Ff('y')s Fm(\))42 b Fe(t:)p Fi(r)l(otate)10 b Fm(\(0)p Fe(;)k Fi(angle)d Fm(\);)166 3499 y Fk(else)45 b Fe(t:)p Fi(r)l(otate)11 b Fm(\(0)o Fe(;)j Fm(0)p Fe(;)g -Fi(angle)d Fm(\);)166 3599 y Fe(t)23 b Fn(\003)p Fm(=)f -Fe(i)p Fm(;)166 3699 y Fe(t:)p Fi(cle)l(an)11 b Fm(\()j(\);)166 +Fi(angle)d Fm(\);)166 3598 y Fe(t)23 b Fn(\003)p Fm(=)f +Fe(i)p Fm(;)166 3698 y Fe(t:)p Fi(cle)l(an)11 b Fm(\()j(\);)166 3798 y Fn(\003)p Fi(this)34 b Fn(\003)p Fm(=)22 b Fe(t)p -Fm(;)166 3898 y Fi(cle)l(an)11 b Fm(\()j(\);)166 3998 +Fm(;)166 3897 y Fi(cle)l(an)11 b Fm(\()j(\);)166 3997 y Fk(return)33 b Fe(t)p Fm(;)83 4097 y Fn(g)p eop end -%%Page: 102 102 -TeXDict begin 102 101 bop 0 83 a Fm(102)140 b Fk(PICTURE)24 -b Fl(VERSION)2152 b(3DLDFPR)n(G)142 b Fn(x)p Fm(396)0 -263 y Fk(396.)94 b(Picture)33 b(v)m(ersion.)94 b Fm([)p -Fh(LDF)26 b(2002.10.20.)p Fm(])60 b Fi(angle)39 b Fm(is)28 -b(in)g(degrees.)p 0 367 1643 4 v 1738 400 a Fk(Begin)j(Log)p -2257 367 V 83 540 a Fm([)p Fh(LDF)25 b(2003.05.02.)p +%%Page: 103 103 +TeXDict begin 103 102 bop 0 83 a Fn(x)p Fm(396)140 b +Fl(3DLDFPR)n(G)2152 b Fk(PICTURE)24 b Fl(VERSION)141 +b Fm(103)0 263 y Fk(396.)94 b(Picture)33 b(v)m(ersion.)94 +b Fm([)p Fh(LDF)26 b(2002.10.20.)p Fm(])60 b Fi(angle)39 +b Fm(is)28 b(in)g(degrees.)p 0 366 1779 4 v 1874 399 +a Fk(Log)p 2122 366 V 83 540 a Fm([)p Fh(LDF)d(2003.05.02.)p Fm(])67 b(Changed)34 b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p 2343 540 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 -640 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 -b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 732 1678 -4 v 1773 764 a Fk(End)g(Log)p 2222 732 V 0 889 a Fn(h)14 -b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j Fl(219)14 -b Fn(i)24 b Fm(+)p Fn(\021)83 989 y Fk(T)-8 b(ransform)33 -b(Picture)14 b Fm(::)8 b Fi(r)l(otate)j Fm(\()p Fk(const)32 -b(P)m(oin)m(t)h Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)32 -b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fe(;)e Fk(const)33 -b(real)f Fi(angle)11 b Fm(\))83 1088 y Fn(f)166 1188 -y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 1312 y Fe(t:)p -Fi(r)l(otate)11 b Fm(\()p Fi(p0)16 b Fe(;)e Fi(p1)i Fe(;)e -Fi(angle)e Fm(\);)166 1412 y Fi(tr)l(ansform)34 b Fn(\003)p -Fm(=)22 b Fe(t)p Fm(;)166 1512 y Fk(return)33 b Fe(t)p -Fm(;)83 1611 y Fn(g)0 1810 y Fk(397.)94 b(Pro)5 b(jection.)96 -b Fm([)p Fh(LDF)25 b(2002.10.23.)p Fm(])75 b(F)-7 b(or)42 -b(st)n(ylistic)f(reasons,)j(and)e(for)g(the)g(sak)n(e)f(of)h(clean)f -(programming,)j(I)0 1910 y(b)r(eliev)n(e)36 b(that)h(the)f(programmer)e -(who)i(uses)g Fi(pr)l(oje)l(ct)13 b Fm(\()h(\))36 b(should)g(ensure)g -(that)g Fi(apply)p 2759 1910 26 4 v 33 w(tr)l(ansform)11 -b Fm(\()j(\))36 b(has)g(b)r(een)h(in)n(v)n(ok)n(ed)0 -2010 y(\014rst.)i(Ho)n(w)n(ev)n(er,)27 b Fi(tr)l(ansform)39 -b Fm(is)29 b(c)n(hec)n(k)n(ed)e(in)i Fi(pr)l(oje)l(ct)13 -b Fm(\()h(\))29 b(and)f Fi(apply)p 2158 2010 V 33 w(tr)l(ansform)10 -b Fm(\()k(\))29 b(is)g(in)n(v)n(ok)n(ed,)e(if)i(required,)f(so)g(in)n -(v)n(oking)0 2109 y Fi(apply)p 192 2109 V 32 w(tr)l(ansform)11 -b Fm(\()j(\))28 b(explicitly)g(b)r(eforehand)f(is)h(not)f(strictly)h -(sp)r(eaking)e(necessary)-7 b(.)p 0 2213 1643 4 v 1738 -2246 a Fk(Begin)31 b(Log)p 2257 2213 V 83 2387 a Fm([)p -Fh(LDF)25 b(2002.09.09.)p Fm(])56 b(The)23 b(new)f(v)n(ersion)f(no)n(w) -h(almost)g(w)n(orks)f(Added)i(division)f(of)h Fi(pr)l(oje)l(ctive)p -3002 2387 26 4 v 32 w(c)l(o)l(or)l(dinates)35 b Fm(b)n(y)22 -b(the)h(v)-5 b(alue)0 2486 y(calculated)31 b(for)h Fe(w)r -Fm(.)50 b(Ho)n(w)n(ev)n(er,)31 b(it)h(do)r(esn't)g(w)n(ork)f(when)h(I)g -(use)f Fi(hex)p 2167 2486 V 31 w(p)l(attern1)16 b Fm(\()e(\).)50 +639 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 +b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 731 3900 +4 v 0 888 a Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 +b Fm(functions)j Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +988 y Fk(T)-8 b(ransform)33 b(Picture)14 b Fm(::)8 b +Fi(r)l(otate)j Fm(\()p Fk(const)32 b(P)m(oin)m(t)h Fm(&)p +Fi(p0)16 b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p +Fi(p1)16 b Fe(;)e Fk(const)33 b(real)f Fi(angle)11 b +Fm(\))83 1087 y Fn(f)166 1187 y Fk(T)-8 b(ransform)33 +b Fe(t)p Fm(;)166 1312 y Fe(t:)p Fi(r)l(otate)11 b Fm(\()p +Fi(p0)16 b Fe(;)e Fi(p1)i Fe(;)e Fi(angle)e Fm(\);)166 +1411 y Fi(tr)l(ansform)34 b Fn(\003)p Fm(=)22 b Fe(t)p +Fm(;)166 1511 y Fk(return)33 b Fe(t)p Fm(;)83 1611 y +Fn(g)0 1810 y Fk(397.)94 b(Pro)5 b(jection.)96 b Fm([)p +Fh(LDF)25 b(2002.10.23.)p Fm(])75 b(F)-7 b(or)42 b(st)n(ylistic)f +(reasons,)j(and)e(for)g(the)g(sak)n(e)f(of)h(clean)f(programming,)j(I)0 +1909 y(b)r(eliev)n(e)36 b(that)h(the)f(programmer)e(who)i(uses)g +Fi(pr)l(oje)l(ct)13 b Fm(\()h(\))36 b(should)g(ensure)g(that)g +Fi(apply)p 2759 1909 26 4 v 33 w(tr)l(ansform)11 b Fm(\()j(\))36 +b(has)g(b)r(een)h(in)n(v)n(ok)n(ed)0 2009 y(\014rst.)i(Ho)n(w)n(ev)n +(er,)27 b Fi(tr)l(ansform)39 b Fm(is)29 b(c)n(hec)n(k)n(ed)e(in)i +Fi(pr)l(oje)l(ct)13 b Fm(\()h(\))29 b(and)f Fi(apply)p +2158 2009 V 33 w(tr)l(ansform)10 b Fm(\()k(\))29 b(is)g(in)n(v)n(ok)n +(ed,)e(if)i(required,)f(so)g(in)n(v)n(oking)0 2109 y +Fi(apply)p 192 2109 V 32 w(tr)l(ansform)11 b Fm(\()j(\))28 +b(explicitly)g(b)r(eforehand)f(is)h(not)f(strictly)h(sp)r(eaking)e +(necessary)-7 b(.)p 0 2212 1779 4 v 1874 2244 a Fk(Log)p +2122 2212 V 83 2385 a Fm([)p Fh(LDF)25 b(2002.09.09.)p +Fm(])56 b(The)23 b(new)f(v)n(ersion)f(no)n(w)h(almost)g(w)n(orks)f +(Added)i(division)f(of)h Fi(pr)l(oje)l(ctive)p 3002 2385 +26 4 v 32 w(c)l(o)l(or)l(dinates)35 b Fm(b)n(y)22 b(the)h(v)-5 +b(alue)0 2485 y(calculated)31 b(for)h Fe(w)r Fm(.)50 +b(Ho)n(w)n(ev)n(er,)31 b(it)h(do)r(esn't)g(w)n(ork)f(when)h(I)g(use)f +Fi(hex)p 2167 2485 V 31 w(p)l(attern1)16 b Fm(\()e(\).)50 b(Find)32 b(out)g(wh)n(y)f(not!!)50 b(TO)32 b(DO:)f(Add)0 -2586 y(routine)c(for)g(calculating)g Fe(z)s Fm(.)37 b(Then)28 +2584 y(routine)c(for)g(calculating)g Fe(z)s Fm(.)37 b(Then)28 b(I)g(can)f(add)g(sorting)g(routine)g(in)h Fk(Picture)13 -b Fm(::)8 b Fi(output)k Fm(\()i(\).)83 2685 y([)p Fh(LDF)25 +b Fm(::)8 b Fi(output)k Fm(\()i(\).)83 2684 y([)p Fh(LDF)25 b(2002.09.14.)p Fm(])62 b(I)28 b(b)r(eliev)n(e)h(I'v)n(e)e(gotten)i (the)f(new)h(v)n(ersion)e(to)h(w)n(ork)f(no)n(w.)38 b(LOOK)27 -b(UP:)i(Do)f(I)g(need)h(to)f(divide)h(the)0 2785 y(deriv)n(ed)e +b(UP:)i(Do)f(I)g(need)h(to)f(divide)h(the)0 2784 y(deriv)n(ed)e Fe(z)k Fm(v)-5 b(alue)28 b(b)n(y)g Fe(w)r Fm(?)38 b(I)28 b(don't)g(think)h(it's)f(necessary)-7 b(.)36 b(Since)28 b(the)g Fe(z)j Fm(v)-5 b(alues)28 b(of)g(all)f(of)h(the)g Fk(P)m(oin)m(ts)33 b Fm(w)n(ould)28 b(b)r(e)g(divided)0 -2885 y(b)n(y)i(the)h(same)e(amoun)n(t,)i(their)f(relativ)n(e)f(p)r +2883 y(b)n(y)i(the)h(same)e(amoun)n(t,)i(their)f(relativ)n(e)f(p)r (ositions)h(w)n(ould)g(remain)f(the)i(same,)g(since)f(only)f(the)i -(relationship)e(\\closer)g(or)0 2984 y(further)f(a)n(w)n(a)n(y")d -(matters,)i(not)g(the)h(exact)f(amoun)n(ts.)83 3084 y([)p +(relationship)e(\\closer)g(or)0 2983 y(further)f(a)n(w)n(a)n(y")d +(matters,)i(not)g(the)h(exact)f(amoun)n(ts.)83 3083 y([)p Fh(LDF)e(2002.09.16.)p Fm(])62 b(Added)28 b Fk(F)-8 b(o)s(cus)33 b Fm(argumen)n(t)27 b(to)g(this)i(function.)38 b(Default)29 -b(is)f Fi(default)p 2895 3084 V 31 w(fo)l(cus)12 b Fm(,)28 -b(but)g(it)h(w)n(as)e(necessary)0 3184 y(to)f(write)g(a)g(dumm)n(y)g(v) +b(is)f Fi(default)p 2895 3083 V 31 w(fo)l(cus)12 b Fm(,)28 +b(but)g(it)h(w)n(as)e(necessary)0 3182 y(to)f(write)g(a)g(dumm)n(y)g(v) n(ersion)f(of)h(this)h(function)f(in)h(order)e(to)h(mak)n(e)f(this)i(w) -n(ork,)e(b)r(ecause)h Fi(default)p 3100 3184 V 31 w(fo)l(cus)38 -b Fm(do)r(esn't)26 b(exist)g(at)0 3283 y(the)i(time)g(that)g(this)g -(declaration)e(is)i(compiled.)83 3383 y([)p Fh(LDF)d(2002.09.18.)p +n(ork,)e(b)r(ecause)h Fi(default)p 3100 3182 V 31 w(fo)l(cus)38 +b Fm(do)r(esn't)26 b(exist)g(at)0 3282 y(the)i(time)g(that)g(this)g +(declaration)e(is)i(compiled.)83 3381 y([)p Fh(LDF)d(2002.09.18.)p Fm(])53 b(Changed)19 b(name)h(of)f(this)h(function)h(from)e -Fi(p)l(ersp)p 2221 3383 V 31 w(tr)l(ansform)11 b Fm(\()j(\))20 +Fi(p)l(ersp)p 2221 3381 V 31 w(tr)l(ansform)11 b Fm(\()j(\))20 b(to)g Fi(pr)l(oje)l(ct)32 b Fm(and)20 b(added)g Fk(T)-8 -b(ransform)0 3482 y Fm(argumen)n(t.)83 3582 y([)p Fh(LDF)25 +b(ransform)0 3481 y Fm(argumen)n(t.)83 3581 y([)p Fh(LDF)25 b(2003.05.09.)p Fm(])69 b(BUG)36 b(FIX:)g(Added)g(lo)r(op,)h(setting)e (all)g(elemen)n(ts)g(of)h Fi(pr)l(oje)l(ctive)p 2861 -3582 V 32 w(c)l(o)l(or)l(dinates)48 b Fm(to)35 b(0.)60 -b(This)35 b(w)n(as)0 3682 y(done)c(in)g(the)g(conditionally)f(compiled) +3581 V 32 w(c)l(o)l(or)l(dinates)48 b Fm(to)35 b(0.)60 +b(This)35 b(w)n(as)0 3680 y(done)c(in)g(the)g(conditionally)f(compiled) g(co)r(de)h(for)f(the)h(DEC)g(compiler,)g(but)g(I)g(forgot)f(to)g(do)h -(it)g(for)f(GCC)h(when)g(added)0 3781 y(the)d(declaration)e(of)i -Fi(temp)p 848 3781 V 30 w(c)l(o)l(or)l(dinates)40 b Fm(and)28 +(it)g(for)f(GCC)h(when)g(added)0 3780 y(the)d(declaration)e(of)i +Fi(temp)p 848 3780 V 30 w(c)l(o)l(or)l(dinates)40 b Fm(and)28 b(resized)e(it.)38 b(It)28 b(to)r(ok)f(me)h(ab)r(out)f(6{7)f(hours)h -(to)g(\014nd)h(this)g(bug!)p 0 3873 1678 4 v 1773 3906 -a Fk(End)k(Log)p 2222 3873 V 0 4105 a(398.)94 b(F)-8 -b(o)s(cus)32 b(argumen)m(t.)p 0 4204 1643 4 v 1738 4237 -a(Begin)f(Log)p 2257 4204 V 83 4378 a Fm([)p Fh(LDF)25 -b(2003.07.11.)p Fm(])61 b(Added)28 b(defaults)g(for)f -Fi(pr)l(oj)45 b Fm(and)28 b Fi(factor)14 b Fm(.)p 0 4470 -1678 4 v 1773 4502 a Fk(End)32 b(Log)p 2222 4470 V 0 -4627 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b -Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4726 y Fk(b)s(o)s(ol)31 b Fi(pr)l(oje)l(ct)13 b Fm(\()p +(to)g(\014nd)h(this)g(bug!)p 0 3872 3900 4 v 0 4104 a +Fk(398.)94 b(F)-8 b(o)s(cus)32 b(argumen)m(t.)p 0 4202 +1779 4 v 1874 4235 a(Log)p 2122 4202 V 83 4376 a Fm([)p +Fh(LDF)25 b(2003.07.11.)p Fm(])61 b(Added)28 b(defaults)g(for)f +Fi(pr)l(oj)45 b Fm(and)28 b Fi(factor)14 b Fm(.)p 0 4468 +3900 4 v 0 4625 a Fn(h)g Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4724 y Fk(b)s(o)s(ol)31 b Fi(pr)l(oje)l(ct)13 b Fm(\()p Fk(const)32 b(F)-8 b(o)s(cus)33 b Fm(&)o Fe(f)9 b(;)14 b Fk(const)32 b(unsigned)f(short)i Fi(pr)l(oj)40 b Fm(=)23 b Fk(Pro)5 b(jections)13 b Fm(::)8 b Ff(PERSP)s Fe(;)14 b Fk(real)32 b Fi(factor)37 b Fm(=)23 b(1)o(\);)p eop end -%%Page: 103 103 -TeXDict begin 103 102 bop 0 83 a Fn(x)p Fm(399)140 b -Fl(3DLDFPR)n(G)2170 b Fk(F)m(OCUS)24 b Fl(AR)n(GUMENT)140 -b Fm(103)0 263 y Fk(399.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)31 b(P)m(oin)m(t)13 -b Fm(::)8 b Fi(pr)l(oje)l(ct)14 b Fm(\()p Fk(const)32 -b(F)-8 b(o)s(cus)32 b Fm(&)p Fe(f)9 b(;)14 b Fk(const)32 -b(unsigned)f(short)i Fi(pr)l(oj)17 b Fe(;)d Fk(real)32 -b Fi(factor)15 b Fm(\))p Fn(f)27 b Fk(b)s(o)s(ol)k Ff(DEBUG)25 -b Fm(=)e Fi(false)12 b Fm(;)374 587 y Fe(=)p Fn(\003)40 -b Fi(true)51 b Fn(\003)p Fe(=)249 711 y Fk(if)41 b Fm(\()p -Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p -Fj( )p Ff(project)o(\(\).)-7 b(\\n")26 b Fn(\034)d Fi(\015ush)11 -b Fm(;)249 811 y Fk(if)41 b Fm(\()p Fn(:)p Fi(tr)l(ansform)12 -b Fe(:)p Fi(is)p 884 811 26 4 v 31 w(identity)g Fm(\()i(\)\))167 +%%Page: 104 104 +TeXDict begin 104 103 bop 0 83 a Fm(104)140 b Fk(F)m(OCUS)24 +b Fl(AR)n(GUMENT)2169 b(3DLDFPR)n(G)142 b Fn(x)p Fm(399)0 +263 y Fk(399.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +487 y Fk(b)s(o)s(ol)31 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(pr)l(oje)l(ct)14 +b Fm(\()p Fk(const)32 b(F)-8 b(o)s(cus)32 b Fm(&)p Fe(f)9 +b(;)14 b Fk(const)32 b(unsigned)f(short)i Fi(pr)l(oj)17 +b Fe(;)d Fk(real)32 b Fi(factor)15 b Fm(\))p Fn(f)27 +b Fk(b)s(o)s(ol)k Ff(DEBUG)25 b Fm(=)e Fi(false)12 b +Fm(;)374 587 y Fe(=)p Fn(\003)40 b Fi(true)51 b Fn(\003)p +Fe(=)249 711 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h +Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p Ff(project)o(\(\).) +-7 b(\\n")26 b Fn(\034)d Fi(\015ush)11 b Fm(;)249 811 +y Fk(if)41 b Fm(\()p Fn(:)p Fi(tr)l(ansform)12 b Fe(:)p +Fi(is)p 884 811 26 4 v 31 w(identity)g Fm(\()i(\)\))167 b Fe(=)p Fn(\003)40 b Fm(LDF)28 b(2002.10.23.)34 b(Added,)28 b(just)g(to)g(b)r(e)g(sure.)50 b Fn(\003)p Fe(=)332 911 y Fi(apply)p 524 911 V 32 w(tr)l(ansform)11 b Fm(\()j(\);)0 @@ -11317,10 +11368,10 @@ 2270 2505 V 30 w(tr)l(ansform)p 2652 2505 V 31 w(element)j Fm(\()p Fe(j)5 b(;)14 b(i)p Fm(\);)332 2604 y Fn(g)249 2704 y(g)p eop end -%%Page: 104 104 -TeXDict begin 104 103 bop 0 83 a Fm(104)140 b Fl(P)-6 -b(ARALLEL)23 b(PR)n(OJECTION)2070 b(3DLDFPR)n(G)142 b -Fn(x)p Fm(400)0 263 y Fk(400.)94 b(P)m(arallel)32 b(pro)5 +%%Page: 105 105 +TeXDict begin 105 104 bop 0 83 a Fn(x)p Fm(400)140 b +Fl(3DLDFPR)n(G)2070 b(P)-6 b(ARALLEL)23 b(PR)n(OJECTION)141 +b Fm(105)0 263 y Fk(400.)94 b(P)m(arallel)32 b(pro)5 b(jection.)0 363 y Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])63 b(TO)30 b(DO:)g(Add)g(a)g(w)n(a)n(y)e(of)i(pro)5 b(jecting)29 b(on)n(to)g(a)g(plane)h(other)f(than)h(the)g(x-y)f(plane.)44 @@ -11330,87 +11381,86 @@ g(without)0 562 y(c)n(hanging)f(the)i Fk(Picture)5 b Fm(.)83 662 y(The)28 b(x)f(and)h(y)f(pro)5 b(jectiv)n(e)26 b(co)r(ordinates)h(are)f(simply)i(tak)n(en)f(from)g(the)h(w)n(orld)f -(co)r(ordinates.)p 0 761 1643 4 v 1738 793 a Fk(Begin)k(Log)p -2257 761 V 83 934 a Fm([)p Fh(LDF)25 b(2002.10.23.)p -Fm(])61 b(Added)28 b(this)g(section.)83 1034 y([)p Fh(LDF)d -(2002.12.18.)p Fm(])61 b(Changed)27 b Ff(PARALLEL)i Fm(to)e -Ff(PARALLEL_X_Y)g Fm(and)h(added)f Ff(PARALLEL_X_Z)g -Fm(and)h Ff(PARALLEL_Z_Y)o Fm(.)p 0 1126 1678 4 v 1773 -1158 a Fk(End)k(Log)p 2222 1126 V 0 1283 a Fn(h)14 b -Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 -b Fn(i)24 b Fm(+)p Fn(\021)83 1382 y Fk(if)49 b Fm(\()p -Fi(pr)l(oj)54 b Fn(\021)37 b Fk(Pro)5 b(jections)13 b -Fm(::)8 b Ff(PARALLEL_X_Y)23 b Fn(_)i Fi(pr)l(oj)53 b -Fn(\021)37 b Fk(Pro)5 b(jections)13 b Fm(::)8 b Ff(PARALLEL_X_Z)23 -b Fn(_)i Fi(pr)l(oj)53 b Fn(\021)332 1482 y Fk(Pro)5 -b(jections)13 b Fm(::)c Ff(PARALLEL_Z_Y)o Fm(\))42 b -Fn(f)166 1582 y Fk(using)33 b(namespace)f(Pro)5 b(jections)g -Fm(;)166 1706 y Fk(if)41 b Fm(\()p Fi(factor)d Fn(\021)23 -b Fm(0)o(\))42 b Fn(f)249 1806 y Fi(c)l(err)d Fn(\034)25 -b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Point:)o(:p)o(r)-6 -b(oject\(\):\\n")25 b Fn(\034)h Ff("factor)p Fj( )p Ff(==)p -Fj( )p Ff(0.)p Fj( )o Ff(Mul)o(ti)-7 b(plying)p Fj( )p -Ff(coordinate)o(s)p Fj( )p Ff(b)g(\\)415 1905 y(y)p Fj( )p -Ff(0)p Fj( )p Ff(doesn't)p Fj( )p Ff(make)o Fj( )p Ff(se)o(n)h(se.)p +(co)r(ordinates.)p 0 760 1779 4 v 1874 793 a Fk(Log)p +2122 760 V 83 933 a Fm([)p Fh(LDF)e(2002.10.23.)p Fm(])61 +b(Added)28 b(this)g(section.)83 1033 y([)p Fh(LDF)d(2002.12.18.)p +Fm(])61 b(Changed)27 b Ff(PARALLEL)i Fm(to)e Ff(PARALLEL_X_Y)g +Fm(and)h(added)f Ff(PARALLEL_X_Z)g Fm(and)h Ff(PARALLEL_Z_Y)o +Fm(.)p 0 1125 3900 4 v 0 1282 a Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 1382 y Fk(if)49 b Fm(\()p Fi(pr)l(oj)54 +b Fn(\021)37 b Fk(Pro)5 b(jections)13 b Fm(::)8 b Ff(PARALLEL_X_Y)23 +b Fn(_)i Fi(pr)l(oj)53 b Fn(\021)37 b Fk(Pro)5 b(jections)13 +b Fm(::)8 b Ff(PARALLEL_X_Z)23 b Fn(_)i Fi(pr)l(oj)53 +b Fn(\021)332 1481 y Fk(Pro)5 b(jections)13 b Fm(::)c +Ff(PARALLEL_Z_Y)o Fm(\))42 b Fn(f)166 1581 y Fk(using)33 +b(namespace)f(Pro)5 b(jections)g Fm(;)166 1706 y Fk(if)41 +b Fm(\()p Fi(factor)d Fn(\021)23 b Fm(0)o(\))42 b Fn(f)249 +1805 y Fi(c)l(err)d Fn(\034)25 b Ff("ERROR!)p Fj( )p +Ff(In)p Fj( )p Ff(Point:)o(:p)o(r)-6 b(oject\(\):\\n")25 +b Fn(\034)h Ff("factor)p Fj( )p Ff(==)p Fj( )p Ff(0.)p +Fj( )o Ff(Mul)o(ti)-7 b(plying)p Fj( )p Ff(coordinate)o(s)p +Fj( )p Ff(b)g(\\)415 1905 y(y)p Fj( )p Ff(0)p Fj( )p +Ff(doesn't)p Fj( )p Ff(make)o Fj( )p Ff(se)o(n)h(se.)p Fj( )p Ff(")25 b Fn(\034)e Ff("Using)p Fj( )p Ff(1)p Fj( )p Ff(instead.)o(\\n)o(\\)-6 b(n")27 b Fn(\034)c -Fi(\015ush)10 b Fm(;)249 2005 y Fi(factor)37 b Fm(=)23 -b(1;)166 2105 y Fn(g)166 2229 y Fk(unsigned)31 b(short)i -Fi(horizontal)14 b Fm(;)166 2329 y Fk(unsigned)31 b(short)i +Fi(\015ush)10 b Fm(;)249 2004 y Fi(factor)37 b Fm(=)23 +b(1;)166 2104 y Fn(g)166 2229 y Fk(unsigned)31 b(short)i +Fi(horizontal)14 b Fm(;)166 2328 y Fk(unsigned)31 b(short)i Fi(vertic)l(al)14 b Fm(;)166 2453 y Fk(if)41 b Fm(\()p Fi(pr)l(oj)g Fn(\021)23 b Ff(PARALLEL_X_Y)17 b Fn(_)i Fi(pr)l(oj)41 b Fn(\021)22 b Ff(PARALLEL_X_Z)p Fm(\))166 b Fe(=)p Fn(\003)40 b Fm([)p Fh(LDF)26 b(2002.12.18.)p Fm(])61 b(Explain)27 b(this!!)51 b Fn(\003)p Fe(=)166 -2553 y Fi(horizontal)38 b Fm(=)22 b(0;)166 2653 y Fk(else)45 +2552 y Fi(horizontal)38 b Fm(=)22 b(0;)166 2652 y Fk(else)45 b Fi(horizontal)38 b Fm(=)22 b(2;)166 2752 y Fk(if)41 b Fm(\()p Fi(pr)l(oj)g Fn(\021)23 b Ff(PARALLEL_X_Y)17 b Fn(_)i Fi(pr)l(oj)41 b Fn(\021)22 b Ff(PARALLEL_Z_Y)p -Fm(\))41 b Fi(vertic)l(al)c Fm(=)23 b(1)o(;)166 2852 +Fm(\))41 b Fi(vertic)l(al)c Fm(=)23 b(1)o(;)166 2851 y Fk(else)45 b Fi(vertic)l(al)37 b Fm(=)23 b(2)o(;)166 -2952 y Fi(pr)l(oje)l(ctive)p 512 2952 26 4 v 32 w(c)l(o)l(or)l(dinates) -12 b Fm([0])23 b(=)g Fi(world)p 1351 2952 V 31 w(c)l(o)l(or)l(dinates) +2951 y Fi(pr)l(oje)l(ctive)p 512 2951 26 4 v 32 w(c)l(o)l(or)l(dinates) +12 b Fm([0])23 b(=)g Fi(world)p 1351 2951 V 31 w(c)l(o)l(or)l(dinates) 13 b Fm([)p Fi(horizontal)h Fm(])19 b Fn(\003)f Fi(factor)c -Fm(;)166 3051 y Fi(pr)l(oje)l(ctive)p 512 3051 V 32 w(c)l(o)l(or)l -(dinates)e Fm([1])23 b(=)g Fi(world)p 1351 3051 V 31 +Fm(;)166 3050 y Fi(pr)l(oje)l(ctive)p 512 3050 V 32 w(c)l(o)l(or)l +(dinates)e Fm([1])23 b(=)g Fi(world)p 1351 3050 V 31 w(c)l(o)l(or)l(dinates)13 b Fm([)p Fi(vertic)l(al)h Fm(])k -Fn(\003)g Fi(factor)c Fm(;)166 3151 y Fi(pr)l(oje)l(ctive)p -512 3151 V 32 w(c)l(o)l(or)l(dinates)e Fm([2])23 b(=)g(0)o(;)166 +Fn(\003)g Fi(factor)c Fm(;)166 3150 y Fi(pr)l(oje)l(ctive)p +512 3150 V 32 w(c)l(o)l(or)l(dinates)e Fm([2])23 b(=)g(0)o(;)166 3250 y Fi(pr)l(oje)l(ctive)p 512 3250 V 32 w(c)l(o)l(or)l(dinates)12 -b Fm([3])23 b(=)g(1)o(;)166 3350 y Fk(if)41 b Fm(\()p -Ff(DEBUG)s Fm(\))h Fn(f)249 3450 y Fi(c)l(out)53 b Fn(\034)40 +b Fm([3])23 b(=)g(1)o(;)166 3349 y Fk(if)41 b Fm(\()p +Ff(DEBUG)s Fm(\))h Fn(f)249 3449 y Fi(c)l(out)53 b Fn(\034)40 b Ff("projective_coord)o(in)o(a)-6 b(tes:)p Fj( )p Ff(\(")42 -b Fn(\034)f Fi(pr)l(oje)l(ctive)p 2266 3450 V 32 w(c)l(o)l(or)l +b Fn(\034)f Fi(pr)l(oje)l(ctive)p 2266 3449 V 32 w(c)l(o)l(or)l (dinates)12 b Fm([0])41 b Fn(\034)g Ff(",)p Fj( )p Ff(")i Fn(\034)415 3549 y Fi(pr)l(oje)l(ctive)p 761 3549 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([1])44 b Fn(\034)f Ff(",)p Fj( )p Ff(")k Fn(\034)c Fi(pr)l(oje)l(ctive)p 2154 3549 V 33 w(c)l(o)l(or)l(dinates)12 b Fm([2)o(])44 b Fn(\034)g -Ff(",)p Fj( )p Ff(")i Fn(\034)415 3649 y Fi(pr)l(oje)l(ctive)p -761 3649 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([3])23 b +Ff(",)p Fj( )p Ff(")i Fn(\034)415 3648 y Fi(pr)l(oje)l(ctive)p +761 3648 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([3])23 b Fn(\034)g Ff("\)")j Fn(\034)d Fi(end)t(l)37 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)166 -3749 y Fn(g)166 3848 y Fk(return)33 b Fi(true)10 b Fm(;)83 -3948 y Fn(g)p eop end -%%Page: 105 105 -TeXDict begin 105 104 bop 0 83 a Fn(x)p Fm(401)140 b -Fl(3DLDFPR)n(G)1938 b(PERSPECTIVE)24 b(PR)n(OJECTION)141 -b Fm(105)0 263 y Fk(401.)94 b(P)m(ersp)s(ectiv)m(e)41 -b(pro)5 b(jection.)95 b Fm(!!)59 b(KLUDGE:)35 b(See)g(b)r(elo)n(w.)59 -b([)p Fh(LDF)25 b(2002.11.08.)p Fm(])69 b(TO)34 b(DO:)h(Get)h(n)n(um)n -(b)r(ers)e(to)0 363 y(output)28 b(using)f Fi(only)36 -b Fm(decimal)27 b(notation!)0 487 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 587 y Fk(if)41 b Fm(\()p Fi(temp)p -393 587 26 4 v 31 w(c)l(o)l(or)l(dinates)12 b Fm([2])18 -b(+)g Fe(f)9 b(:)p Fi(get)p 1203 587 V 31 w(distanc)l(e)i -Fm(\()j(\))23 b Fn(\021)g Fm(0)o(\))42 b Fn(f)166 686 -y Fi(c)l(err)36 b Fn(\034)24 b Ff("ERROR!)p Fj( )p Ff(In)p -Fj( )p Ff(Poin)o(t:)o(:pr)-7 b(oject\(\):\\n")23 b Fn(\034)g -Ff("temp_coordinates)o([2)o(])-6 b Fj( )p Ff(==)p Fj( )p -Ff(")25 b Fn(\034)e Fi(temp)p 3339 686 V 31 w(c)l(o)l(or)l(dinates)12 -b Fm([2])23 b Fn(\034)332 786 y Ff(",)p Fj( )p Ff(f.distance)p -Fj( )p Ff(==)o Fj( )p Ff(")e Fn(\034)i Fe(f)9 b(:)p Fi(get)p +3748 y Fn(g)166 3847 y Fk(return)33 b Fi(true)10 b Fm(;)83 +3947 y Fn(g)p eop end +%%Page: 106 106 +TeXDict begin 106 105 bop 0 83 a Fm(106)140 b Fl(PERSPECTIVE)23 +b(PR)n(OJECTION)1939 b(3DLDFPR)n(G)142 b Fn(x)p Fm(401)0 +263 y Fk(401.)94 b(P)m(ersp)s(ectiv)m(e)41 b(pro)5 b(jection.)95 +b Fm(!!)59 b(KLUDGE:)35 b(See)g(b)r(elo)n(w.)59 b([)p +Fh(LDF)25 b(2002.11.08.)p Fm(])69 b(TO)34 b(DO:)h(Get)h(n)n(um)n(b)r +(ers)e(to)0 363 y(output)28 b(using)f Fi(only)36 b Fm(decimal)27 +b(notation!)0 487 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +587 y Fk(if)41 b Fm(\()p Fi(temp)p 393 587 26 4 v 31 +w(c)l(o)l(or)l(dinates)12 b Fm([2])18 b(+)g Fe(f)9 b(:)p +Fi(get)p 1203 587 V 31 w(distanc)l(e)i Fm(\()j(\))23 +b Fn(\021)g Fm(0)o(\))42 b Fn(f)166 686 y Fi(c)l(err)36 +b Fn(\034)24 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Poin)o(t:)o(:pr)-7 +b(oject\(\):\\n")23 b Fn(\034)g Ff("temp_coordinates)o([2)o(])-6 +b Fj( )p Ff(==)p Fj( )p Ff(")25 b Fn(\034)e Fi(temp)p +3339 686 V 31 w(c)l(o)l(or)l(dinates)12 b Fm([2])23 b +Fn(\034)332 786 y Ff(",)p Fj( )p Ff(f.distance)p Fj( )p +Ff(==)o Fj( )p Ff(")e Fn(\034)i Fe(f)9 b(:)p Fi(get)p 1432 786 V 30 w(distanc)l(e)j Fm(\()i(\))23 b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 b Ff("Sum)p Fj( )p Ff(==)p Fj( )p Ff(0.)p Fj( )p Ff(Can't)p Fj( )o Ff(pe)o(r)-6 @@ -11526,38 +11576,39 @@ Fj( )p Ff(")s Fm(;)166 5269 y Fn(g)166 5369 y Fi(c)l(out)35 b Fn(\034)23 b Ff("\)\\n")i Fn(\034)e Fi(\015ush)11 b Fm(;)p eop end -%%Page: 106 106 -TeXDict begin 106 105 bop 0 83 a Fm(106)140 b Fl(PERSPECTIVE)23 -b(PR)n(OJECTION)1939 b(3DLDFPR)n(G)142 b Fn(x)p Fm(401)83 -263 y Fn(g)83 363 y Fk(for)33 b Fm(\()p Fe(i)23 b Fm(=)f(0;)41 -b Fe(i)23 b(<)g Fm(2)o(;)42 b Fe(i)788 355 y Fg(+)-8 -b(+)885 363 y Fm(\))249 462 y Fe(=)p Fn(\003)42 b Fm([)p -Fh(LDF)25 b(2002.11.07.)p Fm(])62 b(KLUDGE.)29 b(Added)g(this)g(lo)r -(op.)41 b(The)28 b(v)-5 b(alue)29 b(used)g(for)f(comparison)f(is)i -(sligh)n(tly)f(larger)332 562 y(than)g(one)g(that)h(arose)d(while)j(I)f -(w)n(as)f(testing)h(the)h(constructor)d(of)j Fi(T)-6 -b(runc)p 2684 562 26 4 v 30 w(Octahe)l(dr)l(on)11 b Fm(.)39 -b Fi(eps)g Fm(w)n(as)28 b(to)r(o)f(small.)332 662 y Fn(\003)p -Fe(=)166 761 y Fk(if)41 b Fm(\()p Fi(fabs)13 b Fm(\()p -Fi(pr)l(oje)l(ctive)p 825 761 V 32 w(c)l(o)l(or)l(dinates)f -Fm([)p Fe(i)p Fm(]\))23 b Fn(\024)g Fm(10)p Fe(:)p Fm(0)17 -b Fn(\001)h Fm(10)1774 731 y Fd(\000)p Fg(05)1896 761 -y Fm(\))42 b Fi(pr)l(oje)l(ctive)p 2316 761 V 32 w(c)l(o)l(or)l -(dinates)12 b Fm([)p Fe(i)o Fm(])24 b(=)e(0;)83 861 y -Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b -Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(project\()o(\).\\)-7 -b(n")27 b Fn(\034)c Fi(\015ush)10 b Fm(;)83 960 y Fk(return)33 -b Fi(true)10 b Fm(;)37 b Fn(g)0 1160 y Fk(402.)94 b(No)36 -b(F)-8 b(o)s(cus)37 b(argumen)m(t.)95 b Fm([)p Fh(LDF)25 -b(2002.09.13.)p Fm(])65 b(Added)33 b(this)f(function.)50 -b(This)31 b(dumm)n(y)h(function)h(just)f(passes)0 1259 -y Fi(default)p 246 1259 V 31 w(fo)l(cus)f Fm(to)20 b -Fi(pr)l(oje)l(ct)32 b Fm(\()20 b Fk(const)k(F)-8 b(o)s(cus)24 -b Fm(&)p Fe(f)42 b(:)14 b(:)g(:)33 b Fm(\).)h(This)20 -b(is)f(necessary)f(b)r(ecause)h(it's)g(imp)r(ossible)h(mak)n(e)e(the)i -(argumen)n(t)0 1359 y Fe(f)42 b Fm(optional)33 b(with)g -Fi(default)p 852 1359 V 32 w(fo)l(cus)45 b Fm(as)32 b(the)i(default.)55 -b(This)33 b(is)g(b)r(ecause)g Fi(pr)l(oje)l(ct)13 b Fm(\()h(\))34 +%%Page: 107 107 +TeXDict begin 107 106 bop 0 83 a Fn(x)p Fm(401)140 b +Fl(3DLDFPR)n(G)1938 b(PERSPECTIVE)24 b(PR)n(OJECTION)141 +b Fm(107)83 263 y Fn(g)83 363 y Fk(for)33 b Fm(\()p Fe(i)23 +b Fm(=)f(0;)41 b Fe(i)23 b(<)g Fm(2)o(;)42 b Fe(i)788 +355 y Fg(+)-8 b(+)885 363 y Fm(\))249 462 y Fe(=)p Fn(\003)42 +b Fm([)p Fh(LDF)25 b(2002.11.07.)p Fm(])62 b(KLUDGE.)29 +b(Added)g(this)g(lo)r(op.)41 b(The)28 b(v)-5 b(alue)29 +b(used)g(for)f(comparison)f(is)i(sligh)n(tly)f(larger)332 +562 y(than)g(one)g(that)h(arose)d(while)j(I)f(w)n(as)f(testing)h(the)h +(constructor)d(of)j Fi(T)-6 b(runc)p 2684 562 26 4 v +30 w(Octahe)l(dr)l(on)11 b Fm(.)39 b Fi(eps)g Fm(w)n(as)28 +b(to)r(o)f(small.)332 662 y Fn(\003)p Fe(=)166 761 y +Fk(if)41 b Fm(\()p Fi(fabs)13 b Fm(\()p Fi(pr)l(oje)l(ctive)p +825 761 V 32 w(c)l(o)l(or)l(dinates)f Fm([)p Fe(i)p Fm(]\))23 +b Fn(\024)g Fm(10)p Fe(:)p Fm(0)17 b Fn(\001)h Fm(10)1774 +731 y Fd(\000)p Fg(05)1896 761 y Fm(\))42 b Fi(pr)l(oje)l(ctive)p +2316 761 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([)p Fe(i)o +Fm(])24 b(=)e(0;)83 861 y Fk(if)41 b Fm(\()p Ff(DEBUG)s +Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p Fj( )p +Ff(project\()o(\).\\)-7 b(n")27 b Fn(\034)c Fi(\015ush)10 +b Fm(;)83 960 y Fk(return)33 b Fi(true)10 b Fm(;)37 b +Fn(g)0 1160 y Fk(402.)94 b(No)36 b(F)-8 b(o)s(cus)37 +b(argumen)m(t.)95 b Fm([)p Fh(LDF)25 b(2002.09.13.)p +Fm(])65 b(Added)33 b(this)f(function.)50 b(This)31 b(dumm)n(y)h +(function)h(just)f(passes)0 1259 y Fi(default)p 246 1259 +V 31 w(fo)l(cus)f Fm(to)20 b Fi(pr)l(oje)l(ct)32 b Fm(\()20 +b Fk(const)k(F)-8 b(o)s(cus)24 b Fm(&)p Fe(f)42 b(:)14 +b(:)g(:)33 b Fm(\).)h(This)20 b(is)f(necessary)f(b)r(ecause)h(it's)g +(imp)r(ossible)h(mak)n(e)e(the)i(argumen)n(t)0 1359 y +Fe(f)42 b Fm(optional)33 b(with)g Fi(default)p 852 1359 +V 32 w(fo)l(cus)45 b Fm(as)32 b(the)i(default.)55 b(This)33 +b(is)g(b)r(ecause)g Fi(pr)l(oje)l(ct)13 b Fm(\()h(\))34 b(m)n(ust)f(b)r(e)h(declared)e(inside)i(the)g Fk(class)0 1459 y Fm(declaration)26 b(of)i Fk(P)m(oin)m(t)5 b Fm(,)28 b(whereas)f(the)h(declaration)e(of)i Fk(F)-8 b(o)s(cus)32 @@ -11591,48 +11642,48 @@ b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3127 y Fk(v)m(oid)33 b Fi(apply)p 483 3127 V 32 w(tr)l(ansform)11 b Fm(\()j(\);)p eop end -%%Page: 107 107 -TeXDict begin 107 106 bop 0 83 a Fn(x)p Fm(405)140 b -Fl(3DLDFPR)n(G)1815 b(APPL)-6 b(YING)24 b(TRANSF)n(ORMA)-6 -b(TIONS)140 b Fm(107)0 263 y Fk(405.)0 388 y Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 -b(P)m(oin)m(t)13 b Fm(::)8 b Fi(apply)p 774 487 26 4 -v 33 w(tr)l(ansform)j Fm(\()j(\))83 587 y Fn(f)166 686 -y Fk(b)s(o)s(ol)31 b Ff(DEBUG)25 b Fm(=)e Fi(false)12 -b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p -Fe(=)166 811 y Fk(if)41 b Fm(\()p Fi(tr)l(ansform)11 -b Fe(:)p Fi(is)p 745 811 V 31 w(identity)h Fm(\()i(\)\))167 -b Fe(=)p Fn(\003)41 b Fm(If)27 b Fi(tr)l(ansform)11 b -Fe(:)p Fi(matrix)42 b Fm(is)27 b(the)h(iden)n(tit)n(y)f(matrix,)g(w)n -(e)g(don't)h(need)g(to)f(b)r(other)415 911 y(to)h(p)r(erform)f(the)h -(matrix)f(m)n(ultiplication.)51 b Fn(\003)p Fe(=)249 -1010 y Fk(return)5 b Fm(;)166 1135 y Fk(in)m(t)33 b Fe(i)o -Fm(;)166 1234 y Fk(in)m(t)g Fe(j)t Fm(;)166 1334 y Fk(v)-5 -b(alarra)m(y)8 b Fn(h)p Fk(real)d Fn(i)28 b Fi(new)p -907 1334 V 31 w(c)l(o)l(or)l(dinates)12 b Fm(;)166 1459 -y Fi(new)p 311 1459 V 31 w(c)l(o)l(or)l(dinates)g Fe(:)p -Fi(r)l(esize)f Fm(\(4)p Fe(;)j Fm(0)o(\);)166 b Fe(=)p -Fn(\003)41 b Fm([)p Fh(LDF)25 b(2002.12.08.)p Fm(])61 -b(BUG)28 b(FIX.)g(F)-7 b(or)27 b(GNU)h(CC.)42 b Fn(\003)p -Fe(=)166 1558 y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)249 -1658 y Fi(c)l(out)35 b Fn(\034)23 b Ff("x)p Fj( )p Ff(==)p -Fj( )p Ff(")h Fn(\034)f Fi(world)p 1177 1658 V 32 w(c)l(o)l(or)l -(dinates)12 b Fm([0])23 b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 -b Fi(\015ush)10 b Fm(;)249 1757 y Fi(c)l(out)35 b Fn(\034)23 -b Ff("y)p Fj( )p Ff(==)p Fj( )p Ff(")h Fn(\034)f Fi(world)p -1177 1757 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([1])23 +%%Page: 108 108 +TeXDict begin 108 107 bop 0 83 a Fm(108)140 b Fl(APPL)-6 +b(YING)24 b(TRANSF)n(ORMA)-6 b(TIONS)1814 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(405)0 263 y Fk(405.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 +b Fm(::)8 b Fi(apply)p 774 487 26 4 v 33 w(tr)l(ansform)j +Fm(\()j(\))83 587 y Fn(f)166 686 y Fk(b)s(o)s(ol)31 b +Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p +Fn(\003)40 b Fi(true)52 b Fn(\003)p Fe(=)166 811 y Fk(if)41 +b Fm(\()p Fi(tr)l(ansform)11 b Fe(:)p Fi(is)p 745 811 +V 31 w(identity)h Fm(\()i(\)\))167 b Fe(=)p Fn(\003)41 +b Fm(If)27 b Fi(tr)l(ansform)11 b Fe(:)p Fi(matrix)42 +b Fm(is)27 b(the)h(iden)n(tit)n(y)f(matrix,)g(w)n(e)g(don't)h(need)g +(to)f(b)r(other)415 911 y(to)h(p)r(erform)f(the)h(matrix)f(m)n +(ultiplication.)51 b Fn(\003)p Fe(=)249 1010 y Fk(return)5 +b Fm(;)166 1135 y Fk(in)m(t)33 b Fe(i)o Fm(;)166 1234 +y Fk(in)m(t)g Fe(j)t Fm(;)166 1334 y Fk(v)-5 b(alarra)m(y)8 +b Fn(h)p Fk(real)d Fn(i)28 b Fi(new)p 907 1334 V 31 w(c)l(o)l(or)l +(dinates)12 b Fm(;)166 1459 y Fi(new)p 311 1459 V 31 +w(c)l(o)l(or)l(dinates)g Fe(:)p Fi(r)l(esize)f Fm(\(4)p +Fe(;)j Fm(0)o(\);)166 b Fe(=)p Fn(\003)41 b Fm([)p Fh(LDF)25 +b(2002.12.08.)p Fm(])61 b(BUG)28 b(FIX.)g(F)-7 b(or)27 +b(GNU)h(CC.)42 b Fn(\003)p Fe(=)166 1558 y Fk(if)f Fm(\()p +Ff(DEBUG)s Fm(\))h Fn(f)249 1658 y Fi(c)l(out)35 b Fn(\034)23 +b Ff("x)p Fj( )p Ff(==)p Fj( )p Ff(")h Fn(\034)f Fi(world)p +1177 1658 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([0])23 b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 -b Fm(;)249 1857 y Fi(c)l(out)35 b Fn(\034)23 b Ff("z)p +b Fm(;)249 1757 y Fi(c)l(out)35 b Fn(\034)23 b Ff("y)p Fj( )p Ff(==)p Fj( )p Ff(")h Fn(\034)f Fi(world)p 1177 -1857 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([2])23 b Fn(\034)g +1757 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([1])23 b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)249 -1957 y Fi(c)l(out)35 b Fn(\034)23 b Ff("w)p Fj( )p Ff(==)p -Fj( )p Ff(")h Fn(\034)f Fi(world)p 1177 1957 V 32 w(c)l(o)l(or)l -(dinates)12 b Fm([3])23 b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 -b Fi(\015ush)10 b Fm(;)166 2056 y Fn(g)166 2156 y Fk(for)33 -b Fm(\()p Fe(i)23 b Fm(=)f(0;)41 b Fe(i)23 b(<)g Fm(4)o(;)42 -b Fe(i)871 2148 y Fg(+)-8 b(+)968 2156 y Fm(\))42 b Fn(f)249 +1857 y Fi(c)l(out)35 b Fn(\034)23 b Ff("z)p Fj( )p Ff(==)p +Fj( )p Ff(")h Fn(\034)f Fi(world)p 1177 1857 V 32 w(c)l(o)l(or)l +(dinates)12 b Fm([2])23 b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 +b Fi(\015ush)10 b Fm(;)249 1957 y Fi(c)l(out)35 b Fn(\034)23 +b Ff("w)p Fj( )p Ff(==)p Fj( )p Ff(")h Fn(\034)f Fi(world)p +1177 1957 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([3])23 +b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 +b Fm(;)166 2056 y Fn(g)166 2156 y Fk(for)33 b Fm(\()p +Fe(i)23 b Fm(=)f(0;)41 b Fe(i)23 b(<)g Fm(4)o(;)42 b +Fe(i)871 2148 y Fg(+)-8 b(+)968 2156 y Fm(\))42 b Fn(f)249 2256 y Fk(for)33 b Fm(\()p Fe(j)28 b Fm(=)23 b(0)o(;)42 b Fe(j)28 b(<)22 b Fm(4;)41 b Fe(j)985 2248 y Fg(+)-8 b(+)1082 2256 y Fm(\))42 b Fn(f)332 2355 y Fi(new)p 477 @@ -11670,10 +11721,10 @@ b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4422 y Fk(v)m(oid)33 b Fi(r)l(eset)p 465 4422 V 30 w(tr)l(ansform)11 b Fm(\()j(\);)p eop end -%%Page: 108 108 -TeXDict begin 108 107 bop 0 83 a Fm(108)140 b Fl(SET)23 -b Fk(TRANSF)m(ORM)g Fl(TO)h(IDENTITY)1641 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(407)0 263 y Fk(407.)0 388 y Fn(h)14 b Fm(De\014ne)28 +%%Page: 109 109 +TeXDict begin 109 108 bop 0 83 a Fn(x)p Fm(407)140 b +Fl(3DLDFPR)n(G)1641 b(SET)24 b Fk(TRANSF)m(ORM)f Fl(TO)g(IDENTITY)141 +b Fm(109)0 263 y Fk(407.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(r)l(eset)p 756 487 26 4 v 31 w(tr)l(ansform)i @@ -11698,130 +11749,127 @@ b Fi(false)11 b Fm(,)28 b(as)e(in)0 1683 y(the)i(dra)n(wing)e(and)i (\014lling)f(functions)h(for)f Fk(P)m(ath)34 b Fm(and)27 b Fk(Solid)t Fm(.)0 1882 y Fk(410.)94 b(Normal)31 b(v)m(ersion.)p -0 1958 1643 4 v 1738 1990 a(Begin)g(Log)p 2257 1958 V -83 2131 a Fm([)p Fh(LDF)25 b(2003.07.11.)p Fm(])61 b(Made)27 +0 1958 1779 4 v 1874 1990 a(Log)p 2122 1958 V 83 2131 +a Fm([)p Fh(LDF)25 b(2003.07.11.)p Fm(])61 b(Made)27 b Fi(pp)l(en)39 b Fm(and)28 b Fi(dr)l(awdot)13 b Fm(\()h(\))28 -b(itself)g Fk(const)5 b Fm(.)p 0 2223 1678 4 v 1773 2256 -a Fk(End)32 b(Log)p 2222 2223 V 0 2380 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 2480 y Fk(v)m(oid)k Fi(dr)l(awdot)13 -b Fm(\()p Fk(const)27 b(Color)f Fm(&)p Fi(ddr)l(awdot)p -1508 2480 26 4 v 32 w(c)l(olor)38 b Fm(=)22 b Fn(\003)p -Fk(Colors)12 b Fm(::)c Fi(default)p 2457 2480 V 32 w(c)l(olor)14 -b Fe(;)g Fk(const)26 b(string)i Fi(pp)l(en)34 b Fm(=)23 -b Ff("")s Fe(;)14 b Fk(Picture)249 2579 y Fm(&)p Fi(pictur)l(e)33 -b Fm(=)23 b Fi(curr)l(ent)p 949 2579 V 30 w(pictur)l(e)10 -b Fm(\))28 b Fk(const)5 b Fm(;)0 2779 y Fk(411.)0 2903 -y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3003 y Fk(v)m(oid)33 -b(P)m(oin)m(t)13 b Fm(::)8 b Fi(dr)l(awdot)14 b Fm(\()p -Fk(const)32 b(Color)g Fm(&)p Fi(ddr)l(awdot)p 1817 3003 -V 32 w(c)l(olor)14 b Fe(;)g Fk(const)33 b(string)g Fi(pp)l(en)11 -b Fe(;)j Fk(Picture)33 b Fm(&)o Fi(pictur)l(e)11 b Fm(\))28 -b Fk(const)83 3102 y Fn(f)166 3202 y Fk(b)s(o)s(ol)j -Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p -Fn(\003)40 b Fi(true)52 b Fn(\003)p Fe(=)166 3327 y Fk(if)41 -b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 -b Ff("Entering)p Fj( )p Ff(drawdot)o(\(\)")e Fn(\034)i -Ff("\\n")i Fn(\034)e Fi(\015ush)11 b Fm(;)166 3451 y -Fk(P)m(oin)m(t)33 b Fn(\003)o Fi(pt)j Fm(=)22 b Fi(cr)l(e)l(ate)p -873 3451 V 31 w(new)p 1044 3451 V 30 w(p)l(oint)13 b -Fm(\()h(\);)166 3576 y Fn(\003)p Fi(pt)35 b Fm(=)22 b -Fn(\003)p Fi(this)11 b Fm(;)166 3675 y Fi(pt)232 3700 -y Fe(~)281 3675 y Fi(dr)l(awdot)p 568 3675 V 32 w(value)34 -b Fm(=)23 b Ff(DRAWDOT)q Fm(;)166 3775 y Fi(pt)232 3800 -y Fe(~)281 3775 y Fi(dr)l(awdot)p 568 3775 V 32 w(c)l(olor)37 -b Fm(=)23 b(&)p Fi(ddr)l(awdot)p 1288 3775 V 32 w(c)l(olor)14 -b Fm(;)0 3874 y(#)p Fk(if)41 b Fm(1)166 3974 y Fi(pt)232 -3999 y Fe(~)281 3974 y Fi(p)l(en)34 b Fm(=)23 b Fi(pp)l(en)11 -b Fm(;)0 4074 y(#)p Fk(endif)166 4173 y Fi(pictur)l(e)34 -b Fm(+=)22 b Fk(static)p 830 4173 29 5 v 40 w(cast)6 -b Fn(h)p Fk(Shap)s(e)32 b Fn(\003i)p Fm(\()p Fi(pt)13 -b Fm(\);)166 4273 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h -Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(drawdot\()o(\)")e -Fn(\034)i Ff("\\n")j Fn(\034)d Fi(\015ush)10 b Fm(;)83 -4373 y Fn(g)p eop end -%%Page: 109 109 -TeXDict begin 109 108 bop 0 83 a Fn(x)p Fm(412)140 b -Fl(3DLDFPR)n(G)1813 b Fk(PICTURE)24 b Fl(AR)n(GUMENT)f(FIRST)141 -b Fm(109)0 263 y Fk(412.)94 b(Picture)33 b(argumen)m(t)f(\014rst.)p -0 362 1643 4 v 1738 395 a(Begin)f(Log)p 2257 362 V 83 -536 a Fm([)p Fh(LDF)25 b(2002.01.24.)p Fm(])61 b(Added)28 -b(this)g(v)n(ersion.)83 635 y([)p Fh(LDF)d(2003.01.31.)p -Fm(])79 b(Remo)n(v)n(ed)44 b(default)h(for)f Fi(pictur)l(e)11 -b Fm(.)89 b(Ha)n(ving)44 b(a)h(default)g(made)g(calls)f(to)h -Fi(dr)l(awdot)13 b Fm(\()i(\))45 b(with)g(no)0 735 y(argumen)n(ts)26 -b(am)n(biguous.)83 834 y([)p Fh(LDF)f(2003.07.11.)p Fm(])61 -b(Made)27 b Fi(pp)l(en)39 b Fm(and)28 b Fi(dr)l(awdot)13 -b Fm(\()h(\))28 b(itself)g Fk(const)5 b Fm(.)p 0 926 -1678 4 v 1773 959 a Fk(End)32 b(Log)p 2222 926 V 0 1084 +b(itself)g Fk(const)5 b Fm(.)p 0 2223 3900 4 v 0 2380 +a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2480 y Fk(v)m(oid)k +Fi(dr)l(awdot)13 b Fm(\()p Fk(const)27 b(Color)f Fm(&)p +Fi(ddr)l(awdot)p 1508 2480 26 4 v 32 w(c)l(olor)38 b +Fm(=)22 b Fn(\003)p Fk(Colors)12 b Fm(::)c Fi(default)p +2457 2480 V 32 w(c)l(olor)14 b Fe(;)g Fk(const)26 b(string)i +Fi(pp)l(en)34 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(Picture)249 +2579 y Fm(&)p Fi(pictur)l(e)33 b Fm(=)23 b Fi(curr)l(ent)p +949 2579 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 +b Fm(;)0 2779 y Fk(411.)0 2903 y Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 3003 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 +b Fm(::)8 b Fi(dr)l(awdot)14 b Fm(\()p Fk(const)32 b(Color)g +Fm(&)p Fi(ddr)l(awdot)p 1817 3003 V 32 w(c)l(olor)14 +b Fe(;)g Fk(const)33 b(string)g Fi(pp)l(en)11 b Fe(;)j +Fk(Picture)33 b Fm(&)o Fi(pictur)l(e)11 b Fm(\))28 b +Fk(const)83 3102 y Fn(f)166 3202 y Fk(b)s(o)s(ol)j Ff(DEBUG)25 +b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b +Fi(true)52 b Fn(\003)p Fe(=)166 3327 y Fk(if)41 b Fm(\()p +Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p +Fj( )p Ff(drawdot)o(\(\)")e Fn(\034)i Ff("\\n")i Fn(\034)e +Fi(\015ush)11 b Fm(;)166 3451 y Fk(P)m(oin)m(t)33 b Fn(\003)o +Fi(pt)j Fm(=)22 b Fi(cr)l(e)l(ate)p 873 3451 V 31 w(new)p +1044 3451 V 30 w(p)l(oint)13 b Fm(\()h(\);)166 3576 y +Fn(\003)p Fi(pt)35 b Fm(=)22 b Fn(\003)p Fi(this)11 b +Fm(;)166 3675 y Fi(pt)232 3700 y Fe(~)281 3675 y Fi(dr)l(awdot)p +568 3675 V 32 w(value)34 b Fm(=)23 b Ff(DRAWDOT)q Fm(;)166 +3775 y Fi(pt)232 3800 y Fe(~)281 3775 y Fi(dr)l(awdot)p +568 3775 V 32 w(c)l(olor)37 b Fm(=)23 b(&)p Fi(ddr)l(awdot)p +1288 3775 V 32 w(c)l(olor)14 b Fm(;)0 3874 y(#)p Fk(if)41 +b Fm(1)166 3974 y Fi(pt)232 3999 y Fe(~)281 3974 y Fi(p)l(en)34 +b Fm(=)23 b Fi(pp)l(en)11 b Fm(;)0 4074 y(#)p Fk(endif)166 +4173 y Fi(pictur)l(e)34 b Fm(+=)22 b Fk(static)p 830 +4173 29 5 v 40 w(cast)6 b Fn(h)p Fk(Shap)s(e)32 b Fn(\003i)p +Fm(\()p Fi(pt)13 b Fm(\);)166 4273 y Fk(if)41 b Fm(\()p +Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p +Fj( )p Ff(drawdot\()o(\)")e Fn(\034)i Ff("\\n")j Fn(\034)d +Fi(\015ush)10 b Fm(;)83 4373 y Fn(g)p eop end +%%Page: 110 110 +TeXDict begin 110 109 bop 0 83 a Fm(110)140 b Fk(PICTURE)24 +b Fl(AR)n(GUMENT)f(FIRST)1813 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(412)0 263 y Fk(412.)94 b(Picture)33 b(argumen)m(t)f(\014rst.)p +0 362 1779 4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm([)p +Fh(LDF)25 b(2002.01.24.)p Fm(])61 b(Added)28 b(this)g(v)n(ersion.)83 +635 y([)p Fh(LDF)d(2003.01.31.)p Fm(])79 b(Remo)n(v)n(ed)44 +b(default)h(for)f Fi(pictur)l(e)11 b Fm(.)89 b(Ha)n(ving)44 +b(a)h(default)g(made)g(calls)f(to)h Fi(dr)l(awdot)13 +b Fm(\()i(\))45 b(with)g(no)0 734 y(argumen)n(ts)26 b(am)n(biguous.)83 +834 y([)p Fh(LDF)f(2003.07.11.)p Fm(])61 b(Made)27 b +Fi(pp)l(en)39 b Fm(and)28 b Fi(dr)l(awdot)13 b Fm(\()h(\))28 +b(itself)g Fk(const)5 b Fm(.)p 0 926 3900 4 v 0 1083 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1183 y Fk(v)m(oid)31 +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1182 y Fk(v)m(oid)31 b Fi(dr)l(awdot)13 b Fm(\()p Fk(Picture)32 b Fm(&)o Fi(pictur)l(e)11 b Fe(;)j Fk(const)31 b(Color)f Fm(&)p Fi(ddr)l(awdot)p -2218 1183 26 4 v 32 w(c)l(olor)37 b Fm(=)23 b Fn(\003)o -Fk(Colors)12 b Fm(::)d Fi(default)p 3167 1183 V 31 w(c)l(olor)14 -b Fe(;)g Fk(const)31 b(string)249 1283 y Fi(pp)l(en)j -Fm(=)23 b Ff("")s Fm(\))28 b Fk(const)5 b Fm(;)0 1482 -y Fk(413.)0 1607 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +2218 1182 26 4 v 32 w(c)l(olor)37 b Fm(=)23 b Fn(\003)o +Fk(Colors)12 b Fm(::)d Fi(default)p 3167 1182 V 31 w(c)l(olor)14 +b Fe(;)g Fk(const)31 b(string)249 1282 y Fi(pp)l(en)j +Fm(=)23 b Ff("")s Fm(\))28 b Fk(const)5 b Fm(;)0 1481 +y Fk(413.)0 1606 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1706 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(dr)l(awdot)14 b Fm(\()p Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)10 b Fe(;)k Fk(const)33 b(Color)e Fm(&)p Fi(ddr)l(awdot)p 2516 1706 V 32 w(c)l(olor)14 b Fe(;)g Fk(const)33 b(string)g Fi(pp)l(en)11 -b Fm(\))28 b Fk(const)83 1806 y Fn(f)166 1905 y Fi(dr)l(awdot)13 +b Fm(\))28 b Fk(const)83 1805 y Fn(f)166 1905 y Fi(dr)l(awdot)13 b Fm(\()p Fi(ddr)l(awdot)p 822 1905 V 33 w(c)l(olor)h Fe(;)g Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)d Fm(\);)83 -2005 y Fn(g)0 2204 y Fk(414.)94 b(Undra)m(wdot.)j Fm([)p +2004 y Fn(g)0 2204 y Fk(414.)94 b(Undra)m(wdot.)j Fm([)p Fh(LDF)25 b(2002.10.26.)p Fm(])74 b Fi(undr)l(aw)13 b Fm(\()h(\))41 b(do)r(es)f(not)g(remo)n(v)n(e)f(a)h(dot)g(from)g -Fi(pictur)l(e)11 b Fm(,)43 b(but)e(causes)f(the)0 2304 +Fi(pictur)l(e)11 b Fm(,)43 b(but)e(causes)f(the)0 2303 y(MET)-7 b(APOST)27 b(command)g Fk(undra)m(wdot)i Fm(to)e(b)r(e)h -(written)g(to)f Fi(out)p 2084 2304 V 31 w(str)l(e)l(am)37 +(written)g(to)f Fi(out)p 2084 2303 V 31 w(str)l(e)l(am)37 b Fm(when)28 b Fi(pictur)l(e)39 b Fm(is)27 b(output.)0 -2429 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b +2428 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2528 y Fk(v)m(oid)33 b Fi(undr)l(awdot)12 b Fm(\()p Fk(string)34 +2527 y Fk(v)m(oid)33 b Fi(undr)l(awdot)12 b Fm(\()p Fk(string)34 b Fi(pp)l(en)g Fm(=)22 b Ff("")t Fe(;)14 b Fk(Picture)33 b Fm(&)o Fi(pictur)l(e)h Fm(=)23 b Fi(curr)l(ent)p 2440 -2528 V 29 w(pictur)l(e)11 b Fm(\);)0 2727 y Fk(415.)0 -2852 y Fn(h)j Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2952 y Fk(v)m(oid)33 +2527 V 29 w(pictur)l(e)11 b Fm(\);)0 2727 y Fk(415.)0 +2851 y Fn(h)j Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2951 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(undr)l(awdot)13 b Fm(\()p Fk(string)33 b Fi(pp)l(en)12 b Fe(;)i Fk(Picture)32 b -Fm(&)p Fi(pictur)l(e)11 b Fm(\))83 3051 y Fn(f)166 3151 +Fm(&)p Fi(pictur)l(e)11 b Fm(\))83 3050 y Fn(f)166 3150 y Fk(P)m(oin)m(t)33 b Fn(\003)o Fi(pt)j Fm(=)22 b Fi(cr)l(e)l(ate)p -873 3151 V 31 w(new)p 1044 3151 V 30 w(p)l(oint)13 b +873 3150 V 31 w(new)p 1044 3150 V 30 w(p)l(oint)13 b Fm(\()h(\);)166 3275 y Fn(\003)p Fi(pt)35 b Fm(=)22 b -Fn(\003)p Fi(this)11 b Fm(;)166 3375 y Fi(pt)232 3400 -y Fe(~)281 3375 y Fi(dr)l(awdot)p 568 3375 V 32 w(value)34 -b Fm(=)23 b Ff(UNDRAWDOT)q Fm(;)166 3475 y Fi(pt)232 -3499 y Fe(~)281 3475 y Fi(dr)l(awdot)p 568 3475 V 32 +Fn(\003)p Fi(this)11 b Fm(;)166 3374 y Fi(pt)232 3399 +y Fe(~)281 3374 y Fi(dr)l(awdot)p 568 3374 V 32 w(value)34 +b Fm(=)23 b Ff(UNDRAWDOT)q Fm(;)166 3474 y Fi(pt)232 +3499 y Fe(~)281 3474 y Fi(dr)l(awdot)p 568 3474 V 32 w(c)l(olor)37 b Fm(=)23 b Fk(Colors)12 b Fm(::)d Fi(b)l(ackgr)l(ound)p -1632 3475 V 31 w(c)l(olor)14 b Fm(;)0 3574 y(#)p Fk(if)41 -b Fm(1)166 3674 y Fi(pt)232 3699 y Fe(~)281 3674 y Fi(p)l(en)34 +1632 3474 V 31 w(c)l(olor)14 b Fm(;)0 3574 y(#)p Fk(if)41 +b Fm(1)166 3673 y Fi(pt)232 3698 y Fe(~)281 3673 y Fi(p)l(en)34 b Fm(=)23 b Fi(pp)l(en)11 b Fm(;)0 3773 y(#)p Fk(endif)166 -3873 y Fi(pictur)l(e)34 b Fm(+=)22 b Fk(static)p 830 -3873 29 5 v 40 w(cast)6 b Fn(h)p Fk(Shap)s(e)32 b Fn(\003i)p -Fm(\()p Fi(pt)13 b Fm(\);)83 3973 y Fn(g)0 4172 y Fk(416.)94 -b(Picture)33 b(argumen)m(t)f(\014rst.)p 0 4271 1643 4 -v 1738 4304 a(Begin)f(Log)p 2257 4271 V 83 4445 a Fm([)p -Fh(LDF)25 b(2002.01.24.)p Fm(])61 b(Added)28 b(this)g(v)n(ersion.)83 -4544 y([)p Fh(LDF)d(2003.01.31.)p Fm(])72 b(Remo)n(v)n(ed)38 +3872 y Fi(pictur)l(e)34 b Fm(+=)22 b Fk(static)p 830 +3872 29 5 v 40 w(cast)6 b Fn(h)p Fk(Shap)s(e)32 b Fn(\003i)p +Fm(\()p Fi(pt)13 b Fm(\);)83 3972 y Fn(g)0 4171 y Fk(416.)94 +b(Picture)33 b(argumen)m(t)f(\014rst.)p 0 4270 1779 4 +v 1874 4303 a(Log)p 2122 4270 V 83 4443 a Fm([)p Fh(LDF)25 +b(2002.01.24.)p Fm(])61 b(Added)28 b(this)g(v)n(ersion.)83 +4543 y([)p Fh(LDF)d(2003.01.31.)p Fm(])72 b(Remo)n(v)n(ed)38 b(default)i(for)e Fi(pictur)l(e)11 b Fm(.)71 b(Ha)n(ving)37 b(a)i(default)g(made)g(calls)f(to)h Fi(undr)l(awdot)13 -b Fm(\()h(\))39 b(with)g(no)0 4644 y(argumen)n(ts)26 -b(am)n(biguous.)p 0 4736 1678 4 v 1773 4768 a Fk(End)32 -b(Log)p 2222 4736 V 0 4893 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 4993 y Fk(v)m(oid)33 b Fi(undr)l(awdot)12 -b Fm(\()p Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)11 b Fe(;)j -Fk(string)33 b Fi(pp)l(en)h Fm(=)22 b Ff("")t Fm(\);)p -eop end -%%Page: 110 110 -TeXDict begin 110 109 bop 0 83 a Fm(110)140 b Fk(PICTURE)24 -b Fl(AR)n(GUMENT)f(FIRST)1813 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(417)0 263 y Fk(417.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fm(\()h(\))39 b(with)g(no)0 4642 y(argumen)n(ts)26 +b(am)n(biguous.)p 0 4734 3900 4 v 0 4892 a Fn(h)14 b +Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 4991 y Fk(v)m(oid)33 b +Fi(undr)l(awdot)12 b Fm(\()p Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)11 +b Fe(;)j Fk(string)33 b Fi(pp)l(en)h Fm(=)22 b Ff("")t +Fm(\);)p eop end +%%Page: 111 111 +TeXDict begin 111 110 bop 0 83 a Fn(x)p Fm(417)140 b +Fl(3DLDFPR)n(G)1813 b Fk(PICTURE)24 b Fl(AR)n(GUMENT)f(FIRST)141 +b Fm(111)0 263 y Fk(417.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(undr)l(awdot)13 b Fm(\()p Fk(Picture)33 @@ -11842,11 +11890,10 @@ b Fm(\()g(\))28 b(m)n(ust)g(b)r(e)g(de\014ned)g(in)g Fj(paths.web)p Fm(,)c(b)r(ecause)j Fk(P)m(ath)33 b Fm(is)28 b(an)f(incomplete)h(t)n(yp)r(e)g(here.)0 1483 y Fk(419.)94 -b(Normal)31 b(v)m(ersion.)p 0 1559 1643 4 v 1738 1592 -a(Begin)g(Log)p 2257 1559 V 83 1733 a Fm([)p Fh(LDF)25 -b(2003.01.15.)p Fm(])61 b(Added)28 b(the)g(argumen)n(t)f -Fi(aarr)l(ow)14 b Fm(.)p 0 1824 1678 4 v 1773 1857 a -Fk(End)32 b(Log)p 2222 1824 V 0 1982 a Fn(h)14 b Fm(Declare)27 +b(Normal)31 b(v)m(ersion.)p 0 1559 1779 4 v 1874 1592 +a(Log)p 2122 1559 V 83 1733 a Fm([)p Fh(LDF)25 b(2003.01.15.)p +Fm(])61 b(Added)28 b(the)g(argumen)n(t)f Fi(aarr)l(ow)14 +b Fm(.)p 0 1824 3900 4 v 0 1982 a Fn(h)g Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2081 y Fk(P)m(ath)41 b Fi(dr)l(aw)14 b Fm(\()p Fk(const)39 b(P)m(oin)m(t)h Fm(&)p Fe(p)o(;)14 @@ -11862,290 +11909,283 @@ Fk(420.)94 b(Picture)31 b(argumen)m(t)g(\014rst.)95 b Fm([)p Fh(LDF)26 b(2003.01.15.)p Fm(])59 b(This)26 b(function)h(is)g (con)n(v)n(enien)n(t)e(for)h(when)g(I)h(w)n(an)n(t)f(to)g(pass)f(a)0 -2480 y Fk(Picture)33 b Fm(argumen)n(t.)p 0 2579 1643 -4 v 1738 2612 a Fk(Begin)e(Log)p 2257 2579 V 83 2752 -a Fm([)p Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 -b(this)g(function.)83 2852 y([)p Fh(LDF)d(2003.01.15.)p -Fm(])61 b(Added)28 b(the)g(argumen)n(t)f Fi(aarr)l(ow)14 -b Fm(.)p 0 2944 1678 4 v 1773 2976 a Fk(End)32 b(Log)p -2222 2944 V 0 3101 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +2480 y Fk(Picture)33 b Fm(argumen)n(t.)p 0 2578 1779 +4 v 1874 2611 a Fk(Log)p 2122 2578 V 83 2752 a Fm([)p +Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 b(this)g(function.)83 +2851 y([)p Fh(LDF)d(2003.01.15.)p Fm(])61 b(Added)28 +b(the)g(argumen)n(t)f Fi(aarr)l(ow)14 b Fm(.)p 0 2943 +3900 4 v 0 3100 a Fn(h)g Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3201 y Fk(P)m(ath)34 b Fi(dr)l(aw)14 b Fm(\()p Fk(Picture)33 +3200 y Fk(P)m(ath)34 b Fi(dr)l(aw)14 b Fm(\()p Fk(Picture)33 b Fm(&)o Fi(pictur)l(e)11 b Fe(;)j Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fe(p;)14 b Fk(const)32 b(Color)g Fm(&)o Fi(ddr)l(aw)p -2675 3201 26 4 v 32 w(c)l(olor)37 b Fm(=)23 b Fn(\003)o -Fk(Colors)12 b Fm(::)d Fi(default)p 3624 3201 V 31 w(c)l(olor)15 +2675 3200 26 4 v 32 w(c)l(olor)37 b Fm(=)23 b Fn(\003)o +Fk(Colors)12 b Fm(::)d Fi(default)p 3624 3200 V 31 w(c)l(olor)15 b Fe(;)249 3300 y Fk(string)33 b Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(string)33 b Fi(pp)l(en)i Fm(=)22 b Ff("")t Fe(;)14 b Fk(b)s(o)s(ol)30 b Fi(aarr)l(ow)38 b Fm(=)23 b Fi(false)11 b Fm(\);)0 3499 y Fk(421.)94 -b(Dra)m(w)33 b(arro)m(w.)0 3699 y(422.)94 b(Normal)31 +b(Dra)m(w)33 b(arro)m(w.)0 3698 y(422.)94 b(Normal)31 b(v)m(ersion.)95 b Fm([)p Fh(LDF)26 b(2003.01.15.)p Fm(])60 -b(De\014ned)28 b(in)g Fj(paths.web)p Fm(.)p 0 3803 1643 -4 v 1738 3835 a Fk(Begin)j(Log)p 2257 3803 V 83 3976 -a Fm([)p Fh(LDF)25 b(2003.01.15.)p Fm(])61 b(Added)28 -b(this)g(function.)83 4076 y([)p Fh(LDF)d(2003.06.03.)p -Fm(])61 b(Made)27 b Fi(dr)l(awarr)l(ow)15 b Fm(\()f(\))28 -b Fk(const)5 b Fm(.)p 0 4167 1678 4 v 1773 4200 a Fk(End)32 -b(Log)p 2222 4167 V 0 4325 a Fn(h)14 b Fm(Declare)27 +b(De\014ned)28 b(in)g Fj(paths.web)p Fm(.)p 0 3801 1779 +4 v 1874 3834 a Fk(Log)p 2122 3801 V 83 3975 a Fm([)p +Fh(LDF)d(2003.01.15.)p Fm(])61 b(Added)28 b(this)g(function.)83 +4074 y([)p Fh(LDF)d(2003.06.03.)p Fm(])61 b(Made)27 b +Fi(dr)l(awarr)l(ow)15 b Fm(\()f(\))28 b Fk(const)5 b +Fm(.)p 0 4166 3900 4 v 0 4323 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 4424 y Fk(P)m(ath)38 b Fi(dr)l(awarr)l(ow)14 +b Fm(+)p Fn(\021)83 4423 y Fk(P)m(ath)38 b Fi(dr)l(awarr)l(ow)14 b Fm(\()p Fk(const)37 b(P)m(oin)m(t)g Fm(&)o Fe(p;)14 -b Fk(const)37 b(Color)e Fm(&)p Fi(ddr)l(aw)p 2202 4424 +b Fk(const)37 b(Color)e Fm(&)p Fi(ddr)l(aw)p 2202 4423 26 4 v 32 w(c)l(olor)43 b Fm(=)30 b Fn(\003)o Fk(Colors)12 -b Fm(::)d Fi(default)p 3164 4424 V 31 w(c)l(olor)14 b -Fe(;)g Fk(string)249 4524 y Fi(ddashe)l(d)38 b Fm(=)23 +b Fm(::)d Fi(default)p 3164 4423 V 31 w(c)l(olor)14 b +Fe(;)g Fk(string)249 4523 y Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(string)33 b Fi(pp)l(en)h Fm(=)23 b Ff("")t Fe(;)14 b Fk(Picture)32 b Fm(&)p Fi(pictur)l(e)i -Fm(=)22 b Fi(curr)l(ent)p 2511 4524 V 30 w(pictur)l(e)10 +Fm(=)22 b Fi(curr)l(ent)p 2511 4523 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 111 111 -TeXDict begin 111 110 bop 0 83 a Fn(x)p Fm(423)140 b -Fl(3DLDFPR)n(G)1813 b Fk(PICTURE)24 b Fl(AR)n(GUMENT)f(FIRST)141 -b Fm(111)0 263 y Fk(423.)94 b(Picture)33 b(argumen)m(t)f(\014rst.)95 +%%Page: 112 112 +TeXDict begin 112 111 bop 0 83 a Fm(112)140 b Fk(PICTURE)24 +b Fl(AR)n(GUMENT)f(FIRST)1813 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(423)0 263 y Fk(423.)94 b(Picture)33 b(argumen)m(t)f(\014rst.)95 b Fm([)p Fh(LDF)25 b(2003.01.15.)p Fm(])61 b(De\014ned)28 -b(in)g Fj(paths.web)p Fm(.)p 0 367 1643 4 v 1738 400 -a Fk(Begin)j(Log)p 2257 367 V 83 540 a Fm([)p Fh(LDF)25 -b(2003.06.03.)p Fm(])61 b(Made)27 b Fi(dr)l(awarr)l(ow)15 -b Fm(\()f(\))28 b Fk(const)5 b Fm(.)p 0 632 1678 4 v -1773 665 a Fk(End)32 b(Log)p 2222 632 V 0 789 a Fn(h)14 +b(in)g Fj(paths.web)p Fm(.)p 0 366 1779 4 v 1874 399 +a Fk(Log)p 2122 366 V 83 540 a Fm([)p Fh(LDF)d(2003.06.03.)p +Fm(])61 b(Made)27 b Fi(dr)l(awarr)l(ow)15 b Fm(\()f(\))28 +b Fk(const)5 b Fm(.)p 0 631 3900 4 v 0 789 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 889 y Fk(P)m(ath)34 +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 888 y Fk(P)m(ath)34 b Fi(dr)l(awarr)l(ow)14 b Fm(\()p Fk(Picture)34 b Fm(&)o Fi(pictur)l(e)11 b Fe(;)j Fk(const)32 b(P)m(oin)m(t)h -Fm(&)p Fe(p)o(;)249 989 y Fk(const)i(Color)f Fm(&)o Fi(ddr)l(aw)p -1048 989 26 4 v 32 w(c)l(olor)41 b Fm(=)26 b Fn(\003)p -Fk(Colors)12 b Fm(::)c Fi(default)p 2004 989 V 32 w(c)l(olor)14 +Fm(&)p Fe(p)o(;)249 988 y Fk(const)i(Color)f Fm(&)o Fi(ddr)l(aw)p +1048 988 26 4 v 32 w(c)l(olor)41 b Fm(=)26 b Fn(\003)p +Fk(Colors)12 b Fm(::)c Fi(default)p 2004 988 V 32 w(c)l(olor)14 b Fe(;)g Fk(string)35 b Fi(ddashe)l(d)42 b Fm(=)26 b Ff("")t Fe(;)14 b Fk(string)35 b Fi(pp)l(en)j Fm(=)26 -b Ff("")t Fm(\))249 1088 y Fk(const)5 b Fm(;)0 1287 y -Fk(424.)94 b(Undra)m(w.)0 1487 y(425.)g(Normal)30 b(v)m(ersion.)95 +b Ff("")t Fm(\))249 1087 y Fk(const)5 b Fm(;)0 1287 y +Fk(424.)94 b(Undra)m(w.)0 1486 y(425.)g(Normal)30 b(v)m(ersion.)95 b Fm(This)26 b(function)h(m)n(ust)f(b)r(e)h(de\014ned)f(in)h Fj(paths.web)p Fm(,)c(b)r(ecause)j(it)g(uses)g Fk(P)m(ath)6 b Fm(,)27 b(whic)n(h)f(is)g(an)0 1586 y(incomplete)i(t)n(yp)r(e)g -(here.)p 0 1686 1643 4 v 1738 1718 a Fk(Begin)j(Log)p -2257 1686 V 83 1859 a Fm([)p Fh(LDF)25 b(2002.4.8.)p -Fm(])60 b(Added)29 b(this)e(function.)83 1959 y([)p Fh(LDF)e -(2002.11.03.)p Fm(])61 b(Changed)27 b(this)h(function,)g(so)f(that)h -(it)g(returns)f(the)h Fk(P)m(ath)34 b Fi(p)l(a)11 b Fm(,)28 -b(instead)f(of)h Fk(v)m(oid)t Fm(.)p 0 2050 1678 4 v -1773 2083 a Fk(End)k(Log)p 2222 2050 V 0 2208 a Fn(h)14 +(here.)p 0 1684 1779 4 v 1874 1717 a Fk(Log)p 2122 1684 +V 83 1858 a Fm([)p Fh(LDF)d(2002.4.8.)p Fm(])60 b(Added)29 +b(this)e(function.)83 1957 y([)p Fh(LDF)e(2002.11.03.)p +Fm(])61 b(Changed)27 b(this)h(function,)g(so)f(that)h(it)g(returns)f +(the)h Fk(P)m(ath)34 b Fi(p)l(a)11 b Fm(,)28 b(instead)f(of)h +Fk(v)m(oid)t Fm(.)p 0 2049 3900 4 v 0 2206 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2307 y Fk(P)m(ath)45 +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2306 y Fk(P)m(ath)45 b Fi(undr)l(aw)13 b Fm(\()p Fk(const)43 b(P)m(oin)m(t)h Fm(&)p Fi(pt)12 b Fe(;)i Fk(string)44 b Fi(ddashe)l(d)56 b Fm(=)40 b Ff("")t Fe(;)14 b Fk(string)44 b Fi(pp)l(en)52 -b Fm(=)41 b Ff("")s Fe(;)14 b Fk(Picture)249 2407 y Fm(&)p -Fi(pictur)l(e)33 b Fm(=)23 b Fi(curr)l(ent)p 949 2407 -26 4 v 30 w(pictur)l(e)10 b Fm(\);)0 2606 y Fk(426.)94 -b(Picture)33 b(argumen)m(t)f(\014rst.)p 0 2705 1643 4 -v 1738 2738 a(Begin)f(Log)p 2257 2705 V 83 2879 a Fm([)p -Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 b(this)g(function.)38 +b Fm(=)41 b Ff("")s Fe(;)14 b Fk(Picture)249 2405 y Fm(&)p +Fi(pictur)l(e)33 b Fm(=)23 b Fi(curr)l(ent)p 949 2405 +26 4 v 30 w(pictur)l(e)10 b Fm(\);)0 2605 y Fk(426.)94 +b(Picture)33 b(argumen)m(t)f(\014rst.)p 0 2703 1779 4 +v 1874 2736 a(Log)p 2122 2703 V 83 2877 a Fm([)p Fh(LDF)25 +b(2002.09.17.)p Fm(])61 b(Added)28 b(this)g(function.)38 b(It's)27 b(con)n(v)n(enien)n(t)g(for)g(when)h(I)f(w)n(an)n(t)g(to)h -(pass)f(a)g Fk(Picture)33 b Fm(argumen)n(t.)83 2978 y([)p +(pass)f(a)g Fk(Picture)33 b Fm(argumen)n(t.)83 2976 y([)p Fh(LDF)25 b(2002.11.03.)p Fm(])61 b(Changed)27 b(this)h(function,)g(so) f(that)h(it)g(returns)f(the)h Fk(P)m(ath)34 b Fi(p)l(a)11 -b Fm(,)28 b(instead)f(of)h Fk(v)m(oid)t Fm(.)p 0 3070 -1678 4 v 1773 3103 a Fk(End)k(Log)p 2222 3070 V 0 3227 -a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3327 y Fk(P)m(ath)34 -b Fi(undr)l(aw)13 b Fm(\()p Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)10 -b Fe(;)k Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fi(pt)12 -b Fe(;)i Fk(string)33 b Fi(ddashe)l(d)38 b Fm(=)23 b -Ff("")s Fe(;)14 b Fk(string)33 b Fi(pp)l(en)i Fm(=)22 -b Ff("")t Fm(\);)0 3526 y Fk(427.)94 b(Dra)m(w)36 b(help.)94 -b Fm([)p Fh(LDF)26 b(2002.10.26.)p Fm(])63 b Fi(dr)l(aw)p -1657 3526 26 4 v 31 w(help)11 b Fm(\()j(\))31 b(is)e(lik)n(e)h -Fi(dr)l(aw)14 b Fm(\()g(\),)31 b(except)f(that)h(the)f -Fk(P)m(ath)36 b Fm(is)30 b(only)g(dra)n(wn)f(if)0 3626 +b Fm(,)28 b(instead)f(of)h Fk(v)m(oid)t Fm(.)p 0 3068 +3900 4 v 0 3225 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3325 y Fk(P)m(ath)34 b Fi(undr)l(aw)13 b Fm(\()p Fk(Picture)33 +b Fm(&)p Fi(pictur)l(e)10 b Fe(;)k Fk(const)33 b(P)m(oin)m(t)f +Fm(&)p Fi(pt)12 b Fe(;)i Fk(string)33 b Fi(ddashe)l(d)38 +b Fm(=)23 b Ff("")s Fe(;)14 b Fk(string)33 b Fi(pp)l(en)i +Fm(=)22 b Ff("")t Fm(\);)0 3524 y Fk(427.)94 b(Dra)m(w)36 +b(help.)94 b Fm([)p Fh(LDF)26 b(2002.10.26.)p Fm(])63 +b Fi(dr)l(aw)p 1657 3524 26 4 v 31 w(help)11 b Fm(\()j(\))31 +b(is)e(lik)n(e)h Fi(dr)l(aw)14 b Fm(\()g(\),)31 b(except)f(that)h(the)f +Fk(P)m(ath)36 b Fm(is)30 b(only)g(dra)n(wn)f(if)0 3624 y(the)g Fk(static)34 b(P)m(ath)h Fm(data)28 b(mem)n(b)r(er)h -Fi(do)p 1237 3626 V 31 w(help)p 1411 3626 V 32 w(lines)36 +Fi(do)p 1237 3624 V 31 w(help)p 1411 3624 V 32 w(lines)36 b Fn(\021)25 b Fi(true)10 b Fm(.)40 b(This)29 b(is)f(con)n(v)n(enien)n (t)g(for)g(dra)n(wing)f(construction)h(lines)h(that)0 -3726 y(shouldn't)f(b)r(e)g(output)g(in)g(the)g(\014nal)f(v)n(ersion)f +3723 y(shouldn't)f(b)r(e)g(output)g(in)g(the)g(\014nal)f(v)n(ersion)f (of)i(a)f(dra)n(wing.)36 b(Also,)27 b(the)h(default)g(color)e(is)i -Fn(\003)o Fk(Colors)12 b Fm(::)c Fi(help)p 3412 3726 -V 32 w(c)l(olor)15 b Fm(.)0 3925 y Fk(428.)94 b(Normal)41 +Fn(\003)o Fk(Colors)12 b Fm(::)c Fi(help)p 3412 3723 +V 32 w(c)l(olor)15 b Fm(.)0 3923 y Fk(428.)94 b(Normal)41 b(v)m(ersion.)95 b Fm([)p Fh(LDF)25 b(2002.4.8.)p Fm(])68 b(This)36 b(function)g(m)n(ust)g(b)r(e)g(de\014ned)h(in)f -Fj(paths.web)p Fm(,)e(b)r(ecause)h(it)h(uses)0 4024 y +Fj(paths.web)p Fm(,)e(b)r(ecause)h(it)h(uses)0 4022 y Fk(P)m(ath)6 b Fm(,)28 b(whic)n(h)f(is)h(an)f(incomplete)h(t)n(yp)r(e)g -(here.)p 0 4124 1643 4 v 1738 4156 a Fk(Begin)j(Log)p -2257 4124 V 83 4297 a Fm([)p Fh(LDF)25 b(2002.4.8.)p -Fm(])60 b(Added)29 b(this)e(function.)83 4397 y([)p Fh(LDF)e -(2003.07.13.)p Fm(])61 b(Made)27 b(this)h(function)h -Fk(const)t Fm(.)p 0 4488 1678 4 v 1773 4521 a Fk(End)j(Log)p -2222 4488 V 0 4646 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +(here.)p 0 4121 1779 4 v 1874 4154 a Fk(Log)p 2122 4121 +V 83 4294 a Fm([)p Fh(LDF)d(2002.4.8.)p Fm(])60 b(Added)29 +b(this)e(function.)83 4394 y([)p Fh(LDF)e(2003.07.13.)p +Fm(])61 b(Made)27 b(this)h(function)h Fk(const)t Fm(.)p +0 4486 3900 4 v 0 4643 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4745 y Fk(P)m(ath)39 b Fi(dr)l(aw)p 495 4745 26 4 v 31 +4743 y Fk(P)m(ath)39 b Fi(dr)l(aw)p 495 4743 26 4 v 31 w(help)11 b Fm(\()p Fk(const)38 b(P)m(oin)m(t)g Fm(&)p Fi(pt)12 b Fe(;)i Fk(const)38 b(Color)f Fm(&)o Fi(ddr)l(aw)p -2214 4745 V 32 w(c)l(olor)46 b Fm(=)32 b Fn(\003)o Fk(Colors)12 -b Fm(::)c Fi(help)p 3082 4745 V 32 w(c)l(olor)15 b Fe(;)f -Fk(string)249 4845 y Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s +2214 4743 V 32 w(c)l(olor)46 b Fm(=)32 b Fn(\003)o Fk(Colors)12 +b Fm(::)c Fi(help)p 3082 4743 V 32 w(c)l(olor)15 b Fe(;)f +Fk(string)249 4842 y Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(string)33 b Fi(pp)l(en)h Fm(=)23 b Ff("")t Fe(;)14 b Fk(Picture)32 b Fm(&)p Fi(pictur)l(e)i Fm(=)22 -b Fi(curr)l(ent)p 2511 4845 V 30 w(pictur)l(e)10 b Fm(\))28 +b Fi(curr)l(ent)p 2511 4842 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 112 112 -TeXDict begin 112 111 bop 0 83 a Fm(112)140 b Fk(PICTURE)24 -b Fl(AR)n(GUMENT)f(FIRST)1813 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(429)0 263 y Fk(429.)94 b(Picture)35 b(argumen)m(t)f(\014rst.)96 +%%Page: 113 113 +TeXDict begin 113 112 bop 0 83 a Fn(x)p Fm(429)140 b +Fl(3DLDFPR)n(G)1813 b Fk(PICTURE)24 b Fl(AR)n(GUMENT)f(FIRST)141 +b Fm(113)0 263 y Fk(429.)94 b(Picture)35 b(argumen)m(t)f(\014rst.)96 b Fm([)p Fh(LDF)25 b(2002.09.17.)p Fm(])63 b(This)29 b(v)n(ersion)f(is)i(con)n(v)n(enien)n(t)e(for)i(when)f(I)h(w)n(an)n(t)f (to)h(pass)e(a)0 363 y Fk(Picture)33 b Fm(argumen)n(t.)p -0 462 1643 4 v 1738 495 a Fk(Begin)e(Log)p 2257 462 V -83 635 a Fm([)p Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 -b(this)g(function.)83 735 y([)p Fh(LDF)d(2003.07.13.)p +0 461 1779 4 v 1874 494 a Fk(Log)p 2122 461 V 83 635 +a Fm([)p Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 +b(this)g(function.)83 734 y([)p Fh(LDF)d(2003.07.13.)p Fm(])61 b(Made)27 b(this)h(function)h Fk(const)t Fm(.)p -0 827 1678 4 v 1773 859 a Fk(End)j(Log)p 2222 827 V 0 -984 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1084 y Fk(P)m(ath)34 -b Fi(dr)l(aw)p 490 1084 26 4 v 31 w(help)11 b Fm(\()p -Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)10 b Fe(;)k Fk(const)33 -b(P)m(oin)m(t)f Fm(&)p Fi(pt)12 b Fe(;)249 1183 y Fk(const)32 -b(Color)e Fm(&)p Fi(ddr)l(aw)p 1042 1183 V 32 w(c)l(olor)37 -b Fm(=)23 b Fn(\003)o Fk(Colors)12 b Fm(::)d Fi(help)p -1893 1183 V 31 w(c)l(olor)15 b Fe(;)f Fk(string)32 b -Fi(ddashe)l(d)38 b Fm(=)22 b Ff("")t Fe(;)14 b Fk(string)32 -b Fi(pp)l(en)i Fm(=)23 b Ff("")s Fm(\))k Fk(const)5 b -Fm(;)0 1382 y Fk(430.)94 b(Sho)m(wing.)0 1582 y(431.)g(Sho)m(w.)h -Fm([)p Fh(LDF)26 b(2002.10.26.)p Fm(])60 b(The)28 b(argumen)n(ts:)0 -1731 y Fk(string)33 b Fi(text)847 b Fm(If)28 b Fi(text)38 -b Fm(is)28 b(non-empt)n(y)-7 b(,)27 b(\(i.e.,)h(not)g -Ff("")s Fm(\),)g(it's)g(written)g(to)f(standard)g(output)1255 -1831 y(\()p Ff(stdout)r Fm(\).)40 b(If)29 b(it)g(is)f(empt)n(y)-7 -b(,)29 b(or)f Fi(show)14 b Fm(\()g(\))29 b(is)f(called)h(without)f(an)n -(y)g(argumen)n(ts,)g(the)1255 1930 y(default)g(is)f(used,)h(namely)f -Ff("Point:")q Fm(.)0 2080 y Fk(c)m(har)34 b Fi(c)l(o)l(or)l(ds)823 +0 826 3900 4 v 0 983 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1083 y Fk(P)m(ath)34 b Fi(dr)l(aw)p 490 1083 26 4 v 31 +w(help)11 b Fm(\()p Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)10 +b Fe(;)k Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fi(pt)12 +b Fe(;)249 1182 y Fk(const)32 b(Color)e Fm(&)p Fi(ddr)l(aw)p +1042 1182 V 32 w(c)l(olor)37 b Fm(=)23 b Fn(\003)o Fk(Colors)12 +b Fm(::)d Fi(help)p 1893 1182 V 31 w(c)l(olor)15 b Fe(;)f +Fk(string)32 b Fi(ddashe)l(d)38 b Fm(=)22 b Ff("")t Fe(;)14 +b Fk(string)32 b Fi(pp)l(en)i Fm(=)23 b Ff("")s Fm(\))k +Fk(const)5 b Fm(;)0 1382 y Fk(430.)94 b(Sho)m(wing.)0 +1581 y(431.)g(Sho)m(w.)h Fm([)p Fh(LDF)26 b(2002.10.26.)p +Fm(])60 b(The)28 b(argumen)n(ts:)0 1730 y Fk(string)33 +b Fi(text)847 b Fm(If)28 b Fi(text)38 b Fm(is)28 b(non-empt)n(y)-7 +b(,)27 b(\(i.e.,)h(not)g Ff("")s Fm(\),)g(it's)g(written)g(to)f +(standard)g(output)1255 1830 y(\()p Ff(stdout)r Fm(\).)40 +b(If)29 b(it)g(is)f(empt)n(y)-7 b(,)29 b(or)f Fi(show)14 +b Fm(\()g(\))29 b(is)f(called)h(without)f(an)n(y)g(argumen)n(ts,)g(the) +1255 1930 y(default)g(is)f(used,)h(namely)f Ff("Point:")q +Fm(.)0 2079 y Fk(c)m(har)34 b Fi(c)l(o)l(or)l(ds)823 b Fm(One)30 b(of)g(the)h(c)n(haracters)d Ff('w')s Fm(,)j Ff('p')s Fm(,)g Ff('u')t Fm(,)g(or)e Ff('v')34 b Fm(should)c(b)r(e)h (used,)g(to)f(indicate)1255 2179 y(whic)n(h)43 b(set)h(of)f(co)r (ordinates)g(should)g(b)r(e)h(sho)n(wn:)68 b Fi(world)p 3146 2179 V 32 w(c)l(o)l(or)l(dinates)12 b Fm(,)48 b -Fi(pr)l(oje)l(c-)1255 2279 y(tive)p 1389 2279 V 31 w(c)l(oordinates)p -Fm(,)30 b Fi(user)p 2034 2279 V 30 w(c)l(o)l(or)l(dinates)12 -b Fm(,)28 b(or)f Fi(view)p 2786 2279 V 32 w(c)l(o)l(or)l(dinates)12 -b Fm(,)28 b(resp)r(ectiv)n(ely)-7 b(.)38 b(The)1255 2379 +Fi(pr)l(oje)l(c-)1255 2278 y(tive)p 1389 2278 V 31 w(c)l(oordinates)p +Fm(,)30 b Fi(user)p 2034 2278 V 30 w(c)l(o)l(or)l(dinates)12 +b Fm(,)28 b(or)f Fi(view)p 2786 2278 V 32 w(c)l(o)l(or)l(dinates)12 +b Fm(,)28 b(resp)r(ectiv)n(ely)-7 b(.)38 b(The)1255 2378 y(latter)23 b(t)n(w)n(o)g(exist,)h(but)h(are)d(not)i(curren)n(tly)f (used.)35 b(The)24 b(corresp)r(onding)e(upp)r(ercase)1255 -2478 y(c)n(haracters)j(can)i(also)g(b)r(e)h(used.)0 2628 -y Fk(const)k(b)s(o)s(ol)f Fi(do)p 552 2628 V 32 w(p)l(ersp)489 +2478 y(c)n(haracters)j(can)i(also)g(b)r(e)h(used.)0 2627 +y Fk(const)k(b)s(o)s(ol)f Fi(do)p 552 2627 V 32 w(p)l(ersp)489 b Fm(Only)40 b(meaningful)g(if)h(the)f Fi(pr)l(oje)l(ctive)p -2502 2628 V 32 w(c)l(o)l(or)l(dinates)53 b Fm(are)39 +2502 2627 V 32 w(c)l(o)l(or)l(dinates)53 b Fm(are)39 b(b)r(eing)h(sho)n(wn)g(\()p Fi(c)l(o)l(or)l(ds)1255 2727 y Fm(argumen)n(t)e Ff('p')s Fm(\).)72 b(If)40 b Fi(do)p 2084 2727 V 31 w(p)l(ersp)53 b Fn(\021)42 b Fi(true)10 b Fm(,)42 b(then)e Fi(pr)l(oje)l(ct)12 b Fm(\()j(\))39 -b(is)g(called)g(on)g Fn(\003)p Fi(this)1255 2827 y Fm(b)r(efore)28 -b Fi(pr)l(oje)l(ctive)p 1851 2827 V 32 w(c)l(o)l(or)l(dinates)41 +b(is)g(called)g(on)g Fn(\003)p Fi(this)1255 2826 y Fm(b)r(efore)28 +b Fi(pr)l(oje)l(ctive)p 1851 2826 V 32 w(c)l(o)l(or)l(dinates)41 b Fm(are)28 b(sho)n(wn.)39 b(This)28 b(is)h(usually)f(what)h(one)f(w)n -(an)n(ts.)1255 2927 y(Ho)n(w)n(ev)n(er,)19 b(it)i(ma)n(y)e(sometimes)h +(an)n(ts.)1255 2926 y(Ho)n(w)n(ev)n(er,)19 b(it)i(ma)n(y)e(sometimes)h (b)r(e)h(useful)f(to)g(sho)n(w)g(the)g(con)n(ten)n(ts)g(of)g -Fi(pr)l(oje)l(ctive)p 3767 2927 V 32 w(c)l(o-)1255 3026 +Fi(pr)l(oje)l(ctive)p 3767 2926 V 32 w(c)l(o-)1255 3026 y(ordinates)p Fm(,)43 b(without)c(calling)f Fi(pr)l(oje)l(ct)13 b Fm(\()h(\),)42 b(in)e(whic)n(h)e(case)g Fi(do)p 3277 -3026 V 32 w(p)l(ersp)49 b Fm(should)39 b(b)r(e)1255 3126 +3026 V 32 w(p)l(ersp)49 b Fm(should)39 b(b)r(e)1255 3125 y Fi(false)11 b Fm(.)0 3275 y Fk(const)32 b(b)s(o)s(ol)f Fi(do)p 552 3275 V 32 w(apply)489 b Fm(Usually)-7 b(,)24 b Fi(apply)p 1760 3275 V 33 w(tr)l(ansform)11 b Fm(\()j(\))24 b(should)g(b)r(e)h(called)f(on)g Fn(\003)o Fi(this)36 -b Fm(b)r(efore)24 b(sho)n(wing)f(a)h(set)1255 3375 y(of)g(co)r +b Fm(b)r(efore)24 b(sho)n(wing)f(a)h(set)1255 3374 y(of)g(co)r (ordinates,)g(so)f(the)i(default)g(for)e Fi(do)p 2534 -3375 V 32 w(apply)38 b Fm(is)24 b Fi(true)10 b Fm(.)36 -b(Ho)n(w)n(ev)n(er,)23 b(it)h(ma)n(y)g(some-)1255 3475 +3374 V 32 w(apply)38 b Fm(is)24 b Fi(true)10 b Fm(.)36 +b(Ho)n(w)n(ev)n(er,)23 b(it)h(ma)n(y)g(some-)1255 3474 y(times)34 b(b)r(e)h(useful)g(to)g(sho)n(w)e(the)i(v)-5 b(alues)34 b(of)h(the)g(co)r(ordinates)e(without)i(applying)1255 3574 y Fi(tr)l(ansform)10 b Fm(,)28 b(in)g(whic)n(h)g(case)e Fi(do)p 2267 3574 V 32 w(apply)41 b Fm(should)27 b(b)r(e)h -Fi(false)12 b Fm(.)0 3724 y Fk(F)-8 b(o)s(cus)32 b Fn(\003)p +Fi(false)12 b Fm(.)0 3723 y Fk(F)-8 b(o)s(cus)32 b Fn(\003)p Fe(f)904 b Fm(Only)40 b(meaningful)g(if)h(the)f Fi(pr)l(oje)l(ctive)p -2502 3724 V 32 w(c)l(o)l(or)l(dinates)53 b Fm(are)39 +2502 3723 V 32 w(c)l(o)l(or)l(dinates)53 b Fm(are)39 b(b)r(eing)h(sho)n(wn)g(\()p Fi(c)l(o)l(or)l(ds)1255 3823 y Fm(argumen)n(t)30 b Ff('p')s Fm(\).)50 b(Refers)31 b(to)g(the)h Fk(F)-8 b(o)s(cus)36 b Fm(used)c(for)f(pro)5 -b(jection.)48 b(If)32 b(the)g(default)1255 3923 y(is)25 +b(jection.)48 b(If)32 b(the)g(default)1255 3922 y(is)25 b(used,)i(or)e(0)g(is)h(passed)f(as)g(the)h(argumen)n(t)f(explicitly)-7 -b(,)27 b(then)f(the)g(global)f(v)-5 b(ariable)1255 4023 -y Fi(default)p 1501 4023 V 31 w(fo)l(cus)39 b Fm(is)28 -b(used.)0 4172 y Fk(const)k(unsigned)g(short)g Fi(pr)l(oj)217 +b(,)27 b(then)f(the)g(global)f(v)-5 b(ariable)1255 4022 +y Fi(default)p 1501 4022 V 31 w(fo)l(cus)39 b Fm(is)28 +b(used.)0 4171 y Fk(const)k(unsigned)g(short)g Fi(pr)l(oj)217 b Fm(Only)40 b(meaningful)g(if)h(the)f Fi(pr)l(oje)l(ctive)p -2502 4172 V 32 w(c)l(o)l(or)l(dinates)53 b Fm(are)39 +2502 4171 V 32 w(c)l(o)l(or)l(dinates)53 b Fm(are)39 b(b)r(eing)h(sho)n(wn)g(\()p Fi(c)l(o)l(or)l(ds)1255 -4272 y Fm(argumen)n(t)j Ff('p')s Fm(\).)88 b(Refers)44 +4271 y Fm(argumen)n(t)j Ff('p')s Fm(\).)88 b(Refers)44 b(to)h(the)g(pro)5 b(jection)43 b(used.)88 b(Curren)n(tly)-7 b(,)47 b(I'v)n(e)d(only)1255 4371 y(programmed)36 b(the)i(p)r(ersp)r (ectiv)n(e)f(and)h(the)g(parallel)f(pro)5 b(jections.)66 -b(The)38 b(default)1255 4471 y(is)27 b(the)h(p)r(ersp)r(ectiv)n(e)f +b(The)38 b(default)1255 4470 y(is)27 b(the)h(p)r(ersp)r(ectiv)n(e)f (pro)5 b(jection.)0 4620 y Fk(const)32 b(real)h Fi(factor)606 b Fm(Only)40 b(meaningful)g(if)h(the)f Fi(pr)l(oje)l(ctive)p 2502 4620 V 32 w(c)l(o)l(or)l(dinates)53 b Fm(are)39 b(b)r(eing)h(sho)n(wn)g(\()p Fi(c)l(o)l(or)l(ds)1255 -4720 y Fm(argumen)n(t)g Ff('p')s Fm(\))i(and)f(the)h(parallel)e(pro)5 +4719 y Fm(argumen)n(t)g Ff('p')s Fm(\))i(and)f(the)h(parallel)e(pro)5 b(jection)40 b(is)i(b)r(eing)f(used.)78 b(The)42 b(x)f(and)1255 -4820 y(y)33 b(v)-5 b(alues)34 b(in)g Fi(pr)l(oje)l(ctive)p -2035 4820 V 32 w(c)l(o)l(or)l(dinates)46 b Fm(are)33 +4819 y(y)33 b(v)-5 b(alues)34 b(in)g Fi(pr)l(oje)l(ctive)p +2035 4819 V 32 w(c)l(o)l(or)l(dinates)46 b Fm(are)33 b(m)n(ultiplied)i(b)n(y)e Fi(factor)14 b Fm(,)36 b(so)d(it)h(can)g(b)r -(e)1255 4919 y(used)40 b(to)g(magnify)g(or)g(shrink)f(the)i(pro)5 +(e)1255 4918 y(used)40 b(to)g(magnify)g(or)g(shrink)f(the)i(pro)5 b(jected)40 b(image.)74 b(The)40 b(default)h(is)f(1)g(\(no)1255 -5019 y(magni\014cation)26 b(or)h(shrinking\).)83 5168 +5018 y(magni\014cation)26 b(or)h(shrinking\).)83 5168 y([)p Fh(LDF)e(2002.10.26.)p Fm(])61 b(TO)27 b(DO:)h(Add)g(case)f Ff('a')k Fm(for)c Fi(c)l(o)l(or)l(ds)39 b Fm(for)27 b(sho)n(wing)g(all) g(of)h(the)g(sets)f(of)h(co)r(ordinates.)p eop end -%%Page: 113 113 -TeXDict begin 113 112 bop 0 83 a Fn(x)p Fm(431)140 b -Fl(3DLDFPR)n(G)2728 b(SHO)n(W)141 b Fm(113)p 0 205 1643 -4 v 1738 238 a Fk(Begin)31 b(Log)p 2257 205 V 83 378 -a Fm([)p Fh(LDF)25 b(2002.10.26.)p Fm(])57 b(!!)36 b(KLUDGE:)23 -b(In)g(the)h(text)g(ab)r(o)n(v)n(e,)f(I'v)n(e)g(had)g(to)g(t)n(yp)r -(eset)h(\\)p Fi(pr)l(oje)l(ctive)p 2971 378 26 4 v 32 -w(c)l(oordinates)p Fm(")g(using)f(\\)p Fj(\\it)p Fm(")0 -478 y(explicitly)28 b(in)g(a)f(couple)g(of)h(places,)f(in)g(order)g(to) -g(get)h(the)g(h)n(yphenation)f(to)g(w)n(ork.)83 578 y([)p -Fh(LDF)e(2002.11.12.)p Fm(])71 b(Added)38 b(\\)p Ff(\\relax)r -Fm(")f(after)g(the)h(argumen)n(ts)e(to)h(\\)p Ff(\\ARG)r -Fm(")g(in)h(the)g(T)2900 593 y(E)2946 578 y(X)g(co)r(de)f(ab)r(o)n(v)n -(e)f(in)i(order)e(to)0 677 y(suppress)27 b(a)g(space)f(at)h(the)h(b)r -(eginning)g(of)f(the)h(\014rst)f(line)h(of)f(the)h(follo)n(wing)e -(inden)n(ted)i(paragraph.)34 b(I)28 b(couldn't)f(\014gure)g(out)0 -777 y(a)g(w)n(a)n(y)g(of)g(suppressing)f(the)i(space)f(within)i(the)f -(de\014nition)g(of)f Ff(\\ARG)s Fm(.)83 876 y([)p Fh(LDF)e(2003.04.30.) -p Fm(])61 b(Changed,)27 b(so)g(that)h(a)f(newline)h(is)f(not)h(output)g -(follo)n(wing)f Fi(text)11 b Fm(.)p 0 968 1678 4 v 1773 -1001 a Fk(End)32 b(Log)p 2222 968 V 0 1126 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1225 y Fk(v)m(oid)39 -b Fi(show)14 b Fm(\()p Fk(string)40 b Fi(text)45 b Fm(=)33 +%%Page: 114 114 +TeXDict begin 114 113 bop 0 83 a Fm(114)140 b Fl(SHO)n(W)2728 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(431)p 0 204 1779 4 v 1874 +237 a Fk(Log)p 2122 204 V 83 378 a Fm([)p Fh(LDF)25 b(2002.10.26.)p +Fm(])57 b(!!)36 b(KLUDGE:)23 b(In)g(the)h(text)g(ab)r(o)n(v)n(e,)f(I'v) +n(e)g(had)g(to)g(t)n(yp)r(eset)h(\\)p Fi(pr)l(oje)l(ctive)p +2971 378 26 4 v 32 w(c)l(oordinates)p Fm(")g(using)f(\\)p +Fj(\\it)p Fm(")0 477 y(explicitly)28 b(in)g(a)f(couple)g(of)h(places,)f +(in)g(order)g(to)g(get)h(the)g(h)n(yphenation)f(to)g(w)n(ork.)83 +577 y([)p Fh(LDF)e(2002.11.12.)p Fm(])71 b(Added)38 b(\\)p +Ff(\\relax)r Fm(")f(after)g(the)h(argumen)n(ts)e(to)h(\\)p +Ff(\\ARG)r Fm(")g(in)h(the)g(T)2900 592 y(E)2946 577 +y(X)g(co)r(de)f(ab)r(o)n(v)n(e)f(in)i(order)e(to)0 677 +y(suppress)27 b(a)g(space)f(at)h(the)h(b)r(eginning)g(of)f(the)h +(\014rst)f(line)h(of)f(the)h(follo)n(wing)e(inden)n(ted)i(paragraph.)34 +b(I)28 b(couldn't)f(\014gure)g(out)0 776 y(a)g(w)n(a)n(y)g(of)g +(suppressing)f(the)i(space)f(within)i(the)f(de\014nition)g(of)f +Ff(\\ARG)s Fm(.)83 876 y([)p Fh(LDF)e(2003.04.30.)p Fm(])61 +b(Changed,)27 b(so)g(that)h(a)f(newline)h(is)f(not)h(output)g(follo)n +(wing)f Fi(text)11 b Fm(.)p 0 968 3900 4 v 0 1125 a Fn(h)j +Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 1224 y Fk(v)m(oid)39 b +Fi(show)14 b Fm(\()p Fk(string)40 b Fi(text)45 b Fm(=)33 b Ff("")t Fe(;)14 b Fk(c)m(har)40 b Fi(c)l(o)l(or)l(ds)46 b Fm(=)33 b Ff('w')s Fe(;)14 b Fk(const)39 b(b)s(o)s(ol)e -Fi(do)p 2522 1225 26 4 v 32 w(p)l(ersp)44 b Fm(=)33 b -Fi(true)10 b Fe(;)k Fk(const)39 b(b)s(o)s(ol)249 1325 -y Fi(do)p 338 1325 V 31 w(apply)g Fm(=)25 b Fi(true)10 +Fi(do)p 2522 1224 26 4 v 32 w(p)l(ersp)44 b Fm(=)33 b +Fi(true)10 b Fe(;)k Fk(const)39 b(b)s(o)s(ol)249 1324 +y Fi(do)p 338 1324 V 31 w(apply)g Fm(=)25 b Fi(true)10 b Fe(;)k Fk(F)-8 b(o)s(cus)33 b Fn(\003)p Fe(f)h Fm(=)25 b(0)o Fe(;)14 b Fk(const)34 b(unsigned)f(short)h Fi(pr)l(oj)42 b Fm(=)25 b Fk(Pro)5 b(jections)13 b Fm(::)c Ff(PERSP)r Fe(;)14 b Fk(const)34 b(real)249 1424 y Fi(factor)j Fm(=)23 -b(1\))28 b Fk(const)t Fm(;)0 1624 y Fk(432.)0 1748 y +b(1\))28 b Fk(const)t Fm(;)0 1623 y Fk(432.)0 1748 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1848 y Fk(v)m(oid)37 +Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1847 y Fk(v)m(oid)37 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(show)15 b Fm(\()p Fk(string)38 b Fi(text)11 b Fe(;)j Fk(c)m(har)38 b Fi(c)l(o)l(or)l(ds)12 -b Fe(;)i Fk(const)36 b(b)s(o)s(ol)g Fi(do)p 2313 1848 +b Fe(;)i Fk(const)36 b(b)s(o)s(ol)g Fi(do)p 2313 1847 V 31 w(p)l(ersp)10 b Fe(;)k Fk(const)37 b(b)s(o)s(ol)e -Fi(do)p 3134 1848 V 32 w(apply)13 b Fe(;)h Fk(F)-8 b(o)s(cus)415 +Fi(do)p 3134 1847 V 32 w(apply)13 b Fe(;)h Fk(F)-8 b(o)s(cus)415 1947 y Fn(\003)p Fe(f)8 b(;)14 b Fk(const)33 b(unsigned)e(short)h Fi(pr)l(oj)18 b Fe(;)c Fk(const)32 b(real)g Fi(factor)15 -b Fm(\))28 b Fk(const)83 2047 y Fn(f)166 2147 y Fk(b)s(o)s(ol)j +b Fm(\))28 b Fk(const)83 2046 y Fn(f)166 2146 y Fk(b)s(o)s(ol)j Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p Fe(=)166 2271 y Fk(if)41 b Fm(\()p Fi(text)35 b Fn(\021)22 b Ff("")t Fm(\))42 -b Fi(text)34 b Fm(=)22 b Ff("Point:")q Fm(;)166 2371 +b Fi(text)34 b Fm(=)22 b Ff("Point:")q Fm(;)166 2370 y Fi(c)l(out)35 b Fn(\034)23 b Fi(text)34 b Fn(\034)23 b Ff(")p Fj( )p Ff(")s Fm(;)166 2470 y Fi(c)l(o)l(or)l(ds)35 b Fm(=)23 b Fi(tolower)14 b Fm(\()p Fi(c)l(o)l(or)l(ds)e -Fm(\);)166 2570 y Fk(if)41 b Fm(\()p Fi(c)l(o)l(or)l(ds)35 +Fm(\);)166 2569 y Fk(if)41 b Fm(\()p Fi(c)l(o)l(or)l(ds)35 b Fn(\021)23 b Ff('w')s Fm(\))42 b(;)166 b Fe(=)p Fn(\003)41 -b Fm(Do)27 b(nothing.)51 b Fn(\003)p Fe(=)166 2670 y +b Fm(Do)27 b(nothing.)51 b Fn(\003)p Fe(=)166 2669 y Fk(else)31 b(if)41 b Fm(\()p Fi(c)l(o)l(or)l(ds)36 b Fn(\021)22 b Ff('p')s Fm(\))42 b Fi(c)l(out)35 b Fn(\034)23 b Ff("Projective)p Fj( )p Ff(coor)o(di)o(na)-6 b(tes.\\n")24 @@ -12153,61 +12193,61 @@ b(if)41 b Fm(\()p Fi(c)l(o)l(or)l(ds)36 b Fn(\021)22 b Ff('u')s Fm(\))42 b Fi(c)l(out)35 b Fn(\034)23 b Ff("User)p Fj( )p Ff(coordinate)o(s.)o(\\n)-6 b(")27 b Fn(\034)c -Fi(\015ush)10 b Fm(;)166 2869 y Fk(else)31 b(if)41 b +Fi(\015ush)10 b Fm(;)166 2868 y Fk(else)31 b(if)41 b Fm(\()p Fi(c)l(o)l(or)l(ds)36 b Fn(\021)22 b Ff('v')s Fm(\))42 b Fi(c)l(out)35 b Fn(\034)23 b Ff("View)p Fj( )p Ff(coordinate)o(s.)o(\\n)-6 b(")27 b Fn(\034)c Fi(\015ush)10 -b Fm(;)166 2969 y Fk(else)45 b Fn(f)249 3068 y Fi(c)l(err)d +b Fm(;)166 2968 y Fk(else)45 b Fn(f)249 3068 y Fi(c)l(err)d Fn(\034)30 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(|s)o(ho)o(w\(\))-7 b(|:)p Fj( )p Ff(")32 b Fn(\034)d Ff("Invalid)p Fj( )p Ff(charact)o(er)p Fj( )o Ff(f)-6 b(or)p Fj( )p Ff(coords)p -Fj( )p Ff(argume)o(nt)o(.\\)g(n")32 b Fn(\034)415 3168 +Fj( )p Ff(argume)o(nt)o(.\\)g(n")32 b Fn(\034)415 3167 y Ff("Showing)p Fj( )p Ff(world)p Fj( )p Ff(c)o(oor)o(d)-6 b(inates.\\n")23 b Fn(\034)g Fi(\015ush)11 b Fm(;)249 3267 y Fi(c)l(o)l(or)l(ds)35 b Fm(=)23 b Ff('w')s Fm(;)166 -3367 y Fn(g)166 3467 y Fk(if)41 b Fm(\()p Fn(\003)p Fi(this)35 +3366 y Fn(g)166 3466 y Fk(if)41 b Fm(\()p Fn(\003)p Fi(this)35 b Fn(\021)22 b Ff(INVALID_POINT)o Fm(\))42 b Fn(f)249 3566 y Fi(c)l(err)36 b Fn(\034)24 b Ff("Point)p Fj( )p Ff(is)p Fj( )p Ff(==)p Fj( )p Ff(IN)o(VAL)o(ID)-7 b(_POINT.\\nCan't)p Fj( )p Ff(sh)o(ow)o(.)h Fj( )p Ff(Returning.\\n")22 b -Fn(\034)h Fi(\015ush)10 b Fm(;)249 3666 y Fk(return)5 -b Fm(;)166 3766 y Fn(g)166 3865 y Fk(if)41 b Fm(\()p +Fn(\034)h Fi(\015ush)10 b Fm(;)249 3665 y Fk(return)5 +b Fm(;)166 3765 y Fn(g)166 3865 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(tr)l(ansform)10 b Fe(:)p Fi(show)15 b Fm(\()p Ff("Transform)p Fj( )p Ff(befor)o(e)p Fj( )o -Ff(ap)-6 b(ply_transform")n Fm(\);)166 3990 y Fk(v)h(alarra)m(y)8 +Ff(ap)-6 b(ply_transform")n Fm(\);)166 3989 y Fk(v)h(alarra)m(y)8 b Fn(h)p Fk(real)d Fn(i)28 b Fe(v)f Fm(=)22 b Fi(get)p -1025 3990 V 31 w(al)t(l)p 1144 3990 V 31 w(c)l(o)l(or)l(ds)12 -b Fm(\()p Fi(c)l(o)l(or)l(ds)g Fe(;)i Fi(do)p 1794 3990 -V 32 w(p)l(ersp)c Fe(;)k Fi(do)p 2144 3990 V 31 w(apply)g +1025 3989 V 31 w(al)t(l)p 1144 3989 V 31 w(c)l(o)l(or)l(ds)12 +b Fm(\()p Fi(c)l(o)l(or)l(ds)g Fe(;)i Fi(do)p 1794 3989 +V 32 w(p)l(ersp)c Fe(;)k Fi(do)p 2144 3989 V 31 w(apply)g Fe(;)g(f)8 b(;)14 b Fi(pr)l(oj)j Fe(;)d Fi(factor)h Fm(\);)166 4114 y Fi(c)l(out)35 b Fn(\034)23 b Ff("\(")j Fn(\034)d Fe(v)s Fm([0])g Fn(\034)g Ff(",)p Fj( )p Ff(")j Fn(\034)d Fe(v)s Fm([1])g Fn(\034)g Ff(",)p Fj( )p Ff(")j Fn(\034)d Fe(v)s Fm([2])g Fn(\034)g Ff("\)\\n")i Fn(\034)e Fi(\015ush)11 -b Fm(;)166 4214 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h -Fn(f)249 4314 y Fi(tr)l(ansform)11 b Fe(:)p Fi(show)j +b Fm(;)166 4213 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h +Fn(f)249 4313 y Fi(tr)l(ansform)11 b Fe(:)p Fi(show)j Fm(\()p Ff("Transform)p Fj( )p Ff(after)p Fj( )o Ff(app)-7 b(ly_transform")o Fm(\);)249 4413 y Fi(c)l(out)35 b Fn(\034)23 b Ff("on_free_store)p Fj( )p Ff(=)o(=)p Fj( )o Ff(")e Fn(\034)i Fi(on)p 1594 4413 V 31 w(fr)l(e)l(e)p 1753 4413 V 31 w(stor)l(e)34 b Fn(\034)23 b Ff("\\n")r Fm(;)166 -4513 y Fn(g)83 4612 y(g)0 4812 y Fk(433.)94 b(Sho)m(w)32 +4512 y Fn(g)83 4612 y(g)0 4811 y Fk(433.)94 b(Sho)m(w)32 b(transform.)0 4936 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -5036 y Fk(v)m(oid)33 b Fi(show)p 469 5036 V 31 w(tr)l(ansform)11 +5035 y Fk(v)m(oid)33 b Fi(show)p 469 5035 V 31 w(tr)l(ansform)11 b Fm(\()p Fk(string)33 b Fi(text)h Fm(=)23 b Ff("")t Fm(\);)p eop end -%%Page: 114 114 -TeXDict begin 114 113 bop 0 83 a Fm(114)140 b Fl(SHO)n(W)24 -b(TRANSF)n(ORM)2240 b(3DLDFPR)n(G)142 b Fn(x)p Fm(434)0 -263 y Fk(434.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 -b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -487 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(show)p -760 487 26 4 v 32 w(tr)l(ansform)j Fm(\()p Fk(string)33 -b Fi(text)11 b Fm(\))83 587 y Fn(f)166 686 y Fk(if)41 -b Fm(\()p Fi(text)35 b Fn(\021)22 b Ff("")t Fm(\))42 -b Fi(text)34 b Fm(=)22 b Ff("transform:")p Fm(;)166 786 -y Fi(c)l(out)35 b Fn(\034)23 b Fi(text)34 b Fn(\034)23 +%%Page: 115 115 +TeXDict begin 115 114 bop 0 83 a Fn(x)p Fm(434)140 b +Fl(3DLDFPR)n(G)2241 b(SHO)n(W)24 b(TRANSF)n(ORM)140 b +Fm(115)0 263 y Fk(434.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 +b Fm(::)8 b Fi(show)p 760 487 26 4 v 32 w(tr)l(ansform)j +Fm(\()p Fk(string)33 b Fi(text)11 b Fm(\))83 587 y Fn(f)166 +686 y Fk(if)41 b Fm(\()p Fi(text)35 b Fn(\021)22 b Ff("")t +Fm(\))42 b Fi(text)34 b Fm(=)22 b Ff("transform:")p Fm(;)166 +786 y Fi(c)l(out)35 b Fn(\034)23 b Fi(text)34 b Fn(\034)23 b Fi(end)t(l)14 b Fm(;)166 886 y Fi(tr)l(ansform)d Fe(:)p Fi(show)j Fm(\()g(\);)83 985 y Fn(g)0 1185 y Fk(435.)94 b(Outputting.)0 1384 y(436.)g(Output)39 b(op)s(erator.)95 @@ -12220,64 +12260,62 @@ b(co)r(de)f(using)g(this)h(function)g(m)n(ust)f(ensure)g(that)0 1583 y Fi(apply)p 192 1583 V 32 w(tr)l(ansform)11 b Fm(\()j(\))28 b(and)g Fi(pr)l(oje)l(ct)13 b Fm(\()h(\))28 b(are)e(called)i -Fi(\014rst)8 b Fm(!)p 0 1687 1643 4 v 1738 1720 a Fk(Begin)31 -b(Log)p 2257 1687 V 83 1860 a Fm([)p Fh(LDF)25 b(2002.09.16.)p +Fi(\014rst)8 b Fm(!)p 0 1686 1779 4 v 1874 1719 a Fk(Log)p +2122 1686 V 83 1860 a Fm([)p Fh(LDF)25 b(2002.09.16.)p Fm(])61 b(Remo)n(v)n(ed)27 b(calls)g(to)g Fi(apply)p 1576 1860 26 4 v 33 w(tr)l(ansform)10 b Fm(\()15 b(\))27 -b(and)h Fi(pr)l(oje)l(ct)13 b Fm(\()h(\).)p 0 1952 1678 -4 v 1773 1985 a Fk(End)32 b(Log)p 2222 1952 V 0 2109 -a Fn(h)14 b Fm(Declare)27 b(non-mem)n(b)r(er)g(functions)h(for)f -Fk(P)m(oin)m(ts)40 b Fl(436)15 b Fn(i)23 b(\021)83 2209 -y Fi(ostr)l(e)l(am)29 b Fm(&)18 b Fk(op)s(erator)5 b -Fn(\034)p Fm(\()p Fi(ostr)l(e)l(am)29 b Fm(&)18 b Fe(o)q(;)c -Fk(P)m(oin)m(t)32 b Fm(&)p Fe(p)p Fm(\);)0 2317 y Fl(See)24 -b(also)g(sections)g(490)h(and)f(511.)0 2425 y(This)f(co)r(de)i(is)e -(used)h(in)f(section)i(590.)0 2624 y Fk(437.)0 2749 y -Fn(h)14 b Fm(De\014ne)28 b(non-mem)n(b)r(er)f(functions)h(for)f -Fk(P)m(oin)m(ts)40 b Fl(437)15 b Fn(i)23 b(\021)83 2848 -y Fi(ostr)l(e)l(am)29 b Fm(&)18 b Fk(op)s(erator)5 b -Fn(\034)p Fm(\()p Fi(ostr)l(e)l(am)29 b Fm(&)18 b Fe(o)q(;)c -Fk(P)m(oin)m(t)32 b Fm(&)p Fe(p)p Fm(\))83 2948 y Fn(f)166 -3047 y Fe(o)23 b Fn(\034)g Ff("\(")k Fn(\034)c Fe(p)o(:)p -Fi(get)p 773 3047 26 4 v 31 w(x)14 b Fm(\()p Ff('p')s -Fe(;)g Fi(false)e Fe(;)i Fi(false)d Fm(\))24 b Fn(\034)f -Fk(P)m(oin)m(t)13 b Fm(::)c Fi(me)l(asur)l(ement)p 2368 -3047 V 29 w(units)34 b Fn(\034)23 b Ff(",)p Fj( )p Ff(")j -Fn(\034)d Fe(p)o(:)p Fi(get)p 3192 3047 V 31 w(y)12 b -Fm(\()p Ff('p')s Fe(;)i Fi(false)e Fe(;)332 3147 y Fi(false)g -Fm(\))23 b Fn(\034)g Fk(P)m(oin)m(t)14 b Fm(::)8 b Fi(me)l(asur)l -(ement)p 1435 3147 V 30 w(units)33 b Fn(\034)23 b Ff("\)")s -Fm(;)166 3247 y Fk(return)33 b Fe(o)p Fm(;)83 3346 y -Fn(g)0 3454 y Fl(See)24 b(also)g(sections)g(491)h(and)f(512.)0 -3562 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(589.)0 +b(and)h Fi(pr)l(oje)l(ct)13 b Fm(\()h(\).)p 0 1951 3900 +4 v 0 2109 a Fn(h)g Fm(Declare)27 b(non-mem)n(b)r(er)g(functions)h(for) +f Fk(P)m(oin)m(ts)40 b Fl(436)15 b Fn(i)23 b(\021)83 +2208 y Fi(ostr)l(e)l(am)29 b Fm(&)18 b Fk(op)s(erator)5 +b Fn(\034)p Fm(\()p Fi(ostr)l(e)l(am)29 b Fm(&)18 b Fe(o)q(;)c +Fk(P)m(oin)m(t)32 b Fm(&)p Fe(p)p Fm(\);)0 2316 y Fl(See)24 +b(also)g(section)h(490.)0 2424 y(This)e(co)r(de)i(is)e(used)h(in)f +(section)i(590.)0 2623 y Fk(437.)0 2748 y Fn(h)14 b Fm(De\014ne)28 +b(non-mem)n(b)r(er)f(functions)h(for)f Fk(P)m(oin)m(ts)40 +b Fl(437)15 b Fn(i)23 b(\021)83 2848 y Fi(ostr)l(e)l(am)29 +b Fm(&)18 b Fk(op)s(erator)5 b Fn(\034)p Fm(\()p Fi(ostr)l(e)l(am)29 +b Fm(&)18 b Fe(o)q(;)c Fk(P)m(oin)m(t)32 b Fm(&)p Fe(p)p +Fm(\))83 2947 y Fn(f)166 3047 y Fe(o)23 b Fn(\034)g Ff("\(")k +Fn(\034)c Fe(p)o(:)p Fi(get)p 773 3047 26 4 v 31 w(x)14 +b Fm(\()p Ff('p')s Fe(;)g Fi(false)e Fe(;)i Fi(false)d +Fm(\))24 b Fn(\034)f Fk(P)m(oin)m(t)13 b Fm(::)c Fi(me)l(asur)l(ement)p +2368 3047 V 29 w(units)34 b Fn(\034)23 b Ff(",)p Fj( )p +Ff(")j Fn(\034)d Fe(p)o(:)p Fi(get)p 3192 3047 V 31 w(y)12 +b Fm(\()p Ff('p')s Fe(;)i Fi(false)e Fe(;)332 3146 y +Fi(false)g Fm(\))23 b Fn(\034)g Fk(P)m(oin)m(t)14 b Fm(::)8 +b Fi(me)l(asur)l(ement)p 1435 3146 V 30 w(units)33 b +Fn(\034)23 b Ff("\)")s Fm(;)166 3246 y Fk(return)33 b +Fe(o)p Fm(;)83 3346 y Fn(g)0 3454 y Fl(See)24 b(also)g(section)h(491.)0 +3562 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i(589.)0 3761 y Fk(438.)94 b(Suppress)37 b(output.)95 b Fm([)p Fh(LDF)25 b(2002.09.18.)p Fm(])66 b(Added)33 b(this)f(function.)51 b(It's)33 b(needed)f(b)r(ecause)g(trying)g(to)g(erase)e(a)0 -3861 y Fk(Shap)s(e)i Fn(\003)c Fm(from)f Fi(elements)38 +3860 y Fk(Shap)s(e)i Fn(\003)c Fm(from)f Fi(elements)38 b Fm(in)28 b Fk(Picture)14 b Fm(::)8 b Fi(output)k Fm(\()i(\))28 -b(causes)e(a)h(memory)g(fault.)0 3986 y Fn(h)14 b Fm(Declare)27 +b(causes)e(a)h(memory)g(fault.)0 3985 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4085 y Fk(virtual)33 b(v)m(oid)f Fi(suppr)l(ess)p 907 4085 V 31 w(output)11 b Fm(\()j(\);)0 -4285 y Fk(439.)0 4409 y Fn(h)g Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +4284 y Fk(439.)0 4408 y Fn(h)g Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -4509 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(suppr)l(ess)p -887 4509 V 31 w(output)j Fm(\()k(\))83 4608 y Fn(f)166 -4708 y Fi(do)p 255 4708 V 31 w(output)35 b Fm(=)22 b -Fi(false)12 b Fm(;)83 4808 y Fn(g)0 5007 y Fk(440.)94 +4508 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(suppr)l(ess)p +887 4508 V 31 w(output)j Fm(\()k(\))83 4608 y Fn(f)166 +4707 y Fi(do)p 255 4707 V 31 w(output)35 b Fm(=)22 b +Fi(false)12 b Fm(;)83 4807 y Fn(g)0 5006 y Fk(440.)94 b(Unsuppress)33 b(output.)96 b Fm([)p Fh(LDF)25 b(2002.09.18.)p Fm(])62 b(Added)30 b(this)f(function.)43 b(It's)29 b(needed)g(b)r (ecause)g(trying)f(to)h(erase)0 5106 y(a)e Fk(Shap)s(e)33 b Fn(\003)27 b Fm(from)g Fi(elements)39 b Fm(in)27 b Fk(Picture)14 b Fm(::)8 b Fi(output)k Fm(\()i(\))28 b(causes)e(a)i -(memory)e(fault.)0 5231 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +(memory)e(fault.)0 5230 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -5331 y Fk(virtual)33 b(v)m(oid)f Fi(unsuppr)l(ess)p 999 -5331 V 30 w(output)12 b Fm(\()i(\);)p eop end -%%Page: 115 115 -TeXDict begin 115 114 bop 0 83 a Fn(x)p Fm(441)140 b -Fl(3DLDFPR)n(G)2139 b(UNSUPPRESS)24 b(OUTPUT)140 b Fm(115)0 -263 y Fk(441.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +5330 y Fk(virtual)33 b(v)m(oid)f Fi(unsuppr)l(ess)p 999 +5330 V 30 w(output)12 b Fm(\()i(\);)p eop end +%%Page: 116 116 +TeXDict begin 116 115 bop 0 83 a Fm(116)140 b Fl(UNSUPPRESS)23 +b(OUTPUT)2139 b(3DLDFPR)n(G)142 b Fn(x)p Fm(441)0 263 +y Fk(441.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(unsuppr)l(ess)p 979 487 26 4 v 30 w(output)k Fm(\()i(\))83 587 y Fn(f)166 @@ -12306,38 +12344,38 @@ Fk(Cub)s(oid)t Fm(,)h(but)0 1583 y(at)h(the)h(presen)n(t)f(time,)i(no)e (v)n(ersion)f(of)h Fi(extr)l(act)12 b Fm(\()i(\))28 b(returns)f(a)g Fk(v)m(ector)34 b Fm(with)28 b(more)e(than)i(one)f(p)r(oin)n(ter)h(to)f -Fk(Shap)s(e)5 b Fm(.)p 0 1687 1643 4 v 1738 1720 a Fk(Begin)31 -b(Log)p 2257 1687 V 83 1860 a Fm([)p Fh(LDF)25 b(2002.09.17.)p +Fk(Shap)s(e)5 b Fm(.)p 0 1686 1779 4 v 1874 1719 a Fk(Log)p +2122 1686 V 83 1860 a Fm([)p Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)29 b Fk(const)j(F)-8 b(o)s(cus)32 b Fm(&)p Fe(f)k Fm(argumen)n(t)27 b(and)g(error)f(handling)h(co)r(de.)37 b(No)n(w,)27 b(if)i(the)f Fk(P)m(oin)m(t)33 b Fm(cannot)0 -1960 y(b)r(e)45 b(pro)5 b(jected)44 b(on)n(to)g(the)h(pro)5 +1959 y(b)r(e)45 b(pro)5 b(jected)44 b(on)n(to)g(the)h(pro)5 b(jection)44 b(plane)h(using)f(the)h Fk(F)-8 b(o)s(cus)50 b Fe(f)8 b Fm(,)49 b(it)d(is)e(not)h(put)g(on)n(to)f(the)h -Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)50 b Fn(\003i)0 2060 +Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)50 b Fn(\003i)0 2059 y Fk(Picture)14 b Fm(::)8 b Fi(elements)j Fm(,)28 b(and)f(consequen)n (tly)g(nev)n(er)f(reac)n(hes)g Fk(Picture)14 b Fm(::)8 b Fi(output)k Fm(\()i(\))28 b(and)f Fk(P)m(oin)m(t)14 -b Fm(::)8 b Fi(output)j Fm(\()j(\).)p 0 2151 1678 4 v -1773 2184 a Fk(End)32 b(Log)p 2222 2151 V 0 2309 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +b Fm(::)8 b Fi(output)j Fm(\()j(\).)p 0 2151 3900 4 v +0 2308 a Fn(h)g Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2408 y Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)28 b Fi(extr)l(act)11 b Fm(\()p Fk(const)33 b(F)-8 b(o)s(cus)32 b Fm(&)p Fe(f)8 b(;)14 b Fk(const)33 b(unsigned)e(short)h Fi(pr)l(oj)18 b Fe(;)c Fk(real)32 b Fi(factor)14 b Fm(\);)p eop end -%%Page: 116 116 -TeXDict begin 116 115 bop 0 83 a Fm(116)140 b Fl(EXTRA)n(CT)2588 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(443)0 263 y Fk(443.)0 388 -y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(ector)6 -b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)28 b Fk(P)m(oin)m(t)14 -b Fm(::)8 b Fi(extr)l(act)j Fm(\()p Fk(const)33 b(F)-8 -b(o)s(cus)32 b Fm(&)p Fe(f)8 b(;)14 b Fk(const)33 b(unsigned)e(short)h -Fi(pr)l(oj)18 b Fe(;)c Fk(real)32 b Fi(factor)14 b Fm(\))83 -587 y Fn(f)166 686 y Fk(b)s(o)s(ol)31 b Ff(DEBUG)25 b -Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 -b Fn(\003)p Fe(=)166 786 y Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)34 +%%Page: 117 117 +TeXDict begin 117 116 bop 0 83 a Fn(x)p Fm(443)140 b +Fl(3DLDFPR)n(G)2589 b(EXTRA)n(CT)140 b Fm(117)0 263 y +Fk(443.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +487 y Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)28 +b Fk(P)m(oin)m(t)14 b Fm(::)8 b Fi(extr)l(act)j Fm(\()p +Fk(const)33 b(F)-8 b(o)s(cus)32 b Fm(&)p Fe(f)8 b(;)14 +b Fk(const)33 b(unsigned)e(short)h Fi(pr)l(oj)18 b Fe(;)c +Fk(real)32 b Fi(factor)14 b Fm(\))83 587 y Fn(f)166 686 +y Fk(b)s(o)s(ol)31 b Ff(DEBUG)25 b Fm(=)e Fi(false)12 +b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p +Fe(=)166 786 y Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)34 b Fn(\003i)29 b Fe(v)t Fm(;)166 b Fe(=)p Fn(\003)42 b Fm([)p Fh(LDF)25 b(2002.09.16.)p Fm(])63 b(Added)30 b(this)f(error)f(c) n(hec)n(king)g(co)r(de.)41 b(Chec)n(k)29 b Fn(\003)p @@ -12399,9 +12437,9 @@ 3850 y Fk(virtual)33 b(real)f Fi(get)p 692 3850 V 31 w(minimum)p 1069 3850 V 30 w(z)15 b Fm(\()f(\))28 b Fk(const)t Fm(;)p eop end -%%Page: 117 117 -TeXDict begin 117 116 bop 0 83 a Fn(x)p Fm(446)140 b -Fl(3DLDFPR)n(G)2350 b(GET)24 b(MINIMUM)f(Z)141 b Fm(117)0 +%%Page: 118 118 +TeXDict begin 118 117 bop 0 83 a Fm(118)140 b Fl(GET)24 +b(MINIMUM)e(Z)2351 b(3DLDFPR)n(G)142 b Fn(x)p Fm(446)0 263 y Fk(446.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(real)32 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(get)p @@ -12476,22 +12514,21 @@ Fi(apply)p 3256 4422 V 32 w(tr)l(ansform)11 b Fm(\()j(\))42 b(and)0 4522 y Fi(pr)l(oje)l(ct)13 b Fm(\()h(\))28 b(are)f(in)n(v)n(ok) n(ed)f(b)r(efore)h Fi(set)p 1154 4522 V 30 w(extr)l(emes)11 -b Fm(\()j(\)!)p 0 4626 1643 4 v 1738 4659 a Fk(Begin)31 -b(Log)p 2257 4626 V 83 4799 a Fm([)p Fh(LDF)25 b(2002.09.17.)p -Fm(])61 b(Added)28 b(this)g(function.)83 4899 y([)p Fh(LDF)d +b Fm(\()j(\)!)p 0 4625 1779 4 v 1874 4658 a Fk(Log)p +2122 4625 V 83 4799 a Fm([)p Fh(LDF)25 b(2002.09.17.)p +Fm(])61 b(Added)28 b(this)g(function.)83 4898 y([)p Fh(LDF)d (2002.09.18.)p Fm(])61 b(Changed)27 b(the)h(name)f(of)h(this)g -(function)g(from)f Fi(set)p 2332 4899 26 4 v 31 w(minimum)p -2709 4899 V 30 w(z)14 b Fm(\()h(\))27 b(to)h Fi(set)p -3095 4899 V 30 w(extr)l(emes)11 b Fm(\()j(\).)p 0 4991 -1678 4 v 1773 5023 a Fk(End)32 b(Log)p 2222 4991 V 0 -5148 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b -Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -5248 y Fk(virtual)33 b(b)s(o)s(ol)e Fi(set)p 713 5248 +(function)g(from)f Fi(set)p 2332 4898 26 4 v 31 w(minimum)p +2709 4898 V 30 w(z)14 b Fm(\()h(\))27 b(to)h Fi(set)p +3095 4898 V 30 w(extr)l(emes)11 b Fm(\()j(\).)p 0 4990 +3900 4 v 0 5147 a Fn(h)g Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +5247 y Fk(virtual)33 b(b)s(o)s(ol)e Fi(set)p 713 5247 26 4 v 30 w(extr)l(emes)10 b Fm(\()k(\);)p eop end -%%Page: 118 118 -TeXDict begin 118 117 bop 0 83 a Fm(118)140 b Fl(SET)23 -b(EXTREMES)2380 b(3DLDFPR)n(G)142 b Fn(x)p Fm(452)0 263 -y Fk(452.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +%%Page: 119 119 +TeXDict begin 119 118 bop 0 83 a Fn(x)p Fm(452)140 b +Fl(3DLDFPR)n(G)2380 b(SET)24 b(EXTREMES)140 b Fm(119)0 +263 y Fk(452.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)31 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(set)p 692 487 26 4 v 31 w(extr)l(emes)i Fm(\()k(\))83 587 y @@ -12597,175 +12634,170 @@ b Fm(is)25 b(not)g(sorted,)g(and)g(the)g Fk(Shap)s(es)k Fm(are)c(output)83 4198 y(in)j(the)g(order)e(in)i(whic)n(h)f(they)h(w)n (ere)f(dra)n(wn)g(or)f(\014lled.)p eop end -%%Page: 119 119 -TeXDict begin 119 118 bop 0 83 a Fn(x)p Fm(454)140 b -Fl(3DLDFPR)n(G)2139 b(COMP)-6 b(ARE)23 b(MINIMUM)g(Z)141 -b Fm(119)0 263 y Fk(454.)94 b(Compare)32 b(minim)m(um)e(z.)p -0 362 1643 4 v 1738 395 a(Begin)h(Log)p 2257 362 V 83 -536 a Fm([)p Fh(LDF)25 b(2003.05.16.)p Fm(])61 b(Added)28 -b(this)g Fk(class)5 b Fm(.)p 0 628 1678 4 v 1773 660 -a Fk(End)32 b(Log)p 2222 628 V 0 785 a Fn(h)14 b Fm(De\014ne)28 -b(comparison)e(classes)34 b Fl(454)15 b Fn(i)23 b(\021)83 -884 y Fk(class)32 b(Compare)p 689 884 29 5 v 40 w(minim)m(um)p -1126 884 V 38 w(z)h Fn(f)83 984 y Fk(public)t Fm(:)42 -b Fk(in)m(t)32 b(op)s(erator)5 b Fm(\()14 b(\)\()p Fk(const)33 -b(Shap)s(e)g Fn(\003)o Fi(s1)16 b Fe(;)e Fk(const)33 -b(Shap)s(e)f Fn(\003)p Fi(s2)15 b Fm(\))28 b Fk(const)166 -1084 y Fn(f)249 1183 y Fk(return)33 b Fi(s1)622 1208 -y Fe(~)672 1183 y Fi(get)p 781 1183 26 4 v 31 w(minimum)p -1158 1183 V 30 w(z)15 b Fm(\()f(\))23 b Fe(>)g Fi(s2)1496 -1208 y Fe(~)1546 1183 y Fi(get)p 1655 1183 V 30 w(minimum)p -2031 1183 V 31 w(z)14 b Fm(\()g(\);)166 1283 y Fn(g)83 -1382 y(g)p Fm(;)0 1490 y Fl(See)24 b(also)g(sections)g(455)h(and)f -(456.)0 1598 y(This)f(co)r(de)i(is)e(cited)h(in)g(section)g(552.)0 +%%Page: 120 120 +TeXDict begin 120 119 bop 0 83 a Fm(120)140 b Fl(COMP)-6 +b(ARE)23 b(MINIMUM)f(Z)2140 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(454)0 263 y Fk(454.)94 b(Compare)32 b(minim)m(um)e(z.)p +0 362 1779 4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm([)p +Fh(LDF)25 b(2003.05.16.)p Fm(])61 b(Added)28 b(this)g +Fk(class)5 b Fm(.)p 0 627 3900 4 v 0 784 a Fn(h)14 b +Fm(De\014ne)28 b(comparison)e(classes)34 b Fl(454)15 +b Fn(i)23 b(\021)83 884 y Fk(class)32 b(Compare)p 689 +884 29 5 v 40 w(minim)m(um)p 1126 884 V 38 w(z)h Fn(f)83 +983 y Fk(public)t Fm(:)42 b Fk(in)m(t)32 b(op)s(erator)5 +b Fm(\()14 b(\)\()p Fk(const)33 b(Shap)s(e)g Fn(\003)o +Fi(s1)16 b Fe(;)e Fk(const)33 b(Shap)s(e)f Fn(\003)p +Fi(s2)15 b Fm(\))28 b Fk(const)166 1083 y Fn(f)249 1182 +y Fk(return)33 b Fi(s1)622 1207 y Fe(~)672 1182 y Fi(get)p +781 1182 26 4 v 31 w(minimum)p 1158 1182 V 30 w(z)15 +b Fm(\()f(\))23 b Fe(>)g Fi(s2)1496 1207 y Fe(~)1546 +1182 y Fi(get)p 1655 1182 V 30 w(minimum)p 2031 1182 +V 31 w(z)14 b Fm(\()g(\);)166 1282 y Fn(g)83 1382 y(g)p +Fm(;)0 1490 y Fl(See)24 b(also)g(sections)g(455)h(and)f(456.)0 +1598 y(This)f(co)r(de)i(is)e(cited)h(in)g(section)g(552.)0 1706 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(589)f(and)g(590.)0 1905 y Fk(455.)94 b(Compare)32 b(maxim)m(um)f(z.)p 0 -2005 1643 4 v 1738 2037 a(Begin)g(Log)p 2257 2005 V 83 -2178 a Fm([)p Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 -b(this)g Fk(class)5 b Fm(.)83 2278 y([)p Fh(LDF)25 b(2002.09.21.)p +2003 1779 4 v 1874 2036 a(Log)p 2122 2003 V 83 2177 a +Fm([)p Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 b(this)g +Fk(class)5 b Fm(.)83 2276 y([)p Fh(LDF)25 b(2002.09.21.)p Fm(])58 b(Changed)23 b(from)h(\\minim)n(um)h(z")f(to)g(\\maxim)n(um)g (z".)35 b(This)24 b(w)n(orks)f(for)g(the)i(more)f(common)f(cases.)p -0 2370 1678 4 v 1773 2402 a Fk(End)32 b(Log)p 2222 2370 -V 0 2527 a Fn(h)14 b Fm(De\014ne)28 b(comparison)e(classes)34 -b Fl(454)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2626 y Fk(class)32 -b(Compare)p 689 2626 29 5 v 40 w(maxim)m(um)p 1142 2626 -V 40 w(z)g Fn(f)83 2726 y Fk(public)t Fm(:)42 b Fk(in)m(t)32 -b(op)s(erator)5 b Fm(\()14 b(\)\()p Fk(const)33 b(Shap)s(e)g -Fn(\003)o Fi(s1)16 b Fe(;)e Fk(const)33 b(Shap)s(e)f -Fn(\003)p Fi(s2)15 b Fm(\))28 b Fk(const)166 2826 y Fn(f)249 -2925 y Fk(return)33 b Fi(s1)622 2950 y Fe(~)672 2925 -y Fi(get)p 781 2925 26 4 v 31 w(maximum)p 1167 2925 V -30 w(z)14 b Fm(\()g(\))24 b Fe(>)e Fi(s2)1505 2950 y -Fe(~)1555 2925 y Fi(get)p 1664 2925 V 30 w(maximum)p -2049 2925 V 30 w(z)15 b Fm(\()f(\);)166 3025 y Fn(g)83 -3125 y(g)p Fm(;)p eop end -%%Page: 120 120 -TeXDict begin 120 119 bop 0 83 a Fm(120)140 b Fl(COMP)-6 -b(ARE)23 b(MEAN)f(Z)2272 b(3DLDFPR)n(G)142 b Fn(x)p Fm(456)0 -263 y Fk(456.)94 b(Compare)32 b(mean)f(z.)p 0 362 1643 -4 v 1738 395 a(Begin)g(Log)p 2257 362 V 83 536 a Fm([)p -Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 b(this)g -Fk(class)5 b Fm(.)p 0 628 1678 4 v 1773 660 a Fk(End)32 -b(Log)p 2222 628 V 0 785 a Fn(h)14 b Fm(De\014ne)28 b(comparison)e +0 2368 3900 4 v 0 2525 a Fn(h)14 b Fm(De\014ne)28 b(comparison)e (classes)34 b Fl(454)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -884 y Fk(class)32 b(Compare)p 689 884 29 5 v 40 w(mean)p -952 884 V 40 w(z)h Fn(f)83 984 y Fk(public)t Fm(:)42 +2625 y Fk(class)32 b(Compare)p 689 2625 29 5 v 40 w(maxim)m(um)p +1142 2625 V 40 w(z)g Fn(f)83 2725 y Fk(public)t Fm(:)42 b Fk(in)m(t)32 b(op)s(erator)5 b Fm(\()14 b(\)\()p Fk(const)33 b(Shap)s(e)g Fn(\003)o Fi(s1)16 b Fe(;)e Fk(const)33 b(Shap)s(e)f Fn(\003)p Fi(s2)15 b Fm(\))28 b Fk(const)166 -1084 y Fn(f)249 1183 y Fk(return)55 b Fm(\(\(\()p Fi(s1)741 -1208 y Fe(~)791 1183 y Fi(get)p 900 1183 26 4 v 30 w(minimum)p -1276 1183 V 31 w(z)14 b Fm(\()g(\))33 b(+)g Fi(s1)1634 -1208 y Fe(~)1684 1183 y Fi(get)p 1793 1183 V 30 w(maximum)p -2178 1183 V 31 w(z)14 b Fm(\()g(\)\))p Fe(=)p Fm(2\))59 -b Fe(>)415 1283 y Fm(\(\()p Fi(s2)555 1308 y Fe(~)605 -1283 y Fi(get)p 714 1283 V 30 w(minimum)p 1090 1283 V -31 w(z)14 b Fm(\()g(\))19 b(+)f Fi(s2)1419 1308 y Fe(~)1469 -1283 y Fi(get)p 1578 1283 V 31 w(maximum)p 1964 1283 -V 30 w(z)c Fm(\()g(\)\))p Fe(=)p Fm(2\)\);)166 1382 y -Fn(g)83 1482 y(g)p Fm(;)0 1681 y Fk(457.)94 b(Output.)h -Fm([)p Fh(LDF)26 b(2002.10.26.)p Fm(])75 b Fi(output)12 -b Fm(\()i(\))43 b(is)f(a)g(pure)h Fk(virtual)48 b Fm(function)43 -b(in)g Fk(Shap)s(e)t Fm(.)82 b(After)43 b(the)g Fk(Shap)s(e)0 -1781 y Fm(p)r(oin)n(ters)34 b(on)f(the)i Fk(v)m(ector)40 -b(Picture)14 b Fm(::)8 b Fi(shap)l(es)46 b Fm(ha)n(v)n(e)33 -b(b)r(een)i(extracted,)g Fi(output)11 b Fm(\()k(\))34 -b(is)g(called)g(for)g(eac)n(h)f(of)h(the)h Fk(Shap)s(es)0 -1881 y Fm(they)27 b(p)r(oin)n(t)g(to)f(\(except)h(for)f(the)h(ones,)f -(if)h(an)n(y)-7 b(,)27 b(where)f Fi(pr)l(oje)l(ct)13 +2824 y Fn(f)249 2924 y Fk(return)33 b Fi(s1)622 2949 +y Fe(~)672 2924 y Fi(get)p 781 2924 26 4 v 31 w(maximum)p +1167 2924 V 30 w(z)14 b Fm(\()g(\))24 b Fe(>)e Fi(s2)1505 +2949 y Fe(~)1555 2924 y Fi(get)p 1664 2924 V 30 w(maximum)p +2049 2924 V 30 w(z)15 b Fm(\()f(\);)166 3024 y Fn(g)83 +3123 y(g)p Fm(;)p eop end +%%Page: 121 121 +TeXDict begin 121 120 bop 0 83 a Fn(x)p Fm(456)140 b +Fl(3DLDFPR)n(G)2271 b(COMP)-6 b(ARE)23 b(MEAN)g(Z)141 +b Fm(121)0 263 y Fk(456.)94 b(Compare)32 b(mean)f(z.)p +0 362 1779 4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm([)p +Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 b(this)g +Fk(class)5 b Fm(.)p 0 627 3900 4 v 0 784 a Fn(h)14 b +Fm(De\014ne)28 b(comparison)e(classes)34 b Fl(454)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 884 y Fk(class)32 b(Compare)p +689 884 29 5 v 40 w(mean)p 952 884 V 40 w(z)h Fn(f)83 +983 y Fk(public)t Fm(:)42 b Fk(in)m(t)32 b(op)s(erator)5 +b Fm(\()14 b(\)\()p Fk(const)33 b(Shap)s(e)g Fn(\003)o +Fi(s1)16 b Fe(;)e Fk(const)33 b(Shap)s(e)f Fn(\003)p +Fi(s2)15 b Fm(\))28 b Fk(const)166 1083 y Fn(f)249 1182 +y Fk(return)55 b Fm(\(\(\()p Fi(s1)741 1207 y Fe(~)791 +1182 y Fi(get)p 900 1182 26 4 v 30 w(minimum)p 1276 1182 +V 31 w(z)14 b Fm(\()g(\))33 b(+)g Fi(s1)1634 1207 y Fe(~)1684 +1182 y Fi(get)p 1793 1182 V 30 w(maximum)p 2178 1182 +V 31 w(z)14 b Fm(\()g(\)\))p Fe(=)p Fm(2\))59 b Fe(>)415 +1282 y Fm(\(\()p Fi(s2)555 1307 y Fe(~)605 1282 y Fi(get)p +714 1282 V 30 w(minimum)p 1090 1282 V 31 w(z)14 b Fm(\()g(\))19 +b(+)f Fi(s2)1419 1307 y Fe(~)1469 1282 y Fi(get)p 1578 +1282 V 31 w(maximum)p 1964 1282 V 30 w(z)c Fm(\()g(\)\))p +Fe(=)p Fm(2\)\);)166 1382 y Fn(g)83 1481 y(g)p Fm(;)0 +1681 y Fk(457.)94 b(Output.)h Fm([)p Fh(LDF)26 b(2002.10.26.)p +Fm(])75 b Fi(output)12 b Fm(\()i(\))43 b(is)f(a)g(pure)h +Fk(virtual)48 b Fm(function)43 b(in)g Fk(Shap)s(e)t Fm(.)82 +b(After)43 b(the)g Fk(Shap)s(e)0 1780 y Fm(p)r(oin)n(ters)34 +b(on)f(the)i Fk(v)m(ector)40 b(Picture)14 b Fm(::)8 b +Fi(shap)l(es)46 b Fm(ha)n(v)n(e)33 b(b)r(een)i(extracted,)g +Fi(output)11 b Fm(\()k(\))34 b(is)g(called)g(for)g(eac)n(h)f(of)h(the)h +Fk(Shap)s(es)0 1880 y Fm(they)27 b(p)r(oin)n(t)g(to)f(\(except)h(for)f +(the)h(ones,)f(if)h(an)n(y)-7 b(,)27 b(where)f Fi(pr)l(oje)l(ct)13 b Fm(\()h(\))27 b(failed\).)37 b Fi(output)11 b Fm(\()j(\))27 b(writes)f(the)h(MET)-7 b(APOST)26 b(co)r(de)g(to)0 1980 y Fi(out)p 120 1980 V 30 w(str)l(e)l(am)10 b Fm(.)p 0 -2056 1643 4 v 1738 2089 a Fk(Begin)31 b(Log)p 2257 2056 -V 83 2229 a Fm([)p Fh(LDF)25 b(2002.09.16.)p Fm(])62 -b(Added)29 b Fk(F)-8 b(o)s(cus)32 b Fm(argumen)n(t)c -Fe(f)8 b Fm(.)39 b(I)29 b(w)n(an)n(t)e(the)i(default)g(to)f(b)r(e)g -Fi(default)p 2905 2229 26 4 v 32 w(fo)l(cus)11 b Fm(,)29 -b(but)g(I)f(can't)g(put)h(it)g(in)0 2329 y(the)c(declaration,)g(as)f(I) -h(normally)f(do,)h(b)r(ecause)g Fi(default)p 1778 2329 -V 31 w(fo)l(cus)37 b Fm(hasn't)25 b(b)r(een)g(de\014ned)h(y)n(et.)35 -b(I'v)n(e)25 b(put)g(it)h(in)f(the)h(de\014nition,)0 -2429 y(and)k(it)g(seems)f(to)h(w)n(ork.)41 b(Sometimes)30 -b(it)g(do)r(esn't,)h(and)e(I)h(don't)g(kno)n(w)f(wh)n(y)-7 -b(,)30 b(nor)f(do)g(I)h(kno)n(w)f(wh)n(y)g(it)h(w)n(orks)e(this)j -(time.)0 2528 y(If)g(I)g(run)g(in)n(to)f(problems,)h(this)g(ma)n(y)f(b) -r(e)i(the)f(reason.)45 b(If)31 b(necessary)-7 b(,)30 -b(I)h(can)f(mak)n(e)g(a)g(dumm)n(y)h(v)n(ersion)f(of)g(this)i(function) -0 2628 y(with)c(no)f(argumen)n(t)g(that)h(calls)f Fi(this)35 -b Fm(v)n(ersion)26 b(with)i Fi(default)p 1922 2628 V -31 w(fo)l(cus)39 b Fm(as)27 b(its)h(argumen)n(t.)83 2727 -y([)p Fh(LDF)d(2002.09.17.)p Fm(])62 b(Changed)28 b(the)g(argumen)n(t)g -Fe(f)37 b Fm(from)28 b Fk(F)-8 b(o)s(cus)32 b Fm(to)d -Fk(const)k(F)-8 b(o)s(cus)33 b Fm(&)o(.)39 b(Remo)n(v)n(ed)28 -b(the)g(in)n(v)n(o)r(cations)f(of)0 2827 y Fi(apply)p -192 2827 V 32 w(tr)l(ansform)11 b Fm(\()j(\))28 b(and)g -Fi(pr)l(oje)l(ct)13 b Fm(\()h(\))28 b(and)f(error)f(handling)h(co)r(de) -h(to)f Fi(extr)l(act)11 b Fm(\()j(\).)83 2927 y([)p Fh(LDF)25 -b(2002.10.23.)p Fm(])81 b(Remo)n(v)n(ed)46 b(the)i(argumen)n(t)e -Fe(f)9 b Fm(.)96 b(Since)47 b Fi(extr)l(act)12 b Fm(\()i(\))47 -b(tak)n(es)g(care)f(of)h(applying)g Fi(pr)l(oje)l(ct)13 +2055 1779 4 v 1874 2088 a Fk(Log)p 2122 2055 V 83 2229 +a Fm([)p Fh(LDF)25 b(2002.09.16.)p Fm(])62 b(Added)29 +b Fk(F)-8 b(o)s(cus)32 b Fm(argumen)n(t)c Fe(f)8 b Fm(.)39 +b(I)29 b(w)n(an)n(t)e(the)i(default)g(to)f(b)r(e)g Fi(default)p +2905 2229 26 4 v 32 w(fo)l(cus)11 b Fm(,)29 b(but)g(I)f(can't)g(put)h +(it)g(in)0 2328 y(the)c(declaration,)g(as)f(I)h(normally)f(do,)h(b)r +(ecause)g Fi(default)p 1778 2328 V 31 w(fo)l(cus)37 b +Fm(hasn't)25 b(b)r(een)g(de\014ned)h(y)n(et.)35 b(I'v)n(e)25 +b(put)g(it)h(in)f(the)h(de\014nition,)0 2428 y(and)k(it)g(seems)f(to)h +(w)n(ork.)41 b(Sometimes)30 b(it)g(do)r(esn't,)h(and)e(I)h(don't)g(kno) +n(w)f(wh)n(y)-7 b(,)30 b(nor)f(do)g(I)h(kno)n(w)f(wh)n(y)g(it)h(w)n +(orks)e(this)j(time.)0 2527 y(If)g(I)g(run)g(in)n(to)f(problems,)h +(this)g(ma)n(y)f(b)r(e)i(the)f(reason.)45 b(If)31 b(necessary)-7 +b(,)30 b(I)h(can)f(mak)n(e)g(a)g(dumm)n(y)h(v)n(ersion)f(of)g(this)i +(function)0 2627 y(with)c(no)f(argumen)n(t)g(that)h(calls)f +Fi(this)35 b Fm(v)n(ersion)26 b(with)i Fi(default)p 1922 +2627 V 31 w(fo)l(cus)39 b Fm(as)27 b(its)h(argumen)n(t.)83 +2727 y([)p Fh(LDF)d(2002.09.17.)p Fm(])62 b(Changed)28 +b(the)g(argumen)n(t)g Fe(f)37 b Fm(from)28 b Fk(F)-8 +b(o)s(cus)32 b Fm(to)d Fk(const)k(F)-8 b(o)s(cus)33 b +Fm(&)o(.)39 b(Remo)n(v)n(ed)28 b(the)g(in)n(v)n(o)r(cations)f(of)0 +2826 y Fi(apply)p 192 2826 V 32 w(tr)l(ansform)11 b Fm(\()j(\))28 +b(and)g Fi(pr)l(oje)l(ct)13 b Fm(\()h(\))28 b(and)f(error)f(handling)h +(co)r(de)h(to)f Fi(extr)l(act)11 b Fm(\()j(\).)83 2926 +y([)p Fh(LDF)25 b(2002.10.23.)p Fm(])81 b(Remo)n(v)n(ed)46 +b(the)i(argumen)n(t)e Fe(f)9 b Fm(.)96 b(Since)47 b Fi(extr)l(act)12 +b Fm(\()i(\))47 b(tak)n(es)g(care)f(of)h(applying)g Fi(pr)l(oje)l(ct)13 b Fm(\()h(\),)53 b(the)0 3026 y Fi(pr)l(oje)l(ctive)p 346 3026 V 32 w(c)l(o)l(or)l(dinates)d Fm(are)36 b(already)g(set,)k(so) d(all)g Fi(output)11 b Fm(\()j(\))38 b(needs)g(to)f(do)g(is)g(write)h (them)g(to)f Fi(out)p 3276 3026 V 30 w(str)l(e)l(am)48 -b Fm(with)38 b(the)0 3126 y(prop)r(er)27 b(MET)-7 b(APOST)26 -b(instructions.)p 0 3218 1678 4 v 1773 3250 a Fk(End)32 -b(Log)p 2222 3218 V 0 3375 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 3475 y Fk(v)m(oid)33 b Fi(output)11 -b Fm(\()j(\);)p eop end -%%Page: 121 121 -TeXDict begin 121 120 bop 0 83 a Fn(x)p Fm(458)140 b -Fl(3DLDFPR)n(G)2635 b(OUTPUT)140 b Fm(121)0 263 y Fk(458.)0 -388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b -Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -487 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(output)k -Fm(\()i(\))83 587 y Fn(f)166 686 y Fk(b)s(o)s(ol)31 b -Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p -Fn(\003)40 b Fi(true)52 b Fn(\003)p Fe(=)166 811 y Fk(if)41 -b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 -b Ff("Entering)p Fj( )p Ff(Point::)o(out)-7 b(put\(\).\\n")24 -b Fn(\034)f Fi(\015ush)10 b Fm(;)166 911 y Fk(if)41 b -Fm(\()p Fi(do)p 384 911 26 4 v 32 w(output)34 b Fn(\021)23 -b Fi(false)12 b Fm(\))41 b Fn(f)249 1010 y Fk(if)g Fm(\()p -Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("In)p -Fj( )p Ff(Point::output)o(\(\):)-7 b Fj( )p Ff(do_output)p -Fj( )p Ff(==)p Fj( )p Ff(fal)o(se)o(.)h Fj( )p Ff(Returning.\\n")21 -b Fn(\034)j Fi(\015ush)10 b Fm(;)249 1110 y Fk(return)5 -b Fm(;)166 1209 y Fn(g)166 1309 y Fk(if)41 b Fm(\()p -Fi(dr)l(awdot)p 582 1309 V 32 w(value)34 b Fn(\021)23 -b Ff(DRAWDOT)r Fm(\))41 b Fi(out)p 1418 1309 V 30 w(str)l(e)l(am)34 -b Fn(\034)23 b Ff("drawdot)p Fj( )p Ff(")p Fm(;)166 1409 -y Fk(else)31 b(if)41 b Fm(\()p Fi(dr)l(awdot)p 766 1409 -V 32 w(value)35 b Fn(\021)22 b Ff(UNDRAWDOT)q Fm(\))42 -b Fi(out)p 1690 1409 V 30 w(str)l(e)l(am)33 b Fn(\034)23 -b Ff("drawdot)p Fj( )p Ff(")p Fm(;)166 1508 y Fk(else)170 -b Fe(=)p Fn(\003)40 b Fm(DRA)-9 b(WDOT)42 b Fn(\003)p -Fe(=)166 1608 y Fn(f)249 1708 y Fi(c)l(err)62 b Fn(\034)49 -b Ff("WARNING!)p Fj( )p Ff(Inval)o(id)p Fj( )o Ff(|d)-7 -b(rawdot_value|:)p Fj( )p Ff(")47 b Fn(\034)h Fi(dr)l(awdot)p -2625 1708 V 32 w(value)60 b Fn(\034)415 1807 y Ff(".)p -Fj( )p Ff(Using)p Fj( )p Ff(\\"drawd)o(ot\\)o(")-6 b(\\n")26 -b Fn(\034)d Fi(\015ush)10 b Fm(;)0 1907 y(#)p Fk(if)41 -b Fm(0)166 b Fe(=)p Fn(\003)40 b Fm(!!)d(De\014ne)29 -b(a)e Fk(class)32 b Fm(for)27 b(information)g(on)g(the)h(run)g(state.) -50 b Fn(\003)p Fe(=)249 2006 y Fk(if)41 b Fm(\()p Fn(:)p -Fi(R)n(un)p 589 2006 V 30 w(State)18 b Fm(::)9 b Fi(non)p -1011 2006 V 30 w(stop)h Fm(\))42 b Fi(getchar)14 b Fm(\()g(\);)0 -2106 y(#)p Fk(endif)249 2206 y Fi(out)p 369 2206 V 30 -w(str)l(e)l(am)33 b Fn(\034)24 b Ff("drawdot)p Fj( )p -Ff(")p Fm(;)166 2305 y Fn(g)166 2405 y Fi(out)p 286 2405 -V 30 w(str)l(e)l(am)52 b Fn(\034)42 b Ff("\(")j Fn(\034)c -Fi(pr)l(oje)l(ctive)p 1372 2405 V 33 w(c)l(o)l(or)l(dinates)12 -b Fm([0)o(])42 b Fn(\034)g Fi(me)l(asur)l(ement)p 2545 -2405 V 29 w(units)52 b Fn(\034)42 b Ff(",)p Fj( )p Ff(")j -Fn(\034)332 2505 y Fi(pr)l(oje)l(ctive)p 678 2505 V 32 -w(c)l(o)l(or)l(dinates)12 b Fm([1])23 b Fn(\034)g Fi(me)l(asur)l(ement) -p 1813 2505 V 30 w(units)33 b Fn(\034)23 b Ff("\)")s -Fm(;)166 2604 y Fk(if)41 b Fm(\()p Fi(dr)l(awdot)p 582 -2604 V 32 w(c)l(olor)d Fn(6)p Fm(=)22 b Fk(Colors)12 -b Fm(::)d Fi(default)p 1490 2604 V 31 w(c)l(olor)14 b -Fm(\))42 b Fi(out)p 1898 2604 V 30 w(str)l(e)l(am)33 +b Fm(with)38 b(the)0 3125 y(prop)r(er)27 b(MET)-7 b(APOST)26 +b(instructions.)p 0 3217 3900 4 v 0 3374 a Fn(h)14 b +Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3474 y Fk(v)m(oid)33 b +Fi(output)11 b Fm(\()j(\);)p eop end +%%Page: 122 122 +TeXDict begin 122 121 bop 0 83 a Fm(122)140 b Fl(OUTPUT)2634 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(458)0 263 y Fk(458.)0 388 +y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 +b(P)m(oin)m(t)13 b Fm(::)8 b Fi(output)k Fm(\()i(\))83 +587 y Fn(f)166 686 y Fk(b)s(o)s(ol)31 b Ff(DEBUG)25 b +Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 +b Fn(\003)p Fe(=)166 811 y Fk(if)41 b Fm(\()p Ff(DEBUG)s +Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p +Ff(Point::)o(out)-7 b(put\(\).\\n")24 b Fn(\034)f Fi(\015ush)10 +b Fm(;)166 911 y Fk(if)41 b Fm(\()p Fi(do)p 384 911 26 +4 v 32 w(output)34 b Fn(\021)23 b Fi(false)12 b Fm(\))41 +b Fn(f)249 1010 y Fk(if)g Fm(\()p Ff(DEBUG)s Fm(\))h +Fi(c)l(out)34 b Fn(\034)23 b Ff("In)p Fj( )p Ff(Point::output)o(\(\):) +-7 b Fj( )p Ff(do_output)p Fj( )p Ff(==)p Fj( )p Ff(fal)o(se)o(.)h +Fj( )p Ff(Returning.\\n")21 b Fn(\034)j Fi(\015ush)10 +b Fm(;)249 1110 y Fk(return)5 b Fm(;)166 1209 y Fn(g)166 +1309 y Fk(if)41 b Fm(\()p Fi(dr)l(awdot)p 582 1309 V +32 w(value)34 b Fn(\021)23 b Ff(DRAWDOT)r Fm(\))41 b +Fi(out)p 1418 1309 V 30 w(str)l(e)l(am)34 b Fn(\034)23 +b Ff("drawdot)p Fj( )p Ff(")p Fm(;)166 1409 y Fk(else)31 +b(if)41 b Fm(\()p Fi(dr)l(awdot)p 766 1409 V 32 w(value)35 +b Fn(\021)22 b Ff(UNDRAWDOT)q Fm(\))42 b Fi(out)p 1690 +1409 V 30 w(str)l(e)l(am)33 b Fn(\034)23 b Ff("drawdot)p +Fj( )p Ff(")p Fm(;)166 1508 y Fk(else)170 b Fe(=)p Fn(\003)40 +b Fm(DRA)-9 b(WDOT)42 b Fn(\003)p Fe(=)166 1608 y Fn(f)249 +1708 y Fi(c)l(err)62 b Fn(\034)49 b Ff("WARNING!)p Fj( )p +Ff(Inval)o(id)p Fj( )o Ff(|d)-7 b(rawdot_value|:)p Fj( )p +Ff(")47 b Fn(\034)h Fi(dr)l(awdot)p 2625 1708 V 32 w(value)60 +b Fn(\034)415 1807 y Ff(".)p Fj( )p Ff(Using)p Fj( )p +Ff(\\"drawd)o(ot\\)o(")-6 b(\\n")26 b Fn(\034)d Fi(\015ush)10 +b Fm(;)0 1907 y(#)p Fk(if)41 b Fm(0)166 b Fe(=)p Fn(\003)40 +b Fm(!!)d(De\014ne)29 b(a)e Fk(class)32 b Fm(for)27 b(information)g(on) +g(the)h(run)g(state.)50 b Fn(\003)p Fe(=)249 2006 y Fk(if)41 +b Fm(\()p Fn(:)p Fi(R)n(un)p 589 2006 V 30 w(State)18 +b Fm(::)9 b Fi(non)p 1011 2006 V 30 w(stop)h Fm(\))42 +b Fi(getchar)14 b Fm(\()g(\);)0 2106 y(#)p Fk(endif)249 +2206 y Fi(out)p 369 2206 V 30 w(str)l(e)l(am)33 b Fn(\034)24 +b Ff("drawdot)p Fj( )p Ff(")p Fm(;)166 2305 y Fn(g)166 +2405 y Fi(out)p 286 2405 V 30 w(str)l(e)l(am)52 b Fn(\034)42 +b Ff("\(")j Fn(\034)c Fi(pr)l(oje)l(ctive)p 1372 2405 +V 33 w(c)l(o)l(or)l(dinates)12 b Fm([0)o(])42 b Fn(\034)g +Fi(me)l(asur)l(ement)p 2545 2405 V 29 w(units)52 b Fn(\034)42 +b Ff(",)p Fj( )p Ff(")j Fn(\034)332 2505 y Fi(pr)l(oje)l(ctive)p +678 2505 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([1])23 b +Fn(\034)g Fi(me)l(asur)l(ement)p 1813 2505 V 30 w(units)33 +b Fn(\034)23 b Ff("\)")s Fm(;)166 2604 y Fk(if)41 b Fm(\()p +Fi(dr)l(awdot)p 582 2604 V 32 w(c)l(olor)d Fn(6)p Fm(=)22 +b Fk(Colors)12 b Fm(::)d Fi(default)p 1490 2604 V 31 +w(c)l(olor)14 b Fm(\))42 b Fi(out)p 1898 2604 V 30 w(str)l(e)l(am)33 b Fn(\034)24 b Ff(")p Fj( )p Ff(withcolor)p Fj( )p Ff(")e Fn(\034)h(\003)o Fi(dr)l(awdot)p 3328 2604 V 32 w(c)l(olor)14 b Fm(;)0 2704 y(#)p Fk(if)41 b Fm(1)166 2803 y Fk(if)g @@ -12779,11 +12811,11 @@ Ff(Point::o)o(utp)-7 b(ut\(\).\\n")24 b Fn(\034)f Fi(\015ush)11 b Fm(;)83 3202 y Fn(g)0 3401 y Fk(459.)94 b(Lab)s(elling.)0 3601 y(460.)g(Lab)s(el.)p eop end -%%Page: 122 122 -TeXDict begin 122 121 bop 0 83 a Fm(122)140 b Fk(STRING)23 -b Fl(AR)n(GUMENT)2117 b(3DLDFPR)n(G)142 b Fn(x)p Fm(461)0 -263 y Fk(461.)94 b(string)31 b(argumen)m(t.)96 b Fm([)p -Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(The)28 b(argumen)n(ts:)0 +%%Page: 123 123 +TeXDict begin 123 122 bop 0 83 a Fn(x)p Fm(461)140 b +Fl(3DLDFPR)n(G)2117 b Fk(STRING)24 b Fl(AR)n(GUMENT)140 +b Fm(123)0 263 y Fk(461.)94 b(string)31 b(argumen)m(t.)96 +b Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(The)28 b(argumen)n(ts:)0 412 y Fk(string)33 b Fi(text)p 413 412 26 4 v 30 w(str)362 b Fm(The)28 b(text)g(for)f(the)h(lab)r(el.)0 562 y Fk(string)33 b Fi(p)l(osition)p 561 562 V 32 w(str)212 b Fm(Indicates)23 @@ -12818,48 +12850,46 @@ Fe(:)83 1807 y Fm([)p Fh(LDF)25 b(2003.01.15.)p Fm(])61 b(TO)27 b(DO:)h(Add)g Fi(p)l(en)39 b Fm(argumen)n(t)26 b(to)i Fi(lab)l(el)13 b Fm(\()i(\))28 b(and)f Fi(dotlab)l(el)14 -b Fm(\()g(\)!!)p 0 1911 1643 4 v 1738 1944 a Fk(Begin)31 -b(Log)p 2257 1911 V 83 2084 a Fm([)p Fh(LDF)25 b(2002.05.14.)p +b Fm(\()g(\)!!)p 0 1910 1779 4 v 1874 1943 a Fk(Log)p +2122 1910 V 83 2084 a Fm([)p Fh(LDF)25 b(2002.05.14.)p Fm(])67 b(Changed)32 b Fi(text)p 1234 2084 26 4 v 30 w(str)46 b Fm(so)33 b(that)g(it)h(is)f(no)g(longer)f(optional.)53 b(It)34 b(do)r(esn't)f(mak)n(e)g(an)n(y)f(sense)h(to)g(prin)n(t)0 -2184 y(empt)n(y)28 b(lab)r(els,)f(so)g(I'v)n(e)g(made)h(it)g(a)f -(required)f(argumen)n(t.)83 2284 y([)p Fh(LDF)f(2002.11.12.)p +2183 y(empt)n(y)28 b(lab)r(els,)f(so)g(I'v)n(e)g(made)h(it)g(a)f +(required)f(argumen)n(t.)83 2283 y([)p Fh(LDF)f(2002.11.12.)p Fm(])71 b(Added)38 b(\\)p Ff(\\relax)r Fm(")f(after)g(the)h(argumen)n -(ts)e(to)h(\\)p Ff(\\ARG)r Fm(")g(in)h(the)g(T)2900 2299 -y(E)2946 2284 y(X)g(co)r(de)f(ab)r(o)n(v)n(e)f(in)i(order)e(to)0 +(ts)e(to)h(\\)p Ff(\\ARG)r Fm(")g(in)h(the)g(T)2900 2298 +y(E)2946 2283 y(X)g(co)r(de)f(ab)r(o)n(v)n(e)f(in)i(order)e(to)0 2383 y(suppress)27 b(a)g(space)f(at)h(the)h(b)r(eginning)g(of)f(the)h (\014rst)f(line)h(of)f(the)h(follo)n(wing)e(inden)n(ted)i(paragraph.)34 -b(I)28 b(couldn't)f(\014gure)g(out)0 2483 y(a)g(w)n(a)n(y)g(of)g +b(I)28 b(couldn't)f(\014gure)g(out)0 2482 y(a)g(w)n(a)n(y)g(of)g (suppressing)f(the)i(space)f(within)i(the)f(de\014nition)g(of)f -Ff(\\ARG)s Fm(.)83 2583 y([)p Fh(LDF)e(2003.07.09.)p -Fm(])61 b(Made)27 b Fi(text)p 1105 2583 V 30 w(str)13 -b Fm(,)27 b Fi(p)l(osition)p 1576 2583 V 32 w(str)13 +Ff(\\ARG)s Fm(.)83 2582 y([)p Fh(LDF)e(2003.07.09.)p +Fm(])61 b(Made)27 b Fi(text)p 1105 2582 V 30 w(str)13 +b Fm(,)27 b Fi(p)l(osition)p 1576 2582 V 32 w(str)13 b Fm(,)28 b(and)f Fi(dot)40 b Fm(argumen)n(ts)26 b Fk(const)5 -b Fm(.)p 0 2674 1678 4 v 1773 2707 a Fk(End)32 b(Log)p -2222 2674 V 0 2832 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 -b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2931 y Fk(v)m(oid)33 b Fi(lab)l(el)14 b Fm(\()p Fk(const)33 -b(string)h Fi(text)p 1158 2931 26 4 v 29 w(str)13 b Fe(;)h -Fk(const)33 b(string)g Fi(p)l(osition)p 2141 2931 V 32 -w(str)k Fm(=)23 b Ff("top")r Fe(;)14 b Fk(const)33 b(b)s(o)s(ol)e -Fi(dot)37 b Fm(=)23 b Fi(false)12 b Fe(;)i Fk(Picture)249 -3031 y Fm(&)p Fi(pictur)l(e)33 b Fm(=)23 b Fi(curr)l(ent)p -949 3031 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 -b Fm(;)p eop end -%%Page: 123 123 -TeXDict begin 123 122 bop 0 83 a Fn(x)p Fm(462)140 b -Fl(3DLDFPR)n(G)2117 b Fk(STRING)24 b Fl(AR)n(GUMENT)140 -b Fm(123)0 263 y Fk(462.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)31 b(P)m(oin)m(t)14 -b Fm(::)8 b Fi(lab)l(el)14 b Fm(\()p Fk(const)31 b(string)h -Fi(text)p 1444 487 26 4 v 29 w(str)13 b Fe(;)h Fk(const)31 -b(string)h Fi(p)l(osition)p 2424 487 V 32 w(str)12 b -Fe(;)i Fk(const)31 b(b)s(o)s(ol)f Fi(dot)12 b Fe(;)i -Fk(Picture)32 b Fm(&)o Fi(pictur)l(e)11 b Fm(\))415 587 -y Fk(const)83 686 y Fn(f)166 786 y Fk(b)s(o)s(ol)31 b -Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p +b Fm(.)p 0 2674 3900 4 v 0 2831 a Fn(h)14 b Fm(Declare)27 +b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 2931 y Fk(v)m(oid)33 b Fi(lab)l(el)14 +b Fm(\()p Fk(const)33 b(string)h Fi(text)p 1158 2931 +26 4 v 29 w(str)13 b Fe(;)h Fk(const)33 b(string)g Fi(p)l(osition)p +2141 2931 V 32 w(str)k Fm(=)23 b Ff("top")r Fe(;)14 b +Fk(const)33 b(b)s(o)s(ol)e Fi(dot)37 b Fm(=)23 b Fi(false)12 +b Fe(;)i Fk(Picture)249 3030 y Fm(&)p Fi(pictur)l(e)33 +b Fm(=)23 b Fi(curr)l(ent)p 949 3030 V 30 w(pictur)l(e)10 +b Fm(\))28 b Fk(const)5 b Fm(;)p eop end +%%Page: 124 124 +TeXDict begin 124 123 bop 0 83 a Fm(124)140 b Fk(STRING)23 +b Fl(AR)n(GUMENT)2117 b(3DLDFPR)n(G)142 b Fn(x)p Fm(462)0 +263 y Fk(462.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +487 y Fk(v)m(oid)31 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(lab)l(el)14 +b Fm(\()p Fk(const)31 b(string)h Fi(text)p 1444 487 26 +4 v 29 w(str)13 b Fe(;)h Fk(const)31 b(string)h Fi(p)l(osition)p +2424 487 V 32 w(str)12 b Fe(;)i Fk(const)31 b(b)s(o)s(ol)f +Fi(dot)12 b Fe(;)i Fk(Picture)32 b Fm(&)o Fi(pictur)l(e)11 +b Fm(\))415 587 y Fk(const)83 686 y Fn(f)166 786 y Fk(b)s(o)s(ol)31 +b Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p Fe(=)166 911 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p Ff(Point::)o(lab)-7 b(el\(\)")25 @@ -12904,10 +12934,10 @@ Ff(Point::l)o(abe)-7 b(l\(\)")26 b Fn(\034)d Ff("\\n")j Fn(\034)d Fi(\015ush)10 b Fm(;)166 2853 y Fk(return)5 b Fm(;)83 2953 y Fn(g)p eop end -%%Page: 124 124 -TeXDict begin 124 123 bop 0 83 a Fm(124)140 b Fk(SHOR)-8 -b(T)23 b Fl(AR)n(GUMENT)2164 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(463)0 263 y Fk(463.)94 b(short)36 b(argumen)m(t.)95 +%%Page: 125 125 +TeXDict begin 125 124 bop 0 83 a Fn(x)p Fm(463)140 b +Fl(3DLDFPR)n(G)2165 b Fk(SHOR)-8 b(T)23 b Fl(AR)n(GUMENT)140 +b Fm(125)0 263 y Fk(463.)94 b(short)36 b(argumen)m(t.)95 b Fm([)p Fh(LDF)26 b(2003.04.01.)p Fm(])64 b(TO)31 b(DO:)g(Mak)n(e)f (non-)p Fk(const)36 b Fm(v)n(ersion)29 b(of)j(this)f(function!)48 b(TO)31 b(DO:)0 363 y(Mak)n(e)k(it)i(p)r(ossible)f(to)g(use)g @@ -12915,79 +12945,78 @@ b(in)g Fi(pr)l(oje)l(ctive)p 2549 363 26 4 v 32 w(c)l(o)l(or)l(dinates) 49 b Fm(for)36 b(the)g(lab)r(el.)64 b(This)36 b(will)0 462 y(require)27 b(adding)g(argumen)n(ts)f(for)h(use)g(b)n(y)h -Fi(pr)l(oje)l(ct)13 b Fm(\()h(\).)p 0 566 1643 4 v 1738 -599 a Fk(Begin)31 b(Log)p 2257 566 V 83 739 a Fm([)p -Fh(LDF)25 b(2003.04.01.)p Fm(])70 b(Changed)35 b(this)i(function)g(so)e -(that)i(it)f(tests)g(whether)g Fi(text)p 2665 739 26 -4 v 30 w(short)49 b Fm(is)36 b(equal)f(to)i Ff(WORLD_VALUES)o -Fm(,)0 839 y Ff(PROJ_VALUES)p Fm(,)31 b Ff(USER_VALUES)o -Fm(,)g(or)f Ff(VIEW_VALUES)o Fm(,)h(whic)n(h)f(are)f -Fk(public)35 b(const)g(static)g Fm(data)30 b(mem)n(b)r(ers)g(in)g -Fk(P)m(oin)m(t)5 b Fm(.)45 b(If)0 939 y Fi(text)p 138 -939 V 29 w(short)h Fm(is)32 b(equal)g(to)h Ff(WORLD_VALUES)o +Fi(pr)l(oje)l(ct)13 b Fm(\()h(\).)p 0 565 1779 4 v 1874 +598 a Fk(Log)p 2122 565 V 83 739 a Fm([)p Fh(LDF)25 b(2003.04.01.)p +Fm(])70 b(Changed)35 b(this)i(function)g(so)e(that)i(it)f(tests)g +(whether)g Fi(text)p 2665 739 26 4 v 30 w(short)49 b +Fm(is)36 b(equal)f(to)i Ff(WORLD_VALUES)o Fm(,)0 838 +y Ff(PROJ_VALUES)p Fm(,)31 b Ff(USER_VALUES)o Fm(,)g(or)f +Ff(VIEW_VALUES)o Fm(,)h(whic)n(h)f(are)f Fk(public)35 +b(const)g(static)g Fm(data)30 b(mem)n(b)r(ers)g(in)g +Fk(P)m(oin)m(t)5 b Fm(.)45 b(If)0 938 y Fi(text)p 138 +938 V 29 w(short)h Fm(is)32 b(equal)g(to)h Ff(WORLD_VALUES)o Fm(,)h Fn(\003)p Fi(this)44 b Fm(is)32 b(copied)h(and)f -Fi(apply)p 2317 939 V 32 w(tr)l(ansform)11 b Fm(\()j(\))33 +Fi(apply)p 2317 938 V 32 w(tr)l(ansform)11 b Fm(\()j(\))33 b(is)g(called)f(on)g(the)h(cop)n(y)-7 b(.)52 b(This)32 b(is)0 1038 y(necessary)-7 b(,)28 b(b)r(ecause)h(this)h(function)g(is)g Fk(const)5 b Fm(.)42 b(Then,)31 b(the)f(up)r(dated)g(v)-5 b(alues)29 b(in)h(the)f Fi(world)p 2967 1038 V 32 w(c)l(o)l(or)l -(dinates)42 b Fm(v)n(ector)28 b(of)i(the)0 1138 y(cop)n(y)d(are)f(used) -i(for)f(the)h(lab)r(el.)83 1238 y([)p Fh(LDF)d(2003.05.06.)p +(dinates)42 b Fm(v)n(ector)28 b(of)i(the)0 1137 y(cop)n(y)d(are)f(used) +i(for)f(the)h(lab)r(el.)83 1237 y([)p Fh(LDF)d(2003.05.06.)p Fm(])61 b(Added)28 b(comparison)e(of)i Fi(text)p 1676 -1238 V 29 w(short)40 b Fm(with)29 b Ff(WORLD_VALUES_X_)o(Y)n +1237 V 29 w(short)40 b Fm(with)29 b Ff(WORLD_VALUES_X_)o(Y)n Fm(,)f Ff(PROJ_VALUES_X_Y)n Fm(,)0 1337 y Ff(USER_VALUES_X_Y)n Fm(,)i(or)f Ff(VIEW_VALUES_X_Y)n Fm(,)h(whic)n(h)g(are)e(used)i(for)f (suppressing)f(the)i(z-co)r(ordinate,)f(when)h(the)f(v)-5 -b(alues)0 1437 y(from)36 b(one)g(of)g(the)h(sets)f(of)h(co)r(ordinates) +b(alues)0 1436 y(from)36 b(one)g(of)g(the)h(sets)f(of)h(co)r(ordinates) e(are)g(used)i(for)e(the)i(lab)r(el.)64 b(Also,)38 b(no)e(longer)f(cop) n(ying)g Fn(\003)p Fi(this)11 b Fm(,)39 b(since)d Fi(get)p -3720 1437 V 31 w(x)14 b Fm(\()g(\),)0 1536 y Fi(get)p +3720 1436 V 31 w(x)14 b Fm(\()g(\),)0 1536 y Fi(get)p 109 1536 V 31 w(y)d Fm(\()k(\),)28 b(and)f Fi(get)p 586 1536 V 31 w(z)14 b Fm(\()g(\))28 b(are)f Fk(const)32 -b Fm(an)n(yw)n(a)n(y)-7 b(.)83 1636 y([)p Fh(LDF)25 b(2003.05.20.)p +b Fm(an)n(yw)n(a)n(y)-7 b(.)83 1635 y([)p Fh(LDF)25 b(2003.05.20.)p Fm(])61 b(Added)28 b(\\)p Ff(WORLD_VALUES_Z)n Fm(")g(case.)83 -1736 y([)p Fh(LDF)d(2003.05.22.)p Fm(])60 b(BUG)27 b(FIX:)g(The)f(\\)p +1735 y([)p Fh(LDF)d(2003.05.22.)p Fm(])60 b(BUG)27 b(FIX:)g(The)f(\\)p Ff(WORLD_VALUES_Z)o Fm(")g(case)f(started)h(with)h Fk(if)40 b Fm(instead)27 b(of)f Fk(else)k(if)14 b Fm(.)36 b(This)27 b(caused)0 1835 y Fe(s:)p Fi(str)13 b Fm(\()h(\))39 b(to)g(ha)n(v)n(e)f (an)h(erroneous)e(\014v)n(e-digit)h(in)n(teger)g(follo)n(wing)g(the)h (closing)g(paren)n(thesis,)h(when)f Ff(WORLD_VALUES)g -Fm(or)0 1935 y Ff(WORLD_VALUES_X_Y)26 b Fm(w)n(as)i(used.)39 +Fm(or)0 1934 y Ff(WORLD_VALUES_X_Y)26 b Fm(w)n(as)i(used.)39 b(I)28 b(don't)h(kno)n(w)e(wh)n(y)h(this)h(should)f(ha)n(v)n(e)f(b)r (een)i(the)g(case,)e(but)i(c)n(hanging)e Fk(if)42 b Fm(to)29 -b Fk(else)i(if)0 2035 y Fm(\014xed)26 b(the)g(problem.)36 +b Fk(else)i(if)0 2034 y Fm(\014xed)26 b(the)g(problem.)36 b(It)26 b(probably)e(had)i(something)f(to)h(do)f(with)i(the)f(fact)g (that)g Ff(WORLD_VALUES_Z)e Fm(had)i(the)g(same)f(v)-5 b(alue)0 2134 y(as)27 b Ff(VIEW_VALUES_X_Y)n Fm(.)37 b(I'v)n(e)27 b(\014xed)h(this)g(ab)r(o)n(v)n(e)e(to)r(da)n(y)-7 -b(,)27 b(to)r(o.)83 2234 y([)p Fh(LDF)e(2003.06.06.)p +b(,)27 b(to)r(o.)83 2233 y([)p Fh(LDF)e(2003.06.06.)p Fm(])52 b(Changed)18 b(the)g(case,)i(where)e Fi(text)p -1761 2234 V 29 w(short)31 b Fm(=)18 b Ff(WORLD_VALUES)g -Fm(or)f Fi(text)p 2856 2234 V 30 w(short)31 b Fm(=)18 -b Ff(WORLD_VALUES_X_Y)n Fm(:)0 2334 y(The)27 b(co)r(ordinates)e +1761 2233 V 29 w(short)31 b Fm(=)18 b Ff(WORLD_VALUES)g +Fm(or)f Fi(text)p 2856 2233 V 30 w(short)31 b Fm(=)18 +b Ff(WORLD_VALUES_X_Y)n Fm(:)0 2333 y(The)27 b(co)r(ordinates)e (surrounded)h(b)n(y)h(paren)n(theses)e(are)h(no)n(w)g(prin)n(ted)h(out) -g(using)g(T)2612 2349 y(E)2658 2334 y(X's)g(math)g(mo)r(de,)g(i.e.,)g -(\\\()p Fe(x;)14 b(y)s(;)g(z)t Fm(\)")26 b(in-)0 2433 +g(using)g(T)2612 2348 y(E)2658 2333 y(X's)g(math)g(mo)r(de,)g(i.e.,)g +(\\\()p Fe(x;)14 b(y)s(;)g(z)t Fm(\)")26 b(in-)0 2432 y(stead)h(of)h(\\\()p Fe(x)p Fm(,)g Fe(y)s Fm(,)f Fe(z)t -Fm(\)".)83 2533 y([)p Fh(LDF)e(2003.07.09.)p Fm(])61 -b(Made)27 b Fi(text)p 1105 2533 V 30 w(short)12 b Fm(,)28 -b Fi(p)l(osition)p 1660 2533 V 32 w(str)13 b Fm(,)27 +Fm(\)".)83 2532 y([)p Fh(LDF)e(2003.07.09.)p Fm(])61 +b(Made)27 b Fi(text)p 1105 2532 V 30 w(short)12 b Fm(,)28 +b Fi(p)l(osition)p 1660 2532 V 32 w(str)13 b Fm(,)27 b(and)h Fi(dot)40 b Fm(argumen)n(ts)26 b Fk(const)5 b -Fm(.)p 0 2625 1678 4 v 1773 2657 a Fk(End)32 b(Log)p -2222 2625 V 0 2782 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 -b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2881 y Fk(v)m(oid)31 b Fi(lab)l(el)14 b Fm(\()p Fk(const)31 -b(short)h Fi(text)p 1125 2881 26 4 v 29 w(short)12 b -Fe(;)i Fk(const)32 b(string)f Fi(p)l(osition)p 2188 2881 -V 32 w(str)36 b Fm(=)23 b Ff("top")r Fe(;)14 b Fk(const)31 -b(b)s(o)s(ol)e Fi(dot)36 b Fm(=)23 b Fi(false)11 b Fe(;)j -Fk(Picture)249 2981 y Fm(&)p Fi(pictur)l(e)33 b Fm(=)23 -b Fi(curr)l(ent)p 949 2981 V 30 w(pictur)l(e)10 b Fm(\))28 -b Fk(const)5 b Fm(;)p eop end -%%Page: 125 125 -TeXDict begin 125 124 bop 0 83 a Fn(x)p Fm(464)140 b -Fl(3DLDFPR)n(G)2165 b Fk(SHOR)-8 b(T)23 b Fl(AR)n(GUMENT)140 -b Fm(125)0 263 y Fk(464.)0 388 y Fn(h)14 b Fm(De\014ne)28 +Fm(.)p 0 2624 3900 4 v 0 2781 a Fn(h)14 b Fm(Declare)27 +b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 2881 y Fk(v)m(oid)31 b Fi(lab)l(el)14 +b Fm(\()p Fk(const)31 b(short)h Fi(text)p 1125 2881 26 +4 v 29 w(short)12 b Fe(;)i Fk(const)32 b(string)f Fi(p)l(osition)p +2188 2881 V 32 w(str)36 b Fm(=)23 b Ff("top")r Fe(;)14 +b Fk(const)31 b(b)s(o)s(ol)e Fi(dot)36 b Fm(=)23 b Fi(false)11 +b Fe(;)j Fk(Picture)249 2980 y Fm(&)p Fi(pictur)l(e)33 +b Fm(=)23 b Fi(curr)l(ent)p 949 2980 V 30 w(pictur)l(e)10 +b Fm(\))28 b Fk(const)5 b Fm(;)p eop end +%%Page: 126 126 +TeXDict begin 126 125 bop 0 83 a Fm(126)140 b Fk(SHOR)-8 +b(T)23 b Fl(AR)n(GUMENT)2164 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(464)0 263 y Fk(464.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)37 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(lab)l(el)15 b Fm(\()p Fk(const)37 b(short)g @@ -13080,62 +13109,61 @@ b(for)h(the)h(same)f(purp)r(ose.)0 5020 y(This)i(is)f(so)g(that)h(the)g (dot)f(w)n(on't)h(co)n(v)n(er)d(the)j(text.)38 b([)p Fh(LDF)25 b(2003.07.16.)p Fm(])p eop end -%%Page: 126 126 -TeXDict begin 126 125 bop 0 83 a Fm(126)140 b Fk(STRING)23 -b Fl(AR)n(GUMENT)2117 b(3DLDFPR)n(G)142 b Fn(x)p Fm(466)0 -263 y Fk(466.)94 b(string)31 b(argumen)m(t.)p 0 362 1643 -4 v 1738 395 a(Begin)g(Log)p 2257 362 V 83 536 a Fm([)p +%%Page: 127 127 +TeXDict begin 127 126 bop 0 83 a Fn(x)p Fm(466)140 b +Fl(3DLDFPR)n(G)2117 b Fk(STRING)24 b Fl(AR)n(GUMENT)140 +b Fm(127)0 263 y Fk(466.)94 b(string)31 b(argumen)m(t.)p +0 362 1779 4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 b(Made)27 b Fi(text)p -1105 536 26 4 v 30 w(str)40 b Fm(and)28 b Fi(p)l(osition)p -1715 536 V 31 w(str)41 b Fm(argumen)n(ts)26 b Fk(const)5 -b Fm(.)p 0 628 1678 4 v 1773 660 a Fk(End)32 b(Log)p -2222 628 V 0 785 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +1105 535 26 4 v 30 w(str)40 b Fm(and)28 b Fi(p)l(osition)p +1715 535 V 31 w(str)41 b Fm(argumen)n(ts)26 b Fk(const)5 +b Fm(.)p 0 627 3900 4 v 0 784 a Fn(h)14 b Fm(Declare)27 +b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 884 y Fk(v)m(oid)45 b Fi(dotlab)l(el)14 +b Fm(\()p Fk(const)45 b(string)g Fi(text)p 1305 884 26 +4 v 30 w(str)12 b Fe(;)i Fk(const)45 b(string)g Fi(p)l(osition)p +2312 884 V 32 w(str)56 b Fm(=)43 b Ff("top")r Fe(;)14 +b Fk(Picture)249 983 y Fm(&)p Fi(pictur)l(e)33 b Fm(=)23 +b Fi(curr)l(ent)p 949 983 V 30 w(pictur)l(e)10 b Fm(\))28 +b Fk(const)5 b Fm(;)0 1182 y Fk(467.)0 1307 y Fn(h)14 +b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1407 y Fk(v)m(oid)33 +b(P)m(oin)m(t)13 b Fm(::)8 b Fi(dotlab)l(el)15 b Fm(\()p +Fk(const)32 b(string)i Fi(text)p 1561 1407 V 29 w(str)13 +b Fe(;)h Fk(const)32 b(string)h Fi(p)l(osition)p 2543 +1407 V 32 w(str)13 b Fe(;)h Fk(Picture)33 b Fm(&)o Fi(pictur)l(e)11 +b Fm(\))28 b Fk(const)83 1506 y Fn(f)166 1606 y Fi(lab)l(el)14 +b Fm(\()p Fi(text)p 506 1606 V 30 w(str)e Fe(;)i Fi(p)l(osition)p +963 1606 V 32 w(str)f Fe(;)h Fi(true)9 b Fe(;)14 b Fi(pictur)l(e)d +Fm(\);)83 1706 y Fn(g)0 1905 y Fk(468.)94 b(short)32 +b(argumen)m(t.)p 0 2003 1779 4 v 1874 2036 a(Log)p 2122 +2003 V 83 2177 a Fm([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 +b(Made)27 b Fi(text)p 1105 2177 26 4 v 30 w(short)40 +b Fm(and)28 b Fi(p)l(osition)p 1799 2177 V 31 w(str)41 +b Fm(argumen)n(ts)26 b Fk(const)5 b Fm(.)p 0 2269 3900 +4 v 0 2426 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -884 y Fk(v)m(oid)45 b Fi(dotlab)l(el)14 b Fm(\()p Fk(const)45 -b(string)g Fi(text)p 1305 884 26 4 v 30 w(str)12 b Fe(;)i -Fk(const)45 b(string)g Fi(p)l(osition)p 2312 884 V 32 -w(str)56 b Fm(=)43 b Ff("top")r Fe(;)14 b Fk(Picture)249 -984 y Fm(&)p Fi(pictur)l(e)33 b Fm(=)23 b Fi(curr)l(ent)p -949 984 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 -b Fm(;)0 1183 y Fk(467.)0 1308 y Fn(h)14 b Fm(De\014ne)28 +2525 y Fk(v)m(oid)44 b Fi(dotlab)l(el)14 b Fm(\()p Fk(const)44 +b(short)g Fi(text)p 1275 2525 26 4 v 29 w(short)13 b +Fe(;)h Fk(const)43 b(string)i Fi(p)l(osition)p 2364 2525 +V 32 w(str)54 b Fm(=)42 b Ff("top")r Fe(;)14 b Fk(Picture)249 +2625 y Fm(&)p Fi(pictur)l(e)33 b Fm(=)23 b Fi(curr)l(ent)p +949 2625 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 +b Fm(;)0 2824 y Fk(469.)0 2949 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 1407 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 -b Fm(::)8 b Fi(dotlab)l(el)15 b Fm(\()p Fk(const)32 b(string)i -Fi(text)p 1561 1407 V 29 w(str)13 b Fe(;)h Fk(const)32 -b(string)h Fi(p)l(osition)p 2543 1407 V 32 w(str)13 b -Fe(;)h Fk(Picture)33 b Fm(&)o Fi(pictur)l(e)11 b Fm(\))28 -b Fk(const)83 1507 y Fn(f)166 1607 y Fi(lab)l(el)14 b -Fm(\()p Fi(text)p 506 1607 V 30 w(str)e Fe(;)i Fi(p)l(osition)p -963 1607 V 32 w(str)f Fe(;)h Fi(true)9 b Fe(;)14 b Fi(pictur)l(e)d -Fm(\);)83 1706 y Fn(g)0 1905 y Fk(468.)94 b(short)32 -b(argumen)m(t.)p 0 2005 1643 4 v 1738 2037 a(Begin)f(Log)p -2257 2005 V 83 2178 a Fm([)p Fh(LDF)25 b(2003.07.09.)p -Fm(])61 b(Made)27 b Fi(text)p 1105 2178 26 4 v 30 w(short)40 -b Fm(and)28 b Fi(p)l(osition)p 1799 2178 V 31 w(str)41 -b Fm(argumen)n(ts)26 b Fk(const)5 b Fm(.)p 0 2270 1678 -4 v 1773 2303 a Fk(End)32 b(Log)p 2222 2270 V 0 2427 -a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2527 y Fk(v)m(oid)44 -b Fi(dotlab)l(el)14 b Fm(\()p Fk(const)44 b(short)g Fi(text)p -1275 2527 26 4 v 29 w(short)13 b Fe(;)h Fk(const)43 b(string)i -Fi(p)l(osition)p 2364 2527 V 32 w(str)54 b Fm(=)42 b -Ff("top")r Fe(;)14 b Fk(Picture)249 2626 y Fm(&)p Fi(pictur)l(e)33 -b Fm(=)23 b Fi(curr)l(ent)p 949 2626 V 30 w(pictur)l(e)10 -b Fm(\))28 b Fk(const)5 b Fm(;)0 2826 y Fk(469.)0 2950 -y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3050 y Fk(v)m(oid)33 -b(P)m(oin)m(t)13 b Fm(::)8 b Fi(dotlab)l(el)15 b Fm(\()p -Fk(const)32 b(short)h Fi(text)p 1533 3050 V 29 w(short)13 -b Fe(;)h Fk(const)32 b(string)h Fi(p)l(osition)p 2599 -3050 V 32 w(str)13 b Fe(;)h Fk(Picture)32 b Fm(&)p Fi(pictur)l(e)11 -b Fm(\))28 b Fk(const)83 3149 y Fn(f)166 3249 y Fi(lab)l(el)14 -b Fm(\()p Fi(text)p 506 3249 V 30 w(short)e Fe(;)i Fi(p)l(osition)p -1047 3249 V 32 w(str)e Fe(;)i Fi(true)c Fe(;)k Fi(pictur)l(e)d -Fm(\);)83 3349 y Fn(g)p eop end -%%Page: 127 127 -TeXDict begin 127 126 bop 0 83 a Fn(x)p Fm(470)140 b -Fl(3DLDFPR)n(G)2165 b Fk(SHOR)-8 b(T)23 b Fl(AR)n(GUMENT)140 -b Fm(127)0 263 y Fk(470.)94 b Fm([)p Fh(LDF)26 b(2002.09.06.)p +b Fm(+)p Fn(\021)83 3048 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 +b Fm(::)8 b Fi(dotlab)l(el)15 b Fm(\()p Fk(const)32 b(short)h +Fi(text)p 1533 3048 V 29 w(short)13 b Fe(;)h Fk(const)32 +b(string)h Fi(p)l(osition)p 2599 3048 V 32 w(str)13 b +Fe(;)h Fk(Picture)32 b Fm(&)p Fi(pictur)l(e)11 b Fm(\))28 +b Fk(const)83 3148 y Fn(f)166 3248 y Fi(lab)l(el)14 b +Fm(\()p Fi(text)p 506 3248 V 30 w(short)e Fe(;)i Fi(p)l(osition)p +1047 3248 V 32 w(str)e Fe(;)i Fi(true)c Fe(;)k Fi(pictur)l(e)d +Fm(\);)83 3347 y Fn(g)p eop end +%%Page: 128 128 +TeXDict begin 128 127 bop 0 83 a Fm(128)140 b Fk(SHOR)-8 +b(T)23 b Fl(AR)n(GUMENT)2164 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(470)0 263 y Fk(470.)94 b Fm([)p Fh(LDF)26 b(2002.09.06.)p Fm(])65 b(Commen)n(ted)33 b(out)g Fn(\030)o Fk(Lab)s(el)5 b Fm(\()14 b(\).)52 b(This)33 b(w)n(as)e(the)j(cause)d(of)i(a)f(bug)h (that)g(caused)f(a)g(memory)0 363 y(fault)f(when)f(I)h(tried)f(to)g @@ -13174,123 +13202,120 @@ Fm(])72 b(Declared)39 b(in)g Fj(pictures.web)p Fm(.)67 b(Must)39 b(b)r(e)h(de\014ned)f(here,)i(b)r(ecause)0 3044 y Fk(P)m(oin)m(t)33 b Fm(is)27 b(an)h(incomplete)f(t)n(yp)r(e)h -(there.)p 0 3144 1643 4 v 1738 3176 a Fk(Begin)j(Log)p -2257 3144 V 83 3317 a Fm([)p Fh(LDF)25 b(2002.10.23.)p -Fm(])61 b(Added)28 b(argumen)n(ts)f Fi(pr)l(oj)45 b Fm(and)27 -b Fi(factor)14 b Fm(.)p 0 3409 1678 4 v 1773 3441 a Fk(End)32 -b(Log)p 2222 3409 V 0 3566 a Fn(h)14 b Fm(De\014ne)28 +(there.)p 0 3143 1779 4 v 1874 3175 a Fk(Log)p 2122 3143 +V 83 3316 a Fm([)p Fh(LDF)d(2002.10.23.)p Fm(])61 b(Added)28 +b(argumen)n(ts)f Fi(pr)l(oj)45 b Fm(and)27 b Fi(factor)14 +b Fm(.)p 0 3408 3900 4 v 0 3565 a Fn(h)g Fm(De\014ne)28 b Fk(Lab)s(el)33 b Fm(functions)i Fl(470)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 3666 y Fk(v)m(oid)32 b(Lab)s(el)13 +b Fm(+)p Fn(\021)83 3665 y Fk(v)m(oid)32 b(Lab)s(el)13 b Fm(::)8 b Fi(output)j Fm(\()p Fk(const)32 b(F)-8 b(o)s(cus)32 b Fm(&)o Fe(f)9 b(;)14 b Fk(const)31 b(unsigned)g(short)h Fi(pr)l(oj)17 b Fe(;)d Fk(real)32 b Fi(factor)14 b Fe(;)g Fk(const)31 b(T)-8 b(ransform)33 b Fm(&)o Fe(t)p Fm(\))83 -3765 y Fn(f)166 3865 y Fk(if)41 b Fm(\()p Fn(:)p Fe(t)q(:)p -Fi(is)p 468 3865 26 4 v 31 w(identity)12 b Fm(\()i(\)\))42 +3764 y Fn(f)166 3864 y Fk(if)41 b Fm(\()p Fn(:)p Fe(t)q(:)p +Fi(is)p 468 3864 26 4 v 31 w(identity)12 b Fm(\()i(\)\))42 b Fn(\003)p Fi(pt)35 b Fn(\003)p Fm(=)22 b Fe(t)p Fm(;)166 3964 y Fi(pt)232 3989 y Fe(~)281 3964 y Fi(apply)p 473 -3964 V 33 w(tr)l(ansform)11 b Fm(\()j(\);)166 4064 y -Fk(if)41 b Fm(\()p Fn(:)p Fi(pt)416 4089 y Fe(~)466 4064 +3964 V 33 w(tr)l(ansform)11 b Fm(\()j(\);)166 4063 y +Fk(if)41 b Fm(\()p Fn(:)p Fi(pt)416 4088 y Fe(~)466 4063 y Fi(pr)l(oje)l(ct)13 b Fm(\()p Fe(f)c(;)14 b Fi(pr)l(oj)j -Fe(;)d Fi(factor)g Fm(\)\))43 b Fn(f)249 4164 y Fi(c)l(err)38 +Fe(;)d Fi(factor)g Fm(\)\))43 b Fn(f)249 4163 y Fi(c)l(err)38 b Fn(\034)25 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Lab)o(el:)o(:)-6 b(output\(\):\\n")24 b Fn(\034)h Ff("Point)p Fj( )p Ff(in)p Fj( )p Ff(Label)p Fj( )o Ff(ca)o(nn)-7 b(ot)p Fj( )p Ff(be)p Fj( )p Ff(projected!)p Fj( )o Ff(")23 b Fn(\034)415 4263 y Ff("Not)p Fj( )p Ff(printing)p Fj( )p Ff(La)o(bel)o(\\)-6 -b(n")26 b Fn(\034)e Fi(\015ush)10 b Fm(;)249 4363 y Fk(return)5 -b Fm(;)166 4463 y Fn(g)166 4562 y Fk(if)41 b Fm(\()p +b(n")26 b Fn(\034)e Fi(\015ush)10 b Fm(;)249 4362 y Fk(return)5 +b Fm(;)166 4462 y Fn(g)166 4561 y Fk(if)41 b Fm(\()p Fi(dot)36 b Fn(\021)23 b Fi(true)10 b Fm(\))41 b Fi(out)p -880 4562 V 31 w(str)l(e)l(am)33 b Fn(\034)23 b Ff("dot")r -Fm(;)166 4662 y Fi(out)p 286 4662 V 30 w(str)l(e)l(am)33 +880 4561 V 31 w(str)l(e)l(am)33 b Fn(\034)23 b Ff("dot")r +Fm(;)166 4661 y Fi(out)p 286 4661 V 30 w(str)l(e)l(am)33 b Fn(\034)23 b Ff("label")r Fm(;)166 4761 y Fk(if)41 b Fm(\()p Fi(p)l(osition)35 b Fn(6)p Fm(=)23 b Ff("")t Fm(\))41 b Fi(out)p 984 4761 V 30 w(str)l(e)l(am)34 b Fn(\034)23 b Ff(".")j Fn(\034)d Fi(p)l(osition)12 b Fm(;)166 -4861 y Fi(out)p 286 4861 V 30 w(str)l(e)l(am)33 b Fn(\034)23 +4860 y Fi(out)p 286 4860 V 30 w(str)l(e)l(am)33 b Fn(\034)23 b Ff("\(btex)p Fj( )p Ff(")i Fn(\034)e Fi(text)34 b Fn(\034)23 b Ff(")p Fj( )p Ff(etex,)p Fj( )p Ff(\(")g Fn(\034)g -Fi(pt)2078 4886 y Fe(~)2128 4861 y Fi(get)p 2237 4861 -V 30 w(x)14 b Fm(\()p Ff('p')s Fe(;)332 4961 y Fi(false)e +Fi(pt)2078 4885 y Fe(~)2128 4860 y Fi(get)p 2237 4860 +V 30 w(x)14 b Fm(\()p Ff('p')s Fe(;)332 4960 y Fi(false)e Fm(\))23 b Fn(\034)g Fk(P)m(oin)m(t)14 b Fm(::)8 b Fi(me)l(asur)l -(ement)p 1435 4961 V 30 w(units)33 b Fn(\034)23 b Ff(",)p -Fj( )p Ff(")j Fn(\034)d Fi(pt)2152 4986 y Fe(~)2201 4961 -y Fi(get)p 2310 4961 V 31 w(y)12 b Fm(\()p Ff('p')s Fe(;)332 +(ement)p 1435 4960 V 30 w(units)33 b Fn(\034)23 b Ff(",)p +Fj( )p Ff(")j Fn(\034)d Fi(pt)2152 4985 y Fe(~)2201 4960 +y Fi(get)p 2310 4960 V 31 w(y)12 b Fm(\()p Ff('p')s Fe(;)332 5060 y Fi(false)g Fm(\))23 b Fn(\034)g Fk(P)m(oin)m(t)14 b Fm(::)8 b Fi(me)l(asur)l(ement)p 1435 5060 V 30 w(units)33 -b Fn(\034)23 b Ff("\)\);\\n")r Fm(;)166 5160 y Fk(return)5 -b Fm(;)83 5260 y Fn(g)p eop end -%%Page: 128 128 -TeXDict begin 128 127 bop 0 83 a Fm(128)140 b Fl(MA)-6 -b(TRIX)23 b(OPERA)-6 b(TIONS)2156 b(3DLDFPR)n(G)142 b -Fn(x)p Fm(473)0 263 y Fk(473.)94 b(Matrix)32 b(op)s(erations.)0 +b Fn(\034)23 b Ff("\)\);\\n")r Fm(;)166 5159 y Fk(return)5 +b Fm(;)83 5259 y Fn(g)p eop end +%%Page: 129 129 +TeXDict begin 129 128 bop 0 83 a Fn(x)p Fm(473)140 b +Fl(3DLDFPR)n(G)2156 b(MA)-6 b(TRIX)23 b(OPERA)-6 b(TIONS)141 +b Fm(129)0 263 y Fk(473.)94 b(Matrix)32 b(op)s(erations.)0 462 y(474.)94 b(Multiplication)30 b(b)m(y)j(a)f(T)-8 -b(ransform)33 b(with)e(assignmen)m(t.)p 0 562 1643 4 -v 1738 594 a(Begin)g(Log)p 2257 562 V 83 735 a Fm([)p -Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(BUG)29 b(FIX:)f(This)g(function)h -(no)n(w)e(returns)g Fe(t)h Fm(instead)g(of)g Fi(tr)l(ansform)11 +b(ransform)33 b(with)e(assignmen)m(t.)p 0 561 1779 4 +v 1874 593 a(Log)p 2122 561 V 83 734 a Fm([)p Fh(LDF)25 +b(2002.11.06.)p Fm(])61 b(BUG)29 b(FIX:)f(This)g(function)h(no)n(w)e +(returns)g Fe(t)h Fm(instead)g(of)g Fi(tr)l(ansform)11 b Fm(.)38 b(This)27 b(mak)n(es)g(it)i(p)r(ossible)e(to)0 834 y(c)n(hain)g(expressions)f(using)h Fk(op)s(erator)5 -b Fn(\003)p Fm(=)o(\()14 b(\).)p 0 926 1678 4 v 1773 -959 a Fk(End)32 b(Log)p 2222 926 V 0 1084 a Fn(h)14 b -Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 1183 y Fk(T)-8 b(ransform)33 -b(op)s(erator)5 b Fn(\003)p Fm(=)o(\()p Fk(const)33 b(T)-8 -b(ransform)33 b Fm(&)p Fe(t)p Fm(\);)0 1382 y Fk(475.)0 -1507 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b -Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -1607 y Fk(T)-8 b(ransform)33 b(P)m(oin)m(t)14 b Fm(::)8 +b Fn(\003)p Fm(=)o(\()14 b(\).)p 0 926 3900 4 v 0 1083 +a Fn(h)g Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1182 y Fk(T)-8 +b(ransform)33 b(op)s(erator)5 b Fn(\003)p Fm(=)o(\()p +Fk(const)33 b(T)-8 b(ransform)33 b Fm(&)p Fe(t)p Fm(\);)0 +1382 y Fk(475.)0 1506 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +1606 y Fk(T)-8 b(ransform)33 b(P)m(oin)m(t)14 b Fm(::)8 b Fk(op)s(erator)d Fn(\003)p Fm(=)o(\()p Fk(const)33 b(T)-8 b(ransform)33 b Fm(&)o Fe(t)p Fm(\))83 1706 y -Fn(f)166 1806 y Fk(return)g Fm(\()p Fi(tr)l(ansform)h -Fn(\003)p Fm(=)22 b Fe(t)p Fm(\);)83 1905 y Fn(g)0 2105 +Fn(f)166 1805 y Fk(return)g Fm(\()p Fi(tr)l(ansform)h +Fn(\003)p Fm(=)22 b Fe(t)p Fm(\);)83 1905 y Fn(g)0 2104 y Fk(476.)94 b(V)-8 b(ector)34 b(op)s(erations.)94 b Fm([)p Fh(LDF)26 b(2002.10.27.)p Fm(])62 b(Note)29 b(that)g(the)g(v)n (ector)f(op)r(erations)g(don't)h(a\013ect)g(the)g(w)g(co)r(ordi-)0 -2204 y(nate.)p 0 2280 1643 4 v 1738 2313 a Fk(Begin)i(Log)p -2257 2280 V 83 2453 a Fm([)p Fh(LDF)25 b(2002.10.27.)p -Fm(])61 b(In)28 b(the)g(functions)f Fk(op)s(erator)5 -b Fm(+\()14 b(\),)p Fk(op)s(erator)5 b Fm(+=)o(\()14 -b(\),)29 b Fk(op)s(erator)t Fn(\000)p Fm(\()14 b(\),)28 -b(and)f Fk(op)s(erator)5 b Fn(\000)p Fm(=)o(\()14 b(\):)38 -b(It)0 2553 y(do)r(esn't)52 b(seem)f(w)n(orth)f(it)i(to)f(write)h(non-) -p Fk(const)j Fm(v)n(ersions,)h(although)51 b(I)g(could.)108 -b(No)n(w)51 b(using)g(the)h(elemen)n(ts)f(of)0 2653 y -Fi(p0)16 b Fe(:)p Fi(world)p 323 2653 26 4 v 32 w(c)l(o)l(or)l(dinates) -53 b Fm(directly)40 b(instead)g(of)g(using)g Fi(get)p -1864 2653 V 31 w(x)13 b Fm(\()h(\),)44 b Fi(get)p 2196 -2653 V 31 w(y)12 b Fm(\()i(\),)44 b(and)c Fi(get)p 2702 -2653 V 30 w(z)15 b Fm(\()f(\).)75 b(This)41 b(is)f(safe,)j(as)d(is)g +2204 y(nate.)p 0 2279 1779 4 v 1874 2312 a Fk(Log)p 2122 +2279 V 83 2453 a Fm([)p Fh(LDF)c(2002.10.27.)p Fm(])61 +b(In)28 b(the)g(functions)f Fk(op)s(erator)5 b Fm(+\()14 +b(\),)p Fk(op)s(erator)5 b Fm(+=)o(\()14 b(\),)29 b Fk(op)s(erator)t +Fn(\000)p Fm(\()14 b(\),)28 b(and)f Fk(op)s(erator)5 +b Fn(\000)p Fm(=)o(\()14 b(\):)38 b(It)0 2552 y(do)r(esn't)52 +b(seem)f(w)n(orth)f(it)i(to)f(write)h(non-)p Fk(const)j +Fm(v)n(ersions,)h(although)51 b(I)g(could.)108 b(No)n(w)51 +b(using)g(the)h(elemen)n(ts)f(of)0 2652 y Fi(p0)16 b +Fe(:)p Fi(world)p 323 2652 26 4 v 32 w(c)l(o)l(or)l(dinates)53 +b Fm(directly)40 b(instead)g(of)g(using)g Fi(get)p 1864 +2652 V 31 w(x)13 b Fm(\()h(\),)44 b Fi(get)p 2196 2652 +V 31 w(y)12 b Fm(\()i(\),)44 b(and)c Fi(get)p 2702 2652 +V 30 w(z)15 b Fm(\()f(\).)75 b(This)41 b(is)f(safe,)j(as)d(is)g (calling)0 2752 y Fi(apply)p 192 2752 V 32 w(tr)l(ansform)11 b Fm(\()j(\))28 b(on)g Fe(p)o Fm(,)g(and)g(sa)n(v)n(es)d(the)j(cost)f -(of)h(three)f(function)i(calls.)p 0 2844 1678 4 v 1773 -2877 a Fk(End)j(Log)p 2222 2844 V 0 3076 a(477.)94 b(V)-8 -b(ector)33 b(addition.)0 3201 y Fn(h)14 b Fm(Declare)27 -b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 3300 y Fk(P)m(oin)m(t)33 b(op)s(erator)5 -b Fm(+)o(\()p Fk(P)m(oin)m(t)33 b Fe(p)p Fm(\))28 b Fk(const)5 -b Fm(;)0 3499 y Fk(478.)0 3624 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 3724 y Fk(P)m(oin)m(t)33 b(P)m(oin)m(t)13 -b Fm(::)c Fk(op)s(erator)c Fm(+)o(\()p Fk(P)m(oin)m(t)33 -b Fe(p)p Fm(\))28 b Fk(const)83 3823 y Fn(f)166 3923 -y Fk(P)m(oin)m(t)33 b Fe(a)p Fm(;)166 4047 y Fe(a)23 -b Fm(=)g Fn(\003)o Fi(this)12 b Fm(;)166 4147 y Fe(p:)p -Fi(apply)p 423 4147 26 4 v 32 w(tr)l(ansform)f Fm(\()j(\);)166 -4247 y Fe(a:)p Fi(shift)f Fm(\()p Fe(p:)p Fi(world)p -697 4247 V 32 w(c)l(o)l(or)l(dinates)f Fm([0])p Fe(;)i(p)o(:)p -Fi(world)p 1526 4247 V 32 w(c)l(o)l(or)l(dinates)e Fm([1])p -Fe(;)i(p:)p Fi(world)p 2356 4247 V 31 w(c)l(o)l(or)l(dinates)f +(of)h(three)f(function)i(calls.)p 0 2844 3900 4 v 0 3075 +a Fk(477.)94 b(V)-8 b(ector)33 b(addition.)0 3200 y Fn(h)14 +b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3300 y Fk(P)m(oin)m(t)33 +b(op)s(erator)5 b Fm(+)o(\()p Fk(P)m(oin)m(t)33 b Fe(p)p +Fm(\))28 b Fk(const)5 b Fm(;)0 3499 y Fk(478.)0 3623 +y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3723 y Fk(P)m(oin)m(t)33 +b(P)m(oin)m(t)13 b Fm(::)c Fk(op)s(erator)c Fm(+)o(\()p +Fk(P)m(oin)m(t)33 b Fe(p)p Fm(\))28 b Fk(const)83 3823 +y Fn(f)166 3922 y Fk(P)m(oin)m(t)33 b Fe(a)p Fm(;)166 +4047 y Fe(a)23 b Fm(=)g Fn(\003)o Fi(this)12 b Fm(;)166 +4146 y Fe(p:)p Fi(apply)p 423 4146 26 4 v 32 w(tr)l(ansform)f +Fm(\()j(\);)166 4246 y Fe(a:)p Fi(shift)f Fm(\()p Fe(p:)p +Fi(world)p 697 4246 V 32 w(c)l(o)l(or)l(dinates)f Fm([0])p +Fe(;)i(p)o(:)p Fi(world)p 1526 4246 V 32 w(c)l(o)l(or)l(dinates)e +Fm([1])p Fe(;)i(p:)p Fi(world)p 2356 4246 V 31 w(c)l(o)l(or)l(dinates)f Fm([2)o(]\);)166 4346 y Fk(return)33 b Fe(a)p Fm(;)83 -4446 y Fn(g)0 4645 y Fk(479.)94 b(V)-8 b(ector)33 b(addition)e(with)g -(assignmen)m(t.)0 4770 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +4445 y Fn(g)0 4645 y Fk(479.)94 b(V)-8 b(ector)33 b(addition)e(with)g +(assignmen)m(t.)0 4769 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4869 y Fk(v)m(oid)33 b(op)s(erator)t Fm(+=\()p Fk(P)m(oin)m(t)g Fe(p)o Fm(\);)p eop end -%%Page: 129 129 -TeXDict begin 129 128 bop 0 83 a Fn(x)p Fm(480)140 b -Fl(3DLDFPR)n(G)1512 b(VECTOR)23 b(ADDITION)h(WITH)g(ASSIGNMENT)141 -b Fm(129)0 263 y Fk(480.)0 388 y Fn(h)14 b Fm(De\014ne)28 +%%Page: 130 130 +TeXDict begin 130 129 bop 0 83 a Fm(130)140 b Fl(VECTOR)23 +b(ADDITION)g(WITH)i(ASSIGNMENT)1512 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(480)0 263 y Fk(480.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fk(op)s(erator)d Fm(+=)o(\()p Fk(P)m(oin)m(t)34 @@ -13334,29 +13359,27 @@ 3501 V 31 w(c)l(o)l(or)l(dinates)f Fm([1)o(])p Fe(;)h Fn(\000)p Fe(p)o(:)p Fi(world)p 2482 3501 V 32 w(c)l(o)l(or)l(dinates)e Fm([2]\);)83 3601 y Fn(g)0 3800 y Fk(485.)94 b(V)-8 b(ector-scalar)33 -b(m)m(ultipication)e(with)g(assignmen)m(t.)p 0 3899 1643 -4 v 1738 3932 a(Begin)g(Log)p 2257 3899 V 83 4072 a Fm([)p -Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(Made)27 b(argumen)n(t)g -Fe(r)j Fk(const)5 b Fm(.)37 b(Changed)27 b(return)g(v)-5 -b(alue)28 b(from)f Fk(P)m(oin)m(t)33 b Fm(&)27 b(to)h -Fk(v)m(oid)t Fm(.)83 4172 y([)p Fh(LDF)d(2003.05.14.)p -Fm(])64 b(Changed)29 b(return)g(v)-5 b(alue)30 b(from)g -Fk(v)m(oid)35 b Fm(to)29 b Fk(real)5 b Fm(.)44 b(It)31 -b(no)n(w)e(returns)g(the)i(argumen)n(t)d Fe(r)s Fm(.)44 -b(This)30 b(mak)n(es)0 4272 y(it)e(p)r(ossible)f(to)h(c)n(hain)f(in)n -(v)n(o)r(cations)f(of)h(this)h(function.)p 0 4364 1678 -4 v 1773 4396 a Fk(End)k(Log)p 2222 4364 V 0 4521 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4620 y Fk(real)32 -b(op)s(erator)5 b Fn(\003)p Fm(=)o(\()p Fk(const)33 b(real)g -Fe(r)r Fm(\);)p eop end -%%Page: 130 130 -TeXDict begin 130 129 bop 0 83 a Fm(130)140 b Fl(VECTOR-SCALAR)22 -b(MUL)-6 b(TIPICA)g(TION)24 b(WITH)g(ASSIGNMENT)980 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(486)0 263 y Fk(486.)94 b Fm(??)43 b(I'm)29 -b(not)h(sure)e(whether)i(m)n(ultiplication)f(with)h(a)f(scalar)f(is)h -(comm)n(utativ)n(e)f(with)i(transformations.)40 b(I)30 -b(doubt)0 363 y(it.)37 b(Therefore,)27 b(I)g(apply)h +b(m)m(ultipication)e(with)g(assignmen)m(t.)p 0 3898 1779 +4 v 1874 3931 a(Log)p 2122 3898 V 83 4072 a Fm([)p Fh(LDF)25 +b(2002.10.27.)p Fm(])61 b(Made)27 b(argumen)n(t)g Fe(r)j +Fk(const)5 b Fm(.)37 b(Changed)27 b(return)g(v)-5 b(alue)28 +b(from)f Fk(P)m(oin)m(t)33 b Fm(&)27 b(to)h Fk(v)m(oid)t +Fm(.)83 4171 y([)p Fh(LDF)d(2003.05.14.)p Fm(])64 b(Changed)29 +b(return)g(v)-5 b(alue)30 b(from)g Fk(v)m(oid)35 b Fm(to)29 +b Fk(real)5 b Fm(.)44 b(It)31 b(no)n(w)e(returns)g(the)i(argumen)n(t)d +Fe(r)s Fm(.)44 b(This)30 b(mak)n(es)0 4271 y(it)e(p)r(ossible)f(to)h(c) +n(hain)f(in)n(v)n(o)r(cations)f(of)h(this)h(function.)p +0 4363 3900 4 v 0 4520 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4620 y Fk(real)32 b(op)s(erator)5 b Fn(\003)p Fm(=)o(\()p +Fk(const)33 b(real)g Fe(r)r Fm(\);)p eop end +%%Page: 131 131 +TeXDict begin 131 130 bop 0 83 a Fn(x)p Fm(486)140 b +Fl(3DLDFPR)n(G)979 b(VECTOR-SCALAR)23 b(MUL)-6 b(TIPICA)g(TION)24 +b(WITH)g(ASSIGNMENT)141 b Fm(131)0 263 y Fk(486.)94 b +Fm(??)43 b(I'm)29 b(not)h(sure)e(whether)i(m)n(ultiplication)f(with)h +(a)f(scalar)f(is)h(comm)n(utativ)n(e)f(with)i(transformations.)40 +b(I)30 b(doubt)0 363 y(it.)37 b(Therefore,)27 b(I)g(apply)h Fi(tr)l(ansform)38 b Fm(b)r(efore)27 b(m)n(ultiplying.)0 487 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 @@ -13371,48 +13394,46 @@ b Fe(r)s Fm(;)83 1085 y Fn(g)0 1284 y Fk(487.)94 b(V)-8 b(ector-scalar)33 b(m)m(ultipication.)0 1483 y(488.)94 b(Mem)m(b)s(er)31 b(v)m(ersion)h(\(P)m(oin)m(t)g(\014rst\).)p -0 1587 1643 4 v 1738 1620 a(Begin)f(Log)p 2257 1587 V -83 1761 a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(Made)27 +0 1587 1779 4 v 1874 1619 a(Log)p 2122 1587 V 83 1760 +a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(Made)27 b(this)h(function)h(and)e(the)h(argumen)n(t)e Fe(r)31 -b Fk(const)5 b Fm(.)p 0 1853 1678 4 v 1773 1885 a Fk(End)32 -b(Log)p 2222 1853 V 0 2010 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 2109 y Fk(P)m(oin)m(t)33 b(op)s(erator)5 -b Fn(\003)o Fm(\()p Fk(const)33 b(real)f Fe(r)s Fm(\))c -Fk(const)5 b Fm(;)0 2309 y Fk(489.)0 2433 y Fn(h)14 b -Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 -b Fn(i)24 b Fm(+)p Fn(\021)83 2533 y Fk(P)m(oin)m(t)33 +b Fk(const)5 b Fm(.)p 0 1852 3900 4 v 0 2009 a Fn(h)14 +b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2109 y Fk(P)m(oin)m(t)33 +b(op)s(erator)5 b Fn(\003)o Fm(\()p Fk(const)33 b(real)f +Fe(r)s Fm(\))c Fk(const)5 b Fm(;)0 2308 y Fk(489.)0 2432 +y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2532 y Fk(P)m(oin)m(t)33 b(P)m(oin)m(t)13 b Fm(::)c Fk(op)s(erator)c Fn(\003)o Fm(\()p Fk(const)33 b(real)f Fe(r)s Fm(\))c Fk(const)83 -2632 y Fn(f)166 2732 y Fk(P)m(oin)m(t)33 b Fe(a)p Fm(\()p -Fn(\003)p Fi(this)11 b Fm(\);)166 2857 y Fe(a:)p Fi(apply)p -425 2857 26 4 v 32 w(tr)l(ansform)g Fm(\()j(\);)166 2956 -y Fe(a)23 b Fn(\003)p Fm(=)f Fe(r)s Fm(;)166 3056 y Fk(return)33 -b Fe(a)p Fm(;)83 3155 y Fn(g)0 3355 y Fk(490.)94 b(Non-mem)m(b)s(er)30 +2632 y Fn(f)166 2731 y Fk(P)m(oin)m(t)33 b Fe(a)p Fm(\()p +Fn(\003)p Fi(this)11 b Fm(\);)166 2856 y Fe(a:)p Fi(apply)p +425 2856 26 4 v 32 w(tr)l(ansform)g Fm(\()j(\);)166 2955 +y Fe(a)23 b Fn(\003)p Fm(=)f Fe(r)s Fm(;)166 3055 y Fk(return)33 +b Fe(a)p Fm(;)83 3155 y Fn(g)0 3354 y Fk(490.)94 b(Non-mem)m(b)s(er)30 b(v)m(ersion)i(\(scalar)h(\014rst\).)0 3479 y Fn(h)14 b Fm(Declare)27 b(non-mem)n(b)r(er)g(functions)h(for)f Fk(P)m(oin)m(ts)40 b Fl(436)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3579 y Fk(P)m(oin)m(t)33 b(op)s(erator)5 b Fn(\003)o +3578 y Fk(P)m(oin)m(t)33 b(op)s(erator)5 b Fn(\003)o Fm(\()p Fk(const)33 b(real)5 b Fe(;)14 b Fk(const)32 -b(P)m(oin)m(t)h Fm(&)p Fe(p)o Fm(\);)0 3778 y Fk(491.)0 -3903 y Fn(h)14 b Fm(De\014ne)28 b(non-mem)n(b)r(er)f(functions)h(for)f +b(P)m(oin)m(t)h Fm(&)p Fe(p)o Fm(\);)0 3777 y Fk(491.)0 +3902 y Fn(h)14 b Fm(De\014ne)28 b(non-mem)n(b)r(er)f(functions)h(for)f Fk(P)m(oin)m(ts)40 b Fl(437)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4002 y Fk(P)m(oin)m(t)33 b(op)s(erator)5 b Fn(\003)o Fm(\()p Fk(const)33 b(real)f Fe(r)s(;)14 b Fk(const)33 -b(P)m(oin)m(t)f Fm(&)p Fe(p)p Fm(\))83 4102 y Fn(f)166 +b(P)m(oin)m(t)f Fm(&)p Fe(p)p Fm(\))83 4101 y Fn(f)166 4201 y Fk(return)h Fe(p)18 b Fn(\003)g Fe(r)s Fm(;)83 -4301 y Fn(g)0 4500 y Fk(492.)94 b(Unary)34 b(min)m(us.)p -0 4600 1643 4 v 1738 4632 a(Begin)d(Log)p 2257 4600 V -83 4773 a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(Made)27 -b(this)h(function)h Fk(const)t Fm(.)p 0 4865 1678 4 v -1773 4897 a Fk(End)j(Log)p 2222 4865 V 0 5022 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 5122 y Fk(P)m(oin)m(t)33 -b(op)s(erator)5 b Fn(\000)o Fm(\()14 b(\))28 b Fk(const)5 -b Fm(;)p eop end -%%Page: 131 131 -TeXDict begin 131 130 bop 0 83 a Fn(x)p Fm(493)140 b -Fl(3DLDFPR)n(G)2429 b(UNAR)-6 b(Y)23 b(MINUS)141 b Fm(131)0 +4300 y Fn(g)0 4500 y Fk(492.)94 b(Unary)34 b(min)m(us.)p +0 4598 1779 4 v 1874 4631 a(Log)p 2122 4598 V 83 4772 +a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(Made)27 +b(this)h(function)h Fk(const)t Fm(.)p 0 4863 3900 4 v +0 5021 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +5120 y Fk(P)m(oin)m(t)33 b(op)s(erator)5 b Fn(\000)o +Fm(\()14 b(\))28 b Fk(const)5 b Fm(;)p eop end +%%Page: 132 132 +TeXDict begin 132 131 bop 0 83 a Fm(132)140 b Fl(UNAR)-6 +b(Y)23 b(MINUS)2429 b(3DLDFPR)n(G)142 b Fn(x)p Fm(493)0 263 y Fk(493.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(P)m(oin)m(t)33 b(P)m(oin)m(t)13 b Fm(::)c Fk(op)s(erator)c @@ -13427,110 +13448,107 @@ 1409 y(comm)n(utativ)n(e)27 b(with)h(transformations.)35 b(I)28 b(doubt)f(it.)38 b(Therefore,)26 b(I)i(apply)f Fi(tr)l(ansform)39 b Fm(b)r(efore)27 b(dividing.)p 0 -1508 1643 4 v 1738 1541 a Fk(Begin)k(Log)p 2257 1508 -V 83 1681 a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 -b(Made)27 b(the)h(argumen)n(t)f Fe(r)j Fk(const)5 b Fm(.)p -0 1773 1678 4 v 1773 1806 a Fk(End)32 b(Log)p 2222 1773 -V 0 1930 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 -b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2030 y Fk(v)m(oid)33 b(op)s(erator)t Fe(=)p Fm(=)o(\()p -Fk(const)g(real)g Fe(r)r Fm(\);)0 2229 y Fk(495.)0 2354 -y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2453 y Fk(v)m(oid)33 -b(P)m(oin)m(t)13 b Fm(::)8 b Fk(op)s(erator)d Fe(=)p -Fm(=)o(\()p Fk(const)33 b(real)g Fe(r)r Fm(\))83 2553 -y Fn(f)166 2653 y Fi(apply)p 358 2653 26 4 v 32 w(tr)l(ansform)11 -b Fm(\()j(\);)166 2752 y Fk(for)33 b Fm(\()p Fk(in)m(t)f -Fe(i)23 b Fm(=)g(0)o(;)42 b Fe(i)23 b(<)f Fm(3;)41 b -Fe(i)1017 2744 y Fg(+)-8 b(+)1115 2752 y Fm(\))42 b Fi(world)p -1389 2752 V 31 w(c)l(o)l(or)l(dinates)13 b Fm([)p Fe(i)o -Fm(])23 b Fe(=)p Fm(=)f Fe(r)s Fm(;)83 2852 y Fn(g)0 -3051 y Fk(496.)94 b(V)-8 b(ector-scalar)33 b(division.)p -0 3127 1643 4 v 1738 3160 a(Begin)e(Log)p 2257 3127 V -83 3300 a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(Made)27 -b(this)h(function)h(and)e(the)h(argumen)n(t)e Fe(r)31 -b Fk(const)5 b Fm(.)p 0 3392 1678 4 v 1773 3425 a Fk(End)32 -b(Log)p 2222 3392 V 0 3549 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 3649 y Fk(P)m(oin)m(t)33 b(op)s(erator)5 -b Fe(=)p Fm(\()p Fk(const)32 b(real)g Fe(r)s Fm(\))c -Fk(const)5 b Fm(;)p eop end -%%Page: 132 132 -TeXDict begin 132 131 bop 0 83 a Fm(132)140 b Fl(VECTOR-SCALAR)22 -b(DIVISION)1968 b(3DLDFPR)n(G)142 b Fn(x)p Fm(497)0 263 -y Fk(497.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 -b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -487 y Fk(P)m(oin)m(t)33 b(P)m(oin)m(t)13 b Fm(::)c Fk(op)s(erator)c -Fe(=)p Fm(\()p Fk(const)32 b(real)g Fe(r)s Fm(\))c Fk(const)83 -587 y Fn(f)166 686 y Fk(P)m(oin)m(t)33 b Fe(a)p Fm(\()p -Fn(\003)p Fi(this)11 b Fm(\);)166 811 y Fe(a:)p Fi(apply)p -425 811 26 4 v 32 w(tr)l(ansform)g Fm(\()j(\);)166 911 -y Fe(a)23 b(=)p Fm(=)f Fe(r)s Fm(;)166 1010 y Fk(return)33 -b Fe(a)p Fm(;)83 1110 y Fn(g)0 1309 y Fk(498.)94 b(Dot)32 -b(pro)s(duct.)p 0 1408 1643 4 v 1738 1441 a(Begin)f(Log)p -2257 1408 V 83 1582 a Fm([)p Fh(LDF)25 b(2002.10.27.)p -Fm(])61 b(Changed)26 b(this)h(function)h(and)e(argumen)n(t)g -Fe(p)h Fm(to)g Fk(const)5 b Fm(.)36 b(No)n(w)27 b(using)f -Fi(world)p 3158 1582 26 4 v 32 w(c)l(o)l(or)l(dinates)39 -b Fm(directly)0 1681 y(instead)27 b(of)h Fi(get)p 490 -1681 V 30 w(x)14 b Fm(\()g(\),)28 b Fi(get)p 806 1681 -V 31 w(y)12 b Fm(\()i(\),)28 b(and)f Fi(get)p 1283 1681 -V 31 w(z)14 b Fm(\()g(\).)83 1781 y([)p Fh(LDF)25 b(2003.07.11.)p -Fm(])61 b(Changed,)27 b(so)g(that)h(if)g(the)g(dot)g(pro)r(duct)f(is)h -(less)f(than)h Fk(P)m(oin)m(t)13 b Fm(::)8 b Fi(epsilon)k -Fm(\()j(\),)28 b(0)f(will)h(b)r(e)g(returned.)p 0 1873 -1678 4 v 1773 1905 a Fk(End)k(Log)p 2222 1873 V 0 2030 +1507 1779 4 v 1874 1540 a Fk(Log)p 2122 1507 V 83 1681 +a Fm([)p Fh(LDF)e(2002.10.27.)p Fm(])61 b(Made)27 b(the)h(argumen)n(t)f +Fe(r)j Fk(const)5 b Fm(.)p 0 1773 3900 4 v 0 1930 a Fn(h)14 +b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2029 y Fk(v)m(oid)33 +b(op)s(erator)t Fe(=)p Fm(=)o(\()p Fk(const)g(real)g +Fe(r)r Fm(\);)0 2229 y Fk(495.)0 2353 y Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 2453 y Fk(v)m(oid)33 b(P)m(oin)m(t)13 +b Fm(::)8 b Fk(op)s(erator)d Fe(=)p Fm(=)o(\()p Fk(const)33 +b(real)g Fe(r)r Fm(\))83 2552 y Fn(f)166 2652 y Fi(apply)p +358 2652 26 4 v 32 w(tr)l(ansform)11 b Fm(\()j(\);)166 +2752 y Fk(for)33 b Fm(\()p Fk(in)m(t)f Fe(i)23 b Fm(=)g(0)o(;)42 +b Fe(i)23 b(<)f Fm(3;)41 b Fe(i)1017 2744 y Fg(+)-8 b(+)1115 +2752 y Fm(\))42 b Fi(world)p 1389 2752 V 31 w(c)l(o)l(or)l(dinates)13 +b Fm([)p Fe(i)o Fm(])23 b Fe(=)p Fm(=)f Fe(r)s Fm(;)83 +2851 y Fn(g)0 3050 y Fk(496.)94 b(V)-8 b(ector-scalar)33 +b(division.)p 0 3126 1779 4 v 1874 3159 a(Log)p 2122 +3126 V 83 3300 a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 +b(Made)27 b(this)h(function)h(and)e(the)h(argumen)n(t)e +Fe(r)31 b Fk(const)5 b Fm(.)p 0 3391 3900 4 v 0 3549 +a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3648 y Fk(P)m(oin)m(t)33 +b(op)s(erator)5 b Fe(=)p Fm(\()p Fk(const)32 b(real)g +Fe(r)s Fm(\))c Fk(const)5 b Fm(;)p eop end +%%Page: 133 133 +TeXDict begin 133 132 bop 0 83 a Fn(x)p Fm(497)140 b +Fl(3DLDFPR)n(G)1967 b(VECTOR-SCALAR)22 b(DIVISION)142 +b Fm(133)0 263 y Fk(497.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 487 y Fk(P)m(oin)m(t)33 b(P)m(oin)m(t)13 +b Fm(::)c Fk(op)s(erator)c Fe(=)p Fm(\()p Fk(const)32 +b(real)g Fe(r)s Fm(\))c Fk(const)83 587 y Fn(f)166 686 +y Fk(P)m(oin)m(t)33 b Fe(a)p Fm(\()p Fn(\003)p Fi(this)11 +b Fm(\);)166 811 y Fe(a:)p Fi(apply)p 425 811 26 4 v +32 w(tr)l(ansform)g Fm(\()j(\);)166 911 y Fe(a)23 b(=)p +Fm(=)f Fe(r)s Fm(;)166 1010 y Fk(return)33 b Fe(a)p Fm(;)83 +1110 y Fn(g)0 1309 y Fk(498.)94 b(Dot)32 b(pro)s(duct.)p +0 1408 1779 4 v 1874 1440 a(Log)p 2122 1408 V 83 1581 +a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(Changed)26 +b(this)h(function)h(and)e(argumen)n(t)g Fe(p)h Fm(to)g +Fk(const)5 b Fm(.)36 b(No)n(w)27 b(using)f Fi(world)p +3158 1581 26 4 v 32 w(c)l(o)l(or)l(dinates)39 b Fm(directly)0 +1681 y(instead)27 b(of)h Fi(get)p 490 1681 V 30 w(x)14 +b Fm(\()g(\),)28 b Fi(get)p 806 1681 V 31 w(y)12 b Fm(\()i(\),)28 +b(and)f Fi(get)p 1283 1681 V 31 w(z)14 b Fm(\()g(\).)83 +1780 y([)p Fh(LDF)25 b(2003.07.11.)p Fm(])61 b(Changed,)27 +b(so)g(that)h(if)g(the)g(dot)g(pro)r(duct)f(is)h(less)f(than)h +Fk(P)m(oin)m(t)13 b Fm(::)8 b Fi(epsilon)k Fm(\()j(\),)28 +b(0)f(will)h(b)r(e)g(returned.)p 0 1872 3900 4 v 0 2029 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2130 y Fk(real)32 -b Fi(dot)p 388 2130 26 4 v 31 w(pr)l(o)l(duct)13 b Fm(\()p +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2129 y Fk(real)32 +b Fi(dot)p 388 2129 26 4 v 31 w(pr)l(o)l(duct)13 b Fm(\()p Fk(P)m(oin)m(t)33 b Fe(p)p Fm(\))28 b Fk(const)t Fm(;)0 -2329 y Fk(499.)0 2453 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +2328 y Fk(499.)0 2453 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -2553 y Fk(real)32 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(dot)p -680 2553 V 31 w(pr)l(o)l(duct)13 b Fm(\()p Fk(P)m(oin)m(t)33 -b Fe(p)p Fm(\))27 b Fk(const)83 2653 y Fn(f)166 2752 +2552 y Fk(real)32 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(dot)p +680 2552 V 31 w(pr)l(o)l(duct)13 b Fm(\()p Fk(P)m(oin)m(t)33 +b Fe(p)p Fm(\))27 b Fk(const)83 2652 y Fn(f)166 2752 y Fk(P)m(oin)m(t)33 b Fe(a)p Fm(\()p Fn(\003)p Fi(this)11 -b Fm(\);)166 2877 y Fe(a:)p Fi(apply)p 425 2877 V 32 +b Fm(\);)166 2876 y Fe(a:)p Fi(apply)p 425 2876 V 32 w(tr)l(ansform)g Fm(\()j(\);)166 2976 y Fe(p:)p Fi(apply)p -423 2976 V 32 w(tr)l(ansform)d Fm(\()j(\);)166 3101 y +423 2976 V 32 w(tr)l(ansform)d Fm(\()j(\);)166 3100 y Fk(real)42 b Fe(r)g Fm(=)c(\(\()p Fe(a)q(:)p Fi(world)p -878 3101 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([0)o(])25 -b Fn(\003)f Fe(p:)p Fi(world)p 1761 3101 V 32 w(c)l(o)l(or)l(dinates)12 -b Fm([0]\))25 b(+)f(\()p Fe(a:)p Fi(world)p 2734 3101 +878 3100 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([0)o(])25 +b Fn(\003)f Fe(p:)p Fi(world)p 1761 3100 V 32 w(c)l(o)l(or)l(dinates)12 +b Fm([0]\))25 b(+)f(\()p Fe(a:)p Fi(world)p 2734 3100 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([1])25 b Fn(\003)332 -3201 y Fe(p:)p Fi(world)p 597 3201 V 32 w(c)l(o)l(or)l(dinates)12 -b Fm([1)o(]\))19 b(+)f(\()p Fe(a:)p Fi(world)p 1557 3201 +3200 y Fe(p:)p Fi(world)p 597 3200 V 32 w(c)l(o)l(or)l(dinates)12 +b Fm([1)o(]\))19 b(+)f(\()p Fe(a:)p Fi(world)p 1557 3200 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([2])18 b Fn(\003)g -Fe(p:)p Fi(world)p 2428 3201 V 32 w(c)l(o)l(or)l(dinates)12 -b Fm([2]\)\);)166 3325 y Fk(if)41 b Fm(\()p Fi(fabs)13 +Fe(p:)p Fi(world)p 2428 3200 V 32 w(c)l(o)l(or)l(dinates)12 +b Fm([2]\)\);)166 3324 y Fk(if)41 b Fm(\()p Fi(fabs)13 b Fm(\()p Fe(r)s Fm(\))23 b Fe(<)g Fk(P)m(oin)m(t)13 b Fm(::)c Fi(epsilon)j Fm(\()i(\)\))42 b Fe(r)26 b Fm(=)c(0;)166 -3425 y Fk(return)33 b Fe(r)s Fm(;)83 3524 y Fn(g)0 3724 -y Fk(500.)94 b(Cross)31 b(pro)s(duct.)p 0 3823 1643 4 -v 1738 3856 a(Begin)g(Log)p 2257 3823 V 83 3996 a Fm([)p -Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(Changed)26 b(this)h(function)h(and) -e(argumen)n(t)g Fe(p)h Fm(to)g Fk(const)5 b Fm(.)36 b(No)n(w)27 -b(using)f Fi(world)p 3158 3996 26 4 v 32 w(c)l(o)l(or)l(dinates)39 -b Fm(directly)0 4096 y(instead)27 b(of)h Fi(get)p 490 -4096 V 30 w(x)14 b Fm(\()g(\),)28 b Fi(get)p 806 4096 -V 31 w(y)12 b Fm(\()i(\),)28 b(and)f Fi(get)p 1283 4096 -V 31 w(z)14 b Fm(\()g(\).)p 0 4188 1678 4 v 1773 4220 -a Fk(End)32 b(Log)p 2222 4188 V 0 4345 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 4445 y Fk(P)m(oin)m(t)33 b Fi(cr)l(oss)p -524 4445 26 4 v 31 w(pr)l(o)l(duct)12 b Fm(\()p Fk(P)m(oin)m(t)33 -b Fe(p)p Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 133 133 -TeXDict begin 133 132 bop 0 83 a Fn(x)p Fm(501)140 b -Fl(3DLDFPR)n(G)2326 b(CR)n(OSS)24 b(PR)n(ODUCT)140 b -Fm(133)0 263 y Fk(501.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 487 y Fk(P)m(oin)m(t)33 b(P)m(oin)m(t)13 -b Fm(::)8 b Fi(cr)l(oss)p 815 487 26 4 v 32 w(pr)l(o)l(duct)k -Fm(\()p Fk(P)m(oin)m(t)33 b Fe(p)p Fm(\))28 b Fk(const)83 -587 y Fn(f)166 686 y Fk(P)m(oin)m(t)33 b Fe(a)p Fm(\()p -Fn(\003)p Fi(this)11 b Fm(\);)166 811 y Fe(a:)p Fi(apply)p -425 811 V 32 w(tr)l(ansform)g Fm(\()j(\);)166 911 y Fe(p:)p +3424 y Fk(return)33 b Fe(r)s Fm(;)83 3524 y Fn(g)0 3723 +y Fk(500.)94 b(Cross)31 b(pro)s(duct.)p 0 3822 1779 4 +v 1874 3854 a(Log)p 2122 3822 V 83 3995 a Fm([)p Fh(LDF)25 +b(2002.10.27.)p Fm(])61 b(Changed)26 b(this)h(function)h(and)e(argumen) +n(t)g Fe(p)h Fm(to)g Fk(const)5 b Fm(.)36 b(No)n(w)27 +b(using)f Fi(world)p 3158 3995 26 4 v 32 w(c)l(o)l(or)l(dinates)39 +b Fm(directly)0 4094 y(instead)27 b(of)h Fi(get)p 490 +4094 V 30 w(x)14 b Fm(\()g(\),)28 b Fi(get)p 806 4094 +V 31 w(y)12 b Fm(\()i(\),)28 b(and)f Fi(get)p 1283 4094 +V 31 w(z)14 b Fm(\()g(\).)p 0 4186 3900 4 v 0 4344 a +Fn(h)g Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4443 y Fk(P)m(oin)m(t)33 +b Fi(cr)l(oss)p 524 4443 26 4 v 31 w(pr)l(o)l(duct)12 +b Fm(\()p Fk(P)m(oin)m(t)33 b Fe(p)p Fm(\))28 b Fk(const)5 +b Fm(;)p eop end +%%Page: 134 134 +TeXDict begin 134 133 bop 0 83 a Fm(134)140 b Fl(CR)n(OSS)23 +b(PR)n(ODUCT)2326 b(3DLDFPR)n(G)142 b Fn(x)p Fm(501)0 +263 y Fk(501.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +487 y Fk(P)m(oin)m(t)33 b(P)m(oin)m(t)13 b Fm(::)8 b +Fi(cr)l(oss)p 815 487 26 4 v 32 w(pr)l(o)l(duct)k Fm(\()p +Fk(P)m(oin)m(t)33 b Fe(p)p Fm(\))28 b Fk(const)83 587 +y Fn(f)166 686 y Fk(P)m(oin)m(t)33 b Fe(a)p Fm(\()p Fn(\003)p +Fi(this)11 b Fm(\);)166 811 y Fe(a:)p Fi(apply)p 425 +811 V 32 w(tr)l(ansform)g Fm(\()j(\);)166 911 y Fe(p:)p Fi(apply)p 423 911 V 32 w(tr)l(ansform)d Fm(\()j(\);)166 1035 y Fk(P)m(oin)m(t)33 b Fe(r)s Fm(;)166 1160 y Fe(r)s(:)p Fi(world)p 429 1160 V 32 w(c)l(o)l(or)l(dinates)12 b @@ -13580,33 +13598,32 @@ b(Pr)l(o)l(gr)l(am)p Fm(.)53 b(\(Get)33 b(reference!!\))52 b(Ho)n(w)n(ev)n(er,)32 b(it)h(migh)n(t)g(b)r(e)0 2627 y(nice)28 b(to)f(use)h(it)g(an)n(yw)n(a)n(y)-7 b(.)p -0 2726 1643 4 v 1738 2759 a Fk(Begin)31 b(Log)p 2257 -2726 V 83 2899 a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])70 -b(Made)36 b(this)h(function)g Fk(const)5 b Fm(.)64 b(No)n(w)36 +0 2725 1779 4 v 1874 2758 a Fk(Log)p 2122 2725 V 83 2899 +a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])70 b(Made)36 +b(this)h(function)g Fk(const)5 b Fm(.)64 b(No)n(w)36 b(using)g Fi(world)p 2424 2899 26 4 v 32 w(c)l(o)l(or)l(dinates)49 b Fm(directly)36 b(instead)h(of)f Fi(get)p 3720 2899 -V 31 w(x)14 b Fm(\()g(\),)0 2999 y Fi(get)p 109 2999 -V 31 w(y)d Fm(\()k(\),)28 b(and)f Fi(get)p 586 2999 V -31 w(z)14 b Fm(\()g(\).)p 0 3091 1678 4 v 1773 3123 a -Fk(End)32 b(Log)p 2222 3091 V 0 3248 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 3348 y Fk(real)32 b Fi(magnitude)11 +V 31 w(x)14 b Fm(\()g(\),)0 2998 y Fi(get)p 109 2998 +V 31 w(y)d Fm(\()k(\),)28 b(and)f Fi(get)p 586 2998 V +31 w(z)14 b Fm(\()g(\).)p 0 3090 3900 4 v 0 3247 a Fn(h)g +Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3347 y Fk(real)32 b Fi(magnitude)11 b Fm(\()j(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 134 134 -TeXDict begin 134 133 bop 0 83 a Fm(134)140 b Fl(MA)n(GNITUDE)2490 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(503)0 263 y Fk(503.)0 388 -y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(real)32 -b(P)m(oin)m(t)14 b Fm(::)8 b Fi(magnitude)j Fm(\()j(\))28 -b Fk(const)83 587 y Fn(f)166 686 y Fk(real)33 b Fe(r)r -Fm(;)166 786 y Fk(real)g Fi(temp)9 b Fm(;)166 886 y Fk(P)m(oin)m(t)33 -b Fe(a)p Fm(\()p Fn(\003)p Fi(this)11 b Fm(\);)166 1010 -y Fe(a:)p Fi(apply)p 425 1010 26 4 v 32 w(tr)l(ansform)g -Fm(\()j(\);)166 1110 y Fk(if)57 b Fm(\(\()p Fe(a:)p Fi(world)p -610 1110 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([0])49 b -Fe(>)g Ff(MAX_REAL_SQRT)o Fm(\))29 b Fn(_)g Fm(\()p Fe(a)q(:)p -Fi(world)p 2317 1110 V 32 w(c)l(o)l(or)l(dinates)12 b -Fm([1)o(])49 b Fe(>)415 1209 y Ff(MAX_REAL_SQRT)o Fm(\))19 +%%Page: 135 135 +TeXDict begin 135 134 bop 0 83 a Fn(x)p Fm(503)140 b +Fl(3DLDFPR)n(G)2490 b(MA)n(GNITUDE)141 b Fm(135)0 263 +y Fk(503.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +487 y Fk(real)32 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(magnitude)j +Fm(\()j(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(real)33 +b Fe(r)r Fm(;)166 786 y Fk(real)g Fi(temp)9 b Fm(;)166 +886 y Fk(P)m(oin)m(t)33 b Fe(a)p Fm(\()p Fn(\003)p Fi(this)11 +b Fm(\);)166 1010 y Fe(a:)p Fi(apply)p 425 1010 26 4 +v 32 w(tr)l(ansform)g Fm(\()j(\);)166 1110 y Fk(if)57 +b Fm(\(\()p Fe(a:)p Fi(world)p 610 1110 V 32 w(c)l(o)l(or)l(dinates)12 +b Fm([0])49 b Fe(>)g Ff(MAX_REAL_SQRT)o Fm(\))29 b Fn(_)g +Fm(\()p Fe(a)q(:)p Fi(world)p 2317 1110 V 32 w(c)l(o)l(or)l(dinates)12 +b Fm([1)o(])49 b Fe(>)415 1209 y Ff(MAX_REAL_SQRT)o Fm(\))19 b Fn(_)g Fm(\()p Fe(a:)p Fi(world)p 1410 1209 V 32 w(c)l(o)l(or)l (dinates)12 b Fm([2)o(])23 b Fe(>)g Ff(MAX_REAL_SQRT)o Fm(\)\))42 b Fn(f)249 1309 y Fi(c)l(err)83 b Fn(\034)70 @@ -13656,26 +13673,25 @@ 3401 y Fn(g)166 3501 y Fe(r)26 b Fm(+=)c Fi(temp)10 b Fm(;)166 3601 y Fk(return)33 b Fi(sqrt)12 b Fm(\()p Fe(r)s Fm(\);)83 3700 y Fn(g)0 3899 y Fk(504.)94 b(Angle)31 -b(b)s(et)m(w)m(een)h(t)m(w)m(o)g(v)m(ectors.)p 0 3999 -1643 4 v 1738 4031 a(Begin)f(Log)p 2257 3999 V 83 4172 -a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(Made)27 -b(this)h(function)h Fk(const)t Fm(.)83 4272 y([)p Fh(LDF)c(2003.07.27.) -p Fm(])61 b(Made)27 b(the)h(argumen)n(t)f Fe(p)g Fm(a)h +b(b)s(et)m(w)m(een)h(t)m(w)m(o)g(v)m(ectors.)p 0 3998 +1779 4 v 1874 4031 a(Log)p 2122 3998 V 83 4171 a Fm([)p +Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(Made)27 b(this)h(function)h +Fk(const)t Fm(.)83 4271 y([)p Fh(LDF)c(2003.07.27.)p +Fm(])61 b(Made)27 b(the)h(argumen)n(t)f Fe(p)g Fm(a)h Fk(const)k(P)m(oin)m(t)h Fm(&)o(.)k(No)28 b(longer)e(cop)n(ying)h Fn(\003)o Fi(this)12 b Fm(.)37 b(No)n(w)27 b(using)0 4371 y Fi(dot)p 117 4371 26 4 v 31 w(pr)l(o)l(duct)12 b Fm(\()i(\))28 b(instead)g(of)f(calculating)g(the)h(angle)f(\\b)n(y)g (hand".)36 b(Simpli\014ed)28 b(the)g(co)r(de)g(of)f(the)h(function.)p -0 4463 1678 4 v 1773 4496 a Fk(End)k(Log)p 2222 4463 -V 0 4620 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +0 4462 3900 4 v 0 4620 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4720 y Fk(real)32 b Fi(angle)12 b Fm(\()p Fk(const)32 +4719 y Fk(real)32 b Fi(angle)12 b Fm(\()p Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fe(p)p Fm(\))28 b Fk(const)t Fm(;)p eop end -%%Page: 135 135 -TeXDict begin 135 134 bop 0 83 a Fn(x)p Fm(505)140 b -Fl(3DLDFPR)n(G)1726 b(ANGLE)24 b(BETWEEN)g(TW)n(O)g(VECTORS)140 -b Fm(135)0 263 y Fk(505.)0 388 y Fn(h)14 b Fm(De\014ne)28 +%%Page: 136 136 +TeXDict begin 136 135 bop 0 83 a Fm(136)140 b Fl(ANGLE)23 +b(BETWEEN)h(TW)n(O)g(VECTORS)1726 b(3DLDFPR)n(G)142 b +Fn(x)p Fm(505)0 263 y Fk(505.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(real)32 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(angle)k Fm(\()p Fk(const)32 b(P)m(oin)m(t)h @@ -13720,8 +13736,8 @@ V 31 w(pr)l(o)l(duct)h Fm(\()p Fe(p)p Fm(\))p Fe(=)p Fm(\()p Fi(mag)30 b Fn(\003)18 b Fi(p)p 2111 2803 V 31 w(mag)12 b Fm(\)\)\);)83 2903 y Fn(g)0 3102 y Fk(506.)94 -b(Unit)32 b(v)m(ector.)p 0 3178 1643 4 v 1738 3211 a(Begin)f(Log)p -2257 3178 V 83 3351 a Fm([)p Fh(LDF)25 b(2002.10.27.)p +b(Unit)32 b(v)m(ector.)p 0 3178 1779 4 v 1874 3211 a(Log)p +2122 3178 V 83 3351 a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])67 b(Added)34 b(a)f(second)f(v)n(ersion.)53 b(If)33 b Fi(assign)45 b Fm(is)33 b(not)h(used,)g Fi(unit)p 2661 3351 26 4 v 30 w(ve)l(ctor)14 b Fm(\()g(\))33 b(can)g(b)r(e)h @@ -13729,42 +13745,42 @@ b(a)g Fk(const)32 b Fm(v)n(ersion)25 b(with)i(no)g(argumen)n(t)e(and)i (a)g(non-)p Fk(const)k Fm(one)26 b(for)g(assignmen)n(t)g(that)h(should) g(b)r(e)g(called)f(with)i(the)0 3551 y(argumen)n(t)f -Fi(true)9 b Fm(.)p 0 3643 1678 4 v 1773 3675 a Fk(End)32 -b(Log)p 2222 3643 V 0 3874 a(507.)94 b(With)28 b(assignmen)m(t.)94 -b Fm(This)25 b(v)n(ersion)f(should)h(only)f(ev)n(er)g(b)r(e)i(called)e -(with)i Fi(true)35 b Fm(as)24 b(its)h(argumen)n(t.)35 -b(Using)25 b Fi(false)0 3974 y Fm(will)j(w)n(ork,)e(unless)h -Fn(\003)p Fi(this)39 b Fm(is)28 b Fk(const)t Fm(,)g(in)g(whic)n(h)f -(case)g(it)h(will)g(cause)f(an)g(compilation)g(error.)35 -b([)p Fh(LDF)26 b(2002.10.27.)p Fm(])83 4074 y(If)c(the)g(optional)f +Fi(true)9 b Fm(.)p 0 3643 3900 4 v 0 3874 a Fk(507.)94 +b(With)28 b(assignmen)m(t.)94 b Fm(This)25 b(v)n(ersion)f(should)h +(only)f(ev)n(er)g(b)r(e)i(called)e(with)i Fi(true)35 +b Fm(as)24 b(its)h(argumen)n(t.)35 b(Using)25 b Fi(false)0 +3974 y Fm(will)j(w)n(ork,)e(unless)h Fn(\003)p Fi(this)39 +b Fm(is)28 b Fk(const)t Fm(,)g(in)g(whic)n(h)f(case)g(it)h(will)g +(cause)f(an)g(compilation)g(error.)35 b([)p Fh(LDF)26 +b(2002.10.27.)p Fm(])83 4074 y(If)c(the)g(optional)f Fi(silent)33 b Fm(argumen)n(t)21 b(is)g Fi(true)10 b Fm(,)23 b(w)n(arning)d(messages)g(will)h(b)r(e)h(suppressed,)g (otherwise,)g(they)g(will)f(b)r(e)h(issued.)0 4173 y(The)33 b Fk(const)38 b Fm(v)n(ersion)31 b(b)r(elo)n(w)i(can't)g(ha)n(v)n(e)f (an)h(optional)f Fi(silent)45 b Fm(argumen)n(t,)34 b(b)r(ecause)e(that) i(w)n(ould)e(mak)n(e)h(a)f(call)h(to)g(this)0 4273 y(function)28 -b(with)g(one)f(argumen)n(t)g(am)n(biguous.)p 0 4372 1643 -4 v 1738 4405 a Fk(Begin)k(Log)p 2257 4372 V 83 4546 -a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])61 b(If)28 b -Fi(magnitude)11 b Fm(\()j(\))28 b(fails,)g Fi(unit)p -1659 4546 26 4 v 29 w(ve)l(ctor)14 b Fm(\()g(\))28 b(no)n(w)f(returns)g +b(with)g(one)f(argumen)n(t)g(am)n(biguous.)p 0 4372 1779 +4 v 1874 4404 a Fk(Log)p 2122 4372 V 83 4545 a Fm([)p +Fh(LDF)e(2002.10.27.)p Fm(])61 b(If)28 b Fi(magnitude)11 +b Fm(\()j(\))28 b(fails,)g Fi(unit)p 1659 4545 26 4 v +29 w(ve)l(ctor)14 b Fm(\()g(\))28 b(no)n(w)f(returns)g Ff(INVALID_POINT)g Fm(instead)g(of)h Fi(origin)11 b Fm(.)83 4645 y([)p Fh(LDF)25 b(2003.07.01.)p Fm(])57 b(Added)24 b(the)g Fi(silent)36 b Fm(argumen)n(t)23 b(to)g(suppress)g(w)n(arning)f (messages.)34 b(I)24 b(k)n(ept)g(getting)f(w)n(arnings)f(when)0 -4745 y(this)g(function)g(w)n(as)e(called)h(from)g(in)n(tersection)g +4744 y(this)g(function)g(w)n(as)e(called)h(from)g(in)n(tersection)g (functions,)i(in)f(cases)e(where)h(it)h(w)n(asn't)f(a)g(problem,)h (that)g(a)f Fk(P)m(oin)m(t)27 b Fm(\(v)n(ector\))0 4844 -y(had)g(0)h(magnitude.)p 0 4936 1678 4 v 1773 4969 a -Fk(End)k(Log)p 2222 4936 V 0 5094 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 5193 y Fk(P)m(oin)m(t)33 b Fi(unit)p -490 5193 26 4 v 30 w(ve)l(ctor)13 b Fm(\()p Fk(const)33 -b(b)s(o)s(ol)e Fi(assign)11 b Fe(;)j Fk(const)32 b(b)s(o)s(ol)f -Fi(silent)k Fm(=)23 b Fi(false)12 b Fm(\);)p eop end -%%Page: 136 136 -TeXDict begin 136 135 bop 0 83 a Fm(136)140 b Fl(WITH)24 -b(ASSIGNMENT)2239 b(3DLDFPR)n(G)142 b Fn(x)p Fm(508)0 +y(had)g(0)h(magnitude.)p 0 4936 3900 4 v 0 5093 a Fn(h)14 +b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i +Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 5192 y Fk(P)m(oin)m(t)33 +b Fi(unit)p 490 5192 26 4 v 30 w(ve)l(ctor)13 b Fm(\()p +Fk(const)33 b(b)s(o)s(ol)e Fi(assign)11 b Fe(;)j Fk(const)32 +b(b)s(o)s(ol)f Fi(silent)k Fm(=)23 b Fi(false)12 b Fm(\);)p +eop end +%%Page: 137 137 +TeXDict begin 137 136 bop 0 83 a Fn(x)p Fm(508)140 b +Fl(3DLDFPR)n(G)2239 b(WITH)24 b(ASSIGNMENT)141 b Fm(137)0 263 y Fk(508.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(P)m(oin)m(t)33 b(P)m(oin)m(t)13 b Fm(::)8 b @@ -13824,88 +13840,88 @@ b Fe(a)p Fm(\()p Fn(\003)p Fi(this)11 b Fm(\);)166 4198 y Fk(return)33 b Fe(a:)p Fi(unit)p 681 4198 V 30 w(ve)l(ctor)13 b Fm(\()p Fi(true)e Fm(\);)83 4298 y Fn(g)0 4497 y Fk(511.)94 -b(Mediation.)0 4622 y Fn(h)14 b Fm(Declare)27 b(non-mem)n(b)r(er)g -(functions)h(for)f Fk(P)m(oin)m(ts)40 b Fl(436)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 4721 y Fk(P)m(oin)m(t)33 b Fi(me)l(diate)11 -b Fm(\()p Fk(P)m(oin)m(t)33 b Fi(p0)17 b Fe(;)d Fk(P)m(oin)m(t)33 -b Fi(p1)16 b Fe(;)e Fk(const)32 b(real)h Fe(r)25 b Fm(=)e -Fe(:)p Fm(5\);)p eop end -%%Page: 137 137 -TeXDict begin 137 136 bop 0 83 a Fn(x)p Fm(512)140 b -Fl(3DLDFPR)n(G)2522 b(MEDIA)-6 b(TION)141 b Fm(137)0 -263 y Fk(512.)0 388 y Fn(h)14 b Fm(De\014ne)28 b(non-mem)n(b)r(er)f -(functions)h(for)f Fk(P)m(oin)m(ts)40 b Fl(437)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 487 y Fk(P)m(oin)m(t)33 b Fi(me)l(diate)11 -b Fm(\()p Fk(P)m(oin)m(t)33 b Fi(p0)17 b Fe(;)d Fk(P)m(oin)m(t)33 -b Fi(p1)16 b Fe(;)e Fk(const)32 b(real)h Fe(r)r Fm(\))83 -587 y Fn(f)166 686 y Fi(p0)16 b Fe(:)p Fi(apply)p 481 -686 26 4 v 33 w(tr)l(ansform)11 b Fm(\()j(\);)166 786 -y Fi(p1)i Fe(:)p Fi(apply)p 481 786 V 33 w(tr)l(ansform)11 -b Fm(\()j(\);)166 886 y Fi(p0)39 b Fn(\003)p Fm(=)23 -b(\(1)18 b Fn(\000)g Fe(r)s Fm(\);)166 985 y Fi(p1)39 -b Fn(\003)p Fm(=)23 b Fe(r)r Fm(;)166 1085 y Fk(return)33 -b Fm(\()p Fi(p0)i Fm(+)18 b Fi(p1)f Fm(\);)83 1185 y -Fn(g)0 1384 y Fk(513.)94 b(Get)27 b(normal.)94 b Fi(get)p -971 1384 V 31 w(normal)13 b Fm(\()h(\))24 b(m)n(ust)f(b)r(e)g +b(Mediation.)p 0 4573 1779 4 v 1874 4606 a(Log)p 2122 +4573 V 83 4746 a Fm([)p Fh(LDF)25 b(2003.12.09.)p Fm(])61 +b(Changed)27 b(from)g(a)h(non-mem)n(b)r(er)e(to)i(a)f +Fk(const)33 b Fm(mem)n(b)r(er)27 b(function.)p 0 4838 +3900 4 v 0 4995 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +5095 y Fk(P)m(oin)m(t)33 b Fi(me)l(diate)11 b Fm(\()p +Fk(P)m(oin)m(t)33 b Fe(p;)14 b Fk(const)33 b(real)f Fe(r)26 +b Fm(=)c Fe(:)p Fm(5\))28 b Fk(const)5 b Fm(;)p eop end +%%Page: 138 138 +TeXDict begin 138 137 bop 0 83 a Fm(138)140 b Fl(MEDIA)-6 +b(TION)2522 b(3DLDFPR)n(G)142 b Fn(x)p Fm(512)0 263 y +Fk(512.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +487 y Fk(P)m(oin)m(t)33 b(P)m(oin)m(t)13 b Fm(::)8 b +Fi(me)l(diate)k Fm(\()p Fk(P)m(oin)m(t)33 b Fe(p;)14 +b Fk(const)32 b(real)h Fe(r)s Fm(\))28 b Fk(const)83 +587 y Fn(f)166 686 y Fk(P)m(oin)m(t)33 b Fe(t)p Fm(\()p +Fn(\003)p Fi(this)11 b Fm(\);)166 811 y Fe(t)23 b Fn(\003)p +Fm(=)f(\(1)c Fn(\000)g Fe(r)s Fm(\);)166 911 y Fe(p)23 +b Fn(\003)p Fm(=)f Fe(r)s Fm(;)166 1010 y Fk(return)33 +b Fm(\()p Fe(t)19 b Fm(+)f Fe(p)p Fm(\);)83 1110 y Fn(g)0 +1309 y Fk(513.)94 b(Get)27 b(normal.)94 b Fi(get)p 971 +1309 26 4 v 31 w(normal)13 b Fm(\()h(\))24 b(m)n(ust)f(b)r(e)g (de\014ned)g(in)g Fj(paths.web)p Fm(,)e(b)r(ecause)h(it)h(uses)g(a)f -Fk(P)m(ath)29 b Fm(in)24 b(its)f(de\014nition,)0 1483 +Fk(P)m(ath)29 b Fm(in)24 b(its)f(de\014nition,)0 1409 y(whic)n(h)28 b(is)f(an)g(incompletely)h(de\014ned)g(t)n(yp)r(e)g(in)g -(this)f(\014le.)p 0 1583 1643 4 v 1738 1615 a Fk(Begin)k(Log)p -2257 1583 V 83 1756 a Fm([)p Fh(LDF)25 b(2003.07.11.)p -Fm(])61 b(Added)28 b(this)g(declaration.)p 0 1848 1678 -4 v 1773 1881 a Fk(End)k(Log)p 2222 1848 V 0 2005 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2105 y Fk(P)m(oin)m(t)33 -b Fi(get)p 449 2105 26 4 v 30 w(normal)14 b Fm(\()p Fk(const)33 -b(P)m(oin)m(t)f Fm(&)p Fe(p;)14 b Fk(const)32 b(P)m(oin)m(t)h -Fm(&)p Fe(q)s Fm(\))28 b Fk(const)t Fm(;)0 2304 y Fk(514.)94 -b(Comparison.)0 2503 y(515.)g(Equalit)m(y)-8 b(.)96 b -Fm(!!)36 b(I)24 b(ma)n(y)g(ha)n(v)n(e)g(to)g(adjust)h(to)f(v)-5 -b(alue)25 b(of)f Fi(eps)12 b Fm(.)36 b(It)25 b(w)n(ould)f(b)r(e)h(nice) -f(to)h(b)r(e)g(able)f(to)g(use)h Fi(epsilon)12 b Fm(\()i(\),)25 -b(but)0 2603 y(for)g(other)f(purp)r(oses)h Fi(epsilon)12 +(this)f(\014le.)p 0 1507 1779 4 v 1874 1540 a Fk(Log)p +2122 1507 V 83 1681 a Fm([)p Fh(LDF)e(2003.07.11.)p Fm(])61 +b(Added)28 b(this)g(declaration.)p 0 1773 3900 4 v 0 +1930 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b +Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2029 y Fk(P)m(oin)m(t)33 b Fi(get)p 449 2029 26 4 v 30 +w(normal)14 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)f Fm(&)p +Fe(p;)14 b Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fe(q)s +Fm(\))28 b Fk(const)t Fm(;)0 2229 y Fk(514.)94 b(Comparison.)0 +2428 y(515.)g(Equalit)m(y)-8 b(.)96 b Fm(!!)36 b(I)24 +b(ma)n(y)g(ha)n(v)n(e)g(to)g(adjust)h(to)f(v)-5 b(alue)25 +b(of)f Fi(eps)12 b Fm(.)36 b(It)25 b(w)n(ould)f(b)r(e)h(nice)f(to)h(b)r +(e)g(able)f(to)g(use)h Fi(epsilon)12 b Fm(\()i(\),)25 +b(but)0 2527 y(for)g(other)f(purp)r(oses)h Fi(epsilon)12 b Fm(\()i(\))25 b(m)n(ust)h(b)r(e)f(smaller.)36 b(T)-7 b(ransformations)23 b(seem)i(to)g(cause)f(fairly)h(large)f -(inaccuracies)f(in)j(the)0 2702 y(v)-5 b(alues)27 b(of)h(the)g(co)r +(inaccuracies)f(in)j(the)0 2627 y(v)-5 b(alues)27 b(of)h(the)g(co)r (ordinates,)e(so)h(I)h(need)f(greater)f(tolerance)g(in)i(the)g (functions)g(testing)g(for)f(equalit)n(y)g(and)g(inequalit)n(y)-7 -b(.)83 2802 y(This)26 b(function)h(could)g(b)r(e)g(form)n(ulated)e +b(.)83 2727 y(This)26 b(function)h(could)g(b)r(e)g(form)n(ulated)e (more)h(succinctly)-7 b(,)27 b(but)g(I)f(had)h(some)f(trouble)g (getting)g(it)h(to)f(w)n(ork)f(prop)r(erly)-7 b(,)26 -b(so)0 2902 y(I'm)i(lea)n(ving)e(it)i(in)g(its)g(more)f(v)n(erb)r(ose)f +b(so)0 2826 y(I'm)i(lea)n(ving)e(it)i(in)g(its)g(more)f(v)n(erb)r(ose)f (form,)h(in)h(case)f(I)g(ha)n(v)n(e)g(to)g(debug)h(it)g(some)f(more.)0 -3101 y Fk(516.)94 b(Non-const)31 b(v)m(ersion.)p 0 3177 -1643 4 v 1738 3209 a(Begin)g(Log)p 2257 3177 V 83 3350 -a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])63 b(Revised)28 -b(this)h(function.)42 b(No)n(w)28 b(using)h Fk(P)m(oin)m(t)34 -b Fe(a)29 b Fm(and)g Fk(P)m(oin)m(t)34 b Fe(q)s Fm(.)41 -b(Added)30 b Fi(factor)43 b Fm(and)29 b(using)f(it)i(as)0 -3450 y(the)d(argumen)n(t)e(to)h Fi(cle)l(an)11 b Fm(\()j(\))27 -b(and)f(for)g(calculating)f Fi(eps)12 b Fm(.)36 b(Since)27 -b(this)f(function)h(is)f(an)g(op)r(erator,)f(it's)i(not)f(p)r(ossible)g -(to)g(pass)0 3549 y Fi(factor)49 b Fm(as)34 b(an)h(argumen)n(t,)h -(unfortunately)-7 b(.)59 b(Using)34 b Fi(cle)l(an)11 -b Fm(\()p Fi(factor)k Fm(\))35 b(mak)n(es)f(it)h(p)r(ossible)g(to)g -(compare)e(the)j(co)r(ordinates)0 3649 y(with)31 b(0)e(directly)h -(rather)f(than)h(using)g Fi(fabs)12 b Fm(\()i(\))31 b(and)f -Fi(eps)11 b Fm(.)45 b(Also,)30 b Fk(op)s(erator)5 b Fn(\021)p -Fm(\()14 b(\))30 b(no)n(w)g(uses)f Fi(world)p 3155 3649 -26 4 v 32 w(c)l(o)l(or)l(dinates)42 b Fm(directly)0 3749 -y(rather)27 b(than)g Fi(get)p 552 3749 V 31 w(x)14 b -Fm(\()g(\),)28 b Fi(get)p 869 3749 V 30 w(y)12 b Fm(\()i(\),)28 -b(and)g Fi(get)p 1346 3749 V 30 w(z)15 b Fm(\()f(\).)83 -3848 y([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 b(Made)27 -b(this)h(function)h(non-)p Fk(const)t Fm(,)e(and)h(added)f -Fk(const)33 b Fm(v)n(ersion)26 b(b)r(elo)n(w.)p 0 3940 -1678 4 v 1773 3973 a Fk(End)32 b(Log)p 2222 3940 V 0 -4097 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b -Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4197 y Fk(b)s(o)s(ol)31 b(op)s(erator)5 b Fn(\021)o Fm(\()p -Fk(P)m(oin)m(t)33 b Fe(p)p Fm(\);)p eop end -%%Page: 138 138 -TeXDict begin 138 137 bop 0 83 a Fm(138)140 b Fl(NON-)p -Fk(CONST)22 b Fl(VERSION)2078 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(517)0 263 y Fk(517.)0 388 y Fn(h)14 b Fm(De\014ne)28 +3026 y Fk(516.)94 b(Non-const)31 b(v)m(ersion.)p 0 3101 +1779 4 v 1874 3134 a(Log)p 2122 3101 V 83 3275 a Fm([)p +Fh(LDF)25 b(2002.10.27.)p Fm(])63 b(Revised)28 b(this)h(function.)42 +b(No)n(w)28 b(using)h Fk(P)m(oin)m(t)34 b Fe(a)29 b Fm(and)g +Fk(P)m(oin)m(t)34 b Fe(q)s Fm(.)41 b(Added)30 b Fi(factor)43 +b Fm(and)29 b(using)f(it)i(as)0 3374 y(the)d(argumen)n(t)e(to)h +Fi(cle)l(an)11 b Fm(\()j(\))27 b(and)f(for)g(calculating)f +Fi(eps)12 b Fm(.)36 b(Since)27 b(this)f(function)h(is)f(an)g(op)r +(erator,)f(it's)i(not)f(p)r(ossible)g(to)g(pass)0 3474 +y Fi(factor)49 b Fm(as)34 b(an)h(argumen)n(t,)h(unfortunately)-7 +b(.)59 b(Using)34 b Fi(cle)l(an)11 b Fm(\()p Fi(factor)k +Fm(\))35 b(mak)n(es)f(it)h(p)r(ossible)g(to)g(compare)e(the)j(co)r +(ordinates)0 3574 y(with)31 b(0)e(directly)h(rather)f(than)h(using)g +Fi(fabs)12 b Fm(\()i(\))31 b(and)f Fi(eps)11 b Fm(.)45 +b(Also,)30 b Fk(op)s(erator)5 b Fn(\021)p Fm(\()14 b(\))30 +b(no)n(w)g(uses)f Fi(world)p 3155 3574 26 4 v 32 w(c)l(o)l(or)l +(dinates)42 b Fm(directly)0 3673 y(rather)27 b(than)g +Fi(get)p 552 3673 V 31 w(x)14 b Fm(\()g(\),)28 b Fi(get)p +869 3673 V 30 w(y)12 b Fm(\()i(\),)28 b(and)g Fi(get)p +1346 3673 V 30 w(z)15 b Fm(\()f(\).)83 3773 y([)p Fh(LDF)25 +b(2003.07.09.)p Fm(])61 b(Made)27 b(this)h(function)h(non-)p +Fk(const)t Fm(,)e(and)h(added)f Fk(const)33 b Fm(v)n(ersion)26 +b(b)r(elo)n(w.)p 0 3865 3900 4 v 0 4022 a Fn(h)14 b Fm(Declare)27 +b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 4121 y Fk(b)s(o)s(ol)31 b(op)s(erator)5 +b Fn(\021)o Fm(\()p Fk(P)m(oin)m(t)33 b Fe(p)p Fm(\);)p +eop end +%%Page: 139 139 +TeXDict begin 139 138 bop 0 83 a Fn(x)p Fm(517)140 b +Fl(3DLDFPR)n(G)2078 b(NON-)p Fk(CONST)22 b Fl(VERSION)141 +b Fm(139)0 263 y Fk(517.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)31 b(P)m(oin)m(t)13 b Fm(::)c Fk(op)s(erator)c Fn(\021)o Fm(\()p Fk(P)m(oin)m(t)33 @@ -13976,16 +13992,15 @@ V 31 w(z)37 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)83 3426 y Fn(g)0 3625 y Fk(520.)94 b Fm(Chec)n(k)27 b(whether)h(the)g(co)r(ordinates)e(of)h(b)r(oth)h -Fk(P)m(oin)m(ts)33 b Fm(are)27 b(all)g(0.)p 0 3701 1643 -4 v 1738 3734 a Fk(Begin)k(Log)p 2257 3701 V 83 3874 -a Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])55 b(No)n(w)22 -b(that)g Fi(cle)l(an)11 b Fm(\(10)o(\))22 b(and)g Fe(p)o(:)p -Fi(cle)l(an)12 b Fm(\(10)o(\))22 b(are)f(called)g(ab)r(o)n(v)n(e,)h -(it's)g(no)f(longer)g(necessary)f(to)h(compare)0 3974 -y(the)28 b(absolute)f(v)-5 b(alues)27 b(of)h(the)g(co)r(ordinates.)35 -b(I)28 b(can)f(just)h(compare)f(them)h(with)g(0)f(instead.)p -0 4066 1678 4 v 1773 4099 a Fk(End)32 b(Log)p 2222 4066 -V 0 4223 a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +Fk(P)m(oin)m(ts)33 b Fm(are)27 b(all)g(0.)p 0 3701 1779 +4 v 1874 3734 a Fk(Log)p 2122 3701 V 83 3874 a Fm([)p +Fh(LDF)e(2002.10.27.)p Fm(])55 b(No)n(w)22 b(that)g Fi(cle)l(an)11 +b Fm(\(10)o(\))22 b(and)g Fe(p)o(:)p Fi(cle)l(an)12 b +Fm(\(10)o(\))22 b(are)f(called)g(ab)r(o)n(v)n(e,)h(it's)g(no)f(longer)g +(necessary)f(to)h(compare)0 3974 y(the)28 b(absolute)f(v)-5 +b(alues)27 b(of)h(the)g(co)r(ordinates.)35 b(I)28 b(can)f(just)h +(compare)f(them)h(with)g(0)f(instead.)p 0 4066 3900 4 +v 0 4223 a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 4323 y Fk(if)41 b Fm(\()p Fi(t)p 245 4323 26 4 v 31 w(x)36 b Fn(\021)23 b Fm(0)18 b Fn(^)h Fi(p)p 615 4323 V 31 @@ -13999,116 +14014,115 @@ Fj( )o Ff(are)-7 b Fj( )p Ff(0,)p Fj( )p Ff(returning)p Fj( )p Ff(tr)o(ue.)o(\\)h(n")s Fm(;)166 4522 y Fk(return)33 b Fi(true)10 b Fm(;)83 4622 y Fn(g)p eop end -%%Page: 139 139 -TeXDict begin 139 138 bop 0 83 a Fn(x)p Fm(521)140 b -Fl(3DLDFPR)n(G)2078 b(NON-)p Fk(CONST)22 b Fl(VERSION)141 -b Fm(139)0 263 y Fk(521.)94 b Fm(Get)28 b(the)g(signs)f(of)h(the)g(co)r -(ordinates.)p 0 362 1643 4 v 1738 395 a Fk(Begin)j(Log)p -2257 362 V 83 536 a Fm([)p Fh(LDF)25 b(2002.10.27.)p -Fm(])56 b(As)22 b(in)h(the)g(previous)e(section,)i(c)n(hanged)f(so)f -(that)i(the)g(co)r(ordinates)e(are)g(compared)g(with)i(0,)g(instead)0 +%%Page: 140 140 +TeXDict begin 140 139 bop 0 83 a Fm(140)140 b Fl(NON-)p +Fk(CONST)22 b Fl(VERSION)2078 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(521)0 263 y Fk(521.)94 b Fm(Get)28 b(the)g(signs)f(of)h(the)g(co)r +(ordinates.)p 0 362 1779 4 v 1874 394 a Fk(Log)p 2122 +362 V 83 535 a Fm([)p Fh(LDF)d(2002.10.27.)p Fm(])56 +b(As)22 b(in)h(the)g(previous)e(section,)i(c)n(hanged)f(so)f(that)i +(the)g(co)r(ordinates)e(are)g(compared)g(with)i(0,)g(instead)0 635 y(of)28 b(using)f Fi(fabs)12 b Fm(\()i(\))28 b(and)f -Fi(eps)12 b Fm(.)p 0 727 1678 4 v 1773 760 a Fk(End)32 -b(Log)p 2222 727 V 0 884 a Fn(h)14 b Fm(De\014ne)28 b -Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 984 y Fk(signed)31 b(short)i Fi(t)p -658 984 26 4 v 30 w(x)p 727 984 V 30 w(sign)11 b Fm(;)83 -1084 y Fk(signed)31 b(short)i Fi(t)p 658 1084 V 30 w(y)p -728 1084 V 31 w(sign)10 b Fm(;)83 1183 y Fk(signed)31 -b(short)i Fi(t)p 658 1183 V 30 w(z)p 722 1183 V 30 w(sign)11 -b Fm(;)83 1283 y Fk(signed)31 b(short)i Fi(p)p 672 1283 -V 31 w(x)p 742 1283 V 30 w(sign)11 b Fm(;)83 1382 y Fk(signed)31 +Fi(eps)12 b Fm(.)p 0 726 3900 4 v 0 884 a Fn(h)i Fm(De\014ne)28 +b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 983 y Fk(signed)31 b(short)i Fi(t)p +658 983 26 4 v 30 w(x)p 727 983 V 30 w(sign)11 b Fm(;)83 +1083 y Fk(signed)31 b(short)i Fi(t)p 658 1083 V 30 w(y)p +728 1083 V 31 w(sign)10 b Fm(;)83 1182 y Fk(signed)31 +b(short)i Fi(t)p 658 1182 V 30 w(z)p 722 1182 V 30 w(sign)11 +b Fm(;)83 1282 y Fk(signed)31 b(short)i Fi(p)p 672 1282 +V 31 w(x)p 742 1282 V 30 w(sign)11 b Fm(;)83 1382 y Fk(signed)31 b(short)i Fi(p)p 672 1382 V 31 w(y)p 743 1382 V 30 w(sign)11 -b Fm(;)83 1482 y Fk(signed)31 b(short)i Fi(p)p 672 1482 -V 31 w(z)p 737 1482 V 30 w(sign)11 b Fm(;)83 1607 y Fk(if)41 -b Fm(\()p Fi(t)p 245 1607 V 31 w(x)36 b Fn(\021)23 b -Fm(0\))41 b Fi(t)p 582 1607 V 31 w(x)p 652 1607 V 30 +b Fm(;)83 1481 y Fk(signed)31 b(short)i Fi(p)p 672 1481 +V 31 w(z)p 737 1481 V 30 w(sign)11 b Fm(;)83 1606 y Fk(if)41 +b Fm(\()p Fi(t)p 245 1606 V 31 w(x)36 b Fn(\021)23 b +Fm(0\))41 b Fi(t)p 582 1606 V 31 w(x)p 652 1606 V 30 w(sign)34 b Fm(=)22 b(0;)83 1706 y Fk(else)31 b(if)41 b Fm(\()p Fi(t)p 429 1706 V 31 w(x)c Fe(<)22 b Fm(0\))42 b Fi(t)p 767 1706 V 30 w(x)p 836 1706 V 30 w(sign)34 -b Fm(=)22 b Fn(\000)p Fm(1)o(;)83 1806 y Fk(else)45 b -Fi(t)p 314 1806 V 30 w(x)p 383 1806 V 30 w(sign)34 b +b Fm(=)22 b Fn(\000)p Fm(1)o(;)83 1805 y Fk(else)45 b +Fi(t)p 314 1805 V 30 w(x)p 383 1805 V 30 w(sign)34 b Fm(=)23 b(1)o(;)83 1905 y Fk(if)41 b Fm(\()p Fi(t)p 245 1905 V 31 w(y)35 b Fn(\021)22 b Fm(0\))42 b Fi(t)p 582 1905 V 30 w(y)p 652 1905 V 31 w(sign)33 b Fm(=)23 b(0;)83 -2005 y Fk(else)31 b(if)41 b Fm(\()p Fi(t)p 429 2005 V -31 w(y)35 b Fe(<)22 b Fm(0\))42 b Fi(t)p 766 2005 V 30 -w(y)p 836 2005 V 31 w(sign)34 b Fm(=)22 b Fn(\000)p Fm(1)o(;)83 -2105 y Fk(else)45 b Fi(t)p 314 2105 V 30 w(y)p 384 2105 +2004 y Fk(else)31 b(if)41 b Fm(\()p Fi(t)p 429 2004 V +31 w(y)35 b Fe(<)22 b Fm(0\))42 b Fi(t)p 766 2004 V 30 +w(y)p 836 2004 V 31 w(sign)34 b Fm(=)22 b Fn(\000)p Fm(1)o(;)83 +2104 y Fk(else)45 b Fi(t)p 314 2104 V 30 w(y)p 384 2104 V 31 w(sign)34 b Fm(=)23 b(1)o(;)83 2204 y Fk(if)41 b Fm(\()p Fi(t)p 245 2204 V 31 w(z)c Fn(\021)23 b Fm(0)o(\))42 b Fi(t)p 578 2204 V 30 w(z)p 642 2204 V 31 w(sign)34 -b Fm(=)22 b(0;)83 2304 y Fk(else)31 b(if)41 b Fm(\()p -Fi(t)p 429 2304 V 31 w(z)c Fe(<)23 b Fm(0)o(\))42 b Fi(t)p -762 2304 V 30 w(z)p 826 2304 V 31 w(sign)34 b Fm(=)22 -b Fn(\000)p Fm(1)o(;)83 2404 y Fk(else)45 b Fi(t)p 314 -2404 V 30 w(z)p 378 2404 V 31 w(sign)34 b Fm(=)22 b(1;)83 +b Fm(=)22 b(0;)83 2303 y Fk(else)31 b(if)41 b Fm(\()p +Fi(t)p 429 2303 V 31 w(z)c Fe(<)23 b Fm(0)o(\))42 b Fi(t)p +762 2303 V 30 w(z)p 826 2303 V 31 w(sign)34 b Fm(=)22 +b Fn(\000)p Fm(1)o(;)83 2403 y Fk(else)45 b Fi(t)p 314 +2403 V 30 w(z)p 378 2403 V 31 w(sign)34 b Fm(=)22 b(1;)83 2503 y Fk(if)41 b Fm(\()p Fi(p)p 259 2503 V 31 w(x)c Fn(\021)23 b Fm(0)o(\))42 b Fi(p)p 611 2503 V 31 w(x)p -681 2503 V 30 w(sign)34 b Fm(=)23 b(0)o(;)83 2603 y Fk(else)31 -b(if)41 b Fm(\()p Fi(p)p 443 2603 V 32 w(x)36 b Fe(<)23 -b Fm(0\))41 b Fi(p)p 795 2603 V 31 w(x)p 865 2603 V 30 +681 2503 V 30 w(sign)34 b Fm(=)23 b(0)o(;)83 2602 y Fk(else)31 +b(if)41 b Fm(\()p Fi(p)p 443 2602 V 32 w(x)36 b Fe(<)23 +b Fm(0\))41 b Fi(p)p 795 2602 V 31 w(x)p 865 2602 V 30 w(sign)34 b Fm(=)23 b Fn(\000)p Fm(1)o(;)83 2702 y Fk(else)45 b Fi(p)p 328 2702 V 31 w(x)p 398 2702 V 30 w(sign)34 -b Fm(=)23 b(1)o(;)83 2802 y Fk(if)41 b Fm(\()p Fi(p)p -259 2802 V 31 w(y)35 b Fn(\021)23 b Fm(0\))41 b Fi(p)p -610 2802 V 31 w(y)p 681 2802 V 31 w(sign)34 b Fm(=)23 -b(0)o(;)83 2902 y Fk(else)31 b(if)41 b Fm(\()p Fi(p)p -443 2902 V 32 w(y)35 b Fe(<)22 b Fm(0\))42 b Fi(p)p 795 -2902 V 31 w(y)p 866 2902 V 30 w(sign)34 b Fm(=)23 b Fn(\000)p +b Fm(=)23 b(1)o(;)83 2801 y Fk(if)41 b Fm(\()p Fi(p)p +259 2801 V 31 w(y)35 b Fn(\021)23 b Fm(0\))41 b Fi(p)p +610 2801 V 31 w(y)p 681 2801 V 31 w(sign)34 b Fm(=)23 +b(0)o(;)83 2901 y Fk(else)31 b(if)41 b Fm(\()p Fi(p)p +443 2901 V 32 w(y)35 b Fe(<)22 b Fm(0\))42 b Fi(p)p 795 +2901 V 31 w(y)p 866 2901 V 30 w(sign)34 b Fm(=)23 b Fn(\000)p Fm(1)o(;)83 3001 y Fk(else)45 b Fi(p)p 328 3001 V 31 -w(y)p 399 3001 V 31 w(sign)34 b Fm(=)22 b(1;)83 3101 -y Fk(if)41 b Fm(\()p Fi(p)p 259 3101 V 31 w(z)d Fn(\021)23 -b Fm(0)o(\))42 b Fi(p)p 607 3101 V 31 w(z)p 672 3101 -V 30 w(sign)34 b Fm(=)23 b(0)o(;)83 3201 y Fk(else)31 -b(if)41 b Fm(\()p Fi(p)p 443 3201 V 32 w(z)c Fe(<)23 -b Fm(0)o(\))42 b Fi(p)p 791 3201 V 31 w(z)p 856 3201 +w(y)p 399 3001 V 31 w(sign)34 b Fm(=)22 b(1;)83 3100 +y Fk(if)41 b Fm(\()p Fi(p)p 259 3100 V 31 w(z)d Fn(\021)23 +b Fm(0)o(\))42 b Fi(p)p 607 3100 V 31 w(z)p 672 3100 +V 30 w(sign)34 b Fm(=)23 b(0)o(;)83 3200 y Fk(else)31 +b(if)41 b Fm(\()p Fi(p)p 443 3200 V 32 w(z)c Fe(<)23 +b Fm(0)o(\))42 b Fi(p)p 791 3200 V 31 w(z)p 856 3200 V 31 w(sign)33 b Fm(=)23 b Fn(\000)p Fm(1)o(;)83 3300 y Fk(else)45 b Fi(p)p 328 3300 V 31 w(z)p 393 3300 V -30 w(sign)34 b Fm(=)23 b(1;)83 3400 y Fk(if)41 b Fm(\()p +30 w(sign)34 b Fm(=)23 b(1;)83 3399 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)166 3499 y Fi(c)l(out)35 b Fn(\034)23 b Ff("t_x_sign)p Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)j Fi(t)p 1233 3499 V 30 w(x)p 1302 3499 V 30 w(sign)34 b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 -b Fm(;)166 3599 y Fi(c)l(out)35 b Fn(\034)23 b Ff("t_y_sign)p -Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)j Fi(t)p 1233 3599 -V 30 w(y)p 1303 3599 V 31 w(sign)33 b Fn(\034)24 b Fi(end)t(l)36 -b Fn(\034)23 b Fi(\015ush)11 b Fm(;)166 3699 y Fi(c)l(out)35 +b Fm(;)166 3598 y Fi(c)l(out)35 b Fn(\034)23 b Ff("t_y_sign)p +Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)j Fi(t)p 1233 3598 +V 30 w(y)p 1303 3598 V 31 w(sign)33 b Fn(\034)24 b Fi(end)t(l)36 +b Fn(\034)23 b Fi(\015ush)11 b Fm(;)166 3698 y Fi(c)l(out)35 b Fn(\034)23 b Ff("t_z_sign)p Fj( )p Ff(==)p Fj( )p Ff(")e -Fn(\034)j Fi(t)p 1233 3699 V 30 w(z)p 1297 3699 V 30 +Fn(\034)j Fi(t)p 1233 3698 V 30 w(z)p 1297 3698 V 30 w(sign)34 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)166 3798 y Fi(c)l(out)35 b Fn(\034)23 b Ff("p_x_sign)p Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)j Fi(p)p 1247 3798 V 31 w(x)p 1317 3798 V 30 w(sign)34 b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 -b Fm(;)166 3898 y Fi(c)l(out)35 b Fn(\034)23 b Ff("p_y_sign)p -Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)j Fi(p)p 1247 3898 -V 31 w(y)p 1318 3898 V 30 w(sign)34 b Fn(\034)23 b Fi(end)t(l)37 -b Fn(\034)23 b Fi(\015ush)10 b Fm(;)166 3998 y Fi(c)l(out)35 +b Fm(;)166 3897 y Fi(c)l(out)35 b Fn(\034)23 b Ff("p_y_sign)p +Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)j Fi(p)p 1247 3897 +V 31 w(y)p 1318 3897 V 30 w(sign)34 b Fn(\034)23 b Fi(end)t(l)37 +b Fn(\034)23 b Fi(\015ush)10 b Fm(;)166 3997 y Fi(c)l(out)35 b Fn(\034)23 b Ff("p_z_sign)p Fj( )p Ff(==)p Fj( )p Ff(")e -Fn(\034)j Fi(p)p 1247 3998 V 31 w(z)p 1312 3998 V 30 +Fn(\034)j Fi(p)p 1247 3997 V 31 w(z)p 1312 3997 V 30 w(sign)34 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b -Fi(\015ush)10 b Fm(;)83 4097 y Fn(g)83 4197 y Fk(if)41 -b Fm(\(\()p Fi(t)p 277 4197 V 31 w(x)p 347 4197 V 30 -w(sign)34 b Fn(6)p Fm(=)23 b Fi(p)p 685 4197 V 31 w(x)p -755 4197 V 30 w(sign)11 b Fm(\))18 b Fn(_)h Fm(\()p Fi(t)p -1124 4197 V 30 w(y)p 1194 4197 V 31 w(sign)34 b Fn(6)p -Fm(=)23 b Fi(p)p 1533 4197 V 31 w(y)p 1604 4197 V 31 -w(sign)11 b Fm(\))18 b Fn(_)h Fm(\()p Fi(t)p 1974 4197 -V 31 w(z)p 2039 4197 V 30 w(sign)34 b Fn(6)p Fm(=)23 -b Fi(p)p 2377 4197 V 31 w(z)p 2442 4197 V 30 w(sign)11 -b Fm(\)\))42 b Fn(f)166 4297 y Fk(if)f Fm(\()p Ff(DEBUG)s -Fm(\))249 4396 y Fi(c)l(out)35 b Fn(\034)23 b Ff("At)p +Fi(\015ush)10 b Fm(;)83 4097 y Fn(g)83 4196 y Fk(if)41 +b Fm(\(\()p Fi(t)p 277 4196 V 31 w(x)p 347 4196 V 30 +w(sign)34 b Fn(6)p Fm(=)23 b Fi(p)p 685 4196 V 31 w(x)p +755 4196 V 30 w(sign)11 b Fm(\))18 b Fn(_)h Fm(\()p Fi(t)p +1124 4196 V 30 w(y)p 1194 4196 V 31 w(sign)34 b Fn(6)p +Fm(=)23 b Fi(p)p 1533 4196 V 31 w(y)p 1604 4196 V 31 +w(sign)11 b Fm(\))18 b Fn(_)h Fm(\()p Fi(t)p 1974 4196 +V 31 w(z)p 2039 4196 V 30 w(sign)34 b Fn(6)p Fm(=)23 +b Fi(p)p 2377 4196 V 31 w(z)p 2442 4196 V 30 w(sign)11 +b Fm(\)\))42 b Fn(f)166 4296 y Fk(if)f Fm(\()p Ff(DEBUG)s +Fm(\))249 4395 y Fi(c)l(out)35 b Fn(\034)23 b Ff("At)p Fj( )p Ff(least)p Fj( )p Ff(one)p Fj( )p Ff(co)o(or)o(di)-6 b(nate)p Fj( )p Ff(pair)p Fj( )p Ff(has)p Fj( )p Ff(s)o(ign)o(s)p Fj( )f Ff(that)p Fj( )p Ff(differ.)p Fj( )p Ff(")22 b Fn(\034)h Ff("Returning)p Fj( )p Ff(false)o(.\\n)o(")n -Fm(;)166 4496 y Fk(return)33 b Fi(false)12 b Fm(;)83 +Fm(;)166 4495 y Fk(return)33 b Fi(false)12 b Fm(;)83 4595 y Fn(g)p eop end -%%Page: 140 140 -TeXDict begin 140 139 bop 0 83 a Fm(140)140 b Fl(NON-)p -Fk(CONST)22 b Fl(VERSION)2078 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(522)0 263 y Fk(522.)94 b Fm(Get)28 b(the)g(di\013erence)g(b)r(et)n +%%Page: 141 141 +TeXDict begin 141 140 bop 0 83 a Fn(x)p Fm(522)140 b +Fl(3DLDFPR)n(G)2078 b(NON-)p Fk(CONST)22 b Fl(VERSION)141 +b Fm(141)0 263 y Fk(522.)94 b Fm(Get)28 b(the)g(di\013erence)g(b)r(et)n (w)n(een)f(eac)n(h)g(pair)g(of)h(x,)f(y)-7 b(,)28 b(and)f(z-co)r (ordinates.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 @@ -14169,40 +14183,39 @@ b(P)m(oin)m(t)h Fm(&)o(,)27 b(b)r(ecause)g(this)g(function)h(do)r(es)f (nothing)g(but)g(pass)f(it)i(to)f(non-)p Fk(const)0 2878 y Fm(v)n(ersion,)f(where)h(it)h(is)g(passed)f(b)n(y)g(v)-5 -b(alue.)p 0 2977 1643 4 v 1738 3010 a Fk(Begin)31 b(Log)p -2257 2977 V 83 3151 a Fm([)p Fh(LDF)25 b(2003.07.09.)p -Fm(])61 b(Added)28 b(this)g(v)n(ersion.)36 b(Made)27 -b(the)h(original)e(v)n(ersion)g(non-)p Fk(const)t Fm(.)p -0 3243 1678 4 v 1773 3275 a Fk(End)32 b(Log)p 2222 3243 -V 0 3400 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 -b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +b(alue.)p 0 2977 1779 4 v 1874 3009 a Fk(Log)p 2122 2977 +V 83 3150 a Fm([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 +b(Added)28 b(this)g(v)n(ersion.)36 b(Made)27 b(the)h(original)e(v)n +(ersion)g(non-)p Fk(const)t Fm(.)p 0 3242 3900 4 v 0 +3399 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b +Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3499 y Fk(b)s(o)s(ol)31 b(op)s(erator)5 b Fn(\021)o Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\))28 b -Fk(const)5 b Fm(;)0 3699 y Fk(524.)0 3823 y Fn(h)14 b +Fk(const)5 b Fm(;)0 3698 y Fk(524.)0 3823 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 -b Fn(i)24 b Fm(+)p Fn(\021)83 3923 y Fk(b)s(o)s(ol)31 +b Fn(i)24 b Fm(+)p Fn(\021)83 3922 y Fk(b)s(o)s(ol)31 b(P)m(oin)m(t)13 b Fm(::)c Fk(op)s(erator)c Fn(\021)o Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\))28 -b Fk(const)83 4023 y Fn(f)166 4122 y Fk(P)m(oin)m(t)33 +b Fk(const)83 4022 y Fn(f)166 4121 y Fk(P)m(oin)m(t)33 b Fi(c)l(opy)13 b Fm(\()p Fn(\003)o Fi(this)f Fm(\);)166 -4247 y Fk(return)33 b Fm(\()p Fi(c)l(opy)j Fn(\021)23 -b Fe(p)p Fm(\);)83 4346 y Fn(g)0 4546 y Fk(525.)94 b(Inequalit)m(y)-8 -b(.)0 4670 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +4246 y Fk(return)33 b Fm(\()p Fi(c)l(opy)j Fn(\021)23 +b Fe(p)p Fm(\);)83 4346 y Fn(g)0 4545 y Fk(525.)94 b(Inequalit)m(y)-8 +b(.)0 4669 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4770 y Fk(b)s(o)s(ol)31 b(op)s(erator)5 b Fn(6)p Fm(=)o(\()p +4769 y Fk(b)s(o)s(ol)31 b(op)s(erator)5 b Fn(6)p Fm(=)o(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 141 141 -TeXDict begin 141 140 bop 0 83 a Fn(x)p Fm(526)140 b -Fl(3DLDFPR)n(G)2485 b(INEQUALITY)141 b Fm(141)0 263 y -Fk(526.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 -b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -487 y Fk(b)s(o)s(ol)31 b(P)m(oin)m(t)13 b Fm(::)c Fk(op)s(erator)c -Fn(6)p Fm(=)o(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o -Fe(p)p Fm(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(return)33 -b Fn(:)p Fm(\()p Fn(\003)p Fi(this)i Fn(\021)22 b Fe(p)p -Fm(\);)83 786 y Fn(g)0 985 y Fk(527.)94 b(In)m(tersection.)83 -1085 y Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])63 b Fi(interse)l(ction)p +%%Page: 142 142 +TeXDict begin 142 141 bop 0 83 a Fm(142)140 b Fl(INEQUALITY)2485 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(526)0 263 y Fk(526.)0 388 +y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)31 +b(P)m(oin)m(t)13 b Fm(::)c Fk(op)s(erator)c Fn(6)p Fm(=)o(\()p +Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\))28 b +Fk(const)83 587 y Fn(f)166 686 y Fk(return)33 b Fn(:)p +Fm(\()p Fn(\003)p Fi(this)i Fn(\021)22 b Fe(p)p Fm(\);)83 +786 y Fn(g)0 985 y Fk(527.)94 b(In)m(tersection.)83 1085 +y Fm([)p Fh(LDF)25 b(2002.10.27.)p Fm(])63 b Fi(interse)l(ction)p 1167 1085 26 4 v 31 w(p)l(oint)12 b Fm(\()i(\))30 b(tak)n(es)f(four)g Fk(P)m(oin)m(t)34 b Fm(argumen)n(ts.)41 b(It)30 b(assumes)f(that)g(the) h(\014rst)f(and)h(second)0 1185 y(represen)n(t)d(one)g(line)i(segmen)n @@ -14262,55 +14275,53 @@ (for)g(sine)g(and)g(cosine,)i(since)e(I'v)n(e)g(had)g(trouble)g(with)h (rotation)e(in)i(the)0 3177 y(constructors)26 b(for)h Fk(P)m(olyhedra)6 b Fm(.)36 b([)p Fh(LDF)26 b(2003.06.29.)p -Fm(])p 0 3281 1643 4 v 1738 3314 a Fk(Begin)31 b(Log)p -2257 3281 V 83 3454 a Fm([)p Fh(LDF)25 b(2002.04.10.)p -Fm(])61 b(Added)28 b(this)g(function.)38 b(It)28 b(replaces)e(the)i -(old)f(v)n(ersion,)f(b)r(elo)n(w.)83 3554 y([)p Fh(LDF)f(2002.04.12.)p -Fm(])69 b(Remo)n(v)n(ed)34 b(the)i(de\014nition)f(of)g(this)h(function) -g(to)f Fj(lines.web)p Fm(,)e(b)r(ecause)i(it)h(requires)d(the)j(use)f -(of)0 3654 y Fk(Lines)t Fm(,)28 b(and)f Fk(Line)33 b -Fm(is)27 b(an)g(incomplete)h(t)n(yp)r(e)g(here.)83 3753 -y([)p Fh(LDF)d(2003.06.29.)p Fm(])65 b(Started)31 b(using)g(this)h(v)n +Fm(])p 0 3280 1779 4 v 1874 3313 a Fk(Log)p 2122 3280 +V 83 3454 a Fm([)p Fh(LDF)f(2002.04.10.)p Fm(])61 b(Added)28 +b(this)g(function.)38 b(It)28 b(replaces)e(the)i(old)f(v)n(ersion,)f(b) +r(elo)n(w.)83 3553 y([)p Fh(LDF)f(2002.04.12.)p Fm(])69 +b(Remo)n(v)n(ed)34 b(the)i(de\014nition)f(of)g(this)h(function)g(to)f +Fj(lines.web)p Fm(,)e(b)r(ecause)i(it)h(requires)d(the)j(use)f(of)0 +3653 y Fk(Lines)t Fm(,)28 b(and)f Fk(Line)33 b Fm(is)27 +b(an)g(incomplete)h(t)n(yp)r(e)g(here.)83 3752 y([)p +Fh(LDF)d(2003.06.29.)p Fm(])65 b(Started)31 b(using)g(this)h(v)n (ersion)e(again.)47 b(Bug)31 b(\014xes)h(I'v)n(e)f(made)g(elsewhere)f -(seem)i(to)f(ha)n(v)n(e)f(made)i(it)0 3853 y(function.)p -0 3945 1678 4 v 1773 3977 a Fk(End)g(Log)p 2222 3945 -V 0 4102 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 +(seem)i(to)f(ha)n(v)n(e)f(made)i(it)0 3852 y(function.)p +0 3944 3900 4 v 0 4101 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4201 y Fk(static)29 b(b)s(o)s(ol)p 525 4201 29 5 v 39 w(p)s(oin)m(t)f Fi(interse)l(ction)p 1232 4201 26 4 v 31 w(p)l(oint)12 b Fm(\()p Fk(const)30 b(P)m(oin)m(t)f Fm(&)p Fi(pp0)16 b Fe(;)e Fk(const)29 b(P)m(oin)m(t)h Fm(&)o Fi(pp1)17 b Fe(;)d Fk(const)29 b(P)m(oin)m(t)g -Fm(&)p Fi(qq0)16 b Fe(;)e Fk(const)249 4301 y(P)m(oin)m(t)33 +Fm(&)p Fi(qq0)16 b Fe(;)e Fk(const)249 4300 y(P)m(oin)m(t)33 b Fm(&)o Fi(qq1)17 b Fm(\);)0 4500 y Fk(529.)94 b(T)-8 b(race)37 b(v)m(ersion.)95 b Fm(This)31 b(function)g(\014nds)g(the)g (in)n(tersection)f(p)r(oin)n(t)h(of)g(t)n(w)n(o)f(lines)g(b)n(y)h -(\014nding)g(the)g(in)n(tersection)0 4600 y(p)r(oin)n(ts)c(of)h(the)g +(\014nding)g(the)g(in)n(tersection)0 4599 y(p)r(oin)n(ts)c(of)h(the)g (traces)e(of)i(the)g(lines)f(on)g(the)h(ma)5 b(jor)26 b(planes.)37 b(I)27 b(originally)f(wrote)h(it,)h(b)r(ecause)f(the)h(v)n -(ector)e(v)n(ersion)g(didn't)0 4700 y(w)n(ork.)65 b(Bug)37 +(ector)e(v)n(ersion)g(didn't)0 4699 y(w)n(ork.)65 b(Bug)37 b(\014xes)g(elsewhere)f(seem)i(to)f(ha)n(v)n(e)f(\014xed)i(the)f (problem,)j(so)c(this)i(v)n(ersion)e(isn't)i(really)e(needed)i(an)n (ymore.)0 4799 y([)p Fh(LDF)25 b(2003.06.29.)p Fm(])83 -4899 y(The)37 b Fk(b)s(o)s(ol)k Fm(argumen)n(t)36 b Fi(tr)l(ac)l(e)48 +4898 y(The)37 b Fk(b)s(o)s(ol)k Fm(argumen)n(t)36 b Fi(tr)l(ac)l(e)48 b Fm(serv)n(es)36 b(only)g(to)i(distinguish)f(this)g(function)h(from)f (the)h(v)n(ector)e(v)n(ersion.)64 b(It)38 b(do)r(esn't)0 -4999 y(matter)27 b(whether)h(it's)g Fi(true)37 b Fm(or)27 +4998 y(matter)27 b(whether)h(it's)g Fi(true)37 b Fm(or)27 b Fi(false)12 b Fm(.)37 b([)p Fh(LDF)25 b(2003.06.29.)p -Fm(])p 0 5102 1643 4 v 1738 5135 a Fk(Begin)31 b(Log)p -2257 5102 V 83 5276 a Fm([)p Fh(LDF)25 b(2002.10.27.)p -Fm(])60 b(Changed)26 b(the)h Fk(const)k(P)m(oin)m(t)h -Fm(&)26 b(argumen)n(ts)f(to)h Fk(P)m(oin)m(t)5 b Fm(,)27 -b(b)r(ecause)f(I)h(had)f(to)h(cop)n(y)e(them)i(an)n(yw)n(a)n(y)0 -5375 y(in)h(order)e(to)i(call)f Fi(apply)p 760 5375 26 -4 v 32 w(tr)l(ansform)11 b Fm(\()j(\))28 b(on)f(them.)p -eop end -%%Page: 142 142 -TeXDict begin 142 141 bop 0 83 a Fm(142)140 b Fl(TRA)n(CE)23 -b(VERSION)2344 b(3DLDFPR)n(G)142 b Fn(x)p Fm(529)83 263 -y([)p Fh(LDF)25 b(2003.06.29.)p Fm(])64 b(Added)32 b(the)f -Fk(b)s(o)s(ol)j Fm(argumen)n(t)c Fi(tr)l(ac)l(e)10 b -Fm(,)32 b(in)f(order)e(to)i(b)r(e)g(able)g(to)g(use)f(b)r(oth)i(the)f +Fm(])p 0 5101 1779 4 v 1874 5134 a Fk(Log)p 2122 5101 +V 83 5274 a Fm([)p Fh(LDF)g(2002.10.27.)p Fm(])60 b(Changed)26 +b(the)h Fk(const)k(P)m(oin)m(t)h Fm(&)26 b(argumen)n(ts)f(to)h +Fk(P)m(oin)m(t)5 b Fm(,)27 b(b)r(ecause)f(I)h(had)f(to)h(cop)n(y)e +(them)i(an)n(yw)n(a)n(y)0 5374 y(in)h(order)e(to)i(call)f +Fi(apply)p 760 5374 26 4 v 32 w(tr)l(ansform)11 b Fm(\()j(\))28 +b(on)f(them.)p eop end +%%Page: 143 143 +TeXDict begin 143 142 bop 0 83 a Fn(x)p Fm(529)140 b +Fl(3DLDFPR)n(G)2344 b(TRA)n(CE)23 b(VERSION)141 b Fm(143)83 +263 y([)p Fh(LDF)25 b(2003.06.29.)p Fm(])64 b(Added)32 +b(the)f Fk(b)s(o)s(ol)j Fm(argumen)n(t)c Fi(tr)l(ac)l(e)10 +b Fm(,)32 b(in)f(order)e(to)i(b)r(e)g(able)g(to)g(use)f(b)r(oth)i(the)f (v)n(ector)e(and)i(trace)0 363 y(v)n(ersions.)i(Previously)-7 b(,)22 b(the)h(v)n(ector)e(v)n(ersion)f(didn't)k(w)n(ork,)e(and)g(w)n (as)f(commen)n(ted-out.)35 b(No)n(w,)23 b(bug)f(\014xes)g(elsewhere)f @@ -14318,54 +14329,53 @@ f(w)n(ork.)37 b(Both)28 b(v)n(ersions,)f(ho)n(w)n(ev)n(er,)f(failed)j (under)f(Lin)n(ux.)38 b(See)28 b(the)h(T)3386 477 y(E)3432 462 y(X)g(section)f(for)0 562 y(the)g(v)n(ector)e(v)n(ersion,)g(ab)r(o) -n(v)n(e,)h(for)g(more)g(information.)p 0 654 1678 4 v -1773 686 a Fk(End)32 b(Log)p 2222 654 V 0 811 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b Fm(functions)i -Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 911 y Fk(static)33 -b(b)s(o)s(ol)p 529 911 29 5 v 38 w(p)s(oin)m(t)f Fi(interse)l(ction)p -1239 911 26 4 v 31 w(p)l(oint)12 b Fm(\()p Fk(P)m(oin)m(t)33 -b Fi(p0)17 b Fe(;)d Fk(P)m(oin)m(t)32 b Fi(p1)17 b Fe(;)d -Fk(P)m(oin)m(t)33 b Fi(q0)16 b Fe(;)e Fk(P)m(oin)m(t)32 -b Fi(q1)17 b Fe(;)d Fk(const)32 b(b)s(o)s(ol)f Fi(tr)l(ac)l(e)10 -b Fm(\);)0 1110 y Fk(530.)0 1234 y Fn(h)k Fm(De\014ne)28 +n(v)n(e,)h(for)g(more)g(information.)p 0 654 3900 4 v +0 811 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(oin)m(t)33 b +Fm(functions)i Fl(284)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +911 y Fk(static)33 b(b)s(o)s(ol)p 529 911 29 5 v 38 w(p)s(oin)m(t)f +Fi(interse)l(ction)p 1239 911 26 4 v 31 w(p)l(oint)12 +b Fm(\()p Fk(P)m(oin)m(t)33 b Fi(p0)17 b Fe(;)d Fk(P)m(oin)m(t)32 +b Fi(p1)17 b Fe(;)d Fk(P)m(oin)m(t)33 b Fi(q0)16 b Fe(;)e +Fk(P)m(oin)m(t)32 b Fi(q1)17 b Fe(;)d Fk(const)32 b(b)s(o)s(ol)f +Fi(tr)l(ac)l(e)10 b Fm(\);)0 1110 y Fk(530.)0 1234 y +Fn(h)k Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1334 y Fk(b)s(o)s(ol)p +269 1334 29 5 v 38 w(p)s(oin)m(t)34 b(P)m(oin)m(t)13 +b Fm(::)8 b Fi(interse)l(ction)p 1272 1334 26 4 v 31 +w(p)l(oint)13 b Fm(\()p Fk(P)m(oin)m(t)34 b Fi(p0)17 +b Fe(;)d Fk(P)m(oin)m(t)34 b Fi(p1)16 b Fe(;)e Fk(P)m(oin)m(t)34 +b Fi(q0)16 b Fe(;)e Fk(P)m(oin)m(t)34 b Fi(q1)16 b Fe(;)e +Fk(const)34 b(b)s(o)s(ol)e Fi(tr)l(ac)l(e)11 b Fm(\))p +Fn(f)415 1434 y Fk(b)s(o)s(ol)31 b Ff(DEBUG)25 b Fm(=)e +Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 +b Fn(\003)p Fe(=)249 1558 y Fk(if)41 b Fm(\()p Ff(DEBUG)s +Fm(\))h Fn(f)332 1658 y Fi(c)l(out)35 b Fn(\034)23 b +Ff("Entering)p Fj( )p Ff(Point:)o(:i)o(nt)-6 b(ersection_point)o(\(\).) +o(\\n)f(")27 b Fn(\034)c Fi(\015ush)11 b Fm(;)332 1757 +y Fi(p0)16 b Fe(:)p Fi(show)f Fm(\()p Ff("p0")s Fm(\);)332 +1857 y Fi(p1)h Fe(:)p Fi(show)f Fm(\()p Ff("p1")s Fm(\);)332 +1957 y Fi(q0)h Fe(:)p Fi(show)e Fm(\()p Ff("q0")s Fm(\);)332 +2056 y Fi(q1)i Fe(:)p Fi(show)e Fm(\()p Ff("q1")s Fm(\);)249 +2156 y Fn(g)249 2280 y Fk(b)s(o)s(ol)p 435 2280 29 5 +v 39 w(p)s(oin)m(t)31 b Fi(bp)11 b Fm(;)166 b Fe(=)p +Fn(\003)40 b Fm(Return)28 b(v)-5 b(alue.)51 b Fn(\003)p +Fe(=)249 2405 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h +Fi(c)l(out)34 b Fn(\034)23 b Ff("Error)p Fj( )p Ff(after)p +Fj( )p Ff(here)o Fj( )p Ff(0.)-7 b(\\n")26 b Fn(\034)d +Fi(\015ush)11 b Fm(;)0 2604 y Fk(531.)94 b Fm(Apply)26 +b(the)g(transformations,)f(so)g(w)n(e)g(ha)n(v)n(e)f(the)i(correct)f(v) +-5 b(alues)25 b(for)g(x,)h(y)-7 b(,)26 b(and)g(z)f(in)h(eac)n(h)f(of)h +(the)g Fk(P)m(oin)m(ts)5 b Fm(.)36 b(Then)0 2704 y(assign)26 +b(them)j(to)e(v)-5 b(ariables.)0 2828 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 1334 y Fk(b)s(o)s(ol)p 269 1334 29 -5 v 38 w(p)s(oin)m(t)34 b(P)m(oin)m(t)13 b Fm(::)8 b -Fi(interse)l(ction)p 1272 1334 26 4 v 31 w(p)l(oint)13 -b Fm(\()p Fk(P)m(oin)m(t)34 b Fi(p0)17 b Fe(;)d Fk(P)m(oin)m(t)34 -b Fi(p1)16 b Fe(;)e Fk(P)m(oin)m(t)34 b Fi(q0)16 b Fe(;)e -Fk(P)m(oin)m(t)34 b Fi(q1)16 b Fe(;)e Fk(const)34 b(b)s(o)s(ol)e -Fi(tr)l(ac)l(e)11 b Fm(\))p Fn(f)415 1434 y Fk(b)s(o)s(ol)31 -b Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p -Fn(\003)40 b Fi(true)52 b Fn(\003)p Fe(=)249 1558 y Fk(if)41 -b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)332 1658 y Fi(c)l(out)35 -b Fn(\034)23 b Ff("Entering)p Fj( )p Ff(Point:)o(:i)o(nt)-6 -b(ersection_point)o(\(\).)o(\\n)f(")27 b Fn(\034)c Fi(\015ush)11 -b Fm(;)332 1757 y Fi(p0)16 b Fe(:)p Fi(show)f Fm(\()p -Ff("p0")s Fm(\);)332 1857 y Fi(p1)h Fe(:)p Fi(show)f -Fm(\()p Ff("p1")s Fm(\);)332 1957 y Fi(q0)h Fe(:)p Fi(show)e -Fm(\()p Ff("q0")s Fm(\);)332 2056 y Fi(q1)i Fe(:)p Fi(show)e -Fm(\()p Ff("q1")s Fm(\);)249 2156 y Fn(g)249 2280 y Fk(b)s(o)s(ol)p -435 2280 29 5 v 39 w(p)s(oin)m(t)31 b Fi(bp)11 b Fm(;)166 -b Fe(=)p Fn(\003)40 b Fm(Return)28 b(v)-5 b(alue.)51 -b Fn(\003)p Fe(=)249 2405 y Fk(if)41 b Fm(\()p Ff(DEBUG)s -Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Error)p Fj( )p -Ff(after)p Fj( )p Ff(here)o Fj( )p Ff(0.)-7 b(\\n")26 -b Fn(\034)d Fi(\015ush)11 b Fm(;)0 2604 y Fk(531.)94 -b Fm(Apply)26 b(the)g(transformations,)f(so)g(w)n(e)g(ha)n(v)n(e)f(the) -i(correct)f(v)-5 b(alues)25 b(for)g(x,)h(y)-7 b(,)26 -b(and)g(z)f(in)h(eac)n(h)f(of)h(the)g Fk(P)m(oin)m(ts)5 -b Fm(.)36 b(Then)0 2704 y(assign)26 b(them)j(to)e(v)-5 -b(ariables.)0 2828 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 -b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -2928 y Fi(p0)16 b Fe(:)p Fi(apply)p 398 2928 26 4 v 33 -w(tr)l(ansform)11 b Fm(\()j(\);)83 3028 y Fi(p1)i Fe(:)p -Fi(apply)p 398 3028 V 33 w(tr)l(ansform)11 b Fm(\()j(\);)83 -3127 y Fi(q0)i Fe(:)p Fi(apply)p 394 3127 V 33 w(tr)l(ansform)10 -b Fm(\()k(\);)83 3227 y Fi(q1)i Fe(:)p Fi(apply)p 394 -3227 V 33 w(tr)l(ansform)10 b Fm(\()k(\);)83 3351 y Fk(real)32 -b Fi(p0)p 360 3351 V 32 w(x)37 b Fm(=)22 b Fi(p0)17 b -Fe(:)p Fi(world)p 874 3351 V 32 w(c)l(o)l(or)l(dinates)12 +b Fm(+)p Fn(\021)83 2928 y Fi(p0)16 b Fe(:)p Fi(apply)p +398 2928 26 4 v 33 w(tr)l(ansform)11 b Fm(\()j(\);)83 +3028 y Fi(p1)i Fe(:)p Fi(apply)p 398 3028 V 33 w(tr)l(ansform)11 +b Fm(\()j(\);)83 3127 y Fi(q0)i Fe(:)p Fi(apply)p 394 +3127 V 33 w(tr)l(ansform)10 b Fm(\()k(\);)83 3227 y Fi(q1)i +Fe(:)p Fi(apply)p 394 3227 V 33 w(tr)l(ansform)10 b Fm(\()k(\);)83 +3351 y Fk(real)32 b Fi(p0)p 360 3351 V 32 w(x)37 b Fm(=)22 +b Fi(p0)17 b Fe(:)p Fi(world)p 874 3351 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([0)o(];)83 3451 y Fk(real)32 b Fi(p0)p 360 3451 V 32 w(y)j Fm(=)22 b Fi(p0)17 b Fe(:)p Fi(world)p 873 3451 V 32 w(c)l(o)l(or)l(dinates)12 b Fm([1)o(];)83 3551 @@ -14397,22 +14407,22 @@ Fi(c)l(out)34 b Fn(\034)23 b Ff("Error)p Fj( )p Ff(after)p Fj( )p Ff(here)o Fj( )p Ff(1.)-7 b(\\n")26 b Fn(\034)d Fi(\015ush)11 b Fm(;)p eop end -%%Page: 143 143 -TeXDict begin 143 142 bop 0 83 a Fn(x)p Fm(532)140 b -Fl(3DLDFPR)n(G)2344 b(TRA)n(CE)23 b(VERSION)141 b Fm(143)0 -263 y Fk(532.)94 b Fm(Get)28 b(deltas.)0 388 y Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(real)32 -b Fi(delta)p 447 487 26 4 v 32 w(x)p 518 487 V 30 w(p)h -Fm(=)23 b Fi(p1)p 795 487 V 31 w(x)32 b Fn(\000)18 b -Fi(p0)p 1064 487 V 32 w(x)13 b Fm(;)83 587 y Fk(real)32 -b Fi(delta)p 447 587 V 32 w(y)p 519 587 V 31 w(p)h Fm(=)22 -b Fi(p1)p 796 587 V 32 w(y)30 b Fn(\000)18 b Fi(p0)p -1065 587 V 32 w(y)11 b Fm(;)83 686 y Fk(real)32 b Fi(delta)p -447 686 V 32 w(z)p 513 686 V 30 w(p)h Fm(=)23 b Fi(p1)p -790 686 V 31 w(z)33 b Fn(\000)18 b Fi(p0)p 1055 686 V -32 w(z)c Fm(;)83 786 y Fk(real)32 b Fi(delta)p 447 786 -V 32 w(x)p 518 786 V 30 w(q)j Fm(=)22 b Fi(q1)p 788 786 +%%Page: 144 144 +TeXDict begin 144 143 bop 0 83 a Fm(144)140 b Fl(TRA)n(CE)23 +b(VERSION)2344 b(3DLDFPR)n(G)142 b Fn(x)p Fm(532)0 263 +y Fk(532.)94 b Fm(Get)28 b(deltas.)0 388 y Fn(h)14 b +Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 +b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(real)32 b Fi(delta)p +447 487 26 4 v 32 w(x)p 518 487 V 30 w(p)h Fm(=)23 b +Fi(p1)p 795 487 V 31 w(x)32 b Fn(\000)18 b Fi(p0)p 1064 +487 V 32 w(x)13 b Fm(;)83 587 y Fk(real)32 b Fi(delta)p +447 587 V 32 w(y)p 519 587 V 31 w(p)h Fm(=)22 b Fi(p1)p +796 587 V 32 w(y)30 b Fn(\000)18 b Fi(p0)p 1065 587 V +32 w(y)11 b Fm(;)83 686 y Fk(real)32 b Fi(delta)p 447 +686 V 32 w(z)p 513 686 V 30 w(p)h Fm(=)23 b Fi(p1)p 790 +686 V 31 w(z)33 b Fn(\000)18 b Fi(p0)p 1055 686 V 32 +w(z)c Fm(;)83 786 y Fk(real)32 b Fi(delta)p 447 786 V +32 w(x)p 518 786 V 30 w(q)j Fm(=)22 b Fi(q1)p 788 786 V 32 w(x)32 b Fn(\000)18 b Fi(q0)p 1054 786 V 31 w(x)c Fm(;)83 886 y Fk(real)32 b Fi(delta)p 447 886 V 32 w(y)p 519 886 V 31 w(q)j Fm(=)22 b Fi(q1)p 790 886 V 31 w(y)31 @@ -14533,15 +14543,15 @@ b Fn(\034)23 b Ff("Error)p Fj( )p Ff(after)p Fj( )p Ff(here)o Fj( )p Ff(6.)-7 b(\\n")26 b Fn(\034)d Fi(\015ush)11 b Fm(;)p eop end -%%Page: 144 144 -TeXDict begin 144 143 bop 0 83 a Fm(144)140 b Fl(TRA)n(CE)23 -b(VERSION)2344 b(3DLDFPR)n(G)142 b Fn(x)p Fm(536)0 263 -y Fk(536.)0 363 y Fn(\017)41 b Fm(If)29 b(b)r(oth)g(of)g(the)g(traces)f -(of)h Fe(~)-43 b(p)29 b Fm(and)f Fe(~)-42 b(q)32 b Fm(in)d(the)g(x-y)f -(plane)h(are)e(parallel)h(to)g(the)h(y-axis)f(\(i.e.,)h(\001)p -Fe(x)d Fm(=)e(0\),)29 b(w)n(e)f(test)h(whether)83 462 -y Fe(p)125 474 y Fc(x)193 462 y Fm(=)d Fe(q)321 474 y -Fc(x)363 462 y Fm(.)43 b(If)30 b(they)g(are,)f(then)h(w)n(e)g(set)f +%%Page: 145 145 +TeXDict begin 145 144 bop 0 83 a Fn(x)p Fm(536)140 b +Fl(3DLDFPR)n(G)2344 b(TRA)n(CE)23 b(VERSION)141 b Fm(145)0 +263 y Fk(536.)0 363 y Fn(\017)41 b Fm(If)29 b(b)r(oth)g(of)g(the)g +(traces)f(of)h Fe(~)-43 b(p)29 b Fm(and)f Fe(~)-42 b(q)32 +b Fm(in)d(the)g(x-y)f(plane)h(are)e(parallel)h(to)g(the)h(y-axis)f +(\(i.e.,)h(\001)p Fe(x)d Fm(=)e(0\),)29 b(w)n(e)f(test)h(whether)83 +462 y Fe(p)125 474 y Fc(x)193 462 y Fm(=)d Fe(q)321 474 +y Fc(x)363 462 y Fm(.)43 b(If)30 b(they)g(are,)f(then)h(w)n(e)g(set)f Fi(x)p 1358 462 26 4 v 30 w(i)43 b Fm(to)30 b(that)g(v)-5 b(alue.)43 b(If)30 b(they're)f(not,)h(the)g(lines)g(don't)g(in)n (tersect,)f(so)g(w)n(e)h(return)83 562 y Ff(INVALID_POINT)o @@ -14686,9 +14696,9 @@ Ff(==)p Fj( )p Ff(")h Fn(\034)f Fi(y)p 1276 5319 V 31 w(i)36 b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)24 b Fi(\015ush)10 b Fm(;)p eop end -%%Page: 145 145 -TeXDict begin 145 144 bop 0 83 a Fn(x)p Fm(536)140 b -Fl(3DLDFPR)n(G)2344 b(TRA)n(CE)23 b(VERSION)141 b Fm(145)415 +%%Page: 146 146 +TeXDict begin 146 145 bop 0 83 a Fm(146)140 b Fl(TRA)n(CE)23 +b(VERSION)2344 b(3DLDFPR)n(G)142 b Fn(x)p Fm(536)415 263 y Fi(c)l(out)35 b Fn(\034)23 b Ff("z_i)p Fj( )p Ff(==)p Fj( )p Ff(")h Fn(\034)f Fi(z)p 1270 263 26 4 v 30 w(i)36 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)11 @@ -14806,10 +14816,10 @@ 707 4348 V 30 w(y)31 b Fn(\003)18 b Fi(x)p 907 4348 V 30 w(i)31 b Fm(+)18 b Fi(y)p 1116 4348 V 31 w(int)p 1247 4348 V 30 w(p)10 b Fm(;)83 4447 y Fn(g)p eop end -%%Page: 146 146 -TeXDict begin 146 145 bop 0 83 a Fm(146)140 b Fl(TRA)n(CE)23 -b(VERSION)2344 b(3DLDFPR)n(G)142 b Fn(x)p Fm(537)0 263 -y Fk(537.)94 b Fm([)p Fh(LDF)26 b(2002.11.12.)p Fm(])58 +%%Page: 147 147 +TeXDict begin 147 146 bop 0 83 a Fn(x)p Fm(537)140 b +Fl(3DLDFPR)n(G)2344 b(TRA)n(CE)23 b(VERSION)141 b Fm(147)0 +263 y Fk(537.)94 b Fm([)p Fh(LDF)26 b(2002.11.12.)p Fm(])58 b(!!)36 b(BUG:)26 b(Occurred)e(when)i(I)f(tried)g(to)h(\014nd)f(an)g (in)n(tersection)g(of)g(t)n(w)n(o)g(lines)g(in)h(the)f(x-z)g(plane.)0 363 y(This)d(co)r(de)h(shouldn't)f(b)r(e)h(reac)n(hed.)34 @@ -14908,11 +14918,10 @@ b(2003.06.24.)p Fm(])60 b Fi(x)p 965 4148 V 31 w(i)40 b Fm(will)28 b(b)r(e)h(equal)e(to)g Ff(INVALID_REAL)p Fm(,)h(if)g(the)g(traces)e(of)i(the)g(lines)g(on)f(the)h(x-y)g(plane)f -(w)n(ere)0 4248 y(colinear.)p 0 4324 1643 4 v 1738 4356 -a Fk(Begin)k(Log)p 2257 4324 V 83 4497 a Fm([)p Fh(LDF)25 -b(2003.06.24.)p Fm(])61 b(Added)28 b(this)g(conditional.)p -0 4589 1678 4 v 1773 4622 a Fk(End)k(Log)p 2222 4589 -V 0 4746 a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +(w)n(ere)0 4248 y(colinear.)p 0 4324 1779 4 v 1874 4356 +a Fk(Log)p 2122 4324 V 83 4497 a Fm([)p Fh(LDF)e(2003.06.24.)p +Fm(])61 b(Added)28 b(this)g(conditional.)p 0 4589 3900 +4 v 0 4746 a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 4846 y Fk(if)41 b Fm(\()p Fi(x)p 256 4846 26 4 v 31 w(i)36 b Fn(\021)22 b Ff(INVALID_REAL)c Fn(^)h(:)p Fm(\()p Fi(z)p @@ -14928,10 +14937,10 @@ w(q)p 1859 4945 V 31 w(x)p 1929 4945 V 30 w(z)c Fm(\);)166 5045 y Fi(y)p 211 5045 V 31 w(i)36 b Fm(=)23 b Fi(p0)p 475 5045 V 31 w(y)12 b Fm(;)83 5145 y Fn(g)p eop end -%%Page: 147 147 -TeXDict begin 147 146 bop 0 83 a Fn(x)p Fm(540)140 b -Fl(3DLDFPR)n(G)2344 b(TRA)n(CE)23 b(VERSION)141 b Fm(147)0 -263 y Fk(540.)94 b Fm(In)32 b(the)g(follo)n(wing)e(case,)i +%%Page: 148 148 +TeXDict begin 148 147 bop 0 83 a Fm(148)140 b Fl(TRA)n(CE)23 +b(VERSION)2344 b(3DLDFPR)n(G)142 b Fn(x)p Fm(540)0 263 +y Fk(540.)94 b Fm(In)32 b(the)g(follo)n(wing)e(case,)i Fe(~)-42 b(p)1120 275 y Fc(xz)1227 263 y Fm(and)31 b Fe(~)-42 b(q)1429 275 y Fc(xz)1537 263 y Fm(are)30 b(b)r(oth)i (parallel)e(to)i(the)g(z-axis.)47 b(They)31 b(ha)n(v)n(e)f(the)i(same)f @@ -14999,10 +15008,10 @@ 30 w(i)31 b Fm(+)18 b Fi(z)p 1100 2679 V 31 w(int)p 1231 2679 V 30 w(p)10 b Fm(;)83 2779 y Fn(g)83 2878 y(g)p eop end -%%Page: 148 148 -TeXDict begin 148 147 bop 0 83 a Fm(148)140 b Fl(TRA)n(CE)23 -b(VERSION)2344 b(3DLDFPR)n(G)142 b Fn(x)p Fm(541)0 263 -y Fk(541.)94 b Fm([)p Fh(LDF)26 b(2002.10.27.)p Fm(])62 +%%Page: 149 149 +TeXDict begin 149 148 bop 0 83 a Fn(x)p Fm(541)140 b +Fl(3DLDFPR)n(G)2344 b(TRA)n(CE)23 b(VERSION)141 b Fm(149)0 +263 y Fk(541.)94 b Fm([)p Fh(LDF)26 b(2002.10.27.)p Fm(])62 b(If)30 b Fi(x)p 1052 263 26 4 v 30 w(i)14 b Fm(,)30 b Fi(y)p 1214 263 V 31 w(i)13 b Fm(,)30 b(and)f Fi(z)p 1533 263 V 31 w(i)43 b Fm(are)28 b(all)i(v)-5 b(alid,)30 @@ -15107,118 +15116,117 @@ Fm(&)o Fe(p)p Fm(\))83 5369 y(:)k Fi(do)p 232 5369 V 31 w(lab)l(els)12 b Fm(\()p Fi(true)f Fm(\))27 b Fn(f)p eop end -%%Page: 149 149 -TeXDict begin 149 148 bop 0 83 a Fn(x)p Fm(544)140 b -Fl(3DLDFPR)n(G)2155 b(COPY)23 b(CONSTR)n(UCTOR)140 b -Fm(149)166 263 y Fn(\003)p Fi(this)34 b Fm(=)23 b Fe(p)p -Fm(;)83 363 y Fn(g)0 562 y Fk(545.)94 b(Com)m(bining)31 -b(Pictures.)95 b Fm([)p Fh(LDF)25 b(2002.04.17.)p Fm(])61 -b(Added)28 b(this)g(function.)p 0 666 1643 4 v 1738 698 -a Fk(Begin)j(Log)p 2257 666 V 83 839 a Fm([)p Fh(LDF)25 -b(2002.10.29.)p Fm(])61 b(Made)27 b Fe(p)h Fk(const)k -Fm(and)c(\014xed)f(bugs)h(that)f(c)n(hanged)g Fe(p)g -Fm(\(see)h(b)r(elo)n(w\).)83 939 y([)p Fh(LDF)d(2002.10.29.)p -Fm(])64 b(BUG)31 b(FIX:)h(No)n(w,)f Fe(p:)p Fi(tr)l(ansform)41 -b Fm(is)31 b(applied)g(to)f Fn(\003)p Fm(\()p Fi(shap)l(es)12 -b Fe(:)p Fi(b)l(ack)i Fm(\()g(\)\),)33 b(previously)c(it)i(w)n(as)f -(applied)0 1038 y(to)d Fn(\003\003)o Fi(iter)14 b Fm(,)28 -b(whic)n(h)f(w)n(as)g(not)g(what)h(I)g(w)n(an)n(ted.)83 -1138 y([)p Fh(LDF)d(2002.10.29.)p Fm(])58 b(BUG)25 b(FIX:)f(No)n(w,)h -Fe(p:)p Fi(tr)l(ansform)35 b Fm(is)24 b(applied)h(to)f -Fn(\003)o Fm(\()p Fi(lab)l(els)13 b Fe(:)p Fi(b)l(ack)h -Fm(\()g(\))2794 1163 y Fe(~)2844 1138 y Fi(pt)e Fm(\),)26 -b(previously)d(it)i(w)n(as)e(applied)0 1238 y(to)k Fn(\003)p -Fm(\(\()p Fn(\003)p Fi(iter)13 b Fm(\))403 1263 y Fe(~)454 -1238 y Fi(pt)f Fm(\),)28 b(whic)n(h)g(is)f(not)h(what)f(I)h(w)n(an)n -(ted.)83 1337 y([)p Fh(LDF)d(2002.10.29.)p Fm(])61 b(BUG)28 -b(FIX:)g(No)n(w,)f Fe(p:)p Fi(tr)l(ansform)11 b Fe(:)p -Fi(r)l(eset)h Fm(\()i(\))28 b(is)f(no)h(longer)e(called.)p -0 1429 1678 4 v 1773 1462 a Fk(End)32 b(Log)p 2222 1429 -V 0 1586 a Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b -Fm(functions)j Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -1686 y Fk(v)m(oid)33 b(Picture)13 b Fm(::)8 b Fk(op)s(erator)d -Fm(+=\()p Fk(const)32 b(Picture)h Fm(&)p Fe(p)p Fm(\))83 -1786 y Fn(f)166 1885 y Fk(for)g Fm(\()p Fk(v)m(ector)6 -b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)8 b Fm(::)h Fi(c)l(onst)p -1253 1885 26 4 v 30 w(iter)l(ator)14 b(iter)36 b Fm(=)23 -b Fe(p:)p Fi(shap)l(es)12 b Fe(:)p Fi(b)l(e)l(gin)f Fm(\()j(\);)42 +%%Page: 150 150 +TeXDict begin 150 149 bop 0 83 a Fm(150)140 b Fl(COPY)23 +b(CONSTR)n(UCTOR)2154 b(3DLDFPR)n(G)142 b Fn(x)p Fm(544)166 +263 y Fn(\003)p Fi(this)34 b Fm(=)23 b Fe(p)p Fm(;)83 +363 y Fn(g)0 562 y Fk(545.)94 b(Com)m(bining)31 b(Pictures.)95 +b Fm([)p Fh(LDF)25 b(2002.04.17.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 665 1779 4 v 1874 698 a Fk(Log)p +2122 665 V 83 838 a Fm([)p Fh(LDF)d(2002.10.29.)p Fm(])61 +b(Made)27 b Fe(p)h Fk(const)k Fm(and)c(\014xed)f(bugs)h(that)f(c)n +(hanged)g Fe(p)g Fm(\(see)h(b)r(elo)n(w\).)83 938 y([)p +Fh(LDF)d(2002.10.29.)p Fm(])64 b(BUG)31 b(FIX:)h(No)n(w,)f +Fe(p:)p Fi(tr)l(ansform)41 b Fm(is)31 b(applied)g(to)f +Fn(\003)p Fm(\()p Fi(shap)l(es)12 b Fe(:)p Fi(b)l(ack)i +Fm(\()g(\)\),)33 b(previously)c(it)i(w)n(as)f(applied)0 +1038 y(to)d Fn(\003\003)o Fi(iter)14 b Fm(,)28 b(whic)n(h)f(w)n(as)g +(not)g(what)h(I)g(w)n(an)n(ted.)83 1137 y([)p Fh(LDF)d(2002.10.29.)p +Fm(])58 b(BUG)25 b(FIX:)f(No)n(w,)h Fe(p:)p Fi(tr)l(ansform)35 +b Fm(is)24 b(applied)h(to)f Fn(\003)o Fm(\()p Fi(lab)l(els)13 +b Fe(:)p Fi(b)l(ack)h Fm(\()g(\))2794 1162 y Fe(~)2844 +1137 y Fi(pt)e Fm(\),)26 b(previously)d(it)i(w)n(as)e(applied)0 +1237 y(to)k Fn(\003)p Fm(\(\()p Fn(\003)p Fi(iter)13 +b Fm(\))403 1262 y Fe(~)454 1237 y Fi(pt)f Fm(\),)28 +b(whic)n(h)g(is)f(not)h(what)f(I)h(w)n(an)n(ted.)83 1337 +y([)p Fh(LDF)d(2002.10.29.)p Fm(])61 b(BUG)28 b(FIX:)g(No)n(w,)f +Fe(p:)p Fi(tr)l(ansform)11 b Fe(:)p Fi(r)l(eset)h Fm(\()i(\))28 +b(is)f(no)h(longer)e(called.)p 0 1428 3900 4 v 0 1586 +a Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j +Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1685 y Fk(v)m(oid)33 +b(Picture)13 b Fm(::)8 b Fk(op)s(erator)d Fm(+=\()p Fk(const)32 +b(Picture)h Fm(&)p Fe(p)p Fm(\))83 1785 y Fn(f)166 1884 +y Fk(for)g Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)33 +b Fn(\003)o(i)8 b Fm(::)h Fi(c)l(onst)p 1253 1884 26 +4 v 30 w(iter)l(ator)14 b(iter)36 b Fm(=)23 b Fe(p:)p +Fi(shap)l(es)12 b Fe(:)p Fi(b)l(e)l(gin)f Fm(\()j(\);)42 b Fi(iter)36 b Fn(6)p Fm(=)23 b Fe(p:)p Fi(shap)l(es)12 -b Fe(:)p Fi(end)h Fm(\()h(\);)42 b Fi(iter)3476 1877 -y Fg(+)-8 b(+)3574 1885 y Fm(\))41 b Fn(f)249 1985 y -Fi(shap)l(es)12 b Fe(:)p Fi(push)p 680 1985 V 31 w(b)l(ack)i -Fm(\(\()p Fn(\003)p Fi(iter)g Fm(\))1133 2010 y Fe(~)1183 -1985 y Fi(get)p 1292 1985 V 31 w(c)l(opy)e Fm(\()i(\)\);)332 -2184 y Fe(=)p Fn(\003)39 b Fm([)p Fh(LDF)26 b(2002.10.29.)p +b Fe(:)p Fi(end)h Fm(\()h(\);)42 b Fi(iter)3476 1876 +y Fg(+)-8 b(+)3574 1884 y Fm(\))41 b Fn(f)249 1984 y +Fi(shap)l(es)12 b Fe(:)p Fi(push)p 680 1984 V 31 w(b)l(ack)i +Fm(\(\()p Fn(\003)p Fi(iter)g Fm(\))1133 2009 y Fe(~)1183 +1984 y Fi(get)p 1292 1984 V 31 w(c)l(opy)e Fm(\()i(\)\);)332 +2183 y Fe(=)p Fn(\003)39 b Fm([)p Fh(LDF)26 b(2002.10.29.)p Fm(])59 b(Normally)-7 b(,)26 b Fi(tr)l(ansform)38 b Fm(in)26 b(a)g Fk(Picture)32 b Fm(is)26 b(applied)h(to)f(its)h -Fk(Shap)s(es)k Fm(when)26 b(it's)h(output,)415 2284 y(ho)n(w)n(ev)n +Fk(Shap)s(es)k Fm(when)26 b(it's)h(output,)415 2283 y(ho)n(w)n(ev)n (er,)h(it)i(m)n(ust)f(b)r(e)h(done)f(no)n(w)g(for)g(the)h(copies)f(of)g (the)h Fk(Shap)s(es)k Fm(from)29 b Fk(Picture)34 b Fe(p)c Fm(that)f(are)g(copied)415 2383 y(on)n(to)d Fn(\003)p Fi(this)11 b Fm(,)27 b(b)r(ecause)g Fe(p)o(:)p Fi(tr)l(ansform)38 b Fm(is)27 b(only)f(kno)n(wn)h(within)g Fe(p)p Fm(;)37 b(the)27 b Fk(Shap)s(es)k Fm(don't)c(\\kno)n(w")e(ab)r(out)i(it.)51 -b Fn(\003)p Fe(=)249 2483 y Fn(\003)p Fm(\()p Fi(shap)l(es)12 +b Fn(\003)p Fe(=)249 2482 y Fn(\003)p Fm(\()p Fi(shap)l(es)12 b Fe(:)p Fi(b)l(ack)i Fm(\()g(\)\))24 b Fn(\003)p Fm(=)e -Fe(p:)p Fi(tr)l(ansform)11 b Fm(;)166 2583 y Fn(g)166 +Fe(p:)p Fi(tr)l(ansform)11 b Fm(;)166 2582 y Fn(g)166 2682 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Lab)s(el)32 b Fn(\003i)8 b Fm(::)h Fi(c)l(onst)p 1231 2682 V 30 w(iter)l(ator)14 b(iter)36 b Fm(=)23 b Fe(p:)p Fi(lab)l(els)12 b Fe(:)p Fi(b)l(e)l(gin)f Fm(\()j(\);)42 b Fi(iter)36 b Fn(6)p Fm(=)23 b Fe(p)o(:)p Fi(lab)l(els)13 b Fe(:)p Fi(end)g Fm(\()h(\);)42 b Fi(iter)3377 2674 y Fg(+)-8 b(+)3475 -2682 y Fm(\))42 b Fn(f)249 2782 y Fi(lab)l(els)12 b Fe(:)p -Fi(push)p 642 2782 V 31 w(b)l(ack)i Fm(\(\()p Fn(\003)p -Fi(iter)f Fm(\))1094 2807 y Fe(~)1145 2782 y Fi(get)p -1254 2782 V 31 w(c)l(opy)f Fm(\()i(\)\);)249 2981 y Fn(\003)p +2682 y Fm(\))42 b Fn(f)249 2781 y Fi(lab)l(els)12 b Fe(:)p +Fi(push)p 642 2781 V 31 w(b)l(ack)i Fm(\(\()p Fn(\003)p +Fi(iter)f Fm(\))1094 2806 y Fe(~)1145 2781 y Fi(get)p +1254 2781 V 31 w(c)l(opy)f Fm(\()i(\)\);)249 2980 y Fn(\003)p Fm(\()p Fi(lab)l(els)e Fe(:)p Fi(b)l(ack)i Fm(\()g(\))775 -3006 y Fe(~)825 2981 y Fi(pt)f Fm(\))23 b Fn(\003)p Fm(=)f -Fe(p:)p Fi(tr)l(ansform)11 b Fm(;)166 3081 y Fn(g)83 -3180 y(g)0 3380 y Fk(546.)94 b(Clear)32 b(Picture.)0 -3504 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j -Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3604 y Fk(v)m(oid)33 +3005 y Fe(~)825 2980 y Fi(pt)f Fm(\))23 b Fn(\003)p Fm(=)f +Fe(p:)p Fi(tr)l(ansform)11 b Fm(;)166 3080 y Fn(g)83 +3180 y(g)0 3379 y Fk(546.)94 b(Clear)32 b(Picture.)0 +3503 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j +Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3603 y Fk(v)m(oid)33 b(Picture)13 b Fm(::)8 b Fi(cle)l(ar)14 b Fm(\()h(\))83 -3703 y Fn(f)166 3803 y Fk(b)s(o)s(ol)31 b Ff(DEBUG)25 +3703 y Fn(f)166 3802 y Fk(b)s(o)s(ol)31 b Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b -Fi(true)52 b Fn(\003)p Fe(=)166 3928 y Fk(if)41 b Fm(\()p +Fi(true)52 b Fn(\003)p Fe(=)166 3927 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p Ff(Picture)o(::c)-7 b(lear\(\).\\n")23 b Fn(\034)g -Fi(\015ush)11 b Fm(;)166 4027 y Fk(if)41 b Fm(\()p Fi(shap)l(es)13 +Fi(\015ush)11 b Fm(;)166 4026 y Fk(if)41 b Fm(\()p Fi(shap)l(es)13 b Fe(:)p Fi(size)e Fm(\()j(\))23 b Fn(\024)g Fm(0)18 b Fn(^)h Fi(lab)l(els)12 b Fe(:)p Fi(size)f Fm(\()j(\))23 -b Fn(\024)g Fm(0)o(\))42 b Fk(return)6 b Fm(;)166 4127 +b Fn(\024)g Fm(0)o(\))42 b Fk(return)6 b Fm(;)166 4126 y Fi(tr)l(ansform)11 b Fe(:)p Fi(r)l(eset)h Fm(\()i(\);)166 4226 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)8 b Fm(::)h Fi(iter)l(ator)14 b(iter)36 b Fm(=)23 b Fi(shap)l(es)12 b Fe(:)p Fi(b)l(e)l(gin)f Fm(\()j(\);)42 b Fi(iter)36 b Fn(6)p Fm(=)23 b Fi(shap)l(es)12 b Fe(:)p Fi(end)h Fm(\()h(\);)42 b Fi(iter)3131 4218 -y Fg(+)-8 b(+)3229 4226 y Fm(\))42 b Fn(f)249 4326 y -Fm(\()p Fn(\003)p Fi(iter)13 b Fm(\))477 4351 y Fe(~)528 -4326 y Fi(cle)l(ar)h Fm(\()g(\);)249 4426 y Fk(delete)31 +y Fg(+)-8 b(+)3229 4226 y Fm(\))42 b Fn(f)249 4325 y +Fm(\()p Fn(\003)p Fi(iter)13 b Fm(\))477 4350 y Fe(~)528 +4325 y Fi(cle)l(ar)h Fm(\()g(\);)249 4425 y Fk(delete)31 b Fm(\()p Fn(\003)p Fi(iter)14 b Fm(\);)166 4525 y Fn(g)166 -4625 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Lab)s(el)32 +4624 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Lab)s(el)32 b Fn(\003i)8 b Fm(::)h Fi(iter)l(ator)14 b(iter)36 b Fm(=)23 b Fi(lab)l(els)12 b Fe(:)p Fi(b)l(e)l(gin)f Fm(\()j(\);)42 b Fi(iter)36 b Fn(6)p Fm(=)23 b Fi(lab)l(els)12 b Fe(:)p -Fi(end)h Fm(\()h(\);)42 b Fi(iter)3032 4617 y Fg(+)-8 -b(+)3130 4625 y Fm(\))42 b Fn(f)332 4725 y Fe(=)p Fn(\003)g +Fi(end)h Fm(\()h(\);)42 b Fi(iter)3032 4616 y Fg(+)-8 +b(+)3130 4624 y Fm(\))42 b Fn(f)332 4724 y Fe(=)p Fn(\003)g Fm(??)e(I)28 b(tried)h(to)f(use)h Fn(\030)o Fk(Lab)s(el)5 b Fm(\()14 b(\))29 b(here,)f(but)h(it)g(didn't)h(w)n(ork.)38 b(I)29 b(got)f(run-time)g(errors)e(ha)n(ving)i(to)g(do)h(with)415 -4824 y(\\Unaligned)g(access)f(pid=299273)p Fe(:)14 b(:)g(:)m +4823 y(\\Unaligned)g(access)f(pid=299273)p Fe(:)14 b(:)g(:)m Fm(")29 b(\(didn't)i(understand\).)42 b(This)29 b(w)n(orks,)g(though.) -42 b(If)30 b(I)f(c)n(hange)g(the)415 4924 y(de\014nition)f(of)g +42 b(If)30 b(I)f(c)n(hange)g(the)415 4923 y(de\014nition)f(of)g Fk(Lab)s(el)t Fm(,)g(I'll)g(ha)n(v)n(e)e(to)i(mak)n(e)e(corresp)r (onding)g(c)n(hanges)g(here.)51 b Fn(\003)p Fe(=)249 5023 y Fk(delete)31 b Fm(\()p Fn(\003)p Fi(iter)14 b -Fm(\))758 5048 y Fe(~)808 5023 y Fi(pt)e Fm(;)249 5123 +Fm(\))758 5048 y Fe(~)808 5023 y Fi(pt)e Fm(;)249 5122 y Fk(delete)31 b Fm(\()p Fn(\003)p Fi(iter)14 b Fm(\);)166 -5223 y Fn(g)166 5322 y Fi(shap)l(es)e Fe(:)p Fi(cle)l(ar)i +5222 y Fn(g)166 5322 y Fi(shap)l(es)e Fe(:)p Fi(cle)l(ar)i Fm(\()g(\);)p eop end -%%Page: 150 150 -TeXDict begin 150 149 bop 0 83 a Fm(150)140 b Fl(CLEAR)23 -b Fk(PICTURE)2230 b Fl(3DLDFPR)n(G)142 b Fn(x)p Fm(546)166 +%%Page: 151 151 +TeXDict begin 151 150 bop 0 83 a Fn(x)p Fm(546)140 b +Fl(3DLDFPR)n(G)2229 b(CLEAR)24 b Fk(PICTURE)141 b Fm(151)166 263 y Fi(lab)l(els)12 b Fe(:)p Fi(cle)l(ar)i Fm(\()g(\);)166 363 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Picture:)o(:cl)-7 @@ -15257,77 +15265,76 @@ g Fk(F)-8 b(o)s(cus)32 b Fm(where)26 b(it)i(w)n(on't)e(b)r(e)i(able)f (to)f(\\see")g(part)h(of)g(the)g(image.)36 b(In)27 b(these)0 1857 y(cases,)g(it)h(will)f(b)r(e)h(anno)n(ying)f(to)g(see)g(the)h(w)n -(arnings.)p 0 1956 1643 4 v 1738 1989 a Fk(Begin)j(Log)p -2257 1956 V 83 2130 a Fm([)p Fh(LDF)25 b(2002.09.21.)p -Fm(])61 b(Added)28 b(the)g(argumen)n(ts)f Fi(do)p 1641 -2130 26 4 v 31 w(sort)40 b Fm(and)27 b Fi(do)p 2096 2130 -V 32 w(warnings)11 b Fm(.)83 2229 y([)p Fh(LDF)25 b(2003.05.16.)p +(arnings.)p 0 1956 1779 4 v 1874 1988 a Fk(Log)p 2122 +1956 V 83 2129 a Fm([)p Fh(LDF)d(2002.09.21.)p Fm(])61 +b(Added)28 b(the)g(argumen)n(ts)f Fi(do)p 1641 2129 26 +4 v 31 w(sort)40 b Fm(and)27 b Fi(do)p 2096 2129 V 32 +w(warnings)11 b Fm(.)83 2229 y([)p Fh(LDF)25 b(2003.05.16.)p Fm(])53 b(Changed)20 b Fk(b)s(o)s(ol)j Fi(do)p 1364 2229 V 31 w(sort)32 b Fm(to)20 b Fk(const)k(unsigned)g(short)g Fi(sort)p 2673 2229 V 31 w(value)11 b Fm(.)34 b(Ab)r(out)21 -b(to)e(add)h Fk(namespace)0 2329 y(Sorting)33 b Fm(with)28 +b(to)e(add)h Fk(namespace)0 2328 y(Sorting)33 b Fm(with)28 b(constan)n(ts)f(for)g(di\013eren)n(t)h(w)n(a)n(ys)e(of)h(sorting,)g (i.e.,)h(\\no)f(sort",)f(\\nearest-last",)f(or)i(\\furthest-\014rst".)p -0 2421 1678 4 v 1773 2453 a Fk(End)32 b(Log)p 2222 2421 -V 0 2653 a(548.)94 b(F)-8 b(o)s(cus)32 b(argumen)m(t.)0 -2777 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j -Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2877 y Fk(v)m(oid)40 -b(Picture)14 b Fm(::)8 b Fi(output)k Fm(\()p Fk(const)40 -b(F)-8 b(o)s(cus)40 b Fm(&)p Fe(f)8 b(;)14 b Fk(const)41 -b(unsigned)e(short)h Fi(pr)l(oj)17 b Fe(;)d Fk(real)40 -b Fi(factor)15 b Fe(;)f Fk(const)415 2976 y(unsigned)34 -b(short)i Fi(sort)p 1213 2976 26 4 v 30 w(value)11 b -Fe(;)j Fk(const)36 b(b)s(o)s(ol)d Fi(do)p 2028 2976 V -32 w(warnings)12 b Fe(;)i Fk(const)35 b(real)g Fi(min)p -3016 2976 V 31 w(x)p 3086 2976 V 30 w(pr)l(oj)17 b Fe(;)d -Fk(const)36 b(real)415 3076 y Fi(max)p 569 3076 V 31 -w(x)p 639 3076 V 30 w(pr)l(oj)17 b Fe(;)d Fk(const)32 -b(real)h Fi(min)p 1442 3076 V 30 w(y)p 1512 3076 V 31 +0 2420 3900 4 v 0 2652 a Fk(548.)94 b(F)-8 b(o)s(cus)32 +b(argumen)m(t.)0 2777 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 +b Fm(functions)j Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +2876 y Fk(v)m(oid)40 b(Picture)14 b Fm(::)8 b Fi(output)k +Fm(\()p Fk(const)40 b(F)-8 b(o)s(cus)40 b Fm(&)p Fe(f)8 +b(;)14 b Fk(const)41 b(unsigned)e(short)h Fi(pr)l(oj)17 +b Fe(;)d Fk(real)40 b Fi(factor)15 b Fe(;)f Fk(const)415 +2976 y(unsigned)34 b(short)i Fi(sort)p 1213 2976 26 4 +v 30 w(value)11 b Fe(;)j Fk(const)36 b(b)s(o)s(ol)d Fi(do)p +2028 2976 V 32 w(warnings)12 b Fe(;)i Fk(const)35 b(real)g +Fi(min)p 3016 2976 V 31 w(x)p 3086 2976 V 30 w(pr)l(oj)17 +b Fe(;)d Fk(const)36 b(real)415 3075 y Fi(max)p 569 3075 +V 31 w(x)p 639 3075 V 30 w(pr)l(oj)17 b Fe(;)d Fk(const)32 +b(real)h Fi(min)p 1442 3075 V 30 w(y)p 1512 3075 V 31 w(pr)l(oj)18 b Fe(;)c Fk(const)32 b(real)h Fi(max)p 2326 -3076 V 30 w(y)p 2396 3076 V 31 w(pr)l(oj)17 b Fe(;)d -Fk(const)33 b(real)f Fi(min)p 3200 3076 V 31 w(z)p 3265 -3076 V 30 w(pr)l(oj)18 b Fe(;)c Fk(const)32 b(real)415 -3176 y Fi(max)p 569 3176 V 31 w(z)p 634 3176 V 30 w(pr)l(oj)17 +3075 V 30 w(y)p 2396 3075 V 31 w(pr)l(oj)17 b Fe(;)d +Fk(const)33 b(real)f Fi(min)p 3200 3075 V 31 w(z)p 3265 +3075 V 30 w(pr)l(oj)18 b Fe(;)c Fk(const)32 b(real)415 +3175 y Fi(max)p 569 3175 V 31 w(z)p 634 3175 V 30 w(pr)l(oj)17 b Fm(\))p Fn(f)28 b Fk(b)s(o)s(ol)j Ff(DEBUG)25 b Fm(=)e Fi(false)11 b Fm(;)166 b Fe(=)p Fn(\003)41 b Fi(true)51 b Fn(\003)p Fe(=)249 3275 y Fk(using)33 b(namespace)f(Sorting)6 -b Fm(;)249 3400 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h +b Fm(;)249 3399 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)332 3499 y Fi(c)l(out)35 b Fn(\034)23 b Ff("Entering)p Fj( )p Ff(Pictur)o(e:)o(:o)-6 b(utput\(const)p Fj( )p Ff(Foc)o(us&)o Fj( )p Ff(.)f(..\).\\n")25 b Fn(\034)e -Fi(\015ush)10 b Fm(;)332 3599 y Fi(c)l(out)35 b Fn(\034)23 +Fi(\015ush)10 b Fm(;)332 3598 y Fi(c)l(out)35 b Fn(\034)23 b Ff("min_x_proj)p Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)i -Fi(min)p 1598 3599 V 30 w(x)p 1667 3599 V 30 w(pr)l(oj)41 +Fi(min)p 1598 3598 V 30 w(x)p 1667 3598 V 30 w(pr)l(oj)41 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 -b Fm(;)332 3699 y Fi(c)l(out)35 b Fn(\034)23 b Ff("max_x_proj)p +b Fm(;)332 3698 y Fi(c)l(out)35 b Fn(\034)23 b Ff("max_x_proj)p Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)i Fi(max)p 1607 -3699 V 30 w(x)p 1676 3699 V 30 w(pr)l(oj)41 b Fn(\034)23 +3698 V 30 w(x)p 1676 3698 V 30 w(pr)l(oj)41 b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 b Fm(;)332 3798 y Fi(c)l(out)35 b Fn(\034)23 b Ff("min_y_proj)p Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)i Fi(min)p 1598 3798 V 30 w(y)p 1668 3798 V 31 w(pr)l(oj)41 b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 b Fm(;)332 -3898 y Fi(c)l(out)35 b Fn(\034)23 b Ff("max_y_proj)p +3897 y Fi(c)l(out)35 b Fn(\034)23 b Ff("max_y_proj)p Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)i Fi(max)p 1607 -3898 V 30 w(y)p 1677 3898 V 31 w(pr)l(oj)40 b Fn(\034)23 +3897 V 30 w(y)p 1677 3897 V 31 w(pr)l(oj)40 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)11 b Fm(;)249 -3998 y Fn(g)166 b Fe(=)p Fn(\003)40 b Fm(Chec)n(k)27 +3997 y Fn(g)166 b Fe(=)p Fn(\003)40 b Fm(Chec)n(k)27 b(whether)h(the)g Fk(v)m(ector)33 b Fi(shap)l(es)40 b Fm(has)27 b(an)n(ything)g(in)h(it.)37 b(If)28 b(it)g(do)r(esn't,)g (return.)50 b Fn(\003)p Fe(=)249 4097 y Fk(if)41 b Fm(\()p Fi(shap)l(es)13 b Fe(:)p Fi(size)e Fm(\()j(\))23 b Fn(\024)g Fm(0)18 b Fn(^)h Fi(lab)l(els)12 b Fe(:)p Fi(size)f Fm(\()j(\))23 -b Fn(\024)g Fm(0)o(\))42 b Fn(f)332 4197 y Fk(if)f Fm(\()p +b Fn(\024)g Fm(0)o(\))42 b Fn(f)332 4196 y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Picture)p Fj( )p Ff(is)p Fj( )p Ff(empty)o(.)p Fj( )p Ff(R)-7 b(eturning.\\n")23 -b Fn(\034)g Fi(\015ush)10 b Fm(;)332 4297 y Fk(return)5 -b Fm(;)249 4396 y Fn(g)p eop end -%%Page: 151 151 -TeXDict begin 151 150 bop 0 83 a Fn(x)p Fm(549)140 b -Fl(3DLDFPR)n(G)2170 b Fk(F)m(OCUS)24 b Fl(AR)n(GUMENT)140 -b Fm(151)0 263 y Fk(549.)94 b Fm([)p Fh(LDF)26 b(2002.09.17.)p -Fm(])58 b(Some)25 b Fk(Shap)s(es)30 b Fm(ma)n(y)25 b(consist)g(of)g -(other)g Fk(Shap)s(es)5 b Fm(,)26 b(and)f(not)g(ha)n(v)n(e)g(an)g +b Fn(\034)g Fi(\015ush)10 b Fm(;)332 4296 y Fk(return)5 +b Fm(;)249 4395 y Fn(g)p eop end +%%Page: 152 152 +TeXDict begin 152 151 bop 0 83 a Fm(152)140 b Fk(F)m(OCUS)24 +b Fl(AR)n(GUMENT)2169 b(3DLDFPR)n(G)142 b Fn(x)p Fm(549)0 +263 y Fk(549.)94 b Fm([)p Fh(LDF)26 b(2002.09.17.)p Fm(])58 +b(Some)25 b Fk(Shap)s(es)30 b Fm(ma)n(y)25 b(consist)g(of)g(other)g +Fk(Shap)s(es)5 b Fm(,)26 b(and)f(not)g(ha)n(v)n(e)g(an)g Fi(output)11 b Fm(\()j(\))26 b(function)g(of)0 363 y(their)h(o)n(wn,)g (so)g(w)n(e)g(m)n(ust)g(extract)g(their)g(con)n(ten)n(ts)g(recursiv)n (ely)e(un)n(til)j(w)n(e)f(get)g(to)g Fk(Shap)s(es)32 @@ -15347,114 +15354,112 @@ 761 y(This)i(means)g(that)g(an)n(y)g Fk(Shap)s(e)k Fm(m)n(ust)d(b)r(e)f (en)n(tirely)g(pro)5 b(jectable;)25 b(partial)f Fk(Shap)s(es)30 b Fm(will)25 b(not)g(b)r(e)h(output.)36 b(problem,)25 -b(to)r(o.)p 0 860 1643 4 v 1738 893 a Fk(Begin)31 b(Log)p -2257 860 V 83 1034 a Fm([)p Fh(LDF)25 b(2003.01.05.)p -Fm(])61 b(Mo)r(di\014ed)28 b(the)g(T)1274 1049 y(E)1320 -1034 y(X)g(text)g(ab)r(o)n(v)n(e)e(to)i(accoun)n(t)f(for)g(the)h(fact)f -(that)h(I'v)n(e)f(added)h Fk(Solid)t Fm(.)83 1133 y([)p -Fh(LDF)d(2003.01.05.)p Fm(])72 b(BUG)39 b(FIX:)h(Mo)n(v)n(ed)d(the)i -(co)r(de)g(that)g(causes)f Fi(tr)l(ansform)49 b Fm(to)39 -b(b)r(e)g(applied)g(to)f(the)i(elemen)n(ts)e(of)0 1233 -y Fi(shap)l(es)12 b Fm(.)39 b(This)28 b(is)g(no)n(w)f(done)h -Fi(b)l(efor)l(e)35 b Fm(the)29 b Fi(extr)l(emes)38 b -Fm(are)27 b(set.)38 b(The)29 b(w)n(a)n(y)d(it)j(w)n(as)e(b)r(efore)h -(didn't)h(w)n(ork)d(prop)r(erly)-7 b(,)27 b(b)r(ecause)0 -1333 y Fi(extr)l(act)11 b Fm(\()j(\))29 b(used)e(the)h(un)n -(transformed)f(v)-5 b(alues)27 b(to)g(decide)h(whether)g(a)f -Fk(Shap)s(e)32 b Fm(w)n(as)27 b(pro)5 b(jectable.)36 -b(In)28 b(order)e(to)i(do)f(this,)h(I)0 1432 y(had)f(to)h(mak)n(e)f -Fi(apply)p 672 1432 26 4 v 32 w(tr)l(ansform)11 b Fm(\()j(\))28 -b(a)f Fk(Shap)s(e)33 b Fm(function.)p 0 1524 1678 4 v -1773 1557 a Fk(End)f(Log)p 2222 1524 V 0 1681 a Fn(h)14 -b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j Fl(219)14 -b Fn(i)24 b Fm(+)p Fn(\021)83 1781 y Fk(v)m(ector)6 b -Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)28 b Fe(v)s Fm(;)83 -1881 y Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)28 -b Fi(elements)11 b Fm(;)83 2005 y Fk(v)m(ector)6 b Fn(h)p -Fk(Shap)s(e)33 b Fn(\003)o(i)8 b Fm(::)h Fi(iter)l(ator)14 -b(iter)f Fm(;)83 2130 y Fk(b)s(o)s(ol)31 b Fi(do)p 385 -2130 26 4 v 31 w(tr)l(ansform)j Fm(=)23 b Fn(:)p Fi(tr)l(ansform)11 -b Fe(:)p Fi(is)p 1390 2130 V 31 w(identity)h Fm(\()i(\);)83 -2254 y Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b -Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p Fe(=)83 2354 +b(to)r(o.)p 0 860 1779 4 v 1874 892 a Fk(Log)p 2122 860 +V 83 1033 a Fm([)p Fh(LDF)g(2003.01.05.)p Fm(])61 b(Mo)r(di\014ed)28 +b(the)g(T)1274 1048 y(E)1320 1033 y(X)g(text)g(ab)r(o)n(v)n(e)e(to)i +(accoun)n(t)f(for)g(the)h(fact)f(that)h(I'v)n(e)f(added)h +Fk(Solid)t Fm(.)83 1133 y([)p Fh(LDF)d(2003.01.05.)p +Fm(])72 b(BUG)39 b(FIX:)h(Mo)n(v)n(ed)d(the)i(co)r(de)g(that)g(causes)f +Fi(tr)l(ansform)49 b Fm(to)39 b(b)r(e)g(applied)g(to)f(the)i(elemen)n +(ts)e(of)0 1232 y Fi(shap)l(es)12 b Fm(.)39 b(This)28 +b(is)g(no)n(w)f(done)h Fi(b)l(efor)l(e)35 b Fm(the)29 +b Fi(extr)l(emes)38 b Fm(are)27 b(set.)38 b(The)29 b(w)n(a)n(y)d(it)j +(w)n(as)e(b)r(efore)h(didn't)h(w)n(ork)d(prop)r(erly)-7 +b(,)27 b(b)r(ecause)0 1332 y Fi(extr)l(act)11 b Fm(\()j(\))29 +b(used)e(the)h(un)n(transformed)f(v)-5 b(alues)27 b(to)g(decide)h +(whether)g(a)f Fk(Shap)s(e)32 b Fm(w)n(as)27 b(pro)5 +b(jectable.)36 b(In)28 b(order)e(to)i(do)f(this,)h(I)0 +1432 y(had)f(to)h(mak)n(e)f Fi(apply)p 672 1432 26 4 +v 32 w(tr)l(ansform)11 b Fm(\()j(\))28 b(a)f Fk(Shap)s(e)33 +b Fm(function.)p 0 1523 3900 4 v 0 1681 a Fn(h)14 b Fm(De\014ne)28 +b Fk(Picture)33 b Fm(functions)j Fl(219)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 1780 y Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)33 +b Fn(\003)o(i)28 b Fe(v)s Fm(;)83 1880 y Fk(v)m(ector)6 +b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)28 b Fi(elements)11 +b Fm(;)83 2004 y Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)33 +b Fn(\003)o(i)8 b Fm(::)h Fi(iter)l(ator)14 b(iter)f +Fm(;)83 2129 y Fk(b)s(o)s(ol)31 b Fi(do)p 385 2129 26 +4 v 31 w(tr)l(ansform)j Fm(=)23 b Fn(:)p Fi(tr)l(ansform)11 +b Fe(:)p Fi(is)p 1390 2129 V 31 w(identity)h Fm(\()i(\);)83 +2253 y Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b +Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p Fe(=)83 2353 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)166 2453 y Fk(if)f Fm(\()p Fi(do)p 384 2453 V 32 w(tr)l(ansform)11 -b Fm(\))42 b Fn(f)249 2553 y Fi(c)l(out)35 b Fn(\034)23 +b Fm(\))42 b Fn(f)249 2552 y Fi(c)l(out)35 b Fn(\034)23 b Ff("Applying)p Fj( )p Ff(transf)o(or)o(m.)-6 b(\\n")s -Fm(;)249 2653 y Fi(tr)l(ansform)11 b Fe(:)p Fi(show)j +Fm(;)249 2652 y Fi(tr)l(ansform)11 b Fe(:)p Fi(show)j Fm(\()p Ff("transform:")p Fm(\);)166 2752 y Fn(g)166 -2852 y Fk(else)45 b Fi(c)l(out)35 b Fn(\034)23 b Ff("Not)p +2851 y Fk(else)45 b Fi(c)l(out)35 b Fn(\034)23 b Ff("Not)p Fj( )p Ff(applying)p Fj( )p Ff(tr)o(an)o(sf)-6 b(orm.\\n")q -Fm(;)83 2952 y Fn(g)83 3051 y Fk(for)33 b Fm(\()p Fi(iter)j +Fm(;)83 2951 y Fn(g)83 3050 y Fk(for)33 b Fm(\()p Fi(iter)j Fm(=)23 b Fi(shap)l(es)12 b Fe(:)p Fi(b)l(e)l(gin)f Fm(\()j(\);)42 b Fi(iter)37 b Fn(6)p Fm(=)22 b Fi(shap)l(es)12 b Fe(:)p -Fi(end)i Fm(\()g(\);)1910 3043 y Fg(+)-8 b(+)2008 3051 -y Fi(iter)13 b Fm(\))42 b Fn(f)166 3151 y Fk(if)f Fm(\()p -Fi(do)p 384 3151 V 32 w(tr)l(ansform)11 b Fm(\))42 b +Fi(end)i Fm(\()g(\);)1910 3042 y Fg(+)-8 b(+)2008 3050 +y Fi(iter)13 b Fm(\))42 b Fn(f)166 3150 y Fk(if)f Fm(\()p +Fi(do)p 384 3150 V 32 w(tr)l(ansform)11 b Fm(\))42 b Fn(f)249 3250 y Fm(\()p Fn(\003\003)o Fi(iter)14 b Fm(\))23 -b Fn(\003)p Fm(=)f Fi(tr)l(ansform)11 b Fm(;)166 3350 -y Fn(g)166 3450 y Fe(v)26 b Fm(=)d(\()p Fn(\003)p Fi(iter)13 -b Fm(\))548 3475 y Fe(~)599 3450 y Fi(extr)l(act)e Fm(\()p +b Fn(\003)p Fm(=)f Fi(tr)l(ansform)11 b Fm(;)166 3349 +y Fn(g)166 3449 y Fe(v)26 b Fm(=)d(\()p Fn(\003)p Fi(iter)13 +b Fm(\))548 3474 y Fe(~)599 3449 y Fi(extr)l(act)e Fm(\()p Fe(f)e(;)14 b Fi(pr)l(oj)j Fe(;)d Fi(factor)g Fm(\);)166 3549 y Fk(if)41 b Fm(\()p Ff(DEBUG)21 b Fn(^)e Fe(v)s(:)p -Fi(size)11 b Fm(\()j(\))24 b Fn(\021)e Fm(0\))249 3649 +Fi(size)11 b Fm(\()j(\))24 b Fn(\021)e Fm(0\))249 3648 y Fi(c)l(err)36 b Fn(\034)24 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Pi)o(ctu)o(re)-7 b(::output\(\):\\n")22 b Fn(\034)h Ff("extract\(\))p Fj( )p Ff(retur)o(ned)o Fj( )-6 b Ff(an)p Fj( )p Ff(empty)p Fj( )p Ff(vector)o(.)p -Fj( )p Ff(")21 b Fn(\034)415 3749 y Ff("Continuing.\\n")g -Fn(\034)i Fi(\015ush)11 b Fm(;)166 3848 y Fk(for)33 b +Fj( )p Ff(")21 b Fn(\034)415 3748 y Ff("Continuing.\\n")g +Fn(\034)i Fi(\015ush)11 b Fm(;)166 3847 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)8 b Fm(::)h Fi(iter)l(ator)14 b Fe(i)22 b Fm(=)h Fe(v)s(:)p Fi(b)l(e)l(gin)11 b Fm(\()j(\);)42 b Fe(i)23 b Fn(6)p -Fm(=)f Fe(v)t(:)p Fi(end)13 b Fm(\()h(\);)2376 3840 y -Fg(+)-8 b(+)2474 3848 y Fe(i)o Fm(\))42 b Fn(f)249 3948 -y Fi(elements)11 b Fe(:)p Fi(push)p 763 3948 V 31 w(b)l(ack)j -Fm(\()p Fn(\003)p Fe(i)o Fm(\);)166 4047 y Fn(g)83 4147 -y(g)83 4247 y Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)p +Fm(=)f Fe(v)t(:)p Fi(end)13 b Fm(\()h(\);)2376 3839 y +Fg(+)-8 b(+)2474 3847 y Fe(i)o Fm(\))42 b Fn(f)249 3947 +y Fi(elements)11 b Fe(:)p Fi(push)p 763 3947 V 31 w(b)l(ack)j +Fm(\()p Fn(\003)p Fe(i)o Fm(\);)166 4047 y Fn(g)83 4146 +y(g)83 4246 y Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)p eop end -%%Page: 152 152 -TeXDict begin 152 151 bop 0 83 a Fm(152)140 b Fk(F)m(OCUS)24 -b Fl(AR)n(GUMENT)2169 b(3DLDFPR)n(G)142 b Fn(x)p Fm(550)0 -263 y Fk(550.)94 b Fm(Set)28 b(the)g(extremes)f(for)g(the)h +%%Page: 153 153 +TeXDict begin 153 152 bop 0 83 a Fn(x)p Fm(550)140 b +Fl(3DLDFPR)n(G)2170 b Fk(F)m(OCUS)24 b Fl(AR)n(GUMENT)140 +b Fm(153)0 263 y Fk(550.)94 b Fm(Set)28 b(the)g(extremes)f(for)g(the)h Fk(Shap)s(e)33 b Fm(and)27 b(handle)g(the)h(error)e(if)i(it)g(returns)f -Fi(false)12 b Fm(.)37 b(\(LDF)28 b(Undated\))p 0 367 -1643 4 v 1738 400 a Fk(Begin)j(Log)p 2257 367 V 83 540 -a Fm([)p Fh(LDF)25 b(2002.09.18.)p Fm(])63 b(Changed)28 -b(the)i(error)d(handling)i(co)r(de)h(b)r(elo)n(w.)41 -b(F)-7 b(ormerly)g(,)29 b Fi(get)p 2729 540 26 4 v 30 -w(minimum)p 3105 540 V 31 w(z)14 b Fm(\()g(\))30 b(w)n(as)e(in)n(v)n -(ok)n(ed,)g(but)0 640 y(this)37 b(is)g(unnecessary)-7 -b(,)37 b(since)g Fi(set)p 1069 640 V 30 w(extr)l(emes)10 -b Fm(\()k(\))37 b(returns)f Fi(false)49 b Fm(if)37 b(something)f(go)r -(es)g(wrong)g(with)h(setting)f(the)h(extreme)0 739 y(v)-5 -b(alues)27 b(for)g(the)h Fk(Shap)s(e)5 b Fm(.)p 0 831 -1678 4 v 1773 864 a Fk(End)32 b(Log)p 2222 831 V 0 989 -a Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j -Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1088 y(f)166 +Fi(false)12 b Fm(.)37 b(\(LDF)28 b(Undated\))p 0 366 +1779 4 v 1874 399 a Fk(Log)p 2122 366 V 83 540 a Fm([)p +Fh(LDF)d(2002.09.18.)p Fm(])63 b(Changed)28 b(the)i(error)d(handling)i +(co)r(de)h(b)r(elo)n(w.)41 b(F)-7 b(ormerly)g(,)29 b +Fi(get)p 2729 540 26 4 v 30 w(minimum)p 3105 540 V 31 +w(z)14 b Fm(\()g(\))30 b(w)n(as)e(in)n(v)n(ok)n(ed,)g(but)0 +639 y(this)37 b(is)g(unnecessary)-7 b(,)37 b(since)g +Fi(set)p 1069 639 V 30 w(extr)l(emes)10 b Fm(\()k(\))37 +b(returns)f Fi(false)49 b Fm(if)37 b(something)f(go)r(es)g(wrong)g +(with)h(setting)f(the)h(extreme)0 739 y(v)-5 b(alues)27 +b(for)g(the)h Fk(Shap)s(e)5 b Fm(.)p 0 831 3900 4 v 0 +988 a Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j +Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1087 y(f)166 b Fe(=)p Fn(\003)40 b Fm([)p Fh(LDF)26 b(2003.01.05.)p Fm(])60 b(Beginning)27 b(of)h(group.)49 b Fn(\003)p Fe(=)83 -1213 y Fk(v)-5 b(alarra)m(y)8 b Fn(h)p Fk(real)d Fn(i)28 +1212 y Fk(v)-5 b(alarra)m(y)8 b Fn(h)p Fk(real)d Fn(i)28 b Fi(extr)l(emes)11 b Fm(\(6)o Fe(;)j Fm(0\);)28 b Fk(for)33 b Fm(\()p Fi(iter)j Fm(=)23 b Fi(elements)11 b Fe(:)p Fi(b)l(e)l(gin)g Fm(\()j(\);)42 b Fi(iter)36 b Fn(6)p Fm(=)23 b Fi(elements)11 b Fe(:)p Fi(end)i Fm(\()h(\);)3231 -1205 y Fg(+)-8 b(+)3329 1213 y Fi(iter)13 b Fm(\))28 +1204 y Fg(+)-8 b(+)3329 1212 y Fi(iter)13 b Fm(\))28 b Fn(f)83 1312 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("About)p Fj( )p Ff(to)p Fj( )p Ff(set)p Fj( )p Ff(ext)o(rem)-7 b(es.\\n")25 b -Fn(\034)e Fi(\015ush)10 b Fm(;)83 1412 y Fk(if)41 b Fm(\()p +Fn(\034)e Fi(\015ush)10 b Fm(;)83 1411 y Fk(if)41 b Fm(\()p Fn(:)p Fm(\()p Fn(\003)q(\003)o Fi(iter)14 b Fm(\))p -Fe(:)p Fi(set)p 683 1412 26 4 v 30 w(extr)l(emes)d Fm(\()j(\)\))42 -b Fn(f)166 1512 y Fi(c)l(err)k Fn(\034)32 b Ff("ERROR!)p +Fe(:)p Fi(set)p 683 1411 26 4 v 30 w(extr)l(emes)d Fm(\()j(\)\))42 +b Fn(f)166 1511 y Fi(c)l(err)k Fn(\034)32 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Pict)o(ure)o(::)-7 b(output\(\):\\n")32 b Fn(\034)g Ff("set_extremes\(\))p Fj( )o Ff(ret)o(u)-6 b(rned)p Fj( )p Ff(false.)p Fj( )p Ff(")31 b Fn(\034)332 1611 y Ff("Suppressing)p Fj( )p Ff(out)o(put)o Fj( )-6 b Ff(for)p Fj( )p Ff(this)p Fj( )p Ff(Shape*.)o(\\n)o(")21 -b Fn(\034)i Fi(\015ush)11 b Fm(;)166 1711 y(\()p Fn(\003\003)o -Fi(iter)j Fm(\))p Fe(:)p Fi(suppr)l(ess)p 781 1711 V -31 w(output)d Fm(\()j(\);)83 1810 y Fn(g)0 2010 y Fk(551.)94 +b Fn(\034)i Fi(\015ush)11 b Fm(;)166 1710 y(\()p Fn(\003\003)o +Fi(iter)j Fm(\))p Fe(:)p Fi(suppr)l(ess)p 781 1710 V +31 w(output)d Fm(\()j(\);)83 1810 y Fn(g)0 2009 y Fk(551.)94 b Fm([)p Fh(LDF)26 b(2002.09.18.)p Fm(])78 b(Added)45 b(this)g(routine.)89 b(It)45 b(c)n(hec)n(ks)f(for)g(whether)h(the)g(v) -5 b(alues)45 b(in)g(the)g Fk(v)-5 b(alarra)m(y)9 b Fn(h)p @@ -15464,67 +15469,67 @@ Fi(min)p 2705 2109 V 30 w(x)p 2774 2109 V 30 w(pr)l(oj)18 b Fm(,)35 b Fi(max)p 3169 2109 V 30 w(x)p 3238 2109 V 30 w(pr)l(oj)17 b Fm(,)35 b Fi(min)p 3623 2109 V 31 w(y)p -3694 2109 V 31 w(pr)l(oj)17 b Fm(,)0 2209 y(and)35 b -Fi(max)p 323 2209 V 30 w(x)p 392 2209 V 30 w(pr)l(oj)53 +3694 2109 V 31 w(pr)l(oj)17 b Fm(,)0 2208 y(and)35 b +Fi(max)p 323 2208 V 30 w(x)p 392 2208 V 30 w(pr)l(oj)53 b Fm(argumen)n(ts)34 b(to)h(this)g(function)h(\()p Fk(Picture)14 b Fm(::)8 b Fi(output)j Fm(\()j(\)\).)60 b(\(Note)36 -b(that)f Fi(min)p 3047 2209 V 31 w(z)p 3112 2209 V 30 -w(pr)l(oj)53 b Fm(and)35 b Fi(max)p 3653 2209 V 30 w(z)p -3717 2209 V 31 w(pr)l(oj)0 2309 y Fm(are)28 b(curren)n(tly)g(not)h(c)n +b(that)f Fi(min)p 3047 2208 V 31 w(z)p 3112 2208 V 30 +w(pr)l(oj)53 b Fm(and)35 b Fi(max)p 3653 2208 V 30 w(z)p +3717 2208 V 31 w(pr)l(oj)0 2308 y Fm(are)28 b(curren)n(tly)g(not)h(c)n (hec)n(k)n(ed.\))40 b(If)29 b(they)g(don't,)g(the)h Fk(Shap)s(e)j Fn(\003)c Fm(is)g(remo)n(v)n(ed)e(from)i Fi(elements)11 b Fm(.)40 b(Note)29 b(that)g(the)h(pro)5 b(jected)0 2408 y(z-co)r(ordinates)34 b(are)g(not)i(curren)n(tly)f(c)n(hec)n(k)n(ed,)h (but)g(they)g(are)f(used)g(for)g(ordering)f(the)i Fk(Shap)s(es)k -Fm(for)35 b(output)h(\(furthest)0 2508 y(a)n(w)n(a)n(y)26 +Fm(for)35 b(output)h(\(furthest)0 2507 y(a)n(w)n(a)n(y)26 b(\014rst\).)0 2632 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -2732 y Fi(extr)l(emes)33 b Fm(=)23 b(\()p Fn(\003\003)o -Fi(iter)14 b Fm(\))p Fe(:)p Fi(get)p 937 2732 V 31 w(extr)l(emes)c -Fm(\()k(\);)83 2832 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))166 +2731 y Fi(extr)l(emes)33 b Fm(=)23 b(\()p Fn(\003\003)o +Fi(iter)14 b Fm(\))p Fe(:)p Fi(get)p 937 2731 V 31 w(extr)l(emes)c +Fm(\()k(\);)83 2831 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))166 b Fe(=)p Fn(\003)41 b Fm([)p Fh(LDF)25 b(2002.09.21.)p Fm(])61 b(Sho)n(w)27 b(the)h(extremes)f(for)g(this)h Fk(Shap)s(e)t Fm(.)51 b Fn(\003)p Fe(=)83 2931 y Fn(f)166 -3031 y Fk(for)33 b Fm(\()p Fk(in)m(t)f Fe(i)23 b Fm(=)g(0)o(;)42 -b Fe(i)23 b(<)f Fm(4;)41 b Fe(i)1017 3023 y Fg(+)-8 b(+)1115 -3031 y Fm(\))42 b Fn(f)249 3131 y Fi(c)l(out)35 b Fn(\034)23 +3030 y Fk(for)33 b Fm(\()p Fk(in)m(t)f Fe(i)23 b Fm(=)g(0)o(;)42 +b Fe(i)23 b(<)f Fm(4;)41 b Fe(i)1017 3022 y Fg(+)-8 b(+)1115 +3030 y Fm(\))42 b Fn(f)249 3130 y Fi(c)l(out)35 b Fn(\034)23 b Ff("extremes[")g Fn(\034)g Fe(i)f Fn(\034)i Ff("])p Fj( )p Ff(==)p Fj( )p Ff(")g Fn(\034)f Fi(extr)l(emes)10 b Fm([)p Fe(i)p Fm(])23 b Fn(\034)g Ff("\\n")s Fm(;)166 -3230 y Fn(g)166 3330 y Fi(c)l(out)35 b Fn(\034)23 b Ff("extremes[0])p +3229 y Fn(g)166 3329 y Fi(c)l(out)35 b Fn(\034)23 b Ff("extremes[0])p Fj( )p Ff(<)p Fj( )p Ff(m)o(in)o(_x)-6 b(_proj)p Fj( )p Ff(==)p Fj( )p Ff(")23 b Fn(\034)g Fm(\()p Fi(extr)l(emes)11 -b Fm([0)o(])23 b Fe(<)g Fi(min)p 2597 3330 V 30 w(x)p -2666 3330 V 30 w(pr)l(oj)18 b Fm(\))23 b Fn(\034)g Fi(end)t(l)37 +b Fm([0)o(])23 b Fe(<)g Fi(min)p 2597 3329 V 30 w(x)p +2666 3329 V 30 w(pr)l(oj)18 b Fm(\))23 b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)166 3429 y Fi(c)l(out)35 b Fn(\034)23 b Ff("extremes[1])p Fj( )p Ff(>)p Fj( )p Ff(m)o(ax)o(_x)-6 b(_proj)p Fj( )p Ff(==)p Fj( )p Ff(")23 b Fn(\034)g Fm(\()p Fi(extr)l(emes)11 b Fm([1)o(])23 b Fe(>)g Fi(max)p 2606 3429 V 30 w(x)p 2675 3429 V 30 w(pr)l(oj)18 b Fm(\))23 b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 -b Fi(\015ush)10 b Fm(;)166 3529 y Fi(c)l(out)35 b Fn(\034)23 +b Fi(\015ush)10 b Fm(;)166 3528 y Fi(c)l(out)35 b Fn(\034)23 b Ff("extremes[2])p Fj( )p Ff(<)p Fj( )p Ff(m)o(in)o(_y)-6 b(_proj)p Fj( )p Ff(==)p Fj( )p Ff(")23 b Fn(\034)g Fm(\()p Fi(extr)l(emes)11 b Fm([2)o(])23 b Fe(<)g Fi(min)p 2597 -3529 V 30 w(y)p 2667 3529 V 31 w(pr)l(oj)18 b Fm(\))23 +3528 V 30 w(y)p 2667 3528 V 31 w(pr)l(oj)18 b Fm(\))23 b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 -b Fm(;)166 3629 y Fi(c)l(out)35 b Fn(\034)23 b Ff("extremes[3])p +b Fm(;)166 3628 y Fi(c)l(out)35 b Fn(\034)23 b Ff("extremes[3])p Fj( )p Ff(>)p Fj( )p Ff(m)o(ax)o(_y)-6 b(_proj)p Fj( )p Ff(==)p Fj( )p Ff(")23 b Fn(\034)g Fm(\()p Fi(extr)l(emes)11 -b Fm([3)o(])23 b Fe(>)g Fi(max)p 2606 3629 V 30 w(y)p -2676 3629 V 31 w(pr)l(oj)17 b Fm(\))24 b Fn(\034)f Fi(end)t(l)37 +b Fm([3)o(])23 b Fe(>)g Fi(max)p 2606 3628 V 30 w(y)p +2676 3628 V 31 w(pr)l(oj)17 b Fm(\))24 b Fn(\034)f Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)83 3728 y Fn(g)83 -3828 y Fk(if)43 b Fm(\()p Fi(extr)l(emes)11 b Fm([0)o(])26 -b Fe(<)g Fi(min)p 888 3828 V 31 w(x)p 958 3828 V 30 w(pr)l(oj)37 +3827 y Fk(if)43 b Fm(\()p Fi(extr)l(emes)11 b Fm([0)o(])26 +b Fe(<)g Fi(min)p 888 3827 V 31 w(x)p 958 3827 V 30 w(pr)l(oj)37 b Fn(_)20 b Fi(extr)l(emes)10 b Fm([1])26 b Fe(>)g Fi(max)p -1918 3828 V 30 w(x)p 1987 3828 V 30 w(pr)l(oj)37 b Fn(_)20 +1918 3827 V 30 w(x)p 1987 3827 V 30 w(pr)l(oj)37 b Fn(_)20 b Fi(extr)l(emes)11 b Fm([2)o(])26 b Fe(<)g Fi(min)p -2938 3828 V 31 w(y)p 3009 3828 V 30 w(pr)l(oj)37 b Fn(_)20 -b Fi(extr)l(emes)11 b Fm([3)o(])27 b Fe(>)332 3928 y -Fi(max)p 486 3928 V 30 w(y)p 556 3928 V 31 w(pr)l(oj)18 -b Fm(\))41 b Fn(f)166 4027 y Fk(if)g Fm(\()p Fi(do)p -384 4027 V 32 w(warnings)35 b Fn(\021)22 b Fi(true)10 -b Fm(\))42 b Fn(f)249 4127 y Fi(c)l(err)36 b Fn(\034)24 +2938 3827 V 31 w(y)p 3009 3827 V 30 w(pr)l(oj)37 b Fn(_)20 +b Fi(extr)l(emes)11 b Fm([3)o(])27 b Fe(>)332 3927 y +Fi(max)p 486 3927 V 30 w(y)p 556 3927 V 31 w(pr)l(oj)18 +b Fm(\))41 b Fn(f)166 4026 y Fk(if)g Fm(\()p Fi(do)p +384 4026 V 32 w(warnings)35 b Fn(\021)22 b Fi(true)10 +b Fm(\))42 b Fn(f)249 4126 y Fi(c)l(err)36 b Fn(\034)24 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Pi)o(ctu)o(re)-7 b(::output\(\):\\n")22 b Fn(\034)h Ff("Shape)p Fj( )p Ff(lies)p Fj( )p Ff(outs)o(ide)o Fj( )-6 b Ff(the)p Fj( )p @@ -15532,70 +15537,69 @@ Ff(\\)415 4226 y(invocation)p Fj( )p Ff(of)p Fj( )p Ff(ou)o(tpu)o(t)h (\(\).\\n")25 b Fn(\034)e Ff("Suppressing)p Fj( )p Ff(out)o(pu)o(t)p Fj( )-6 b Ff(for)p Fj( )p Ff(this)p Fj( )p Ff(Shape*)o(.\\n)o(")21 -b Fn(\034)i Fi(\015ush)11 b Fm(;)166 4326 y Fn(g)166 -4426 y Fm(\()p Fn(\003\003)o Fi(iter)j Fm(\))p Fe(:)p -Fi(suppr)l(ess)p 781 4426 V 31 w(output)d Fm(\()j(\);)83 -4525 y Fn(g)83 4625 y(g)166 b Fe(=)p Fn(\003)40 b Fk(for)47 -b Fn(\003)p Fe(=)83 4725 y Fn(g)166 b Fe(=)p Fn(\003)40 +b Fn(\034)i Fi(\015ush)11 b Fm(;)166 4325 y Fn(g)166 +4425 y Fm(\()p Fn(\003\003)o Fi(iter)j Fm(\))p Fe(:)p +Fi(suppr)l(ess)p 781 4425 V 31 w(output)d Fm(\()j(\);)83 +4525 y Fn(g)83 4624 y(g)166 b Fe(=)p Fn(\003)40 b Fk(for)47 +b Fn(\003)p Fe(=)83 4724 y Fn(g)166 b Fe(=)p Fn(\003)40 b Fm(End)28 b(of)f(group.)50 b Fn(\003)p Fe(=)p eop end -%%Page: 153 153 -TeXDict begin 153 152 bop 0 83 a Fn(x)p Fm(552)140 b -Fl(3DLDFPR)n(G)2170 b Fk(F)m(OCUS)24 b Fl(AR)n(GUMENT)140 -b Fm(153)0 263 y Fk(552.)94 b Fm([)p Fh(LDF)26 b(2003.05.16.)p -Fm(])57 b(Sorting)23 b(can)h(b)r(e)h(p)r(erformed)f(in)g(di\013eren)n -(t)h(w)n(a)n(ys,)e(dep)r(ending)i(on)f(the)g Fi(sort)p -3288 263 26 4 v 31 w(value)35 b Fm(argumen)n(t.)0 363 -y(This)28 b(is)f(explained)g(in)h Fn(h)14 b Fm(De\014ne)28 -b(comparison)e(classes)34 b Fl(454)15 b Fn(i)p Fm(.)83 -462 y([)p Fh(LDF)25 b(2002.09.18.)p Fm(])62 b(It's)29 -b(necessary)e(to)i(mak)n(e)f(sure)g(that)h(sorting)f(is)g(only)h(p)r -(erformed)f(if)h Fi(elements)40 b Fm(is)29 b(non-empt)n(y)-7 -b(.)40 b(It)0 562 y(could)22 b(b)r(e)h(empt)n(y)g(no)n(w,)g(if)g(the)g -(error)d(handling)j(co)r(de)f(ab)r(o)n(v)n(e)f(has)h(remo)n(v)n(ed)f -(all)h(of)h(the)g(elemen)n(ts)f(b)r(ecause)g Fi(set)p -3472 562 V 30 w(extr)l(emes)11 b Fm(\()j(\))0 662 y(returned)27 -b Fi(false)40 b Fm(for)27 b(all)g(of)g(them.)38 b(W)-7 -b(e)28 b(can't)f(just)i(return,)e(b)r(ecause)g(there)g(migh)n(t)h -(still)g(b)r(e)g Fk(Lab)s(els)k Fm(on)27 b(the)h Fk(Picture)5 -b Fm(.)0 786 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 -b Fm(functions)j Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -886 y Fk(if)41 b Fm(\()p Fi(elements)11 b Fe(:)p Fi(size)h -Fm(\()i(\))23 b Fe(>)g Fm(0)o(\))42 b Fn(f)166 985 y -Fk(if)f Fm(\()p Fi(sort)p 439 985 V 31 w(value)34 b Fn(\021)23 -b Ff(MIN_Z)r Fm(\))42 b Fi(sort)12 b Fm(\()p Fi(elements)f +%%Page: 154 154 +TeXDict begin 154 153 bop 0 83 a Fm(154)140 b Fk(F)m(OCUS)24 +b Fl(AR)n(GUMENT)2169 b(3DLDFPR)n(G)142 b Fn(x)p Fm(552)0 +263 y Fk(552.)94 b Fm([)p Fh(LDF)26 b(2003.05.16.)p Fm(])57 +b(Sorting)23 b(can)h(b)r(e)h(p)r(erformed)f(in)g(di\013eren)n(t)h(w)n +(a)n(ys,)e(dep)r(ending)i(on)f(the)g Fi(sort)p 3288 263 +26 4 v 31 w(value)35 b Fm(argumen)n(t.)0 363 y(This)28 +b(is)f(explained)g(in)h Fn(h)14 b Fm(De\014ne)28 b(comparison)e +(classes)34 b Fl(454)15 b Fn(i)p Fm(.)83 462 y([)p Fh(LDF)25 +b(2002.09.18.)p Fm(])62 b(It's)29 b(necessary)e(to)i(mak)n(e)f(sure)g +(that)h(sorting)f(is)g(only)h(p)r(erformed)f(if)h Fi(elements)40 +b Fm(is)29 b(non-empt)n(y)-7 b(.)40 b(It)0 562 y(could)22 +b(b)r(e)h(empt)n(y)g(no)n(w,)g(if)g(the)g(error)d(handling)j(co)r(de)f +(ab)r(o)n(v)n(e)f(has)h(remo)n(v)n(ed)f(all)h(of)h(the)g(elemen)n(ts)f +(b)r(ecause)g Fi(set)p 3472 562 V 30 w(extr)l(emes)11 +b Fm(\()j(\))0 662 y(returned)27 b Fi(false)40 b Fm(for)27 +b(all)g(of)g(them.)38 b(W)-7 b(e)28 b(can't)f(just)i(return,)e(b)r +(ecause)g(there)g(migh)n(t)h(still)g(b)r(e)g Fk(Lab)s(els)k +Fm(on)27 b(the)h Fk(Picture)5 b Fm(.)0 786 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j Fl(219)14 +b Fn(i)24 b Fm(+)p Fn(\021)83 886 y Fk(if)41 b Fm(\()p +Fi(elements)11 b Fe(:)p Fi(size)h Fm(\()i(\))23 b Fe(>)g +Fm(0)o(\))42 b Fn(f)166 985 y Fk(if)f Fm(\()p Fi(sort)p +439 985 V 31 w(value)34 b Fn(\021)23 b Ff(MIN_Z)r Fm(\))42 +b Fi(sort)12 b Fm(\()p Fi(elements)f Fe(:)p Fi(b)l(e)l(gin)g +Fm(\()j(\))p Fe(;)g Fi(elements)d Fe(:)p Fi(end)j Fm(\()g(\))p +Fe(;)g Fk(Compare)p 2885 985 29 5 v 40 w(minim)m(um)p +3322 985 V 38 w(z)5 b Fm(\()14 b(\)\);)166 1085 y Fk(else)31 +b(if)41 b Fm(\()p Fi(sort)p 623 1085 26 4 v 31 w(value)34 +b Fn(\021)23 b Ff(MAX_Z)r Fm(\))42 b Fi(sort)12 b Fm(\()p +Fi(elements)f Fe(:)p Fi(b)l(e)l(gin)g Fm(\()j(\))p Fe(;)g +Fi(elements)d Fe(:)p Fi(end)j Fm(\()g(\))p Fe(;)g Fk(Compare)p +3069 1085 29 5 v 40 w(maxim)m(um)p 3522 1085 V 39 w(z)6 +b Fm(\()14 b(\)\);)166 1185 y Fk(else)31 b(if)41 b Fm(\()p +Fi(sort)p 623 1185 26 4 v 31 w(value)34 b Fn(\021)23 +b Ff(MEAN_Z)r Fm(\))42 b Fi(sort)12 b Fm(\()p Fi(elements)f Fe(:)p Fi(b)l(e)l(gin)g Fm(\()j(\))p Fe(;)g Fi(elements)d -Fe(:)p Fi(end)j Fm(\()g(\))p Fe(;)g Fk(Compare)p 2885 -985 29 5 v 40 w(minim)m(um)p 3322 985 V 38 w(z)5 b Fm(\()14 -b(\)\);)166 1085 y Fk(else)31 b(if)41 b Fm(\()p Fi(sort)p -623 1085 26 4 v 31 w(value)34 b Fn(\021)23 b Ff(MAX_Z)r -Fm(\))42 b Fi(sort)12 b Fm(\()p Fi(elements)f Fe(:)p -Fi(b)l(e)l(gin)g Fm(\()j(\))p Fe(;)g Fi(elements)d Fe(:)p -Fi(end)j Fm(\()g(\))p Fe(;)g Fk(Compare)p 3069 1085 29 -5 v 40 w(maxim)m(um)p 3522 1085 V 39 w(z)6 b Fm(\()14 -b(\)\);)166 1185 y Fk(else)31 b(if)41 b Fm(\()p Fi(sort)p -623 1185 26 4 v 31 w(value)34 b Fn(\021)23 b Ff(MEAN_Z)r -Fm(\))42 b Fi(sort)12 b Fm(\()p Fi(elements)f Fe(:)p -Fi(b)l(e)l(gin)g Fm(\()j(\))p Fe(;)g Fi(elements)d Fe(:)p -Fi(end)i Fm(\()h(\))p Fe(;)g Fk(Compare)p 3112 1185 29 -5 v 40 w(mean)p 3375 1185 V 40 w(z)6 b Fm(\()14 b(\)\);)166 -1284 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)249 -1384 y Fk(if)f Fm(\()p Fi(sort)p 522 1384 26 4 v 31 w(value)34 -b Fn(\021)23 b Ff(MIN_Z)r Fm(\))42 b Fi(c)l(out)35 b -Fn(\034)23 b Ff(")p Fj( )p Ff(***)p Fj( )p Ff(MIN_Z)p -Fj( )p Ff(sor)o(t.)p Fj( )o Ff(**)-7 b(*\\n")s Fm(;)249 -1483 y Fk(else)31 b(if)41 b Fm(\()p Fi(sort)p 706 1483 -V 31 w(value)34 b Fn(\021)23 b Ff(MAX_Z)r Fm(\))42 b -Fi(c)l(out)35 b Fn(\034)23 b Ff(")p Fj( )p Ff(***)p Fj( )p -Ff(MAX_Z)p Fj( )p Ff(sort)o(.)p Fj( )o Ff(**)-6 b(*\\n")r -Fm(;)249 1583 y Fk(else)31 b(if)41 b Fm(\()p Fi(sort)p -706 1583 V 31 w(value)34 b Fn(\021)23 b Ff(MEAN_Z)r Fm(\))42 -b Fi(c)l(out)34 b Fn(\034)23 b Ff(")p Fj( )p Ff(***)p -Fj( )p Ff(MEAN_Z)p Fj( )p Ff(sort)o(.)p Fj( )p Ff(*)-7 -b(**\\n")r Fm(;)249 1683 y Fk(for)33 b Fm(\()p Fi(iter)k -Fm(=)22 b Fi(elements)11 b Fe(:)p Fi(b)l(e)l(gin)g Fm(\()j(\);)42 -b Fi(iter)36 b Fn(6)p Fm(=)23 b Fi(elements)11 b Fe(:)p -Fi(end)i Fm(\()h(\);)2241 1675 y Fg(+)-8 b(+)2339 1683 -y Fi(iter)14 b Fm(\))41 b Fn(f)332 1782 y Fi(c)l(out)54 +Fe(:)p Fi(end)i Fm(\()h(\))p Fe(;)g Fk(Compare)p 3112 +1185 29 5 v 40 w(mean)p 3375 1185 V 40 w(z)6 b Fm(\()14 +b(\)\);)166 1284 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h +Fn(f)249 1384 y Fk(if)f Fm(\()p Fi(sort)p 522 1384 26 +4 v 31 w(value)34 b Fn(\021)23 b Ff(MIN_Z)r Fm(\))42 +b Fi(c)l(out)35 b Fn(\034)23 b Ff(")p Fj( )p Ff(***)p +Fj( )p Ff(MIN_Z)p Fj( )p Ff(sor)o(t.)p Fj( )o Ff(**)-7 +b(*\\n")s Fm(;)249 1483 y Fk(else)31 b(if)41 b Fm(\()p +Fi(sort)p 706 1483 V 31 w(value)34 b Fn(\021)23 b Ff(MAX_Z)r +Fm(\))42 b Fi(c)l(out)35 b Fn(\034)23 b Ff(")p Fj( )p +Ff(***)p Fj( )p Ff(MAX_Z)p Fj( )p Ff(sort)o(.)p Fj( )o +Ff(**)-6 b(*\\n")r Fm(;)249 1583 y Fk(else)31 b(if)41 +b Fm(\()p Fi(sort)p 706 1583 V 31 w(value)34 b Fn(\021)23 +b Ff(MEAN_Z)r Fm(\))42 b Fi(c)l(out)34 b Fn(\034)23 b +Ff(")p Fj( )p Ff(***)p Fj( )p Ff(MEAN_Z)p Fj( )p Ff(sort)o(.)p +Fj( )p Ff(*)-7 b(**\\n")r Fm(;)249 1683 y Fk(for)33 b +Fm(\()p Fi(iter)k Fm(=)22 b Fi(elements)11 b Fe(:)p Fi(b)l(e)l(gin)g +Fm(\()j(\);)42 b Fi(iter)36 b Fn(6)p Fm(=)23 b Fi(elements)11 +b Fe(:)p Fi(end)i Fm(\()h(\);)2241 1675 y Fg(+)-8 b(+)2339 +1683 y Fi(iter)14 b Fm(\))41 b Fn(f)332 1782 y Fi(c)l(out)54 b Fn(\034)43 b Ff("Min)p Fj( )p Ff(z:)p Fj( )p Ff(")g Fn(\034)g Fm(\()p Fn(\003)o(\003)p Fi(iter)13 b Fm(\))p Fe(:)p Fi(get)p 1644 1782 V 31 w(minimum)p 2021 1782 @@ -15685,10 +15689,10 @@ Fj( )p Ff(Picture:)o(:ou)-7 b(tput\(const)p Fj( )p Ff(Focus)o(&)p Fj( )p Ff(.)o(.)h(.\).\\n")25 b Fn(\034)e Fi(\015ush)10 b Fm(;)83 4995 y Fn(g)p eop end -%%Page: 154 154 -TeXDict begin 154 153 bop 0 83 a Fm(154)140 b Fl(NO)23 -b Fk(F)m(OCUS)h Fl(AR)n(GUMENT)2038 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(554)0 263 y Fk(554.)94 b(No)31 b(F)-8 b(o)s(cus)32 +%%Page: 155 155 +TeXDict begin 155 154 bop 0 83 a Fn(x)p Fm(554)140 b +Fl(3DLDFPR)n(G)2038 b(NO)24 b Fk(F)m(OCUS)g Fl(AR)n(GUMENT)140 +b Fm(155)0 263 y Fk(554.)94 b(No)31 b(F)-8 b(o)s(cus)32 b(argumen)m(t.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j Fl(219)14 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)41 b(Picture)13 b Fm(::)8 b Fi(output)k @@ -15802,11 +15806,11 @@ i(resp)r(ect)f(to)g Fi(p)l(osition)12 b Fm(.)0 5253 y(This)28 b(lo)r(cation)f(is)g(\\ab)r(o)n(v)n(e")e Fi(p)l(osition)40 b Fm(b)n(y)27 b(de\014nition.)p eop end -%%Page: 155 155 -TeXDict begin 155 154 bop 0 83 a Fn(x)p Fm(557)140 b -Fl(3DLDFPR)n(G)1367 b(CONSTR)n(UCTORS)23 b(AND)g(SETTING)h(FUNCTIONS) -141 b Fm(155)83 263 y([)p Fh(LDF)25 b(2002.10.13.)p Fm(])59 -b(Changed)26 b(all)f(of)h(the)g(constructors)e(and)i(setting)g +%%Page: 156 156 +TeXDict begin 156 155 bop 0 83 a Fm(156)140 b Fl(CONSTR)n(UCTORS)23 +b(AND)g(SETTING)h(FUNCTIONS)1367 b(3DLDFPR)n(G)142 b +Fn(x)p Fm(557)83 263 y([)p Fh(LDF)25 b(2002.10.13.)p +Fm(])59 b(Changed)26 b(all)f(of)h(the)g(constructors)e(and)i(setting)g (functions)g(except)g(for)f(the)h(default)h(constructor)0 363 y(and)j(the)h(\014rst)f(non-default)g(constructor.)44 b(No)n(w,)31 b(all)f(the)g(others)g(use)g(the)h(latter)f(to)g(create)g @@ -15843,44 +15847,43 @@ b(the)g(axis)f(with)h(whic)n(h)1800 1868 y Fn(\000)-63 b(!)1800 1917 y Fe(pd)29 b Fm(is)f(to)h(b)r(e)g(aligned,)g(and)f (around)g(whic)n(h)h Fi(up)38 b Fm(is)29 b(to)g(b)r(e)g(rotated)0 -2017 y(\()p Fi(axis)12 b Fm(\).)p 0 2121 1643 4 v 1738 -2153 a Fk(Begin)31 b(Log)p 2257 2121 V 83 2294 a Fm([)p -Fh(LDF)25 b(2003.07.04.)p Fm(])57 b(No)n(w)23 b(calling)g -Fi(p)l(ersp)10 b Fe(:)p Fi(set)p 1504 2294 26 4 v 30 -w(element)i Fm(\()i(\))24 b(instead)f(of)h(accessing)e(the)h(elemen)n -(ts)h(of)f Fi(p)l(ersp)34 b Fm(directly)-7 b(.)35 b(The)0 -2393 y(latter)27 b(is)h(no)f(longer)f(p)r(ossible,)i(b)r(ecause)f -Fk(F)-8 b(o)s(cus)32 b Fm(is)27 b(no)h(longer)e(a)h Fk(friend)32 -b Fm(of)c Fk(T)-8 b(ransform)6 b Fm(.)p 0 2485 1678 4 -v 1773 2518 a Fk(End)32 b(Log)p 2222 2485 V 0 2717 a(560.)94 -b(Constructor.)0 2842 y Fn(h)14 b Fm(Declare)27 b Fk(F)-8 -b(o)s(cus)32 b Fm(functions)k Fl(558)14 b Fn(i)24 b Fm(+)p -Fn(\021)83 2941 y Fk(F)-8 b(o)s(cus)t Fm(\()p Fk(const)32 -b(real)g Fi(p)l(os)p 912 2941 26 4 v 31 w(x)14 b Fe(;)g -Fk(const)31 b(real)h Fi(p)l(os)p 1584 2941 V 31 w(y)12 -b Fe(;)i Fk(const)31 b(real)h Fi(p)l(os)p 2255 2941 V -31 w(z)14 b Fe(;)g Fk(const)32 b(real)f Fi(dir)p 2910 -2941 V 32 w(x)13 b Fe(;)h Fk(const)32 b(real)f Fi(dir)p -3570 2941 V 32 w(y)12 b Fe(;)i Fk(const)249 3041 y(real)33 -b Fi(dir)p 545 3041 V 31 w(z)14 b Fe(;)g Fk(const)33 -b(real)f Fi(dist)13 b Fe(;)h Fk(const)32 b(real)h Fi(ang)h -Fm(=)23 b(0)p Fe(;)14 b Fk(c)m(har)34 b Fi(ax)j Fm(=)22 -b Ff('z')t Fm(\);)p eop end -%%Page: 156 156 -TeXDict begin 156 155 bop 0 83 a Fm(156)140 b Fl(CONSTR)n(UCTOR)2384 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(561)0 263 y Fk(561.)0 388 -y Fn(h)14 b Fm(De\014ne)28 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k -Fl(561)15 b Fn(i)23 b(\021)83 487 y Fk(F)-8 b(o)s(cus)13 -b Fm(::)8 b Fk(F)-8 b(o)s(cus)5 b Fm(\()p Fk(const)35 -b(real)f Fi(p)l(os)p 1221 487 26 4 v 31 w(x)14 b Fe(;)g -Fk(const)35 b(real)f Fi(p)l(os)p 1899 487 V 31 w(y)12 -b Fe(;)i Fk(const)35 b(real)g Fi(p)l(os)p 2577 487 V -31 w(z)14 b Fe(;)g Fk(const)35 b(real)f Fi(dir)p 3238 -487 V 32 w(x)13 b Fe(;)h Fk(const)35 b(real)415 587 y -Fi(dir)p 522 587 V 32 w(y)11 b Fe(;)j Fk(const)33 b(real)f -Fi(dir)p 1183 587 V 32 w(z)14 b Fe(;)g Fk(const)32 b(real)h -Fi(dist)12 b Fe(;)i Fk(const)33 b(real)f Fi(ang)12 b -Fe(;)i Fk(c)m(har)34 b Fi(ax)14 b Fm(\))83 686 y(:)37 +2017 y(\()p Fi(axis)12 b Fm(\).)p 0 2120 1779 4 v 1874 +2153 a Fk(Log)p 2122 2120 V 83 2293 a Fm([)p Fh(LDF)25 +b(2003.07.04.)p Fm(])57 b(No)n(w)23 b(calling)g Fi(p)l(ersp)10 +b Fe(:)p Fi(set)p 1504 2293 26 4 v 30 w(element)i Fm(\()i(\))24 +b(instead)f(of)h(accessing)e(the)h(elemen)n(ts)h(of)f +Fi(p)l(ersp)34 b Fm(directly)-7 b(.)35 b(The)0 2393 y(latter)27 +b(is)h(no)f(longer)f(p)r(ossible,)i(b)r(ecause)f Fk(F)-8 +b(o)s(cus)32 b Fm(is)27 b(no)h(longer)e(a)h Fk(friend)32 +b Fm(of)c Fk(T)-8 b(ransform)6 b Fm(.)p 0 2485 3900 4 +v 0 2717 a Fk(560.)94 b(Constructor.)0 2841 y Fn(h)14 +b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k +Fl(558)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2941 y Fk(F)-8 +b(o)s(cus)t Fm(\()p Fk(const)32 b(real)g Fi(p)l(os)p +912 2941 26 4 v 31 w(x)14 b Fe(;)g Fk(const)31 b(real)h +Fi(p)l(os)p 1584 2941 V 31 w(y)12 b Fe(;)i Fk(const)31 +b(real)h Fi(p)l(os)p 2255 2941 V 31 w(z)14 b Fe(;)g Fk(const)32 +b(real)f Fi(dir)p 2910 2941 V 32 w(x)13 b Fe(;)h Fk(const)32 +b(real)f Fi(dir)p 3570 2941 V 32 w(y)12 b Fe(;)i Fk(const)249 +3040 y(real)33 b Fi(dir)p 545 3040 V 31 w(z)14 b Fe(;)g +Fk(const)33 b(real)f Fi(dist)13 b Fe(;)h Fk(const)32 +b(real)h Fi(ang)h Fm(=)23 b(0)p Fe(;)14 b Fk(c)m(har)34 +b Fi(ax)j Fm(=)22 b Ff('z')t Fm(\);)p eop end +%%Page: 157 157 +TeXDict begin 157 156 bop 0 83 a Fn(x)p Fm(561)140 b +Fl(3DLDFPR)n(G)2385 b(CONSTR)n(UCTOR)140 b Fm(157)0 263 +y Fk(561.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(F)-8 +b(o)s(cus)32 b Fm(functions)k Fl(561)15 b Fn(i)23 b(\021)83 +487 y Fk(F)-8 b(o)s(cus)13 b Fm(::)8 b Fk(F)-8 b(o)s(cus)5 +b Fm(\()p Fk(const)35 b(real)f Fi(p)l(os)p 1221 487 26 +4 v 31 w(x)14 b Fe(;)g Fk(const)35 b(real)f Fi(p)l(os)p +1899 487 V 31 w(y)12 b Fe(;)i Fk(const)35 b(real)g Fi(p)l(os)p +2577 487 V 31 w(z)14 b Fe(;)g Fk(const)35 b(real)f Fi(dir)p +3238 487 V 32 w(x)13 b Fe(;)h Fk(const)35 b(real)415 +587 y Fi(dir)p 522 587 V 32 w(y)11 b Fe(;)j Fk(const)33 +b(real)f Fi(dir)p 1183 587 V 32 w(z)14 b Fe(;)g Fk(const)32 +b(real)h Fi(dist)12 b Fe(;)i Fk(const)33 b(real)f Fi(ang)12 +b Fe(;)i Fk(c)m(har)34 b Fi(ax)14 b Fm(\))83 686 y(:)37 b Fi(distanc)l(e)11 b Fm(\()p Fi(dist)i Fm(\))p Fe(;)42 b Fi(angle)11 b Fm(\()p Fi(ang)h Fm(\))p Fe(;)42 b Fi(axis)11 b Fm(\()p Fi(ax)k Fm(\))28 b Fn(f)166 786 y Fk(b)s(o)s(ol)j @@ -15982,64 +15985,63 @@ b Fn(\034)i Fi(\015ush)10 b Fm(;)83 5244 y Fn(g)0 5352 y Fl(See)24 b(also)g(sections)g(563,)g(566,)g(568,)g(570,)g(572,)g (574,)g(582,)g(and)h(585.)p eop end -%%Page: 157 157 -TeXDict begin 157 156 bop 0 83 a Fn(x)p Fm(561)140 b -Fl(3DLDFPR)n(G)2385 b(CONSTR)n(UCTOR)140 b Fm(157)0 263 -y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(589.)0 -462 y Fk(562.)94 b(Setting)31 b(function.)96 b Fm([)p -Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 b(this)g(function.)0 -587 y Fn(h)14 b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 -b Fm(functions)k Fl(558)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -686 y Fk(v)m(oid)38 b Fi(set)12 b Fm(\()p Fk(const)38 -b(real)g Fi(p)l(os)p 1009 686 26 4 v 31 w(x)14 b Fe(;)g -Fk(const)37 b(real)h Fi(p)l(os)p 1693 686 V 31 w(y)12 -b Fe(;)i Fk(const)38 b(real)g Fi(p)l(os)p 2377 686 V -31 w(z)14 b Fe(;)g Fk(const)38 b(real)g Fi(dir)p 3045 -686 V 31 w(x)14 b Fe(;)g Fk(const)38 b(real)249 786 y -Fi(dir)p 356 786 V 32 w(y)11 b Fe(;)j Fk(const)33 b(real)f -Fi(dir)p 1017 786 V 32 w(z)14 b Fe(;)g Fk(const)32 b(real)h -Fi(dist)12 b Fe(;)i Fk(const)33 b(real)f Fi(ang)j Fm(=)23 -b(0)p Fe(:)p Fm(0)o Fe(;)14 b Fk(c)m(har)34 b Fi(ax)j -Fm(=)23 b Ff('z')s Fm(\);)0 985 y Fk(563.)0 1110 y Fn(h)14 -b Fm(De\014ne)28 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k -Fl(561)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1209 y Fk(v)m(oid)34 -b(F)-8 b(o)s(cus)12 b Fm(::)c Fi(set)13 b Fm(\()p Fk(const)33 -b(real)h Fi(p)l(os)p 1299 1209 V 31 w(x)14 b Fe(;)g Fk(const)33 -b(real)h Fi(p)l(os)p 1975 1209 V 31 w(y)12 b Fe(;)i Fk(const)33 -b(real)h Fi(p)l(os)p 2650 1209 V 31 w(z)14 b Fe(;)g Fk(const)33 -b(real)h Fi(dir)p 3309 1209 V 31 w(x)14 b Fe(;)g Fk(const)34 -b(real)415 1309 y Fi(dir)p 522 1309 V 32 w(y)11 b Fe(;)j -Fk(const)33 b(real)f Fi(dir)p 1183 1309 V 32 w(z)14 b +%%Page: 158 158 +TeXDict begin 158 157 bop 0 83 a Fm(158)140 b Fl(CONSTR)n(UCTOR)2384 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(561)0 263 y Fl(This)23 +b(co)r(de)i(is)e(used)h(in)f(section)i(589.)0 462 y Fk(562.)94 +b(Setting)31 b(function.)96 b Fm([)p Fh(LDF)25 b(2002.09.17.)p +Fm(])61 b(Added)28 b(this)g(function.)0 587 y Fn(h)14 +b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k +Fl(558)14 b Fn(i)24 b Fm(+)p Fn(\021)83 686 y Fk(v)m(oid)38 +b Fi(set)12 b Fm(\()p Fk(const)38 b(real)g Fi(p)l(os)p +1009 686 26 4 v 31 w(x)14 b Fe(;)g Fk(const)37 b(real)h +Fi(p)l(os)p 1693 686 V 31 w(y)12 b Fe(;)i Fk(const)38 +b(real)g Fi(p)l(os)p 2377 686 V 31 w(z)14 b Fe(;)g Fk(const)38 +b(real)g Fi(dir)p 3045 686 V 31 w(x)14 b Fe(;)g Fk(const)38 +b(real)249 786 y Fi(dir)p 356 786 V 32 w(y)11 b Fe(;)j +Fk(const)33 b(real)f Fi(dir)p 1017 786 V 32 w(z)14 b Fe(;)g Fk(const)32 b(real)h Fi(dist)12 b Fe(;)i Fk(const)33 -b(real)f Fi(ang)12 b Fe(;)i Fk(c)m(har)34 b Fi(ax)14 -b Fm(\))83 1409 y Fn(f)166 1508 y Fk(F)-8 b(o)s(cus)32 -b Fe(f)9 b Fm(\()p Fi(p)l(os)p 635 1508 V 31 w(x)14 b -Fe(;)g Fi(p)l(os)p 870 1508 V 31 w(y)e Fe(;)i Fi(p)l(os)p -1104 1508 V 31 w(z)g Fe(;)g Fi(dir)p 1322 1508 V 32 w(x)f -Fe(;)h Fi(dir)p 1545 1508 V 32 w(y)e Fe(;)i Fi(dir)p -1768 1508 V 31 w(z)g Fe(;)g Fi(dist)f Fe(;)h Fi(ang)e -Fe(;)i Fi(ax)g Fm(\);)166 1633 y Fn(\003)p Fi(this)34 -b Fm(=)23 b Fe(f)8 b Fm(;)83 1733 y Fn(g)0 1932 y Fk(564.)94 -b(P)m(oin)m(t)32 b(argumen)m(ts.)0 2131 y(565.)94 b(Constructor.)0 -2256 y Fn(h)14 b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 -b Fm(functions)k Fl(558)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -2355 y Fk(F)-8 b(o)s(cus)t Fm(\()p Fk(const)33 b(P)m(oin)m(t)g -Fm(&)p Fi(p)l(os)11 b Fe(;)j Fk(const)33 b(P)m(oin)m(t)f -Fm(&)p Fi(dir)14 b Fe(;)g Fk(const)32 b(real)h Fi(dist)12 -b Fe(;)i Fk(const)33 b(real)f Fi(ang)j Fm(=)23 b(0)p -Fe(:)p Fm(0)o Fe(;)14 b Fk(c)m(har)34 b Fi(ax)j Fm(=)23 -b Ff('z')s Fm(\);)0 2554 y Fk(566.)0 2679 y Fn(h)14 b -Fm(De\014ne)28 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k -Fl(561)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2779 y Fk(F)-8 -b(o)s(cus)13 b Fm(::)8 b Fk(F)-8 b(o)s(cus)5 b Fm(\()p -Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p)l(os)11 b Fe(;)j -Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(dir)14 b Fe(;)g -Fk(const)33 b(real)f Fi(dist)13 b Fe(;)h Fk(const)32 -b(real)g Fi(ang)12 b Fe(;)i Fk(c)m(har)34 b Fi(ax)14 -b Fm(\))83 2878 y Fn(f)166 2978 y Fk(F)-8 b(o)s(cus)32 -b Fe(f)9 b Fm(\()p Fi(p)l(os)j Fe(:)p Fi(get)p 774 2978 -V 30 w(x)i Fm(\()g(\))p Fe(;)g Fi(p)l(os)e Fe(:)p Fi(get)p -1225 2978 V 30 w(y)g Fm(\()i(\))p Fe(;)g Fi(p)l(os)e +b(real)f Fi(ang)j Fm(=)23 b(0)p Fe(:)p Fm(0)o Fe(;)14 +b Fk(c)m(har)34 b Fi(ax)j Fm(=)23 b Ff('z')s Fm(\);)0 +985 y Fk(563.)0 1110 y Fn(h)14 b Fm(De\014ne)28 b Fk(F)-8 +b(o)s(cus)32 b Fm(functions)k Fl(561)15 b Fn(i)23 b Fm(+)p +Fn(\021)83 1209 y Fk(v)m(oid)34 b(F)-8 b(o)s(cus)12 b +Fm(::)c Fi(set)13 b Fm(\()p Fk(const)33 b(real)h Fi(p)l(os)p +1299 1209 V 31 w(x)14 b Fe(;)g Fk(const)33 b(real)h Fi(p)l(os)p +1975 1209 V 31 w(y)12 b Fe(;)i Fk(const)33 b(real)h Fi(p)l(os)p +2650 1209 V 31 w(z)14 b Fe(;)g Fk(const)33 b(real)h Fi(dir)p +3309 1209 V 31 w(x)14 b Fe(;)g Fk(const)34 b(real)415 +1309 y Fi(dir)p 522 1309 V 32 w(y)11 b Fe(;)j Fk(const)33 +b(real)f Fi(dir)p 1183 1309 V 32 w(z)14 b Fe(;)g Fk(const)32 +b(real)h Fi(dist)12 b Fe(;)i Fk(const)33 b(real)f Fi(ang)12 +b Fe(;)i Fk(c)m(har)34 b Fi(ax)14 b Fm(\))83 1409 y Fn(f)166 +1508 y Fk(F)-8 b(o)s(cus)32 b Fe(f)9 b Fm(\()p Fi(p)l(os)p +635 1508 V 31 w(x)14 b Fe(;)g Fi(p)l(os)p 870 1508 V +31 w(y)e Fe(;)i Fi(p)l(os)p 1104 1508 V 31 w(z)g Fe(;)g +Fi(dir)p 1322 1508 V 32 w(x)f Fe(;)h Fi(dir)p 1545 1508 +V 32 w(y)e Fe(;)i Fi(dir)p 1768 1508 V 31 w(z)g Fe(;)g +Fi(dist)f Fe(;)h Fi(ang)e Fe(;)i Fi(ax)g Fm(\);)166 1633 +y Fn(\003)p Fi(this)34 b Fm(=)23 b Fe(f)8 b Fm(;)83 1733 +y Fn(g)0 1932 y Fk(564.)94 b(P)m(oin)m(t)32 b(argumen)m(ts.)0 +2131 y(565.)94 b(Constructor.)0 2256 y Fn(h)14 b Fm(Declare)27 +b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k Fl(558)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 2355 y Fk(F)-8 b(o)s(cus)t Fm(\()p +Fk(const)33 b(P)m(oin)m(t)g Fm(&)p Fi(p)l(os)11 b Fe(;)j +Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fi(dir)14 b Fe(;)g +Fk(const)32 b(real)h Fi(dist)12 b Fe(;)i Fk(const)33 +b(real)f Fi(ang)j Fm(=)23 b(0)p Fe(:)p Fm(0)o Fe(;)14 +b Fk(c)m(har)34 b Fi(ax)j Fm(=)23 b Ff('z')s Fm(\);)0 +2554 y Fk(566.)0 2679 y Fn(h)14 b Fm(De\014ne)28 b Fk(F)-8 +b(o)s(cus)32 b Fm(functions)k Fl(561)15 b Fn(i)23 b Fm(+)p +Fn(\021)83 2779 y Fk(F)-8 b(o)s(cus)13 b Fm(::)8 b Fk(F)-8 +b(o)s(cus)5 b Fm(\()p Fk(const)32 b(P)m(oin)m(t)h Fm(&)p +Fi(p)l(os)11 b Fe(;)j Fk(const)33 b(P)m(oin)m(t)g Fm(&)o +Fi(dir)14 b Fe(;)g Fk(const)33 b(real)f Fi(dist)13 b +Fe(;)h Fk(const)32 b(real)g Fi(ang)12 b Fe(;)i Fk(c)m(har)34 +b Fi(ax)14 b Fm(\))83 2878 y Fn(f)166 2978 y Fk(F)-8 +b(o)s(cus)32 b Fe(f)9 b Fm(\()p Fi(p)l(os)j Fe(:)p Fi(get)p +774 2978 V 30 w(x)i Fm(\()g(\))p Fe(;)g Fi(p)l(os)e Fe(:)p +Fi(get)p 1225 2978 V 30 w(y)g Fm(\()i(\))p Fe(;)g Fi(p)l(os)e Fe(:)p Fi(get)p 1675 2978 V 31 w(z)i Fm(\()g(\))p Fe(;)g Fi(dir)h Fe(:)p Fi(get)p 2113 2978 V 30 w(x)f Fm(\()g(\))p Fe(;)g Fi(dir)g Fe(:)p Fi(get)p 2554 2978 V 31 w(y)e @@ -16086,27 +16088,27 @@ 5095 y Fk(const)32 b(F)-8 b(o)s(cus)33 b Fm(&)o Fk(op)s(erator)5 b Fm(=\()p Fk(const)32 b(F)-8 b(o)s(cus)32 b Fm(&\);)p eop end -%%Page: 158 158 -TeXDict begin 158 157 bop 0 83 a Fm(158)140 b Fl(ASSIGNMENT)2464 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(570)0 263 y Fk(570.)0 388 -y Fn(h)14 b Fm(De\014ne)28 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k -Fl(561)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(const)32 -b(F)-8 b(o)s(cus)33 b Fm(&)o Fk(F)-8 b(o)s(cus)13 b Fm(::)8 -b Fk(op)s(erator)d Fm(=\()p Fk(const)32 b(F)-8 b(o)s(cus)33 -b Fm(&)o Fe(f)9 b Fm(\))83 587 y Fn(f)166 686 y Fk(if)41 -b Fm(\()p Fi(this)35 b Fn(\021)23 b Fm(&)o Fe(f)9 b Fm(\))166 -b Fe(=)p Fn(\003)41 b Fm([)p Fh(LDF)25 b(2002.10.13.)p -Fm(])61 b(Prev)n(en)n(t)26 b(self-assignmen)n(t.)49 b -Fn(\003)p Fe(=)249 786 y Fk(return)33 b Fn(\003)p Fi(this)11 -b Fm(;)166 886 y Fi(p)l(osition)35 b Fm(=)23 b Fe(f)8 -b(:)p Fi(p)l(osition)k Fm(;)166 985 y Fi(dir)l(e)l(ction)35 -b Fm(=)22 b Fe(f)9 b(:)p Fi(dir)l(e)l(ction)i Fm(;)166 -1085 y Fi(up)33 b Fm(=)22 b Fe(f)9 b(:)p Fi(up)g Fm(;)166 -1185 y Fi(distanc)l(e)34 b Fm(=)23 b Fe(f)8 b(:)p Fi(distanc)l(e)k -Fm(;)166 1284 y Fi(angle)34 b Fm(=)23 b Fe(f)9 b(:)p -Fi(angle)i Fm(;)166 1384 y Fi(axis)35 b Fm(=)22 b Fe(f)9 -b(:)p Fi(axis)i Fm(;)166 1483 y Fi(tr)l(ansform)34 b -Fm(=)23 b Fe(f)8 b(:)p Fi(tr)l(ansform)j Fm(;)166 1583 +%%Page: 159 159 +TeXDict begin 159 158 bop 0 83 a Fn(x)p Fm(570)140 b +Fl(3DLDFPR)n(G)2464 b(ASSIGNMENT)141 b Fm(159)0 263 y +Fk(570.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(F)-8 b(o)s(cus)32 +b Fm(functions)k Fl(561)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(const)32 b(F)-8 b(o)s(cus)33 b Fm(&)o Fk(F)-8 +b(o)s(cus)13 b Fm(::)8 b Fk(op)s(erator)d Fm(=\()p Fk(const)32 +b(F)-8 b(o)s(cus)33 b Fm(&)o Fe(f)9 b Fm(\))83 587 y +Fn(f)166 686 y Fk(if)41 b Fm(\()p Fi(this)35 b Fn(\021)23 +b Fm(&)o Fe(f)9 b Fm(\))166 b Fe(=)p Fn(\003)41 b Fm([)p +Fh(LDF)25 b(2002.10.13.)p Fm(])61 b(Prev)n(en)n(t)26 +b(self-assignmen)n(t.)49 b Fn(\003)p Fe(=)249 786 y Fk(return)33 +b Fn(\003)p Fi(this)11 b Fm(;)166 886 y Fi(p)l(osition)35 +b Fm(=)23 b Fe(f)8 b(:)p Fi(p)l(osition)k Fm(;)166 985 +y Fi(dir)l(e)l(ction)35 b Fm(=)22 b Fe(f)9 b(:)p Fi(dir)l(e)l(ction)i +Fm(;)166 1085 y Fi(up)33 b Fm(=)22 b Fe(f)9 b(:)p Fi(up)g +Fm(;)166 1185 y Fi(distanc)l(e)34 b Fm(=)23 b Fe(f)8 +b(:)p Fi(distanc)l(e)k Fm(;)166 1284 y Fi(angle)34 b +Fm(=)23 b Fe(f)9 b(:)p Fi(angle)i Fm(;)166 1384 y Fi(axis)35 +b Fm(=)22 b Fe(f)9 b(:)p Fi(axis)i Fm(;)166 1483 y Fi(tr)l(ansform)34 +b Fm(=)23 b Fe(f)8 b(:)p Fi(tr)l(ansform)j Fm(;)166 1583 y Fi(p)l(ersp)33 b Fm(=)23 b Fe(f)9 b(:)p Fi(p)l(ersp)h Fm(;)166 1683 y Fk(return)33 b Fn(\003)p Fi(this)11 b Fm(;)83 1782 y Fn(g)0 1982 y Fk(571.)94 b(Reset)31 b(angle.)94 @@ -16116,10 +16118,10 @@ b Fm(+)p Fn(\021)83 2206 y Fk(v)m(oid)33 b Fi(r)l(eset)p 465 2206 26 4 v 30 w(angle)11 b Fm(\()p Fk(const)33 b(real)f Fi(ang)12 b Fm(\);)p eop end -%%Page: 159 159 -TeXDict begin 159 158 bop 0 83 a Fn(x)p Fm(572)140 b -Fl(3DLDFPR)n(G)2431 b(RESET)23 b(ANGLE)141 b Fm(159)0 -263 y Fk(572.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(F)-8 +%%Page: 160 160 +TeXDict begin 160 159 bop 0 83 a Fm(160)140 b Fl(RESET)23 +b(ANGLE)2431 b(3DLDFPR)n(G)142 b Fn(x)p Fm(572)0 263 +y Fk(572.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k Fl(561)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(F)-8 b(o)s(cus)12 b Fm(::)c Fi(r)l(eset)p 767 487 26 4 v 31 w(angle)j Fm(\()p @@ -16177,33 +16179,32 @@ Fm(\(2)o Fe(;)i Fm(2)p Fe(;)g Fm(0)o(\);)166 3028 y Fi(p)l(ersp)c Fe(:)p Fi(set)p 491 3028 V 31 w(element)i Fm(\(2)o Fe(;)i Fm(3)p Fe(;)g Fm(1)o Fe(=)p Fi(distanc)l(e)d Fm(\);)83 -3127 y Fn(g)0 3327 y Fk(573.)94 b(Sho)m(w.)p 0 3402 1643 -4 v 1738 3435 a(Begin)31 b(Log)p 2257 3402 V 83 3576 -a Fm([)p Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 -b(this)g(function.)83 3675 y([)p Fh(LDF)d(2003.07.09.)p -Fm(])61 b(Made)27 b(the)h(argumen)n(ts)f Fk(const)5 b -Fm(.)p 0 3767 1678 4 v 1773 3800 a Fk(End)32 b(Log)p -2222 3767 V 0 3924 a Fn(h)14 b Fm(Declare)27 b Fk(F)-8 -b(o)s(cus)32 b Fm(functions)k Fl(558)14 b Fn(i)24 b Fm(+)p -Fn(\021)83 4024 y Fk(v)m(oid)33 b Fi(show)14 b Fm(\()p -Fk(const)32 b(string)i Fi(text)p 1174 4024 26 4 v 29 -w(str)i Fm(=)22 b Ff("Focus:")q Fe(;)14 b Fk(const)33 -b(b)s(o)s(ol)e Fi(show)p 2450 4024 V 31 w(tr)l(ansforms)j -Fm(=)23 b Fi(false)12 b Fm(\))28 b Fk(const)t Fm(;)p -eop end -%%Page: 160 160 -TeXDict begin 160 159 bop 0 83 a Fm(160)140 b Fl(SHO)n(W)2728 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(574)0 263 y Fk(574.)0 388 -y Fn(h)14 b Fm(De\014ne)28 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k -Fl(561)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 -b(F)-8 b(o)s(cus)12 b Fm(::)c Fi(show)15 b Fm(\()p Fk(const)33 -b(string)g Fi(text)p 1477 487 26 4 v 29 w(str)13 b Fe(;)h -Fk(const)32 b(b)s(o)s(ol)f Fi(show)p 2289 487 V 32 w(tr)l(ansforms)11 -b Fm(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fi(c)l(out)35 -b Fn(\034)23 b Fi(text)p 594 686 V 29 w(str)36 b Fn(\034)23 -b Fi(end)t(l)14 b Fm(;)166 786 y Fi(p)l(osition)e Fe(:)p -Fi(show)i Fm(\()p Ff("position:")p Fm(\);)166 886 y Fi(dir)l(e)l(ction) -e Fe(:)p Fi(show)i Fm(\()p Ff("direction:")o Fm(\);)166 +3127 y Fn(g)0 3327 y Fk(573.)94 b(Sho)m(w.)p 0 3402 1779 +4 v 1874 3435 a(Log)p 2122 3402 V 83 3576 a Fm([)p Fh(LDF)25 +b(2002.09.17.)p Fm(])61 b(Added)28 b(this)g(function.)83 +3675 y([)p Fh(LDF)d(2003.07.09.)p Fm(])61 b(Made)27 b(the)h(argumen)n +(ts)f Fk(const)5 b Fm(.)p 0 3767 3900 4 v 0 3924 a Fn(h)14 +b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k +Fl(558)14 b Fn(i)24 b Fm(+)p Fn(\021)83 4024 y Fk(v)m(oid)33 +b Fi(show)14 b Fm(\()p Fk(const)32 b(string)i Fi(text)p +1174 4024 26 4 v 29 w(str)i Fm(=)22 b Ff("Focus:")q Fe(;)14 +b Fk(const)33 b(b)s(o)s(ol)e Fi(show)p 2450 4024 V 31 +w(tr)l(ansforms)j Fm(=)23 b Fi(false)12 b Fm(\))28 b +Fk(const)t Fm(;)p eop end +%%Page: 161 161 +TeXDict begin 161 160 bop 0 83 a Fn(x)p Fm(574)140 b +Fl(3DLDFPR)n(G)2728 b(SHO)n(W)141 b Fm(161)0 263 y Fk(574.)0 +388 y Fn(h)14 b Fm(De\014ne)28 b Fk(F)-8 b(o)s(cus)32 +b Fm(functions)k Fl(561)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(v)m(oid)33 b(F)-8 b(o)s(cus)12 b Fm(::)c Fi(show)15 +b Fm(\()p Fk(const)33 b(string)g Fi(text)p 1477 487 26 +4 v 29 w(str)13 b Fe(;)h Fk(const)32 b(b)s(o)s(ol)f Fi(show)p +2289 487 V 32 w(tr)l(ansforms)11 b Fm(\))28 b Fk(const)83 +587 y Fn(f)166 686 y Fi(c)l(out)35 b Fn(\034)23 b Fi(text)p +594 686 V 29 w(str)36 b Fn(\034)23 b Fi(end)t(l)14 b +Fm(;)166 786 y Fi(p)l(osition)e Fe(:)p Fi(show)i Fm(\()p +Ff("position:")p Fm(\);)166 886 y Fi(dir)l(e)l(ction)e +Fe(:)p Fi(show)i Fm(\()p Ff("direction:")o Fm(\);)166 985 y Fi(up)c Fe(:)p Fi(show)k Fm(\()p Ff("up:")r Fm(\);)166 1085 y Fi(c)l(out)35 b Fn(\034)23 b Ff("distance)p Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)j Fi(distanc)l(e)34 b Fn(\034)23 @@ -16226,78 +16227,75 @@ b(o)s(cus)40 b Fm(a)35 b Fk(class)40 b Fm(\(it)c(w)n(as)e(formerly)g(a) h Fk(struct)6 b Fm(\),)38 b(and)d(the)h(data)0 2181 y(mem)n(b)r(ers)27 b Fk(priv)-5 b(ate)5 b Fm(.)0 2380 y Fk(576.)94 b(Get)32 -b(p)s(osition.)p 0 2479 1643 4 v 1738 2512 a(Begin)f(Log)p -2257 2479 V 83 2653 a Fm([)p Fh(LDF)25 b(2002.09.18.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 2745 1678 4 -v 1773 2777 a Fk(End)k(Log)p 2222 2745 V 0 2902 a Fn(h)14 -b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k +b(p)s(osition.)p 0 2479 1779 4 v 1874 2511 a(Log)p 2122 +2479 V 83 2652 a Fm([)p Fh(LDF)25 b(2002.09.18.)p Fm(])61 +b(Added)28 b(this)g(function.)p 0 2744 3900 4 v 0 2901 +a Fn(h)14 b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k Fl(558)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3001 y Fk(inline)31 b(const)h(P)m(oin)m(t)h Fm(&)p Fi(get)p 1026 3001 26 4 v 30 w(p)l(osition)12 b Fm(\()i(\))28 b Fk(const)83 -3101 y Fn(f)166 3201 y Fk(return)33 b Fi(p)l(osition)12 +3100 y Fn(f)166 3200 y Fk(return)33 b Fi(p)l(osition)12 b Fm(;)83 3300 y Fn(g)0 3499 y Fk(577.)94 b(Get)32 b(direction.)p -0 3575 1643 4 v 1738 3608 a(Begin)f(Log)p 2257 3575 V -83 3749 a Fm([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 3840 1678 4 v 1773 3873 a Fk(End)k(Log)p -2222 3840 V 0 3998 a Fn(h)14 b Fm(Declare)27 b Fk(F)-8 -b(o)s(cus)32 b Fm(functions)k Fl(558)14 b Fn(i)24 b Fm(+)p -Fn(\021)83 4097 y Fk(inline)31 b(const)h(P)m(oin)m(t)h -Fm(&)p Fi(get)p 1026 4097 26 4 v 30 w(dir)l(e)l(ction)12 -b Fm(\()i(\))28 b Fk(const)83 4197 y Fn(f)166 4297 y -Fk(return)33 b Fi(dir)l(e)l(ction)12 b Fm(;)83 4396 y -Fn(g)0 4595 y Fk(578.)94 b(Get)32 b(distance.)95 b Fm([)p -Fh(LDF)25 b(2002.09.18.)p Fm(])61 b(Added)28 b(this)g(function.)0 -4720 y Fn(h)14 b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 -b Fm(functions)k Fl(558)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -4820 y Fk(inline)31 b(const)h(real)h Fm(&)o Fi(get)p -957 4820 V 31 w(distanc)l(e)11 b Fm(\()j(\))28 b Fk(const)83 -4919 y Fn(f)166 5019 y Fk(return)33 b Fi(distanc)l(e)11 -b Fm(;)83 5118 y Fn(g)0 5318 y Fk(579.)94 b(Get)32 b(up.)95 +0 3575 1779 4 v 1874 3607 a(Log)p 2122 3575 V 83 3748 +a Fm([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 3840 3900 4 v 0 3997 a Fn(h)14 +b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k +Fl(558)14 b Fn(i)24 b Fm(+)p Fn(\021)83 4097 y Fk(inline)31 +b(const)h(P)m(oin)m(t)h Fm(&)p Fi(get)p 1026 4097 26 +4 v 30 w(dir)l(e)l(ction)12 b Fm(\()i(\))28 b Fk(const)83 +4196 y Fn(f)166 4296 y Fk(return)33 b Fi(dir)l(e)l(ction)12 +b Fm(;)83 4395 y Fn(g)0 4595 y Fk(578.)94 b(Get)32 b(distance.)95 +b Fm([)p Fh(LDF)25 b(2002.09.18.)p Fm(])61 b(Added)28 +b(this)g(function.)0 4719 y Fn(h)14 b Fm(Declare)27 b +Fk(F)-8 b(o)s(cus)32 b Fm(functions)k Fl(558)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 4819 y Fk(inline)31 b(const)h(real)h +Fm(&)o Fi(get)p 957 4819 V 31 w(distanc)l(e)11 b Fm(\()j(\))28 +b Fk(const)83 4918 y Fn(f)166 5018 y Fk(return)33 b Fi(distanc)l(e)11 +b Fm(;)83 5118 y Fn(g)0 5317 y Fk(579.)94 b(Get)32 b(up.)95 b Fm([)p Fh(LDF)25 b(2002.09.18.)p Fm(])61 b(Added)28 b(this)g(function.)p eop end -%%Page: 161 161 -TeXDict begin 161 160 bop 0 83 a Fn(x)p Fm(579)140 b -Fl(3DLDFPR)n(G)2667 b(GET)23 b(UP)141 b Fm(161)0 263 -y Fn(h)14 b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k +%%Page: 162 162 +TeXDict begin 162 161 bop 0 83 a Fm(162)140 b Fl(GET)24 +b(UP)2666 b(3DLDFPR)n(G)142 b Fn(x)p Fm(579)0 263 y Fn(h)14 +b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k Fl(558)14 b Fn(i)24 b Fm(+)p Fn(\021)83 363 y Fk(inline)31 b(const)h(P)m(oin)m(t)h Fm(&)p Fi(get)p 1026 363 26 4 v 30 w(up)10 b Fm(\()k(\))28 b Fk(const)83 462 y Fn(f)166 562 y Fk(return)33 b Fi(up)10 b Fm(;)83 662 y Fn(g)0 -861 y Fk(580.)94 b(Get)32 b(transform.)p 0 937 1643 4 -v 1738 969 a(Begin)f(Log)p 2257 937 V 83 1110 a Fm([)p -Fh(LDF)25 b(2002.09.18.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 1202 1678 4 v 1773 1234 a Fk(End)k(Log)p 2222 1202 -V 0 1359 a Fn(h)14 b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 -b Fm(functions)k Fl(558)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -1459 y Fk(inline)31 b(const)h(T)-8 b(ransform)33 b Fm(&)p -Fi(get)p 1232 1459 26 4 v 31 w(tr)l(ansform)10 b Fm(\()k(\))28 -b Fk(const)83 1558 y Fn(f)166 1658 y Fk(return)33 b Fi(tr)l(ansform)11 -b Fm(;)83 1757 y Fn(g)0 1957 y Fk(581.)94 b(Get)32 b(transform)g -(elemen)m(t.)p 0 2032 1643 4 v 1738 2065 a(Begin)f(Log)p -2257 2032 V 83 2206 a Fm([)p Fh(LDF)25 b(2002.09.18.)p -Fm(])61 b(Added)28 b(this)g(function.)83 2305 y([)p Fh(LDF)d -(2003.07.04.)p Fm(])61 b(Made)27 b(non-inline.)37 b(It)28 -b(no)n(w)f(calls)g Fk(T)-8 b(ransform)14 b Fm(::)8 b -Fi(get)p 2442 2305 26 4 v 31 w(element)k Fm(\()i(\))28 -b(instead)f(of)h(accessing)0 2405 y Fi(tr)l(ansform)11 -b Fe(:)p Fi(matrix)42 b Fm(directly)-7 b(.)36 b(This)28 -b(is)f(no)h(longer)e(p)r(ossible,)h(b)r(ecause)h Fk(F)-8 -b(o)s(cus)32 b Fm(is)27 b(no)g(longer)g(a)g Fk(friend)32 +861 y Fk(580.)94 b(Get)32 b(transform.)p 0 937 1779 4 +v 1874 969 a(Log)p 2122 937 V 83 1110 a Fm([)p Fh(LDF)25 +b(2002.09.18.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 1202 3900 4 v 0 1359 a Fn(h)14 b Fm(Declare)27 b Fk(F)-8 +b(o)s(cus)32 b Fm(functions)k Fl(558)14 b Fn(i)24 b Fm(+)p +Fn(\021)83 1459 y Fk(inline)31 b(const)h(T)-8 b(ransform)33 +b Fm(&)p Fi(get)p 1232 1459 26 4 v 31 w(tr)l(ansform)10 +b Fm(\()k(\))28 b Fk(const)83 1558 y Fn(f)166 1658 y +Fk(return)33 b Fi(tr)l(ansform)11 b Fm(;)83 1757 y Fn(g)0 +1957 y Fk(581.)94 b(Get)32 b(transform)g(elemen)m(t.)p +0 2032 1779 4 v 1874 2065 a(Log)p 2122 2032 V 83 2206 +a Fm([)p Fh(LDF)25 b(2002.09.18.)p Fm(])61 b(Added)28 +b(this)g(function.)83 2305 y([)p Fh(LDF)d(2003.07.04.)p +Fm(])61 b(Made)27 b(non-inline.)37 b(It)28 b(no)n(w)f(calls)g +Fk(T)-8 b(ransform)14 b Fm(::)8 b Fi(get)p 2442 2305 +26 4 v 31 w(element)k Fm(\()i(\))28 b(instead)f(of)h(accessing)0 +2405 y Fi(tr)l(ansform)11 b Fe(:)p Fi(matrix)42 b Fm(directly)-7 +b(.)36 b(This)28 b(is)f(no)h(longer)e(p)r(ossible,)h(b)r(ecause)h +Fk(F)-8 b(o)s(cus)32 b Fm(is)27 b(no)g(longer)g(a)g Fk(friend)32 b Fm(of)c Fk(T)-8 b(ransform)5 b Fm(.)83 2505 y([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 b(Changed)27 b(the)h Fk(const)33 b(unsigned)e(in)m(t)h Fm(argumen)n(ts)27 b(to)g Fk(const)32 -b(unsigned)g(short)t Fm(.)p 0 2597 1678 4 v 1773 2629 -a Fk(End)g(Log)p 2222 2597 V 0 2754 a Fn(h)14 b Fm(Declare)27 -b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k Fl(558)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 2853 y Fk(real)32 b Fi(get)p 380 -2853 26 4 v 31 w(tr)l(ansform)p 763 2853 V 31 w(element)12 -b Fm(\()p Fk(const)33 b(unsigned)e(short)h Fi(r)l(ow)14 -b Fe(;)g Fk(const)32 b(unsigned)f(short)i Fi(c)l(olumn)10 -b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 162 162 -TeXDict begin 162 161 bop 0 83 a Fm(162)140 b Fl(GET)24 -b(TRANSF)n(ORM)e(ELEMENT)1924 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(582)0 263 y Fk(582.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b(unsigned)g(short)t Fm(.)p 0 2597 3900 4 v 0 2754 a +Fn(h)14 b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k +Fl(558)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2853 y Fk(real)32 +b Fi(get)p 380 2853 26 4 v 31 w(tr)l(ansform)p 763 2853 +V 31 w(element)12 b Fm(\()p Fk(const)33 b(unsigned)e(short)h +Fi(r)l(ow)14 b Fe(;)g Fk(const)32 b(unsigned)f(short)i +Fi(c)l(olumn)10 b Fm(\))28 b Fk(const)5 b Fm(;)p eop +end +%%Page: 163 163 +TeXDict begin 163 162 bop 0 83 a Fn(x)p Fm(582)140 b +Fl(3DLDFPR)n(G)1924 b(GET)24 b(TRANSF)n(ORM)f(ELEMENT)140 +b Fm(163)0 263 y Fk(582.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k Fl(561)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(real)30 b(F)-8 b(o)s(cus)13 b Fm(::)8 b Fi(get)p 681 487 26 4 v 31 w(tr)l(ansform)p @@ -16307,64 +16305,62 @@ 686 y Fk(return)33 b Fi(tr)l(ansform)11 b Fe(:)p Fi(get)p 959 686 V 30 w(element)i Fm(\()p Fi(r)l(ow)g Fe(;)h Fi(c)l(olumn)d Fm(\);)83 786 y Fn(g)0 985 y Fk(583.)94 b(Get)32 b(p)s(ersp.)p -0 1085 1643 4 v 1738 1117 a(Begin)f(Log)p 2257 1085 V -83 1258 a Fm([)p Fh(LDF)25 b(2002.09.18.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 1350 1678 4 v 1773 1382 a Fk(End)k(Log)p -2222 1350 V 0 1507 a Fn(h)14 b Fm(Declare)27 b Fk(F)-8 -b(o)s(cus)32 b Fm(functions)k Fl(558)14 b Fn(i)24 b Fm(+)p -Fn(\021)83 1607 y Fk(inline)31 b(const)h(T)-8 b(ransform)33 -b Fm(&)p Fi(get)p 1232 1607 26 4 v 31 w(p)l(ersp)10 b -Fm(\()k(\))28 b Fk(const)83 1706 y Fn(f)166 1806 y Fk(return)33 -b Fi(p)l(ersp)10 b Fm(;)83 1905 y Fn(g)0 2105 y Fk(584.)94 -b(Get)32 b(p)s(ersp)f(elemen)m(t.)p 0 2204 1643 4 v 1738 -2237 a(Begin)g(Log)p 2257 2204 V 83 2377 a Fm([)p Fh(LDF)25 -b(2002.09.18.)p Fm(])61 b(Added)28 b(this)g(function.)83 -2477 y([)p Fh(LDF)d(2003.07.04.)p Fm(])61 b(Made)27 b(non-inline.)37 -b(It)28 b(no)n(w)f(calls)g Fk(T)-8 b(ransform)14 b Fm(::)8 -b Fi(get)p 2442 2477 26 4 v 31 w(element)k Fm(\()i(\))28 -b(instead)f(of)h(accessing)0 2577 y Fi(tr)l(ansform)11 -b Fe(:)p Fi(matrix)42 b Fm(directly)-7 b(.)36 b(This)28 -b(is)f(no)h(longer)e(p)r(ossible,)h(b)r(ecause)h Fk(F)-8 -b(o)s(cus)32 b Fm(is)27 b(no)g(longer)g(a)g Fk(friend)32 -b Fm(of)c Fk(T)-8 b(ransform)5 b Fm(.)83 2676 y([)p Fh(LDF)25 +0 1084 1779 4 v 1874 1117 a(Log)p 2122 1084 V 83 1257 +a Fm([)p Fh(LDF)25 b(2002.09.18.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 1349 3900 4 v 0 1506 a Fn(h)14 +b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k +Fl(558)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1606 y Fk(inline)31 +b(const)h(T)-8 b(ransform)33 b Fm(&)p Fi(get)p 1232 1606 +26 4 v 31 w(p)l(ersp)10 b Fm(\()k(\))28 b Fk(const)83 +1706 y Fn(f)166 1805 y Fk(return)33 b Fi(p)l(ersp)10 +b Fm(;)83 1905 y Fn(g)0 2104 y Fk(584.)94 b(Get)32 b(p)s(ersp)f(elemen) +m(t.)p 0 2203 1779 4 v 1874 2235 a(Log)p 2122 2203 V +83 2376 a Fm([)p Fh(LDF)25 b(2002.09.18.)p Fm(])61 b(Added)28 +b(this)g(function.)83 2476 y([)p Fh(LDF)d(2003.07.04.)p +Fm(])61 b(Made)27 b(non-inline.)37 b(It)28 b(no)n(w)f(calls)g +Fk(T)-8 b(ransform)14 b Fm(::)8 b Fi(get)p 2442 2476 +26 4 v 31 w(element)k Fm(\()i(\))28 b(instead)f(of)h(accessing)0 +2575 y Fi(tr)l(ansform)11 b Fe(:)p Fi(matrix)42 b Fm(directly)-7 +b(.)36 b(This)28 b(is)f(no)h(longer)e(p)r(ossible,)h(b)r(ecause)h +Fk(F)-8 b(o)s(cus)32 b Fm(is)27 b(no)g(longer)g(a)g Fk(friend)32 +b Fm(of)c Fk(T)-8 b(ransform)5 b Fm(.)83 2675 y([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 b(Changed)27 b(the)h Fk(const)33 b(unsigned)e(in)m(t)h Fm(argumen)n(ts)27 b(to)g Fk(const)32 -b(unsigned)g(short)t Fm(.)p 0 2768 1678 4 v 1773 2801 -a Fk(End)g(Log)p 2222 2768 V 0 2925 a Fn(h)14 b Fm(Declare)27 -b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k Fl(558)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 3025 y Fk(real)32 b Fi(get)p 380 -3025 26 4 v 31 w(p)l(ersp)p 598 3025 V 31 w(element)12 -b Fm(\()p Fk(const)33 b(unsigned)e(short)i Fi(r)l(ow)13 +b(unsigned)g(short)t Fm(.)p 0 2767 3900 4 v 0 2924 a +Fn(h)14 b Fm(Declare)27 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k +Fl(558)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3024 y Fk(real)32 +b Fi(get)p 380 3024 26 4 v 31 w(p)l(ersp)p 598 3024 V +31 w(element)12 b Fm(\()p Fk(const)33 b(unsigned)e(short)i +Fi(r)l(ow)13 b Fe(;)h Fk(const)33 b(unsigned)e(short)h +Fi(c)l(olumn)11 b Fm(\))28 b Fk(const)t Fm(;)0 3223 y +Fk(585.)0 3347 y Fn(h)14 b Fm(De\014ne)28 b Fk(F)-8 b(o)s(cus)32 +b Fm(functions)k Fl(561)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3447 y Fk(real)32 b(F)-8 b(o)s(cus)13 b Fm(::)8 b Fi(get)p +683 3447 V 31 w(p)l(ersp)p 901 3447 V 31 w(element)13 +b Fm(\()p Fk(const)32 b(unsigned)g(short)g Fi(r)l(ow)13 b Fe(;)h Fk(const)33 b(unsigned)e(short)h Fi(c)l(olumn)11 -b Fm(\))28 b Fk(const)t Fm(;)0 3224 y Fk(585.)0 3349 -y Fn(h)14 b Fm(De\014ne)28 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k -Fl(561)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3448 y Fk(real)32 -b(F)-8 b(o)s(cus)13 b Fm(::)8 b Fi(get)p 683 3448 V 31 -w(p)l(ersp)p 901 3448 V 31 w(element)13 b Fm(\()p Fk(const)32 -b(unsigned)g(short)g Fi(r)l(ow)13 b Fe(;)h Fk(const)33 -b(unsigned)e(short)h Fi(c)l(olumn)11 b Fm(\))28 b Fk(const)83 -3548 y Fn(f)166 3648 y Fk(return)33 b Fi(p)l(ersp)10 -b Fe(:)p Fi(get)p 793 3648 V 31 w(element)i Fm(\()p Fi(r)l(ow)i -Fe(;)g Fi(c)l(olumn)c Fm(\);)83 3747 y Fn(g)0 3946 y -Fk(586.)94 b(Global)34 b(v)-5 b(ariables.)95 b Fm([)p -Fh(LDF)25 b(2002.12.08.)p Fm(])63 b(!!)45 b(BUG.)30 b(Commen)n -(ted-out,)g(b)r(ecause)g(of)g(a)g(bug)g(in)n(v)n(olving)e(trans-)0 -4046 y(formations.)83 4146 y(Default)g(v)-5 b(alue.)37 -b(Can)27 b(b)r(e)h(c)n(hanged.)0 4270 y Fn(h)14 b Fm(Global)27 -b(v)-5 b(ariables)34 b Fl(15)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4370 y Fk(F)-8 b(o)s(cus)32 b Fi(default)p 597 4370 V -32 w(fo)l(cus)11 b Fm(\(0)p Fe(;)j Fm(10)o Fe(;)g Fn(\000)o -Fm(10)o Fe(;)g Fm(0)p Fe(;)g Fm(10)n Fe(;)g Fm(0)p Fe(;)g -Fm(10)o(\);)0 4569 y Fk(587.)0 4694 y Fn(h)g Fm(Declarations)26 -b(for)h(the)h(header)f(\014le)36 b Fl(18)14 b Fn(i)23 -b Fm(+)p Fn(\021)83 4793 y Fk(extern)33 b(F)-8 b(o)s(cus)32 -b Fi(default)p 897 4793 V 31 w(fo)l(cus)12 b Fm(;)0 4993 -y Fk(588.)94 b(Putting)32 b(P)m(oin)m(t)g(and)g(F)-8 +b Fm(\))28 b Fk(const)83 3547 y Fn(f)166 3646 y Fk(return)33 +b Fi(p)l(ersp)10 b Fe(:)p Fi(get)p 793 3646 V 31 w(element)i +Fm(\()p Fi(r)l(ow)i Fe(;)g Fi(c)l(olumn)c Fm(\);)83 3746 +y Fn(g)0 3945 y Fk(586.)94 b(Global)34 b(v)-5 b(ariables.)95 +b Fm([)p Fh(LDF)25 b(2002.12.08.)p Fm(])63 b(!!)45 b(BUG.)30 +b(Commen)n(ted-out,)g(b)r(ecause)g(of)g(a)g(bug)g(in)n(v)n(olving)e +(trans-)0 4045 y(formations.)83 4144 y(Default)g(v)-5 +b(alue.)37 b(Can)27 b(b)r(e)h(c)n(hanged.)0 4269 y Fn(h)14 +b Fm(Global)27 b(v)-5 b(ariables)34 b Fl(15)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 4368 y Fk(F)-8 b(o)s(cus)32 b Fi(default)p +597 4368 V 32 w(fo)l(cus)11 b Fm(\(0)p Fe(;)j Fm(10)o +Fe(;)g Fn(\000)o Fm(10)o Fe(;)g Fm(0)p Fe(;)g Fm(10)n +Fe(;)g Fm(0)p Fe(;)g Fm(10)o(\);)0 4568 y Fk(587.)0 4692 +y Fn(h)g Fm(Declarations)26 b(for)h(the)h(header)f(\014le)36 +b Fl(18)14 b Fn(i)23 b Fm(+)p Fn(\021)83 4792 y Fk(extern)33 +b(F)-8 b(o)s(cus)32 b Fi(default)p 897 4792 V 31 w(fo)l(cus)12 +b Fm(;)0 4991 y Fk(588.)94 b(Putting)32 b(P)m(oin)m(t)g(and)g(F)-8 b(o)s(cus)32 b(together.)p eop end -%%Page: 163 163 -TeXDict begin 163 162 bop 0 83 a Fn(x)p Fm(589)140 b -Fl(3DLDFPR)n(G)1303 b(PUTTING)24 b Fk(POINT)g Fl(AND)f -Fk(F)m(OCUS)h Fl(TOGETHER)141 b Fm(163)0 263 y Fk(589.)94 +%%Page: 164 164 +TeXDict begin 164 163 bop 0 83 a Fm(164)140 b Fl(PUTTING)24 +b Fk(POINT)f Fl(AND)h Fk(F)m(OCUS)g Fl(TOGETHER)1303 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(589)0 263 y Fk(589.)94 b Fm(This)28 b(is)f(what's)h(compiled.)83 388 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 487 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 @@ -16395,111 +16391,118 @@ b Fm(functions)i Fl(470)15 b Fn(i)83 2181 y(h)f Fm(De\014ne)28 b Fk(Picture)33 b Fm(functions)j Fl(219)14 b Fn(i)p eop end -%%Page: 164 164 -TeXDict begin 164 163 bop 0 83 a Fm(164)140 b Fl(PUTTING)24 -b Fk(POINT)f Fl(AND)h Fk(F)m(OCUS)g Fl(TOGETHER)1303 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(590)0 263 y Fk(590.)94 +%%Page: 165 165 +TeXDict begin 165 164 bop 0 83 a Fn(x)p Fm(590)140 b +Fl(3DLDFPR)n(G)1303 b(PUTTING)24 b Fk(POINT)g Fl(AND)f +Fk(F)m(OCUS)h Fl(TOGETHER)141 b Fm(165)0 263 y Fk(590.)94 b Fm(This)28 b(is)f(what's)h(written)f(to)h Fj(points.h)p -Fm(.)0 388 y Fn(h)14 b Ff(points.h)80 b Fl(590)15 b Fn(i)23 +Fm(.)0 387 y Fn(h)14 b Ff(points.h)80 b Fl(590)15 b Fn(i)23 b(\021)83 487 y(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(oin)m(t)41 -b Fl(264)15 b Fn(i)83 587 y(h)f Fm(De\014ne)28 b Fk(class)k(F)-8 +b Fl(264)15 b Fn(i)83 586 y(h)f Fm(De\014ne)28 b Fk(class)k(F)-8 b(o)s(cus)40 b Fl(556)15 b Fn(i)83 686 y(h)f Fm(De\014ne)28 b(comparison)e(classes)34 b Fl(454)15 b Fn(i)83 786 y(h)f Fm(Declare)27 b(non-mem)n(b)r(er)g(functions)h(for)f -Fk(P)m(oin)m(ts)40 b Fl(436)15 b Fn(i)83 886 y(h)f Fm(T)n(yp)r(e)28 +Fk(P)m(oin)m(ts)40 b Fl(436)15 b Fn(i)83 885 y(h)f Fm(T)n(yp)r(e)28 b(de\014nitions)35 b Fl(12)14 b Fn(i)83 985 y(h)g Fm(Declarations)26 b(for)h(the)h(header)f(\014le)36 b Fl(18)14 b Fn(i)0 -1185 y Fk(591.)94 b(Line)h(\()p Fj(lines.web)p Fk(\).)248 +1184 y Fk(591.)94 b(Line)h(\()p Fj(lines.web)p Fk(\).)248 b Fm([)p Fh(LDF)25 b(2002.10.29.)p Fm(])61 b Fk(Lines)32 b Fm(are)26 b(not)i Fk(Shap)s(es)t Fm(.)37 b(They)28 b(are)e(used)i(for)f(p)r(erforming)0 1284 y(v)n(ector)f(op)r(erations.) 36 b(A)28 b Fk(Line)k Fm(is)27 b(de\014ned)h(b)n(y)f(a)g Fk(P)m(oin)m(t)33 b Fm(represen)n(ting)26 b(a)h(p)r(osition)g(v)n (ector)f(and)i(a)f Fk(P)m(oin)m(t)33 b Fm(represen)n(ting)25 -b(a)0 1384 y(direction)i(v)n(ector.)83 1483 y([)p Fh(LDF)e(2003.06.03.) +b(a)0 1383 y(direction)i(v)n(ector.)83 1483 y([)p Fh(LDF)e(2003.06.03.) p Fm(])61 b(TO)27 b(DO:)h(Add)g(setting)g(functions.)p -0 1587 1643 4 v 1738 1620 a Fk(Begin)j(Log)p 2257 1587 -V 83 1761 a Fm([)p Fh(LDF)25 b(2002.04.08.)p Fm(])69 -b(Added)35 b(this)h(section.)59 b([)p Fh(LDF)25 b(2002.04.12.)p -Fm(])69 b(Created)34 b(this)i(\014le.)59 b(Remo)n(v)n(ed)34 -b(the)i(co)r(de)f(for)f Fk(Line)0 1860 y Fm(from)27 b -Fj(points.web)d Fm(and)j(put)h(it)g(here.)83 1960 y([)p -Fh(LDF)d(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f -(con)n(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f -(the)h(distribution)g(of)0 2060 y(3DLDF)28 b(1.1.)36 -b(They're)27 b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t)f(v)n -(ersions.)p 0 2151 1678 4 v 1773 2184 a Fk(End)32 b(Log)p -2222 2151 V 0 2309 a Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden) -n(ti\014er)35 b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)0 -2508 y Fk(592.)94 b(Include)32 b(\014les.)0 2632 y Fn(h)14 -b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p -Fn(\021)0 2732 y Fm(#)p Fk(include)32 b Ff("loader.h")0 -2832 y Fm(#)p Fk(include)g Ff("pspglb.h")0 2931 y Fm(#)p -Fk(include)g Ff("io.h")0 3031 y Fm(#)p Fk(include)g Ff("colors.h")0 -3131 y Fm(#)p Fk(include)g Ff("transfor.h")0 3230 y Fm(#)p -Fk(include)g Ff("shapes.h")0 3330 y Fm(#)p Fk(include)g -Ff("pictures.h")0 3429 y Fm(#)p Fk(include)g Ff("points.h")0 -3629 y Fk(593.)94 b(Line)32 b(struct)g(de\014nition.)83 -3753 y(format)65 b Fi(Line)80 b(Point)0 3878 y Fn(h)14 -b Fm(De\014ne)28 b Fk(struct)33 b(Line)40 b Fl(593)15 -b Fn(i)23 b(\021)83 3977 y Fk(struct)33 b(Line)f Fn(f)83 -4077 y Fk(public)t Fm(:)42 b Fk(P)m(oin)m(t)33 b Fi(p)l(osition)12 -b Fm(;)166 4177 y Fk(P)m(oin)m(t)33 b Fi(dir)l(e)l(ction)11 -b Fm(;)166 4301 y Fn(h)j Fm(Declare)27 b Fk(Line)32 b -Fm(constructors)i Fl(595)14 b Fn(i)166 4401 y(h)g Fm(Declare)27 -b Fk(Line)32 b Fm(functions)k Fl(599)14 b Fn(i)83 4500 -y(g)p Fm(;)0 4608 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i -(613)f(and)g(614.)0 4808 y Fk(594.)94 b(Constructors.)h -Fm([)p Fh(LDF)26 b(2002.10.29.)p Fm(])52 b(The)20 b(constructors)e(and) -h(assignmen)n(t)g(op)r(erator)f(tak)n(e)h Fk(P)m(oin)m(t)24 -b Fm(argumen)n(ts)0 4907 y(for)j Fi(p)l(osition)40 b -Fm(and)27 b Fi(dir)l(e)l(ction)12 b Fm(.)36 b(If)29 b(y)n(ou)d(w)n(an)n -(t)h(to)h(get)f(the)h Fk(Line)k Fm(b)r(et)n(w)n(een)c(t)n(w)n(o)f -Fk(P)m(oin)m(ts)t Fm(,)0 5007 y(use)g Fk(P)m(oin)m(t)14 -b Fm(::)8 b Fi(get)p 544 5007 26 4 v 31 w(line)j Fm(\()j(\).)p -eop end -%%Page: 165 165 -TeXDict begin 165 164 bop 0 83 a Fn(x)p Fm(594)140 b -Fl(3DLDFPR)n(G)2346 b(CONSTR)n(UCTORS)140 b Fm(165)p -0 205 1643 4 v 1738 238 a Fk(Begin)31 b(Log)p 2257 205 -V 83 378 a Fm([)p Fh(LDF)25 b(2002.04.12.)p Fm(])56 b(It)22 -b(to)r(ok)g(me)g(a)g(while)h(to)f(\014gure)f(out)h(wh)n(y)g(I)g(w)n(as) -g(ha)n(ving)f(problems)g(with)i Fk(Lines)t Fm(.)35 b(The)23 -b(constructor)0 478 y(w)n(as)e(making)g(the)h(opp)r(osite)g -(assumption,)h(namely)-7 b(,)23 b(that)f(it)g(w)n(as)f(supp)r(osed)h -(to)g(calculate)f(the)h Fk(Line)27 b Fm(from)21 b(its)h(argumen)n(ts,)0 -578 y(rather)27 b(than)g(just)h(taking)f(them)i(as)e(they)g(w)n(ere.)36 -b(This)28 b(caused)f(a)g(problem)g(in)h Fk(Plane)13 b -Fm(::)8 b Fi(interse)l(ction)p 3263 578 26 4 v 31 w(line)j -Fm(\()j(\).)p 0 669 1678 4 v 1773 702 a Fk(End)32 b(Log)p -2222 669 V 0 901 a(595.)94 b(Default)31 b(constructor.)96 -b Fm(This)26 b(constructor)f(tak)n(es)h(t)n(w)n(o)g(optional)f -Fk(P)m(oin)m(t)32 b Fm(argumen)n(ts.)j(The)27 b(default)g(for)f(the)0 -1001 y Fk(P)m(oin)m(t)33 b Fm(argumen)n(ts)26 b(is)i -Fi(origin)11 b Fm(.)0 1126 y Fn(h)j Fm(Declare)27 b Fk(Line)32 -b Fm(constructors)i Fl(595)14 b Fn(i)24 b(\021)83 1225 -y Fk(Line)5 b Fm(\()p Fk(const)32 b(P)m(oin)m(t)h Fm(&)p -Fi(p)l(os)h Fm(=)23 b Fi(origin)12 b Fe(;)i Fk(const)32 -b(P)m(oin)m(t)h Fm(&)p Fi(dir)k Fm(=)22 b Fi(origin)12 -b Fm(\);)0 1333 y Fl(See)24 b(also)g(section)h(597.)0 -1441 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i(593.)0 -1640 y Fk(596.)0 1765 y Fn(h)14 b Fm(De\014ne)28 b Fk(Line)k -Fm(constructors)i Fl(596)15 b Fn(i)23 b(\021)83 1864 -y Fk(Line)13 b Fm(::)8 b Fk(Line)d Fm(\()p Fk(const)33 +0 1585 1779 4 v 1874 1618 a Fk(Log)p 2122 1585 V 83 1758 +a Fm([)p Fh(LDF)d(2002.04.08.)p Fm(])69 b(Added)35 b(this)h(section.)59 +b([)p Fh(LDF)25 b(2002.04.12.)p Fm(])69 b(Created)34 +b(this)i(\014le.)59 b(Remo)n(v)n(ed)34 b(the)i(co)r(de)f(for)f +Fk(Line)0 1858 y Fm(from)27 b Fj(points.web)d Fm(and)j(put)h(it)g +(here.)83 1958 y([)p Fh(LDF)d(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 +b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB) +g(\014les)g(for)f(the)h(distribution)g(of)0 2057 y(3DLDF)28 +b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t) +f(v)n(ersions.)83 2157 y([)p Fh(LDF)e(2003.12.10.)p Fm(])64 +b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden)n(ti\014ers)h(bac)n(k)f +(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h(3DLDF)i(1.1.4.)43 +b(I'v)n(e)0 2257 y(already)24 b(put)j(some)e(of)h(them)h(bac)n(k)e(in,) +i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.)37 b(Ho)n(w)n(ev)n +(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w)i(in)0 +2356 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 b(.)p +0 2448 3900 4 v 0 2605 a Fn(h)14 b Fm(V)-7 b(ersion)27 +b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 2704 y Fk(static)33 b(string)g Fi(r)l(cs)p +726 2704 26 4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p +Ff(lines.web,)o(v)p Fj( )o Ff(1.)-6 b(2)p Fj( )p Ff(2003/12/10)p +Fj( )p Ff(15)o(:4)o(0:4)f(8)p Fj( )p Ff(lfinsto1)p Fj( )p +Ff(Exp)p Fj( )p Ff($")n Fm(;)0 2904 y Fk(592.)94 b(Include)32 +b(\014les.)0 3028 y Fn(h)14 b Fm(Include)28 b(\014les)35 +b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 3127 y Fm(#)p +Fk(include)32 b Ff("loader.h")0 3227 y Fm(#)p Fk(include)g +Ff("pspglb.h")0 3327 y Fm(#)p Fk(include)g Ff("io.h")0 +3426 y Fm(#)p Fk(include)g Ff("colors.h")0 3526 y Fm(#)p +Fk(include)g Ff("transfor.h")0 3625 y Fm(#)p Fk(include)g +Ff("shapes.h")0 3725 y Fm(#)p Fk(include)g Ff("pictures.h")0 +3825 y Fm(#)p Fk(include)g Ff("points.h")0 4024 y Fk(593.)94 +b(Line)32 b(struct)g(de\014nition.)83 4148 y(format)65 +b Fi(Line)80 b(Point)0 4272 y Fn(h)14 b Fm(De\014ne)28 +b Fk(struct)33 b(Line)40 b Fl(593)15 b Fn(i)23 b(\021)83 +4372 y Fk(struct)33 b(Line)f Fn(f)83 4471 y Fk(public)t +Fm(:)42 b Fk(P)m(oin)m(t)33 b Fi(p)l(osition)12 b Fm(;)166 +4571 y Fk(P)m(oin)m(t)33 b Fi(dir)l(e)l(ction)11 b Fm(;)166 +4695 y Fn(h)j Fm(Declare)27 b Fk(Line)32 b Fm(constructors)i +Fl(595)14 b Fn(i)166 4794 y(h)g Fm(Declare)27 b Fk(Line)32 +b Fm(functions)k Fl(599)14 b Fn(i)83 4894 y(g)p Fm(;)0 +5001 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(613)f(and)g +(614.)0 5201 y Fk(594.)94 b(Constructors.)h Fm([)p Fh(LDF)26 +b(2002.10.29.)p Fm(])52 b(The)20 b(constructors)e(and)h(assignmen)n(t)g +(op)r(erator)f(tak)n(e)h Fk(P)m(oin)m(t)24 b Fm(argumen)n(ts)0 +5300 y(for)j Fi(p)l(osition)40 b Fm(and)27 b Fi(dir)l(e)l(ction)12 +b Fm(.)36 b(If)29 b(y)n(ou)d(w)n(an)n(t)h(to)h(get)f(the)h +Fk(Line)k Fm(b)r(et)n(w)n(een)c(t)n(w)n(o)f Fk(P)m(oin)m(ts)t +Fm(,)0 5400 y(use)g Fk(P)m(oin)m(t)14 b Fm(::)8 b Fi(get)p +544 5400 V 31 w(line)j Fm(\()j(\).)p eop end +%%Page: 166 166 +TeXDict begin 166 165 bop 0 83 a Fm(166)140 b Fl(CONSTR)n(UCTORS)2345 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(594)p 0 204 1779 4 v 1874 +237 a Fk(Log)p 2122 204 V 83 378 a Fm([)p Fh(LDF)25 b(2002.04.12.)p +Fm(])56 b(It)22 b(to)r(ok)g(me)g(a)g(while)h(to)f(\014gure)f(out)h(wh)n +(y)g(I)g(w)n(as)g(ha)n(ving)f(problems)g(with)i Fk(Lines)t +Fm(.)35 b(The)23 b(constructor)0 477 y(w)n(as)e(making)g(the)h(opp)r +(osite)g(assumption,)h(namely)-7 b(,)23 b(that)f(it)g(w)n(as)f(supp)r +(osed)h(to)g(calculate)f(the)h Fk(Line)27 b Fm(from)21 +b(its)h(argumen)n(ts,)0 577 y(rather)27 b(than)g(just)h(taking)f(them)i +(as)e(they)g(w)n(ere.)36 b(This)28 b(caused)f(a)g(problem)g(in)h +Fk(Plane)13 b Fm(::)8 b Fi(interse)l(ction)p 3263 577 +26 4 v 31 w(line)j Fm(\()j(\).)p 0 669 3900 4 v 0 901 +a Fk(595.)94 b(Default)31 b(constructor.)96 b Fm(This)26 +b(constructor)f(tak)n(es)h(t)n(w)n(o)g(optional)f Fk(P)m(oin)m(t)32 +b Fm(argumen)n(ts.)j(The)27 b(default)g(for)f(the)0 1000 +y Fk(P)m(oin)m(t)33 b Fm(argumen)n(ts)26 b(is)i Fi(origin)11 +b Fm(.)0 1125 y Fn(h)j Fm(Declare)27 b Fk(Line)32 b Fm(constructors)i +Fl(595)14 b Fn(i)24 b(\021)83 1224 y Fk(Line)5 b Fm(\()p +Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p)l(os)h Fm(=)23 +b Fi(origin)12 b Fe(;)i Fk(const)32 b(P)m(oin)m(t)h Fm(&)p +Fi(dir)k Fm(=)22 b Fi(origin)12 b Fm(\);)0 1332 y Fl(See)24 +b(also)g(section)h(597.)0 1440 y(This)e(co)r(de)i(is)e(used)h(in)f +(section)i(593.)0 1640 y Fk(596.)0 1764 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Line)k Fm(constructors)i Fl(596)15 b Fn(i)23 b(\021)83 +1864 y Fk(Line)13 b Fm(::)8 b Fk(Line)d Fm(\()p Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fi(p)l(os)12 b Fe(;)i Fk(const)32 -b(P)m(oin)m(t)h Fm(&)o Fi(dir)14 b Fm(\))83 1964 y(:)37 +b(P)m(oin)m(t)h Fm(&)o Fi(dir)14 b Fm(\))83 1963 y(:)37 b Fi(p)l(osition)12 b Fm(\()p Fi(p)l(os)g Fm(\))p Fe(;)42 b Fi(dir)l(e)l(ction)11 b Fm(\()p Fi(dir)j Fm(\))28 b -Fn(f)166 2064 y Fi(p)l(osition)12 b Fe(:)p Fi(apply)p -674 2064 26 4 v 32 w(tr)l(ansform)f Fm(\()j(\);)166 2163 +Fn(f)166 2063 y Fi(p)l(osition)12 b Fe(:)p Fi(apply)p +674 2063 26 4 v 32 w(tr)l(ansform)f Fm(\()j(\);)166 2163 y Fi(dir)l(e)l(ction)e Fe(:)p Fi(apply)p 705 2163 V 32 -w(tr)l(ansform)f Fm(\()j(\);)83 2263 y Fn(g)0 2371 y -Fl(See)24 b(also)g(section)h(598.)0 2479 y(This)e(co)r(de)i(is)e(used)h -(in)f(section)i(613.)0 2678 y Fk(597.)94 b(Cop)m(y)24 +w(tr)l(ansform)f Fm(\()j(\);)83 2262 y Fn(g)0 2370 y +Fl(See)24 b(also)g(section)h(598.)0 2478 y(This)e(co)r(de)i(is)e(used)h +(in)f(section)i(613.)0 2677 y Fk(597.)94 b(Cop)m(y)24 b(constructor.)96 b Fm([)p Fh(LDF)25 b(2002.10.29.)p -Fm(])53 b(Calling)20 b Fi(apply)p 2224 2678 V 32 w(tr)l(ansform)11 +Fm(])53 b(Calling)20 b Fi(apply)p 2224 2677 V 32 w(tr)l(ansform)11 b Fm(\()j(\))20 b(on)g Fi(p)l(osition)32 b Fm(and)20 -b Fi(dir)l(e)l(ction)31 b Fm(is)20 b(prob-)0 2778 y(ably)27 +b Fi(dir)l(e)l(ction)31 b Fm(is)20 b(prob-)0 2777 y(ably)27 b(unnecessary)-7 b(,)27 b(b)r(ecause)g(it)h(will)g(already)e(ha)n(v)n (e)g(b)r(een)i(called)g(on)f Fe(l)r(:)p Fi(p)l(osition)39 b Fm(and)28 b Fe(l)q(:)p Fi(dir)l(e)l(ction)39 b Fm(when)28 @@ -16507,43 +16510,43 @@ b(But)29 b(ma)n(yb)r(e)g(some)g(function)h(has)f(a\013ected)g Fe(l)r(:)p Fi(p)l(osition)12 b Fe(:)p Fi(tr)l(ansform)40 b Fm(or)28 b Fe(l)r(:)p Fi(dir)l(e)l(ction)11 b Fe(:)p -Fi(tr)l(ansform)g Fm(,)30 b(so)f(I'm)0 2977 y(doing)e(it)h(just)g(to)g +Fi(tr)l(ansform)g Fm(,)30 b(so)f(I'm)0 2976 y(doing)e(it)h(just)g(to)g (b)r(e)g(sure.)0 3101 y Fn(h)14 b Fm(Declare)27 b Fk(Line)32 b Fm(constructors)i Fl(595)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -3201 y Fk(Line)5 b Fm(\()p Fk(const)32 b(Line)g Fm(&)p -Fe(l)q Fm(\);)0 3400 y Fk(598.)0 3525 y Fn(h)14 b Fm(De\014ne)28 +3200 y Fk(Line)5 b Fm(\()p Fk(const)32 b(Line)g Fm(&)p +Fe(l)q Fm(\);)0 3400 y Fk(598.)0 3524 y Fn(h)14 b Fm(De\014ne)28 b Fk(Line)k Fm(constructors)i Fl(596)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3624 y Fk(Line)13 b Fm(::)8 b Fk(Line)d Fm(\()p -Fk(const)33 b(Line)f Fm(&)o Fe(l)r Fm(\))83 3724 y(:)37 +Fk(const)33 b(Line)f Fm(&)o Fe(l)r Fm(\))83 3723 y(:)37 b Fi(p)l(osition)12 b Fm(\()p Fe(l)q(:)p Fi(p)l(osition)g Fm(\))p Fe(;)42 b Fi(dir)l(e)l(ction)12 b Fm(\()p Fe(l)q(:)p -Fi(dir)l(e)l(ction)g Fm(\))28 b Fn(f)166 3824 y Fi(p)l(osition)12 -b Fe(:)p Fi(apply)p 674 3824 V 32 w(tr)l(ansform)f Fm(\()j(\);)166 +Fi(dir)l(e)l(ction)g Fm(\))28 b Fn(f)166 3823 y Fi(p)l(osition)12 +b Fe(:)p Fi(apply)p 674 3823 V 32 w(tr)l(ansform)f Fm(\()j(\);)166 3923 y Fi(dir)l(e)l(ction)e Fe(:)p Fi(apply)p 705 3923 -V 32 w(tr)l(ansform)f Fm(\()j(\);)83 4023 y Fn(g)0 4222 -y Fk(599.)94 b(Assignmen)m(t.)0 4347 y Fn(h)14 b Fm(Declare)27 +V 32 w(tr)l(ansform)f Fm(\()j(\);)83 4022 y Fn(g)0 4222 +y Fk(599.)94 b(Assignmen)m(t.)0 4346 y Fn(h)14 b Fm(Declare)27 b Fk(Line)32 b Fm(functions)k Fl(599)14 b Fn(i)24 b(\021)83 4446 y Fk(v)m(oid)33 b(op)s(erator)t Fm(=\()p Fk(const)g(Line)f Fm(&)o Fe(l)r Fm(\);)0 4554 y Fl(See)24 b(also)g(sections)g(602,)g (604,)g(and)h(608.)0 4662 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i (593.)p eop end -%%Page: 166 166 -TeXDict begin 166 165 bop 0 83 a Fm(166)140 b Fl(ASSIGNMENT)2464 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(600)0 263 y Fk(600.)0 388 -y Fn(h)14 b Fm(De\014ne)28 b Fk(Line)k Fm(functions)k -Fl(600)15 b Fn(i)23 b(\021)83 487 y Fk(v)m(oid)33 b(Line)12 -b Fm(::)d Fk(op)s(erator)c Fm(=)o(\()p Fk(const)33 b(Line)f -Fm(&)p Fe(l)q Fm(\))83 587 y Fn(f)166 686 y Fi(p)l(osition)j -Fm(=)23 b Fe(l)q(:)p Fi(p)l(osition)12 b Fm(;)166 786 -y Fi(dir)l(e)l(ction)35 b Fm(=)22 b Fe(l)r(:)p Fi(dir)l(e)l(ction)11 -b Fm(;)83 886 y Fn(g)0 994 y Fl(See)24 b(also)g(sections)g(605,)g(606,) -g(607,)g(609,)g(and)h(931.)0 1102 y(This)e(co)r(de)i(is)e(used)h(in)f -(sections)i(613)f(and)g(933.)0 1301 y Fk(601.)94 b(Get)43 -b(Line.)95 b Fm(\()p Fk(P)m(oin)m(t)43 b Fm(function\).)68 -b(LDF)38 b(Undated.)67 b(Declared)37 b(in)g Fj(points.web)p -Fm(.)63 b(Must)38 b(b)r(e)g(de\014ned)g(here,)0 1400 -y(b)r(ecause)27 b Fk(Line)32 b Fm(is)c(an)f(incomplete)h(t)n(yp)r(e)g -(there.)83 1500 y([)p Fh(LDF)d(2003.06.06.)p Fm(])64 +%%Page: 167 167 +TeXDict begin 167 166 bop 0 83 a Fn(x)p Fm(600)140 b +Fl(3DLDFPR)n(G)2464 b(ASSIGNMENT)141 b Fm(167)0 263 y +Fk(600.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Line)k +Fm(functions)k Fl(600)15 b Fn(i)23 b(\021)83 487 y Fk(v)m(oid)33 +b(Line)12 b Fm(::)d Fk(op)s(erator)c Fm(=)o(\()p Fk(const)33 +b(Line)f Fm(&)p Fe(l)q Fm(\))83 587 y Fn(f)166 686 y +Fi(p)l(osition)j Fm(=)23 b Fe(l)q(:)p Fi(p)l(osition)12 +b Fm(;)166 786 y Fi(dir)l(e)l(ction)35 b Fm(=)22 b Fe(l)r(:)p +Fi(dir)l(e)l(ction)11 b Fm(;)83 886 y Fn(g)0 994 y Fl(See)24 +b(also)g(sections)g(605,)g(606,)g(607,)g(609,)g(and)h(934.)0 +1102 y(This)e(co)r(de)i(is)e(used)h(in)f(sections)i(613)f(and)g(936.)0 +1301 y Fk(601.)94 b(Get)43 b(Line.)95 b Fm(\()p Fk(P)m(oin)m(t)43 +b Fm(function\).)68 b(LDF)38 b(Undated.)67 b(Declared)37 +b(in)g Fj(points.web)p Fm(.)63 b(Must)38 b(b)r(e)g(de\014ned)g(here,)0 +1400 y(b)r(ecause)27 b Fk(Line)32 b Fm(is)c(an)f(incomplete)h(t)n(yp)r +(e)g(there.)83 1500 y([)p Fh(LDF)d(2003.06.06.)p Fm(])64 b Fi(get)p 851 1500 26 4 v 30 w(line)11 b Fm(\()j(\))31 b(returns)e(a)h Fk(Line)k Fe(l)e Fm(corresp)r(onding)c(to)i(the)g(line) h(from)f Fn(\003)o Fi(this)42 b Fm(to)30 b Fe(p)o Fm(,)h(where)f @@ -16553,74 +16556,73 @@ b Fe(l)q(:)p Fi(p)l(osition)k Fm(will)26 b(b)r(e)h Fn(\003)o Fi(this)12 b Fm(,)27 b(and)f Fe(l)q(:)p Fi(dir)l(e)l(ction)38 b Fm(will)27 b(b)r(e)0 1699 y Fi(pt)k Fn(\000)18 b(\003)o -Fi(this)12 b Fm(.)p 0 1799 1643 4 v 1738 1831 a Fk(Begin)31 -b(Log)p 2257 1799 V 83 1972 a Fm([)p Fh(LDF)25 b(2003.06.06.)p +Fi(this)12 b Fm(.)p 0 1798 1779 4 v 1874 1831 a Fk(Log)p +2122 1798 V 83 1971 a Fm([)p Fh(LDF)25 b(2003.06.06.)p Fm(])60 b(BUG)26 b(FIX:)g(Changed)g(the)g(call)f(to)h Fk(Line)5 b Fm(\()14 b(\),)27 b(so)e(that)h(the)g(argumen)n(t)f(for)h Fi(dir)l(e)l(ction)37 b Fm(is)26 b Fi(pt)h Fn(\000)15 -b(\003)p Fi(this)0 2072 y Fm(instead)27 b(of)h Fi(pt)12 -b Fm(.)p 0 2163 1678 4 v 1773 2196 a Fk(End)32 b(Log)p -2222 2163 V 0 2321 a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 -b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -2420 y Fk(Line)32 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(get)p -697 2420 26 4 v 31 w(line)j Fm(\()p Fk(const)32 b(P)m(oin)m(t)h -Fm(&)p Fi(pt)12 b Fm(\))28 b Fk(const)83 2520 y Fn(f)166 -2619 y Fk(Line)k Fe(l)r Fm(\()p Fn(\003)o Fi(this)12 -b Fe(;)i Fm(\()p Fi(pt)31 b Fn(\000)18 b(\003)o Fi(this)12 -b Fm(\)\);)166 2744 y Fk(return)33 b Fe(l)r Fm(;)83 2844 -y Fn(g)0 3043 y Fk(602.)94 b(Get)32 b(P)m(ath.)96 b Fm([)p -Fh(LDF)26 b(2003.06.06.)p Fm(])61 b(Returns)27 b(a)h(linear)f -Fk(P)m(ath)34 b Fm(consisting)27 b(of)h(t)n(w)n(o)f Fk(P)m(oin)m(ts)t -Fm(,)h(and)g(corresp)r(onding)0 3143 y(to)f(the)h Fk(Line)5 +b(\003)p Fi(this)0 2071 y Fm(instead)27 b(of)h Fi(pt)12 +b Fm(.)p 0 2163 3900 4 v 0 2320 a Fn(h)i Fm(De\014ne)28 +b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 2420 y Fk(Line)32 b(P)m(oin)m(t)14 +b Fm(::)8 b Fi(get)p 697 2420 26 4 v 31 w(line)j Fm(\()p +Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(pt)12 b Fm(\))28 +b Fk(const)83 2519 y Fn(f)166 2619 y Fk(Line)k Fe(l)r +Fm(\()p Fn(\003)o Fi(this)12 b Fe(;)i Fm(\()p Fi(pt)31 +b Fn(\000)18 b(\003)o Fi(this)12 b Fm(\)\);)166 2743 +y Fk(return)33 b Fe(l)r Fm(;)83 2843 y Fn(g)0 3042 y +Fk(602.)94 b(Get)32 b(P)m(ath.)96 b Fm([)p Fh(LDF)26 +b(2003.06.06.)p Fm(])61 b(Returns)27 b(a)h(linear)f Fk(P)m(ath)34 +b Fm(consisting)27 b(of)h(t)n(w)n(o)f Fk(P)m(oin)m(ts)t +Fm(,)h(and)g(corresp)r(onding)0 3142 y(to)f(the)h Fk(Line)5 b Fm(.)37 b(Must)28 b(b)r(e)g(de\014ned)g(in)g Fj(paths.web)p Fm(,)c(b)r(ecause)j Fk(P)m(ath)34 b Fm(is)27 b(an)g(incomplete)h(t)n -(yp)r(e)g(here.)p 0 3244 1643 4 v 1738 3277 a Fk(Begin)j(Log)p -2257 3244 V 83 3417 a Fm([)p Fh(LDF)25 b(2003.06.06.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 3509 1678 4 -v 1773 3542 a Fk(End)k(Log)p 2222 3509 V 0 3666 a Fn(h)14 -b Fm(Declare)27 b Fk(Line)32 b Fm(functions)k Fl(599)14 -b Fn(i)24 b Fm(+)p Fn(\021)83 3766 y Fk(P)m(ath)34 b -Fi(get)p 424 3766 26 4 v 30 w(p)l(ath)11 b Fm(\()p Fk(v)m(oid)6 -b Fm(\))27 b Fk(const)5 b Fm(;)0 3965 y Fk(603.)94 b(In)m(tersection.)h -Fm([)p Fh(LDF)26 b(2003.06.06.)p Fm(])67 b(Commen)n(ted-out.)55 -b(This)34 b(function)h(do)r(esn't)f(w)n(ork.)55 b(Using)33 -b(a)h(di\013eren)n(t)0 4065 y(v)n(ersion,)26 b(that)h(\014nds)g(the)g -(in)n(tersection)f(p)r(oin)n(ts)h(of)g(the)g(traces)f(of)h(the)g(lines) -g(on)f(t)n(w)n(o)g(or)g(all)h(of)g(the)g(ma)5 b(jor)26 -b(axes.)35 b(TO)27 b(DO:)0 4165 y(Fix)h(it!)83 4264 y(LDF)e(Undated.)36 -b(Declared)25 b(in)h Fj(points.web)p Fm(,)21 b(but)26 -b(m)n(ust)g(b)r(e)f(de\014ned)h(here,)f(b)r(ecause)g +(yp)r(e)g(here.)p 0 3243 1779 4 v 1874 3275 a Fk(Log)p +2122 3243 V 83 3416 a Fm([)p Fh(LDF)d(2003.06.06.)p Fm(])61 +b(Added)28 b(this)g(function.)p 0 3508 3900 4 v 0 3665 +a Fn(h)14 b Fm(Declare)27 b Fk(Line)32 b Fm(functions)k +Fl(599)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3765 y Fk(P)m(ath)34 +b Fi(get)p 424 3765 26 4 v 30 w(p)l(ath)11 b Fm(\()p +Fk(v)m(oid)6 b Fm(\))27 b Fk(const)5 b Fm(;)0 3964 y +Fk(603.)94 b(In)m(tersection.)h Fm([)p Fh(LDF)26 b(2003.06.06.)p +Fm(])67 b(Commen)n(ted-out.)55 b(This)34 b(function)h(do)r(esn't)f(w)n +(ork.)55 b(Using)33 b(a)h(di\013eren)n(t)0 4064 y(v)n(ersion,)26 +b(that)h(\014nds)g(the)g(in)n(tersection)f(p)r(oin)n(ts)h(of)g(the)g +(traces)f(of)h(the)g(lines)g(on)f(t)n(w)n(o)g(or)g(all)h(of)g(the)g(ma) +5 b(jor)26 b(axes.)35 b(TO)27 b(DO:)0 4163 y(Fix)h(it!)83 +4263 y(LDF)e(Undated.)36 b(Declared)25 b(in)h Fj(points.web)p +Fm(,)21 b(but)26 b(m)n(ust)g(b)r(e)f(de\014ned)h(here,)f(b)r(ecause)g Fk(Line)30 b Fm(is)25 b(an)g(incomplete)g(t)n(yp)r(e)h(in)0 -4364 y Fj(points.web)p Fm(.)p 0 4465 1643 4 v 1738 4498 -a Fk(Begin)31 b(Log)p 2257 4465 V 83 4639 a Fm([)p Fh(LDF)25 -b(2002.04.12.)p Fm(])72 b(Mo)n(v)n(ed)37 b(this)i(function)g -(de\014nition)g(here)f(from)g Fj(points.web)d Fm(b)r(ecause)j(it)h -(requires)e(the)i(use)f(of)0 4738 y Fk(Lines)t Fm(,)28 -b(and)f Fk(Line)33 b Fm(is)27 b(an)g(incomplete)h(t)n(yp)r(e)g(there.) -83 4838 y([)p Fh(LDF)d(2002.04.15.)p Fm(])75 b(Commen)n(ted-out,)45 +4362 y Fj(points.web)p Fm(.)p 0 4463 1779 4 v 1874 4496 +a Fk(Log)p 2122 4463 V 83 4637 a Fm([)p Fh(LDF)f(2002.04.12.)p +Fm(])72 b(Mo)n(v)n(ed)37 b(this)i(function)g(de\014nition)g(here)f +(from)g Fj(points.web)d Fm(b)r(ecause)j(it)h(requires)e(the)i(use)f(of) +0 4736 y Fk(Lines)t Fm(,)28 b(and)f Fk(Line)33 b Fm(is)27 +b(an)g(incomplete)h(t)n(yp)r(e)g(there.)83 4836 y([)p +Fh(LDF)d(2002.04.15.)p Fm(])75 b(Commen)n(ted-out,)45 b(b)r(ecause)d(I'm)g(ha)n(ving)f(problems)g(with)h(it.)80 -b(Commen)n(ted)42 b(old)g(v)n(ersion)e(in)0 4938 y Fj(points.web)24 +b(Commen)n(ted)42 b(old)g(v)n(ersion)e(in)0 4936 y Fj(points.web)24 b Fm(bac)n(k)i(in.)37 b(I)28 b(don't)g(quite)g(understand)f(this,)h(b)r -(ecause)f(it)h(seemed)g(to)f(b)r(e)h(w)n(orking.)83 5037 +(ecause)f(it)h(seemed)g(to)f(b)r(e)h(w)n(orking.)83 5035 y([)p Fh(LDF)d(2002.04.22.)p Fm(])53 b(Changed)19 b(return)g(v)-5 -b(alue)20 b(to)g Fk(b)s(o)s(ol)p 1802 5037 29 5 v 38 +b(alue)20 b(to)g Fk(b)s(o)s(ol)p 1802 5035 29 5 v 38 w(p)s(oin)m(t)t Fm(,)i(to)d(corresp)r(ond)f(with)i(the)h(old)e(v)n -(ersion.)33 b(This)19 b(facilitates)0 5137 y(testing,)27 +(ersion.)33 b(This)19 b(facilitates)0 5135 y(testing,)27 b(since)g(all)f(I)h(ha)n(v)n(e)f(to)g(do)h(is)f(to)h(commen)n(t-out)f (whic)n(hev)n(er)g(v)n(ersion)f(I)i(don't)g(w)n(an)n(t)f(to)h(use,)g -(and)f(uncommen)n(t-out)0 5237 y(the)i(other)f(one.)36 +(and)f(uncommen)n(t-out)0 5234 y(the)i(other)f(one.)36 b(Made)28 b(a)f(few)h(c)n(hanges)e(in)i(the)g(function)g(de\014nition)g (in)g(order)e(to)i(b)r(e)g(able)f(to)g(return)h(a)f Fk(b)s(o)s(ol)p -3548 5237 V 38 w(p)s(oin)m(t)t Fm(.)p 0 5328 1678 4 v -1773 5361 a Fk(End)32 b(Log)p 2222 5328 V eop end -%%Page: 167 167 -TeXDict begin 167 166 bop 0 83 a Fn(x)p Fm(603)140 b -Fl(3DLDFPR)n(G)2394 b(INTERSECTION)141 b Fm(167)0 263 -y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)0 363 y Fm(#)p Fk(if)41 -b Fm(1)166 b Fe(=)p Fn(\003)40 b Fm(0)h Fn(\003)p Fe(=)83 -462 y Fk(b)s(o)s(ol)p 269 462 29 5 v 38 w(p)s(oin)m(t)d(P)m(oin)m(t)14 -b Fm(::)8 b Fi(interse)l(ction)p 1277 462 26 4 v 31 w(p)l(oint)k +3548 5234 V 38 w(p)s(oin)m(t)t Fm(.)p 0 5326 3900 4 v +eop end +%%Page: 168 168 +TeXDict begin 168 167 bop 0 83 a Fm(168)140 b Fl(INTERSECTION)2394 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(603)0 263 y Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 +b Fm(+)p Fn(\021)0 363 y Fm(#)p Fk(if)41 b Fm(1)166 b +Fe(=)p Fn(\003)40 b Fm(0)h Fn(\003)p Fe(=)83 462 y Fk(b)s(o)s(ol)p +269 462 29 5 v 38 w(p)s(oin)m(t)d(P)m(oin)m(t)14 b Fm(::)8 +b Fi(interse)l(ction)p 1277 462 26 4 v 31 w(p)l(oint)k Fm(\()p Fk(const)39 b(P)m(oin)m(t)g Fm(&)p Fi(pp0)16 b Fe(;)e Fk(const)39 b(P)m(oin)m(t)g Fm(&)o Fi(pp1)17 b Fe(;)d Fk(const)38 b(P)m(oin)m(t)415 562 y Fm(&)p Fi(qq0)16 @@ -16724,99 +16726,98 @@ 5170 y([)p Fh(LDF)25 b(2003.06.03.)p Fm(])61 b(When)28 b(I'v)n(e)f(\014xed)h(it,)g(add)g(description)f(to)g Fj(line.texi)p Fm(.)p eop end -%%Page: 168 168 -TeXDict begin 168 167 bop 0 83 a Fm(168)140 b Fl(GET)24 -b(DIST)-6 b(ANCE)2399 b(3DLDFPR)n(G)142 b Fn(x)p Fm(604)p -0 205 1643 4 v 1738 238 a Fk(Begin)31 b(Log)p 2257 205 -V 83 378 a Fm([)p Fh(LDF)25 b(2002.04.10.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 470 1678 4 v 1773 503 a Fk(End)k(Log)p -2222 470 V 0 627 a Fn(h)14 b Fm(Declare)27 b Fk(Line)32 -b Fm(functions)k Fl(599)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -727 y Fk(b)s(o)s(ol)p 269 727 29 5 v 38 w(real)p 463 -727 V 41 w(p)s(oin)m(t)31 b Fi(get)p 858 727 26 4 v 31 -w(distanc)l(e)11 b Fm(\()p Fk(const)33 b(Line)f Fm(&)p -Fe(l)q Fm(\))c Fk(const)5 b Fm(;)0 926 y Fk(605.)0 1051 -y Fn(h)14 b Fm(De\014ne)28 b Fk(Line)k Fm(functions)k -Fl(600)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1150 y Fk(b)s(o)s(ol)p -269 1150 29 5 v 38 w(real)p 463 1150 V 41 w(p)s(oin)m(t)31 -b(Line)13 b Fm(::)8 b Fi(get)p 1106 1150 26 4 v 31 w(distanc)l(e)j -Fm(\()p Fk(const)33 b(Line)f Fm(&)p Fe(l)q Fm(\))c Fk(const)5 +%%Page: 169 169 +TeXDict begin 169 168 bop 0 83 a Fn(x)p Fm(604)140 b +Fl(3DLDFPR)n(G)2399 b(GET)24 b(DIST)-6 b(ANCE)141 b Fm(169)p +0 204 1779 4 v 1874 237 a Fk(Log)p 2122 204 V 83 378 +a Fm([)p Fh(LDF)25 b(2002.04.10.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 470 3900 4 v 0 627 a Fn(h)14 b +Fm(Declare)27 b Fk(Line)32 b Fm(functions)k Fl(599)14 +b Fn(i)24 b Fm(+)p Fn(\021)83 726 y Fk(b)s(o)s(ol)p 269 +726 29 5 v 38 w(real)p 463 726 V 41 w(p)s(oin)m(t)31 +b Fi(get)p 858 726 26 4 v 31 w(distanc)l(e)11 b Fm(\()p +Fk(const)33 b(Line)f Fm(&)p Fe(l)q Fm(\))c Fk(const)5 +b Fm(;)0 926 y Fk(605.)0 1050 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Line)k Fm(functions)k Fl(600)15 b Fn(i)23 b Fm(+)p +Fn(\021)83 1150 y Fk(b)s(o)s(ol)p 269 1150 29 5 v 38 +w(real)p 463 1150 V 41 w(p)s(oin)m(t)31 b(Line)13 b Fm(::)8 +b Fi(get)p 1106 1150 26 4 v 31 w(distanc)l(e)j Fm(\()p +Fk(const)33 b(Line)f Fm(&)p Fe(l)q Fm(\))c Fk(const)5 b Fn(f)27 b Fk(b)s(o)s(ol)k Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p -Fe(=)249 1275 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h +Fe(=)249 1274 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p Ff(Line::g)o(et_)-7 -b(distance\(\)\\n")o Fm(;)249 1400 y Fk(b)s(o)s(ol)p -435 1400 29 5 v 39 w(real)p 630 1400 V 40 w(p)s(oin)m(t)32 -b Fi(brp)10 b Fm(;)249 1499 y Fk(P)m(oin)m(t)33 b Fi(normal)j +b(distance\(\)\\n")o Fm(;)249 1399 y Fk(b)s(o)s(ol)p +435 1399 29 5 v 39 w(real)p 630 1399 V 40 w(p)s(oin)m(t)32 +b Fi(brp)10 b Fm(;)249 1498 y Fk(P)m(oin)m(t)33 b Fi(normal)j Fm(=)23 b Fi(dir)l(e)l(ction)12 b Fe(:)p Fi(cr)l(oss)p -1416 1499 26 4 v 31 w(pr)l(o)l(duct)g Fm(\()p Fe(l)q(:)p -Fi(dir)l(e)l(ction)g Fm(\);)249 1624 y Fk(if)41 b Fm(\()p +1416 1498 26 4 v 31 w(pr)l(o)l(duct)g Fm(\()p Fe(l)q(:)p +Fi(dir)l(e)l(ction)g Fm(\);)249 1623 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(normal)13 b Fe(:)p Fi(show)h Fm(\()p Ff("normal)p Fj( )p Ff(after)p Fj( )p Ff(cros)o(s)p Fj( )-7 b Ff(product.")q Fm(\);)249 1748 y Fk(P)m(oin)m(t)33 b Fi(normal)p 766 1748 V 31 w(unit)i Fm(=)22 b Fi(normal)14 b Fe(:)p Fi(unit)p 1501 1748 V 30 w(ve)l(ctor)f Fm(\()h(\);)249 -1873 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(normal)p -935 1873 V 31 w(unit)11 b Fe(:)p Fi(show)j Fm(\()p Ff("normal_unit.")o +1872 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(normal)p +935 1872 V 31 w(unit)11 b Fe(:)p Fi(show)j Fm(\()p Ff("normal_unit.")o Fm(\);)249 1972 y Fk(if)41 b Fm(\()p Fi(normal)p 638 1972 V 32 w(unit)34 b Fn(\021)23 b Fi(origin)12 b Fm(\))41 -b Fn(f)332 2072 y Fk(if)g Fm(\()p Ff(DEBUG)s Fm(\))h +b Fn(f)332 2071 y Fk(if)g Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Lines)p Fj( )p Ff(are)p Fj( )p Ff(parall)o(el.)-7 b(\\n")26 b Fn(\034)d Fi(\015ush)11 -b Fm(;)332 2172 y Fi(brp)f Fe(:b)23 b Fm(=)g Fi(false)11 +b Fm(;)332 2171 y Fi(brp)f Fe(:b)23 b Fm(=)g Fi(false)11 b Fm(;)166 b Fe(=)p Fn(\003)41 b Fm(No)27 b(in)n(tersection.)50 b Fn(\003)p Fe(=)332 2271 y Fi(brp)10 b Fe(:)p Fi(pt)35 -b Fm(=)23 b Ff(INVALID_POINT)o Fm(;)332 2396 y Fk(P)m(oin)m(t)33 -b Fi(temp)p 770 2396 V 31 w(pt)12 b Fm(\()p Fe(l)q(:)p +b Fm(=)23 b Ff(INVALID_POINT)o Fm(;)332 2395 y Fk(P)m(oin)m(t)33 +b Fi(temp)p 770 2395 V 31 w(pt)12 b Fm(\()p Fe(l)q(:)p Fi(p)l(osition)g Fm(\);)332 2520 y Fi(temp)p 513 2520 V 31 w(pt)35 b Fn(\000)p Fm(=)22 b Fi(p)l(osition)12 -b Fm(;)332 2620 y Fi(temp)p 513 2620 V 31 w(pt)35 b Fm(=)23 -b Fi(temp)p 913 2620 V 30 w(pt)12 b Fe(:)p Fi(cr)l(oss)p -1227 2620 V 31 w(pr)l(o)l(duct)h Fm(\()p Fi(dir)l(e)l(ction)e -Fm(\);)332 2720 y Fi(brp)f Fe(:r)26 b Fm(=)d Fi(temp)p -812 2720 V 30 w(pt)13 b Fe(:)p Fi(magnitude)d Fm(\()k(\))p +b Fm(;)332 2619 y Fi(temp)p 513 2619 V 31 w(pt)35 b Fm(=)23 +b Fi(temp)p 913 2619 V 30 w(pt)12 b Fe(:)p Fi(cr)l(oss)p +1227 2619 V 31 w(pr)l(o)l(duct)h Fm(\()p Fi(dir)l(e)l(ction)e +Fm(\);)332 2719 y Fi(brp)f Fe(:r)26 b Fm(=)d Fi(temp)p +812 2719 V 30 w(pt)13 b Fe(:)p Fi(magnitude)d Fm(\()k(\))p Fe(=)p Fi(dir)l(e)l(ction)e Fe(:)p Fi(magnitude)f Fm(\()j(\);)166 b Fe(=)p Fn(\003)41 b Fm([)p Fh(LDF)25 b(2002.10.29.)p -Fm(])61 b(Distance.)51 b Fn(\003)p Fe(=)332 2819 y Fk(if)41 -b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)415 2919 y Fi(c)l(out)35 +Fm(])61 b(Distance.)51 b Fn(\003)p Fe(=)332 2818 y Fk(if)41 +b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)415 2918 y Fi(c)l(out)35 b Fn(\034)23 b Ff("distance)p Fj( )p Ff(==)p Fj( )p Ff(")f Fn(\034)h Fi(brp)10 b Fe(:r)26 b Fn(\034)d Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 b Fm(;)332 3018 y Fn(g)332 -3118 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 +3117 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Line::ge)o(t_d)-7 -b(istance\(\)\\n")p Fm(;)332 3218 y Fk(return)33 b Fi(brp)10 -b Fm(;)249 3317 y Fn(g)249 3417 y Fk(else)31 b Fn(f)249 -3517 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 +b(istance\(\)\\n")p Fm(;)332 3217 y Fk(return)33 b Fi(brp)10 +b Fm(;)249 3317 y Fn(g)249 3416 y Fk(else)31 b Fn(f)249 +3516 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Lines)p Fj( )p Ff(are)p Fj( )p Ff(not)p Fj( )p Ff(pa)o(ral)-7 b(lel.\\n")25 b Fn(\034)e Fi(\015ush)10 -b Fm(;)249 3616 y Fi(brp)g Fe(:r)26 b Fm(=)d Fi(fabs)12 +b Fm(;)249 3615 y Fi(brp)g Fe(:r)26 b Fm(=)d Fi(fabs)12 b Fm(\(\()p Fe(l)r(:)p Fi(p)l(osition)30 b Fn(\000)18 -b Fi(p)l(osition)12 b Fm(\))p Fe(:)p Fi(dot)p 1672 3616 -V 31 w(pr)l(o)l(duct)g Fm(\()p Fi(normal)p 2266 3616 -V 32 w(unit)f Fm(\)\);)249 3716 y Fk(if)41 b Fm(\()p +b Fi(p)l(osition)12 b Fm(\))p Fe(:)p Fi(dot)p 1672 3615 +V 31 w(pr)l(o)l(duct)g Fm(\()p Fi(normal)p 2266 3615 +V 32 w(unit)f Fm(\)\);)249 3715 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("distance)p Fj( )p Ff(==)p Fj( )p Ff(")f Fn(\034)h Fi(brp)10 b Fe(:r)26 b Fn(\034)d Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)p eop end -%%Page: 169 169 -TeXDict begin 169 168 bop 0 83 a Fn(x)p Fm(606)140 b -Fl(3DLDFPR)n(G)2399 b(GET)24 b(DIST)-6 b(ANCE)141 b Fm(169)0 +%%Page: 170 170 +TeXDict begin 170 169 bop 0 83 a Fm(170)140 b Fl(GET)24 +b(DIST)-6 b(ANCE)2399 b(3DLDFPR)n(G)142 b Fn(x)p Fm(606)0 263 y Fk(606.)94 b Fm(Lines)28 b(ha)n(v)n(e)e(an)h(in)n(tersection.)p -0 339 1643 4 v 1738 371 a Fk(Begin)k(Log)p 2257 339 V -83 512 a Fm([)p Fh(LDF)25 b(2003.08.27.)p Fm(])58 b(Commen)n(ted-out)24 +0 339 1779 4 v 1874 371 a Fk(Log)p 2122 339 V 83 512 +a Fm([)p Fh(LDF)e(2003.08.27.)p Fm(])58 b(Commen)n(ted-out)24 b(the)h(declarations)d(of)j Fi(v)p 2077 512 26 4 v 31 w(x)13 b Fm(,)25 b Fi(v)p 2246 512 V 31 w(y)12 b Fm(,)25 b(and)g Fi(v)p 2574 512 V 30 w(z)15 b Fm(,)25 b(since)f(they)h(are)e (not)i(used.)35 b(I)25 b(ha)n(v)n(en't)0 612 y(deleted)j(them,)g(in)g -(case)f(I)g(need)h(them)g(someda)n(y)-7 b(.)p 0 704 1678 -4 v 1773 736 a Fk(End)32 b(Log)p 2222 704 V 0 861 a Fn(h)14 -b Fm(De\014ne)28 b Fk(Line)k Fm(functions)k Fl(600)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 960 y Fk(if)41 b Fm(\()p -Fi(brp)11 b Fe(:r)26 b(<)c Fk(P)m(oin)m(t)14 b Fm(::)8 -b Fi(epsilon)k Fm(\()i(\)\))42 b Fn(f)166 1060 y Fk(if)f -Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 -b Ff("Lines)p Fj( )p Ff(have)p Fj( )p Ff(an)p Fj( )p -Ff(in)o(ter)-7 b(section.\\n")23 b Fn(\034)g Fi(\015ush)10 +(case)f(I)g(need)h(them)g(someda)n(y)-7 b(.)p 0 704 3900 +4 v 0 861 a Fn(h)14 b Fm(De\014ne)28 b Fk(Line)k Fm(functions)k +Fl(600)15 b Fn(i)23 b Fm(+)p Fn(\021)83 960 y Fk(if)41 +b Fm(\()p Fi(brp)11 b Fe(:r)26 b(<)c Fk(P)m(oin)m(t)14 +b Fm(::)8 b Fi(epsilon)k Fm(\()i(\)\))42 b Fn(f)166 1060 +y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b +Fn(\034)23 b Ff("Lines)p Fj( )p Ff(have)p Fj( )p Ff(an)p +Fj( )p Ff(in)o(ter)-7 b(section.\\n")23 b Fn(\034)g Fi(\015ush)10 b Fm(;)166 1160 y Fi(brp)g Fe(:r)26 b Fm(=)d(0)o(;)166 1259 y Fi(brp)10 b Fe(:b)23 b Fm(=)g Fi(true)9 b Fm(;)166 1384 y Fk(real)33 b Fi(a)p 402 1384 26 4 v 30 w(x)k Fm(=)23 @@ -16913,9 +16914,9 @@ Fe(:)p Fi(pt)35 b Fn(\003)p Fm(=)23 b Fe(t)p Fm(;)166 5394 y Fi(brp)10 b Fe(:)p Fi(pt)35 b Fm(+=)23 b Fi(p)l(osition)11 b Fm(;)p eop end -%%Page: 170 170 -TeXDict begin 170 169 bop 0 83 a Fm(170)140 b Fl(GET)24 -b(DIST)-6 b(ANCE)2399 b(3DLDFPR)n(G)142 b Fn(x)p Fm(606)166 +%%Page: 171 171 +TeXDict begin 171 170 bop 0 83 a Fn(x)p Fm(606)140 b +Fl(3DLDFPR)n(G)2399 b(GET)24 b(DIST)-6 b(ANCE)141 b Fm(171)166 263 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)249 363 y Fi(brp)10 b Fe(:)p Fi(pt)i Fe(:)p Fi(show)j Fm(\()p Ff("intersection)p Fj( )p Ff(po)o(in)o(t:)-6 b(")t Fm(\);)166 @@ -16972,10 +16973,10 @@ 5280 y(h)f Fm(De\014ne)28 b Fk(Line)k Fm(functions)k Fl(600)15 b Fn(i)83 5379 y(h)f Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)p eop end -%%Page: 171 171 -TeXDict begin 171 170 bop 0 83 a Fn(x)p Fm(614)140 b -Fl(3DLDFPR)n(G)1918 b(PUTTING)24 b Fk(LINE)f Fl(TOGETHER)141 -b Fm(171)0 263 y Fk(614.)94 b Fm(This)28 b(is)f(what's)h(written)f(to)h +%%Page: 172 172 +TeXDict begin 172 171 bop 0 83 a Fm(172)140 b Fl(PUTTING)24 +b Fk(LINE)f Fl(TOGETHER)1918 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(614)0 263 y Fk(614.)94 b Fm(This)28 b(is)f(what's)h(written)f(to)h Fj(lines.h)p Fm(.)0 388 y Fn(h)14 b Ff(lines.h)80 b Fl(614)15 b Fn(i)23 b(\021)83 487 y(h)14 b Fm(De\014ne)28 b Fk(struct)33 b(Line)40 b Fl(593)15 b Fn(i)83 587 y(h)f Fm(Declarations)26 @@ -16988,124 +16989,133 @@ Fk(P)m(oin)m(t)34 b Fm(represen)n(ting)27 b(a)h(p)r(oin)n(t)h(on)g(the) g(plane,)f(a)h Fk(P)m(oin)m(t)34 b Fm(represen)n(ting)0 985 y(the)28 b(normal)f(to)g(the)h(plane,)f(and)h(the)g(distance)f(of)h -(the)g(plane)f(from)g(the)h(origin.)p 0 1085 1643 4 v -1738 1117 a Fk(Begin)j(Log)p 2257 1085 V 83 1258 a Fm([)p -Fh(LDF)25 b(2002.04.12.)p Fm(])61 b(Created)27 b(this)h(\014le.)37 -b(Remo)n(v)n(ed)27 b(the)h(co)r(de)f(for)g Fk(Plane)32 -b Fm(from)c Fj(points.web)23 b Fm(and)28 b(put)g(it)g(here.)83 -1358 y([)p Fh(LDF)d(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 -b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB) -g(\014les)g(for)f(the)h(distribution)g(of)0 1457 y(3DLDF)28 -b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t) -f(v)n(ersions.)p 0 1549 1678 4 v 1773 1582 a Fk(End)32 -b(Log)p 2222 1549 V 0 1706 a Fn(h)14 b Fm(V)-7 b(ersion)27 +(the)g(plane)f(from)g(the)h(origin.)p 0 1084 1779 4 v +1874 1117 a Fk(Log)p 2122 1084 V 83 1257 a Fm([)p Fh(LDF)d(2002.04.12.) +p Fm(])61 b(Created)27 b(this)h(\014le.)37 b(Remo)n(v)n(ed)27 +b(the)h(co)r(de)f(for)g Fk(Plane)32 b Fm(from)c Fj(points.web)23 +b Fm(and)28 b(put)g(it)g(here.)83 1357 y([)p Fh(LDF)d(2003.11.12.)p +Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n +(ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g +(of)0 1456 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n +(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)83 1556 y([)p Fh(LDF)e +(2003.12.10.)p Fm(])64 b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden) +n(ti\014ers)h(bac)n(k)f(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h +(3DLDF)i(1.1.4.)43 b(I'v)n(e)0 1656 y(already)24 b(put)j(some)e(of)h +(them)h(bac)n(k)e(in,)i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.) +37 b(Ho)n(w)n(ev)n(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w) +i(in)0 1755 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 +b(.)p 0 1847 3900 4 v 0 2004 a Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 -b Fm(+)p Fn(\021)0 1905 y Fk(616.)94 b(Include)32 b(\014les.)0 -2030 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 -b Fn(i)23 b Fm(+)p Fn(\021)0 2130 y Fm(#)p Fk(include)32 -b Ff("loader.h")0 2229 y Fm(#)p Fk(include)g Ff("pspglb.h")0 -2329 y Fm(#)p Fk(include)g Ff("io.h")0 2429 y Fm(#)p -Fk(include)g Ff("colors.h")0 2528 y Fm(#)p Fk(include)g -Ff("transfor.h")0 2628 y Fm(#)p Fk(include)g Ff("shapes.h")0 -2727 y Fm(#)p Fk(include)g Ff("pictures.h")0 2827 y Fm(#)p -Fk(include)g Ff("points.h")0 2927 y Fm(#)p Fk(include)g -Ff("lines.h")0 3126 y Fk(617.)94 b(Plane)32 b(struct)h(de\014nition.)83 -3250 y(format)65 b Fi(Plane)80 b(Line)0 3375 y Fn(h)14 -b Fm(De\014ne)28 b Fk(struct)33 b(Plane)40 b Fl(617)15 -b Fn(i)24 b(\021)83 3475 y Fk(struct)33 b(Plane)g Fn(f)83 -3574 y Fk(public)t Fm(:)42 b Fk(P)m(oin)m(t)33 b Fi(normal)13 -b Fm(;)166 3674 y Fk(P)m(oin)m(t)33 b Fi(p)l(oint)12 -b Fm(;)166 3773 y Fk(real)33 b Fi(distanc)l(e)11 b Fm(;)166 -3898 y Fn(h)j Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k -Fl(619)15 b Fn(i)83 3998 y(g)p Fm(;)0 4106 y Fl(This)23 -b(co)r(de)i(is)e(used)h(in)f(sections)i(650)f(and)g(651.)0 -4305 y Fk(618.)94 b(Constructors.)0 4504 y(619.)g(Default)26 +b Fm(+)p Fn(\021)83 2104 y Fk(static)33 b(string)g Fi(r)l(cs)p +726 2104 26 4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p +Ff(planes.web)o(,v)o Fj( )p Ff(1)-6 b(.2)p Fj( )p Ff(2003/12/10)p +Fj( )p Ff(1)o(6:)o(18:)f(26)p Fj( )p Ff(lfinsto1)p Fj( )p +Ff(Exp)p Fj( )p Ff($)o(")n Fm(;)0 2303 y Fk(616.)94 b(Include)32 +b(\014les.)0 2428 y Fn(h)14 b Fm(Include)28 b(\014les)35 +b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 2527 y Fm(#)p +Fk(include)32 b Ff("loader.h")0 2627 y Fm(#)p Fk(include)g +Ff("pspglb.h")0 2727 y Fm(#)p Fk(include)g Ff("io.h")0 +2826 y Fm(#)p Fk(include)g Ff("colors.h")0 2926 y Fm(#)p +Fk(include)g Ff("transfor.h")0 3026 y Fm(#)p Fk(include)g +Ff("shapes.h")0 3125 y Fm(#)p Fk(include)g Ff("pictures.h")0 +3225 y Fm(#)p Fk(include)g Ff("points.h")0 3324 y Fm(#)p +Fk(include)g Ff("lines.h")0 3524 y Fk(617.)94 b(Plane)32 +b(struct)h(de\014nition.)83 3648 y(format)65 b Fi(Plane)80 +b(Line)0 3773 y Fn(h)14 b Fm(De\014ne)28 b Fk(struct)33 +b(Plane)40 b Fl(617)15 b Fn(i)24 b(\021)83 3872 y Fk(struct)33 +b(Plane)g Fn(f)83 3972 y Fk(public)t Fm(:)42 b Fk(P)m(oin)m(t)33 +b Fi(normal)13 b Fm(;)166 4072 y Fk(P)m(oin)m(t)33 b +Fi(p)l(oint)12 b Fm(;)166 4171 y Fk(real)33 b Fi(distanc)l(e)11 +b Fm(;)166 4296 y Fn(h)j Fm(Declare)27 b Fk(Plane)32 +b Fm(functions)k Fl(619)15 b Fn(i)83 4395 y(g)p Fm(;)0 +4503 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(650)f(and)g +(651.)0 4703 y Fk(618.)94 b(Constructors.)0 4902 y(619.)g(Default)26 b(constructor.)96 b Fm([)p Fh(LDF)25 b(2003.06.06.)p Fm(])55 b(Creates)21 b(a)h(degenerate)f Fk(Plane)26 b Fm(with)d Fi(p)l(oint)12 b Fn(\021)p Fi(normal)i Fn(\021)o -Fi(origin)e Fm(,)0 4604 y(and)27 b Fi(distanc)l(e)11 +Fi(origin)e Fm(,)0 5002 y(and)27 b Fi(distanc)l(e)11 b Fn(\021)p Fm(0.)36 b(I)28 b(could)f(ha)n(v)n(e)g(made)g(the)h Fk(Plane)k Fm(b)r(e)c(equal)f(to)g Ff(INVALID_PLANE)o -Fm(,)h(but)g(there's)f(probably)f(no)i(reason)0 4703 +Fm(,)h(but)g(there's)f(probably)f(no)i(reason)0 5101 y(for)c(doing)f(so.)35 b(A)25 b Fk(Plane)j Fm(constructed)c(using)g (this)g(constructor)f(will)h(probably)f(b)r(e)h(set)h(using)e(the)i -(assignmen)n(t)e(op)r(erator)0 4803 y(or)k Fk(P)m(ath)14 -b Fm(::)8 b Fi(get)p 477 4803 26 4 v 31 w(plane)j Fm(\()j(\))28 +(assignmen)n(t)e(op)r(erator)0 5201 y(or)k Fk(P)m(ath)14 +b Fm(::)8 b Fi(get)p 477 5201 V 31 w(plane)j Fm(\()j(\))28 b(immediately)-7 b(,)28 b(or)f(v)n(ery)f(so)r(on)h(after)h(b)r(eing)f -(declared.)p 0 4907 1643 4 v 1738 4939 a Fk(Begin)k(Log)p -2257 4907 V 83 5080 a Fm([)p Fh(LDF)25 b(2003.06.06.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 5172 1678 4 -v 1773 5205 a Fk(End)k(Log)p 2222 5172 V 0 5329 a Fn(h)14 -b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k Fl(619)15 -b Fn(i)23 b(\021)p eop end -%%Page: 172 172 -TeXDict begin 172 171 bop 0 83 a Fm(172)140 b Fl(DEF)-8 -b(A)n(UL)i(T)23 b(CONSTR)n(UCTOR)2028 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(619)83 263 y Fk(Plane)5 b Fm(\()p Fk(v)m(oid)g -Fm(\);)0 371 y Fl(See)24 b(also)g(sections)g(621,)g(623,)g(625,)g(628,) +(declared.)p eop end +%%Page: 173 173 +TeXDict begin 173 172 bop 0 83 a Fn(x)p Fm(619)140 b +Fl(3DLDFPR)n(G)2028 b(DEF)-8 b(A)n(UL)i(T)24 b(CONSTR)n(UCTOR)140 +b Fm(173)p 0 204 1779 4 v 1874 237 a Fk(Log)p 2122 204 +V 83 378 a Fm([)p Fh(LDF)25 b(2003.06.06.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 470 3900 4 v 0 627 a Fn(h)14 b +Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k Fl(619)15 +b Fn(i)23 b(\021)83 726 y Fk(Plane)5 b Fm(\()p Fk(v)m(oid)g +Fm(\);)0 834 y Fl(See)24 b(also)g(sections)g(621,)g(623,)g(625,)g(628,) g(630,)g(633,)g(635,)g(640,)g(642,)g(643,)g(and)g(645.)0 -479 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(617.)0 -678 y Fk(620.)0 803 y Fn(h)14 b Fm(De\014ne)28 b Fk(Plane)33 -b Fm(functions)i Fl(620)15 b Fn(i)23 b(\021)83 902 y +942 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(617.)0 +1141 y Fk(620.)0 1266 y Fn(h)14 b Fm(De\014ne)28 b Fk(Plane)33 +b Fm(functions)i Fl(620)15 b Fn(i)23 b(\021)83 1366 y Fk(Plane)13 b Fm(::)8 b Fk(Plane)d Fm(\()p Fk(v)m(oid)g -Fm(\))83 1002 y Fn(f)166 1102 y Fi(normal)37 b Fm(=)22 +Fm(\))83 1465 y Fn(f)166 1565 y Fi(normal)37 b Fm(=)22 b Fi(p)l(oint)36 b Fm(=)22 b Fi(origin)12 b Fm(;)166 -1201 y Fi(distanc)l(e)34 b Fm(=)23 b(0)o(;)83 1301 y -Fn(g)0 1409 y Fl(See)h(also)g(sections)g(622,)g(624,)g(626,)g(629,)g -(631,)g(634,)g(636,)g(641,)g(644,)g(646,)g(and)g(919.)0 -1517 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(650)f(and)g(933.)0 -1716 y Fk(621.)94 b(Cop)m(y)33 b(constructor.)p 0 1815 -1643 4 v 1738 1848 a(Begin)e(Log)p 2257 1815 V 83 1988 -a Fm([)p Fh(LDF)25 b(2003.06.06.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 2080 1678 4 v 1773 2113 a Fk(End)k(Log)p -2222 2080 V 0 2238 a Fn(h)14 b Fm(Declare)27 b Fk(Plane)32 +1664 y Fi(distanc)l(e)34 b Fm(=)23 b(0)o(;)83 1764 y +Fn(g)0 1872 y Fl(See)h(also)g(sections)g(622,)g(624,)g(626,)g(629,)g +(631,)g(634,)g(636,)g(641,)g(644,)g(646,)g(and)g(922.)0 +1980 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(650)f(and)g(936.)0 +2179 y Fk(621.)94 b(Cop)m(y)33 b(constructor.)p 0 2278 +1779 4 v 1874 2310 a(Log)p 2122 2278 V 83 2451 a Fm([)p +Fh(LDF)25 b(2003.06.06.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 2543 3900 4 v 0 2700 a Fn(h)14 b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k Fl(619)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2337 y Fk(Plane)5 b Fm(\()p Fk(const)33 b(Plane)f Fm(&)p -Fe(p)o Fm(\);)0 2536 y Fk(622.)0 2661 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Plane)33 b Fm(functions)i Fl(620)15 b Fn(i)23 b -Fm(+)p Fn(\021)83 2761 y Fk(Plane)13 b Fm(::)8 b Fk(Plane)d -Fm(\()p Fk(const)33 b(Plane)f Fm(&)p Fe(p)p Fm(\))83 -2860 y Fn(f)166 2960 y(\003)p Fi(this)i Fm(=)23 b Fe(p)p -Fm(;)166 3059 y Fk(return)5 b Fm(;)83 3159 y Fn(g)0 3358 -y Fk(623.)94 b(P)m(oin)m(t)32 b(argumen)m(ts.)p 0 3458 -1643 4 v 1738 3490 a(Begin)f(Log)p 2257 3458 V 83 3631 -a Fm([)p Fh(LDF)25 b(2003.06.03.)p Fm(])64 b(Changed)30 -b(this)g(function.)46 b(BUG)31 b(FIX:)g Fi(distanc)l(e)42 -b Fm(is)30 b(no)n(w)g(calculated,)h(instead)f(of)g(b)r(eing)h(passed)0 -3731 y(as)c(an)g(argumen)n(t.)36 b Fi(normal)41 b Fm(is)28 -b(no)n(w)f(made)g(a)g(unit)i(v)n(ector.)83 3830 y([)p -Fh(LDF)c(2003.06.06.)p Fm(])65 b(Changed,)31 b(so)f(that)h(if)h -Fi(p)l(oint)43 b Fm(or)30 b Fi(normal)45 b Fm(is)31 b(equal)f(to)h -Ff(INVALID_POINT)o Fm(,)h(the)f(other)g(one)f(is)h(also)0 -3930 y(set)d(to)f Ff(INVALID_POINT)o Fm(,)h(and)f Fi(distanc)l(e)39 -b Fm(is)28 b(set)f(to)h Ff(INVALID_REAL)o Fm(.)83 4029 -y([)p Fh(LDF)d(2003.06.06.)p Fm(])62 b(Argumen)n(ts)27 +2800 y Fk(Plane)5 b Fm(\()p Fk(const)33 b(Plane)f Fm(&)p +Fe(p)o Fm(\);)p eop end +%%Page: 174 174 +TeXDict begin 174 173 bop 0 83 a Fm(174)140 b Fl(COPY)23 +b(CONSTR)n(UCTOR)2154 b(3DLDFPR)n(G)142 b Fn(x)p Fm(622)0 +263 y Fk(622.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Plane)33 +b Fm(functions)i Fl(620)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(Plane)13 b Fm(::)8 b Fk(Plane)d Fm(\()p Fk(const)33 +b(Plane)f Fm(&)p Fe(p)p Fm(\))83 587 y Fn(f)166 686 y(\003)p +Fi(this)i Fm(=)23 b Fe(p)p Fm(;)166 786 y Fk(return)5 +b Fm(;)83 886 y Fn(g)0 1085 y Fk(623.)94 b(P)m(oin)m(t)32 +b(argumen)m(ts.)p 0 1184 1779 4 v 1874 1216 a(Log)p 2122 +1184 V 83 1357 a Fm([)p Fh(LDF)25 b(2003.06.03.)p Fm(])64 +b(Changed)30 b(this)g(function.)46 b(BUG)31 b(FIX:)g +Fi(distanc)l(e)42 b Fm(is)30 b(no)n(w)g(calculated,)h(instead)f(of)g(b) +r(eing)h(passed)0 1456 y(as)c(an)g(argumen)n(t.)36 b +Fi(normal)41 b Fm(is)28 b(no)n(w)f(made)g(a)g(unit)i(v)n(ector.)83 +1556 y([)p Fh(LDF)c(2003.06.06.)p Fm(])65 b(Changed,)31 +b(so)f(that)h(if)h Fi(p)l(oint)43 b Fm(or)30 b Fi(normal)45 +b Fm(is)31 b(equal)f(to)h Ff(INVALID_POINT)o Fm(,)h(the)f(other)g(one)f +(is)h(also)0 1656 y(set)d(to)f Ff(INVALID_POINT)o Fm(,)h(and)f +Fi(distanc)l(e)39 b Fm(is)28 b(set)f(to)h Ff(INVALID_REAL)o +Fm(.)83 1755 y([)p Fh(LDF)d(2003.06.06.)p Fm(])62 b(Argumen)n(ts)27 b(are)g(no)h(longer)e(optional.)38 b(I'v)n(e)27 b(made)h(this)g(c)n (hange,)f(b)r(ecause)h(I'v)n(e)f(added)h(a)g(default)0 -4129 y(constructor.)83 4229 y([)p Fh(LDF)d(2003.06.06.)p +1855 y(constructor.)83 1955 y([)p Fh(LDF)d(2003.06.06.)p Fm(])61 b(Added)27 b(conditional)g(to)g(test)g(for)g(case)f(that)i Fi(p)l(oint)12 b Fn(\021)p Fi(normal)h Fm(.)37 b(In)27 -b(this)h(case,)e(a)h(w)n(arning)f(message)0 4328 y(is)h(prin)n(ted)h +b(this)h(case,)e(a)h(w)n(arning)f(message)0 2054 y(is)h(prin)n(ted)h (to)f(standard)g(error,)f(they)i(are)e(b)r(oth)i(set)g(to)f Ff(INVALID_POINT)o Fm(,)h(and)f Fi(distanc)l(e)39 b Fm(is)28 -b(set)f(to)h Ff(INVALID_REAL)o Fm(.)83 4428 y([)p Fh(LDF)d(2003.06.24.) +b(set)f(to)h Ff(INVALID_REAL)o Fm(.)83 2154 y([)p Fh(LDF)d(2003.06.24.) p Fm(])64 b(BUG)31 b(FIX:)g(F)-7 b(ormerly)g(,)30 b Ff(INVALID_PLANE)f Fm(w)n(as)h(returned,)g(if)h Fi(p)l(oint)40 b Fn(\021)28 b Fi(normal)13 b Fm(.)45 b(This)31 b(has)f(b)r(een)0 -4528 y(c)n(hanged,)f(so)f(that)h Ff(INVALID_PLANE)g Fm(is)g(returned,)g +2253 y(c)n(hanged,)f(so)f(that)h Ff(INVALID_PLANE)g Fm(is)g(returned,)g (if)g Fi(normal)39 b Fn(\021)26 b Fi(origin)11 b Fm(.)42 b(There)29 b(is,)g(of)g(course,)f(no)h(reason)f(wh)n(y)h -Fi(p)l(oint)0 4627 y Fm(shouldn't)f(b)r(e)g(equal)f(to)g -Fi(normal)14 b Fm(.)p 0 4719 1678 4 v 1773 4752 a Fk(End)32 -b(Log)p 2222 4719 V 0 4876 a Fn(h)14 b Fm(Declare)27 -b Fk(Plane)32 b Fm(functions)k Fl(619)15 b Fn(i)23 b -Fm(+)p Fn(\021)83 4976 y Fk(Plane)5 b Fm(\()p Fk(const)33 -b(P)m(oin)m(t)f Fm(&)p Fe(p;)14 b Fk(const)32 b(P)m(oin)m(t)h -Fm(&)o Fe(n)p Fm(\);)p eop end -%%Page: 173 173 -TeXDict begin 173 172 bop 0 83 a Fn(x)p Fm(624)140 b +Fi(p)l(oint)0 2353 y Fm(shouldn't)f(b)r(e)g(equal)f(to)g +Fi(normal)14 b Fm(.)p 0 2445 3900 4 v 0 2602 a Fn(h)g +Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k Fl(619)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 2702 y Fk(Plane)5 b Fm(\()p +Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fe(p;)14 b Fk(const)32 +b(P)m(oin)m(t)h Fm(&)o Fe(n)p Fm(\);)p eop end +%%Page: 175 175 +TeXDict begin 175 174 bop 0 83 a Fn(x)p Fm(624)140 b Fl(3DLDFPR)n(G)2141 b Fk(POINT)24 b Fl(AR)n(GUMENTS)140 -b Fm(173)0 263 y Fk(624.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fm(175)0 263 y Fk(624.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Plane)33 b Fm(functions)i Fl(620)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Plane)13 b Fm(::)8 b Fk(Plane)d Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p;)14 b @@ -17142,16 +17152,15 @@ Fm(\))23 b Fe(<)g Fk(P)m(oin)m(t)13 b Fm(::)c Fi(epsilon)j Fm(\()i(\)\))42 b Fi(distanc)l(e)34 b Fm(=)23 b(0)o(;)166 2878 y Fk(return)5 b Fm(;)83 2978 y Fn(g)0 3177 y Fk(625.)94 -b(Assignmen)m(t.)p 0 3276 1643 4 v 1738 3309 a(Begin)31 -b(Log)p 2257 3276 V 83 3450 a Fm([)p Fh(LDF)25 b(2003.06.06.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 3542 1678 4 -v 1773 3574 a Fk(End)k(Log)p 2222 3542 V 0 3699 a Fn(h)14 -b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k Fl(619)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3798 y Fk(const)32 b(Plane)h -Fm(&)o Fk(op)s(erator)5 b Fm(=\()p Fk(const)33 b(Plane)f -Fm(&)p Fe(p)o Fm(\);)p eop end -%%Page: 174 174 -TeXDict begin 174 173 bop 0 83 a Fm(174)140 b Fl(ASSIGNMENT)2464 +b(Assignmen)m(t.)p 0 3276 1779 4 v 1874 3308 a(Log)p +2122 3276 V 83 3449 a Fm([)p Fh(LDF)25 b(2003.06.06.)p +Fm(])61 b(Added)28 b(this)g(function.)p 0 3541 3900 4 +v 0 3698 a Fn(h)14 b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k +Fl(619)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3798 y Fk(const)32 +b(Plane)h Fm(&)o Fk(op)s(erator)5 b Fm(=\()p Fk(const)33 +b(Plane)f Fm(&)p Fe(p)o Fm(\);)p eop end +%%Page: 176 176 +TeXDict begin 176 175 bop 0 83 a Fm(176)140 b Fl(ASSIGNMENT)2464 b(3DLDFPR)n(G)142 b Fn(x)p Fm(626)0 263 y Fk(626.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Plane)33 b Fm(functions)i Fl(620)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(const)32 @@ -17167,39 +17176,36 @@ b Fm(;)166 1085 y Fi(distanc)l(e)34 b Fm(=)23 b Fe(p:)p Fi(distanc)l(e)11 b Fm(;)166 1185 y Fk(return)33 b Fe(p)p Fm(;)83 1284 y Fn(g)0 1483 y Fk(627.)94 b(Comparing)31 -b(Planes.)p 0 1583 1643 4 v 1738 1615 a(Begin)g(Log)p -2257 1583 V 83 1756 a Fm([)p Fh(LDF)25 b(2003.06.06.)p -Fm(])61 b(Added)28 b(this)g(section.)p 0 1848 1678 4 -v 1773 1881 a Fk(End)k(Log)p 2222 1848 V 0 2080 a(628.)94 -b(Equalit)m(y)-8 b(.)p 0 2179 1643 4 v 1738 2212 a(Begin)31 -b(Log)p 2257 2179 V 83 2352 a Fm([)p Fh(LDF)25 b(2003.06.06.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 2444 1678 4 -v 1773 2477 a Fk(End)k(Log)p 2222 2444 V 0 2601 a Fn(h)14 -b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k Fl(619)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2701 y Fk(b)s(o)s(ol)31 +b(Planes.)p 0 1582 1779 4 v 1874 1615 a(Log)p 2122 1582 +V 83 1755 a Fm([)p Fh(LDF)25 b(2003.06.06.)p Fm(])61 +b(Added)28 b(this)g(section.)p 0 1847 3900 4 v 0 2079 +a Fk(628.)94 b(Equalit)m(y)-8 b(.)p 0 2178 1779 4 v 1874 +2210 a(Log)p 2122 2178 V 83 2351 a Fm([)p Fh(LDF)25 b(2003.06.06.)p +Fm(])61 b(Added)28 b(this)g(function.)p 0 2443 3900 4 +v 0 2600 a Fn(h)14 b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k +Fl(619)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2700 y Fk(b)s(o)s(ol)31 b(op)s(erator)5 b Fn(\021)o Fm(\()p Fk(const)33 b(Plane)f -Fm(&)p Fe(p)p Fm(\))c Fk(const)5 b Fm(;)0 2900 y Fk(629.)0 -3025 y Fn(h)14 b Fm(De\014ne)28 b Fk(Plane)33 b Fm(functions)i -Fl(620)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3125 y Fk(b)s(o)s(ol)31 +Fm(&)p Fe(p)p Fm(\))c Fk(const)5 b Fm(;)0 2899 y Fk(629.)0 +3024 y Fn(h)14 b Fm(De\014ne)28 b Fk(Plane)33 b Fm(functions)i +Fl(620)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3123 y Fk(b)s(o)s(ol)31 b(Plane)13 b Fm(::)8 b Fk(op)s(erator)d Fn(\021)p Fm(\()p Fk(const)33 b(Plane)f Fm(&)p Fe(p)o Fm(\))c Fk(const)83 -3224 y Fn(f)166 3324 y Fk(return)33 b Fm(\(\()p Fi(p)l(oint)j +3223 y Fn(f)166 3322 y Fk(return)33 b Fm(\(\()p Fi(p)l(oint)j Fn(\021)23 b Fe(p:)p Fi(p)l(oint)12 b Fm(\))19 b Fn(^)g Fm(\()p Fi(normal)36 b Fn(\021)23 b Fe(p:)p Fi(normal)13 b Fm(\))19 b Fn(^)g Fm(\()p Fi(distanc)l(e)34 b Fn(\021)23 -b Fe(p:)p Fi(distanc)l(e)11 b Fm(\)\);)83 3423 y Fn(g)0 -3623 y Fk(630.)94 b(Inequalit)m(y)-8 b(.)p 0 3722 1643 -4 v 1738 3755 a(Begin)31 b(Log)p 2257 3722 V 83 3895 -a Fm([)p Fh(LDF)25 b(2003.06.06.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 3987 1678 4 v 1773 4020 a Fk(End)k(Log)p -2222 3987 V 0 4144 a Fn(h)14 b Fm(Declare)27 b Fk(Plane)32 +b Fe(p:)p Fi(distanc)l(e)11 b Fm(\)\);)83 3422 y Fn(g)0 +3621 y Fk(630.)94 b(Inequalit)m(y)-8 b(.)p 0 3720 1779 +4 v 1874 3752 a(Log)p 2122 3720 V 83 3893 a Fm([)p Fh(LDF)25 +b(2003.06.06.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 3985 3900 4 v 0 4142 a Fn(h)14 b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k Fl(619)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4244 y Fk(b)s(o)s(ol)31 b(op)s(erator)5 b Fn(6)p Fm(=)o(\()p +4242 y Fk(b)s(o)s(ol)31 b(op)s(erator)5 b Fn(6)p Fm(=)o(\()p Fk(const)33 b(Plane)f Fm(&)p Fe(p)p Fm(\))c Fk(const)5 b Fm(;)p eop end -%%Page: 175 175 -TeXDict begin 175 174 bop 0 83 a Fn(x)p Fm(631)140 b -Fl(3DLDFPR)n(G)2485 b(INEQUALITY)141 b Fm(175)0 263 y +%%Page: 177 177 +TeXDict begin 177 176 bop 0 83 a Fn(x)p Fm(631)140 b +Fl(3DLDFPR)n(G)2485 b(INEQUALITY)141 b Fm(177)0 263 y Fk(631.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Plane)33 b Fm(functions)i Fl(620)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)31 b(Plane)13 b Fm(::)8 b Fk(op)s(erator)d @@ -17222,77 +17228,76 @@ 1583 y(-1)41 b(If)22 b(it)g(lies)g(on)f(the)h(side)g(of)g(the)g Fk(Plane)k Fi(not)j Fm(p)r(oin)n(ted)22 b(at)g(b)n(y)f(the)h(normal)f (to)h(the)g Fk(Plane)t Fm(,)h(considered)e(to)h(b)r(e)g(the)g -(\\inside".)p 0 1682 1643 4 v 1738 1715 a Fk(Begin)31 -b(Log)p 2257 1682 V 83 1856 a Fm([)p Fh(LDF)25 b(2003.06.03.)p -Fm(])61 b(Changed)26 b(the)h(de\014nition)h(of)e(this)i(function.)37 +(\\inside".)p 0 1682 1779 4 v 1874 1714 a Fk(Log)p 2122 +1682 V 83 1855 a Fm([)p Fh(LDF)j(2003.06.03.)p Fm(])61 +b(Changed)26 b(the)h(de\014nition)h(of)e(this)i(function.)37 b(The)27 b(old)g(de\014nition)g(w)n(as)f(incorrect.)35 b(Also)27 b(c)n(hanged)0 1955 y(return)g(t)n(yp)r(e)h(from)f Fk(real)33 b Fm(to)27 b Fk(real)p 1087 1955 29 5 v 40 -w(short)5 b Fm(.)83 2055 y([)p Fh(LDF)25 b(2003.06.04.)p +w(short)5 b Fm(.)83 2054 y([)p Fh(LDF)25 b(2003.06.04.)p Fm(])54 b(BUG)21 b(FIX:)g(In)g(the)g(case)f(that)h Fi(r)p -1744 2055 26 4 v 30 w(fabs)36 b Fe(<)22 b Fk(P)m(oin)m(t)14 +1744 2054 26 4 v 30 w(fabs)36 b Fe(<)22 b Fk(P)m(oin)m(t)14 b Fm(::)8 b Fi(epsilon)k Fm(\()i(\),)23 b(no)n(w)d Fi(r)p -2914 2055 V 30 w(fabs)33 b Fm(is)21 b(set)f(to)h(0.)34 -b(Previously)-7 b(,)0 2155 y Fe(r)37 b Fm(w)n(as,)d(whic)n(h)g(w)n(as)e -(wrong,)i(b)r(ecause)g Fi(r)p 1307 2155 V 30 w(fabs)46 +2914 2054 V 30 w(fabs)33 b Fm(is)21 b(set)f(to)h(0.)34 +b(Previously)-7 b(,)0 2154 y Fe(r)37 b Fm(w)n(as,)d(whic)n(h)g(w)n(as)e +(wrong,)i(b)r(ecause)g Fi(r)p 1307 2154 V 30 w(fabs)46 b Fm(is)34 b(returned,)g(not)g Fe(r)s Fm(.)55 b(Also,)35 -b(I)f(no)n(w)f(set)h Fi(r)p 2883 2155 V 30 w(fabs)46 +b(I)f(no)n(w)f(set)h Fi(r)p 2883 2154 V 30 w(fabs)46 b Fm(and)34 b Fe(s)g Fm(to)f(0)g(separately)-7 b(,)0 -2254 y(b)r(ecause)30 b(they)g(are)g(of)g(di\013eren)n(t)h(t)n(yp)r(es.) +2253 y(b)r(ecause)30 b(they)g(are)g(of)g(di\013eren)n(t)h(t)n(yp)r(es.) 45 b(I)30 b(don't)h(b)r(eliev)n(e)f(an)n(y)f(compiler)h(w)n(ould)g(ha)n -(v)n(e)f(trouble)h(with)h(this,)g(but)g(I)g(think)0 2354 +(v)n(e)f(trouble)h(with)h(this,)g(but)g(I)g(think)0 2353 y(it's)d(cleaner)e(if)j(they)e(are)g(assigned)f(to)i(separately)-7 -b(.)p 0 2446 1678 4 v 1773 2478 a Fk(End)32 b(Log)p 2222 -2446 V 0 2603 a Fn(h)14 b Fm(Declare)27 b Fk(Plane)32 -b Fm(functions)k Fl(619)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2702 y Fk(real)p 243 2702 29 5 v 40 w(short)32 b Fi(get)p -635 2702 26 4 v 31 w(distanc)l(e)11 b Fm(\()p Fk(const)33 -b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\))28 b Fk(const)5 b -Fm(;)0 2902 y Fk(634.)0 3026 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Plane)33 b Fm(functions)i Fl(620)15 b Fn(i)23 b -Fm(+)p Fn(\021)83 3126 y Fk(real)p 243 3126 29 5 v 40 -w(short)32 b(Plane)14 b Fm(::)8 b Fi(get)p 938 3126 26 -4 v 30 w(distanc)l(e)k Fm(\()p Fk(const)32 b(P)m(oin)m(t)h -Fm(&)p Fe(p)p Fm(\))28 b Fk(const)83 3226 y Fn(f)166 -3325 y Fk(real)33 b Fe(r)25 b Fm(=)e(\()p Fe(p)18 b Fn(\000)g -Fi(p)l(oint)13 b Fm(\))p Fe(:)p Fi(dot)p 1045 3325 V -31 w(pr)l(o)l(duct)g Fm(\()p Fi(normal)g Fm(\);)166 3425 -y Fk(real)33 b Fi(r)p 395 3425 V 30 w(fabs)i Fm(=)23 -b Fi(fabs)12 b Fm(\()p Fe(r)s Fm(\);)166 3524 y Fk(signed)31 -b(short)i Fe(s)p Fm(;)166 3649 y Fk(if)41 b Fm(\()p Fi(r)p -335 3649 V 31 w(fabs)35 b Fe(<)23 b Fk(P)m(oin)m(t)13 -b Fm(::)c Fi(epsilon)j Fm(\()i(\)\))42 b Fn(f)249 3749 -y Fi(r)p 289 3749 V 31 w(fabs)35 b Fm(=)22 b(0;)249 3848 -y Fe(s)h Fm(=)g(0)o(;)166 3948 y Fn(g)166 4047 y Fk(else)45 -b Fe(s)23 b Fm(=)g Fk(static)p 745 4047 29 5 v 40 w(cast)5 -b Fn(h)p Fk(signed)32 b(short)5 b Fn(i)p Fm(\()p Fe(r)s(=)p -Fi(r)p 1682 4047 26 4 v 30 w(fabs)12 b Fm(\);)166 4147 -y Fk(return)33 b(real)p 624 4147 29 5 v 40 w(short)5 -b Fm(\()p Fi(r)p 952 4147 26 4 v 31 w(fabs)12 b Fe(;)i(s)p -Fm(\);)83 4247 y Fn(g)0 4446 y Fk(635.)94 b(No)27 b(argumen)m(t.)95 -b Fm([)p Fh(LDF)26 b(2003.06.03.)p Fm(])56 b(This)24 -b(v)n(ersion)e(of)h Fi(get)p 2249 4446 V 31 w(distanc)l(e)11 -b Fm(\()j(\))24 b(returns)f(the)g(data)g(mem)n(b)r(er)h -Fi(distanc)l(e)0 4546 y Fm(and)j(its)h(sign,)e(i.e.,)i(the)g(distance)f -(of)g Fi(origin)39 b Fm(to)27 b(the)h Fk(Plane)5 b Fm(,)27 +b(.)p 0 2445 3900 4 v 0 2602 a Fn(h)14 b Fm(Declare)27 +b Fk(Plane)32 b Fm(functions)k Fl(619)15 b Fn(i)23 b +Fm(+)p Fn(\021)83 2702 y Fk(real)p 243 2702 29 5 v 40 +w(short)32 b Fi(get)p 635 2702 26 4 v 31 w(distanc)l(e)11 +b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\))28 +b Fk(const)5 b Fm(;)0 2901 y Fk(634.)0 3026 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Plane)33 b Fm(functions)i Fl(620)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3125 y Fk(real)p 243 3125 +29 5 v 40 w(short)32 b(Plane)14 b Fm(::)8 b Fi(get)p +938 3125 26 4 v 30 w(distanc)l(e)k Fm(\()p Fk(const)32 +b(P)m(oin)m(t)h Fm(&)p Fe(p)p Fm(\))28 b Fk(const)83 +3225 y Fn(f)166 3324 y Fk(real)33 b Fe(r)25 b Fm(=)e(\()p +Fe(p)18 b Fn(\000)g Fi(p)l(oint)13 b Fm(\))p Fe(:)p Fi(dot)p +1045 3324 V 31 w(pr)l(o)l(duct)g Fm(\()p Fi(normal)g +Fm(\);)166 3424 y Fk(real)33 b Fi(r)p 395 3424 V 30 w(fabs)i +Fm(=)23 b Fi(fabs)12 b Fm(\()p Fe(r)s Fm(\);)166 3524 +y Fk(signed)31 b(short)i Fe(s)p Fm(;)166 3648 y Fk(if)41 +b Fm(\()p Fi(r)p 335 3648 V 31 w(fabs)35 b Fe(<)23 b +Fk(P)m(oin)m(t)13 b Fm(::)c Fi(epsilon)j Fm(\()i(\)\))42 +b Fn(f)249 3748 y Fi(r)p 289 3748 V 31 w(fabs)35 b Fm(=)22 +b(0;)249 3847 y Fe(s)h Fm(=)g(0)o(;)166 3947 y Fn(g)166 +4047 y Fk(else)45 b Fe(s)23 b Fm(=)g Fk(static)p 745 +4047 29 5 v 40 w(cast)5 b Fn(h)p Fk(signed)32 b(short)5 +b Fn(i)p Fm(\()p Fe(r)s(=)p Fi(r)p 1682 4047 26 4 v 30 +w(fabs)12 b Fm(\);)166 4146 y Fk(return)33 b(real)p 624 +4146 29 5 v 40 w(short)5 b Fm(\()p Fi(r)p 952 4146 26 +4 v 31 w(fabs)12 b Fe(;)i(s)p Fm(\);)83 4246 y Fn(g)0 +4445 y Fk(635.)94 b(No)27 b(argumen)m(t.)95 b Fm([)p +Fh(LDF)26 b(2003.06.03.)p Fm(])56 b(This)24 b(v)n(ersion)e(of)h +Fi(get)p 2249 4445 V 31 w(distanc)l(e)11 b Fm(\()j(\))24 +b(returns)f(the)g(data)g(mem)n(b)r(er)h Fi(distanc)l(e)0 +4545 y Fm(and)j(its)h(sign,)e(i.e.,)i(the)g(distance)f(of)g +Fi(origin)39 b Fm(to)27 b(the)h Fk(Plane)5 b Fm(,)27 b(and)g(whic)n(h)g(side)g(of)h(the)f Fk(Plane)32 b Fm(it)c(lies)f(on.) 37 b(I'm)27 b(not)g(using)0 4645 y Fi(origin)35 b Fm(as)22 b(the)h(default)g(for)f(an)g(optional)g Fk(P)m(oin)m(t)28 b Fm(argumen)n(t,)23 b(b)r(ecause)f(of)h(problems)e(that)i(ma)n(y)f -(arise,)h(when)g(I)f(implemen)n(t)0 4745 y Fi(user)p -157 4745 V 30 w(c)l(o)l(or)l(dinates)40 b Fm(and)27 b -Fi(view)p 945 4745 V 32 w(c)l(o)l(or)l(dinates)12 b Fm(.)p -0 4821 1643 4 v 1738 4853 a Fk(Begin)31 b(Log)p 2257 -4821 V 83 4994 a Fm([)p Fh(LDF)25 b(2003.06.03.)p Fm(])61 -b(Added)28 b(this)g(function.)p 0 5086 1678 4 v 1773 -5118 a Fk(End)k(Log)p 2222 5086 V 0 5243 a Fn(h)14 b -Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k Fl(619)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 5343 y Fk(real)p 243 5343 -29 5 v 40 w(short)32 b Fi(get)p 635 5343 26 4 v 31 w(distanc)l(e)11 +(arise,)h(when)g(I)f(implemen)n(t)0 4744 y Fi(user)p +157 4744 V 30 w(c)l(o)l(or)l(dinates)40 b Fm(and)27 b +Fi(view)p 945 4744 V 32 w(c)l(o)l(or)l(dinates)12 b Fm(.)p +0 4820 1779 4 v 1874 4853 a Fk(Log)p 2122 4820 V 83 4993 +a Fm([)p Fh(LDF)25 b(2003.06.03.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 5085 3900 4 v 0 5242 a Fn(h)14 +b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k Fl(619)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 5342 y Fk(real)p 243 5342 +29 5 v 40 w(short)32 b Fi(get)p 635 5342 26 4 v 31 w(distanc)l(e)11 b Fm(\()p Fk(v)m(oid)5 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 176 176 -TeXDict begin 176 175 bop 0 83 a Fm(176)140 b Fl(NO)23 +%%Page: 178 178 +TeXDict begin 178 177 bop 0 83 a Fm(178)140 b Fl(NO)23 b(AR)n(GUMENT)2386 b(3DLDFPR)n(G)142 b Fn(x)p Fm(636)0 263 y Fk(636.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Plane)33 b Fm(functions)i Fl(620)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -17312,11 +17317,10 @@ y Fe(p)p Fm(,)f(otherwise)e Fi(false)12 b Fm(.)37 b(Declared)28 b(in)g Fj(points.web)p Fm(.)33 b(Must)28 b(b)r(e)g(de\014ned)g(here,)f (b)r(ecause)h Fk(Plane)k Fm(is)c(an)f(incomplete)h(t)n(yp)r(e)g(in)0 -1409 y(that)g(\014le.)p 0 1484 1643 4 v 1738 1517 a Fk(Begin)j(Log)p -2257 1484 V 83 1658 a Fm([)p Fh(LDF)25 b(2003.06.04.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 1750 1678 4 -v 1773 1782 a Fk(End)k(Log)p 2222 1750 V 0 1907 a Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +1409 y(that)g(\014le.)p 0 1484 1779 4 v 1874 1517 a Fk(Log)p +2122 1484 V 83 1658 a Fm([)p Fh(LDF)d(2003.06.04.)p Fm(])61 +b(Added)28 b(this)g(function.)p 0 1750 3900 4 v 0 1907 +a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2006 y Fk(b)s(o)s(ol)31 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(is)p 651 2006 26 4 v 32 w(on)p 772 2006 V 30 w(plane)k Fm(\()p Fk(const)32 @@ -17328,21 +17332,20 @@ b(return)33 b Fi(false)12 b Fm(;)83 2405 y Fn(g)0 2604 y Fk(638.)94 b(In)m(tersection.)0 2803 y(639.)g(In)m(tersection)32 b(with)g(a)g(line.)0 3003 y(640.)94 b(P)m(oin)m(t)32 -b(argumen)m(ts.)p 0 3102 1643 4 v 1738 3135 a(Begin)f(Log)p -2257 3102 V 83 3275 a Fm([)p Fh(LDF)25 b(2003.06.03.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 3367 1678 4 -v 1773 3400 a Fk(End)k(Log)p 2222 3367 V 0 3524 a Fn(h)14 -b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k Fl(619)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3624 y Fk(b)s(o)s(ol)p -269 3624 29 5 v 38 w(p)s(oin)m(t)32 b Fi(interse)l(ction)p -979 3624 26 4 v 31 w(p)l(oint)13 b Fm(\()p Fk(const)32 +b(argumen)m(ts.)p 0 3101 1779 4 v 1874 3134 a(Log)p 2122 +3101 V 83 3275 a Fm([)p Fh(LDF)25 b(2003.06.03.)p Fm(])61 +b(Added)28 b(this)g(function.)p 0 3367 3900 4 v 0 3524 +a Fn(h)14 b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k +Fl(619)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3623 y Fk(b)s(o)s(ol)p +269 3623 29 5 v 38 w(p)s(oin)m(t)32 b Fi(interse)l(ction)p +979 3623 26 4 v 31 w(p)l(oint)13 b Fm(\()p Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 177 177 -TeXDict begin 177 176 bop 0 83 a Fn(x)p Fm(641)140 b +%%Page: 179 179 +TeXDict begin 179 178 bop 0 83 a Fn(x)p Fm(641)140 b Fl(3DLDFPR)n(G)2141 b Fk(POINT)24 b Fl(AR)n(GUMENTS)140 -b Fm(177)0 263 y Fk(641.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fm(179)0 263 y Fk(641.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Plane)33 b Fm(functions)i Fl(620)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)p 269 487 29 5 v 38 w(p)s(oin)m(t)32 b(Plane)13 b Fm(::)8 b Fi(interse)l(ction)p @@ -17389,28 +17392,26 @@ b(P)m(ath)30 b(argumen)m(t.)96 b Fm([)p Fh(LDF)25 b(2003.06.03.)p Fm(])58 b(De\014ned)26 b(in)f Fj(paths.web)p Fm(,)d(b)r(ecause)j Fk(P)m(ath)31 b Fm(is)25 b(an)f(incomplete)i(t)n(yp)r(e)f(in)0 -2554 y(this)j(\014le.)p 0 2630 1643 4 v 1738 2663 a Fk(Begin)j(Log)p -2257 2630 V 83 2803 a Fm([)p Fh(LDF)25 b(2003.06.03.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 2895 1678 4 -v 1773 2928 a Fk(End)k(Log)p 2222 2895 V 0 3053 a Fn(h)14 -b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k Fl(619)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3152 y Fk(b)s(o)s(ol)p +2554 y(this)j(\014le.)p 0 2630 1779 4 v 1874 2663 a Fk(Log)p +2122 2630 V 83 2803 a Fm([)p Fh(LDF)d(2003.06.03.)p Fm(])61 +b(Added)28 b(this)g(function.)p 0 2895 3900 4 v 0 3053 +a Fn(h)14 b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k +Fl(619)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3152 y Fk(b)s(o)s(ol)p 269 3152 29 5 v 38 w(p)s(oin)m(t)32 b Fi(interse)l(ction)p 979 3152 26 4 v 31 w(p)l(oint)13 b Fm(\()p Fk(const)32 b(P)m(ath)i Fm(&)o Fe(p)p Fm(\))28 b Fk(const)5 b Fm(;)0 3351 y Fk(643.)94 b(In)m(tersection)32 b(of)g(t)m(w)m(o)g(Planes.)95 b Fm([)p Fh(LDF)25 b(2002.10.29.)p Fm(])61 b(TO)27 b(DO:)h(Lo)r(ok)f -(up)h(and)f(explain!)p 0 3455 1643 4 v 1738 3488 a Fk(Begin)k(Log)p -2257 3455 V 83 3629 a Fm([)p Fh(LDF)25 b(2003.06.04.)p -Fm(])61 b(Changed)27 b(to)h Fk(const)t Fm(.)p 0 3721 -1678 4 v 1773 3753 a Fk(End)k(Log)p 2222 3721 V 0 3878 -a Fn(h)14 b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k +(up)h(and)f(explain!)p 0 3455 1779 4 v 1874 3487 a Fk(Log)p +2122 3455 V 83 3628 a Fm([)p Fh(LDF)e(2003.06.04.)p Fm(])61 +b(Changed)27 b(to)h Fk(const)t Fm(.)p 0 3720 3900 4 v +0 3877 a Fn(h)14 b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k Fl(619)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3977 y Fk(Line)32 b Fi(interse)l(ction)p 722 3977 26 4 v 31 w(line)11 b Fm(\()p Fk(const)33 b(Plane)f Fm(&)p Fi(pl)13 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 178 178 -TeXDict begin 178 177 bop 0 83 a Fm(178)140 b Fl(INTERSECTION)24 +%%Page: 180 180 +TeXDict begin 180 179 bop 0 83 a Fm(180)140 b Fl(INTERSECTION)24 b(OF)f(TW)n(O)h Fk(PLANES)1661 b Fl(3DLDFPR)n(G)142 b Fn(x)p Fm(644)0 263 y Fk(644.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Plane)33 b Fm(functions)i Fl(620)15 b Fn(i)23 b @@ -17516,10 +17517,10 @@ 5394 y Fe(x)24 b Fm(=)e Fn(\000)p Fm(1)c Fn(\003)g Fm(\(\()p Fe(d)h Fn(\003)f Fi(my)30 b Fn(\000)18 b Fe(e)g Fn(\003)g Fi(ny)12 b Fm(\))p Fe(=)p Fi(vz)i Fm(\);)p eop end -%%Page: 179 179 -TeXDict begin 179 178 bop 0 83 a Fn(x)p Fm(644)140 b +%%Page: 181 181 +TeXDict begin 181 180 bop 0 83 a Fn(x)p Fm(644)140 b Fl(3DLDFPR)n(G)1661 b(INTERSECTION)24 b(OF)f(TW)n(O)h -Fk(PLANES)141 b Fm(179)249 263 y Fe(y)26 b Fm(=)c(\()p +Fk(PLANES)141 b Fm(181)249 263 y Fe(y)26 b Fm(=)c(\()p Fe(d)d Fn(\003)f Fi(mx)32 b Fn(\000)18 b Fe(e)h Fn(\003)f Fi(nx)13 b Fm(\))p Fe(=)p Fi(vz)h Fm(;)249 363 y Fe(z)26 b Fm(=)d(0;)166 462 y Fn(g)166 587 y Fk(P)m(oin)m(t)33 @@ -17538,14 +17539,13 @@ y Fn(g)166 1608 y Fk(return)33 b(Line)5 b Fm(\()p Fi(p)l(oint)p 867 1608 V 31 w(on)p 987 1608 V 30 w(line)11 b Fe(;)j Fi(dir)l(e)l(ction)p 1508 1608 V 32 w(ve)l(ctor)f Fm(\);)83 -1708 y Fn(g)0 1907 y Fk(645.)94 b(Sho)m(w.)p 0 1983 1643 -4 v 1738 2015 a(Begin)31 b(Log)p 2257 1983 V 83 2156 -a Fm([)p Fh(LDF)25 b(2003.06.06.)p Fm(])61 b(Minor)27 -b(c)n(hange)g(to)g(the)h(conditional)f(that)h(handles)f -Fi(text)11 b Fm(.)83 2256 y([)p Fh(LDF)25 b(2003.06.06.)p -Fm(])61 b(Made)27 b Fi(show)15 b Fm(\()f(\))28 b Fk(const)t -Fm(.)p 0 2347 1678 4 v 1773 2380 a Fk(End)k(Log)p 2222 -2347 V 0 2505 a Fn(h)14 b Fm(Declare)27 b Fk(Plane)32 +1708 y Fn(g)0 1907 y Fk(645.)94 b(Sho)m(w.)p 0 1983 1779 +4 v 1874 2015 a(Log)p 2122 1983 V 83 2156 a Fm([)p Fh(LDF)25 +b(2003.06.06.)p Fm(])61 b(Minor)27 b(c)n(hange)g(to)g(the)h +(conditional)f(that)h(handles)f Fi(text)11 b Fm(.)83 +2256 y([)p Fh(LDF)25 b(2003.06.06.)p Fm(])61 b(Made)27 +b Fi(show)15 b Fm(\()f(\))28 b Fk(const)t Fm(.)p 0 2347 +3900 4 v 0 2505 a Fn(h)14 b Fm(Declare)27 b Fk(Plane)32 b Fm(functions)k Fl(619)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2604 y Fk(v)m(oid)33 b Fi(show)14 b Fm(\()p Fk(string)33 b Fi(text)h Fm(=)23 b Ff("")s Fm(\))28 b Fk(const)5 b @@ -17580,8 +17580,8 @@ b Fl(18)14 b Fn(i)23 b Fm(+)p Fn(\021)83 5078 y Fk(extern)33 b(const)f(Plane)h Ff(INVALID_PLANE)o Fm(;)0 5278 y Fk(649.)94 b(Putting)32 b(Plane)g(together.)p eop end -%%Page: 180 180 -TeXDict begin 180 179 bop 0 83 a Fm(180)140 b Fl(PUTTING)24 +%%Page: 182 182 +TeXDict begin 182 181 bop 0 83 a Fm(182)140 b Fl(PUTTING)24 b Fk(PLANE)f Fl(TOGETHER)1817 b(3DLDFPR)n(G)142 b Fn(x)p Fm(650)0 263 y Fk(650.)94 b Fm(This)28 b(is)f(what's)h(compiled.)83 388 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 @@ -17592,164 +17592,171 @@ 786 y(h)f Fm(De\014ne)28 b Fk(Plane)33 b Fm(functions)i Fl(620)15 b Fn(i)83 886 y(h)f Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)p eop end -%%Page: 181 181 -TeXDict begin 181 180 bop 0 83 a Fn(x)p Fm(651)140 b +%%Page: 183 183 +TeXDict begin 183 182 bop 0 83 a Fn(x)p Fm(651)140 b Fl(3DLDFPR)n(G)1817 b(PUTTING)24 b Fk(PLANE)f Fl(TOGETHER)141 -b Fm(181)0 263 y Fk(651.)94 b Fm(This)28 b(is)f(what's)h(written)f(to)h +b Fm(183)0 263 y Fk(651.)94 b Fm(This)28 b(is)f(what's)h(written)f(to)h Fj(planes.h)p Fm(.)0 388 y Fn(h)14 b Ff(planes.h)80 b Fl(651)15 b Fn(i)23 b(\021)83 487 y(h)14 b Fm(De\014ne)28 b Fk(struct)33 b(Plane)40 b Fl(617)15 b Fn(i)83 587 y(h)f Fm(Declarations)26 b(for)h(the)h(header)f(\014le)36 b Fl(18)14 b Fn(i)0 786 y Fk(652.)94 b(P)m(ath)j(\()p Fj(paths.web)p -Fk(\).)p 0 890 1643 4 v 1738 923 a(Begin)31 b(Log)p 2257 -890 V 83 1063 a Fm([)p Fh(LDF)25 b(2003.11.12.)p Fm(])71 -b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i -(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g(of)0 -1163 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h -(dev)n(elopmen)n(t)f(v)n(ersions.)p 0 1255 1678 4 v 1773 -1287 a Fk(End)32 b(Log)p 2222 1255 V 83 1412 a(format)65 -b Fi(Path)80 b(Shap)l(e)0 1536 y Fn(h)14 b Fm(V)-7 b(ersion)27 -b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 -b Fm(+)p Fn(\021)0 1736 y Fk(653.)94 b(Include)32 b(\014les.)0 -1860 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 -b Fn(i)23 b Fm(+)p Fn(\021)0 1960 y Fm(#)p Fk(include)32 -b Ff("loader.h")0 2060 y Fm(#)p Fk(include)g Ff("pspglb.h")0 -2159 y Fm(#)p Fk(include)g Ff("io.h")0 2259 y Fm(#)p -Fk(include)g Ff("colors.h")0 2358 y Fm(#)p Fk(include)g -Ff("transfor.h")0 2458 y Fm(#)p Fk(include)g Ff("shapes.h")0 -2558 y Fm(#)p Fk(include)g Ff("pictures.h")0 2657 y Fm(#)p -Fk(include)g Ff("points.h")0 2757 y Fm(#)p Fk(include)g -Ff("lines.h")0 2857 y Fm(#)p Fk(include)g Ff("planes.h")0 -3056 y Fk(654.)94 b(P)m(ath)33 b(class)f(de\014nition.)p -0 3132 1643 4 v 1738 3164 a(Begin)f(Log)p 2257 3132 V -83 3305 a Fm([)p Fh(LDF)25 b(2002.09.18.)p Fm(])59 b(Added)25 -b Fi(pr)l(oje)l(ctive)p 1345 3305 26 4 v 32 w(extr)l(emes)11 -b Fm(.)36 b(It)25 b(con)n(tains)f(the)i(minim)n(um)f(and)g(maxim)n(um)g -(v)-5 b(alues)25 b(for)f(x,)i(y)-7 b(,)25 b(and)0 3404 -y(z)j(of)f(the)h Fk(P)m(oin)m(ts)33 b Fm(in)27 b Fi(p)l(oints)12 -b Fm(.)37 b(It's)28 b(used)f(in)h Fk(Picture)13 b Fm(::)8 -b Fi(output)k Fm(\()i(\))28 b(for)f(surface)g(hiding.)83 -3504 y([)p Fh(LDF)e(2002.4.8.)p Fm(])92 b(Added)60 b -Fk(static)k Fm(v)-5 b(ariables)57 b(for)i(help)g(lines)g(and)g(curv)n -(es:)99 b Fi(help)p 2939 3504 V 32 w(c)l(olor)14 b Fm(,)67 -b Fi(help)p 3392 3504 V 32 w(dash)p 3584 3504 V 32 w(p)l(attern)10 -b Fm(,)0 3604 y Fi(do)p 89 3604 V 31 w(help)p 263 3604 +Fk(\).)p 0 889 1779 4 v 1874 922 a(Log)p 2122 889 V 83 +1063 a Fm([)p Fh(LDF)25 b(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 +b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB) +g(\014les)g(for)f(the)h(distribution)g(of)0 1162 y(3DLDF)28 +b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t) +f(v)n(ersions.)83 1262 y([)p Fh(LDF)e(2003.12.10.)p Fm(])64 +b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden)n(ti\014ers)h(bac)n(k)f +(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h(3DLDF)i(1.1.4.)43 +b(I'v)n(e)0 1361 y(already)24 b(put)j(some)e(of)h(them)h(bac)n(k)e(in,) +i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.)37 b(Ho)n(w)n(ev)n +(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w)i(in)0 +1461 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 b(.)p +0 1553 3900 4 v 83 1710 a Fk(format)65 b Fi(Path)80 b(Shap)l(e)0 +1835 y Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 +b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1934 y Fk(static)33 +b(string)g Fi(r)l(cs)p 726 1934 26 4 v 30 w(id)k Fm(=)23 +b Ff("$Id:)p Fj( )p Ff(paths.web,)o(v)p Fj( )o Ff(1.)-6 +b(3)p Fj( )p Ff(2003/12/10)p Fj( )p Ff(16)o(:1)o(0:5)f(7)p +Fj( )p Ff(lfinsto1)p Fj( )p Ff(Exp)p Fj( )p Ff($")n Fm(;)0 +2134 y Fk(653.)94 b(Include)32 b(\014les.)0 2258 y Fn(h)14 +b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p +Fn(\021)0 2358 y Fm(#)p Fk(include)32 b Ff("loader.h")0 +2457 y Fm(#)p Fk(include)g Ff("pspglb.h")0 2557 y Fm(#)p +Fk(include)g Ff("io.h")0 2657 y Fm(#)p Fk(include)g Ff("colors.h")0 +2756 y Fm(#)p Fk(include)g Ff("transfor.h")0 2856 y Fm(#)p +Fk(include)g Ff("shapes.h")0 2955 y Fm(#)p Fk(include)g +Ff("pictures.h")0 3055 y Fm(#)p Fk(include)g Ff("points.h")0 +3155 y Fm(#)p Fk(include)g Ff("lines.h")0 3254 y Fm(#)p +Fk(include)g Ff("planes.h")0 3454 y Fk(654.)94 b(P)m(ath)33 +b(class)f(de\014nition.)p 0 3529 1779 4 v 1874 3562 a(Log)p +2122 3529 V 83 3703 a Fm([)p Fh(LDF)25 b(2002.09.18.)p +Fm(])59 b(Added)25 b Fi(pr)l(oje)l(ctive)p 1345 3703 +26 4 v 32 w(extr)l(emes)11 b Fm(.)36 b(It)25 b(con)n(tains)f(the)i +(minim)n(um)f(and)g(maxim)n(um)g(v)-5 b(alues)25 b(for)f(x,)i(y)-7 +b(,)25 b(and)0 3802 y(z)j(of)f(the)h Fk(P)m(oin)m(ts)33 +b Fm(in)27 b Fi(p)l(oints)12 b Fm(.)37 b(It's)28 b(used)f(in)h +Fk(Picture)13 b Fm(::)8 b Fi(output)k Fm(\()i(\))28 b(for)f(surface)g +(hiding.)83 3902 y([)p Fh(LDF)e(2002.4.8.)p Fm(])92 b(Added)60 +b Fk(static)k Fm(v)-5 b(ariables)57 b(for)i(help)g(lines)g(and)g(curv)n +(es:)99 b Fi(help)p 2939 3902 V 32 w(c)l(olor)14 b Fm(,)67 +b Fi(help)p 3392 3902 V 32 w(dash)p 3584 3902 V 32 w(p)l(attern)10 +b Fm(,)0 4002 y Fi(do)p 89 4002 V 31 w(help)p 263 4002 V 32 w(lines)i Fm(.)67 b(The)37 b(v)-5 b(ariables)37 b(for)g(help)h(lines)f(\(or)g(curv)n(es\))g(are)g(part)g(of)g Fk(P)m(ath)6 b Fm('s)38 b(in)n(terface)f(and)g(can)h(b)r(e)g(set)f(an)n -(y-)0 3703 y(where)27 b(b)n(y)g(an)n(y)n(one.)p 0 3795 -1678 4 v 1773 3828 a Fk(End)32 b(Log)p 2222 3795 V 0 -3952 a Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(ath)42 -b Fl(654)14 b Fn(i)24 b(\021)83 4052 y Fk(class)32 b(P)m(ath)i -Fm(:)j Fk(protected)c(Shap)s(e)f Fn(f)83 4152 y Fk(protected)5 -b Fm(:)42 b Fk(b)s(o)s(ol)31 b Fi(line)p 899 4152 26 -4 v 31 w(switch)11 b Fm(;)166 4251 y Fk(b)s(o)s(ol)31 -b Fi(cycle)p 559 4251 V 31 w(switch)12 b Fm(;)166 4351 -y Fk(b)s(o)s(ol)31 b Fi(on)p 473 4351 V 30 w(fr)l(e)l(e)p -631 4351 V 31 w(stor)l(e)11 b Fm(;)166 4451 y Fk(b)s(o)s(ol)31 -b Fi(do)p 468 4451 V 31 w(output)12 b Fm(;)166 b Fe(=)p +(y-)0 4101 y(where)27 b(b)n(y)g(an)n(y)n(one.)p 0 4193 +3900 4 v 0 4350 a Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(ath)42 +b Fl(654)14 b Fn(i)24 b(\021)83 4450 y Fk(class)32 b(P)m(ath)i +Fm(:)j Fk(protected)c(Shap)s(e)f Fn(f)83 4549 y Fk(protected)5 +b Fm(:)42 b Fk(b)s(o)s(ol)31 b Fi(line)p 899 4549 26 +4 v 31 w(switch)11 b Fm(;)166 4649 y Fk(b)s(o)s(ol)31 +b Fi(cycle)p 559 4649 V 31 w(switch)12 b Fm(;)166 4749 +y Fk(b)s(o)s(ol)31 b Fi(on)p 473 4749 V 30 w(fr)l(e)l(e)p +631 4749 V 31 w(stor)l(e)11 b Fm(;)166 4848 y Fk(b)s(o)s(ol)31 +b Fi(do)p 468 4848 V 31 w(output)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fm(LDF)28 b(2002.09.18.)33 b(Added.)52 b -Fn(\003)p Fe(=)166 4550 y Fk(signed)31 b(short)i Fi(\014l)t(l)p -806 4550 V 30 w(dr)l(aw)p 1006 4550 V 32 w(value)11 b +Fn(\003)p Fe(=)166 4948 y Fk(signed)31 b(short)i Fi(\014l)t(l)p +806 4948 V 30 w(dr)l(aw)p 1006 4948 V 32 w(value)11 b Fm(;)166 b Fe(=)p Fn(\003)41 b Fm(V)-7 b(ariables)26 b(for)h(dra)n(wing)f(and)i(\014lling.)50 b Fn(\003)p -Fe(=)166 4650 y Fk(const)32 b(Color)g Fn(\003)p Fi(dr)l(aw)p -896 4650 V 31 w(c)l(olor)14 b Fm(;)166 4749 y Fk(const)32 -b(Color)g Fn(\003)p Fi(\014l)t(l)p 819 4749 V 31 w(c)l(olor)14 -b Fm(;)166 4849 y Fk(string)33 b Fi(dashe)l(d)15 b Fm(;)166 -4949 y Fk(string)33 b Fi(p)l(en)11 b Fm(;)166 5048 y -Fk(b)s(o)s(ol)31 b Fi(arr)l(ow)14 b Fm(;)166 b Fe(=)p -Fn(\003)40 b Fm(LDF)29 b(2003.01.15.)k(Added.)k(Needed)28 -b(for)f Fi(dr)l(awarr)l(ow)15 b Fm(\()f(\).)51 b Fn(\003)p -Fe(=)166 5148 y Fk(v)-5 b(alarra)m(y)8 b Fn(h)p Fk(real)d -Fn(i)28 b Fi(pr)l(oje)l(ctive)p 1108 5148 V 33 w(extr)l(emes)10 -b Fm(;)166 b Fe(=)p Fn(\003)41 b Fm(LDF)28 b(2002.09.18.)33 -b(Added.)51 b Fn(\003)p Fe(=)166 5248 y Fk(v)m(ector)6 -b Fn(h)p Fk(P)m(oin)m(t)33 b Fn(\003i)28 b Fi(p)l(oints)11 -b Fm(;)166 5347 y Fk(v)m(ector)6 b Fn(h)p Fk(string)g -Fn(i)28 b Fi(c)l(onne)l(ctors)11 b Fm(;)p eop end -%%Page: 182 182 -TeXDict begin 182 181 bop 0 83 a Fm(182)140 b Fk(P)-8 +Fe(=)166 5048 y Fk(const)32 b(Color)g Fn(\003)p Fi(dr)l(aw)p +896 5048 V 31 w(c)l(olor)14 b Fm(;)166 5147 y Fk(const)32 +b(Color)g Fn(\003)p Fi(\014l)t(l)p 819 5147 V 31 w(c)l(olor)14 +b Fm(;)166 5247 y Fk(string)33 b Fi(dashe)l(d)15 b Fm(;)166 +5347 y Fk(string)33 b Fi(p)l(en)11 b Fm(;)p eop end +%%Page: 184 184 +TeXDict begin 184 183 bop 0 83 a Fm(184)140 b Fk(P)-8 b(A)g(TH)24 b Fl(CLASS)g(DEFINITION)1974 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(654)83 263 y Fk(public)t Fm(:)42 b Fk(static)33 -b(const)f(Color)g Fn(\003)o Fi(help)p 1369 263 26 4 v -32 w(c)l(olor)14 b Fm(;)166 363 y Fk(static)33 b(string)g -Fi(help)p 849 363 V 32 w(dash)p 1041 363 V 32 w(p)l(attern)10 -b Fm(;)166 462 y Fk(static)33 b(b)s(o)s(ol)e Fi(do)p -728 462 V 31 w(help)p 902 462 V 32 w(lines)11 b Fm(;)166 -587 y Fn(h)j Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h -Fl(656)15 b Fn(i)83 686 y(g)p Fm(;)0 794 y Fl(This)23 -b(co)r(de)i(is)e(used)h(in)f(sections)i(933)f(and)g(934.)0 -994 y Fk(655.)94 b(Static)33 b(mem)m(b)s(er)e(v)-5 b(ariable)31 -b(de\014nitions.)0 1118 y Fn(h)14 b Fm(De\014ne)28 b -Fk(static)33 b(class)f(P)m(ath)i Fm(data)27 b(mem)n(b)r(ers)35 -b Fl(655)14 b Fn(i)24 b(\021)83 1218 y Fk(const)32 b(Color)g -Fn(\003)p Fk(P)m(ath)14 b Fm(::)8 b Fi(help)p 1052 1218 -V 32 w(c)l(olor)37 b Fm(=)23 b(&)p Fk(Colors)12 b Fm(::)c -Fi(r)l(e)l(d)13 b Fm(;)83 1317 y Fk(string)33 b(P)m(ath)14 -b Fm(::)8 b Fi(help)p 772 1317 V 33 w(dash)p 965 1317 -V 32 w(p)l(attern)33 b Fm(=)22 b Ff("evenly")r Fm(;)83 -1417 y Fk(b)s(o)s(ol)31 b(P)m(ath)14 b Fm(::)8 b Fi(do)p -651 1417 V 32 w(help)p 826 1417 V 32 w(lines)34 b Fm(=)23 -b Fi(true)10 b Fm(;)0 1525 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f -(section)i(933.)0 1724 y Fk(656.)94 b(Assignmen)m(t.)p -0 1823 1643 4 v 1738 1856 a(Begin)31 b(Log)p 2257 1823 -V 83 1997 a Fm([)p Fh(LDF)25 b(2002.10.23.)p Fm(])67 -b(No)n(w)33 b(all)g(of)h(the)f(data)g(mem)n(b)r(ers)h(of)f -Fk(class)38 b(P)m(ath)h Fm(are)33 b(assigned)f(to)i(except)f(for)g -Fi(on)p 3509 1997 26 4 v 31 w(fr)l(e)l(e)p 3668 1997 -V 31 w(stor)l(e)10 b Fm(.)0 2096 y(This)38 b(has)g(b)r(ecome)g +b Fn(x)p Fm(654)166 263 y Fk(b)s(o)s(ol)31 b Fi(arr)l(ow)14 +b Fm(;)166 b Fe(=)p Fn(\003)40 b Fm(LDF)29 b(2003.01.15.)k(Added.)k +(Needed)28 b(for)f Fi(dr)l(awarr)l(ow)15 b Fm(\()f(\).)51 +b Fn(\003)p Fe(=)166 363 y Fk(v)-5 b(alarra)m(y)8 b Fn(h)p +Fk(real)d Fn(i)28 b Fi(pr)l(oje)l(ctive)p 1108 363 26 +4 v 33 w(extr)l(emes)10 b Fm(;)166 b Fe(=)p Fn(\003)41 +b Fm(LDF)28 b(2002.09.18.)33 b(Added.)51 b Fn(\003)p +Fe(=)166 462 y Fk(v)m(ector)6 b Fn(h)p Fk(P)m(oin)m(t)33 +b Fn(\003i)28 b Fi(p)l(oints)11 b Fm(;)166 562 y Fk(v)m(ector)6 +b Fn(h)p Fk(string)g Fn(i)28 b Fi(c)l(onne)l(ctors)11 +b Fm(;)83 662 y Fk(public)t Fm(:)42 b Fk(static)33 b(const)f(Color)g +Fn(\003)o Fi(help)p 1369 662 V 32 w(c)l(olor)14 b Fm(;)166 +761 y Fk(static)33 b(string)g Fi(help)p 849 761 V 32 +w(dash)p 1041 761 V 32 w(p)l(attern)10 b Fm(;)166 861 +y Fk(static)33 b(b)s(o)s(ol)e Fi(do)p 728 861 V 31 w(help)p +902 861 V 32 w(lines)11 b Fm(;)166 985 y Fn(h)j Fm(Declare)27 +b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)83 +1085 y(g)p Fm(;)0 1193 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f +(sections)i(936)f(and)g(937.)0 1392 y Fk(655.)94 b(Static)33 +b(mem)m(b)s(er)e(v)-5 b(ariable)31 b(de\014nitions.)0 +1517 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(class)f(P)m(ath)i +Fm(data)27 b(mem)n(b)r(ers)35 b Fl(655)14 b Fn(i)24 b(\021)83 +1616 y Fk(const)32 b(Color)g Fn(\003)p Fk(P)m(ath)14 +b Fm(::)8 b Fi(help)p 1052 1616 V 32 w(c)l(olor)37 b +Fm(=)23 b(&)p Fk(Colors)12 b Fm(::)c Fi(r)l(e)l(d)13 +b Fm(;)83 1716 y Fk(string)33 b(P)m(ath)14 b Fm(::)8 +b Fi(help)p 772 1716 V 33 w(dash)p 965 1716 V 32 w(p)l(attern)33 +b Fm(=)22 b Ff("evenly")r Fm(;)83 1816 y Fk(b)s(o)s(ol)31 +b(P)m(ath)14 b Fm(::)8 b Fi(do)p 651 1816 V 32 w(help)p +826 1816 V 32 w(lines)34 b Fm(=)23 b Fi(true)10 b Fm(;)0 +1923 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(936.)0 +2123 y Fk(656.)94 b(Assignmen)m(t.)p 0 2221 1779 4 v +1874 2254 a(Log)p 2122 2221 V 83 2395 a Fm([)p Fh(LDF)25 +b(2002.10.23.)p Fm(])67 b(No)n(w)33 b(all)g(of)h(the)f(data)g(mem)n(b)r +(ers)h(of)f Fk(class)38 b(P)m(ath)h Fm(are)33 b(assigned)f(to)i(except) +f(for)g Fi(on)p 3509 2395 26 4 v 31 w(fr)l(e)l(e)p 3668 +2395 V 31 w(stor)l(e)10 b Fm(.)0 2494 y(This)38 b(has)g(b)r(ecome)g (necessary)f(b)r(ecause)h(of)g(c)n(hanges)f(in)h Fk(Solid)12 b Fm(::)c Fi(output)k Fm(\()i(\),)42 b(where)37 b(temp)r(orary)g -Fk(P)m(aths)44 b Fm(ha)n(v)n(e)37 b(to)i(b)r(e)0 2196 -y(created)27 b(in)h(order)e(to)h(sort)g(them.)83 2296 +Fk(P)m(aths)44 b Fm(ha)n(v)n(e)37 b(to)i(b)r(e)0 2594 +y(created)27 b(in)h(order)e(to)h(sort)g(them.)83 2693 y([)p Fh(LDF)e(2002.12.18.)p Fm(])53 b(Mo)n(v)n(ed)19 b(here.)34 b(With)20 b(the)g(DEC)g(compiler)f(under)g(Compaq)g(T)-7 -b(ru64)19 b(on)g(the)h(DEC)g(Alpha)f(computer,)0 2395 +b(ru64)19 b(on)g(the)h(DEC)g(Alpha)f(computer,)0 2793 y(it)k(w)n(ork)n(ed)d(to)i(ha)n(v)n(e)f(this)h(follo)n(wing)f(the)i -(constructors.)33 b(With)23 b(the)g(GNU)f Fh(C)2396 2387 -y Fg(+)-8 b(+)2517 2395 y Fm(compiler)21 b(\(GCC\))i(under)f(GNU/Lin)n -(ux)g(on)0 2495 y(the)i(In)n(tel)g(i686)f(computer,)h(it)g(didn't:)36 +(constructors.)33 b(With)23 b(the)g(GNU)f Fh(C)2396 2785 +y Fg(+)-8 b(+)2517 2793 y Fm(compiler)21 b(\(GCC\))i(under)f(GNU/Lin)n +(ux)g(on)0 2893 y(the)i(In)n(tel)g(i686)f(computer,)h(it)g(didn't:)36 b(The)24 b(cop)n(y)f(constructor)g(used)h(the)g(default)g(assignmen)n -(t)f(op)r(erator)f(instead)i(of)g(this)0 2595 y(function,)35 +(t)f(op)r(erator)f(instead)i(of)g(this)0 2992 y(function,)35 b(presumably)d(b)r(ecause)g(this)h(function)g(w)n(asn't)f(kno)n(wn)g (at)h(the)g(time)g(the)g(cop)n(y)f(constructor)f(w)n(as)h(compiled,)0 -2694 y Fi(although)e(it)f(had)h(b)l(e)l(en)e(de)l(clar)l(e)l(d)i(pr)l +3092 y Fi(although)e(it)f(had)h(b)l(e)l(en)e(de)l(clar)l(e)l(d)i(pr)l (eviously)7 b Fm(!)38 b(UR)n(GENT:)27 b(Mo)n(v)n(e)e(assignmen)n(t)h (op)r(erators)e(for)i(the)h(other)f Fi(classes)38 b Fm(b)r(efore)0 -2794 y(the)28 b(constructors!)83 2893 y([)p Fh(LDF)d(2003.04.09.)p +3192 y(the)28 b(constructors!)83 3291 y([)p Fh(LDF)d(2003.04.09.)p Fm(])61 b(??)37 b(BUG)28 b(FIX:)h(No)n(w)e(resizing)f -Fi(pr)l(oje)l(ctive)p 2101 2893 V 32 w(extr)l(emes)11 -b Fm(,)27 b(if)i(after)e(setting)g(it)h(to)0 2993 y Fe(p:)p -Fi(pr)l(oje)l(ctive)p 411 2993 V 32 w(extr)l(emes)10 -b Fm(,)34 b Fi(pr)l(oje)l(ctive)p 1165 2993 V 33 w(extr)l(emes)10 +Fi(pr)l(oje)l(ctive)p 2101 3291 V 32 w(extr)l(emes)11 +b Fm(,)27 b(if)i(after)e(setting)g(it)h(to)0 3391 y Fe(p:)p +Fi(pr)l(oje)l(ctive)p 411 3391 V 32 w(extr)l(emes)10 +b Fm(,)34 b Fi(pr)l(oje)l(ctive)p 1165 3391 V 33 w(extr)l(emes)10 b Fe(:)p Fi(size)h Fm(\()j(\))32 b Fn(\021)f Fm(0.)52 b(This)33 b(prev)n(en)n(ts)e(a)i(Memory)e(F)-7 b(ault)34 -b(error)c(at)j(run-time.)52 b(I)0 3093 y(don't)27 b(kno)n(w)f(wh)n(y)g +b(error)c(at)j(run-time.)52 b(I)0 3491 y(don't)27 b(kno)n(w)f(wh)n(y)g (it)h(should)g(b)r(e)g(necessary)-7 b(,)25 b(though,)i(since)f(all)h (of)g(the)g(constructors)e(of)h Fk(P)m(ath)33 b Fm(and)27 -b(its)f(deriv)n(ed)g(classes)0 3192 y(resize)h Fi(pr)l(oje)l(ctive)p -573 3192 V 32 w(extr)l(emes)10 b Fm(;)28 b(at)f(least,)h(I)f(though)n -(t)h(they)f(did.)p 0 3284 1678 4 v 1773 3317 a Fk(End)32 -b(Log)p 2222 3284 V 0 3441 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 -b(\021)83 3541 y Fk(virtual)33 b(P)m(ath)g Fm(&)p Fk(op)s(erator)5 -b Fm(=)o(\()p Fk(const)33 b(P)m(ath)h Fm(&)o Fe(p)p Fm(\);)0 -3649 y Fl(See)23 b(also)g(sections)g(660,)g(663,)g(665,)h(668,)f(670,)g -(673,)g(675,)g(677,)g(680,)g(682,)g(684,)h(686,)f(688,)g(690,)g(692,)g -(695,)g(697,)g(700,)g(702,)h(704,)f(706,)g(708,)g(713,)166 -3732 y(719,)h(721,)h(723,)f(725,)h(728,)f(730,)g(733,)h(735,)f(738,)h -(740,)f(742,)g(747,)h(749,)f(751,)h(754,)f(756,)g(758,)h(762,)f(767,)g -(769,)h(775,)f(777,)h(784,)f(786,)g(793,)166 3815 y(795,)g(801,)h(803,) -f(806,)h(808,)f(812,)g(814,)h(820,)f(823,)h(825,)f(829,)g(831,)h(834,)f -(836,)h(839,)f(841,)g(845,)h(846,)f(848,)g(850,)h(852,)f(854,)h(856,)f -(866,)g(868,)166 3898 y(871,)g(872,)g(874,)g(876,)g(877,)g(878,)g(879,) -g(881,)g(887,)g(889,)g(891,)g(893,)g(899,)g(905,)g(908,)g(912,)g(914,)g -(917,)g(and)g(929.)0 4006 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i -(654.)p eop end -%%Page: 183 183 -TeXDict begin 183 182 bop 0 83 a Fn(x)p Fm(657)140 b -Fl(3DLDFPR)n(G)2464 b(ASSIGNMENT)141 b Fm(183)0 263 y +b(its)f(deriv)n(ed)g(classes)0 3590 y(resize)h Fi(pr)l(oje)l(ctive)p +573 3590 V 32 w(extr)l(emes)10 b Fm(;)28 b(at)f(least,)h(I)f(though)n +(t)h(they)f(did.)p 0 3682 3900 4 v 0 3839 a Fn(h)14 b +Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 +b Fn(i)23 b(\021)83 3939 y Fk(virtual)33 b(P)m(ath)g +Fm(&)p Fk(op)s(erator)5 b Fm(=)o(\()p Fk(const)33 b(P)m(ath)h +Fm(&)o Fe(p)p Fm(\);)0 4047 y Fl(See)23 b(also)g(sections)g(660,)g +(663,)g(665,)h(668,)f(670,)g(673,)g(675,)g(677,)g(680,)g(682,)g(684,)h +(686,)f(688,)g(690,)g(692,)g(695,)g(697,)g(700,)g(702,)h(704,)f(706,)g +(708,)g(713,)166 4130 y(719,)h(721,)h(723,)f(725,)h(728,)f(730,)g(733,) +h(735,)f(738,)h(740,)f(742,)g(747,)h(749,)f(751,)h(754,)f(756,)g(758,)h +(762,)f(767,)g(769,)h(775,)f(777,)h(784,)f(786,)g(793,)166 +4213 y(795,)g(801,)h(803,)f(806,)h(808,)f(812,)g(814,)h(820,)f(823,)h +(825,)f(829,)g(831,)h(834,)f(836,)h(839,)f(841,)g(845,)h(846,)f(848,)g +(850,)h(852,)f(854,)h(856,)f(866,)g(868,)166 4296 y(871,)g(872,)g(874,) +g(876,)g(877,)g(878,)g(879,)g(881,)g(888,)g(890,)g(892,)g(894,)g(896,)g +(902,)g(908,)g(911,)g(915,)g(917,)g(920,)g(and)g(932.)0 +4404 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(654.)p +eop end +%%Page: 185 185 +TeXDict begin 185 184 bop 0 83 a Fn(x)p Fm(657)140 b +Fl(3DLDFPR)n(G)2464 b(ASSIGNMENT)141 b Fm(185)0 263 y Fk(657.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b(\021)83 487 y Fk(P)m(ath)34 b Fm(&)o Fk(P)m(ath)15 b Fm(::)8 b Fk(op)s(erator)d @@ -17826,43 +17833,42 @@ (830,)h(832,)f(835,)g(837,)h(840,)f(842,)g(843,)h(844,)f(847,)h(849,)f (851,)g(853,)166 3235 y(855,)g(857,)h(858,)f(859,)h(860,)f(861,)g(862,) h(863,)f(867,)h(869,)f(873,)g(875,)h(880,)f(882,)h(883,)f(884,)g(885,)h -(886,)f(888,)g(890,)h(894,)f(895,)h(896,)f(897,)g(900,)166 -3318 y(906,)g(909,)g(910,)g(911,)g(913,)g(915,)g(918,)g(and)g(930.)0 -3426 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(933.)0 +(886,)f(889,)g(891,)h(893,)f(897,)h(898,)f(899,)g(900,)166 +3318 y(903,)g(909,)g(912,)g(913,)g(914,)g(916,)g(918,)g(921,)g(and)g +(933.)0 3426 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(936.)0 3625 y Fk(658.)94 b(Constructors)27 b(and)f(setting)g(functions.)94 b Fm(Eac)n(h)22 b(constructor)f(taking)h(an)h(argumen)n(t)e(has)i(a)f (corresp)r(onding)0 3725 y(function)28 b(for)f(setting)h(an)f(already)f -(existing)h Fk(P)m(ath)6 b Fm(.)p 0 3824 1643 4 v 1738 -3857 a Fk(Begin)31 b(Log)p 2257 3824 V 83 3998 a Fm([)p -Fh(LDF)25 b(2003.04.06.)p Fm(])64 b(BUG)30 b(FIX:)g(No)n(w)g(setting)g +(existing)h Fk(P)m(ath)6 b Fm(.)p 0 3824 1779 4 v 1874 +3856 a Fk(Log)p 2122 3824 V 83 3997 a Fm([)p Fh(LDF)25 +b(2003.04.06.)p Fm(])64 b(BUG)30 b(FIX:)g(No)n(w)g(setting)g Fi(dashe)l(d)41 b Fm(=)27 b Ff("")s Fm(,)k Fi(p)l(en)38 b Fm(=)26 b Ff("")t Fm(,)31 b(and)f Fi(arr)l(ow)41 b Fm(=)26 b Fi(false)42 b Fm(in)30 b(all)g(constructors)0 4097 y(and)h(setting)g(functions.)47 b(This)31 b(\014xed)g(a)f(problem) h(I)g(w)n(as)f(ha)n(ving)g(with)h Fk(Icosahedron)5 b Fm(:)44 b(One)30 b(of)h(the)h Fk(Reg)p 3487 4097 29 5 -v 39 w(P)m(olygons)0 4197 y Fm(w)n(as)27 b(dra)n(wn)f(with)i(an)g(arro) -n(w.)p 0 4289 1678 4 v 1773 4321 a Fk(End)k(Log)p 2222 -4289 V 0 4521 a(659.)94 b(Discard)33 b(p)s(oin)m(ts)e(and)h -(connectors.)95 b Fm(This)28 b(is)f(useful)h(in)g(the)g(setting)g -(functions.)0 4645 y Fn(h)14 b Fm(Discard)27 b Fi(p)l(oints)39 -b Fm(and)28 b Fi(c)l(onne)l(ctors)46 b Fl(659)14 b Fn(i)24 -b(\021)83 4745 y Fk(if)41 b Fm(\()p Fi(p)l(oints)12 b -Fe(:)p Fi(size)f Fm(\()j(\))23 b Fe(>)g Fm(0\))41 b Fn(f)166 -4844 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(P)m(oin)m(t)33 -b Fn(\003i)8 b Fm(::)h Fi(iter)l(ator)k(iter)37 b Fm(=)22 -b Fi(p)l(oints)12 b Fe(:)p Fi(b)l(e)l(gin)f Fm(\()j(\);)42 -b Fi(iter)36 b Fn(6)p Fm(=)23 b Fi(p)l(oints)11 b Fe(:)p -Fi(end)i Fm(\()h(\);)2934 4836 y Fg(+)-8 b(+)3032 4844 -y Fi(iter)13 b Fm(\))42 b Fn(f)249 4944 y Fk(delete)31 -b Fn(\003)p Fi(iter)13 b Fm(;)166 5044 y Fn(g)166 5143 +v 39 w(P)m(olygons)0 4196 y Fm(w)n(as)27 b(dra)n(wn)f(with)i(an)g(arro) +n(w.)p 0 4288 3900 4 v 0 4520 a Fk(659.)94 b(Discard)33 +b(p)s(oin)m(ts)e(and)h(connectors.)95 b Fm(This)28 b(is)f(useful)h(in)g +(the)g(setting)g(functions.)0 4645 y Fn(h)14 b Fm(Discard)27 +b Fi(p)l(oints)39 b Fm(and)28 b Fi(c)l(onne)l(ctors)46 +b Fl(659)14 b Fn(i)24 b(\021)83 4744 y Fk(if)41 b Fm(\()p +Fi(p)l(oints)12 b Fe(:)p Fi(size)f Fm(\()j(\))23 b Fe(>)g +Fm(0\))41 b Fn(f)166 4844 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 +b Fn(h)p Fk(P)m(oin)m(t)33 b Fn(\003i)8 b Fm(::)h Fi(iter)l(ator)k +(iter)37 b Fm(=)22 b Fi(p)l(oints)12 b Fe(:)p Fi(b)l(e)l(gin)f +Fm(\()j(\);)42 b Fi(iter)36 b Fn(6)p Fm(=)23 b Fi(p)l(oints)11 +b Fe(:)p Fi(end)i Fm(\()h(\);)2934 4836 y Fg(+)-8 b(+)3032 +4844 y Fi(iter)13 b Fm(\))42 b Fn(f)249 4943 y Fk(delete)31 +b Fn(\003)p Fi(iter)13 b Fm(;)166 5043 y Fn(g)166 5143 y Fi(p)l(oints)e Fe(:)p Fi(cle)l(ar)j Fm(\()g(\);)83 -5243 y Fn(g)83 5343 y Fk(if)41 b Fm(\()p Fi(c)l(onne)l(ctors)11 +5242 y Fn(g)83 5342 y Fk(if)41 b Fm(\()p Fi(c)l(onne)l(ctors)11 b Fe(:)p Fi(size)g Fm(\()j(\))24 b Fe(>)f Fm(0)o(\))42 b Fi(c)l(onne)l(ctors)11 b Fe(:)p Fi(cle)l(ar)j Fm(\()g(\);)p eop end -%%Page: 184 184 -TeXDict begin 184 183 bop 0 83 a Fm(184)140 b Fl(DISCARD)23 +%%Page: 186 186 +TeXDict begin 186 185 bop 0 83 a Fm(186)140 b Fl(DISCARD)23 b(POINTS)h(AND)f(CONNECTORS)1608 b(3DLDFPR)n(G)142 b Fn(x)p Fm(659)0 263 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections) i(657,)f(666,)g(671,)g(676,)g(and)g(687.)0 462 y Fk(660.)94 @@ -17917,9 +17923,9 @@ b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(p0)16 b Fe(;)e Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(p1)17 b Fm(\);)p eop end -%%Page: 185 185 -TeXDict begin 185 184 bop 0 83 a Fn(x)p Fm(664)140 b -Fl(3DLDFPR)n(G)2385 b(CONSTR)n(UCTOR)140 b Fm(185)0 263 +%%Page: 187 187 +TeXDict begin 187 186 bop 0 83 a Fn(x)p Fm(664)140 b +Fl(3DLDFPR)n(G)2385 b(CONSTR)n(UCTOR)140 b Fm(187)0 263 y Fk(664.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(P)m(ath)14 b Fm(::)8 b Fk(P)m(ath)f Fm(\()p @@ -17969,8 +17975,8 @@ 2928 y Fk(v)m(oid)33 b Fi(set)11 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(p0)17 b Fe(;)d Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fm(\);)p eop end -%%Page: 186 186 -TeXDict begin 186 185 bop 0 83 a Fm(186)140 b Fl(SETTING)24 +%%Page: 188 188 +TeXDict begin 188 187 bop 0 83 a Fm(188)140 b Fl(SETTING)24 b(FUNCTION)2212 b(3DLDFPR)n(G)142 b Fn(x)p Fm(666)0 263 y Fk(666.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -18042,9 +18048,9 @@ b Fm(\()p Fk(string)33 b Fi(c)l(onne)l(ctor)14 b Fe(;)g Fk(b)s(o)s(ol)30 b Fi(cycle)67 b Fe(:)14 b(:)g(:)g Fm(\);)p eop end -%%Page: 187 187 -TeXDict begin 187 186 bop 0 83 a Fn(x)p Fm(669)140 b -Fl(3DLDFPR)n(G)2385 b(CONSTR)n(UCTOR)140 b Fm(187)0 263 +%%Page: 189 189 +TeXDict begin 189 188 bop 0 83 a Fn(x)p Fm(669)140 b +Fl(3DLDFPR)n(G)2385 b(CONSTR)n(UCTOR)140 b Fm(189)0 263 y Fk(669.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(P)m(ath)14 b Fm(::)8 b Fk(P)m(ath)f Fm(\()p @@ -18105,8 +18111,8 @@ 3426 y Fk(v)m(oid)33 b Fi(set)11 b Fm(\()p Fk(string)34 b Fi(c)l(onne)l(ctor)13 b Fe(;)h Fk(b)s(o)s(ol)31 b Fi(cycle)66 b Fe(:)14 b(:)g(:)g Fm(\);)p eop end -%%Page: 188 188 -TeXDict begin 188 187 bop 0 83 a Fm(188)140 b Fl(SETTING)24 +%%Page: 190 190 +TeXDict begin 190 189 bop 0 83 a Fm(190)140 b Fl(SETTING)24 b(FUNCTION)2212 b(3DLDFPR)n(G)142 b Fn(x)p Fm(671)0 263 y Fk(671.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -18162,21 +18168,21 @@ 3077 y(0.)36 b(W)-7 b(e)26 b(don't)g(need)g(an)f(argumen)n(t)g(for)g (whether)g(it's)h(a)g(cycle)f(or)g(not,)h(b)r(ecause)f(if)i(it)f(is,)g (it)g(will)g(ha)n(v)n(e)e(a)i(connector)e(at)i(the)0 -3177 y(end.)p 0 3253 1643 4 v 1738 3285 a Fk(Begin)31 -b(Log)p 2257 3253 V 83 3426 a Fm([)p Fh(LDF)25 b(2002.10.29.)p -Fm(])61 b(BUG)28 b(FIX:)g(No)g(longer)e(pushing)h Fi(\014rst)p +3177 y(end.)p 0 3253 1779 4 v 1874 3285 a Fk(Log)p 2122 +3253 V 83 3426 a Fm([)p Fh(LDF)f(2002.10.29.)p Fm(])61 +b(BUG)28 b(FIX:)g(No)g(longer)e(pushing)h Fi(\014rst)p 1989 3426 26 4 v 30 w(p)l(oint)p 2199 3426 V 31 w(ptr)41 b Fm(on)n(to)27 b Fi(p)l(oints)11 b Fm(.)37 b(Cop)n(ying)27 -b(it)h(instead.)p 0 3518 1678 4 v 1773 3551 a Fk(End)k(Log)p -2222 3518 V 0 3750 a(673.)94 b(Constructor.)0 3874 y -Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h -Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3974 y Fk(P)m(ath)34 -b Fm(\()28 b Fk(P)m(oin)m(t)k Fn(\003)p Fi(\014rst)p -822 3974 26 4 v 30 w(p)l(oint)p 1032 3974 V 31 w(ptr)27 -b Fe(:)14 b(:)g(:)41 b Fm(\))28 b(;)p eop end -%%Page: 189 189 -TeXDict begin 189 188 bop 0 83 a Fn(x)p Fm(674)140 b -Fl(3DLDFPR)n(G)2385 b(CONSTR)n(UCTOR)140 b Fm(189)0 263 +b(it)h(instead.)p 0 3518 3900 4 v 0 3750 a Fk(673.)94 +b(Constructor.)0 3874 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3974 y Fk(P)m(ath)34 b Fm(\()28 b Fk(P)m(oin)m(t)k Fn(\003)p +Fi(\014rst)p 822 3974 26 4 v 30 w(p)l(oint)p 1032 3974 +V 31 w(ptr)27 b Fe(:)14 b(:)g(:)41 b Fm(\))28 b(;)p eop +end +%%Page: 191 191 +TeXDict begin 191 190 bop 0 83 a Fn(x)p Fm(674)140 b +Fl(3DLDFPR)n(G)2385 b(CONSTR)n(UCTOR)140 b Fm(191)0 263 y Fk(674.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(P)m(ath)14 b Fm(::)8 b Fk(P)m(ath)34 b Fm(\()28 @@ -18255,8 +18261,8 @@ b Fn(\003)o Fi(\014rst)p 937 4124 V 30 w(p)l(oint)p 1147 4124 V 31 w(ptr)27 b Fe(:)14 b(:)g(:)41 b Fm(\))28 b(;)p eop end -%%Page: 190 190 -TeXDict begin 190 189 bop 0 83 a Fm(190)140 b Fl(SETTING)24 +%%Page: 192 192 +TeXDict begin 192 191 bop 0 83 a Fm(192)140 b Fl(SETTING)24 b(FUNCTION)2212 b(3DLDFPR)n(G)142 b Fn(x)p Fm(676)0 263 y Fk(676.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -18328,27 +18334,26 @@ (default)h(constructor)d(and)i(then)g(the)g(assignmen)n(t)f(op)r (erator.)0 3874 y(Ma)n(yb)r(e)g(it's)h(not)g(k)n(osher)e(to)h(use)g(\\) p Fn(\003)o Fi(this)35 b Fm(=)23 b Fe(p)o Fm(")28 b(in)f(a)h(cop)n(y)e -(constructor.)p 0 3974 1643 4 v 1738 4006 a Fk(Begin)31 -b(Log)p 2257 3974 V 83 4147 a Fm([)p Fh(LDF)25 b(2002.10.15.)p -Fm(])65 b(Rewrote)31 b(this)h(function.)49 b(The)32 b(old)f(v)n(ersion) -f(caused)h(a)g(memory)g(fault)h(when)g(I)f(tried)h(to)f(use)h(it.)0 -4247 y(I'v)n(e)25 b(tak)n(en)g(co)r(de)g(from)g(the)h(default)g +(constructor.)p 0 3973 1779 4 v 1874 4006 a Fk(Log)p +2122 3973 V 83 4146 a Fm([)p Fh(LDF)f(2002.10.15.)p Fm(])65 +b(Rewrote)31 b(this)h(function.)49 b(The)32 b(old)f(v)n(ersion)f +(caused)h(a)g(memory)g(fault)h(when)g(I)f(tried)h(to)f(use)h(it.)0 +4246 y(I'v)n(e)25 b(tak)n(en)g(co)r(de)g(from)g(the)h(default)g (constructor)e(and)h(the)h(assignmen)n(t)e(op)r(erator)g(and)h(put)h (it)g(here)f(without)h(b)r(othering)0 4346 y(to)d(see)g(what)h(w)n(as)e (causing)h(the)h(problem.)35 b(Probably)22 b(the)h(old)h(v)n(ersion)e (didn't)i(accoun)n(t)f(for)g(c)n(hanges)f(I'v)n(e)h(made)g(in)h(other)0 -4446 y(places,)j(p)r(erhaps)g(in)h(the)g(class)e(de\014nition.)83 -4546 y([)p Fh(LDF)f(2002.11.03.)p Fm(])61 b(Rewrote)27 +4445 y(places,)j(p)r(erhaps)g(in)h(the)g(class)e(de\014nition.)83 +4545 y([)p Fh(LDF)f(2002.11.03.)p Fm(])61 b(Rewrote)27 b(this)h(function.)37 b(No)n(w)27 b(just)i(using)e(the)h(assignmen)n(t) -e(op)r(erator.)p 0 4637 1678 4 v 1773 4670 a Fk(End)32 -b(Log)p 2222 4637 V 0 4795 a Fn(h)14 b Fm(Declare)27 +e(op)r(erator.)p 0 4637 3900 4 v 0 4794 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4894 y Fk(P)m(ath)6 b Fm(\()p Fk(const)33 b(P)m(ath)g Fm(&)p Fe(p)p Fm(\);)p eop end -%%Page: 191 191 -TeXDict begin 191 190 bop 0 83 a Fn(x)p Fm(678)140 b +%%Page: 193 193 +TeXDict begin 193 192 bop 0 83 a Fn(x)p Fm(678)140 b Fl(3DLDFPR)n(G)2155 b(COPY)23 b(CONSTR)n(UCTOR)140 b -Fm(191)0 263 y Fk(678.)0 388 y Fn(h)14 b Fm(De\014ne)28 +Fm(193)0 263 y Fk(678.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(P)m(ath)14 b Fm(::)8 b Fk(P)m(ath)f Fm(\()p Fk(const)32 b(P)m(ath)i Fm(&)p Fe(p)o Fm(\))83 @@ -18366,59 +18371,56 @@ b Fn(\034)i Fi(\015ush)11 b Fm(;)166 1209 y Fk(return)5 b Fm(;)83 1309 y Fn(g)0 1508 y Fk(679.)94 b(Pseudo-constructor)32 b(for)g(dynamic)h(allo)s(cation.)0 1708 y(680.)94 b(Optional)31 -b(p)s(oin)m(ter)h(argumen)m(t.)p 0 1807 1643 4 v 1738 -1840 a(Begin)f(Log)p 2257 1807 V 83 1980 a Fm([)p Fh(LDF)25 -b(2002.10.29.)p Fm(])57 b(Added)23 b(argumen)n(t)g Fk(const)28 -b(P)m(ath)h Fn(\003)o Fe(p)p Fm(.)35 b(If)24 b Fe(p)f -Fn(6)p Fm(=)g(0)o(,)h(the)g(new)f Fk(P)m(ath)29 b Fm(is)23 -b(assigned)f(to)h(using)g(the)g(v)-5 b(alues)0 2080 y(from)27 -b Fe(p)p Fm(.)p 0 2172 1678 4 v 1773 2204 a Fk(End)32 -b(Log)p 2222 2172 V 0 2329 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 2429 y Fk(static)33 b(P)m(ath)g Fn(\003)p -Fi(cr)l(e)l(ate)p 832 2429 26 4 v 31 w(new)p 1003 2429 -V 30 w(p)l(ath)11 b Fm(\()p Fk(const)33 b(P)m(ath)h Fn(\003)o -Fe(p)23 b Fm(=)g(0)o(\);)0 2628 y Fk(681.)0 2752 y Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2852 y Fk(P)m(ath)34 b -Fn(\003)o Fk(P)m(ath)14 b Fm(::)8 b Fi(cr)l(e)l(ate)p -838 2852 V 32 w(new)p 1010 2852 V 30 w(p)l(ath)j Fm(\()p -Fk(const)33 b(P)m(ath)h Fn(\003)o Fe(p)p Fm(\))83 2952 -y Fn(f)166 3051 y Fk(b)s(o)s(ol)d Ff(DEBUG)25 b Fm(=)e -Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 -b Fn(\003)p Fe(=)166 3176 y Fk(if)41 b Fm(\()p Ff(DEBUG)s -Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p -Ff(create_)o(new)-7 b(_path\(\).\\n")23 b Fn(\034)g Fi(\015ush)10 -b Fm(;)166 3300 y Fk(P)m(ath)34 b Fn(\003)o Fe(a)23 b -Fm(=)g Fk(new)33 b Fm(\()p Fk(P)m(ath)7 b Fm(\);)166 -3425 y Fe(a)193 3450 y(~)243 3425 y Fi(on)p 337 3425 -V 31 w(fr)l(e)l(e)p 496 3425 V 31 w(stor)l(e)33 b Fm(=)23 -b Fi(true)10 b Fm(;)166 3524 y Fk(if)41 b Fm(\()p Fe(p)23 -b Fn(6)p Fm(=)g(0\))41 b Fn(f)249 3624 y(\003)p Fe(a)23 -b Fm(=)f Fn(\003)p Fe(p)o Fm(;)166 3724 y Fn(g)166 3823 -y Fk(else)45 b Fn(f)249 3923 y Fe(a)276 3948 y(~)326 -3923 y Fi(\014l)t(l)p 424 3923 V 31 w(dr)l(aw)p 625 3923 -V 31 w(value)35 b Fm(=)22 b(0;)249 4023 y Fe(a)276 4047 -y(~)326 4023 y Fi(dr)l(aw)p 501 4023 V 32 w(c)l(olor)37 -b Fm(=)22 b(0;)249 4122 y Fe(a)276 4147 y(~)326 4122 -y Fi(\014l)t(l)p 424 4122 V 31 w(c)l(olor)37 b Fm(=)23 -b(0)o(;)166 4222 y Fn(g)166 4321 y Fk(if)41 b Fm(\()p -Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p -Fj( )p Ff(create_n)o(ew_)-7 b(path\(\).\\n")23 b Fn(\034)g -Fi(\015ush)11 b Fm(;)166 4421 y Fk(return)33 b Fe(a)p -Fm(;)83 4521 y Fn(g)0 4720 y Fk(682.)94 b(Required)31 -b(P)m(ath)i(argumen)m(t.)p 0 4819 1643 4 v 1738 4852 -a(Begin)e(Log)p 2257 4819 V 83 4993 a Fm([)p Fh(LDF)25 -b(2002.10.29.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 5084 1678 4 v 1773 5117 a Fk(End)k(Log)p 2222 5084 -V 0 5242 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b -Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -5341 y Fk(static)33 b(P)m(ath)g Fn(\003)p Fi(cr)l(e)l(ate)p -832 5341 26 4 v 31 w(new)p 1003 5341 V 30 w(p)l(ath)11 -b Fm(\()p Fk(const)33 b(P)m(ath)h Fm(&)o Fe(p)p Fm(\);)p -eop end -%%Page: 192 192 -TeXDict begin 192 191 bop 0 83 a Fm(192)140 b Fl(REQUIRED)23 +b(p)s(oin)m(ter)h(argumen)m(t.)p 0 1806 1779 4 v 1874 +1839 a(Log)p 2122 1806 V 83 1980 a Fm([)p Fh(LDF)25 b(2002.10.29.)p +Fm(])57 b(Added)23 b(argumen)n(t)g Fk(const)28 b(P)m(ath)h +Fn(\003)o Fe(p)p Fm(.)35 b(If)24 b Fe(p)f Fn(6)p Fm(=)g(0)o(,)h(the)g +(new)f Fk(P)m(ath)29 b Fm(is)23 b(assigned)f(to)h(using)g(the)g(v)-5 +b(alues)0 2079 y(from)27 b Fe(p)p Fm(.)p 0 2171 3900 +4 v 0 2328 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2428 y Fk(static)33 b(P)m(ath)g Fn(\003)p Fi(cr)l(e)l(ate)p +832 2428 26 4 v 31 w(new)p 1003 2428 V 30 w(p)l(ath)11 +b Fm(\()p Fk(const)33 b(P)m(ath)h Fn(\003)o Fe(p)23 b +Fm(=)g(0)o(\);)0 2627 y Fk(681.)0 2752 y Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 2851 y Fk(P)m(ath)34 b Fn(\003)o +Fk(P)m(ath)14 b Fm(::)8 b Fi(cr)l(e)l(ate)p 838 2851 +V 32 w(new)p 1010 2851 V 30 w(p)l(ath)j Fm(\()p Fk(const)33 +b(P)m(ath)h Fn(\003)o Fe(p)p Fm(\))83 2951 y Fn(f)166 +3050 y Fk(b)s(o)s(ol)d Ff(DEBUG)25 b Fm(=)e Fi(false)12 +b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p +Fe(=)166 3175 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h +Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p Ff(create_)o(new)-7 +b(_path\(\).\\n")23 b Fn(\034)g Fi(\015ush)10 b Fm(;)166 +3300 y Fk(P)m(ath)34 b Fn(\003)o Fe(a)23 b Fm(=)g Fk(new)33 +b Fm(\()p Fk(P)m(ath)7 b Fm(\);)166 3424 y Fe(a)193 3449 +y(~)243 3424 y Fi(on)p 337 3424 V 31 w(fr)l(e)l(e)p 496 +3424 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(true)10 b Fm(;)166 +3524 y Fk(if)41 b Fm(\()p Fe(p)23 b Fn(6)p Fm(=)g(0\))41 +b Fn(f)249 3623 y(\003)p Fe(a)23 b Fm(=)f Fn(\003)p Fe(p)o +Fm(;)166 3723 y Fn(g)166 3823 y Fk(else)45 b Fn(f)249 +3922 y Fe(a)276 3947 y(~)326 3922 y Fi(\014l)t(l)p 424 +3922 V 31 w(dr)l(aw)p 625 3922 V 31 w(value)35 b Fm(=)22 +b(0;)249 4022 y Fe(a)276 4047 y(~)326 4022 y Fi(dr)l(aw)p +501 4022 V 32 w(c)l(olor)37 b Fm(=)22 b(0;)249 4121 y +Fe(a)276 4146 y(~)326 4121 y Fi(\014l)t(l)p 424 4121 +V 31 w(c)l(olor)37 b Fm(=)23 b(0)o(;)166 4221 y Fn(g)166 +4321 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 +b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(create_n)o(ew_)-7 +b(path\(\).\\n")23 b Fn(\034)g Fi(\015ush)11 b Fm(;)166 +4420 y Fk(return)33 b Fe(a)p Fm(;)83 4520 y Fn(g)0 4719 +y Fk(682.)94 b(Required)31 b(P)m(ath)i(argumen)m(t.)p +0 4818 1779 4 v 1874 4850 a(Log)p 2122 4818 V 83 4991 +a Fm([)p Fh(LDF)25 b(2002.10.29.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 5083 3900 4 v 0 5240 a Fn(h)14 +b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 5340 y Fk(static)33 b(P)m(ath)g +Fn(\003)p Fi(cr)l(e)l(ate)p 832 5340 26 4 v 31 w(new)p +1003 5340 V 30 w(p)l(ath)11 b Fm(\()p Fk(const)33 b(P)m(ath)h +Fm(&)o Fe(p)p Fm(\);)p eop end +%%Page: 194 194 +TeXDict begin 194 193 bop 0 83 a Fm(194)140 b Fl(REQUIRED)23 b Fk(P)-8 b(A)g(TH)24 b Fl(AR)n(GUMENT)1821 b(3DLDFPR)n(G)142 b Fn(x)p Fm(683)0 263 y Fk(683.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 @@ -18439,20 +18441,19 @@ Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(create_n)o(ew_)-7 b(path\(\).\\n")23 b Fn(\034)g Fi(\015ush)11 b Fm(;)166 1359 y Fk(return)33 b Fe(a)p Fm(;)83 1459 -y Fn(g)0 1658 y Fk(684.)94 b(Destructor.)p 0 1734 1643 -4 v 1738 1766 a(Begin)31 b(Log)p 2257 1734 V 83 1907 -a Fm([)p Fh(LDF)25 b(2003.08.27.)p Fm(])70 b(Made)36 -b Fk(virtual)5 b Fm(,)39 b(b)r(ecause)d(GCC)h(with)g(the)f(\\)p -Fj(-Wall)p Fm(")e(option)i(issued)g(the)h(follo)n(wing)e(w)n(arning:)0 -2006 y(\\`class)26 b(P)n(ath')h(has)g(virtual)g(functions)h(but)g -(non-virtual)f(destructor".)p 0 2098 1678 4 v 1773 2131 -a Fk(End)32 b(Log)p 2222 2098 V 0 2256 a Fn(h)14 b Fm(Declare)27 +y Fn(g)0 1658 y Fk(684.)94 b(Destructor.)p 0 1734 1779 +4 v 1874 1766 a(Log)p 2122 1734 V 83 1907 a Fm([)p Fh(LDF)25 +b(2003.08.27.)p Fm(])70 b(Made)36 b Fk(virtual)5 b Fm(,)39 +b(b)r(ecause)d(GCC)h(with)g(the)f(\\)p Fj(-Wall)p Fm(")e(option)i +(issued)g(the)h(follo)n(wing)e(w)n(arning:)0 2006 y(\\`class)26 +b(P)n(ath')h(has)g(virtual)g(functions)h(but)g(non-virtual)f +(destructor".)p 0 2098 3900 4 v 0 2256 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2355 y Fk(virtual)33 b Fn(\030)o Fk(P)m(ath)6 b Fm(\()14 b(\);)p eop end -%%Page: 193 193 -TeXDict begin 193 192 bop 0 83 a Fn(x)p Fm(685)140 b -Fl(3DLDFPR)n(G)2442 b(DESTR)n(UCTOR)140 b Fm(193)0 263 +%%Page: 195 195 +TeXDict begin 195 194 bop 0 83 a Fn(x)p Fm(685)140 b +Fl(3DLDFPR)n(G)2442 b(DESTR)n(UCTOR)140 b Fm(195)0 263 y Fk(685.)94 b Fm(!!)37 b(Mak)n(e)27 b(sure)g(to)g(delete)h(an)n (ything)f(else)g(that)h(I)g(allo)r(cate)f(dynamically!)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h @@ -18533,21 +18534,20 @@ Fm(\()14 b(\),)39 b(or)c(other)g(destructors)g(directly)-7 b(.)61 b(But)37 b(a)e(named)0 4696 y(function)28 b(suc)n(h)f(as)g Fi(cle)l(ar)14 b Fm(\()g(\))28 b(can)g(serv)n(e)e(the)i(same)f(purp)r -(ose.)p 0 4800 1643 4 v 1738 4833 a Fk(Begin)k(Log)p -2257 4800 V 83 4974 a Fm([)p Fh(LDF)25 b(2002.10.07.)p -Fm(])59 b(Added)26 b(co)r(de)f(for)g(deallo)r(cating)f(the)i(memory)e -(allo)r(cated)h(for)g Fi(dr)l(aw)p 2885 4974 26 4 v 31 -w(c)l(olor)40 b Fm(and)25 b Fi(\014l)t(l)p 3382 4974 -V 31 w(c)l(olor)14 b Fm(,)26 b(if)g(an)n(y)-7 b(.)p 0 -5066 1678 4 v 1773 5098 a Fk(End)32 b(Log)p 2222 5066 -V 83 5198 a Fm(??)42 b(I)29 b(tried)g(calling)g Fn(\030)p -Fk(P)m(ath)6 b Fm(\()14 b(\))29 b(inside)g Fk(P)m(ath)36 -b Fm(:)k Fi(cle)l(ar)14 b Fm(\()g(\),)30 b(but)g(I)f(got)g(a)f(memory)h -(fault.)42 b(Don't)29 b(kno)n(w)g(wh)n(y)-7 b(.)41 b(TO)29 -b(DO:)0 5297 y(T)-7 b(ry)27 b(to)h(\014nd)g(out.)36 b(Ho)n(w)n(ev)n -(er,)26 b(this)i(isn't)g(urgen)n(t.)p eop end -%%Page: 194 194 -TeXDict begin 194 193 bop 0 83 a Fm(194)140 b Fl(CLEAR)2697 +(ose.)p 0 4800 1779 4 v 1874 4832 a Fk(Log)p 2122 4800 +V 83 4973 a Fm([)p Fh(LDF)e(2002.10.07.)p Fm(])59 b(Added)26 +b(co)r(de)f(for)g(deallo)r(cating)f(the)i(memory)e(allo)r(cated)h(for)g +Fi(dr)l(aw)p 2885 4973 26 4 v 31 w(c)l(olor)40 b Fm(and)25 +b Fi(\014l)t(l)p 3382 4973 V 31 w(c)l(olor)14 b Fm(,)26 +b(if)g(an)n(y)-7 b(.)p 0 5065 3900 4 v 83 5197 a(??)42 +b(I)29 b(tried)g(calling)g Fn(\030)p Fk(P)m(ath)6 b Fm(\()14 +b(\))29 b(inside)g Fk(P)m(ath)36 b Fm(:)k Fi(cle)l(ar)14 +b Fm(\()g(\),)30 b(but)g(I)f(got)g(a)f(memory)h(fault.)42 +b(Don't)29 b(kno)n(w)g(wh)n(y)-7 b(.)41 b(TO)29 b(DO:)0 +5297 y(T)-7 b(ry)27 b(to)h(\014nd)g(out.)36 b(Ho)n(w)n(ev)n(er,)26 +b(this)i(isn't)g(urgen)n(t.)p eop end +%%Page: 196 196 +TeXDict begin 196 195 bop 0 83 a Fm(196)140 b Fl(CLEAR)2697 b(3DLDFPR)n(G)142 b Fn(x)p Fm(686)0 263 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 363 y Fk(virtual)33 b(v)m(oid)f Fi(cle)l(ar)14 @@ -18596,23 +18596,22 @@ 3003 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Path::cl)o(ear)-7 b(\(\).\\n")r Fm(;)83 3102 y Fn(g)0 3302 y Fk(688.)94 -b(Get)32 b(cop)m(y)-8 b(.)p 0 3401 1643 4 v 1738 3434 -a(Begin)31 b(Log)p 2257 3401 V 83 3574 a Fm([)p Fh(LDF)25 -b(2002.11.03.)p Fm(])61 b(Made)27 b Fk(virtual)6 b Fm(.)37 -b(Changed)26 b Fk(dynamic)p 2012 3574 29 5 v 41 w(cast)5 -b Fm(\()14 b(\))28 b(to)g Fk(static)p 2656 3574 V 40 -w(cast)6 b Fm(\()14 b(\).)37 b(This)28 b(ma)n(y)f(not)g(w)n(ork.)83 -3674 y([)p Fh(LDF)e(2003.01.29.)p Fm(])61 b(It)28 b(seems)f(to)h(w)n +b(Get)32 b(cop)m(y)-8 b(.)p 0 3400 1779 4 v 1874 3433 +a(Log)p 2122 3400 V 83 3574 a Fm([)p Fh(LDF)25 b(2002.11.03.)p +Fm(])61 b(Made)27 b Fk(virtual)6 b Fm(.)37 b(Changed)26 +b Fk(dynamic)p 2012 3574 29 5 v 41 w(cast)5 b Fm(\()14 +b(\))28 b(to)g Fk(static)p 2656 3574 V 40 w(cast)6 b +Fm(\()14 b(\).)37 b(This)28 b(ma)n(y)f(not)g(w)n(ork.)83 +3673 y([)p Fh(LDF)e(2003.01.29.)p Fm(])61 b(It)28 b(seems)f(to)h(w)n (ork.)35 b(A)n(t)28 b(least,)f(I)h(ha)n(v)n(en't)f(had)g(an)n(y)g -(problems)g(with)h(it.)p 0 3766 1678 4 v 1773 3798 a -Fk(End)k(Log)p 2222 3766 V 0 3923 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 4023 y Fk(virtual)33 b(Shap)s(e)f -Fn(\003)p Fi(get)p 830 4023 26 4 v 30 w(c)l(opy)13 b +(problems)g(with)h(it.)p 0 3765 3900 4 v 0 3922 a Fn(h)14 +b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 4022 y Fk(virtual)33 b(Shap)s(e)f +Fn(\003)p Fi(get)p 830 4022 26 4 v 30 w(c)l(opy)13 b Fm(\()h(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 195 195 -TeXDict begin 195 194 bop 0 83 a Fn(x)p Fm(689)140 b -Fl(3DLDFPR)n(G)2561 b(GET)24 b(COPY)140 b Fm(195)0 263 +%%Page: 197 197 +TeXDict begin 197 196 bop 0 83 a Fn(x)p Fm(689)140 b +Fl(3DLDFPR)n(G)2561 b(GET)24 b(COPY)140 b Fm(197)0 263 y Fk(689.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Shap)s(e)32 b Fn(\003)p Fk(P)m(ath)14 b Fm(::)8 @@ -18666,8 +18665,8 @@ 5045 y Fk(virtual)33 b(v)m(oid)f Fi(set)p 707 5045 V 31 w(dr)l(aw)p 908 5045 V 31 w(c)l(olor)14 b Fm(\()p Fk(const)33 b(Color)f Fn(\003)o Fe(c)p Fm(\);)p eop end -%%Page: 196 196 -TeXDict begin 196 195 bop 0 83 a Fm(196)140 b Fk(COLOR)23 +%%Page: 198 198 +TeXDict begin 198 197 bop 0 83 a Fm(198)140 b Fk(COLOR)23 b Fl(POINTER)g(VERSION)1900 b(3DLDFPR)n(G)142 b Fn(x)p Fm(698)0 263 y Fk(698.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 @@ -18722,10 +18721,10 @@ b(v)m(oid)f Fi(set)p 707 4597 V 31 w(dash)p 898 4597 V 31 w(p)l(attern)11 b Fm(\()p Fk(const)32 b(string)i Fe(s)23 b Fm(=)f Ff("")t Fm(\);)p eop end -%%Page: 197 197 -TeXDict begin 197 196 bop 0 83 a Fn(x)p Fm(705)140 b +%%Page: 199 199 +TeXDict begin 199 198 bop 0 83 a Fn(x)p Fm(705)140 b Fl(3DLDFPR)n(G)2219 b(SET)24 b(D)n(ASH)g(P)-6 b(A)g(TTERN)140 -b Fm(197)0 263 y Fk(705.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fm(199)0 263 y Fk(705.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(P)m(ath)14 b Fm(::)8 b Fi(set)p 662 487 26 4 v 30 w(dash)p 852 487 @@ -18746,38 +18745,37 @@ b(Set)34 b(connectors.)95 b Fm([)p Fh(LDF)26 b(2003.02.08.)p Fm(])62 b(TO)29 b(DO:)g(Ov)n(erload)e(with)j(a)e(v)n(ersion)g(taking)h (a)f Fk(v)m(ector)6 b Fn(h)p Fk(string)g Fn(i)30 b Fm(as)0 -2430 y(its)e(argumen)n(t.)36 b(argumen)n(ts.)p 0 2529 -1643 4 v 1738 2562 a Fk(Begin)31 b(Log)p 2257 2529 V -83 2702 a Fm([)p Fh(LDF)25 b(2003.02.08.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 2794 1678 4 v 1773 2827 a Fk(End)k(Log)p -2222 2794 V 0 2952 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +2430 y(its)e(argumen)n(t.)36 b(argumen)n(ts.)p 0 2528 +1779 4 v 1874 2561 a Fk(Log)p 2122 2528 V 83 2702 a Fm([)p +Fh(LDF)25 b(2003.02.08.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 2794 3900 4 v 0 2951 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3051 y Fk(virtual)33 b(v)m(oid)f Fi(set)p 707 3051 26 +3050 y Fk(virtual)33 b(v)m(oid)f Fi(set)p 707 3050 26 4 v 31 w(c)l(onne)l(ctors)10 b Fm(\()p Fk(const)33 b(string)g Fe(s)23 b Fm(=)g Ff("..")s Fm(\);)0 3250 y Fk(709.)0 -3375 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h -Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3475 y Fk(v)m(oid)33 -b(P)m(ath)14 b Fm(::)8 b Fi(set)p 662 3475 V 30 w(c)l(onne)l(ctors)j +3374 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h +Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3474 y Fk(v)m(oid)33 +b(P)m(ath)14 b Fm(::)8 b Fi(set)p 662 3474 V 30 w(c)l(onne)l(ctors)j Fm(\()p Fk(const)33 b(string)g Fe(s)p Fm(\))83 3574 y -Fn(f)166 3674 y Fi(c)l(onne)l(ctors)11 b Fe(:)p Fi(cle)l(ar)j +Fn(f)166 3673 y Fi(c)l(onne)l(ctors)11 b Fe(:)p Fi(cle)l(ar)j Fm(\()g(\);)166 3773 y Fi(c)l(onne)l(ctors)d Fe(:)p Fi(push)p -749 3773 V 31 w(b)l(ack)j Fm(\()p Fe(s)p Fm(\);)83 3873 +749 3773 V 31 w(b)l(ack)j Fm(\()p Fe(s)p Fm(\);)83 3872 y Fn(g)0 4072 y Fk(710.)94 b(T)-8 b(ransformations.)95 b Fm([)p Fh(LDF)26 b(2002.11.03.)p Fm(])60 b(All)28 b(of)g(the)g (transformations)d(return)i(a)g Fk(T)-8 b(ransform)6 -b Fm(,)27 b(so)g(that)h(the)0 4172 y(same)f Fk(T)-8 b(ransform)33 +b Fm(,)27 b(so)g(that)h(the)0 4171 y(same)f Fk(T)-8 b(ransform)33 b Fm(can)27 b(b)r(e)h(applied)g(to)f(m)n(ultiple)i(ob)5 b(jects)27 b(b)n(y)g(c)n(haining)g(expressions.)0 4371 y Fk(711.)94 b(A\016ne)32 b(transformations.)0 4570 y(712.)94 -b(Rotation.)0 4770 y(713.)g(Rotation)31 b(around)i(the)f(main)f(axes.)0 +b(Rotation.)0 4769 y(713.)g(Rotation)31 b(around)i(the)f(main)f(axes.)0 4894 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h -Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4994 y Fk(virtual)33 +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4993 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(r)l(otate)10 b Fm(\()p Fk(const)33 b(real)g Fe(x;)14 b Fk(const)32 b(real)h Fe(y)26 b Fm(=)c(0)p Fe(;)14 b Fk(const)32 b(real)h Fe(z)26 b Fm(=)d(0)o(\);)p eop end -%%Page: 198 198 -TeXDict begin 198 197 bop 0 83 a Fm(198)140 b Fl(R)n(OT)-6 +%%Page: 200 200 +TeXDict begin 200 199 bop 0 83 a Fm(200)140 b Fl(R)n(OT)-6 b(A)g(TION)23 b(AR)n(OUND)g(THE)g(MAIN)h(AXES)1612 b(3DLDFPR)n(G)142 b Fn(x)p Fm(714)0 263 y Fk(714.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 @@ -18793,180 +18791,178 @@ b(v)m(ersion.)95 b Fm(Declared)42 b(in)h Fj(transfor.web)p Fm(.)77 b(Must)43 b(b)r(e)h(de\014ned)f(here,)j(b)r(ecause)c Fk(P)m(ath)49 b Fm(is)42 b(an)0 1508 y(incomplete)28 -b(t)n(yp)r(e)g(there.)p 0 1608 1643 4 v 1738 1640 a Fk(Begin)j(Log)p -2257 1608 V 83 1781 a Fm([)p Fh(LDF)25 b(2003.05.02.)p -Fm(])67 b(Changed)34 b(name)f(of)h(this)h(function)f(from)g -Fi(r)l(otate)p 2343 1781 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 -b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 -1881 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 +b(t)n(yp)r(e)g(there.)p 0 1607 1779 4 v 1874 1640 a Fk(Log)p +2122 1607 V 83 1780 a Fm([)p Fh(LDF)d(2003.05.02.)p Fm(])67 +b(Changed)34 b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p +2343 1780 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f +Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 +1880 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)83 1980 y([)p Fh(LDF)25 b(2003.07.06.)p Fm(])61 b(Changed,)27 b(so)g(that)h Fi(is)p 1454 1980 V 31 w(line)l(ar)14 b Fm(\()g(\))28 b(is)f(used,)h(instead)f(of)h Fi(get)p 2590 1980 V 31 w(line)p 2752 1980 V 31 w(switch)11 b Fm(\()j(\).)p 0 -2072 1678 4 v 1773 2105 a Fk(End)32 b(Log)p 2222 2072 -V 0 2229 a Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 -b Fm(functions)j Fl(125)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2329 y Fk(T)-8 b(ransform)33 b(T)-8 b(ransform)14 b Fm(::)8 -b Fi(r)l(otate)j Fm(\()p Fk(const)33 b(P)m(ath)g Fm(&)p -Fe(p;)14 b Fk(const)32 b(real)g Fi(angle)12 b Fm(\))83 -2429 y Fn(f)166 2528 y Fk(if)41 b Fm(\()p Fn(:)p Fe(p)q(:)p -Fi(is)p 480 2528 26 4 v 31 w(line)l(ar)14 b Fm(\()g(\)\))42 -b Fn(f)249 2628 y Fi(c)l(err)71 b Fn(\034)57 b Ff("ERROR!)p -Fj( )p Ff(In)p Fj( )p Ff(Transf)o(or)o(m)-6 b(::rotate\(Path,)p -Fj( )p Ff(r)o(ea)o(l\))g(.\\n")60 b Fn(\034)415 2727 -y Ff("Path)p Fj( )p Ff(is)p Fj( )p Ff(not)p Fj( )p Ff(lin)o(ear)o(.)-6 -b Fj( )p Ff(Returning)p Fj( )p Ff(INVA)o(LI)o(D_)g(TRANSFORM.\\n\\n")n -Fm(;)249 2827 y Fk(return)33 b Ff(INVALID_TRANSFORM)m -Fm(;)166 2927 y Fn(g)166 3051 y Fk(T)-8 b(ransform)33 -b Fe(t)p Fm(;)166 3176 y Fe(t:)p Fi(r)l(otate)11 b Fm(\()p -Fe(p:)p Fi(get)p 645 3176 V 30 w(p)l(oint)i Fm(\(0)o(\))p -Fe(;)h(p:)p Fi(get)p 1179 3176 V 31 w(last)p 1335 3176 -V 31 w(p)l(oint)e Fm(\()i(\))p Fe(;)g Fi(angle)e Fm(\);)166 -3275 y Fk(return)33 b Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p -Fm(=)23 b Fe(t)p Fm(\);)83 3375 y Fn(g)p eop end -%%Page: 199 199 -TeXDict begin 199 198 bop 0 83 a Fn(x)p Fm(717)140 b +2071 3900 4 v 0 2229 a Fn(h)g Fm(De\014ne)28 b Fk(T)-8 +b(ransform)33 b Fm(functions)j Fl(125)15 b Fn(i)23 b +Fm(+)p Fn(\021)83 2328 y Fk(T)-8 b(ransform)33 b(T)-8 +b(ransform)14 b Fm(::)8 b Fi(r)l(otate)j Fm(\()p Fk(const)33 +b(P)m(ath)g Fm(&)p Fe(p;)14 b Fk(const)32 b(real)g Fi(angle)12 +b Fm(\))83 2428 y Fn(f)166 2527 y Fk(if)41 b Fm(\()p +Fn(:)p Fe(p)q(:)p Fi(is)p 480 2527 26 4 v 31 w(line)l(ar)14 +b Fm(\()g(\)\))42 b Fn(f)249 2627 y Fi(c)l(err)71 b Fn(\034)57 +b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Transf)o(or)o(m)-6 +b(::rotate\(Path,)p Fj( )p Ff(r)o(ea)o(l\))g(.\\n")60 +b Fn(\034)415 2727 y Ff("Path)p Fj( )p Ff(is)p Fj( )p +Ff(not)p Fj( )p Ff(lin)o(ear)o(.)-6 b Fj( )p Ff(Returning)p +Fj( )p Ff(INVA)o(LI)o(D_)g(TRANSFORM.\\n\\n")n Fm(;)249 +2826 y Fk(return)33 b Ff(INVALID_TRANSFORM)m Fm(;)166 +2926 y Fn(g)166 3050 y Fk(T)-8 b(ransform)33 b Fe(t)p +Fm(;)166 3175 y Fe(t:)p Fi(r)l(otate)11 b Fm(\()p Fe(p:)p +Fi(get)p 645 3175 V 30 w(p)l(oint)i Fm(\(0)o(\))p Fe(;)h(p:)p +Fi(get)p 1179 3175 V 31 w(last)p 1335 3175 V 31 w(p)l(oint)e +Fm(\()i(\))p Fe(;)g Fi(angle)e Fm(\);)166 3275 y Fk(return)33 +b Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p Fm(=)23 b Fe(t)p +Fm(\);)83 3374 y Fn(g)p eop end +%%Page: 201 201 +TeXDict begin 201 200 bop 0 83 a Fn(x)p Fm(717)140 b Fl(3DLDFPR)n(G)2282 b Fk(POINT)24 b Fl(VERSION)141 b -Fm(199)0 263 y Fk(717.)94 b(P)m(oin)m(t)39 b(v)m(ersion.)94 +Fm(201)0 263 y Fk(717.)94 b(P)m(oin)m(t)39 b(v)m(ersion.)94 b Fm(Declared)33 b(in)g Fj(points.web)p Fm(.)48 b(Must)34 b(b)r(e)f(de\014ned)g(here,)h(b)r(ecause)f Fk(P)m(ath)39 b Fm(is)32 b(an)h(incomplete)0 363 y(t)n(yp)r(e)28 b(there.)p -0 462 1643 4 v 1738 495 a Fk(Begin)j(Log)p 2257 462 V -83 635 a Fm([)p Fh(LDF)25 b(2003.05.02.)p Fm(])67 b(Changed)34 +0 461 1779 4 v 1874 494 a Fk(Log)p 2122 461 V 83 635 +a Fm([)p Fh(LDF)d(2003.05.02.)p Fm(])67 b(Changed)34 b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p 2343 635 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 -735 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 -b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 827 1678 -4 v 1773 859 a Fk(End)g(Log)p 2222 827 V 0 984 a Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1084 y Fk(T)-8 -b(ransform)33 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(r)l(otate)j -Fm(\()p Fk(const)32 b(P)m(ath)i Fm(&)o Fe(p;)14 b Fk(const)33 -b(real)f Fi(angle)11 b Fm(\))83 1183 y Fn(f)166 1283 -y Fk(if)41 b Fm(\()p Fn(:)p Fe(p)q(:)p Fi(get)p 525 1283 -26 4 v 30 w(line)p 686 1283 V 31 w(switch)12 b Fm(\()i(\)\))42 -b Fn(f)249 1382 y Fi(c)l(err)75 b Fn(\034)62 b Ff("ERROR!)p -Fj( )p Ff(In)p Fj( )p Ff(Point)o(::r)o(o)-6 b(tate\(Path,)p -Fj( )p Ff(real\))o(.\\)o(n")60 b Fn(\034)415 1482 y Ff("Path)p -Fj( )p Ff(is)p Fj( )p Ff(not)p Fj( )p Ff(a)p Fj( )p Ff(l)o(ine)o(.)-6 -b Fj( )p Ff(Returning)p Fj( )p Ff(INVA)o(LI)o(D_)g(TRANSFORM.\\n\\n")n -Fm(;)249 1582 y Fk(return)33 b Ff(INVALID_TRANSFORM)m -Fm(;)166 1681 y Fn(g)166 1806 y Fk(P)m(oin)m(t)g Fi(pt0)39 -b Fm(=)23 b Fe(p)o(:)p Fi(get)p 835 1806 V 31 w(p)l(oint)12 -b Fm(\(0\);)166 1905 y Fk(P)m(oin)m(t)33 b Fi(pt1)39 -b Fm(=)23 b Fe(p)o(:)p Fi(get)p 835 1905 V 31 w(p)l(oint)12 -b Fm(\(1\);)166 2030 y Fk(return)33 b Fi(r)l(otate)11 -b Fm(\()p Fi(pt0)16 b Fe(;)e Fi(pt1)i Fe(;)e Fi(angle)d -Fm(\);)83 2130 y Fn(g)0 2329 y Fk(718.)94 b(P)m(ath)33 -b(v)m(ersions.)0 2528 y(719.)94 b(P)m(oin)m(t)32 b(argumen)m(ts.)p -0 2627 1643 4 v 1738 2660 a(Begin)f(Log)p 2257 2627 V -83 2801 a Fm([)p Fh(LDF)25 b(2002.4.7.)p Fm(])60 b(Added)29 -b(default)f(v)-5 b(alue)27 b(for)g Fi(angle)39 b Fn(\021)23 -b Fm(180.)83 2900 y([)p Fh(LDF)i(2003.05.02.)p Fm(])67 -b(Changed)34 b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p -2343 2900 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f +734 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 +b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 826 3900 +4 v 0 983 a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +1083 y Fk(T)-8 b(ransform)33 b(P)m(oin)m(t)14 b Fm(::)8 +b Fi(r)l(otate)j Fm(\()p Fk(const)32 b(P)m(ath)i Fm(&)o +Fe(p;)14 b Fk(const)33 b(real)f Fi(angle)11 b Fm(\))83 +1182 y Fn(f)166 1282 y Fk(if)41 b Fm(\()p Fn(:)p Fe(p)q(:)p +Fi(get)p 525 1282 26 4 v 30 w(line)p 686 1282 V 31 w(switch)12 +b Fm(\()i(\)\))42 b Fn(f)249 1382 y Fi(c)l(err)75 b Fn(\034)62 +b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Point)o(::r)o(o)-6 +b(tate\(Path,)p Fj( )p Ff(real\))o(.\\)o(n")60 b Fn(\034)415 +1481 y Ff("Path)p Fj( )p Ff(is)p Fj( )p Ff(not)p Fj( )p +Ff(a)p Fj( )p Ff(l)o(ine)o(.)-6 b Fj( )p Ff(Returning)p +Fj( )p Ff(INVA)o(LI)o(D_)g(TRANSFORM.\\n\\n")n Fm(;)249 +1581 y Fk(return)33 b Ff(INVALID_TRANSFORM)m Fm(;)166 +1681 y Fn(g)166 1805 y Fk(P)m(oin)m(t)g Fi(pt0)39 b Fm(=)23 +b Fe(p)o(:)p Fi(get)p 835 1805 V 31 w(p)l(oint)12 b Fm(\(0\);)166 +1905 y Fk(P)m(oin)m(t)33 b Fi(pt1)39 b Fm(=)23 b Fe(p)o(:)p +Fi(get)p 835 1905 V 31 w(p)l(oint)12 b Fm(\(1\);)166 +2029 y Fk(return)33 b Fi(r)l(otate)11 b Fm(\()p Fi(pt0)16 +b Fe(;)e Fi(pt1)i Fe(;)e Fi(angle)d Fm(\);)83 2129 y +Fn(g)0 2328 y Fk(718.)94 b(P)m(ath)33 b(v)m(ersions.)0 +2527 y(719.)94 b(P)m(oin)m(t)32 b(argumen)m(ts.)p 0 2626 +1779 4 v 1874 2659 a(Log)p 2122 2626 V 83 2799 a Fm([)p +Fh(LDF)25 b(2002.4.7.)p Fm(])60 b(Added)29 b(default)f(v)-5 +b(alue)27 b(for)g Fi(angle)39 b Fn(\021)23 b Fm(180.)83 +2899 y([)p Fh(LDF)i(2003.05.02.)p Fm(])67 b(Changed)34 +b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p +2343 2899 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 -3000 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 -b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 3092 -1678 4 v 1773 3125 a Fk(End)g(Log)p 2222 3092 V 0 3249 -a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h -Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3349 y Fk(virtual)33 -b(T)-8 b(ransform)33 b Fi(r)l(otate)10 b Fm(\()p Fk(const)33 -b(P)m(oin)m(t)g Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)32 +2999 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 +b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 3090 +3900 4 v 0 3248 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3347 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(r)l(otate)10 +b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)p Fi(p0)16 +b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 +b Fe(;)e Fk(const)32 b(real)h Fi(angle)h Fm(=)23 b(180)n(\);)0 +3547 y Fk(720.)94 b Fm(TO)28 b(DO:)g(Change)f(this,)h(so)f(that)h(I)g +(use)g Fk(op)s(erator)5 b Fn(\003)p Fm(=)o(\()p Fk(T)-8 +b(ransform)6 b Fm(\))28 b(here)f(and)h(in)g(the)g(other)g +(transformation)0 3646 y(functions.)0 3771 y Fn(h)14 +b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3870 y Fk(T)-8 b(ransform)33 +b(P)m(ath)14 b Fm(::)8 b Fi(r)l(otate)j Fm(\()p Fk(const)33 +b(P)m(oin)m(t)g Fm(&)o Fi(p0)17 b Fe(;)d Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fe(;)e Fk(const)32 -b(real)h Fi(angle)h Fm(=)23 b(180)n(\);)0 3548 y Fk(720.)94 -b Fm(TO)28 b(DO:)g(Change)f(this,)h(so)f(that)h(I)g(use)g -Fk(op)s(erator)5 b Fn(\003)p Fm(=)o(\()p Fk(T)-8 b(ransform)6 -b Fm(\))28 b(here)f(and)h(in)g(the)g(other)g(transformation)0 -3648 y(functions.)0 3772 y Fn(h)14 b Fm(De\014ne)28 b -Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b -Fm(+)p Fn(\021)83 3872 y Fk(T)-8 b(ransform)33 b(P)m(ath)14 -b Fm(::)8 b Fi(r)l(otate)j Fm(\()p Fk(const)33 b(P)m(oin)m(t)g -Fm(&)o Fi(p0)17 b Fe(;)d Fk(const)32 b(P)m(oin)m(t)h -Fm(&)p Fi(p1)16 b Fe(;)e Fk(const)32 b(real)h Fi(angle)11 -b Fm(\))83 3971 y Fn(f)166 4071 y Fk(T)-8 b(ransform)33 -b Fe(t)p Fm(;)166 4195 y Fe(t:)p Fi(r)l(otate)11 b Fm(\()p -Fi(p0)16 b Fe(;)e Fi(p1)i Fe(;)e Fi(angle)e Fm(\);)166 -4295 y Fk(return)33 b Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p -Fm(=)23 b Fe(t)p Fm(\);)83 4395 y Fn(g)p eop end -%%Page: 200 200 -TeXDict begin 200 199 bop 0 83 a Fm(200)140 b Fk(P)-8 +b(real)h Fi(angle)11 b Fm(\))83 3970 y Fn(f)166 4070 +y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 4194 y Fe(t:)p +Fi(r)l(otate)11 b Fm(\()p Fi(p0)16 b Fe(;)e Fi(p1)i Fe(;)e +Fi(angle)e Fm(\);)166 4294 y Fk(return)33 b Fm(\()p Fn(\003)p +Fi(this)h Fn(\003)p Fm(=)23 b Fe(t)p Fm(\);)83 4393 y +Fn(g)p eop end +%%Page: 202 202 +TeXDict begin 202 201 bop 0 83 a Fm(202)140 b Fk(P)-8 b(A)g(TH)24 b Fl(AR)n(GUMENTS)2192 b(3DLDFPR)n(G)142 b Fn(x)p Fm(721)0 263 y Fk(721.)94 b(P)m(ath)33 b(argumen)m(ts.)p -0 362 1643 4 v 1738 395 a(Begin)e(Log)p 2257 362 V 83 -536 a Fm([)p Fh(LDF)25 b(2002.4.7.)p Fm(])60 b(Added)29 -b(default)f(v)-5 b(alue)27 b(for)g Fi(angle)39 b Fn(\021)23 -b Fm(180.)83 635 y([)p Fh(LDF)i(2002.11.03.)p Fm(])61 -b(Got)28 b(rid)f(of)h(lo)r(cal)f Fk(P)m(oin)m(ts)32 b -Fi(p0)44 b Fm(and)28 b Fi(p1)16 b Fm(.)83 735 y([)p Fh(LDF)25 -b(2003.05.02.)p Fm(])67 b(Changed)34 b(name)f(of)h(this)h(function)f -(from)g Fi(r)l(otate)p 2343 735 26 4 v 30 w(ar)l(ound)13 -b Fm(\()h(\))35 b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 -b(This)34 b(function)h(no)n(w)0 834 y(o)n(v)n(erloads)25 -b Fi(r)l(otate)10 b Fm(\()k(\))28 b(with)g(three)g Fk(real)k -Fm(argumen)n(ts.)83 934 y([)p Fh(LDF)25 b(2003.07.13.)p -Fm(])61 b(Changed,)27 b(so)g(that)h Fi(is)p 1454 934 -V 31 w(line)l(ar)14 b Fm(\()g(\))28 b(is)f(used)h(instead)f(of)h(c)n -(hec)n(king)e(the)i(return)f(v)-5 b(alue)28 b(of)0 1034 -y Fi(get)p 109 1034 V 31 w(line)p 271 1034 V 31 w(switch)11 -b Fm(\()j(\).)36 b(Also,)25 b Fi(get)p 984 1034 V 30 -w(last)p 1139 1034 V 31 w(p)l(oint)12 b Fm(\()j(\))24 -b(passed)f(as)h(the)g(second)g(argumen)n(t)f(to)g Fi(r)l(otate)11 -b Fm(\()j(\),)25 b(instead)f(of)g Fi(get)p 3517 1034 -V 31 w(p)l(oint)12 b Fm(\(1\).)p 0 1126 1678 4 v 1773 -1158 a Fk(End)32 b(Log)p 2222 1126 V 0 1283 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 1382 y Fk(T)-8 b(ransform)33 -b Fi(r)l(otate)11 b Fm(\()p Fk(const)32 b(P)m(ath)i Fm(&)p -Fe(p)o(;)14 b Fk(const)33 b(real)f Fi(angle)i Fm(=)23 -b(180)o(\);)0 1582 y Fk(722.)0 1706 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 1806 y Fk(T)-8 b(ransform)33 b(P)m(ath)14 -b Fm(::)8 b Fi(r)l(otate)j Fm(\()p Fk(const)33 b(P)m(ath)h -Fm(&)o Fe(p;)14 b Fk(const)32 b(real)h Fi(angle)11 b -Fm(\))83 1905 y Fn(f)166 2005 y Fk(if)41 b Fm(\()p Fn(:)p -Fe(p)q(:)p Fi(is)p 480 2005 26 4 v 31 w(line)l(ar)14 -b Fm(\()g(\)\))42 b Fn(f)249 2105 y Fi(c)l(err)76 b Fn(\034)63 -b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Path::)o(ro)o(t)-6 -b(ate\(Path,)p Fj( )p Ff(real\).)o(\\n")61 b Fn(\034)415 -2204 y Ff("Path)p Fj( )p Ff(is)p Fj( )p Ff(not)p Fj( )p -Ff(a)p Fj( )p Ff(l)o(ine)o(.)-6 b Fj( )p Ff(Returning)p -Fj( )p Ff(INVA)o(LI)o(D_)g(TRANSFORM.\\n\\n")n Fm(;)249 -2304 y Fk(return)33 b Ff(INVALID_TRANSFORM)m Fm(;)166 -2404 y Fn(g)166 2503 y Fk(return)g Fi(r)l(otate)11 b -Fm(\()p Fe(p:)p Fi(get)p 890 2503 V 30 w(p)l(oint)i Fm(\(0)o(\))p -Fe(;)h(p:)p Fi(get)p 1424 2503 V 31 w(last)p 1580 2503 -V 31 w(p)l(oint)e Fm(\()i(\))p Fe(;)g Fi(angle)e Fm(\);)83 -2603 y Fn(g)0 2802 y Fk(723.)94 b(Scale.)h Fm([)p Fh(LDF)26 -b(2002.12.20.)p Fm(])61 b(TO)27 b(DO:)g(Mak)n(e)g(all)g(of)h(the)g -(transformations)e Fk(virtual)5 b Fm(!)0 2927 y Fn(h)14 -b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3026 y Fk(T)-8 b(ransform)33 -b Fi(sc)l(ale)11 b Fm(\()p Fk(real)33 b Fe(x)q(;)14 b -Fk(real)32 b Fe(y)26 b Fm(=)c(1)p Fe(;)14 b Fk(real)32 -b Fe(z)26 b Fm(=)d(1\);)0 3226 y Fk(724.)0 3350 y Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3450 y Fk(T)-8 b(ransform)33 -b(P)m(ath)14 b Fm(::)8 b Fi(sc)l(ale)k Fm(\()p Fk(real)33 -b Fe(x;)14 b Fk(real)33 b Fe(y)r(;)14 b Fk(real)33 b -Fe(z)s Fm(\))83 3549 y Fn(f)166 3649 y Fk(T)-8 b(ransform)33 -b Fe(t)p Fm(;)166 3773 y Fe(t:)p Fi(sc)l(ale)11 b Fm(\()p -Fe(x)q(;)j(y)s(;)g(z)s Fm(\);)166 3873 y Fk(return)33 -b Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p Fm(=)23 b Fe(t)p -Fm(\);)83 3973 y Fn(g)0 4172 y Fk(725.)94 b(Shear.)0 -4297 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h -Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4396 y Fk(T)-8 -b(ransform)33 b Fi(she)l(ar)14 b Fm(\()p Fk(real)33 b -Fi(xy)11 b Fe(;)j Fk(real)33 b Fi(xz)k Fm(=)22 b(0)p -Fe(;)14 b Fk(real)32 b Fi(yx)37 b Fm(=)23 b(0)o Fe(;)14 -b Fk(real)33 b Fi(yz)k Fm(=)23 b(0)p Fe(;)14 b Fk(real)32 -b Fi(zx)37 b Fm(=)22 b(0)p Fe(;)14 b Fk(real)32 b Fi(zy)j -Fm(=)23 b(0)o(\);)p eop end -%%Page: 201 201 -TeXDict begin 201 200 bop 0 83 a Fn(x)p Fm(726)140 b -Fl(3DLDFPR)n(G)2701 b(SHEAR)140 b Fm(201)0 263 y Fk(726.)0 +0 362 1779 4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm([)p +Fh(LDF)25 b(2002.4.7.)p Fm(])60 b(Added)29 b(default)f(v)-5 +b(alue)27 b(for)g Fi(angle)39 b Fn(\021)23 b Fm(180.)83 +635 y([)p Fh(LDF)i(2002.11.03.)p Fm(])61 b(Got)28 b(rid)f(of)h(lo)r +(cal)f Fk(P)m(oin)m(ts)32 b Fi(p0)44 b Fm(and)28 b Fi(p1)16 +b Fm(.)83 734 y([)p Fh(LDF)25 b(2003.05.02.)p Fm(])67 +b(Changed)34 b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p +2343 734 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f +Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 +834 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 +b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)83 933 y([)p +Fh(LDF)25 b(2003.07.13.)p Fm(])61 b(Changed,)27 b(so)g(that)h +Fi(is)p 1454 933 V 31 w(line)l(ar)14 b Fm(\()g(\))28 +b(is)f(used)h(instead)f(of)h(c)n(hec)n(king)e(the)i(return)f(v)-5 +b(alue)28 b(of)0 1033 y Fi(get)p 109 1033 V 31 w(line)p +271 1033 V 31 w(switch)11 b Fm(\()j(\).)36 b(Also,)25 +b Fi(get)p 984 1033 V 30 w(last)p 1139 1033 V 31 w(p)l(oint)12 +b Fm(\()j(\))24 b(passed)f(as)h(the)g(second)g(argumen)n(t)f(to)g +Fi(r)l(otate)11 b Fm(\()j(\),)25 b(instead)f(of)g Fi(get)p +3517 1033 V 31 w(p)l(oint)12 b Fm(\(1\).)p 0 1125 3900 +4 v 0 1282 a Fn(h)i Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1382 y Fk(T)-8 +b(ransform)33 b Fi(r)l(otate)11 b Fm(\()p Fk(const)32 +b(P)m(ath)i Fm(&)p Fe(p)o(;)14 b Fk(const)33 b(real)f +Fi(angle)i Fm(=)23 b(180)o(\);)0 1581 y Fk(722.)0 1706 +y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h +Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1805 y Fk(T)-8 +b(ransform)33 b(P)m(ath)14 b Fm(::)8 b Fi(r)l(otate)j +Fm(\()p Fk(const)33 b(P)m(ath)h Fm(&)o Fe(p;)14 b Fk(const)32 +b(real)h Fi(angle)11 b Fm(\))83 1905 y Fn(f)166 2004 +y Fk(if)41 b Fm(\()p Fn(:)p Fe(p)q(:)p Fi(is)p 480 2004 +26 4 v 31 w(line)l(ar)14 b Fm(\()g(\)\))42 b Fn(f)249 +2104 y Fi(c)l(err)76 b Fn(\034)63 b Ff("ERROR!)p Fj( )p +Ff(In)p Fj( )p Ff(Path::)o(ro)o(t)-6 b(ate\(Path,)p Fj( )p +Ff(real\).)o(\\n")61 b Fn(\034)415 2204 y Ff("Path)p +Fj( )p Ff(is)p Fj( )p Ff(not)p Fj( )p Ff(a)p Fj( )p Ff(l)o(ine)o(.)-6 +b Fj( )p Ff(Returning)p Fj( )p Ff(INVA)o(LI)o(D_)g(TRANSFORM.\\n\\n")n +Fm(;)249 2303 y Fk(return)33 b Ff(INVALID_TRANSFORM)m +Fm(;)166 2403 y Fn(g)166 2503 y Fk(return)g Fi(r)l(otate)11 +b Fm(\()p Fe(p:)p Fi(get)p 890 2503 V 30 w(p)l(oint)i +Fm(\(0)o(\))p Fe(;)h(p:)p Fi(get)p 1424 2503 V 31 w(last)p +1580 2503 V 31 w(p)l(oint)e Fm(\()i(\))p Fe(;)g Fi(angle)e +Fm(\);)83 2602 y Fn(g)0 2801 y Fk(723.)94 b(Scale.)h +Fm([)p Fh(LDF)26 b(2002.12.20.)p Fm(])61 b(TO)27 b(DO:)g(Mak)n(e)g(all) +g(of)h(the)g(transformations)e Fk(virtual)5 b Fm(!)0 +2926 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3026 y Fk(T)-8 +b(ransform)33 b Fi(sc)l(ale)11 b Fm(\()p Fk(real)33 b +Fe(x)q(;)14 b Fk(real)32 b Fe(y)26 b Fm(=)c(1)p Fe(;)14 +b Fk(real)32 b Fe(z)26 b Fm(=)d(1\);)0 3225 y Fk(724.)0 +3349 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h +Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3449 y Fk(T)-8 +b(ransform)33 b(P)m(ath)14 b Fm(::)8 b Fi(sc)l(ale)k +Fm(\()p Fk(real)33 b Fe(x;)14 b Fk(real)33 b Fe(y)r(;)14 +b Fk(real)33 b Fe(z)s Fm(\))83 3549 y Fn(f)166 3648 y +Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 3773 y Fe(t:)p +Fi(sc)l(ale)11 b Fm(\()p Fe(x)q(;)j(y)s(;)g(z)s Fm(\);)166 +3872 y Fk(return)33 b Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p +Fm(=)23 b Fe(t)p Fm(\);)83 3972 y Fn(g)0 4171 y Fk(725.)94 +b(Shear.)0 4296 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4395 y Fk(T)-8 b(ransform)33 b Fi(she)l(ar)14 b Fm(\()p +Fk(real)33 b Fi(xy)11 b Fe(;)j Fk(real)33 b Fi(xz)k Fm(=)22 +b(0)p Fe(;)14 b Fk(real)32 b Fi(yx)37 b Fm(=)23 b(0)o +Fe(;)14 b Fk(real)33 b Fi(yz)k Fm(=)23 b(0)p Fe(;)14 +b Fk(real)32 b Fi(zx)37 b Fm(=)22 b(0)p Fe(;)14 b Fk(real)32 +b Fi(zy)j Fm(=)23 b(0)o(\);)p eop end +%%Page: 203 203 +TeXDict begin 203 202 bop 0 83 a Fn(x)p Fm(726)140 b +Fl(3DLDFPR)n(G)2701 b(SHEAR)140 b Fm(203)0 263 y Fk(726.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(P)m(ath)14 b Fm(::)8 b Fi(she)l(ar)15 @@ -19030,81 +19026,79 @@ b Fm(an)26 b(op)r(eration)f(is)h(applied)f(that)i(causes)e Fk(P)m(oin)m(t)13 b Fm(::)8 b Fi(apply)p 2963 4671 V 33 w(tr)l(ansform)j Fm(\()j(\))26 b(to)g(b)r(e)g(called.)p -0 4775 1643 4 v 1738 4808 a Fk(Begin)31 b(Log)p 2257 -4775 V 83 4949 a Fm([)p Fh(LDF)25 b(2003.01.19.)p Fm(])61 -b(Added)28 b(this)g(section.)p 0 5041 1678 4 v 1773 5073 -a Fk(End)k(Log)p 2222 5041 V eop end -%%Page: 202 202 -TeXDict begin 202 201 bop 0 83 a Fm(202)140 b Fk(REAL)23 +0 4775 1779 4 v 1874 4807 a Fk(Log)p 2122 4775 V 83 4948 +a Fm([)p Fh(LDF)f(2003.01.19.)p Fm(])61 b(Added)28 b(this)g(section.)p +0 5040 3900 4 v eop end +%%Page: 204 204 +TeXDict begin 204 203 bop 0 83 a Fm(204)140 b Fk(REAL)23 b Fl(AR)n(GUMENTS)2191 b(3DLDFPR)n(G)142 b Fn(x)p Fm(733)0 -263 y Fk(733.)94 b(real)32 b(argumen)m(ts.)p 0 362 1643 -4 v 1738 395 a(Begin)f(Log)p 2257 362 V 83 536 a Fm([)p -Fh(LDF)25 b(2003.01.19.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 628 1678 4 v 1773 660 a Fk(End)k(Log)p 2222 628 V 0 -785 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h -Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 884 y Fk(virtual)33 -b(v)m(oid)f Fi(shift)p 761 884 26 4 v 32 w(times)11 b -Fm(\()p Fk(real)33 b Fe(x;)14 b Fk(real)32 b Fe(y)26 -b Fm(=)d(1)o Fe(;)14 b Fk(real)33 b Fe(z)26 b Fm(=)d(1)o(\);)0 -1084 y Fk(734.)0 1208 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 -b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -1308 y Fk(v)m(oid)33 b(P)m(ath)14 b Fm(::)8 b Fi(shift)p -716 1308 V 32 w(times)j Fm(\()p Fk(real)33 b Fe(x;)14 -b Fk(real)32 b Fe(y)s(;)14 b Fk(real)32 b Fe(z)t Fm(\))83 -1407 y Fn(f)166 1507 y Fk(for)h Fm(\()p Fk(v)m(ector)6 -b Fn(h)p Fk(P)m(oin)m(t)33 b Fn(\003i)8 b Fm(::)h Fi(iter)l(ator)k -(iter)37 b Fm(=)22 b Fi(p)l(oints)12 b Fe(:)p Fi(b)l(e)l(gin)f -Fm(\()j(\);)42 b Fi(iter)36 b Fn(6)p Fm(=)23 b Fi(p)l(oints)11 -b Fe(:)p Fi(end)i Fm(\()h(\);)2934 1499 y Fg(+)-8 b(+)3032 -1507 y Fi(iter)13 b Fm(\))249 1607 y(\()p Fn(\003\003)o -Fi(iter)h Fm(\))p Fe(:)p Fi(shift)p 718 1607 V 32 w(times)d -Fm(\()p Fe(x;)j(y)s(;)g(z)s Fm(\);)166 1706 y Fk(return)5 -b Fm(;)83 1806 y Fn(g)0 2005 y Fk(735.)94 b(P)m(oin)m(t)32 -b(argumen)m(t.)p 0 2104 1643 4 v 1738 2137 a(Begin)f(Log)p -2257 2104 V 83 2278 a Fm([)p Fh(LDF)25 b(2003.01.19.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 2370 1678 4 -v 1773 2402 a Fk(End)k(Log)p 2222 2370 V 0 2527 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2626 y Fk(virtual)33 b(v)m(oid)f -Fi(shift)p 761 2626 26 4 v 32 w(times)11 b Fm(\()p Fk(const)33 -b(P)m(oin)m(t)f Fm(&)p Fe(p)p Fm(\);)0 2826 y Fk(736.)0 -2950 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h -Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3050 y Fk(v)m(oid)33 -b(P)m(ath)14 b Fm(::)8 b Fi(shift)p 716 3050 V 32 w(times)j -Fm(\()p Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fe(p)p Fm(\))83 -3149 y Fn(f)166 3249 y Fk(return)h Fi(shift)p 623 3249 -V 32 w(times)11 b Fm(\()p Fe(p:)p Fi(get)p 1060 3249 -V 30 w(x)j Fm(\()g(\))p Fe(;)g(p:)p Fi(get)p 1427 3249 -V 31 w(y)e Fm(\()i(\))p Fe(;)g(p:)p Fi(get)p 1794 3249 -V 30 w(z)h Fm(\()f(\)\);)83 3349 y Fn(g)0 3548 y Fk(737.)94 -b(Applying)32 b(transformations.)0 3747 y(738.)94 b(Multiplying)30 -b(b)m(y)j(a)f(T)-8 b(ransform.)0 3872 y Fn(h)14 b Fm(Declare)27 +263 y Fk(733.)94 b(real)32 b(argumen)m(ts.)p 0 362 1779 +4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm([)p Fh(LDF)25 +b(2003.01.19.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 627 3900 4 v 0 784 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +884 y Fk(virtual)33 b(v)m(oid)f Fi(shift)p 761 884 26 +4 v 32 w(times)11 b Fm(\()p Fk(real)33 b Fe(x;)14 b Fk(real)32 +b Fe(y)26 b Fm(=)d(1)o Fe(;)14 b Fk(real)33 b Fe(z)26 +b Fm(=)d(1)o(\);)0 1083 y Fk(734.)0 1207 y Fn(h)14 b +Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 1307 y Fk(v)m(oid)33 b(P)m(ath)14 +b Fm(::)8 b Fi(shift)p 716 1307 V 32 w(times)j Fm(\()p +Fk(real)33 b Fe(x;)14 b Fk(real)32 b Fe(y)s(;)14 b Fk(real)32 +b Fe(z)t Fm(\))83 1407 y Fn(f)166 1506 y Fk(for)h Fm(\()p +Fk(v)m(ector)6 b Fn(h)p Fk(P)m(oin)m(t)33 b Fn(\003i)8 +b Fm(::)h Fi(iter)l(ator)k(iter)37 b Fm(=)22 b Fi(p)l(oints)12 +b Fe(:)p Fi(b)l(e)l(gin)f Fm(\()j(\);)42 b Fi(iter)36 +b Fn(6)p Fm(=)23 b Fi(p)l(oints)11 b Fe(:)p Fi(end)i +Fm(\()h(\);)2934 1498 y Fg(+)-8 b(+)3032 1506 y Fi(iter)13 +b Fm(\))249 1606 y(\()p Fn(\003\003)o Fi(iter)h Fm(\))p +Fe(:)p Fi(shift)p 718 1606 V 32 w(times)d Fm(\()p Fe(x;)j(y)s(;)g(z)s +Fm(\);)166 1706 y Fk(return)5 b Fm(;)83 1805 y Fn(g)0 +2004 y Fk(735.)94 b(P)m(oin)m(t)32 b(argumen)m(t.)p 0 +2103 1779 4 v 1874 2136 a(Log)p 2122 2103 V 83 2276 a +Fm([)p Fh(LDF)25 b(2003.01.19.)p Fm(])61 b(Added)28 b(this)g(function.) +p 0 2368 3900 4 v 0 2525 a Fn(h)14 b Fm(Declare)27 b +Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 b +Fm(+)p Fn(\021)83 2625 y Fk(virtual)33 b(v)m(oid)f Fi(shift)p +761 2625 26 4 v 32 w(times)11 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)f +Fm(&)p Fe(p)p Fm(\);)0 2824 y Fk(736.)0 2949 y Fn(h)14 +b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3048 y Fk(v)m(oid)33 b(P)m(ath)14 +b Fm(::)8 b Fi(shift)p 716 3048 V 32 w(times)j Fm(\()p +Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fe(p)p Fm(\))83 3148 +y Fn(f)166 3248 y Fk(return)h Fi(shift)p 623 3248 V 32 +w(times)11 b Fm(\()p Fe(p:)p Fi(get)p 1060 3248 V 30 +w(x)j Fm(\()g(\))p Fe(;)g(p:)p Fi(get)p 1427 3248 V 31 +w(y)e Fm(\()i(\))p Fe(;)g(p:)p Fi(get)p 1794 3248 V 30 +w(z)h Fm(\()f(\)\);)83 3347 y Fn(g)0 3547 y Fk(737.)94 +b(Applying)32 b(transformations.)0 3746 y(738.)94 b(Multiplying)30 +b(b)m(y)j(a)f(T)-8 b(ransform.)0 3870 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 3971 y Fk(virtual)33 b(T)-8 b(ransform)33 +b Fm(+)p Fn(\021)83 3970 y Fk(virtual)33 b(T)-8 b(ransform)33 b(op)s(erator)5 b Fn(\003)p Fm(=)o(\()p Fk(const)33 b(T)-8 -b(ransform)33 b Fm(&)o Fe(t)p Fm(\);)0 4171 y Fk(739.)0 -4295 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h -Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4395 y Fk(T)-8 +b(ransform)33 b Fm(&)o Fe(t)p Fm(\);)0 4169 y Fk(739.)0 +4294 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h +Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4393 y Fk(T)-8 b(ransform)33 b(P)m(ath)14 b Fm(::)9 b Fk(op)s(erator)c Fn(\003)p Fm(=)o(\()p Fk(const)33 b(T)-8 b(ransform)33 -b Fm(&)o Fe(t)p Fm(\))83 4494 y Fn(f)166 4594 y Fk(for)g +b Fm(&)o Fe(t)p Fm(\))83 4493 y Fn(f)166 4593 y Fk(for)g Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(P)m(oin)m(t)33 b Fn(\003i)8 b Fm(::)h Fi(iter)l(ator)k(iter)37 b Fm(=)22 b Fi(p)l(oints)12 b Fe(:)p Fi(b)l(e)l(gin)f Fm(\()j(\);)42 b Fi(iter)36 b Fn(6)p Fm(=)23 b Fi(p)l(oints)11 b Fe(:)p Fi(end)i -Fm(\()h(\);)42 b Fi(iter)3074 4586 y Fg(+)-8 b(+)3171 -4594 y Fm(\))42 b(\()p Fn(\003\003)p Fi(iter)13 b Fm(\))23 -b Fn(\003)p Fm(=)g Fe(t)o Fm(;)166 4694 y Fk(return)33 -b Fe(t)p Fm(;)83 4793 y Fn(g)0 4993 y Fk(740.)94 b(Applying)32 -b(transform)g(to)f(p)s(oin)m(ts.)0 5117 y Fn(h)14 b Fm(Declare)27 +Fm(\()h(\);)42 b Fi(iter)3074 4585 y Fg(+)-8 b(+)3171 +4593 y Fm(\))42 b(\()p Fn(\003\003)p Fi(iter)13 b Fm(\))23 +b Fn(\003)p Fm(=)g Fe(t)o Fm(;)166 4692 y Fk(return)33 +b Fe(t)p Fm(;)83 4792 y Fn(g)0 4991 y Fk(740.)94 b(Applying)32 +b(transform)g(to)f(p)s(oin)m(ts.)0 5116 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 5217 y Fk(virtual)33 b(v)m(oid)f -Fi(apply)p 794 5217 V 33 w(tr)l(ansform)10 b Fm(\()15 +b Fm(+)p Fn(\021)83 5215 y Fk(virtual)33 b(v)m(oid)f +Fi(apply)p 794 5215 V 33 w(tr)l(ansform)10 b Fm(\()15 b(\);)p eop end -%%Page: 203 203 -TeXDict begin 203 202 bop 0 83 a Fn(x)p Fm(741)140 b +%%Page: 205 205 +TeXDict begin 205 204 bop 0 83 a Fn(x)p Fm(741)140 b Fl(3DLDFPR)n(G)1399 b(APPL)-6 b(YING)24 b Fk(TRANSF)m(ORM)f -Fl(TO)g Fk(POINTS)141 b Fm(203)0 263 y Fk(741.)0 388 +Fl(TO)g Fk(POINTS)141 b Fm(205)0 263 y Fk(741.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(P)m(ath)14 b Fm(::)8 b Fi(apply)p 749 487 26 4 v 33 @@ -19158,19 +19152,18 @@ h(on)f(the)h(ma)5 b(jor)26 b(axis)g(indicated)i(b)n(y)f(its)h(argumen)n (t)e(\(b)n(y)0 3825 y(default,)i(the)g(z-axis\).)36 b(It)28 b(do)r(es)f(not)h(actually)f(p)r(erform)g(the)h(transformation)e(on)h -(the)h Fk(P)m(ath)6 b Fm(.)p 0 3929 1643 4 v 1738 3961 -a Fk(Begin)31 b(Log)p 2257 3929 V 83 4102 a Fm([)p Fh(LDF)25 -b(2002.11.03.)p Fm(])61 b(Changed)27 b Fk(c)m(har)34 -b Fm(argumen)n(t)27 b(to)g Fk(const)33 b(c)m(har)6 b -Fm(.)p 0 4194 1678 4 v 1773 4226 a Fk(End)32 b(Log)p -2222 4194 V 0 4351 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 -b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4451 y Fk(T)-8 b(ransform)33 b Fi(align)p 724 4451 26 -4 v 32 w(with)p 906 4451 V 31 w(axis)11 b Fm(\()p Fk(const)33 +(the)h Fk(P)m(ath)6 b Fm(.)p 0 3928 1779 4 v 1874 3961 +a Fk(Log)p 2122 3928 V 83 4101 a Fm([)p Fh(LDF)25 b(2002.11.03.)p +Fm(])61 b(Changed)27 b Fk(c)m(har)34 b Fm(argumen)n(t)27 +b(to)g Fk(const)33 b(c)m(har)6 b Fm(.)p 0 4193 3900 4 +v 0 4350 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b +Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4450 y Fk(T)-8 b(ransform)33 b Fi(align)p 724 4450 26 +4 v 32 w(with)p 906 4450 V 31 w(axis)11 b Fm(\()p Fk(const)33 b(c)m(har)h Fi(axis)g Fm(=)23 b Ff('z')s Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 204 204 -TeXDict begin 204 203 bop 0 83 a Fm(204)140 b Fl(NO)23 +%%Page: 206 206 +TeXDict begin 206 205 bop 0 83 a Fm(206)140 b Fl(NO)23 b(ASSIGNMENT)2333 b(3DLDFPR)n(G)142 b Fn(x)p Fm(748)0 263 y Fk(748.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -19198,61 +19191,60 @@ Fk(b)s(o)s(ol)j Fm(argumen)n(t)0 1957 y Fi(assign)34 b Fn(\021)23 b Fi(false)12 b Fm(.)37 b(It)28 b(w)n(on't)f(cause)g(an)n (y)g(harm,)g(though,)g(since)g(it)h(will)g(just)h(call)e(the)h -Fk(const)k Fm(v)n(ersion)26 b(ab)r(o)n(v)n(e.)p 0 2056 -1643 4 v 1738 2089 a Fk(Begin)31 b(Log)p 2257 2056 V -83 2229 a Fm([)p Fh(LDF)25 b(2002.11.03.)p Fm(])61 b(Added)28 -b(this)g(function.)83 2329 y([)p Fh(LDF)d(2003.07.18.)p -Fm(])64 b(Changed,)31 b(so)e(that)i Fi(is)p 1466 2329 -26 4 v 31 w(line)l(ar)14 b Fm(\()g(\))31 b(is)f(used,)h(rather)f(than)g -Fi(get)p 2679 2329 V 31 w(line)p 2841 2329 V 31 w(switch)11 -b Fm(\()k(\).)45 b(Also,)31 b(c)n(hanged)f(the)0 2429 -y(w)n(a)n(y)f Fk(T)-8 b(ransform)37 b Fe(t)30 b Fm(is)h(set.)46 -b(The)31 b(latter)f(c)n(hange)f(w)n(as)h(necessary)-7 -b(,)30 b(b)r(ecause)g(GCC)h(3.3)f(couldn't)g(compile)h(this)g(\014le)g -(the)0 2528 y(w)n(a)n(y)26 b(it)i(w)n(as)f(b)r(efore.)p -0 2620 1678 4 v 1773 2653 a Fk(End)32 b(Log)p 2222 2620 -V 0 2777 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b -Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2877 y Fk(T)-8 b(ransform)33 b Fi(align)p 724 2877 26 -4 v 32 w(with)p 906 2877 V 31 w(axis)11 b Fm(\()p Fk(b)s(o)s(ol)31 +Fk(const)k Fm(v)n(ersion)26 b(ab)r(o)n(v)n(e.)p 0 2055 +1779 4 v 1874 2088 a Fk(Log)p 2122 2055 V 83 2229 a Fm([)p +Fh(LDF)f(2002.11.03.)p Fm(])61 b(Added)28 b(this)g(function.)83 +2328 y([)p Fh(LDF)d(2003.07.18.)p Fm(])64 b(Changed,)31 +b(so)e(that)i Fi(is)p 1466 2328 26 4 v 31 w(line)l(ar)14 +b Fm(\()g(\))31 b(is)f(used,)h(rather)f(than)g Fi(get)p +2679 2328 V 31 w(line)p 2841 2328 V 31 w(switch)11 b +Fm(\()k(\).)45 b(Also,)31 b(c)n(hanged)f(the)0 2428 y(w)n(a)n(y)f +Fk(T)-8 b(ransform)37 b Fe(t)30 b Fm(is)h(set.)46 b(The)31 +b(latter)f(c)n(hange)f(w)n(as)h(necessary)-7 b(,)30 b(b)r(ecause)g(GCC) +h(3.3)f(couldn't)g(compile)h(this)g(\014le)g(the)0 2527 +y(w)n(a)n(y)26 b(it)i(w)n(as)f(b)r(efore.)p 0 2619 3900 +4 v 0 2777 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2876 y Fk(T)-8 b(ransform)33 b Fi(align)p 724 2876 26 +4 v 32 w(with)p 906 2876 V 31 w(axis)11 b Fm(\()p Fk(b)s(o)s(ol)31 b Fi(assign)12 b Fe(;)i Fk(const)32 b(c)m(har)i Fi(axis)g -Fm(=)23 b Ff('z')s Fm(\);)0 3076 y Fk(750.)0 3201 y Fn(h)14 +Fm(=)23 b Ff('z')s Fm(\);)0 3075 y Fk(750.)0 3200 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3300 y Fk(T)-8 b(ransform)33 b(P)m(ath)14 b Fm(::)8 b Fi(align)p 990 3300 V 32 w(with)p 1172 3300 V 32 w(axis)j Fm(\()p Fk(b)s(o)s(ol)31 b Fi(assign)11 b Fe(;)j Fk(const)33 b(c)m(har)h Fi(axis)11 b Fm(\))83 -3400 y Fn(f)166 3499 y Fk(if)41 b Fm(\()p Fn(:)p Fi(is)p +3399 y Fn(f)166 3499 y Fk(if)41 b Fm(\()p Fn(:)p Fi(is)p 414 3499 V 32 w(line)l(ar)14 b Fm(\()g(\)\))42 b Fn(f)249 -3599 y Fi(c)l(err)77 b Fn(\034)65 b Ff("ERROR!)p Fj( )p +3598 y Fi(c)l(err)77 b Fn(\034)65 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Path)o(::a)o(li)-7 b(gn_with_axis\(\).\\n)o(")62 -b Fn(\034)415 3699 y Ff("Path)p Fj( )p Ff(is)p Fj( )p +b Fn(\034)415 3698 y Ff("Path)p Fj( )p Ff(is)p Fj( )p Ff(not)p Fj( )p Ff(lin)o(ear)o(.)-6 b Fj( )p Ff(Returning)p Fj( )p Ff(INVA)o(LI)o(D_)g(TRANSFORM.\\n\\n")n Fm(;)249 3798 y Fk(return)33 b Ff(INVALID_TRANSFORM)m Fm(;)166 -3898 y Fn(g)166 4023 y Fk(T)-8 b(ransform)33 b Fe(t)p -Fm(;)166 4147 y Fe(t:)p Fi(align)p 397 4147 V 32 w(with)p -579 4147 V 31 w(axis)11 b Fm(\()p Fi(get)p 897 4147 V -31 w(p)l(oint)h Fm(\(0\))p Fe(;)i Fi(get)p 1367 4147 -V 31 w(last)p 1523 4147 V 31 w(p)l(oint)e Fm(\()i(\))p -Fe(;)g Fi(axis)e Fm(\);)166 4247 y Fk(if)41 b Fm(\()p +3897 y Fn(g)166 4022 y Fk(T)-8 b(ransform)33 b Fe(t)p +Fm(;)166 4146 y Fe(t:)p Fi(align)p 397 4146 V 32 w(with)p +579 4146 V 31 w(axis)11 b Fm(\()p Fi(get)p 897 4146 V +31 w(p)l(oint)h Fm(\(0\))p Fe(;)i Fi(get)p 1367 4146 +V 31 w(last)p 1523 4146 V 31 w(p)l(oint)e Fm(\()i(\))p +Fe(;)g Fi(axis)e Fm(\);)166 4246 y Fk(if)41 b Fm(\()p Fi(assign)35 b Fn(\021)22 b Fi(false)12 b Fm(\))42 b Fn(f)249 4346 y Fi(c)l(err)75 b Fn(\034)62 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Pat)o(h::)o(a)-6 b(lign_with_axis\(\))o(:\\)o -(n")60 b Fn(\034)415 4446 y Ff("Don't)p Fj( )p Ff(call)p +(n")60 b Fn(\034)415 4445 y Ff("Don't)p Fj( )p Ff(call)p Fj( )p Ff(this)o Fj( )p Ff(fu)o(n)-6 b(ction)p Fj( )p Ff(with)p Fj( )p Ff(the)p Fj( )p Ff(\\)o("a)o(ss)g(ign\\")p -Fj( )p Ff(")60 b Fn(\034)415 4546 y Ff("argument)p Fj( )p +Fj( )p Ff(")60 b Fn(\034)415 4545 y Ff("argument)p Fj( )p Ff(==)p Fj( )p Ff(fal)o(se.)o(\\)-6 b(nIt)p Fj( )p Ff(won't)p Fj( )p Ff(cause)p Fj( )o Ff(an)o(y)p Fj( )g Ff(harm,)p Fj( )p Ff(though.\\n)o(")23 b Fn(\034)h Ff("Continuing.\\n\\n")e -Fn(\034)415 4645 y Fi(\015ush)10 b Fm(;)249 4745 y Fk(return)33 -b Fe(t)p Fm(;)166 4844 y Fn(g)166 4944 y Fk(return)g +Fn(\034)415 4645 y Fi(\015ush)10 b Fm(;)249 4744 y Fk(return)33 +b Fe(t)p Fm(;)166 4844 y Fn(g)166 4943 y Fk(return)g Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p Fm(=)23 b Fe(t)p -Fm(\);)83 5044 y Fn(g)p eop end -%%Page: 205 205 -TeXDict begin 205 204 bop 0 83 a Fn(x)p Fm(751)140 b -Fl(3DLDFPR)n(G)2377 b(F)n(OR)24 b(NON-LINES)140 b Fm(205)0 +Fm(\);)83 5043 y Fn(g)p eop end +%%Page: 207 207 +TeXDict begin 207 206 bop 0 83 a Fn(x)p Fm(751)140 b +Fl(3DLDFPR)n(G)2377 b(F)n(OR)24 b(NON-LINES)140 b Fm(207)0 263 y Fk(751.)94 b(F)-8 b(or)38 b(non-lines.)93 b Fm(\()p Fk(P)m(oin)m(t)33 b Fm(and)g(axis)f(argumen)n(ts\).)50 b([)p Fh(LDF)26 b(2002.11.03.)p Fm(])65 b(This)33 b(function)g(\014nds) @@ -19263,63 +19255,60 @@ (b)n(y)f(the)h Fi(axis)46 b Fm(argumen)n(t,)35 b(and)0 462 y(applies)27 b(it)h(to)g Fn(\003)o Fi(this)12 b Fm(.)37 b Fi(p0)44 b Fm(and)27 b Fi(p1)44 b Fm(are)27 b(not)g(c)n(hanged.)p -0 562 1643 4 v 1738 594 a Fk(Begin)k(Log)p 2257 562 V -83 735 a Fm([)p Fh(LDF)25 b(2002.11.03.)p Fm(])61 b(Changed)27 +0 561 1779 4 v 1874 593 a Fk(Log)p 2122 561 V 83 734 +a Fm([)p Fh(LDF)e(2002.11.03.)p Fm(])61 b(Changed)27 b Fk(P)m(oin)m(t)33 b Fm(argumen)n(ts)26 b(to)i Fk(const)k(P)m(oin)m(t) h Fm(&)27 b(and)h Fk(c)m(har)34 b Fm(argumen)n(t)26 b(to)i -Fk(const)k(c)m(har)6 b Fm(.)p 0 827 1678 4 v 1773 859 -a Fk(End)32 b(Log)p 2222 827 V 0 984 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 1084 y Fk(T)-8 b(ransform)33 b Fi(align)p -724 1084 26 4 v 32 w(with)p 906 1084 V 31 w(axis)11 b -Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(p0)17 b -Fe(;)d Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b -Fe(;)e Fk(const)32 b(c)m(har)i Fi(axis)12 b Fm(\);)0 -1283 y Fk(752.)0 1407 y Fn(h)i Fm(De\014ne)28 b Fk(P)m(ath)34 -b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -1507 y Fk(T)-8 b(ransform)33 b(P)m(ath)14 b Fm(::)8 b -Fi(align)p 990 1507 V 32 w(with)p 1172 1507 V 32 w(axis)j -Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(p0)16 b -Fe(;)e Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(p1)17 b -Fe(;)d Fk(const)32 b(c)m(har)i Fi(axis)g Fm(=)23 b Ff('z')s -Fm(\))83 1607 y Fn(f)166 1706 y Fk(T)-8 b(ransform)33 -b Fe(t)p Fm(;)166 1831 y Fe(t:)p Fi(align)p 397 1831 -V 32 w(with)p 579 1831 V 31 w(axis)11 b Fm(\()p Fi(p0)17 +Fk(const)k(c)m(har)6 b Fm(.)p 0 826 3900 4 v 0 983 a +Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1083 y Fk(T)-8 +b(ransform)33 b Fi(align)p 724 1083 26 4 v 32 w(with)p +906 1083 V 31 w(axis)11 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g +Fm(&)o Fi(p0)17 b Fe(;)d Fk(const)32 b(P)m(oin)m(t)h +Fm(&)p Fi(p1)16 b Fe(;)e Fk(const)32 b(c)m(har)i Fi(axis)12 +b Fm(\);)0 1282 y Fk(752.)0 1407 y Fn(h)i Fm(De\014ne)28 +b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 1506 y Fk(T)-8 b(ransform)33 b(P)m(ath)14 +b Fm(::)8 b Fi(align)p 990 1506 V 32 w(with)p 1172 1506 +V 32 w(axis)j Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o +Fi(p0)16 b Fe(;)e Fk(const)33 b(P)m(oin)m(t)g Fm(&)o +Fi(p1)17 b Fe(;)d Fk(const)32 b(c)m(har)i Fi(axis)g Fm(=)23 +b Ff('z')s Fm(\))83 1606 y Fn(f)166 1706 y Fk(T)-8 b(ransform)33 +b Fe(t)p Fm(;)166 1830 y Fe(t:)p Fi(align)p 397 1830 +V 32 w(with)p 579 1830 V 31 w(axis)11 b Fm(\()p Fi(p0)17 b Fe(;)d Fi(p1)i Fe(;)e Fi(axis)d Fm(\);)166 1930 y Fk(return)33 b Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p Fm(=)23 b Fe(t)p -Fm(\);)83 2030 y Fn(g)0 2229 y Fk(753.)94 b(Adding)32 -b(P)m(oin)m(ts)f(to)h(P)m(aths.)0 2429 y(754.)94 b(With)31 -b(assignmen)m(t.)p 0 2528 1643 4 v 1738 2560 a(Begin)g(Log)p -2257 2528 V 83 2701 a Fm([)p Fh(LDF)25 b(2002.4.6.)p +Fm(\);)83 2029 y Fn(g)0 2229 y Fk(753.)94 b(Adding)32 +b(P)m(oin)m(ts)f(to)h(P)m(aths.)0 2428 y(754.)94 b(With)31 +b(assignmen)m(t.)p 0 2526 1779 4 v 1874 2559 a(Log)p +2122 2526 V 83 2700 a Fm([)p Fh(LDF)25 b(2002.4.6.)p Fm(])59 b(Added)27 b(this)f(function.)37 b(Curren)n(tly)-7 b(,)26 b(it)g(do)r(esn't)h(return)e(a)h Fk(P)m(ath)6 b Fm(.)37 b(If)26 b(it)h(turns)f(out)g(that)g(it)h(w)n(ould)f(b)r(e)0 -2801 y(useful)i(to)f(return)h Fn(\003)o Fi(this)12 b -Fm(,)27 b(I)h(can)f(c)n(hange)g(it.)p 0 2893 1678 4 v -1773 2925 a Fk(End)32 b(Log)p 2222 2893 V 0 3050 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3149 y Fk(v)m(oid)33 b(op)s(erator)t -Fm(+=\()p Fk(const)f(P)m(oin)m(t)h Fm(&)p Fi(pt)12 b -Fm(\);)0 3349 y Fk(755.)0 3473 y Fn(h)i Fm(De\014ne)28 +2799 y(useful)i(to)f(return)h Fn(\003)o Fi(this)12 b +Fm(,)27 b(I)h(can)f(c)n(hange)g(it.)p 0 2891 3900 4 v +0 3048 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3148 y Fk(v)m(oid)33 +b(op)s(erator)t Fm(+=\()p Fk(const)f(P)m(oin)m(t)h Fm(&)p +Fi(pt)12 b Fm(\);)0 3347 y Fk(755.)0 3472 y Fn(h)i Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 3573 y Fk(v)m(oid)33 b(P)m(ath)14 +b Fm(+)p Fn(\021)83 3571 y Fk(v)m(oid)33 b(P)m(ath)14 b Fm(::)8 b Fk(op)s(erator)d Fm(+=)o(\()p Fk(const)33 -b(P)m(oin)m(t)g Fm(&)o Fi(pt)13 b Fm(\))83 3672 y Fn(f)166 -3772 y Fi(p)l(oints)e Fe(:)p Fi(push)p 582 3772 26 4 +b(P)m(oin)m(t)g Fm(&)o Fi(pt)13 b Fm(\))83 3671 y Fn(f)166 +3771 y Fi(p)l(oints)e Fe(:)p Fi(push)p 582 3771 26 4 v 31 w(b)l(ack)j Fm(\()p Fk(P)m(oin)m(t)g Fm(::)8 b Fi(cr)l(e)l(ate)p -1314 3772 V 31 w(new)p 1485 3772 V 31 w(p)l(oint)k Fm(\()p -Fi(pt)h Fm(\)\);)166 3872 y Fk(return)5 b Fm(;)83 3971 -y Fn(g)0 4171 y Fk(756.)94 b(Without)31 b(assignmen)m(t.)p -0 4270 1643 4 v 1738 4303 a(Begin)g(Log)p 2257 4270 V -83 4443 a Fm([)p Fh(LDF)25 b(2002.4.6.)p Fm(])60 b(Added)29 -b(this)e(function.)p 0 4535 1678 4 v 1773 4568 a Fk(End)32 -b(Log)p 2222 4535 V 0 4692 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 4792 y Fk(P)m(ath)34 b(op)s(erator)5 +1314 3771 V 31 w(new)p 1485 3771 V 31 w(p)l(oint)k Fm(\()p +Fi(pt)h Fm(\)\);)166 3870 y Fk(return)5 b Fm(;)83 3970 +y Fn(g)0 4169 y Fk(756.)94 b(Without)31 b(assignmen)m(t.)p +0 4268 1779 4 v 1874 4300 a(Log)p 2122 4268 V 83 4441 +a Fm([)p Fh(LDF)25 b(2002.4.6.)p Fm(])60 b(Added)29 b(this)e(function.) +p 0 4533 3900 4 v 0 4690 a Fn(h)14 b Fm(Declare)27 b +Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 b +Fm(+)p Fn(\021)83 4790 y Fk(P)m(ath)34 b(op)s(erator)5 b Fm(+)o(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(pt)12 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 206 206 -TeXDict begin 206 205 bop 0 83 a Fm(206)140 b Fl(WITHOUT)24 +%%Page: 208 208 +TeXDict begin 208 207 bop 0 83 a Fm(208)140 b Fl(WITHOUT)24 b(ASSIGNMENT)2080 b(3DLDFPR)n(G)142 b Fn(x)p Fm(757)0 263 y Fk(757.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -19333,54 +19322,53 @@ 811 V 31 w(p)l(oint)j Fm(\()p Fi(pt)h Fm(\)\);)166 911 y Fk(return)33 b Fi(p)l(a)11 b Fm(;)83 1010 y Fn(g)0 1209 y Fk(758.)94 b(Adding)32 b(connectors)g(to)f(P)m(aths.)p -0 1309 1643 4 v 1738 1341 a(Begin)g(Log)p 2257 1309 V -83 1482 a Fm([)p Fh(LDF)25 b(2003.02.09.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 1574 1678 4 v 1773 1607 a Fk(End)k(Log)p -2222 1574 V 0 1731 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 -b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -1831 y Fk(v)m(oid)33 b(op)s(erator)t Fm(+=\()p Fk(const)f(string)h -Fe(s)p Fm(\);)0 2030 y Fk(759.)0 2155 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 2254 y Fk(v)m(oid)33 b(P)m(ath)14 -b Fm(::)8 b Fk(op)s(erator)d Fm(+=)o(\()p Fk(const)33 -b(string)g Fe(s)p Fm(\))83 2354 y Fn(f)166 2453 y Fi(c)l(onne)l(ctors) -11 b Fe(:)p Fi(push)p 749 2453 26 4 v 31 w(b)l(ack)j -Fm(\()p Fe(s)p Fm(\);)166 2553 y Fk(return)5 b Fm(;)83 -2653 y Fn(g)0 2852 y Fk(760.)94 b(Concatenating)32 b(P)m(aths.)0 -3051 y(761.)94 b(V)-8 b(ersions)31 b(using)g(\\&".)0 -3250 y(762.)94 b(With)31 b(assignmen)m(t.)94 b Fm(This)28 -b(function)g(app)r(ends)g(the)g Fk(P)m(ath)33 b Fm(argumen)n(t)27 -b Fi(p)l(a)39 b Fm(to)27 b Fn(\003)p Fi(this)11 b Fm(.)p -0 3350 1643 4 v 1738 3382 a Fk(Begin)31 b(Log)p 2257 -3350 V 83 3523 a Fm([)p Fh(LDF)25 b(2002.4.6.)p Fm(])60 -b(Added)29 b(this)e(function.)83 3623 y([)p Fh(LDF)e(2002.11.03.)p -Fm(])61 b(Made)27 b(non-)p Fk(inline)s Fm(.)p 0 3715 -1678 4 v 1773 3747 a Fk(End)32 b(Log)p 2222 3715 V 0 -3872 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h -Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3971 y Fk(v)m(oid)33 -b(op)s(erator)t Fm(&=\()p Fk(const)f(P)m(ath)i Fm(&)o -Fi(p)l(a)12 b Fm(\);)0 4171 y Fk(763.)0 4295 y Fn(h)i -Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 4395 y Fk(v)m(oid)33 b(P)m(ath)14 -b Fm(::)8 b Fk(op)s(erator)d Fm(&=)o(\()p Fk(const)33 -b(P)m(ath)h Fm(&)o Fi(p)l(a)11 b Fm(\))p Fn(f)249 4494 -y Fk(if)41 b Fm(\()p Fi(is)p 442 4494 26 4 v 32 w(cycle)11 -b Fm(\()j(\))19 b Fn(_)g Fi(p)l(a)11 b Fe(:)p Fi(is)p -1004 4494 V 31 w(cycle)h Fm(\()i(\)\))166 b Fe(=)p Fn(\003)41 -b Fm(Return)28 b(if)g(either)f(one)g(of)h(the)g Fk(P)m(aths)33 -b Fm(is)28 b(a)f(cycle.)50 b Fn(\003)p Fe(=)249 4594 -y Fn(f)332 4694 y Fi(c)l(err)76 b Fn(\034)64 b Ff("ERROR!)p -Fj( )p Ff(In)p Fj( )p Ff(Path)o(::o)o(pe)-7 b(rator&\(Path&\).\\n")61 -b Fn(\034)498 4793 y Ff("One)p Fj( )p Ff(of)p Fj( )p -Ff(the)p Fj( )p Ff(Paths)o Fj( )p Ff(i)o(s)-6 b Fj( )p -Ff(a)p Fj( )p Ff(cycle.)p Fj( )p Ff(Can't)p Fj( )o Ff(co)o(nc)g -(atenate.\\n")22 b Fn(\034)i Ff("Returning)p Fj( )p Ff(*thi)o(s.)o -(\\n\\)-7 b(n")t Fm(;)332 4893 y Fk(return)5 b Fm(;)249 -4993 y Fn(g)249 5117 y Fk(string)33 b Fi(last)p 654 5117 -V 31 w(c)l(onne)l(ctor)13 b Fm(;)p eop end -%%Page: 207 207 -TeXDict begin 207 206 bop 0 83 a Fn(x)p Fm(764)140 b -Fl(3DLDFPR)n(G)2239 b(WITH)24 b(ASSIGNMENT)141 b Fm(207)0 +0 1308 1779 4 v 1874 1341 a(Log)p 2122 1308 V 83 1481 +a Fm([)p Fh(LDF)25 b(2003.02.09.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 1573 3900 4 v 0 1730 a Fn(h)14 +b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 1830 y Fk(v)m(oid)33 b(op)s(erator)t +Fm(+=\()p Fk(const)f(string)h Fe(s)p Fm(\);)0 2029 y +Fk(759.)0 2154 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 +b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2253 y Fk(v)m(oid)33 b(P)m(ath)14 b Fm(::)8 b Fk(op)s(erator)d +Fm(+=)o(\()p Fk(const)33 b(string)g Fe(s)p Fm(\))83 2353 +y Fn(f)166 2453 y Fi(c)l(onne)l(ctors)11 b Fe(:)p Fi(push)p +749 2453 26 4 v 31 w(b)l(ack)j Fm(\()p Fe(s)p Fm(\);)166 +2552 y Fk(return)5 b Fm(;)83 2652 y Fn(g)0 2851 y Fk(760.)94 +b(Concatenating)32 b(P)m(aths.)0 3050 y(761.)94 b(V)-8 +b(ersions)31 b(using)g(\\&".)0 3250 y(762.)94 b(With)31 +b(assignmen)m(t.)94 b Fm(This)28 b(function)g(app)r(ends)g(the)g +Fk(P)m(ath)33 b Fm(argumen)n(t)27 b Fi(p)l(a)39 b Fm(to)27 +b Fn(\003)p Fi(this)11 b Fm(.)p 0 3348 1779 4 v 1874 +3381 a Fk(Log)p 2122 3348 V 83 3522 a Fm([)p Fh(LDF)25 +b(2002.4.6.)p Fm(])60 b(Added)29 b(this)e(function.)83 +3621 y([)p Fh(LDF)e(2002.11.03.)p Fm(])61 b(Made)27 b(non-)p +Fk(inline)s Fm(.)p 0 3713 3900 4 v 0 3870 a Fn(h)14 b +Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3970 y Fk(v)m(oid)33 b(op)s(erator)t +Fm(&=\()p Fk(const)f(P)m(ath)i Fm(&)o Fi(p)l(a)12 b Fm(\);)0 +4169 y Fk(763.)0 4294 y Fn(h)i Fm(De\014ne)28 b Fk(P)m(ath)34 +b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4393 y Fk(v)m(oid)33 b(P)m(ath)14 b Fm(::)8 b Fk(op)s(erator)d +Fm(&=)o(\()p Fk(const)33 b(P)m(ath)h Fm(&)o Fi(p)l(a)11 +b Fm(\))p Fn(f)249 4493 y Fk(if)41 b Fm(\()p Fi(is)p +442 4493 26 4 v 32 w(cycle)11 b Fm(\()j(\))19 b Fn(_)g +Fi(p)l(a)11 b Fe(:)p Fi(is)p 1004 4493 V 31 w(cycle)h +Fm(\()i(\)\))166 b Fe(=)p Fn(\003)41 b Fm(Return)28 b(if)g(either)f +(one)g(of)h(the)g Fk(P)m(aths)33 b Fm(is)28 b(a)f(cycle.)50 +b Fn(\003)p Fe(=)249 4593 y Fn(f)332 4692 y Fi(c)l(err)76 +b Fn(\034)64 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Path)o(::o)o(pe)-7 +b(rator&\(Path&\).\\n")61 b Fn(\034)498 4792 y Ff("One)p +Fj( )p Ff(of)p Fj( )p Ff(the)p Fj( )p Ff(Paths)o Fj( )p +Ff(i)o(s)-6 b Fj( )p Ff(a)p Fj( )p Ff(cycle.)p Fj( )p +Ff(Can't)p Fj( )o Ff(co)o(nc)g(atenate.\\n")22 b Fn(\034)i +Ff("Returning)p Fj( )p Ff(*thi)o(s.)o(\\n\\)-7 b(n")t +Fm(;)332 4892 y Fk(return)5 b Fm(;)249 4991 y Fn(g)249 +5116 y Fk(string)33 b Fi(last)p 654 5116 V 31 w(c)l(onne)l(ctor)13 +b Fm(;)p eop end +%%Page: 209 209 +TeXDict begin 209 208 bop 0 83 a Fn(x)p Fm(764)140 b +Fl(3DLDFPR)n(G)2239 b(WITH)24 b(ASSIGNMENT)141 b Fm(209)0 263 y Fk(764.)94 b Fm([)p Fh(LDF)26 b(2002.4.6.)p Fm(])63 b(If)31 b(there)g(isn't)h(an)e(explicit)i(connector)d(for)i(ev)n(ery)f (pair)g(of)h Fk(P)m(oin)m(ts)36 b Fm(in)31 b Fi(this)3283 @@ -19406,26 +19394,25 @@ Fm(])57 b(If)25 b(the)h Fk(P)m(aths)k Fm(don't)25 b(touc)n(h,)h(they)f (are)f(joined)h(using)f(\\..")35 b(instead)25 b(of)g(\\&".)35 b(This)25 b(mimics)g(the)0 1185 y(b)r(eha)n(vior)h(of)i(MET)-7 -b(AF)n(ONT.)p 0 1260 1643 4 v 1738 1293 a Fk(Begin)31 -b(Log)p 2257 1260 V 83 1434 a Fm([)p Fh(LDF)25 b(2002.11.03.)p -Fm(])61 b(No)n(w)27 b(using)h Fn(\003)o Fm(\()p Fi(p)l(oints)12 +b(AF)n(ONT.)p 0 1260 1779 4 v 1874 1293 a Fk(Log)p 2122 +1260 V 83 1434 a Fm([)p Fh(LDF)25 b(2002.11.03.)p Fm(])61 +b(No)n(w)27 b(using)h Fn(\003)o Fm(\()p Fi(p)l(oints)12 b Fe(:)p Fi(b)l(ack)i Fm(\()g(\)\))28 b(instead)f(of)h Fi(get)p 2262 1434 26 4 v 31 w(p)l(oint)12 b Fm(\()p Fi(p)l(oints)g Fe(:)p Fi(size)f Fm(\()j(\))19 b Fn(\000)f -Fm(1)o(\).)p 0 1526 1678 4 v 1773 1558 a Fk(End)32 b(Log)p -2222 1526 V 0 1683 a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 -b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -1782 y Fk(if)41 b Fm(\()p Fn(\003)p Fm(\()p Fi(p)l(oints)12 -b Fe(:)p Fi(b)l(ack)i Fm(\()g(\)\))23 b Fn(6)p Fm(=)g -Fi(p)l(a)11 b Fe(:)p Fi(get)p 1145 1782 26 4 v 31 w(p)l(oint)h -Fm(\(0\)\))42 b Fn(f)166 1882 y Fi(c)l(err)54 b Fn(\034)41 -b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Path)o(::o)o(pe)-7 -b(rator&\(Path&\).")39 b Fn(\034)i Ff("Paths)p Fj( )p -Ff(don't)p Fj( )p Ff(tou)o(ch)o(.\\)-6 b(n")44 b Fn(\034)332 -1982 y Ff("Using)p Fj( )p Ff(\\"..\\")p Fj( )p Ff(to)o -Fj( )p Ff(jo)o(i)-6 b(n)p Fj( )p Ff(them)p Fj( )p Ff(instead)p -Fj( )p Ff(o)o(f)p Fj( )o Ff(\\")g(&\\".\\n")24 b Fn(\034)f -Fi(\015ush)10 b Fm(;)166 2081 y Fi(c)l(onne)l(ctors)h +Fm(1)o(\).)p 0 1526 3900 4 v 0 1683 a Fn(h)c Fm(De\014ne)28 +b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 1782 y Fk(if)41 b Fm(\()p Fn(\003)p +Fm(\()p Fi(p)l(oints)12 b Fe(:)p Fi(b)l(ack)i Fm(\()g(\)\))23 +b Fn(6)p Fm(=)g Fi(p)l(a)11 b Fe(:)p Fi(get)p 1145 1782 +26 4 v 31 w(p)l(oint)h Fm(\(0\)\))42 b Fn(f)166 1882 +y Fi(c)l(err)54 b Fn(\034)41 b Ff("ERROR!)p Fj( )p Ff(In)p +Fj( )p Ff(Path)o(::o)o(pe)-7 b(rator&\(Path&\).")39 b +Fn(\034)i Ff("Paths)p Fj( )p Ff(don't)p Fj( )p Ff(tou)o(ch)o(.\\)-6 +b(n")44 b Fn(\034)332 1982 y Ff("Using)p Fj( )p Ff(\\"..\\")p +Fj( )p Ff(to)o Fj( )p Ff(jo)o(i)-6 b(n)p Fj( )p Ff(them)p +Fj( )p Ff(instead)p Fj( )p Ff(o)o(f)p Fj( )o Ff(\\")g(&\\".\\n")24 +b Fn(\034)f Fi(\015ush)10 b Fm(;)166 2081 y Fi(c)l(onne)l(ctors)h Fe(:)p Fi(push)p 749 2081 V 31 w(b)l(ack)j Fm(\()p Ff("..")s Fm(\);)83 2181 y Fn(g)83 2280 y Fk(else)45 b Fi(c)l(onne)l(ctors)11 b Fe(:)p Fi(push)p 864 2280 V 31 w(b)l(ack)j Fm(\()p @@ -19463,18 +19450,17 @@ 11 b Fe(:)p Fi(push)p 749 3302 V 31 w(b)l(ack)j Fm(\()p Fn(\003)p Fi(iter)f Fm(\);)83 3401 y Fn(g)83 3501 y Fk(return)5 b Fm(;)37 b Fn(g)0 3700 y Fk(767.)94 b(Without)31 b(assignmen)m(t.)p -0 3799 1643 4 v 1738 3832 a(Begin)g(Log)p 2257 3799 V -83 3973 a Fm([)p Fh(LDF)25 b(2002.4.6.)p Fm(])60 b(Added)29 -b(this)e(function.)38 b(It)28 b(b)r(eha)n(v)n(es)e(the)i(w)n(a)n(y)f -(the)h(op)r(erator)e(\\&")g(do)r(es)h(in)h(MET)-7 b(AF)n(ONT.)p -0 4065 1678 4 v 1773 4097 a Fk(End)32 b(Log)p 2222 4065 -V 0 4222 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b -Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +0 3799 1779 4 v 1874 3831 a(Log)p 2122 3799 V 83 3972 +a Fm([)p Fh(LDF)25 b(2002.4.6.)p Fm(])60 b(Added)29 b(this)e(function.) +38 b(It)28 b(b)r(eha)n(v)n(es)e(the)i(w)n(a)n(y)f(the)h(op)r(erator)e +(\\&")g(do)r(es)h(in)h(MET)-7 b(AF)n(ONT.)p 0 4064 3900 +4 v 0 4221 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4321 y Fk(P)m(ath)34 b(op)s(erator)5 b Fm(&)o(\()p Fk(const)33 b(P)m(ath)g Fm(&)p Fi(p)l(a)11 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 208 208 -TeXDict begin 208 207 bop 0 83 a Fm(208)140 b Fl(WITHOUT)24 +%%Page: 210 210 +TeXDict begin 210 209 bop 0 83 a Fm(210)140 b Fl(WITHOUT)24 b(ASSIGNMENT)2080 b(3DLDFPR)n(G)142 b Fn(x)p Fm(768)0 263 y Fk(768.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -19501,47 +19487,46 @@ 1708 y(but)30 b(it)g(issues)f(an)g(error)e(message)h(and)h(stops)g(to)h (w)n(ait)f(for)f(a)h(resp)r(onse.)42 b(Using)29 b(this)h(function)g (can)f(help)g(to)h(a)n(v)n(oid)d(suc)n(h)0 1807 y(problems.)p -0 1907 1643 4 v 1738 1939 a Fk(Begin)k(Log)p 2257 1907 -V 83 2080 a Fm([)p Fh(LDF)25 b(2002.4.7.)p Fm(])60 b(Added)29 -b(this)e(function.)p 0 2172 1678 4 v 1773 2204 a Fk(End)32 -b(Log)p 2222 2172 V 0 2329 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 2429 y Fk(P)m(ath)34 b Fi(app)l(end)14 -b Fm(\()p Fk(const)33 b(P)m(ath)g Fm(&)p Fi(p)l(a)11 -b Fe(;)j Fk(string)33 b Fi(c)l(onne)l(ctor)j Fm(=)23 -b Ff("--")s Fe(;)14 b Fk(b)s(o)s(ol)30 b Fi(assign)35 -b Fm(=)22 b Fi(true)10 b Fm(\);)0 2628 y Fk(770.)0 2752 -y Fn(h)k Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h -Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2852 y Fk(P)m(ath)34 -b(P)m(ath)14 b Fm(::)8 b Fi(app)l(end)15 b Fm(\()p Fk(const)32 -b(P)m(ath)i Fm(&)o Fi(p)l(a)12 b Fe(;)i Fk(string)33 -b Fi(c)l(onne)l(ctor)13 b Fe(;)h Fk(b)s(o)s(ol)31 b Fi(assign)11 -b Fm(\))p Fn(f)27 b Fk(P)m(ath)34 b Fe(r)s Fm(\()p Fn(\003)p -Fi(this)11 b Fm(\);)249 2952 y Fk(string)35 b Fi(last)p -656 2952 26 4 v 31 w(c)l(onne)l(ctor)13 b Fm(;)166 b -Fe(=)p Fn(\003)42 b Fm([)p Fh(LDF)25 b(2002.4.6.)p Fm(])62 -b(If)29 b(there)g(isn't)h(an)f(explicit)g(connector)g(for)f(ev)n(ery)g -(pair)h(of)415 3051 y Fk(P)m(oin)m(ts)k Fm(in)c Fi(this)931 -3076 y Fe(~)981 3051 y Fi(p)l(oints)12 b Fm(,)28 b(then)h(w)n(e)e(ha)n -(v)n(e)g(to)h(\014ll)h(up)f Fi(c)l(onne)l(ctors)39 b -Fm(so)28 b(that)g(there)g(are)f(enough.)38 b(Otherwise,)415 -3151 y(the)28 b(\\&")e(will)i(b)r(e)g(at)g(the)g(wrong)e(place.)36 -b(W)-7 b(e)28 b(don't)g(ha)n(v)n(e)f(to)g(w)n(orry)f(ab)r(out)h(the)h -(connectors)e(for)i Fi(p)l(a)11 b Fm(.)51 b Fn(\003)p -Fe(=)249 3275 y Fk(if)41 b Fm(\()p Fe(r)s(:)p Fi(c)l(onne)l(ctors)11 -b Fe(:)p Fi(size)g Fm(\()j(\))24 b Fn(\021)e Fm(0\))42 -b Fi(last)p 1433 3275 V 30 w(c)l(onne)l(ctor)37 b Fm(=)22 -b Ff("--")s Fm(;)249 3375 y Fk(else)45 b Fi(last)p 577 -3375 V 31 w(c)l(onne)l(ctor)36 b Fm(=)23 b Fe(r)r(:)p -Fi(c)l(onne)l(ctors)11 b Fe(:)p Fi(b)l(ack)j Fm(\()g(\);)249 -3475 y Fk(while)31 b Fm(\()p Fe(r)s(:)p Fi(c)l(onne)l(ctors)11 -b Fe(:)p Fi(size)g Fm(\()j(\))24 b Fe(<)f(r)r(:)p Fi(p)l(oints)12 +0 1906 1779 4 v 1874 1938 a Fk(Log)p 2122 1906 V 83 2079 +a Fm([)p Fh(LDF)e(2002.4.7.)p Fm(])60 b(Added)29 b(this)e(function.)p +0 2171 3900 4 v 0 2328 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2428 y Fk(P)m(ath)34 b Fi(app)l(end)14 b Fm(\()p Fk(const)33 +b(P)m(ath)g Fm(&)p Fi(p)l(a)11 b Fe(;)j Fk(string)33 +b Fi(c)l(onne)l(ctor)j Fm(=)23 b Ff("--")s Fe(;)14 b +Fk(b)s(o)s(ol)30 b Fi(assign)35 b Fm(=)22 b Fi(true)10 +b Fm(\);)0 2627 y Fk(770.)0 2752 y Fn(h)k Fm(De\014ne)28 +b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 2851 y Fk(P)m(ath)34 b(P)m(ath)14 +b Fm(::)8 b Fi(app)l(end)15 b Fm(\()p Fk(const)32 b(P)m(ath)i +Fm(&)o Fi(p)l(a)12 b Fe(;)i Fk(string)33 b Fi(c)l(onne)l(ctor)13 +b Fe(;)h Fk(b)s(o)s(ol)31 b Fi(assign)11 b Fm(\))p Fn(f)27 +b Fk(P)m(ath)34 b Fe(r)s Fm(\()p Fn(\003)p Fi(this)11 +b Fm(\);)249 2951 y Fk(string)35 b Fi(last)p 656 2951 +26 4 v 31 w(c)l(onne)l(ctor)13 b Fm(;)166 b Fe(=)p Fn(\003)42 +b Fm([)p Fh(LDF)25 b(2002.4.6.)p Fm(])62 b(If)29 b(there)g(isn't)h(an)f +(explicit)g(connector)g(for)f(ev)n(ery)g(pair)h(of)415 +3050 y Fk(P)m(oin)m(ts)k Fm(in)c Fi(this)931 3075 y Fe(~)981 +3050 y Fi(p)l(oints)12 b Fm(,)28 b(then)h(w)n(e)e(ha)n(v)n(e)g(to)h +(\014ll)h(up)f Fi(c)l(onne)l(ctors)39 b Fm(so)28 b(that)g(there)g(are)f +(enough.)38 b(Otherwise,)415 3150 y(the)28 b(\\&")e(will)i(b)r(e)g(at)g +(the)g(wrong)e(place.)36 b(W)-7 b(e)28 b(don't)g(ha)n(v)n(e)f(to)g(w)n +(orry)f(ab)r(out)h(the)h(connectors)e(for)i Fi(p)l(a)11 +b Fm(.)51 b Fn(\003)p Fe(=)249 3275 y Fk(if)41 b Fm(\()p +Fe(r)s(:)p Fi(c)l(onne)l(ctors)11 b Fe(:)p Fi(size)g +Fm(\()j(\))24 b Fn(\021)e Fm(0\))42 b Fi(last)p 1433 +3275 V 30 w(c)l(onne)l(ctor)37 b Fm(=)22 b Ff("--")s +Fm(;)249 3374 y Fk(else)45 b Fi(last)p 577 3374 V 31 +w(c)l(onne)l(ctor)36 b Fm(=)23 b Fe(r)r(:)p Fi(c)l(onne)l(ctors)11 +b Fe(:)p Fi(b)l(ack)j Fm(\()g(\);)249 3474 y Fk(while)31 +b Fm(\()p Fe(r)s(:)p Fi(c)l(onne)l(ctors)11 b Fe(:)p +Fi(size)g Fm(\()j(\))24 b Fe(<)f(r)r(:)p Fi(p)l(oints)12 b Fe(:)p Fi(size)f Fm(\()j(\))19 b Fn(\000)f Fm(1)o(\))42 b Fe(r)s(:)p Fi(c)l(onne)l(ctors)11 b Fe(:)p Fi(push)p -2736 3475 V 31 w(b)l(ack)j Fm(\()p Fi(last)p 3090 3475 +2736 3474 V 31 w(b)l(ack)j Fm(\()p Fi(last)p 3090 3474 V 31 w(c)l(onne)l(ctor)f Fm(\);)249 3574 y Fe(r)s(:)p Fi(c)l(onne)l(ctors)e Fe(:)p Fi(push)p 895 3574 V 31 -w(b)l(ack)j Fm(\()p Fi(c)l(onne)l(ctor)f Fm(\);)332 3674 +w(b)l(ack)j Fm(\()p Fi(c)l(onne)l(ctor)f Fm(\);)332 3673 y Fe(=)p Fn(\003)41 b Fm([)p Fh(LDF)25 b(2002.4.6.)p Fm(])60 b(Cop)n(y)27 b(the)h Fk(P)m(oin)m(ts)k Fm(in)c Fi(p)l(a)39 b Fm(and)27 b(put)i(the)f(copies)f(on)n(to)f @@ -19552,45 +19537,44 @@ Fe(:)p Fi(b)l(e)l(gin)g Fm(\()j(\);)42 b Fi(iter)36 b Fn(6)p Fm(=)23 b Fi(p)l(a)11 b Fe(:)p Fi(p)l(oints)h Fe(:)p Fi(end)h Fm(\()h(\);)42 b Fi(iter)3600 3765 y -Fg(+)-8 b(+)3698 3773 y Fm(\))332 3873 y Fe(r)s(:)p Fi(p)l(oints)11 -b Fe(:)p Fi(push)p 811 3873 V 31 w(b)l(ack)j Fm(\()p -Fk(P)m(oin)m(t)g Fm(::)8 b Fi(cr)l(e)l(ate)p 1543 3873 -V 31 w(new)p 1714 3873 V 31 w(p)l(oint)k Fm(\()p Fn(\003)p +Fg(+)-8 b(+)3698 3773 y Fm(\))332 3872 y Fe(r)s(:)p Fi(p)l(oints)11 +b Fe(:)p Fi(push)p 811 3872 V 31 w(b)l(ack)j Fm(\()p +Fk(P)m(oin)m(t)g Fm(::)8 b Fi(cr)l(e)l(ate)p 1543 3872 +V 31 w(new)p 1714 3872 V 31 w(p)l(oint)k Fm(\()p Fn(\003)p Fi(iter)h Fm(\)\);)0 4072 y Fk(771.)94 b Fm(Put)30 b(the)h(connectors)d (from)i Fi(p)l(a)41 b Fm(on)n(to)30 b(the)g(new)g Fk(P)m(ath)6 b Fm(.)45 b(Since)30 b(they're)g Fk(strings)s Fm(,)h(and)f(not)g(p)r -(oin)n(ters,)g(w)n(e)g(don't)0 4172 y(ha)n(v)n(e)h(to)h(cop)n(y)g +(oin)n(ters,)g(w)n(e)g(don't)0 4171 y(ha)n(v)n(e)h(to)h(cop)n(y)g (them.)52 b(I)32 b(tested)h(this)f(to)h(mak)n(e)e(sure)h(it's)g(true.) 51 b(I)33 b(don't)f(kno)n(w)g(ho)n(w)g Fk(strings)k Fm(are)31 -b(implemen)n(ted,)j(but)0 4272 y(they)28 b(seem)f(to)h(b)r(e)g(handled) +b(implemen)n(ted,)j(but)0 4271 y(they)28 b(seem)f(to)h(b)r(e)g(handled) f(lik)n(e)h(string)e(literals.)37 b([)p Fh(LDF)25 b(2002.4.6.)p -Fm(])0 4396 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 +Fm(])0 4395 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4496 y Fk(for)30 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(string)g -Fn(i)i Fm(::)h Fi(c)l(onst)p 1089 4496 V 30 w(iter)l(ator)14 +4495 y Fk(for)30 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(string)g +Fn(i)i Fm(::)h Fi(c)l(onst)p 1089 4495 V 30 w(iter)l(ator)14 b(iter)36 b Fm(=)23 b Fi(p)l(a)11 b Fe(:)p Fi(c)l(onne)l(ctors)g Fe(:)p Fi(b)l(e)l(gin)g Fm(\()j(\);)40 b Fi(iter)c Fn(6)p Fm(=)23 b Fi(p)l(a)11 b Fe(:)p Fi(c)l(onne)l(ctors)g -Fe(:)p Fi(end)i Fm(\()h(\);)40 b Fi(iter)3709 4488 y -Fg(+)-8 b(+)3807 4496 y Fm(\))42 b Fn(f)166 4595 y Fe(r)s(:)p +Fe(:)p Fi(end)i Fm(\()h(\);)40 b Fi(iter)3709 4487 y +Fg(+)-8 b(+)3807 4495 y Fm(\))42 b Fn(f)166 4595 y Fe(r)s(:)p Fi(c)l(onne)l(ctors)11 b Fe(:)p Fi(push)p 812 4595 V 31 w(b)l(ack)j Fm(\()p Fn(\003)o Fi(iter)g Fm(\);)83 -4695 y Fn(g)83 4795 y Fk(if)41 b Fm(\()p Fi(assign)35 +4694 y Fn(g)83 4794 y Fk(if)41 b Fm(\()p Fi(assign)35 b Fn(\021)22 b Fi(true)10 b Fm(\))42 b Fn(\003)p Fi(this)34 b Fm(=)23 b Fe(r)s Fm(;)83 4894 y Fk(return)33 b Fe(r)s -Fm(;)k Fn(g)0 5094 y Fk(772.)94 b(Dra)m(wing)33 b(and)f(\014lling.)0 -5293 y(773.)94 b(Dra)m(w.)p eop end -%%Page: 209 209 -TeXDict begin 209 208 bop 0 83 a Fn(x)p Fm(774)140 b +Fm(;)k Fn(g)0 5093 y Fk(772.)94 b(Dra)m(wing)33 b(and)f(\014lling.)0 +5292 y(773.)94 b(Dra)m(w.)p eop end +%%Page: 211 211 +TeXDict begin 211 210 bop 0 83 a Fn(x)p Fm(774)140 b Fl(3DLDFPR)n(G)2295 b Fk(P)-8 b(A)g(TH)24 b Fl(VERSIONS)141 -b Fm(209)0 263 y Fk(774.)94 b(P)m(ath)33 b(v)m(ersions.)0 -462 y(775.)94 b(Normal)31 b(v)m(ersion.)p 0 538 1643 -4 v 1738 571 a(Begin)g(Log)p 2257 538 V 83 711 a Fm([)p -Fh(LDF)25 b(2002.10.07.)p Fm(])61 b(Added)28 b(co)r(de)g(for)f -(handling)g Fi(dr)l(aw)p 1839 711 26 4 v 32 w(c)l(olor)41 -b Fm(and)28 b Fi(\014l)t(l)p 2341 711 V 31 w(c)l(olor)14 -b Fm(.)p 0 803 1678 4 v 1773 836 a Fk(End)32 b(Log)p -2222 803 V 0 960 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(211)0 263 y Fk(774.)94 b(P)m(ath)33 b(v)m(ersions.)0 +462 y(775.)94 b(Normal)31 b(v)m(ersion.)p 0 538 1779 +4 v 1874 571 a(Log)p 2122 538 V 83 711 a Fm([)p Fh(LDF)25 +b(2002.10.07.)p Fm(])61 b(Added)28 b(co)r(de)g(for)f(handling)g +Fi(dr)l(aw)p 1839 711 26 4 v 32 w(c)l(olor)41 b Fm(and)28 +b Fi(\014l)t(l)p 2341 711 V 31 w(c)l(olor)14 b Fm(.)p +0 803 3900 4 v 0 960 a Fn(h)g Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1060 y Fk(virtual)41 b(v)m(oid)h Fi(dr)l(aw)13 b Fm(\()p Fk(const)42 b(Color)e Fm(&)p Fi(ddr)l(aw)p 1648 1060 @@ -19678,8 +19662,8 @@ b Ff("Exiting)p Fj( )p Ff(Path::dr)o(aw\()-7 b(\).\\n")25 b Fn(\034)f Fi(\015ush)10 b Fm(;)166 5095 y Fk(return)5 b Fm(;)83 5195 y Fn(g)p eop end -%%Page: 210 210 -TeXDict begin 210 209 bop 0 83 a Fm(210)140 b Fk(PICTURE)24 +%%Page: 212 212 +TeXDict begin 212 211 bop 0 83 a Fm(212)140 b Fk(PICTURE)24 b Fl(AR)n(GUMENT)f(FIRST)1813 b(3DLDFPR)n(G)142 b Fn(x)p Fm(777)0 263 y Fk(777.)94 b(Picture)33 b(argumen)m(t)f(\014rst.)95 b Fm([)p Fh(LDF)26 b(2002.09.17.)p Fm(])61 b(Added)28 @@ -19756,166 +19740,163 @@ Fe(;)j Fi(pictur)l(e)c Fe(;)k Fi(aarr)l(ow)h Fm(\);)83 4173 y Fn(g)0 4373 y Fk(782.)94 b(Dra)m(w)33 b(arro)m(w.)0 4572 y(783.)94 b(P)m(ath)33 b(v)m(ersions.)p eop end -%%Page: 211 211 -TeXDict begin 211 210 bop 0 83 a Fn(x)p Fm(784)140 b -Fl(3DLDFPR)n(G)2275 b(NORMAL)23 b(VERSION)141 b Fm(211)0 -263 y Fk(784.)94 b(Normal)31 b(v)m(ersion.)p 0 339 1643 -4 v 1738 371 a(Begin)g(Log)p 2257 339 V 83 512 a Fm([)p -Fh(LDF)25 b(2003.01.15.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 604 1678 4 v 1773 637 a Fk(End)k(Log)p 2222 604 V 0 -761 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h -Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 861 y Fk(virtual)42 -b(v)m(oid)g Fi(dr)l(awarr)l(ow)15 b Fm(\()p Fk(const)42 -b(Color)f Fm(&)p Fi(ddr)l(aw)p 1857 861 26 4 v 31 w(c)l(olor)53 -b Fm(=)39 b Fn(\003)o Fk(Colors)12 b Fm(::)d Fi(default)p -2837 861 V 31 w(c)l(olor)14 b Fe(;)g Fk(string)249 960 -y Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(string)33 -b Fi(pp)l(en)h Fm(=)23 b Ff("")t Fe(;)14 b Fk(Picture)32 -b Fm(&)p Fi(pictur)l(e)i Fm(=)22 b Fi(curr)l(ent)p 2511 -960 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)0 -1160 y Fk(785.)0 1284 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 -b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -1384 y Fk(v)m(oid)34 b(P)m(ath)14 b Fm(::)8 b Fi(dr)l(awarr)l(ow)15 -b Fm(\()p Fk(const)34 b(Color)f Fm(&)p Fi(ddr)l(aw)p -1778 1384 V 32 w(c)l(olor)14 b Fe(;)g Fk(string)34 b -Fi(ddashe)l(d)15 b Fe(;)f Fk(string)35 b Fi(pp)l(en)11 -b Fe(;)j Fk(Picture)34 b Fm(&)o Fi(pictur)l(e)11 b Fm(\))415 -1483 y Fk(const)83 1583 y Fn(f)166 1683 y Fi(dr)l(aw)j -Fm(\()p Fi(ddr)l(aw)p 599 1683 V 32 w(c)l(olor)g Fe(;)g -Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)d -Fe(;)j Fi(true)9 b Fm(\);)83 1782 y Fn(g)0 1982 y Fk(786.)94 -b(Picture)33 b(argumen)m(t)f(\014rst.)p 0 2081 1643 4 -v 1738 2113 a(Begin)f(Log)p 2257 2081 V 83 2254 a Fm([)p -Fh(LDF)25 b(2003.01.15.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 2346 1678 4 v 1773 2379 a Fk(End)k(Log)p 2222 2346 -V 0 2503 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b +%%Page: 213 213 +TeXDict begin 213 212 bop 0 83 a Fn(x)p Fm(784)140 b +Fl(3DLDFPR)n(G)2275 b(NORMAL)23 b(VERSION)141 b Fm(213)0 +263 y Fk(784.)94 b(Normal)31 b(v)m(ersion.)p 0 339 1779 +4 v 1874 371 a(Log)p 2122 339 V 83 512 a Fm([)p Fh(LDF)25 +b(2003.01.15.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 604 3900 4 v 0 761 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +861 y Fk(virtual)42 b(v)m(oid)g Fi(dr)l(awarr)l(ow)15 +b Fm(\()p Fk(const)42 b(Color)f Fm(&)p Fi(ddr)l(aw)p +1857 861 26 4 v 31 w(c)l(olor)53 b Fm(=)39 b Fn(\003)o +Fk(Colors)12 b Fm(::)d Fi(default)p 2837 861 V 31 w(c)l(olor)14 +b Fe(;)g Fk(string)249 960 y Fi(ddashe)l(d)38 b Fm(=)23 +b Ff("")s Fe(;)14 b Fk(string)33 b Fi(pp)l(en)h Fm(=)23 +b Ff("")t Fe(;)14 b Fk(Picture)32 b Fm(&)p Fi(pictur)l(e)i +Fm(=)22 b Fi(curr)l(ent)p 2511 960 V 30 w(pictur)l(e)10 +b Fm(\))28 b Fk(const)5 b Fm(;)0 1160 y Fk(785.)0 1284 +y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h +Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1384 y Fk(v)m(oid)34 +b(P)m(ath)14 b Fm(::)8 b Fi(dr)l(awarr)l(ow)15 b Fm(\()p +Fk(const)34 b(Color)f Fm(&)p Fi(ddr)l(aw)p 1778 1384 +V 32 w(c)l(olor)14 b Fe(;)g Fk(string)34 b Fi(ddashe)l(d)15 +b Fe(;)f Fk(string)35 b Fi(pp)l(en)11 b Fe(;)j Fk(Picture)34 +b Fm(&)o Fi(pictur)l(e)11 b Fm(\))415 1483 y Fk(const)83 +1583 y Fn(f)166 1683 y Fi(dr)l(aw)j Fm(\()p Fi(ddr)l(aw)p +599 1683 V 32 w(c)l(olor)g Fe(;)g Fi(ddashe)l(d)h Fe(;)f +Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)d Fe(;)j Fi(true)9 +b Fm(\);)83 1782 y Fn(g)0 1982 y Fk(786.)94 b(Picture)33 +b(argumen)m(t)f(\014rst.)p 0 2080 1779 4 v 1874 2113 +a(Log)p 2122 2080 V 83 2253 a Fm([)p Fh(LDF)25 b(2003.01.15.)p +Fm(])61 b(Added)28 b(this)g(function.)p 0 2345 3900 4 +v 0 2503 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2603 y Fk(virtual)28 b(v)m(oid)g Fi(dr)l(awarr)l(ow)15 +2602 y Fk(virtual)28 b(v)m(oid)g Fi(dr)l(awarr)l(ow)15 b Fm(\()p Fk(Picture)28 b Fm(&)p Fi(pictur)l(e)10 b Fe(;)k -Fk(const)28 b(Color)f Fm(&)p Fi(ddr)l(aw)p 2495 2603 +Fk(const)28 b(Color)f Fm(&)p Fi(ddr)l(aw)p 2495 2602 26 4 v 31 w(c)l(olor)38 b Fm(=)22 b Fn(\003)p Fk(Colors)12 -b Fm(::)c Fi(default)p 3443 2603 V 32 w(c)l(olor)14 b +b Fm(::)c Fi(default)p 3443 2602 V 32 w(c)l(olor)14 b Fe(;)g Fk(string)249 2702 y Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(string)33 b Fi(pp)l(en)h Fm(=)23 -b Ff("")t Fm(\))28 b Fk(const)t Fm(;)0 2902 y Fk(787.)0 +b Ff("")t Fm(\))28 b Fk(const)t Fm(;)0 2901 y Fk(787.)0 3026 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h -Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3126 y Fk(v)m(oid)34 +Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3125 y Fk(v)m(oid)34 b(P)m(ath)14 b Fm(::)8 b Fi(dr)l(awarr)l(ow)15 b Fm(\()p Fk(Picture)35 b Fm(&)o Fi(pictur)l(e)11 b Fe(;)j Fk(const)34 -b(Color)f Fm(&)o Fi(ddr)l(aw)p 2478 3126 V 32 w(c)l(olor)14 +b(Color)f Fm(&)o Fi(ddr)l(aw)p 2478 3125 V 32 w(c)l(olor)14 b Fe(;)g Fk(string)35 b Fi(ddashe)l(d)15 b Fe(;)f Fk(string)34 -b Fi(pp)l(en)11 b Fm(\))415 3226 y Fk(const)83 3325 y -Fn(f)166 3425 y Fi(dr)l(aw)j Fm(\()p Fi(pictur)l(e)d -Fe(;)j Fi(ddr)l(aw)p 894 3425 V 32 w(c)l(olor)g Fe(;)g +b Fi(pp)l(en)11 b Fm(\))415 3225 y Fk(const)83 3324 y +Fn(f)166 3424 y Fi(dr)l(aw)j Fm(\()p Fi(pictur)l(e)d +Fe(;)j Fi(ddr)l(aw)p 894 3424 V 32 w(c)l(olor)g Fe(;)g Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(true)9 -b Fm(\);)83 3524 y Fn(g)0 3724 y Fk(788.)94 b(P)m(oin)m(t)32 -b(v)m(ersions.)0 3923 y(789.)94 b(Normal)31 b(v)m(ersion.)p -0 3999 1643 4 v 1738 4031 a(Begin)g(Log)p 2257 3999 V -83 4172 a Fm([)p Fh(LDF)25 b(2003.01.15.)p Fm(])61 b(Added)28 -b(this)g(function.)83 4272 y([)p Fh(LDF)d(2003.06.03.)p +b Fm(\);)83 3524 y Fn(g)0 3723 y Fk(788.)94 b(P)m(oin)m(t)32 +b(v)m(ersions.)0 3922 y(789.)94 b(Normal)31 b(v)m(ersion.)p +0 3998 1779 4 v 1874 4031 a(Log)p 2122 3998 V 83 4171 +a Fm([)p Fh(LDF)25 b(2003.01.15.)p Fm(])61 b(Added)28 +b(this)g(function.)83 4271 y([)p Fh(LDF)d(2003.06.03.)p Fm(])61 b(Made)27 b Fi(dr)l(awarr)l(ow)15 b Fm(\()f(\))28 -b Fk(const)5 b Fm(.)p 0 4364 1678 4 v 1773 4396 a Fk(End)32 -b(Log)p 2222 4364 V 0 4521 a Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 4620 y Fk(P)m(ath)39 b(P)m(oin)m(t)13 -b Fm(::)8 b Fi(dr)l(awarr)l(ow)15 b Fm(\()p Fk(const)38 -b(P)m(oin)m(t)g Fm(&)o Fe(p;)14 b Fk(const)37 b(Color)g -Fm(&)o Fi(ddr)l(aw)p 2498 4620 26 4 v 32 w(c)l(olor)14 -b Fe(;)g Fk(string)38 b Fi(ddashe)l(d)15 b Fe(;)f Fk(string)415 -4720 y Fi(pp)l(en)d Fe(;)j Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)10 -b Fm(\))28 b Fk(const)83 4820 y Fn(f)166 4919 y Fk(P)m(ath)34 -b Fi(p)l(a)11 b Fm(\()p Fn(\003)p Fi(this)g Fe(;)j(p)p -Fm(\);)166 5044 y Fi(p)l(a)d Fe(:)p Fi(dr)l(awarr)l(ow)k -Fm(\()p Fi(ddr)l(aw)p 919 5044 V 32 w(c)l(olor)f Fe(;)g -Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)d -Fm(\);)166 5143 y Fk(return)33 b Fi(p)l(a)11 b Fm(;)83 -5243 y Fn(g)p eop end -%%Page: 212 212 -TeXDict begin 212 211 bop 0 83 a Fm(212)140 b Fk(PICTURE)24 +b Fk(const)5 b Fm(.)p 0 4363 3900 4 v 0 4520 a Fn(h)14 +b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 4620 y Fk(P)m(ath)39 +b(P)m(oin)m(t)13 b Fm(::)8 b Fi(dr)l(awarr)l(ow)15 b +Fm(\()p Fk(const)38 b(P)m(oin)m(t)g Fm(&)o Fe(p;)14 b +Fk(const)37 b(Color)g Fm(&)o Fi(ddr)l(aw)p 2498 4620 +26 4 v 32 w(c)l(olor)14 b Fe(;)g Fk(string)38 b Fi(ddashe)l(d)15 +b Fe(;)f Fk(string)415 4719 y Fi(pp)l(en)d Fe(;)j Fk(Picture)33 +b Fm(&)p Fi(pictur)l(e)10 b Fm(\))28 b Fk(const)83 4819 +y Fn(f)166 4918 y Fk(P)m(ath)34 b Fi(p)l(a)11 b Fm(\()p +Fn(\003)p Fi(this)g Fe(;)j(p)p Fm(\);)166 5043 y Fi(p)l(a)d +Fe(:)p Fi(dr)l(awarr)l(ow)k Fm(\()p Fi(ddr)l(aw)p 919 +5043 V 32 w(c)l(olor)f Fe(;)g Fi(ddashe)l(d)h Fe(;)f +Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)d Fm(\);)166 5143 y +Fk(return)33 b Fi(p)l(a)11 b Fm(;)83 5242 y Fn(g)p eop +end +%%Page: 214 214 +TeXDict begin 214 213 bop 0 83 a Fm(214)140 b Fk(PICTURE)24 b Fl(AR)n(GUMENT)f(FIRST)1813 b(3DLDFPR)n(G)142 b Fn(x)p Fm(790)0 263 y Fk(790.)94 b(Picture)33 b(argumen)m(t)f(\014rst.)p -0 362 1643 4 v 1738 395 a(Begin)f(Log)p 2257 362 V 83 -536 a Fm([)p Fh(LDF)25 b(2003.01.15.)p Fm(])61 b(Added)28 -b(this)g(function.)83 635 y([)p Fh(LDF)d(2003.06.03.)p -Fm(])61 b(Made)27 b Fi(dr)l(awarr)l(ow)15 b Fm(\()f(\))28 -b Fk(const)5 b Fm(.)p 0 727 1678 4 v 1773 760 a Fk(End)32 -b(Log)p 2222 727 V 0 884 a Fn(h)14 b Fm(De\014ne)28 b -Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 984 y Fk(P)m(ath)37 b(P)m(oin)m(t)14 +0 362 1779 4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm([)p +Fh(LDF)25 b(2003.01.15.)p Fm(])61 b(Added)28 b(this)g(function.)83 +635 y([)p Fh(LDF)d(2003.06.03.)p Fm(])61 b(Made)27 b +Fi(dr)l(awarr)l(ow)15 b Fm(\()f(\))28 b Fk(const)5 b +Fm(.)p 0 726 3900 4 v 0 884 a Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 983 y Fk(P)m(ath)37 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(dr)l(awarr)l(ow)15 b Fm(\()p Fk(Picture)36 b Fm(&)p Fi(pictur)l(e)11 b Fe(;)j Fk(const)35 b(P)m(oin)m(t)i Fm(&)o Fe(p;)14 b Fk(const)36 b(Color)f Fm(&)p Fi(ddr)l(aw)p -3194 984 26 4 v 31 w(c)l(olor)15 b Fe(;)f Fk(string)415 -1084 y Fi(ddashe)l(d)h Fe(;)f Fk(string)33 b Fi(pp)l(en)11 -b Fm(\))28 b Fk(const)83 1183 y Fn(f)166 1283 y Fk(return)33 +3194 983 26 4 v 31 w(c)l(olor)15 b Fe(;)f Fk(string)415 +1083 y Fi(ddashe)l(d)h Fe(;)f Fk(string)33 b Fi(pp)l(en)11 +b Fm(\))28 b Fk(const)83 1182 y Fn(f)166 1282 y Fk(return)33 b Fi(dr)l(awarr)l(ow)15 b Fm(\()p Fe(p;)f Fi(ddr)l(aw)p -1182 1283 V 32 w(c)l(olor)g Fe(;)g Fi(ddashe)l(d)h Fe(;)f +1182 1282 V 32 w(c)l(olor)g Fe(;)g Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)c Fm(\);)83 1382 y -Fn(g)0 1582 y Fk(791.)94 b(Dra)m(w)33 b(help.)p 0 1681 -1643 4 v 1738 1714 a(Begin)e(Log)p 2257 1681 V 83 1854 -a Fm([)p Fh(LDF)25 b(2002.05.10.)p Fm(])65 b(Changed)31 -b(the)g(w)n(a)n(y)g(the)g(default)h(argumen)n(ts)e(are)g(handled.)49 -b(The)31 b(w)n(a)n(y)f(it)i(w)n(as)e(didn't)j(w)n(ork)d(for)0 -1954 y(b)r(oth)e(v)n(ersions,)e(i.e.,)i(the)g Fk(P)m(ath)33 +Fn(g)0 1581 y Fk(791.)94 b(Dra)m(w)33 b(help.)p 0 1680 +1779 4 v 1874 1712 a(Log)p 2122 1680 V 83 1853 a Fm([)p +Fh(LDF)25 b(2002.05.10.)p Fm(])65 b(Changed)31 b(the)g(w)n(a)n(y)g(the) +g(default)h(argumen)n(ts)e(are)g(handled.)49 b(The)31 +b(w)n(a)n(y)f(it)i(w)n(as)e(didn't)j(w)n(ork)d(for)0 +1953 y(b)r(oth)e(v)n(ersions,)e(i.e.,)i(the)g Fk(P)m(ath)33 b Fm(v)n(ersion)26 b(and)i(the)g Fk(P)m(oin)m(t)33 b -Fm(v)n(ersion.)83 2054 y([)p Fh(LDF)25 b(2002.4.8.)p +Fm(v)n(ersion.)83 2052 y([)p Fh(LDF)25 b(2002.4.8.)p Fm(])62 b(Added)29 b(this)g(section.)41 b(!!)g(It)29 b(w)n(ould)g(b)r(e)g(nice)g(to)g(do)g(something)f(to)h(mak)n(e)f(sure)g -(that)i(the)f(help)g(lines)0 2153 y(and)i(curv)n(es)f(are)h(not)g(dra)n +(that)i(the)f(help)g(lines)0 2152 y(and)i(curv)n(es)f(are)h(not)g(dra)n (wn)f(o)n(v)n(er)g(b)n(y)h(\014lling)g(commands.)48 b(Ma)n(yb)r(e)31 b(it)g(will)h(b)r(e)g(p)r(ossible)f(to)g(tak)n(e)f(care)h(of)g(this)h -(when)f(I)0 2253 y(implemen)n(t)j(the)g(hidden)g(surface)e(algorithm)g +(when)f(I)0 2251 y(implemen)n(t)j(the)g(hidden)g(surface)e(algorithm)g (in)i Fi(output)11 b Fm(\()j(\).)55 b([)p Fh(LDF)25 b(2002.11.03.)p Fm(])67 b(I)33 b(could)g(ha)n(v)n(e)f(help)i(lines)f(outputted)0 -2352 y(last,)27 b(if)h(I)g(put)g(them)g(on)g(a)f Fk(v)m(ector)34 -b Fm(of)27 b(their)h(o)n(wn.)83 2452 y([)p Fh(LDF)d(2003.07.13.)p +2351 y(last,)27 b(if)h(I)g(put)g(them)g(on)g(a)f Fk(v)m(ector)34 +b Fm(of)27 b(their)h(o)n(wn.)83 2451 y([)p Fh(LDF)d(2003.07.13.)p Fm(])61 b(Made)27 b(all)h(v)n(ersions)e(of)h Fi(dr)l(aw)p -1667 2452 26 4 v 31 w(help)11 b Fm(\()j(\))28 b Fk(const)5 -b Fm(.)p 0 2544 1678 4 v 1773 2577 a Fk(End)32 b(Log)p -2222 2544 V 0 2776 a(792.)94 b(P)m(ath)33 b(v)m(ersions.)95 -b Fm([)p Fh(LDF)25 b(2002.12.20.)p Fm(])61 b(??)37 b(Could)28 -b(these)f(functions)h(b)r(e)g Fk(const)5 b Fm(?)0 2975 -y Fk(793.)94 b(Normal)31 b(v)m(ersion.)95 b Fm([)p Fh(LDF)26 -b(2002.4.8.)p Fm(])59 b(Added)29 b(this)f(function.)0 -3100 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h -Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3199 y Fk(v)m(oid)33 -b Fi(dr)l(aw)p 466 3199 26 4 v 32 w(help)11 b Fm(\()p -Fk(const)33 b(Color)g Fm(&)o Fi(ddr)l(aw)p 1475 3199 +1667 2451 26 4 v 31 w(help)11 b Fm(\()j(\))28 b Fk(const)5 +b Fm(.)p 0 2543 3900 4 v 0 2774 a Fk(792.)94 b(P)m(ath)33 +b(v)m(ersions.)95 b Fm([)p Fh(LDF)25 b(2002.12.20.)p +Fm(])61 b(??)37 b(Could)28 b(these)f(functions)h(b)r(e)g +Fk(const)5 b Fm(?)0 2974 y Fk(793.)94 b(Normal)31 b(v)m(ersion.)95 +b Fm([)p Fh(LDF)26 b(2002.4.8.)p Fm(])59 b(Added)29 b(this)f(function.) +0 3098 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3198 y Fk(v)m(oid)33 +b Fi(dr)l(aw)p 466 3198 26 4 v 32 w(help)11 b Fm(\()p +Fk(const)33 b(Color)g Fm(&)o Fi(ddr)l(aw)p 1475 3198 V 32 w(c)l(olor)39 b Fm(=)24 b Fn(\003)p Fi(help)p 1994 -3199 V 31 w(c)l(olor)15 b Fe(;)f Fk(string)34 b Fi(ddashe)l(d)39 -b Fm(=)24 b Fi(help)p 3076 3199 V 32 w(dash)p 3268 3199 -V 32 w(p)l(attern)10 b Fe(;)k Fk(string)249 3299 y Fi(pp)l(en)34 +3198 V 31 w(c)l(olor)15 b Fe(;)f Fk(string)34 b Fi(ddashe)l(d)39 +b Fm(=)24 b Fi(help)p 3076 3198 V 32 w(dash)p 3268 3198 +V 32 w(p)l(attern)10 b Fe(;)k Fk(string)249 3297 y Fi(pp)l(en)34 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(Picture)33 b Fm(&)p -Fi(pictur)l(e)g Fm(=)23 b Fi(curr)l(ent)p 1704 3299 V -30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)0 3498 -y Fk(794.)0 3623 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 +Fi(pictur)l(e)g Fm(=)23 b Fi(curr)l(ent)p 1704 3297 V +30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)0 3497 +y Fk(794.)0 3621 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3722 y Fk(v)m(oid)34 b(P)m(ath)15 b Fm(::)8 b Fi(dr)l(aw)p -734 3722 V 31 w(help)j Fm(\()p Fk(const)35 b(Color)e -Fm(&)p Fi(ddr)l(aw)p 1745 3722 V 32 w(c)l(olor)14 b Fe(;)g +3721 y Fk(v)m(oid)34 b(P)m(ath)15 b Fm(::)8 b Fi(dr)l(aw)p +734 3721 V 31 w(help)j Fm(\()p Fk(const)35 b(Color)e +Fm(&)p Fi(ddr)l(aw)p 1745 3721 V 32 w(c)l(olor)14 b Fe(;)g Fk(string)35 b Fi(ddashe)l(d)15 b Fe(;)f Fk(string)35 b Fi(pp)l(en)11 b Fe(;)j Fk(Picture)34 b Fm(&)p Fi(pictur)l(e)11 -b Fm(\))415 3822 y Fk(const)83 3922 y Fn(f)166 4021 y -Fk(if)41 b Fm(\()p Fi(do)p 384 4021 V 32 w(help)p 559 -4021 V 32 w(lines)34 b Fn(\021)23 b Fi(false)12 b Fm(\))42 -b Fk(return)5 b Fm(;)166 4121 y Fi(dr)l(aw)14 b Fm(\()p -Fi(ddr)l(aw)p 599 4121 V 32 w(c)l(olor)g Fe(;)g Fi(ddashe)l(d)h +b Fm(\))415 3821 y Fk(const)83 3920 y Fn(f)166 4020 y +Fk(if)41 b Fm(\()p Fi(do)p 384 4020 V 32 w(help)p 559 +4020 V 32 w(lines)34 b Fn(\021)23 b Fi(false)12 b Fm(\))42 +b Fk(return)5 b Fm(;)166 4119 y Fi(dr)l(aw)14 b Fm(\()p +Fi(ddr)l(aw)p 599 4119 V 32 w(c)l(olor)g Fe(;)g Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)d Fm(\);)83 -4220 y Fn(g)0 4420 y Fk(795.)94 b(Picture)33 b(argumen)m(t)f(\014rst.)0 -4544 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h -Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4644 y Fk(v)m(oid)43 -b Fi(dr)l(aw)p 476 4644 V 31 w(help)11 b Fm(\()p Fk(Picture)44 +4219 y Fn(g)0 4418 y Fk(795.)94 b(Picture)33 b(argumen)m(t)f(\014rst.)0 +4543 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4642 y Fk(v)m(oid)43 +b Fi(dr)l(aw)p 476 4642 V 31 w(help)11 b Fm(\()p Fk(Picture)44 b Fm(&)p Fi(pictur)l(e)10 b Fe(;)k Fk(const)43 b(Color)g -Fm(&)o Fi(ddr)l(aw)p 2214 4644 V 32 w(c)l(olor)55 b Fm(=)40 -b Fn(\003)p Fi(help)p 2765 4644 V 31 w(c)l(olor)15 b -Fe(;)f Fk(string)249 4743 y Fi(ddashe)l(d)38 b Fm(=)23 -b Fi(help)p 801 4743 V 31 w(dash)p 992 4743 V 32 w(p)l(attern)11 +Fm(&)o Fi(ddr)l(aw)p 2214 4642 V 32 w(c)l(olor)55 b Fm(=)40 +b Fn(\003)p Fi(help)p 2765 4642 V 31 w(c)l(olor)15 b +Fe(;)f Fk(string)249 4742 y Fi(ddashe)l(d)38 b Fm(=)23 +b Fi(help)p 801 4742 V 31 w(dash)p 992 4742 V 32 w(p)l(attern)11 b Fe(;)j Fk(string)33 b Fi(pp)l(en)h Fm(=)22 b Ff("")t Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 213 213 -TeXDict begin 213 212 bop 0 83 a Fn(x)p Fm(796)140 b +%%Page: 215 215 +TeXDict begin 215 214 bop 0 83 a Fn(x)p Fm(796)140 b Fl(3DLDFPR)n(G)1813 b Fk(PICTURE)24 b Fl(AR)n(GUMENT)f(FIRST)141 -b Fm(213)0 263 y Fk(796.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fm(215)0 263 y Fk(796.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)34 b(P)m(ath)15 b Fm(::)8 b Fi(dr)l(aw)p 734 487 26 4 v 31 w(help)j Fm(\()p @@ -19970,22 +19951,21 @@ 3650 y Fm(!!)37 b([)p Fh(LDF)25 b(2003.02.02.)p Fm(])61 b(Filling)28 b(do)r(esn't)g(use)f(a)g(p)r(en!!)38 b(Change)27 b(ev)n(erywhere!!.)0 3850 y Fk(801.)94 b(Normal)31 b(v)m(ersion.)p -0 3925 1643 4 v 1738 3958 a(Begin)g(Log)p 2257 3925 V -83 4099 a Fm([)p Fh(LDF)25 b(2002.10.07.)p Fm(])61 b(Added)28 +0 3925 1779 4 v 1874 3958 a(Log)p 2122 3925 V 83 4099 +a Fm([)p Fh(LDF)25 b(2002.10.07.)p Fm(])61 b(Added)28 b(co)r(de)g(for)f(handling)g(and)h Fi(\014l)t(l)p 1924 -4099 26 4 v 31 w(c)l(olor)14 b Fm(.)p 0 4191 1678 4 v -1773 4223 a Fk(End)32 b(Log)p 2222 4191 V 0 4348 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 4447 y Fk(v)m(oid)36 b -Fi(\014l)t(l)13 b Fm(\()p Fk(const)36 b(Color)e Fm(&)p +4099 26 4 v 31 w(c)l(olor)14 b Fm(.)p 0 4191 3900 4 v +0 4348 a Fn(h)g Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4447 y Fk(v)m(oid)36 +b Fi(\014l)t(l)13 b Fm(\()p Fk(const)36 b(Color)e Fm(&)p Fi(\016l)t(l)p 1140 4447 26 4 v 31 w(c)l(olor)43 b Fm(=)27 b Fn(\003)p Fk(Colors)12 b Fm(::)c Fi(default)p 2098 4447 V 32 w(c)l(olor)14 b Fe(;)g Fk(Picture)36 b Fm(&)o Fi(pictur)l(e)j Fm(=)28 b Fi(curr)l(ent)p 3403 4447 V 29 w(pictur)l(e)11 b Fm(\))249 4547 y Fk(const)5 b Fm(;)p eop end -%%Page: 214 214 -TeXDict begin 214 213 bop 0 83 a Fm(214)140 b Fl(NORMAL)22 +%%Page: 216 216 +TeXDict begin 216 215 bop 0 83 a Fm(216)140 b Fl(NORMAL)22 b(VERSION)2276 b(3DLDFPR)n(G)142 b Fn(x)p Fm(802)0 263 y Fk(802.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -20067,10 +20047,10 @@ 1830 4223 26 4 v 31 w(c)l(olor)37 b Fm(=)23 b Fn(\003)p Fk(Colors)12 b Fm(::)c Fi(default)p 2778 4223 V 31 w(c)l(olor)15 b Fm(\);)p eop end -%%Page: 215 215 -TeXDict begin 215 214 bop 0 83 a Fn(x)p Fm(804)140 b +%%Page: 217 217 +TeXDict begin 217 216 bop 0 83 a Fn(x)p Fm(804)140 b Fl(3DLDFPR)n(G)1813 b Fk(PICTURE)24 b Fl(AR)n(GUMENT)f(FIRST)141 -b Fm(215)0 263 y Fk(804.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fm(217)0 263 y Fk(804.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(P)m(ath)14 b Fm(::)8 b Fi(\014l)t(l)13 b Fm(\()p Fk(Picture)34 b @@ -20102,33 +20082,31 @@ (tly)0 1683 y(blac)n(k\))g(to)h(b)r(e)g(used.)36 b(Of)28 b(course,)e(plain)i Fi(\014l)t(l)13 b Fm(\()h(\))28 b(follo)n(w)n(ed)f (b)n(y)g(plain)h Fi(dr)l(aw)14 b Fm(\()g(\))28 b(will)g(pro)r(duce)f -(the)h(same)f(result.)p 0 1787 1643 4 v 1738 1819 a Fk(Begin)k(Log)p -2257 1787 V 83 1960 a Fm([)p Fh(LDF)25 b(2003.07.16.)p -Fm(])61 b(Made)27 b(b)r(oth)h(v)n(ersions)e Fk(const)5 -b Fm(.)p 0 2052 1678 4 v 1773 2084 a Fk(End)32 b(Log)p -2222 2052 V 0 2284 a(806.)94 b(Normal)31 b(v)m(ersion.)p -0 2359 1643 4 v 1738 2392 a(Begin)g(Log)p 2257 2359 V -83 2533 a Fm([)p Fh(LDF)25 b(2002.10.07.)p Fm(])61 b(Added)28 -b(co)r(de)g(for)f(handling)g Fi(dr)l(aw)p 1839 2533 26 +(the)h(same)f(result.)p 0 1786 1779 4 v 1874 1819 a Fk(Log)p +2122 1786 V 83 1959 a Fm([)p Fh(LDF)e(2003.07.16.)p Fm(])61 +b(Made)27 b(b)r(oth)h(v)n(ersions)e Fk(const)5 b Fm(.)p +0 2051 3900 4 v 0 2283 a Fk(806.)94 b(Normal)31 b(v)m(ersion.)p +0 2359 1779 4 v 1874 2391 a(Log)p 2122 2359 V 83 2532 +a Fm([)p Fh(LDF)25 b(2002.10.07.)p Fm(])61 b(Added)28 +b(co)r(de)g(for)f(handling)g Fi(dr)l(aw)p 1839 2532 26 4 v 32 w(c)l(olor)41 b Fm(and)28 b Fi(\014l)t(l)p 2341 -2533 V 31 w(c)l(olor)14 b Fm(.)p 0 2625 1678 4 v 1773 -2657 a Fk(End)32 b(Log)p 2222 2625 V 0 2782 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2881 y Fk(v)m(oid)45 b -Fi(\014l)t(ldr)l(aw)14 b Fm(\()p Fk(const)45 b(Color)f +2532 V 31 w(c)l(olor)14 b Fm(.)p 0 2624 3900 4 v 0 2781 +a Fn(h)g Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2881 y Fk(v)m(oid)45 +b Fi(\014l)t(ldr)l(aw)14 b Fm(\()p Fk(const)45 b(Color)f Fm(&)o Fi(ddr)l(aw)p 1431 2881 26 4 v 32 w(c)l(olor)58 b Fm(=)43 b Fn(\003)o Fk(Colors)12 b Fm(::)d Fi(default)p 2421 2881 V 31 w(c)l(olor)14 b Fe(;)g Fk(const)45 b(Color)249 -2981 y Fm(&)p Fi(\016l)t(l)p 438 2981 V 31 w(c)l(olor)f +2980 y Fm(&)p Fi(\016l)t(l)p 438 2980 V 31 w(c)l(olor)f Fm(=)30 b Fn(\003)o Fk(Colors)12 b Fm(::)d Fi(b)l(ackgr)l(ound)p -1556 2981 V 31 w(c)l(olor)14 b Fe(;)g Fk(string)37 b +1556 2980 V 31 w(c)l(olor)14 b Fe(;)g Fk(string)37 b Fi(ddashe)l(d)45 b Fm(=)30 b Ff("")s Fe(;)14 b Fk(string)37 b Fi(pp)l(en)42 b Fm(=)29 b Ff("")t Fe(;)14 b Fk(Picture)249 -3081 y Fm(&)p Fi(pictur)l(e)33 b Fm(=)23 b Fi(curr)l(ent)p -949 3081 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 +3080 y Fm(&)p Fi(pictur)l(e)33 b Fm(=)23 b Fi(curr)l(ent)p +949 3080 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 216 216 -TeXDict begin 216 215 bop 0 83 a Fm(216)140 b Fl(NORMAL)22 +%%Page: 218 218 +TeXDict begin 218 217 bop 0 83 a Fm(218)140 b Fl(NORMAL)22 b(VERSION)2276 b(3DLDFPR)n(G)142 b Fn(x)p Fm(807)0 263 y Fk(807.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -20227,10 +20205,10 @@ b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Path::fi)o(lld)-7 b(raw\(\).\\n")24 b Fn(\034)f Fi(\015ush)10 b Fm(;)166 4846 y Fk(return)5 b Fm(;)83 4945 y Fn(g)p eop end -%%Page: 217 217 -TeXDict begin 217 216 bop 0 83 a Fn(x)p Fm(808)140 b +%%Page: 219 219 +TeXDict begin 219 218 bop 0 83 a Fn(x)p Fm(808)140 b Fl(3DLDFPR)n(G)1813 b Fk(PICTURE)24 b Fl(AR)n(GUMENT)f(FIRST)141 -b Fm(217)0 263 y Fk(808.)94 b(Picture)33 b(argumen)m(t)f(\014rst.)95 +b Fm(219)0 263 y Fk(808.)94 b(Picture)33 b(argumen)m(t)f(\014rst.)95 b Fm([)p Fh(LDF)26 b(2002.09.17.)p Fm(])61 b(Added)28 b(this)g(function.)39 b(It's)28 b(con)n(v)n(enien)n(t)e(for)i(when)g(I) g(w)n(an)n(t)0 363 y(to)f(pass)g(a)g Fk(Picture)33 b @@ -20310,8 +20288,8 @@ b Fe(;)j Fk(string)33 b Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(string)33 b Fi(pp)l(en)i Fm(=)22 b Ff("")t Fm(\);)p eop end -%%Page: 218 218 -TeXDict begin 218 217 bop 0 83 a Fm(218)140 b Fk(PICTURE)24 +%%Page: 220 220 +TeXDict begin 220 219 bop 0 83 a Fm(220)140 b Fk(PICTURE)24 b Fl(AR)n(GUMENT)f(FIRST)1813 b(3DLDFPR)n(G)142 b Fn(x)p Fm(815)0 263 y Fk(815.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 @@ -20326,50 +20304,49 @@ b(function)h(is)f(declared)g(in)g Fj(points.web)p Fm(,)f(but)i(m)n(ust) f(b)r(e)h(de\014ned)f(here,)i(b)r(ecause)0 1284 y Fk(P)m(ath)34 b Fm(is)27 b(an)g(incomplete)h(t)n(yp)r(e)g(here.)p 0 -1383 1643 4 v 1738 1416 a Fk(Begin)j(Log)p 2257 1383 -V 83 1557 a Fm([)p Fh(LDF)25 b(2002.4.8.)p Fm(])60 b(Added)29 -b(this)e(function.)83 1656 y([)p Fh(LDF)e(2002.11.03.)p -Fm(])61 b(Changed)27 b(this)h(function,)g(so)f(that)h(it)g(returns)f -(the)h Fk(P)m(ath)34 b Fi(p)l(a)11 b Fm(,)28 b(instead)f(of)h -Fk(v)m(oid)t Fm(.)p 0 1748 1678 4 v 1773 1781 a Fk(End)k(Log)p -2222 1748 V 0 1905 a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 -b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -2005 y Fk(P)m(ath)34 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(undr)l(aw)14 -b Fm(\()p Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(pt)12 -b Fe(;)i Fk(string)33 b Fi(ddashe)l(d)15 b Fe(;)f Fk(string)33 +1383 1779 4 v 1874 1415 a Fk(Log)p 2122 1383 V 83 1556 +a Fm([)p Fh(LDF)d(2002.4.8.)p Fm(])60 b(Added)29 b(this)e(function.)83 +1656 y([)p Fh(LDF)e(2002.11.03.)p Fm(])61 b(Changed)27 +b(this)h(function,)g(so)f(that)h(it)g(returns)f(the)h +Fk(P)m(ath)34 b Fi(p)l(a)11 b Fm(,)28 b(instead)f(of)h +Fk(v)m(oid)t Fm(.)p 0 1748 3900 4 v 0 1905 a Fn(h)14 +b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2004 y Fk(P)m(ath)34 +b(P)m(oin)m(t)13 b Fm(::)8 b Fi(undr)l(aw)14 b Fm(\()p +Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(pt)12 b Fe(;)i +Fk(string)33 b Fi(ddashe)l(d)15 b Fe(;)f Fk(string)33 b Fi(pp)l(en)11 b Fe(;)j Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)10 -b Fm(\))83 2105 y Fn(f)166 2204 y Fk(P)m(ath)34 b Fi(p)l(a)11 +b Fm(\))83 2104 y Fn(f)166 2204 y Fk(P)m(ath)34 b Fi(p)l(a)11 b Fm(\()p Fn(\003)p Fi(this)g Fe(;)j Fi(pt)e Fm(\);)166 -2329 y Fi(p)l(a)f Fe(:)p Fi(undr)l(aw)j Fm(\()p Fi(ddashe)l(d)h +2328 y Fi(p)l(a)f Fe(:)p Fi(undr)l(aw)j Fm(\()p Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)c Fm(\);)166 -2429 y Fk(return)33 b Fi(p)l(a)11 b Fm(;)83 2528 y Fn(g)0 +2428 y Fk(return)33 b Fi(p)l(a)11 b Fm(;)83 2527 y Fn(g)0 2727 y Fk(818.)94 b(Picture)33 b(argumen)m(t)f(\014rst.)p -0 2827 1643 4 v 1738 2859 a(Begin)f(Log)p 2257 2827 V -83 3000 a Fm([)p Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 +0 2825 1779 4 v 1874 2858 a(Log)p 2122 2825 V 83 2999 +a Fm([)p Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 b(this)g(function.)38 b(It's)27 b(con)n(v)n(enien)n(t)g(for)g(when)h(I) f(w)n(an)n(t)g(to)h(pass)f(a)g Fk(Picture)33 b Fm(argumen)n(t.)83 -3100 y([)p Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 +3098 y([)p Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 b(this)g(function.)38 b(It's)27 b(con)n(v)n(enien)n(t)g(for)g(when)h(I) f(w)n(an)n(t)g(to)h(pass)f(a)g Fk(Picture)33 b Fm(argumen)n(t.)p -0 3192 1678 4 v 1773 3224 a Fk(End)f(Log)p 2222 3192 -V 0 3349 a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +0 3190 3900 4 v 0 3347 a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -3448 y Fk(P)m(ath)34 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(undr)l(aw)14 +3447 y Fk(P)m(ath)34 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(undr)l(aw)14 b Fm(\()p Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)10 b Fe(;)k Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fi(pt)12 b Fe(;)i Fk(string)33 b Fi(ddashe)l(d)15 b Fe(;)f Fk(string)33 -b Fi(pp)l(en)11 b Fm(\))83 3548 y Fn(f)166 3648 y Fk(return)33 +b Fi(pp)l(en)11 b Fm(\))83 3547 y Fn(f)166 3646 y Fk(return)33 b Fi(undr)l(aw)13 b Fm(\()p Fi(pt)g Fe(;)h Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)c Fm(\);)83 -3747 y Fn(g)0 3946 y Fk(819.)94 b(Un\014ll.)0 4146 y(820.)g(Normal)31 -b(v)m(ersion.)0 4270 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +3746 y Fn(g)0 3945 y Fk(819.)94 b(Un\014ll.)0 4144 y(820.)g(Normal)31 +b(v)m(ersion.)0 4269 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4370 y Fk(v)m(oid)33 b Fi(un\014l)t(l)12 b Fm(\()p Fk(Picture)33 +4368 y Fk(v)m(oid)33 b Fi(un\014l)t(l)12 b Fm(\()p Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)g Fm(=)23 b Fi(curr)l(ent)p 1560 -4370 26 4 v 30 w(pictur)l(e)10 b Fm(\);)p eop end -%%Page: 219 219 -TeXDict begin 219 218 bop 0 83 a Fn(x)p Fm(821)140 b -Fl(3DLDFPR)n(G)2275 b(NORMAL)23 b(VERSION)141 b Fm(219)0 +4368 26 4 v 30 w(pictur)l(e)10 b Fm(\);)p eop end +%%Page: 221 221 +TeXDict begin 221 220 bop 0 83 a Fn(x)p Fm(821)140 b +Fl(3DLDFPR)n(G)2275 b(NORMAL)23 b(VERSION)141 b Fm(221)0 263 y Fk(821.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(P)m(ath)14 b Fm(::)8 b Fi(un\014l)t(l)13 @@ -20413,8 +20390,8 @@ b Fm(=)23 b Ff("")s Fe(;)14 b Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)g Fm(=)23 b Fi(curr)l(ent)p 1704 2853 V 30 w(pictur)l(e)10 b Fm(\);)p eop end -%%Page: 220 220 -TeXDict begin 220 219 bop 0 83 a Fm(220)140 b Fl(NORMAL)22 +%%Page: 222 222 +TeXDict begin 222 221 bop 0 83 a Fm(222)140 b Fl(NORMAL)22 b(VERSION)2276 b(3DLDFPR)n(G)142 b Fn(x)p Fm(824)0 263 y Fk(824.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -20498,10 +20475,10 @@ b Fe(;)g Fk(string)249 4323 y Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(string)33 b Fi(pp)l(en)h Fm(=)23 b Ff("")t Fm(\);)p eop end -%%Page: 221 221 -TeXDict begin 221 220 bop 0 83 a Fn(x)p Fm(826)140 b +%%Page: 223 223 +TeXDict begin 223 222 bop 0 83 a Fn(x)p Fm(826)140 b Fl(3DLDFPR)n(G)1813 b Fk(PICTURE)24 b Fl(AR)n(GUMENT)f(FIRST)141 -b Fm(221)0 263 y Fk(826.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fm(223)0 263 y Fk(826.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(P)m(ath)14 b Fm(::)8 b Fi(un\014l)t(ldr)l(aw)14 b Fm(\()p Fk(Picture)33 @@ -20512,8 +20489,8 @@ Fm(\()p Fi(ddr)l(aw)p 784 686 V 32 w(c)l(olor)g Fe(;)g Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)c Fm(\);)83 786 y Fn(g)0 985 y Fk(827.)94 b(Lab)s(elling.)0 -1185 y(828.)g(Lab)s(el.)p 0 1260 1643 4 v 1738 1293 a(Begin)31 -b(Log)p 2257 1260 V 83 1434 a Fm([)p Fh(LDF)25 b(2002.03.25.)p +1185 y(828.)g(Lab)s(el.)p 0 1260 1779 4 v 1874 1293 a(Log)p +2122 1260 V 83 1434 a Fm([)p Fh(LDF)25 b(2002.03.25.)p Fm(])69 b(Added)37 b(argumen)n(t)e Fi(dot)48 b Fm(and)36 b(c)n(hanged)f(de\014nition)h(of)g Fi(dotlab)l(el)14 b Fm(\()h(\))36 b(b)r(elo)n(w)f(so)h(that)g(it)g(just)h(calls)0 @@ -20531,29 +20508,28 @@ b(not)e Fe(i)o Fm(.)47 b(Also)31 b(c)n(hanged)f(the)h(follo)n(wing)f(v) n(ersions)0 1932 y(of)e Fi(lab)l(el)13 b Fm(\()i(\))27 b(and)h Fi(dotlab)l(el)14 b Fm(\()g(\),)28 b(that)g(call)f(this)h -(function.)p 0 2024 1678 4 v 1773 2056 a Fk(End)k(Log)p -2222 2024 V 0 2256 a(829.)94 b(Normal)31 b(v)m(ersion.)p -0 2331 1643 4 v 1738 2364 a(Begin)g(Log)p 2257 2331 V -83 2505 a Fm([)p Fh(LDF)25 b(2003.05.06.)p Fm(])61 b(Changed)27 -b(the)h(conditional,)f(where)g Fi(text)p 2058 2505 26 -4 v 30 w(short)40 b Fm(is)27 b(compared)g(with)h Ff(WORLD_VALUES)o -Fm(,)0 2604 y Ff(PROJ_VALUES)p Fm(,)22 b(etc.)35 b(I)22 -b(had)f(to)g(c)n(hange)f(it,)j(b)r(ecause)e(I'v)n(e)f(added)h -Ff(WORLD_VALUES_X_Y)n Fm(,)i(etc.)35 b(No)n(w,)22 b(the)f(conditional)g -(tests)0 2704 y(for)34 b Ff(VIEW_VALUES_X_Y)n Fn(\024)o -Fi(text)p 994 2704 V 30 w(short)12 b Fn(\024)p Ff(WORLD_VALUES)o -Fm(.)57 b(Of)34 b(course,)h(this)g(mak)n(es)e(an)h(assumption)g(ab)r -(out)g(the)g(v)-5 b(alues)0 2803 y(that)26 b(are)e(used)i(to)f(signal)f -(that)i(co)r(ordinate)e(v)-5 b(alues)25 b(should)g(b)r(e)h(used)g(for)f -(the)g(lab)r(el,)h(but)g(I)g(think)g(it's)f(w)n(orth)g(it,)h(to)g(a)n -(v)n(oid)0 2903 y(testing)i Fi(text)p 411 2903 V 29 w(short)40 -b Fm(against)27 b(eac)n(h)f(v)-5 b(alue)28 b(individually)-7 -b(.)83 3003 y([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 b(Made)27 -b Fi(p)l(osition)p 1253 3003 V 32 w(string)39 b Fm(and)28 -b Fi(dot)40 b Fm(argumen)n(ts)26 b Fk(const)5 b Fm(.)p -0 3095 1678 4 v 1773 3127 a Fk(End)32 b(Log)p 2222 3095 -V 0 3252 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b -Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +(function.)p 0 2024 3900 4 v 0 2256 a Fk(829.)94 b(Normal)31 +b(v)m(ersion.)p 0 2331 1779 4 v 1874 2364 a(Log)p 2122 +2331 V 83 2505 a Fm([)p Fh(LDF)25 b(2003.05.06.)p Fm(])61 +b(Changed)27 b(the)h(conditional,)f(where)g Fi(text)p +2058 2505 26 4 v 30 w(short)40 b Fm(is)27 b(compared)g(with)h +Ff(WORLD_VALUES)o Fm(,)0 2604 y Ff(PROJ_VALUES)p Fm(,)22 +b(etc.)35 b(I)22 b(had)f(to)g(c)n(hange)f(it,)j(b)r(ecause)e(I'v)n(e)f +(added)h Ff(WORLD_VALUES_X_Y)n Fm(,)i(etc.)35 b(No)n(w,)22 +b(the)f(conditional)g(tests)0 2704 y(for)34 b Ff(VIEW_VALUES_X_Y)n +Fn(\024)o Fi(text)p 994 2704 V 30 w(short)12 b Fn(\024)p +Ff(WORLD_VALUES)o Fm(.)57 b(Of)34 b(course,)h(this)g(mak)n(es)e(an)h +(assumption)g(ab)r(out)g(the)g(v)-5 b(alues)0 2803 y(that)26 +b(are)e(used)i(to)f(signal)f(that)i(co)r(ordinate)e(v)-5 +b(alues)25 b(should)g(b)r(e)h(used)g(for)f(the)g(lab)r(el,)h(but)g(I)g +(think)g(it's)f(w)n(orth)g(it,)h(to)g(a)n(v)n(oid)0 2903 +y(testing)i Fi(text)p 411 2903 V 29 w(short)40 b Fm(against)27 +b(eac)n(h)f(v)-5 b(alue)28 b(individually)-7 b(.)83 3003 +y([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 b(Made)27 b Fi(p)l(osition)p +1253 3003 V 32 w(string)39 b Fm(and)28 b Fi(dot)40 b +Fm(argumen)n(ts)26 b Fk(const)5 b Fm(.)p 0 3095 3900 +4 v 0 3252 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3351 y Fk(v)m(oid)30 b Fi(lab)l(el)14 b Fm(\()p Fk(short)31 b Fi(text)p 874 3351 26 4 v 29 w(short)36 b Fm(=)22 b(0)p Fe(;)14 b Fk(const)30 b(string)h Fi(p)l(osition)p 2088 @@ -20562,8 +20538,8 @@ Fk(Picture)249 3451 y Fm(&)p Fi(pictur)l(e)33 b Fm(=)23 b Fi(curr)l(ent)p 949 3451 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 222 222 -TeXDict begin 222 221 bop 0 83 a Fm(222)140 b Fl(NORMAL)22 +%%Page: 224 224 +TeXDict begin 224 223 bop 0 83 a Fm(224)140 b Fl(NORMAL)22 b(VERSION)2276 b(3DLDFPR)n(G)142 b Fn(x)p Fm(830)0 263 y Fk(830.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -20621,125 +20597,122 @@ Fk(Picture)33 b Fm(argumen)n(t.)83 3003 y([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 b(Made)27 b Fi(p)l(osition)p 1253 3003 V 32 w(string)39 b Fm(and)28 b Fi(dot)40 b -Fm(argumen)n(ts)26 b Fk(const)5 b Fm(.)p 0 3107 1643 -4 v 1738 3139 a Fk(Begin)31 b(Log)p 2257 3107 V 0 3272 -1678 4 v 1773 3305 a(End)h(Log)p 2222 3272 V 0 3429 a -Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h -Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3529 y Fk(v)m(oid)33 +Fm(argumen)n(ts)26 b Fk(const)5 b Fm(.)p 0 3106 1779 +4 v 1874 3139 a Fk(Log)p 2122 3106 V 0 3272 3900 4 v +0 3429 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3528 y Fk(v)m(oid)33 b Fi(lab)l(el)14 b Fm(\()p Fk(Picture)34 b Fm(&)p Fi(pictur)l(e)10 -b Fe(;)k Fk(short)33 b Fi(text)p 1579 3529 26 4 v 30 +b Fe(;)k Fk(short)33 b Fi(text)p 1579 3528 26 4 v 30 w(short)j Fm(=)24 b(0)p Fe(;)14 b Fk(const)33 b(string)h -Fi(p)l(osition)p 2802 3529 V 32 w(string)h Fm(=)24 b -Ff("top")r Fe(;)14 b Fk(const)34 b(b)s(o)s(ol)249 3629 +Fi(p)l(osition)p 2802 3528 V 32 w(string)h Fm(=)24 b +Ff("top")r Fe(;)14 b Fk(const)34 b(b)s(o)s(ol)249 3628 y Fi(dot)i Fm(=)22 b Fi(false)12 b Fm(\))28 b Fk(const)5 -b Fm(;)0 3828 y Fk(832.)0 3952 y Fn(h)14 b Fm(De\014ne)28 +b Fm(;)0 3827 y Fk(832.)0 3952 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 4052 y Fk(v)m(oid)34 b(P)m(ath)14 +b Fm(+)p Fn(\021)83 4051 y Fk(v)m(oid)34 b(P)m(ath)14 b Fm(::)8 b Fi(lab)l(el)14 b Fm(\()p Fk(Picture)35 b Fm(&)o Fi(pictur)l(e)11 b Fe(;)j Fk(short)34 b Fi(text)p -1848 4052 V 29 w(short)13 b Fe(;)h Fk(const)33 b(string)i -Fi(p)l(osition)p 2917 4052 V 31 w(string)12 b Fe(;)i -Fk(const)34 b(b)s(o)s(ol)e Fi(dot)12 b Fm(\))415 4152 -y Fk(const)83 4251 y Fn(f)166 4351 y Fi(lab)l(el)i Fm(\()p -Fi(text)p 506 4351 V 30 w(short)e Fe(;)i Fi(p)l(osition)p -1047 4351 V 32 w(string)d Fe(;)j Fi(dot)f Fe(;)h Fi(pictur)l(e)c -Fm(\);)83 4451 y Fn(g)0 4650 y Fk(833.)94 b(Dotlab)s(el.)p +1848 4051 V 29 w(short)13 b Fe(;)h Fk(const)33 b(string)i +Fi(p)l(osition)p 2917 4051 V 31 w(string)12 b Fe(;)i +Fk(const)34 b(b)s(o)s(ol)e Fi(dot)12 b Fm(\))415 4151 +y Fk(const)83 4251 y Fn(f)166 4350 y Fi(lab)l(el)i Fm(\()p +Fi(text)p 506 4350 V 30 w(short)e Fe(;)i Fi(p)l(osition)p +1047 4350 V 32 w(string)d Fe(;)j Fi(dot)f Fe(;)h Fi(pictur)l(e)c +Fm(\);)83 4450 y Fn(g)0 4649 y Fk(833.)94 b(Dotlab)s(el.)p eop end -%%Page: 223 223 -TeXDict begin 223 222 bop 0 83 a Fn(x)p Fm(834)140 b -Fl(3DLDFPR)n(G)2275 b(NORMAL)23 b(VERSION)141 b Fm(223)0 -263 y Fk(834.)94 b(Normal)31 b(v)m(ersion.)p 0 339 1643 -4 v 1738 371 a(Begin)g(Log)p 2257 339 V 83 512 a Fm([)p -Fh(LDF)25 b(2003.07.09.)p Fm(])61 b(Made)27 b Fi(text)p -1105 512 26 4 v 30 w(short)40 b Fm(and)28 b Fi(p)l(osition)p -1799 512 V 31 w(string)39 b Fm(argumen)n(ts)27 b Fk(const)t -Fm(.)p 0 604 1678 4 v 1773 637 a Fk(End)32 b(Log)p 2222 -604 V 0 761 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 -b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -861 y Fk(v)m(oid)40 b Fi(dotlab)l(el)14 b Fm(\()p Fk(const)40 -b(short)f Fi(text)p 1262 861 26 4 v 30 w(short)47 b Fm(=)35 -b(0)o Fe(;)14 b Fk(const)40 b(string)g Fi(p)l(osition)p -2519 861 V 32 w(string)46 b Fm(=)35 b Ff("top")r Fe(;)14 -b Fk(Picture)249 960 y Fm(&)p Fi(pictur)l(e)33 b Fm(=)23 -b Fi(curr)l(ent)p 949 960 V 30 w(pictur)l(e)10 b Fm(\))28 -b Fk(const)5 b Fm(;)0 1160 y Fk(835.)0 1284 y Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 1384 y Fk(v)m(oid)33 b(P)m(ath)14 -b Fm(::)8 b Fi(dotlab)l(el)14 b Fm(\()p Fk(const)33 b(short)g -Fi(text)p 1508 1384 V 29 w(short)12 b Fe(;)i Fk(const)33 -b(string)g Fi(p)l(osition)p 2574 1384 V 32 w(string)11 -b Fe(;)j Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)10 b Fm(\))28 -b Fk(const)83 1483 y Fn(f)166 1583 y Fi(lab)l(el)14 b -Fm(\()p Fi(text)p 506 1583 V 30 w(short)e Fe(;)i Fi(p)l(osition)p -1047 1583 V 32 w(string)d Fe(;)j Fi(true)c Fe(;)k Fi(pictur)l(e)c -Fm(\);)83 1683 y Fn(g)0 1882 y Fk(836.)94 b(Picture)33 -b(argumen)m(t)f(\014rst.)p 0 1981 1643 4 v 1738 2014 -a(Begin)f(Log)p 2257 1981 V 83 2155 a Fm([)p Fh(LDF)25 -b(2002.09.17.)p Fm(])61 b(Added)28 b(this)g(function.)38 -b(It's)27 b(con)n(v)n(enien)n(t)g(for)g(when)h(I)f(w)n(an)n(t)g(to)h -(pass)f(a)g Fk(Picture)33 b Fm(argumen)n(t.)83 2254 y([)p -Fh(LDF)25 b(2003.07.09.)p Fm(])61 b(Made)27 b Fi(text)p -1105 2254 26 4 v 30 w(short)40 b Fm(and)28 b Fi(p)l(osition)p -1799 2254 V 31 w(string)39 b Fm(argumen)n(ts)27 b Fk(const)t -Fm(.)p 0 2346 1678 4 v 1773 2379 a Fk(End)32 b(Log)p -2222 2346 V 0 2503 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 -b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2603 y Fk(v)m(oid)34 b Fi(dotlab)l(el)15 b Fm(\()p Fk(Picture)35 -b Fm(&)o Fi(pictur)l(e)11 b Fe(;)j Fk(const)34 b(short)g -Fi(text)p 1947 2603 26 4 v 30 w(short)k Fm(=)26 b(0)o -Fe(;)14 b Fk(const)34 b(string)h Fi(p)l(osition)p 3175 -2603 V 32 w(string)j Fm(=)25 b Ff("top")s Fm(\))249 2702 -y Fk(const)5 b Fm(;)0 2902 y Fk(837.)0 3026 y Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3126 y Fk(v)m(oid)33 b(P)m(ath)14 -b Fm(::)8 b Fi(dotlab)l(el)14 b Fm(\()p Fk(Picture)34 -b Fm(&)o Fi(pictur)l(e)11 b Fe(;)j Fk(const)32 b(short)h -Fi(text)p 2207 3126 V 29 w(short)13 b Fe(;)h Fk(const)32 -b(string)h Fi(p)l(osition)p 3273 3126 V 32 w(string)11 -b Fm(\))28 b Fk(const)83 3226 y Fn(f)166 3325 y Fi(dotlab)l(el)14 -b Fm(\()p Fi(text)p 618 3325 V 30 w(short)f Fe(;)h Fi(p)l(osition)p -1160 3325 V 31 w(string)e Fe(;)i Fi(pictur)l(e)c Fm(\);)83 -3425 y Fn(g)0 3624 y Fk(838.)94 b(Outputting.)0 3823 +%%Page: 225 225 +TeXDict begin 225 224 bop 0 83 a Fn(x)p Fm(834)140 b +Fl(3DLDFPR)n(G)2275 b(NORMAL)23 b(VERSION)141 b Fm(225)0 +263 y Fk(834.)94 b(Normal)31 b(v)m(ersion.)p 0 339 1779 +4 v 1874 371 a(Log)p 2122 339 V 83 512 a Fm([)p Fh(LDF)25 +b(2003.07.09.)p Fm(])61 b(Made)27 b Fi(text)p 1105 512 +26 4 v 30 w(short)40 b Fm(and)28 b Fi(p)l(osition)p 1799 +512 V 31 w(string)39 b Fm(argumen)n(ts)27 b Fk(const)t +Fm(.)p 0 604 3900 4 v 0 761 a Fn(h)14 b Fm(Declare)27 +b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 861 y Fk(v)m(oid)40 b Fi(dotlab)l(el)14 +b Fm(\()p Fk(const)40 b(short)f Fi(text)p 1262 861 26 +4 v 30 w(short)47 b Fm(=)35 b(0)o Fe(;)14 b Fk(const)40 +b(string)g Fi(p)l(osition)p 2519 861 V 32 w(string)46 +b Fm(=)35 b Ff("top")r Fe(;)14 b Fk(Picture)249 960 y +Fm(&)p Fi(pictur)l(e)33 b Fm(=)23 b Fi(curr)l(ent)p 949 +960 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)0 +1160 y Fk(835.)0 1284 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 +b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1384 y Fk(v)m(oid)33 b(P)m(ath)14 b Fm(::)8 b Fi(dotlab)l(el)14 +b Fm(\()p Fk(const)33 b(short)g Fi(text)p 1508 1384 V +29 w(short)12 b Fe(;)i Fk(const)33 b(string)g Fi(p)l(osition)p +2574 1384 V 32 w(string)11 b Fe(;)j Fk(Picture)33 b Fm(&)p +Fi(pictur)l(e)10 b Fm(\))28 b Fk(const)83 1483 y Fn(f)166 +1583 y Fi(lab)l(el)14 b Fm(\()p Fi(text)p 506 1583 V +30 w(short)e Fe(;)i Fi(p)l(osition)p 1047 1583 V 32 w(string)d +Fe(;)j Fi(true)c Fe(;)k Fi(pictur)l(e)c Fm(\);)83 1683 +y Fn(g)0 1882 y Fk(836.)94 b(Picture)33 b(argumen)m(t)f(\014rst.)p +0 1981 1779 4 v 1874 2013 a(Log)p 2122 1981 V 83 2154 +a Fm([)p Fh(LDF)25 b(2002.09.17.)p Fm(])61 b(Added)28 +b(this)g(function.)38 b(It's)27 b(con)n(v)n(enien)n(t)g(for)g(when)h(I) +f(w)n(an)n(t)g(to)h(pass)f(a)g Fk(Picture)33 b Fm(argumen)n(t.)83 +2253 y([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 b(Made)27 +b Fi(text)p 1105 2253 26 4 v 30 w(short)40 b Fm(and)28 +b Fi(p)l(osition)p 1799 2253 V 31 w(string)39 b Fm(argumen)n(ts)27 +b Fk(const)t Fm(.)p 0 2345 3900 4 v 0 2503 a Fn(h)14 +b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 2602 y Fk(v)m(oid)34 b +Fi(dotlab)l(el)15 b Fm(\()p Fk(Picture)35 b Fm(&)o Fi(pictur)l(e)11 +b Fe(;)j Fk(const)34 b(short)g Fi(text)p 1947 2602 26 +4 v 30 w(short)k Fm(=)26 b(0)o Fe(;)14 b Fk(const)34 +b(string)h Fi(p)l(osition)p 3175 2602 V 32 w(string)j +Fm(=)25 b Ff("top")s Fm(\))249 2702 y Fk(const)5 b Fm(;)0 +2901 y Fk(837.)0 3026 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 +b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3125 y Fk(v)m(oid)33 b(P)m(ath)14 b Fm(::)8 b Fi(dotlab)l(el)14 +b Fm(\()p Fk(Picture)34 b Fm(&)o Fi(pictur)l(e)11 b Fe(;)j +Fk(const)32 b(short)h Fi(text)p 2207 3125 V 29 w(short)13 +b Fe(;)h Fk(const)32 b(string)h Fi(p)l(osition)p 3273 +3125 V 32 w(string)11 b Fm(\))28 b Fk(const)83 3225 y +Fn(f)166 3324 y Fi(dotlab)l(el)14 b Fm(\()p Fi(text)p +618 3324 V 30 w(short)f Fe(;)h Fi(p)l(osition)p 1160 +3324 V 31 w(string)e Fe(;)i Fi(pictur)l(e)c Fm(\);)83 +3424 y Fn(g)0 3623 y Fk(838.)94 b(Outputting.)0 3823 y(839.)g(Extract.)j Fm(This)27 b(is)h(needed)g(for)f(outputting)h(a)f -Fk(Picture)5 b Fm(.)83 3923 y([)p Fh(LDF)25 b(2003.01.31.)p +Fk(Picture)5 b Fm(.)83 3922 y([)p Fh(LDF)25 b(2003.01.31.)p Fm(])61 b(??)37 b(Do)28 b(I)g(need)f(to)h(call)f Fk(P)m(oin)m(t)14 b Fm(::)8 b Fi(pr)l(oje)l(ct)13 b Fm(\()h(\))28 b(on)f(the)h Fk(P)m(oin)m(ts)33 b Fm(here)27 b(and)g(in)h Fk(P)m(ath)14 -b Fm(::)8 b Fi(pr)l(oje)l(ct)14 b Fm(\()g(\)?)p 0 4027 -1643 4 v 1738 4059 a Fk(Begin)31 b(Log)p 2257 4027 V -83 4200 a Fm([)p Fh(LDF)25 b(2002.09.17.)p Fm(])60 b(Added)27 -b Fk(const)k(F)-8 b(o)s(cus)31 b Fm(&)p Fe(f)k Fm(argumen)n(t)26 -b(and)g(error)e(handling)j(co)r(de.)36 b(No)n(w,)26 b(if)h(an)n(y)f(of) -g(the)h Fk(P)m(oin)m(ts)0 4300 y Fm(on)i Fk(v)m(ector)5 -b Fn(h)p Fk(P)m(oin)m(t)35 b Fn(\003)o(i)30 b Fi(p)l(oints)40 +b Fm(::)8 b Fi(pr)l(oje)l(ct)14 b Fm(\()g(\)?)p 0 4025 +1779 4 v 1874 4058 a Fk(Log)p 2122 4025 V 83 4199 a Fm([)p +Fh(LDF)25 b(2002.09.17.)p Fm(])60 b(Added)27 b Fk(const)k(F)-8 +b(o)s(cus)31 b Fm(&)p Fe(f)k Fm(argumen)n(t)26 b(and)g(error)e +(handling)j(co)r(de.)36 b(No)n(w,)26 b(if)h(an)n(y)f(of)g(the)h +Fk(P)m(oin)m(ts)0 4298 y Fm(on)i Fk(v)m(ector)5 b Fn(h)p +Fk(P)m(oin)m(t)35 b Fn(\003)o(i)30 b Fi(p)l(oints)40 b Fm(cannot)28 b(b)r(e)h(pro)5 b(jected)29 b(on)n(to)f(the)h(pro)5 b(jection)28 b(plane)g(using)h(the)g Fk(F)-8 b(o)s(cus)33 -b Fe(f)9 b Fm(,)29 b(the)g Fk(P)m(ath)35 b Fm(is)0 4399 +b Fe(f)9 b Fm(,)29 b(the)g Fk(P)m(ath)35 b Fm(is)0 4398 y(not)26 b(put)h(on)n(to)e(the)h Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)31 b Fn(\003i)26 b Fk(Picture)13 b Fm(::)8 b Fi(elements)k Fm(,)26 b(and)g(consequen)n(tly)f(nev)n(er)g(reac)n (hes)f Fk(Picture)14 b Fm(::)8 b Fi(output)k Fm(\()i(\))0 -4499 y(and)27 b Fk(P)m(ath)15 b Fm(::)8 b Fi(output)j -Fm(\()k(\).)83 4599 y([)p Fh(LDF)25 b(2003.05.09.)p Fm(])52 +4498 y(and)27 b Fk(P)m(ath)15 b Fm(::)8 b Fi(output)j +Fm(\()k(\).)83 4597 y([)p Fh(LDF)25 b(2003.05.09.)p Fm(])52 b(Rewrote)18 b(this)h(function.)34 b(It)19 b(no)n(w)f(calls)g Fk(P)m(oin)m(t)c Fm(::)8 b Fi(extr)l(act)j Fm(\()k(\))k(instead)f(of)h -(calling)e Fi(apply)p 3431 4599 26 4 v 33 w(tr)l(ansform)11 -b Fm(\()j(\))0 4698 y(and)27 b Fi(pr)l(oje)l(ct)13 b +(calling)e Fi(apply)p 3431 4597 26 4 v 33 w(tr)l(ansform)11 +b Fm(\()j(\))0 4697 y(and)27 b Fi(pr)l(oje)l(ct)13 b Fm(\()h(\))28 b(on)g(the)g Fk(P)m(oin)m(ts)k Fm(directly)-7 b(.)37 b(This)28 b(mak)n(es)e(m)n(uc)n(h)h(more)g(sense,)g(since)h(an)n (y)f(c)n(hanges)f(to)h Fk(P)m(oin)m(t)14 b Fm(::)8 b -Fi(extr)l(act)k Fm(\()i(\))0 4798 y(w)n(ould)27 b(otherwise)g(not)g(ha) +Fi(extr)l(act)k Fm(\()i(\))0 4796 y(w)n(ould)27 b(otherwise)g(not)g(ha) n(v)n(e)g(b)r(een)h(applied)f(to)h Fk(P)m(oin)m(ts)k -Fm(on)c Fk(P)m(aths)5 b Fm(.)p 0 4890 1678 4 v 1773 4922 -a Fk(End)32 b(Log)p 2222 4890 V 0 5047 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 5147 y Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)33 -b Fn(\003)o(i)28 b Fi(extr)l(act)11 b Fm(\()p Fk(const)33 -b(F)-8 b(o)s(cus)32 b Fm(&)p Fe(f)8 b(;)14 b Fk(const)33 -b(unsigned)e(short)h Fi(pr)l(oj)18 b Fe(;)c Fk(real)32 -b Fi(factor)14 b Fm(\);)p eop end -%%Page: 224 224 -TeXDict begin 224 223 bop 0 83 a Fm(224)140 b Fl(EXTRA)n(CT)2588 +Fm(on)c Fk(P)m(aths)5 b Fm(.)p 0 4888 3900 4 v 0 5046 +a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 5145 y Fk(v)m(ector)6 +b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)28 b Fi(extr)l(act)11 +b Fm(\()p Fk(const)33 b(F)-8 b(o)s(cus)32 b Fm(&)p Fe(f)8 +b(;)14 b Fk(const)33 b(unsigned)e(short)h Fi(pr)l(oj)18 +b Fe(;)c Fk(real)32 b Fi(factor)14 b Fm(\);)p eop end +%%Page: 226 226 +TeXDict begin 226 225 bop 0 83 a Fm(226)140 b Fl(EXTRA)n(CT)2588 b(3DLDFPR)n(G)142 b Fn(x)p Fm(840)0 263 y Fk(840.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(ector)6 @@ -20822,9 +20795,9 @@ 678 4024 V 32 w(extr)l(emes)34 b Fm(=)22 b Ff(INVALID_REAL)p Fm(;)332 4124 y Fk(return)33 b Fi(false)12 b Fm(;)249 4223 y Fn(g)p eop end -%%Page: 225 225 -TeXDict begin 225 224 bop 0 83 a Fn(x)p Fm(843)140 b -Fl(3DLDFPR)n(G)2380 b(SET)24 b(EXTREMES)140 b Fm(225)0 +%%Page: 227 227 +TeXDict begin 227 226 bop 0 83 a Fn(x)p Fm(843)140 b +Fl(3DLDFPR)n(G)2380 b(SET)24 b(EXTREMES)140 b Fm(227)0 263 y Fk(843.)94 b Fm([)p Fh(LDF)26 b(2002.09.18.)p Fm(])54 b(Added)22 b(this)g(routine.)35 b(Set)22 b(the)g Fi(minimum)27 b Fm(v)-5 b(alues)21 b(to)h Ff(MAX_REAL)h Fm(and)e(the)h @@ -20959,8 +20932,8 @@ Fn(\034)e Fi(pr)l(oje)l(ctive)p 2574 3974 V 32 w(extr)l(emes)10 b Fm([)p Fe(i)p Fm(])23 b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)83 4074 y Fn(g)p eop end -%%Page: 226 226 -TeXDict begin 226 225 bop 0 83 a Fm(226)140 b Fl(SET)23 +%%Page: 228 228 +TeXDict begin 228 227 bop 0 83 a Fm(228)140 b Fl(SET)23 b(EXTREMES)2380 b(3DLDFPR)n(G)142 b Fn(x)p Fm(844)0 263 y Fk(844.)94 b Fm([)p Fh(LDF)26 b(2002.09.18.)p Fm(])71 b(Added)38 b(this)g(error)e(handling)i(co)r(de.)67 b(There)38 @@ -21035,9 +21008,9 @@ Fm(+)p Fn(\021)83 3825 y Fk(virtual)33 b(real)f Fi(get)p 692 3825 V 31 w(minimum)p 1069 3825 V 30 w(z)15 b Fm(\()f(\))28 b Fk(const)t Fm(;)p eop end -%%Page: 227 227 -TeXDict begin 227 226 bop 0 83 a Fn(x)p Fm(847)140 b -Fl(3DLDFPR)n(G)2350 b(GET)24 b(MINIMUM)f(Z)141 b Fm(227)0 +%%Page: 229 229 +TeXDict begin 229 228 bop 0 83 a Fn(x)p Fm(847)140 b +Fl(3DLDFPR)n(G)2350 b(GET)24 b(MINIMUM)f(Z)141 b Fm(229)0 263 y Fk(847.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(real)32 b(P)m(ath)15 b Fm(::)8 b Fi(get)p 647 @@ -21107,8 +21080,8 @@ Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4846 y Fk(virtual)33 b(v)m(oid)f Fi(suppr)l(ess)p 907 4846 V 31 w(output)11 b Fm(\()j(\);)p eop end -%%Page: 228 228 -TeXDict begin 228 227 bop 0 83 a Fm(228)140 b Fl(SUPPRESS)24 +%%Page: 230 230 +TeXDict begin 230 229 bop 0 83 a Fm(230)140 b Fl(SUPPRESS)24 b(OUTPUT)2244 b(3DLDFPR)n(G)142 b Fn(x)p Fm(853)0 263 y Fk(853.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -21140,38 +21113,37 @@ b Fm(\()j(\))23 b(will)g(already)e(ha)n(v)n(e)h(ensured)0 2430 y(that)28 b(the)g Fk(P)m(ath)34 b Fm(is)27 b(not)h(on)f Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)32 b Fn(\003i)c Fi(elements)39 -b Fm(in)27 b(the)h Fk(Picture)6 b Fm(.)p 0 2534 1643 -4 v 1738 2566 a Fk(Begin)31 b(Log)p 2257 2534 V 83 2707 -a Fm([)p Fh(LDF)25 b(2003.01.15.)p Fm(])67 b(Added)35 -b(co)r(de)f(for)f(writing)h(\\dra)n(w)n(arro)n(w")29 -b(to)34 b Fi(out)p 2367 2707 26 4 v 30 w(str)l(e)l(am)10 -b Fm(,)36 b(if)e Fi(arr)l(ow)48 b Fn(\021)33 b Fi(true)10 -b Fm(.)56 b(This)33 b(is)h(for)g(the)0 2807 y Fi(dr)l(awarr)l(ow)15 -b Fm(\()f(\))28 b(functions)g(for)f Fk(P)m(ath)33 b Fm(and)28 -b Fk(P)m(oin)m(t)33 b Fm(that)28 b(I'v)n(e)f(added)g(to)r(da)n(y)-7 -b(.)p 0 2899 1678 4 v 1773 2931 a Fk(End)32 b(Log)p 2222 -2899 V 0 3056 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(in)27 b(the)h Fk(Picture)6 b Fm(.)p 0 2533 1779 +4 v 1874 2566 a Fk(Log)p 2122 2533 V 83 2706 a Fm([)p +Fh(LDF)25 b(2003.01.15.)p Fm(])67 b(Added)35 b(co)r(de)f(for)f(writing) +h(\\dra)n(w)n(arro)n(w")29 b(to)34 b Fi(out)p 2367 2706 +26 4 v 30 w(str)l(e)l(am)10 b Fm(,)36 b(if)e Fi(arr)l(ow)48 +b Fn(\021)33 b Fi(true)10 b Fm(.)56 b(This)33 b(is)h(for)g(the)0 +2806 y Fi(dr)l(awarr)l(ow)15 b Fm(\()f(\))28 b(functions)g(for)f +Fk(P)m(ath)33 b Fm(and)28 b Fk(P)m(oin)m(t)33 b Fm(that)28 +b(I'v)n(e)f(added)g(to)r(da)n(y)-7 b(.)p 0 2898 3900 +4 v 0 3055 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3155 y Fk(virtual)33 b(v)m(oid)f Fi(output)12 b Fm(\()i(\);)0 -3355 y Fk(857.)0 3479 y Fn(h)g Fm(De\014ne)28 b Fk(P)m(ath)34 +3354 y Fk(857.)0 3479 y Fn(h)g Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3579 y Fk(v)m(oid)33 b(P)m(ath)14 b Fm(::)8 b Fi(output)j +3578 y Fk(v)m(oid)33 b(P)m(ath)14 b Fm(::)8 b Fi(output)j Fm(\()k(\))p Fn(f)27 b Fk(b)s(o)s(ol)k Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p Fe(=)249 3703 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p Ff(Path::o)o(utp)-7 b(ut\(\)")25 b Fn(\034)f Ff("\\n")h -Fn(\034)e Fi(\015ush)11 b Fm(;)249 3803 y Fk(if)41 b -Fm(\()p Fi(do)p 467 3803 26 4 v 32 w(output)34 b Fn(\021)23 -b Fi(false)12 b Fm(\))41 b Fn(f)332 3903 y Fk(if)g Fm(\()p +Fn(\034)e Fi(\015ush)11 b Fm(;)249 3802 y Fk(if)41 b +Fm(\()p Fi(do)p 467 3802 26 4 v 32 w(output)34 b Fn(\021)23 +b Fi(false)12 b Fm(\))41 b Fn(f)332 3902 y Fk(if)g Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("In)p Fj( )p Ff(Path::output\()o(\):)p Fj( )-7 b Ff(do_output)p Fj( )p Ff(==)p Fj( )p Ff(fals)o(e.)o Fj( )h Ff(Returning.\\n")22 b Fn(\034)h Fi(\015ush)10 b Fm(;)332 4002 y Fk(return)5 -b Fm(;)249 4102 y Fn(g)p eop end -%%Page: 229 229 -TeXDict begin 229 228 bop 0 83 a Fn(x)p Fm(858)140 b -Fl(3DLDFPR)n(G)2635 b(OUTPUT)140 b Fm(229)0 263 y Fk(858.)94 +b Fm(;)249 4101 y Fn(g)p eop end +%%Page: 231 231 +TeXDict begin 231 230 bop 0 83 a Fn(x)p Fm(858)140 b +Fl(3DLDFPR)n(G)2635 b(OUTPUT)140 b Fm(231)0 263 y Fk(858.)94 b Fm([)p Fh(LDF)26 b(2002.09.27.)p Fm(])61 b(Added)29 b(this)g(error)d(handling)i(co)r(de.)39 b(If)29 b(the)g Fk(P)m(ath)34 b Fm(is)28 b(empt)n(y)-7 b(,)29 b(don't)g(output)f(it.)40 @@ -21206,8 +21178,8 @@ 1384 y Ff("Not)p Fj( )p Ff(doing)p Fj( )p Ff(anyth)o(ing)o(.)-6 b(\\n\\n")25 b Fn(\034)e Fi(\015ush)11 b Fm(;)166 1483 y Fk(return)5 b Fm(;)83 1583 y Fn(g)p eop end -%%Page: 230 230 -TeXDict begin 230 229 bop 0 83 a Fm(230)140 b Fl(OUTPUT)2634 +%%Page: 232 232 +TeXDict begin 232 231 bop 0 83 a Fm(232)140 b Fl(OUTPUT)2634 b(3DLDFPR)n(G)142 b Fn(x)p Fm(859)0 263 y Fk(859.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(ector)6 @@ -21318,65 +21290,64 @@ b Ff(";\\n")j Fn(\034)d Fi(\015ush)10 b Fm(;)83 4522 y Fi(p)l(oint)p 268 4522 V 31 w(iter)36 b Fm(=)23 b Fi(p)l(oints)11 b Fe(:)p Fi(b)l(e)l(gin)g Fm(\()j(\);)p eop end -%%Page: 231 231 -TeXDict begin 231 230 bop 0 83 a Fn(x)p Fm(860)140 b -Fl(3DLDFPR)n(G)2635 b(OUTPUT)140 b Fm(231)0 263 y Fk(860.)p -0 339 1643 4 v 1738 371 a(Begin)31 b(Log)p 2257 339 V -83 512 a Fm([)p Fh(LDF)25 b(2002.05.10.)p Fm(])53 b(Added)20 -b(the)h(co)r(de)e(in)h(this)g(section.)34 b(It)20 b(\014xes)f(a)g(bug.) -34 b(If)20 b(it's)g(not)g(done,)h(then)f(the)g(correct)e(connectors)0 +%%Page: 233 233 +TeXDict begin 233 232 bop 0 83 a Fn(x)p Fm(860)140 b +Fl(3DLDFPR)n(G)2635 b(OUTPUT)140 b Fm(233)0 263 y Fk(860.)p +0 339 1779 4 v 1874 371 a(Log)p 2122 339 V 83 512 a Fm([)p +Fh(LDF)25 b(2002.05.10.)p Fm(])53 b(Added)20 b(the)h(co)r(de)e(in)h +(this)g(section.)34 b(It)20 b(\014xes)f(a)g(bug.)34 b(If)20 +b(it's)g(not)g(done,)h(then)f(the)g(correct)e(connectors)0 612 y(are)27 b(not)g(used)h(when)g(the)g Fk(P)m(ath)33 -b Fm(is)28 b(output)g(the)g(second)f(time.)p 0 704 1678 -4 v 1773 736 a Fk(End)32 b(Log)p 2222 704 V 0 861 a Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 960 y Fi(c)l(onne)l(ctor)p -435 960 26 4 v 30 w(iter)37 b Fm(=)23 b Fi(c)l(onne)l(ctors)10 -b Fe(:)p Fi(b)l(e)l(gin)h Fm(\()j(\);)83 1060 y Fk(if)41 -b Fm(\()p Fi(c)l(onne)l(ctors)11 b Fe(:)p Fi(size)g Fm(\()j(\))24 -b Fe(>)f Fm(0)o(\))42 b Fi(c)l(onne)l(ctor)p 1426 1060 -V 30 w(string)35 b Fm(=)22 b Fn(\003)p Fi(c)l(onne)l(ctor)p -2174 1060 V 30 w(iter)2343 1052 y Fg(+)-8 b(+)2441 1060 -y Fm(;)83 1160 y Fk(else)45 b Fi(c)l(onne)l(ctor)p 633 -1160 V 30 w(string)35 b Fm(=)23 b Ff("--")r Fm(;)0 1359 -y Fk(861.)0 1483 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 +b Fm(is)28 b(output)g(the)g(second)f(time.)p 0 704 3900 +4 v 0 861 a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -1583 y Fk(if)41 b Fm(\()p Fi(arr)l(ow)d Fn(\021)22 b -Fi(true)10 b Fm(\))42 b Fi(out)p 892 1583 V 30 w(str)l(e)l(am)33 -b Fn(\034)23 b Ff("drawarrow)p Fj( )p Ff(")g Fn(\034)g(\003)o(\003)p -Fi(p)l(oint)p 2218 1583 V 31 w(iter)2387 1575 y Fg(+)-8 -b(+)2485 1583 y Fm(;)83 1683 y Fk(else)45 b Fi(out)p -401 1683 V 30 w(str)l(e)l(am)33 b Fn(\034)23 b Ff("draw)p -Fj( )p Ff(")i Fn(\034)e(\003\003)o Fi(p)l(oint)p 1509 -1683 V 31 w(iter)1679 1675 y Fg(+)-8 b(+)1776 1683 y -Fm(;)83 1782 y Fn(h)14 b Fm(Output)28 b Fk(P)m(ath)42 -b Fl(864)14 b Fn(i)83 1882 y Fk(if)41 b Fm(\()p Fi(dr)l(aw)p -387 1882 V 32 w(c)l(olor)c Fn(6)p Fm(=)23 b Fk(Colors)12 -b Fm(::)c Fi(default)p 1294 1882 V 32 w(c)l(olor)14 b -Fm(\))42 b Fi(out)p 1703 1882 V 30 w(str)l(e)l(am)33 -b Fn(\034)23 b Ff(")p Fj( )p Ff(withcolor)p Fj( )p Ff(")f -Fn(\034)h(\003)p Fi(dr)l(aw)p 3021 1882 V 31 w(c)l(olor)14 -b Fm(;)83 1982 y Fk(if)41 b Fm(\()p Fi(dashe)l(d)d Fn(6)p -Fm(=)23 b Ff("")s Fm(\))42 b Fi(out)p 859 1982 V 30 w(str)l(e)l(am)33 -b Fn(\034)23 b Ff(")p Fj( )p Ff(dashed)p Fj( )p Ff(")h -Fn(\034)f Fi(dashe)l(d)14 b Fm(;)83 2081 y Fk(if)41 b -Fm(\()p Fi(p)l(en)34 b Fn(6)p Fm(=)23 b Ff("")s Fm(\))42 -b Fi(out)p 742 2081 V 30 w(str)l(e)l(am)34 b Fn(\034)23 -b Ff(")p Fj( )p Ff(withpen)p Fj( )p Ff(")g Fn(\034)g -Fi(p)l(en)10 b Fm(;)83 2181 y Fi(out)p 203 2181 V 30 -w(str)l(e)l(am)33 b Fn(\034)23 b Ff(";\\n")j Fn(\034)d -Fi(\015ush)10 b Fm(;)28 b Fn(g)f(g)83 2280 y Fk(else)166 -2380 y(if)41 b Fm(\()p Fi(\014l)t(l)p 393 2380 V 31 w(dr)l(aw)p -594 2380 V 32 w(value)34 b Fn(\021)23 b Ff(UNDRAW)q Fm(\))42 -b Fn(f)249 2480 y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))h -Fi(c)l(out)34 b Fn(\034)23 b Ff("Undrawing.\\n")f Fn(\034)h -Fi(\015ush)10 b Fm(;)249 2579 y Fi(out)p 369 2579 V 30 -w(str)l(e)l(am)33 b Fn(\034)24 b Ff("undraw)p Fj( )p -Ff(")f Fn(\034)g(\003\003)o Fi(p)l(oint)p 1564 2579 V -31 w(iter)1734 2571 y Fg(+)-8 b(+)1832 2579 y Fm(;)249 -2679 y Fn(h)14 b Fm(Output)28 b Fk(P)m(ath)42 b Fl(864)14 -b Fn(i)249 2779 y Fk(if)41 b Fm(\()p Fi(dashe)l(d)d Fn(6)p -Fm(=)23 b Ff("")s Fm(\))42 b Fi(out)p 1025 2779 V 30 -w(str)l(e)l(am)33 b Fn(\034)23 b Ff(")p Fj( )p Ff(dashed)p +960 y Fi(c)l(onne)l(ctor)p 435 960 26 4 v 30 w(iter)37 +b Fm(=)23 b Fi(c)l(onne)l(ctors)10 b Fe(:)p Fi(b)l(e)l(gin)h +Fm(\()j(\);)83 1060 y Fk(if)41 b Fm(\()p Fi(c)l(onne)l(ctors)11 +b Fe(:)p Fi(size)g Fm(\()j(\))24 b Fe(>)f Fm(0)o(\))42 +b Fi(c)l(onne)l(ctor)p 1426 1060 V 30 w(string)35 b Fm(=)22 +b Fn(\003)p Fi(c)l(onne)l(ctor)p 2174 1060 V 30 w(iter)2343 +1052 y Fg(+)-8 b(+)2441 1060 y Fm(;)83 1160 y Fk(else)45 +b Fi(c)l(onne)l(ctor)p 633 1160 V 30 w(string)35 b Fm(=)23 +b Ff("--")r Fm(;)0 1359 y Fk(861.)0 1483 y Fn(h)14 b +Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 1583 y Fk(if)41 b Fm(\()p +Fi(arr)l(ow)d Fn(\021)22 b Fi(true)10 b Fm(\))42 b Fi(out)p +892 1583 V 30 w(str)l(e)l(am)33 b Fn(\034)23 b Ff("drawarrow)p +Fj( )p Ff(")g Fn(\034)g(\003)o(\003)p Fi(p)l(oint)p 2218 +1583 V 31 w(iter)2387 1575 y Fg(+)-8 b(+)2485 1583 y +Fm(;)83 1683 y Fk(else)45 b Fi(out)p 401 1683 V 30 w(str)l(e)l(am)33 +b Fn(\034)23 b Ff("draw)p Fj( )p Ff(")i Fn(\034)e(\003\003)o +Fi(p)l(oint)p 1509 1683 V 31 w(iter)1679 1675 y Fg(+)-8 +b(+)1776 1683 y Fm(;)83 1782 y Fn(h)14 b Fm(Output)28 +b Fk(P)m(ath)42 b Fl(864)14 b Fn(i)83 1882 y Fk(if)41 +b Fm(\()p Fi(dr)l(aw)p 387 1882 V 32 w(c)l(olor)c Fn(6)p +Fm(=)23 b Fk(Colors)12 b Fm(::)c Fi(default)p 1294 1882 +V 32 w(c)l(olor)14 b Fm(\))42 b Fi(out)p 1703 1882 V +30 w(str)l(e)l(am)33 b Fn(\034)23 b Ff(")p Fj( )p Ff(withcolor)p +Fj( )p Ff(")f Fn(\034)h(\003)p Fi(dr)l(aw)p 3021 1882 +V 31 w(c)l(olor)14 b Fm(;)83 1982 y Fk(if)41 b Fm(\()p +Fi(dashe)l(d)d Fn(6)p Fm(=)23 b Ff("")s Fm(\))42 b Fi(out)p +859 1982 V 30 w(str)l(e)l(am)33 b Fn(\034)23 b Ff(")p +Fj( )p Ff(dashed)p Fj( )p Ff(")h Fn(\034)f Fi(dashe)l(d)14 +b Fm(;)83 2081 y Fk(if)41 b Fm(\()p Fi(p)l(en)34 b Fn(6)p +Fm(=)23 b Ff("")s Fm(\))42 b Fi(out)p 742 2081 V 30 w(str)l(e)l(am)34 +b Fn(\034)23 b Ff(")p Fj( )p Ff(withpen)p Fj( )p Ff(")g +Fn(\034)g Fi(p)l(en)10 b Fm(;)83 2181 y Fi(out)p 203 +2181 V 30 w(str)l(e)l(am)33 b Fn(\034)23 b Ff(";\\n")j +Fn(\034)d Fi(\015ush)10 b Fm(;)28 b Fn(g)f(g)83 2280 +y Fk(else)166 2380 y(if)41 b Fm(\()p Fi(\014l)t(l)p 393 +2380 V 31 w(dr)l(aw)p 594 2380 V 32 w(value)34 b Fn(\021)23 +b Ff(UNDRAW)q Fm(\))42 b Fn(f)249 2480 y Fk(if)f Fm(\()p +Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Undrawing.\\n")f +Fn(\034)h Fi(\015ush)10 b Fm(;)249 2579 y Fi(out)p 369 +2579 V 30 w(str)l(e)l(am)33 b Fn(\034)24 b Ff("undraw)p +Fj( )p Ff(")f Fn(\034)g(\003\003)o Fi(p)l(oint)p 1564 +2579 V 31 w(iter)1734 2571 y Fg(+)-8 b(+)1832 2579 y +Fm(;)249 2679 y Fn(h)14 b Fm(Output)28 b Fk(P)m(ath)42 +b Fl(864)14 b Fn(i)249 2779 y Fk(if)41 b Fm(\()p Fi(dashe)l(d)d +Fn(6)p Fm(=)23 b Ff("")s Fm(\))42 b Fi(out)p 1025 2779 +V 30 w(str)l(e)l(am)33 b Fn(\034)23 b Ff(")p Fj( )p Ff(dashed)p Fj( )p Ff(")h Fn(\034)f Fi(dashe)l(d)14 b Fm(;)249 2878 y Fk(if)41 b Fm(\()p Fi(p)l(en)34 b Fn(6)p Fm(=)23 b Ff("")s Fm(\))42 b Fi(out)p 908 2878 V 30 w(str)l(e)l(am)34 @@ -21396,37 +21367,36 @@ b Fl(864)14 b Fn(i)249 3576 y Fi(out)p 369 3576 V 30 w(str)l(e)l(am)33 b Fn(\034)24 b Ff(";\\n")h Fn(\034)e Fi(\015ush)10 b Fm(;)166 3675 y Fn(g)p eop end -%%Page: 232 232 -TeXDict begin 232 231 bop 0 83 a Fm(232)140 b Fl(OUTPUT)2634 +%%Page: 234 234 +TeXDict begin 234 233 bop 0 83 a Fm(234)140 b Fl(OUTPUT)2634 b(3DLDFPR)n(G)142 b Fn(x)p Fm(862)0 263 y Fk(862.)94 -b Fm(Filldra)n(w)27 b(case.)p 0 339 1643 4 v 1738 371 -a Fk(Begin)k(Log)p 2257 339 V 83 512 a Fm([)p Fh(LDF)25 -b(2003.03.25.)p Fm(])78 b(Changed)44 b(this)g(section,)k(so)c(that)h -(the)f(outline)h(of)f(the)h Fk(P)m(ath)50 b Fm(is)44 -b(dra)n(wn,)k(if)d Fi(dr)l(aw)p 3570 512 26 4 v 31 w(c)l(olor)65 -b Fn(6)p Fm(=)0 612 y Fk(Colors)12 b Fm(::)c Fi(b)l(ackgr)l(ound)p -737 612 V 32 w(c)l(olor)14 b Fm(.)p 0 704 1678 4 v 1773 -736 a Fk(End)32 b(Log)p 2222 704 V 0 861 a Fn(h)14 b -Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 960 y Fk(else)166 1060 -y(if)41 b Fm(\()p Fi(\014l)t(l)p 393 1060 26 4 v 31 w(dr)l(aw)p -594 1060 V 32 w(value)34 b Fn(\021)23 b Ff(UNFILLDRAW)p -Fm(\))42 b Fn(f)249 1160 y Fk(if)f Fm(\()p Ff(DEBUG)s -Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Unfilldrawing.\\n)o(")e -Fn(\034)i Fi(\015ush)11 b Fm(;)249 1259 y Fk(if)41 b -Fm(\()p Fi(dr)l(aw)p 553 1259 V 32 w(c)l(olor)c Fn(\021)23 -b Fk(Colors)12 b Fm(::)c Fi(b)l(ackgr)l(ound)p 1616 1259 -V 32 w(c)l(olor)14 b Fm(\))42 b Fn(f)332 1359 y Fi(out)p -452 1359 V 30 w(str)l(e)l(am)33 b Fn(\034)24 b Ff("unfilldraw)p -Fj( )p Ff(")e Fn(\034)h(\003)o(\003)p Fi(p)l(oint)p 1822 -1359 V 31 w(iter)1991 1351 y Fg(+)-8 b(+)2089 1359 y -Fm(;)332 1459 y Fn(h)14 b Fm(Output)28 b Fk(P)m(ath)42 -b Fl(864)14 b Fn(i)332 1558 y Fk(if)41 b Fm(\()p Fi(dashe)l(d)d -Fn(6)p Fm(=)23 b Ff("")s Fm(\))42 b Fi(out)p 1108 1558 -V 30 w(str)l(e)l(am)33 b Fn(\034)23 b Ff(")p Fj( )p Ff(dashed)p -Fj( )p Ff(")h Fn(\034)f Fi(dashe)l(d)14 b Fm(;)332 1658 -y Fk(if)41 b Fm(\()p Fi(p)l(en)34 b Fn(6)p Fm(=)23 b -Ff("")s Fm(\))42 b Fi(out)p 991 1658 V 30 w(str)l(e)l(am)34 +b Fm(Filldra)n(w)27 b(case.)p 0 339 1779 4 v 1874 371 +a Fk(Log)p 2122 339 V 83 512 a Fm([)p Fh(LDF)e(2003.03.25.)p +Fm(])78 b(Changed)44 b(this)g(section,)k(so)c(that)h(the)f(outline)h +(of)f(the)h Fk(P)m(ath)50 b Fm(is)44 b(dra)n(wn,)k(if)d +Fi(dr)l(aw)p 3570 512 26 4 v 31 w(c)l(olor)65 b Fn(6)p +Fm(=)0 612 y Fk(Colors)12 b Fm(::)c Fi(b)l(ackgr)l(ound)p +737 612 V 32 w(c)l(olor)14 b Fm(.)p 0 704 3900 4 v 0 +861 a Fn(h)g Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h +Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 960 y Fk(else)166 +1060 y(if)41 b Fm(\()p Fi(\014l)t(l)p 393 1060 26 4 v +31 w(dr)l(aw)p 594 1060 V 32 w(value)34 b Fn(\021)23 +b Ff(UNFILLDRAW)p Fm(\))42 b Fn(f)249 1160 y Fk(if)f +Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 +b Ff("Unfilldrawing.\\n)o(")e Fn(\034)i Fi(\015ush)11 +b Fm(;)249 1259 y Fk(if)41 b Fm(\()p Fi(dr)l(aw)p 553 +1259 V 32 w(c)l(olor)c Fn(\021)23 b Fk(Colors)12 b Fm(::)c +Fi(b)l(ackgr)l(ound)p 1616 1259 V 32 w(c)l(olor)14 b +Fm(\))42 b Fn(f)332 1359 y Fi(out)p 452 1359 V 30 w(str)l(e)l(am)33 +b Fn(\034)24 b Ff("unfilldraw)p Fj( )p Ff(")e Fn(\034)h(\003)o(\003)p +Fi(p)l(oint)p 1822 1359 V 31 w(iter)1991 1351 y Fg(+)-8 +b(+)2089 1359 y Fm(;)332 1459 y Fn(h)14 b Fm(Output)28 +b Fk(P)m(ath)42 b Fl(864)14 b Fn(i)332 1558 y Fk(if)41 +b Fm(\()p Fi(dashe)l(d)d Fn(6)p Fm(=)23 b Ff("")s Fm(\))42 +b Fi(out)p 1108 1558 V 30 w(str)l(e)l(am)33 b Fn(\034)23 +b Ff(")p Fj( )p Ff(dashed)p Fj( )p Ff(")h Fn(\034)f Fi(dashe)l(d)14 +b Fm(;)332 1658 y Fk(if)41 b Fm(\()p Fi(p)l(en)34 b Fn(6)p +Fm(=)23 b Ff("")s Fm(\))42 b Fi(out)p 991 1658 V 30 w(str)l(e)l(am)34 b Fn(\034)23 b Ff(")p Fj( )p Ff(withpen)p Fj( )p Ff(")g Fn(\034)g Fi(p)l(en)10 b Fm(;)332 1757 y Fi(out)p 452 1757 V 30 w(str)l(e)l(am)33 b Fn(\034)24 b Ff(";\\n")h @@ -21472,9 +21442,9 @@ y(g)166 b Fe(=)p Fn(\003)40 b Fm(End)28 b(of)f Ff(UNFILLDRAW)h Fm(case.)36 b([)p Fh(LDF)25 b(2003.03.25.)p Fm(])75 b Fn(\003)p Fe(=)p eop end -%%Page: 233 233 -TeXDict begin 233 232 bop 0 83 a Fn(x)p Fm(863)140 b -Fl(3DLDFPR)n(G)2635 b(OUTPUT)140 b Fm(233)0 263 y Fk(863.)94 +%%Page: 235 235 +TeXDict begin 235 234 bop 0 83 a Fn(x)p Fm(863)140 b +Fl(3DLDFPR)n(G)2635 b(OUTPUT)140 b Fm(235)0 263 y Fk(863.)94 b Fm(Default)29 b(case.)36 b([)p Fh(LDF)25 b(2003.03.25.)p Fm(])0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -21521,18 +21491,18 @@ b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Path::ou)o(tpu)-7 b(t\(Focus\)")24 b Fn(\034)f Ff("\\n")j Fn(\034)d Fi(\015ush)10 b Fm(;)83 2081 y Fk(return)5 b Fm(;)37 b Fn(g)p eop end -%%Page: 234 234 -TeXDict begin 234 233 bop 0 83 a Fm(234)140 b Fl(OUTPUT)2634 +%%Page: 236 236 +TeXDict begin 236 235 bop 0 83 a Fm(236)140 b Fl(OUTPUT)2634 b(3DLDFPR)n(G)142 b Fn(x)p Fm(864)0 263 y Fk(864.)94 b Fm(When)29 b Fi(\014l)t(l)p 606 263 26 4 v 31 w(c)l(olor)43 b Fm(and)29 b Fi(dr)l(aw)p 1187 263 V 31 w(c)l(olor)43 b Fm(are)28 b(di\013eren)n(t,)h(this)g(will)g(ha)n(v)n(e)e(to)i(b)r(e)g (p)r(erformed)f(t)n(wice,)h(so)f(I'v)n(e)g(made)g(it)h(a)0 -363 y(named)f(section.)p 0 438 1643 4 v 1738 471 a Fk(Begin)j(Log)p -2257 438 V 83 612 a Fm([)p Fh(LDF)25 b(2002.11.03.)p -Fm(])66 b Fi(c)l(ounter)45 b Fm(is)33 b(no)n(w)e(initially)i(set)f(to)h -(2)f(instead)g(of)h(1.)51 b(This)32 b(mak)n(es)g(eac)n(h)f(line)i(ha)n -(v)n(e)e(at)i(most)f(t)n(w)n(o)0 711 y Fk(P)m(oin)m(ts)5 +363 y(named)f(section.)p 0 438 1779 4 v 1874 471 a Fk(Log)p +2122 438 V 83 612 a Fm([)p Fh(LDF)d(2002.11.03.)p Fm(])66 +b Fi(c)l(ounter)45 b Fm(is)33 b(no)n(w)e(initially)i(set)f(to)h(2)f +(instead)g(of)h(1.)51 b(This)32 b(mak)n(es)g(eac)n(h)f(line)i(ha)n(v)n +(e)e(at)i(most)f(t)n(w)n(o)0 711 y Fk(P)m(oin)m(ts)5 b Fm(.)37 b(Previously)-7 b(,)26 b(the)i(\014rst)f(line)h(had)f(3)g Fk(P)m(oin)m(ts)33 b Fm(\(if)28 b(the)g Fk(P)m(ath)34 b Fm(had)27 b(at)h(least)f(three)g Fk(P)m(oin)m(ts)33 @@ -21549,15 +21519,14 @@ g(it)f(in)h(this)g(case,)f(since)g(the)h(problem)f(only)g(o)r(ccurred)f (when)0 1209 y(using)g(the)h(DEC)g Fh(C)627 1201 y Fg(+)-8 b(+)753 1209 y Fm(compiler)27 b(on)g(a)g(DEC)h(Alpha)g(computer)f -(under)g(Compaq)g(T)-7 b(ru64.)p 0 1301 1678 4 v 1773 -1334 a Fk(End)32 b(Log)p 2222 1301 V 0 1459 a Fn(h)14 -b Fm(Output)28 b Fk(P)m(ath)42 b Fl(864)14 b Fn(i)24 -b(\021)83 1558 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h -Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p Ff(Output)p -Fj( )o Ff(|Pa)-7 b(th|.\\n")25 b Fn(\034)e Fi(\015ush)10 -b Fm(;)83 1658 y Fk(for)33 b Fm(\()p Fk(unsigned)e(short)i -Fi(c)l(ounter)i Fm(=)23 b(2)o(;)42 b Fi(p)l(oint)p 1595 -1658 26 4 v 31 w(iter)36 b Fn(6)p Fm(=)23 b Fi(p)l(oints)11 +(under)g(Compaq)g(T)-7 b(ru64.)p 0 1301 3900 4 v 0 1459 +a Fn(h)14 b Fm(Output)28 b Fk(P)m(ath)42 b Fl(864)14 +b Fn(i)24 b(\021)83 1558 y Fk(if)41 b Fm(\()p Ff(DEBUG)s +Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p +Ff(Output)p Fj( )o Ff(|Pa)-7 b(th|.\\n")25 b Fn(\034)e +Fi(\015ush)10 b Fm(;)83 1658 y Fk(for)33 b Fm(\()p Fk(unsigned)e(short) +i Fi(c)l(ounter)i Fm(=)23 b(2)o(;)42 b Fi(p)l(oint)p +1595 1658 26 4 v 31 w(iter)36 b Fn(6)p Fm(=)23 b Fi(p)l(oints)11 b Fe(:)p Fi(end)i Fm(\()h(\);)56 b(\))42 b Fn(f)166 1757 y Fi(out)p 286 1757 V 30 w(str)l(e)l(am)33 b Fn(\034)23 b Ff(")p Fj( )p Ff(")k Fn(\034)c Fi(c)l(onne)l(ctor)p @@ -21589,35 +21558,34 @@ Fj( )p Ff(|)o(Pat)-7 b(h|.\\n")25 b Fn(\034)e Fi(\015ush)10 b Fm(;)0 3061 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i (859,)f(861,)g(862,)g(and)g(863.)0 3260 y Fk(865.)94 -b(Sho)m(wing.)0 3459 y(866.)g(Sho)m(w.)p 0 3535 1643 -4 v 1738 3568 a(Begin)31 b(Log)p 2257 3535 V 83 3708 -a Fm([)p Fh(LDF)25 b(2003.07.13.)p Fm(])61 b(Commen)n(ted-out)27 -b(the)h(line)g(that)g(prin)n(ts)f Fi(\014l)t(l)p 2166 -3708 26 4 v 31 w(dr)l(aw)p 2367 3708 V 31 w(value)39 -b Fm(to)28 b Fi(stdout)11 b Fm(.)83 3808 y([)p Fh(LDF)25 -b(2003.08.20.)p Fm(])58 b(No)n(w)23 b(prin)n(ting)h Fi(p)l(oints)11 -b Fe(:)p Fi(size)g Fm(\()j(\))25 b(and)f Fi(c)l(onne)l(ctors)11 +b(Sho)m(wing.)0 3459 y(866.)g(Sho)m(w.)p 0 3535 1779 +4 v 1874 3568 a(Log)p 2122 3535 V 83 3708 a Fm([)p Fh(LDF)25 +b(2003.07.13.)p Fm(])61 b(Commen)n(ted-out)27 b(the)h(line)g(that)g +(prin)n(ts)f Fi(\014l)t(l)p 2166 3708 26 4 v 31 w(dr)l(aw)p +2367 3708 V 31 w(value)39 b Fm(to)28 b Fi(stdout)11 b +Fm(.)83 3808 y([)p Fh(LDF)25 b(2003.08.20.)p Fm(])58 +b(No)n(w)23 b(prin)n(ting)h Fi(p)l(oints)11 b Fe(:)p +Fi(size)g Fm(\()j(\))25 b(and)f Fi(c)l(onne)l(ctors)11 b Fe(:)p Fi(size)g Fm(\()j(\))24 b(to)g Fi(stdout)12 b Fm(.)36 b(If)24 b(the)h(latter)e(is)h(0,)h(a)e(message)0 3908 y(is)k(prin)n(ted,)h(that)g Ff("--")i Fm(will)e(b)r(e)g(used)g(as) -f(the)h(connector.)p 0 4000 1678 4 v 1773 4032 a Fk(End)k(Log)p -2222 4000 V 0 4157 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 -b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4256 y Fk(v)m(oid)39 b Fi(show)14 b Fm(\()p Fk(string)40 -b Fi(text)45 b Fm(=)33 b Ff("")t Fe(;)14 b Fk(c)m(har)40 -b Fi(c)l(o)l(or)l(ds)46 b Fm(=)33 b Ff('w')s Fe(;)14 -b Fk(const)39 b(b)s(o)s(ol)e Fi(do)p 2522 4256 26 4 v -32 w(p)l(ersp)44 b Fm(=)33 b Fi(true)10 b Fe(;)k Fk(const)39 -b(b)s(o)s(ol)249 4356 y Fi(do)p 338 4356 V 31 w(apply)g -Fm(=)25 b Fi(true)10 b Fe(;)k Fk(F)-8 b(o)s(cus)33 b -Fn(\003)p Fe(f)h Fm(=)25 b(0)o Fe(;)14 b Fk(const)34 -b(unsigned)f(short)h Fi(pr)l(oj)42 b Fm(=)25 b Fk(Pro)5 -b(jections)13 b Fm(::)c Ff(PERSP)r Fe(;)14 b Fk(const)34 -b(real)249 4456 y Fi(factor)j Fm(=)23 b(1\))28 b Fk(const)t -Fm(;)p eop end -%%Page: 235 235 -TeXDict begin 235 234 bop 0 83 a Fn(x)p Fm(867)140 b -Fl(3DLDFPR)n(G)2728 b(SHO)n(W)141 b Fm(235)0 263 y Fk(867.)0 +f(the)h(connector.)p 0 4000 3900 4 v 0 4157 a Fn(h)14 +b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 4256 y Fk(v)m(oid)39 b +Fi(show)14 b Fm(\()p Fk(string)40 b Fi(text)45 b Fm(=)33 +b Ff("")t Fe(;)14 b Fk(c)m(har)40 b Fi(c)l(o)l(or)l(ds)46 +b Fm(=)33 b Ff('w')s Fe(;)14 b Fk(const)39 b(b)s(o)s(ol)e +Fi(do)p 2522 4256 26 4 v 32 w(p)l(ersp)44 b Fm(=)33 b +Fi(true)10 b Fe(;)k Fk(const)39 b(b)s(o)s(ol)249 4356 +y Fi(do)p 338 4356 V 31 w(apply)g Fm(=)25 b Fi(true)10 +b Fe(;)k Fk(F)-8 b(o)s(cus)33 b Fn(\003)p Fe(f)h Fm(=)25 +b(0)o Fe(;)14 b Fk(const)34 b(unsigned)f(short)h Fi(pr)l(oj)42 +b Fm(=)25 b Fk(Pro)5 b(jections)13 b Fm(::)c Ff(PERSP)r +Fe(;)14 b Fk(const)34 b(real)249 4456 y Fi(factor)j Fm(=)23 +b(1\))28 b Fk(const)t Fm(;)p eop end +%%Page: 237 237 +TeXDict begin 237 236 bop 0 83 a Fn(x)p Fm(867)140 b +Fl(3DLDFPR)n(G)2728 b(SHO)n(W)141 b Fm(237)0 263 y Fk(867.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)37 b(P)m(ath)15 b Fm(::)8 b Fi(show)14 b Fm(\()p Fk(string)38 @@ -21734,8 +21702,8 @@ Fj( )p Ff(")j Fn(\034)d Fi(c)l(onne)l(ctor)p 1155 5394 V 31 w(string)34 b Fn(\034)23 b Ff(")p Fj( )p Ff(cycle;")h Fn(\034)f Fi(end)t(l)14 b Fm(;)p eop end -%%Page: 236 236 -TeXDict begin 236 235 bop 0 83 a Fm(236)140 b Fl(SHO)n(W)2728 +%%Page: 238 238 +TeXDict begin 238 237 bop 0 83 a Fm(238)140 b Fl(SHO)n(W)2728 b(3DLDFPR)n(G)142 b Fn(x)p Fm(867)166 263 y Fn(g)166 363 y Fk(else)45 b Fi(c)l(out)35 b Fn(\034)23 b Ff(";\\n")r Fm(;)83 462 y Fn(g)0 662 y Fk(868.)94 b(Sho)m(w)32 b(Colors.)0 @@ -21780,33 +21748,32 @@ (returns)e Fi(false)12 b Fm(.)37 b(If)27 b Fn(\003)p Fi(this)0 3327 y Fm(is)g(linear,)g Fi(is)p 401 3327 V 31 w(planar)15 b Fm(\()f(\))28 b(issues)f(a)g(w)n(arning)f(and)i -(returns)e Fi(true)10 b Fm(.)p 0 3430 1643 4 v 1738 3463 -a Fk(Begin)31 b(Log)p 2257 3430 V 83 3604 a Fm([)p Fh(LDF)25 -b(2002.11.03.)p Fm(])61 b(Rewrote)27 b(this)h(function.)37 -b(It)28 b(should)g(no)n(w)f(w)n(ork)f(for)h(all)g Fk(P)m(aths)6 -b Fm(.)83 3703 y([)p Fh(LDF)25 b(2002.11.05.)p Fm(])61 -b(Rewrote)27 b(this)h(function)g(again.)36 b(It)28 b(no)n(w)f(uses)g -(the)h(new)f(v)n(ersion)g(of)g Fi(get)p 3047 3703 26 -4 v 31 w(normal)13 b Fm(\()h(\).)83 3803 y([)p Fh(LDF)25 -b(2002.11.06.)p Fm(])63 b(Added)30 b(optional)f Fk(const)34 -b(b)s(o)s(ol)f Fi(verb)l(ose)41 b Fm(and)29 b Fk(string)36 -b Fi(text)k Fm(argumen)n(ts)28 b(for)h(writing)g(a)h(message)0 -3903 y(to)d(the)h(standard)f(output.)83 4002 y([)p Fh(LDF)e -(2003.08.14.)p Fm(])61 b(Made)27 b Fi(verb)l(ose)40 b -Fm(non-)p Fk(const)t Fm(.)d(Setting)28 b(it)g(to)f Fi(true)38 -b Fm(if)28 b Ff(VERBOSE_GLOBAL)e Fm(is)h Fi(true)10 b -Fm(.)0 4102 y(Added)28 b Ff(VERBOSE_GLOBAL)e Fm(to)i -Fj(pspglb.web)23 b Fm(to)r(da)n(y)-7 b(.)p 0 4194 1678 -4 v 1773 4226 a Fk(End)32 b(Log)p 2222 4194 V 0 4351 -a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h -Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4451 y Fk(virtual)33 -b(b)s(o)s(ol)e Fi(is)p 672 4451 26 4 v 31 w(planar)14 -b Fm(\()p Fk(b)s(o)s(ol)31 b Fi(verb)l(ose)j Fm(=)23 -b Fi(false)12 b Fe(;)i Fk(string)33 b Fi(text)h Fm(=)23 -b Ff("")s Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 237 237 -TeXDict begin 237 236 bop 0 83 a Fn(x)p Fm(873)140 b -Fl(3DLDFPR)n(G)2555 b(IS)24 b(PLANAR)140 b Fm(237)0 263 +(returns)e Fi(true)10 b Fm(.)p 0 3430 1779 4 v 1874 3462 +a Fk(Log)p 2122 3430 V 83 3603 a Fm([)p Fh(LDF)25 b(2002.11.03.)p +Fm(])61 b(Rewrote)27 b(this)h(function.)37 b(It)28 b(should)g(no)n(w)f +(w)n(ork)f(for)h(all)g Fk(P)m(aths)6 b Fm(.)83 3703 y([)p +Fh(LDF)25 b(2002.11.05.)p Fm(])61 b(Rewrote)27 b(this)h(function)g +(again.)36 b(It)28 b(no)n(w)f(uses)g(the)h(new)f(v)n(ersion)g(of)g +Fi(get)p 3047 3703 26 4 v 31 w(normal)13 b Fm(\()h(\).)83 +3802 y([)p Fh(LDF)25 b(2002.11.06.)p Fm(])63 b(Added)30 +b(optional)f Fk(const)34 b(b)s(o)s(ol)f Fi(verb)l(ose)41 +b Fm(and)29 b Fk(string)36 b Fi(text)k Fm(argumen)n(ts)28 +b(for)h(writing)g(a)h(message)0 3902 y(to)d(the)h(standard)f(output.)83 +4002 y([)p Fh(LDF)e(2003.08.14.)p Fm(])61 b(Made)27 b +Fi(verb)l(ose)40 b Fm(non-)p Fk(const)t Fm(.)d(Setting)28 +b(it)g(to)f Fi(true)38 b Fm(if)28 b Ff(VERBOSE_GLOBAL)e +Fm(is)h Fi(true)10 b Fm(.)0 4101 y(Added)28 b Ff(VERBOSE_GLOBAL)e +Fm(to)i Fj(pspglb.web)23 b Fm(to)r(da)n(y)-7 b(.)p 0 +4193 3900 4 v 0 4350 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4450 y Fk(virtual)33 b(b)s(o)s(ol)e Fi(is)p 672 4450 +26 4 v 31 w(planar)14 b Fm(\()p Fk(b)s(o)s(ol)31 b Fi(verb)l(ose)j +Fm(=)23 b Fi(false)12 b Fe(;)i Fk(string)33 b Fi(text)h +Fm(=)23 b Ff("")s Fm(\))28 b Fk(const)5 b Fm(;)p eop +end +%%Page: 239 239 +TeXDict begin 239 238 bop 0 83 a Fn(x)p Fm(873)140 b +Fl(3DLDFPR)n(G)2555 b(IS)24 b(PLANAR)140 b Fm(239)0 263 y Fk(873.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)31 b(P)m(ath)14 b Fm(::)8 b Fi(is)p @@ -21870,36 +21837,36 @@ b(linear)f(or)0 4049 y(not.)37 b(If)28 b(it)g(is,)f Fi(is)p 516 4049 V 31 w(line)l(ar)14 b Fm(\()g(\))28 b(returns)f Fi(true)10 b Fm(,)28 b(otherwise,)f(it)h(returns)f Fi(false)11 -b Fm(.)p 0 4153 1643 4 v 1738 4185 a Fk(Begin)31 b(Log)p -2257 4153 V 83 4326 a Fm([)p Fh(LDF)25 b(2002.11.05.)p -Fm(])61 b(Added)28 b(this)g(function.)83 4426 y([)p Fh(LDF)d -(2002.11.06.)p Fm(])63 b(Added)30 b(optional)f Fk(const)34 -b(b)s(o)s(ol)f Fi(verb)l(ose)41 b Fm(and)29 b Fk(string)36 -b Fi(text)k Fm(argumen)n(ts)28 b(for)h(writing)g(a)h(message)0 -4525 y(to)d(the)h(standard)f(output.)83 4625 y([)p Fh(LDF)e -(2003.04.09.)p Fm(])69 b(No)n(w)35 b(c)n(hec)n(king)g(whether)g -Fi(line)p 1749 4625 26 4 v 31 w(switch)47 b Fm(is)36 -b Fi(true)45 b Fm(b)r(efore)36 b(calling)e Fi(get)p 2964 -4625 V 31 w(normal)13 b Fm(\()i(\).)61 b(!!)g(If)36 b(a)f -Fk(P)m(ath)0 4725 y Fm(whose)j Fi(line)p 392 4725 V 31 -w(switch)52 b Fn(\021)40 b Fi(true)48 b Fm(is)39 b(mo)r(di\014ed)f(suc) -n(h)g(that)h(it's)f(no)g(longer)f(linear,)j(the)f(programmer)d(m)n(ust) -i(ensure)g(that)0 4824 y Fi(line)p 136 4824 V 31 w(switch)h -Fm(is)28 b(set)f(to)h Fi(false)11 b Fm(!)83 4924 y([)p -Fh(LDF)25 b(2003.08.14.)p Fm(])61 b(Made)27 b Fi(verb)l(ose)40 +b Fm(.)p 0 4152 1779 4 v 1874 4185 a Fk(Log)p 2122 4152 +V 83 4325 a Fm([)p Fh(LDF)25 b(2002.11.05.)p Fm(])61 +b(Added)28 b(this)g(function.)83 4425 y([)p Fh(LDF)d(2002.11.06.)p +Fm(])63 b(Added)30 b(optional)f Fk(const)34 b(b)s(o)s(ol)f +Fi(verb)l(ose)41 b Fm(and)29 b Fk(string)36 b Fi(text)k +Fm(argumen)n(ts)28 b(for)h(writing)g(a)h(message)0 4525 +y(to)d(the)h(standard)f(output.)83 4624 y([)p Fh(LDF)e(2003.04.09.)p +Fm(])69 b(No)n(w)35 b(c)n(hec)n(king)g(whether)g Fi(line)p +1749 4624 26 4 v 31 w(switch)47 b Fm(is)36 b Fi(true)45 +b Fm(b)r(efore)36 b(calling)e Fi(get)p 2964 4624 V 31 +w(normal)13 b Fm(\()i(\).)61 b(!!)g(If)36 b(a)f Fk(P)m(ath)0 +4724 y Fm(whose)j Fi(line)p 392 4724 V 31 w(switch)52 +b Fn(\021)40 b Fi(true)48 b Fm(is)39 b(mo)r(di\014ed)f(suc)n(h)g(that)h +(it's)f(no)g(longer)f(linear,)j(the)f(programmer)d(m)n(ust)i(ensure)g +(that)0 4823 y Fi(line)p 136 4823 V 31 w(switch)h Fm(is)28 +b(set)f(to)h Fi(false)11 b Fm(!)83 4923 y([)p Fh(LDF)25 +b(2003.08.14.)p Fm(])61 b(Made)27 b Fi(verb)l(ose)40 b Fm(non-)p Fk(const)t Fm(.)d(Setting)28 b(it)g(to)f Fi(true)38 b Fm(if)28 b Ff(VERBOSE_GLOBAL)e Fm(is)h Fi(true)10 b Fm(.)0 5023 y(Added)28 b Ff(VERBOSE_GLOBAL)e Fm(to)i -Fj(pspglb.web)23 b Fm(to)r(da)n(y)-7 b(.)p 0 5115 1678 -4 v 1773 5148 a Fk(End)32 b(Log)p 2222 5115 V 0 5272 -a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h -Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 5372 y Fk(b)s(o)s(ol)31 -b Fi(is)p 360 5372 26 4 v 31 w(line)l(ar)14 b Fm(\()p -Fk(b)s(o)s(ol)31 b Fi(verb)l(ose)j Fm(=)23 b Fi(false)12 -b Fe(;)i Fk(string)33 b Fi(text)h Fm(=)22 b Ff("")t Fm(\))28 -b Fk(const)5 b Fm(;)p eop end -%%Page: 238 238 -TeXDict begin 238 237 bop 0 83 a Fm(238)140 b Fl(IS)24 +Fj(pspglb.web)23 b Fm(to)r(da)n(y)-7 b(.)p 0 5115 3900 +4 v 0 5272 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +5371 y Fk(b)s(o)s(ol)31 b Fi(is)p 360 5371 26 4 v 31 +w(line)l(ar)14 b Fm(\()p Fk(b)s(o)s(ol)31 b Fi(verb)l(ose)j +Fm(=)23 b Fi(false)12 b Fe(;)i Fk(string)33 b Fi(text)h +Fm(=)22 b Ff("")t Fm(\))28 b Fk(const)5 b Fm(;)p eop +end +%%Page: 240 240 +TeXDict begin 240 239 bop 0 83 a Fm(240)140 b Fl(IS)24 b(LINEAR)2582 b(3DLDFPR)n(G)142 b Fn(x)p Fm(875)0 263 y Fk(875.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -21948,35 +21915,33 @@ Fi(true)39 b Fm(for)30 b Fk(P)m(aths)35 b Fm(that)30 b(are)f(created)g(or)g(set)0 3252 y(using)e(t)n(w)n(o)g Fk(P)m(oin)m(ts)33 b Fm(only)-7 b(,)27 b(and)g(no)h(connectors,)e(as)h -(argumen)n(ts.)p 0 3351 1643 4 v 1738 3384 a Fk(Begin)k(Log)p -2257 3351 V 83 3524 a Fm([)p Fh(LDF)25 b(2002.11.03.)p -Fm(])55 b(Renamed)21 b(this)h(function)g Fi(get)p 1676 -3524 26 4 v 31 w(line)p 1838 3524 V 31 w(switch)11 b -Fm(\()j(\))22 b(from)f Fi(is)p 2451 3524 V 31 w(line)11 -b Fm(\()j(\).)35 b(Ab)r(out)22 b(to)g(add)f Fi(is)p 3322 -3524 V 31 w(line)l(ar)14 b Fm(\()g(\),)23 b(whic)n(h)0 -3624 y(will)28 b(test)g(whether)f(all)h(the)f Fk(P)m(oin)m(ts)33 -b Fm(are)27 b(colinear)f(or)h(not.)p 0 3716 1678 4 v -1773 3749 a Fk(End)32 b(Log)p 2222 3716 V 0 3873 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3973 y Fk(inline)31 b(b)s(o)s(ol)g -Fi(get)p 667 3973 26 4 v 30 w(line)p 828 3973 V 31 w(switch)12 -b Fm(\()i(\))28 b Fk(const)83 4072 y Fn(f)166 4172 y -Fk(return)33 b Fi(line)p 600 4172 V 31 w(switch)12 b -Fm(;)83 4272 y Fn(g)0 4471 y Fk(877.)94 b(T)-8 b(est)32 -b(for)g(cycles.)0 4595 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +(argumen)n(ts.)p 0 3350 1779 4 v 1874 3383 a Fk(Log)p +2122 3350 V 83 3524 a Fm([)p Fh(LDF)e(2002.11.03.)p Fm(])55 +b(Renamed)21 b(this)h(function)g Fi(get)p 1676 3524 26 +4 v 31 w(line)p 1838 3524 V 31 w(switch)11 b Fm(\()j(\))22 +b(from)f Fi(is)p 2451 3524 V 31 w(line)11 b Fm(\()j(\).)35 +b(Ab)r(out)22 b(to)g(add)f Fi(is)p 3322 3524 V 31 w(line)l(ar)14 +b Fm(\()g(\),)23 b(whic)n(h)0 3623 y(will)28 b(test)g(whether)f(all)h +(the)f Fk(P)m(oin)m(ts)33 b Fm(are)27 b(colinear)f(or)h(not.)p +0 3715 3900 4 v 0 3872 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4695 y Fk(inline)31 b(b)s(o)s(ol)g Fi(is)p 622 4695 V -31 w(cycle)11 b Fm(\()j(\))28 b Fk(const)83 4795 y Fn(f)166 -4894 y Fk(return)33 b Fi(cycle)p 644 4894 V 32 w(switch)11 -b Fm(;)83 4994 y Fn(g)0 5193 y Fk(878.)94 b(Size)32 b(\(n)m(um)m(b)s -(er)g(of)g(p)s(oin)m(ts\).)0 5318 y Fn(h)14 b Fm(Declare)27 -b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 -b Fm(+)p Fn(\021)p eop end -%%Page: 239 239 -TeXDict begin 239 238 bop 0 83 a Fn(x)p Fm(878)140 b +3972 y Fk(inline)31 b(b)s(o)s(ol)g Fi(get)p 667 3972 +26 4 v 30 w(line)p 828 3972 V 31 w(switch)12 b Fm(\()i(\))28 +b Fk(const)83 4072 y Fn(f)166 4171 y Fk(return)33 b Fi(line)p +600 4171 V 31 w(switch)12 b Fm(;)83 4271 y Fn(g)0 4470 +y Fk(877.)94 b(T)-8 b(est)32 b(for)g(cycles.)0 4595 y +Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4694 y Fk(inline)31 +b(b)s(o)s(ol)g Fi(is)p 622 4694 V 31 w(cycle)11 b Fm(\()j(\))28 +b Fk(const)83 4794 y Fn(f)166 4894 y Fk(return)33 b Fi(cycle)p +644 4894 V 32 w(switch)11 b Fm(;)83 4993 y Fn(g)0 5192 +y Fk(878.)94 b(Size)32 b(\(n)m(um)m(b)s(er)g(of)g(p)s(oin)m(ts\).)0 +5317 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)p eop end +%%Page: 241 241 +TeXDict begin 241 240 bop 0 83 a Fn(x)p Fm(878)140 b Fl(3DLDFPR)n(G)1972 b(SIZE)24 b(\(NUMBER)f(OF)h(POINTS\))141 -b Fm(239)83 263 y Fk(inline)31 b(in)m(t)h Fi(size)11 +b Fm(241)83 263 y Fk(inline)31 b(in)m(t)h Fi(size)11 b Fm(\()k(\))83 363 y Fn(f)166 462 y Fk(return)33 b Fi(p)l(oints)11 b Fe(:)p Fi(size)h Fm(\()i(\);)83 562 y Fn(g)0 761 y Fk(879.)94 b(Slop)s(e.)g Fm([)p Fh(LDF)25 b(2002.11.05.)p @@ -22003,80 +21968,78 @@ b Fe(x)g Fm(and)f Fe(y)k Fm(are)26 b(the)i(x)g(and)f(y-co)r(ordinates)f (of)h(p)r(oin)n(ts)h(on)2132 1132 y Fn(\000)-32 b(\000)g(!)2132 1160 y Fe(q)2169 1172 y Fg(0)2206 1160 y Fe(q)2243 1172 -y Fg(1)2281 1160 y Fm(.)p 0 1259 1643 4 v 1738 1292 a -Fk(Begin)31 b(Log)p 2257 1259 V 83 1432 a Fm([)p Fh(LDF)25 -b(2002.11.05.)p Fm(])60 b(Changed)25 b(this)h(function,)h(so)f(that)g +y Fg(1)2281 1160 y Fm(.)p 0 1258 1779 4 v 1874 1291 a +Fk(Log)p 2122 1258 V 83 1432 a Fm([)p Fh(LDF)25 b(2002.11.05.)p +Fm(])60 b(Changed)25 b(this)h(function,)h(so)f(that)g Fi(is)p 1932 1432 26 4 v 31 w(line)l(ar)14 b Fm(\()g(\))26 b(is)g(used)g(instead)g(of)g Fi(get)p 3037 1432 V 31 w(line)p 3199 1432 V 31 w(switch)11 b Fm(\()j(\))27 b(\(formerly)0 -1532 y(\\)p Fi(is)p 106 1532 V 30 w(line)11 b Fm(\()k(\)"\).)37 +1531 y(\\)p Fi(is)p 106 1531 V 30 w(line)11 b Fm(\()k(\)"\).)37 b(No)n(w,)27 b(it)h(can)f(b)r(e)h(used)g(for)f(all)g(linear)g Fk(P)m(aths)5 b Fm(,)28 b(not)g(just)g(ones)f(created)g(using)g(the)h -(constructor)e(for)h(lines.)0 1632 y(Also,)g(it)h(w)n(as)f(commen)n -(ted-out.)p 0 1723 1678 4 v 1773 1756 a Fk(End)32 b(Log)p -2222 1723 V 0 1881 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 -b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -1980 y Fk(real)32 b Fi(slop)l(e)12 b Fm(\()p Fk(c)m(har)34 -b Fe(a)23 b Fm(=)g Ff('x')s Fe(;)14 b Fk(c)m(har)34 b -Fe(b)23 b Fm(=)f Ff('y')s Fm(\);)0 2179 y Fk(880.)0 2304 -y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h -Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2404 y Fk(real)32 -b(P)m(ath)15 b Fm(::)8 b Fi(slop)l(e)k Fm(\()p Fk(c)m(har)34 -b Fe(a;)14 b Fk(c)m(har)34 b Fe(b)o Fm(\))83 2503 y Fn(f)166 -2603 y Fk(if)41 b Fm(\()p Fn(:)p Fi(is)p 414 2603 26 -4 v 32 w(line)l(ar)14 b Fm(\()g(\)\))42 b Fn(f)249 2702 -y Fi(c)l(err)66 b Fn(\034)53 b Ff("ERROR!)p Fj( )p Ff(In)p -Fj( )p Ff(Path::)o(sl)o(o)-6 b(pe\(\).)p Fj( )p Ff(Path)p -Fj( )p Ff(is)p Fj( )p Ff(no)o(t)p Fj( )p Ff(l)o(i)g(near!\\n")54 -b Fn(\034)415 2802 y Ff("Returning)p Fj( )p Ff(INVAL)o(ID_)o(R)-6 -b(EAL\\n")25 b Fn(\034)e Fi(\015ush)10 b Fm(;)249 2902 -y Fk(return)33 b Ff(INVALID_REAL)p Fm(;)166 3001 y Fn(g)166 -3101 y Fk(return)g Fi(p)l(oints)11 b Fm([1])760 3126 -y Fe(~)810 3101 y Fi(slop)l(e)h Fm(\()p Fn(\003)p Fi(p)l(oints)f -Fm([0)o(])p Fe(;)j(a;)g(b)p Fm(\);)83 3201 y Fn(g)0 3400 -y Fk(881.)94 b(Subpath.)i Fm([)p Fh(LDF)25 b(2002.11.05.)p -Fm(])61 b Fi(subp)l(ath)11 b Fm(\()j(\))28 b(returns)f(a)g(new)h -Fk(P)m(ath)33 b Fm(using)28 b Fi(p)l(oints)11 b Fm([)p -Fi(start)h Fm(])28 b(through)0 3499 y Fi(p)l(oints)11 -b Fm([)p Fi(end)28 b Fn(\000)15 b Fm(1)o(])26 b(from)g -Fn(\003)o Fi(this)12 b Fm(.)36 b(If)26 b(the)g(optional)g -Fk(b)s(o)s(ol)j Fm(argumen)n(t)24 b Fi(cycle)38 b Fm(is)25 -b(used,)i(then)f(the)g(new)g Fk(P)m(ath)32 b Fm(will)26 -b(b)r(e)g(a)f(cycle,)0 3599 y(whether)g Fn(\003)o Fi(this)36 -b Fm(is)25 b(or)f(not.)36 b(One)24 b(optional)g(connector)g(argumen)n -(t)f(can)i(b)r(e)g(used.)36 b(If)25 b(it)g(is,)g(it)h(will)f(b)r(e)g -(the)g(only)f(connector.)0 3699 y(Otherwise,)j(the)h(connectors)e(from) -h Fn(\003)p Fi(this)39 b Fm(are)26 b(used.)83 3798 y([)p -Fh(LDF)f(2002.11.05.)p Fm(])61 b Fi(start)40 b Fm(m)n(ust)27 -b(b)r(e)h Fe(<)f Fi(end)14 b Fm(.)37 b(It)27 b(is)h(not)g(p)r(ossible)f -(to)g(ha)n(v)n(e)g Fi(start)39 b Fe(>)27 b Fi(end)13 -b Fm(,)28 b(ev)n(en)f(if)h Fn(\003)p Fi(this)39 b Fm(is)28 -b(a)f(cycle.)p 0 3902 1643 4 v 1738 3935 a Fk(Begin)k(Log)p -2257 3902 V 83 4076 a Fm([)p Fh(LDF)25 b(2002.11.05.)p -Fm(])67 b(Rewrote)33 b(this)h(function.)55 b(Made)33 -b Fi(subp)l(ath)11 b Fm(\()j(\))34 b(itself)g(and)f(its)h(argumen)n(ts) -e Fk(const)t Fm(.)55 b(Added)34 b(error)0 4175 y(handling)27 -b(co)r(de.)83 4275 y([)p Fh(LDF)e(2003.07.16.)p Fm(])61 -b(Please)26 b(note)i(that)g Fi(start)39 b Fm(and)28 b -Fi(end)40 b Fm(cannot)28 b(b)r(e)g(made)f Fk(const)5 -b Fm(.)83 4374 y([)p Fh(LDF)25 b(2003.08.27.)p Fm(])63 +(constructor)e(for)h(lines.)0 1631 y(Also,)g(it)h(w)n(as)f(commen)n +(ted-out.)p 0 1723 3900 4 v 0 1880 a Fn(h)14 b Fm(Declare)27 +b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 1980 y Fk(real)32 b Fi(slop)l(e)12 +b Fm(\()p Fk(c)m(har)34 b Fe(a)23 b Fm(=)g Ff('x')s Fe(;)14 +b Fk(c)m(har)34 b Fe(b)23 b Fm(=)f Ff('y')s Fm(\);)0 +2179 y Fk(880.)0 2303 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 +b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2403 y Fk(real)32 b(P)m(ath)15 b Fm(::)8 b Fi(slop)l(e)k +Fm(\()p Fk(c)m(har)34 b Fe(a;)14 b Fk(c)m(har)34 b Fe(b)o +Fm(\))83 2503 y Fn(f)166 2602 y Fk(if)41 b Fm(\()p Fn(:)p +Fi(is)p 414 2602 26 4 v 32 w(line)l(ar)14 b Fm(\()g(\)\))42 +b Fn(f)249 2702 y Fi(c)l(err)66 b Fn(\034)53 b Ff("ERROR!)p +Fj( )p Ff(In)p Fj( )p Ff(Path::)o(sl)o(o)-6 b(pe\(\).)p +Fj( )p Ff(Path)p Fj( )p Ff(is)p Fj( )p Ff(no)o(t)p Fj( )p +Ff(l)o(i)g(near!\\n")54 b Fn(\034)415 2801 y Ff("Returning)p +Fj( )p Ff(INVAL)o(ID_)o(R)-6 b(EAL\\n")25 b Fn(\034)e +Fi(\015ush)10 b Fm(;)249 2901 y Fk(return)33 b Ff(INVALID_REAL)p +Fm(;)166 3001 y Fn(g)166 3100 y Fk(return)g Fi(p)l(oints)11 +b Fm([1])760 3125 y Fe(~)810 3100 y Fi(slop)l(e)h Fm(\()p +Fn(\003)p Fi(p)l(oints)f Fm([0)o(])p Fe(;)j(a;)g(b)p +Fm(\);)83 3200 y Fn(g)0 3399 y Fk(881.)94 b(Subpath.)i +Fm([)p Fh(LDF)25 b(2002.11.05.)p Fm(])61 b Fi(subp)l(ath)11 +b Fm(\()j(\))28 b(returns)f(a)g(new)h Fk(P)m(ath)33 b +Fm(using)28 b Fi(p)l(oints)11 b Fm([)p Fi(start)h Fm(])28 +b(through)0 3499 y Fi(p)l(oints)11 b Fm([)p Fi(end)28 +b Fn(\000)15 b Fm(1)o(])26 b(from)g Fn(\003)o Fi(this)12 +b Fm(.)36 b(If)26 b(the)g(optional)g Fk(b)s(o)s(ol)j +Fm(argumen)n(t)24 b Fi(cycle)38 b Fm(is)25 b(used,)i(then)f(the)g(new)g +Fk(P)m(ath)32 b Fm(will)26 b(b)r(e)g(a)f(cycle,)0 3598 +y(whether)g Fn(\003)o Fi(this)36 b Fm(is)25 b(or)f(not.)36 +b(One)24 b(optional)g(connector)g(argumen)n(t)f(can)i(b)r(e)g(used.)36 +b(If)25 b(it)g(is,)g(it)h(will)f(b)r(e)g(the)g(only)f(connector.)0 +3698 y(Otherwise,)j(the)h(connectors)e(from)h Fn(\003)p +Fi(this)39 b Fm(are)26 b(used.)83 3798 y([)p Fh(LDF)f(2002.11.05.)p +Fm(])61 b Fi(start)40 b Fm(m)n(ust)27 b(b)r(e)h Fe(<)f +Fi(end)14 b Fm(.)37 b(It)27 b(is)h(not)g(p)r(ossible)f(to)g(ha)n(v)n(e) +g Fi(start)39 b Fe(>)27 b Fi(end)13 b Fm(,)28 b(ev)n(en)f(if)h +Fn(\003)p Fi(this)39 b Fm(is)28 b(a)f(cycle.)p 0 3901 +1779 4 v 1874 3934 a Fk(Log)p 2122 3901 V 83 4074 a Fm([)p +Fh(LDF)e(2002.11.05.)p Fm(])67 b(Rewrote)33 b(this)h(function.)55 +b(Made)33 b Fi(subp)l(ath)11 b Fm(\()j(\))34 b(itself)g(and)f(its)h +(argumen)n(ts)e Fk(const)t Fm(.)55 b(Added)34 b(error)0 +4174 y(handling)27 b(co)r(de.)83 4273 y([)p Fh(LDF)e(2003.07.16.)p +Fm(])61 b(Please)26 b(note)i(that)g Fi(start)39 b Fm(and)28 +b Fi(end)40 b Fm(cannot)28 b(b)r(e)g(made)f Fk(const)5 +b Fm(.)83 4373 y([)p Fh(LDF)25 b(2003.08.27.)p Fm(])63 b(Changed)29 b Fk(in)m(t)35 b Fe(i)29 b Fm(to)g Fk(size)p -1554 4374 29 5 v 40 w(t)34 b Fe(i)c Fm(in)f(the)h Fk(for)35 +1554 4373 29 5 v 40 w(t)34 b Fe(i)c Fm(in)f(the)h Fk(for)35 b Fm(lo)r(ops)29 b(that)h(compare)e Fe(i)h Fm(to)h Fi(start)41 b Fm(and)30 b Fi(end)13 b Fm(.)43 b(The)29 b(w)n(a)n(y)0 -4474 y(it)f(w)n(as)f(b)r(efore)g(caused)g(GCC)h(with)g(the)g(\\)p +4473 y(it)f(w)n(as)f(b)r(efore)g(caused)g(GCC)h(with)g(the)g(\\)p Fj(-Wall)p Fm(")c(option)k(to)f(issue)g(a)h(w)n(arning.)p -0 4566 1678 4 v 1773 4599 a Fk(End)k(Log)p 2222 4566 -V 0 4723 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b -Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4823 y Fk(P)m(ath)34 b Fi(subp)l(ath)11 b Fm(\()p Fk(size)p -780 4823 29 5 v 39 w(t)33 b Fi(start)12 b Fe(;)i Fk(size)p -1256 4823 V 39 w(t)32 b Fi(end)14 b Fe(;)g Fk(const)32 +0 4565 3900 4 v 0 4722 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4821 y Fk(P)m(ath)34 b Fi(subp)l(ath)11 b Fm(\()p Fk(size)p +780 4821 29 5 v 39 w(t)33 b Fi(start)12 b Fe(;)i Fk(size)p +1256 4821 V 39 w(t)32 b Fi(end)14 b Fe(;)g Fk(const)32 b(b)s(o)s(ol)f Fi(cycle)j Fm(=)23 b Fi(false)12 b Fe(;)i Fk(const)32 b(string)h Fi(c)l(onne)l(ctor)j Fm(=)23 b Ff("")s Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 240 240 -TeXDict begin 240 239 bop 0 83 a Fm(240)140 b Fl(SUBP)-6 +%%Page: 242 242 +TeXDict begin 242 241 bop 0 83 a Fm(242)140 b Fl(SUBP)-6 b(A)g(TH)2610 b(3DLDFPR)n(G)142 b Fn(x)p Fm(882)0 263 y Fk(882.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -22168,9 +22131,9 @@ y Fe(p:)p Fi(set)p 336 4572 V 30 w(cycle)f Fm(\()p Fi(cycle)g Fm(\);)166 4671 y Fk(return)33 b Fe(p)p Fm(;)83 4771 y Fn(g)p eop end -%%Page: 241 241 -TeXDict begin 241 240 bop 0 83 a Fn(x)p Fm(886)140 b -Fl(3DLDFPR)n(G)2610 b(SUBP)-6 b(A)g(TH)141 b Fm(241)0 +%%Page: 243 243 +TeXDict begin 243 242 bop 0 83 a Fn(x)p Fm(886)140 b +Fl(3DLDFPR)n(G)2610 b(SUBP)-6 b(A)g(TH)141 b Fm(243)0 263 y Fk(886.)94 b Fm([)p Fh(LDF)26 b(2002.11.05.)p Fm(])58 b(If)27 b(no)e Fi(c)l(onne)l(ctor)39 b Fm(argumen)n(t)25 b(is)g(sp)r(eci\014ed,)i(then)f(w)n(e)f(ha)n(v)n(e)g(to)g(get)h(the)g @@ -22224,81 +22187,116 @@ Fi(c)l(onne)l(ctors)d Fm([)p Fe(i)o Fm(]\);)83 2530 y Fn(g)83 2629 y Fe(q)s(:)p Fi(set)p 251 2629 V 30 w(cycle)h Fm(\()p Fi(cycle)g Fm(\);)83 2729 y Fk(return)33 b Fe(q)s -Fm(;)k Fn(g)0 2928 y Fk(887.)94 b(Get)52 b(p)s(oin)m(t.)94 -b Fm([)p Fh(LDF)26 b(2002.11.05.)p Fm(])78 b(Note)45 -b(that)g Fi(apply)p 2093 2928 V 32 w(tr)l(ansform)11 -b Fm(\()j(\))46 b(is)e(not)h(called)g(on)g(the)g Fk(P)m(oin)m(t)50 -b Fm(that's)0 3028 y(returned.)36 b(If)28 b(it)g(w)n(as,)f -Fi(get)p 827 3028 V 31 w(p)l(oint)12 b Fm(\()i(\))28 -b(couldn't)g(b)r(e)g Fk(const)5 b Fm(.)p 0 3132 1643 -4 v 1738 3164 a Fk(Begin)31 b(Log)p 2257 3132 V 83 3305 -a Fm([)p Fh(LDF)25 b(2002.11.05.)p Fm(])61 b(Made)27 -b(non-)p Fk(inline)s Fm(.)37 b(Changed)27 b(return)g(v)-5 -b(alue)28 b(to)f Fk(const)33 b(P)m(oin)m(t)f Fm(&.)p -0 3397 1678 4 v 1773 3429 a Fk(End)g(Log)p 2222 3397 -V 0 3554 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b -Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3654 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(get)p 764 -3654 26 4 v 30 w(p)l(oint)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)h -Fe(a)p Fm(\))c Fk(const)5 b Fm(;)p eop end -%%Page: 242 242 -TeXDict begin 242 241 bop 0 83 a Fm(242)140 b Fl(GET)24 -b(POINT)2535 b(3DLDFPR)n(G)142 b Fn(x)p Fm(888)0 263 -y Fk(888.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 -b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -487 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fk(P)m(ath)14 -b Fm(::)8 b Fi(get)p 1030 487 26 4 v 31 w(p)l(oint)13 +Fm(;)k Fn(g)0 2928 y Fk(887.)94 b(Get)32 b(p)s(oin)m(t.)0 +3127 y(888.)94 b(non-const)32 b(v)m(ersion.)p 0 3203 +1779 4 v 1874 3236 a(Log)p 2122 3203 V 83 3376 a Fm([)p +Fh(LDF)25 b(2002.11.05.)p Fm(])61 b(Made)27 b(non-)p +Fk(inline)s Fm(.)37 b(Changed)27 b(return)g(v)-5 b(alue)28 +b(to)f Fk(const)33 b(P)m(oin)m(t)f Fm(&.)83 3476 y([)p +Fh(LDF)25 b(2003.11.28.)p Fm(])66 b(BUG)32 b(FIX:)h(Changed,)g(so)f +(that)g Fi(apply)p 2022 3476 26 4 v 33 w(tr)l(ansform)10 +b Fm(\()15 b(\))32 b(is)g(called)g(on)g(the)h Fk(P)m(oin)m(t)5 +b Fm(.)51 b(This)32 b(en)n(tailed)0 3576 y(making)f(this)g(function)h +(non-)p Fk(const)t Fm(.)48 b(Added)32 b Fk(const)k Fm(v)n(ersion)30 +b(b)r(elo)n(w.)47 b(This)31 b(ma)n(y)g(actually)f(b)r(e)i(a)f(bug,)h +(rather)e(than)h(a)0 3675 y(bug)25 b(\014x,)g(dep)r(ending)g(on)g(ho)n +(w)f(this)h(function)h(is)e(used)h(elsewhere.)35 b(Ho)n(w)n(ev)n(er,)24 +b(I)h(really)e(think)j Fi(apply)p 3171 3675 V 32 w(tr)l(ansform)11 +b Fm(\()j(\))25 b(should)0 3775 y(b)r(e)j(called.)p 0 +3867 3900 4 v 0 4024 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4124 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(get)p 764 +4124 26 4 v 30 w(p)l(oint)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)h +Fe(a)p Fm(\);)p eop end +%%Page: 244 244 +TeXDict begin 244 243 bop 0 83 a Fm(244)140 b Fl(NON-)p +Fk(CONST)22 b Fl(VERSION)2078 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(889)0 263 y Fk(889.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 487 y Fk(const)32 b(P)m(oin)m(t)h +Fm(&)p Fk(P)m(ath)14 b Fm(::)8 b Fi(get)p 1030 487 26 +4 v 31 w(p)l(oint)13 b Fm(\()p Fk(const)32 b(unsigned)g(short)g +Fe(a)p Fm(\))83 587 y Fn(f)166 686 y Fk(if)41 b Fm(\()p +Fe(a)23 b(<)g Fi(p)l(oints)11 b Fe(:)p Fi(size)h Fm(\()i(\)\))42 +b Fn(f)249 786 y Fm(\()p Fi(p)l(oints)12 b Fm([)p Fe(a)p +Fm(]\))612 811 y Fe(~)662 786 y Fi(apply)p 854 786 V +33 w(tr)l(ansform)e Fm(\()k(\);)249 886 y Fk(return)33 +b Fn(\003)p Fi(p)l(oints)11 b Fm([)p Fe(a)p Fm(];)166 +985 y Fn(g)166 1085 y Fk(else)45 b Fn(f)249 1185 y Fi(c)l(err)g +Fn(\034)31 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Path:)o(:g)o(et)-6 +b(_point\(\):\\n")30 b Fn(\034)h Ff("Argument)p Fj( )p +Ff(is)p Fj( )p Ff(>=)p Fj( )p Ff(s)o(iz)o(e)-6 b Fj( )p +Ff(of)p Fj( )p Ff(Path.\\n")31 b Fn(\034)415 1284 y Ff("Returning)p +Fj( )p Ff(INVAL)o(ID_)o(P)-6 b(OINT.\\n\\n")23 b Fn(\034)g +Fi(\015ush)11 b Fm(;)249 1384 y Fk(return)33 b Ff(INVALID_POINT)o +Fm(;)166 1483 y Fn(g)83 1583 y(g)0 1782 y Fk(890.)94 +b(const)32 b(v)m(ersion.)p 0 1858 1779 4 v 1874 1891 +a(Log)p 2122 1858 V 83 2031 a Fm([)p Fh(LDF)25 b(2003.11.28.)p +Fm(])61 b(Added)28 b(this)g(v)n(ersion.)p 0 2123 3900 +4 v 0 2280 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2380 y Fk(P)m(oin)m(t)33 b Fi(get)p 449 2380 26 4 v 30 +w(p)l(oint)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)h +Fe(a)p Fm(\))c Fk(const)5 b Fm(;)0 2579 y Fk(891.)0 2704 +y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h +Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2803 y Fk(P)m(oin)m(t)33 +b(P)m(ath)14 b Fm(::)8 b Fi(get)p 715 2803 V 31 w(p)l(oint)13 b Fm(\()p Fk(const)32 b(unsigned)g(short)g Fe(a)p Fm(\))c -Fk(const)83 587 y Fn(f)166 686 y Fk(if)41 b Fm(\()p Fe(a)23 -b(<)g Fi(p)l(oints)11 b Fe(:)p Fi(size)h Fm(\()i(\)\))42 -b Fk(return)33 b Fn(\003)o Fi(p)l(oints)12 b Fm([)p Fe(a)p -Fm(];)166 786 y Fk(else)45 b Fn(f)249 886 y Fi(c)l(err)g +Fk(const)83 2903 y Fn(f)166 3003 y Fk(if)41 b Fm(\()p +Fe(a)23 b(<)g Fi(p)l(oints)11 b Fe(:)p Fi(size)h Fm(\()i(\)\))42 +b Fn(f)249 3102 y Fk(P)m(oin)m(t)33 b Fe(p)23 b Fm(=)f +Fn(\003)p Fm(\()p Fi(p)l(oints)12 b Fm([)p Fe(a)o Fm(]\);)249 +3227 y Fe(p:)p Fi(apply)p 506 3227 V 32 w(tr)l(ansform)f +Fm(\()j(\);)249 3327 y Fk(return)33 b Fe(p)p Fm(;)166 +3426 y Fn(g)166 3526 y Fk(else)45 b Fn(f)249 3625 y Fi(c)l(err)g Fn(\034)31 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Path:)o(:g)o(et)-6 b(_point\(\):\\n")30 b Fn(\034)h Ff("Argument)p Fj( )p Ff(is)p Fj( )p Ff(>=)p Fj( )p Ff(s)o(iz)o(e)-6 b Fj( )p -Ff(of)p Fj( )p Ff(Path.\\n")31 b Fn(\034)415 985 y Ff("Returning)p +Ff(of)p Fj( )p Ff(Path.\\n")31 b Fn(\034)415 3725 y Ff("Returning)p Fj( )p Ff(INVAL)o(ID_)o(P)-6 b(OINT.\\n\\n")23 b Fn(\034)g -Fi(\015ush)11 b Fm(;)249 1085 y Fk(return)33 b Ff(INVALID_POINT)o -Fm(;)166 1185 y Fn(g)83 1284 y(g)0 1483 y Fk(889.)94 -b(Get)32 b(last)g(p)s(oin)m(t.)p 0 1583 1643 4 v 1738 -1615 a(Begin)f(Log)p 2257 1583 V 83 1756 a Fm([)p Fh(LDF)25 -b(2002.05.10.)p Fm(])61 b(Added)28 b(this)g(function.)83 -1856 y([)p Fh(LDF)d(2002.11.05.)p Fm(])61 b(Made)27 b(non-)p -Fk(inline)s Fm(.)37 b(Changed)27 b(return)g(v)-5 b(alue)28 -b(to)f Fk(const)33 b(P)m(oin)m(t)f Fm(&.)p 0 1948 1678 -4 v 1773 1980 a Fk(End)g(Log)p 2222 1948 V 0 2105 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2204 y Fk(const)32 b(P)m(oin)m(t)h -Fm(&)p Fi(get)p 764 2204 26 4 v 30 w(last)p 919 2204 -V 31 w(p)l(oint)13 b Fm(\()h(\))28 b Fk(const)t Fm(;)0 -2404 y Fk(890.)0 2528 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 +Fi(\015ush)11 b Fm(;)249 3825 y Fk(return)33 b Ff(INVALID_POINT)o +Fm(;)166 3924 y Fn(g)83 4024 y(g)0 4223 y Fk(892.)94 +b(Get)32 b(last)g(p)s(oin)m(t.)p 0 4322 1779 4 v 1874 +4354 a(Log)p 2122 4322 V 83 4495 a Fm([)p Fh(LDF)25 b(2002.05.10.)p +Fm(])61 b(Added)28 b(this)g(function.)83 4595 y([)p Fh(LDF)d +(2002.11.05.)p Fm(])61 b(Made)27 b(non-)p Fk(inline)s +Fm(.)37 b(Changed)27 b(return)g(v)-5 b(alue)28 b(to)f +Fk(const)33 b(P)m(oin)m(t)f Fm(&.)p 0 4687 3900 4 v 0 +4844 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4943 y Fk(const)32 +b(P)m(oin)m(t)h Fm(&)p Fi(get)p 764 4943 26 4 v 30 w(last)p +919 4943 V 31 w(p)l(oint)13 b Fm(\()h(\))28 b Fk(const)t +Fm(;)p eop end +%%Page: 245 245 +TeXDict begin 245 244 bop 0 83 a Fn(x)p Fm(893)140 b +Fl(3DLDFPR)n(G)2325 b(GET)24 b(LAST)f(POINT)141 b Fm(245)0 +263 y Fk(893.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2628 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fk(P)m(ath)14 -b Fm(::)8 b Fi(get)p 1030 2628 V 31 w(last)p 1186 2628 -V 31 w(p)l(oint)k Fm(\()i(\))28 b Fk(const)83 2727 y -Fn(f)166 2827 y Fk(if)41 b Fm(\()p Fi(p)l(oints)12 b +487 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fk(P)m(ath)14 +b Fm(::)8 b Fi(get)p 1030 487 26 4 v 31 w(last)p 1186 +487 V 31 w(p)l(oint)k Fm(\()i(\))28 b Fk(const)83 587 +y Fn(f)166 686 y Fk(if)41 b Fm(\()p Fi(p)l(oints)12 b Fe(:)p Fi(size)f Fm(\()j(\))23 b Fn(6)p Fm(=)g(0\))41 b Fk(return)33 b Fn(\003)p Fi(p)l(oints)11 b Fm([)p Fi(p)l(oints)h Fe(:)p Fi(size)f Fm(\()j(\))19 b Fn(\000)f Fm(1)o(];)166 -2927 y Fk(else)45 b Fn(f)249 3026 y Fi(c)l(err)54 b Fn(\034)41 +786 y Fk(else)45 b Fn(f)249 886 y Fi(c)l(err)54 b Fn(\034)41 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Path:)o(:g)o(et)-6 b(_last_point\(\):\\)o(n")39 b Fn(\034)h Ff("Path)p Fj( )p -Ff(is)p Fj( )p Ff(empty.\\n)o(")f Fn(\034)415 3126 y -Ff("Returning)p Fj( )p Ff(INVAL)o(ID_)o(P)-6 b(OINT.\\n\\n")23 -b Fn(\034)g Fi(\015ush)11 b Fm(;)249 3226 y Fk(return)33 -b Ff(INVALID_POINT)o Fm(;)166 3325 y Fn(g)83 3425 y(g)0 -3624 y Fk(891.)94 b(Get)32 b(size.)0 3749 y Fn(h)14 b -Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3848 y Fk(virtual)33 b(inline)e(size)p -812 3848 29 5 v 39 w(t)i Fi(get)p 1026 3848 26 4 v 30 -w(size)11 b Fm(\()j(\))28 b Fk(const)83 3948 y Fn(f)166 -4047 y Fk(return)33 b Fi(p)l(oints)11 b Fe(:)p Fi(size)h -Fm(\()i(\);)83 4147 y Fn(g)0 4346 y Fk(892.)94 b(Get)32 -b(normal.)p eop end -%%Page: 243 243 -TeXDict begin 243 242 bop 0 83 a Fn(x)p Fm(893)140 b -Fl(3DLDFPR)n(G)2334 b Fk(P)-8 b(A)g(TH)24 b Fl(VERSION)141 -b Fm(243)0 263 y Fk(893.)94 b(P)m(ath)26 b(v)m(ersion.)95 +Ff(is)p Fj( )p Ff(empty.\\n)o(")f Fn(\034)415 985 y Ff("Returning)p +Fj( )p Ff(INVAL)o(ID_)o(P)-6 b(OINT.\\n\\n")23 b Fn(\034)g +Fi(\015ush)11 b Fm(;)249 1085 y Fk(return)33 b Ff(INVALID_POINT)o +Fm(;)166 1185 y Fn(g)83 1284 y(g)0 1483 y Fk(894.)94 +b(Get)32 b(size.)0 1608 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1708 y Fk(virtual)33 b(inline)e(size)p 812 1708 29 5 +v 39 w(t)i Fi(get)p 1026 1708 26 4 v 30 w(size)11 b Fm(\()j(\))28 +b Fk(const)83 1807 y Fn(f)166 1907 y Fk(return)33 b Fi(p)l(oints)11 +b Fe(:)p Fi(size)h Fm(\()i(\);)83 2006 y Fn(g)0 2206 +y Fk(895.)94 b(Get)32 b(normal.)p eop end +%%Page: 246 246 +TeXDict begin 246 245 bop 0 83 a Fm(246)140 b Fk(P)-8 +b(A)g(TH)24 b Fl(VERSION)2334 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(896)0 263 y Fk(896.)94 b(P)m(ath)26 b(v)m(ersion.)95 b Fm([)p Fh(LDF)25 b(2002.11.05.)p Fm(])55 b Fi(get)p 1666 263 26 4 v 30 w(normal)14 b Fm(\()g(\))21 b(returns)g(a)g(unit)h (v)n(ector)e(represen)n(ting)g(the)h(normal)g(to)g(the)0 @@ -22396,42 +22394,41 @@ b Fm(are)22 b(mean)n(t)h(to)g(b)r(e)h(tra)n(v)n(ersed)d(in)i(the)h(clo) r(c)n(kwise)e(direction.)35 b(!!)h(W)-7 b(atc)n(h)23 b(out)g(for)g(problems)0 3077 y(that)28 b(ma)n(y)f(arise)f(from)h(this) -h(discrepancy!)p 0 3177 1643 4 v 1738 3209 a Fk(Begin)j(Log)p -2257 3177 V 83 3350 a Fm([)p Fh(LDF)25 b(2002.11.05.)p -Fm(])61 b(Rewrote)27 b(this)h(function.)83 3450 y([)p -Fh(LDF)d(2003.06.04.)p Fm(])63 b(Changed)28 b(sign)h(of)g(the)g -(normal,)g(when)g(it's)h(returned,)f(in)g(the)h(cases)e(where)g(a)h -(prop)r(er)f(normal)g(is)0 3549 y(found)g(\(not)g Ff(INVALID_POINT)e -Fm(or)h Fi(origin)12 b Fm(\).)37 b(See)28 b(explanation)f(ab)r(o)n(v)n -(e.)p 0 3641 1678 4 v 1773 3674 a Fk(End)32 b(Log)p 2222 -3641 V 0 3798 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +h(discrepancy!)p 0 3176 1779 4 v 1874 3209 a Fk(Log)p +2122 3176 V 83 3349 a Fm([)p Fh(LDF)d(2002.11.05.)p Fm(])61 +b(Rewrote)27 b(this)h(function.)83 3449 y([)p Fh(LDF)d(2003.06.04.)p +Fm(])63 b(Changed)28 b(sign)h(of)g(the)g(normal,)g(when)g(it's)h +(returned,)f(in)g(the)h(cases)e(where)g(a)h(prop)r(er)f(normal)g(is)0 +3549 y(found)g(\(not)g Ff(INVALID_POINT)e Fm(or)h Fi(origin)12 +b Fm(\).)37 b(See)28 b(explanation)f(ab)r(o)n(v)n(e.)p +0 3641 3900 4 v 0 3798 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3898 y Fk(virtual)33 b(P)m(oin)m(t)g Fi(get)p 761 3898 +3897 y Fk(virtual)33 b(P)m(oin)m(t)g Fi(get)p 761 3897 26 4 v 30 w(normal)14 b Fm(\()g(\))28 b Fk(const)t Fm(;)0 -4097 y Fk(894.)0 4222 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 +4097 y Fk(897.)0 4221 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4321 y Fk(P)m(oin)m(t)33 b(P)m(ath)14 b Fm(::)8 b Fi(get)p 715 4321 V 31 w(normal)14 b Fm(\()g(\))28 b Fk(const)t Fn(f)g Fk(b)s(o)s(ol)i Ff(DEBUG)c Fm(=)c Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)41 b Fi(true)51 b Fn(\003)p -Fe(=)249 4446 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h +Fe(=)249 4445 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p Ff(Path::g)o(et_)-7 b(normal\(\).\\n")23 b Fn(\034)g Fi(\015ush)10 b Fm(;)249 -4546 y Fk(if)41 b Fm(\()p Fi(p)l(oints)12 b Fe(:)p Fi(size)f +4545 y Fk(if)41 b Fm(\()p Fi(p)l(oints)12 b Fe(:)p Fi(size)f Fm(\()j(\))23 b Fn(\024)g Fm(0\))41 b Fn(f)332 4645 y Fi(c)l(err)79 b Fn(\034)65 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Pat)o(h::)o(g)-6 b(et_normal\(\):\\n")63 b -Fn(\034)498 4745 y Ff("Path)p Fj( )p Ff(is)p Fj( )p Ff(empty)p +Fn(\034)498 4744 y Ff("Path)p Fj( )p Ff(is)p Fj( )p Ff(empty)p Fj( )p Ff(or)o Fj( )p Ff(c)o(o)-6 b(ntains)p Fj( )p Ff(only)p Fj( )p Ff(one)p Fj( )o Ff(Po)o(in)g(t.)p Fj( )p Ff(")25 b Fn(\034)e Ff("Returning)p Fj( )p Ff(INVALI)o(D_P)-7 b(OINT.\\n\\n")23 b Fn(\034)498 4844 y Fi(\015ush)10 -b Fm(;)332 4944 y Fk(return)33 b Ff(INVALID_POINT)o Fm(;)249 -5044 y Fn(g)p eop end -%%Page: 244 244 -TeXDict begin 244 243 bop 0 83 a Fm(244)140 b Fk(P)-8 -b(A)g(TH)24 b Fl(VERSION)2334 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(895)0 263 y Fk(895.)94 b Fm([)p Fh(LDF)26 b(2002.11.05.)p +b Fm(;)332 4943 y Fk(return)33 b Ff(INVALID_POINT)o Fm(;)249 +5043 y Fn(g)p eop end +%%Page: 247 247 +TeXDict begin 247 246 bop 0 83 a Fn(x)p Fm(898)140 b +Fl(3DLDFPR)n(G)2334 b Fk(P)-8 b(A)g(TH)24 b Fl(VERSION)141 +b Fm(247)0 263 y Fk(898.)94 b Fm([)p Fh(LDF)26 b(2002.11.05.)p Fm(])61 b(Connectors)27 b(other)h(than)g(the)h(ones)f(in)g(the)h (conditional)f(b)r(elo)n(w)f(could)i(cause)e(the)i Fk(P)m(ath)34 b Fm(to)0 363 y(b)r(e)28 b(non-linear)e(or)h(non-planar,)f(ev)n(en)h @@ -22457,7 +22454,7 @@ b Fn(\034)23 b Ff("Returning)p Fj( )p Ff(INVALI)o(D_P)-7 b(OINT.\\n\\n")23 b Fn(\034)h Fi(\015ush)10 b Fm(;)249 985 y Fk(return)33 b Ff(INVALID_POINT)o Fm(;)166 1085 -y Fn(g)83 1185 y(g)0 1384 y Fk(896.)94 b Fm([)p Fh(LDF)26 +y Fn(g)83 1185 y(g)0 1384 y Fk(899.)94 b Fm([)p Fh(LDF)26 b(2002.11.05.)p Fm(])60 b(Tw)n(o)27 b(p)r(oin)n(ts)h(determine)f(a)h (line.)0 1508 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 @@ -22470,10 +22467,10 @@ Fj( )p Ff(origi)o(n.)o(\\n)g(\\n")26 b Fn(\034)d Fi(\015ush)10 b Fm(;)166 1907 y Fk(return)33 b Fi(origin)12 b Fm(;)83 2006 y Fn(g)p eop end -%%Page: 245 245 -TeXDict begin 245 244 bop 0 83 a Fn(x)p Fm(897)140 b -Fl(3DLDFPR)n(G)2334 b Fk(P)-8 b(A)g(TH)24 b Fl(VERSION)141 -b Fm(245)0 263 y Fk(897.)0 388 y Fn(h)14 b Fm(De\014ne)28 +%%Page: 248 248 +TeXDict begin 248 247 bop 0 83 a Fm(248)140 b Fk(P)-8 +b(A)g(TH)24 b Fl(VERSION)2334 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(900)0 263 y Fk(900.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(ector)6 b Fn(h)p Fk(P)m(oin)m(t)33 b Fn(\003i)8 b Fm(::)h Fi(c)l(onst)p 962 487 26 4 v 30 @@ -22555,56 +22552,54 @@ b(\\n")26 b Fn(\034)d Fi(\015ush)11 b Fm(;)83 4871 y Fk(return)33 b Fn(\000)p Fi(b0)16 b Fm(;)28 b Fn(g)p eop end -%%Page: 246 246 -TeXDict begin 246 245 bop 0 83 a Fm(246)140 b Fk(POINT)24 -b Fl(VERSION)2282 b(3DLDFPR)n(G)142 b Fn(x)p Fm(898)0 -263 y Fk(898.)94 b(P)m(oin)m(t)26 b(v)m(ersion.)95 b(P)m(oin)m(t)13 -b Fm(::)8 b Fi(get)p 1333 263 26 4 v 31 w(normal)14 b -Fm(\()g(\))22 b(is)g(declared)f Fj(points.web)p Fm(,)e(but)k(it)f(m)n -(ust)g(b)r(e)g(de\014ned)h(here,)f(b)r(ecause)0 363 y(it)28 -b(calls)f Fk(P)m(ath)14 b Fm(::)8 b Fi(get)p 643 363 -V 31 w(normal)14 b Fm(\()g(\).)37 b([)p Fh(LDF)25 b(2003.07.11.)p -Fm(])p 0 467 1643 4 v 1738 499 a Fk(Begin)31 b(Log)p -2257 467 V 83 640 a Fm([)p Fh(LDF)25 b(2003.07.11.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 732 1678 4 -v 1773 764 a Fk(End)k(Log)p 2222 732 V 0 889 a Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 989 y Fk(P)m(oin)m(t)33 -b(P)m(oin)m(t)13 b Fm(::)8 b Fi(get)p 740 989 26 4 v +%%Page: 249 249 +TeXDict begin 249 248 bop 0 83 a Fn(x)p Fm(901)140 b +Fl(3DLDFPR)n(G)2282 b Fk(POINT)24 b Fl(VERSION)141 b +Fm(249)0 263 y Fk(901.)94 b(P)m(oin)m(t)26 b(v)m(ersion.)95 +b(P)m(oin)m(t)13 b Fm(::)8 b Fi(get)p 1333 263 26 4 v +31 w(normal)14 b Fm(\()g(\))22 b(is)g(declared)f Fj(points.web)p +Fm(,)e(but)k(it)f(m)n(ust)g(b)r(e)g(de\014ned)h(here,)f(b)r(ecause)0 +363 y(it)28 b(calls)f Fk(P)m(ath)14 b Fm(::)8 b Fi(get)p +643 363 V 31 w(normal)14 b Fm(\()g(\).)37 b([)p Fh(LDF)25 +b(2003.07.11.)p Fm(])p 0 466 1779 4 v 1874 498 a Fk(Log)p +2122 466 V 83 639 a Fm([)p Fh(LDF)g(2003.07.11.)p Fm(])61 +b(Added)28 b(this)g(function.)p 0 731 3900 4 v 0 888 +a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j +Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 988 y Fk(P)m(oin)m(t)33 +b(P)m(oin)m(t)13 b Fm(::)8 b Fi(get)p 740 988 26 4 v 31 w(normal)14 b Fm(\()p Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fe(p;)14 b Fk(const)32 b(P)m(oin)m(t)h Fm(&)o -Fe(q)s Fm(\))28 b Fk(const)83 1088 y Fn(f)166 1188 y +Fe(q)s Fm(\))28 b Fk(const)83 1087 y Fn(f)166 1187 y Fk(P)m(ath)34 b Fe(r)r Fm(;)166 1312 y Fe(r)s(:)p Fi(set)p 334 1312 V 30 w(c)l(onne)l(ctors)11 b Fm(\()p Ff("--")s -Fm(\);)166 1412 y Fe(r)26 b Fm(+=)c Fn(\003)p Fi(this)11 -b Fm(;)166 1512 y Fe(r)26 b Fm(+=)c Fe(p)p Fm(;)166 1611 -y Fe(r)k Fm(+=)c Fe(q)s Fm(;)166 1711 y Fk(if)41 b Fm(\()p -Fn(:)p Fe(r)t(:)p Fi(is)p 478 1711 V 31 w(planar)14 b +Fm(\);)166 1411 y Fe(r)26 b Fm(+=)c Fn(\003)p Fi(this)11 +b Fm(;)166 1511 y Fe(r)26 b Fm(+=)c Fe(p)p Fm(;)166 1611 +y Fe(r)k Fm(+=)c Fe(q)s Fm(;)166 1710 y Fk(if)41 b Fm(\()p +Fn(:)p Fe(r)t(:)p Fi(is)p 478 1710 V 31 w(planar)14 b Fm(\()g(\)\))42 b Fn(f)249 1810 y Fi(c)l(err)82 b Fn(\034)69 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Poin)o(t:)o(:ge)-7 -b(t_normal\(\):\\n")67 b Fn(\034)415 1910 y Ff("The)p +b(t_normal\(\):\\n")67 b Fn(\034)415 1909 y Ff("The)p Fj( )p Ff(Points)p Fj( )p Ff(do)p Fj( )p Ff(n)o(ot)p Fj( )o Ff(d)-6 b(etermine)p Fj( )p Ff(a)p Fj( )p Ff(plane)o(.\\)o(n")21 b Fn(\034)i Ff("Returning)p Fj( )p Ff(INVAL)o(ID_)o(P)-6 b(OINT.\\n\\n")23 b Fn(\034)g Fi(\015ush)10 b Fm(;)249 -2010 y Fk(return)33 b Ff(INVALID_POINT)o Fm(;)166 2109 -y Fn(g)166 2209 y Fk(else)45 b(return)33 b Fe(r)s(:)p -Fi(get)p 834 2209 V 30 w(normal)14 b Fm(\()g(\);)83 2309 -y Fn(g)0 2508 y Fk(899.)94 b(Get)32 b(plane.)p 0 2607 -1643 4 v 1738 2640 a(Begin)f(Log)p 2257 2607 V 83 2780 -a Fm([)p Fh(LDF)25 b(2002.11.05.)p Fm(])61 b(Rewrote)27 -b(this)h(function)g(to)g(corresp)r(ond)e(to)h(the)h(new)g(de\014nition) -g(of)f Fi(get)p 3067 2780 26 4 v 31 w(normal)13 b Fm(\()h(\).)p -0 2872 1678 4 v 1773 2905 a Fk(End)32 b(Log)p 2222 2872 -V 0 3030 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b -Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3129 y Fk(virtual)33 b(Plane)f Fi(get)p 771 3129 26 4 +2009 y Fk(return)33 b Ff(INVALID_POINT)o Fm(;)166 2109 +y Fn(g)166 2208 y Fk(else)45 b(return)33 b Fe(r)s(:)p +Fi(get)p 834 2208 V 30 w(normal)14 b Fm(\()g(\);)83 2308 +y Fn(g)0 2507 y Fk(902.)94 b(Get)32 b(plane.)p 0 2606 +1779 4 v 1874 2638 a(Log)p 2122 2606 V 83 2779 a Fm([)p +Fh(LDF)25 b(2002.11.05.)p Fm(])61 b(Rewrote)27 b(this)h(function)g(to)g +(corresp)r(ond)e(to)h(the)h(new)g(de\014nition)g(of)f +Fi(get)p 3067 2779 26 4 v 31 w(normal)13 b Fm(\()h(\).)p +0 2871 3900 4 v 0 3028 a Fn(h)g Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3128 y Fk(virtual)33 b(Plane)f Fi(get)p 771 3128 26 4 v 31 w(plane)11 b Fm(\()j(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 247 247 -TeXDict begin 247 246 bop 0 83 a Fn(x)p Fm(900)140 b -Fl(3DLDFPR)n(G)2522 b(GET)24 b(PLANE)140 b Fm(247)0 263 -y Fk(900.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 +%%Page: 250 250 +TeXDict begin 250 249 bop 0 83 a Fm(250)140 b Fl(GET)24 +b(PLANE)2521 b(3DLDFPR)n(G)142 b Fn(x)p Fm(903)0 263 +y Fk(903.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Plane)32 b(P)m(ath)15 b Fm(::)8 b Fi(get)p 726 487 26 4 v 31 w(plane)j Fm(\()j(\))28 b Fk(const)83 587 @@ -22622,92 +22617,90 @@ Fk(P)m(oin)m(t)g Fi(p)l(oint)12 b Fm(\()p Fi(get)p 756 1334 V 31 w(p)l(oint)h Fm(\(0)o(\)\);)166 1459 y Fk(return)33 b(Plane)5 b Fm(\()p Fi(p)l(oint)13 b Fe(;)h Fi(normal)f -Fm(\);)83 1558 y Fn(g)0 1757 y Fk(901.)94 b(P)m(oin)m(t)41 +Fm(\);)83 1558 y Fn(g)0 1757 y Fk(904.)94 b(P)m(oin)m(t)41 b(lies)d(within)i(triangle.)94 b Fm([)p Fh(LDF)25 b(2003.06.11.)p Fm(])68 b(Declared)35 b(in)g Fj(points.web)p Fm(.)54 b(Must)35 b(b)r(e)g(de\014ned)h(here,)0 1857 y(b)r(ecause)27 b Fk(P)m(ath)34 b Fm(is)27 b(an)h(incompletely)f(de\014ned)h(t)n(yp)r -(e)g(there.)p 0 1956 1643 4 v 1738 1989 a Fk(Begin)j(Log)p -2257 1956 V 83 2130 a Fm([)p Fh(LDF)25 b(2003.06.11.)p -Fm(])61 b(Added)28 b(this)g(function.)83 2229 y([)p Fh(LDF)d -(2003.06.24.)p Fm(])61 b(Remo)n(v)n(ed)27 b(the)h(argumen)n(t)e -Fi(test)p 1745 2229 26 4 v 30 w(p)l(oints)11 b Fm(.)37 -b(No)n(w,)28 b(planarit)n(y)e(is)h(alw)n(a)n(ys)f(tested.)83 -2329 y([)p Fh(LDF)f(2003.06.24.)p Fm(])61 b(BUG)28 b(FIX:)g(When)g(the) -g Fk(P)m(oin)m(ts)33 b Fm(all)27 b(la)n(y)g(in)h(the)g(x-z)f(plane,)g -(or)g(a)g(plane)h(parallel)e(to)h(it,)0 2429 y Fi(lamb)l(da)p -254 2429 V 32 w(denominator)51 b Fm(w)n(as)36 b(0.)64 -b(This)37 b(caused)f Fi(is)p 1626 2429 V 31 w(in)p 1729 -2429 V 31 w(triangle)11 b Fm(\()j(\))37 b(to)g(return)f +(e)g(there.)p 0 1956 1779 4 v 1874 1988 a Fk(Log)p 2122 +1956 V 83 2129 a Fm([)p Fh(LDF)d(2003.06.11.)p Fm(])61 +b(Added)28 b(this)g(function.)83 2229 y([)p Fh(LDF)d(2003.06.24.)p +Fm(])61 b(Remo)n(v)n(ed)27 b(the)h(argumen)n(t)e Fi(test)p +1745 2229 26 4 v 30 w(p)l(oints)11 b Fm(.)37 b(No)n(w,)28 +b(planarit)n(y)e(is)h(alw)n(a)n(ys)f(tested.)83 2328 +y([)p Fh(LDF)f(2003.06.24.)p Fm(])61 b(BUG)28 b(FIX:)g(When)g(the)g +Fk(P)m(oin)m(ts)33 b Fm(all)27 b(la)n(y)g(in)h(the)g(x-z)f(plane,)g(or) +g(a)g(plane)h(parallel)e(to)h(it,)0 2428 y Fi(lamb)l(da)p +254 2428 V 32 w(denominator)51 b Fm(w)n(as)36 b(0.)64 +b(This)37 b(caused)f Fi(is)p 1626 2428 V 31 w(in)p 1729 +2428 V 31 w(triangle)11 b Fm(\()j(\))37 b(to)g(return)f Fi(false)12 b Fm(,)39 b(ev)n(en)e(when)g Fn(\003)o Fi(this)49 -b Fm(did)37 b(lie)g(in)g(the)0 2528 y(triangle.)84 b(No)n(w,)47 -b(if)d Fi(lamb)l(da)p 963 2528 V 32 w(denominator)58 -b Fm(or)43 b Fi(mu)p 1740 2528 V 30 w(denominator)58 +b Fm(did)37 b(lie)g(in)g(the)0 2527 y(triangle.)84 b(No)n(w,)47 +b(if)d Fi(lamb)l(da)p 963 2527 V 32 w(denominator)58 +b Fm(or)43 b Fi(mu)p 1740 2527 V 30 w(denominator)58 b Fm(is)44 b(equal)f(to)g(0,)k(the)d(y)g(and)f(z-co)r(ordinates)f(are)0 -2628 y(exc)n(hanged,)25 b(and)h Fi(lamb)l(da)p 837 2628 -V 32 w(denominator)40 b Fm(and)26 b Fi(mu)p 1638 2628 +2627 y(exc)n(hanged,)25 b(and)h Fi(lamb)l(da)p 837 2627 +V 32 w(denominator)40 b Fm(and)26 b Fi(mu)p 1638 2627 V 30 w(denominator)40 b Fm(are)25 b(recalculated.)36 b(If)26 b(either)g(of)g(the)g(new)g(v)-5 b(alues)26 b(is)f(0,)0 2727 y(the)30 b(x)g(and)g(z-co)r(ordinates)f(are)g(exc)n(hanged)f (\(based)i(on)g(the)h(original)d(co)r(ordinate)h(v)-5 b(alues\),)31 b(and)f Fi(lamb)l(da)p 3403 2727 V 32 w(denominator)0 -2827 y Fm(and)c Fi(mu)p 278 2827 V 30 w(denominator)41 +2826 y Fm(and)c Fi(mu)p 278 2826 V 30 w(denominator)41 b Fm(are)26 b(again)f(recalculated.)36 b(Only)26 b(one)g(exc)n(hange)f (has)h(b)r(een)h(needed)g(in)f(the)h(cases)f(I'v)n(e)g(tested)h(so)0 -2927 y(far.)83 3026 y([)p Fh(LDF)e(2003.08.14.)p Fm(])61 +2926 y(far.)83 3026 y([)p Fh(LDF)e(2003.08.14.)p Fm(])61 b(Setting)28 b Fi(verb)l(ose)39 b Fm(to)28 b Fi(true)37 b Fm(if)28 b Ff(VERBOSE_GLOBAL)e Fm(is)i Fi(true)10 b -Fm(.)37 b(Added)28 b Ff(VERBOSE_GLOBAL)e Fm(to)0 3126 -y Fj(pspglb.web)e Fm(to)r(da)n(y)-7 b(.)p 0 3218 1678 -4 v 1773 3250 a Fk(End)32 b(Log)p 2222 3218 V 0 3375 -a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j -Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3475 y Fk(b)s(o)s(ol)33 -b(P)m(oin)m(t)14 b Fm(::)8 b Fi(is)p 654 3475 26 4 v -31 w(in)p 757 3475 V 31 w(triangle)j Fm(\()p Fk(const)35 -b(P)m(oin)m(t)g Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)35 -b(P)m(oin)m(t)g Fm(&)p Fi(p1)16 b Fe(;)e Fk(const)35 -b(P)m(oin)m(t)g Fm(&)o Fi(p2)17 b Fe(;)d Fk(b)s(o)s(ol)33 -b Fi(verb)l(ose)11 b Fm(\))415 3574 y Fk(const)5 b Fn(f)27 -b Fk(b)s(o)s(ol)k Ff(DEBUG)25 b Fm(=)e Fi(false)12 b -Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p -Fe(=)249 3699 y Fk(if)41 b Fm(\()p Ff(VERBOSE_GLOBAL)o -Fm(\))h Fi(verb)l(ose)34 b Fm(=)23 b Fi(true)10 b Fm(;)249 -3823 y Fk(P)m(ath)34 b Fe(q)s Fm(;)249 3948 y Fe(q)26 -b Fm(+=)c Fi(p0)17 b Fm(;)249 4047 y Fe(q)26 b Fm(+=)c -Fi(p1)17 b Fm(;)249 4147 y Fe(q)26 b Fm(+=)c Fi(p2)17 -b Fm(;)249 4272 y Fk(Plane)33 b Fi(q)p 560 4272 V 30 -w(pl)k Fm(=)22 b Fe(q)s(:)p Fi(get)p 944 4272 V 31 w(plane)11 -b Fm(\()j(\);)249 4396 y Fk(if)41 b Fm(\()p Fi(q)p 421 -4396 V 31 w(pl)c Fn(\021)22 b Ff(INVALID_PLANE)o Fm(\))42 -b Fn(f)332 4496 y Fk(if)f Fm(\()p Fi(verb)l(ose)12 b -Fm(\))42 b Fn(f)415 4595 y Fi(c)l(err)71 b Fn(\034)58 +Fm(.)37 b(Added)28 b Ff(VERBOSE_GLOBAL)e Fm(to)0 3125 +y Fj(pspglb.web)e Fm(to)r(da)n(y)-7 b(.)p 0 3217 3900 +4 v 0 3374 a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +3474 y Fk(b)s(o)s(ol)33 b(P)m(oin)m(t)14 b Fm(::)8 b +Fi(is)p 654 3474 26 4 v 31 w(in)p 757 3474 V 31 w(triangle)j +Fm(\()p Fk(const)35 b(P)m(oin)m(t)g Fm(&)p Fi(p0)16 b +Fe(;)e Fk(const)35 b(P)m(oin)m(t)g Fm(&)p Fi(p1)16 b +Fe(;)e Fk(const)35 b(P)m(oin)m(t)g Fm(&)o Fi(p2)17 b +Fe(;)d Fk(b)s(o)s(ol)33 b Fi(verb)l(ose)11 b Fm(\))415 +3574 y Fk(const)5 b Fn(f)27 b Fk(b)s(o)s(ol)k Ff(DEBUG)25 +b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b +Fi(true)52 b Fn(\003)p Fe(=)249 3698 y Fk(if)41 b Fm(\()p +Ff(VERBOSE_GLOBAL)o Fm(\))h Fi(verb)l(ose)34 b Fm(=)23 +b Fi(true)10 b Fm(;)249 3823 y Fk(P)m(ath)34 b Fe(q)s +Fm(;)249 3947 y Fe(q)26 b Fm(+=)c Fi(p0)17 b Fm(;)249 +4047 y Fe(q)26 b Fm(+=)c Fi(p1)17 b Fm(;)249 4146 y Fe(q)26 +b Fm(+=)c Fi(p2)17 b Fm(;)249 4271 y Fk(Plane)33 b Fi(q)p +560 4271 V 30 w(pl)k Fm(=)22 b Fe(q)s(:)p Fi(get)p 944 +4271 V 31 w(plane)11 b Fm(\()j(\);)249 4395 y Fk(if)41 +b Fm(\()p Fi(q)p 421 4395 V 31 w(pl)c Fn(\021)22 b Ff(INVALID_PLANE)o +Fm(\))42 b Fn(f)332 4495 y Fk(if)f Fm(\()p Fi(verb)l(ose)12 +b Fm(\))42 b Fn(f)415 4595 y Fi(c)l(err)71 b Fn(\034)58 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Po)o(int)o(::)-7 -b(is_in_triangle\(\):)o(\\n)o(")56 b Fn(\034)581 4695 +b(is_in_triangle\(\):)o(\\n)o(")56 b Fn(\034)581 4694 y Ff("The)p Fj( )p Ff(Point)p Fj( )p Ff(argume)o(nt)o(s)-6 b Fj( )p Ff(do)p Fj( )p Ff(not)p Fj( )p Ff(determin)o(e)p Fj( )o Ff(a)p Fj( )g Ff(plane.\\n")23 b Fn(\034)g Ff("Returning)p -Fj( )p Ff(false.)o(\\n\\)-7 b(n")27 b Fn(\034)581 4795 -y Fi(\015ush)11 b Fm(;)332 4894 y Fn(g)332 4994 y Fk(return)33 -b Fi(false)12 b Fm(;)249 5094 y Fn(g)249 5193 y Fk(else)31 -b(if)41 b Fm(\()p Fn(:)p Fi(is)p 681 5193 V 32 w(on)p -802 5193 V 31 w(plane)11 b Fm(\()p Fi(q)p 1104 5193 V -31 w(pl)j Fm(\)\))42 b Fn(f)332 5293 y Fk(if)f Fm(\()p +Fj( )p Ff(false.)o(\\n\\)-7 b(n")27 b Fn(\034)581 4794 +y Fi(\015ush)11 b Fm(;)332 4894 y Fn(g)332 4993 y Fk(return)33 +b Fi(false)12 b Fm(;)249 5093 y Fn(g)249 5192 y Fk(else)31 +b(if)41 b Fm(\()p Fn(:)p Fi(is)p 681 5192 V 32 w(on)p +802 5192 V 31 w(plane)11 b Fm(\()p Fi(q)p 1104 5192 V +31 w(pl)j Fm(\)\))42 b Fn(f)332 5292 y Fk(if)f Fm(\()p Fi(verb)l(ose)12 b Fm(\))42 b Fn(f)p eop end -%%Page: 248 248 -TeXDict begin 248 247 bop 0 83 a Fm(248)140 b Fk(POINT)24 -b Fl(LIES)g(WITHIN)g(TRIANGLE)1743 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(901)415 263 y Fi(c)l(err)71 b Fn(\034)58 -b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Po)o(int)o(::)-7 -b(is_in_triangle\(\):)o(\\n)o(")56 b Fn(\034)581 363 -y Ff("*this)p Fj( )p Ff(doesn't)p Fj( )p Ff(li)o(e)p -Fj( )o Ff(i)-6 b(n)p Fj( )p Ff(the)p Fj( )p Ff(plane)p -Fj( )p Ff(dete)o(rm)o(in)g(ed)p Fj( )p Ff(")32 b Fn(\034)d -Ff("by)p Fj( )p Ff(the)p Fj( )p Ff(argument)o(s.)o(\\n)-6 -b(")33 b Fn(\034)581 462 y Ff("Returning)p Fj( )p Ff(false.)o(\\n)o(\\) --6 b(n")26 b Fn(\034)e Fi(\015ush)10 b Fm(;)332 562 y -Fn(g)332 662 y Fk(return)33 b Fi(false)12 b Fm(;)249 -761 y Fn(g)249 886 y Fk(P)m(oin)m(t)33 b Fe(t)p Fm(\()p -Fn(\003)p Fi(this)11 b Fm(\);)249 985 y Fk(P)m(oin)m(t)33 +%%Page: 251 251 +TeXDict begin 251 250 bop 0 83 a Fn(x)p Fm(904)140 b +Fl(3DLDFPR)n(G)1742 b Fk(POINT)24 b Fl(LIES)g(WITHIN)h(TRIANGLE)141 +b Fm(251)415 263 y Fi(c)l(err)71 b Fn(\034)58 b Ff("WARNING!)p +Fj( )p Ff(In)p Fj( )p Ff(Po)o(int)o(::)-7 b(is_in_triangle\(\):)o(\\n)o +(")56 b Fn(\034)581 363 y Ff("*this)p Fj( )p Ff(doesn't)p +Fj( )p Ff(li)o(e)p Fj( )o Ff(i)-6 b(n)p Fj( )p Ff(the)p +Fj( )p Ff(plane)p Fj( )p Ff(dete)o(rm)o(in)g(ed)p Fj( )p +Ff(")32 b Fn(\034)d Ff("by)p Fj( )p Ff(the)p Fj( )p Ff(argument)o(s.)o +(\\n)-6 b(")33 b Fn(\034)581 462 y Ff("Returning)p Fj( )p +Ff(false.)o(\\n)o(\\)-6 b(n")26 b Fn(\034)e Fi(\015ush)10 +b Fm(;)332 562 y Fn(g)332 662 y Fk(return)33 b Fi(false)12 +b Fm(;)249 761 y Fn(g)249 886 y Fk(P)m(oin)m(t)33 b Fe(t)p +Fm(\()p Fn(\003)p Fi(this)11 b Fm(\);)249 985 y Fk(P)m(oin)m(t)33 b Fe(c)p Fm(\()p Fi(p0)16 b Fm(\);)249 1085 y Fk(P)m(oin)m(t)33 b Fe(d)p Fm(\()p Fi(p1)17 b Fm(\);)249 1185 y Fk(P)m(oin)m(t)33 b Fe(e)p Fm(\()p Fi(p2)16 b Fm(\);)249 1309 y Fe(t:)p @@ -22797,26 +22790,26 @@ b Fi(e)p 523 5269 V 31 w(z)15 b Fm(;)249 5369 y Fi(e)p 292 5369 V 31 w(z)37 b Fm(=)23 b Fi(temp)9 b Fm(;)p eop end -%%Page: 249 249 -TeXDict begin 249 248 bop 0 83 a Fn(x)p Fm(901)140 b -Fl(3DLDFPR)n(G)1742 b Fk(POINT)24 b Fl(LIES)g(WITHIN)h(TRIANGLE)141 -b Fm(249)249 263 y Fi(lamb)l(da)p 503 263 26 4 v 32 w(denominator)37 -b Fm(=)23 b(\(\(\()p Fi(e)p 1250 263 V 32 w(x)32 b Fn(\000)18 -b Fi(c)p 1474 263 V 31 w(x)13 b Fm(\))19 b Fn(\003)f -Fm(\()p Fi(d)p 1742 263 V 31 w(y)31 b Fn(\000)18 b Fi(c)p -1965 263 V 30 w(y)12 b Fm(\)\))19 b Fn(\000)f Fm(\(\()p -Fi(e)p 2315 263 V 32 w(y)30 b Fn(\000)18 b Fi(c)p 2538 -263 V 31 w(y)12 b Fm(\))18 b Fn(\003)g Fm(\()p Fi(d)p -2805 263 V 32 w(x)32 b Fn(\000)18 b Fi(c)p 3029 263 V -31 w(x)13 b Fm(\)\)\);)249 363 y Fi(mu)p 367 363 V 30 -w(denominator)38 b Fm(=)22 b(\(\()p Fi(e)p 1080 363 V -31 w(x)33 b Fn(\000)18 b Fi(c)p 1304 363 V 30 w(x)c Fm(\))19 -b Fn(\003)f Fm(\()p Fi(d)p 1572 363 V 31 w(y)31 b Fn(\000)18 -b Fi(c)p 1795 363 V 30 w(y)12 b Fm(\)\))19 b Fn(\000)f -Fm(\(\()p Fi(e)p 2145 363 V 32 w(y)30 b Fn(\000)18 b -Fi(c)p 2368 363 V 31 w(y)12 b Fm(\))18 b Fn(\003)g Fm(\()p -Fi(d)p 2635 363 V 32 w(x)32 b Fn(\000)18 b Fi(c)p 2859 -363 V 30 w(x)c Fm(\)\);)249 462 y Fk(if)41 b Fm(\()p +%%Page: 252 252 +TeXDict begin 252 251 bop 0 83 a Fm(252)140 b Fk(POINT)24 +b Fl(LIES)g(WITHIN)g(TRIANGLE)1743 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(904)249 263 y Fi(lamb)l(da)p 503 263 26 4 +v 32 w(denominator)37 b Fm(=)23 b(\(\(\()p Fi(e)p 1250 +263 V 32 w(x)32 b Fn(\000)18 b Fi(c)p 1474 263 V 31 w(x)13 +b Fm(\))19 b Fn(\003)f Fm(\()p Fi(d)p 1742 263 V 31 w(y)31 +b Fn(\000)18 b Fi(c)p 1965 263 V 30 w(y)12 b Fm(\)\))19 +b Fn(\000)f Fm(\(\()p Fi(e)p 2315 263 V 32 w(y)30 b Fn(\000)18 +b Fi(c)p 2538 263 V 31 w(y)12 b Fm(\))18 b Fn(\003)g +Fm(\()p Fi(d)p 2805 263 V 32 w(x)32 b Fn(\000)18 b Fi(c)p +3029 263 V 31 w(x)13 b Fm(\)\)\);)249 363 y Fi(mu)p 367 +363 V 30 w(denominator)38 b Fm(=)22 b(\(\()p Fi(e)p 1080 +363 V 31 w(x)33 b Fn(\000)18 b Fi(c)p 1304 363 V 30 w(x)c +Fm(\))19 b Fn(\003)f Fm(\()p Fi(d)p 1572 363 V 31 w(y)31 +b Fn(\000)18 b Fi(c)p 1795 363 V 30 w(y)12 b Fm(\)\))19 +b Fn(\000)f Fm(\(\()p Fi(e)p 2145 363 V 32 w(y)30 b Fn(\000)18 +b Fi(c)p 2368 363 V 31 w(y)12 b Fm(\))18 b Fn(\003)g +Fm(\()p Fi(d)p 2635 363 V 32 w(x)32 b Fn(\000)18 b Fi(c)p +2859 363 V 30 w(x)c Fm(\)\);)249 462 y Fk(if)41 b Fm(\()p Fn(:)p Fm(\()p Fi(lamb)l(da)p 719 462 V 33 w(denominator)d Fn(\021)22 b Fm(0)c Fn(_)h Fi(mu)p 1580 462 V 30 w(denominator)37 b Fn(\021)23 b Fm(0\)\))42 b Fn(f)332 562 y Fk(if)55 @@ -22834,7 +22827,7 @@ Ff(and)o Fj( )p Ff(z-)-7 b(coordinates)p Fj( )p Ff(didn')o(t)p Fj( )o Ff(w)h(ork.\\n")44 b Fn(\034)498 1160 y Ff("Exchanging)p Fj( )p Ff(x)p Fj( )p Ff(and)o Fj( )p Ff(z)o(-)-6 b(coordinates.\\n")21 -b Fn(\034)i Fi(\015ush)10 b Fm(;)0 1359 y Fk(902.)94 +b Fn(\034)i Fi(\015ush)10 b Fm(;)0 1359 y Fk(905.)94 b Fm(First,)28 b(put)g(things)f(bac)n(k)g(the)h(w)n(a)n(y)f(they)g(w)n (ere.)36 b(It's)28 b(w)n(asteful,)f(but)i(less)e(confusing.)36 b([)p Fh(LDF)26 b(2003.06.24.)p Fm(])0 1483 y Fn(h)14 @@ -22856,11 +22849,11 @@ y Fi(e)p 126 2579 V 31 w(y)35 b Fm(=)22 b Fi(e)p 357 2579 V 31 w(z)14 b Fm(;)83 2679 y Fi(e)p 126 2679 V 31 w(z)37 b Fm(=)23 b Fi(temp)9 b Fm(;)p eop end -%%Page: 250 250 -TeXDict begin 250 249 bop 0 83 a Fm(250)140 b Fk(POINT)24 -b Fl(LIES)g(WITHIN)g(TRIANGLE)1743 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(903)0 263 y Fk(903.)94 b Fm(No)n(w,)27 b(exc)n(hange)g(the) -h(x)f(and)g(z-co)r(ordinates.)35 b([)p Fh(LDF)26 b(2003.06.24.)p +%%Page: 253 253 +TeXDict begin 253 252 bop 0 83 a Fn(x)p Fm(906)140 b +Fl(3DLDFPR)n(G)1742 b Fk(POINT)24 b Fl(LIES)g(WITHIN)h(TRIANGLE)141 +b Fm(253)0 263 y Fk(906.)94 b Fm(No)n(w,)27 b(exc)n(hange)g(the)h(x)f +(and)g(z-co)r(ordinates.)35 b([)p Fh(LDF)26 b(2003.06.24.)p Fm(])0 385 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)24 b Fm(+)p Fn(\021)83 484 y Fi(temp)33 b Fm(=)22 b Fi(t)p 412 484 26 4 v 30 @@ -22869,8 +22862,8 @@ 684 V 30 w(z)38 b Fm(=)22 b Fi(temp)10 b Fm(;)83 783 y Fi(temp)33 b Fm(=)22 b Fi(c)p 422 783 V 31 w(x)14 b Fm(;)83 883 y Fi(c)p 126 883 V 31 w(x)37 b Fm(=)22 b -Fi(c)p 358 883 V 31 w(z)14 b Fm(;)83 982 y Fi(c)p 126 -982 V 31 w(z)37 b Fm(=)23 b Fi(temp)9 b Fm(;)83 1082 +Fi(c)p 358 883 V 31 w(z)14 b Fm(;)83 983 y Fi(c)p 126 +983 V 31 w(z)37 b Fm(=)23 b Fi(temp)9 b Fm(;)83 1082 y Fi(temp)33 b Fm(=)22 b Fi(d)p 426 1082 V 31 w(x)14 b Fm(;)83 1182 y Fi(d)p 130 1182 V 31 w(x)37 b Fm(=)22 b Fi(d)p 366 1182 V 31 w(z)15 b Fm(;)83 1281 y Fi(d)p @@ -22887,15 +22880,15 @@ Fi(e)p 2149 1680 V 32 w(y)30 b Fn(\000)18 b Fi(c)p 2372 1680 V 31 w(y)12 b Fm(\))18 b Fn(\003)g Fm(\()p Fi(d)p 2639 1680 V 32 w(x)32 b Fn(\000)18 b Fi(c)p 2863 1680 -V 31 w(x)13 b Fm(\)\)\);)83 1779 y Fi(mu)p 201 1779 V -30 w(denominator)37 b Fm(=)23 b(\(\()p Fi(e)p 914 1779 -V 31 w(x)33 b Fn(\000)18 b Fi(c)p 1138 1779 V 30 w(x)c -Fm(\))19 b Fn(\003)f Fm(\()p Fi(d)p 1406 1779 V 31 w(y)30 -b Fn(\000)18 b Fi(c)p 1628 1779 V 31 w(y)12 b Fm(\)\))19 -b Fn(\000)f Fm(\(\()p Fi(e)p 1979 1779 V 31 w(y)31 b -Fn(\000)18 b Fi(c)p 2202 1779 V 31 w(y)11 b Fm(\))19 -b Fn(\003)f Fm(\()p Fi(d)p 2469 1779 V 31 w(x)33 b Fn(\000)18 -b Fi(c)p 2693 1779 V 30 w(x)c Fm(\)\);)83 1879 y Fk(if)41 +V 31 w(x)13 b Fm(\)\)\);)83 1780 y Fi(mu)p 201 1780 V +30 w(denominator)37 b Fm(=)23 b(\(\()p Fi(e)p 914 1780 +V 31 w(x)33 b Fn(\000)18 b Fi(c)p 1138 1780 V 30 w(x)c +Fm(\))19 b Fn(\003)f Fm(\()p Fi(d)p 1406 1780 V 31 w(y)30 +b Fn(\000)18 b Fi(c)p 1628 1780 V 31 w(y)12 b Fm(\)\))19 +b Fn(\000)f Fm(\(\()p Fi(e)p 1979 1780 V 31 w(y)31 b +Fn(\000)18 b Fi(c)p 2202 1780 V 31 w(y)11 b Fm(\))19 +b Fn(\003)f Fm(\()p Fi(d)p 2469 1780 V 31 w(x)33 b Fn(\000)18 +b Fi(c)p 2693 1780 V 30 w(x)c Fm(\)\);)83 1879 y Fk(if)41 b Fm(\()p Fn(:)p Fm(\()p Fi(lamb)l(da)p 553 1879 V 33 w(denominator)d Fn(\021)22 b Fm(0)c Fn(_)h Fi(mu)p 1414 1879 V 30 w(denominator)37 b Fn(\021)23 b Fm(0)o(\)\))43 @@ -22910,7 +22903,7 @@ V 31 w(x)p 563 2178 V 30 w(z)38 b Fm(=)23 b Fi(true)9 b Fm(;)83 2278 y Fn(g)83 2377 y Fk(else)45 b Fn(f)166 2477 y Fk(if)c Fm(\()p Fi(verb)l(ose)30 b Fn(_)19 b Ff(DEBUG)r -Fm(\))42 b Fn(f)249 2576 y Fi(c)l(err)75 b Fn(\034)62 +Fm(\))42 b Fn(f)249 2577 y Fi(c)l(err)75 b Fn(\034)62 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Poi)o(nt:)o(:)-6 b(is_in_triangle\(\))o(:\\)o(n")60 b Fn(\034)415 2676 y Ff("lambda_denomina)o(tor)o Fj( )-6 b Ff(or)p Fj( )p @@ -22937,7 +22930,7 @@ Fi(e)p 2267 3174 V 31 w(x)32 b Fn(\000)18 b Fi(c)p 2490 3174 V 31 w(x)c Fm(\)\)\))p Fe(=)p Fi(mu)p 2825 3174 V 30 w(denominator)h Fm(\);)83 3296 y Fk(if)41 b Fm(\()p -Ff(DEBUG)s Fm(\))h Fn(f)166 3395 y Fi(c)l(out)35 b Fn(\034)23 +Ff(DEBUG)s Fm(\))h Fn(f)166 3396 y Fi(c)l(out)35 b Fn(\034)23 b Ff("lambda)p Fj( )p Ff(==)p Fj( )p Ff(")f Fn(\034)h Fi(lamb)l(da)35 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)11 b Fm(;)166 3495 y Fi(c)l(out)35 b Fn(\034)23 @@ -22947,7 +22940,7 @@ Fj( )p Ff(+)p Fj( )p Ff(mu)p Fj( )p Ff(==)p Fj( )o Ff(")e Fn(\034)i Fi(lamb)l(da)31 b Fm(+)18 b Fi(mu)33 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)166 -3694 y Fi(c)l(out)40 b Fn(\034)27 b Ff("\(lambda)p Fj( )p +3695 y Fi(c)l(out)40 b Fn(\034)27 b Ff("\(lambda)p Fj( )p Ff(>=)p Fj( )p Ff(0)p Fj( )p Ff(&&)p Fj( )o Ff(mu)o Fj( )-6 b Ff(>=)p Fj( )p Ff(0)p Fj( )p Ff(&&)p Fj( )p Ff(\(\(lambda)o Fj( )p Ff(+)p Fj( )o Ff(m)g(u\))p Fj( )p Ff(<=)p Fj( )p @@ -22956,14 +22949,14 @@ Fi(mu)38 b Fn(\025)332 3794 y Fm(0)18 b Fn(^)h Fm(\(\()p Fi(lamb)l(da)31 b Fm(+)18 b Fi(mu)10 b Fm(\))23 b Fn(\024)g Fm(1)o(\)\))h Fn(\034)f Fi(end)t(l)37 b Fn(\034)23 b -Fi(\015ush)10 b Fm(;)83 3894 y Fn(g)83 4015 y Fk(b)s(o)s(ol)31 +Fi(\015ush)10 b Fm(;)83 3894 y Fn(g)83 4016 y Fk(b)s(o)s(ol)31 b Fe(b)23 b Fm(=)f(\()p Fi(lamb)l(da)35 b Fn(\025)23 b Fm(0)18 b Fn(^)h Fi(mu)33 b Fn(\025)23 b Fm(0)18 b Fn(^)g Fm(\(\()p Fi(lamb)l(da)31 b Fm(+)18 b Fi(mu)10 b Fm(\))24 b Fn(\024)e Fm(1\)\);)83 4137 y Fk(if)41 b Fm(\()p Fi(verb)l(ose)12 b Fm(\))42 b Fn(f)166 4237 y Fi(c)l(out)35 b Fn(\034)23 b Ff("In)p Fj( )p Ff(Point::is_in)o(_t)o(ri) --6 b(angle:\\n")p Fm(;)166 4336 y Fk(if)41 b Fm(\()p +-6 b(angle:\\n")p Fm(;)166 4337 y Fk(if)41 b Fm(\()p Fe(b)p Fm(\))h Fi(c)l(out)35 b Fn(\034)23 b Ff("The)p Fj( )p Ff(Point)p Fj( )p Ff(lies)p Fj( )o Ff(wi)o(th)-7 b(in)p Fj( )p Ff(the)p Fj( )p Ff(triangle.)p Fj( )o Ff(")21 @@ -22972,85 +22965,83 @@ Fj( )p Ff(Point)p Fj( )p Ff(doesn)o('t)o Fj( )p Ff(l)-6 b(ie)p Fj( )p Ff(within)p Fj( )p Ff(the)p Fj( )p Ff(t)o(ri)o(ang)f(le.) p Fj( )p Ff(")26 b Fn(\034)d Ff("Returning)p Fj( )p Ff(fals)o(e.")n -Fm(;)166 4535 y Fi(c)l(out)35 b Fn(\034)23 b Fi(end)t(l)36 +Fm(;)166 4536 y Fi(c)l(out)35 b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)24 b Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 -b Fm(;)83 4635 y Fn(g)83 4735 y Fk(return)33 b Fe(b)p -Fm(;)k Fn(g)0 4934 y Fk(904.)94 b(Manipulating)31 b(P)m(aths.)0 -5133 y(905.)94 b(Set)32 b(cycle.)p 0 5227 1643 4 v 1738 -5259 a(Begin)f(Log)p 2257 5227 V 83 5400 a Fm([)p Fh(LDF)25 -b(2002.4.7.)p Fm(])60 b(Changed,)27 b(so)g(that)h(the)g(argumen)n(t)f +b Fm(;)83 4636 y Fn(g)83 4735 y Fk(return)33 b Fe(b)p +Fm(;)k Fn(g)0 4934 y Fk(907.)94 b(Manipulating)31 b(P)m(aths.)0 +5134 y(908.)94 b(Set)32 b(cycle.)p 0 5227 1779 4 v 1874 +5259 a(Log)p 2122 5227 V 83 5400 a Fm([)p Fh(LDF)25 b(2002.4.7.)p +Fm(])60 b(Changed,)27 b(so)g(that)h(the)g(argumen)n(t)f Fk(b)s(o)s(ol)j Fe(c)e Fm(is)g Fi(true)37 b Fm(b)n(y)27 b(default.)p eop end -%%Page: 251 251 -TeXDict begin 251 250 bop 0 83 a Fn(x)p Fm(905)140 b -Fl(3DLDFPR)n(G)2537 b(SET)23 b(CYCLE)141 b Fm(251)83 -263 y([)p Fh(LDF)25 b(2002.11.05.)p Fm(])61 b(Made)27 -b Fk(b)s(o)s(ol)k Fe(c)d Fm(argumen)n(t)e Fk(const)5 -b Fm(.)p 0 355 1678 4 v 1773 388 a Fk(End)32 b(Log)p -2222 355 V 0 512 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 -b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 254 254 +TeXDict begin 254 253 bop 0 83 a Fm(254)140 b Fl(SET)23 +b(CYCLE)2537 b(3DLDFPR)n(G)142 b Fn(x)p Fm(908)83 263 +y([)p Fh(LDF)25 b(2002.11.05.)p Fm(])61 b(Made)27 b Fk(b)s(o)s(ol)k +Fe(c)d Fm(argumen)n(t)e Fk(const)5 b Fm(.)p 0 355 3900 +4 v 0 512 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b +Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 612 y Fk(v)m(oid)33 b Fi(set)p 396 612 26 4 v 30 w(cycle)11 b Fm(\()p Fk(const)33 b(b)s(o)s(ol)e Fe(c)23 b Fm(=)g -Fi(true)9 b Fm(\);)0 811 y Fk(906.)0 936 y Fn(h)14 b +Fi(true)9 b Fm(\);)0 811 y Fk(909.)0 936 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1035 y Fk(v)m(oid)33 b(P)m(ath)14 b Fm(::)8 b Fi(set)p 662 1035 V 30 w(cycle)k Fm(\()p Fk(const)33 b(b)s(o)s(ol)e Fe(c)p Fm(\))83 1135 y Fn(f)166 1234 y Fi(cycle)p 346 1234 V 32 w(switch)j Fm(=)23 b -Fe(c)p Fm(;)83 1334 y Fn(g)0 1533 y Fk(907.)94 b(Rev)m(erse.)0 -1733 y(908.)g(With)31 b(assignmen)m(t.)p 0 1832 1643 -4 v 1738 1864 a(Begin)g(Log)p 2257 1832 V 83 2005 a Fm([)p -Fh(LDF)25 b(2002.4.6.)p Fm(])60 b(Added)29 b(this)e(function.)83 -2105 y([)p Fh(LDF)e(2003.07.16.)p Fm(])61 b(Added)29 +Fe(c)p Fm(;)83 1334 y Fn(g)0 1533 y Fk(910.)94 b(Rev)m(erse.)0 +1733 y(911.)g(With)31 b(assignmen)m(t.)p 0 1831 1779 +4 v 1874 1864 a(Log)p 2122 1831 V 83 2004 a Fm([)p Fh(LDF)25 +b(2002.4.6.)p Fm(])60 b(Added)29 b(this)e(function.)83 +2104 y([)p Fh(LDF)e(2003.07.16.)p Fm(])61 b(Added)29 b(error)c(handling)j(co)r(de)f(for)g(the)i(case)d(that)i(this)g (function)h(is)e(called)h(with)g Fi(assign)34 b Fn(\021)23 b Fi(false)12 b Fm(.)0 2204 y(I'v)n(e)24 b(no)n(w)f(added)h(a)g Fk(const)29 b Fm(v)n(ersion,)24 b(so)f(there's)h(no)g(need)g(to)h(call) e(this)i(v)n(ersion)e(with)h Fi(assign)35 b Fn(\021)22 b Fi(false)12 b Fm(.)36 b(If)25 b Fi(assign)35 b Fm(is)24 -b Fi(false)12 b Fm(,)0 2304 y(the)28 b Fk(const)k Fm(v)n(ersion)26 +b Fi(false)12 b Fm(,)0 2303 y(the)28 b Fk(const)k Fm(v)n(ersion)26 b(is)i(called,)f(so)g(I)h(could)f(simplify)h(the)g(co)r(de)g(in)g(this) -f(v)n(ersion.)p 0 2396 1678 4 v 1773 2429 a Fk(End)32 -b(Log)p 2222 2396 V 0 2553 a Fn(h)14 b Fm(Declare)27 +f(v)n(ersion.)p 0 2395 3900 4 v 0 2552 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 2653 y Fk(P)m(ath)34 b Fi(r)l(everse)11 +b Fm(+)p Fn(\021)83 2652 y Fk(P)m(ath)34 b Fi(r)l(everse)11 b Fm(\()p Fk(b)s(o)s(ol)31 b Fi(assign)11 b Fm(\);)0 -2852 y Fk(909.)0 2976 y Fn(h)j Fm(De\014ne)28 b Fk(P)m(ath)34 +2851 y Fk(912.)0 2976 y Fn(h)j Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3076 y Fk(P)m(ath)34 b(P)m(ath)14 b Fm(::)8 b Fi(r)l(everse)j +3075 y Fk(P)m(ath)34 b(P)m(ath)14 b Fm(::)8 b Fi(r)l(everse)j Fm(\()p Fk(b)s(o)s(ol)31 b Fi(assign)12 b Fm(\))p Fn(f)27 b Fk(b)s(o)s(ol)k Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 b Fn(\003)p -Fe(=)249 3201 y Fk(if)41 b Fm(\()p Fi(is)p 442 3201 26 +Fe(=)249 3200 y Fk(if)41 b Fm(\()p Fi(is)p 442 3200 26 4 v 32 w(cycle)11 b Fm(\()j(\)\))167 b Fe(=)p Fn(\003)40 b Fm(Return)28 b Fn(\003)p Fi(this)39 b Fm(if)28 b Fn(\003)o Fi(this)40 b Fm(is)27 b(a)g(cycle.)51 b Fn(\003)p Fe(=)249 -3300 y Fn(f)332 3400 y Fi(c)l(err)40 b Fn(\034)28 b Ff("ERROR!)p +3300 y Fn(f)332 3399 y Fi(c)l(err)40 b Fn(\034)28 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Path)o(::)o(rev)-7 b(erse\(\).\\n")27 b Fn(\034)h Ff("*this)p Fj( )p Ff(is)p Fj( )p Ff(a)p Fj( )p Ff(cyc)o(le)o(.)p Fj( )p Ff(C)-7 b(an't)p Fj( )p Ff(reverse.\\n")25 b Fn(\034)498 3499 y Ff("Returning)p -Fj( )p Ff(*this.)o(\\n)o(\\)-6 b(n")s Fm(;)332 3599 y -Fk(return)33 b Fn(\003)p Fi(this)11 b Fm(;)249 3699 y +Fj( )p Ff(*this.)o(\\n)o(\\)-6 b(n")s Fm(;)332 3598 y +Fk(return)33 b Fn(\003)p Fi(this)11 b Fm(;)249 3698 y Fn(g)249 3798 y Fk(if)41 b Fm(\()p Fn(:)p Fi(assign)12 -b Fm(\))42 b Fn(f)332 3898 y Fi(c)l(err)53 b Fn(\034)40 +b Fm(\))42 b Fn(f)332 3897 y Fi(c)l(err)53 b Fn(\034)40 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Pat)o(h:)o(:r)-6 b(everse\(bool\):\\n)o(")38 b Fn(\034)i Ff("assign)p Fj( )p Ff(==)p Fj( )p Ff(false)o(.)p Fj( )o Ff(Do)-7 -b(\\)498 3998 y(n't)p Fj( )p Ff(call)p Fj( )p Ff(this)p +b(\\)498 3997 y(n't)p Fj( )p Ff(call)p Fj( )p Ff(this)p Fj( )p Ff(fun)o(ct)o(i)h(on)p Fj( )p Ff(")45 b Fn(\034)e Ff("with)p Fj( )p Ff(false)p Fj( )p Ff(as)p Fj( )p Ff(i)o(ts)o Fj( )p Ff(a)-7 b(rgument.\\n")43 b Fn(\034)498 4097 y Ff("Use)p Fj( )p Ff(reverse\(\))p Fj( )p Ff(wi)o(th)o(o)-6 b(ut)p Fj( )p Ff(an)p Fj( )p Ff(argument)p Fj( )p Ff(i)o(ns)o(te)g (ad.\\n")25 b Fn(\034)e Ff("Calling)p Fj( )p Ff(revers)o(e\(v)o(oi)-7 -b(d\).\\n\\n")24 b Fn(\034)498 4197 y Fi(\015ush)10 b -Fm(;)332 4297 y Fk(return)33 b Fi(r)l(everse)11 b Fm(\()j(\);)249 -4396 y Fn(g)p eop end -%%Page: 252 252 -TeXDict begin 252 251 bop 0 83 a Fm(252)140 b Fl(WITH)24 -b(ASSIGNMENT)2239 b(3DLDFPR)n(G)142 b Fn(x)p Fm(910)0 -263 y Fk(910.)94 b Fm([)p Fh(LDF)26 b(2002.4.6.)p Fm(])64 +b(d\).\\n\\n")24 b Fn(\034)498 4196 y Fi(\015ush)10 b +Fm(;)332 4296 y Fk(return)33 b Fi(r)l(everse)11 b Fm(\()j(\);)249 +4395 y Fn(g)p eop end +%%Page: 255 255 +TeXDict begin 255 254 bop 0 83 a Fn(x)p Fm(913)140 b +Fl(3DLDFPR)n(G)2239 b(WITH)24 b(ASSIGNMENT)141 b Fm(255)0 +263 y Fk(913.)94 b Fm([)p Fh(LDF)26 b(2002.4.6.)p Fm(])64 b(If)32 b(there)g(is)g(more)f(than)h(one)g(connector,)g(but)g(there)g (isn't)g(an)g(explicit)g(connector)f(for)g(ev)n(ery)0 363 y(pair)h(of)g Fk(P)m(oin)m(ts)38 b Fm(in)32 b Fi(p)l(oints)12 @@ -23074,7 +23065,7 @@ b Fn(\000)f Fm(1)o(\))42 b Fi(c)l(onne)l(ctors)11 b Fe(:)p Fi(push)p 2464 1010 V 31 w(b)l(ack)j Fm(\()p Fi(last)p 2818 1010 V 31 w(c)l(onne)l(ctor)f Fm(\);)83 1110 y Fn(g)0 -1309 y Fk(911.)94 b Fm([)p Fh(LDF)26 b(2002.4.7.)p Fm(])57 +1309 y Fk(914.)94 b Fm([)p Fh(LDF)26 b(2002.4.7.)p Fm(])57 b(If)25 b(I)g(don't)g(explicitly)g(refer)f(to)h(the)g Fk(std)k Fm(namespace)24 b(here,)h(this)g(function)h(is)f(called,)g (and)f(since)0 1409 y(the)k(argumen)n(ts)e(are)h(di\013eren)n(t)h(from) @@ -23111,26 +23102,24 @@ 2530 y Fi(getchar)g Fm(\()g(\);)83 2629 y Fn(g)166 b Fe(=)p Fn(\003)40 b Fk(if)h Fm(\()p Ff(DEBUG)s Fm(\))h Fn(\003)p Fe(=)83 2729 y Fk(return)33 b Fn(\003)p Fi(this)11 -b Fm(;)28 b Fn(g)0 2928 y Fk(912.)94 b(No)35 b(assignmen)m(t.)94 +b Fm(;)28 b Fn(g)0 2928 y Fk(915.)94 b(No)35 b(assignmen)m(t.)94 b Fm(This)31 b(v)n(ersion)e(merely)h(copies)g Fn(\003)p Fi(this)42 b Fm(and)31 b(calls)f Fi(r)l(everse)11 b Fm(\()p Fi(true)f Fm(\))31 b(on)g(the)g(cop)n(y)-7 b(,)31 b(returning)0 3028 y(the)d(return)f(v)-5 b(alue)28 b(of)f(that)h(function)g(call.)p -0 3103 1643 4 v 1738 3136 a Fk(Begin)j(Log)p 2257 3103 -V 83 3277 a Fm([)p Fh(LDF)25 b(2003.07.16.)p Fm(])61 -b(Added)28 b(this)g(function.)p 0 3369 1678 4 v 1773 -3401 a Fk(End)k(Log)p 2222 3369 V 0 3526 a Fn(h)14 b -Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3625 y Fk(P)m(ath)34 b -Fi(r)l(everse)11 b Fm(\()p Fk(v)m(oid)5 b Fm(\))28 b -Fk(const)t Fm(;)0 3825 y Fk(913.)0 3949 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 4049 y Fk(P)m(ath)34 b(P)m(ath)14 -b Fm(::)8 b Fi(r)l(everse)j Fm(\()p Fk(v)m(oid)5 b Fm(\))28 -b Fk(const)83 4148 y Fn(f)166 4248 y Fk(P)m(ath)34 b -Fe(p)23 b Fm(=)f Fn(\003)p Fi(this)11 b Fm(;)166 4373 +0 3103 1779 4 v 1874 3136 a Fk(Log)p 2122 3103 V 83 3277 +a Fm([)p Fh(LDF)d(2003.07.16.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 3369 3900 4 v 0 3526 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(ath)34 +b Fm(functions)h Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3625 y Fk(P)m(ath)34 b Fi(r)l(everse)11 b Fm(\()p Fk(v)m(oid)5 +b Fm(\))28 b Fk(const)t Fm(;)0 3825 y Fk(916.)0 3949 +y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h +Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4049 y Fk(P)m(ath)34 +b(P)m(ath)14 b Fm(::)8 b Fi(r)l(everse)j Fm(\()p Fk(v)m(oid)5 +b Fm(\))28 b Fk(const)83 4148 y Fn(f)166 4248 y Fk(P)m(ath)34 +b Fe(p)23 b Fm(=)f Fn(\003)p Fi(this)11 b Fm(;)166 4373 y Fk(return)33 b Fe(p:)p Fi(r)l(everse)11 b Fm(\()p Fi(true)f -Fm(\);)83 4472 y Fn(g)0 4671 y Fk(914.)94 b(Equalit)m(y)-8 +Fm(\);)83 4472 y Fn(g)0 4671 y Fk(917.)94 b(Equalit)m(y)-8 b(.)96 b Fm(TO)41 b(DO:)g(I'll)g(need)h(to)f(mak)n(e)f(all)h (connectors)f(explicit)h(in)h(order)e(to)h(mak)n(e)f(this)i(w)n(ork.)76 b(See)0 4771 y Fk(op)s(erator)5 b Fm(&)o(\()14 b(\))29 @@ -23140,15 +23129,15 @@ Fk(if)41 b Fm(0)83 5095 y Fk(virtual)33 b(b)s(o)s(ol)e(op)s(erator)t Fn(\021)p Fm(\()p Fk(P)m(ath)j Fm(&)p Fe(p)o Fm(\);)0 5195 y(#)p Fk(endif)p eop end -%%Page: 253 253 -TeXDict begin 253 252 bop 0 83 a Fn(x)p Fm(915)140 b -Fl(3DLDFPR)n(G)2563 b(EQUALITY)141 b Fm(253)0 263 y Fk(915.)0 -388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h +%%Page: 256 256 +TeXDict begin 256 255 bop 0 83 a Fm(256)140 b Fl(EQUALITY)2563 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(918)0 263 y Fk(918.)0 388 +y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)0 487 y Fm(#)p Fk(if)41 b Fm(0)83 587 y Fk(virtual)33 b(b)s(o)s(ol)e(P)m(ath)14 b Fm(::)8 b Fk(op)s(erator)d Fn(\021)p Fm(\()p Fk(P)m(ath)34 b Fm(&)o Fe(p)p Fm(\))83 686 y Fn(f)14 b(g)0 786 y Fm(#)p -Fk(endif)0 985 y(916.)94 b(In)m(tersection.)0 1185 y(917.)g(In)m +Fk(endif)0 985 y(919.)94 b(In)m(tersection.)0 1185 y(920.)g(In)m (tersection)32 b(of)g(t)m(w)m(o)g(linear)g(P)m(aths.)95 b Fm(If)28 b Fn(\003)p Fi(this)39 b Fm(is)28 b(a)f(line)h(and)f(the)h (argumen)n(t)f Fi(p)l(a)38 b Fm(is)28 b(a)f(line,)0 1284 @@ -23159,64 +23148,64 @@ n(wn)g(v)n(ersions)f(of)i(this)g(function.)83 1483 y(I)g(ma)n(y)f(ha)n (v)n(e)f(a)h(problem)g(with)h(the)g(constancy)f(of)g Fn(\003)p Fi(this)39 b Fm(and)28 b Fi(p)l(a)11 b Fm(.)37 -b(If)28 b(I)f(do,)h(just)g(remo)n(v)n(e)e(it.)p 0 1583 -1643 4 v 1738 1615 a Fk(Begin)31 b(Log)p 2257 1583 V -83 1756 a Fm([)p Fh(LDF)25 b(2002.04.15.)p Fm(])53 b(Changed)19 -b(return)g(v)-5 b(alue)20 b(from)f Fk(b)s(o)s(ol)p 1896 -1756 29 5 v 38 w(real)p 2090 1756 V 41 w(p)s(oin)m(t)24 -b Fm(to)19 b Fk(b)s(o)s(ol)p 2648 1756 V 38 w(p)s(oin)m(t)5 -b Fm(,)21 b(since)e(I'v)n(e)h(had)f(to)h(commen)n(t-)0 -1856 y(out)28 b(the)g(v)n(ersion)e(of)h Fk(P)m(oin)m(t)14 -b Fm(::)8 b Fi(interse)l(ction)p 1385 1856 26 4 v 31 -w(p)l(oint)k Fm(\()i(\))28 b(that)g(uses)f(the)h Fk(Line)33 -b Fm(v)n(ersion.)83 1955 y([)p Fh(LDF)25 b(2002.04.10.)p -Fm(])77 b(Changed)43 b(return)h(t)n(yp)r(e)f(to)h Fk(b)s(o)s(ol)p -1894 1955 29 5 v 38 w(real)p 2088 1955 V 41 w(p)s(oin)m(t)k -Fm(to)43 b(corresp)r(ond)f(with)i(the)h(same)e(c)n(hange)f(to)0 -2055 y Fk(P)m(oin)m(t)13 b Fm(::)8 b Fi(interse)l(ction)p -717 2055 26 4 v 32 w(p)l(oint)k Fm(\()i(\).)83 2155 y([)p +b(If)28 b(I)f(do,)h(just)g(remo)n(v)n(e)e(it.)p 0 1582 +1779 4 v 1874 1615 a Fk(Log)p 2122 1582 V 83 1755 a Fm([)p +Fh(LDF)f(2002.04.15.)p Fm(])53 b(Changed)19 b(return)g(v)-5 +b(alue)20 b(from)f Fk(b)s(o)s(ol)p 1896 1755 29 5 v 38 +w(real)p 2090 1755 V 41 w(p)s(oin)m(t)24 b Fm(to)19 b +Fk(b)s(o)s(ol)p 2648 1755 V 38 w(p)s(oin)m(t)5 b Fm(,)21 +b(since)e(I'v)n(e)h(had)f(to)h(commen)n(t-)0 1855 y(out)28 +b(the)g(v)n(ersion)e(of)h Fk(P)m(oin)m(t)14 b Fm(::)8 +b Fi(interse)l(ction)p 1385 1855 26 4 v 31 w(p)l(oint)k +Fm(\()i(\))28 b(that)g(uses)f(the)h Fk(Line)33 b Fm(v)n(ersion.)83 +1955 y([)p Fh(LDF)25 b(2002.04.10.)p Fm(])77 b(Changed)43 +b(return)h(t)n(yp)r(e)f(to)h Fk(b)s(o)s(ol)p 1894 1955 +29 5 v 38 w(real)p 2088 1955 V 41 w(p)s(oin)m(t)k Fm(to)43 +b(corresp)r(ond)f(with)i(the)h(same)e(c)n(hange)f(to)0 +2054 y Fk(P)m(oin)m(t)13 b Fm(::)8 b Fi(interse)l(ction)p +717 2054 26 4 v 32 w(p)l(oint)k Fm(\()i(\).)83 2154 y([)p Fh(LDF)25 b(2003.07.04.)p Fm(])76 b(Added)43 b Fi(tr)l(ac)l(e)53 b Fm(argumen)n(t.)80 b(Added)43 b(conditional)f(using)g Fi(tr)l(ac)l(e)53 b Fm(to)42 b(c)n(ho)r(ose)f(whic)n(h)h(v)n(ersion)f -(of)0 2254 y Fk(P)m(oin)m(t)13 b Fm(::)8 b Fi(interse)l(ction)p -717 2254 V 32 w(p)l(oint)k Fm(\()i(\))28 b(should)g(b)r(e)g(called.)36 -b(Changed)27 b(so)g(that)h Fi(is)p 2378 2254 V 31 w(line)l(ar)14 -b Fm(\()g(\))28 b(is)f(used)h(instead)f(of)0 2354 y Fi(get)p -109 2354 V 31 w(line)p 271 2354 V 31 w(switch)11 b Fm(\()j(\).)37 -b(No)n(w)27 b(using)h Fi(get)p 1184 2354 V 30 w(last)p -1339 2354 V 31 w(p)l(oint)12 b Fm(\()j(\))27 b(instead)h(of)f -Fn(\003)p Fi(p)l(oints)11 b Fm([1].)p 0 2446 1678 4 v -1773 2478 a Fk(End)32 b(Log)p 2222 2446 V 0 2603 a Fn(h)14 -b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2702 y Fk(b)s(o)s(ol)p +(of)0 2253 y Fk(P)m(oin)m(t)13 b Fm(::)8 b Fi(interse)l(ction)p +717 2253 V 32 w(p)l(oint)k Fm(\()i(\))28 b(should)g(b)r(e)g(called.)36 +b(Changed)27 b(so)g(that)h Fi(is)p 2378 2253 V 31 w(line)l(ar)14 +b Fm(\()g(\))28 b(is)f(used)h(instead)f(of)0 2353 y Fi(get)p +109 2353 V 31 w(line)p 271 2353 V 31 w(switch)11 b Fm(\()j(\).)37 +b(No)n(w)27 b(using)h Fi(get)p 1184 2353 V 30 w(last)p +1339 2353 V 31 w(p)l(oint)12 b Fm(\()j(\))27 b(instead)h(of)f +Fn(\003)p Fi(p)l(oints)11 b Fm([1].)p 0 2445 3900 4 v +0 2602 a Fn(h)j Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h +Fl(656)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2702 y Fk(b)s(o)s(ol)p 269 2702 29 5 v 38 w(p)s(oin)m(t)32 b Fi(interse)l(ction)p 979 2702 26 4 v 31 w(p)l(oint)13 b Fm(\()p Fk(const)32 b(P)m(ath)i Fm(&)o Fi(p)l(a)12 b Fe(;)i Fk(const)32 b(b)s(o)s(ol)f Fi(tr)l(ac)l(e)i Fm(=)23 b Fi(false)12 b Fm(\))28 b Fk(const)t Fm(;)p eop end -%%Page: 254 254 -TeXDict begin 254 253 bop 0 83 a Fm(254)140 b Fl(INTERSECTION)24 -b(OF)f(TW)n(O)h(LINEAR)g Fk(P)-8 b(A)g(THS)1432 b Fl(3DLDFPR)n(G)142 -b Fn(x)p Fm(918)0 263 y Fk(918.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)p 269 487 29 -5 v 38 w(p)s(oin)m(t)32 b(P)m(ath)15 b Fm(::)8 b Fi(interse)l(ction)p -1246 487 26 4 v 31 w(p)l(oint)k Fm(\()p Fk(const)33 b(P)m(ath)h -Fm(&)o Fi(p)l(a)11 b Fe(;)j Fk(const)33 b(b)s(o)s(ol)e -Fi(tr)l(ac)l(e)10 b Fm(\))28 b Fk(const)83 587 y Fn(f)166 -686 y Fk(if)41 b Fm(\()p Fi(is)p 359 686 V 31 w(line)l(ar)14 -b Fm(\()g(\))19 b Fn(^)g Fi(p)l(a)11 b Fe(:)p Fi(is)p -952 686 V 31 w(line)l(ar)j Fm(\()g(\)\))42 b Fn(f)249 -786 y Fk(if)f Fm(\()p Fi(tr)l(ac)l(e)11 b Fm(\))42 b -Fk(return)33 b(P)m(oin)m(t)13 b Fm(::)8 b Fi(interse)l(ction)p -1651 786 V 31 w(p)l(oint)13 b Fm(\()p Fn(\003)p Fi(p)l(oints)e -Fm([0])p Fe(;)j Fi(get)p 2403 786 V 30 w(last)p 2558 -786 V 31 w(p)l(oint)e Fm(\()i(\))p Fe(;)g Fn(\003)p Fi(p)l(a)d -Fe(:)p Fi(p)l(oints)h Fm([0)o(])p Fe(;)498 886 y Fi(p)l(a)f -Fe(:)p Fi(get)p 721 886 V 31 w(last)p 877 886 V 31 w(p)l(oint)h -Fm(\()i(\))p Fe(;)g Fi(tr)l(ac)l(e)d Fm(\);)249 985 y -Fk(else)45 b(return)32 b(P)m(oin)m(t)14 b Fm(::)8 b Fi(interse)l(ction) -p 1462 985 V 31 w(p)l(oint)k Fm(\()p Fn(\003)p Fi(p)l(oints)g +%%Page: 257 257 +TeXDict begin 257 256 bop 0 83 a Fn(x)p Fm(921)140 b +Fl(3DLDFPR)n(G)1432 b(INTERSECTION)24 b(OF)f(TW)n(O)h(LINEAR)g +Fk(P)-8 b(A)g(THS)141 b Fm(257)0 263 y Fk(921.)0 388 +y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h +Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)p +269 487 29 5 v 38 w(p)s(oin)m(t)32 b(P)m(ath)15 b Fm(::)8 +b Fi(interse)l(ction)p 1246 487 26 4 v 31 w(p)l(oint)k +Fm(\()p Fk(const)33 b(P)m(ath)h Fm(&)o Fi(p)l(a)11 b +Fe(;)j Fk(const)33 b(b)s(o)s(ol)e Fi(tr)l(ac)l(e)10 b +Fm(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(if)41 +b Fm(\()p Fi(is)p 359 686 V 31 w(line)l(ar)14 b Fm(\()g(\))19 +b Fn(^)g Fi(p)l(a)11 b Fe(:)p Fi(is)p 952 686 V 31 w(line)l(ar)j +Fm(\()g(\)\))42 b Fn(f)249 786 y Fk(if)f Fm(\()p Fi(tr)l(ac)l(e)11 +b Fm(\))42 b Fk(return)33 b(P)m(oin)m(t)13 b Fm(::)8 +b Fi(interse)l(ction)p 1651 786 V 31 w(p)l(oint)13 b +Fm(\()p Fn(\003)p Fi(p)l(oints)e Fm([0])p Fe(;)j Fi(get)p +2403 786 V 30 w(last)p 2558 786 V 31 w(p)l(oint)e Fm(\()i(\))p +Fe(;)g Fn(\003)p Fi(p)l(a)d Fe(:)p Fi(p)l(oints)h Fm([0)o(])p +Fe(;)498 886 y Fi(p)l(a)f Fe(:)p Fi(get)p 721 886 V 31 +w(last)p 877 886 V 31 w(p)l(oint)h Fm(\()i(\))p Fe(;)g +Fi(tr)l(ac)l(e)d Fm(\);)249 985 y Fk(else)45 b(return)32 +b(P)m(oin)m(t)14 b Fm(::)8 b Fi(interse)l(ction)p 1462 +985 V 31 w(p)l(oint)k Fm(\()p Fn(\003)p Fi(p)l(oints)g Fm([0)o(])p Fe(;)i Fi(get)p 2213 985 V 31 w(last)p 2369 985 V 30 w(p)l(oint)f Fm(\()h(\))p Fe(;)g Fn(\003)p Fi(p)l(a)d Fe(:)p Fi(p)l(oints)g Fm([0])p Fe(;)j Fi(p)l(a)d Fe(:)p @@ -23228,41 +23217,40 @@ Fj( )p Ff(")22 b Fn(\034)i Ff("Returning)p Fj( )p Ff(INVA)o(LI)o(D_B)-7 b(OOL_POINT.\\n")22 b Fn(\034)h Fi(\015ush)11 b Fm(;)249 1483 y Fk(return)33 b Ff(INVALID_BOOL_POIN)o(T)n Fm(;)166 -1583 y Fn(g)83 1683 y(g)0 1882 y Fk(919.)94 b(In)m(tersection)34 +1583 y Fn(g)83 1683 y(g)0 1882 y Fk(922.)94 b(In)m(tersection)34 b(of)g(a)g(linear)f(P)m(ath)i(with)f(a)g(Plane.)95 b Fm([)p Fh(LDF)25 b(2003.06.03.)p Fm(])63 b(This)29 b(function)h(m)n (ust)f(b)r(e)h(de\014ned)0 1982 y(here,)d(b)r(ecause)g Fk(P)m(ath)34 b Fm(is)27 b(an)h(incomplete)g(t)n(yp)r(e)f(in)h -Fj(planes.web)p Fm(.)p 0 2083 1643 4 v 1738 2116 a Fk(Begin)j(Log)p -2257 2083 V 83 2256 a Fm([)p Fh(LDF)25 b(2003.06.03.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 2348 1678 4 -v 1773 2381 a Fk(End)k(Log)p 2222 2348 V 0 2506 a Fn(h)14 -b Fm(De\014ne)28 b Fk(Plane)33 b Fm(functions)i Fl(620)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2605 y Fk(b)s(o)s(ol)p -269 2605 29 5 v 38 w(p)s(oin)m(t)32 b(Plane)13 b Fm(::)8 -b Fi(interse)l(ction)p 1281 2605 26 4 v 32 w(p)l(oint)k +Fj(planes.web)p Fm(.)p 0 2082 1779 4 v 1874 2115 a Fk(Log)p +2122 2082 V 83 2256 a Fm([)p Fh(LDF)d(2003.06.03.)p Fm(])61 +b(Added)28 b(this)g(function.)p 0 2348 3900 4 v 0 2505 +a Fn(h)14 b Fm(De\014ne)28 b Fk(Plane)33 b Fm(functions)i +Fl(620)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2604 y Fk(b)s(o)s(ol)p +269 2604 29 5 v 38 w(p)s(oin)m(t)32 b(Plane)13 b Fm(::)8 +b Fi(interse)l(ction)p 1281 2604 26 4 v 32 w(p)l(oint)k Fm(\()p Fk(const)33 b(P)m(ath)g Fm(&)p Fe(p)p Fm(\))28 -b Fk(const)83 2705 y Fn(f)166 2804 y Fk(if)41 b Fm(\()p +b Fk(const)83 2704 y Fn(f)166 2804 y Fk(if)41 b Fm(\()p Fe(p:)p Fi(is)p 424 2804 V 31 w(line)l(ar)14 b Fm(\()g(\)\))42 b Fk(return)34 b Fi(interse)l(ction)p 1545 2804 V 30 w(p)l(oint)13 b Fm(\()p Fe(p:)p Fi(get)p 1969 2804 V 30 w(p)l(oint)g Fm(\(0\))p Fe(;)h(p:)p Fi(get)p 2504 2804 V 30 w(last)p 2659 2804 V 31 w(p)l(oint)e Fm(\()i(\)\);)166 -2904 y Fk(else)45 b Fn(f)249 3004 y Fi(c)l(err)54 b Fn(\034)42 +2903 y Fk(else)45 b Fn(f)249 3003 y Fi(c)l(err)54 b Fn(\034)42 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Plan)o(e::)o(in)-7 b(tersection_point\()o(co)o(n)h(st)p Fj( )p Ff(Path&\):")41 b Fn(\034)g Fi(end)t(l)55 b Fn(\034)415 3103 y Ff("Path)p Fj( )p Ff(is)p Fj( )p Ff(not)p Fj( )p Ff(lin)o(ear)o(!)-6 b Fj( )p Ff(Returning)p Fj( )p Ff(INVA)o(LI)o(D_)g(BOOL_POINT.")22 b Fn(\034)h Fi(end)t(l)37 b Fn(\034)23 b Fi(end)t(l)36 -b Fn(\034)24 b Fi(\015ush)10 b Fm(;)249 3203 y Fk(return)33 -b Ff(INVALID_BOOL_POIN)o(T)n Fm(;)166 3303 y Fn(g)83 -3402 y(g)0 3601 y Fk(920.)94 b(Dra)m(wing)35 b(axes.)95 +b Fn(\034)24 b Fi(\015ush)10 b Fm(;)249 3202 y Fk(return)33 +b Ff(INVALID_BOOL_POIN)o(T)n Fm(;)166 3302 y Fn(g)83 +3401 y(g)0 3601 y Fk(923.)94 b(Dra)m(wing)35 b(axes.)95 b Fm(This)30 b(function)g(dra)n(ws)e(and)i(lab)r(els)f(arro)n(ws)e(for) i(the)h(main)g(axes)e(at)i(the)g(origin.)42 b(It)29 b(can)h(b)r(e)0 -3701 y(helpful)e(for)g(determining)f(whether)g(the)h(\\)p +3700 y(helpful)e(for)g(determining)f(whether)g(the)h(\\)p Fi(up)9 b Fm(")28 b(direction)f(is)g(correct)f(for)i(a)f -Fk(F)-8 b(o)s(cus)t Fm(.)83 3801 y([)p Fh(LDF)25 b(2003.04.01.)p +Fk(F)-8 b(o)s(cus)t Fm(.)83 3800 y([)p Fh(LDF)25 b(2003.04.01.)p Fm(])69 b(Sometimes)36 b(placeholders)e(are)g(needed)i(for)f(the)h Fi(dist)48 b Fm(and)36 b(p)r(osition)f(argumen)n(ts.)60 b(If)36 b Fi(dist)48 b Fm(is)35 b(a)0 3900 y(n)n(um)n(b)r(er)29 @@ -23270,49 +23258,49 @@ (curren)n(tly)e(2.5.)42 b(If)29 b(a)g(p)r(osition)g(argumen)n(t)g(\()p Fi(p)l(os)p 3104 3900 V 31 w(x)14 b Fm(,)30 b Fi(p)l(os)p 3355 3900 V 31 w(y)12 b Fm(,)30 b(or)e Fi(p)l(os)p 3708 -3900 V 31 w(z)15 b Fm(\))29 b(is)0 4000 y Ff("d")s Fm(,)f(it's)g(set)f -(to)h(the)g(default.)p 0 4099 1643 4 v 1738 4132 a Fk(Begin)j(Log)p -2257 4099 V 83 4273 a Fm([)p Fh(LDF)25 b(2003.02.05.)p -Fm(])70 b(Mo)n(v)n(ed)36 b(this)h(function)g(from)f Fj(main.web)d +3900 V 31 w(z)15 b Fm(\))29 b(is)0 3999 y Ff("d")s Fm(,)f(it's)g(set)f +(to)h(the)g(default.)p 0 4098 1779 4 v 1874 4130 a Fk(Log)p +2122 4098 V 83 4271 a Fm([)p Fh(LDF)d(2003.02.05.)p Fm(])70 +b(Mo)n(v)n(ed)36 b(this)h(function)g(from)f Fj(main.web)d Fm(to)k(here,)h(so)e(I)h(can)f(use)g(it)h(in)g(m)n(y)g(examples)f(for)g -(the)0 4372 y(T)-7 b(exinfo)25 b(do)r(cumen)n(tation.)35 +(the)0 4371 y(T)-7 b(exinfo)25 b(do)r(cumen)n(tation.)35 b(Also,)25 b(added)g(additional)f(argumen)n(ts)f(sp)r(ecifying)i(the)g (p)r(ositions)g(of)f(lab)r(els)h(and)f(suppressing)0 -4472 y(dra)n(wing)i(the)i(axes)f(\(and)h(their)f(lab)r(els\).)83 -4571 y([)p Fh(LDF)e(2003.04.01.)p Fm(])71 b(Added)38 +4470 y(dra)n(wing)i(the)i(axes)f(\(and)h(their)f(lab)r(els\).)83 +4570 y([)p Fh(LDF)e(2003.04.01.)p Fm(])71 b(Added)38 b(argumen)n(ts)f(for)g(dash)g(pattern)g(\()p Fi(ddashe)l(d)15 b Fm(\))38 b(and)g(p)r(en)g(\()p Fi(pp)l(en)11 b Fm(\).)68 -b(Rearranged)35 b(order)h(of)0 4671 y(argumen)n(ts.)51 +b(Rearranged)35 b(order)h(of)0 4670 y(argumen)n(ts.)51 b(Also,)34 b(got)e(rid)g(of)h(the)g(argumen)n(ts)e Fi(suppr)l(ess)p -1913 4671 26 4 v 31 w(x)14 b Fm(,)34 b Fi(suppr)l(ess)p -2354 4671 V 30 w(y)12 b Fm(,)34 b(and)f Fi(suppr)l(ess)p -2960 4671 V 31 w(z)14 b Fm(.)52 b(No)n(w)33 b(using)f(the)h(empt)n(y)0 -4771 y(string)44 b(\()p Ff("")t Fm(\))h(in)g(the)h(argumen)n(ts)d -Fi(p)l(os)p 1269 4771 V 31 w(x)14 b Fm(,)49 b Fi(p)l(os)p -1539 4771 V 31 w(y)12 b Fm(,)49 b(and)c Fi(p)l(os)p 1987 -4771 V 31 w(z)60 b Fm(to)44 b(indicate)h(that)g(the)h(corresp)r(onding) -c(axes)i(should)0 4870 y(b)r(e)e(suppressed.)78 b(Added)43 +1913 4670 26 4 v 31 w(x)14 b Fm(,)34 b Fi(suppr)l(ess)p +2354 4670 V 30 w(y)12 b Fm(,)34 b(and)f Fi(suppr)l(ess)p +2960 4670 V 31 w(z)14 b Fm(.)52 b(No)n(w)33 b(using)f(the)h(empt)n(y)0 +4769 y(string)44 b(\()p Ff("")t Fm(\))h(in)g(the)h(argumen)n(ts)d +Fi(p)l(os)p 1269 4769 V 31 w(x)14 b Fm(,)49 b Fi(p)l(os)p +1539 4769 V 31 w(y)12 b Fm(,)49 b(and)c Fi(p)l(os)p 1987 +4769 V 31 w(z)60 b Fm(to)44 b(indicate)h(that)g(the)h(corresp)r(onding) +c(axes)i(should)0 4869 y(b)r(e)e(suppressed.)78 b(Added)43 b(error)c(handling)j(co)r(de)f(that)h(prin)n(ts)g(a)f(w)n(arning)f(to)i Fi(stderr)55 b Fm(if)42 b(all)f(axes)g(are)g(suppressed.)0 -4970 y(\([)p Fh(LDF)26 b(2003.05.06.)p Fm(])69 b(Note)36 +4969 y(\([)p Fh(LDF)26 b(2003.05.06.)p Fm(])69 b(Note)36 b(that)h Ff("")j Fm(will)c(nev)n(er)g(b)r(e)h(needed)f(for)g(lab)r (elling)g(an)g(axis,)i(b)r(ecause)d(putting)i(the)g(lab)r(el)f(on)0 -5070 y(top)28 b(of)f(the)h Fk(P)m(oin)m(t)33 b Fm(w)n(ould)27 -b(in)n(terfere)g(with)h(the)g(arro)n(w.\))83 5169 y([)p +5068 y(top)28 b(of)f(the)h Fk(P)m(oin)m(t)33 b Fm(w)n(ould)27 +b(in)n(terfere)g(with)h(the)g(arro)n(w.\))83 5168 y([)p Fh(LDF)d(2003.04.01.)p Fm(])67 b(Added)34 b(argumen)n(ts)e -Fi(shift)p 1585 5169 V 31 w(x)14 b Fm(,)35 b Fi(shift)p -1881 5169 V 31 w(y)12 b Fm(,)35 b(and)e Fi(shift)p 2343 -5169 V 31 w(z)48 b Fm(for)33 b(adjusting)g(the)g(p)r(osition)g(of)h -(the)f(lab)r(els.)0 5269 y(Note)i(that)g(the)g(adjustmen)n(t)g +Fi(shift)p 1585 5168 V 31 w(x)14 b Fm(,)35 b Fi(shift)p +1881 5168 V 31 w(y)12 b Fm(,)35 b(and)e Fi(shift)p 2343 +5168 V 31 w(z)48 b Fm(for)33 b(adjusting)g(the)g(p)r(osition)g(of)h +(the)f(lab)r(els.)0 5267 y(Note)i(that)g(the)g(adjustmen)n(t)g (a\013ects)g(the)g(p)r(osition)f(of)h(the)g(three-dimensional)f Fk(P)m(oin)m(t)40 b Fm(within)35 b(the)g Fk(Lab)s(el)5 -b Fm(,)36 b Fi(not)43 b Fm(the)0 5368 y(t)n(w)n(o-dimensional)29 +b Fm(,)36 b Fi(not)43 b Fm(the)0 5367 y(t)n(w)n(o-dimensional)29 b(pro)5 b(jected)30 b(p)r(oin)n(t.)45 b(Therefore,)31 b(it's)f(not)h(p)r(ossible)f(to)g(adjust)h(the)g(p)r(osition)f(of)h (the)g Fk(Lab)s(el)k Fm(precisely)p eop end -%%Page: 255 255 -TeXDict begin 255 254 bop 0 83 a Fn(x)p Fm(920)140 b -Fl(3DLDFPR)n(G)2372 b(DRA)-8 b(WING)24 b(AXES)141 b Fm(255)0 +%%Page: 258 258 +TeXDict begin 258 257 bop 0 83 a Fm(258)140 b Fl(DRA)-8 +b(WING)24 b(AXES)2372 b(3DLDFPR)n(G)142 b Fn(x)p Fm(923)0 263 y(without)26 b(c)n(hanging)e(the)i(Metap)r(ost)f(co)r(de.)36 b(TO)25 b(DO:)g(Change)g Fi(lab)l(el)14 b Fm(\()g(\),)26 b(so)f(that)h(it's)f(p)r(ossible)g(to)h(adjust)f(the)h(p)r(osition)f @@ -23324,10 +23312,9 @@ b Fm(.)83 562 y([)p Fh(LDF)25 b(2003.07.13.)p Fm(])61 b(Made)27 b Fi(ddashe)l(d)43 b Fm(and)27 b Fi(pp)l(en)39 b Fk(const)33 b Fm(in)28 b(b)r(oth)g(v)n(ersions.)p 0 -654 1678 4 v 1773 686 a Fk(End)k(Log)p 2222 654 V 0 886 -a(921.)94 b(Length)32 b(argumen)m(t)g(\014rst.)0 1010 -y Fn(h)14 b Fm(Declare)27 b Fi(dr)l(aw)p 520 1010 26 -4 v 31 w(axes)11 b Fm(\()k(\))35 b Fl(921)15 b Fn(i)23 +654 3900 4 v 0 886 a Fk(924.)94 b(Length)32 b(argumen)m(t)g(\014rst.)0 +1010 y Fn(h)14 b Fm(Declare)27 b Fi(dr)l(aw)p 520 1010 +26 4 v 31 w(axes)11 b Fm(\()k(\))35 b Fl(924)15 b Fn(i)23 b(\021)83 1110 y Fk(v)m(oid)42 b Fi(dr)l(aw)p 475 1110 V 31 w(axes)11 b Fm(\()p Fk(real)43 b Fi(dist)51 b Fm(=)38 b(2)p Fe(:)p Fm(5)o Fe(;)14 b Fk(string)43 b Fi(p)l(os)p @@ -23348,10 +23335,10 @@ Fi(shift)p 1653 1409 V 32 w(z)k Fm(=)23 b Fi(origin)12 b Fe(;)i Fk(Picture)32 b Fm(&)p Fi(pictur)l(e)i Fm(=)22 b Fi(curr)l(ent)p 3139 1409 V 30 w(pictur)l(e)11 b Fm(\);)0 -1517 y Fl(See)24 b(also)g(section)h(926.)0 1625 y(This)e(co)r(de)i(is)e -(used)h(in)f(section)i(934.)0 1824 y Fk(922.)0 1948 y +1517 y Fl(See)24 b(also)g(section)h(929.)0 1625 y(This)e(co)r(de)i(is)e +(used)h(in)f(section)i(937.)0 1824 y Fk(925.)0 1948 y Fn(h)14 b Fm(De\014ne)28 b Fi(dr)l(aw)p 478 1948 V 32 -w(axes)11 b Fm(\()j(\))35 b Fl(922)15 b Fn(i)23 b(\021)83 +w(axes)11 b Fm(\()j(\))35 b Fl(925)15 b Fn(i)23 b(\021)83 2048 y Fk(v)m(oid)33 b Fi(dr)l(aw)p 466 2048 V 32 w(axes)11 b Fm(\()p Fk(real)33 b Fi(dist)13 b Fe(;)h Fk(string)34 b Fi(p)l(os)p 1452 2048 V 31 w(x)14 b Fe(;)g Fk(string)33 @@ -23365,50 +23352,48 @@ Fi(shift)p 3324 2148 V 31 w(y)12 b Fe(;)i Fk(const)30 b(P)m(oin)m(t)415 2247 y Fm(&)p Fi(shift)p 639 2247 V 31 w(z)15 b Fe(;)f Fk(Picture)32 b Fm(&)p Fi(pictur)l(e)11 -b Fm(\))p Fn(f)0 2355 y Fl(See)24 b(also)g(sections)g(923,)g(924,)g -(925,)g(and)h(927.)0 2463 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i -(933.)0 2662 y Fk(923.)94 b Fm(Remem)n(b)r(er)28 b(to)f(c)n(hange)g +b Fm(\))p Fn(f)0 2355 y Fl(See)24 b(also)g(sections)g(926,)g(927,)g +(928,)g(and)h(930.)0 2463 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i +(936.)0 2662 y Fk(926.)94 b Fm(Remem)n(b)r(er)28 b(to)f(c)n(hange)g (this)h(if)g(y)n(ou)e(c)n(hange)h(an)n(y)g(of)g(the)h(defaults!)p -0 2762 1643 4 v 1738 2794 a Fk(Begin)j(Log)p 2257 2762 -V 83 2935 a Fm([)p Fh(LDF)25 b(2003.04.01.)p Fm(])61 -b(Added)28 b(this)g(section.)p 0 3027 1678 4 v 1773 3059 -a Fk(End)k(Log)p 2222 3027 V 0 3184 a Fn(h)14 b Fm(De\014ne)28 -b Fi(dr)l(aw)p 478 3184 26 4 v 32 w(axes)11 b Fm(\()j(\))35 -b Fl(922)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3284 y Fk(if)41 -b Fm(\()p Fi(dist)36 b Fn(\024)23 b Fm(0)o(\))42 b Fi(dist)36 -b Fm(=)22 b(2)p Fe(:)p Fm(5)o(;)83 3383 y Fk(if)41 b -Fm(\()p Fi(p)l(os)p 331 3383 V 32 w(x)36 b Fn(\021)23 -b Ff("d")s Fm(\))42 b Fi(p)l(os)p 849 3383 V 31 w(x)37 -b Fm(=)23 b Ff("bot")r Fm(;)83 3483 y Fk(if)41 b Fm(\()p -Fi(p)l(os)p 331 3483 V 32 w(y)35 b Fn(\021)22 b Ff("d")s -Fm(\))42 b Fi(p)l(os)p 848 3483 V 31 w(y)35 b Fm(=)23 -b Ff("lft")r Fm(;)83 3583 y Fk(if)41 b Fm(\()p Fi(p)l(os)p -331 3583 V 32 w(z)c Fn(\021)23 b Ff("d")s Fm(\))42 b -Fi(p)l(os)p 845 3583 V 31 w(z)37 b Fm(=)23 b Ff("bot")r -Fm(;)0 3782 y Fk(924.)p 0 3858 1643 4 v 1738 3890 a(Begin)31 -b(Log)p 2257 3858 V 83 4031 a Fm([)p Fh(LDF)25 b(2003.04.01.)p -Fm(])61 b(Added)28 b(this)g(error)e(handling)h(co)r(de.)p -0 4123 1678 4 v 1773 4155 a Fk(End)32 b(Log)p 2222 4123 -V 0 4280 a Fn(h)14 b Fm(De\014ne)28 b Fi(dr)l(aw)p 478 -4280 26 4 v 32 w(axes)11 b Fm(\()j(\))35 b Fl(922)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 4380 y Fk(if)41 b Fm(\()p -Fi(p)l(os)p 331 4380 V 32 w(x)36 b Fn(\021)23 b Ff("")f -Fn(^)d Fi(p)l(os)p 824 4380 V 31 w(y)35 b Fn(\021)23 -b Ff("")f Fn(^)c Fi(p)l(os)p 1315 4380 V 31 w(z)38 b -Fn(\021)23 b Ff("")s Fm(\))42 b Fn(f)166 4479 y Fi(c)l(err)e +0 2761 1779 4 v 1874 2794 a Fk(Log)p 2122 2761 V 83 2934 +a Fm([)p Fh(LDF)d(2003.04.01.)p Fm(])61 b(Added)28 b(this)g(section.)p +0 3026 3900 4 v 0 3183 a Fn(h)14 b Fm(De\014ne)28 b Fi(dr)l(aw)p +478 3183 26 4 v 32 w(axes)11 b Fm(\()j(\))35 b Fl(925)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3283 y Fk(if)41 b Fm(\()p +Fi(dist)36 b Fn(\024)23 b Fm(0)o(\))42 b Fi(dist)36 b +Fm(=)22 b(2)p Fe(:)p Fm(5)o(;)83 3383 y Fk(if)41 b Fm(\()p +Fi(p)l(os)p 331 3383 V 32 w(x)36 b Fn(\021)23 b Ff("d")s +Fm(\))42 b Fi(p)l(os)p 849 3383 V 31 w(x)37 b Fm(=)23 +b Ff("bot")r Fm(;)83 3482 y Fk(if)41 b Fm(\()p Fi(p)l(os)p +331 3482 V 32 w(y)35 b Fn(\021)22 b Ff("d")s Fm(\))42 +b Fi(p)l(os)p 848 3482 V 31 w(y)35 b Fm(=)23 b Ff("lft")r +Fm(;)83 3582 y Fk(if)41 b Fm(\()p Fi(p)l(os)p 331 3582 +V 32 w(z)c Fn(\021)23 b Ff("d")s Fm(\))42 b Fi(p)l(os)p +845 3582 V 31 w(z)37 b Fm(=)23 b Ff("bot")r Fm(;)0 3781 +y Fk(927.)p 0 3857 1779 4 v 1874 3889 a(Log)p 2122 3857 +V 83 4030 a Fm([)p Fh(LDF)i(2003.04.01.)p Fm(])61 b(Added)28 +b(this)g(error)e(handling)h(co)r(de.)p 0 4122 3900 4 +v 0 4279 a Fn(h)14 b Fm(De\014ne)28 b Fi(dr)l(aw)p 478 +4279 26 4 v 32 w(axes)11 b Fm(\()j(\))35 b Fl(925)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 4379 y Fk(if)41 b Fm(\()p +Fi(p)l(os)p 331 4379 V 32 w(x)36 b Fn(\021)23 b Ff("")f +Fn(^)d Fi(p)l(os)p 824 4379 V 31 w(y)35 b Fn(\021)23 +b Ff("")f Fn(^)c Fi(p)l(os)p 1315 4379 V 31 w(z)38 b +Fn(\021)23 b Ff("")s Fm(\))42 b Fn(f)166 4478 y Fi(c)l(err)e Fn(\034)27 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(draw)o(_a)o(x)-6 b(es\(\):")29 b Fn(\034)e Fi(end)t(l)40 b Fn(\034)27 b Ff("All)p Fj( )p Ff(axes)p Fj( )p Ff(are)p Fj( )p Ff(su)o(ppr)o(e)-6 -b(ssed.)p Fj( )p Ff(Returning.)o(")25 b Fn(\034)332 4579 +b(ssed.)p Fj( )p Ff(Returning.)o(")25 b Fn(\034)332 4578 y Fi(end)t(l)37 b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)24 b Fi(\015ush)10 b Fm(;)166 4678 y Fk(return)5 b Fm(;)83 -4778 y Fn(g)p eop end -%%Page: 256 256 -TeXDict begin 256 255 bop 0 83 a Fm(256)140 b Fl(LENGTH)23 -b(AR)n(GUMENT)g(FIRST)1954 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(925)0 263 y Fk(925.)0 388 y Fn(h)14 b Fm(De\014ne)28 +4777 y Fn(g)p eop end +%%Page: 259 259 +TeXDict begin 259 258 bop 0 83 a Fn(x)p Fm(928)140 b +Fl(3DLDFPR)n(G)1953 b(LENGTH)24 b(AR)n(GUMENT)f(FIRST)141 +b Fm(259)0 263 y Fk(928.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fi(dr)l(aw)p 478 388 26 4 v 32 w(axes)11 b Fm(\()j(\))35 -b Fl(922)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(if)41 +b Fl(925)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(if)41 b Fm(\()p Fi(p)l(os)p 331 487 V 32 w(x)36 b Fn(6)p Fm(=)23 b Ff("")t Fm(\))41 b Fn(f)166 587 y Fk(P)m(oin)m(t)33 b Fi(x0)15 b Fm(\()p Fn(\000)p Fi(dist)e Fm(\);)166 686 @@ -23445,37 +23430,36 @@ Fm(\()p Ff("z")s Fe(;)g Fi(p)l(os)p 774 2455 V 31 w(z)h Fe(;)f Fi(false)d Fe(;)j Fi(pictur)l(e)d Fm(\);)83 2554 y Fn(g)83 2654 y Fk(return)5 b Fm(;)37 b Fn(g)0 2853 -y Fk(926.)94 b(Color)31 b(argumen)m(t)h(\014rst.)p 0 -2953 1643 4 v 1738 2985 a(Begin)f(Log)p 2257 2953 V 83 -3126 a Fm([)p Fh(LDF)25 b(2003.05.02.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 3218 1678 4 v 1773 3250 a Fk(End)k(Log)p -2222 3218 V 0 3375 a Fn(h)14 b Fm(Declare)27 b Fi(dr)l(aw)p -520 3375 26 4 v 31 w(axes)11 b Fm(\()k(\))35 b Fl(921)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3475 y Fk(v)m(oid)39 b -Fi(dr)l(aw)p 472 3475 V 32 w(axes)11 b Fm(\()p Fk(const)39 -b(Color)g Fm(&)p Fi(ddr)l(aw)p 1504 3475 V 31 w(c)l(olor)15 +y Fk(929.)94 b(Color)31 b(argumen)m(t)h(\014rst.)p 0 +2952 1779 4 v 1874 2985 a(Log)p 2122 2952 V 83 3125 a +Fm([)p Fh(LDF)25 b(2003.05.02.)p Fm(])61 b(Added)28 b(this)g(function.) +p 0 3217 3900 4 v 0 3374 a Fn(h)14 b Fm(Declare)27 b +Fi(dr)l(aw)p 520 3374 26 4 v 31 w(axes)11 b Fm(\()k(\))35 +b Fl(924)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3474 y Fk(v)m(oid)39 +b Fi(dr)l(aw)p 472 3474 V 32 w(axes)11 b Fm(\()p Fk(const)39 +b(Color)g Fm(&)p Fi(ddr)l(aw)p 1504 3474 V 31 w(c)l(olor)15 b Fe(;)f Fk(real)39 b Fi(dist)47 b Fm(=)34 b(2)p Fe(:)p -Fm(5)o Fe(;)14 b Fk(string)40 b Fi(p)l(os)p 2770 3475 +Fm(5)o Fe(;)14 b Fk(string)40 b Fi(p)l(os)p 2770 3474 V 31 w(x)48 b Fm(=)34 b Ff("bot")s Fe(;)14 b Fk(string)249 3574 y Fi(p)l(os)p 368 3574 V 31 w(y)36 b Fm(=)23 b Ff("lft")r Fe(;)14 b Fk(string)33 b Fi(p)l(os)p 1211 3574 V 32 w(z)38 b Fm(=)23 b Ff("bot")r Fe(;)14 b Fk(const)33 b(string)g Fi(ddashe)l(d)39 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(const)33 b(string)g Fi(pp)l(en)i Fm(=)23 b Ff("")t Fe(;)14 b Fk(const)249 -3674 y(P)m(oin)m(t)34 b Fm(&)o Fi(shift)p 730 3674 V +3673 y(P)m(oin)m(t)34 b Fm(&)o Fi(shift)p 730 3673 V 32 w(x)j Fm(=)24 b Fi(origin)12 b Fe(;)i Fk(const)33 -b(P)m(oin)m(t)h Fm(&)o Fi(shift)p 1915 3674 V 32 w(y)i +b(P)m(oin)m(t)h Fm(&)o Fi(shift)p 1915 3673 V 32 w(y)i Fm(=)23 b Fi(origin)12 b Fe(;)i Fk(const)33 b(P)m(oin)m(t)h -Fm(&)o Fi(shift)p 3099 3674 V 32 w(z)k Fm(=)24 b Fi(origin)12 +Fm(&)o Fi(shift)p 3099 3673 V 32 w(z)k Fm(=)24 b Fi(origin)12 b Fe(;)i Fk(Picture)249 3773 y Fm(&)p Fi(pictur)l(e)33 b Fm(=)23 b Fi(curr)l(ent)p 949 3773 V 30 w(pictur)l(e)10 b Fm(\);)p eop end -%%Page: 257 257 -TeXDict begin 257 256 bop 0 83 a Fn(x)p Fm(927)140 b -Fl(3DLDFPR)n(G)1916 b Fk(COLOR)23 b Fl(AR)n(GUMENT)g(FIRST)141 -b Fm(257)0 263 y Fk(927.)0 388 y Fn(h)14 b Fm(De\014ne)28 +%%Page: 260 260 +TeXDict begin 260 259 bop 0 83 a Fm(260)140 b Fk(COLOR)23 +b Fl(AR)n(GUMENT)g(FIRST)1916 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(930)0 263 y Fk(930.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fi(dr)l(aw)p 478 388 26 4 v 32 w(axes)11 b Fm(\()j(\))35 -b Fl(922)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 +b Fl(925)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b Fi(dr)l(aw)p 466 487 V 32 w(axes)11 b Fm(\()p Fk(const)33 b(Color)g Fm(&)o Fi(ddr)l(aw)p 1485 487 V 32 w(c)l(olor)14 b Fe(;)g Fk(real)33 b Fi(dist)13 b Fe(;)h Fk(string)34 @@ -23496,354 +23480,361 @@ Fi(pp)l(en)d Fe(;)j Fi(shift)p 2612 886 V 31 w(x)g Fe(;)g Fi(shift)p 2887 886 V 32 w(y)d Fe(;)j Fi(shift)p 3161 886 V 32 w(z)g Fe(;)g Fi(pictur)l(e)d Fm(\);)83 985 y -Fn(g)0 1185 y Fk(928.)94 b(P)m(aths)33 b(and)f(Lines.)p -0 1260 1643 4 v 1738 1293 a(Begin)f(Log)p 2257 1260 V -83 1434 a Fm([)p Fh(LDF)25 b(2003.06.06.)p Fm(])61 b(Added)28 -b(this)g(heading.)p 0 1526 1678 4 v 1773 1558 a Fk(End)k(Log)p -2222 1526 V 0 1757 a(929.)94 b(Get)31 b(Line.)95 b Fm(Returns)26 -b(a)g Fk(Line)32 b Fm(corresp)r(onding)24 b(to)j Fn(\003)o -Fi(this)12 b Fm(,)27 b(if)g Fn(\003)p Fi(this)38 b Fm(is)26 -b(linear.)36 b(Otherwise,)26 b Fi(get)p 3368 1757 26 -4 v 31 w(line)11 b Fm(\()j(\))27 b(returns)0 1857 y Ff(INVALID_LINE)o -Fm(.)p 0 1948 1643 4 v 1738 1981 a Fk(Begin)k(Log)p 2257 -1948 V 83 2121 a Fm([)p Fh(LDF)25 b(2003.06.06.)p Fm(])61 -b(Added)28 b(this)g(function.)p 0 2213 1678 4 v 1773 -2246 a Fk(End)k(Log)p 2222 2213 V 0 2370 a Fn(h)14 b -Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2470 y Fk(Line)32 b Fi(get)p -405 2470 26 4 v 31 w(line)11 b Fm(\()p Fk(v)m(oid)5 b -Fm(\))28 b Fk(const)5 b Fm(;)0 2669 y Fk(930.)0 2794 +Fn(g)0 1185 y Fk(931.)94 b(P)m(aths)33 b(and)f(Lines.)p +0 1260 1779 4 v 1874 1293 a(Log)p 2122 1260 V 83 1434 +a Fm([)p Fh(LDF)25 b(2003.06.06.)p Fm(])61 b(Added)28 +b(this)g(heading.)p 0 1526 3900 4 v 0 1757 a Fk(932.)94 +b(Get)31 b(Line.)95 b Fm(Returns)26 b(a)g Fk(Line)32 +b Fm(corresp)r(onding)24 b(to)j Fn(\003)o Fi(this)12 +b Fm(,)27 b(if)g Fn(\003)p Fi(this)38 b Fm(is)26 b(linear.)36 +b(Otherwise,)26 b Fi(get)p 3368 1757 26 4 v 31 w(line)11 +b Fm(\()j(\))27 b(returns)0 1857 y Ff(INVALID_LINE)o +Fm(.)p 0 1947 1779 4 v 1874 1980 a Fk(Log)p 2122 1947 +V 83 2121 a Fm([)p Fh(LDF)e(2003.06.06.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 2213 3900 4 v 0 2370 a Fn(h)14 +b Fm(Declare)27 b Fk(P)m(ath)34 b Fm(functions)h Fl(656)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 2469 y Fk(Line)32 b Fi(get)p +405 2469 26 4 v 31 w(line)11 b Fm(\()p Fk(v)m(oid)5 b +Fm(\))28 b Fk(const)5 b Fm(;)0 2669 y Fk(933.)0 2793 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2893 y Fk(Line)32 b(P)m(ath)14 b Fm(::)8 b Fi(get)p 671 2893 V 31 w(line)j -Fm(\()p Fk(v)m(oid)6 b Fm(\))28 b Fk(const)83 2993 y -Fn(f)166 3093 y Fk(if)41 b Fm(\()p Fi(is)p 359 3093 V +Fm(\()p Fk(v)m(oid)6 b Fm(\))28 b Fk(const)83 2992 y +Fn(f)166 3092 y Fk(if)41 b Fm(\()p Fi(is)p 359 3092 V 31 w(line)l(ar)14 b Fm(\()h(\)\))42 b Fk(return)33 b Fi(p)l(oints)11 b Fe(:)p Fi(fr)l(ont)h Fm(\()i(\))1548 -3118 y Fe(~)1599 3093 y Fi(get)p 1708 3093 V 30 w(line)d +3117 y Fe(~)1599 3092 y Fi(get)p 1708 3092 V 30 w(line)d Fm(\()p Fn(\003)p Fm(\()p Fi(p)l(oints)h Fe(:)p Fi(b)l(ack)i -Fm(\()g(\)\)\);)166 3192 y Fk(else)45 b Fn(f)249 3292 +Fm(\()g(\)\)\);)166 3192 y Fk(else)45 b Fn(f)249 3291 y Fi(c)l(err)39 b Fn(\034)25 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Path::)o(ge)o(t)-6 b(_line\(\):\\n")25 b Fn(\034)h Ff("Path)p Fj( )p Ff(is)p Fj( )p Ff(not)p Fj( )p Ff(li)o(nea)o(r.)-7 b Fj( )p Ff(Returning)p Fj( )p Ff(INVALI)o(D_L)g(\\)415 -3392 y(INE.\\n\\n")24 b Fn(\034)f Fi(\015ush)10 b Fm(;)249 -3491 y Fk(return)33 b Ff(INVALID_LINE)p Fm(;)166 3591 -y Fn(g)83 3691 y(g)0 3890 y Fk(931.)94 b(Get)39 b(P)m(ath.)97 +3391 y(INE.\\n\\n")24 b Fn(\034)f Fi(\015ush)10 b Fm(;)249 +3491 y Fk(return)33 b Ff(INVALID_LINE)p Fm(;)166 3590 +y Fn(g)83 3690 y(g)0 3889 y Fk(934.)94 b(Get)39 b(P)m(ath.)97 b Fm(Declared)33 b(in)h Fj(lines.web)p Fm(.)52 b(Must)35 b(b)r(e)f(de\014ned)h(here,)g(b)r(ecause)e Fk(P)m(ath)40 b Fm(is)34 b(an)g(incomplete)g(t)n(yp)r(e)0 3989 y(there.)p -0 4065 1643 4 v 1738 4098 a Fk(Begin)d(Log)p 2257 4065 -V 83 4238 a Fm([)p Fh(LDF)25 b(2003.06.06.)p Fm(])61 -b(Added)28 b(this)g(function.)p 0 4330 1678 4 v 1773 -4363 a Fk(End)k(Log)p 2222 4330 V 0 4488 a Fn(h)14 b -Fm(De\014ne)28 b Fk(Line)k Fm(functions)k Fl(600)15 b -Fn(i)23 b Fm(+)p Fn(\021)83 4587 y Fk(P)m(ath)34 b(Line)12 -b Fm(::)c Fi(get)p 671 4587 26 4 v 31 w(p)l(ath)k Fm(\()p -Fk(v)m(oid)5 b Fm(\))28 b Fk(const)83 4687 y Fn(f)166 +0 4064 1779 4 v 1874 4097 a Fk(Log)p 2122 4064 V 83 4238 +a Fm([)p Fh(LDF)25 b(2003.06.06.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 4330 3900 4 v 0 4487 a Fn(h)14 +b Fm(De\014ne)28 b Fk(Line)k Fm(functions)k Fl(600)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 4586 y Fk(P)m(ath)34 b(Line)12 +b Fm(::)c Fi(get)p 671 4586 26 4 v 31 w(p)l(ath)k Fm(\()p +Fk(v)m(oid)5 b Fm(\))28 b Fk(const)83 4686 y Fn(f)166 4786 y Fk(P)m(oin)m(t)33 b Fe(p)p Fm(\()p Fi(p)l(osition)d -Fm(+)18 b Fi(dir)l(e)l(ction)12 b Fm(\);)166 4911 y Fk(return)33 +Fm(+)18 b Fi(dir)l(e)l(ction)12 b Fm(\);)166 4910 y Fk(return)33 b(P)m(ath)6 b Fm(\()p Fi(p)l(osition)12 b Fe(;)i(p)p -Fm(\);)83 5011 y Fn(g)0 5210 y Fk(932.)94 b(Putting)32 +Fm(\);)83 5010 y Fn(g)0 5209 y Fk(935.)94 b(Putting)32 b(P)m(ath)h(together.)p eop end -%%Page: 258 258 -TeXDict begin 258 257 bop 0 83 a Fm(258)140 b Fl(PUTTING)24 -b Fk(P)-8 b(A)g(TH)24 b Fl(TOGETHER)1886 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(933)0 263 y Fk(933.)94 b Fm(This)28 b(is)f(what's)h -(compiled.)83 388 y Fn(h)14 b Fm(Include)28 b(\014les)35 -b Fl(11)15 b Fn(i)83 487 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden) -n(ti\014er)35 b Fl(10)15 b Fn(i)83 587 y(h)f Fm(De\014ne)28 -b Fk(class)k(P)m(ath)42 b Fl(654)14 b Fn(i)83 686 y(h)g -Fm(De\014ne)28 b Fk(static)33 b(class)f(P)m(ath)i Fm(data)27 -b(mem)n(b)r(ers)35 b Fl(655)14 b Fn(i)83 786 y(h)g Fm(De\014ne)28 -b Fk(T)-8 b(ransform)33 b Fm(functions)j Fl(125)15 b -Fn(i)83 886 y(h)f Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +%%Page: 261 261 +TeXDict begin 261 260 bop 0 83 a Fn(x)p Fm(936)140 b +Fl(3DLDFPR)n(G)1886 b(PUTTING)24 b Fk(P)-8 b(A)g(TH)24 +b Fl(TOGETHER)141 b Fm(261)0 263 y Fk(936.)94 b Fm(This)28 +b(is)f(what's)h(compiled.)83 388 y Fn(h)14 b Fm(Include)28 +b(\014les)35 b Fl(11)15 b Fn(i)83 487 y(h)f Fm(V)-7 b(ersion)27 +b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)83 +587 y(h)f Fm(De\014ne)28 b Fk(class)k(P)m(ath)42 b Fl(654)14 +b Fn(i)83 686 y(h)g Fm(De\014ne)28 b Fk(static)33 b(class)f(P)m(ath)i +Fm(data)27 b(mem)n(b)r(ers)35 b Fl(655)14 b Fn(i)83 786 +y(h)g Fm(De\014ne)28 b Fk(T)-8 b(ransform)33 b Fm(functions)j +Fl(125)15 b Fn(i)83 886 y(h)f Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(functions)j Fl(285)14 b Fn(i)83 985 y(h)g Fm(De\014ne)28 b Fk(Plane)33 b Fm(functions)i Fl(620)15 b Fn(i)83 1085 y(h)f Fm(De\014ne)28 b Fk(P)m(ath)34 b Fm(functions)h Fl(657)15 b Fn(i)83 1185 y(h)f Fm(De\014ne)28 b Fk(Line)k Fm(functions)k Fl(600)15 b Fn(i)83 1284 y(h)f Fm(De\014ne)28 b Fi(dr)l(aw)p 561 1284 26 4 v 32 w(axes)11 b Fm(\()j(\))35 -b Fl(922)15 b Fn(i)p eop end -%%Page: 259 259 -TeXDict begin 259 258 bop 0 83 a Fn(x)p Fm(934)140 b -Fl(3DLDFPR)n(G)1886 b(PUTTING)24 b Fk(P)-8 b(A)g(TH)24 -b Fl(TOGETHER)141 b Fm(259)0 263 y Fk(934.)94 b Fm(This)28 -b(is)f(what's)h(written)f(to)h Fj(paths.h)p Fm(.)0 385 -y Fn(h)14 b Ff(paths.h)80 b Fl(934)15 b Fn(i)23 b(\021)83 -485 y(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(ath)42 b -Fl(654)14 b Fn(i)83 584 y(h)g Fm(Declare)27 b Fi(dr)l(aw)p -603 584 26 4 v 31 w(axes)12 b Fm(\()i(\))35 b Fl(921)15 -b Fn(i)0 784 y Fk(935.)94 b(Curv)m(es)i(\()p Fj(curves.web)p -Fk(\).)p 0 883 1643 4 v 1738 915 a(Begin)31 b(Log)p 2257 -883 V 83 1056 a Fm([)p Fh(LDF)25 b(2003.11.12.)p Fm(])71 -b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i -(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g(of)0 -1156 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h -(dev)n(elopmen)n(t)f(v)n(ersions.)p 0 1248 1678 4 v 1773 -1280 a Fk(End)32 b(Log)p 2222 1248 V 83 1402 a(format)65 -b Fi(Curve)80 b(Path)0 1524 y Fn(h)14 b Fm(V)-7 b(ersion)27 -b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 -b Fm(+)p Fn(\021)0 1724 y Fk(936.)94 b(Include)32 b(\014les.)0 -1846 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 -b Fn(i)23 b Fm(+)p Fn(\021)0 1945 y Fm(#)p Fk(include)32 -b Ff("loader.h")0 2045 y Fm(#)p Fk(include)g Ff("pspglb.h")0 -2145 y Fm(#)p Fk(include)g Ff("io.h")0 2244 y Fm(#)p -Fk(include)g Ff("colors.h")0 2344 y Fm(#)p Fk(include)g -Ff("transfor.h")0 2444 y Fm(#)p Fk(include)g Ff("shapes.h")0 -2543 y Fm(#)p Fk(include)g Ff("pictures.h")0 2643 y Fm(#)p -Fk(include)g Ff("points.h")0 2742 y Fm(#)p Fk(include)g -Ff("lines.h")0 2842 y Fm(#)p Fk(include)g Ff("planes.h")0 -2942 y Fm(#)p Fk(include)g Ff("paths.h")0 3141 y Fk(937.)94 -b(Regular)31 b(closed)g(plane)h(curv)m(e.)p 0 3235 1643 -4 v 1738 3268 a(Begin)f(Log)p 2257 3235 V 83 3409 a Fm([)p -Fh(LDF)25 b(2002.11.12.)p Fm(])74 b(Changed)40 b(the)g(name)h(\\)p -Fi(R)l(e)l(gular)p 1820 3409 26 4 v 29 w(Close)l(d)p -2081 3409 V 32 w(Plane)p 2317 3409 V 32 w(Curve)11 b -Fm(")40 b(to)g(\\)p Fk(Reg)p 2976 3409 29 5 v 38 w(Cl)p -3110 3409 V 40 w(Plane)p 3385 3409 V 40 w(Curv)m(e)6 -b Fm(",)43 b(b)r(e-)0 3508 y(cause)27 b(the)h(former)f(caused)f(to)r(o) -i(man)n(y)f(\\Ov)n(erfull)f(b)r(o)n(xes")g(when)i(running)f -Fj(cweave)p Fm(.)p 0 3600 1678 4 v 1773 3633 a Fk(End)32 -b(Log)p 2222 3600 V 0 3832 a(938.)94 b(Reg)p 435 3832 -29 4 v 34 w(Cl)p 565 3832 V 34 w(Plane)p 834 3832 V 34 -w(Curv)m(e)31 b(class)f(de\014nition.)94 b Fm(A)27 b -Fk(Reg)p 2139 3832 29 5 v 39 w(Cl)p 2274 3832 V 40 w(Plane)p -2549 3832 V 40 w(Curv)m(e)32 b Fm(is)26 b(assumed)g(to)g(b)r(e)h -(closed,)f(pla-)0 3932 y(nar,)h(con)n(v)n(ex,)f(and)i(ha)n(v)n(e)e(at)h -(least)h(3)f(p)r(oin)n(ts.)37 b(The)27 b(functions)h(that)g(create)f -(and)g(mo)r(dify)0 4031 y Fk(Reg)p 168 4031 V 39 w(Cl)p -303 4031 V 40 w(Plane)p 578 4031 V 40 w(Curv)m(es)33 -b Fm(m)n(ust)28 b(ensure)e(that)i(these)g(assumptions)f(are)f(correct!) -83 4131 y([)p Fh(LDF)f(2002.11.05.)p Fm(])73 b Fk(Reg)p -919 4131 V 39 w(Cl)p 1054 4131 V 39 w(Plane)p 1328 4131 -V 40 w(Curv)m(e)45 b Fm(is)39 b(in)n(tended)h(to)e(b)r(e)i(used)f(as)f -(a)h(base)f(class.)70 b(No)39 b(ob)5 b(jects)39 b(of)g(t)n(yp)r(e)0 -4231 y Fk(Reg)p 168 4231 V 39 w(Cl)p 303 4231 V 40 w(Plane)p -578 4231 V 40 w(Curv)m(e)33 b Fm(should)27 b(b)r(e)h(de\014ned,)h(ho)n -(w)n(ev)n(er,)c(it)j(is)g(not)f(an)g(abstract)g(class,)g(so)g(it)h(is)f -(p)r(ossible)g(to)h(do)f(so.)83 4353 y Fk(format)65 b -Fi(R)l(e)l(g)p 561 4353 26 4 v 30 w(Cl)p 671 4353 V 31 -w(Plane)p 906 4353 V 31 w(Curve)80 b(Curve)0 4475 y Fn(h)14 -b Fm(De\014ne)28 b Fk(class)k(Reg)p 694 4475 29 5 v 40 -w(Cl)p 830 4475 V 39 w(Plane)p 1104 4475 V 40 w(Curv)m(e)41 -b Fl(938)15 b Fn(i)23 b(\021)83 4575 y Fk(class)32 b(Reg)p -474 4575 V 39 w(Cl)p 609 4575 V 40 w(Plane)p 884 4575 -V 40 w(Curv)m(e)h Fm(:)k Fk(public)32 b(P)m(ath)i Fn(f)83 -4674 y Fk(protected)5 b Fm(:)42 b Fk(P)m(oin)m(t)33 b -Fi(c)l(enter)12 b Fm(;)166 4774 y Fk(unsigned)31 b(short)i -Fi(numb)l(er)p 1086 4774 26 4 v 29 w(of)p 1182 4774 V -32 w(p)l(oints)11 b Fm(;)83 4896 y Fk(public)t Fm(:)42 -b Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 920 4896 29 5 v -39 w(Cl)p 1055 4896 V 40 w(Plane)p 1330 4896 V 40 w(Curv)m(e)33 -b Fm(functions)j Fl(940)14 b Fn(i)83 4996 y(g)p Fm(;)0 -5101 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(968)f(and)g -(969.)0 5300 y Fk(939.)94 b(Returning)30 b(elemen)m(ts)e(and)j +b Fl(925)15 b Fn(i)p eop end +%%Page: 262 262 +TeXDict begin 262 261 bop 0 83 a Fm(262)140 b Fl(PUTTING)24 +b Fk(P)-8 b(A)g(TH)24 b Fl(TOGETHER)1886 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(937)0 263 y Fk(937.)94 b Fm(This)28 b(is)f(what's)h +(written)f(to)h Fj(paths.h)p Fm(.)0 388 y Fn(h)14 b Ff(paths.h)80 +b Fl(937)15 b Fn(i)23 b(\021)83 487 y(h)14 b Fm(De\014ne)28 +b Fk(class)k(P)m(ath)42 b Fl(654)14 b Fn(i)83 587 y(h)g +Fm(Declare)27 b Fi(dr)l(aw)p 603 587 26 4 v 31 w(axes)12 +b Fm(\()i(\))35 b Fl(924)15 b Fn(i)0 786 y Fk(938.)94 +b(Curv)m(es)i(\()p Fj(curves.web)p Fk(\).)p 0 889 1779 +4 v 1874 922 a(Log)p 2122 889 V 83 1063 a Fm([)p Fh(LDF)25 +b(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n +(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h +(distribution)g(of)0 1162 y(3DLDF)28 b(1.1.)36 b(They're)27 +b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)83 +1262 y([)p Fh(LDF)e(2003.12.10.)p Fm(])64 b(Put)30 b(the)g(v)n(ersion)e +(con)n(trol)h(iden)n(ti\014ers)h(bac)n(k)f(in)n(to)g(m)n(y)h(release)f +(v)n(ersions)f(for)h(3DLDF)i(1.1.4.)43 b(I'v)n(e)0 1361 +y(already)24 b(put)j(some)e(of)h(them)h(bac)n(k)e(in,)i(no)n(w)e(I'm)h +(doing)f(the)i(rest)e(of)h(them.)37 b(Ho)n(w)n(ev)n(er,)24 +b(the)j(release)d(v)n(ersions)h(are)f(no)n(w)i(in)0 1461 +y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 b(.)p 0 +1553 3900 4 v 83 1710 a Fk(format)65 b Fi(Curve)80 b(Path)0 +1835 y Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 +b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1934 y Fk(static)33 +b(string)g Fi(r)l(cs)p 726 1934 26 4 v 30 w(id)k Fm(=)23 +b Ff("$Id:)p Fj( )p Ff(curves.web)o(,v)o Fj( )p Ff(1)-6 +b(.2)p Fj( )p Ff(2003/12/10)p Fj( )p Ff(1)o(5:)o(27:)f(57)p +Fj( )p Ff(lfinsto1)p Fj( )p Ff(Exp)p Fj( )p Ff($)o(")n +Fm(;)0 2134 y Fk(939.)94 b(Include)32 b(\014les.)0 2258 +y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 +b Fm(+)p Fn(\021)0 2358 y Fm(#)p Fk(include)32 b Ff("loader.h")0 +2457 y Fm(#)p Fk(include)g Ff("pspglb.h")0 2557 y Fm(#)p +Fk(include)g Ff("io.h")0 2657 y Fm(#)p Fk(include)g Ff("colors.h")0 +2756 y Fm(#)p Fk(include)g Ff("transfor.h")0 2856 y Fm(#)p +Fk(include)g Ff("shapes.h")0 2955 y Fm(#)p Fk(include)g +Ff("pictures.h")0 3055 y Fm(#)p Fk(include)g Ff("points.h")0 +3155 y Fm(#)p Fk(include)g Ff("lines.h")0 3254 y Fm(#)p +Fk(include)g Ff("planes.h")0 3354 y Fm(#)p Fk(include)g +Ff("paths.h")0 3553 y Fk(940.)94 b(Regular)31 b(closed)g(plane)h(curv)m +(e.)p 0 3652 1779 4 v 1874 3684 a(Log)p 2122 3652 V 83 +3825 a Fm([)p Fh(LDF)25 b(2002.11.12.)p Fm(])74 b(Changed)40 +b(the)g(name)h(\\)p Fi(R)l(e)l(gular)p 1820 3825 26 4 +v 29 w(Close)l(d)p 2081 3825 V 32 w(Plane)p 2317 3825 +V 32 w(Curve)11 b Fm(")40 b(to)g(\\)p Fk(Reg)p 2976 3825 +29 5 v 38 w(Cl)p 3110 3825 V 40 w(Plane)p 3385 3825 V +40 w(Curv)m(e)6 b Fm(",)43 b(b)r(e-)0 3925 y(cause)27 +b(the)h(former)f(caused)f(to)r(o)i(man)n(y)f(\\Ov)n(erfull)f(b)r(o)n +(xes")g(when)i(running)f Fj(cweave)p Fm(.)p 0 4017 3900 +4 v 0 4249 a Fk(941.)94 b(Reg)p 435 4249 29 4 v 34 w(Cl)p +565 4249 V 34 w(Plane)p 834 4249 V 34 w(Curv)m(e)31 b(class)f +(de\014nition.)94 b Fm(A)27 b Fk(Reg)p 2139 4249 29 5 +v 39 w(Cl)p 2274 4249 V 40 w(Plane)p 2549 4249 V 40 w(Curv)m(e)32 +b Fm(is)26 b(assumed)g(to)g(b)r(e)h(closed,)f(pla-)0 +4348 y(nar,)h(con)n(v)n(ex,)f(and)i(ha)n(v)n(e)e(at)h(least)h(3)f(p)r +(oin)n(ts.)37 b(The)27 b(functions)h(that)g(create)f(and)g(mo)r(dify)0 +4448 y Fk(Reg)p 168 4448 V 39 w(Cl)p 303 4448 V 40 w(Plane)p +578 4448 V 40 w(Curv)m(es)33 b Fm(m)n(ust)28 b(ensure)e(that)i(these)g +(assumptions)f(are)f(correct!)83 4547 y([)p Fh(LDF)f(2002.11.05.)p +Fm(])73 b Fk(Reg)p 919 4547 V 39 w(Cl)p 1054 4547 V 39 +w(Plane)p 1328 4547 V 40 w(Curv)m(e)45 b Fm(is)39 b(in)n(tended)h(to)e +(b)r(e)i(used)f(as)f(a)h(base)f(class.)70 b(No)39 b(ob)5 +b(jects)39 b(of)g(t)n(yp)r(e)0 4647 y Fk(Reg)p 168 4647 +V 39 w(Cl)p 303 4647 V 40 w(Plane)p 578 4647 V 40 w(Curv)m(e)33 +b Fm(should)27 b(b)r(e)h(de\014ned,)h(ho)n(w)n(ev)n(er,)c(it)j(is)g +(not)f(an)g(abstract)g(class,)g(so)g(it)h(is)f(p)r(ossible)g(to)h(do)f +(so.)83 4772 y Fk(format)65 b Fi(R)l(e)l(g)p 561 4772 +26 4 v 30 w(Cl)p 671 4772 V 31 w(Plane)p 906 4772 V 31 +w(Curve)80 b(Curve)0 4896 y Fn(h)14 b Fm(De\014ne)28 +b Fk(class)k(Reg)p 694 4896 29 5 v 40 w(Cl)p 830 4896 +V 39 w(Plane)p 1104 4896 V 40 w(Curv)m(e)41 b Fl(941)15 +b Fn(i)23 b(\021)83 4996 y Fk(class)32 b(Reg)p 474 4996 +V 39 w(Cl)p 609 4996 V 40 w(Plane)p 884 4996 V 40 w(Curv)m(e)h +Fm(:)k Fk(public)32 b(P)m(ath)i Fn(f)83 5095 y Fk(protected)5 +b Fm(:)42 b Fk(P)m(oin)m(t)33 b Fi(c)l(enter)12 b Fm(;)166 +5195 y Fk(unsigned)31 b(short)i Fi(numb)l(er)p 1086 5195 +26 4 v 29 w(of)p 1182 5195 V 32 w(p)l(oints)11 b Fm(;)83 +5320 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 +b Fk(Reg)p 920 5320 29 5 v 39 w(Cl)p 1055 5320 V 40 w(Plane)p +1330 5320 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(943)14 +b Fn(i)p eop end +%%Page: 263 263 +TeXDict begin 263 262 bop 0 83 a Fn(x)p Fm(941)140 b +Fl(3DLDFPR)n(G)1127 b Fk(REG)p 2032 83 29 4 v 34 w(CL)p +2192 83 V 34 w(PLANE)p 2558 83 V 35 w(CUR)-11 b(VE)24 +b Fl(CLASS)g(DEFINITION)141 b Fm(263)83 263 y Fn(g)p +Fm(;)0 371 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(971)f +(and)g(972.)0 570 y Fk(942.)94 b(Returning)30 b(elemen)m(ts)e(and)j (information.)94 b Fm([)p Fh(LDF)25 b(2002.11.05.)p Fm(])60 b(The)26 b Fk(virtual)31 b Fm(functions)c(in)f(this)g(section)0 -5400 y(are)h(mean)n(t)g(to)g(b)r(e)h(o)n(v)n(erloaded)d(b)n(y)j(mem)n -(b)r(er)f(functions)h(of)g(t)n(yp)r(es)f(deriv)n(ed)g(from)g -Fk(Reg)p 2778 5400 V 40 w(Cl)p 2914 5400 V 39 w(Plane)p -3188 5400 V 40 w(Curv)m(e)6 b Fm(.)p eop end -%%Page: 260 260 -TeXDict begin 260 259 bop 0 83 a Fm(260)140 b Fl(RETURNING)23 -b(ELEMENTS)h(AND)f(INF)n(ORMA)-6 b(TION)1352 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(939)p 0 205 1643 4 v 1738 238 a Fk(Begin)31 -b(Log)p 2257 205 V 83 378 a Fm([)p Fh(LDF)25 b(2002.11.03.)p -Fm(])61 b(Remo)n(v)n(ed)27 b Fk(Reg)p 1266 378 29 5 v -39 w(Cl)p 1401 378 V 40 w(Plane)p 1676 378 V 40 w(Curv)m(e)14 -b Fm(::)8 b Fi(is)p 2096 378 26 4 v 31 w(planar)14 b -Fm(\()g(\).)0 478 y(A)25 b Fk(Reg)p 255 478 29 5 v 39 -w(Cl)p 390 478 V 39 w(Plane)p 664 478 V 40 w(Curv)m(e)30 +670 y(are)h(mean)n(t)g(to)g(b)r(e)h(o)n(v)n(erloaded)d(b)n(y)j(mem)n(b) +r(er)f(functions)h(of)g(t)n(yp)r(es)f(deriv)n(ed)g(from)g +Fk(Reg)p 2778 670 29 5 v 40 w(Cl)p 2914 670 V 39 w(Plane)p +3188 670 V 40 w(Curv)m(e)6 b Fm(.)p 0 768 1779 4 v 1874 +801 a Fk(Log)p 2122 768 V 83 942 a Fm([)p Fh(LDF)25 b(2002.11.03.)p +Fm(])61 b(Remo)n(v)n(ed)27 b Fk(Reg)p 1266 942 29 5 v +39 w(Cl)p 1401 942 V 40 w(Plane)p 1676 942 V 40 w(Curv)m(e)14 +b Fm(::)8 b Fi(is)p 2096 942 26 4 v 31 w(planar)14 b +Fm(\()g(\).)0 1041 y(A)25 b Fk(Reg)p 255 1041 29 5 v +39 w(Cl)p 390 1041 V 39 w(Plane)p 664 1041 V 40 w(Curv)m(e)30 b Fm(can)24 b(b)r(e)h(manipulated)f(in)n(to)g(a)g(non-planar)f(state,)i (so)e(it's)i(safer)e(to)h(use)h(the)f Fk(P)m(ath)31 b -Fm(v)n(ersion,)0 578 y(whic)n(h)d(tests)f(whether)h(it's)f(really)g -(planar)g(or)f(not.)p 0 669 1678 4 v 1773 702 a Fk(End)32 -b(Log)p 2222 669 V 0 901 a(940.)94 b(Is)32 b(quadratic.)0 -1026 y Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 1026 29 -5 v 39 w(Cl)p 648 1026 V 40 w(Plane)p 923 1026 V 40 w(Curv)m(e)33 -b Fm(functions)j Fl(940)14 b Fn(i)24 b(\021)83 1126 y -Fk(inline)31 b(virtual)i(b)s(o)s(ol)d Fi(is)p 933 1126 -26 4 v 31 w(quadr)l(atic)10 b Fm(\()15 b(\))27 b Fk(const)83 -1225 y Fn(f)166 1325 y Fk(return)33 b Fi(false)12 b Fm(;)83 -1424 y Fn(g)0 1532 y Fl(See)24 b(also)g(sections)g(941,)g(942,)g(943,)g -(944,)g(945,)g(947,)g(950,)g(961,)g(964,)g(966,)g(and)g(967.)0 -1640 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(938.)0 -1840 y Fk(941.)94 b(Is)32 b(cubic.)0 1964 y Fn(h)14 b -Fm(Declare)27 b Fk(Reg)p 513 1964 29 5 v 39 w(Cl)p 648 -1964 V 40 w(Plane)p 923 1964 V 40 w(Curv)m(e)33 b Fm(functions)j -Fl(940)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2064 y Fk(inline)31 -b(virtual)i(b)s(o)s(ol)d Fi(is)p 933 2064 26 4 v 31 w(cubic)10 -b Fm(\()k(\))28 b Fk(const)83 2163 y Fn(f)166 2263 y -Fk(return)33 b Fi(false)12 b Fm(;)83 2363 y Fn(g)0 2562 -y Fk(942.)94 b(Is)32 b(quartic.)0 2686 y Fn(h)14 b Fm(Declare)27 -b Fk(Reg)p 513 2686 29 5 v 39 w(Cl)p 648 2686 V 40 w(Plane)p -923 2686 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(940)14 -b Fn(i)24 b Fm(+)p Fn(\021)83 2786 y Fk(inline)31 b(virtual)i(b)s(o)s -(ol)d Fi(is)p 933 2786 26 4 v 31 w(quartic)10 b Fm(\()k(\))28 -b Fk(const)83 2886 y Fn(f)166 2985 y Fk(return)33 b Fi(false)12 -b Fm(;)83 3085 y Fn(g)0 3284 y Fk(943.)94 b(Get)32 b(co)s(e\016cien)m -(ts.)0 3409 y Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 -3409 29 5 v 39 w(Cl)p 648 3409 V 40 w(Plane)p 923 3409 -V 40 w(Curv)m(e)33 b Fm(functions)j Fl(940)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 3508 y Fk(inline)31 b(virtual)i(real)p -817 3508 V 40 w(triple)f Fi(get)p 1221 3508 26 4 v 30 -w(c)l(o)l(e\016cients)12 b Fm(\()p Fk(real)5 b Fe(;)14 -b Fk(real)t Fm(\))28 b Fk(const)83 3608 y Fn(f)166 3708 -y Fk(return)33 b(real)p 624 3708 29 5 v 40 w(triple)t -Fm(\()p Ff(INVALID_REAL)p Fe(;)14 b Ff(INVALID_REAL)o -Fe(;)g Ff(INVALID_REAL)p Fm(\);)83 3807 y Fn(g)0 4006 -y Fk(944.)94 b(Solv)m(e.)h Fm([)p Fh(LDF)25 b(2002.11.05.)p -Fm(])60 b(This)27 b Fk(virtual)32 b Fm(function)27 b(is)g(mean)n(t)g -(to)f(b)r(e)i(o)n(v)n(erloaded)c(b)n(y)i(mem)n(b)r(er)h(functions)g(of) -0 4106 y(t)n(yp)r(es)h(deriv)n(ed)e(from)i Fk(Reg)p 875 -4106 V 39 w(Cl)p 1010 4106 V 39 w(Plane)p 1284 4106 V -40 w(Curv)m(e)6 b Fm(.)0 4231 y Fn(h)14 b Fm(Declare)27 -b Fk(Reg)p 513 4231 V 39 w(Cl)p 648 4231 V 40 w(Plane)p -923 4231 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(940)14 -b Fn(i)24 b Fm(+)p Fn(\021)83 4330 y Fk(inline)31 b(virtual)i(pair)5 +Fm(v)n(ersion,)0 1141 y(whic)n(h)d(tests)f(whether)h(it's)f(really)g +(planar)g(or)f(not.)p 0 1233 3900 4 v 0 1465 a Fk(943.)94 +b(Is)32 b(quadratic.)0 1589 y Fn(h)14 b Fm(Declare)27 +b Fk(Reg)p 513 1589 29 5 v 39 w(Cl)p 648 1589 V 40 w(Plane)p +923 1589 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(943)14 +b Fn(i)24 b(\021)83 1689 y Fk(inline)31 b(virtual)i(b)s(o)s(ol)d +Fi(is)p 933 1689 26 4 v 31 w(quadr)l(atic)10 b Fm(\()15 +b(\))27 b Fk(const)83 1789 y Fn(f)166 1888 y Fk(return)33 +b Fi(false)12 b Fm(;)83 1988 y Fn(g)0 2096 y Fl(See)24 +b(also)g(sections)g(944,)g(945,)g(946,)g(947,)g(948,)g(950,)g(953,)g +(964,)g(967,)g(969,)g(and)g(970.)0 2204 y(This)f(co)r(de)i(is)e(used)h +(in)f(section)i(941.)0 2403 y Fk(944.)94 b(Is)32 b(cubic.)0 +2527 y Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 2527 29 +5 v 39 w(Cl)p 648 2527 V 40 w(Plane)p 923 2527 V 40 w(Curv)m(e)33 +b Fm(functions)j Fl(943)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +2627 y Fk(inline)31 b(virtual)i(b)s(o)s(ol)d Fi(is)p +933 2627 26 4 v 31 w(cubic)10 b Fm(\()k(\))28 b Fk(const)83 +2727 y Fn(f)166 2826 y Fk(return)33 b Fi(false)12 b Fm(;)83 +2926 y Fn(g)0 3125 y Fk(945.)94 b(Is)32 b(quartic.)0 +3250 y Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 3250 29 +5 v 39 w(Cl)p 648 3250 V 40 w(Plane)p 923 3250 V 40 w(Curv)m(e)33 +b Fm(functions)j Fl(943)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +3349 y Fk(inline)31 b(virtual)i(b)s(o)s(ol)d Fi(is)p +933 3349 26 4 v 31 w(quartic)10 b Fm(\()k(\))28 b Fk(const)83 +3449 y Fn(f)166 3549 y Fk(return)33 b Fi(false)12 b Fm(;)83 +3648 y Fn(g)0 3847 y Fk(946.)94 b(Get)32 b(co)s(e\016cien)m(ts.)0 +3972 y Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 3972 29 +5 v 39 w(Cl)p 648 3972 V 40 w(Plane)p 923 3972 V 40 w(Curv)m(e)33 +b Fm(functions)j Fl(943)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +4072 y Fk(inline)31 b(virtual)i(real)p 817 4072 V 40 +w(triple)f Fi(get)p 1221 4072 26 4 v 30 w(c)l(o)l(e\016cients)12 +b Fm(\()p Fk(real)5 b Fe(;)14 b Fk(real)t Fm(\))28 b +Fk(const)83 4171 y Fn(f)166 4271 y Fk(return)33 b(real)p +624 4271 29 5 v 40 w(triple)t Fm(\()p Ff(INVALID_REAL)p +Fe(;)14 b Ff(INVALID_REAL)o Fe(;)g Ff(INVALID_REAL)p +Fm(\);)83 4371 y Fn(g)0 4570 y Fk(947.)94 b(Solv)m(e.)h +Fm([)p Fh(LDF)25 b(2002.11.05.)p Fm(])60 b(This)27 b +Fk(virtual)32 b Fm(function)27 b(is)g(mean)n(t)g(to)f(b)r(e)i(o)n(v)n +(erloaded)c(b)n(y)i(mem)n(b)r(er)h(functions)g(of)0 4669 +y(t)n(yp)r(es)h(deriv)n(ed)e(from)i Fk(Reg)p 875 4669 +V 39 w(Cl)p 1010 4669 V 39 w(Plane)p 1284 4669 V 40 w(Curv)m(e)6 +b Fm(.)0 4794 y Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 +4794 V 39 w(Cl)p 648 4794 V 40 w(Plane)p 923 4794 V 40 +w(Curv)m(e)33 b Fm(functions)j Fl(943)14 b Fn(i)24 b +Fm(+)p Fn(\021)83 4894 y Fk(inline)31 b(virtual)i(pair)5 b Fn(h)p Fk(real)g Fe(;)14 b Fk(real)t Fn(i)28 b Fi(solve)12 b Fm(\()p Fk(c)m(har)7 b Fe(;)14 b Fk(real)t Fm(\))28 -b Fk(const)83 4430 y Fn(f)166 4529 y Fk(return)33 b(pair)5 +b Fk(const)83 4993 y Fn(f)166 5093 y Fk(return)33 b(pair)5 b Fn(h)p Fk(real)g Fe(;)14 b Fk(real)5 b Fn(i)p Fm(\()p Ff(INVALID_REAL)p Fe(;)14 b Ff(INVALID_REAL)o Fm(\);)83 -4629 y Fn(g)0 4828 y Fk(945.)94 b(Lo)s(cation)44 b(of)f(a)h(p)s(oin)m -(t.)95 b Fi(lo)l(c)l(ation)11 b Fm(\()j(\))39 b(returns)e(a)g +5192 y Fn(g)p eop end +%%Page: 264 264 +TeXDict begin 264 263 bop 0 83 a Fm(264)140 b Fl(LOCA)-6 +b(TION)23 b(OF)h(A)f(POINT)2108 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(948)0 263 y Fk(948.)94 b(Lo)s(cation)44 b(of)f(a)h(p)s(oin)m(t.)95 +b Fi(lo)l(c)l(ation)11 b Fm(\()j(\))39 b(returns)e(a)g Fk(signed)42 b(short)g Fm(indicating)c(the)g(lo)r(cation)f(of)h(its)g -Fk(P)m(oin)m(t)0 4928 y Fm(argumen)n(t)27 b(with)h(resp)r(ect)f(to)g -(the)h Fk(Reg)p 1257 4928 V 40 w(Cl)p 1393 4928 V 39 -w(Plane)p 1667 4928 V 40 w(Curv)m(e)6 b Fm(.)83 5028 +Fk(P)m(oin)m(t)0 363 y Fm(argumen)n(t)27 b(with)h(resp)r(ect)f(to)g +(the)h Fk(Reg)p 1257 363 29 5 v 40 w(Cl)p 1393 363 V +39 w(Plane)p 1667 363 V 40 w(Curv)m(e)6 b Fm(.)83 462 y([)p Fh(LDF)25 b(2002.11.05.)p Fm(])60 b(TO)26 b(DO:)h(Curren)n(tly)-7 b(,)25 b(the)i(programmer)d(m)n(ust)j(ensure)f(that)g(a)g -Fk(Reg)p 2949 5028 V 40 w(Cl)p 3085 5028 V 39 w(Plane)p -3359 5028 V 40 w(Curv)m(e)32 b Fm(is)27 b(pla-)0 5127 -y(nar.)34 b(It)21 b(migh)n(t)g(b)r(e)g(w)n(orth)n(while)f(to)h(c)n(hec) -n(k)f(that)i(it)f(really)f(is)h(b)n(y)f(using)h Fk(P)m(ath)14 -b Fm(::)8 b Fi(get)p 2571 5127 26 4 v 31 w(normal)14 -b Fm(\()g(\),)22 b(since)f(some)g(manipulations)0 5227 -y(ma)n(y)27 b(cause)g(a)g Fk(Reg)p 639 5227 29 5 v 39 -w(Cl)p 774 5227 V 40 w(Plane)p 1049 5227 V 40 w(Curv)m(e)33 -b Fm(to)28 b(b)r(ecome)f(non-planar.)p eop end -%%Page: 261 261 -TeXDict begin 261 260 bop 0 83 a Fn(x)p Fm(945)140 b -Fl(3DLDFPR)n(G)2108 b(LOCA)-6 b(TION)23 b(OF)h(A)f(POINT)141 -b Fm(261)83 263 y([)p Fh(LDF)25 b(2002.11.05.)p Fm(])62 -b(The)29 b(n)n(um)n(b)r(er)g(of)g Fk(P)m(oin)m(ts)34 -b Fm(in)29 b(a)f Fk(Reg)p 1944 263 29 5 v 40 w(Cl)p 2080 -263 V 39 w(Plane)p 2354 263 V 40 w(Curv)m(e)35 b Fm(m)n(ust)29 -b(b)r(e)g(a)g(m)n(ultiple)g(of)g(4,)g(and)g(that)0 363 -y(the)f Fk(P)m(oin)m(t)33 b Fi(numb)l(er)p 672 363 26 -4 v 30 w(of)p 769 363 V 31 w(p)l(oints)11 b Fe(=)p Fm(4)27 -b(m)n(ust)h(b)r(e)g(at)f(90)1635 333 y Fd(\016)1700 363 +Fk(Reg)p 2949 462 V 40 w(Cl)p 3085 462 V 39 w(Plane)p +3359 462 V 40 w(Curv)m(e)32 b Fm(is)27 b(pla-)0 562 y(nar.)34 +b(It)21 b(migh)n(t)g(b)r(e)g(w)n(orth)n(while)f(to)h(c)n(hec)n(k)f +(that)i(it)f(really)f(is)h(b)n(y)f(using)h Fk(P)m(ath)14 +b Fm(::)8 b Fi(get)p 2571 562 26 4 v 31 w(normal)14 b +Fm(\()g(\),)22 b(since)f(some)g(manipulations)0 662 y(ma)n(y)27 +b(cause)g(a)g Fk(Reg)p 639 662 29 5 v 39 w(Cl)p 774 662 +V 40 w(Plane)p 1049 662 V 40 w(Curv)m(e)33 b Fm(to)28 +b(b)r(ecome)f(non-planar.)83 761 y([)p Fh(LDF)e(2002.11.05.)p +Fm(])62 b(The)29 b(n)n(um)n(b)r(er)g(of)g Fk(P)m(oin)m(ts)34 +b Fm(in)29 b(a)f Fk(Reg)p 1944 761 V 40 w(Cl)p 2080 761 +V 39 w(Plane)p 2354 761 V 40 w(Curv)m(e)35 b Fm(m)n(ust)29 +b(b)r(e)g(a)g(m)n(ultiple)g(of)g(4,)g(and)g(that)0 861 +y(the)f Fk(P)m(oin)m(t)33 b Fi(numb)l(er)p 672 861 26 +4 v 30 w(of)p 769 861 V 31 w(p)l(oints)11 b Fe(=)p Fm(4)27 +b(m)n(ust)h(b)r(e)g(at)f(90)1635 831 y Fd(\016)1700 861 y Fm(to)h Fk(P)m(oin)m(t)k Fm(0.)37 b(Also,)27 b Fi(r)l(ef)p -2469 363 V 31 w(pt)40 b Fm(can't)28 b(b)r(e)g Fk(P)m(oin)m(t)k -Fm(0.)83 462 y([)p Fh(LDF)25 b(2003.07.16.)p Fm(])61 -b Fk(Reg)p 907 462 29 5 v 39 w(Cl)p 1042 462 V 40 w(Plane)p -1317 462 V 40 w(Curv)m(e)33 b Fm(no)n(w)27 b(has)g(a)g(data)h(mem)n(b)r +2469 861 V 31 w(pt)40 b Fm(can't)28 b(b)r(e)g Fk(P)m(oin)m(t)k +Fm(0.)83 960 y([)p Fh(LDF)25 b(2003.07.16.)p Fm(])61 +b Fk(Reg)p 907 960 29 5 v 39 w(Cl)p 1042 960 V 40 w(Plane)p +1317 960 V 40 w(Curv)m(e)33 b Fm(no)n(w)27 b(has)g(a)g(data)h(mem)n(b)r (er)f(named)h Fi(c)l(enter)12 b Fm(.)37 b(Ho)n(w)n(ev)n(er,)26 -b(a)0 562 y Fk(Reg)p 168 562 V 39 w(Cl)p 303 562 V 40 -w(Plane)p 578 562 V 40 w(Curv)m(e)31 b Fm(need)26 b(not)g(ha)n(v)n(e)f -(a)g(meaningful)h(cen)n(ter.)36 b(Usually)-7 b(,)26 b(when)g(an)g(ob)5 -b(ject)25 b(of)h(a)f(class)g(deriv)n(ed)g(from)0 662 -y Fk(Reg)p 168 662 V 39 w(Cl)p 303 662 V 40 w(Plane)p -578 662 V 40 w(Curv)m(e)34 b Fm(calls)29 b(this)g(function,)g(its)h -Fi(c)l(enter)41 b Fm(will)29 b(b)r(e)h(passed)e(as)g(the)h -Fi(r)l(ef)p 2862 662 26 4 v 31 w(pt)41 b Fm(argumen)n(t.)f(Ho)n(w)n(ev) -n(er,)27 b(this)0 761 y(need)h(not)f(b)r(e)h(the)g(case.)83 -861 y(TO)f(DO:)h(Chec)n(k)f(whether)h(it)g(will)f(w)n(ork)g(if)h +b(a)0 1060 y Fk(Reg)p 168 1060 V 39 w(Cl)p 303 1060 V +40 w(Plane)p 578 1060 V 40 w(Curv)m(e)31 b Fm(need)26 +b(not)g(ha)n(v)n(e)f(a)g(meaningful)h(cen)n(ter.)36 b(Usually)-7 +b(,)26 b(when)g(an)g(ob)5 b(ject)25 b(of)h(a)f(class)g(deriv)n(ed)g +(from)0 1160 y Fk(Reg)p 168 1160 V 39 w(Cl)p 303 1160 +V 40 w(Plane)p 578 1160 V 40 w(Curv)m(e)34 b Fm(calls)29 +b(this)g(function,)g(its)h Fi(c)l(enter)41 b Fm(will)29 +b(b)r(e)h(passed)e(as)g(the)h Fi(r)l(ef)p 2862 1160 26 +4 v 31 w(pt)41 b Fm(argumen)n(t.)f(Ho)n(w)n(ev)n(er,)27 +b(this)0 1259 y(need)h(not)f(b)r(e)h(the)g(case.)83 1359 +y(TO)f(DO:)h(Chec)n(k)f(whether)h(it)g(will)f(w)n(ork)g(if)h Fi(pt0)16 b Fe(:x)23 b(<)g Fm(0)o(.)37 b(I)28 b(think)g(it)g(should.)83 -960 y([)p Fh(LDF)d(2003.06.14.)p Fm(])61 b(!!)37 b(CHECK.)27 -b(Bug,)g(when)h Fk(Reg)p 1758 960 29 5 v 39 w(Cl)p 1893 -960 V 40 w(Plane)p 2168 960 V 40 w(Curv)m(e)33 b Fm(is)28 +1459 y([)p Fh(LDF)d(2003.06.14.)p Fm(])61 b(!!)37 b(CHECK.)27 +b(Bug,)g(when)h Fk(Reg)p 1758 1459 29 5 v 39 w(Cl)p 1893 +1459 V 40 w(Plane)p 2168 1459 V 40 w(Curv)m(e)33 b Fm(is)28 b(rotated)f(ab)r(out)g(x)h(and)f(z-axes)f(only)-7 b(.)83 -1060 y(The)27 b(follo)n(wing)e(v)-5 b(alues)26 b(are)g(returned)g(if)h +1558 y(The)27 b(follo)n(wing)e(v)-5 b(alues)26 b(are)g(returned)g(if)h (the)g Fk(P)m(oin)m(t)32 b Fm(is)26 b(in)h(the)g(same)f(plane)g(as)g Fn(\003)o Fi(this)38 b Fm(and)27 b(this)g(function)g(has)f(w)n(ork)n -(ed)0 1160 y(prop)r(erly:)0 1309 y(-1)198 b(The)28 b +(ed)0 1658 y(prop)r(erly:)0 1807 y(-1)198 b(The)28 b Fk(P)m(oin)m(t)33 b Fm(lies)27 b(outside)h(the)g Fk(Reg)p -1437 1309 V 39 w(Cl)p 1572 1309 V 40 w(Plane)p 1847 1309 -V 40 w(Curv)m(e)5 b Fm(.)0 1459 y(0)226 b(The)28 b Fk(P)m(oin)m(t)33 +1437 1807 V 39 w(Cl)p 1572 1807 V 40 w(Plane)p 1847 1807 +V 40 w(Curv)m(e)5 b Fm(.)0 1957 y(0)226 b(The)28 b Fk(P)m(oin)m(t)33 b Fm(lies)27 b(on)h(the)g(p)r(erimeter)f(of)h(the)g Fk(Reg)p -1880 1459 V 39 w(Cl)p 2015 1459 V 39 w(Plane)p 2289 1459 -V 40 w(Curv)m(e)6 b Fm(.)0 1608 y(1)226 b(The)28 b Fk(P)m(oin)m(t)33 +1880 1957 V 39 w(Cl)p 2015 1957 V 39 w(Plane)p 2289 1957 +V 40 w(Curv)m(e)6 b Fm(.)0 2106 y(1)226 b(The)28 b Fk(P)m(oin)m(t)33 b Fm(lies)27 b(inside)h(the)g(p)r(erimeter)f(of)h(the)g -Fk(Reg)p 2000 1608 V 39 w(Cl)p 2135 1608 V 40 w(Plane)p -2410 1608 V 40 w(Curv)m(e)5 b Fm(.)0 1757 y(These)27 +Fk(Reg)p 2000 2106 V 39 w(Cl)p 2135 2106 V 40 w(Plane)p +2410 2106 V 40 w(Curv)m(e)5 b Fm(.)0 2256 y(These)27 b(v)-5 b(alues)28 b(are)e(returned)h(in)h(cases)f(where)g(errors)e(ha)n -(v)n(e)h(o)r(ccurred:)0 1907 y(-2)198 b(The)28 b Fk(P)m(oin)m(t)33 +(v)n(e)h(o)r(ccurred:)0 2405 y(-2)198 b(The)28 b Fk(P)m(oin)m(t)33 b Fm(is)27 b(not)h(in)g(the)g(same)f(plane)g(as)g(the)h -Fk(Reg)p 2009 1907 V 39 w(Cl)p 2144 1907 V 40 w(Plane)p -2419 1907 V 40 w(Curv)m(e)6 b Fm(.)0 2056 y(-3)198 b(Something)28 -b(has)f(gone)g(terribly)g(wrong.)0 2206 y(-4)198 b(The)28 -b(normal)f(to)g(the)h Fk(Reg)p 1133 2206 V 39 w(Cl)p -1268 2206 V 40 w(Plane)p 1543 2206 V 40 w(Curv)m(e)33 +Fk(Reg)p 2009 2405 V 39 w(Cl)p 2144 2405 V 40 w(Plane)p +2419 2405 V 40 w(Curv)m(e)6 b Fm(.)0 2554 y(-3)198 b(Something)28 +b(has)f(gone)g(terribly)g(wrong.)0 2704 y(-4)198 b(The)28 +b(normal)f(to)g(the)h Fk(Reg)p 1133 2704 V 39 w(Cl)p +1268 2704 V 40 w(Plane)p 1543 2704 V 40 w(Curv)m(e)33 b Fm(has)27 b(0)h(magnitude,)f(i.e.,)h(the)g Fk(P)m(oin)m(ts)k -Fm(on)c(the)268 2305 y Fk(Reg)p 436 2305 V 40 w(Cl)p -572 2305 V 39 w(Plane)p 846 2305 V 40 w(Curv)m(e)34 b -Fm(are)26 b(colinear.)0 2455 y(-5)198 b(An)29 b(error)c(o)r(ccurred)i -(in)g(putting)i(the)f Fk(Reg)p 1651 2455 V 39 w(Cl)p -1786 2455 V 39 w(Plane)p 2060 2455 V 41 w(Curv)m(e)33 +Fm(on)c(the)268 2803 y Fk(Reg)p 436 2803 V 40 w(Cl)p +572 2803 V 39 w(Plane)p 846 2803 V 40 w(Curv)m(e)34 b +Fm(are)26 b(colinear.)0 2953 y(-5)198 b(An)29 b(error)c(o)r(ccurred)i +(in)g(putting)i(the)f Fk(Reg)p 1651 2953 V 39 w(Cl)p +1786 2953 V 39 w(Plane)p 2060 2953 V 41 w(Curv)m(e)33 b Fm(in)28 b(one)f(of)g(the)h(ma)5 b(jor)27 b(planes.)0 -2604 y(-6)198 b(The)28 b Fk(Reg)p 607 2604 V 39 w(Cl)p -742 2604 V 40 w(Plane)p 1017 2604 V 40 w(Curv)m(e)33 -b Fm(is)28 b(non-planar.)p 0 2753 1643 4 v 1738 2786 -a Fk(Begin)j(Log)p 2257 2753 V 83 2927 a Fm([)p Fh(LDF)25 -b(2002.04.03.)p Fm(])61 b(Added)28 b(and)g(tested)g(all)f(cases.)36 -b(Seems)27 b(to)h(w)n(ork)e(prop)r(erly)-7 b(.)83 3026 -y([)p Fh(LDF)25 b(2002.11.12.)p Fm(])74 b(Added)41 b(\\)p -Ff(\\relax)q Fm(")f(after)g(the)h(argumen)n(ts)e(to)h(\\)p -Ff(\\RV)s Fm(")g(in)h(the)f(T)2885 3041 y(E)2932 3026 -y(X)g(co)r(de)h(ab)r(o)n(v)n(e)e(in)h(order)f(to)0 3126 -y(suppress)27 b(a)g(space)f(at)h(the)h(b)r(eginning)g(of)f(the)h -(\014rst)f(line)h(of)f(the)h(follo)n(wing)e(inden)n(ted)i(paragraph.)34 -b(I)28 b(couldn't)f(\014gure)g(out)0 3226 y(a)g(w)n(a)n(y)g(of)g -(suppressing)f(the)i(space)f(within)i(the)f(de\014nition)g(of)f -Ff(\\RV)k Fm(\(whic)n(h)d(is)f(curren)n(tly)g(\\)p Ff(\\let)r -Fm(")g(to)h Ff(\\ARG)r Fm(\).)83 3325 y([)p Fh(LDF)d(2003.06.03.)p -Fm(])61 b(Changed)27 b(the)h(line)g(where)f Fk(Plane)13 -b Fm(::)8 b Fi(get)p 2036 3325 26 4 v 31 w(distanc)l(e)j -Fm(\()j(\))28 b(is)g(called)f(b)r(elo)n(w.)36 b(It)28 -b(no)n(w)f(returns)g(a)0 3425 y Fk(real)p 160 3425 29 -5 v 40 w(short)5 b Fm(,)28 b(so)e(\\)p Fe(:)i Fi(\014rst)11 -b Fm(")27 b(has)g(to)h(b)r(e)g(added,)f(in)h(order)e(to)i(get)f(the)h -Fk(real)33 b Fm(v)-5 b(alue.)83 3524 y([)p Fh(LDF)25 -b(2003.06.13.)p Fm(])61 b(Changed)27 b Fi(pt0)16 b Fe(:)p -Fi(epsilon)c Fm(\()i(\))28 b(to)g Fk(P)m(oin)m(t)13 b -Fm(::)8 b Fi(epsilon)k Fm(\()j(\).)83 3624 y([)p Fh(LDF)25 +3102 y(-6)198 b(The)28 b Fk(Reg)p 607 3102 V 39 w(Cl)p +742 3102 V 40 w(Plane)p 1017 3102 V 40 w(Curv)m(e)33 +b Fm(is)28 b(non-planar.)p 0 3251 1779 4 v 1874 3283 +a Fk(Log)p 2122 3251 V 83 3424 a Fm([)p Fh(LDF)d(2002.04.03.)p +Fm(])61 b(Added)28 b(and)g(tested)g(all)f(cases.)36 b(Seems)27 +b(to)h(w)n(ork)e(prop)r(erly)-7 b(.)83 3524 y([)p Fh(LDF)25 +b(2002.11.12.)p Fm(])74 b(Added)41 b(\\)p Ff(\\relax)q +Fm(")f(after)g(the)h(argumen)n(ts)e(to)h(\\)p Ff(\\RV)s +Fm(")g(in)h(the)f(T)2885 3539 y(E)2932 3524 y(X)g(co)r(de)h(ab)r(o)n(v) +n(e)e(in)h(order)f(to)0 3623 y(suppress)27 b(a)g(space)f(at)h(the)h(b)r +(eginning)g(of)f(the)h(\014rst)f(line)h(of)f(the)h(follo)n(wing)e +(inden)n(ted)i(paragraph.)34 b(I)28 b(couldn't)f(\014gure)g(out)0 +3723 y(a)g(w)n(a)n(y)g(of)g(suppressing)f(the)i(space)f(within)i(the)f +(de\014nition)g(of)f Ff(\\RV)k Fm(\(whic)n(h)d(is)f(curren)n(tly)g(\\)p +Ff(\\let)r Fm(")g(to)h Ff(\\ARG)r Fm(\).)83 3823 y([)p +Fh(LDF)d(2003.06.03.)p Fm(])61 b(Changed)27 b(the)h(line)g(where)f +Fk(Plane)13 b Fm(::)8 b Fi(get)p 2036 3823 26 4 v 31 +w(distanc)l(e)j Fm(\()j(\))28 b(is)g(called)f(b)r(elo)n(w.)36 +b(It)28 b(no)n(w)f(returns)g(a)0 3922 y Fk(real)p 160 +3922 29 5 v 40 w(short)5 b Fm(,)28 b(so)e(\\)p Fe(:)i +Fi(\014rst)11 b Fm(")27 b(has)g(to)h(b)r(e)g(added,)f(in)h(order)e(to)i +(get)f(the)h Fk(real)33 b Fm(v)-5 b(alue.)83 4022 y([)p +Fh(LDF)25 b(2003.06.13.)p Fm(])61 b(Changed)27 b Fi(pt0)16 +b Fe(:)p Fi(epsilon)c Fm(\()i(\))28 b(to)g Fk(P)m(oin)m(t)13 +b Fm(::)8 b Fi(epsilon)k Fm(\()j(\).)83 4121 y([)p Fh(LDF)25 b(2003.06.14.)p Fm(])61 b(Added)28 b(error)e(handling)h(co)r(de)h(for)f -(the)h(case)f(that)g Fi(get)p 2475 3624 26 4 v 31 w(plane)11 -b Fm(\()j(\))28 b(fails.)83 3724 y([)p Fh(LDF)d(2003.06.14.)p +(the)h(case)f(that)g Fi(get)p 2475 4121 26 4 v 31 w(plane)11 +b Fm(\()j(\))28 b(fails.)83 4221 y([)p Fh(LDF)d(2003.06.14.)p Fm(])56 b(No)22 b(longer)e(taking)i(absolute)f(v)-5 b(alue)22 b(of)g(the)h Fk(real)k Fm(v)-5 b(alue)22 b Fi(r0)38 b Fm(returned)22 b(b)n(y)f Fk(Plane)13 b Fm(::)8 b Fi(get)p -3471 3724 V 31 w(distanc)l(e)k Fm(\()i(\),)0 3823 y(since)27 +3471 4221 V 31 w(distanc)l(e)k Fm(\()i(\),)0 4321 y(since)27 b(it)h(will)g(alw)n(a)n(ys)e(b)r(e)i(p)r(ositiv)n(e,)f(an)n(yw)n(a)n(y) -7 b(.)35 b(Commen)n(t)28 b(at)f(place)g(b)r(elo)n(w,)g(where)h(I)f -(made)h(this)f(c)n(hange.)83 3923 y([)p Fh(LDF)e(2003.07.01.)p +(made)h(this)f(c)n(hange.)83 4420 y([)p Fh(LDF)e(2003.07.01.)p Fm(])61 b(Added)28 b(argumen)n(t)f Fi(suppr)l(ess)p 1681 -3923 V 31 w(warnings)11 b Fm(.)83 4023 y([)p Fh(LDF)25 +4420 V 31 w(warnings)11 b Fm(.)83 4520 y([)p Fh(LDF)25 b(2003.07.16.)p Fm(])62 b(Changed)28 b(name)g(of)g Fi(c)l(enter)41 -b Fm(argumen)n(t)27 b(to)i Fi(r)l(ef)p 2239 4023 V 31 +b Fm(argumen)n(t)27 b(to)i Fi(r)l(ef)p 2239 4520 V 31 w(pt)12 b Fm(,)28 b(b)r(ecause)g(I'v)n(e)g(made)g Fi(c)l(enter)41 -b Fm(a)28 b(data)g(mem)n(b)r(er)0 4122 y(of)g Fk(Reg)p -263 4122 29 5 v 39 w(Cl)p 398 4122 V 39 w(Plane)p 672 -4122 V 40 w(Curv)m(e)6 b Fm(.)p 0 4214 1678 4 v 1773 -4247 a Fk(End)32 b(Log)p 2222 4214 V 0 4371 a Fn(h)14 -b Fm(Declare)27 b Fk(Reg)p 513 4371 29 5 v 39 w(Cl)p -648 4371 V 40 w(Plane)p 923 4371 V 40 w(Curv)m(e)33 b -Fm(functions)j Fl(940)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -4471 y Fk(virtual)33 b(signed)e(short)h Fi(lo)l(c)l(ation)12 -b Fm(\()p Fk(P)m(oin)m(t)33 b Fi(r)l(ef)p 1613 4471 26 +b Fm(a)28 b(data)g(mem)n(b)r(er)0 4620 y(of)g Fk(Reg)p +263 4620 29 5 v 39 w(Cl)p 398 4620 V 39 w(Plane)p 672 +4620 V 40 w(Curv)m(e)6 b Fm(.)p 0 4712 3900 4 v 0 4869 +a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 4869 29 5 v +39 w(Cl)p 648 4869 V 40 w(Plane)p 923 4869 V 40 w(Curv)m(e)33 +b Fm(functions)j Fl(943)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +4968 y Fk(virtual)33 b(signed)e(short)h Fi(lo)l(c)l(ation)12 +b Fm(\()p Fk(P)m(oin)m(t)33 b Fi(r)l(ef)p 1613 4968 26 4 v 31 w(pt)12 b Fe(;)i Fk(P)m(oin)m(t)33 b Fi(pt0)16 b Fe(;)e Fk(const)32 b(b)s(o)s(ol)f Fi(suppr)l(ess)p -2948 4471 V 31 w(warnings)j Fm(=)23 b Fi(false)12 b Fm(\))28 +2948 4968 V 31 w(warnings)j Fm(=)23 b Fi(false)12 b Fm(\))28 b Fk(const)t Fm(;)p eop end -%%Page: 262 262 -TeXDict begin 262 261 bop 0 83 a Fm(262)140 b Fl(LOCA)-6 -b(TION)23 b(OF)h(A)f(POINT)2108 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(946)0 263 y Fk(946.)0 388 y Fn(h)14 b Fm(De\014ne)28 +%%Page: 265 265 +TeXDict begin 265 264 bop 0 83 a Fn(x)p Fm(949)140 b +Fl(3DLDFPR)n(G)2108 b(LOCA)-6 b(TION)23 b(OF)h(A)f(POINT)141 +b Fm(265)0 263 y Fk(949.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 388 29 5 v 39 w(Cl)p 606 388 V 40 w(Plane)p -881 388 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(946)15 +881 388 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(949)15 b Fn(i)23 b(\021)83 487 y Fk(signed)k(short)h(Reg)p 784 487 V 39 w(Cl)p 919 487 V 40 w(Plane)p 1194 487 V 40 w(Curv)m(e)14 b Fm(::)8 b Fi(lo)l(c)l(ation)k Fm(\()p @@ -23943,10 +23934,10 @@ Fj( )p Ff(x-z)p Fj( )p Ff(plane.\\n")n Fm(;)249 5294 y Fi(orientation)35 b Fm(=)22 b Ff(X_Z)s Fm(;)166 5394 y Fn(g)p eop end -%%Page: 263 263 -TeXDict begin 263 262 bop 0 83 a Fn(x)p Fm(946)140 b -Fl(3DLDFPR)n(G)2108 b(LOCA)-6 b(TION)23 b(OF)h(A)f(POINT)141 -b Fm(263)166 263 y Fk(else)24 b(if)34 b Fm(\()p Fi(fabs)12 +%%Page: 266 266 +TeXDict begin 266 265 bop 0 83 a Fm(266)140 b Fl(LOCA)-6 +b(TION)23 b(OF)h(A)f(POINT)2108 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(949)166 263 y Fk(else)24 b(if)34 b Fm(\()p Fi(fabs)12 b Fm(\()p Fi(c)l(opy)p 811 263 26 4 v 32 w(normal)i Fe(:)p Fi(get)p 1239 263 V 30 w(z)h Fm(\()f(\)\))24 b Fe(<)e Fk(P)m(oin)m(t)14 b Fm(::)8 b Fi(epsilon)k Fm(\()i(\))t @@ -24040,11 +24031,11 @@ 5294 V 30 w(x)e Fm(\()g(\);)249 5394 y Fi(pt0)p 366 5394 V 31 w(v)36 b Fm(=)23 b Fi(pt0)16 b Fe(:)p Fi(get)p 814 5394 V 31 w(y)c Fm(\()i(\);)p eop end -%%Page: 264 264 -TeXDict begin 264 263 bop 0 83 a Fm(264)140 b Fl(LOCA)-6 -b(TION)23 b(OF)h(A)f(POINT)2108 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(946)166 263 y Fn(g)166 363 y Fk(else)31 b(if)41 b -Fm(\()p Fi(orientation)35 b Fn(\021)23 b Ff(X_Z)s Fm(\))42 +%%Page: 267 267 +TeXDict begin 267 266 bop 0 83 a Fn(x)p Fm(949)140 b +Fl(3DLDFPR)n(G)2108 b(LOCA)-6 b(TION)23 b(OF)h(A)f(POINT)141 +b Fm(267)166 263 y Fn(g)166 363 y Fk(else)31 b(if)41 +b Fm(\()p Fi(orientation)35 b Fn(\021)23 b Ff(X_Z)s Fm(\))42 b Fn(f)249 462 y Fi(pt0)p 366 462 26 4 v 31 w(h)34 b Fm(=)23 b Fi(pt0)16 b Fe(:)p Fi(get)p 816 462 V 30 w(x)e Fm(\()g(\);)249 562 y Fi(pt0)p 366 562 V 31 w(v)36 b @@ -24130,32 +24121,32 @@ 5344 y Ff("This)p Fj( )p Ff(can't)p Fj( )p Ff(happ)o(en!)o Fj( )-6 b Ff(Returning)p Fj( )p Ff(-3.\\n")21 b Fn(\034)i Fi(\015ush)10 b Fm(;)p eop end -%%Page: 265 265 -TeXDict begin 265 264 bop 0 83 a Fn(x)p Fm(946)140 b -Fl(3DLDFPR)n(G)2108 b(LOCA)-6 b(TION)23 b(OF)h(A)f(POINT)141 -b Fm(265)249 263 y Fi(getchar)14 b Fm(\()g(\);)249 363 +%%Page: 268 268 +TeXDict begin 268 267 bop 0 83 a Fm(268)140 b Fl(LOCA)-6 +b(TION)23 b(OF)h(A)f(POINT)2108 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(949)249 263 y Fi(getchar)14 b Fm(\()g(\);)249 363 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Reg_Cl_P)o(lan)-7 b(e_Curve::location)o(\(\))o(\\)h(n")s Fm(;)249 462 y Fk(return)33 b Fn(\000)p Fm(3)o(;)166 562 y Fn(g)83 662 -y(g)0 769 y Fl(See)24 b(also)g(sections)g(948,)g(951,)g(952,)g(953,)g -(954,)g(955,)g(956,)g(957,)g(958,)g(959,)g(960,)g(962,)g(and)g(965.)0 -877 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(968.)0 -1077 y Fk(947.)94 b(Angle)31 b(p)s(oin)m(t.)95 b Fm([)p +y(g)0 769 y Fl(See)24 b(also)g(sections)g(951,)g(954,)g(955,)g(956,)g +(957,)g(958,)g(959,)g(960,)g(961,)g(962,)g(963,)g(965,)g(and)g(968.)0 +877 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(971.)0 +1077 y Fk(950.)94 b(Angle)31 b(p)s(oin)m(t.)95 b Fm([)p Fh(LDF)25 b(2003.01.05.)p Fm(])61 b(TO)27 b(DO:)h(Find)g(out)g(wh)n(y)f (this)h(function)g(isn't)g Fk(const)5 b Fm(!)0 1201 y Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 1201 29 5 v 39 w(Cl)p 648 1201 V 40 w(Plane)p 923 1201 V 40 w(Curv)m(e)33 -b Fm(functions)j Fl(940)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +b Fm(functions)j Fl(943)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1301 y Fk(virtual)33 b(P)m(oin)m(t)g Fi(angle)p 843 1301 26 4 v 31 w(p)l(oint)12 b Fm(\()p Fk(real)33 b Fi(angle)11 b Fm(\);)p eop end -%%Page: 266 266 -TeXDict begin 266 265 bop 0 83 a Fm(266)140 b Fl(ANGLE)23 -b(POINT)2437 b(3DLDFPR)n(G)142 b Fn(x)p Fm(948)0 263 -y Fk(948.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p +%%Page: 269 269 +TeXDict begin 269 268 bop 0 83 a Fn(x)p Fm(951)140 b +Fl(3DLDFPR)n(G)2437 b(ANGLE)23 b(POINT)141 b Fm(269)0 +263 y Fk(951.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 388 29 5 v 39 w(Cl)p 606 388 V 40 w(Plane)p 881 388 -V 40 w(Curv)m(e)33 b Fm(functions)j Fl(946)15 b Fn(i)23 +V 40 w(Curv)m(e)33 b Fm(functions)j Fl(949)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(P)m(oin)m(t)33 b(Reg)p 508 487 V 39 w(Cl)p 643 487 V 40 w(Plane)p 918 487 V 40 w(Curv)m(e)14 b Fm(::)8 b Fi(angle)p 1465 487 26 4 v 31 w(p)l(oint)13 @@ -24170,7 +24161,7 @@ b(ne_Curves.\\nRetu)o(rn)o(in)g(g)p Fj( )p Ff(INVALID_POINT)o(.\\n)o (\\n)f(")27 b Fn(\034)c Fi(\015ush)11 b Fm(;)166 985 y Fk(return)33 b Ff(INVALID_POINT)o Fm(;)83 1085 y Fn(g)0 -1284 y Fk(949.)94 b(In)m(tersection)39 b(p)s(oin)m(ts.)94 +1284 y Fk(952.)94 b(In)m(tersection)39 b(p)s(oin)m(ts.)94 b Fm([)p Fh(LDF)26 b(2002.11.05.)p Fm(])67 b(In)n(tersection)33 b(with)h(a)f(line.)56 b Fi(interse)l(ction)p 3202 1284 V 31 w(p)l(oints)11 b Fm(\()j(\))34 b(returns)f(a)0 1384 @@ -24214,90 +24205,89 @@ b(these)g(functions)0 2480 y(merely)f(refers)g(to)g(the)h Fk(P)m(oin)m(t)33 b Fm(whic)n(h)27 b(should)h(b)r(e)g(placed)f(at)h (the)g(origin)e(b)n(y)h(the)h(transformation.)36 b([)p -Fh(LDF)25 b(2003.07.16.)p Fm(])0 2679 y Fk(950.)94 b(P)m(oin)m(t)32 -b(argumen)m(ts.)p 0 2778 1643 4 v 1738 2811 a(Begin)f(Log)p -2257 2778 V 83 2952 a Fm([)p Fh(LDF)25 b(2003.06.20.)p -Fm(])74 b(Rewrote)40 b(this)g(function.)76 b(The)41 b(p)r(erp)r -(endicular)f(and)g(non-parallel,)i(non-coplanar)c(cases)h(are)0 -3051 y(handled)28 b(in)f(exactly)g(the)h(same)f(w)n(a)n(y)-7 +Fh(LDF)25 b(2003.07.16.)p Fm(])0 2679 y Fk(953.)94 b(P)m(oin)m(t)32 +b(argumen)m(ts.)p 0 2778 1779 4 v 1874 2810 a(Log)p 2122 +2778 V 83 2951 a Fm([)p Fh(LDF)25 b(2003.06.20.)p Fm(])74 +b(Rewrote)40 b(this)g(function.)76 b(The)41 b(p)r(erp)r(endicular)f +(and)g(non-parallel,)i(non-coplanar)c(cases)h(are)0 3050 +y(handled)28 b(in)f(exactly)g(the)h(same)f(w)n(a)n(y)-7 b(.)36 b(In)28 b(these)g(cases,)e(there)i(can)f(only)g(b)r(e)h(one)f -(in)n(tersection)g(p)r(oin)n(t.)0 3151 y Fk(Plane)13 -b Fm(::)8 b Fi(interse)l(ction)p 728 3151 26 4 v 31 w(p)l(oint)13 -b Fm(\()h(\))28 b(and)f Fk(Reg)p 1382 3151 29 5 v 39 -w(Cl)p 1517 3151 V 40 w(Plane)p 1792 3151 V 40 w(Curv)m(e)14 +(in)n(tersection)g(p)r(oin)n(t.)0 3150 y Fk(Plane)13 +b Fm(::)8 b Fi(interse)l(ction)p 728 3150 26 4 v 31 w(p)l(oint)13 +b Fm(\()h(\))28 b(and)f Fk(Reg)p 1382 3150 29 5 v 39 +w(Cl)p 1517 3150 V 40 w(Plane)p 1792 3150 V 40 w(Curv)m(e)14 b Fm(::)8 b Fi(lo)l(c)l(ation)k Fm(\()i(\))28 b(are)f(no)n(w)g(used)g (to)h(\014nd)g(it,)g(if)g(it)g(exists.)83 3250 y([)p Fh(LDF)d(2003.06.20.)p Fm(])68 b(The)34 b(coplanar)f(case)g(w)n(as)g (the)i(one)f(that)g(w)n(as)f(causing)g(di\016cult)n(y)-7 b(.)58 b(The)34 b(cop)n(y)f(of)h Fn(\003)p Fi(this)46 -b Fm(is)34 b(no)n(w)0 3350 y(alw)n(a)n(ys)26 b(put)j(in)n(to)f(the)g +b Fm(is)34 b(no)n(w)0 3349 y(alw)n(a)n(ys)26 b(put)j(in)n(to)f(the)g (x-z)g(plane,)g(ev)n(en)f(if)i(it)f(is)g(in)h(one)e(of)h(the)h(ma)5 b(jor)27 b(planes,)g(or)h(in)g(a)g(plane)f(parallel)g(to)h(one)g(of)g -(these.)0 3450 y(The)j(adv)-5 b(an)n(tage)29 b(of)h(this,)i(is)e(that)h +(these.)0 3449 y(The)j(adv)-5 b(an)n(tage)29 b(of)h(this,)i(is)e(that)h (it)g(simpli\014es)f(the)h(co)r(de.)46 b(The)30 b(disadv)-5 b(an)n(tage)29 b(is,)j(that)e(additional)g(rotations)g(reduce)0 3549 y(the)e(accuracy)e(of)h(the)h(calculation)f(of)h(the)g(in)n -(tersection)e(p)r(oin)n(ts.)83 3649 y([)p Fh(LDF)f(2003.06.20.)p +(tersection)e(p)r(oin)n(ts.)83 3648 y([)p Fh(LDF)f(2003.06.20.)p Fm(])64 b Fk(T)-8 b(ransform)14 b Fm(::)8 b Fi(align)p -1418 3649 26 4 v 32 w(with)p 1600 3649 V 31 w(axis)k +1418 3648 26 4 v 32 w(with)p 1600 3648 V 31 w(axis)k Fm(\()i(\))31 b(is)g(no)f(longer)g(used)h(for)f(putting)h(the)g(cop)n -(y)f(of)h Fn(\003)p Fi(this)42 b Fm(and)31 b(the)0 3749 +(y)f(of)h Fn(\003)p Fi(this)42 b Fm(and)31 b(the)0 3748 y(line)e(in)n(to)f(the)h(x-z)f(plane.)40 b(It)29 b(migh)n(t)f(b)r(e)h (p)r(ossible)f(to)h(use)f(it,)h(but)h(I)e(used)h Fk(P)m(oin)m(t)13 b Fm(::)8 b Fi(angle)k Fm(\()i(\))29 b(while)g(debugging,)f(in)g(order) -0 3848 y(to)k(see)g(what)g(w)n(as)f(happ)r(ening)i(b)r(etter.)51 +0 3847 y(to)k(see)g(what)g(w)n(as)f(happ)r(ening)i(b)r(etter.)51 b(It)32 b(migh)n(t)g(b)r(e)h(p)r(ossible)f(to)g(go)f(bac)n(k)h(to)g (using)g Fk(T)-8 b(ransform)13 b Fm(::)8 b Fi(align)p -3517 3848 V 32 w(with)p 3699 3848 V 32 w(axis)j Fm(,)0 -3948 y(but)28 b(I)g(don't)g(see)f(an)n(y)g(adv)-5 b(an)n(tage)26 +3517 3847 V 32 w(with)p 3699 3847 V 32 w(axis)j Fm(,)0 +3947 y(but)28 b(I)g(don't)g(see)f(an)n(y)g(adv)-5 b(an)n(tage)26 b(to)h(doing)g(so.)83 4047 y([)p Fh(LDF)e(2003.06.20.)p Fm(])64 b(I'v)n(e)30 b(tested)g(this)h(function)g(for)f(coplanar)e (lines)j(for)e(planes)h(with)h(v)-5 b(arious)29 b(orien)n(tations.)44 -b(I)30 b(hop)r(e)0 4147 y(that)e(it)g(w)n(orks)e(prop)r(erly)g(for)h -(all)h(planes)f(no)n(w!)83 4247 y([)p Fh(LDF)e(2003.07.01.)p +b(I)30 b(hop)r(e)0 4146 y(that)e(it)g(w)n(orks)e(prop)r(erly)g(for)h +(all)h(planes)f(no)n(w!)83 4246 y([)p Fh(LDF)e(2003.07.01.)p Fm(])63 b(Added)30 b Fi(true)39 b Fm(as)28 b Fi(silent)42 -b Fm(argumen)n(t)28 b(to)h Fi(unit)p 2157 4247 V 30 w(ve)l(ctor)13 +b Fm(argumen)n(t)28 b(to)h Fi(unit)p 2157 4246 V 30 w(ve)l(ctor)13 b Fm(\()h(\))30 b(when)f(I)h(call)e(it)i(on)f Fi(cr)l(oss)11 b Fm(.)42 b(This)29 b(prev)n(en)n(ts)0 4346 y Fi(unit)p 150 4346 V 30 w(ve)l(ctor)13 b Fm(\()h(\))20 b(from)f(issuing)f(a)h(w)n (arning)f(message,)h(when)g Fi(cr)l(oss)31 b Fm(has)18 b(magnitude)h(0,)i(whic)n(h)e(o)r(ccurs)f(when)h Fi(surfac)l(e)p -3645 4346 V 31 w(ve)l(ctor)0 4446 y Fm(and)30 b Fi(pt)p -239 4446 V 31 w(ve)l(ctor)44 b Fm(are)29 b(colinear.)43 +3645 4346 V 31 w(ve)l(ctor)0 4445 y Fm(and)30 b Fi(pt)p +239 4445 V 31 w(ve)l(ctor)44 b Fm(are)29 b(colinear.)43 b(Since)31 b(this)g(case)e(is)h(handled)g(correctly)-7 b(,)30 b(the)h(w)n(arning)e(messages)f(are)h(unnecessary)g(and)0 -4546 y(distracting.)83 4645 y([)p Fh(LDF)c(2003.07.01.)p +4545 y(distracting.)83 4645 y([)p Fh(LDF)c(2003.07.01.)p Fm(])60 b(BUG)27 b(FIX:)h(Made)e(c)n(hanges)f(to)i(the)g(w)n(a)n(y)e Fi(on)p 2185 4645 V 31 w(se)l(gment)38 b Fm(is)27 b(used)g(in)g(the)g -(coplanar)e(case.)36 b(The)26 b(w)n(a)n(y)0 4745 y(it)i(w)n(as)f(b)r +(coplanar)e(case.)36 b(The)26 b(w)n(a)n(y)0 4744 y(it)i(w)n(as)f(b)r (efore)g(handled)h(certain)f(cases)f(wrong.)83 4844 y([)p Fh(LDF)f(2003.07.04.)p Fm(])56 b(Remo)n(v)n(ed)22 b(unreac)n(hable)g (statemen)n(t)h(at)f(end)i(of)e(function:)35 b Fk(return)29 b Fi(bpp)10 b Fm(.)36 b(GCC)23 b(didn't)g(complain,)0 -4944 y(but)28 b(the)g(DEC)g(compiler)f(issued)g(a)g(w)n(arning.)83 -5044 y([)p Fh(LDF)e(2003.07.16.)p Fm(])62 b(Changed)28 +4943 y(but)28 b(the)g(DEC)g(compiler)f(issued)g(a)g(w)n(arning.)83 +5043 y([)p Fh(LDF)e(2003.07.16.)p Fm(])62 b(Changed)28 b(name)g(of)g Fi(c)l(enter)41 b Fm(argumen)n(t)27 b(to)i -Fi(r)l(ef)p 2239 5044 V 31 w(pt)12 b Fm(,)28 b(b)r(ecause)g(I'v)n(e)g +Fi(r)l(ef)p 2239 5043 V 31 w(pt)12 b Fm(,)28 b(b)r(ecause)g(I'v)n(e)g (made)g Fi(c)l(enter)41 b Fm(a)28 b(data)g(mem)n(b)r(er)0 5143 y(of)g Fk(Reg)p 263 5143 29 5 v 39 w(Cl)p 398 5143 V 39 w(Plane)p 672 5143 V 40 w(Curv)m(e)6 b Fm(.)p 0 -5235 1678 4 v 1773 5268 a Fk(End)32 b(Log)p 2222 5235 -V 0 5392 a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 5392 -29 5 v 39 w(Cl)p 648 5392 V 40 w(Plane)p 923 5392 V 40 -w(Curv)m(e)33 b Fm(functions)j Fl(940)14 b Fn(i)24 b -Fm(+)p Fn(\021)p eop end -%%Page: 267 267 -TeXDict begin 267 266 bop 0 83 a Fn(x)p Fm(950)140 b -Fl(3DLDFPR)n(G)2141 b Fk(POINT)24 b Fl(AR)n(GUMENTS)140 -b Fm(267)83 263 y Fk(virtual)33 b(b)s(o)s(ol)p 581 263 -29 5 v 38 w(p)s(oin)m(t)p 837 263 V 40 w(pair)g Fi(interse)l(ction)p +5235 3900 4 v 0 5392 a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p +513 5392 29 5 v 39 w(Cl)p 648 5392 V 40 w(Plane)p 923 +5392 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(943)14 b +Fn(i)24 b Fm(+)p Fn(\021)p eop end +%%Page: 270 270 +TeXDict begin 270 269 bop 0 83 a Fm(270)140 b Fk(POINT)24 +b Fl(AR)n(GUMENTS)2140 b(3DLDFPR)n(G)142 b Fn(x)p Fm(953)83 +263 y Fk(virtual)33 b(b)s(o)s(ol)p 581 263 29 5 v 38 +w(p)s(oin)m(t)p 837 263 V 40 w(pair)g Fi(interse)l(ction)p 1497 263 26 4 v 30 w(p)l(oints)12 b Fm(\()p Fk(P)m(oin)m(t)33 b Fi(r)l(ef)p 2136 263 V 31 w(pt)12 b Fe(;)i Fk(P)m(oin)m(t)33 b Fi(p0)16 b Fe(;)e Fk(P)m(oin)m(t)33 b Fi(p1)16 b Fm(\))28 -b Fk(const)5 b Fm(;)0 462 y Fk(951.)0 587 y Fn(h)14 b +b Fk(const)5 b Fm(;)0 462 y Fk(954.)0 587 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 587 29 5 v 39 w(Cl)p 606 587 V 40 w(Plane)p 881 587 V 40 w(Curv)m(e)33 b Fm(functions)j -Fl(946)15 b Fn(i)23 b Fm(+)p Fn(\021)83 686 y Fk(b)s(o)s(ol)p +Fl(949)15 b Fn(i)23 b Fm(+)p Fn(\021)83 686 y Fk(b)s(o)s(ol)p 269 686 V 38 w(p)s(oin)m(t)p 525 686 V 40 w(pair)35 b(Reg)p 929 686 V 39 w(Cl)p 1064 686 V 40 w(Plane)p 1339 686 V 40 w(Curv)m(e)14 b Fm(::)8 b Fi(interse)l(ction)p 2121 @@ -24344,10 +24334,10 @@ 2704 y Fn(g)249 2828 y Fk(short)32 b Fi(distanc)l(e)j Fm(=)22 b Fi(pl)14 b Fe(:)p Fi(get)p 1117 2828 V 30 w(distanc)l(e)d Fm(\()p Fi(pt0)17 b Fm(\))p Fe(:)p Fi(se)l(c)l(ond)c -Fm(;)0 3028 y Fk(952.)94 b(Degenerate)32 b(cases,)f(error)h(handling.)0 +Fm(;)0 3028 y Fk(955.)94 b(Degenerate)32 b(cases,)f(error)h(handling.)0 3152 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 3152 29 5 v 39 w(Cl)p 606 3152 V 40 w(Plane)p 881 3152 V 40 w(Curv)m(e)33 -b Fm(functions)j Fl(946)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +b Fm(functions)j Fl(949)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3252 y Fk(if)39 b Fm(\()p Fi(pt)p 285 3252 26 4 v 31 w(ve)l(ctor)d Fn(\021)23 b Ff(INVALID_POINT)13 b Fn(_)i Fi(pl)e Fe(:)p Fi(normal)37 b Fn(\021)22 b Ff(INVALID_POINT)13 @@ -24369,10 +24359,10 @@ b Ff("Exiting)p Fj( )p Ff(Polygon:)o(:in)-7 b(tersection_point)o(s\(\)) o(.)h(\\n\\n")25 b Fn(\034)e Fi(\015ush)11 b Fm(;)166 4049 y Fk(return)33 b Ff(INVALID_BOOL_POI)o(NT_)o(PA)o(IR)n -Fm(;)83 4148 y Fn(g)0 4348 y Fk(953.)94 b(P)m(arallel)32 +Fm(;)83 4148 y Fn(g)0 4348 y Fk(956.)94 b(P)m(arallel)32 b(and)g(coplanar)h(cases.)0 4472 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 4472 29 5 v 39 w(Cl)p 606 4472 V 40 w(Plane)p -881 4472 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(946)15 +881 4472 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(949)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4572 y Fk(else)g(if)34 b Fm(\()p Fi(surfac)l(e)p 639 4572 26 4 v 31 w(ve)l(ctor)j Fn(\021)23 b Fi(pt)p 1080 4572 V 30 w(ve)l(ctor)17 b @@ -24382,21 +24372,21 @@ Fi(normal)i Fn(_)s Fi(cr)l(oss)35 b Fn(\021)23 b(\000)o Fi(pl)14 b Fe(:)p Fi(normal)f Fm(\))249 4671 y Fn(f)p eop end -%%Page: 268 268 -TeXDict begin 268 267 bop 0 83 a Fm(268)140 b Fl(COPLANAR)23 -b(CASE)2322 b(3DLDFPR)n(G)142 b Fn(x)p Fm(954)0 263 y -Fk(954.)94 b(Coplanar)32 b(case.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Reg)p 471 388 29 5 v 39 w(Cl)p 606 388 V 40 w(Plane)p -881 388 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(946)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(if)41 b Fm(\()p -Fi(distanc)l(e)35 b Fn(\021)22 b Fm(0\))28 b Fn(f)83 -587 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 -b Fn(\034)23 b Ff("Line)p Fj( )p Ff(and)p Fj( )p Ff(Reg_Cl_)o(Pla)-7 -b(ne_Curve)p Fj( )p Ff(are)p Fj( )p Ff(cop)o(lan)o(a)h(r.\\n")r -Fm(;)83 711 y Fk(T)e(ransform)33 b Fi(t0)16 b Fm(;)83 -811 y Fk(Reg)p 251 811 V 39 w(Cl)p 386 811 V 40 w(Plane)p -661 811 V 40 w(Curv)m(e)33 b Fi(c)l(opy)13 b Fm(\()p -Fn(\003)p Fi(this)e Fm(\);)83 911 y Fk(P)m(oin)m(t)33 +%%Page: 271 271 +TeXDict begin 271 270 bop 0 83 a Fn(x)p Fm(957)140 b +Fl(3DLDFPR)n(G)2322 b(COPLANAR)23 b(CASE)141 b Fm(271)0 +263 y Fk(957.)94 b(Coplanar)32 b(case.)0 388 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Reg)p 471 388 29 5 v 39 w(Cl)p +606 388 V 40 w(Plane)p 881 388 V 40 w(Curv)m(e)33 b Fm(functions)j +Fl(949)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(if)41 +b Fm(\()p Fi(distanc)l(e)35 b Fn(\021)22 b Fm(0\))28 +b Fn(f)83 587 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h +Fi(c)l(out)34 b Fn(\034)23 b Ff("Line)p Fj( )p Ff(and)p +Fj( )p Ff(Reg_Cl_)o(Pla)-7 b(ne_Curve)p Fj( )p Ff(are)p +Fj( )p Ff(cop)o(lan)o(a)h(r.\\n")r Fm(;)83 711 y Fk(T)e(ransform)33 +b Fi(t0)16 b Fm(;)83 811 y Fk(Reg)p 251 811 V 39 w(Cl)p +386 811 V 40 w(Plane)p 661 811 V 40 w(Curv)m(e)33 b Fi(c)l(opy)13 +b Fm(\()p Fn(\003)p Fi(this)e Fm(\);)83 911 y Fk(P)m(oin)m(t)33 b Fi(curve)p 539 911 26 4 v 31 w(0)39 b Fm(=)22 b Fi(c)l(opy)13 b Fe(:)p Fi(get)p 1036 911 V 30 w(p)l(oint)g Fm(\(0\);)83 1035 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)166 @@ -24474,10 +24464,10 @@ 5319 y Fi(ang)35 b Fm(=)23 b Fi(curve)p 532 5319 V 30 w(0)16 b Fe(:)p Fi(angle)11 b Fm(\()p Fi(x)p 911 5319 V 31 w(axis)p 1082 5319 V 31 w(pt)h Fm(\);)p eop end -%%Page: 269 269 -TeXDict begin 269 268 bop 0 83 a Fn(x)p Fm(954)140 b -Fl(3DLDFPR)n(G)2322 b(COPLANAR)23 b(CASE)141 b Fm(269)83 -263 y Fk(if)41 b Fm(\()p Fi(ang)35 b Fn(6)p Fm(=)23 b(0\))41 +%%Page: 272 272 +TeXDict begin 272 271 bop 0 83 a Fm(272)140 b Fl(COPLANAR)23 +b(CASE)2322 b(3DLDFPR)n(G)142 b Fn(x)p Fm(957)83 263 +y Fk(if)41 b Fm(\()p Fi(ang)35 b Fn(6)p Fm(=)23 b(0\))41 b Fn(f)166 363 y Fk(if)g Fm(\()p Fi(curve)p 494 363 26 4 v 31 w(0)16 b Fe(:)p Fi(get)p 710 363 V 31 w(y)c Fm(\()i(\))23 b Fe(>)g Fm(0)o(\))42 b Fi(ang)35 b Fn(\003)p Fm(=)22 @@ -24565,48 +24555,48 @@ 4871 y Fk(real)p 243 4871 29 5 v 40 w(pair)33 b Fi(rr)13 b Fm(;)166 b Fe(=)p Fn(\003)41 b Fm(BEGIN)g Fn(\003)p Fe(=)p eop end -%%Page: 270 270 -TeXDict begin 270 269 bop 0 83 a Fm(270)140 b Fl(COPLANAR)23 -b(CASE)2322 b(3DLDFPR)n(G)142 b Fn(x)p Fm(955)0 263 y -Fk(955.)94 b Fm(Slop)r(e)28 b(is)f(0)h(\(line)g(is)f(horizon)n(tal\).)0 -388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 388 29 -5 v 39 w(Cl)p 606 388 V 40 w(Plane)p 881 388 V 40 w(Curv)m(e)33 -b Fm(functions)j Fl(946)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -487 y Fk(if)41 b Fm(\()p Fi(Slop)l(e)35 b Fn(\021)22 -b Fm(0\))166 b Fe(=)p Fn(\003)41 b Fm(v)27 b(is)h(kno)n(wn,)f(h)g(is)h -(unkno)n(wn.)50 b Fn(\003)p Fe(=)83 587 y Fn(f)166 686 -y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)249 786 -y Fi(c)l(out)35 b Fn(\034)23 b Ff("Slope)p Fj( )p Ff(==)p -Fj( )p Ff(0")f Fn(\034)h Fi(end)t(l)37 b Fn(\034)23 b -Fi(\015ush)10 b Fm(;)166 886 y Fn(g)166 985 y Fi(rr)36 -b Fm(=)23 b Fi(solve)11 b Fm(\()p Ff('h')t Fe(;)j Fi(pt0)p -866 985 26 4 v 31 w(v)f Fm(\);)166 1085 y Fk(if)41 b -Fm(\()p Fi(rr)14 b Fe(:)p Fi(\014rst)34 b Fn(6)p Fm(=)23 -b Ff(INVALID_REAL)o Fm(\))42 b Fn(f)249 1185 y Fi(bpp)11 -b Fe(:)p Fi(\014rst)g Fe(:)p Fi(pt)h Fe(:)p Fi(set)g -Fm(\()p Fi(rr)i Fe(:)p Fi(\014rst)d Fe(;)j Fm(0)o Fe(;)g -Fi(pt0)p 1326 1185 V 31 w(v)g Fm(\);)166 1284 y Fn(g)166 -1384 y Fk(else)45 b Fi(bpp)11 b Fe(:)p Fi(\014rst)g Fe(:)p -Fi(pt)35 b Fm(=)23 b Ff(INVALID_POINT)o Fm(;)166 1483 -y Fk(if)41 b Fm(\()p Fi(rr)14 b Fe(:)p Fi(se)l(c)l(ond)36 +%%Page: 273 273 +TeXDict begin 273 272 bop 0 83 a Fn(x)p Fm(958)140 b +Fl(3DLDFPR)n(G)2322 b(COPLANAR)23 b(CASE)141 b Fm(273)0 +263 y Fk(958.)94 b Fm(Slop)r(e)28 b(is)f(0)h(\(line)g(is)f(horizon)n +(tal\).)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 +388 29 5 v 39 w(Cl)p 606 388 V 40 w(Plane)p 881 388 V +40 w(Curv)m(e)33 b Fm(functions)j Fl(949)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 487 y Fk(if)41 b Fm(\()p Fi(Slop)l(e)35 +b Fn(\021)22 b Fm(0\))166 b Fe(=)p Fn(\003)41 b Fm(v)27 +b(is)h(kno)n(wn,)f(h)g(is)h(unkno)n(wn.)50 b Fn(\003)p +Fe(=)83 587 y Fn(f)166 686 y Fk(if)41 b Fm(\()p Ff(DEBUG)s +Fm(\))h Fn(f)249 786 y Fi(c)l(out)35 b Fn(\034)23 b Ff("Slope)p +Fj( )p Ff(==)p Fj( )p Ff(0")f Fn(\034)h Fi(end)t(l)37 +b Fn(\034)23 b Fi(\015ush)10 b Fm(;)166 886 y Fn(g)166 +985 y Fi(rr)36 b Fm(=)23 b Fi(solve)11 b Fm(\()p Ff('h')t +Fe(;)j Fi(pt0)p 866 985 26 4 v 31 w(v)f Fm(\);)166 1085 +y Fk(if)41 b Fm(\()p Fi(rr)14 b Fe(:)p Fi(\014rst)34 b Fn(6)p Fm(=)23 b Ff(INVALID_REAL)o Fm(\))42 b Fn(f)249 -1583 y Fi(bpp)11 b Fe(:)p Fi(se)l(c)l(ond)i Fe(:)p Fi(pt)f -Fe(:)p Fi(set)g Fm(\()p Fi(rr)h Fe(:)p Fi(se)l(c)l(ond)h -Fe(;)g Fm(0)o Fe(;)g Fi(pt0)p 1508 1583 V 31 w(v)f Fm(\);)166 -1683 y Fn(g)166 1782 y Fk(else)45 b Fi(bpp)11 b Fe(:)p -Fi(se)l(c)l(ond)i Fe(:)p Fi(pt)35 b Fm(=)23 b Ff(INVALID_POINT)o -Fm(;)166 1882 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h -Fn(f)249 1982 y Fi(bpp)11 b Fe(:)p Fi(\014rst)g Fe(:)p -Fi(pt)h Fe(:)p Fi(show)i Fm(\()p Ff("bpp.first.pt")o -Fm(\);)249 2081 y Fi(bpp)d Fe(:)p Fi(se)l(c)l(ond)i Fe(:)p -Fi(pt)f Fe(:)p Fi(show)i Fm(\()p Ff("bpp.second.pt")o -Fm(\);)166 2181 y Fn(g)83 2280 y(g)166 b Fe(=)p Fn(\003)40 -b Fm(End)28 b Fi(Slop)l(e)34 b Fn(\021)22 b Fm(0.)51 -b Fn(\003)p Fe(=)0 2480 y Fk(956.)94 b Fm(Slop)r(e)28 -b(is)f(unde\014ned)i(\(line)f(is)f(v)n(ertical\).)0 2604 -y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 2604 29 5 v -39 w(Cl)p 606 2604 V 40 w(Plane)p 881 2604 V 40 w(Curv)m(e)33 -b Fm(functions)j Fl(946)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1185 y Fi(bpp)11 b Fe(:)p Fi(\014rst)g Fe(:)p Fi(pt)h +Fe(:)p Fi(set)g Fm(\()p Fi(rr)i Fe(:)p Fi(\014rst)d Fe(;)j +Fm(0)o Fe(;)g Fi(pt0)p 1326 1185 V 31 w(v)g Fm(\);)166 +1284 y Fn(g)166 1384 y Fk(else)45 b Fi(bpp)11 b Fe(:)p +Fi(\014rst)g Fe(:)p Fi(pt)35 b Fm(=)23 b Ff(INVALID_POINT)o +Fm(;)166 1483 y Fk(if)41 b Fm(\()p Fi(rr)14 b Fe(:)p +Fi(se)l(c)l(ond)36 b Fn(6)p Fm(=)23 b Ff(INVALID_REAL)o +Fm(\))42 b Fn(f)249 1583 y Fi(bpp)11 b Fe(:)p Fi(se)l(c)l(ond)i +Fe(:)p Fi(pt)f Fe(:)p Fi(set)g Fm(\()p Fi(rr)h Fe(:)p +Fi(se)l(c)l(ond)h Fe(;)g Fm(0)o Fe(;)g Fi(pt0)p 1508 +1583 V 31 w(v)f Fm(\);)166 1683 y Fn(g)166 1782 y Fk(else)45 +b Fi(bpp)11 b Fe(:)p Fi(se)l(c)l(ond)i Fe(:)p Fi(pt)35 +b Fm(=)23 b Ff(INVALID_POINT)o Fm(;)166 1882 y Fk(if)41 +b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)249 1982 y Fi(bpp)11 +b Fe(:)p Fi(\014rst)g Fe(:)p Fi(pt)h Fe(:)p Fi(show)i +Fm(\()p Ff("bpp.first.pt")o Fm(\);)249 2081 y Fi(bpp)d +Fe(:)p Fi(se)l(c)l(ond)i Fe(:)p Fi(pt)f Fe(:)p Fi(show)i +Fm(\()p Ff("bpp.second.pt")o Fm(\);)166 2181 y Fn(g)83 +2280 y(g)166 b Fe(=)p Fn(\003)40 b Fm(End)28 b Fi(Slop)l(e)34 +b Fn(\021)22 b Fm(0.)51 b Fn(\003)p Fe(=)0 2480 y Fk(959.)94 +b Fm(Slop)r(e)28 b(is)f(unde\014ned)i(\(line)f(is)f(v)n(ertical\).)0 +2604 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 2604 29 +5 v 39 w(Cl)p 606 2604 V 40 w(Plane)p 881 2604 V 40 w(Curv)m(e)33 +b Fm(functions)j Fl(949)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2704 y Fk(else)166 2803 y(if)41 b Fm(\()p Fi(Slop)l(e)35 b Fn(\021)22 b Ff(INVALID_REAL)p Fm(\))42 b Fn(f)249 2903 y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)332 3003 @@ -24631,25 +24621,25 @@ b Ff(INVALID_POINT)o Fm(;)166 4099 y Fn(g)166 b Fe(=)p Fn(\003)40 b Fm(End)28 b Fi(Slop)l(e)34 b Fn(\021)22 b Ff(INVALID_REAL)p Fm(.)51 b Fn(\003)p Fe(=)p eop end -%%Page: 271 271 -TeXDict begin 271 270 bop 0 83 a Fn(x)p Fm(957)140 b -Fl(3DLDFPR)n(G)2322 b(COPLANAR)23 b(CASE)141 b Fm(271)0 -263 y Fk(957.)94 b Fm(Slop)r(e)28 b Fn(2)g Fk(real)k -Fm(is)c(de\014ned)g(and)f Fn(6)p Fm(=)c(0.)0 388 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Reg)p 471 388 29 5 v 39 w(Cl)p -606 388 V 40 w(Plane)p 881 388 V 40 w(Curv)m(e)33 b Fm(functions)j -Fl(946)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(else)45 -b Fn(f)166 587 y Fk(real)33 b Fi(v)p 398 587 26 4 v 30 -w(inter)l(c)l(ept)12 b Fm(;)166 711 y Fi(v)p 209 711 -V 31 w(inter)l(c)l(ept)35 b Fm(=)22 b Fi(pt0)p 785 711 -V 31 w(v)32 b Fn(\000)18 b Fm(\()p Fi(Slop)l(e)30 b Fn(\003)18 -b Fi(pt0)p 1389 711 V 31 w(h)11 b Fm(\);)166 811 y Fk(if)41 -b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 -b Ff("v_intercept)p Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)i -Fi(v)p 1799 811 V 31 w(inter)l(c)l(ept)35 b Fn(\034)23 -b Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 b Fm(;)166 -936 y Fk(real)p 326 936 29 5 v 40 w(triple)32 b Fi(c)l(o)l(e\013s)i -Fm(=)23 b Fi(get)p 1047 936 26 4 v 30 w(c)l(o)l(e\016cients)12 +%%Page: 274 274 +TeXDict begin 274 273 bop 0 83 a Fm(274)140 b Fl(COPLANAR)23 +b(CASE)2322 b(3DLDFPR)n(G)142 b Fn(x)p Fm(960)0 263 y +Fk(960.)94 b Fm(Slop)r(e)28 b Fn(2)g Fk(real)k Fm(is)c(de\014ned)g(and) +f Fn(6)p Fm(=)c(0.)0 388 y Fn(h)14 b Fm(De\014ne)28 b +Fk(Reg)p 471 388 29 5 v 39 w(Cl)p 606 388 V 40 w(Plane)p +881 388 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(949)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(else)45 b Fn(f)166 +587 y Fk(real)33 b Fi(v)p 398 587 26 4 v 30 w(inter)l(c)l(ept)12 +b Fm(;)166 711 y Fi(v)p 209 711 V 31 w(inter)l(c)l(ept)35 +b Fm(=)22 b Fi(pt0)p 785 711 V 31 w(v)32 b Fn(\000)18 +b Fm(\()p Fi(Slop)l(e)30 b Fn(\003)18 b Fi(pt0)p 1389 +711 V 31 w(h)11 b Fm(\);)166 811 y Fk(if)41 b Fm(\()p +Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("v_intercept)p +Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)i Fi(v)p 1799 811 +V 31 w(inter)l(c)l(ept)35 b Fn(\034)23 b Fi(end)t(l)36 +b Fn(\034)23 b Fi(\015ush)11 b Fm(;)166 936 y Fk(real)p +326 936 29 5 v 40 w(triple)32 b Fi(c)l(o)l(e\013s)i Fm(=)23 +b Fi(get)p 1047 936 26 4 v 30 w(c)l(o)l(e\016cients)12 b Fm(\()p Fi(Slop)l(e)f Fe(;)j Fi(v)p 1786 936 V 31 w(inter)l(c)l(ept)e Fm(\);)166 b Fe(=)p Fn(\003)41 b Fm(New)28 b(h-v)-5 b(alues.)50 b Fn(\003)p Fe(=)166 1060 y Fk(if)41 b Fm(\()p Fi(is)p @@ -24691,61 +24681,62 @@ y Fn(g)166 3003 y Fk(else)45 b Fi(bpp)11 b Fe(:)p Fi(se)l(c)l(ond)i Fe(:)p Fi(pt)35 b Fm(=)23 b Ff(INVALID_POINT)o Fm(;)83 3102 y Fn(g)p eop end -%%Page: 272 272 -TeXDict begin 272 271 bop 0 83 a Fm(272)140 b Fl(COPLANAR)23 -b(CASE)2322 b(3DLDFPR)n(G)142 b Fn(x)p Fm(958)0 263 y -Fk(958.)94 b Fm(Common)27 b(co)r(de)h(for)f(the)h(\\coplanar")d(case.)0 -388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 388 29 -5 v 39 w(Cl)p 606 388 V 40 w(Plane)p 881 388 V 40 w(Curv)m(e)33 -b Fm(functions)j Fl(946)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -487 y Fk(b)s(o)s(ol)p 269 487 V 38 w(real)33 b Fi(on)p -586 487 26 4 v 31 w(se)l(gment)11 b Fm(;)83 612 y Fk(if)41 -b Fm(\()p Fi(bpp)11 b Fe(:)p Fi(\014rst)g Fe(:)p Fi(pt)36 -b Fn(\021)22 b Ff(INVALID_POINT)o Fm(\))42 b Fn(f)166 -711 y Fi(on)p 260 711 V 31 w(se)l(gment)11 b Fe(:)p Fi(\014rst)35 -b Fm(=)22 b Fi(false)12 b Fm(;)166 811 y Fi(on)p 260 -811 V 31 w(se)l(gment)f Fe(:)p Fi(se)l(c)l(ond)37 b Fm(=)22 -b Ff(INVALID_REAL)p Fm(;)83 911 y Fn(g)83 1010 y Fk(else)45 -b Fi(on)p 375 1010 V 31 w(se)l(gment)34 b Fm(=)23 b Fi(bpp)10 -b Fe(:)p Fi(\014rst)i Fe(:)p Fi(pt)g Fe(:)p Fi(is)p 1313 -1010 V 31 w(on)p 1433 1010 V 31 w(se)l(gment)f Fm(\()p -Fi(pt0)16 b Fe(;)e Fi(pt1)i Fm(\);)83 1110 y Fk(if)41 -b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)166 1209 y Fi(c)l(out)35 -b Fn(\034)23 b Ff("on_segment.firs)o(t)p Fj( )o Ff(==)-6 -b Fj( )p Ff(")26 b Fn(\034)d Fi(on)p 1642 1209 V 31 w(se)l(gment)11 -b Fe(:)p Fi(\014rst)35 b Fn(\034)23 b Fi(end)t(l)37 b -Fn(\034)23 b Fi(\015ush)10 b Fm(;)166 1309 y Fi(c)l(out)35 -b Fn(\034)23 b Ff("on_segment.seco)o(nd)o Fj( )p Ff(=)-6 -b(=)p Fj( )p Ff(")26 b Fn(\034)d Fi(on)p 1686 1309 V -30 w(se)l(gment)12 b Fe(:)p Fi(se)l(c)l(ond)36 b Fn(\034)23 -b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)83 -1409 y Fn(g)83 1508 y Fk(if)41 b Fm(\()p Fi(on)p 306 -1508 V 31 w(se)l(gment)12 b Fe(:)p Fi(\014rst)34 b Fn(\021)23 -b Fi(true)10 b Fm(\))41 b Fi(bpp)11 b Fe(:)p Fi(\014rst)g -Fe(:b)23 b Fm(=)g Fi(true)10 b Fm(;)83 1608 y Fk(else)45 -b Fi(bpp)11 b Fe(:)p Fi(\014rst)g Fe(:b)23 b Fm(=)f Fi(false)12 -b Fm(;)83 1733 y Fk(T)-8 b(ransform)33 b Fi(t)p 579 1733 -V 30 w(inverse)11 b Fm(;)83 1857 y Fi(t)p 116 1857 V -30 w(inverse)34 b Fm(=)23 b Fi(t0)16 b Fe(:)p Fi(inverse)11 -b Fm(\()j(\);)83 1957 y Fk(if)41 b Fm(\()p Fi(bpp)11 -b Fe(:)p Fi(\014rst)g Fe(:)p Fi(pt)36 b Fn(6)p Fm(=)22 -b Ff(INVALID_POINT)o Fm(\))42 b Fn(f)166 2056 y Fk(if)f -Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 -b Ff("Transforming)p Fj( )p Ff(bpp)o(.fi)-7 b(rst.pt\\n")24 -b Fn(\034)f Fi(\015ush)10 b Fm(;)166 2156 y Fi(bpp)h -Fe(:)p Fi(\014rst)g Fe(:)p Fi(pt)35 b Fn(\003)p Fm(=)22 -b Fi(t)p 767 2156 V 31 w(inverse)11 b Fm(;)83 2256 y -Fn(g)83 2355 y Fk(else)45 b Fn(f)166 2455 y Fk(if)c Fm(\()p -Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("bpp.first.pt)p -Fj( )p Ff(is)p Fj( )o Ff(inv)-7 b(alid\\n")25 b Fn(\034)e -Fi(\015ush)10 b Fm(;)83 2554 y Fn(g)83 2654 y Fk(if)41 -b Fm(\()p Fi(bpp)11 b Fe(:)p Fi(se)l(c)l(ond)i Fe(:)p -Fi(pt)36 b Fn(\021)22 b Ff(INVALID_POINT)o Fm(\))42 b -Fn(f)166 2754 y Fi(on)p 260 2754 V 31 w(se)l(gment)11 +%%Page: 275 275 +TeXDict begin 275 274 bop 0 83 a Fn(x)p Fm(961)140 b +Fl(3DLDFPR)n(G)2322 b(COPLANAR)23 b(CASE)141 b Fm(275)0 +263 y Fk(961.)94 b Fm(Common)27 b(co)r(de)h(for)f(the)h(\\coplanar")d +(case.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 +388 29 5 v 39 w(Cl)p 606 388 V 40 w(Plane)p 881 388 V +40 w(Curv)m(e)33 b Fm(functions)j Fl(949)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)p 269 487 V 38 +w(real)33 b Fi(on)p 586 487 26 4 v 31 w(se)l(gment)11 +b Fm(;)83 612 y Fk(if)41 b Fm(\()p Fi(bpp)11 b Fe(:)p +Fi(\014rst)g Fe(:)p Fi(pt)36 b Fn(\021)22 b Ff(INVALID_POINT)o +Fm(\))42 b Fn(f)166 711 y Fi(on)p 260 711 V 31 w(se)l(gment)11 b Fe(:)p Fi(\014rst)35 b Fm(=)22 b Fi(false)12 b Fm(;)166 -2853 y Fi(on)p 260 2853 V 31 w(se)l(gment)f Fe(:)p Fi(se)l(c)l(ond)37 -b Fm(=)22 b Ff(INVALID_REAL)p Fm(;)83 2953 y Fn(g)83 -3053 y Fk(else)45 b Fi(on)p 375 3053 V 31 w(se)l(gment)34 +811 y Fi(on)p 260 811 V 31 w(se)l(gment)f Fe(:)p Fi(se)l(c)l(ond)37 +b Fm(=)22 b Ff(INVALID_REAL)p Fm(;)83 911 y Fn(g)83 1010 +y Fk(else)45 b Fi(on)p 375 1010 V 31 w(se)l(gment)34 +b Fm(=)23 b Fi(bpp)10 b Fe(:)p Fi(\014rst)i Fe(:)p Fi(pt)g +Fe(:)p Fi(is)p 1313 1010 V 31 w(on)p 1433 1010 V 31 w(se)l(gment)f +Fm(\()p Fi(pt0)16 b Fe(;)e Fi(pt1)i Fm(\);)83 1110 y +Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)166 1209 y +Fi(c)l(out)35 b Fn(\034)23 b Ff("on_segment.firs)o(t)p +Fj( )o Ff(==)-6 b Fj( )p Ff(")26 b Fn(\034)d Fi(on)p +1642 1209 V 31 w(se)l(gment)11 b Fe(:)p Fi(\014rst)35 +b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 +b Fm(;)166 1309 y Fi(c)l(out)35 b Fn(\034)23 b Ff("on_segment.seco)o +(nd)o Fj( )p Ff(=)-6 b(=)p Fj( )p Ff(")26 b Fn(\034)d +Fi(on)p 1686 1309 V 30 w(se)l(gment)12 b Fe(:)p Fi(se)l(c)l(ond)36 +b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 +b Fm(;)83 1409 y Fn(g)83 1508 y Fk(if)41 b Fm(\()p Fi(on)p +306 1508 V 31 w(se)l(gment)12 b Fe(:)p Fi(\014rst)34 +b Fn(\021)23 b Fi(true)10 b Fm(\))41 b Fi(bpp)11 b Fe(:)p +Fi(\014rst)g Fe(:b)23 b Fm(=)g Fi(true)10 b Fm(;)83 1608 +y Fk(else)45 b Fi(bpp)11 b Fe(:)p Fi(\014rst)g Fe(:b)23 +b Fm(=)f Fi(false)12 b Fm(;)83 1733 y Fk(T)-8 b(ransform)33 +b Fi(t)p 579 1733 V 30 w(inverse)11 b Fm(;)83 1857 y +Fi(t)p 116 1857 V 30 w(inverse)34 b Fm(=)23 b Fi(t0)16 +b Fe(:)p Fi(inverse)11 b Fm(\()j(\);)83 1957 y Fk(if)41 +b Fm(\()p Fi(bpp)11 b Fe(:)p Fi(\014rst)g Fe(:)p Fi(pt)36 +b Fn(6)p Fm(=)22 b Ff(INVALID_POINT)o Fm(\))42 b Fn(f)166 +2056 y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 +b Fn(\034)23 b Ff("Transforming)p Fj( )p Ff(bpp)o(.fi)-7 +b(rst.pt\\n")24 b Fn(\034)f Fi(\015ush)10 b Fm(;)166 +2156 y Fi(bpp)h Fe(:)p Fi(\014rst)g Fe(:)p Fi(pt)35 b +Fn(\003)p Fm(=)22 b Fi(t)p 767 2156 V 31 w(inverse)11 +b Fm(;)83 2256 y Fn(g)83 2355 y Fk(else)45 b Fn(f)166 +2455 y Fk(if)c Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 +b Fn(\034)23 b Ff("bpp.first.pt)p Fj( )p Ff(is)p Fj( )o +Ff(inv)-7 b(alid\\n")25 b Fn(\034)e Fi(\015ush)10 b Fm(;)83 +2554 y Fn(g)83 2654 y Fk(if)41 b Fm(\()p Fi(bpp)11 b +Fe(:)p Fi(se)l(c)l(ond)i Fe(:)p Fi(pt)36 b Fn(\021)22 +b Ff(INVALID_POINT)o Fm(\))42 b Fn(f)166 2754 y Fi(on)p +260 2754 V 31 w(se)l(gment)11 b Fe(:)p Fi(\014rst)35 +b Fm(=)22 b Fi(false)12 b Fm(;)166 2853 y Fi(on)p 260 +2853 V 31 w(se)l(gment)f Fe(:)p Fi(se)l(c)l(ond)37 b +Fm(=)22 b Ff(INVALID_REAL)p Fm(;)83 2953 y Fn(g)83 3053 +y Fk(else)45 b Fi(on)p 375 3053 V 31 w(se)l(gment)34 b Fm(=)23 b Fi(bpp)10 b Fe(:)p Fi(se)l(c)l(ond)k Fe(:)p Fi(pt)e Fe(:)p Fi(is)p 1404 3053 V 31 w(on)p 1524 3053 V 31 w(se)l(gment)f Fm(\()p Fi(pt0)16 b Fe(;)e Fi(pt1)i @@ -24799,56 +24790,55 @@ Fk(return)33 b Fi(bpp)11 b Fm(;)37 b Fn(g)165 b Fe(=)p Fn(\003)41 b Fm(End)27 b(of)h(coplanar)e(case.)49 b Fn(\003)p Fe(=)p eop end -%%Page: 273 273 -TeXDict begin 273 272 bop 0 83 a Fn(x)p Fm(959)140 b -Fl(3DLDFPR)n(G)2351 b(P)-6 b(ARALLEL)23 b(CASE)141 b -Fm(273)0 263 y Fk(959.)94 b(P)m(arallel)32 b(case.)0 -388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 388 29 -5 v 39 w(Cl)p 606 388 V 40 w(Plane)p 881 388 V 40 w(Curv)m(e)33 -b Fm(functions)j Fl(946)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -487 y Fk(else)45 b Fn(f)166 587 y Fi(c)l(err)57 b Fn(\034)44 -b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Reg)o(_Cl)o(_)-6 -b(Plane_Curve::int)o(er)o(se)g(ction_points\(\):)o(\\n")41 -b Fn(\034)332 686 y Ff("Line)p Fj( )p Ff(and)p Fj( )p -Ff(Reg_Cl)o(_Pl)o(a)-6 b(ne_Curve)p Fj( )p Ff(are)p Fj( )p -Ff(in)p Fj( )o Ff(pa)o(ra)g(llel)p Fj( )p Ff(planes.\\n")49 -b Fn(\034)332 786 y Ff("No)p Fj( )p Ff(intersection)o(s.)p -Fj( )o Ff(R)-6 b(eturning)p Fj( )p Ff(INVALID)o(_B)o(OO)g -(L_POINT_PAIR.")21 b Fn(\034)i Fi(end)t(l)37 b Fn(\034)23 -b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)166 -886 y Fk(return)33 b Ff(INVALID_BOOL_POI)o(NT_)o(PA)o(IR)n -Fm(;)83 985 y Fn(g)83 1085 y(g)166 b Fe(=)p Fn(\003)40 -b Fm(End)28 b(of)f(parallel)g(and)g(coplanar)f(cases.)49 -b Fn(\003)p Fe(=)0 1284 y Fk(960.)94 b(P)m(erp)s(endicular)35 -b(and)f(non-coplanar)h(cases.)95 b Fm([)p Fh(LDF)25 b(2003.06.13.)p -Fm(])63 b(These)29 b(cases)g(are)f(handled)i(in)g(exactly)0 -1384 y(the)e(same)f(w)n(a)n(y)-7 b(.)0 1508 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Reg)p 471 1508 V 39 w(Cl)p 606 -1508 V 40 w(Plane)p 881 1508 V 40 w(Curv)m(e)33 b Fm(functions)j -Fl(946)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1608 y Fk(else)45 -b Fn(f)166 1708 y Fk(if)c Fm(\()p Fi(pl)14 b Fe(:)p Fi(normal)37 -b Fn(\021)22 b Fi(pt)p 849 1708 26 4 v 31 w(ve)l(ctor)32 -b Fn(_)19 b Fi(pl)13 b Fe(:)p Fi(normal)37 b Fn(\021)22 -b(\000)p Fi(pt)p 1814 1708 V 30 w(ve)l(ctor)14 b Fm(\))42 -b Fn(f)249 1807 y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))332 -1907 y Fi(c)l(out)35 b Fn(\034)23 b Ff("The)p Fj( )p -Ff(line)p Fj( )p Ff(is)p Fj( )p Ff(per)o(pe)o(nd)-6 b(icular)p -Fj( )p Ff(to)p Fj( )p Ff(the)p Fj( )p Ff(")21 b Fn(\034)i -Ff("Reg_Cl_Plane_Cu)o(rv)o(e.)-6 b(\\n")26 b Fn(\034)d -Fi(\015ush)10 b Fm(;)166 2006 y Fn(g)166 2106 y Fk(else)45 -b Fn(f)249 2206 y Fk(if)c Fm(\()p Ff(DEBUG)s Fm(\))332 -2305 y Fi(c)l(out)35 b Fn(\034)23 b Ff("The)p Fj( )p -Ff(line)p Fj( )p Ff(and)p Fj( )p Ff(th)o(e)p Fj( )o Ff(Re)-6 -b(g_Cl_Plane_Curv)o(e)p Fj( )p Ff(")21 b Fn(\034)i Ff("are)p -Fj( )p Ff(non-coplan)o(ar.)o(\\n)-7 b(")27 b Fn(\034)c -Fi(\015ush)11 b Fm(;)166 2405 y Fn(g)166 2530 y Fk(b)s(o)s(ol)p -352 2530 29 5 v 38 w(p)s(oin)m(t)32 b Fi(bp)i Fm(=)22 -b Fi(pl)14 b Fe(:)p Fi(interse)l(ction)p 1363 2530 26 -4 v 30 w(p)l(oint)f Fm(\()p Fi(pt0)j Fe(;)e Fi(pt1)i -Fm(\);)166 2654 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h -Fn(f)249 2754 y Fi(bp)10 b Fe(:)p Fi(pt)i Fe(:)p Fi(show)j -Fm(\()p Ff("bp.pt")q Fm(\);)166 2853 y Fn(g)166 2978 -y Fk(short)32 b Fe(s)23 b Fm(=)g Fi(lo)l(c)l(ation)12 +%%Page: 276 276 +TeXDict begin 276 275 bop 0 83 a Fm(276)140 b Fl(P)-6 +b(ARALLEL)23 b(CASE)2351 b(3DLDFPR)n(G)142 b Fn(x)p Fm(962)0 +263 y Fk(962.)94 b(P)m(arallel)32 b(case.)0 388 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Reg)p 471 388 29 5 v 39 w(Cl)p +606 388 V 40 w(Plane)p 881 388 V 40 w(Curv)m(e)33 b Fm(functions)j +Fl(949)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(else)45 +b Fn(f)166 587 y Fi(c)l(err)57 b Fn(\034)44 b Ff("WARNING!)p +Fj( )p Ff(In)p Fj( )p Ff(Reg)o(_Cl)o(_)-6 b(Plane_Curve::int)o(er)o(se) +g(ction_points\(\):)o(\\n")41 b Fn(\034)332 686 y Ff("Line)p +Fj( )p Ff(and)p Fj( )p Ff(Reg_Cl)o(_Pl)o(a)-6 b(ne_Curve)p +Fj( )p Ff(are)p Fj( )p Ff(in)p Fj( )o Ff(pa)o(ra)g(llel)p +Fj( )p Ff(planes.\\n")49 b Fn(\034)332 786 y Ff("No)p +Fj( )p Ff(intersection)o(s.)p Fj( )o Ff(R)-6 b(eturning)p +Fj( )p Ff(INVALID)o(_B)o(OO)g(L_POINT_PAIR.")21 b Fn(\034)i +Fi(end)t(l)37 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 +b Fi(\015ush)10 b Fm(;)166 886 y Fk(return)33 b Ff(INVALID_BOOL_POI)o +(NT_)o(PA)o(IR)n Fm(;)83 985 y Fn(g)83 1085 y(g)166 b +Fe(=)p Fn(\003)40 b Fm(End)28 b(of)f(parallel)g(and)g(coplanar)f +(cases.)49 b Fn(\003)p Fe(=)0 1284 y Fk(963.)94 b(P)m(erp)s(endicular) +35 b(and)f(non-coplanar)h(cases.)95 b Fm([)p Fh(LDF)25 +b(2003.06.13.)p Fm(])63 b(These)29 b(cases)g(are)f(handled)i(in)g +(exactly)0 1384 y(the)e(same)f(w)n(a)n(y)-7 b(.)0 1508 +y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 1508 V 39 w(Cl)p +606 1508 V 40 w(Plane)p 881 1508 V 40 w(Curv)m(e)33 b +Fm(functions)j Fl(949)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1608 y Fk(else)45 b Fn(f)166 1708 y Fk(if)c Fm(\()p Fi(pl)14 +b Fe(:)p Fi(normal)37 b Fn(\021)22 b Fi(pt)p 849 1708 +26 4 v 31 w(ve)l(ctor)32 b Fn(_)19 b Fi(pl)13 b Fe(:)p +Fi(normal)37 b Fn(\021)22 b(\000)p Fi(pt)p 1814 1708 +V 30 w(ve)l(ctor)14 b Fm(\))42 b Fn(f)249 1807 y Fk(if)f +Fm(\()p Ff(DEBUG)s Fm(\))332 1907 y Fi(c)l(out)35 b Fn(\034)23 +b Ff("The)p Fj( )p Ff(line)p Fj( )p Ff(is)p Fj( )p Ff(per)o(pe)o(nd)-6 +b(icular)p Fj( )p Ff(to)p Fj( )p Ff(the)p Fj( )p Ff(")21 +b Fn(\034)i Ff("Reg_Cl_Plane_Cu)o(rv)o(e.)-6 b(\\n")26 +b Fn(\034)d Fi(\015ush)10 b Fm(;)166 2006 y Fn(g)166 +2106 y Fk(else)45 b Fn(f)249 2206 y Fk(if)c Fm(\()p Ff(DEBUG)s +Fm(\))332 2305 y Fi(c)l(out)35 b Fn(\034)23 b Ff("The)p +Fj( )p Ff(line)p Fj( )p Ff(and)p Fj( )p Ff(th)o(e)p Fj( )o +Ff(Re)-6 b(g_Cl_Plane_Curv)o(e)p Fj( )p Ff(")21 b Fn(\034)i +Ff("are)p Fj( )p Ff(non-coplan)o(ar.)o(\\n)-7 b(")27 +b Fn(\034)c Fi(\015ush)11 b Fm(;)166 2405 y Fn(g)166 +2530 y Fk(b)s(o)s(ol)p 352 2530 29 5 v 38 w(p)s(oin)m(t)32 +b Fi(bp)i Fm(=)22 b Fi(pl)14 b Fe(:)p Fi(interse)l(ction)p +1363 2530 26 4 v 30 w(p)l(oint)f Fm(\()p Fi(pt0)j Fe(;)e +Fi(pt1)i Fm(\);)166 2654 y Fk(if)41 b Fm(\()p Ff(DEBUG)s +Fm(\))h Fn(f)249 2754 y Fi(bp)10 b Fe(:)p Fi(pt)i Fe(:)p +Fi(show)j Fm(\()p Ff("bp.pt")q Fm(\);)166 2853 y Fn(g)166 +2978 y Fk(short)32 b Fe(s)23 b Fm(=)g Fi(lo)l(c)l(ation)12 b Fm(\()p Fi(r)l(ef)p 983 2978 V 31 w(pt)g Fe(;)i Fi(bp)c Fe(:)p Fi(pt)i Fm(\);)166 3102 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("location:)p @@ -24870,32 +24860,31 @@ b Ff(INVALID_BOOL_POI)o(NT_)o(PA)o(IR)n Fm(;)83 3899 y Fn(g)166 b Fe(=)p Fn(\003)40 b Fm(End)28 b(of)f(\\P)n(erp)r (endicular)f(and)h(non-coplanar)e(cases".)50 b Fn(\003)p -Fe(=)83 3999 y Fn(g)0 4198 y Fk(961.)94 b(P)m(ath)33 -b(argumen)m(ts.)p 0 4298 1643 4 v 1738 4330 a(Begin)e(Log)p -2257 4298 V 83 4471 a Fm([)p Fh(LDF)25 b(2003.06.20.)p -Fm(])61 b(Added)28 b(this)g(function.)83 4570 y([)p Fh(LDF)d -(2003.07.16.)p Fm(])62 b(Changed)28 b(name)g(of)g Fi(c)l(enter)41 -b Fm(argumen)n(t)27 b(to)i Fi(r)l(ef)p 2239 4570 26 4 -v 31 w(pt)12 b Fm(,)28 b(b)r(ecause)g(I'v)n(e)g(made)g -Fi(c)l(enter)41 b Fm(a)28 b(data)g(mem)n(b)r(er)0 4670 -y(of)g Fk(Reg)p 263 4670 29 5 v 39 w(Cl)p 398 4670 V -39 w(Plane)p 672 4670 V 40 w(Curv)m(e)6 b Fm(.)p 0 4762 -1678 4 v 1773 4795 a Fk(End)32 b(Log)p 2222 4762 V 0 -4919 a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 4919 29 -5 v 39 w(Cl)p 648 4919 V 40 w(Plane)p 923 4919 V 40 w(Curv)m(e)33 -b Fm(functions)j Fl(940)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -5019 y Fk(b)s(o)s(ol)p 269 5019 V 38 w(p)s(oin)m(t)p -525 5019 V 40 w(pair)33 b Fi(interse)l(ction)p 1185 5019 -26 4 v 30 w(p)l(oints)12 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)f -Fm(&)p Fi(r)l(ef)p 2139 5019 V 31 w(pt)12 b Fe(;)i Fk(const)32 -b(P)m(ath)i Fm(&)p Fe(p)o Fm(\))28 b Fk(const)5 b Fm(;)p -eop end -%%Page: 274 274 -TeXDict begin 274 273 bop 0 83 a Fm(274)140 b Fk(P)-8 -b(A)g(TH)24 b Fl(AR)n(GUMENTS)2192 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(962)0 263 y Fk(962.)0 388 y Fn(h)14 b Fm(De\014ne)28 +Fe(=)83 3999 y Fn(g)0 4198 y Fk(964.)94 b(P)m(ath)33 +b(argumen)m(ts.)p 0 4297 1779 4 v 1874 4329 a(Log)p 2122 +4297 V 83 4470 a Fm([)p Fh(LDF)25 b(2003.06.20.)p Fm(])61 +b(Added)28 b(this)g(function.)83 4570 y([)p Fh(LDF)d(2003.07.16.)p +Fm(])62 b(Changed)28 b(name)g(of)g Fi(c)l(enter)41 b +Fm(argumen)n(t)27 b(to)i Fi(r)l(ef)p 2239 4570 26 4 v +31 w(pt)12 b Fm(,)28 b(b)r(ecause)g(I'v)n(e)g(made)g +Fi(c)l(enter)41 b Fm(a)28 b(data)g(mem)n(b)r(er)0 4669 +y(of)g Fk(Reg)p 263 4669 29 5 v 39 w(Cl)p 398 4669 V +39 w(Plane)p 672 4669 V 40 w(Curv)m(e)6 b Fm(.)p 0 4761 +3900 4 v 0 4918 a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p +513 4918 29 5 v 39 w(Cl)p 648 4918 V 40 w(Plane)p 923 +4918 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(943)14 b +Fn(i)24 b Fm(+)p Fn(\021)83 5018 y Fk(b)s(o)s(ol)p 269 +5018 V 38 w(p)s(oin)m(t)p 525 5018 V 40 w(pair)33 b Fi(interse)l(ction) +p 1185 5018 26 4 v 30 w(p)l(oints)12 b Fm(\()p Fk(const)33 +b(P)m(oin)m(t)f Fm(&)p Fi(r)l(ef)p 2139 5018 V 31 w(pt)12 +b Fe(;)i Fk(const)32 b(P)m(ath)i Fm(&)p Fe(p)o Fm(\))28 +b Fk(const)5 b Fm(;)p eop end +%%Page: 277 277 +TeXDict begin 277 276 bop 0 83 a Fn(x)p Fm(965)140 b +Fl(3DLDFPR)n(G)2192 b Fk(P)-8 b(A)g(TH)25 b Fl(AR)n(GUMENTS)140 +b Fm(277)0 263 y Fk(965.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 388 29 5 v 39 w(Cl)p 606 388 V 40 w(Plane)p -881 388 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(946)15 +881 388 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(949)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)p 269 487 V 38 w(p)s(oin)m(t)p 525 487 V 40 w(pair)34 b(Reg)p 928 487 V 39 w(Cl)p 1063 487 V 39 w(Plane)p 1337 487 @@ -24918,7 +24907,7 @@ 1384 V 31 w(pt)i Fe(;)h(p)o(:)p Fi(get)p 1591 1384 V 31 w(p)l(oint)e Fm(\(0\))p Fe(;)i(p:)p Fi(get)p 2126 1384 V 31 w(last)p 2282 1384 V 30 w(p)l(oint)f Fm(\()h(\)\);)83 -1483 y Fn(g)0 1683 y Fk(963.)94 b(Reg)p 435 1683 29 4 +1483 y Fn(g)0 1683 y Fk(966.)94 b(Reg)p 435 1683 29 4 v 34 w(Cl)p 565 1683 V 34 w(Plane)p 834 1683 V 34 w(Curv)m(e)33 b(segmen)m(ts.)93 b Fm(The)28 b(functions)g(in)g(this)g(section)f (require)f(that)i(the)0 1782 y Fk(Reg)p 168 1782 29 5 @@ -24926,88 +24915,86 @@ b Fm(ha)n(v)n(e)38 b(a)g(meaningful)h Fi(c)l(enter)13 b Fm(,)42 b(in)e(order)e(to)h(mak)n(e)f(it)h(p)r(ossible)g(to)g(rotate) f(the)i(segmen)n(ts.)0 1882 y([)p Fh(LDF)25 b(2003.07.16.)p -Fm(])p 0 1986 1643 4 v 1738 2018 a Fk(Begin)31 b(Log)p -2257 1986 V 83 2159 a Fm([)p Fh(LDF)25 b(2003.07.16.)p -Fm(])71 b(Added)39 b(this)f(section)g(and)g(its)g(subsections,)i -(including)e(the)g(declarations)e(and)i(de\014nitions)g(of)0 -2259 y Fi(se)l(gment)12 b Fm(\()i(\),)28 b Fi(half)23 -b Fm(\()14 b(\),)28 b(and)g Fi(quarter)13 b Fm(\()h(\).)37 -b(They)28 b(w)n(ere)e(formerly)h(mem)n(b)r(ers)g(of)h -Fk(Circle)t Fm(.)p 0 2351 1678 4 v 1773 2383 a Fk(End)k(Log)p -2222 2351 V 0 2583 a(964.)94 b(Segmen)m(t.)h Fm([)p Fh(LDF)25 -b(2002.11.10.)p Fm(])70 b Fi(se)l(gment)11 b Fm(\()j(\))37 -b(returns)f(a)h(subpath)f(of)h(the)g Fk(Reg)p 2947 2583 -29 5 v 39 w(Cl)p 3082 2583 V 40 w(Plane)p 3357 2583 V -40 w(Curv)m(e)42 b Fm(repre-)0 2682 y(sen)n(ting)27 b(a)g(segmen)n(t)g -(of)h Fn(\003)o Fi(this)12 b Fm(.)0 2832 y Fk(in)m(t)32 -b Fi(factor)281 b Fm(Determines)31 b(ho)n(w)f(large)f(a)h(segmen)n(t)g -(of)h(the)g Fk(Reg)p 2268 2832 V 39 w(Cl)p 2403 2832 -V 40 w(Plane)p 2678 2832 V 40 w(Curv)m(e)36 b Fm(is)30 -b(returned.)46 b Fi(factor)f Fm(m)n(ust)637 2931 y(b)r(e)28 -b Fe(>)23 b Fm(1)k(and)g(less)g(than)h(or)f(equal)g(to)g(the)h(n)n(um)n -(b)r(er)g(of)f(p)r(oin)n(ts)h(on)f(the)h Fk(Reg)p 3053 -2931 V 39 w(Cl)p 3188 2931 V 40 w(Plane)p 3463 2931 V -40 w(Curv)m(e)6 b Fm(.)0 3081 y Fk(real)32 b Fi(angle)263 -b Fm(Optional,)33 b(with)f(0)g(as)g(the)g(default.)52 -b(If)p Fi(angle)43 b Fm(is)33 b Fn(6)p Fm(=)d(0,)j(a)f -Fk(P)m(oin)m(t)37 b Fm(is)32 b(found)h(in)f(the)h(direction)f(of)g(the) -637 3180 y(normal)22 b(to)i(the)f Fk(Reg)p 1318 3180 -V 39 w(Cl)p 1453 3180 V 40 w(Plane)p 1728 3180 V 40 w(Curv)m(e)29 +Fm(])p 0 1985 1779 4 v 1874 2018 a Fk(Log)p 2122 1985 +V 83 2158 a Fm([)p Fh(LDF)g(2003.07.16.)p Fm(])71 b(Added)39 +b(this)f(section)g(and)g(its)g(subsections,)i(including)e(the)g +(declarations)e(and)i(de\014nitions)g(of)0 2258 y Fi(se)l(gment)12 +b Fm(\()i(\),)28 b Fi(half)23 b Fm(\()14 b(\),)28 b(and)g +Fi(quarter)13 b Fm(\()h(\).)37 b(They)28 b(w)n(ere)e(formerly)h(mem)n +(b)r(ers)g(of)h Fk(Circle)t Fm(.)p 0 2350 3900 4 v 0 +2582 a Fk(967.)94 b(Segmen)m(t.)h Fm([)p Fh(LDF)25 b(2002.11.10.)p +Fm(])70 b Fi(se)l(gment)11 b Fm(\()j(\))37 b(returns)f(a)h(subpath)f +(of)h(the)g Fk(Reg)p 2947 2582 29 5 v 39 w(Cl)p 3082 +2582 V 40 w(Plane)p 3357 2582 V 40 w(Curv)m(e)42 b Fm(repre-)0 +2682 y(sen)n(ting)27 b(a)g(segmen)n(t)g(of)h Fn(\003)o +Fi(this)12 b Fm(.)0 2831 y Fk(in)m(t)32 b Fi(factor)281 +b Fm(Determines)31 b(ho)n(w)f(large)f(a)h(segmen)n(t)g(of)h(the)g +Fk(Reg)p 2268 2831 V 39 w(Cl)p 2403 2831 V 40 w(Plane)p +2678 2831 V 40 w(Curv)m(e)36 b Fm(is)30 b(returned.)46 +b Fi(factor)f Fm(m)n(ust)637 2931 y(b)r(e)28 b Fe(>)23 +b Fm(1)k(and)g(less)g(than)h(or)f(equal)g(to)g(the)h(n)n(um)n(b)r(er)g +(of)f(p)r(oin)n(ts)h(on)f(the)h Fk(Reg)p 3053 2931 V +39 w(Cl)p 3188 2931 V 40 w(Plane)p 3463 2931 V 40 w(Curv)m(e)6 +b Fm(.)0 3080 y Fk(real)32 b Fi(angle)263 b Fm(Optional,)33 +b(with)f(0)g(as)g(the)g(default.)52 b(If)p Fi(angle)43 +b Fm(is)33 b Fn(6)p Fm(=)d(0,)j(a)f Fk(P)m(oin)m(t)37 +b Fm(is)32 b(found)h(in)f(the)h(direction)f(of)g(the)637 +3180 y(normal)22 b(to)i(the)f Fk(Reg)p 1318 3180 V 39 +w(Cl)p 1453 3180 V 40 w(Plane)p 1728 3180 V 40 w(Curv)m(e)29 b Fm(from)23 b(the)h(cen)n(ter)e(of)i(the)f Fk(Reg)p 3015 3180 V 40 w(Cl)p 3151 3180 V 39 w(Plane)p 3425 3180 -V 40 w(Curv)m(e)6 b Fm(,)24 b(and)637 3280 y(the)k(segmen)n(t)f(is)h +V 40 w(Curv)m(e)6 b Fm(,)24 b(and)637 3279 y(the)k(segmen)n(t)f(is)h (rotated)e(around)h(the)h(cen)n(ter)f(and)g(this)h Fk(P)m(oin)m(t)5 b Fm(.)0 3429 y Fk(b)s(o)s(ol)31 b Fi(close)l(d)213 b Fm(If)19 b Fi(true)10 b Fm(,)21 b(the)e Fk(P)m(ath)25 b Fm(is)19 b(made)f(a)h(\\)p Fk(cycle)p Fm(")f(and)h(the)g(ends)g(of)f (the)i(segmen)n(t)e(are)g(joined)h(b)n(y)f(concatenating)637 -3529 y(the)32 b(curv)n(ed)e Fk(P)m(ath)37 b Fm(with)32 +3528 y(the)32 b(curv)n(ed)e Fk(P)m(ath)37 b Fm(with)32 b(the)f(straigh)n(t)f(line)h(segmen)n(t)g(from)f(its)i(last)f(to)g(its) g(\014rst)g Fk(P)m(oin)m(t)36 b Fm(using)31 b(the)637 -3629 y(connector)26 b Ff("&")t Fm(.)83 3778 y([)p Fh(LDF)f(2003.07.27.) +3628 y(connector)26 b Ff("&")t Fm(.)83 3777 y([)p Fh(LDF)f(2003.07.27.) p Fm(])73 b(TO)39 b(DO:)h(Mak)n(e)f(argumen)n(ts)f Fk(const)5 b Fm(,)43 b(if)d(p)r(ossible.)73 b Fi(angle)51 b Fm(can't)39 b(b)r(e,)k(though.)73 b(If)40 b Fi(factor)57 b Fn(\021)0 -3878 y Fi(numb)l(er)p 272 3878 26 4 v 30 w(of)p 369 3878 +3877 y Fi(numb)l(er)p 272 3877 26 4 v 30 w(of)p 369 3877 V 31 w(p)l(oints)12 b Fm(,)27 b(return)g Fn(\003)p Fi(this)11 b Fm(,)28 b(cast)f(to)h(a)f Fk(P)m(ath)6 b Fm(,)28 b(with)g(w)n -(arning.)p 0 3977 1643 4 v 1738 4010 a Fk(Begin)j(Log)p -2257 3977 V 83 4150 a Fm([)p Fh(LDF)25 b(2002.11.12.)p -Fm(])71 b(Added)38 b(\\)p Ff(\\relax)r Fm(")f(after)g(the)h(argumen)n -(ts)e(to)h(\\)p Ff(\\ARG)r Fm(")g(in)h(the)g(T)2900 4165 -y(E)2946 4150 y(X)g(co)r(de)f(ab)r(o)n(v)n(e)f(in)i(order)e(to)0 -4250 y(suppress)27 b(a)g(space)f(at)h(the)h(b)r(eginning)g(of)f(the)h +(arning.)p 0 3976 1779 4 v 1874 4008 a Fk(Log)p 2122 +3976 V 83 4149 a Fm([)p Fh(LDF)d(2002.11.12.)p Fm(])71 +b(Added)38 b(\\)p Ff(\\relax)r Fm(")f(after)g(the)h(argumen)n(ts)e(to)h +(\\)p Ff(\\ARG)r Fm(")g(in)h(the)g(T)2900 4164 y(E)2946 +4149 y(X)g(co)r(de)f(ab)r(o)n(v)n(e)f(in)i(order)e(to)0 +4249 y(suppress)27 b(a)g(space)f(at)h(the)h(b)r(eginning)g(of)f(the)h (\014rst)f(line)h(of)f(the)h(follo)n(wing)e(inden)n(ted)i(paragraph.)34 -b(I)28 b(couldn't)f(\014gure)g(out)0 4350 y(a)g(w)n(a)n(y)g(of)g +b(I)28 b(couldn't)f(\014gure)g(out)0 4348 y(a)g(w)n(a)n(y)g(of)g (suppressing)f(the)i(space)f(within)i(the)f(de\014nition)g(of)f -Ff(\\ARG)s Fm(.)83 4449 y([)p Fh(LDF)e(2003.05.20.)p +Ff(\\ARG)s Fm(.)83 4448 y([)p Fh(LDF)e(2003.05.20.)p Fm(])61 b(Changed)27 b(the)h(w)n(a)n(y)e(the)i(last)g(connector)e(is)i (set)f(when)h Fi(close)l(d)37 b Fn(\021)23 b Fi(true)9 -b Fm(.)83 4549 y([)p Fh(LDF)25 b(2003.07.27.)p Fm(])61 -b(Made)27 b Fk(const)5 b Fm(.)83 4648 y([)p Fh(LDF)25 +b Fm(.)83 4547 y([)p Fh(LDF)25 b(2003.07.27.)p Fm(])61 +b(Made)27 b Fk(const)5 b Fm(.)83 4647 y([)p Fh(LDF)25 b(2003.08.20.)p Fm(])73 b(BUG)39 b(FIX:)h(Added)g Fk(unsigned)j(short)h -Fi(subp)l(ath)p 2405 4648 26 4 v 31 w(size)11 b Fm(.)71 +Fi(subp)l(ath)p 2405 4647 26 4 v 31 w(size)11 b Fm(.)71 b(Changed)39 b(the)g(w)n(a)n(y)f(the)i(subpath)f(is)0 -4748 y(created,)33 b(when)f Fi(close)l(d)47 b Fm(is)32 +4747 y(created,)33 b(when)f Fi(close)l(d)47 b Fm(is)32 b Fi(true)10 b Fm(.)51 b(No)n(w)32 b(concatenating)f(the)i(curv)n(ed)f (subpath)g(with)h(the)g(straigh)n(t)e(line)i(segmen)n(t)e(from)0 -4848 y(the)d(last)f(to)h(the)g(\014rst)f Fk(P)m(oin)m(ts)33 +4846 y(the)d(last)f(to)h(the)g(\014rst)f Fk(P)m(oin)m(ts)33 b Fm(of)27 b(the)h(subpath)g(using)f Ff("&")s Fm(.)p -0 4940 1678 4 v 1773 4972 a Fk(End)32 b(Log)p 2222 4940 -V 0 5097 a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 5097 -29 5 v 39 w(Cl)p 648 5097 V 40 w(Plane)p 923 5097 V 40 -w(Curv)m(e)33 b Fm(functions)j Fl(940)14 b Fn(i)24 b -Fm(+)p Fn(\021)83 5196 y Fk(P)m(ath)34 b Fi(se)l(gment)11 +0 4938 3900 4 v 0 5095 a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p +513 5095 29 5 v 39 w(Cl)p 648 5095 V 40 w(Plane)p 923 +5095 V 40 w(Curv)m(e)33 b Fm(functions)j Fl(943)14 b +Fn(i)24 b Fm(+)p Fn(\021)83 5195 y Fk(P)m(ath)34 b Fi(se)l(gment)11 b Fm(\()p Fk(unsigned)32 b(in)m(t)g Fi(factor)15 b Fe(;)f Fk(real)32 b Fi(angle)i Fm(=)23 b(0)o Fe(;)14 b Fk(b)s(o)s(ol)31 b Fi(close)l(d)37 b Fm(=)23 b Fi(true)9 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 275 275 -TeXDict begin 275 274 bop 0 83 a Fn(x)p Fm(965)140 b -Fl(3DLDFPR)n(G)2586 b(SEGMENT)141 b Fm(275)0 263 y Fk(965.)0 -388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 388 29 -5 v 39 w(Cl)p 606 388 V 40 w(Plane)p 881 388 V 40 w(Curv)m(e)33 -b Fm(functions)j Fl(946)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 278 278 +TeXDict begin 278 277 bop 0 83 a Fm(278)140 b Fl(SEGMENT)2586 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(968)0 263 y Fk(968.)0 388 +y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 388 29 5 v +39 w(Cl)p 606 388 V 40 w(Plane)p 881 388 V 40 w(Curv)m(e)33 +b Fm(functions)j Fl(949)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(P)m(ath)34 b(Reg)p 483 487 V 39 w(Cl)p 618 487 V 39 w(Plane)p 892 487 V 41 w(Curv)m(e)13 b Fm(::)8 b Fi(se)l(gment)k Fm(\()p Fk(unsigned)32 b(in)m(t)g Fi(factor)15 @@ -25062,7 +25049,7 @@ Fm(\()p Fi(c)l(enter)g Fm(\);)249 3476 y Fe(p:)p Fi(r)l(otate)d Fm(\()p Fi(c)l(enter)j Fe(;)h Fi(normal)g Fe(;)g Fi(angle)d Fm(\);)166 3576 y Fn(g)166 3675 y Fk(return)33 b Fe(p)p -Fm(;)83 3775 y Fn(g)0 3974 y Fk(966.)94 b(Half.)h Fi(half)23 +Fm(;)83 3775 y Fn(g)0 3974 y Fk(969.)94 b(Half.)h Fi(half)23 b Fm(\()15 b(\))21 b(creates)f(a)h(curv)n(e)f(using)h(half)h(of)f(the)g (p)r(oin)n(ts)h(in)f Fi(p)l(oints)33 b Fm(starting)20 b(from)h(p)r(oin)n(t)g(0.)35 b(If)22 b(the)f(argumen)n(t)0 @@ -25077,13 +25064,13 @@ (using)f Fi(\014l)t(l)14 b Fm(\()g(\))28 b(or)e Fi(\014l)t(ldr)l(aw)15 b Fm(\()f(\).)0 4398 y Fn(h)g Fm(Declare)27 b Fk(Reg)p 513 4398 V 39 w(Cl)p 648 4398 V 40 w(Plane)p 923 4398 -V 40 w(Curv)m(e)33 b Fm(functions)j Fl(940)14 b Fn(i)24 +V 40 w(Curv)m(e)33 b Fm(functions)j Fl(943)14 b Fn(i)24 b Fm(+)p Fn(\021)83 4497 y Fk(inline)31 b(P)m(ath)j Fi(half)23 b Fm(\()p Fk(real)33 b Fi(angle)h Fm(=)23 b(0)o Fe(;)14 b Fk(b)s(o)s(ol)31 b Fi(close)l(d)37 b Fm(=)22 b Fi(true)10 b Fm(\))28 b Fk(const)83 4597 y Fn(f)166 4696 y Fk(return)33 b Fi(se)l(gment)12 b Fm(\(2)o Fe(;)i Fi(angle)e Fe(;)i -Fi(close)l(d)f Fm(\);)83 4796 y Fn(g)0 4995 y Fk(967.)94 +Fi(close)l(d)f Fm(\);)83 4796 y Fn(g)0 4995 y Fk(970.)94 b(Quarter.)i Fi(quarter)13 b Fm(\()h(\))30 b(creates)f(a)g(curv)n(e)f (using)h(a)h(quarter)e(of)h(the)h(p)r(oin)n(ts)g(in)g Fi(p)l(oints)41 b Fm(starting)28 b(from)i(p)r(oin)n(t)f(0.)0 @@ -25098,229 +25085,234 @@ y(is)i(closed)g(and)h(can)f(b)r(e)h(\014lled)g(using)f Fi(\014l)t(l)13 b Fm(\()i(\))27 b(or)g Fi(\014l)t(ldr)l(aw)15 b Fm(\()f(\).)p eop end -%%Page: 276 276 -TeXDict begin 276 275 bop 0 83 a Fm(276)140 b Fl(QUAR)-6 -b(TER)2587 b(3DLDFPR)n(G)142 b Fn(x)p Fm(967)0 263 y -Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 263 29 5 v 39 +%%Page: 279 279 +TeXDict begin 279 278 bop 0 83 a Fn(x)p Fm(970)140 b +Fl(3DLDFPR)n(G)2588 b(QUAR)-6 b(TER)140 b Fm(279)0 263 +y Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 263 29 5 v 39 w(Cl)p 648 263 V 40 w(Plane)p 923 263 V 40 w(Curv)m(e)33 -b Fm(functions)j Fl(940)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +b Fm(functions)j Fl(943)14 b Fn(i)24 b Fm(+)p Fn(\021)83 363 y Fk(inline)31 b(P)m(ath)j Fi(quarter)13 b Fm(\()p Fk(real)32 b Fi(angle)j Fm(=)22 b(0)p Fe(;)14 b Fk(b)s(o)s(ol)30 b Fi(close)l(d)38 b Fm(=)22 b Fi(true)10 b Fm(\))28 b Fk(const)83 462 y Fn(f)166 562 y Fk(return)33 b Fi(se)l(gment)12 b Fm(\(4)o Fe(;)i Fi(angle)e Fe(;)i Fi(close)l(d)f Fm(\);)83 -662 y Fn(g)0 861 y Fk(968.)94 b(Putting)32 b(Reg)p 787 +662 y Fn(g)0 861 y Fk(971.)94 b(Putting)32 b(Reg)p 787 861 29 4 v 33 w(Cl)p 916 861 V 34 w(Plane)p 1185 861 V 35 w(Curv)m(e)g(together.)83 960 y Fm(This)c(is)f(what's)g(compiled.) 83 1085 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 1185 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n (ti\014er)35 b Fl(10)15 b Fn(i)83 1284 y(h)f Fm(De\014ne)28 b Fk(class)k(Reg)p 777 1284 29 5 v 40 w(Cl)p 913 1284 -V 39 w(Plane)p 1187 1284 V 40 w(Curv)m(e)41 b Fl(938)15 +V 39 w(Plane)p 1187 1284 V 40 w(Curv)m(e)41 b Fl(941)15 b Fn(i)83 1384 y(h)f Fm(De\014ne)28 b Fk(Reg)p 554 1384 V 39 w(Cl)p 689 1384 V 40 w(Plane)p 964 1384 V 40 w(Curv)m(e)33 -b Fm(functions)j Fl(946)15 b Fn(i)p eop end -%%Page: 277 277 -TeXDict begin 277 276 bop 0 83 a Fn(x)p Fm(969)140 b -Fl(3DLDFPR)n(G)1039 b(PUTTING)24 b Fk(REG)p 2304 83 29 -4 v 34 w(CL)p 2464 83 V 35 w(PLANE)p 2831 83 V 35 w(CUR)-11 -b(VE)23 b Fl(TOGETHER)141 b Fm(277)0 263 y Fk(969.)94 -b Fm(This)28 b(is)f(what's)h(written)f(to)h Fj(curves.h)p -Fm(.)0 388 y Fn(h)14 b Ff(curves.h)80 b Fl(969)15 b Fn(i)23 -b(\021)83 487 y(h)14 b Fm(De\014ne)28 b Fk(class)k(Reg)p -777 487 29 5 v 40 w(Cl)p 913 487 V 39 w(Plane)p 1187 -487 V 40 w(Curv)m(e)41 b Fl(938)15 b Fn(i)0 686 y Fk(970.)94 -b(P)m(olygon)h(\()p Fj(polygons.web)p Fk(\).)p 0 790 -1643 4 v 1738 823 a(Begin)31 b(Log)p 2257 790 V 83 964 -a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])59 b(Remo)n(v)n(ed)25 -b(the)h(transformation)e(sections)h(from)h Fk(Reg)p 2470 -964 29 5 v 39 w(P)m(olygon)t Fm(,)g(and)g(made)g(them)g(mem)n(b)r(ers)f -(of)0 1063 y Fk(P)m(olygon)5 b Fm(.)37 b(Also,)27 b(remo)n(v)n(ed)f -(the)i Fk(Rectangle)k Fm(v)n(ersions)25 b(in)j Fj(rectangs.web)p -Fm(.)83 1163 y([)p Fh(LDF)d(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 -b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB) -g(\014les)g(for)f(the)h(distribution)g(of)0 1263 y(3DLDF)28 -b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t) -f(v)n(ersions.)p 0 1354 1678 4 v 1773 1387 a Fk(End)32 -b(Log)p 2222 1354 V 83 1512 a(format)65 b Fi(Polygon)81 -b(Path)0 1636 y Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n -(ti\014er)35 b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)0 -1835 y Fk(971.)94 b(Include)32 b(\014les.)0 1960 y Fn(h)14 -b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p -Fn(\021)0 2060 y Fm(#)p Fk(include)32 b Ff("loader.h")0 -2159 y Fm(#)p Fk(include)g Ff("pspglb.h")0 2259 y Fm(#)p -Fk(include)g Ff("io.h")0 2358 y Fm(#)p Fk(include)g Ff("colors.h")0 -2458 y Fm(#)p Fk(include)g Ff("transfor.h")0 2558 y Fm(#)p -Fk(include)g Ff("shapes.h")0 2657 y Fm(#)p Fk(include)g -Ff("pictures.h")0 2757 y Fm(#)p Fk(include)g Ff("points.h")0 -2857 y Fm(#)p Fk(include)g Ff("lines.h")0 2956 y Fm(#)p -Fk(include)g Ff("planes.h")0 3056 y Fm(#)p Fk(include)g -Ff("paths.h")0 3155 y Fm(#)p Fk(include)g Ff("curves.h")0 -3355 y Fk(972.)94 b(P)m(olygon)40 b(class)g(de\014nition.)94 +b Fm(functions)j Fl(949)15 b Fn(i)p eop end +%%Page: 280 280 +TeXDict begin 280 279 bop 0 83 a Fm(280)140 b Fl(PUTTING)24 +b Fk(REG)p 842 83 29 4 v 33 w(CL)p 1001 83 V 35 w(PLANE)p +1368 83 V 35 w(CUR)-11 b(VE)24 b Fl(TOGETHER)1039 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(972)0 263 y Fk(972.)94 b Fm(This)28 b(is)f(what's)h +(written)f(to)h Fj(curves.h)p Fm(.)0 387 y Fn(h)14 b +Ff(curves.h)80 b Fl(972)15 b Fn(i)23 b(\021)83 487 y(h)14 +b Fm(De\014ne)28 b Fk(class)k(Reg)p 777 487 29 5 v 40 +w(Cl)p 913 487 V 39 w(Plane)p 1187 487 V 40 w(Curv)m(e)41 +b Fl(941)15 b Fn(i)0 686 y Fk(973.)94 b(P)m(olygon)h(\()p +Fj(polygons.web)p Fk(\).)p 0 789 1779 4 v 1874 822 a(Log)p +2122 789 V 83 962 a Fm([)p Fh(LDF)25 b(2003.07.18.)p +Fm(])59 b(Remo)n(v)n(ed)25 b(the)h(transformation)e(sections)h(from)h +Fk(Reg)p 2470 962 29 5 v 39 w(P)m(olygon)t Fm(,)g(and)g(made)g(them)g +(mem)n(b)r(ers)f(of)0 1062 y Fk(P)m(olygon)5 b Fm(.)37 +b(Also,)27 b(remo)n(v)n(ed)f(the)i Fk(Rectangle)k Fm(v)n(ersions)25 +b(in)j Fj(rectangs.web)p Fm(.)83 1162 y([)p Fh(LDF)d(2003.11.12.)p +Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n +(ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g +(of)0 1261 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n +(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)83 1361 y([)p Fh(LDF)e +(2003.12.10.)p Fm(])64 b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden) +n(ti\014ers)h(bac)n(k)f(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h +(3DLDF)i(1.1.4.)43 b(I'v)n(e)0 1460 y(already)24 b(put)j(some)e(of)h +(them)h(bac)n(k)e(in,)i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.) +37 b(Ho)n(w)n(ev)n(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w) +i(in)0 1560 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 +b(.)p 0 1652 3900 4 v 83 1809 a Fk(format)65 b Fi(Polygon)81 +b(Path)0 1933 y Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n +(ti\014er)35 b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2033 y Fk(static)33 b(string)g Fi(r)l(cs)p 726 2033 26 +4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p Ff(polygons.w)o(eb)o(,v)-6 +b Fj( )p Ff(1.2)p Fj( )p Ff(2003/12/10)o Fj( )p Ff(1)o(6:2)f(4:07)p +Fj( )p Ff(lfinsto1)p Fj( )p Ff(Exp)o Fj( )p Ff($)o(")n +Fm(;)0 2232 y Fk(974.)94 b(Include)32 b(\014les.)0 2356 +y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 +b Fm(+)p Fn(\021)0 2456 y Fm(#)p Fk(include)32 b Ff("loader.h")0 +2556 y Fm(#)p Fk(include)g Ff("pspglb.h")0 2655 y Fm(#)p +Fk(include)g Ff("io.h")0 2755 y Fm(#)p Fk(include)g Ff("colors.h")0 +2854 y Fm(#)p Fk(include)g Ff("transfor.h")0 2954 y Fm(#)p +Fk(include)g Ff("shapes.h")0 3054 y Fm(#)p Fk(include)g +Ff("pictures.h")0 3153 y Fm(#)p Fk(include)g Ff("points.h")0 +3253 y Fm(#)p Fk(include)g Ff("lines.h")0 3353 y Fm(#)p +Fk(include)g Ff("planes.h")0 3452 y Fm(#)p Fk(include)g +Ff("paths.h")0 3552 y Fm(#)p Fk(include)g Ff("curves.h")0 +3751 y Fk(975.)94 b(P)m(olygon)40 b(class)g(de\014nition.)94 b Fm(LDF)35 b(Undated.)59 b Fk(P)m(olygon)39 b Fm(is)c(deriv)n(ed)f (from)h Fk(P)m(ath)5 b Fm(.)59 b(This)35 b(mak)n(es)f(sense,)0 -3454 y(b)r(ecause)27 b(a)g Fk(P)m(olygon)32 b Fm(is)27 +3851 y(b)r(ecause)27 b(a)g Fk(P)m(olygon)32 b Fm(is)27 b(really)f(just)i(a)f(kind)h(of)f Fk(P)m(ath)6 b Fm(.)37 b(This)27 b(w)n(a)n(y)-7 b(,)27 b(w)n(e)g(don't)g(ha)n(v)n(e)f(to)i -(de\014ne)f(the)h(dra)n(wing)e(and)h(\014lling)0 3554 -y(functions,)h(or)f(the)h(transformations.)83 3654 y([)p +(de\014ne)f(the)h(dra)n(wing)e(and)h(\014lling)0 3950 +y(functions,)h(or)f(the)h(transformations.)83 4050 y([)p Fh(LDF)d(2003.06.06.)p Fm(])68 b Fk(P)m(olygon)39 b Fm(is)34 b(mean)n(t)g(to)g(b)r(e)g(used)h(primarily)e(as)g(a)h(base)g(class)f -(for)h(more)f(sp)r(ecialized)h(t)n(yp)r(es)g(of)0 3753 +(for)h(more)f(sp)r(ecialized)h(t)n(yp)r(es)g(of)0 4150 y(p)r(olygons.)k(Curren)n(tly)-7 b(,)28 b Fk(Reg)p 945 -3753 29 5 v 39 w(P)m(olygon)34 b Fm(and)28 b Fk(Rectangle)33 +4150 29 5 v 39 w(P)m(olygon)34 b Fm(and)28 b Fk(Rectangle)33 b Fm(are)27 b(de\014ned.)40 b(I'v)n(e)28 b(added)g Fk(P)m(olygon)34 -b Fm(so)27 b(that)i(I)g(can)f(de\014ne)0 3853 y(in)n(tersection)f +b Fm(so)27 b(that)i(I)g(can)f(de\014ne)0 4249 y(in)n(tersection)f (functions)h(that)g(will)f(w)n(ork)g(for)g(b)r(oth)h -Fk(Reg)p 1835 3853 V 39 w(P)m(olygon)k Fm(and)c Fk(Rectangle)t -Fm(.)p 0 3952 1643 4 v 1738 3985 a Fk(Begin)j(Log)p 2257 -3952 V 83 4125 a Fm([)p Fh(LDF)25 b(2003.06.06.)p Fm(])61 -b(Added)28 b Fk(class)33 b(P)m(olygon)t Fm(.)p 0 4217 -1678 4 v 1773 4250 a Fk(End)f(Log)p 2222 4217 V 0 4374 -a Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(olygon)40 -b Fl(972)15 b Fn(i)23 b(\021)83 4474 y Fk(class)32 b(P)m(olygon)g -Fm(:)37 b Fk(public)32 b(P)m(ath)i Fn(f)83 4574 y Fk(protected)5 +Fk(Reg)p 1835 4249 V 39 w(P)m(olygon)k Fm(and)c Fk(Rectangle)t +Fm(.)p 0 4347 1779 4 v 1874 4380 a Fk(Log)p 2122 4347 +V 83 4521 a Fm([)p Fh(LDF)d(2003.06.06.)p Fm(])61 b(Added)28 +b Fk(class)33 b(P)m(olygon)t Fm(.)p 0 4613 3900 4 v 0 +4769 a Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(olygon)40 +b Fl(975)15 b Fn(i)23 b(\021)83 4869 y Fk(class)32 b(P)m(olygon)g +Fm(:)37 b Fk(public)32 b(P)m(ath)i Fn(f)83 4969 y Fk(protected)5 b Fm(:)42 b Fk(P)m(oin)m(t)33 b Fi(c)l(enter)12 b Fm(;)83 -4698 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 -b Fk(P)m(olygon)32 b Fm(functions)k Fl(975)14 b Fn(i)83 -4798 y(g)p Fm(;)0 4906 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f -(sections)i(1052)f(and)h(1053.)0 5105 y Fk(973.)94 b(Returning)31 -b(elemen)m(ts)g(and)h(information.)0 5304 y(974.)94 b(Get)32 -b(cen)m(ter.)p eop end -%%Page: 278 278 -TeXDict begin 278 277 bop 0 83 a Fm(278)140 b Fl(GET)24 -b(CENTER)2464 b(3DLDFPR)n(G)142 b Fn(x)p Fm(974)p 0 205 -1643 4 v 1738 238 a Fk(Begin)31 b(Log)p 2257 205 V 83 -378 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])59 b(Mo)n(v)n(ed)24 -b(these)h(functions)h(from)f Fk(Reg)p 1930 378 29 5 v +5093 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 +b Fk(P)m(olygon)32 b Fm(functions)k Fl(978)14 b Fn(i)83 +5193 y(g)p Fm(;)0 5300 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f +(sections)i(1055)f(and)h(1056.)p eop end +%%Page: 281 281 +TeXDict begin 281 280 bop 0 83 a Fn(x)p Fm(976)140 b +Fl(3DLDFPR)n(G)1352 b(RETURNING)24 b(ELEMENTS)f(AND)g(INF)n(ORMA)-6 +b(TION)141 b Fm(281)0 263 y Fk(976.)94 b(Returning)31 +b(elemen)m(ts)g(and)h(information.)0 462 y(977.)94 b(Get)32 +b(cen)m(ter.)p 0 538 1779 4 v 1874 571 a(Log)p 2122 538 +V 83 711 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])59 b(Mo)n(v)n(ed)24 +b(these)h(functions)h(from)f Fk(Reg)p 1930 711 29 5 v 39 w(P)m(olygon)30 b Fm(to)25 b Fk(P)m(olygon)t Fm(.)37 -b(Also)25 b(remo)n(v)n(ed)e(the)j Fk(Rectangle)0 478 +b(Also)25 b(remo)n(v)n(ed)e(the)j Fk(Rectangle)0 811 y Fm(v)n(ersions,)g(since)h Fk(Rectangle)32 b Fm(inherits)c(the)g -Fk(P)m(olygon)k Fm(v)n(ersions.)p 0 570 1678 4 v 1773 -602 a Fk(End)g(Log)p 2222 570 V 0 802 a(975.)94 b(non-const)32 -b(v)m(ersion.)p 0 878 1643 4 v 1738 910 a(Begin)f(Log)p -2257 878 V 83 1051 a Fm([)p Fh(LDF)25 b(2002.04.24.)p -Fm(])61 b(Added)28 b(this)g(function.)83 1150 y([)p Fh(LDF)d -(2003.05.09.)p Fm(])61 b(Changed)27 b(return)g(v)-5 b(alue)28 -b(from)f Fk(P)m(oin)m(t)33 b Fm(&)27 b(to)h Fk(const)k(P)m(oin)m(t)h -Fm(&)o(.)p 0 1242 1678 4 v 1773 1275 a Fk(End)f(Log)p -2222 1242 V 0 1400 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 -b Fm(functions)k Fl(975)14 b Fn(i)24 b(\021)83 1499 y +Fk(P)m(olygon)k Fm(v)n(ersions.)p 0 903 3900 4 v 0 1135 +a Fk(978.)94 b(non-const)32 b(v)m(ersion.)p 0 1211 1779 +4 v 1874 1243 a(Log)p 2122 1211 V 83 1384 a Fm([)p Fh(LDF)25 +b(2002.04.24.)p Fm(])61 b(Added)28 b(this)g(function.)83 +1483 y([)p Fh(LDF)d(2003.05.09.)p Fm(])61 b(Changed)27 +b(return)g(v)-5 b(alue)28 b(from)f Fk(P)m(oin)m(t)33 +b Fm(&)27 b(to)h Fk(const)k(P)m(oin)m(t)h Fm(&)o(.)p +0 1575 3900 4 v 0 1733 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 +b Fm(functions)k Fl(978)14 b Fn(i)24 b(\021)83 1832 y Fk(virtual)33 b(const)f(P)m(oin)m(t)h Fm(&)p Fi(get)p -1076 1499 26 4 v 30 w(c)l(enter)13 b Fm(\()h(\);)0 1607 -y Fl(See)24 b(also)g(sections)g(977,)g(981,)g(990,)g(992,)g(998,)g -(1000,)h(1003,)f(1005,)g(1007,)g(1009,)h(1012,)f(1014,)g(1017,)g(and)h -(1019.)0 1715 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i(972.)0 -1914 y Fk(976.)0 2039 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k -Fm(functions)k Fl(976)15 b Fn(i)23 b(\021)83 2138 y Fk(const)32 +1076 1832 26 4 v 30 w(c)l(enter)13 b Fm(\()h(\);)0 1940 +y Fl(See)24 b(also)g(sections)g(980,)g(984,)g(993,)g(995,)g(1001,)h +(1003,)f(1006,)g(1008,)g(1010,)h(1012,)f(1015,)g(1017,)g(1020,)h(and)f +(1022.)0 2048 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(975.)0 +2247 y Fk(979.)0 2372 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k +Fm(functions)k Fl(979)15 b Fn(i)23 b(\021)83 2471 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fk(P)m(olygon)13 b Fm(::)8 b Fi(get)p -1167 2138 V 31 w(c)l(enter)k Fm(\()i(\))83 2238 y Fn(f)166 -2338 y Fk(if)43 b Fm(\()p Fi(p)l(oints)12 b Fe(:)p Fi(size)f +1167 2471 V 31 w(c)l(enter)k Fm(\()i(\))83 2571 y Fn(f)166 +2671 y Fk(if)43 b Fm(\()p Fi(p)l(oints)12 b Fe(:)p Fi(size)f Fm(\()j(\))27 b Fn(\021)g Fm(0)o(\))167 b Fe(=)p Fn(\003)42 b Fm(LDF)31 b(2002.09.27.)40 b(Added)30 b(this)h(error)c(handling)j(co) -r(de.)43 b(If)31 b(the)f Fk(P)m(olygon)k Fm(is)332 2437 +r(de.)43 b(If)31 b(the)f Fk(P)m(olygon)k Fm(is)332 2770 y(empt)n(y)-7 b(,)28 b(don't)g(return)f Fi(c)l(enter)13 -b Fm(.)h Fn(\003)p Fe(=)166 2537 y Fn(f)249 2637 y Fi(c)l(err)53 +b Fm(.)h Fn(\003)p Fe(=)166 2870 y Fn(f)249 2970 y Fi(c)l(err)53 b Fn(\034)40 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Po)o(lyg)o(on)-7 b(::get_center\(\):\\n)o(")38 b Fn(\034)h Ff("Polygon)p -Fj( )p Ff(doesn't)p Fj( )o Ff(con)-7 b(\\)415 2736 y(tain)p +Fj( )p Ff(doesn't)p Fj( )o Ff(con)-7 b(\\)415 3069 y(tain)p Fj( )p Ff(any)p Fj( )p Ff(Points,)o Fj( )p Ff(")36 b Fn(\034)i Ff("so)p Fj( )p Ff(it)p Fj( )p Ff(presumabl)o(y)p Fj( )p Ff(d)o(o)-6 b(esn't)p Fj( )p Ff(have)p Fj( )p Ff(a)p Fj( )p Ff(cen)o(te)o(r.)f(\\n")42 b Fn(\034)415 -2836 y Ff("Returning)p Fj( )p Ff(INVAL)o(ID_)o(P)-6 b(OINT.\\n\\n")23 -b Fn(\034)g Fi(\015ush)11 b Fm(;)249 2935 y Fk(return)33 -b(const)p 769 2935 29 5 v 40 w(cast)6 b Fn(h)p Fk(P)m(oin)m(t)33 +3169 y Ff("Returning)p Fj( )p Ff(INVAL)o(ID_)o(P)-6 b(OINT.\\n\\n")23 +b Fn(\034)g Fi(\015ush)11 b Fm(;)249 3268 y Fk(return)33 +b(const)p 769 3268 29 5 v 40 w(cast)6 b Fn(h)p Fk(P)m(oin)m(t)33 b Fm(&)o Fn(i)p Fm(\()p Ff(INVALID_POINT)p Fm(\);)166 -3035 y Fn(g)166 3135 y Fi(c)l(enter)13 b Fe(:)p Fi(apply)p -614 3135 26 4 v 32 w(tr)l(ansform)e Fm(\()j(\);)166 3234 -y Fk(return)33 b Fi(c)l(enter)13 b Fm(;)83 3334 y Fn(g)0 -3442 y Fl(See)25 b(also)f(sections)h(978,)g(982,)f(983,)h(984,)g(985,)f -(986,)h(987,)g(988,)f(989,)h(991,)g(993,)f(994,)h(995,)g(996,)f(999,)h -(1001,)g(1004,)g(1006,)g(1008,)g(1010,)f(1013,)166 3525 -y(1015,)g(1018,)h(and)f(1020.)0 3633 y(This)f(co)r(de)i(is)e(used)h(in) -f(section)i(1052.)0 3832 y Fk(977.)94 b(const)35 b(v)m(ersion.)95 +3368 y Fn(g)166 3468 y Fi(c)l(enter)13 b Fe(:)p Fi(apply)p +614 3468 26 4 v 32 w(tr)l(ansform)e Fm(\()j(\);)166 3567 +y Fk(return)33 b Fi(c)l(enter)13 b Fm(;)83 3667 y Fn(g)0 +3775 y Fl(See)25 b(also)e(sections)i(981,)f(985,)g(986,)h(987,)f(988,)g +(989,)g(990,)g(991,)h(992,)f(994,)g(996,)g(997,)g(998,)h(999,)f(1002,)g +(1004,)h(1007,)f(1009,)h(1011,)f(1013,)h(1016,)166 3858 +y(1018,)f(1021,)h(and)f(1023.)0 3966 y(This)f(co)r(de)i(is)e(used)h(in) +f(section)i(1055.)0 4165 y Fk(980.)94 b(const)35 b(v)m(ersion.)95 b Fm([)p Fh(LDF)26 b(2002.09.27.)p Fm(])63 b(Note)31 b(that)f(this)h(v)n(ersion)e(returns)h(a)g Fk(P)m(oin)m(t)36 -b Fm(whereas)29 b(the)i(non-)p Fk(const)0 3932 y Fm(v)n(ersion)26 +b Fm(whereas)29 b(the)i(non-)p Fk(const)0 4265 y Fm(v)n(ersion)26 b(returns)h(a)h Fk(P)m(oin)m(t)33 b Fm(&)o(.)38 b(That's)27 b(b)r(ecause)h Fe(p)f Fm(is)h(a)f(lo)r(cal)g(v)-5 b(ariable)27 b(in)h(this)g(function)h(and)e(it)h(w)n(ould)g(b)r(e)g(an)f(error)f(to) -0 4031 y(return)h(a)g(reference)g(to)g(it.)38 b([)p Fh(LDF)25 +0 4364 y(return)h(a)g(reference)g(to)g(it.)38 b([)p Fh(LDF)25 b(2002.04.24.)p Fm(])61 b(Added)28 b(this)g(function.)0 -4156 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k -Fl(975)14 b Fn(i)24 b Fm(+)p Fn(\021)83 4255 y Fk(P)m(oin)m(t)33 -b Fi(get)p 449 4255 V 30 w(c)l(enter)13 b Fm(\()h(\))28 +4489 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k +Fl(978)14 b Fn(i)24 b Fm(+)p Fn(\021)83 4588 y Fk(P)m(oin)m(t)33 +b Fi(get)p 449 4588 V 30 w(c)l(enter)13 b Fm(\()h(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 279 279 -TeXDict begin 279 278 bop 0 83 a Fn(x)p Fm(978)140 b -Fl(3DLDFPR)n(G)2262 b Fk(CONST)23 b Fl(VERSION)141 b -Fm(279)0 263 y Fk(978.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(olygon)k Fm(functions)k Fl(976)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 487 y Fk(P)m(oin)m(t)33 b(P)m(olygon)13 -b Fm(::)8 b Fi(get)p 852 487 26 4 v 31 w(c)l(enter)k -Fm(\()j(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(if)43 -b Fm(\()p Fi(p)l(oints)12 b Fe(:)p Fi(size)f Fm(\()j(\))27 -b Fn(\021)g Fm(0)o(\))167 b Fe(=)p Fn(\003)42 b Fm(LDF)31 -b(2002.09.27.)40 b(Added)30 b(this)h(error)c(handling)j(co)r(de.)43 -b(If)31 b(the)f Fk(P)m(olygon)k Fm(is)332 786 y(empt)n(y)-7 -b(,)28 b(don't)g(return)f Fi(c)l(enter)13 b Fm(.)h Fn(\003)p -Fe(=)166 886 y Fn(f)249 985 y Fi(c)l(err)53 b Fn(\034)40 -b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Po)o(lyg)o(on)-7 -b(::get_center\(\):\\n)o(")38 b Fn(\034)h Ff("Polygon)p -Fj( )p Ff(doesn't)p Fj( )o Ff(con)-7 b(\\)415 1085 y(tain)p -Fj( )p Ff(any)p Fj( )p Ff(Points,)o Fj( )p Ff(")36 b -Fn(\034)i Ff("so)p Fj( )p Ff(it)p Fj( )p Ff(presumabl)o(y)p -Fj( )p Ff(d)o(o)-6 b(esn't)p Fj( )p Ff(have)p Fj( )p -Ff(a)p Fj( )p Ff(cen)o(te)o(r.)f(\\n")42 b Fn(\034)415 -1185 y Ff("Returning)p Fj( )p Ff(INVAL)o(ID_)o(P)-6 b(OINT.\\n\\n")23 -b Fn(\034)g Fi(\015ush)11 b Fm(;)249 1284 y Fk(return)33 -b(const)p 769 1284 29 5 v 40 w(cast)6 b Fn(h)p Fk(P)m(oin)m(t)33 -b Fm(&)o Fn(i)p Fm(\()p Ff(INVALID_POINT)p Fm(\);)166 -1384 y Fn(g)166 1508 y Fk(P)m(oin)m(t)g Fe(p)p Fm(\()p -Fi(c)l(enter)13 b Fm(\);)166 1633 y Fe(p:)p Fi(apply)p -423 1633 26 4 v 32 w(tr)l(ansform)e Fm(\()j(\);)166 1733 -y Fk(return)33 b Fe(p)p Fm(;)83 1832 y Fn(g)0 2031 y -Fk(979.)94 b(In)m(tersections.)0 2231 y(980.)g(In)m(tersection)36 -b(with)f(a)h(line.)94 b Fm([)p Fh(LDF)25 b(2003.06.13.)p -Fm(])64 b(A)31 b(line)g(can)g(in)n(tersect)f(with)i(a)e -Fk(P)m(olygon)35 b Fm(at)c(t)n(w)n(o)f(p)r(oin)n(ts)0 -2330 y(at)d(most.)0 2530 y Fk(981.)94 b(P)m(oin)m(t)32 -b(v)m(ersion.)p 0 2605 1643 4 v 1738 2638 a(Begin)f(Log)p -2257 2605 V 83 2779 a Fm([)p Fh(LDF)25 b(2003.06.13.)p -Fm(])61 b(Added)28 b(this)g(function.)83 2878 y([)p Fh(LDF)d -(2003.06.17.)p Fm(])61 b(Minor)27 b(c)n(hange.)36 b(No)n(w)27 -b(using)g Fi(get)p 1808 2878 26 4 v 31 w(p)l(oint)12 -b Fm(\(0\))28 b(and)f Fi(c)l(enter)41 b Fm(instead)27 -b(of)h Fi(get)p 3072 2878 V 30 w(p)l(oint)13 b Fm(\(0\))28 -b(and)0 2978 y Fi(get)p 109 2978 V 31 w(last)p 265 2978 -V 30 w(p)l(oint)13 b Fm(\()h(\))28 b(to)f(generate)g -Fi(surfac)l(e)p 1281 2978 V 31 w(ve)l(ctor)13 b Fm(.)p -0 3070 1678 4 v 1773 3102 a Fk(End)32 b(Log)p 2222 3070 -V 0 3227 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 -b Fm(functions)k Fl(975)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -3327 y Fk(b)s(o)s(ol)p 269 3327 29 5 v 38 w(p)s(oin)m(t)p -525 3327 V 40 w(pair)33 b Fi(interse)l(ction)p 1185 3327 -26 4 v 30 w(p)l(oints)12 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)f -Fm(&)p Fi(pt0)16 b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h -Fm(&)p Fi(pt1)16 b Fm(\))28 b Fk(const)t Fm(;)p eop end -%%Page: 280 280 -TeXDict begin 280 279 bop 0 83 a Fm(280)140 b Fk(POINT)24 -b Fl(VERSION)2282 b(3DLDFPR)n(G)142 b Fn(x)p Fm(982)0 -263 y Fk(982.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k -Fm(functions)k Fl(976)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -487 y Fk(b)s(o)s(ol)p 269 487 29 5 v 38 w(p)s(oin)m(t)p -525 487 V 40 w(pair)34 b(P)m(olygon)12 b Fm(::)c Fi(interse)l(ction)p -1588 487 26 4 v 32 w(p)l(oints)j Fm(\()p Fk(const)33 -b(P)m(oin)m(t)h Fm(&)p Fi(pt0)16 b Fe(;)e Fk(const)33 -b(P)m(oin)m(t)g Fm(&)p Fi(pt1)16 b Fm(\))29 b Fk(const)5 -b Fn(f)28 b Fk(b)s(o)s(ol)415 587 y Ff(DEBUG)d Fm(=)e -Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 -b Fn(\003)p Fe(=)249 711 y Fk(if)41 b Fm(\()p Ff(DEBUG)s -Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Entering)p Fj( )p -Ff(Polygon)o(::i)-7 b(ntersection_point)o(s\()o(\))h(.\\n")26 -b Fn(\034)d Fi(\015ush)10 b Fm(;)249 811 y Ff(DEBUG)25 -b Fm(=)e Fi(false)12 b Fm(;)249 936 y Fk(b)s(o)s(ol)p +%%Page: 282 282 +TeXDict begin 282 281 bop 0 83 a Fm(282)140 b Fk(CONST)23 +b Fl(VERSION)2262 b(3DLDFPR)n(G)142 b Fn(x)p Fm(981)0 +263 y Fk(981.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k +Fm(functions)k Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(P)m(oin)m(t)33 b(P)m(olygon)13 b Fm(::)8 b Fi(get)p +852 487 26 4 v 31 w(c)l(enter)k Fm(\()j(\))28 b Fk(const)83 +587 y Fn(f)166 686 y Fk(if)43 b Fm(\()p Fi(p)l(oints)12 +b Fe(:)p Fi(size)f Fm(\()j(\))27 b Fn(\021)g Fm(0)o(\))167 +b Fe(=)p Fn(\003)42 b Fm(LDF)31 b(2002.09.27.)40 b(Added)30 +b(this)h(error)c(handling)j(co)r(de.)43 b(If)31 b(the)f +Fk(P)m(olygon)k Fm(is)332 786 y(empt)n(y)-7 b(,)28 b(don't)g(return)f +Fi(c)l(enter)13 b Fm(.)h Fn(\003)p Fe(=)166 886 y Fn(f)249 +985 y Fi(c)l(err)53 b Fn(\034)40 b Ff("WARNING!)p Fj( )p +Ff(In)p Fj( )p Ff(Po)o(lyg)o(on)-7 b(::get_center\(\):\\n)o(")38 +b Fn(\034)h Ff("Polygon)p Fj( )p Ff(doesn't)p Fj( )o +Ff(con)-7 b(\\)415 1085 y(tain)p Fj( )p Ff(any)p Fj( )p +Ff(Points,)o Fj( )p Ff(")36 b Fn(\034)i Ff("so)p Fj( )p +Ff(it)p Fj( )p Ff(presumabl)o(y)p Fj( )p Ff(d)o(o)-6 +b(esn't)p Fj( )p Ff(have)p Fj( )p Ff(a)p Fj( )p Ff(cen)o(te)o(r.)f +(\\n")42 b Fn(\034)415 1185 y Ff("Returning)p Fj( )p +Ff(INVAL)o(ID_)o(P)-6 b(OINT.\\n\\n")23 b Fn(\034)g Fi(\015ush)11 +b Fm(;)249 1284 y Fk(return)33 b(const)p 769 1284 29 +5 v 40 w(cast)6 b Fn(h)p Fk(P)m(oin)m(t)33 b Fm(&)o Fn(i)p +Fm(\()p Ff(INVALID_POINT)p Fm(\);)166 1384 y Fn(g)166 +1508 y Fk(P)m(oin)m(t)g Fe(p)p Fm(\()p Fi(c)l(enter)13 +b Fm(\);)166 1633 y Fe(p:)p Fi(apply)p 423 1633 26 4 +v 32 w(tr)l(ansform)e Fm(\()j(\);)166 1733 y Fk(return)33 +b Fe(p)p Fm(;)83 1832 y Fn(g)0 2031 y Fk(982.)94 b(In)m(tersections.)0 +2231 y(983.)g(In)m(tersection)36 b(with)f(a)h(line.)94 +b Fm([)p Fh(LDF)25 b(2003.06.13.)p Fm(])64 b(A)31 b(line)g(can)g(in)n +(tersect)f(with)i(a)e Fk(P)m(olygon)35 b Fm(at)c(t)n(w)n(o)f(p)r(oin)n +(ts)0 2330 y(at)d(most.)0 2530 y Fk(984.)94 b(P)m(oin)m(t)32 +b(v)m(ersion.)p 0 2605 1779 4 v 1874 2638 a(Log)p 2122 +2605 V 83 2779 a Fm([)p Fh(LDF)25 b(2003.06.13.)p Fm(])61 +b(Added)28 b(this)g(function.)83 2878 y([)p Fh(LDF)d(2003.06.17.)p +Fm(])61 b(Minor)27 b(c)n(hange.)36 b(No)n(w)27 b(using)g +Fi(get)p 1808 2878 26 4 v 31 w(p)l(oint)12 b Fm(\(0\))28 +b(and)f Fi(c)l(enter)41 b Fm(instead)27 b(of)h Fi(get)p +3072 2878 V 30 w(p)l(oint)13 b Fm(\(0\))28 b(and)0 2978 +y Fi(get)p 109 2978 V 31 w(last)p 265 2978 V 30 w(p)l(oint)13 +b Fm(\()h(\))28 b(to)f(generate)g Fi(surfac)l(e)p 1281 +2978 V 31 w(ve)l(ctor)13 b Fm(.)p 0 3070 3900 4 v 0 3227 +a Fn(h)h Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k +Fl(978)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3327 y Fk(b)s(o)s(ol)p +269 3327 29 5 v 38 w(p)s(oin)m(t)p 525 3327 V 40 w(pair)33 +b Fi(interse)l(ction)p 1185 3327 26 4 v 30 w(p)l(oints)12 +b Fm(\()p Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fi(pt0)16 +b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(pt1)16 +b Fm(\))28 b Fk(const)t Fm(;)p eop end +%%Page: 283 283 +TeXDict begin 283 282 bop 0 83 a Fn(x)p Fm(985)140 b +Fl(3DLDFPR)n(G)2282 b Fk(POINT)24 b Fl(VERSION)141 b +Fm(283)0 263 y Fk(985.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(olygon)k Fm(functions)k Fl(979)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)p 269 487 29 +5 v 38 w(p)s(oin)m(t)p 525 487 V 40 w(pair)34 b(P)m(olygon)12 +b Fm(::)c Fi(interse)l(ction)p 1588 487 26 4 v 32 w(p)l(oints)j +Fm(\()p Fk(const)33 b(P)m(oin)m(t)h Fm(&)p Fi(pt0)16 +b Fe(;)e Fk(const)33 b(P)m(oin)m(t)g Fm(&)p Fi(pt1)16 +b Fm(\))29 b Fk(const)5 b Fn(f)28 b Fk(b)s(o)s(ol)415 +587 y Ff(DEBUG)d Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p +Fn(\003)40 b Fi(true)52 b Fn(\003)p Fe(=)249 711 y Fk(if)41 +b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 +b Ff("Entering)p Fj( )p Ff(Polygon)o(::i)-7 b(ntersection_point)o(s\()o +(\))h(.\\n")26 b Fn(\034)d Fi(\015ush)10 b Fm(;)249 811 +y Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)249 936 y Fk(b)s(o)s(ol)p 435 936 29 5 v 39 w(p)s(oin)m(t)p 692 936 V 39 w(pair)32 b Fi(bpp)i Fm(=)22 b Ff(INVALID_BOOL_POIN)o(T_)o(PA)o(IR)n Fm(;)166 b Fe(=)p Fn(\003)40 b Fm(The)26 b(return)h(v)-5 @@ -25354,9 +25346,9 @@ Fm(\);)249 2704 y Fn(g)249 2828 y Fk(short)32 b Fi(distanc)l(e)j Fm(=)22 b Fi(pl)14 b Fe(:)p Fi(get)p 1117 2828 V 30 w(distanc)l(e)d Fm(\()p Fi(pt0)17 b Fm(\))p Fe(:)p Fi(se)l(c)l(ond)c -Fm(;)0 3028 y Fk(983.)94 b(Degenerate)32 b(cases,)f(error)h(handling.)0 +Fm(;)0 3028 y Fk(986.)94 b(Degenerate)32 b(cases,)f(error)h(handling.)0 3152 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k -Fl(976)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3252 y Fk(if)39 +Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3252 y Fk(if)39 b Fm(\()p Fi(pt)p 285 3252 V 31 w(ve)l(ctor)d Fn(\021)23 b Ff(INVALID_POINT)13 b Fn(_)i Fi(pl)e Fe(:)p Fi(normal)37 b Fn(\021)22 b Ff(INVALID_POINT)13 b Fn(_)i Fi(pt)p 2513 @@ -25377,28 +25369,27 @@ b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Polygon:)o(:in)-7 b(tersection_point)o(s\(\))o(.)h(\\n\\n")25 b Fn(\034)e Fi(\015ush)11 b Fm(;)166 4049 y Fk(return)33 b Ff(INVALID_BOOL_POI)o -(NT_)o(PA)o(IR)n Fm(;)83 4148 y Fn(g)0 4348 y Fk(984.)94 -b(P)m(arallel)32 b(and)g(coplanar)h(cases.)p 0 4447 1643 -4 v 1738 4480 a(Begin)e(Log)p 2257 4447 V 83 4620 a Fm([)p -Fh(LDF)25 b(2003.06.20.)p Fm(])61 b(No)n(w)27 b(c)n(hec)n(king)g +(NT_)o(PA)o(IR)n Fm(;)83 4148 y Fn(g)0 4348 y Fk(987.)94 +b(P)m(arallel)32 b(and)g(coplanar)h(cases.)p 0 4446 1779 +4 v 1874 4479 a(Log)p 2122 4446 V 83 4620 a Fm([)p Fh(LDF)25 +b(2003.06.20.)p Fm(])61 b(No)n(w)27 b(c)n(hec)n(king)g Fi(surfac)l(e)p 1521 4620 26 4 v 31 w(ve)l(ctor)41 b Fm(against)26 b Fi(pt)p 2164 4620 V 31 w(ve)l(ctor)41 b Fm(in)28 b(the)g(follo)n(wing)f(conditional.)p 0 4712 -1678 4 v 1773 4745 a Fk(End)32 b(Log)p 2222 4712 V 0 -4869 a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k -Fl(976)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4969 y Fk(else)g(if)34 -b Fm(\()p Fi(surfac)l(e)p 639 4969 26 4 v 31 w(ve)l(ctor)j -Fn(\021)23 b Fi(pt)p 1080 4969 V 30 w(ve)l(ctor)17 b -Fn(_)s Fi(surfac)l(e)p 1653 4969 V 31 w(ve)l(ctor)37 -b Fn(\021)22 b(\000)p Fi(pt)p 2158 4969 V 30 w(ve)l(ctor)17 -b Fn(_)s Fi(cr)l(oss)35 b Fn(\021)22 b Fi(pl)14 b Fe(:)p -Fi(normal)i Fn(_)s Fi(cr)l(oss)35 b Fn(\021)23 b(\000)o -Fi(pl)14 b Fe(:)p Fi(normal)f Fm(\))249 5069 y Fn(f)p -eop end -%%Page: 281 281 -TeXDict begin 281 280 bop 0 83 a Fn(x)p Fm(985)140 b -Fl(3DLDFPR)n(G)2322 b(COPLANAR)23 b(CASE)141 b Fm(281)0 -263 y Fk(985.)94 b(Coplanar)42 b(case.)96 b Fm([)p Fh(LDF)25 +3900 4 v 0 4869 a Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k +Fm(functions)k Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4968 y Fk(else)g(if)34 b Fm(\()p Fi(surfac)l(e)p 639 +4968 26 4 v 31 w(ve)l(ctor)j Fn(\021)23 b Fi(pt)p 1080 +4968 V 30 w(ve)l(ctor)17 b Fn(_)s Fi(surfac)l(e)p 1653 +4968 V 31 w(ve)l(ctor)37 b Fn(\021)22 b(\000)p Fi(pt)p +2158 4968 V 30 w(ve)l(ctor)17 b Fn(_)s Fi(cr)l(oss)35 +b Fn(\021)22 b Fi(pl)14 b Fe(:)p Fi(normal)i Fn(_)s Fi(cr)l(oss)35 +b Fn(\021)23 b(\000)o Fi(pl)14 b Fe(:)p Fi(normal)f Fm(\))249 +5068 y Fn(f)p eop end +%%Page: 284 284 +TeXDict begin 284 283 bop 0 83 a Fm(284)140 b Fl(COPLANAR)23 +b(CASE)2322 b(3DLDFPR)n(G)142 b Fn(x)p Fm(988)0 263 y +Fk(988.)94 b(Coplanar)42 b(case.)96 b Fm([)p Fh(LDF)25 b(2003.06.13.)p Fm(])69 b(Only)36 b(those)g(in)n(tersection)f(p)r(oin)n (ts)h(that)h(are)e(on)h(the)h(line)f(segmen)n(ts)0 363 y(making)27 b(of)g(the)h Fk(P)m(olygon)k Fm(are)26 b(returned)h(in)g @@ -25420,7 +25411,7 @@ b Fm(can)24 b(cause)g(in)n(tersection)h(p)r(oin)n(ts)f(to)h(b)r(e)h (found,)0 761 y(that)i(the)g(user)f(probably)f(w)n(on't)i(w)n(an)n(t.)0 886 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k -Fl(976)15 b Fn(i)23 b Fm(+)p Fn(\021)83 985 y Fk(if)41 +Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 985 y Fk(if)41 b Fm(\()p Fi(distanc)l(e)35 b Fn(\021)22 b Fm(0\))42 b Fn(f)166 1085 y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Line)p Fj( )p Ff(and)p @@ -25493,10 +25484,10 @@ b Fm(;)415 5319 y Fi(bpp)f Fe(:)p Fi(se)l(c)l(ond)i Fe(:)p Fi(pt)35 b Fm(=)23 b Fi(bp)10 b Fe(:)p Fi(pt)i Fm(;)p eop end -%%Page: 282 282 -TeXDict begin 282 281 bop 0 83 a Fm(282)140 b Fl(COPLANAR)23 -b(CASE)2322 b(3DLDFPR)n(G)142 b Fn(x)p Fm(985)415 263 -y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 +%%Page: 285 285 +TeXDict begin 285 284 bop 0 83 a Fn(x)p Fm(988)140 b +Fl(3DLDFPR)n(G)2322 b(COPLANAR)23 b(CASE)141 b Fm(285)415 +263 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Found)p Fj( )p Ff(second)p Fj( )p Ff(int)o(ers)-7 b(ection.)p Fj( )p Ff(Returning)o(.\\)o(n)h(")t Fm(;)415 363 y Fk(return)33 b Fi(bpp)11 b Fm(;)332 462 @@ -25505,8 +25496,8 @@ b Fn(\003)p Fe(=)166 861 y Fk(return)33 b Fi(bpp)11 b Fm(;)83 960 y Fn(g)166 b Fe(=)p Fn(\003)40 b Fm(End)28 b(of)f(coplanar)f(case.)50 b Fn(\003)p Fe(=)0 1160 y -Fk(986.)94 b(P)m(arallel)32 b(case.)0 1284 y Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k Fl(976)15 +Fk(989.)94 b(P)m(arallel)32 b(case.)0 1284 y Fn(h)14 +b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1384 y Fk(else)45 b Fn(f)166 1483 y Fi(c)l(err)70 b Fn(\034)56 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Po)o(lyg)o(on)-7 b(::intersection_po)o(int)g @@ -25521,14 +25512,14 @@ Fm(;)83 1882 y Fn(g)83 1982 y(g)166 b Fe(=)p Fn(\003)40 b Fm(End)28 b(of)f(parallel)g(and)g(coplanar)f(cases.)49 b Fn(\003)p Fe(=)p eop end -%%Page: 283 283 -TeXDict begin 283 282 bop 0 83 a Fn(x)p Fm(987)140 b -Fl(3DLDFPR)n(G)1264 b(PERPENDICULAR)23 b(AND)g(NON-COPLANAR)f(CASES)141 -b Fm(283)0 263 y Fk(987.)94 b(P)m(erp)s(endicular)35 +%%Page: 286 286 +TeXDict begin 286 285 bop 0 83 a Fm(286)140 b Fl(PERPENDICULAR)23 +b(AND)g(NON-COPLANAR)f(CASES)1264 b(3DLDFPR)n(G)142 b +Fn(x)p Fm(990)0 263 y Fk(990.)94 b(P)m(erp)s(endicular)35 b(and)f(non-coplanar)h(cases.)95 b Fm([)p Fh(LDF)25 b(2003.06.13.)p Fm(])63 b(These)29 b(cases)g(are)f(handled)i(in)g(exactly)0 363 y(the)e(same)f(w)n(a)n(y)-7 b(.)0 487 y Fn(h)14 b -Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k Fl(976)15 +Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 587 y Fk(else)31 b Fn(f)83 686 y Fk(if)41 b Fm(\()p Fi(pl)14 b Fe(:)p Fi(normal)37 b Fn(\021)22 b Fi(pt)p 766 686 26 4 v 31 w(ve)l(ctor)32 @@ -25610,10 +25601,10 @@ Fi(pt0)k Fe(;)e Fi(pt1)i Fm(\))p Fe(:)p Fi(\014rst)c Fm(;)166 5269 y Fk(return)33 b Fi(bpp)11 b Fm(;)83 5369 y Fn(g)p eop end -%%Page: 284 284 -TeXDict begin 284 283 bop 0 83 a Fm(284)140 b Fl(PERPENDICULAR)23 -b(AND)g(NON-COPLANAR)f(CASES)1264 b(3DLDFPR)n(G)142 b -Fn(x)p Fm(988)0 263 y Fk(988.)94 b Fm([)p Fh(LDF)26 b(2003.06.24.)p +%%Page: 287 287 +TeXDict begin 287 286 bop 0 83 a Fn(x)p Fm(991)140 b +Fl(3DLDFPR)n(G)1264 b(PERPENDICULAR)23 b(AND)g(NON-COPLANAR)f(CASES)141 +b Fm(287)0 263 y Fk(991.)94 b Fm([)p Fh(LDF)26 b(2003.06.24.)p Fm(])60 b Ff(DEBUG)30 b Fm(is)e(passed)f(as)g(the)h Fi(verb)l(ose)39 b Fm(argumen)n(t)26 b(to)i Fi(is)p 2599 263 26 4 v 31 w(in)p 2702 263 V 30 w(triangle)11 b Fm(\()k(\).)37 b(So,)27 @@ -25624,7 +25615,7 @@ b Ff(DEBUG)j Fm(in)0 462 y Fi(is)p 64 462 V 31 w(in)p 167 462 V 31 w(triangle)11 b Fm(\()j(\))28 b(will)g(not)f(b)r(e)h(set)g (to)f Fi(true)10 b Fm(.)0 587 y Fn(h)k Fm(De\014ne)28 -b Fk(P)m(olygon)k Fm(functions)k Fl(976)15 b Fn(i)23 +b Fk(P)m(olygon)k Fm(functions)k Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 686 y Fk(else)166 786 y(if)41 b Fm(\()p Fi(bp)11 b Fe(:)p Fi(pt)h Fe(:)p Fi(is)p 578 786 V 31 w(in)p 681 786 V 31 w(triangle)f Fm(\()p Fi(c)l(enter)i @@ -25641,21 +25632,21 @@ 1185 y Fk(return)33 b Fi(bpp)11 b Fm(;)166 1284 y Fn(g)83 1384 y(g)27 b(g)166 b Fe(=)p Fn(\003)40 b Fm(End)28 b(of)f(\\P)n(erp)r (endicular)f(and)h(non-coplanar)f(cases".)49 b Fn(\003)p -Fe(=)0 1583 y Fk(989.)94 b(End)32 b(of)g(de\014nition.)0 +Fe(=)0 1583 y Fk(992.)94 b(End)32 b(of)g(de\014nition.)0 1708 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k -Fl(976)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1807 y Fk(if)41 +Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1807 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Polygon:)o(:in)-7 b(tersection_point)o(s\(\)) o(.)h(\\n\\n")25 b Fn(\034)e Fi(\015ush)11 b Fm(;)83 1907 y Fk(return)33 b Fi(bpp)11 b Fm(;)37 b Fn(g)0 2106 -y Fk(990.)94 b(P)m(ath)33 b(v)m(ersion.)0 2231 y Fn(h)14 -b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k Fl(975)14 +y Fk(993.)94 b(P)m(ath)33 b(v)m(ersion.)0 2231 y Fn(h)14 +b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k Fl(978)14 b Fn(i)24 b Fm(+)p Fn(\021)83 2330 y Fk(b)s(o)s(ol)p 269 2330 29 5 v 38 w(p)s(oin)m(t)p 525 2330 V 40 w(pair)33 b Fi(interse)l(ction)p 1185 2330 26 4 v 30 w(p)l(oints)12 b Fm(\()p Fk(const)33 b(P)m(ath)g Fm(&)p Fe(p)p Fm(\))28 -b Fk(const)t Fm(;)0 2530 y Fk(991.)0 2654 y Fn(h)14 b -Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k Fl(976)15 +b Fk(const)t Fm(;)0 2530 y Fk(994.)0 2654 y Fn(h)14 b +Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2754 y Fk(b)s(o)s(ol)p 269 2754 29 5 v 38 w(p)s(oin)m(t)p 525 2754 V 40 w(pair)33 b(P)m(olygon)13 b Fm(::)8 b Fi(interse)l(ction)p 1588 @@ -25675,7 +25666,7 @@ 3451 V 31 w(p)l(oints)11 b Fm(\()p Fe(p:)p Fi(get)p 1347 3451 V 31 w(p)l(oint)h Fm(\(0\))p Fe(;)i(p:)p Fi(get)p 1882 3451 V 31 w(last)p 2038 3451 V 30 w(p)l(oint)f Fm(\()h(\)\);)83 -3551 y Fn(g)0 3750 y Fk(992.)94 b(In)m(tersection)25 +3551 y Fn(g)0 3750 y Fk(995.)94 b(In)m(tersection)25 b(with)e(another)i(P)m(olygon.)95 b Fm(TO)20 b(DO:)h(Explain)g(what)g (this)g(function)g(do)r(es)g(and)g(ho)n(w)f(it)i(w)n(orks.)0 3850 y([)p Fh(LDF)j(2003.06.29.)p Fm(])83 3949 y(TO)g(DO:)h(Find)g(out) @@ -25683,45 +25674,44 @@ b(gets)g(called,)f(when)h(this)g(function)g(is)g(called,)f(and)h(try)f (to)h(pass)e Fi(true)36 b Fm(as)25 b(its)0 4049 y Fi(silent)40 b Fm(argumen)n(t.)c([)p Fh(LDF)25 b(2003.07.16.)p Fm(])p -0 4153 1643 4 v 1738 4185 a Fk(Begin)31 b(Log)p 2257 -4153 V 83 4326 a Fm([)p Fh(LDF)25 b(2003.06.29.)p Fm(])61 -b(Replaced)27 b(the)h(dumm)n(y)g(de\014nition)g(of)g(this)g(function)g -(with)g(a)f(real)g(one.)p 0 4418 1678 4 v 1773 4451 a -Fk(End)32 b(Log)p 2222 4418 V 0 4575 a Fn(h)14 b Fm(Declare)27 -b Fk(P)m(olygon)32 b Fm(functions)k Fl(975)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 4675 y Fk(v)m(ector)6 b Fn(h)p Fk(P)m(oin)m(t)f -Fn(i)28 b Fi(interse)l(ction)p 1093 4675 26 4 v 31 w(p)l(oints)11 +0 4152 1779 4 v 1874 4185 a Fk(Log)p 2122 4152 V 83 4325 +a Fm([)p Fh(LDF)g(2003.06.29.)p Fm(])61 b(Replaced)27 +b(the)h(dumm)n(y)g(de\014nition)g(of)g(this)g(function)g(with)g(a)f +(real)g(one.)p 0 4417 3900 4 v 0 4574 a Fn(h)14 b Fm(Declare)27 +b Fk(P)m(olygon)32 b Fm(functions)k Fl(978)14 b Fn(i)24 +b Fm(+)p Fn(\021)83 4674 y Fk(v)m(ector)6 b Fn(h)p Fk(P)m(oin)m(t)f +Fn(i)28 b Fi(interse)l(ction)p 1093 4674 26 4 v 31 w(p)l(oints)11 b Fm(\()p Fk(const)33 b(P)m(olygon)f Fm(&)p Fe(r)s Fm(\))c Fk(const)t Fm(;)p eop end -%%Page: 285 285 -TeXDict begin 285 284 bop 0 83 a Fn(x)p Fm(993)140 b -Fl(3DLDFPR)n(G)1277 b(INTERSECTION)24 b(WITH)g(ANOTHER)f -Fk(POL)-8 b(YGON)141 b Fm(285)0 263 y Fk(993.)0 388 y -Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k -Fl(976)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(ector)6 -b Fn(h)p Fk(P)m(oin)m(t)f Fn(i)28 b Fk(P)m(olygon)13 -b Fm(::)8 b Fi(interse)l(ction)p 1496 487 26 4 v 31 w(p)l(oints)k -Fm(\()p Fk(const)32 b(P)m(olygon)h Fm(&)o Fe(r)s Fm(\))28 -b Fk(const)5 b Fn(f)27 b Fk(b)s(o)s(ol)k Ff(DEBUG)25 -b Fm(=)e Fi(false)11 b Fm(;)332 587 y Fe(=)p Fn(\003)41 -b Fi(true)51 b Fn(\003)p Fe(=)249 686 y Fk(v)m(ector)6 -b Fn(h)p Fk(P)m(oin)m(t)f Fn(i)28 b Fe(v)t Fm(;)249 786 -y Fk(Plane)33 b Fi(pl)j Fm(=)23 b Fi(get)p 813 786 V -30 w(plane)12 b Fm(\()i(\);)249 886 y Fk(Plane)33 b Fi(r)p -557 886 V 30 w(pl)k Fm(=)22 b Fe(r)s(:)p Fi(get)p 941 -886 V 31 w(plane)11 b Fm(\()j(\);)249 1010 y Fk(if)41 -b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)332 1110 y Fi(pl)14 -b Fe(:)p Fi(normal)f Fe(:)p Fi(show)h Fm(\()p Ff("pl.normal")p -Fm(\);)332 1209 y Fi(r)p 372 1209 V 31 w(pl)f Fe(:)p -Fi(normal)h Fe(:)p Fi(show)g Fm(\()p Ff("r_pl.normal")o -Fm(\);)332 1309 y Fi(c)l(out)35 b Fn(\034)23 b Ff("pl.distance)p -Fj( )p Ff(==)p Fj( )o Ff(")e Fn(\034)i Fi(pl)14 b Fe(:)p -Fi(distanc)l(e)34 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 -b Fi(\015ush)10 b Fm(;)332 1409 y Fi(c)l(out)35 b Fn(\034)23 -b Ff("r_pl.distance)p Fj( )p Ff(=)o(=)p Fj( )o Ff(")e -Fn(\034)j Fi(r)p 1624 1409 V 30 w(pl)14 b Fe(:)p Fi(distanc)l(e)34 +%%Page: 288 288 +TeXDict begin 288 287 bop 0 83 a Fm(288)140 b Fl(INTERSECTION)24 +b(WITH)g(ANOTHER)f Fk(POL)-8 b(YGON)1277 b Fl(3DLDFPR)n(G)142 +b Fn(x)p Fm(996)0 263 y Fk(996.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(olygon)k Fm(functions)k Fl(979)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 487 y Fk(v)m(ector)6 b Fn(h)p Fk(P)m(oin)m(t)f +Fn(i)28 b Fk(P)m(olygon)13 b Fm(::)8 b Fi(interse)l(ction)p +1496 487 26 4 v 31 w(p)l(oints)k Fm(\()p Fk(const)32 +b(P)m(olygon)h Fm(&)o Fe(r)s Fm(\))28 b Fk(const)5 b +Fn(f)27 b Fk(b)s(o)s(ol)k Ff(DEBUG)25 b Fm(=)e Fi(false)11 +b Fm(;)332 587 y Fe(=)p Fn(\003)41 b Fi(true)51 b Fn(\003)p +Fe(=)249 686 y Fk(v)m(ector)6 b Fn(h)p Fk(P)m(oin)m(t)f +Fn(i)28 b Fe(v)t Fm(;)249 786 y Fk(Plane)33 b Fi(pl)j +Fm(=)23 b Fi(get)p 813 786 V 30 w(plane)12 b Fm(\()i(\);)249 +886 y Fk(Plane)33 b Fi(r)p 557 886 V 30 w(pl)k Fm(=)22 +b Fe(r)s(:)p Fi(get)p 941 886 V 31 w(plane)11 b Fm(\()j(\);)249 +1010 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)332 +1110 y Fi(pl)14 b Fe(:)p Fi(normal)f Fe(:)p Fi(show)h +Fm(\()p Ff("pl.normal")p Fm(\);)332 1209 y Fi(r)p 372 +1209 V 31 w(pl)f Fe(:)p Fi(normal)h Fe(:)p Fi(show)g +Fm(\()p Ff("r_pl.normal")o Fm(\);)332 1309 y Fi(c)l(out)35 +b Fn(\034)23 b Ff("pl.distance)p Fj( )p Ff(==)p Fj( )o +Ff(")e Fn(\034)i Fi(pl)14 b Fe(:)p Fi(distanc)l(e)34 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 -b Fm(;)249 1508 y Fn(g)249 1633 y Fk(real)33 b Fi(distanc)l(e)h +b Fm(;)332 1409 y Fi(c)l(out)35 b Fn(\034)23 b Ff("r_pl.distance)p +Fj( )p Ff(=)o(=)p Fj( )o Ff(")e Fn(\034)j Fi(r)p 1624 +1409 V 30 w(pl)14 b Fe(:)p Fi(distanc)l(e)34 b Fn(\034)23 +b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)249 +1508 y Fn(g)249 1633 y Fk(real)33 b Fi(distanc)l(e)h Fm(=)22 b Fi(fabs)12 b Fm(\()p Fi(fabs)h Fm(\()p Fi(pl)h Fe(:)p Fi(distanc)l(e)d Fm(\))19 b Fn(\000)f Fi(fabs)12 b Fm(\()p Fi(r)p 1974 1633 V 30 w(pl)i Fe(:)p Fi(distanc)l(e)d @@ -25734,9 +25724,9 @@ b Fn(\034)23 b Fi(\015ush)10 b Fm(;)249 1957 y Fk(if)41 b Fm(\()p Fi(pl)14 b Fe(:)p Fi(normal)37 b Fn(\021)22 b Fi(r)p 897 1957 V 31 w(pl)13 b Fe(:)p Fi(normal)h Fm(\))28 -b Fn(f)0 2156 y Fk(994.)94 b(Coplanar)32 b(case.)0 2280 +b Fn(f)0 2156 y Fk(997.)94 b(Coplanar)32 b(case.)0 2280 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k -Fl(976)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2380 y Fk(if)41 +Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2380 y Fk(if)41 b Fm(\()p Fi(distanc)l(e)35 b Fn(\021)22 b Fm(0\))42 b Fn(f)166 2480 y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Coplanar.\\n")o Fm(;)166 @@ -25780,8 +25770,8 @@ b Fk(for)47 b Fn(\003)p Fe(=)166 3825 y Fn(g)166 b Fe(=)p Fn(\003)40 b Fm(Outer)27 b Fk(for)47 b Fn(\003)p Fe(=)166 3924 y Fk(return)33 b Fe(v)s Fm(;)83 4024 y Fn(g)0 4223 -y Fk(995.)94 b(P)m(arallel)32 b(case.)0 4348 y Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k Fl(976)15 +y Fk(998.)94 b(P)m(arallel)32 b(case.)0 4348 y Fn(h)14 +b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4447 y Fk(else)170 b Fe(=)p Fn(\003)40 b Fm(P)n(arallel.)49 b Fn(\003)p Fe(=)83 4547 y Fn(f)166 4647 y Fi(c)l(err)68 b Fn(\034)55 b Ff("WARNING!)p @@ -25793,22 +25783,22 @@ Ff(ve)o(c)-6 b(tor.\\n\\n")22 b Fn(\034)332 4846 y Fi(\015ush)10 b Fm(;)166 4945 y Fk(return)33 b Fe(v)s Fm(;)83 5045 y Fn(g)83 5145 y(g)p eop end -%%Page: 286 286 -TeXDict begin 286 285 bop 0 83 a Fm(286)140 b Fl(NON-P)-6 -b(ARALLEL,)22 b(NON-COPLANAR)g(CASE)1531 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(996)0 263 y Fk(996.)94 b(Non-parallel,)28 -b(non-coplanar)h(case.)95 b Fe(v)28 b Fm(will)d(con)n(tain)f(the)h(in)n -(tersection)e(p)r(oin)n(ts)i(of)g(the)g Fk(Line)k Fe(l)d -Fm(with)f Fn(\003)p Fi(this)0 363 y Fm(and)31 b Fe(r)r -Fm(,)h(if)f(an)n(y)-7 b(.)46 b Fe(v)34 b Fm(can)c(con)n(tain)g(a)g -(maxim)n(um)h(of)g(four)f Fk(P)m(oin)m(ts)36 b Fm(in)30 -b(this)i(case.)45 b Fe(v)s Fm([0])31 b(and)f Fe(v)s Fm([1])h(will)g(b)r -(e)g(the)g(in)n(tersection)0 462 y(p)r(oin)n(ts)40 b(of)g(the)h -Fk(Line)k Fe(l)d Fm(with)f Fn(\003)o Fi(this)12 b Fm(,)43 -b(and)d Fe(v)s Fm([2])g(and)h Fe(v)s Fm([3)o(])g(the)f(in)n(tersection) -g(p)r(oin)n(ts)g(of)g Fe(l)i Fm(and)e Fe(r)s Fm(,)k(if)c(they)h(exist.) -75 b(If)0 562 y(an)n(y)31 b(in)n(tersection)g(p)r(oin)n(t)g(do)r(esn't) -h(exist,)h Ff(INVALID_POINT)d Fm(will)i(b)r(e)g(stored)f(in)h(the)g +%%Page: 289 289 +TeXDict begin 289 288 bop 0 83 a Fn(x)p Fm(999)140 b +Fl(3DLDFPR)n(G)1531 b(NON-P)-6 b(ARALLEL,)22 b(NON-COPLANAR)g(CASE)141 +b Fm(289)0 263 y Fk(999.)94 b(Non-parallel,)28 b(non-coplanar)h(case.) +95 b Fe(v)28 b Fm(will)d(con)n(tain)f(the)h(in)n(tersection)e(p)r(oin)n +(ts)i(of)g(the)g Fk(Line)k Fe(l)d Fm(with)f Fn(\003)p +Fi(this)0 363 y Fm(and)31 b Fe(r)r Fm(,)h(if)f(an)n(y)-7 +b(.)46 b Fe(v)34 b Fm(can)c(con)n(tain)g(a)g(maxim)n(um)h(of)g(four)f +Fk(P)m(oin)m(ts)36 b Fm(in)30 b(this)i(case.)45 b Fe(v)s +Fm([0])31 b(and)f Fe(v)s Fm([1])h(will)g(b)r(e)g(the)g(in)n(tersection) +0 462 y(p)r(oin)n(ts)40 b(of)g(the)h Fk(Line)k Fe(l)d +Fm(with)f Fn(\003)o Fi(this)12 b Fm(,)43 b(and)d Fe(v)s +Fm([2])g(and)h Fe(v)s Fm([3)o(])g(the)f(in)n(tersection)g(p)r(oin)n(ts) +g(of)g Fe(l)i Fm(and)e Fe(r)s Fm(,)k(if)c(they)h(exist.)75 +b(If)0 562 y(an)n(y)31 b(in)n(tersection)g(p)r(oin)n(t)g(do)r(esn't)h +(exist,)h Ff(INVALID_POINT)d Fm(will)i(b)r(e)g(stored)f(in)h(the)g (corresp)r(onding)d(elemen)n(t)j(of)g Fe(v)j Fm(as)30 b(a)0 662 y(placeholder.)36 b([)p Fh(LDF)25 b(2003.06.29.)p Fm(])83 761 y(The)f(v)-5 b(alues)23 b(in)g Fe(v)k Fm(pro)n(vide)22 @@ -25825,7 +25815,7 @@ (breaking)f(up)i Fi(Polygons)45 b Fm(and)0 1160 y Fk(Solids)31 b Fm(for)c(an)g(impro)n(v)n(ed)g(surface)f(hiding)i(routine.)37 b([)p Fh(LDF)25 b(2003.06.29.)p Fm(])0 1284 y Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k Fl(976)15 +b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1384 y Fk(else)45 b Fn(f)166 1483 y Fk(if)c Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Non-coplanar,)p Fj( )p Ff(no)o(n-p)-7 @@ -25909,31 +25899,31 @@ Fe(:)p Fi(is)p 1767 5369 V 31 w(on)p 1887 5369 V 31 w(se)l(gment)12 b Fm(\()p Fe(v)s Fm([0])p Fe(;)i(v)s Fm([1)o(]\);)p eop end -%%Page: 287 287 -TeXDict begin 287 286 bop 0 83 a Fn(x)p Fm(996)140 b -Fl(3DLDFPR)n(G)1531 b(NON-P)-6 b(ARALLEL,)22 b(NON-COPLANAR)g(CASE)141 -b Fm(287)249 263 y Fk(else)45 b Fn(f)332 363 y Fi(br)13 -b Fm([2])p Fe(:)p Fi(\014rst)35 b Fm(=)22 b Fi(false)12 -b Fm(;)332 462 y Fi(br)h Fm([2])p Fe(:)p Fi(se)l(c)l(ond)36 -b Fm(=)23 b(0;)249 562 y Fn(g)249 662 y Fk(if)41 b Fm(\()p -Fe(v)t Fm([3)o(])23 b Fn(6)p Fm(=)g Ff(INVALID_POINT)o -Fm(\))42 b Fi(br)13 b Fm([3])23 b(=)g Fe(v)s Fm([3)o(])p -Fe(:)p Fi(is)p 1767 662 26 4 v 31 w(on)p 1887 662 V 31 -w(se)l(gment)12 b Fm(\()p Fe(v)s Fm([0])p Fe(;)i(v)s -Fm([1)o(]\);)249 761 y Fk(else)45 b Fn(f)332 861 y Fi(br)13 -b Fm([3])p Fe(:)p Fi(\014rst)35 b Fm(=)22 b Fi(false)12 -b Fm(;)332 960 y Fi(br)h Fm([3])p Fe(:)p Fi(se)l(c)l(ond)36 -b Fm(=)23 b(0;)249 1060 y Fn(g)166 1160 y(g)166 1259 -y Fk(if)41 b Fm(\()p Fi(br)14 b Fm([0)o(])p Fe(:)p Fi(\014rst)30 -b Fn(^)19 b Fi(br)14 b Fm([1)o(])p Fe(:)p Fi(\014rst)e -Fm(\))41 b Fn(f)249 1359 y Fk(if)53 b Fm(\()p Ff(DEBUG)s -Fm(\))41 b Fi(c)l(out)55 b Fn(\034)42 b Ff("The)p Fj( )p -Ff(intersection)o Fj( )p Ff(of)-7 b Fj( )p Ff(*this)p -Fj( )p Ff(with)p Fj( )p Ff(l)p Fj( )p Ff(lie)o(s)p Fj( )o -Ff(w)h(ithin)p Fj( )p Ff(")44 b Fn(\034)498 1459 y Ff("the)p -Fj( )p Ff(intersection)o Fj( )p Ff(o)o(f)-6 b Fj( )p -Ff(r)p Fj( )p Ff(with)p Fj( )p Ff(l.\\n")o Fm(;)166 1558 -y Fn(g)166 1658 y Fk(else)31 b(if)41 b Fm(\()p Fi(br)14 +%%Page: 290 290 +TeXDict begin 290 289 bop 0 83 a Fm(290)140 b Fl(NON-P)-6 +b(ARALLEL,)22 b(NON-COPLANAR)g(CASE)1531 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(999)249 263 y Fk(else)45 b Fn(f)332 363 y +Fi(br)13 b Fm([2])p Fe(:)p Fi(\014rst)35 b Fm(=)22 b +Fi(false)12 b Fm(;)332 462 y Fi(br)h Fm([2])p Fe(:)p +Fi(se)l(c)l(ond)36 b Fm(=)23 b(0;)249 562 y Fn(g)249 +662 y Fk(if)41 b Fm(\()p Fe(v)t Fm([3)o(])23 b Fn(6)p +Fm(=)g Ff(INVALID_POINT)o Fm(\))42 b Fi(br)13 b Fm([3])23 +b(=)g Fe(v)s Fm([3)o(])p Fe(:)p Fi(is)p 1767 662 26 4 +v 31 w(on)p 1887 662 V 31 w(se)l(gment)12 b Fm(\()p Fe(v)s +Fm([0])p Fe(;)i(v)s Fm([1)o(]\);)249 761 y Fk(else)45 +b Fn(f)332 861 y Fi(br)13 b Fm([3])p Fe(:)p Fi(\014rst)35 +b Fm(=)22 b Fi(false)12 b Fm(;)332 960 y Fi(br)h Fm([3])p +Fe(:)p Fi(se)l(c)l(ond)36 b Fm(=)23 b(0;)249 1060 y Fn(g)166 +1160 y(g)166 1259 y Fk(if)41 b Fm(\()p Fi(br)14 b Fm([0)o(])p +Fe(:)p Fi(\014rst)30 b Fn(^)19 b Fi(br)14 b Fm([1)o(])p +Fe(:)p Fi(\014rst)e Fm(\))41 b Fn(f)249 1359 y Fk(if)53 +b Fm(\()p Ff(DEBUG)s Fm(\))41 b Fi(c)l(out)55 b Fn(\034)42 +b Ff("The)p Fj( )p Ff(intersection)o Fj( )p Ff(of)-7 +b Fj( )p Ff(*this)p Fj( )p Ff(with)p Fj( )p Ff(l)p Fj( )p +Ff(lie)o(s)p Fj( )o Ff(w)h(ithin)p Fj( )p Ff(")44 b Fn(\034)498 +1459 y Ff("the)p Fj( )p Ff(intersection)o Fj( )p Ff(o)o(f)-6 +b Fj( )p Ff(r)p Fj( )p Ff(with)p Fj( )p Ff(l.\\n")o Fm(;)166 +1558 y Fn(g)166 1658 y Fk(else)31 b(if)41 b Fm(\()p Fi(br)14 b Fm([2])p Fe(:)p Fi(\014rst)30 b Fn(^)18 b Fi(br)c Fm([3)o(])p Fe(:)p Fi(\014rst)e Fm(\))42 b Fn(f)249 1757 y Fk(if)56 b Fm(\()p Ff(DEBUG)r Fm(\))42 b Fi(c)l(out)59 b Fn(\034)47 @@ -25961,9 +25951,9 @@ Fm(;)166 2554 y Fn(g)166 2654 y Fk(return)33 b Fe(v)s Fm(;)83 2754 y Fn(g)166 b Fe(=)p Fn(\003)40 b Fk(else)t Fm(.)d(End)27 b(of)h(non-parallel,)d(non-coplanar)h(case.)50 -b Fn(\003)p Fe(=)83 2853 y Fn(g)0 3053 y Fk(997.)94 b(T)-8 -b(ransformations.)p 0 3128 1643 4 v 1738 3161 a(Begin)31 -b(Log)p 2257 3128 V 83 3302 a Fm([)p Fh(LDF)25 b(2002.08.07.)p +b Fn(\003)p Fe(=)83 2853 y Fn(g)0 3053 y Fk(1000.)94 +b(T)-8 b(ransformations.)p 0 3128 1779 4 v 1874 3161 +a(Log)p 2122 3128 V 83 3302 a Fm([)p Fh(LDF)25 b(2002.08.07.)p Fm(])63 b(Copied)28 b(the)i(en)n(tire)e(\\T)-7 b(ransformations")26 b(section)j(from)f Fj(ellipses.web)d Fm(and)j(made)h(the)h(appro-)0 3401 y(priate)d(c)n(hanges.)83 3501 y([)p Fh(LDF)e(2003.04.27.)p @@ -25983,94 +25973,91 @@ Fm(.)k(The)27 b Fk(P)m(olygon)33 b Fm(v)n(ersions)25 b(are)i(no)n(w)g(inherited)h(b)n(y)f Fk(Reg)p 2683 3999 V 39 w(P)m(olygon)32 b Fm(and)c Fk(Rectangle)t Fm(.)p -0 4091 1678 4 v 1773 4124 a Fk(End)k(Log)p 2222 4091 -V 0 4323 a(998.)94 b(Applying)32 b(a)g(transformation.)p -0 4422 1643 4 v 1738 4455 a(Begin)f(Log)p 2257 4422 V -83 4595 a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])69 b(No)n(w)35 -b(calling)g Fk(P)m(ath)15 b Fm(::)8 b Fk(op)s(erator)d -Fn(\003)p Fm(=)o(\()14 b(\))36 b(instead)g(of)f(lo)r(oping)g(through)g -Fi(p)l(oints)12 b Fm(.)61 b(This)35 b(w)n(a)n(y)-7 b(,)37 -b(if)f(I)0 4695 y(c)n(hange)26 b Fk(P)m(ath)15 b Fm(::)8 -b Fk(op)s(erator)d Fn(\003)p Fm(=)o(\()14 b(\),)28 b(the)g(c)n(hange)f -(will)g(automatically)g(b)r(e)h(re\015ected)f(here.)p -0 4787 1678 4 v 1773 4820 a Fk(End)32 b(Log)p 2222 4787 -V 0 4944 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 -b Fm(functions)k Fl(975)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -5044 y Fk(virtual)33 b(T)-8 b(ransform)33 b(op)s(erator)5 -b Fn(\003)p Fm(=)o(\()p Fk(const)33 b(T)-8 b(ransform)33 -b Fm(&)o Fe(t)p Fm(\);)p eop end -%%Page: 288 288 -TeXDict begin 288 287 bop 0 83 a Fm(288)140 b Fl(APPL)-6 -b(YING)24 b(A)f(TRANSF)n(ORMA)-6 b(TION)1777 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(999)0 263 y Fk(999.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(olygon)k Fm(functions)k Fl(976)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(P)m(olygon)13 -b Fm(::)8 b Fk(op)s(erator)d Fn(\003)p Fm(=)o(\()p Fk(const)33 -b(T)-8 b(ransform)33 b Fm(&)p Fe(t)p Fm(\))83 587 y Fn(f)166 -686 y Fk(P)m(ath)14 b Fm(::)9 b Fk(op)s(erator)c Fn(\003)p -Fm(=)o(\()p Fe(t)p Fm(\);)166 786 y Fk(return)33 b Fm(\()p -Fi(c)l(enter)j Fn(\003)p Fm(=)22 b Fe(t)p Fm(\);)83 886 -y Fn(g)0 1085 y Fk(1000.)94 b(Rotatation)32 b(around)g(the)g(main)f -(axes.)0 1209 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 -b Fm(functions)k Fl(975)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -1309 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(r)l(otate)10 -b Fm(\()p Fk(const)33 b(real)g Fe(x;)14 b Fk(const)32 -b(real)h Fe(y)26 b Fm(=)c(0)p Fe(;)14 b Fk(const)32 b(real)h -Fe(z)26 b Fm(=)d(0)o(\);)0 1508 y Fk(1001.)0 1633 y Fn(h)14 -b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k Fl(976)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 1733 y Fk(T)-8 b(ransform)33 -b(P)m(olygon)13 b Fm(::)8 b Fi(r)l(otate)j Fm(\()p Fk(const)33 -b(real)f Fe(x)q(;)14 b Fk(const)32 b(real)g Fe(y)s(;)14 -b Fk(const)32 b(real)h Fe(z)s Fm(\))83 1832 y Fn(f)166 -1932 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 2056 y -Fe(t:)p Fi(r)l(otate)11 b Fm(\()p Fe(x;)j(y)s(;)g(z)s -Fm(\);)166 2156 y Fk(return)33 b Fm(\()p Fn(\003)p Fi(this)h -Fn(\003)p Fm(=)23 b Fe(t)p Fm(\);)83 2256 y Fn(g)0 2455 -y Fk(1002.)94 b(Rotate)32 b(around)g(an)g(arbitrary)i(axis.)0 -2654 y(1003.)94 b(P)m(oin)m(t)32 b(argumen)m(ts.)p 0 -2753 1643 4 v 1738 2786 a(Begin)f(Log)p 2257 2753 V 83 -2927 a Fm([)p Fh(LDF)25 b(2003.05.02.)p Fm(])67 b(Changed)34 -b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p -2343 2927 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f +0 4091 3900 4 v 0 4323 a Fk(1001.)94 b(Applying)31 b(a)h +(transformation.)p 0 4421 1779 4 v 1874 4454 a(Log)p +2122 4421 V 83 4595 a Fm([)p Fh(LDF)25 b(2002.11.06.)p +Fm(])69 b(No)n(w)35 b(calling)g Fk(P)m(ath)15 b Fm(::)8 +b Fk(op)s(erator)d Fn(\003)p Fm(=)o(\()14 b(\))36 b(instead)g(of)f(lo)r +(oping)g(through)g Fi(p)l(oints)12 b Fm(.)61 b(This)35 +b(w)n(a)n(y)-7 b(,)37 b(if)f(I)0 4694 y(c)n(hange)26 +b Fk(P)m(ath)15 b Fm(::)8 b Fk(op)s(erator)d Fn(\003)p +Fm(=)o(\()14 b(\),)28 b(the)g(c)n(hange)f(will)g(automatically)g(b)r(e) +h(re\015ected)f(here.)p 0 4786 3900 4 v 0 4943 a Fn(h)14 +b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k Fl(978)14 +b Fn(i)24 b Fm(+)p Fn(\021)83 5043 y Fk(virtual)33 b(T)-8 +b(ransform)33 b(op)s(erator)5 b Fn(\003)p Fm(=)o(\()p +Fk(const)33 b(T)-8 b(ransform)33 b Fm(&)o Fe(t)p Fm(\);)p +eop end +%%Page: 291 291 +TeXDict begin 291 290 bop 0 83 a Fn(x)p Fm(1002)139 b +Fl(3DLDFPR)n(G)1737 b(APPL)-6 b(YING)24 b(A)f(TRANSF)n(ORMA)-6 +b(TION)140 b Fm(291)0 263 y Fk(1002.)0 388 y Fn(h)14 +b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k Fl(979)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 +b(P)m(olygon)13 b Fm(::)8 b Fk(op)s(erator)d Fn(\003)p +Fm(=)o(\()p Fk(const)33 b(T)-8 b(ransform)33 b Fm(&)p +Fe(t)p Fm(\))83 587 y Fn(f)166 686 y Fk(P)m(ath)14 b +Fm(::)9 b Fk(op)s(erator)c Fn(\003)p Fm(=)o(\()p Fe(t)p +Fm(\);)166 786 y Fk(return)33 b Fm(\()p Fi(c)l(enter)j +Fn(\003)p Fm(=)22 b Fe(t)p Fm(\);)83 886 y Fn(g)0 1085 +y Fk(1003.)94 b(Rotatation)32 b(around)g(the)g(main)f(axes.)0 +1209 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k +Fl(978)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1309 y Fk(virtual)33 +b(T)-8 b(ransform)33 b Fi(r)l(otate)10 b Fm(\()p Fk(const)33 +b(real)g Fe(x;)14 b Fk(const)32 b(real)h Fe(y)26 b Fm(=)c(0)p +Fe(;)14 b Fk(const)32 b(real)h Fe(z)26 b Fm(=)d(0)o(\);)0 +1508 y Fk(1004.)0 1633 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k +Fm(functions)k Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1733 y Fk(T)-8 b(ransform)33 b(P)m(olygon)13 b Fm(::)8 +b Fi(r)l(otate)j Fm(\()p Fk(const)33 b(real)f Fe(x)q(;)14 +b Fk(const)32 b(real)g Fe(y)s(;)14 b Fk(const)32 b(real)h +Fe(z)s Fm(\))83 1832 y Fn(f)166 1932 y Fk(T)-8 b(ransform)33 +b Fe(t)p Fm(;)166 2056 y Fe(t:)p Fi(r)l(otate)11 b Fm(\()p +Fe(x;)j(y)s(;)g(z)s Fm(\);)166 2156 y Fk(return)33 b +Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p Fm(=)23 b Fe(t)p +Fm(\);)83 2256 y Fn(g)0 2455 y Fk(1005.)94 b(Rotate)32 +b(around)g(an)g(arbitrary)i(axis.)0 2654 y(1006.)94 b(P)m(oin)m(t)32 +b(argumen)m(ts.)p 0 2753 1779 4 v 1874 2785 a(Log)p 2122 +2753 V 83 2926 a Fm([)p Fh(LDF)25 b(2003.05.02.)p Fm(])67 +b(Changed)34 b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p +2343 2926 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 3026 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 -b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 3118 -1678 4 v 1773 3151 a Fk(End)g(Log)p 2222 3118 V 0 3275 -a Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k -Fl(975)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3375 y Fk(virtual)33 -b(T)-8 b(ransform)33 b Fi(r)l(otate)10 b Fm(\()p Fk(const)33 -b(P)m(oin)m(t)g Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)32 -b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fe(;)e Fk(const)32 -b(real)h Fi(angle)h Fm(=)23 b(180)n(\);)0 3574 y Fk(1004.)0 -3699 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k -Fl(976)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3798 y Fk(T)-8 -b(ransform)33 b(P)m(olygon)13 b Fm(::)8 b Fi(r)l(otate)j -Fm(\()p Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fi(p0)16 b -Fe(;)e Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(p1)17 b -Fe(;)d Fk(const)32 b(real)g Fi(angle)12 b Fm(\))83 3898 -y Fn(f)166 3998 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 -4122 y Fe(t:)p Fi(r)l(otate)11 b Fm(\()p Fi(p0)16 b Fe(;)e -Fi(p1)i Fe(;)e Fi(angle)e Fm(\);)166 4222 y Fk(return)33 -b Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p Fm(=)23 b Fe(t)p -Fm(\);)83 4321 y Fn(g)0 4521 y Fk(1005.)94 b(P)m(ath)33 -b(argumen)m(t.)p 0 4620 1643 4 v 1738 4653 a(Begin)e(Log)p -2257 4620 V 83 4793 a Fm([)p Fh(LDF)25 b(2003.05.02.)p +b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 3117 +3900 4 v 0 3275 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 +b Fm(functions)k Fl(978)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +3374 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(r)l(otate)10 +b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)p Fi(p0)16 +b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 +b Fe(;)e Fk(const)32 b(real)h Fi(angle)h Fm(=)23 b(180)n(\);)0 +3574 y Fk(1007.)0 3698 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k +Fm(functions)k Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3798 y Fk(T)-8 b(ransform)33 b(P)m(olygon)13 b Fm(::)8 +b Fi(r)l(otate)j Fm(\()p Fk(const)33 b(P)m(oin)m(t)f +Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)33 b(P)m(oin)m(t)g +Fm(&)o Fi(p1)17 b Fe(;)d Fk(const)32 b(real)g Fi(angle)12 +b Fm(\))83 3897 y Fn(f)166 3997 y Fk(T)-8 b(ransform)33 +b Fe(t)p Fm(;)166 4121 y Fe(t:)p Fi(r)l(otate)11 b Fm(\()p +Fi(p0)16 b Fe(;)e Fi(p1)i Fe(;)e Fi(angle)e Fm(\);)166 +4221 y Fk(return)33 b Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p +Fm(=)23 b Fe(t)p Fm(\);)83 4321 y Fn(g)0 4520 y Fk(1008.)94 +b(P)m(ath)33 b(argumen)m(t.)p 0 4619 1779 4 v 1874 4651 +a(Log)p 2122 4619 V 83 4792 a Fm([)p Fh(LDF)25 b(2003.05.02.)p Fm(])67 b(Changed)34 b(name)f(of)h(this)h(function)f(from)g -Fi(r)l(otate)p 2343 4793 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 +Fi(r)l(otate)p 2343 4792 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 -4893 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 -b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 4985 -1678 4 v 1773 5017 a Fk(End)g(Log)p 2222 4985 V 0 5142 -a Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k -Fl(975)14 b Fn(i)24 b Fm(+)p Fn(\021)83 5242 y Fk(virtual)33 -b(T)-8 b(ransform)33 b Fi(r)l(otate)10 b Fm(\()p Fk(const)33 -b(P)m(ath)h Fm(&)o Fe(p;)14 b Fk(const)32 b(real)h Fi(angle)h -Fm(=)23 b(180)n(\);)p eop end -%%Page: 289 289 -TeXDict begin 289 288 bop 0 83 a Fn(x)p Fm(1006)139 b -Fl(3DLDFPR)n(G)2191 b Fk(P)-8 b(A)g(TH)24 b Fl(AR)n(GUMENT)140 -b Fm(289)0 263 y Fk(1006.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(olygon)k Fm(functions)k Fl(976)15 b Fn(i)23 +4892 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 +b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 4983 +3900 4 v 0 5141 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 +b Fm(functions)k Fl(978)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +5240 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(r)l(otate)10 +b Fm(\()p Fk(const)33 b(P)m(ath)h Fm(&)o Fe(p;)14 b Fk(const)32 +b(real)h Fi(angle)h Fm(=)23 b(180)n(\);)p eop end +%%Page: 292 292 +TeXDict begin 292 291 bop 0 83 a Fm(292)140 b Fk(P)-8 +b(A)g(TH)24 b Fl(AR)n(GUMENT)2189 b(3DLDFPR)n(G)142 b +Fn(x)p Fm(1009)0 263 y Fk(1009.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(olygon)k Fm(functions)k Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(P)m(olygon)13 b Fm(::)8 b Fi(r)l(otate)j Fm(\()p Fk(const)33 b(P)m(ath)g Fm(&)p Fe(p;)14 b Fk(const)32 b(real)g Fi(angle)12 b @@ -26087,31 +26074,31 @@ Fm(\()p Fe(p:)p Fi(get)p 890 1185 V 30 w(p)l(oint)i Fm(\(0)o(\))p Fe(;)h(p:)p Fi(get)p 1424 1185 V 31 w(last)p 1580 1185 V 31 w(p)l(oint)e Fm(\()i(\))p Fe(;)g Fi(angle)e Fm(\);)83 -1284 y Fn(g)0 1483 y Fk(1007.)94 b(Scale.)0 1608 y Fn(h)14 -b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k Fl(975)14 +1284 y Fn(g)0 1483 y Fk(1010.)94 b(Scale.)0 1608 y Fn(h)14 +b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k Fl(978)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1708 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(sc)l(ale)11 b Fm(\()p Fk(real)33 b Fe(x;)14 b Fk(real)33 b Fe(y)25 b Fm(=)e(1)p Fe(;)14 -b Fk(real)32 b Fe(z)26 b Fm(=)d(1)o(\);)0 1907 y Fk(1008.)0 +b Fk(real)32 b Fe(z)26 b Fm(=)d(1)o(\);)0 1907 y Fk(1011.)0 2031 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k -Fl(976)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2131 y Fk(T)-8 +Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2131 y Fk(T)-8 b(ransform)33 b(P)m(olygon)13 b Fm(::)8 b Fi(sc)l(ale)k Fm(\()p Fk(real)32 b Fe(x)q(;)14 b Fk(real)32 b Fe(y)s(;)14 b Fk(real)32 b Fe(z)t Fm(\))83 2231 y Fn(f)166 2330 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 2455 y Fe(t:)p Fi(sc)l(ale)11 b Fm(\()p Fe(x)q(;)j(y)s(;)g(z)s Fm(\);)166 2554 y Fk(return)33 b Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p -Fm(=)23 b Fe(t)p Fm(\);)83 2654 y Fn(g)0 2853 y Fk(1009.)94 +Fm(=)23 b Fe(t)p Fm(\);)83 2654 y Fn(g)0 2853 y Fk(1012.)94 b(Shear.)0 2978 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 -b Fm(functions)k Fl(975)14 b Fn(i)24 b Fm(+)p Fn(\021)83 +b Fm(functions)k Fl(978)14 b Fn(i)24 b Fm(+)p Fn(\021)83 3077 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(she)l(ar)14 b Fm(\()p Fk(real)33 b Fi(xy)11 b Fe(;)j Fk(real)32 b Fi(xz)37 b Fm(=)23 b(0)p Fe(;)14 b Fk(real)32 b Fi(yx)37 b Fm(=)23 b(0)o Fe(;)14 b Fk(real)33 b Fi(yz)k Fm(=)23 b(0)o Fe(;)14 b Fk(real)33 b Fi(zx)k Fm(=)22 b(0)p Fe(;)14 -b Fk(real)32 b Fi(zy)j Fm(=)23 b(0)o(\);)0 3277 y Fk(1010.)0 +b Fk(real)32 b Fi(zy)j Fm(=)23 b(0)o(\);)0 3277 y Fk(1013.)0 3401 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k -Fl(976)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3501 y Fk(T)-8 +Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3501 y Fk(T)-8 b(ransform)33 b(P)m(olygon)13 b Fm(::)8 b Fi(she)l(ar)14 b Fm(\()p Fk(real)33 b Fi(xy)12 b Fe(;)i Fk(real)32 b Fi(xz)14 b Fe(;)g Fk(real)32 b Fi(yx)14 b Fe(;)g Fk(real)33 @@ -26121,76 +26108,75 @@ b Fm(\()p Fi(xy)e Fe(;)i Fi(xz)g Fe(;)g Fi(yx)g Fe(;)g Fi(yz)g Fe(;)g Fi(zx)g Fe(;)g Fi(zy)d Fm(\);)166 3924 y Fk(return)33 b Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p -Fm(=)23 b Fe(t)p Fm(\);)83 4024 y Fn(g)0 4223 y Fk(1011.)94 -b(Shift.)0 4422 y(1012.)g(real)32 b(argumen)m(ts.)0 4547 +Fm(=)23 b Fe(t)p Fm(\);)83 4024 y Fn(g)0 4223 y Fk(1014.)94 +b(Shift.)0 4422 y(1015.)g(real)32 b(argumen)m(ts.)0 4547 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k -Fl(975)14 b Fn(i)24 b Fm(+)p Fn(\021)83 4647 y Fk(virtual)33 +Fl(978)14 b Fn(i)24 b Fm(+)p Fn(\021)83 4647 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(shift)13 b Fm(\()p Fk(real)33 b Fe(x;)14 b Fk(real)32 b Fe(y)26 b Fm(=)d(0)o Fe(;)14 b Fk(real)33 b Fe(z)26 b Fm(=)d(0)o(\);)p eop end -%%Page: 290 290 -TeXDict begin 290 289 bop 0 83 a Fm(290)140 b Fk(REAL)23 -b Fl(AR)n(GUMENTS)2149 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1013)0 -263 y Fk(1013.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k -Fm(functions)k Fl(976)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -487 y Fk(T)-8 b(ransform)33 b(P)m(olygon)13 b Fm(::)8 -b Fi(shift)13 b Fm(\()p Fk(real)33 b Fe(x)q(;)14 b Fk(real)32 -b Fe(y)s(;)14 b Fk(real)32 b Fe(z)s Fm(\))83 587 y Fn(f)166 -686 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 811 y Fe(t:)p -Fi(shift)13 b Fm(\()p Fe(x)q(;)h(y)r(;)g(z)t Fm(\);)166 -911 y Fk(return)33 b Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p -Fm(=)23 b Fe(t)p Fm(\);)83 1010 y Fn(g)0 1209 y Fk(1014.)94 -b(P)m(oin)m(t)32 b(argumen)m(t.)0 1334 y Fn(h)14 b Fm(Declare)27 -b Fk(P)m(olygon)32 b Fm(functions)k Fl(975)14 b Fn(i)24 -b Fm(+)p Fn(\021)83 1434 y Fk(virtual)33 b(T)-8 b(ransform)33 -b Fi(shift)13 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o -Fe(p)p Fm(\);)0 1633 y Fk(1015.)0 1757 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(olygon)k Fm(functions)k Fl(976)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 1857 y Fk(T)-8 b(ransform)33 b(P)m(olygon)13 -b Fm(::)8 b Fi(shift)13 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g -Fm(&)p Fe(p)o Fm(\))83 1957 y Fn(f)166 2056 y Fk(return)g -Fi(shift)13 b Fm(\()p Fe(p:)p Fi(get)p 837 2056 26 4 -v 31 w(x)g Fm(\()h(\))p Fe(;)g(p)q(:)p Fi(get)p 1205 -2056 V 30 w(y)e Fm(\()i(\))p Fe(;)g(p:)p Fi(get)p 1571 -2056 V 31 w(z)g Fm(\()g(\)\);)83 2156 y Fn(g)0 2355 y -Fk(1016.)94 b(Shift)32 b(times.)0 2554 y(1017.)94 b(real)32 -b(argumen)m(ts.)0 2679 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 -b Fm(functions)k Fl(975)14 b Fn(i)24 b Fm(+)p Fn(\021)83 -2779 y Fk(virtual)33 b(v)m(oid)f Fi(shift)p 761 2779 -V 32 w(times)11 b Fm(\()p Fk(real)33 b Fe(x;)14 b Fk(real)32 -b Fe(y)26 b Fm(=)d(1)o Fe(;)14 b Fk(real)33 b Fe(z)26 -b Fm(=)d(1)o(\);)0 2978 y Fk(1018.)0 3102 y Fn(h)14 b -Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k Fl(976)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3202 y Fk(v)m(oid)33 b(P)m(olygon)12 -b Fm(::)c Fi(shift)p 852 3202 V 32 w(times)j Fm(\()p -Fk(real)33 b Fe(x)q(;)14 b Fk(real)32 b Fe(y)s(;)14 b -Fk(real)32 b Fe(z)s Fm(\))83 3302 y Fn(f)166 3401 y Fk(P)m(ath)14 -b Fm(::)9 b Fi(shift)p 592 3401 V 31 w(times)i Fm(\()p -Fe(x)q(;)j(y)s(;)g(z)s Fm(\);)166 3501 y Fi(c)l(enter)f +%%Page: 293 293 +TeXDict begin 293 292 bop 0 83 a Fn(x)p Fm(1016)139 b +Fl(3DLDFPR)n(G)2150 b Fk(REAL)24 b Fl(AR)n(GUMENTS)140 +b Fm(293)0 263 y Fk(1016.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(P)m(olygon)k Fm(functions)k Fl(979)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(P)m(olygon)13 +b Fm(::)8 b Fi(shift)13 b Fm(\()p Fk(real)33 b Fe(x)q(;)14 +b Fk(real)32 b Fe(y)s(;)14 b Fk(real)32 b Fe(z)s Fm(\))83 +587 y Fn(f)166 686 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 +811 y Fe(t:)p Fi(shift)13 b Fm(\()p Fe(x)q(;)h(y)r(;)g(z)t +Fm(\);)166 911 y Fk(return)33 b Fm(\()p Fn(\003)p Fi(this)h +Fn(\003)p Fm(=)23 b Fe(t)p Fm(\);)83 1010 y Fn(g)0 1209 +y Fk(1017.)94 b(P)m(oin)m(t)32 b(argumen)m(t.)0 1334 +y Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k +Fl(978)14 b Fn(i)24 b Fm(+)p Fn(\021)83 1434 y Fk(virtual)33 +b(T)-8 b(ransform)33 b Fi(shift)13 b Fm(\()p Fk(const)33 +b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\);)0 1633 y Fk(1018.)0 +1757 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k +Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1857 y Fk(T)-8 +b(ransform)33 b(P)m(olygon)13 b Fm(::)8 b Fi(shift)13 +b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)p Fe(p)o Fm(\))83 +1957 y Fn(f)166 2056 y Fk(return)g Fi(shift)13 b Fm(\()p +Fe(p:)p Fi(get)p 837 2056 26 4 v 31 w(x)g Fm(\()h(\))p +Fe(;)g(p)q(:)p Fi(get)p 1205 2056 V 30 w(y)e Fm(\()i(\))p +Fe(;)g(p:)p Fi(get)p 1571 2056 V 31 w(z)g Fm(\()g(\)\);)83 +2156 y Fn(g)0 2355 y Fk(1019.)94 b(Shift)32 b(times.)0 +2554 y(1020.)94 b(real)32 b(argumen)m(ts.)0 2679 y Fn(h)14 +b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k Fl(978)14 +b Fn(i)24 b Fm(+)p Fn(\021)83 2779 y Fk(virtual)33 b(v)m(oid)f +Fi(shift)p 761 2779 V 32 w(times)11 b Fm(\()p Fk(real)33 +b Fe(x;)14 b Fk(real)32 b Fe(y)26 b Fm(=)d(1)o Fe(;)14 +b Fk(real)33 b Fe(z)26 b Fm(=)d(1)o(\);)0 2978 y Fk(1021.)0 +3102 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k Fm(functions)k +Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3202 y Fk(v)m(oid)33 +b(P)m(olygon)12 b Fm(::)c Fi(shift)p 852 3202 V 32 w(times)j +Fm(\()p Fk(real)33 b Fe(x)q(;)14 b Fk(real)32 b Fe(y)s(;)14 +b Fk(real)32 b Fe(z)s Fm(\))83 3302 y Fn(f)166 3401 y +Fk(P)m(ath)14 b Fm(::)9 b Fi(shift)p 592 3401 V 31 w(times)i +Fm(\()p Fe(x)q(;)j(y)s(;)g(z)s Fm(\);)166 3501 y Fi(c)l(enter)f Fe(:)p Fi(shift)p 581 3501 V 31 w(times)e Fm(\()p Fe(x)q(;)j(y)s(;)g(z) s Fm(\);)166 3601 y Fk(return)5 b Fm(;)83 3700 y Fn(g)0 -3899 y Fk(1019.)94 b(P)m(oin)m(t)32 b(argumen)m(t.)0 +3899 y Fk(1022.)94 b(P)m(oin)m(t)32 b(argumen)m(t.)0 4024 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)k -Fl(975)14 b Fn(i)24 b Fm(+)p Fn(\021)83 4124 y Fk(virtual)33 +Fl(978)14 b Fn(i)24 b Fm(+)p Fn(\021)83 4124 y Fk(virtual)33 b(v)m(oid)f Fi(shift)p 761 4124 V 32 w(times)11 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fe(p)p Fm(\);)p eop end -%%Page: 291 291 -TeXDict begin 291 290 bop 0 83 a Fn(x)p Fm(1020)139 b -Fl(3DLDFPR)n(G)2139 b Fk(POINT)24 b Fl(AR)n(GUMENT)140 -b Fm(291)0 263 y Fk(1020.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(P)m(olygon)k Fm(functions)k Fl(976)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(P)m(olygon)12 -b Fm(::)c Fi(shift)p 852 487 26 4 v 32 w(times)j Fm(\()p -Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\))83 587 -y Fn(f)166 686 y Fk(return)g Fi(shift)p 623 686 V 32 -w(times)11 b Fm(\()p Fe(p:)p Fi(get)p 1060 686 V 30 w(x)j -Fm(\()g(\))p Fe(;)g(p:)p Fi(get)p 1427 686 V 31 w(y)e -Fm(\()i(\))p Fe(;)g(p:)p Fi(get)p 1794 686 V 30 w(z)h -Fm(\()f(\)\);)83 786 y Fn(g)0 985 y Fk(1021.)94 b(Reg)p -483 985 29 4 v 33 w(P)m(olygon)i(\()p Fj(polygons.web)p -Fk(\).)541 b Fm([)p Fh(LDF)25 b(2003.04.15.)p Fm(])61 -b(TO)27 b(DO:)h(It)g(will)f(b)r(e)h(necessary)e(to)0 +%%Page: 294 294 +TeXDict begin 294 293 bop 0 83 a Fm(294)140 b Fk(POINT)24 +b Fl(AR)n(GUMENT)2137 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1023)0 +263 y Fk(1023.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olygon)k +Fm(functions)k Fl(979)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(v)m(oid)33 b(P)m(olygon)12 b Fm(::)c Fi(shift)p +852 487 26 4 v 32 w(times)j Fm(\()p Fk(const)33 b(P)m(oin)m(t)g +Fm(&)o Fe(p)p Fm(\))83 587 y Fn(f)166 686 y Fk(return)g +Fi(shift)p 623 686 V 32 w(times)11 b Fm(\()p Fe(p:)p +Fi(get)p 1060 686 V 30 w(x)j Fm(\()g(\))p Fe(;)g(p:)p +Fi(get)p 1427 686 V 31 w(y)e Fm(\()i(\))p Fe(;)g(p:)p +Fi(get)p 1794 686 V 30 w(z)h Fm(\()f(\)\);)83 786 y Fn(g)0 +985 y Fk(1024.)94 b(Reg)p 483 985 29 4 v 33 w(P)m(olygon)i(\()p +Fj(polygons.web)p Fk(\).)541 b Fm([)p Fh(LDF)25 b(2003.04.15.)p +Fm(])61 b(TO)27 b(DO:)h(It)g(will)f(b)r(e)h(necessary)e(to)0 1085 y(supply)k Fk(Reg)p 436 1085 29 5 v 39 w(P)m(olygon)35 b Fm(with)30 b(a)g(complete)g(set)g(of)g(transformation)e(functions,)j (so)e(that)i Fi(c)l(enter)43 b Fm(will)30 b(b)r(e)g(transformed)0 @@ -26206,67 +26192,66 @@ b(the)g(in)n(v)n(erse)e(of)i(the)f Fk(T)-8 b(ransform)34 b Fm(to)27 b(transform)g(the)h Fk(Circle)t Fm(.)83 1508 y Fk(format)65 b Fi(R)l(e)l(g)p 561 1508 V 30 w(Polygon)81 -b(Polygon)0 1708 y Fk(1022.)94 b(Reg)p 483 1708 29 4 +b(Polygon)0 1708 y Fk(1025.)94 b(Reg)p 483 1708 29 4 v 33 w(P)m(olygon)32 b(class)g(de\014nition.)93 b(Reg)p 1784 1708 29 5 v 40 w(P)m(olygon)32 b Fm(is)27 b(deriv)n(ed)g(from)g -Fk(P)m(olygon)5 b Fm(.)p 0 1807 1643 4 v 1738 1840 a -Fk(Begin)31 b(Log)p 2257 1807 V 83 1980 a Fm([)p Fh(LDF)25 -b(2003.04.15.)p Fm(])59 b(Changed,)26 b(so)f(that)h Fk(Reg)p -1551 1980 29 5 v 39 w(P)m(olygon)31 b Fm(is)25 b(deriv)n(ed)g(from)h +Fk(P)m(olygon)5 b Fm(.)p 0 1806 1779 4 v 1874 1839 a +Fk(Log)p 2122 1806 V 83 1980 a Fm([)p Fh(LDF)25 b(2003.04.15.)p +Fm(])59 b(Changed,)26 b(so)f(that)h Fk(Reg)p 1551 1980 +29 5 v 39 w(P)m(olygon)31 b Fm(is)25 b(deriv)n(ed)g(from)h Fk(P)m(ath)6 b Fm(.)36 b(Previously)-7 b(,)24 b(it)j(w)n(as)d(deriv)n -(ed)h(from)0 2080 y Fk(Reg)p 168 2080 V 39 w(Cl)p 303 -2080 V 40 w(Plane)p 578 2080 V 40 w(Curv)m(e)5 b Fm(.)83 +(ed)h(from)0 2079 y Fk(Reg)p 168 2079 V 39 w(Cl)p 303 +2079 V 40 w(Plane)p 578 2079 V 40 w(Curv)m(e)5 b Fm(.)83 2179 y([)p Fh(LDF)25 b(2003.04.27.)p Fm(])59 b(Changed)25 b Fk(protected)31 b Fm(data)25 b(mem)n(b)r(ers)g(to)g Fk(priv)-5 b(ate)5 b Fm(.)37 b(They)25 b(no)g(longer)g(need)g(to)h(b)r -(e)g Fk(protected)5 b Fm(,)0 2279 y(b)r(ecause)27 b Fk(Rectangle)32 +(e)g Fk(protected)5 b Fm(,)0 2278 y(b)r(ecause)27 b Fk(Rectangle)32 b Fm(is)c(no)f(longer)f(deriv)n(ed)h(from)g Fk(Reg)p -1855 2279 V 39 w(P)m(olygon)5 b Fm(.)83 2379 y([)p Fh(LDF)25 +1855 2278 V 39 w(P)m(olygon)5 b Fm(.)83 2378 y([)p Fh(LDF)25 b(2003.06.06.)p Fm(])54 b(Changed,)21 b(so)e(that)i Fk(Reg)p -1530 2379 V 39 w(P)m(olygon)k Fm(is)20 b(deriv)n(ed)f(from)h +1530 2378 V 39 w(P)m(olygon)k Fm(is)20 b(deriv)n(ed)f(from)h Fk(P)m(olygon)5 b Fm(,)21 b(whic)n(h)f(I'v)n(e)g(just)h(added)f(ab)r(o) -n(v)n(e.)p 0 2471 1678 4 v 1773 2503 a Fk(End)32 b(Log)p -2222 2471 V 0 2628 a Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Reg)p -694 2628 29 5 v 40 w(P)m(olygon)39 b Fl(1022)15 b Fn(i)24 -b(\021)83 2727 y Fk(class)32 b(Reg)p 474 2727 V 39 w(P)m(olygon)h -Fm(:)k Fk(public)32 b(P)m(olygon)g Fn(f)166 2827 y Fk(real)h -Fi(internal)p 643 2827 26 4 v 30 w(angle)11 b Fm(;)166 -2927 y Fk(real)33 b Fi(r)l(adius)11 b Fm(;)166 3026 y -Fk(unsigned)31 b(short)i Fi(sides)12 b Fm(;)166 3126 -y Fk(b)s(o)s(ol)31 b Fi(on)p 473 3126 V 30 w(fr)l(e)l(e)p -631 3126 V 31 w(stor)l(e)11 b Fm(;)83 3250 y Fk(public)t -Fm(:)42 b Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 920 3250 -29 5 v 39 w(P)m(olygon)32 b Fm(functions)k Fl(1023)15 -b Fn(i)83 3350 y(g)p Fm(;)0 3458 y Fl(This)23 b(co)r(de)i(is)e(used)h -(in)f(sections)i(1052)f(and)h(1053.)0 3657 y Fk(1023.)94 -b(Assignmen)m(t.)p 0 3757 1643 4 v 1738 3789 a(Begin)31 -b(Log)p 2257 3757 V 83 3930 a Fm([)p Fh(LDF)25 b(2002.12.18.)p -Fm(])53 b(Mo)n(v)n(ed)19 b(here.)34 b(With)20 b(the)g(DEC)g(compiler)f -(under)g(Compaq)g(T)-7 b(ru64)19 b(on)g(the)h(DEC)g(Alpha)f(computer,)0 -4029 y(it)25 b(w)n(ork)n(ed)e(to)i(ha)n(v)n(e)e(the)i(assignmen)n(t)f -(op)r(erators)e(follo)n(wing)i(the)h(constructors.)34 -b(With)26 b(the)f(GNU)g Fh(C)3193 4021 y Fg(+)-8 b(+)3316 -4029 y Fm(compiler)24 b(\(GCC\))0 4129 y(under)30 b(GNU/Lin)n(ux)h(on)f -(the)h(In)n(tel)f(i686)g(computer,)g(it)h(didn't.)47 -b(See)30 b Fk(P)m(ath)15 b Fm(::)8 b Fk(op)s(erator)d -Fm(=)o(\()14 b(\))31 b(in)g Fj(paths.web)c Fm(for)j(more)0 -4229 y(information.)p 0 4321 1678 4 v 1773 4353 a Fk(End)i(Log)p -2222 4321 V 0 4478 a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p -513 4478 29 5 v 39 w(P)m(olygon)32 b Fm(functions)k Fl(1023)15 -b Fn(i)23 b(\021)83 4577 y Fk(const)32 b(Reg)p 501 4577 +n(v)n(e.)p 0 2470 3900 4 v 0 2627 a Fn(h)14 b Fm(De\014ne)28 +b Fk(class)k(Reg)p 694 2627 29 5 v 40 w(P)m(olygon)39 +b Fl(1025)15 b Fn(i)24 b(\021)83 2727 y Fk(class)32 b(Reg)p +474 2727 V 39 w(P)m(olygon)h Fm(:)k Fk(public)32 b(P)m(olygon)g +Fn(f)166 2826 y Fk(real)h Fi(internal)p 643 2826 26 4 +v 30 w(angle)11 b Fm(;)166 2926 y Fk(real)33 b Fi(r)l(adius)11 +b Fm(;)166 3026 y Fk(unsigned)31 b(short)i Fi(sides)12 +b Fm(;)166 3125 y Fk(b)s(o)s(ol)31 b Fi(on)p 473 3125 +V 30 w(fr)l(e)l(e)p 631 3125 V 31 w(stor)l(e)11 b Fm(;)83 +3250 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 +b Fk(Reg)p 920 3250 29 5 v 39 w(P)m(olygon)32 b Fm(functions)k +Fl(1026)15 b Fn(i)83 3349 y(g)p Fm(;)0 3457 y Fl(This)23 +b(co)r(de)i(is)e(used)h(in)f(sections)i(1055)f(and)h(1056.)0 +3657 y Fk(1026.)94 b(Assignmen)m(t.)p 0 3755 1779 4 v +1874 3788 a(Log)p 2122 3755 V 83 3928 a Fm([)p Fh(LDF)25 +b(2002.12.18.)p Fm(])53 b(Mo)n(v)n(ed)19 b(here.)34 b(With)20 +b(the)g(DEC)g(compiler)f(under)g(Compaq)g(T)-7 b(ru64)19 +b(on)g(the)h(DEC)g(Alpha)f(computer,)0 4028 y(it)25 b(w)n(ork)n(ed)e +(to)i(ha)n(v)n(e)e(the)i(assignmen)n(t)f(op)r(erators)e(follo)n(wing)i +(the)h(constructors.)34 b(With)26 b(the)f(GNU)g Fh(C)3193 +4020 y Fg(+)-8 b(+)3316 4028 y Fm(compiler)24 b(\(GCC\))0 +4128 y(under)30 b(GNU/Lin)n(ux)h(on)f(the)h(In)n(tel)f(i686)g +(computer,)g(it)h(didn't.)47 b(See)30 b Fk(P)m(ath)15 +b Fm(::)8 b Fk(op)s(erator)d Fm(=)o(\()14 b(\))31 b(in)g +Fj(paths.web)c Fm(for)j(more)0 4227 y(information.)p +0 4319 3900 4 v 0 4476 a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p +513 4476 29 5 v 39 w(P)m(olygon)32 b Fm(functions)k Fl(1026)15 +b Fn(i)23 b(\021)83 4576 y Fk(const)32 b(Reg)p 501 4576 V 40 w(P)m(olygon)g Fm(&)o Fk(op)s(erator)5 b Fm(=\()p -Fk(const)33 b(Reg)p 1847 4577 V 39 w(P)m(olygon)f Fm(&)p -Fe(p)o Fm(\);)0 4685 y Fl(See)24 b(also)g(sections)g(1026,)h(1029,)f -(1032,)g(1036,)h(1038,)f(1042,)g(1044,)g(1046,)h(1047,)f(1048,)g(1050,) -g(and)h(1051.)0 4793 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i -(1022.)p eop end -%%Page: 292 292 -TeXDict begin 292 291 bop 0 83 a Fm(292)140 b Fl(ASSIGNMENT)2422 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1024)0 263 y Fk(1024.)0 -388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 388 29 -5 v 39 w(P)m(olygon)33 b Fm(functions)i Fl(1024)15 b -Fn(i)24 b(\021)83 487 y Fk(const)32 b(Reg)p 501 487 V -40 w(P)m(olygon)g Fm(&)o Fk(Reg)p 1137 487 V 40 w(P)m(olygon)13 +Fk(const)33 b(Reg)p 1847 4576 V 39 w(P)m(olygon)f Fm(&)p +Fe(p)o Fm(\);)0 4684 y Fl(See)24 b(also)g(sections)g(1029,)h(1032,)f +(1035,)g(1039,)h(1041,)f(1045,)g(1047,)g(1049,)h(1050,)f(1051,)g(1053,) +g(and)h(1054.)0 4792 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i +(1025.)p eop end +%%Page: 295 295 +TeXDict begin 295 294 bop 0 83 a Fn(x)p Fm(1027)139 b +Fl(3DLDFPR)n(G)2423 b(ASSIGNMENT)141 b Fm(295)0 263 y +Fk(1027.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p +471 388 29 5 v 39 w(P)m(olygon)33 b Fm(functions)i Fl(1027)15 +b Fn(i)24 b(\021)83 487 y Fk(const)32 b(Reg)p 501 487 +V 40 w(P)m(olygon)g Fm(&)o Fk(Reg)p 1137 487 V 40 w(P)m(olygon)13 b Fm(::)8 b Fk(op)s(erator)d Fm(=)o(\()p Fk(const)33 b(Reg)p 2453 487 V 39 w(P)m(olygon)g Fm(&)o Fe(p)p Fm(\))83 587 y Fn(f)166 686 y Fi(cle)l(ar)14 b Fm(\()g(\);)166 @@ -26278,18 +26263,18 @@ Fi(sides)35 b Fm(=)23 b Fe(p:)p Fi(sides)12 b Fm(;)166 1185 y Fi(c)l(enter)36 b Fm(=)23 b Fe(p)o(:)p Fi(c)l(enter)13 b Fm(;)166 1284 y Fk(return)33 b Fn(\003)p Fi(this)11 -b Fm(;)83 1384 y Fn(g)0 1492 y Fl(See)24 b(also)g(sections)g(1027,)h -(1030,)f(1031,)g(1033,)h(1034,)f(1037,)g(1039,)g(1265,)h(1267,)f(1268,) -g(1269,)g(1271,)h(and)f(1272.)0 1600 y(This)f(co)r(de)i(is)e(used)h(in) -f(sections)i(1052)f(and)h(1273.)0 1799 y Fk(1025.)94 +b Fm(;)83 1384 y Fn(g)0 1492 y Fl(See)24 b(also)g(sections)g(1030,)h +(1033,)f(1034,)g(1036,)h(1037,)f(1040,)g(1042,)g(1270,)h(1272,)f(1273,) +g(1274,)g(1276,)h(and)f(1277.)0 1600 y(This)f(co)r(de)i(is)e(used)h(in) +f(sections)i(1055)f(and)h(1278.)0 1799 y Fk(1028.)94 b(Constructors)32 b(and)g(setting)f(functions.)0 1998 -y(1026.)94 b(Default)32 b(constructor.)96 b Fm(No)27 +y(1029.)94 b(Default)32 b(constructor.)96 b Fm(No)27 b(argumen)n(ts.)0 2123 y Fn(h)14 b Fm(Declare)27 b Fk(Reg)p -513 2123 29 5 v 39 w(P)m(olygon)32 b Fm(functions)k Fl(1023)15 +513 2123 29 5 v 39 w(P)m(olygon)32 b Fm(functions)k Fl(1026)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2222 y Fk(Reg)p 251 2222 -V 39 w(P)m(olygon)5 b Fm(\()14 b(\);)0 2422 y Fk(1027.)0 +V 39 w(P)m(olygon)5 b Fm(\()14 b(\);)0 2422 y Fk(1030.)0 2546 y Fn(h)g Fm(De\014ne)28 b Fk(Reg)p 471 2546 V 39 -w(P)m(olygon)33 b Fm(functions)i Fl(1024)15 b Fn(i)24 +w(P)m(olygon)33 b Fm(functions)i Fl(1027)15 b Fn(i)24 b Fm(+)p Fn(\021)83 2646 y Fk(Reg)p 251 2646 V 39 w(P)m(olygon)13 b Fm(::)8 b Fk(Reg)p 857 2646 V 40 w(P)m(olygon)t Fm(\()14 b(\))83 2745 y Fn(f)166 2845 y Fi(on)p 260 2845 26 4 @@ -26301,10 +26286,10 @@ w(extr)l(emes)h Fe(:)p Fi(r)l(esize)g Fm(\(6)o Fe(;)j Fm(0\);)166 b Fe(=)p Fn(\003)41 b Fm(LDF)28 b(2003.04.09.)33 b(Added)28 b(this)g(line.)51 b Fn(\003)p Fe(=)83 3244 -y Fn(g)0 3443 y Fk(1028.)94 b(Cen)m(ter,)32 b(sides,)e(diameter,)g(and) -j(angles.)0 3642 y(1029.)94 b(Constructor.)0 3767 y Fn(h)14 +y Fn(g)0 3443 y Fk(1031.)94 b(Cen)m(ter,)32 b(sides,)e(diameter,)g(and) +j(angles.)0 3642 y(1032.)94 b(Constructor.)0 3767 y Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 3767 29 5 v 39 w(P)m(olygon)32 -b Fm(functions)k Fl(1023)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +b Fm(functions)k Fl(1026)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3866 y Fk(Reg)p 251 3866 V 39 w(P)m(olygon)5 b Fm(\()p Fk(const)35 b(P)m(oin)m(t)g Fm(&)o Fi(c)l(c)l(enter)13 b Fe(;)h Fk(const)34 b(unsigned)g(short)g Fi(ssides)12 @@ -26314,35 +26299,33 @@ Fi(angle)p 1527 3966 V 31 w(y)i Fm(=)22 b(0)p Fe(;)14 b Fk(const)32 b(real)h Fi(angle)p 2424 3966 V 31 w(z)k Fm(=)23 b(0\);)p eop end -%%Page: 293 293 -TeXDict begin 293 292 bop 0 83 a Fn(x)p Fm(1030)139 b -Fl(3DLDFPR)n(G)2344 b(CONSTR)n(UCTOR)140 b Fm(293)0 263 -y Fk(1030.)p 0 338 1643 4 v 1738 370 a(Begin)31 b(Log)p -2257 338 V 83 511 a Fm([)p Fh(LDF)25 b(2003.08.27.)p -Fm(])60 b(Rev)n(ersed)26 b(the)h(order)f(of)g(the)h(initializations)g -(follo)n(wing)e(\\:",)i(b)r(ecause)f(GCC)h(with)g(the)g(\\)p -Fj(--Wall)p Fm(")0 611 y(option)g(issued)h(the)g(follo)n(wing)e(w)n -(arning:)0 710 y(\\`)p Fk(Reg)p 233 710 29 5 v 39 w(P)m(olygon)13 -b Fm(::)8 b Fi(sides)k Fm(')28 b(will)g(b)r(e)g(initialized)f(after)h -(`)p Fk(real)k(Reg)p 2135 710 V 39 w(P)m(olygon)13 b -Fm(::)8 b Fi(r)l(adius)k Fm('".)p 0 802 1678 4 v 1773 -835 a Fk(End)32 b(Log)p 2222 802 V 0 959 a Fn(h)14 b -Fm(De\014ne)28 b Fk(Reg)p 471 959 29 5 v 39 w(P)m(olygon)33 -b Fm(functions)i Fl(1024)15 b Fn(i)24 b Fm(+)p Fn(\021)83 -1058 y Fk(Reg)p 251 1058 V 39 w(P)m(olygon)13 b Fm(::)8 -b Fk(Reg)p 857 1058 V 40 w(P)m(olygon)t Fm(\()p Fk(const)36 -b(P)m(oin)m(t)g Fm(&)o Fi(c)l(c)l(enter)13 b Fe(;)h Fk(const)35 -b(unsigned)g(short)g Fi(ssides)12 b Fe(;)i Fk(const)35 -b(real)415 1158 y Fi(ddiameter)15 b Fe(;)f Fk(const)32 -b(real)h Fi(angle)p 1455 1158 26 4 v 31 w(x)14 b Fe(;)g -Fk(const)32 b(real)g Fi(angle)p 2200 1158 V 32 w(y)12 -b Fe(;)i Fk(const)32 b(real)g Fi(angle)p 2945 1158 V -32 w(z)14 b Fm(\):)37 b Fi(r)l(adius)12 b Fm(\()p Fi(ddiameter)j -Fe(=)p Fm(2)o(\))p Fe(;)415 1258 y Fi(sides)d Fm(\()p -Fi(ssides)g Fm(\))28 b Fn(f)g Fk(b)s(o)s(ol)i Ff(DEBUG)c -Fm(=)c Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)41 b Fi(true)51 -b Fn(\003)p Fe(=)249 1382 y Fk(if)59 b Fm(\()p Ff(DEBUG)s -Fm(\))41 b Fi(c)l(out)65 b Fn(\034)52 b Ff("Entering)p +%%Page: 296 296 +TeXDict begin 296 295 bop 0 83 a Fm(296)140 b Fl(CONSTR)n(UCTOR)2342 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1033)0 263 y Fk(1033.)p +0 338 1779 4 v 1874 370 a(Log)p 2122 338 V 83 511 a Fm([)p +Fh(LDF)25 b(2003.08.27.)p Fm(])60 b(Rev)n(ersed)26 b(the)h(order)f(of)g +(the)h(initializations)g(follo)n(wing)e(\\:",)i(b)r(ecause)f(GCC)h +(with)g(the)g(\\)p Fj(--Wall)p Fm(")0 611 y(option)g(issued)h(the)g +(follo)n(wing)e(w)n(arning:)0 710 y(\\`)p Fk(Reg)p 233 +710 29 5 v 39 w(P)m(olygon)13 b Fm(::)8 b Fi(sides)k +Fm(')28 b(will)g(b)r(e)g(initialized)f(after)h(`)p Fk(real)k(Reg)p +2135 710 V 39 w(P)m(olygon)13 b Fm(::)8 b Fi(r)l(adius)k +Fm('".)p 0 802 3900 4 v 0 959 a Fn(h)i Fm(De\014ne)28 +b Fk(Reg)p 471 959 29 5 v 39 w(P)m(olygon)33 b Fm(functions)i +Fl(1027)15 b Fn(i)24 b Fm(+)p Fn(\021)83 1058 y Fk(Reg)p +251 1058 V 39 w(P)m(olygon)13 b Fm(::)8 b Fk(Reg)p 857 +1058 V 40 w(P)m(olygon)t Fm(\()p Fk(const)36 b(P)m(oin)m(t)g +Fm(&)o Fi(c)l(c)l(enter)13 b Fe(;)h Fk(const)35 b(unsigned)g(short)g +Fi(ssides)12 b Fe(;)i Fk(const)35 b(real)415 1158 y Fi(ddiameter)15 +b Fe(;)f Fk(const)32 b(real)h Fi(angle)p 1455 1158 26 +4 v 31 w(x)14 b Fe(;)g Fk(const)32 b(real)g Fi(angle)p +2200 1158 V 32 w(y)12 b Fe(;)i Fk(const)32 b(real)g Fi(angle)p +2945 1158 V 32 w(z)14 b Fm(\):)37 b Fi(r)l(adius)12 b +Fm(\()p Fi(ddiameter)j Fe(=)p Fm(2)o(\))p Fe(;)415 1258 +y Fi(sides)d Fm(\()p Fi(ssides)g Fm(\))28 b Fn(f)g Fk(b)s(o)s(ol)i +Ff(DEBUG)c Fm(=)c Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)41 +b Fi(true)51 b Fn(\003)p Fe(=)249 1382 y Fk(if)59 b Fm(\()p +Ff(DEBUG)s Fm(\))41 b Fi(c)l(out)65 b Fn(\034)52 b Ff("Entering)p Fj( )p Ff(Reg_Pol)o(yg)o(o)-6 b(n::Reg_Polygon\(\))o Fj( )p Ff(")50 b Fn(\034)498 1481 y Ff("\(center,)p Fj( )p Ff(sides,)p Fj( )o Ff(di)o(a)-6 b(meter,)p Fj( )p Ff(angles\).\\)o(n") @@ -26358,7 +26341,7 @@ Fn(\003)41 b Fm(LDF)28 b(2003.04.09.)33 b(Added)28 b(this)g(line.)51 b Fn(\003)p Fe(=)249 1979 y Fi(c)l(enter)13 b Fe(:)p Fi(apply)p 697 1979 V 32 w(tr)l(ansform)e Fm(\()j(\);)0 -2177 y Fk(1031.)94 b Fm(F)-7 b(or)23 b(regular)f(p)r(olygons)g(with)i +2177 y Fk(1034.)94 b Fm(F)-7 b(or)23 b(regular)f(p)r(olygons)g(with)i (an)g(ev)n(en)f(n)n(um)n(b)r(er)g(of)h(sides,)g(w)n(e)g(rotate)e(them)i (so)f(that)h(a)g(\015at)f(side)h(is)f(at)h(the)g(\\top")0 2277 y(\(in)k(the)g(direction)f(of)h(the)g(p)r(ositiv)n(e)f(z-axis,)f @@ -26366,7 +26349,7 @@ 2007 2277 V 32 w(y)11 b Fm(,)28 b(and)g Fi(angle)p 2489 2277 V 31 w(z)42 b Fm(are)27 b(all)g(0\).)0 2401 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 2401 29 5 v 39 w(P)m(olygon)33 -b Fm(functions)i Fl(1024)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +b Fm(functions)i Fl(1027)15 b Fn(i)24 b Fm(+)p Fn(\021)83 2500 y Fk(for)33 b Fm(\()p Fk(in)m(t)f Fe(i)23 b Fm(=)g(0)o(;)42 b Fe(i)23 b(<)f Fi(sides)12 b Fm(;)42 b Fe(i)1078 2492 y Fg(+)-8 b(+)1175 2500 y Fm(\))42 b Fn(f)166 2600 y @@ -26405,9 +26388,9 @@ Fj( )p Ff(sides,)o Fj( )p Ff(di)o(a)-6 b(meter,)p Fj( )p Ff(angles\).\\)o(n")21 b Fn(\034)332 3820 y Fi(\015ush)10 b Fm(;)83 3919 y Fk(return)5 b Fm(;)37 b Fn(g)0 4117 -y Fk(1032.)94 b(Setting)31 b(function.)0 4241 y Fn(h)14 +y Fk(1035.)94 b(Setting)31 b(function.)0 4241 y Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 4241 29 5 v 39 w(P)m(olygon)32 -b Fm(functions)k Fl(1023)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +b Fm(functions)k Fl(1026)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4341 y Fk(v)m(oid)35 b Fi(set)12 b Fm(\()p Fk(const)35 b(P)m(oin)m(t)h Fm(&)o Fi(c)l(c)l(enter)13 b Fe(;)h Fk(const)35 b(unsigned)f(short)g Fi(ssides)12 b Fe(;)i Fk(const)35 @@ -26416,10 +26399,10 @@ Fe(;)14 b Fk(const)33 b(real)f Fi(angle)p 1338 4440 V 31 w(y)j Fm(=)23 b(0)o Fe(;)14 b Fk(const)33 b(real)f Fi(angle)p 2235 4440 V 32 w(z)37 b Fm(=)23 b(0)o(\);)0 -4638 y Fk(1033.)94 b Fm(??)37 b([)p Fh(LDF)26 b(2002.10.07.)p +4638 y Fk(1036.)94 b Fm(??)37 b([)p Fh(LDF)26 b(2002.10.07.)p Fm(])60 b(See)28 b(b)r(elo)n(w.)0 4762 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 4762 29 5 v 39 w(P)m(olygon)33 b Fm(functions)i -Fl(1024)15 b Fn(i)24 b Fm(+)p Fn(\021)83 4861 y Fk(v)m(oid)39 +Fl(1027)15 b Fn(i)24 b Fm(+)p Fn(\021)83 4861 y Fk(v)m(oid)39 b(Reg)p 465 4861 V 39 w(P)m(olygon)13 b Fm(::)8 b Fi(set)k Fm(\()p Fk(const)39 b(P)m(oin)m(t)g Fm(&)p Fi(c)l(c)l(enter)12 b Fe(;)i Fk(const)39 b(unsigned)f(short)g Fi(ssides)12 @@ -26436,10 +26419,10 @@ Fj( )p Ff(sides,)o Fj( )p Ff(d)o(ia)-6 b(meter,)p Fj( )p Ff(angles\).)o(\\n")22 b Fn(\034)498 5384 y Fi(\015ush)10 b Fm(;)p eop end -%%Page: 294 294 -TeXDict begin 294 293 bop 0 83 a Fm(294)140 b Fl(SETTING)24 -b(FUNCTION)2170 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1034)0 -263 y Fk(1034.)94 b Fm(??)37 b([)p Fh(LDF)25 b(2002.10.07.)p +%%Page: 297 297 +TeXDict begin 297 296 bop 0 83 a Fn(x)p Fm(1037)139 b +Fl(3DLDFPR)n(G)2171 b(SETTING)24 b(FUNCTION)141 b Fm(297)0 +263 y Fk(1037.)94 b Fm(??)37 b([)p Fh(LDF)25 b(2002.10.07.)p Fm(])60 b(A)n(t)26 b(exactly)g(this)h(place,)f Fk(P)m(ath)14 b Fm(::)8 b Fk(P)m(ath)f Fm(\()14 b(\))27 b(\(the)g(default)f(v)n (ersion)f(with)i(no)f(argumen)n(ts\))0 363 y(is)31 b(in)n(v)n(ok)n(ed.) @@ -26454,7 +26437,7 @@ b(it's)i(destro)n(y)n(ed)e(cleanly)-7 b(,)27 b(so)g(I)h(don't)f(ha)n(v) n(e)g(to)g(w)n(orry)f(ab)r(out)i(leak)-5 b(age.)0 686 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 686 29 5 v -39 w(P)m(olygon)33 b Fm(functions)i Fl(1024)15 b Fn(i)24 +39 w(P)m(olygon)33 b Fm(functions)i Fl(1027)15 b Fn(i)24 b Fm(+)p Fn(\021)83 786 y Fk(Reg)p 251 786 V 39 w(P)m(olygon)32 b Fe(p)p Fm(\()p Fi(c)l(c)l(enter)13 b Fe(;)h Fi(ssides)e Fe(;)i Fi(ddiameter)h Fe(;)f Fi(angle)p 1889 786 26 4 @@ -26466,66 +26449,64 @@ b(::set\(\))p Fj( )p Ff(")23 b Fn(\034)g Ff("\(center,)p Fj( )p Ff(sides,)p Fj( )o Ff(di)o(a)-6 b(meter,)p Fj( )p Ff(angles\).\\)o(n")21 b Fn(\034)i Fi(\015ush)10 b Fm(;)83 -1209 y Fk(return)5 b Fm(;)37 b Fn(g)0 1409 y Fk(1035.)94 +1209 y Fk(return)5 b Fm(;)37 b Fn(g)0 1409 y Fk(1038.)94 b(Pseudo-constructor)32 b(for)g(dynamic)g(allo)s(cation.)0 -1608 y(1036.)94 b(Optional)31 b(p)s(oin)m(ter)g(argumen)m(t.)p -0 1707 1643 4 v 1738 1740 a(Begin)g(Log)p 2257 1707 V -83 1881 a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Added)28 -b(optional)f Fk(Reg)p 1495 1881 29 5 v 39 w(P)m(olygon)33 +1608 y(1039.)94 b(Optional)31 b(p)s(oin)m(ter)g(argumen)m(t.)p +0 1707 1779 4 v 1874 1739 a(Log)p 2122 1707 V 83 1880 +a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Added)28 +b(optional)f Fk(Reg)p 1495 1880 29 5 v 39 w(P)m(olygon)33 b Fm(p)r(oin)n(ter)27 b(argumen)n(t.)36 b(Made)27 b(non-)p -Fk(inline)s Fm(.)p 0 1972 1678 4 v 1773 2005 a Fk(End)32 -b(Log)p 2222 1972 V 0 2130 a Fn(h)14 b Fm(Declare)27 -b Fk(Reg)p 513 2130 29 5 v 39 w(P)m(olygon)32 b Fm(functions)k -Fl(1023)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2229 y Fk(static)33 -b(Reg)p 511 2229 V 39 w(P)m(olygon)f Fn(\003)p Fi(cr)l(e)l(ate)p -1172 2229 26 4 v 30 w(new)p 1342 2229 V 31 w(r)l(e)l(g)p -1476 2229 V 30 w(p)l(olygon)12 b Fm(\()p Fk(const)33 -b(Reg)p 2232 2229 29 5 v 39 w(P)m(olygon)g Fn(\003)o -Fe(r)26 b Fm(=)d(0)o(\);)0 2429 y Fk(1037.)0 2553 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Reg)p 471 2553 V 39 w(P)m(olygon)33 -b Fm(functions)i Fl(1024)15 b Fn(i)24 b Fm(+)p Fn(\021)83 -2653 y Fk(Reg)p 251 2653 V 39 w(P)m(olygon)32 b Fn(\003)p -Fk(Reg)p 864 2653 V 39 w(P)m(olygon)13 b Fm(::)8 b Fi(cr)l(e)l(ate)p -1518 2653 26 4 v 31 w(new)p 1689 2653 V 31 w(r)l(e)l(g)p -1823 2653 V 30 w(p)l(olygon)k Fm(\()p Fk(const)33 b(Reg)p -2579 2653 29 5 v 39 w(P)m(olygon)f Fn(\003)p Fe(r)s Fm(\))83 -2752 y Fn(f)166 2852 y Fk(Reg)p 334 2852 V 39 w(P)m(olygon)g -Fn(\003)p Fe(p)23 b Fm(=)f Fk(new)34 b Fm(\()p Fk(Reg)p -1331 2852 V 39 w(P)m(olygon)5 b Fm(\);)166 2976 y Fk(if)41 -b Fm(\()p Fe(r)26 b Fn(6)p Fm(=)d(0)o(\))42 b Fn(\003)p -Fe(p)23 b Fm(=)f Fn(\003)p Fe(r)s Fm(;)166 3076 y Fe(p)191 -3101 y(~)241 3076 y Fi(on)p 335 3076 26 4 v 31 w(fr)l(e)l(e)p -494 3076 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(true)10 b -Fm(;)166 3176 y Fe(p)191 3201 y(~)241 3176 y Fi(cycle)p -421 3176 V 32 w(switch)34 b Fm(=)23 b Fi(true)10 b Fm(;)166 -3275 y Fe(p)191 3300 y(~)241 3275 y Fi(line)p 377 3275 -V 31 w(switch)35 b Fm(=)22 b Fi(false)12 b Fm(;)166 3375 -y Fe(p)191 3400 y(~)241 3375 y Fi(pr)l(oje)l(ctive)p -587 3375 V 32 w(extr)l(emes)f Fe(:)p Fi(r)l(esize)g Fm(\(6)o -Fe(;)j Fm(0\);)166 b Fe(=)p Fn(\003)41 b Fm(LDF)28 b(2003.04.09.)33 -b(Added)28 b(this)g(line.)51 b Fn(\003)p Fe(=)166 3475 -y Fk(return)33 b Fe(p)p Fm(;)83 3574 y Fn(g)0 3773 y -Fk(1038.)94 b(Required)31 b(Reg)p 896 3773 29 4 v 34 -w(P)m(olygon)g(argumen)m(t.)p 0 3873 1643 4 v 1738 3905 -a(Begin)g(Log)p 2257 3873 V 83 4046 a Fm([)p Fh(LDF)25 -b(2002.11.06.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 4138 1678 4 v 1773 4171 a Fk(End)k(Log)p 2222 4138 -V 0 4295 a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 4295 -29 5 v 39 w(P)m(olygon)32 b Fm(functions)k Fl(1023)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 4395 y Fk(static)33 b(Reg)p -511 4395 V 39 w(P)m(olygon)f Fn(\003)p Fi(cr)l(e)l(ate)p -1172 4395 26 4 v 30 w(new)p 1342 4395 V 31 w(r)l(e)l(g)p -1476 4395 V 30 w(p)l(olygon)12 b Fm(\()p Fk(const)33 -b(Reg)p 2232 4395 29 5 v 39 w(P)m(olygon)g Fm(&)o Fe(r)s +Fk(inline)s Fm(.)p 0 1972 3900 4 v 0 2129 a Fn(h)14 b +Fm(Declare)27 b Fk(Reg)p 513 2129 29 5 v 39 w(P)m(olygon)32 +b Fm(functions)k Fl(1026)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2229 y Fk(static)33 b(Reg)p 511 2229 V 39 w(P)m(olygon)f +Fn(\003)p Fi(cr)l(e)l(ate)p 1172 2229 26 4 v 30 w(new)p +1342 2229 V 31 w(r)l(e)l(g)p 1476 2229 V 30 w(p)l(olygon)12 +b Fm(\()p Fk(const)33 b(Reg)p 2232 2229 29 5 v 39 w(P)m(olygon)g +Fn(\003)o Fe(r)26 b Fm(=)d(0)o(\);)0 2428 y Fk(1040.)0 +2552 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 2552 V +39 w(P)m(olygon)33 b Fm(functions)i Fl(1027)15 b Fn(i)24 +b Fm(+)p Fn(\021)83 2652 y Fk(Reg)p 251 2652 V 39 w(P)m(olygon)32 +b Fn(\003)p Fk(Reg)p 864 2652 V 39 w(P)m(olygon)13 b +Fm(::)8 b Fi(cr)l(e)l(ate)p 1518 2652 26 4 v 31 w(new)p +1689 2652 V 31 w(r)l(e)l(g)p 1823 2652 V 30 w(p)l(olygon)k +Fm(\()p Fk(const)33 b(Reg)p 2579 2652 29 5 v 39 w(P)m(olygon)f +Fn(\003)p Fe(r)s Fm(\))83 2752 y Fn(f)166 2851 y Fk(Reg)p +334 2851 V 39 w(P)m(olygon)g Fn(\003)p Fe(p)23 b Fm(=)f +Fk(new)34 b Fm(\()p Fk(Reg)p 1331 2851 V 39 w(P)m(olygon)5 +b Fm(\);)166 2976 y Fk(if)41 b Fm(\()p Fe(r)26 b Fn(6)p +Fm(=)d(0)o(\))42 b Fn(\003)p Fe(p)23 b Fm(=)f Fn(\003)p +Fe(r)s Fm(;)166 3075 y Fe(p)191 3100 y(~)241 3075 y Fi(on)p +335 3075 26 4 v 31 w(fr)l(e)l(e)p 494 3075 V 31 w(stor)l(e)33 +b Fm(=)23 b Fi(true)10 b Fm(;)166 3175 y Fe(p)191 3200 +y(~)241 3175 y Fi(cycle)p 421 3175 V 32 w(switch)34 b +Fm(=)23 b Fi(true)10 b Fm(;)166 3275 y Fe(p)191 3300 +y(~)241 3275 y Fi(line)p 377 3275 V 31 w(switch)35 b +Fm(=)22 b Fi(false)12 b Fm(;)166 3374 y Fe(p)191 3399 +y(~)241 3374 y Fi(pr)l(oje)l(ctive)p 587 3374 V 32 w(extr)l(emes)f +Fe(:)p Fi(r)l(esize)g Fm(\(6)o Fe(;)j Fm(0\);)166 b Fe(=)p +Fn(\003)41 b Fm(LDF)28 b(2003.04.09.)33 b(Added)28 b(this)g(line.)51 +b Fn(\003)p Fe(=)166 3474 y Fk(return)33 b Fe(p)p Fm(;)83 +3574 y Fn(g)0 3773 y Fk(1041.)94 b(Required)31 b(Reg)p +896 3773 29 4 v 34 w(P)m(olygon)g(argumen)m(t.)p 0 3871 +1779 4 v 1874 3904 a(Log)p 2122 3871 V 83 4045 a Fm([)p +Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 4137 3900 4 v 0 4294 a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p +513 4294 29 5 v 39 w(P)m(olygon)32 b Fm(functions)k Fl(1026)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 4393 y Fk(static)33 b(Reg)p +511 4393 V 39 w(P)m(olygon)f Fn(\003)p Fi(cr)l(e)l(ate)p +1172 4393 26 4 v 30 w(new)p 1342 4393 V 31 w(r)l(e)l(g)p +1476 4393 V 30 w(p)l(olygon)12 b Fm(\()p Fk(const)33 +b(Reg)p 2232 4393 29 5 v 39 w(P)m(olygon)g Fm(&)o Fe(r)s Fm(\);)p eop end -%%Page: 295 295 -TeXDict begin 295 294 bop 0 83 a Fn(x)p Fm(1039)139 b -Fl(3DLDFPR)n(G)1319 b(REQUIRED)23 b Fk(REG)p 2675 83 -29 4 v 34 w(POL)-8 b(YGON)24 b Fl(AR)n(GUMENT)140 b Fm(295)0 -263 y Fk(1039.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p -471 388 29 5 v 39 w(P)m(olygon)33 b Fm(functions)i Fl(1024)15 -b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(Reg)p 251 487 -V 39 w(P)m(olygon)32 b Fn(\003)p Fk(Reg)p 864 487 V 39 +%%Page: 298 298 +TeXDict begin 298 297 bop 0 83 a Fm(298)140 b Fl(REQUIRED)23 +b Fk(REG)p 892 83 29 4 v 34 w(POL)-8 b(YGON)23 b Fl(AR)n(GUMENT)1318 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1042)0 263 y Fk(1042.)0 +388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 388 29 +5 v 39 w(P)m(olygon)33 b Fm(functions)i Fl(1027)15 b +Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(Reg)p 251 487 V +39 w(P)m(olygon)32 b Fn(\003)p Fk(Reg)p 864 487 V 39 w(P)m(olygon)13 b Fm(::)8 b Fi(cr)l(e)l(ate)p 1518 487 26 4 v 31 w(new)p 1689 487 V 31 w(r)l(e)l(g)p 1823 487 V 30 w(p)l(olygon)k Fm(\()p Fk(const)33 b(Reg)p 2579 @@ -26545,58 +26526,54 @@ Fe(;)j Fm(0\);)166 b Fe(=)p Fn(\003)41 b Fm(LDF)28 b(2003.04.09.)33 b(Added)28 b(this)g(line.)51 b Fn(\003)p Fe(=)166 1309 y Fk(return)33 b Fe(p)p Fm(;)83 1409 y Fn(g)0 1608 y -Fk(1040.)94 b(Destructor.)i Fm([)p Fh(LDF)25 b(2002.10.09.)p +Fk(1043.)94 b(Destructor.)i Fm([)p Fh(LDF)25 b(2002.10.09.)p Fm(])61 b(Remo)n(v)n(ed)26 b(the)i(destructor.)36 b Fk(P)m(ath)15 b Fm(::)8 b Fn(\030)p Fk(P)m(ath)e Fm(\()14 b(\))28 b(or)e Fk(P)m(ath)15 b Fm(::)8 b Fi(cle)l(ar)14 b Fm(\()g(\))0 1708 y(should)33 b(b)r(e)h(used)f(instead,)h(unless)f(I)h(add)f (dynamically)f(allo)r(cated)h(data)f(mem)n(b)r(ers)h(to)g Fk(Reg)p 3037 1708 29 5 v 40 w(P)m(olygon)38 b Fm(\(rather)32 -b(than)0 1807 y Fk(P)m(ath)6 b Fm(\).)0 2006 y Fk(1041.)94 +b(than)0 1807 y Fk(P)m(ath)6 b Fm(\).)0 2006 y Fk(1044.)94 b(Returning)31 b(elemen)m(ts)f(and)j(information.)p 0 -2106 1643 4 v 1738 2138 a(Begin)e(Log)p 2257 2106 V 83 -2279 a Fm([)p Fh(LDF)25 b(2002.11.03.)p Fm(])71 b(Remo)n(v)n(ed)36 -b Fk(Reg)p 1285 2279 29 5 v 40 w(P)m(olygon)12 b Fm(::)c -Fi(is)p 1787 2279 26 4 v 32 w(planar)14 b Fm(\()g(\).)67 -b(A)38 b Fk(Reg)p 2493 2279 29 5 v 39 w(P)m(olygon)k -Fm(can)37 b(b)r(e)h(manipulated)f(in)n(to)g(a)0 2379 +2105 1779 4 v 1874 2138 a(Log)p 2122 2105 V 83 2278 a +Fm([)p Fh(LDF)25 b(2002.11.03.)p Fm(])71 b(Remo)n(v)n(ed)36 +b Fk(Reg)p 1285 2278 29 5 v 40 w(P)m(olygon)12 b Fm(::)c +Fi(is)p 1787 2278 26 4 v 32 w(planar)14 b Fm(\()g(\).)67 +b(A)38 b Fk(Reg)p 2493 2278 29 5 v 39 w(P)m(olygon)k +Fm(can)37 b(b)r(e)h(manipulated)f(in)n(to)g(a)0 2378 y(non-planar)26 b(state,)h(so)g(it's)h(safer)f(to)g(use)h(the)g Fk(P)m(ath)33 b Fm(v)n(ersion,)27 b(whic)n(h)g(tests)h(whether)f(it's)h -(really)f(planar)f(or)h(not.)p 0 2471 1678 4 v 1773 2503 -a Fk(End)32 b(Log)p 2222 2471 V 0 2702 a(1042.)94 b(Get)32 -b(radius.)p 0 2778 1643 4 v 1738 2811 a(Begin)f(Log)p -2257 2778 V 83 2952 a Fm([)p Fh(LDF)25 b(2003.06.13.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 3043 1678 4 -v 1773 3076 a Fk(End)k(Log)p 2222 3043 V 0 3201 a Fn(h)14 -b Fm(Declare)27 b Fk(Reg)p 513 3201 29 5 v 39 w(P)m(olygon)32 -b Fm(functions)k Fl(1023)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3300 y Fk(inline)31 b(real)h Fi(get)p 642 3300 26 4 v -31 w(r)l(adius)11 b Fm(\()k(\))28 b Fk(const)83 3400 -y Fn(f)166 3499 y Fk(return)33 b Fi(r)l(adius)12 b Fm(;)83 -3599 y Fn(g)0 3798 y Fk(1043.)94 b(Circles.)g Fm([)p -Fh(LDF)26 b(2003.06.13.)p Fm(])61 b(The)29 b(functions)g(in)g(this)g -(section)g(are)e(all)i(de\014ned)g(in)g Fj(circles.web)p -Fm(,)24 b(b)r(ecause)0 3898 y Fk(Circle)32 b Fm(is)27 +(really)f(planar)f(or)h(not.)p 0 2470 3900 4 v 0 2702 +a Fk(1045.)94 b(Get)32 b(radius.)p 0 2778 1779 4 v 1874 +2810 a(Log)p 2122 2778 V 83 2951 a Fm([)p Fh(LDF)25 b(2003.06.13.)p +Fm(])61 b(Added)28 b(this)g(function.)p 0 3043 3900 4 +v 0 3200 a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 3200 +29 5 v 39 w(P)m(olygon)32 b Fm(functions)k Fl(1026)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3300 y Fk(inline)31 b(real)h +Fi(get)p 642 3300 26 4 v 31 w(r)l(adius)11 b Fm(\()k(\))28 +b Fk(const)83 3399 y Fn(f)166 3499 y Fk(return)33 b Fi(r)l(adius)12 +b Fm(;)83 3598 y Fn(g)0 3798 y Fk(1046.)94 b(Circles.)g +Fm([)p Fh(LDF)26 b(2003.06.13.)p Fm(])61 b(The)29 b(functions)g(in)g +(this)g(section)g(are)e(all)i(de\014ned)g(in)g Fj(circles.web)p +Fm(,)24 b(b)r(ecause)0 3897 y Fk(Circle)32 b Fm(is)27 b(an)h(incomplete)f(t)n(yp)r(e)h(in)g(this)g(\014le.)p -0 3997 1643 4 v 1738 4030 a Fk(Begin)j(Log)p 2257 3997 -V 83 4171 a Fm([)p Fh(LDF)25 b(2003.06.13.)p Fm(])61 -b(Added)28 b(this)g(section.)p 0 4262 1678 4 v 1773 4295 -a Fk(End)k(Log)p 2222 4262 V 0 4494 a(1044.)94 b(Enclosed)31 -b(circle.)p 0 4570 1643 4 v 1738 4603 a(Begin)g(Log)p -2257 4570 V 83 4743 a Fm([)p Fh(LDF)25 b(2003.06.13.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 4835 1678 4 -v 1773 4868 a Fk(End)k(Log)p 2222 4835 V 0 4993 a Fn(h)14 -b Fm(Declare)27 b Fk(Reg)p 513 4993 29 5 v 39 w(P)m(olygon)32 -b Fm(functions)k Fl(1023)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -5092 y Fk(Circle)32 b Fi(in)p 440 5092 26 4 v 31 w(cir)l(cle)11 -b Fm(\()j(\))28 b Fk(const)5 b Fm(;)0 5291 y Fk(1045.)94 +0 3996 1779 4 v 1874 4029 a Fk(Log)p 2122 3996 V 83 4169 +a Fm([)p Fh(LDF)d(2003.06.13.)p Fm(])61 b(Added)28 b(this)g(section.)p +0 4261 3900 4 v 0 4493 a Fk(1047.)94 b(Enclosed)31 b(circle.)p +0 4569 1779 4 v 1874 4601 a(Log)p 2122 4569 V 83 4742 +a Fm([)p Fh(LDF)25 b(2003.06.13.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 4834 3900 4 v 0 4991 a Fn(h)14 +b Fm(Declare)27 b Fk(Reg)p 513 4991 29 5 v 39 w(P)m(olygon)32 +b Fm(functions)k Fl(1026)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +5091 y Fk(Circle)32 b Fi(in)p 440 5091 26 4 v 31 w(cir)l(cle)11 +b Fm(\()j(\))28 b Fk(const)5 b Fm(;)0 5290 y Fk(1048.)94 b(Dra)m(w)33 b(enclosed)e(circle.)p eop end -%%Page: 296 296 -TeXDict begin 296 295 bop 0 83 a Fm(296)140 b Fl(NORMAL)22 -b(VERSION)2234 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1046)0 263 -y Fk(1046.)94 b(Normal)31 b(v)m(ersion.)0 388 y Fn(h)14 +%%Page: 299 299 +TeXDict begin 299 298 bop 0 83 a Fn(x)p Fm(1049)139 b +Fl(3DLDFPR)n(G)2234 b(NORMAL)23 b(VERSION)141 b Fm(299)0 +263 y Fk(1049.)94 b(Normal)31 b(v)m(ersion.)0 388 y Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 388 29 5 v 39 w(P)m(olygon)32 -b Fm(functions)k Fl(1023)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +b Fm(functions)k Fl(1026)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Circle)39 b Fi(dr)l(aw)p 545 487 26 4 v 32 w(in)p 649 487 V 31 w(cir)l(cle)11 b Fm(\()p Fk(const)40 b(Color)f Fm(&)p Fi(ddr)l(aw)p 1719 487 V 32 w(c)l(olor)50 b Fm(=)35 @@ -26606,256 +26583,260 @@ b(string)g Fi(pp)l(en)h Fm(=)23 b Ff("")s Fe(;)14 b Fk(Picture)33 b Fm(&)o Fi(pictur)l(e)h Fm(=)23 b Fi(curr)l(ent)p 2762 587 V 29 w(pictur)l(e)11 b Fm(\))28 b Fk(const)5 b Fm(;)0 -786 y Fk(1047.)94 b(Picture)32 b(argumen)m(t)g(\014rst.)p -0 885 1643 4 v 1738 918 a(Begin)f(Log)p 2257 885 V 83 -1059 a Fm([)p Fh(LDF)25 b(2003.07.04.)p Fm(])60 b(Remo)n(v)n(ed)25 +786 y Fk(1050.)94 b(Picture)32 b(argumen)m(t)g(\014rst.)p +0 885 1779 4 v 1874 917 a(Log)p 2122 885 V 83 1058 a +Fm([)p Fh(LDF)25 b(2003.07.04.)p Fm(])60 b(Remo)n(v)n(ed)25 b(default)i(argumen)n(t)e(for)g Fi(pictur)l(e)11 b Fm(.)37 b(Ha)n(ving)25 b(one)h(made)g(it)g(imp)r(ossible)g(for)g(the)h (compiler)0 1158 y(to)g(reso)n(v)n(e)f(calls)h(to)g Fi(dr)l(aw)p 810 1158 26 4 v 32 w(in)p 914 1158 V 30 w(cir)l(cle)12 -b Fm(\()i(\))28 b(with)g(no)f(argumen)n(ts.)p 0 1250 -1678 4 v 1773 1283 a Fk(End)32 b(Log)p 2222 1250 V 0 -1407 a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 1407 29 -5 v 39 w(P)m(olygon)32 b Fm(functions)k Fl(1023)15 b -Fn(i)23 b Fm(+)p Fn(\021)83 1507 y Fk(Circle)33 b Fi(dr)l(aw)p -539 1507 26 4 v 32 w(in)p 643 1507 V 30 w(cir)l(cle)12 +b Fm(\()i(\))28 b(with)g(no)f(argumen)n(ts.)p 0 1249 +3900 4 v 0 1407 a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p +513 1407 29 5 v 39 w(P)m(olygon)32 b Fm(functions)k Fl(1026)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 1506 y Fk(Circle)33 b Fi(dr)l(aw)p +539 1506 26 4 v 32 w(in)p 643 1506 V 30 w(cir)l(cle)12 b Fm(\()p Fk(Picture)34 b Fm(&)p Fi(pictur)l(e)10 b Fe(;)k -Fk(const)34 b(Color)f Fm(&)o Fi(ddr)l(aw)p 2400 1507 +Fk(const)34 b(Color)f Fm(&)o Fi(ddr)l(aw)p 2400 1506 V 32 w(c)l(olor)39 b Fm(=)25 b Fn(\003)p Fk(Colors)12 -b Fm(::)c Fi(default)p 3353 1507 V 32 w(c)l(olor)14 b -Fe(;)g Fk(const)249 1607 y(string)33 b Fi(ddashe)l(d)38 +b Fm(::)c Fi(default)p 3353 1506 V 32 w(c)l(olor)14 b +Fe(;)g Fk(const)249 1606 y(string)33 b Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(const)33 b(string)g Fi(pp)l(en)h Fm(=)23 b Ff("")s Fm(\))28 b Fk(const)5 -b Fm(;)0 1806 y Fk(1048.)94 b(Surrounding)32 b(circle.)0 +b Fm(;)0 1805 y Fk(1051.)94 b(Surrounding)32 b(circle.)0 1930 y Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 1930 29 -5 v 39 w(P)m(olygon)32 b Fm(functions)k Fl(1023)15 b -Fn(i)23 b Fm(+)p Fn(\021)83 2030 y Fk(Circle)32 b Fi(out)p -483 2030 26 4 v 30 w(cir)l(cle)12 b Fm(\()i(\))28 b Fk(const)t -Fm(;)0 2229 y Fk(1049.)94 b(Dra)m(w)33 b(surrounding)e(circle.)0 -2429 y(1050.)94 b(Normal)31 b(v)m(ersion.)0 2553 y Fn(h)14 -b Fm(Declare)27 b Fk(Reg)p 513 2553 29 5 v 39 w(P)m(olygon)32 -b Fm(functions)k Fl(1023)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2653 y Fk(Circle)39 b Fi(dr)l(aw)p 545 2653 26 4 v 31 -w(out)p 691 2653 V 30 w(cir)l(cle)12 b Fm(\()p Fk(const)39 -b(Color)g Fm(&)p Fi(ddr)l(aw)p 1760 2653 V 31 w(c)l(olor)49 +5 v 39 w(P)m(olygon)32 b Fm(functions)k Fl(1026)15 b +Fn(i)23 b Fm(+)p Fn(\021)83 2029 y Fk(Circle)32 b Fi(out)p +483 2029 26 4 v 30 w(cir)l(cle)12 b Fm(\()i(\))28 b Fk(const)t +Fm(;)0 2229 y Fk(1052.)94 b(Dra)m(w)33 b(surrounding)e(circle.)0 +2428 y(1053.)94 b(Normal)31 b(v)m(ersion.)0 2552 y Fn(h)14 +b Fm(Declare)27 b Fk(Reg)p 513 2552 29 5 v 39 w(P)m(olygon)32 +b Fm(functions)k Fl(1026)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2652 y Fk(Circle)39 b Fi(dr)l(aw)p 545 2652 26 4 v 31 +w(out)p 691 2652 V 30 w(cir)l(cle)12 b Fm(\()p Fk(const)39 +b(Color)g Fm(&)p Fi(ddr)l(aw)p 1760 2652 V 31 w(c)l(olor)49 b Fm(=)34 b Fn(\003)p Fk(Colors)12 b Fm(::)c Fi(default)p -2731 2653 V 32 w(c)l(olor)14 b Fe(;)g Fk(const)39 b(string)249 +2731 2652 V 32 w(c)l(olor)14 b Fe(;)g Fk(const)39 b(string)249 2752 y Fi(ddashe)l(d)f Fm(=)23 b Ff("")s Fe(;)14 b Fk(const)33 b(string)g Fi(pp)l(en)h Fm(=)23 b Ff("")s Fe(;)14 b Fk(Picture)33 b Fm(&)o Fi(pictur)l(e)h Fm(=)23 b Fi(curr)l(ent)p 2762 2752 V 29 w(pictur)l(e)11 b Fm(\))28 b Fk(const)5 b Fm(;)0 -2952 y Fk(1051.)94 b(Picture)32 b(argumen)m(t)g(\014rst.)p -0 3051 1643 4 v 1738 3083 a(Begin)f(Log)p 2257 3051 V -83 3224 a Fm([)p Fh(LDF)25 b(2003.07.04.)p Fm(])60 b(Remo)n(v)n(ed)25 +2951 y Fk(1054.)94 b(Picture)32 b(argumen)m(t)g(\014rst.)p +0 3049 1779 4 v 1874 3082 a(Log)p 2122 3049 V 83 3223 +a Fm([)p Fh(LDF)25 b(2003.07.04.)p Fm(])60 b(Remo)n(v)n(ed)25 b(default)i(argumen)n(t)e(for)g Fi(pictur)l(e)11 b Fm(.)37 b(Ha)n(ving)25 b(one)h(made)g(it)g(imp)r(ossible)g(for)g(the)h -(compiler)0 3324 y(to)g(reso)n(v)n(e)f(calls)h(to)g Fi(dr)l(aw)p -810 3324 26 4 v 32 w(out)p 957 3324 V 30 w(cir)l(cle)11 -b Fm(\()j(\))28 b(with)g(no)g(argumen)n(ts.)p 0 3416 -1678 4 v 1773 3448 a Fk(End)k(Log)p 2222 3416 V 0 3573 -a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p 513 3573 29 5 v -39 w(P)m(olygon)32 b Fm(functions)k Fl(1023)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 3672 y Fk(Circle)33 b Fi(dr)l(aw)p -539 3672 26 4 v 31 w(out)p 685 3672 V 30 w(cir)l(cle)12 +(compiler)0 3322 y(to)g(reso)n(v)n(e)f(calls)h(to)g Fi(dr)l(aw)p +810 3322 26 4 v 32 w(out)p 957 3322 V 30 w(cir)l(cle)11 +b Fm(\()j(\))28 b(with)g(no)g(argumen)n(ts.)p 0 3414 +3900 4 v 0 3571 a Fn(h)14 b Fm(Declare)27 b Fk(Reg)p +513 3571 29 5 v 39 w(P)m(olygon)32 b Fm(functions)k Fl(1026)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3671 y Fk(Circle)33 b Fi(dr)l(aw)p +539 3671 26 4 v 31 w(out)p 685 3671 V 30 w(cir)l(cle)12 b Fm(\()p Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)11 b Fe(;)j -Fk(const)32 b(Color)h Fm(&)o Fi(ddr)l(aw)p 2440 3672 +Fk(const)32 b(Color)h Fm(&)o Fi(ddr)l(aw)p 2440 3671 V 32 w(c)l(olor)38 b Fm(=)24 b Fn(\003)o Fk(Colors)12 -b Fm(::)d Fi(default)p 3391 3672 V 31 w(c)l(olor)15 b -Fe(;)f Fk(const)249 3772 y(string)33 b Fi(ddashe)l(d)38 +b Fm(::)d Fi(default)p 3391 3671 V 31 w(c)l(olor)15 b +Fe(;)f Fk(const)249 3771 y(string)33 b Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(const)33 b(string)g Fi(pp)l(en)h Fm(=)23 b Ff("")s Fm(\))28 b Fk(const)5 -b Fm(;)0 3971 y Fk(1052.)94 b(Putting)32 b(p)s(olygons)e(together.)95 -b Fm(This)27 b(is)h(what's)f(compiled.)83 4096 y Fn(h)14 -b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 4195 +b Fm(;)0 3970 y Fk(1055.)94 b(Putting)32 b(p)s(olygons)e(together.)95 +b Fm(This)27 b(is)h(what's)f(compiled.)83 4094 y Fn(h)14 +b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 4194 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 -b Fl(10)15 b Fn(i)83 4295 y(h)f Fm(De\014ne)28 b Fk(class)k(P)m(olygon) -40 b Fl(972)15 b Fn(i)83 4395 y(h)f Fm(De\014ne)28 b -Fk(class)k(Reg)p 777 4395 29 5 v 40 w(P)m(olygon)39 b -Fl(1022)15 b Fn(i)83 4494 y(h)f Fm(De\014ne)28 b Fk(Reg)p -554 4494 V 39 w(P)m(olygon)33 b Fm(functions)i Fl(1024)15 -b Fn(i)83 4594 y(h)f Fm(De\014ne)28 b Fk(P)m(olygon)33 -b Fm(functions)i Fl(976)15 b Fn(i)p eop end -%%Page: 297 297 -TeXDict begin 297 296 bop 0 83 a Fn(x)p Fm(1053)139 b -Fl(3DLDFPR)n(G)1712 b(PUTTING)24 b(POL)-6 b(YGONS)23 -b(TOGETHER)141 b Fm(297)0 263 y Fk(1053.)94 b Fm(This)28 -b(is)f(what's)g(written)h(to)g Fj(polygons.h)p Fm(.)0 -384 y Fn(h)14 b Ff(polygons.h)79 b Fl(1053)15 b Fn(i)24 -b(\021)83 483 y(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(olygon)40 -b Fl(972)15 b Fn(i)83 583 y(h)f Fm(De\014ne)28 b Fk(class)k(Reg)p -777 583 29 5 v 40 w(P)m(olygon)39 b Fl(1022)15 b Fn(i)0 -782 y Fk(1054.)94 b(Rectangle)h(\()p Fj(rectangles.web)p -Fk(\).)p 0 878 1643 4 v 1738 911 a(Begin)31 b(Log)p 2257 -878 V 83 1052 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])76 -b(Remo)n(v)n(ed)42 b(the)i(\\T)-7 b(ransformations")39 -b(section,)47 b(including)c Fk(op)s(erator)t Fn(\003)p -Fm(=\()p Fk(const)48 b(T)-8 b(ransform)0 1151 y Fm(&\).)58 -b(Also)34 b(mo)n(v)n(ed)g(the)h Fk(Reg)p 958 1151 29 -5 v 39 w(P)m(olygon)k Fm(v)n(ersions)33 b(to)i Fk(P)m(olygon)k -Fm(in)c Fj(polygons.web)p Fm(.)53 b(These)34 b(are)g(no)n(w)g -(inherited)g(b)n(y)0 1251 y Fk(Rectangle)t Fm(.)83 1350 -y([)p Fh(LDF)25 b(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 -b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB) -g(\014les)g(for)f(the)h(distribution)g(of)0 1450 y(3DLDF)28 -b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t) -f(v)n(ersions.)p 0 1542 1678 4 v 1773 1575 a Fk(End)32 -b(Log)p 2222 1542 V 83 1695 a(format)65 b Fi(R)l(e)l(ctangle)79 -b(R)l(e)l(g)p 983 1695 26 4 v 30 w(Polygon)0 1816 y Fn(h)14 +b Fl(10)15 b Fn(i)83 4294 y(h)f Fm(De\014ne)28 b Fk(class)k(P)m(olygon) +40 b Fl(975)15 b Fn(i)83 4393 y(h)f Fm(De\014ne)28 b +Fk(class)k(Reg)p 777 4393 29 5 v 40 w(P)m(olygon)39 b +Fl(1025)15 b Fn(i)83 4493 y(h)f Fm(De\014ne)28 b Fk(Reg)p +554 4493 V 39 w(P)m(olygon)33 b Fm(functions)i Fl(1027)15 +b Fn(i)83 4593 y(h)f Fm(De\014ne)28 b Fk(P)m(olygon)33 +b Fm(functions)i Fl(979)15 b Fn(i)p eop end +%%Page: 300 300 +TeXDict begin 300 299 bop 0 83 a Fm(300)140 b Fl(PUTTING)24 +b(POL)-6 b(YGONS)23 b(TOGETHER)1711 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(1056)0 263 y Fk(1056.)94 b Fm(This)28 b(is)f(what's)g +(written)h(to)g Fj(polygons.h)p Fm(.)0 387 y Fn(h)14 +b Ff(polygons.h)79 b Fl(1056)15 b Fn(i)24 b(\021)83 487 +y(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(olygon)40 b +Fl(975)15 b Fn(i)83 586 y(h)f Fm(De\014ne)28 b Fk(class)k(Reg)p +777 586 29 5 v 40 w(P)m(olygon)39 b Fl(1025)15 b Fn(i)0 +786 y Fk(1057.)94 b(Rectangle)h(\()p Fj(rectangles.web)p +Fk(\).)p 0 888 1779 4 v 1874 920 a(Log)p 2122 888 V 83 +1061 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])76 b(Remo)n(v)n(ed)42 +b(the)i(\\T)-7 b(ransformations")39 b(section,)47 b(including)c +Fk(op)s(erator)t Fn(\003)p Fm(=\()p Fk(const)48 b(T)-8 +b(ransform)0 1161 y Fm(&\).)58 b(Also)34 b(mo)n(v)n(ed)g(the)h +Fk(Reg)p 958 1161 29 5 v 39 w(P)m(olygon)k Fm(v)n(ersions)33 +b(to)i Fk(P)m(olygon)k Fm(in)c Fj(polygons.web)p Fm(.)53 +b(These)34 b(are)g(no)n(w)g(inherited)g(b)n(y)0 1260 +y Fk(Rectangle)t Fm(.)83 1360 y([)p Fh(LDF)25 b(2003.11.12.)p +Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n +(ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g +(of)0 1460 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n +(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)83 1559 y([)p Fh(LDF)e +(2003.12.10.)p Fm(])64 b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden) +n(ti\014ers)h(bac)n(k)f(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h +(3DLDF)i(1.1.4.)43 b(I'v)n(e)0 1659 y(already)24 b(put)j(some)e(of)h +(them)h(bac)n(k)e(in,)i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.) +37 b(Ho)n(w)n(ev)n(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w) +i(in)0 1758 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 +b(.)p 0 1850 3900 4 v 83 2007 a Fk(format)65 b Fi(R)l(e)l(ctangle)79 +b(R)l(e)l(g)p 983 2007 26 4 v 30 w(Polygon)0 2131 y Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 -b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)0 2015 y Fk(1055.)94 -b(Include)32 b(\014les.)0 2136 y Fn(h)14 b Fm(Include)28 -b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 -2235 y Fm(#)p Fk(include)32 b Ff("loader.h")0 2335 y -Fm(#)p Fk(include)g Ff("pspglb.h")0 2435 y Fm(#)p Fk(include)g -Ff("io.h")0 2534 y Fm(#)p Fk(include)g Ff("colors.h")0 -2634 y Fm(#)p Fk(include)g Ff("transfor.h")0 2733 y Fm(#)p -Fk(include)g Ff("shapes.h")0 2833 y Fm(#)p Fk(include)g -Ff("pictures.h")0 2933 y Fm(#)p Fk(include)g Ff("points.h")0 -3032 y Fm(#)p Fk(include)g Ff("lines.h")0 3132 y Fm(#)p -Fk(include)g Ff("planes.h")0 3232 y Fm(#)p Fk(include)g -Ff("paths.h")0 3331 y Fm(#)p Fk(include)g Ff("curves.h")0 -3431 y Fm(#)p Fk(include)g Ff("polygons.h")0 3630 y Fk(1056.)94 +b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2231 y Fk(static)33 +b(string)g Fi(r)l(cs)p 726 2231 V 30 w(id)k Fm(=)23 b +Ff("$Id:)p Fj( )p Ff(rectangs.w)o(eb)o(,v)-6 b Fj( )p +Ff(1.3)p Fj( )p Ff(2003/12/10)o Fj( )p Ff(1)o(6:3)f(6:58)p +Fj( )p Ff(lfinsto1)p Fj( )p Ff(Exp)o Fj( )p Ff($)o(")n +Fm(;)0 2430 y Fk(1058.)94 b(Include)32 b(\014les.)0 2554 +y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 +b Fm(+)p Fn(\021)0 2654 y Fm(#)p Fk(include)32 b Ff("loader.h")0 +2753 y Fm(#)p Fk(include)g Ff("pspglb.h")0 2853 y Fm(#)p +Fk(include)g Ff("io.h")0 2952 y Fm(#)p Fk(include)g Ff("colors.h")0 +3052 y Fm(#)p Fk(include)g Ff("transfor.h")0 3152 y Fm(#)p +Fk(include)g Ff("shapes.h")0 3251 y Fm(#)p Fk(include)g +Ff("pictures.h")0 3351 y Fm(#)p Fk(include)g Ff("points.h")0 +3451 y Fm(#)p Fk(include)g Ff("lines.h")0 3550 y Fm(#)p +Fk(include)g Ff("planes.h")0 3650 y Fm(#)p Fk(include)g +Ff("paths.h")0 3749 y Fm(#)p Fk(include)g Ff("curves.h")0 +3849 y Fm(#)p Fk(include)g Ff("polygons.h")0 4048 y Fk(1059.)94 b(Rectangle)35 b(class)g(de\014nition.)94 b Fm([)p Fh(LDF)26 b(2003.07.18.)p Fm(])64 b(TO)30 b(DO:)h Fi(axis)p 2645 -3630 V 31 w(h)42 b Fm(and)31 b Fi(axis)p 3065 3630 V -31 w(v)44 b Fm(are)30 b(not)h(recalculated)0 3730 y(when)d(a)f +4048 V 31 w(h)42 b Fm(and)31 b Fi(axis)p 3065 4048 V +31 w(v)44 b Fm(are)30 b(not)h(recalculated)0 4148 y(when)d(a)f Fk(Rectangle)32 b Fm(is)27 b(transformed.)36 b(I)28 b(should)f(do)g -(something)g(ab)r(out)h(this.)0 3850 y Fn(h)14 b Fm(De\014ne)28 -b Fk(class)k(Rectangle)40 b Fl(1056)15 b Fn(i)23 b(\021)83 -3950 y Fk(class)32 b(Rectangle)g Fm(:)37 b Fk(public)32 -b(P)m(olygon)g Fn(f)166 4050 y Fk(real)h Fi(axis)p 500 -4050 V 30 w(h)11 b Fm(;)166 4149 y Fk(real)33 b Fi(axis)p -500 4149 V 30 w(v)14 b Fm(;)166 4249 y Fk(b)s(o)s(ol)31 -b Fi(on)p 473 4249 V 30 w(fr)l(e)l(e)p 631 4249 V 31 -w(stor)l(e)11 b Fm(;)83 4370 y Fk(public)t Fm(:)42 b +(something)g(ab)r(out)h(this.)0 4272 y Fn(h)14 b Fm(De\014ne)28 +b Fk(class)k(Rectangle)40 b Fl(1059)15 b Fn(i)23 b(\021)83 +4372 y Fk(class)32 b(Rectangle)g Fm(:)37 b Fk(public)32 +b(P)m(olygon)g Fn(f)166 4471 y Fk(real)h Fi(axis)p 500 +4471 V 30 w(h)11 b Fm(;)166 4571 y Fk(real)33 b Fi(axis)p +500 4571 V 30 w(v)14 b Fm(;)166 4670 y Fk(b)s(o)s(ol)31 +b Fi(on)p 473 4670 V 30 w(fr)l(e)l(e)p 631 4670 V 31 +w(stor)l(e)11 b Fm(;)83 4794 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j -Fl(1058)15 b Fn(i)83 4469 y(g)p Fm(;)0 4573 y Fl(This)23 -b(co)r(de)i(is)e(used)h(in)f(sections)i(1094)f(and)h(1095.)0 -4772 y Fk(1057.)94 b(Constructors)32 b(and)g(setting)f(functions.)0 -4972 y(1058.)94 b(Default)32 b(constructor.)96 b Fm(No)27 -b(argumen)n(ts.)0 5092 y Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 -b Fm(functions)j Fl(1058)15 b Fn(i)24 b(\021)83 5192 -y Fk(Rectangle)t Fm(\()14 b(\);)0 5296 y Fl(See)24 b(also)g(sections)g -(1061,)h(1063,)f(1066,)g(1068,)h(1071,)f(1073,)g(1076,)g(1080,)h(1082,) -f(1085,)g(1087,)g(1090,)h(1091,)f(1092,)g(and)g(1093.)0 -5400 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1056.)p -eop end -%%Page: 298 298 -TeXDict begin 298 297 bop 0 83 a Fm(298)140 b Fl(DEF)-8 -b(A)n(UL)i(T)23 b(CONSTR)n(UCTOR)1986 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(1059)0 263 y Fk(1059.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Rectangle)k Fm(functions)k Fl(1059)15 b Fn(i)23 -b(\021)83 487 y Fk(Rectangle)12 b Fm(::)c Fk(Rectangle)d -Fm(\()14 b(\))83 587 y Fn(f)166 686 y Fi(on)p 260 686 -26 4 v 31 w(fr)l(e)l(e)p 419 686 V 31 w(stor)l(e)33 b -Fm(=)23 b Fi(false)11 b Fm(;)166 786 y Fi(line)p 302 -786 V 31 w(switch)35 b Fm(=)22 b Fi(false)12 b Fm(;)166 -886 y Fi(cycle)p 346 886 V 32 w(switch)34 b Fm(=)23 b -Fi(true)10 b Fm(;)83 985 y Fn(g)0 1093 y Fl(See)24 b(also)g(sections)g -(1062,)h(1064,)f(1067,)g(1069,)h(1072,)f(1074,)g(1077,)g(1081,)h(1083,) -f(1086,)g(1088,)g(1223,)h(1224,)f(1225,)g(and)g(1226.)0 -1201 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(1094)f(and)h(1227.) -0 1400 y Fk(1060.)94 b(Cen)m(ter,)29 b(lengths,)f(and)i(angles.)94 +Fl(1061)15 b Fn(i)83 4894 y(g)p Fm(;)0 5001 y Fl(This)23 +b(co)r(de)i(is)e(used)h(in)f(sections)i(1099)f(and)h(1100.)0 +5201 y Fk(1060.)94 b(Constructors)32 b(and)g(setting)f(functions.)0 +5400 y(1061.)94 b(Default)32 b(constructor.)96 b Fm(No)27 +b(argumen)n(ts.)p eop end +%%Page: 301 301 +TeXDict begin 301 300 bop 0 83 a Fn(x)p Fm(1061)139 b +Fl(3DLDFPR)n(G)1987 b(DEF)-8 b(A)n(UL)i(T)24 b(CONSTR)n(UCTOR)140 +b Fm(301)0 263 y Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 +b Fm(functions)j Fl(1061)15 b Fn(i)24 b(\021)83 363 y +Fk(Rectangle)t Fm(\()14 b(\);)0 471 y Fl(See)24 b(also)g(sections)g +(1064,)h(1066,)f(1069,)g(1071,)h(1074,)f(1076,)g(1079,)g(1082,)h(1085,) +f(1087,)g(1090,)g(1092,)h(1095,)f(1096,)g(1097,)g(and)h(1098.)0 +579 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i(1059.)0 +778 y Fk(1062.)0 902 y Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k +Fm(functions)k Fl(1062)15 b Fn(i)23 b(\021)83 1002 y +Fk(Rectangle)12 b Fm(::)c Fk(Rectangle)d Fm(\()14 b(\))83 +1102 y Fn(f)166 1201 y Fi(on)p 260 1201 26 4 v 31 w(fr)l(e)l(e)p +419 1201 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(false)11 b +Fm(;)166 1301 y Fi(line)p 302 1301 V 31 w(switch)35 b +Fm(=)22 b Fi(false)12 b Fm(;)166 1400 y Fi(cycle)p 346 +1400 V 32 w(switch)34 b Fm(=)23 b Fi(true)10 b Fm(;)83 +1500 y Fn(g)0 1608 y Fl(See)24 b(also)g(sections)g(1065,)h(1067,)f +(1070,)g(1072,)h(1075,)f(1077,)g(1080,)g(1083,)h(1086,)f(1088,)g(1091,) +g(1093,)h(1228,)f(1229,)g(1230,)g(and)h(1231.)0 1716 +y(This)e(co)r(de)i(is)e(used)h(in)f(sections)i(1099)f(and)h(1232.)0 +1915 y Fk(1063.)94 b(Cen)m(ter,)29 b(lengths,)f(and)i(angles.)94 b Fm([)p Fh(LDF)26 b(2002.11.06.)p Fm(])58 b(The)25 b(follo)n(wing)f -(constructor)g(and)h(setting)h(function)0 1500 y(create)31 +(constructor)g(and)h(setting)h(function)0 2015 y(create)31 b(the)i Fk(Rectangle)k Fm(in)32 b(the)h(x-z)f(plane)g(and)g(then)h (rotate)e(according)g(to)h(the)h(argumen)n(ts)e Fi(angle)p -3305 1500 V 31 w(x)14 b Fm(,)33 b Fi(angle)p 3631 1500 -V 32 w(y)12 b Fm(,)33 b(and)0 1600 y Fi(angle)p 191 1600 +3305 2015 V 31 w(x)14 b Fm(,)33 b Fi(angle)p 3631 2015 +V 32 w(y)12 b Fm(,)33 b(and)0 2114 y Fi(angle)p 191 2114 V 31 w(z)15 b Fm(,)27 b(if)h(at)g(least)f(one)g(of)h(them)g(is)g -(non-zero.)0 1799 y Fk(1061.)94 b(Constructor.)p 0 1875 -1643 4 v 1738 1907 a(Begin)31 b(Log)p 2257 1875 V 83 -2048 a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Made)27 -b Fk(real)33 b Fm(argumen)n(ts)26 b Fk(const)5 b Fm(.)83 -2148 y([)p Fh(LDF)25 b(2003.07.18.)p Fm(])52 b(BUG)19 -b(FIX:)h(No)n(w,)g Fi(axis)p 1474 2148 26 4 v 31 w(h)30 -b Fm(and)18 b Fi(axis)p 1869 2148 V 31 w(v)32 b Fm(are)18 -b(no)h(longer)e(divided)i(b)n(y)g(2,)h(when)f(I)g(initialize)g -Fi(axis)p 3648 2148 V 31 w(h)p 3721 2148 V 31 w(half)0 -2247 y Fm(and)27 b Fi(axis)p 306 2247 V 31 w(v)p 375 -2247 V 31 w(half)c Fm(.)37 b(I)28 b(mistak)n(enly)f(used)h -Fe(=)p Fm(=)e(instead)i(of)f Fe(=)p Fm(.)p 0 2339 1678 -4 v 1773 2372 a Fk(End)32 b(Log)p 2222 2339 V 0 2496 -a Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j -Fl(1058)15 b Fn(i)24 b Fm(+)p Fn(\021)83 2596 y Fk(Rectangle)t -Fm(\()p Fk(const)42 b(P)m(oin)m(t)g Fm(&)o Fi(c)l(c)l(enter)13 -b Fe(;)h Fk(const)41 b(real)h Fi(aaxis)p 2070 2596 26 -4 v 31 w(h)11 b Fe(;)j Fk(const)41 b(real)h Fi(aaxis)p -2830 2596 V 31 w(v)13 b Fe(;)h Fk(const)42 b(real)249 -2696 y Fi(angle)p 440 2696 V 31 w(x)37 b Fm(=)23 b(0)o -Fe(;)14 b Fk(const)33 b(real)f Fi(angle)p 1338 2696 V -31 w(y)j Fm(=)23 b(0)o Fe(;)14 b Fk(const)33 b(real)f -Fi(angle)p 2235 2696 V 32 w(z)37 b Fm(=)23 b(0)o(\);)p -eop end -%%Page: 299 299 -TeXDict begin 299 298 bop 0 83 a Fn(x)p Fm(1062)139 b -Fl(3DLDFPR)n(G)2344 b(CONSTR)n(UCTOR)140 b Fm(299)0 263 -y Fk(1062.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k -Fm(functions)k Fl(1059)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -487 y Fk(Rectangle)12 b Fm(::)c Fk(Rectangle)d Fm(\()p -Fk(const)35 b(P)m(oin)m(t)f Fm(&)p Fi(c)l(c)l(enter)12 -b Fe(;)i Fk(const)35 b(real)f Fi(aaxis)p 2521 487 26 -4 v 31 w(h)11 b Fe(;)j Fk(const)34 b(real)h Fi(aaxis)p -3267 487 V 31 w(v)13 b Fe(;)h Fk(const)34 b(real)415 -587 y Fi(angle)p 606 587 V 31 w(x)14 b Fe(;)g Fk(const)32 -b(real)h Fi(angle)p 1352 587 V 31 w(y)12 b Fe(;)i Fk(const)32 -b(real)h Fi(angle)p 2097 587 V 31 w(z)15 b Fm(\))83 686 -y(:)37 b Fi(axis)p 288 686 V 31 w(h)11 b Fm(\()p Fi(aaxis)p -586 686 V 32 w(h)g Fm(\))p Fe(;)41 b Fi(axis)p 907 686 -V 31 w(v)14 b Fm(\()p Fi(aaxis)p 1204 686 V 31 w(v)g -Fm(\))28 b Fn(f)166 786 y Fi(on)p 260 786 V 31 w(fr)l(e)l(e)p -419 786 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(false)11 b -Fm(;)166 886 y Fi(line)p 302 886 V 31 w(switch)35 b Fm(=)22 -b Fi(false)12 b Fm(;)166 985 y Fi(cycle)p 346 985 V 32 -w(switch)34 b Fm(=)23 b Fi(true)10 b Fm(;)166 1085 y -Fi(c)l(enter)36 b Fm(=)23 b Fi(c)l(c)l(enter)12 b Fm(;)166 -1185 y Fi(c)l(enter)h Fe(:)p Fi(apply)p 614 1185 V 32 -w(tr)l(ansform)e Fm(\()j(\);)166 1309 y Fk(real)33 b -Fi(axis)p 500 1309 V 30 w(h)p 572 1309 V 31 w(half)47 -b Fm(=)22 b Fi(axis)p 1007 1309 V 31 w(h)11 b Fe(=)p -Fm(2)o(;)166 1409 y Fk(real)33 b Fi(axis)p 500 1409 V -30 w(v)p 568 1409 V 31 w(half)47 b Fm(=)22 b Fi(axis)p -1003 1409 V 31 w(v)14 b Fe(=)p Fm(2)o(;)166 1508 y Fk(P)m(oin)m(t)33 -b Fi(b)l(ot)p 532 1508 V 30 w(lft)13 b Fm(\()p Fn(\000)p -Fi(axis)p 886 1508 V 31 w(h)p 959 1508 V 31 w(half)23 -b Fe(;)14 b Fm(0)o Fe(;)g Fn(\000)p Fi(axis)p 1463 1508 -V 31 w(v)p 1532 1508 V 30 w(half)24 b Fm(\);)166 1608 -y Fk(P)m(oin)m(t)33 b Fi(b)l(ot)p 532 1608 V 30 w(rt)12 -b Fm(\()p Fi(axis)p 809 1608 V 31 w(h)p 882 1608 V 31 -w(half)24 b Fe(;)14 b Fm(0)o Fe(;)g Fn(\000)p Fi(axis)p -1387 1608 V 30 w(v)p 1455 1608 V 31 w(half)24 b Fm(\);)166 -1708 y Fk(P)m(oin)m(t)33 b Fi(top)p 540 1708 V 31 w(lft)12 -b Fm(\()p Fn(\000)p Fi(axis)p 894 1708 V 31 w(h)p 967 -1708 V 31 w(half)23 b Fe(;)14 b Fm(0)p Fe(;)g Fi(axis)p -1407 1708 V 31 w(v)p 1476 1708 V 30 w(half)24 b Fm(\);)166 -1807 y Fk(P)m(oin)m(t)33 b Fi(top)p 540 1807 V 31 w(rt)12 -b Fm(\()p Fi(axis)p 818 1807 V 31 w(h)p 891 1807 V 31 -w(half)23 b Fe(;)14 b Fm(0)p Fe(;)g Fi(axis)p 1331 1807 -V 30 w(v)p 1399 1807 V 31 w(half)23 b Fm(\);)166 1932 -y Fk(if)41 b Fm(\()p Fi(angle)p 486 1932 V 32 w(x)c Fn(6)p -Fm(=)22 b(0)c Fn(_)h Fi(angle)p 1001 1932 V 31 w(y)35 -b Fn(6)p Fm(=)23 b(0)18 b Fn(_)h Fi(angle)p 1515 1932 -V 31 w(z)37 b Fn(6)p Fm(=)23 b(0)o(\))167 b Fe(=)p Fn(\003)40 -b Fm(Rotation)27 b(around)g(the)h(x-axis,)e(y-axis,)h(and)g(z-axis.)50 -b Fn(\003)p Fe(=)166 2031 y Fn(f)249 2131 y Fi(b)l(ot)p -358 2131 V 31 w(lft)12 b Fe(:)p Fi(r)l(otate)e Fm(\()p -Fi(angle)p 935 2131 V 32 w(x)k Fe(;)g Fi(angle)p 1243 -2131 V 31 w(y)e Fe(;)i Fi(angle)p 1549 2131 V 31 w(z)g -Fm(\);)249 2231 y Fi(b)l(ot)p 358 2231 V 31 w(rt)d Fe(:)p -Fi(r)l(otate)g Fm(\()p Fi(angle)p 924 2231 V 31 w(x)j -Fe(;)g Fi(angle)p 1231 2231 V 31 w(y)e Fe(;)i Fi(angle)p -1537 2231 V 31 w(z)h Fm(\);)249 2330 y Fi(top)p 366 2330 -V 31 w(lft)d Fe(:)p Fi(r)l(otate)f Fm(\()p Fi(angle)p -944 2330 V 32 w(x)i Fe(;)h Fi(angle)p 1251 2330 V 31 -w(y)e Fe(;)i Fi(angle)p 1557 2330 V 31 w(z)h Fm(\);)249 -2430 y Fi(top)p 366 2430 V 31 w(rt)d Fe(:)p Fi(r)l(otate)e -Fm(\()p Fi(angle)p 932 2430 V 32 w(x)k Fe(;)g Fi(angle)p -1240 2430 V 31 w(y)e Fe(;)i Fi(angle)p 1546 2430 V 31 -w(z)g Fm(\);)166 2530 y Fn(g)166 b Fe(=)p Fn(\003)40 -b Fm(Put)28 b(around)e Fi(c)l(enter)13 b Fm(.)51 b Fn(\003)p -Fe(=)166 2629 y Fi(b)l(ot)p 275 2629 V 31 w(lft)12 b -Fe(:)p Fi(shift)h Fm(\()p Fi(c)l(enter)g Fm(\);)166 2729 -y Fi(b)l(ot)p 275 2729 V 31 w(rt)e Fe(:)p Fi(shift)i +(non-zero.)0 2314 y Fk(1064.)94 b(Constructor.)p 0 2389 +1779 4 v 1874 2422 a(Log)p 2122 2389 V 83 2563 a Fm([)p +Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Made)27 b Fk(real)33 +b Fm(argumen)n(ts)26 b Fk(const)5 b Fm(.)83 2662 y([)p +Fh(LDF)25 b(2003.07.18.)p Fm(])52 b(BUG)19 b(FIX:)h(No)n(w,)g +Fi(axis)p 1474 2662 26 4 v 31 w(h)30 b Fm(and)18 b Fi(axis)p +1869 2662 V 31 w(v)32 b Fm(are)18 b(no)h(longer)e(divided)i(b)n(y)g(2,) +h(when)f(I)g(initialize)g Fi(axis)p 3648 2662 V 31 w(h)p +3721 2662 V 31 w(half)0 2762 y Fm(and)27 b Fi(axis)p +306 2762 V 31 w(v)p 375 2762 V 31 w(half)c Fm(.)37 b(I)28 +b(mistak)n(enly)f(used)h Fe(=)p Fm(=)e(instead)i(of)f +Fe(=)p Fm(.)p 0 2854 3900 4 v 0 3011 a Fn(h)14 b Fm(Declare)27 +b Fk(Rectangle)32 b Fm(functions)j Fl(1061)15 b Fn(i)24 +b Fm(+)p Fn(\021)83 3111 y Fk(Rectangle)t Fm(\()p Fk(const)42 +b(P)m(oin)m(t)g Fm(&)o Fi(c)l(c)l(enter)13 b Fe(;)h Fk(const)41 +b(real)h Fi(aaxis)p 2070 3111 26 4 v 31 w(h)11 b Fe(;)j +Fk(const)41 b(real)h Fi(aaxis)p 2830 3111 V 31 w(v)13 +b Fe(;)h Fk(const)42 b(real)249 3210 y Fi(angle)p 440 +3210 V 31 w(x)37 b Fm(=)23 b(0)o Fe(;)14 b Fk(const)33 +b(real)f Fi(angle)p 1338 3210 V 31 w(y)j Fm(=)23 b(0)o +Fe(;)14 b Fk(const)33 b(real)f Fi(angle)p 2235 3210 V +32 w(z)37 b Fm(=)23 b(0)o(\);)p eop end +%%Page: 302 302 +TeXDict begin 302 301 bop 0 83 a Fm(302)140 b Fl(CONSTR)n(UCTOR)2342 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1065)0 263 y Fk(1065.)0 +388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k Fm(functions)k +Fl(1062)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Rectangle)12 +b Fm(::)c Fk(Rectangle)d Fm(\()p Fk(const)35 b(P)m(oin)m(t)f +Fm(&)p Fi(c)l(c)l(enter)12 b Fe(;)i Fk(const)35 b(real)f +Fi(aaxis)p 2521 487 26 4 v 31 w(h)11 b Fe(;)j Fk(const)34 +b(real)h Fi(aaxis)p 3267 487 V 31 w(v)13 b Fe(;)h Fk(const)34 +b(real)415 587 y Fi(angle)p 606 587 V 31 w(x)14 b Fe(;)g +Fk(const)32 b(real)h Fi(angle)p 1352 587 V 31 w(y)12 +b Fe(;)i Fk(const)32 b(real)h Fi(angle)p 2097 587 V 31 +w(z)15 b Fm(\))83 686 y(:)37 b Fi(axis)p 288 686 V 31 +w(h)11 b Fm(\()p Fi(aaxis)p 586 686 V 32 w(h)g Fm(\))p +Fe(;)41 b Fi(axis)p 907 686 V 31 w(v)14 b Fm(\()p Fi(aaxis)p +1204 686 V 31 w(v)g Fm(\))28 b Fn(f)166 786 y Fi(on)p +260 786 V 31 w(fr)l(e)l(e)p 419 786 V 31 w(stor)l(e)33 +b Fm(=)23 b Fi(false)11 b Fm(;)166 886 y Fi(line)p 302 +886 V 31 w(switch)35 b Fm(=)22 b Fi(false)12 b Fm(;)166 +985 y Fi(cycle)p 346 985 V 32 w(switch)34 b Fm(=)23 b +Fi(true)10 b Fm(;)166 1085 y Fi(c)l(enter)36 b Fm(=)23 +b Fi(c)l(c)l(enter)12 b Fm(;)166 1185 y Fi(c)l(enter)h +Fe(:)p Fi(apply)p 614 1185 V 32 w(tr)l(ansform)e Fm(\()j(\);)166 +1309 y Fk(real)33 b Fi(axis)p 500 1309 V 30 w(h)p 572 +1309 V 31 w(half)47 b Fm(=)22 b Fi(axis)p 1007 1309 V +31 w(h)11 b Fe(=)p Fm(2)o(;)166 1409 y Fk(real)33 b Fi(axis)p +500 1409 V 30 w(v)p 568 1409 V 31 w(half)47 b Fm(=)22 +b Fi(axis)p 1003 1409 V 31 w(v)14 b Fe(=)p Fm(2)o(;)166 +1508 y Fk(P)m(oin)m(t)33 b Fi(b)l(ot)p 532 1508 V 30 +w(lft)13 b Fm(\()p Fn(\000)p Fi(axis)p 886 1508 V 31 +w(h)p 959 1508 V 31 w(half)23 b Fe(;)14 b Fm(0)o Fe(;)g +Fn(\000)p Fi(axis)p 1463 1508 V 31 w(v)p 1532 1508 V +30 w(half)24 b Fm(\);)166 1608 y Fk(P)m(oin)m(t)33 b +Fi(b)l(ot)p 532 1608 V 30 w(rt)12 b Fm(\()p Fi(axis)p +809 1608 V 31 w(h)p 882 1608 V 31 w(half)24 b Fe(;)14 +b Fm(0)o Fe(;)g Fn(\000)p Fi(axis)p 1387 1608 V 30 w(v)p +1455 1608 V 31 w(half)24 b Fm(\);)166 1708 y Fk(P)m(oin)m(t)33 +b Fi(top)p 540 1708 V 31 w(lft)12 b Fm(\()p Fn(\000)p +Fi(axis)p 894 1708 V 31 w(h)p 967 1708 V 31 w(half)23 +b Fe(;)14 b Fm(0)p Fe(;)g Fi(axis)p 1407 1708 V 31 w(v)p +1476 1708 V 30 w(half)24 b Fm(\);)166 1807 y Fk(P)m(oin)m(t)33 +b Fi(top)p 540 1807 V 31 w(rt)12 b Fm(\()p Fi(axis)p +818 1807 V 31 w(h)p 891 1807 V 31 w(half)23 b Fe(;)14 +b Fm(0)p Fe(;)g Fi(axis)p 1331 1807 V 30 w(v)p 1399 1807 +V 31 w(half)23 b Fm(\);)166 1932 y Fk(if)41 b Fm(\()p +Fi(angle)p 486 1932 V 32 w(x)c Fn(6)p Fm(=)22 b(0)c Fn(_)h +Fi(angle)p 1001 1932 V 31 w(y)35 b Fn(6)p Fm(=)23 b(0)18 +b Fn(_)h Fi(angle)p 1515 1932 V 31 w(z)37 b Fn(6)p Fm(=)23 +b(0)o(\))167 b Fe(=)p Fn(\003)40 b Fm(Rotation)27 b(around)g(the)h +(x-axis,)e(y-axis,)h(and)g(z-axis.)50 b Fn(\003)p Fe(=)166 +2031 y Fn(f)249 2131 y Fi(b)l(ot)p 358 2131 V 31 w(lft)12 +b Fe(:)p Fi(r)l(otate)e Fm(\()p Fi(angle)p 935 2131 V +32 w(x)k Fe(;)g Fi(angle)p 1243 2131 V 31 w(y)e Fe(;)i +Fi(angle)p 1549 2131 V 31 w(z)g Fm(\);)249 2231 y Fi(b)l(ot)p +358 2231 V 31 w(rt)d Fe(:)p Fi(r)l(otate)g Fm(\()p Fi(angle)p +924 2231 V 31 w(x)j Fe(;)g Fi(angle)p 1231 2231 V 31 +w(y)e Fe(;)i Fi(angle)p 1537 2231 V 31 w(z)h Fm(\);)249 +2330 y Fi(top)p 366 2330 V 31 w(lft)d Fe(:)p Fi(r)l(otate)f +Fm(\()p Fi(angle)p 944 2330 V 32 w(x)i Fe(;)h Fi(angle)p +1251 2330 V 31 w(y)e Fe(;)i Fi(angle)p 1557 2330 V 31 +w(z)h Fm(\);)249 2430 y Fi(top)p 366 2430 V 31 w(rt)d +Fe(:)p Fi(r)l(otate)e Fm(\()p Fi(angle)p 932 2430 V 32 +w(x)k Fe(;)g Fi(angle)p 1240 2430 V 31 w(y)e Fe(;)i Fi(angle)p +1546 2430 V 31 w(z)g Fm(\);)166 2530 y Fn(g)166 b Fe(=)p +Fn(\003)40 b Fm(Put)28 b(around)e Fi(c)l(enter)13 b Fm(.)51 +b Fn(\003)p Fe(=)166 2629 y Fi(b)l(ot)p 275 2629 V 31 +w(lft)12 b Fe(:)p Fi(shift)h Fm(\()p Fi(c)l(enter)g Fm(\);)166 +2729 y Fi(b)l(ot)p 275 2729 V 31 w(rt)e Fe(:)p Fi(shift)i Fm(\()p Fi(c)l(enter)g Fm(\);)166 2828 y Fi(top)p 283 2828 V 31 w(lft)f Fe(:)p Fi(shift)h Fm(\()p Fi(c)l(enter)h Fm(\);)166 2928 y Fi(top)p 283 2928 V 31 w(rt)e Fe(:)p @@ -26873,27 +26854,26 @@ b(=)e Fi(top)p 748 3327 V 31 w(rt)12 b Fm(;)166 3426 y Fn(\003)p Fi(p)l(oints)f Fm([3)o(])24 b(=)e Fi(top)p 748 3426 V 31 w(lft)13 b Fm(;)83 3526 y Fn(g)0 3725 y -Fk(1063.)94 b(Setting)31 b(function.)p 0 3824 1643 4 -v 1738 3857 a(Begin)g(Log)p 2257 3824 V 83 3998 a Fm([)p -Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Made)27 b Fk(real)33 -b Fm(argumen)n(ts)26 b Fk(const)5 b Fm(.)p 0 4090 1678 -4 v 1773 4122 a Fk(End)32 b(Log)p 2222 4090 V 0 4247 -a Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j -Fl(1058)15 b Fn(i)24 b Fm(+)p Fn(\021)83 4346 y Fk(v)m(oid)32 -b Fi(set)12 b Fm(\()p Fk(const)32 b(P)m(oin)m(t)g Fm(&)o +Fk(1066.)94 b(Setting)31 b(function.)p 0 3824 1779 4 +v 1874 3856 a(Log)p 2122 3824 V 83 3997 a Fm([)p Fh(LDF)25 +b(2002.11.06.)p Fm(])61 b(Made)27 b Fk(real)33 b Fm(argumen)n(ts)26 +b Fk(const)5 b Fm(.)p 0 4089 3900 4 v 0 4246 a Fn(h)14 +b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j Fl(1061)15 +b Fn(i)24 b Fm(+)p Fn(\021)83 4346 y Fk(v)m(oid)32 b +Fi(set)12 b Fm(\()p Fk(const)32 b(P)m(oin)m(t)g Fm(&)o Fi(c)l(c)l(enter)13 b Fe(;)h Fk(const)32 b(real)f Fi(aaxis)p 1932 4346 26 4 v 32 w(h)11 b Fe(;)j Fk(const)31 b(real)h Fi(aaxis)p 2673 4346 V 31 w(v)14 b Fe(;)g Fk(const)31 b(real)h Fi(angle)p 3416 4346 V 31 w(x)37 b Fm(=)23 b(0)o -Fe(;)14 b Fk(const)249 4446 y(real)33 b Fi(angle)p 629 -4446 V 31 w(y)i Fm(=)22 b(0)p Fe(;)14 b Fk(const)32 b(real)h -Fi(angle)p 1526 4446 V 31 w(z)k Fm(=)23 b(0\);)p eop +Fe(;)14 b Fk(const)249 4445 y(real)33 b Fi(angle)p 629 +4445 V 31 w(y)i Fm(=)22 b(0)p Fe(;)14 b Fk(const)32 b(real)h +Fi(angle)p 1526 4445 V 31 w(z)k Fm(=)23 b(0\);)p eop end -%%Page: 300 300 -TeXDict begin 300 299 bop 0 83 a Fm(300)140 b Fl(SETTING)24 -b(FUNCTION)2170 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1064)0 -263 y Fk(1064.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k -Fm(functions)k Fl(1059)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 303 303 +TeXDict begin 303 302 bop 0 83 a Fn(x)p Fm(1067)139 b +Fl(3DLDFPR)n(G)2171 b(SETTING)24 b(FUNCTION)141 b Fm(303)0 +263 y Fk(1067.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k +Fm(functions)k Fl(1062)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)36 b(Rectangle)12 b Fm(::)c Fi(set)k Fm(\()p Fk(const)36 b(P)m(oin)m(t)g Fm(&)p Fi(c)l(c)l(enter)13 b Fe(;)h Fk(const)35 b(real)h Fi(aaxis)p 2432 487 26 @@ -26907,19 +26887,19 @@ 1477 786 V 31 w(v)g Fe(;)g Fi(angle)p 1783 786 V 31 w(x)f Fe(;)h Fi(angle)p 2089 786 V 32 w(y)e Fe(;)i Fi(angle)p 2396 786 V 31 w(z)g Fm(\);)166 911 y Fn(\003)p Fi(this)34 -b Fm(=)23 b Fe(r)r Fm(;)83 1010 y Fn(g)0 1209 y Fk(1065.)94 +b Fm(=)23 b Fe(r)r Fm(;)83 1010 y Fn(g)0 1209 y Fk(1068.)94 b(F)-8 b(our)26 b(P)m(oin)m(ts.)95 b Fm(The)23 b Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)21 b(m)n(ust)i(b)r(e)g(so)f(ordered,)g(that)h(they)g (are)f(con)n(tiguous)f(in)i(the)g(resulting)0 1309 y -Fk(Rectangle)t Fm(.)0 1508 y Fk(1066.)94 b(Constructor.)0 +Fk(Rectangle)t Fm(.)0 1508 y Fk(1069.)94 b(Constructor.)0 1633 y Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j -Fl(1058)15 b Fn(i)24 b Fm(+)p Fn(\021)83 1733 y Fk(Rectangle)t +Fl(1061)15 b Fn(i)24 b Fm(+)p Fn(\021)83 1733 y Fk(Rectangle)t Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(pt0)16 b Fe(;)e Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fi(pt1)16 b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(pt2)16 b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)o Fi(pt3)16 -b Fm(\);)0 1932 y Fk(1067.)0 2056 y Fn(h)e Fm(De\014ne)28 -b Fk(Rectangle)k Fm(functions)k Fl(1059)15 b Fn(i)23 +b Fm(\);)0 1932 y Fk(1070.)0 2056 y Fn(h)e Fm(De\014ne)28 +b Fk(Rectangle)k Fm(functions)k Fl(1062)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2156 y Fk(Rectangle)12 b Fm(::)c Fk(Rectangle)d Fm(\()p Fk(const)30 b(P)m(oin)m(t)f Fm(&)p Fi(pt0)16 b Fe(;)e Fk(const)29 b(P)m(oin)m(t)h Fm(&)o @@ -26950,7 +26930,7 @@ 3426 V 31 w(switch)35 b Fm(=)22 b Fi(false)12 b Fm(;)249 3526 y Fi(cycle)p 429 3526 V 32 w(switch)34 b Fm(=)23 b Fi(true)10 b Fm(;)249 3625 y Fi(c)l(enter)36 b Fm(=)23 -b Fi(me)l(diate)11 b Fm(\()p Fi(pt0)16 b Fe(;)e Fi(pt2)i +b Fi(pt0)15 b Fe(:)p Fi(me)l(diate)d Fm(\()p Fi(pt2)k Fm(\);)249 3725 y Fi(axis)p 394 3725 V 31 w(h)34 b Fm(=)23 b(\()p Fi(pt1)34 b Fn(\000)18 b Fi(pt0)e Fm(\))p Fe(:)p Fi(magnitude)c Fm(\()i(\);)249 3825 y Fi(axis)p 394 3825 @@ -26980,18 +26960,18 @@ b(anar.)p Fj( )p Ff(Returning)o(.\\)o(n\\)g(n")26 b Fn(\034)d Fi(\015ush)11 b Fm(;)166 4821 y Fn(g)166 4921 y Fk(return)5 b Fm(;)83 5020 y Fn(g)p eop end -%%Page: 301 301 -TeXDict begin 301 300 bop 0 83 a Fn(x)p Fm(1068)139 b -Fl(3DLDFPR)n(G)2171 b(SETTING)24 b(FUNCTION)141 b Fm(301)0 -263 y Fk(1068.)94 b(Setting)31 b(function.)0 388 y Fn(h)14 -b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j Fl(1058)15 +%%Page: 304 304 +TeXDict begin 304 303 bop 0 83 a Fm(304)140 b Fl(SETTING)24 +b(FUNCTION)2170 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1071)0 +263 y Fk(1071.)94 b(Setting)31 b(function.)0 388 y Fn(h)14 +b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j Fl(1061)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b Fi(set)11 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(pt0)16 b Fe(;)e Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(pt1)16 b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(pt2)16 b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(pt3)16 -b Fm(\);)0 686 y Fk(1069.)0 811 y Fn(h)e Fm(De\014ne)28 -b Fk(Rectangle)k Fm(functions)k Fl(1059)15 b Fn(i)23 +b Fm(\);)0 686 y Fk(1072.)0 811 y Fn(h)e Fm(De\014ne)28 +b Fk(Rectangle)k Fm(functions)k Fl(1062)15 b Fn(i)23 b Fm(+)p Fn(\021)83 911 y Fk(v)m(oid)33 b(Rectangle)12 b Fm(::)c Fi(set)k Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(pt0)16 b Fe(;)e Fk(const)33 b(P)m(oin)m(t)g @@ -27000,16 +26980,16 @@ Fm(&)o Fi(pt3)16 b Fm(\))83 1010 y Fn(f)166 1110 y Fk(Rectangle)32 b Fe(r)s Fm(\()p Fi(pt0)16 b Fe(;)e Fi(pt1)i Fe(;)e Fi(pt2)i Fe(;)e Fi(pt3)h Fm(\);)166 1234 y Fn(\003)p Fi(this)34 -b Fm(=)23 b Fe(r)r Fm(;)83 1334 y Fn(g)0 1533 y Fk(1070.)94 +b Fm(=)23 b Fe(r)r Fm(;)83 1334 y Fn(g)0 1533 y Fk(1073.)94 b(Pseudo-constructor)32 b(for)g(dynamic)g(allo)s(cation.)0 -1733 y(1071.)94 b(Optional)31 b(p)s(oin)m(ter)g(argumen)m(t.)0 +1733 y(1074.)94 b(Optional)31 b(p)s(oin)m(ter)g(argumen)m(t.)0 1857 y Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j -Fl(1058)15 b Fn(i)24 b Fm(+)p Fn(\021)83 1957 y Fk(static)33 +Fl(1061)15 b Fn(i)24 b Fm(+)p Fn(\021)83 1957 y Fk(static)33 b(Rectangle)f Fn(\003)o Fi(cr)l(e)l(ate)p 1045 1957 26 4 v 31 w(new)p 1216 1957 V 30 w(r)l(e)l(ctangle)11 b Fm(\()p Fk(const)33 b(Rectangle)f Fn(\003)o Fe(p)23 b -Fm(=)g(0)o(\);)0 2156 y Fk(1072.)0 2280 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Rectangle)k Fm(functions)k Fl(1059)15 b Fn(i)23 +Fm(=)g(0)o(\);)0 2156 y Fk(1075.)0 2280 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Rectangle)k Fm(functions)k Fl(1062)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2380 y Fk(Rectangle)32 b Fn(\003)o Fk(Rectangle)13 b Fm(::)8 b Fi(cr)l(e)l(ate)p 1265 2380 V 31 w(new)p 1436 2380 V 31 w(r)l(e)l(ctangle)i Fm(\()p @@ -27025,33 +27005,33 @@ b Fm(;)166 3003 y Fe(r)189 3028 y(~)239 3003 y Fi(cycle)p 419 3003 V 32 w(switch)34 b Fm(=)23 b Fi(true)10 b Fm(;)166 3102 y Fk(return)33 b Fe(r)s Fm(;)83 3202 y Fn(g)0 3401 -y Fk(1073.)94 b(Required)31 b(Rectangle)g(argumen)m(t.)0 +y Fk(1076.)94 b(Required)31 b(Rectangle)g(argumen)m(t.)0 3526 y Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j -Fl(1058)15 b Fn(i)24 b Fm(+)p Fn(\021)83 3625 y Fk(static)33 +Fl(1061)15 b Fn(i)24 b Fm(+)p Fn(\021)83 3625 y Fk(static)33 b(Rectangle)f Fn(\003)o Fi(cr)l(e)l(ate)p 1045 3625 V 31 w(new)p 1216 3625 V 30 w(r)l(e)l(ctangle)11 b Fm(\()p Fk(const)33 b(Rectangle)f Fm(&)o Fe(p)p Fm(\);)p eop end -%%Page: 302 302 -TeXDict begin 302 301 bop 0 83 a Fm(302)140 b Fl(REQUIRED)23 -b(RECT)-6 b(ANGLE)24 b(AR)n(GUMENT)1592 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(1074)0 263 y Fk(1074.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Rectangle)k Fm(functions)k Fl(1059)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 487 y Fk(Rectangle)32 b Fn(\003)o -Fk(Rectangle)13 b Fm(::)8 b Fi(cr)l(e)l(ate)p 1265 487 -26 4 v 31 w(new)p 1436 487 V 31 w(r)l(e)l(ctangle)i Fm(\()p -Fk(const)33 b(Rectangle)f Fm(&)o Fe(p)p Fm(\))83 587 -y Fn(f)166 686 y Fk(Rectangle)g Fn(\003)o Fe(r)26 b Fm(=)d -Fk(new)33 b Fm(\()p Fk(Rectangle)5 b Fm(\);)166 811 y -Fn(\003)p Fe(r)25 b Fm(=)e Fe(p)p Fm(;)166 911 y Fe(r)189 -936 y(~)239 911 y Fi(on)p 333 911 V 31 w(fr)l(e)l(e)p +%%Page: 305 305 +TeXDict begin 305 304 bop 0 83 a Fn(x)p Fm(1077)139 b +Fl(3DLDFPR)n(G)1594 b(REQUIRED)23 b(RECT)-6 b(ANGLE)24 +b(AR)n(GUMENT)140 b Fm(305)0 263 y Fk(1077.)0 388 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Rectangle)k Fm(functions)k Fl(1062)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Rectangle)32 b +Fn(\003)o Fk(Rectangle)13 b Fm(::)8 b Fi(cr)l(e)l(ate)p +1265 487 26 4 v 31 w(new)p 1436 487 V 31 w(r)l(e)l(ctangle)i +Fm(\()p Fk(const)33 b(Rectangle)f Fm(&)o Fe(p)p Fm(\))83 +587 y Fn(f)166 686 y Fk(Rectangle)g Fn(\003)o Fe(r)26 +b Fm(=)d Fk(new)33 b Fm(\()p Fk(Rectangle)5 b Fm(\);)166 +811 y Fn(\003)p Fe(r)25 b Fm(=)e Fe(p)p Fm(;)166 911 +y Fe(r)189 936 y(~)239 911 y Fi(on)p 333 911 V 31 w(fr)l(e)l(e)p 492 911 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(true)9 b Fm(;)166 1010 y Fe(r)189 1035 y(~)239 1010 y Fi(line)p 375 1010 V 31 w(switch)35 b Fm(=)22 b Fi(false)12 b Fm(;)166 1110 y Fe(r)189 1135 y(~)239 1110 y Fi(cycle)p 419 1110 V 32 w(switch)34 b Fm(=)23 b Fi(true)10 b Fm(;)166 1209 y Fk(return)33 b Fe(r)s Fm(;)83 1309 y Fn(g)0 1508 y -Fk(1075.)94 b(Destructor.)i Fm([)p Fh(LDF)25 b(2002.10.09.)p +Fk(1078.)94 b(Destructor.)i Fm([)p Fh(LDF)25 b(2002.10.09.)p Fm(])61 b(Remo)n(v)n(ed)26 b(the)i(destructor.)36 b Fk(P)m(ath)15 b Fm(::)8 b Fn(\030)p Fk(P)m(ath)e Fm(\()14 b(\))28 b(or)e Fk(P)m(ath)15 b Fm(::)8 b Fi(cle)l(ar)14 b Fm(\()g(\))0 @@ -27059,23 +27039,22 @@ (dynamically)g(allo)r(cated)f(data)h(mem)n(b)r(ers)f(to)h Fk(Rectangle)47 b Fm(\(rather)41 b(than)0 1708 y Fk(Reg)p 168 1708 29 5 v 39 w(P)m(olygon)32 b Fm(or)27 b Fk(P)m(ath)6 -b Fm(\).)0 1907 y Fk(1076.)94 b(Assignmen)m(t.)p 0 2006 -1643 4 v 1738 2039 a(Begin)31 b(Log)p 2257 2006 V 83 -2179 a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Changed)27 -b(return)g(v)-5 b(alue)28 b(from)f Fk(v)m(oid)32 b Fm(to)c -Fk(const)k(Rectangle)g Fm(&.)p 0 2271 1678 4 v 1773 2304 -a Fk(End)g(Log)p 2222 2271 V 0 2429 a Fn(h)14 b Fm(Declare)27 -b Fk(Rectangle)32 b Fm(functions)j Fl(1058)15 b Fn(i)24 -b Fm(+)p Fn(\021)83 2528 y Fk(const)32 b(Rectangle)g +b Fm(\).)0 1907 y Fk(1079.)94 b(Assignmen)m(t.)p 0 2005 +1779 4 v 1874 2038 a(Log)p 2122 2005 V 83 2179 a Fm([)p +Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Changed)27 b(return)g(v)-5 +b(alue)28 b(from)f Fk(v)m(oid)32 b Fm(to)c Fk(const)k(Rectangle)g +Fm(&.)p 0 2271 3900 4 v 0 2428 a Fn(h)14 b Fm(Declare)27 +b Fk(Rectangle)32 b Fm(functions)j Fl(1061)15 b Fn(i)24 +b Fm(+)p Fn(\021)83 2527 y Fk(const)32 b(Rectangle)g Fm(&)p Fk(op)s(erator)5 b Fm(=)o(\()p Fk(const)33 b(Rectangle)f Fm(&)o Fe(c)p Fm(\);)p eop end -%%Page: 303 303 -TeXDict begin 303 302 bop 0 83 a Fn(x)p Fm(1077)139 b -Fl(3DLDFPR)n(G)2423 b(ASSIGNMENT)141 b Fm(303)0 263 y -Fk(1077.)94 b Fm(!!)37 b(Remem)n(b)r(er)27 b(to)h(put)g(an)n(ything)f -(sp)r(eci\014c)h(to)f Fk(Rectangles)32 b Fm(in)c(here!)0 -388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k Fm(functions)k -Fl(1059)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(const)32 +%%Page: 306 306 +TeXDict begin 306 305 bop 0 83 a Fm(306)140 b Fl(ASSIGNMENT)2422 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1080)0 263 y Fk(1080.)94 +b Fm(!!)37 b(Remem)n(b)r(er)27 b(to)h(put)g(an)n(ything)f(sp)r +(eci\014c)h(to)f Fk(Rectangles)32 b Fm(in)c(here!)0 388 +y Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k Fm(functions)k +Fl(1062)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(const)32 b(Rectangle)g Fm(&)p Fk(Rectangle)12 b Fm(::)d Fk(op)s(erator)c Fm(=)o(\()p Fk(const)33 b(Rectangle)f Fm(&)o Fe(c)p Fm(\))83 587 y Fn(f)166 686 y Fi(cle)l(ar)14 b Fm(\()g(\);)166 @@ -27086,327 +27065,384 @@ 31 w(h)11 b Fm(;)166 1085 y Fi(axis)p 311 1085 V 31 w(v)36 b Fm(=)23 b Fe(c:)p Fi(axis)p 703 1085 V 31 w(v)13 b Fm(;)166 1185 y Fk(return)33 b Fn(\003)p Fi(this)11 b -Fm(;)83 1284 y Fn(g)0 1483 y Fk(1078.)94 b(Returning)31 -b(Elemen)m(ts)f(and)j(information.)p 0 1583 1643 4 v -1738 1615 a(Begin)e(Log)p 2257 1583 V 83 1756 a Fm([)p -Fh(LDF)25 b(2003.04.15.)p Fm(])67 b(Added)33 b(this)h(section.)53 +Fm(;)83 1284 y Fn(g)0 1483 y Fk(1081.)94 b(Returning)31 +b(Elemen)m(ts)f(and)j(information.)p 0 1582 1779 4 v +1874 1615 a(Log)p 2122 1582 V 83 1755 a Fm([)p Fh(LDF)25 +b(2003.04.15.)p Fm(])67 b(Added)33 b(this)h(section.)53 b(It's)33 b(b)r(ecome)g(necessary)-7 b(,)33 b(since)f(I'm)i(deriving)e -Fk(Rectangle)37 b Fm(from)c Fk(P)m(ath)0 1856 y Fm(no)n(w,)27 -b(and)g(not)h(from)f Fk(Reg)p 869 1856 29 5 v 40 w(P)m(olygon)t -Fm(.)p 0 1948 1678 4 v 1773 1980 a Fk(End)32 b(Log)p -2222 1948 V 0 2179 a(1079.)94 b(Returning)31 b(P)m(oin)m(ts.)p -0 2279 1643 4 v 1738 2311 a(Begin)g(Log)p 2257 2279 V -83 2452 a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])68 b(Got)34 -b(rid)g(of)g Fi(get)p 1265 2452 26 4 v 30 w(c)l(enter)13 -b Fm(\()h(\).)57 b(It's)34 b(not)g(needed,)i(since)e -Fk(Reg)p 2673 2452 29 5 v 39 w(P)m(olygon)13 b Fm(::)8 -b Fi(get)p 3220 2452 26 4 v 31 w(c)l(enter)k Fm(\()j(\))34 -b(do)r(es)g(the)0 2552 y(tric)n(k.)83 2651 y([)p Fh(LDF)25 -b(2003.04.15.)p Fm(])55 b(Added)22 b Fi(get)p 1101 2651 -V 30 w(c)l(enter)13 b Fm(\()h(\))22 b(again,)f(since)g(I'm)h(no)e -(longer)g(deriving)h Fk(Rectangle)k Fm(from)c Fk(Reg)p -3501 2651 29 5 v 39 w(P)m(olygon)5 b Fm(,)0 2751 y(but)28 -b(from)f Fk(P)m(ath)6 b Fm(.)83 2851 y([)p Fh(LDF)25 -b(2003.07.18.)p Fm(])64 b(Got)30 b(rid)f(of)h Fi(get)p -1248 2851 26 4 v 31 w(c)l(enter)12 b Fm(\()j(\))30 b(again,)f(b)r -(ecause)h Fk(Rectangle)k Fm(is)c(no)n(w)f(deriv)n(ed)g(from)h -Fk(P)m(olygon)5 b Fm(,)30 b(and)0 2950 y(I'v)n(e)d(mo)n(v)n(ed)g(the)h -Fk(Reg)p 731 2950 29 5 v 39 w(P)m(olygon)k Fm(v)n(ersions)26 -b(to)h Fk(P)m(olygon)5 b Fm(.)p 0 3042 1678 4 v 1773 -3075 a Fk(End)32 b(Log)p 2222 3042 V 0 3274 a(1080.)94 -b(Corner.)h Fm(The)28 b(argumen)n(t)e Fe(c)i Fm(should)f(b)r(e)h(in)g -(the)g(range)e(0)d Fe(<)p Fm(=)f Fe(c)h(<)p Fm(=)f(3.)0 -3398 y Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j -Fl(1058)15 b Fn(i)24 b Fm(+)p Fn(\021)83 3498 y Fk(P)m(oin)m(t)33 -b Fi(c)l(orner)13 b Fm(\()p Fk(unsigned)32 b(short)g -Fe(c)p Fm(\);)0 3697 y Fk(1081.)0 3822 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Rectangle)k Fm(functions)k Fl(1059)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 3922 y Fk(P)m(oin)m(t)33 b(Rectangle)12 -b Fm(::)c Fi(c)l(orner)14 b Fm(\()p Fk(unsigned)32 b(short)g -Fe(c)p Fm(\))83 4021 y Fn(f)166 4121 y Fk(if)41 b Fm(\()p -Fe(c)24 b(>)e Fm(3\))41 b Fn(f)249 4220 y Fi(c)l(err)80 -b Fn(\034)66 b Ff("ERROR:)p Fj( )p Ff(Rectangl)o(es)p -Fj( )o Ff(h)-6 b(ave)p Fj( )p Ff(4)p Fj( )p Ff(corners,)p -Fj( )p Ff(")64 b Fn(\034)415 4320 y Ff("numbered)p Fj( )p -Ff(0)p Fj( )p Ff(thro)o(ugh)o Fj( )-6 b Ff(3.\\nReturning)p -Fj( )p Ff(IN)o(VA)o(LI)g(D_POINT.\\n")22 b Fn(\034)i -Fi(\015ush)10 b Fm(;)249 4420 y Fk(return)33 b Ff(INVALID_POINT)o -Fm(;)166 4519 y Fn(g)166 4619 y Fk(return)g Fn(\003)p -Fi(p)l(oints)11 b Fm([)p Fe(c)p Fm(];)83 4719 y Fn(g)p -eop end -%%Page: 304 304 -TeXDict begin 304 303 bop 0 83 a Fm(304)140 b Fl(GET)24 -b(MID-POINT)2325 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1082)0 -263 y Fk(1082.)94 b(Get)32 b(Mid-p)s(oin)m(t.)93 b Fm(The)28 -b(argumen)n(t)e Fe(c)i Fm(should)f(b)r(e)h(in)g(the)g(range)e(0)d -Fe(<)p Fm(=)f Fe(c)h(<)p Fm(=)f(3.)p 0 362 1643 4 v 1738 -395 a Fk(Begin)31 b(Log)p 2257 362 V 83 536 a Fm([)p -Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Changed)27 b(this)h(function)g(so)f +Fk(Rectangle)37 b Fm(from)c Fk(P)m(ath)0 1855 y Fm(no)n(w,)27 +b(and)g(not)h(from)f Fk(Reg)p 869 1855 29 5 v 40 w(P)m(olygon)t +Fm(.)p 0 1947 3900 4 v 0 2179 a Fk(1082.)94 b(Is)35 b(rectangular.)96 +b Fi(is)p 1083 2179 26 4 v 31 w(r)l(e)l(ctangular)14 +b Fm(\()g(\))31 b(tests)g(whether)f(a)h Fk(Rectangle)k +Fm(is)30 b(rectangular.)45 b(It)31 b(\014rst)g(tests)f(if)i(the)0 +2278 y Fk(Rectangle)e Fm(is)25 b(planar.)35 b(Then)26 +b(it)g(creates)e(v)n(ectors)g(from)i(the)g(p)r(oin)n(ts)f(on)g(the)h +Fk(Rectangle)t Fm(,)g(and)g(c)n(hec)n(ks)e(their)i(angles)e(to)0 +2378 y(one)k(another.)39 b(If)29 b(they)g(are)e(within)j +Fk(P)m(oin)m(t)13 b Fm(::)8 b Fi(epsilon)13 b Fm(\()h(\))29 +b(\(exclusiv)n(e\))f(of)g(180)2459 2348 y Fd(\016)2525 +2378 y Fm(in)h(one)f(case,)g(and)g(90)3222 2348 y Fd(\016)3288 +2378 y Fm(in)h(the)g(other)f(t)n(w)n(o,)0 2478 y Fi(is)p +64 2478 V 31 w(r)l(e)l(ctangular)13 b Fm(\()h(\))28 b(returns)f(1,)g +(otherwise)g(0.)37 b([)p Fh(LDF)25 b(2003.12.02.)p Fm(])p +0 2581 1779 4 v 1874 2613 a Fk(Log)p 2122 2581 V 83 2754 +a Fm([)p Fh(LDF)g(2003.11.28.)p Fm(])61 b(Added)28 b(this)g(function.) +83 2854 y([)p Fh(LDF)d(2003.12.02.)p Fm(])61 b(Added)28 +b(test)g(of)g(planarit)n(y)e(at)i(b)r(eginning)f(of)h(function.)83 +2953 y([)p Fh(LDF)d(2003.12.09.)p Fm(])52 b(No)n(w)18 +b(using)g Fi(cr)l(oss)p 1302 2953 26 4 v 31 w(pr)l(o)l(duct)12 +b Fm(\()i(\))19 b(to)f(test)h(for)f(parallelit)n(y)f(of)h(the)h(sides.) +33 b(TO)18 b(DO:)h(Add)g Fk(P)m(ath)14 b Fm(::)8 b Fi(is)p +3710 2953 V 31 w(p)l(ar)l(al)t(lel)15 b Fm(\()f(\))p +4087 2974 42 84 v 0 3053 a(and)27 b(a)h(v)n(ersion)e(for)h +Fk(P)m(oin)m(ts)5 b Fm(.)p 0 3145 3900 4 v 0 3302 a Fn(h)14 +b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j Fl(1061)15 +b Fn(i)24 b Fm(+)p Fn(\021)83 3402 y Fk(b)s(o)s(ol)31 +b Fi(is)p 360 3402 26 4 v 31 w(r)l(e)l(ctangular)13 b +Fm(\()h(\))28 b Fk(const)5 b Fm(;)p eop end +%%Page: 307 307 +TeXDict begin 307 306 bop 0 83 a Fn(x)p Fm(1083)139 b +Fl(3DLDFPR)n(G)2257 b(IS)25 b(RECT)-6 b(ANGULAR)140 b +Fm(307)0 263 y Fk(1083.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Rectangle)k Fm(functions)k Fl(1062)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)31 b(Rectangle)12 +b Fm(::)c Fi(is)p 839 487 26 4 v 32 w(r)l(e)l(ctangular)13 +b Fm(\()h(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(if)41 +b Fm(\()p Fn(:)p Fi(is)p 414 686 V 32 w(planar)14 b Fm(\()g(\)\))42 +b Fk(return)33 b Fi(false)12 b Fm(;)166 811 y Fk(P)m(oin)m(t)33 +b Fe(a)23 b Fm(=)f(\()p Fi(get)p 718 811 V 31 w(p)l(oint)13 +b Fm(\(1\))18 b Fn(\000)g Fi(get)p 1253 811 V 31 w(p)l(oint)12 +b Fm(\(0\)\);)166 911 y Fk(P)m(oin)m(t)33 b Fe(b)23 b +Fm(=)f(\()p Fi(get)p 710 911 V 31 w(p)l(oint)12 b Fm(\(2\))19 +b Fn(\000)f Fi(get)p 1245 911 V 31 w(p)l(oint)12 b Fm(\(3\)\);)166 +1010 y Fk(P)m(oin)m(t)33 b Fe(c)23 b Fm(=)g(\()p Fi(get)p +711 1010 V 30 w(p)l(oint)13 b Fm(\(3\))18 b Fn(\000)g +Fi(get)p 1245 1010 V 31 w(p)l(oint)12 b Fm(\(0\)\);)166 +1110 y Fk(P)m(oin)m(t)33 b Fe(d)23 b Fm(=)g(\()p Fi(get)p +718 1110 V 31 w(p)l(oint)12 b Fm(\(2\))19 b Fn(\000)f +Fi(get)p 1253 1110 V 30 w(p)l(oint)13 b Fm(\(1)o(\)\);)166 +1234 y Fk(return)35 b Fm(\()p Fe(a)q(:)p Fi(cr)l(oss)p +750 1234 V 30 w(pr)l(o)l(duct)13 b Fm(\()p Fe(b)p Fm(\))27 +b Fn(\021)f Fi(origin)32 b Fn(^)20 b Fe(c:)p Fi(cr)l(oss)p +1832 1234 V 31 w(pr)l(o)l(duct)13 b Fm(\()p Fe(d)p Fm(\))27 +b Fn(\021)g Fi(origin)k Fn(^)21 b Fi(fabs)12 b Fm(\()p +Fi(fabs)g Fm(\()p Fe(a:)p Fi(angle)g Fm(\()p Fe(d)p Fm(\)\))21 +b Fn(\000)e Fm(90)o(\))28 b Fe(<)332 1334 y Fk(P)m(oin)m(t)14 +b Fm(::)8 b Fi(epsilon)k Fm(\()i(\)\);)83 1434 y Fn(g)0 +1633 y Fk(1084.)94 b(Returning)31 b(P)m(oin)m(ts.)p 0 +1731 1779 4 v 1874 1764 a(Log)p 2122 1731 V 83 1905 a +Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])68 b(Got)34 b(rid)g(of)g +Fi(get)p 1265 1905 26 4 v 30 w(c)l(enter)13 b Fm(\()h(\).)57 +b(It's)34 b(not)g(needed,)i(since)e Fk(Reg)p 2673 1905 +29 5 v 39 w(P)m(olygon)13 b Fm(::)8 b Fi(get)p 3220 1905 +26 4 v 31 w(c)l(enter)k Fm(\()j(\))34 b(do)r(es)g(the)0 +2004 y(tric)n(k.)83 2104 y([)p Fh(LDF)25 b(2003.04.15.)p +Fm(])55 b(Added)22 b Fi(get)p 1101 2104 V 30 w(c)l(enter)13 +b Fm(\()h(\))22 b(again,)f(since)g(I'm)h(no)e(longer)g(deriving)h +Fk(Rectangle)k Fm(from)c Fk(Reg)p 3501 2104 29 5 v 39 +w(P)m(olygon)5 b Fm(,)0 2204 y(but)28 b(from)f Fk(P)m(ath)6 +b Fm(.)83 2303 y([)p Fh(LDF)25 b(2003.07.18.)p Fm(])64 +b(Got)30 b(rid)f(of)h Fi(get)p 1248 2303 26 4 v 31 w(c)l(enter)12 +b Fm(\()j(\))30 b(again,)f(b)r(ecause)h Fk(Rectangle)k +Fm(is)c(no)n(w)f(deriv)n(ed)g(from)h Fk(P)m(olygon)5 +b Fm(,)30 b(and)0 2403 y(I'v)n(e)d(mo)n(v)n(ed)g(the)h +Fk(Reg)p 731 2403 29 5 v 39 w(P)m(olygon)k Fm(v)n(ersions)26 +b(to)h Fk(P)m(olygon)5 b Fm(.)p 0 2495 3900 4 v 0 2727 +a Fk(1085.)94 b(Corner.)h Fm(The)28 b(argumen)n(t)e Fe(c)i +Fm(should)f(b)r(e)h(in)g(the)g(range)e(0)d Fe(<)p Fm(=)f +Fe(c)h(<)p Fm(=)f(3.)0 2851 y Fn(h)14 b Fm(Declare)27 +b Fk(Rectangle)32 b Fm(functions)j Fl(1061)15 b Fn(i)24 +b Fm(+)p Fn(\021)83 2951 y Fk(P)m(oin)m(t)33 b Fi(c)l(orner)13 +b Fm(\()p Fk(unsigned)32 b(short)g Fe(c)p Fm(\);)0 3150 +y Fk(1086.)0 3275 y Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k +Fm(functions)k Fl(1062)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3374 y Fk(P)m(oin)m(t)33 b(Rectangle)12 b Fm(::)c Fi(c)l(orner)14 +b Fm(\()p Fk(unsigned)32 b(short)g Fe(c)p Fm(\))83 3474 +y Fn(f)166 3574 y Fk(if)41 b Fm(\()p Fe(c)24 b(>)e Fm(3\))41 +b Fn(f)249 3673 y Fi(c)l(err)80 b Fn(\034)66 b Ff("ERROR:)p +Fj( )p Ff(Rectangl)o(es)p Fj( )o Ff(h)-6 b(ave)p Fj( )p +Ff(4)p Fj( )p Ff(corners,)p Fj( )p Ff(")64 b Fn(\034)415 +3773 y Ff("numbered)p Fj( )p Ff(0)p Fj( )p Ff(thro)o(ugh)o +Fj( )-6 b Ff(3.\\nReturning)p Fj( )p Ff(IN)o(VA)o(LI)g(D_POINT.\\n")22 +b Fn(\034)i Fi(\015ush)10 b Fm(;)249 3872 y Fk(return)33 +b Ff(INVALID_POINT)o Fm(;)166 3972 y Fn(g)166 4072 y +Fk(return)g Fn(\003)p Fi(p)l(oints)11 b Fm([)p Fe(c)p +Fm(];)83 4171 y Fn(g)0 4371 y Fk(1087.)94 b(Get)32 b(Mid-p)s(oin)m(t.) +93 b Fm(The)28 b(argumen)n(t)e Fe(c)i Fm(should)f(b)r(e)h(in)g(the)g +(range)e(0)d Fe(<)p Fm(=)f Fe(c)h(<)p Fm(=)f(3.)p 0 4469 +1779 4 v 1874 4502 a Fk(Log)p 2122 4469 V 83 4642 a Fm([)p +Fh(LDF)j(2002.11.06.)p Fm(])61 b(Changed)27 b(this)h(function)g(so)f (that)h(it)g(uses)f Fi(me)l(diate)12 b Fm(\()i(\).)83 -635 y([)p Fh(LDF)25 b(2003.05.09.)p Fm(])61 b(Renamed)28 -b(this)g(function)g Fi(get)p 1701 635 26 4 v 30 w(mid)p -1866 635 V 32 w(p)l(oint)12 b Fm(\()i(\).)37 b(F)-7 b(ormerly)g(,)27 -b(it)h(w)n(as)f(called)g Fi(mid)p 3212 635 V 31 w(p)l(oint)13 -b Fm(\()h(\).)83 735 y([)p Fh(LDF)25 b(2003.07.18.)p -Fm(])61 b(Made)27 b Fk(const)5 b Fm(.)p 0 827 1678 4 -v 1773 859 a Fk(End)32 b(Log)p 2222 827 V 0 984 a Fn(h)14 -b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j Fl(1058)15 -b Fn(i)24 b Fm(+)p Fn(\021)83 1084 y Fk(P)m(oin)m(t)33 -b Fi(get)p 449 1084 26 4 v 30 w(mid)p 614 1084 V 32 w(p)l(oint)12 -b Fm(\()p Fk(unsigned)32 b(short)g Fe(c)p Fm(\))c Fk(const)5 -b Fm(;)0 1283 y Fk(1083.)0 1407 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Rectangle)k Fm(functions)k Fl(1059)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 1507 y Fk(P)m(oin)m(t)33 b(Rectangle)12 -b Fm(::)c Fi(get)p 928 1507 V 31 w(mid)p 1094 1507 V -32 w(p)l(oint)k Fm(\()p Fk(unsigned)32 b(short)g Fe(c)p -Fm(\))c Fk(const)83 1607 y Fn(f)166 1706 y Fk(if)41 b -Fm(\()p Fe(c)24 b(>)e Fm(3\))41 b Fn(f)249 1806 y Fi(c)l(err)76 -b Fn(\034)63 b Ff("ERROR:)p Fj( )p Ff(Rectangle)o(s)p -Fj( )o Ff(h)-6 b(ave)p Fj( )p Ff(4)p Fj( )p Ff(mid_points)o(,)p -Fj( )p Ff(")61 b Fn(\034)415 1905 y Ff("numbered)p Fj( )p -Ff(0)p Fj( )p Ff(thro)o(ugh)o Fj( )-6 b Ff(3.\\nReturning)p +4742 y([)p Fh(LDF)25 b(2003.05.09.)p Fm(])61 b(Renamed)28 +b(this)g(function)g Fi(get)p 1701 4742 26 4 v 30 w(mid)p +1866 4742 V 32 w(p)l(oint)12 b Fm(\()i(\).)37 b(F)-7 +b(ormerly)g(,)27 b(it)h(w)n(as)f(called)g Fi(mid)p 3212 +4742 V 31 w(p)l(oint)13 b Fm(\()h(\).)83 4842 y([)p Fh(LDF)25 +b(2003.07.18.)p Fm(])61 b(Made)27 b Fk(const)5 b Fm(.)p +0 4934 3900 4 v 0 5091 a Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 +b Fm(functions)j Fl(1061)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +5190 y Fk(P)m(oin)m(t)33 b Fi(get)p 449 5190 26 4 v 30 +w(mid)p 614 5190 V 32 w(p)l(oint)12 b Fm(\()p Fk(unsigned)32 +b(short)g Fe(c)p Fm(\))c Fk(const)5 b Fm(;)p eop end +%%Page: 308 308 +TeXDict begin 308 307 bop 0 83 a Fm(308)140 b Fl(GET)24 +b(MID-POINT)2325 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1088)0 +263 y Fk(1088.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k +Fm(functions)k Fl(1062)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +487 y Fk(P)m(oin)m(t)33 b(Rectangle)12 b Fm(::)c Fi(get)p +928 487 26 4 v 31 w(mid)p 1094 487 V 32 w(p)l(oint)k +Fm(\()p Fk(unsigned)32 b(short)g Fe(c)p Fm(\))c Fk(const)83 +587 y Fn(f)166 686 y Fk(if)41 b Fm(\()p Fe(c)24 b(>)e +Fm(3\))41 b Fn(f)249 786 y Fi(c)l(err)76 b Fn(\034)63 +b Ff("ERROR:)p Fj( )p Ff(Rectangle)o(s)p Fj( )o Ff(h)-6 +b(ave)p Fj( )p Ff(4)p Fj( )p Ff(mid_points)o(,)p Fj( )p +Ff(")61 b Fn(\034)415 886 y Ff("numbered)p Fj( )p Ff(0)p +Fj( )p Ff(thro)o(ugh)o Fj( )-6 b Ff(3.\\nReturning)p Fj( )p Ff(IN)o(VA)o(LI)g(D_POINT.\\n")22 b Fn(\034)i -Fi(\015ush)10 b Fm(;)249 2005 y Fk(return)33 b Ff(INVALID_POINT)o -Fm(;)166 2105 y Fn(g)166 2229 y Fk(P)m(oin)m(t)g Fi(p0)16 -b Fm(;)166 2329 y Fk(P)m(oin)m(t)33 b Fi(p1)16 b Fm(;)166 -2429 y Fk(P)m(oin)m(t)33 b Fi(p2)16 b Fm(;)166 2553 y +Fi(\015ush)10 b Fm(;)249 985 y Fk(return)33 b Ff(INVALID_POINT)o +Fm(;)166 1085 y Fn(g)166 1209 y Fk(P)m(oin)m(t)g Fi(p0)16 +b Fm(;)166 1309 y Fk(P)m(oin)m(t)33 b Fi(p1)16 b Fm(;)166 +1409 y Fk(P)m(oin)m(t)33 b Fi(p2)16 b Fm(;)166 1533 y Fi(p0)39 b Fm(=)23 b Fn(\003)p Fi(p)l(oints)11 b Fm([)p -Fe(c)p Fm(];)166 2653 y Fi(p1)39 b Fm(=)23 b(\()p Fe(c)g(<)g +Fe(c)p Fm(];)166 1633 y Fi(p1)39 b Fm(=)23 b(\()p Fe(c)g(<)g Fm(3\))g(?)g Fn(\003)p Fi(p)l(oints)11 b Fm([)p Fe(c)18 b Fm(+)g(1])23 b(:)g Fn(\003)p Fi(p)l(oints)11 b Fm([0];)166 -2752 y Fk(return)33 b Fi(me)l(diate)12 b Fm(\()p Fi(p0)k -Fe(;)e Fi(p1)i Fm(\);)83 2852 y Fn(g)0 3051 y Fk(1084.)94 +1733 y Fk(return)33 b Fi(p0)16 b Fe(:)p Fi(me)l(diate)c +Fm(\()p Fi(p1)17 b Fm(\);)83 1832 y Fn(g)0 2031 y Fk(1089.)94 b(Getting)31 b(axes.)95 b Fm([)p Fh(LDF)26 b(2003.07.18.)p -Fm(])61 b(TO)27 b(DO:)g Fi(axis)p 2097 3051 V 31 w(h)39 -b Fm(and)27 b Fi(axis)p 2510 3051 V 31 w(v)41 b Fm(are)27 -b(not)h(recalculated)e(when)i(a)0 3151 y Fk(Rectangle)k +Fm(])61 b(TO)27 b(DO:)g Fi(axis)p 2097 2031 V 31 w(h)39 +b Fm(and)27 b Fi(axis)p 2510 2031 V 31 w(v)41 b Fm(are)27 +b(not)h(recalculated)e(when)i(a)0 2131 y Fk(Rectangle)k Fm(is)27 b(transformed.)36 b(I)28 b(should)f(do)g(something)h(ab)r(out) -f(this.)p 0 3250 1643 4 v 1738 3283 a Fk(Begin)k(Log)p -2257 3250 V 83 3423 a Fm([)p Fh(LDF)25 b(2003.07.18.)p -Fm(])61 b(Added)28 b(this)g(section.)p 0 3515 1678 4 -v 1773 3548 a Fk(End)k(Log)p 2222 3515 V 0 3747 a(1085.)94 -b(Get)32 b(axis)p 668 3747 29 4 v 34 w(h.)0 3872 y Fn(h)14 -b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j Fl(1058)15 -b Fn(i)24 b Fm(+)p Fn(\021)83 3971 y Fk(real)32 b Fi(get)p -380 3971 26 4 v 31 w(axis)p 551 3971 V 31 w(h)11 b Fm(\()j(\))28 -b Fk(const)5 b Fm(;)0 4171 y Fk(1086.)0 4295 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Rectangle)k Fm(functions)k Fl(1059)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 4395 y Fk(real)32 b(Rectangle)13 -b Fm(::)8 b Fi(get)p 860 4395 V 31 w(axis)p 1031 4395 -V 31 w(h)j Fm(\()j(\))28 b Fk(const)83 4494 y Fn(f)166 -4594 y Fk(return)33 b Fi(axis)p 609 4594 V 31 w(h)11 -b Fm(;)83 4694 y Fn(g)0 4893 y Fk(1087.)94 b(Get)32 b(axis)p -668 4893 29 4 v 34 w(v.)0 5017 y Fn(h)14 b Fm(Declare)27 -b Fk(Rectangle)32 b Fm(functions)j Fl(1058)15 b Fn(i)24 -b Fm(+)p Fn(\021)83 5117 y Fk(real)32 b Fi(get)p 380 -5117 26 4 v 31 w(axis)p 551 5117 V 31 w(v)13 b Fm(\()h(\))28 +f(this.)p 0 2230 1779 4 v 1874 2262 a Fk(Log)p 2122 2230 +V 83 2403 a Fm([)p Fh(LDF)e(2003.07.18.)p Fm(])61 b(Added)28 +b(this)g(section.)p 0 2495 3900 4 v 0 2727 a Fk(1090.)94 +b(Get)32 b(axis)p 668 2727 29 4 v 34 w(h.)0 2851 y Fn(h)14 +b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j Fl(1061)15 +b Fn(i)24 b Fm(+)p Fn(\021)83 2951 y Fk(real)32 b Fi(get)p +380 2951 26 4 v 31 w(axis)p 551 2951 V 31 w(h)11 b Fm(\()j(\))28 +b Fk(const)5 b Fm(;)0 3150 y Fk(1091.)0 3275 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Rectangle)k Fm(functions)k Fl(1062)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3374 y Fk(real)32 b(Rectangle)13 +b Fm(::)8 b Fi(get)p 860 3374 V 31 w(axis)p 1031 3374 +V 31 w(h)j Fm(\()j(\))28 b Fk(const)83 3474 y Fn(f)166 +3574 y Fk(return)33 b Fi(axis)p 609 3574 V 31 w(h)11 +b Fm(;)83 3673 y Fn(g)0 3872 y Fk(1092.)94 b(Get)32 b(axis)p +668 3872 29 4 v 34 w(v.)0 3997 y Fn(h)14 b Fm(Declare)27 +b Fk(Rectangle)32 b Fm(functions)j Fl(1061)15 b Fn(i)24 +b Fm(+)p Fn(\021)83 4097 y Fk(real)32 b Fi(get)p 380 +4097 26 4 v 31 w(axis)p 551 4097 V 31 w(v)13 b Fm(\()h(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 305 305 -TeXDict begin 305 304 bop 0 83 a Fn(x)p Fm(1088)139 b +%%Page: 309 309 +TeXDict begin 309 308 bop 0 83 a Fn(x)p Fm(1093)139 b Fl(3DLDFPR)n(G)2386 b(GET)24 b Fk(AXIS)p 3533 83 29 4 -v 35 w(V)141 b Fm(305)0 263 y Fk(1088.)0 388 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Rectangle)k Fm(functions)k Fl(1059)15 +v 35 w(V)141 b Fm(309)0 263 y Fk(1093.)0 388 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Rectangle)k Fm(functions)k Fl(1062)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(real)32 b(Rectangle)13 b Fm(::)8 b Fi(get)p 860 487 26 4 v 31 w(axis)p 1031 487 V 31 w(v)13 b Fm(\()h(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(return)33 b Fi(axis)p 609 686 V 31 w(v)13 b -Fm(;)83 786 y Fn(g)0 985 y Fk(1089.)94 b(Ellipses.)p -0 1085 1643 4 v 1738 1117 a(Begin)31 b(Log)p 2257 1085 -V 83 1258 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])58 -b(Added)25 b(this)f(section.)35 b(These)24 b(functions)h(m)n(ust)f(b)r -(e)h(de\014ned)f(in)h Fj(ellipses.web)p Fm(,)20 b(b)r(ecause)j -Fk(Ellipse)0 1358 y Fm(is)k(an)h(incomplete)g(t)n(yp)r(e)f(in)h(this)g -(\014le.)p 0 1449 1678 4 v 1773 1482 a Fk(End)k(Log)p -2222 1449 V 0 1681 a(1090.)94 b(Surrounding)32 b(Ellipse.)p -0 1781 1643 4 v 1738 1813 a(Begin)f(Log)p 2257 1781 V -83 1954 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 2046 1678 4 v 1773 2078 a Fk(End)k(Log)p -2222 2046 V 0 2203 a Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 -b Fm(functions)j Fl(1058)15 b Fn(i)24 b Fm(+)p Fn(\021)83 -2303 y Fk(Ellipse)30 b Fi(out)p 512 2303 26 4 v 30 w(el)t(lipse)13 -b Fm(\()h(\))28 b Fk(const)5 b Fm(;)0 2502 y Fk(1091.)94 -b(Enclosed)31 b(Ellipse.)p 0 2601 1643 4 v 1738 2634 -a(Begin)g(Log)p 2257 2601 V 83 2774 a Fm([)p Fh(LDF)25 -b(2003.07.18.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 2866 1678 4 v 1773 2899 a Fk(End)k(Log)p 2222 2866 -V 0 3024 a Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 -b Fm(functions)j Fl(1058)15 b Fn(i)24 b Fm(+)p Fn(\021)83 -3123 y Fk(Ellipse)30 b Fi(in)p 469 3123 26 4 v 31 w(el)t(lipse)12 -b Fm(\()i(\))28 b Fk(const)5 b Fm(;)0 3322 y Fk(1092.)94 -b(Dra)m(w)33 b(surrounding)e(Ellipse.)p 0 3422 1643 4 -v 1738 3454 a(Begin)g(Log)p 2257 3422 V 83 3595 a Fm([)p -Fh(LDF)25 b(2003.07.18.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 3687 1678 4 v 1773 3720 a Fk(End)k(Log)p 2222 3687 -V 0 3844 a Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 -b Fm(functions)j Fl(1058)15 b Fn(i)24 b Fm(+)p Fn(\021)83 -3944 y Fk(Ellipse)40 b Fi(dr)l(aw)p 577 3944 26 4 v 31 -w(out)p 723 3944 V 31 w(el)t(lipse)12 b Fm(\()p Fk(const)42 -b(Color)g Fm(&)p Fi(ddr)l(aw)p 1831 3944 V 31 w(c)l(olor)54 +Fm(;)83 786 y Fn(g)0 985 y Fk(1094.)94 b(Ellipses.)p +0 1084 1779 4 v 1874 1117 a(Log)p 2122 1084 V 83 1257 +a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])58 b(Added)25 +b(this)f(section.)35 b(These)24 b(functions)h(m)n(ust)f(b)r(e)h +(de\014ned)f(in)h Fj(ellipses.web)p Fm(,)20 b(b)r(ecause)j +Fk(Ellipse)0 1357 y Fm(is)k(an)h(incomplete)g(t)n(yp)r(e)f(in)h(this)g +(\014le.)p 0 1449 3900 4 v 0 1681 a Fk(1095.)94 b(Surrounding)32 +b(Ellipse.)p 0 1779 1779 4 v 1874 1812 a(Log)p 2122 1779 +V 83 1953 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])61 +b(Added)28 b(this)g(function.)p 0 2044 3900 4 v 0 2202 +a Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j +Fl(1061)15 b Fn(i)24 b Fm(+)p Fn(\021)83 2301 y Fk(Ellipse)30 +b Fi(out)p 512 2301 26 4 v 30 w(el)t(lipse)13 b Fm(\()h(\))28 +b Fk(const)5 b Fm(;)0 2500 y Fk(1096.)94 b(Enclosed)31 +b(Ellipse.)p 0 2599 1779 4 v 1874 2632 a(Log)p 2122 2599 +V 83 2772 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])61 +b(Added)28 b(this)g(function.)p 0 2864 3900 4 v 0 3021 +a Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j +Fl(1061)15 b Fn(i)24 b Fm(+)p Fn(\021)83 3121 y Fk(Ellipse)30 +b Fi(in)p 469 3121 26 4 v 31 w(el)t(lipse)12 b Fm(\()i(\))28 +b Fk(const)5 b Fm(;)0 3320 y Fk(1097.)94 b(Dra)m(w)33 +b(surrounding)e(Ellipse.)p 0 3419 1779 4 v 1874 3452 +a(Log)p 2122 3419 V 83 3592 a Fm([)p Fh(LDF)25 b(2003.07.18.)p +Fm(])61 b(Added)28 b(this)g(function.)p 0 3684 3900 4 +v 0 3841 a Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 +b Fm(functions)j Fl(1061)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +3941 y Fk(Ellipse)40 b Fi(dr)l(aw)p 577 3941 26 4 v 31 +w(out)p 723 3941 V 31 w(el)t(lipse)12 b Fm(\()p Fk(const)42 +b(Color)g Fm(&)p Fi(ddr)l(aw)p 1831 3941 V 31 w(c)l(olor)54 b Fm(=)39 b Fn(\003)o Fk(Colors)12 b Fm(::)d Fi(default)p -2812 3944 V 31 w(c)l(olor)15 b Fe(;)f Fk(string)249 4043 +2812 3941 V 31 w(c)l(olor)15 b Fe(;)f Fk(string)249 4041 y Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(string)33 b Fi(pp)l(en)h Fm(=)23 b Ff("")t Fe(;)14 b Fk(Picture)32 b Fm(&)p Fi(pictur)l(e)i Fm(=)22 b Fi(curr)l(ent)p 2511 -4043 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)0 -4243 y Fk(1093.)94 b(Dra)m(w)33 b(enclosed)e(Ellipse.)p -0 4342 1643 4 v 1738 4374 a(Begin)g(Log)p 2257 4342 V -83 4515 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 4607 1678 4 v 1773 4640 a Fk(End)k(Log)p -2222 4607 V 0 4764 a Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 -b Fm(functions)j Fl(1058)15 b Fn(i)24 b Fm(+)p Fn(\021)83 -4864 y Fk(Ellipse)41 b Fi(dr)l(aw)p 578 4864 26 4 v 31 -w(in)p 681 4864 V 31 w(el)t(lipse)12 b Fm(\()p Fk(const)43 -b(Color)f Fm(&)p Fi(ddr)l(aw)p 1790 4864 V 32 w(c)l(olor)55 -b Fm(=)40 b Fn(\003)o Fk(Colors)12 b Fm(::)d Fi(default)p -2774 4864 V 31 w(c)l(olor)14 b Fe(;)g Fk(string)249 4963 -y Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(string)33 +4041 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)0 +4240 y Fk(1098.)94 b(Dra)m(w)33 b(enclosed)e(Ellipse.)p +0 4338 1779 4 v 1874 4371 a(Log)p 2122 4338 V 83 4512 +a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 4604 3900 4 v 0 4761 a Fn(h)14 +b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)j Fl(1061)15 +b Fn(i)24 b Fm(+)p Fn(\021)83 4860 y Fk(Ellipse)41 b +Fi(dr)l(aw)p 578 4860 26 4 v 31 w(in)p 681 4860 V 31 +w(el)t(lipse)12 b Fm(\()p Fk(const)43 b(Color)f Fm(&)p +Fi(ddr)l(aw)p 1790 4860 V 32 w(c)l(olor)55 b Fm(=)40 +b Fn(\003)o Fk(Colors)12 b Fm(::)d Fi(default)p 2774 +4860 V 31 w(c)l(olor)14 b Fe(;)g Fk(string)249 4960 y +Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(string)33 b Fi(pp)l(en)h Fm(=)23 b Ff("")t Fe(;)14 b Fk(Picture)32 b Fm(&)p Fi(pictur)l(e)i Fm(=)22 b Fi(curr)l(ent)p 2511 -4963 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)0 -5163 y Fk(1094.)94 b(Putting)32 b(Rectangle)f(together.)94 -b Fm(This)28 b(is)g(what's)f(compiled.)83 5287 y Fn(h)14 -b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 5387 +4960 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)0 +5159 y Fk(1099.)94 b(Putting)32 b(Rectangle)f(together.)94 +b Fm(This)28 b(is)g(what's)f(compiled.)83 5284 y Fn(h)14 +b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 5383 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)p eop end -%%Page: 306 306 -TeXDict begin 306 305 bop 0 83 a Fm(306)140 b Fl(PUTTING)24 +%%Page: 310 310 +TeXDict begin 310 309 bop 0 83 a Fm(310)140 b Fl(PUTTING)24 b Fk(RECT)-8 b(ANGLE)23 b Fl(TOGETHER)1503 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(1094)83 263 y Fn(h)14 b Fm(De\014ne)28 b -Fk(class)k(Rectangle)40 b Fl(1056)15 b Fn(i)83 363 y(h)f -Fm(De\014ne)28 b Fk(Rectangle)k Fm(functions)k Fl(1059)15 +b Fn(x)p Fm(1099)83 263 y Fn(h)14 b Fm(De\014ne)28 b +Fk(class)k(Rectangle)40 b Fl(1059)15 b Fn(i)83 363 y(h)f +Fm(De\014ne)28 b Fk(Rectangle)k Fm(functions)k Fl(1062)15 b Fn(i)p eop end -%%Page: 307 307 -TeXDict begin 307 306 bop 0 83 a Fn(x)p Fm(1095)139 b +%%Page: 311 311 +TeXDict begin 311 310 bop 0 83 a Fn(x)p Fm(1100)139 b Fl(3DLDFPR)n(G)1504 b(PUTTING)24 b Fk(RECT)-8 b(ANGLE)23 -b Fl(TOGETHER)141 b Fm(307)0 263 y Fk(1095.)94 b Fm(This)28 +b Fl(TOGETHER)141 b Fm(311)0 263 y Fk(1100.)94 b Fm(This)28 b(is)f(what's)g(written)h(to)g Fj(rectangs.h)p Fm(.)0 -388 y Fn(h)14 b Ff(rectangs.h)79 b Fl(1095)15 b Fn(i)24 +388 y Fn(h)14 b Ff(rectangs.h)79 b Fl(1100)15 b Fn(i)24 b(\021)83 487 y(h)14 b Fm(De\014ne)28 b Fk(class)k(Rectangle)40 -b Fl(1056)15 b Fn(i)0 686 y Fk(1096.)94 b(Ellipse)f(\()p -Fj(ellipses.web)p Fk(\).)p 0 790 1643 4 v 1738 823 a(Begin)31 -b(Log)p 2257 790 V 83 964 a Fm([)p Fh(LDF)25 b(2003.11.12.)p +b Fl(1059)15 b Fn(i)0 686 y Fk(1101.)94 b(Ellipse)f(\()p +Fj(ellipses.web)p Fk(\).)p 0 790 1779 4 v 1874 822 a(Log)p +2122 790 V 83 963 a Fm([)p Fh(LDF)25 b(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n (ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g (of)0 1063 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n -(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)p 0 1155 1678 4 -v 1773 1188 a Fk(End)32 b(Log)p 2222 1155 V 83 1312 a(format)65 -b Fi(El)t(lipse)81 b(Path)0 1437 y Fn(h)14 b Fm(V)-7 -b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 -b Fn(i)23 b Fm(+)p Fn(\021)0 1636 y Fk(1097.)94 b(Include)32 -b(\014les.)0 1761 y Fn(h)14 b Fm(Include)28 b(\014les)35 -b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 1860 y Fm(#)p -Fk(include)32 b Ff("loader.h")0 1960 y Fm(#)p Fk(include)g -Ff("pspglb.h")0 2060 y Fm(#)p Fk(include)g Ff("io.h")0 -2159 y Fm(#)p Fk(include)g Ff("colors.h")0 2259 y Fm(#)p -Fk(include)g Ff("transfor.h")0 2358 y Fm(#)p Fk(include)g -Ff("shapes.h")0 2458 y Fm(#)p Fk(include)g Ff("pictures.h")0 -2558 y Fm(#)p Fk(include)g Ff("points.h")0 2657 y Fm(#)p -Fk(include)g Ff("lines.h")0 2757 y Fm(#)p Fk(include)g -Ff("planes.h")0 2857 y Fm(#)p Fk(include)g Ff("paths.h")0 -2956 y Fm(#)p Fk(include)g Ff("curves.h")0 3056 y Fm(#)p -Fk(include)g Ff("polygons.h")0 3155 y Fm(#)p Fk(include)g -Ff("rectangs.h")0 3355 y Fk(1098.)94 b(Ellipse)30 b(class)h -(de\014nition.)p 0 3454 1643 4 v 1738 3487 a(Begin)g(Log)p -2257 3454 V 83 3627 a Fm([)p Fh(LDF)25 b(2003.07.25.)p +(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)83 1162 y([)p Fh(LDF)e +(2003.12.10.)p Fm(])64 b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden) +n(ti\014ers)h(bac)n(k)f(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h +(3DLDF)i(1.1.4.)43 b(I'v)n(e)0 1262 y(already)24 b(put)j(some)e(of)h +(them)h(bac)n(k)e(in,)i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.) +37 b(Ho)n(w)n(ev)n(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w) +i(in)0 1361 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 +b(.)p 0 1453 3900 4 v 83 1611 a Fk(format)65 b Fi(El)t(lipse)81 +b(Path)0 1735 y Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n +(ti\014er)35 b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1835 y Fk(static)33 b(string)g Fi(r)l(cs)p 726 1835 26 +4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p Ff(ellipses.w)o(eb)o(,v)-6 +b Fj( )p Ff(1.2)p Fj( )p Ff(2003/12/10)o Fj( )p Ff(1)o(5:3)f(2:20)p +Fj( )p Ff(lfinsto1)p Fj( )p Ff(Exp)o Fj( )p Ff($)o(")n +Fm(;)0 2034 y Fk(1102.)94 b(Include)32 b(\014les.)0 2158 +y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 +b Fm(+)p Fn(\021)0 2258 y Fm(#)p Fk(include)32 b Ff("loader.h")0 +2358 y Fm(#)p Fk(include)g Ff("pspglb.h")0 2457 y Fm(#)p +Fk(include)g Ff("io.h")0 2557 y Fm(#)p Fk(include)g Ff("colors.h")0 +2657 y Fm(#)p Fk(include)g Ff("transfor.h")0 2756 y Fm(#)p +Fk(include)g Ff("shapes.h")0 2856 y Fm(#)p Fk(include)g +Ff("pictures.h")0 2955 y Fm(#)p Fk(include)g Ff("points.h")0 +3055 y Fm(#)p Fk(include)g Ff("lines.h")0 3155 y Fm(#)p +Fk(include)g Ff("planes.h")0 3254 y Fm(#)p Fk(include)g +Ff("paths.h")0 3354 y Fm(#)p Fk(include)g Ff("curves.h")0 +3454 y Fm(#)p Fk(include)g Ff("polygons.h")0 3553 y Fm(#)p +Fk(include)g Ff("rectangs.h")0 3752 y Fk(1103.)94 b(Ellipse)30 +b(class)h(de\014nition.)p 0 3851 1779 4 v 1874 3884 a(Log)p +2122 3851 V 83 4024 a Fm([)p Fh(LDF)25 b(2003.07.25.)p Fm(])61 b(Added)28 b Fi(fo)l(cus0)17 b Fm(,)27 b Fi(fo)l(cus1)17 -b Fm(,)27 b(and)h Fi(line)l(ar)p 1953 3627 26 4 v 31 -w(e)l(c)l(c)l(entricity)12 b Fm(.)83 3727 y([)p Fh(LDF)25 +b Fm(,)27 b(and)h Fi(line)l(ar)p 1953 4024 26 4 v 31 +w(e)l(c)l(c)l(entricity)12 b Fm(.)83 4124 y([)p Fh(LDF)25 b(2003.07.27.)p Fm(])61 b(Added)28 b Fi(numeric)l(al)p -1364 3727 V 31 w(e)l(c)l(c)l(entricity)12 b Fm(.)p 0 -3819 1678 4 v 1773 3851 a Fk(End)32 b(Log)p 2222 3819 -V 0 3976 a Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Ellipse)38 -b Fl(1098)15 b Fn(i)24 b(\021)83 4076 y Fk(class)32 b(Ellipse)e -Fm(:)37 b Fk(public)32 b(Reg)p 1130 4076 29 5 v 40 w(Cl)p -1266 4076 V 39 w(Plane)p 1540 4076 V 40 w(Curv)m(e)h -Fn(f)83 4175 y Fk(protected)5 b Fm(:)42 b Fk(P)m(oin)m(t)33 -b Fi(fo)l(cus0)16 b Fm(;)166 4275 y Fk(P)m(oin)m(t)33 -b Fi(fo)l(cus1)16 b Fm(;)166 4374 y Fk(real)33 b Fi(line)l(ar)p -564 4374 26 4 v 31 w(e)l(c)l(c)l(entricity)12 b Fm(;)166 -4474 y Fk(real)33 b Fi(numeric)l(al)p 715 4474 V 30 w(e)l(c)l(c)l -(entricity)12 b Fm(;)166 4574 y Fk(real)33 b Fi(axis)p -500 4574 V 30 w(h)11 b Fm(;)166 4673 y Fk(real)33 b Fi(axis)p -500 4673 V 30 w(v)14 b Fm(;)166 4773 y Fk(static)33 b(unsigned)e(short) -h Ff(DEFAULT_NUMBER_OF)o(_PO)o(IN)o(TS)n Fm(;)83 4897 +1364 4124 V 31 w(e)l(c)l(c)l(entricity)12 b Fm(.)p 0 +4216 3900 4 v 0 4373 a Fn(h)i Fm(De\014ne)28 b Fk(class)k(Ellipse)38 +b Fl(1103)15 b Fn(i)24 b(\021)83 4473 y Fk(class)32 b(Ellipse)e +Fm(:)37 b Fk(public)32 b(Reg)p 1130 4473 29 5 v 40 w(Cl)p +1266 4473 V 39 w(Plane)p 1540 4473 V 40 w(Curv)m(e)h +Fn(f)83 4572 y Fk(protected)5 b Fm(:)42 b Fk(P)m(oin)m(t)33 +b Fi(fo)l(cus0)16 b Fm(;)166 4672 y Fk(P)m(oin)m(t)33 +b Fi(fo)l(cus1)16 b Fm(;)166 4772 y Fk(real)33 b Fi(line)l(ar)p +564 4772 26 4 v 31 w(e)l(c)l(c)l(entricity)12 b Fm(;)166 +4871 y Fk(real)33 b Fi(numeric)l(al)p 715 4871 V 30 w(e)l(c)l(c)l +(entricity)12 b Fm(;)166 4971 y Fk(real)33 b Fi(axis)p +500 4971 V 30 w(h)11 b Fm(;)166 5070 y Fk(real)33 b Fi(axis)p +500 5070 V 30 w(v)14 b Fm(;)166 5170 y Fk(static)33 b(unsigned)e(short) +h Ff(DEFAULT_NUMBER_OF)o(_PO)o(IN)o(TS)n Fm(;)83 5295 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j -Fm(functions)36 b Fl(1101)15 b Fn(i)83 4997 y(g)p Fm(;)0 -5105 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(1227)f(and)h -(1228.)0 5304 y Fk(1099.)94 b(Static)32 b(data)h(mem)m(b)s(ers.)p +Fm(functions)36 b Fl(1106)15 b Fn(i)83 5394 y(g)p Fm(;)p eop end -%%Page: 308 308 -TeXDict begin 308 307 bop 0 83 a Fm(308)140 b Fl(ST)-6 -b(A)g(TIC)24 b(D)n(A)-6 b(T)g(A)23 b(MEMBERS)2034 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(1099)0 263 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 -b(Ellipse)d Fm(data)d(mem)n(b)r(ers)35 b Fl(1099)15 b -Fn(i)23 b(\021)83 363 y Fk(unsigned)31 b(short)i(Ellipse)10 +%%Page: 312 312 +TeXDict begin 312 311 bop 0 83 a Fm(312)140 b Fk(ELLIPSE)24 +b Fl(CLASS)g(DEFINITION)1800 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(1103)0 263 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i +(1232)f(and)h(1233.)0 462 y Fk(1104.)94 b(Static)32 b(data)h(mem)m(b)s +(ers.)0 587 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 +b(Ellipse)d Fm(data)d(mem)n(b)r(ers)35 b Fl(1104)15 b +Fn(i)23 b(\021)83 686 y Fk(unsigned)31 b(short)i(Ellipse)10 b Fm(::)e Ff(DEFAULT_NUMBER_OF_)o(POI)o(NT)o(S)21 b Fm(=)i(16)o(;)166 -462 y Fe(=)p Fn(\003)41 b Fm([)p Fh(LDF)25 b(2002.11.06.)p +786 y Fe(=)p Fn(\003)41 b Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Must)28 b(b)r(e)g(a)f(m)n(ultiple)h(of)g(4.)50 -b Fn(\003)p Fe(=)0 570 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f -(section)i(1227.)0 769 y Fk(1100.)94 b(Constructors.)0 -969 y(1101.)g(Default)32 b(constructor.)96 b Fm(No)27 -b(argumen)n(ts.)0 1093 y Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j -Fm(functions)36 b Fl(1101)15 b Fn(i)23 b(\021)83 1193 -y Fk(Ellipse)s Fm(\()14 b(\);)0 1301 y Fl(See)25 b(also)g(sections)g -(1104,)g(1106,)g(1109,)h(1111,)f(1114,)g(1117,)g(1119,)h(1121,)f(1123,) -g(1124,)h(1126,)f(1128,)g(1131,)g(1134,)h(1136,)f(1139,)g(1141,)g -(1143,)166 1384 y(1145,)g(1149,)g(1151,)h(1154,)f(1156,)g(1158,)g -(1160,)h(1162,)f(1165,)g(1167,)g(1170,)g(1187,)h(1189,)f(1191,)g(1193,) -g(1195,)h(1198,)f(1200,)g(1203,)g(1205,)166 1467 y(1208,)f(1210,)h -(1213,)f(1215,)g(1217,)g(and)h(1219.)0 1575 y(This)e(co)r(de)i(is)e -(used)h(in)f(section)i(1098.)0 1774 y Fk(1102.)0 1899 +b Fn(\003)p Fe(=)0 894 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f +(section)i(1232.)0 1093 y Fk(1105.)94 b(Constructors.)0 +1292 y(1106.)g(Default)32 b(constructor.)96 b Fm(No)27 +b(argumen)n(ts.)0 1417 y Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b(\021)83 1517 +y Fk(Ellipse)s Fm(\()14 b(\);)0 1625 y Fl(See)25 b(also)g(sections)g +(1109,)g(1111,)g(1114,)h(1116,)f(1119,)g(1122,)g(1124,)h(1126,)f(1128,) +g(1129,)h(1131,)f(1133,)g(1136,)g(1139,)h(1141,)f(1144,)g(1146,)g +(1148,)166 1708 y(1150,)g(1154,)g(1156,)h(1159,)f(1161,)g(1163,)g +(1165,)h(1167,)f(1170,)g(1172,)g(1175,)g(1192,)h(1194,)f(1196,)g(1198,) +g(1200,)h(1203,)f(1205,)g(1208,)g(1210,)166 1791 y(1213,)f(1215,)h +(1218,)f(1220,)g(1222,)g(and)h(1224.)0 1899 y(This)e(co)r(de)i(is)e +(used)h(in)f(section)i(1103.)0 2098 y Fk(1107.)0 2222 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b(\021)83 1998 y Fk(Ellipse)11 -b Fm(::)d Fk(Ellipse)s Fm(\()14 b(\))83 2098 y Fn(f)166 -2197 y Fi(on)p 260 2197 26 4 v 31 w(fr)l(e)l(e)p 419 -2197 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(false)11 b Fm(;)166 -2297 y Fi(line)p 302 2297 V 31 w(switch)35 b Fm(=)22 -b Fi(false)12 b Fm(;)166 2397 y Fi(cycle)p 346 2397 V -32 w(switch)34 b Fm(=)23 b Fi(true)10 b Fm(;)83 2496 -y Fn(g)0 2604 y Fl(See)25 b(also)g(sections)g(1105,)g(1107,)g(1110,)h -(1112,)f(1115,)g(1118,)g(1122,)h(1125,)f(1127,)g(1129,)h(1130,)f(1132,) -g(1135,)g(1137,)h(1140,)f(1142,)g(1144,)g(1146,)166 2687 -y(1150,)g(1152,)g(1155,)h(1157,)f(1159,)g(1161,)g(1163,)h(1166,)f -(1168,)g(1171,)g(1172,)g(1173,)h(1174,)f(1175,)g(1176,)g(1177,)h(1178,) -f(1179,)g(1180,)g(1182,)166 2770 y(1183,)f(1188,)h(1190,)f(1192,)g -(1194,)g(1196,)h(1199,)f(1201,)g(1204,)g(1206,)h(1209,)f(1211,)g(1214,) -g(1216,)h(1218,)f(and)g(1220.)0 2878 y(This)f(co)r(de)i(is)e(used)h(in) -f(section)i(1227.)0 3077 y Fk(1103.)94 b(Cen)m(ter,)32 -b(lengths,)e(and)i(angles)f(of)h(rotation.)0 3277 y(1104.)94 +b Fl(1107)15 b Fn(i)23 b(\021)83 2322 y Fk(Ellipse)11 +b Fm(::)d Fk(Ellipse)s Fm(\()14 b(\))83 2422 y Fn(f)166 +2521 y Fi(on)p 260 2521 26 4 v 31 w(fr)l(e)l(e)p 419 +2521 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(false)11 b Fm(;)166 +2621 y Fi(line)p 302 2621 V 31 w(switch)35 b Fm(=)22 +b Fi(false)12 b Fm(;)166 2720 y Fi(cycle)p 346 2720 V +32 w(switch)34 b Fm(=)23 b Fi(true)10 b Fm(;)83 2820 +y Fn(g)0 2928 y Fl(See)25 b(also)g(sections)g(1110,)g(1112,)g(1115,)h +(1117,)f(1120,)g(1123,)g(1127,)h(1130,)f(1132,)g(1134,)h(1135,)f(1137,) +g(1140,)g(1142,)h(1145,)f(1147,)g(1149,)g(1151,)166 3011 +y(1155,)g(1157,)g(1160,)h(1162,)f(1164,)g(1166,)g(1168,)h(1171,)f +(1173,)g(1176,)g(1177,)g(1178,)h(1179,)f(1180,)g(1181,)g(1182,)h(1183,) +f(1184,)g(1185,)g(1187,)166 3094 y(1188,)f(1193,)h(1195,)f(1197,)g +(1199,)g(1201,)h(1204,)f(1206,)g(1209,)g(1211,)h(1214,)f(1216,)g(1219,) +g(1221,)h(1223,)f(and)g(1225.)0 3202 y(This)f(co)r(de)i(is)e(used)h(in) +f(section)i(1232.)0 3401 y Fk(1108.)94 b(Cen)m(ter,)32 +b(lengths,)e(and)i(angles)f(of)h(rotation.)0 3601 y(1109.)94 b(Constructor.)h Fm(The)24 b(ellipse)f(is)g(alw)n(a)n(ys)e(generated)h (in)h(the)h(x-z)e(plane)h(with)h(the)g(cen)n(ter)e(at)h(the)h(origin.) -34 b(Then)0 3376 y(it)28 b(is)g(rotated)e(ab)r(out)i(the)g(main)f(axes) +34 b(Then)0 3700 y(it)28 b(is)g(rotated)e(ab)r(out)i(the)g(main)f(axes) g(according)f(to)h(the)h(v)-5 b(alues)28 b(of)f(the)h(angle)f(argumen)n (ts)f(and)i(shifted)g(to)f Fi(c)l(enter)13 b Fm(.)p 0 -3476 1643 4 v 1738 3508 a Fk(Begin)31 b(Log)p 2257 3476 -V 83 3649 a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 -b(Made)27 b Fk(real)33 b Fm(argumen)n(ts)26 b Fk(const)5 -b Fm(.)83 3749 y([)p Fh(LDF)25 b(2003.07.25.)p Fm(])61 -b(Added)28 b(co)r(de)g(for)f(setting)g Fi(fo)l(cus0)17 -b Fm(,)27 b Fi(fo)l(cus1)17 b Fm(,)27 b(and)h Fi(line)l(ar)p -2544 3749 26 4 v 31 w(e)l(c)l(c)l(entricity)12 b Fm(.)83 -3848 y([)p Fh(LDF)25 b(2003.07.27.)p Fm(])61 b(Added)28 -b(co)r(de)g(for)f(setting)g Fi(numeric)l(al)p 1955 3848 -V 31 w(e)l(c)l(c)l(entricity)12 b Fm(.)p 0 3940 1678 -4 v 1773 3973 a Fk(End)32 b(Log)p 2222 3940 V 0 4097 -a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4197 y Fk(Ellipse)s -Fm(\()p Fk(const)43 b(P)m(oin)m(t)h Fm(&)p Fi(c)l(c)l(enter)12 -b Fe(;)i Fk(const)44 b(real)f Fi(aaxis)p 1942 4197 26 -4 v 31 w(h)11 b Fe(;)j Fk(const)44 b(real)f Fi(aaxis)p -2706 4197 V 31 w(v)14 b Fe(;)g Fk(const)43 b(real)249 -4297 y Fi(angle)p 440 4297 V 31 w(x)49 b Fm(=)34 b(0)p -Fe(;)14 b Fk(const)39 b(real)g Fi(angle)p 1375 4297 V -32 w(y)46 b Fm(=)34 b(0)p Fe(;)14 b Fk(const)39 b(real)h -Fi(angle)p 2310 4297 V 31 w(z)49 b Fm(=)34 b(0)p Fe(;)14 -b Fk(const)39 b(unsigned)f(short)249 4396 y Fi(nnumb)l(er)p -568 4396 V 30 w(of)p 665 4396 V 31 w(p)l(oints)c Fm(=)23 -b Ff(DEFAULT_NUMBER_O)o(F_P)o(OI)o(NTS)m Fm(\);)p eop -end -%%Page: 309 309 -TeXDict begin 309 308 bop 0 83 a Fn(x)p Fm(1105)139 b -Fl(3DLDFPR)n(G)2344 b(CONSTR)n(UCTOR)140 b Fm(309)0 263 -y Fk(1105.)0 382 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3799 1779 4 v 1874 3831 a Fk(Log)p 2122 3799 V 83 3972 +a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Made)27 +b Fk(real)33 b Fm(argumen)n(ts)26 b Fk(const)5 b Fm(.)83 +4072 y([)p Fh(LDF)25 b(2003.07.25.)p Fm(])61 b(Added)28 +b(co)r(de)g(for)f(setting)g Fi(fo)l(cus0)17 b Fm(,)27 +b Fi(fo)l(cus1)17 b Fm(,)27 b(and)h Fi(line)l(ar)p 2544 +4072 26 4 v 31 w(e)l(c)l(c)l(entricity)12 b Fm(.)83 4171 +y([)p Fh(LDF)25 b(2003.07.27.)p Fm(])61 b(Added)28 b(co)r(de)g(for)f +(setting)g Fi(numeric)l(al)p 1955 4171 V 31 w(e)l(c)l(c)l(entricity)12 +b Fm(.)p 0 4263 3900 4 v 0 4420 a Fn(h)i Fm(Declare)27 +b Fk(Ellipse)j Fm(functions)36 b Fl(1106)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 4520 y Fk(Ellipse)s Fm(\()p Fk(const)43 +b(P)m(oin)m(t)h Fm(&)p Fi(c)l(c)l(enter)12 b Fe(;)i Fk(const)44 +b(real)f Fi(aaxis)p 1942 4520 26 4 v 31 w(h)11 b Fe(;)j +Fk(const)44 b(real)f Fi(aaxis)p 2706 4520 V 31 w(v)14 +b Fe(;)g Fk(const)43 b(real)249 4620 y Fi(angle)p 440 +4620 V 31 w(x)49 b Fm(=)34 b(0)p Fe(;)14 b Fk(const)39 +b(real)g Fi(angle)p 1375 4620 V 32 w(y)46 b Fm(=)34 b(0)p +Fe(;)14 b Fk(const)39 b(real)h Fi(angle)p 2310 4620 V +31 w(z)49 b Fm(=)34 b(0)p Fe(;)14 b Fk(const)39 b(unsigned)f(short)249 +4719 y Fi(nnumb)l(er)p 568 4719 V 30 w(of)p 665 4719 +V 31 w(p)l(oints)c Fm(=)23 b Ff(DEFAULT_NUMBER_O)o(F_P)o(OI)o(NTS)m +Fm(\);)p eop end +%%Page: 313 313 +TeXDict begin 313 312 bop 0 83 a Fn(x)p Fm(1110)139 b +Fl(3DLDFPR)n(G)2344 b(CONSTR)n(UCTOR)140 b Fm(313)0 263 +y Fk(1110.)0 382 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 482 y Fk(Ellipse)11 b Fm(::)d Fk(Ellipse)s Fm(\()p Fk(const)38 b(P)m(oin)m(t)h Fm(&)p Fi(c)l(c)l(enter)12 b Fe(;)i Fk(const)38 b(real)h Fi(aaxis)p 2266 482 26 4 v 31 w(h)11 b Fe(;)j @@ -27527,84 +27563,82 @@ b(around)f(the)h(x,)g(y)-7 b(,)27 b(and)h(z-axes)e(and)h(shift)i(it)f (to)f Fi(c)l(enter)13 b Fm(.)51 b Fn(\003)p Fe(=)166 5280 y Fn(g)83 5379 y(g)p eop end -%%Page: 310 310 -TeXDict begin 310 309 bop 0 83 a Fm(310)140 b Fl(SETTING)24 -b(FUNCTION)2170 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1106)0 -263 y Fk(1106.)94 b(Setting)31 b(function.)p 0 362 1643 -4 v 1738 395 a(Begin)g(Log)p 2257 362 V 83 536 a Fm([)p -Fh(LDF)25 b(2003.03.01.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 628 1678 4 v 1773 660 a Fk(End)k(Log)p 2222 628 V 0 -785 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 884 y Fk(v)m(oid)43 -b Fi(set)12 b Fm(\()p Fk(const)43 b(P)m(oin)m(t)g Fm(&)o -Fi(c)l(c)l(enter)13 b Fe(;)h Fk(const)42 b(real)h Fi(aaxis)p -1987 884 26 4 v 32 w(h)11 b Fe(;)j Fk(const)42 b(real)h -Fi(aaxis)p 2750 884 V 31 w(v)14 b Fe(;)g Fk(const)42 -b(real)249 984 y Fi(angle)p 440 984 V 31 w(x)49 b Fm(=)34 -b(0)p Fe(;)14 b Fk(const)39 b(real)g Fi(angle)p 1375 -984 V 32 w(y)46 b Fm(=)34 b(0)p Fe(;)14 b Fk(const)39 -b(real)h Fi(angle)p 2310 984 V 31 w(z)49 b Fm(=)34 b(0)p -Fe(;)14 b Fk(const)39 b(unsigned)f(short)249 1084 y Fi(nnumb)l(er)p -568 1084 V 30 w(of)p 665 1084 V 31 w(p)l(oints)c Fm(=)23 -b Ff(DEFAULT_NUMBER_O)o(F_P)o(OI)o(NTS)m Fm(\);)0 1283 -y Fk(1107.)0 1407 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -1507 y Fk(v)m(oid)38 b(Ellipse)11 b Fm(::)d Fi(set)k -Fm(\()p Fk(const)38 b(P)m(oin)m(t)g Fm(&)o Fi(c)l(c)l(enter)13 -b Fe(;)h Fk(const)37 b(real)h Fi(aaxis)p 2306 1507 V -31 w(h)12 b Fe(;)i Fk(const)37 b(real)h Fi(aaxis)p 3059 -1507 V 31 w(v)13 b Fe(;)h Fk(const)38 b(real)415 1607 -y Fi(angle)p 606 1607 V 31 w(x)14 b Fe(;)g Fk(const)32 -b(real)h Fi(angle)p 1352 1607 V 31 w(y)12 b Fe(;)i Fk(const)32 -b(real)h Fi(angle)p 2097 1607 V 31 w(z)15 b Fe(;)f Fk(const)32 -b(unsigned)f(short)i Fi(nnumb)l(er)p 3426 1607 V 29 w(of)p -3522 1607 V 31 w(p)l(oints)12 b Fm(\))83 1706 y Fn(f)166 -1806 y Fk(Ellipse)30 b Fe(e)p Fm(\()p Fi(c)l(c)l(enter)13 -b Fe(;)h Fi(aaxis)p 1037 1806 V 31 w(h)d Fe(;)j Fi(aaxis)p -1340 1806 V 31 w(v)g Fe(;)g Fi(angle)p 1646 1806 V 31 -w(x)g Fe(;)g Fi(angle)p 1953 1806 V 31 w(y)e Fe(;)i Fi(angle)p -2259 1806 V 31 w(z)g Fe(;)g Fi(nnumb)l(er)p 2689 1806 -V 30 w(of)p 2786 1806 V 31 w(p)l(oints)d Fm(\);)166 1930 -y Fn(\003)p Fi(this)34 b Fm(=)23 b Fe(e)o Fm(;)83 2030 -y Fn(g)0 2229 y Fk(1108.)94 b(Pseudo-constructor)32 b(for)g(dynamic)g -(allo)s(cation.)0 2429 y(1109.)94 b(Optional)31 b(p)s(oin)m(ter)g -(argumen)m(t.)p 0 2528 1643 4 v 1738 2560 a(Begin)g(Log)p -2257 2528 V 83 2701 a Fm([)p Fh(LDF)25 b(2002.11.06.)p -Fm(])61 b(Added)28 b(optional)f Fk(const)33 b(Ellipse)d -Fn(\003)d Fm(argumen)n(t.)p 0 2793 1678 4 v 1773 2826 -a Fk(End)32 b(Log)p 2222 2793 V 0 2950 a Fn(h)14 b Fm(Declare)27 -b Fk(Ellipse)j Fm(functions)36 b Fl(1101)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 3050 y Fk(static)33 b(Ellipse)d Fn(\003)o -Fi(cr)l(e)l(ate)p 909 3050 26 4 v 31 w(new)p 1080 3050 -V 31 w(el)t(lipse)12 b Fm(\()p Fk(const)33 b(Ellipse)d -Fn(\003)p Fe(e)22 b Fm(=)h(0)o(\);)0 3249 y Fk(1110.)0 -3374 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3473 y Fk(Ellipse)30 -b Fn(\003)p Fk(Ellipse)11 b Fm(::)d Fi(cr)l(e)l(ate)p -994 3473 V 31 w(new)p 1165 3473 V 30 w(el)t(lipse)13 -b Fm(\()p Fk(const)32 b(Ellipse)f Fn(\003)o Fe(e)p Fm(\))83 -3573 y Fn(f)166 3672 y Fk(Ellipse)f Fn(\003)p Fe(r)c -Fm(=)c Fk(new)34 b Fm(\()p Fk(Ellipse)s Fm(\);)166 3797 -y Fk(if)41 b Fm(\()p Fe(e)23 b Fn(6)p Fm(=)g(0)o(\))42 -b Fn(\003)p Fe(r)26 b Fm(=)c Fn(\003)p Fe(e)o Fm(;)166 -3897 y Fe(r)189 3922 y(~)239 3897 y Fi(on)p 333 3897 -V 31 w(fr)l(e)l(e)p 492 3897 V 31 w(stor)l(e)33 b Fm(=)23 -b Fi(true)9 b Fm(;)166 3996 y Fk(return)33 b Fe(r)s Fm(;)83 -4096 y Fn(g)0 4295 y Fk(1111.)94 b(Required)31 b(Ellipse)f(argumen)m -(t.)p 0 4394 1643 4 v 1738 4427 a(Begin)h(Log)p 2257 -4394 V 83 4568 a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 -b(Added)28 b(this)g(function.)p 0 4660 1678 4 v 1773 -4692 a Fk(End)k(Log)p 2222 4660 V 0 4817 a Fn(h)14 b -Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 b Fl(1101)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 4916 y Fk(static)33 b(Ellipse)d -Fn(\003)o Fi(cr)l(e)l(ate)p 909 4916 26 4 v 31 w(new)p -1080 4916 V 31 w(el)t(lipse)12 b Fm(\()p Fk(const)33 +%%Page: 314 314 +TeXDict begin 314 313 bop 0 83 a Fm(314)140 b Fl(SETTING)24 +b(FUNCTION)2170 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1111)0 +263 y Fk(1111.)94 b(Setting)31 b(function.)p 0 362 1779 +4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm([)p Fh(LDF)25 +b(2003.03.01.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 627 3900 4 v 0 784 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +884 y Fk(v)m(oid)43 b Fi(set)12 b Fm(\()p Fk(const)43 +b(P)m(oin)m(t)g Fm(&)o Fi(c)l(c)l(enter)13 b Fe(;)h Fk(const)42 +b(real)h Fi(aaxis)p 1987 884 26 4 v 32 w(h)11 b Fe(;)j +Fk(const)42 b(real)h Fi(aaxis)p 2750 884 V 31 w(v)14 +b Fe(;)g Fk(const)42 b(real)249 983 y Fi(angle)p 440 +983 V 31 w(x)49 b Fm(=)34 b(0)p Fe(;)14 b Fk(const)39 +b(real)g Fi(angle)p 1375 983 V 32 w(y)46 b Fm(=)34 b(0)p +Fe(;)14 b Fk(const)39 b(real)h Fi(angle)p 2310 983 V +31 w(z)49 b Fm(=)34 b(0)p Fe(;)14 b Fk(const)39 b(unsigned)f(short)249 +1083 y Fi(nnumb)l(er)p 568 1083 V 30 w(of)p 665 1083 +V 31 w(p)l(oints)c Fm(=)23 b Ff(DEFAULT_NUMBER_O)o(F_P)o(OI)o(NTS)m +Fm(\);)0 1282 y Fk(1112.)0 1407 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 1506 y Fk(v)m(oid)38 b(Ellipse)11 +b Fm(::)d Fi(set)k Fm(\()p Fk(const)38 b(P)m(oin)m(t)g +Fm(&)o Fi(c)l(c)l(enter)13 b Fe(;)h Fk(const)37 b(real)h +Fi(aaxis)p 2306 1506 V 31 w(h)12 b Fe(;)i Fk(const)37 +b(real)h Fi(aaxis)p 3059 1506 V 31 w(v)13 b Fe(;)h Fk(const)38 +b(real)415 1606 y Fi(angle)p 606 1606 V 31 w(x)14 b Fe(;)g +Fk(const)32 b(real)h Fi(angle)p 1352 1606 V 31 w(y)12 +b Fe(;)i Fk(const)32 b(real)h Fi(angle)p 2097 1606 V +31 w(z)15 b Fe(;)f Fk(const)32 b(unsigned)f(short)i Fi(nnumb)l(er)p +3426 1606 V 29 w(of)p 3522 1606 V 31 w(p)l(oints)12 b +Fm(\))83 1706 y Fn(f)166 1805 y Fk(Ellipse)30 b Fe(e)p +Fm(\()p Fi(c)l(c)l(enter)13 b Fe(;)h Fi(aaxis)p 1037 +1805 V 31 w(h)d Fe(;)j Fi(aaxis)p 1340 1805 V 31 w(v)g +Fe(;)g Fi(angle)p 1646 1805 V 31 w(x)g Fe(;)g Fi(angle)p +1953 1805 V 31 w(y)e Fe(;)i Fi(angle)p 2259 1805 V 31 +w(z)g Fe(;)g Fi(nnumb)l(er)p 2689 1805 V 30 w(of)p 2786 +1805 V 31 w(p)l(oints)d Fm(\);)166 1930 y Fn(\003)p Fi(this)34 +b Fm(=)23 b Fe(e)o Fm(;)83 2029 y Fn(g)0 2229 y Fk(1113.)94 +b(Pseudo-constructor)32 b(for)g(dynamic)g(allo)s(cation.)0 +2428 y(1114.)94 b(Optional)31 b(p)s(oin)m(ter)g(argumen)m(t.)p +0 2526 1779 4 v 1874 2559 a(Log)p 2122 2526 V 83 2700 +a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Added)28 +b(optional)f Fk(const)33 b(Ellipse)d Fn(\003)d Fm(argumen)n(t.)p +0 2792 3900 4 v 0 2949 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3048 y Fk(static)33 b(Ellipse)d Fn(\003)o Fi(cr)l(e)l(ate)p +909 3048 26 4 v 31 w(new)p 1080 3048 V 31 w(el)t(lipse)12 +b Fm(\()p Fk(const)33 b(Ellipse)d Fn(\003)p Fe(e)22 b +Fm(=)h(0)o(\);)0 3248 y Fk(1115.)0 3372 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 3472 y Fk(Ellipse)30 b Fn(\003)p +Fk(Ellipse)11 b Fm(::)d Fi(cr)l(e)l(ate)p 994 3472 V +31 w(new)p 1165 3472 V 30 w(el)t(lipse)13 b Fm(\()p Fk(const)32 +b(Ellipse)f Fn(\003)o Fe(e)p Fm(\))83 3571 y Fn(f)166 +3671 y Fk(Ellipse)f Fn(\003)p Fe(r)c Fm(=)c Fk(new)34 +b Fm(\()p Fk(Ellipse)s Fm(\);)166 3796 y Fk(if)41 b Fm(\()p +Fe(e)23 b Fn(6)p Fm(=)g(0)o(\))42 b Fn(\003)p Fe(r)26 +b Fm(=)c Fn(\003)p Fe(e)o Fm(;)166 3895 y Fe(r)189 3920 +y(~)239 3895 y Fi(on)p 333 3895 V 31 w(fr)l(e)l(e)p 492 +3895 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(true)9 b Fm(;)166 +3995 y Fk(return)33 b Fe(r)s Fm(;)83 4094 y Fn(g)0 4294 +y Fk(1116.)94 b(Required)31 b(Ellipse)f(argumen)m(t.)p +0 4392 1779 4 v 1874 4425 a(Log)p 2122 4392 V 83 4566 +a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 4658 3900 4 v 0 4815 a Fn(h)14 +b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 b Fl(1106)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 4914 y Fk(static)33 b(Ellipse)d +Fn(\003)o Fi(cr)l(e)l(ate)p 909 4914 26 4 v 31 w(new)p +1080 4914 V 31 w(el)t(lipse)12 b Fm(\()p Fk(const)33 b(Ellipse)d Fm(&)p Fe(e)o Fm(\);)p eop end -%%Page: 311 311 -TeXDict begin 311 310 bop 0 83 a Fn(x)p Fm(1112)139 b +%%Page: 315 315 +TeXDict begin 315 314 bop 0 83 a Fn(x)p Fm(1117)139 b Fl(3DLDFPR)n(G)1648 b(REQUIRED)24 b Fk(ELLIPSE)g Fl(AR)n(GUMENT)140 -b Fm(311)0 263 y Fk(1112.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 b Fn(i)23 +b Fm(315)0 263 y Fk(1117.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Ellipse)30 b Fn(\003)p Fk(Ellipse)11 b Fm(::)d Fi(cr)l(e)l(ate)p 994 487 26 4 v 31 w(new)p 1165 487 V 30 w(el)t(lipse)13 b Fm(\()p Fk(const)32 b(Ellipse)f @@ -27614,66 +27648,65 @@ 911 y Fe(r)189 936 y(~)239 911 y Fi(on)p 333 911 V 31 w(fr)l(e)l(e)p 492 911 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(true)9 b Fm(;)166 1010 y Fk(return)33 b Fe(r)s Fm(;)83 -1110 y Fn(g)0 1309 y Fk(1113.)94 b(Destructor.)i Fm([)p +1110 y Fn(g)0 1309 y Fk(1118.)94 b(Destructor.)i Fm([)p Fh(LDF)25 b(2002.10.09.)p Fm(])61 b(Remo)n(v)n(ed)26 b(the)i(destructor.)36 b Fk(P)m(ath)15 b Fm(::)8 b Fn(\030)p Fk(P)m(ath)e Fm(\()14 b(\))28 b(or)e Fk(P)m(ath)15 b Fm(::)8 b Fi(cle)l(ar)14 b Fm(\()g(\))0 1409 y(should)27 b(b)r(e)h(used)g(instead,)f(unless)h(I)f(add)h(dynamically)f(allo)r (cated)g(data)g(mem)n(b)r(ers)g(to)g Fk(Ellipse)k Fm(\(rather)26 -b(than)i Fk(P)m(ath)6 b Fm(\).)0 1608 y Fk(1114.)94 b(Assignmen)m(t.)p -0 1707 1643 4 v 1738 1740 a(Begin)31 b(Log)p 2257 1707 -V 83 1881 a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 -b(Added)28 b(error)e(handling)h(co)r(de)h(to)f(prev)n(en)n(t)g -(self-assignmen)n(t.)83 1980 y([)p Fh(LDF)e(2002.11.10.)p -Fm(])61 b(Changed)27 b(return)g(v)-5 b(alue)28 b(to)f -Fk(Ellipse)j Fm(&.)p 0 2072 1678 4 v 1773 2105 a Fk(End)i(Log)p -2222 2072 V 0 2229 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j -Fm(functions)36 b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2329 y Fk(Ellipse)30 b Fm(&)p Fk(op)s(erator)5 b Fm(=)o(\()p -Fk(const)33 b(Ellipse)d Fm(&)p Fe(e)o Fm(\);)0 2528 y -Fk(1115.)94 b Fm(!!)37 b(Remem)n(b)r(er)27 b(to)h(put)g(an)n(ything)f -(sp)r(eci\014c)h(to)f Fk(Ellipses)j Fm(in)e(here!)0 2653 +b(than)i Fk(P)m(ath)6 b Fm(\).)0 1608 y Fk(1119.)94 b(Assignmen)m(t.)p +0 1707 1779 4 v 1874 1739 a(Log)p 2122 1707 V 83 1880 +a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Added)28 +b(error)e(handling)h(co)r(de)h(to)f(prev)n(en)n(t)g(self-assignmen)n +(t.)83 1980 y([)p Fh(LDF)e(2002.11.10.)p Fm(])61 b(Changed)27 +b(return)g(v)-5 b(alue)28 b(to)f Fk(Ellipse)j Fm(&.)p +0 2071 3900 4 v 0 2229 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2328 y Fk(Ellipse)30 b Fm(&)p Fk(op)s(erator)5 b Fm(=)o(\()p +Fk(const)33 b(Ellipse)d Fm(&)p Fe(e)o Fm(\);)0 2527 y +Fk(1120.)94 b Fm(!!)37 b(Remem)n(b)r(er)27 b(to)h(put)g(an)n(ything)f +(sp)r(eci\014c)h(to)f Fk(Ellipses)j Fm(in)e(here!)0 2652 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2752 y Fk(Ellipse)30 +b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2752 y Fk(Ellipse)30 b Fm(&)p Fk(Ellipse)11 b Fm(::)d Fk(op)s(erator)d Fm(=\()p -Fk(const)32 b(Ellipse)e Fm(&)p Fe(e)p Fm(\))83 2852 y -Fn(f)166 2952 y Fk(if)41 b Fm(\()p Fi(this)35 b Fn(\021)23 +Fk(const)32 b(Ellipse)e Fm(&)p Fe(e)p Fm(\))83 2851 y +Fn(f)166 2951 y Fk(if)41 b Fm(\()p Fi(this)35 b Fn(\021)23 b Fm(&)o Fe(e)p Fm(\))166 b Fe(=)p Fn(\003)41 b Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])61 b(Mak)n(e)27 b(sure)g(it's)g(not)h -(self-assignmen)n(t.)49 b Fn(\003)p Fe(=)249 3051 y Fk(return)33 -b Fn(\003)p Fi(this)11 b Fm(;)166 3151 y Fk(P)m(ath)j +(self-assignmen)n(t.)49 b Fn(\003)p Fe(=)249 3050 y Fk(return)33 +b Fn(\003)p Fi(this)11 b Fm(;)166 3150 y Fk(P)m(ath)j Fm(::)9 b Fk(op)s(erator)c Fm(=)o(\()p Fe(e)p Fm(\);)166 3250 y Fi(c)l(enter)36 b Fm(=)23 b Fe(e)o(:)p Fi(c)l(enter)13 b Fm(;)166 b Fe(=)p Fn(\003)41 b Fk(Ellipse)30 b Fm(mem)n(b)r(ers.)50 -b Fn(\003)p Fe(=)166 3350 y Fi(axis)p 311 3350 26 4 v -31 w(h)34 b Fm(=)23 b Fe(e)o(:)p Fi(axis)p 707 3350 V -31 w(h)11 b Fm(;)166 3450 y Fi(axis)p 311 3450 V 31 w(v)36 -b Fm(=)23 b Fe(e:)p Fi(axis)p 706 3450 V 31 w(v)13 b +b Fn(\003)p Fe(=)166 3349 y Fi(axis)p 311 3349 26 4 v +31 w(h)34 b Fm(=)23 b Fe(e)o(:)p Fi(axis)p 707 3349 V +31 w(h)11 b Fm(;)166 3449 y Fi(axis)p 311 3449 V 31 w(v)36 +b Fm(=)23 b Fe(e:)p Fi(axis)p 706 3449 V 31 w(v)13 b Fm(;)166 3549 y Fi(fo)l(cus0)39 b Fm(=)23 b Fe(e:)p Fi(fo)l(cus0)16 -b Fm(;)166 3649 y Fi(fo)l(cus1)39 b Fm(=)23 b Fe(e:)p -Fi(fo)l(cus1)16 b Fm(;)166 3749 y Fi(numb)l(er)p 438 -3749 V 30 w(of)p 535 3749 V 31 w(p)l(oints)35 b Fm(=)22 -b Fe(e:)p Fi(numb)l(er)p 1231 3749 V 30 w(of)p 1328 3749 +b Fm(;)166 3648 y Fi(fo)l(cus1)39 b Fm(=)23 b Fe(e:)p +Fi(fo)l(cus1)16 b Fm(;)166 3748 y Fi(numb)l(er)p 438 +3748 V 30 w(of)p 535 3748 V 31 w(p)l(oints)35 b Fm(=)22 +b Fe(e:)p Fi(numb)l(er)p 1231 3748 V 30 w(of)p 1328 3748 V 31 w(p)l(oints)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b -Fk(Reg)p 2061 3749 29 5 v 40 w(Cl)p 2197 3749 V 39 w(Plane)p -2471 3749 V 40 w(Curv)m(e)33 b Fm(mem)n(b)r(ers.)51 b -Fn(\003)p Fe(=)166 3848 y Fk(return)33 b Fn(\003)p Fi(this)11 -b Fm(;)83 3948 y Fn(g)0 4147 y Fk(1116.)94 b(Lab)s(elling.)0 -4346 y(1117.)g(Lab)s(el.)0 4471 y Fn(h)14 b Fm(Declare)27 -b Fk(Ellipse)j Fm(functions)36 b Fl(1101)15 b Fn(i)23 +Fk(Reg)p 2061 3748 29 5 v 40 w(Cl)p 2197 3748 V 39 w(Plane)p +2471 3748 V 40 w(Curv)m(e)33 b Fm(mem)n(b)r(ers.)51 b +Fn(\003)p Fe(=)166 3847 y Fk(return)33 b Fn(\003)p Fi(this)11 +b Fm(;)83 3947 y Fn(g)0 4146 y Fk(1121.)94 b(Lab)s(elling.)0 +4346 y(1122.)g(Lab)s(el.)0 4470 y Fn(h)14 b Fm(Declare)27 +b Fk(Ellipse)j Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4570 y Fk(v)m(oid)34 b Fi(lab)l(el)14 b Fm(\()p Fk(const)34 b(string)h Fi(p)l(os)j Fm(=)25 b Ff("top")r Fe(;)14 b Fk(const)34 b(b)s(o)s(ol)f Fi(dot)38 b Fm(=)25 b Fi(false)12 b Fe(;)i Fk(Picture)35 b Fm(&)o Fi(pictur)l(e)i Fm(=)25 b Fi(curr)l(ent)p 3487 4570 26 -4 v 30 w(pictur)l(e)10 b Fm(\))249 4670 y Fk(const)5 +4 v 30 w(pictur)l(e)10 b Fm(\))249 4669 y Fk(const)5 b Fm(;)p eop end -%%Page: 312 312 -TeXDict begin 312 311 bop 0 83 a Fm(312)140 b Fl(LABEL)2664 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1118)0 263 y Fk(1118.)0 +%%Page: 316 316 +TeXDict begin 316 315 bop 0 83 a Fm(316)140 b Fl(LABEL)2664 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1123)0 263 y Fk(1123.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 +b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(Ellipse)10 b Fm(::)e Fi(lab)l(el)15 b Fm(\()p Fk(const)32 b(string)i Fi(p)l(os)11 b Fe(;)j Fk(const)32 b(b)s(o)s(ol)f Fi(dot)13 b Fe(;)h Fk(Picture)33 b Fm(&)o Fi(pictur)l(e)11 @@ -27693,15 +27726,14 @@ b Fm(\))p Fe(:)p Fi(lab)l(el)g Fm(\()p Fe(s;)g Fi(p)l(os)e Fe(;)i Fi(dot)e Fe(;)i Fi(pictur)l(e)d Fm(\);)249 1533 y Fe(c)289 1525 y Fg(+)-8 b(+)387 1533 y Fm(;)166 1633 -y Fn(g)83 1733 y(g)0 1932 y Fk(1119.)94 b(Dotlab)s(el.)p -0 2008 1643 4 v 1738 2040 a(Begin)31 b(Log)p 2257 2008 -V 83 2181 a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])65 -b(Changed)31 b(this)g(function)h(so)f(that)h(it)g(just)g(calls)e -Fk(Ellipse)11 b Fm(::)d Fi(lab)l(el)15 b Fm(\()f(\))31 -b(with)h Fi(dot)42 b Fm(=)29 b Fi(true)10 b Fm(.)49 b(Made)31 -b(it)0 2280 y Fk(inline)s Fm(.)p 0 2372 1678 4 v 1773 -2405 a Fk(End)h(Log)p 2222 2372 V 0 2530 a Fn(h)14 b -Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 b Fl(1101)15 +y Fn(g)83 1733 y(g)0 1932 y Fk(1124.)94 b(Dotlab)s(el.)p +0 2008 1779 4 v 1874 2040 a(Log)p 2122 2008 V 83 2181 +a Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])65 b(Changed)31 +b(this)g(function)h(so)f(that)h(it)g(just)g(calls)e Fk(Ellipse)11 +b Fm(::)d Fi(lab)l(el)15 b Fm(\()f(\))31 b(with)h Fi(dot)42 +b Fm(=)29 b Fi(true)10 b Fm(.)49 b(Made)31 b(it)0 2280 +y Fk(inline)s Fm(.)p 0 2372 3900 4 v 0 2530 a Fn(h)14 +b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2629 y Fk(inline)31 b(v)m(oid)h Fi(dotlab)l(el)15 b Fm(\()p Fk(string)33 b Fi(p)l(os)i Fm(=)22 b Ff("top")s Fe(;)14 b Fk(Picture)33 b Fm(&)o @@ -27709,8 +27741,8 @@ 4 v 30 w(pictur)l(e)11 b Fm(\))28 b Fk(const)83 2729 y Fn(f)166 2828 y Fi(lab)l(el)14 b Fm(\()p Fi(p)l(os)e Fe(;)i Fi(true)9 b Fe(;)14 b Fi(pictur)l(e)d Fm(\);)83 -2928 y Fn(g)0 3127 y Fk(1120.)94 b(Returning)31 b(elemen)m(ts)f(and)j -(information.)0 3327 y(1121.)94 b(Is)32 b(elliptical.)93 +2928 y Fn(g)0 3127 y Fk(1125.)94 b(Returning)31 b(elemen)m(ts)f(and)j +(information.)0 3327 y(1126.)94 b(Is)32 b(elliptical.)93 b Fm([)p Fh(LDF)25 b(2003.07.20.)p Fm(])61 b Fi(is)p 1616 3327 V 31 w(el)t(liptic)l(al)15 b Fm(\()f(\))28 b(\014rst)g(c)n(hec)n(ks)e(whether)i Fn(\003)o Fi(this)39 @@ -27741,23 +27773,23 @@ Fk(P)m(oin)m(ts)k Fm(on)24 b Fe(e)p Fm(,)h Fi(is)p 3479 3825 V 31 w(el)t(liptic)l(al)16 b Fm(\()e(\))0 3924 y(returns)27 b Fi(false)12 b Fm(,)27 b(otherwise)g(it)h(returns)f -Fi(true)10 b Fm(.)p 0 4024 1643 4 v 1738 4056 a Fk(Begin)31 -b(Log)p 2257 4024 V 83 4197 a Fm([)p Fh(LDF)25 b(2003.07.20.)p -Fm(])61 b(Added)28 b(this)g(function.)83 4297 y([)p Fh(LDF)d +Fi(true)10 b Fm(.)p 0 4023 1779 4 v 1874 4056 a Fk(Log)p +2122 4023 V 83 4196 a Fm([)p Fh(LDF)25 b(2003.07.20.)p +Fm(])61 b(Added)28 b(this)g(function.)83 4296 y([)p Fh(LDF)d (2003.07.25.)p Fm(])61 b(No)n(w)27 b(c)n(hec)n(king)g Fi(normal)36 b Fn(\021)23 b Ff(INVALID_POINT)o Fm(.)37 -b(If)28 b(it)g(is,)f Fi(is)p 2609 4297 26 4 v 31 w(el)t(liptic)l(al)16 +b(If)28 b(it)g(is,)f Fi(is)p 2609 4296 26 4 v 31 w(el)t(liptic)l(al)16 b Fm(\()e(\))28 b(returns)f Fi(false)11 b Fm(.)p 0 4388 -1678 4 v 1773 4421 a Fk(End)32 b(Log)p 2222 4388 V 0 -4546 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4645 y Fk(b)s(o)s(ol)31 -b Fi(is)p 360 4645 26 4 v 31 w(el)t(liptic)l(al)15 b -Fm(\()f(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 313 313 -TeXDict begin 313 312 bop 0 83 a Fn(x)p Fm(1122)139 b -Fl(3DLDFPR)n(G)2382 b(IS)25 b(ELLIPTICAL)141 b Fm(313)0 -263 y Fk(1122.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3900 4 v 0 4545 a Fn(h)j Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4645 y Fk(b)s(o)s(ol)31 b Fi(is)p 360 4645 26 4 v 31 +w(el)t(liptic)l(al)15 b Fm(\()f(\))28 b Fk(const)5 b +Fm(;)p eop end +%%Page: 317 317 +TeXDict begin 317 316 bop 0 83 a Fn(x)p Fm(1127)139 b +Fl(3DLDFPR)n(G)2382 b(IS)25 b(ELLIPTICAL)141 b Fm(317)0 +263 y Fk(1127.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)31 b(Ellipse)11 b Fm(::)d Fi(is)p 704 487 26 4 v 31 w(el)t(liptic)l(al)15 b Fm(\()f(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(b)s(o)s(ol)j Ff(DEBUG)25 @@ -27837,9 +27869,9 @@ Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)166 5095 y Fn(g)166 5219 y Fk(real)33 b Fe(r)r Fm(;)166 5319 y Fk(in)m(t)g Fe(i)22 b Fm(=)h(0)o(;)p eop end -%%Page: 314 314 -TeXDict begin 314 313 bop 0 83 a Fm(314)140 b Fl(IS)24 -b(ELLIPTICAL)2382 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1122)166 +%%Page: 318 318 +TeXDict begin 318 317 bop 0 83 a Fm(318)140 b Fl(IS)24 +b(ELLIPTICAL)2382 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1127)166 263 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(P)m(oin)m(t)33 b Fn(\003i)8 b Fm(::)h Fi(c)l(onst)p 1226 263 26 4 v 30 w(iter)l(ator)k(iter)37 b Fm(=)22 b Fe(e:)p Fi(p)l(oints)11 @@ -27885,74 +27917,71 @@ Ff(Re)o(tu)f(rning)p Fj( )p Ff(true.")23 b Fn(\034)g Fi(end)t(l)36 b Fn(\034)24 b Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 b Fm(;)166 2256 y Fk(return)33 b Fi(true)10 -b Fm(;)83 2355 y Fn(g)0 2554 y Fk(1123.)94 b(Is)32 b(quadratic.)0 +b Fm(;)83 2355 y Fn(g)0 2554 y Fk(1128.)94 b(Is)32 b(quadratic.)0 2679 y Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2779 y Fk(inline)31 +b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2779 y Fk(inline)31 b(b)s(o)s(ol)g Fi(is)p 622 2779 V 31 w(quadr)l(atic)10 b Fm(\()k(\))28 b Fk(const)83 2878 y Fn(f)166 2978 y Fk(return)33 b Fi(true)10 b Fm(;)83 3077 y Fn(g)0 3277 -y Fk(1124.)94 b(Is)32 b(cubic.)p 0 3352 1643 4 v 1738 -3385 a(Begin)f(Log)p 2257 3352 V 83 3526 a Fm([)p Fh(LDF)25 -b(2003.07.27.)p Fm(])61 b(Made)27 b Fk(virtual)33 b Fm(and)28 -b(non-inline.)p 0 3618 1678 4 v 1773 3650 a Fk(End)k(Log)p -2222 3618 V 0 3775 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j -Fm(functions)36 b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +y Fk(1129.)94 b(Is)32 b(cubic.)p 0 3352 1779 4 v 1874 +3385 a(Log)p 2122 3352 V 83 3526 a Fm([)p Fh(LDF)25 b(2003.07.27.)p +Fm(])61 b(Made)27 b Fk(virtual)33 b Fm(and)28 b(non-inline.)p +0 3618 3900 4 v 0 3775 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3874 y Fk(virtual)33 b(b)s(o)s(ol)e Fi(is)p 672 3874 26 4 v 31 w(cubic)9 b Fm(\()14 b(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 315 315 -TeXDict begin 315 314 bop 0 83 a Fn(x)p Fm(1125)139 b -Fl(3DLDFPR)n(G)2586 b(IS)24 b(CUBIC)141 b Fm(315)0 263 -y Fk(1125.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 319 319 +TeXDict begin 319 318 bop 0 83 a Fn(x)p Fm(1130)139 b +Fl(3DLDFPR)n(G)2586 b(IS)24 b(CUBIC)141 b Fm(319)0 263 +y Fk(1130.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)31 b(Ellipse)11 b Fm(::)d Fi(is)p 704 487 26 4 v 31 w(cubic)i Fm(\()k(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(return)33 b Fi(false)12 b Fm(;)83 -786 y Fn(g)0 985 y Fk(1126.)94 b(Is)32 b(quartic.)p 0 -1085 1643 4 v 1738 1117 a(Begin)f(Log)p 2257 1085 V 83 -1258 a Fm([)p Fh(LDF)25 b(2003.07.27.)p Fm(])61 b(Made)27 -b Fk(virtual)33 b Fm(and)28 b(non-inline.)p 0 1350 1678 -4 v 1773 1382 a Fk(End)k(Log)p 2222 1350 V 0 1507 a Fn(h)14 -b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 b Fl(1101)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 1607 y Fk(virtual)33 b(b)s(o)s(ol)e -Fi(is)p 672 1607 26 4 v 31 w(quartic)9 b Fm(\()14 b(\))28 -b Fk(const)5 b Fm(;)0 1806 y Fk(1127.)0 1930 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2030 y Fk(b)s(o)s(ol)31 -b(Ellipse)11 b Fm(::)d Fi(is)p 704 2030 V 31 w(quartic)h -Fm(\()14 b(\))28 b Fk(const)83 2130 y Fn(f)166 2229 y -Fk(return)33 b Fi(false)12 b Fm(;)83 2329 y Fn(g)0 2528 -y Fk(1128.)94 b(Solv)m(e.)h Fm([)p Fh(LDF)25 b(2002.11.06.)p +786 y Fn(g)0 985 y Fk(1131.)94 b(Is)32 b(quartic.)p 0 +1084 1779 4 v 1874 1117 a(Log)p 2122 1084 V 83 1257 a +Fm([)p Fh(LDF)25 b(2003.07.27.)p Fm(])61 b(Made)27 b +Fk(virtual)33 b Fm(and)28 b(non-inline.)p 0 1349 3900 +4 v 0 1506 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 +b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1606 y Fk(virtual)33 +b(b)s(o)s(ol)e Fi(is)p 672 1606 26 4 v 31 w(quartic)9 +b Fm(\()14 b(\))28 b Fk(const)5 b Fm(;)0 1805 y Fk(1132.)0 +1930 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 +b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2029 y Fk(b)s(o)s(ol)31 +b(Ellipse)11 b Fm(::)d Fi(is)p 704 2029 V 31 w(quartic)h +Fm(\()14 b(\))28 b Fk(const)83 2129 y Fn(f)166 2229 y +Fk(return)33 b Fi(false)12 b Fm(;)83 2328 y Fn(g)0 2527 +y Fk(1133.)94 b(Solv)m(e.)h Fm([)p Fh(LDF)25 b(2002.11.06.)p Fm(])57 b Fi(solve)12 b Fm(\()i(\))24 b(assumes)f(that)h(the)h Fk(Ellipse)h Fm(lies)e(in)g(a)g(ma)5 b(jor)23 b(plane)g(with)i(its)f -(cen)n(ter)f(at)0 2628 y(the)h(origin.)35 b(Co)r(de)24 +(cen)n(ter)f(at)0 2627 y(the)h(origin.)35 b(Co)r(de)24 b(that)g(calls)f(it)h(m)n(ust)g(ensure)g(that)g(these)g(conditions)f (are)g(ful\014lled.)37 b Fi(solve)11 b Fm(\()j(\))25 b(returns)e(the)h(t)n(w)n(o)f(p)r(ossible)0 2727 y(v)-5 b(alues)27 b(for)g(either)h(the)g(horizon)n(tal)e(or)g(the)i(v)n -(ertical)f(co)r(ordinate.)83 2827 y(TO)g(DO:)h(Read)f(through,)g(and)h -(then)g(explain)f(this)h(function.)p 0 2926 1643 4 v -1738 2959 a Fk(Begin)j(Log)p 2257 2926 V 83 3100 a Fm([)p -Fh(LDF)25 b(2003.07.20.)p Fm(])57 b(No)n(w)23 b(using)g -Fi(get)p 1242 3100 26 4 v 31 w(axis)p 1413 3100 V 31 -w(v)13 b Fm(\()h(\))24 b(and)f Fi(get)p 1858 3100 V 31 -w(axis)p 2029 3100 V 31 w(h)11 b Fm(\()j(\),)25 b(instead)e(of)g -(accessing)f Fi(axis)p 3103 3100 V 31 w(h)35 b Fm(and)23 -b Fi(axis)p 3508 3100 V 31 w(v)37 b Fm(directly)-7 b(.)83 -3199 y([)p Fh(LDF)25 b(2003.07.25.)p Fm(])61 b(Remo)n(v)n(ed)27 +(ertical)f(co)r(ordinate.)83 2826 y(TO)g(DO:)h(Read)f(through,)g(and)h +(then)g(explain)f(this)h(function.)p 0 2925 1779 4 v +1874 2958 a Fk(Log)p 2122 2925 V 83 3098 a Fm([)p Fh(LDF)d(2003.07.20.) +p Fm(])57 b(No)n(w)23 b(using)g Fi(get)p 1242 3098 26 +4 v 31 w(axis)p 1413 3098 V 31 w(v)13 b Fm(\()h(\))24 +b(and)f Fi(get)p 1858 3098 V 31 w(axis)p 2029 3098 V +31 w(h)11 b Fm(\()j(\),)25 b(instead)e(of)g(accessing)f +Fi(axis)p 3103 3098 V 31 w(h)35 b Fm(and)23 b Fi(axis)p +3508 3098 V 31 w(v)37 b Fm(directly)-7 b(.)83 3198 y([)p +Fh(LDF)25 b(2003.07.25.)p Fm(])61 b(Remo)n(v)n(ed)27 b(some)g(commen)n(ted-out)g(co)r(de,)g(and)h(an)f(explanatory)f(commen) -n(t.)p 0 3291 1678 4 v 1773 3324 a Fk(End)32 b(Log)p -2222 3291 V 0 3448 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j -Fm(functions)36 b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3548 y Fk(real)p 243 3548 29 5 v 40 w(pair)33 b Fi(solve)11 -b Fm(\()p Fk(c)m(har)35 b Fi(axis)p 1050 3548 26 4 v -31 w(unknown)10 b Fe(;)k Fk(real)32 b Fi(known)11 b Fm(\))28 -b Fk(const)t Fm(;)p eop end -%%Page: 316 316 -TeXDict begin 316 315 bop 0 83 a Fm(316)140 b Fl(SOL)-8 -b(VE)2672 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1129)0 263 y -Fk(1129.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +n(t.)p 0 3290 3900 4 v 0 3447 a Fn(h)14 b Fm(Declare)27 +b Fk(Ellipse)j Fm(functions)36 b Fl(1106)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 3547 y Fk(real)p 243 3547 29 5 v +40 w(pair)33 b Fi(solve)11 b Fm(\()p Fk(c)m(har)35 b +Fi(axis)p 1050 3547 26 4 v 31 w(unknown)10 b Fe(;)k Fk(real)32 +b Fi(known)11 b Fm(\))28 b Fk(const)t Fm(;)p eop end +%%Page: 320 320 +TeXDict begin 320 319 bop 0 83 a Fm(320)140 b Fl(SOL)-8 +b(VE)2672 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1134)0 263 y +Fk(1134.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(real)p 243 487 29 5 v 40 w(pair)33 b(Ellipse)11 b Fm(::)d Fi(solve)k Fm(\()p Fk(c)m(har)34 b Fi(axis)p 1394 487 26 4 v 31 w(unknown)10 b Fe(;)k Fk(real)32 b @@ -27991,10 +28020,10 @@ 1169 2256 V 31 w(known)11 b Fm(\))41 b Fn(f)332 2355 y Fk(return)33 b Ff(INVALID_REAL_PAIR)m Fm(;)249 2455 y Fn(g)p eop end -%%Page: 317 317 -TeXDict begin 317 316 bop 0 83 a Fn(x)p Fm(1130)139 b -Fl(3DLDFPR)n(G)2673 b(SOL)-8 b(VE)141 b Fm(317)0 263 -y Fk(1130.)94 b Fm(The)28 b(equation)f(for)g(an)g(ellipse)h(in)f(the)h +%%Page: 321 321 +TeXDict begin 321 320 bop 0 83 a Fn(x)p Fm(1135)139 b +Fl(3DLDFPR)n(G)2673 b(SOL)-8 b(VE)141 b Fm(321)0 263 +y Fk(1135.)94 b Fm(The)28 b(equation)f(for)g(an)g(ellipse)h(in)f(the)h (x-y)f(plane)h(with)g(its)g(cen)n(ter)f(at)g(the)h(origin)f(is)1622 462 y Fe(x)1669 428 y Fg(2)1707 462 y Fe(=a)1793 428 y Fg(2)1848 462 y Fm(+)18 b Fe(y)1975 428 y Fg(2)2012 @@ -28009,7 +28038,7 @@ b Fn(\000)f Fe(y)1986 1136 y Fg(2)2023 1160 y Fe(=b)2101 1136 y Fg(2)2137 1160 y Fm(\))h Fn(\002)f Fe(a)2315 1136 y Fg(2)2352 1160 y Fe(:)0 1342 y Fn(h)c Fm(De\014ne)28 -b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 b Fn(i)23 +b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1442 y Fe(r)s(:)p Fi(\014rst)34 b Fm(=)23 b Fi(sqrt)12 b Fm(\(\(1)t Fn(\000)t Fm(\(\()p Fi(known)k Fn(\003)t Fi(known)11 b Fm(\))p Fe(=)p Fm(\()p @@ -28019,7 +28048,7 @@ Fi(r)l(adius)p 3504 1442 V 31 w(unknown)c Fm(\)\);)83 1542 y Fe(r)s(:)p Fi(se)l(c)l(ond)36 b Fm(=)23 b Fn(\000)o Fe(r)s(:)p Fi(\014rst)11 b Fm(;)83 1641 y Fk(return)33 -b Fe(r)s Fm(;)k Fn(g)0 1840 y Fk(1131.)94 b(Get)34 b(co)s(e\016cien)m +b Fe(r)s Fm(;)k Fn(g)0 1840 y Fk(1136.)94 b(Get)34 b(co)s(e\016cien)m (ts.)94 b Fm(This)29 b(is)h(used)f(for)g(getting)g(the)h(co)r (e\016cien)n(ts)f(of)h(the)g(quadratic)e(equation)h(that)h(results)0 1940 y(from)k(replacing)g Fe(y)j Fm(with)f Fe(mx)23 b @@ -28053,36 +28082,35 @@ 0 2853 y(of)28 b Fe(x)142 2823 y Fg(2)179 2853 y Fm(,)g Fe(r)s(:)p Fi(se)l(c)l(ond)41 b Fm(of)27 b Fe(x)h Fm(and)g Fe(r)s(:)p Fi(thir)l(d)41 b Fm(of)27 b(the)h(constan)n(t)f(term)h(\()p -Fe(x)2020 2823 y Fg(0)2058 2853 y Fm(\).)p 0 2957 1643 -4 v 1738 2990 a Fk(Begin)j(Log)p 2257 2957 V 83 3131 -a Fm([)p Fh(LDF)25 b(2003.07.20.)p Fm(])57 b(No)n(w)23 -b(using)g Fi(get)p 1242 3131 26 4 v 31 w(axis)p 1413 -3131 V 31 w(v)13 b Fm(\()h(\))24 b(and)f Fi(get)p 1858 -3131 V 31 w(axis)p 2029 3131 V 31 w(h)11 b Fm(\()j(\),)25 -b(instead)e(of)g(accessing)f Fi(axis)p 3103 3131 V 31 -w(h)35 b Fm(and)23 b Fi(axis)p 3508 3131 V 31 w(v)37 -b Fm(directly)-7 b(.)83 3230 y([)p Fh(LDF)25 b(2003.07.27.)p -Fm(])61 b(Corrected)26 b(a)i(t)n(yp)r(o)f(in)h(the)g(math)g(mo)r(de)f -(material)g(sho)n(wing)f(the)i(co)r(e\016cien)n(ts.)p -0 3322 1678 4 v 1773 3355 a Fk(End)k(Log)p 2222 3322 -V 0 3479 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3579 y Fk(real)p -243 3579 29 5 v 40 w(triple)32 b Fi(get)p 647 3579 26 +Fe(x)2020 2823 y Fg(0)2058 2853 y Fm(\).)p 0 2957 1779 +4 v 1874 2989 a Fk(Log)p 2122 2957 V 83 3130 a Fm([)p +Fh(LDF)d(2003.07.20.)p Fm(])57 b(No)n(w)23 b(using)g +Fi(get)p 1242 3130 26 4 v 31 w(axis)p 1413 3130 V 31 +w(v)13 b Fm(\()h(\))24 b(and)f Fi(get)p 1858 3130 V 31 +w(axis)p 2029 3130 V 31 w(h)11 b Fm(\()j(\),)25 b(instead)e(of)g +(accessing)f Fi(axis)p 3103 3130 V 31 w(h)35 b Fm(and)23 +b Fi(axis)p 3508 3130 V 31 w(v)37 b Fm(directly)-7 b(.)83 +3229 y([)p Fh(LDF)25 b(2003.07.27.)p Fm(])61 b(Corrected)26 +b(a)i(t)n(yp)r(o)f(in)h(the)g(math)g(mo)r(de)f(material)g(sho)n(wing)f +(the)i(co)r(e\016cien)n(ts.)p 0 3321 3900 4 v 0 3479 +a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 +b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3578 y Fk(real)p +243 3578 29 5 v 40 w(triple)32 b Fi(get)p 647 3578 26 4 v 30 w(c)l(o)l(e\016cients)12 b Fm(\()p Fk(real)33 -b Fi(Slop)l(e)11 b Fe(;)j Fk(real)32 b Fi(v)p 1763 3579 +b Fi(Slop)l(e)11 b Fe(;)j Fk(real)32 b Fi(v)p 1763 3578 V 31 w(inter)l(c)l(ept)12 b Fm(\))28 b Fk(const)5 b Fm(;)0 -3778 y Fk(1132.)0 3903 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3777 y Fk(1137.)0 3902 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4002 y Fk(real)p 243 4002 29 5 v 40 w(triple)32 b(Ellipse)11 b Fm(::)d Fi(get)p 991 4002 26 4 v 31 w(c)l(o)l(e\016cients)j Fm(\()p Fk(real)33 b Fi(Slop)l(e)11 b Fe(;)j Fk(real)33 b Fi(v)p 2108 4002 V 30 w(inter)l(c)l(ept)12 b Fm(\))28 -b Fk(const)83 4102 y Fn(f)166 4201 y Fk(real)p 326 4201 -29 5 v 40 w(triple)k Fe(r)s Fm(;)166 4301 y Fk(real)h -Fi(ax)p 441 4301 26 4 v 30 w(h)h Fm(=)23 b Fi(get)p 739 -4301 V 30 w(axis)p 909 4301 V 31 w(h)11 b Fm(\()j(\);)166 -4401 y Fk(real)33 b Fi(ax)p 441 4401 V 30 w(v)j Fm(=)23 -b Fi(get)p 737 4401 V 31 w(axis)p 908 4401 V 30 w(v)14 +b Fk(const)83 4101 y Fn(f)166 4201 y Fk(real)p 326 4201 +29 5 v 40 w(triple)k Fe(r)s Fm(;)166 4300 y Fk(real)h +Fi(ax)p 441 4300 26 4 v 30 w(h)h Fm(=)23 b Fi(get)p 739 +4300 V 30 w(axis)p 909 4300 V 31 w(h)11 b Fm(\()j(\);)166 +4400 y Fk(real)33 b Fi(ax)p 441 4400 V 30 w(v)j Fm(=)23 +b Fi(get)p 737 4400 V 31 w(axis)p 908 4400 V 30 w(v)14 b Fm(\()g(\);)166 4525 y Fe(r)s(:)p Fi(\014rst)34 b Fm(=)23 b(\(\()p Fi(ax)p 645 4525 V 31 w(v)13 b Fe(=)p Fm(2)o(\))19 b Fn(\003)f Fm(\()p Fi(ax)p 1034 4525 V 31 w(v)13 b Fe(=)p @@ -28091,79 +28119,76 @@ 1933 4525 V 31 w(h)11 b Fe(=)p Fm(2)o(\)\))19 b Fn(\003)f Fm(\()p Fi(Slop)l(e)30 b Fn(\003)18 b Fi(Slop)l(e)11 b Fm(\)\);)167 b Fe(=)p Fn(\003)41 b Fm(a)g Fn(\003)p -Fe(=)166 4625 y(r)s(:)p Fi(se)l(c)l(ond)36 b Fm(=)23 +Fe(=)166 4624 y(r)s(:)p Fi(se)l(c)l(ond)36 b Fm(=)23 b(2)18 b Fn(\003)g Fi(Slop)l(e)29 b Fn(\003)18 b Fi(v)p -1024 4625 V 31 w(inter)l(c)l(ept)30 b Fn(\003)18 b Fm(\(\()p -Fi(ax)p 1601 4625 V 31 w(h)11 b Fe(=)p Fm(2\))18 b Fn(\003)g -Fm(\()p Fi(ax)p 1992 4625 V 31 w(h)11 b Fe(=)p Fm(2)o(\)\);)167 -b Fe(=)p Fn(\003)40 b Fm(b)i Fn(\003)p Fe(=)166 4725 +1024 4624 V 31 w(inter)l(c)l(ept)30 b Fn(\003)18 b Fm(\(\()p +Fi(ax)p 1601 4624 V 31 w(h)11 b Fe(=)p Fm(2\))18 b Fn(\003)g +Fm(\()p Fi(ax)p 1992 4624 V 31 w(h)11 b Fe(=)p Fm(2)o(\)\);)167 +b Fe(=)p Fn(\003)40 b Fm(b)i Fn(\003)p Fe(=)166 4724 y(r)s(:)p Fi(thir)l(d)36 b Fm(=)23 b(\(\(\()p Fi(ax)p -703 4725 V 31 w(h)11 b Fe(=)p Fm(2)o(\))5 b Fn(\003)g -Fm(\()p Fi(ax)p 1067 4725 V 30 w(h)11 b Fe(=)p Fm(2)o(\)\))5 -b Fn(\003)g Fm(\()p Fi(v)p 1419 4725 V 31 w(inter)l(c)l(ept)16 -b Fn(\003)5 b Fi(v)p 1862 4725 V 30 w(inter)l(c)l(ept)12 -b Fm(\)\))5 b Fn(\000)g Fm(\(\(\()p Fi(ax)p 2531 4725 +703 4724 V 31 w(h)11 b Fe(=)p Fm(2)o(\))5 b Fn(\003)g +Fm(\()p Fi(ax)p 1067 4724 V 30 w(h)11 b Fe(=)p Fm(2)o(\)\))5 +b Fn(\003)g Fm(\()p Fi(v)p 1419 4724 V 31 w(inter)l(c)l(ept)16 +b Fn(\003)5 b Fi(v)p 1862 4724 V 30 w(inter)l(c)l(ept)12 +b Fm(\)\))5 b Fn(\000)g Fm(\(\(\()p Fi(ax)p 2531 4724 V 31 w(v)13 b Fe(=)p Fm(2)o(\))5 b Fn(\003)g Fm(\()p -Fi(ax)p 2893 4725 V 30 w(v)13 b Fe(=)p Fm(2)o(\)\))5 -b Fn(\003)g Fm(\(\()p Fi(ax)p 3318 4725 V 31 w(h)11 b -Fe(=)p Fm(2)o(\))5 b Fn(\003)g Fm(\()p Fi(ax)p 3682 4725 -V 29 w(h)11 b Fe(=)p Fm(2)o(\)\)\);)291 4824 y Fe(=)p -Fn(\003)40 b Fm(c)i Fn(\003)p Fe(=)166 4924 y Fk(return)33 -b Fe(r)s Fm(;)83 5023 y Fn(g)0 5223 y Fk(1133.)94 b(Get)32 +Fi(ax)p 2893 4724 V 30 w(v)13 b Fe(=)p Fm(2)o(\)\))5 +b Fn(\003)g Fm(\(\()p Fi(ax)p 3318 4724 V 31 w(h)11 b +Fe(=)p Fm(2)o(\))5 b Fn(\003)g Fm(\()p Fi(ax)p 3682 4724 +V 29 w(h)11 b Fe(=)p Fm(2)o(\)\)\);)291 4823 y Fe(=)p +Fn(\003)40 b Fm(c)i Fn(\003)p Fe(=)166 4923 y Fk(return)33 +b Fe(r)s Fm(;)83 5023 y Fn(g)0 5222 y Fk(1138.)94 b(Get)32 b(cen)m(ter.)p eop end -%%Page: 318 318 -TeXDict begin 318 317 bop 0 83 a Fm(318)140 b Fl(NON-)p +%%Page: 322 322 +TeXDict begin 322 321 bop 0 83 a Fm(322)140 b Fl(NON-)p Fk(CONST)22 b Fl(VERSION)2036 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(1134)0 263 y Fk(1134.)94 b(Non-const)31 b(v)m(ersion.)p -0 339 1643 4 v 1738 371 a(Begin)g(Log)p 2257 339 V 83 -512 a Fm([)p Fh(LDF)25 b(2002.11.10.)p Fm(])61 b(Made)27 -b(this)h(function)h Fk(virtual)j Fm(and)c(non-)p Fk(inline)r -Fm(.)83 612 y([)p Fh(LDF)d(2003.05.09.)p Fm(])61 b(Changed)27 -b(return)g(v)-5 b(alue)28 b(from)f Fk(P)m(oin)m(t)33 -b Fm(&)27 b(to)h Fk(const)k(P)m(oin)m(t)h Fm(&)o(.)p -0 704 1678 4 v 1773 736 a Fk(End)f(Log)p 2222 704 V 0 +Fm(1139)0 263 y Fk(1139.)94 b(Non-const)31 b(v)m(ersion.)p +0 339 1779 4 v 1874 371 a(Log)p 2122 339 V 83 512 a Fm([)p +Fh(LDF)25 b(2002.11.10.)p Fm(])61 b(Made)27 b(this)h(function)h +Fk(virtual)j Fm(and)c(non-)p Fk(inline)r Fm(.)83 612 +y([)p Fh(LDF)d(2003.05.09.)p Fm(])61 b(Changed)27 b(return)g(v)-5 +b(alue)28 b(from)f Fk(P)m(oin)m(t)33 b Fm(&)27 b(to)h +Fk(const)k(P)m(oin)m(t)h Fm(&)o(.)p 0 704 3900 4 v 0 861 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 960 y Fk(virtual)33 +b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 960 y Fk(virtual)33 b(const)f(P)m(oin)m(t)h Fm(&)p Fi(get)p 1076 960 26 4 -v 30 w(c)l(enter)13 b Fm(\()h(\);)0 1160 y Fk(1135.)0 +v 30 w(c)l(enter)13 b Fm(\()h(\);)0 1160 y Fk(1140.)0 1284 y Fn(h)g Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1384 y Fk(const)32 +b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1384 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fk(Ellipse)11 b Fm(::)d Fi(get)p 1108 1384 V 31 w(c)l(enter)k Fm(\()i(\))83 1483 y Fn(f)166 1583 y Fi(c)l(enter)f Fe(:)p Fi(apply)p 614 1583 V 32 w(tr)l(ansform)e Fm(\()j(\);)166 1683 y Fk(return)33 -b Fi(c)l(enter)13 b Fm(;)83 1782 y Fn(g)0 1982 y Fk(1136.)94 -b(const)32 b(v)m(ersion.)p 0 2057 1643 4 v 1738 2090 -a(Begin)f(Log)p 2257 2057 V 83 2231 a Fm([)p Fh(LDF)25 -b(2002.11.10.)p Fm(])61 b(Made)27 b(this)h(function)h -Fk(virtual)j Fm(and)c(non-)p Fk(inline)r Fm(.)p 0 2323 -1678 4 v 1773 2355 a Fk(End)k(Log)p 2222 2323 V 0 2480 -a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2579 y Fk(virtual)33 -b(P)m(oin)m(t)g Fi(get)p 761 2579 26 4 v 30 w(c)l(enter)13 -b Fm(\()h(\))28 b Fk(const)5 b Fm(;)0 2779 y Fk(1137.)0 -2903 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3003 y Fk(P)m(oin)m(t)33 +b Fi(c)l(enter)13 b Fm(;)83 1782 y Fn(g)0 1982 y Fk(1141.)94 +b(const)32 b(v)m(ersion.)p 0 2057 1779 4 v 1874 2090 +a(Log)p 2122 2057 V 83 2231 a Fm([)p Fh(LDF)25 b(2002.11.10.)p +Fm(])61 b(Made)27 b(this)h(function)h Fk(virtual)j Fm(and)c(non-)p +Fk(inline)r Fm(.)p 0 2323 3900 4 v 0 2480 a Fn(h)14 b +Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 b Fl(1106)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 2579 y Fk(virtual)33 b(P)m(oin)m(t)g +Fi(get)p 761 2579 26 4 v 30 w(c)l(enter)13 b Fm(\()h(\))28 +b Fk(const)5 b Fm(;)0 2779 y Fk(1142.)0 2903 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3003 y Fk(P)m(oin)m(t)33 b(Ellipse)11 b Fm(::)d Fi(get)p 793 3003 V 31 w(c)l(enter)k Fm(\()j(\))27 b Fk(const)83 3102 y Fn(f)166 3202 y Fk(P)m(oin)m(t)33 b Fe(p)p Fm(\()p Fi(c)l(enter)13 b Fm(\);)166 3327 y Fe(p:)p Fi(apply)p 423 3327 V 32 w(tr)l(ansform)e Fm(\()j(\);)166 3426 y Fk(return)33 b Fe(p)p Fm(;)83 3526 y Fn(g)0 3725 -y Fk(1138.)94 b(Get)32 b(fo)s(cus.)0 3924 y(1139.)94 -b(Non-const)31 b(v)m(ersion.)p 0 4000 1643 4 v 1738 4033 -a(Begin)g(Log)p 2257 4000 V 83 4173 a Fm([)p Fh(LDF)25 -b(2003.07.25.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 4265 1678 4 v 1773 4298 a Fk(End)k(Log)p 2222 4265 -V 0 4422 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4522 y Fk(const)32 +y Fk(1143.)94 b(Get)32 b(fo)s(cus.)0 3924 y(1144.)94 +b(Non-const)31 b(v)m(ersion.)p 0 4000 1779 4 v 1874 4033 +a(Log)p 2122 4000 V 83 4173 a Fm([)p Fh(LDF)25 b(2003.07.25.)p +Fm(])61 b(Added)28 b(this)g(function.)p 0 4265 3900 4 +v 0 4422 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 +b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4522 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(get)p 764 4522 26 4 v 30 w(fo)l(cus)12 b Fm(\()p Fk(const)33 b(unsigned)e(short)h Fe(s)p Fm(\);)p eop end -%%Page: 319 319 -TeXDict begin 319 318 bop 0 83 a Fn(x)p Fm(1140)139 b +%%Page: 323 323 +TeXDict begin 323 322 bop 0 83 a Fn(x)p Fm(1145)139 b Fl(3DLDFPR)n(G)2037 b(NON-)p Fk(CONST)22 b Fl(VERSION)141 -b Fm(319)0 263 y Fk(1140.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 b Fn(i)23 +b Fm(323)0 263 y Fk(1145.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fk(Ellipse)11 b Fm(::)d Fi(get)p 1108 487 26 4 v 31 w(fo)l(cus)j Fm(\()p Fk(const)33 b(unsigned)e(short)h @@ -28185,20 +28210,19 @@ Fn(\034)h Ff("Returning)p Fj( )p Ff(INVALI)o(D_P)-7 b(OINT.\\n\\n")23 b Fn(\034)g Fi(\015ush)11 b Fm(;)249 1782 y Fk(return)33 b Ff(INVALID_POINT)o Fm(;)166 1882 y Fn(g)83 1982 y(g)0 -2181 y Fk(1141.)94 b(const)32 b(v)m(ersion.)p 0 2257 -1643 4 v 1738 2289 a(Begin)f(Log)p 2257 2257 V 83 2430 -a Fm([)p Fh(LDF)25 b(2003.07.25.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 2522 1678 4 v 1773 2554 a Fk(End)k(Log)p -2222 2522 V 0 2679 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j -Fm(functions)36 b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2181 y Fk(1146.)94 b(const)32 b(v)m(ersion.)p 0 2257 +1779 4 v 1874 2289 a(Log)p 2122 2257 V 83 2430 a Fm([)p +Fh(LDF)25 b(2003.07.25.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 2522 3900 4 v 0 2679 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2779 y Fk(P)m(oin)m(t)33 b Fi(get)p 449 2779 26 4 v 30 w(fo)l(cus)12 b Fm(\()p Fk(const)33 b(unsigned)e(short)h Fe(s)p Fm(\))c Fk(const)5 b Fm(;)p eop end -%%Page: 320 320 -TeXDict begin 320 319 bop 0 83 a Fm(320)140 b Fk(CONST)23 -b Fl(VERSION)2220 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1142)0 -263 y Fk(1142.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 324 324 +TeXDict begin 324 323 bop 0 83 a Fm(324)140 b Fk(CONST)23 +b Fl(VERSION)2220 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1147)0 +263 y Fk(1147.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(P)m(oin)m(t)33 b(Ellipse)11 b Fm(::)d Fi(get)p 793 487 26 4 v 31 w(fo)l(cus)j Fm(\()p Fk(const)33 b(unsigned)e(short)h Fe(s)p Fm(\))c Fk(const)83 587 y Fn(f)166 686 y Fk(P)m(oin)m(t)33 @@ -28220,106 +28244,103 @@ Fj( )p Ff(and)p Fj( )p Ff(1.\\n")22 b Fn(\034)h Ff("Returning)p Fj( )p Ff(INVALI)o(D_P)-7 b(OINT.\\n\\n")23 b Fn(\034)g Fi(\015ush)11 b Fm(;)249 2106 y Fk(return)33 b Ff(INVALID_POINT)o -Fm(;)166 2206 y Fn(g)83 2305 y(g)0 2505 y Fk(1143.)94 -b(Get)32 b(linear)f(eccen)m(tricit)m(y)-8 b(.)p 0 2604 -1643 4 v 1738 2637 a(Begin)31 b(Log)p 2257 2604 V 83 -2777 a Fm([)p Fh(LDF)25 b(2003.07.25.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 2869 1678 4 v 1773 2902 a Fk(End)k(Log)p -2222 2869 V 0 3026 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j -Fm(functions)36 b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3126 y Fk(real)32 b Fi(get)p 380 3126 26 4 v 31 w(line)l(ar)p -615 3126 V 31 w(e)l(c)l(c)l(entricity)12 b Fm(\()i(\))28 -b Fk(const)5 b Fm(;)0 3325 y Fk(1144.)0 3450 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 +Fm(;)166 2206 y Fn(g)83 2305 y(g)0 2505 y Fk(1148.)94 +b(Get)32 b(linear)f(eccen)m(tricit)m(y)-8 b(.)p 0 2603 +1779 4 v 1874 2636 a(Log)p 2122 2603 V 83 2777 a Fm([)p +Fh(LDF)25 b(2003.07.25.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 2868 3900 4 v 0 3026 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3125 y Fk(real)32 b Fi(get)p 380 3125 26 4 v 31 w(line)l(ar)p +615 3125 V 31 w(e)l(c)l(c)l(entricity)12 b Fm(\()i(\))28 +b Fk(const)5 b Fm(;)0 3324 y Fk(1149.)0 3449 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3549 y Fk(real)32 b(Ellipse)11 b Fm(::)d Fi(get)p 724 3549 V 31 w(line)l(ar)p 959 3549 V 32 w(e)l(c)l(c)l(entricity)j Fm(\()k(\))28 b Fk(const)83 -3649 y Fn(f)166 3749 y Fk(return)33 b Fi(line)l(ar)p -673 3749 V 31 w(e)l(c)l(c)l(entricity)12 b Fm(;)83 3848 -y Fn(g)0 4047 y Fk(1145.)94 b(Get)32 b(n)m(umerical)g(eccen)m(tricit)m -(y)-8 b(.)p 0 4147 1643 4 v 1738 4179 a(Begin)31 b(Log)p -2257 4147 V 83 4320 a Fm([)p Fh(LDF)25 b(2003.07.27.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 4412 1678 4 -v 1773 4445 a Fk(End)k(Log)p 2222 4412 V 0 4569 a Fn(h)14 -b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 b Fl(1101)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 4669 y Fk(real)32 b Fi(get)p -380 4669 26 4 v 31 w(numeric)l(al)p 766 4669 V 31 w(e)l(c)l(c)l -(entricity)12 b Fm(\()i(\))28 b Fk(const)5 b Fm(;)p eop -end -%%Page: 321 321 -TeXDict begin 321 320 bop 0 83 a Fn(x)p Fm(1146)139 b +3648 y Fn(f)166 3748 y Fk(return)33 b Fi(line)l(ar)p +673 3748 V 31 w(e)l(c)l(c)l(entricity)12 b Fm(;)83 3847 +y Fn(g)0 4047 y Fk(1150.)94 b(Get)32 b(n)m(umerical)g(eccen)m(tricit)m +(y)-8 b(.)p 0 4145 1779 4 v 1874 4178 a(Log)p 2122 4145 +V 83 4319 a Fm([)p Fh(LDF)25 b(2003.07.27.)p Fm(])61 +b(Added)28 b(this)g(function.)p 0 4411 3900 4 v 0 4568 +a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 +b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4667 y Fk(real)32 +b Fi(get)p 380 4667 26 4 v 31 w(numeric)l(al)p 766 4667 +V 31 w(e)l(c)l(c)l(entricity)12 b Fm(\()i(\))28 b Fk(const)5 +b Fm(;)p eop end +%%Page: 325 325 +TeXDict begin 325 324 bop 0 83 a Fn(x)p Fm(1151)139 b Fl(3DLDFPR)n(G)1700 b(GET)24 b(NUMERICAL)f(ECCENTRICITY)141 -b Fm(321)0 263 y Fk(1146.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 b Fn(i)23 +b Fm(325)0 263 y Fk(1151.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(real)32 b(Ellipse)11 b Fm(::)d Fi(get)p 724 487 26 4 v 31 w(numeric)l(al)p 1110 487 V 31 w(e)l(c)l(c)l(entricity)k Fm(\()i(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(return)33 b Fi(numeric)l(al)p 824 686 V 31 w(e)l(c)l(c)l(entricity)12 b Fm(;)83 786 -y Fn(g)0 985 y Fk(1147.)94 b(Get)32 b(axes.)p 0 1061 -1643 4 v 1738 1094 a(Begin)f(Log)p 2257 1061 V 83 1234 -a Fm([)p Fh(LDF)25 b(2003.07.20.)p Fm(])75 b(Rewrote)40 -b(the)i Fk(const)k Fm(v)n(ersions)39 b(of)i(the)g(functions)h(in)f -(this)h(section,)i(and)d(added)g(non-)p Fk(const)0 1334 -y Fm(v)n(ersions.)34 b(All)27 b(of)e(them)i(no)n(w)e(c)n(hec)n(k)g -(whether)h Fn(\003)o Fi(this)37 b Fm(is)26 b(still)g(elliptical)g -(using)f Fi(is)p 2557 1334 26 4 v 31 w(el)t(lipse)13 -b Fm(\()h(\).)37 b(If)26 b(it)g(is,)g(the)g(v)-5 b(alue)26 -b Fi(axis)p 3723 1334 V 31 w(v)39 b Fm(or)0 1434 y Fi(axis)p -145 1434 V 31 w(h)j Fm(should)31 b(ha)n(v)n(e)f(is)g(recalculated,)h -(and)g(this)g(v)-5 b(alue)31 b(is)g(returned.)47 b(In)31 -b(the)g(non-)p Fk(const)36 b Fm(v)n(ersions,)30 b Fi(axis)p -3463 1434 V 31 w(v)44 b Fm(or)30 b Fi(axis)p 3821 1434 -V 31 w(h)0 1533 y Fm(is)f(reset)g(to)g(the)h(new)f(v)-5 -b(alue.)42 b(If)30 b Fn(\003)o Fi(this)41 b Fm(is)29 -b(no)g(longer)f(elliptical,)i(the)g(function)g(returns)e -Ff(INVALID_REAL)p Fm(,)i(and)f Fi(axis)p 3718 1533 V -31 w(h)40 b Fm(or)0 1633 y Fi(axis)p 145 1633 V 31 w(v)h -Fm(is)27 b(set)h(to)g Ff(INVALID_REAL)f Fm(in)g(the)h(non-)p -Fk(const)k Fm(v)n(ersions.)83 1733 y([)p Fh(LDF)25 b(2003.07.20.)p -Fm(])53 b Fi(axis)p 876 1733 V 31 w(h)31 b Fm(and)19 -b Fi(axis)p 1273 1733 V 31 w(v)33 b Fm(are)19 b(up)r(dated)h(b)n(y)g -(the)g(transformation)e(functions,)j(and)f(these)f(are)g(presumably)0 -1832 y(the)34 b(only)f(ones)g(that)h(could)g(cause)f(an)g -Fk(Ellipse)j Fm(to)e(b)r(ecome)g(non-elliptical.)54 b(So,)35 -b(c)n(hec)n(king)e(and)g(recalculating)g(them)0 1932 -y(here)27 b(is)h(probably)e(redundan)n(t.)37 b(Ho)n(w)n(ev)n(er,)25 -b(this)j(ma)n(y)f(c)n(hange,)f(so)h(it's)h(safer)f(to)g(do)h(this)g -(here.)83 2031 y([)p Fh(LDF)d(2003.07.25.)p Fm(])55 b(BUG)22 -b(FIX:)h Fi(axis)p 1278 2031 V 31 w(h)33 b Fm(and)21 -b Fi(axis)p 1679 2031 V 31 w(v)36 b Fm(w)n(ere)20 b(to)r(o)i(small)f(b) -n(y)h(half.)35 b(No)n(w)21 b(m)n(ultiplying)h(b)n(y)g(2)f(in)h(all)g(v) -n(ersions)0 2131 y(of)28 b Fi(get)p 204 2131 V 30 w(axis)p -374 2131 V 31 w(h)11 b Fm(\()j(\))28 b(and)g Fi(get)p -830 2131 V 30 w(axis)p 1000 2131 V 31 w(v)13 b Fm(\()h(\).)p -0 2223 1678 4 v 1773 2256 a Fk(End)32 b(Log)p 2222 2223 -V 0 2455 a(1148.)94 b(Get)32 b(v)m(ertical)g(axis.)0 -2654 y(1149.)94 b(const)32 b(v)m(ersion.)0 2779 y Fn(h)14 -b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 b Fl(1101)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2878 y Fk(real)32 b Fi(get)p -380 2878 26 4 v 31 w(axis)p 551 2878 V 31 w(v)13 b Fm(\()h(\))28 -b Fk(const)5 b Fm(;)0 3077 y Fk(1150.)0 3202 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3302 y Fk(real)32 b(Ellipse)11 -b Fm(::)d Fi(get)p 724 3302 V 31 w(axis)p 895 3302 V -31 w(v)14 b Fm(\()g(\))28 b Fk(const)83 3401 y Fn(f)166 -3501 y Fk(if)41 b Fm(\()p Fi(is)p 359 3501 V 31 w(el)t(liptic)l(al)16 -b Fm(\()e(\)\))42 b Fk(return)33 b Fm(\(2)18 b Fn(\003)g -Fm(\()p Fi(get)p 1445 3501 V 31 w(p)l(oint)12 b Fm(\()p -Fi(numb)l(er)p 1967 3501 V 31 w(of)p 2065 3501 V 31 w(p)l(oints)f -Fe(=)p Fm(4)o(\))19 b Fn(\000)f Fi(get)p 2642 3501 V -31 w(c)l(enter)12 b Fm(\()i(\)\))p Fe(:)p Fi(magnitude)e -Fm(\()i(\)\);)166 3601 y Fk(else)45 b(return)33 b Ff(INVALID_REAL)o -Fm(;)83 3700 y Fn(g)0 3899 y Fk(1151.)94 b(Non-const)31 -b(v)m(ersion.)0 4024 y Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j -Fm(functions)36 b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4124 y Fk(real)32 b Fi(get)p 380 4124 V 31 w(axis)p 551 -4124 V 31 w(v)13 b Fm(\()h(\);)0 4323 y Fk(1152.)0 4447 -y Fn(h)g Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4547 y Fk(real)32 -b(Ellipse)11 b Fm(::)d Fi(get)p 724 4547 V 31 w(axis)p -895 4547 V 31 w(v)14 b Fm(\()g(\))83 4647 y Fn(f)166 -4746 y Fk(if)41 b Fm(\()p Fi(is)p 359 4746 V 31 w(el)t(liptic)l(al)16 +y Fn(g)0 985 y Fk(1152.)94 b(Get)32 b(axes.)p 0 1061 +1779 4 v 1874 1094 a(Log)p 2122 1061 V 83 1234 a Fm([)p +Fh(LDF)25 b(2003.07.20.)p Fm(])75 b(Rewrote)40 b(the)i +Fk(const)k Fm(v)n(ersions)39 b(of)i(the)g(functions)h(in)f(this)h +(section,)i(and)d(added)g(non-)p Fk(const)0 1334 y Fm(v)n(ersions.)34 +b(All)27 b(of)e(them)i(no)n(w)e(c)n(hec)n(k)g(whether)h +Fn(\003)o Fi(this)37 b Fm(is)26 b(still)g(elliptical)g(using)f +Fi(is)p 2557 1334 26 4 v 31 w(el)t(lipse)13 b Fm(\()h(\).)37 +b(If)26 b(it)g(is,)g(the)g(v)-5 b(alue)26 b Fi(axis)p +3723 1334 V 31 w(v)39 b Fm(or)0 1434 y Fi(axis)p 145 +1434 V 31 w(h)j Fm(should)31 b(ha)n(v)n(e)f(is)g(recalculated,)h(and)g +(this)g(v)-5 b(alue)31 b(is)g(returned.)47 b(In)31 b(the)g(non-)p +Fk(const)36 b Fm(v)n(ersions,)30 b Fi(axis)p 3463 1434 +V 31 w(v)44 b Fm(or)30 b Fi(axis)p 3821 1434 V 31 w(h)0 +1533 y Fm(is)f(reset)g(to)g(the)h(new)f(v)-5 b(alue.)42 +b(If)30 b Fn(\003)o Fi(this)41 b Fm(is)29 b(no)g(longer)f(elliptical,)i +(the)g(function)g(returns)e Ff(INVALID_REAL)p Fm(,)i(and)f +Fi(axis)p 3718 1533 V 31 w(h)40 b Fm(or)0 1633 y Fi(axis)p +145 1633 V 31 w(v)h Fm(is)27 b(set)h(to)g Ff(INVALID_REAL)f +Fm(in)g(the)h(non-)p Fk(const)k Fm(v)n(ersions.)83 1733 +y([)p Fh(LDF)25 b(2003.07.20.)p Fm(])53 b Fi(axis)p 876 +1733 V 31 w(h)31 b Fm(and)19 b Fi(axis)p 1273 1733 V +31 w(v)33 b Fm(are)19 b(up)r(dated)h(b)n(y)g(the)g(transformation)e +(functions,)j(and)f(these)f(are)g(presumably)0 1832 y(the)34 +b(only)f(ones)g(that)h(could)g(cause)f(an)g Fk(Ellipse)j +Fm(to)e(b)r(ecome)g(non-elliptical.)54 b(So,)35 b(c)n(hec)n(king)e(and) +g(recalculating)g(them)0 1932 y(here)27 b(is)h(probably)e(redundan)n +(t.)37 b(Ho)n(w)n(ev)n(er,)25 b(this)j(ma)n(y)f(c)n(hange,)f(so)h(it's) +h(safer)f(to)g(do)h(this)g(here.)83 2031 y([)p Fh(LDF)d(2003.07.25.)p +Fm(])55 b(BUG)22 b(FIX:)h Fi(axis)p 1278 2031 V 31 w(h)33 +b Fm(and)21 b Fi(axis)p 1679 2031 V 31 w(v)36 b Fm(w)n(ere)20 +b(to)r(o)i(small)f(b)n(y)h(half.)35 b(No)n(w)21 b(m)n(ultiplying)h(b)n +(y)g(2)f(in)h(all)g(v)n(ersions)0 2131 y(of)28 b Fi(get)p +204 2131 V 30 w(axis)p 374 2131 V 31 w(h)11 b Fm(\()j(\))28 +b(and)g Fi(get)p 830 2131 V 30 w(axis)p 1000 2131 V 31 +w(v)13 b Fm(\()h(\).)p 0 2223 3900 4 v 0 2455 a Fk(1153.)94 +b(Get)32 b(v)m(ertical)g(axis.)0 2654 y(1154.)94 b(const)32 +b(v)m(ersion.)0 2779 y Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2878 y Fk(real)32 b Fi(get)p 380 2878 26 4 v 31 w(axis)p +551 2878 V 31 w(v)13 b Fm(\()h(\))28 b Fk(const)5 b Fm(;)0 +3077 y Fk(1155.)0 3202 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3302 y Fk(real)32 b(Ellipse)11 b Fm(::)d Fi(get)p 724 +3302 V 31 w(axis)p 895 3302 V 31 w(v)14 b Fm(\()g(\))28 +b Fk(const)83 3401 y Fn(f)166 3501 y Fk(if)41 b Fm(\()p +Fi(is)p 359 3501 V 31 w(el)t(liptic)l(al)16 b Fm(\()e(\)\))42 +b Fk(return)33 b Fm(\(2)18 b Fn(\003)g Fm(\()p Fi(get)p +1445 3501 V 31 w(p)l(oint)12 b Fm(\()p Fi(numb)l(er)p +1967 3501 V 31 w(of)p 2065 3501 V 31 w(p)l(oints)f Fe(=)p +Fm(4)o(\))19 b Fn(\000)f Fi(get)p 2642 3501 V 31 w(c)l(enter)12 +b Fm(\()i(\)\))p Fe(:)p Fi(magnitude)e Fm(\()i(\)\);)166 +3601 y Fk(else)45 b(return)33 b Ff(INVALID_REAL)o Fm(;)83 +3700 y Fn(g)0 3899 y Fk(1156.)94 b(Non-const)31 b(v)m(ersion.)0 +4024 y Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 +b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4124 y Fk(real)32 +b Fi(get)p 380 4124 V 31 w(axis)p 551 4124 V 31 w(v)13 +b Fm(\()h(\);)0 4323 y Fk(1157.)0 4447 y Fn(h)g Fm(De\014ne)28 +b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 4547 y Fk(real)32 b(Ellipse)11 b +Fm(::)d Fi(get)p 724 4547 V 31 w(axis)p 895 4547 V 31 +w(v)14 b Fm(\()g(\))83 4647 y Fn(f)166 4746 y Fk(if)41 +b Fm(\()p Fi(is)p 359 4746 V 31 w(el)t(liptic)l(al)16 b Fm(\()e(\)\))42 b Fi(axis)p 999 4746 V 31 w(v)36 b Fm(=)23 b(\(\()p Fi(get)p 1360 4746 V 31 w(p)l(oint)12 b Fm(\()p Fi(numb)l(er)p 1882 4746 V 31 w(of)p 1980 4746 @@ -28329,17 +28350,17 @@ 4846 y Fk(else)45 b Fi(axis)p 509 4846 V 31 w(v)36 b Fm(=)23 b Ff(INVALID_REAL)o Fm(;)166 4945 y Fk(return)33 b Fi(axis)p 609 4945 V 31 w(v)13 b Fm(;)83 5045 y Fn(g)0 -5244 y Fk(1153.)94 b(Get)32 b(horizon)m(tal)g(axis.)p +5244 y Fk(1158.)94 b(Get)32 b(horizon)m(tal)g(axis.)p eop end -%%Page: 322 322 -TeXDict begin 322 321 bop 0 83 a Fm(322)140 b Fk(CONST)23 -b Fl(VERSION)2220 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1154)0 -263 y Fk(1154.)94 b(const)32 b(v)m(ersion.)0 388 y Fn(h)14 -b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 b Fl(1101)15 +%%Page: 326 326 +TeXDict begin 326 325 bop 0 83 a Fm(326)140 b Fk(CONST)23 +b Fl(VERSION)2220 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1159)0 +263 y Fk(1159.)94 b(const)32 b(v)m(ersion.)0 388 y Fn(h)14 +b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(real)32 b Fi(get)p 380 487 26 4 v 31 w(axis)p 551 487 V 31 w(h)11 b Fm(\()j(\))28 -b Fk(const)5 b Fm(;)0 686 y Fk(1155.)0 811 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 +b Fk(const)5 b Fm(;)0 686 y Fk(1160.)0 811 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 911 y Fk(real)32 b(Ellipse)11 b Fm(::)d Fi(get)p 724 911 V 31 w(axis)p 895 911 V 31 w(h)j Fm(\()j(\))28 b Fk(const)83 1010 y Fn(f)166 1110 @@ -28349,12 +28370,12 @@ Fi(get)p 1860 1110 V 31 w(c)l(enter)12 b Fm(\()i(\)\))p Fe(:)p Fi(magnitude)e Fm(\()i(\))19 b Fn(\003)f Fm(2)o(\);)166 1209 y Fk(else)45 b(return)33 b Ff(INVALID_REAL)o Fm(;)83 -1309 y Fn(g)0 1508 y Fk(1156.)94 b(Non-const)31 b(v)m(ersion.)0 +1309 y Fn(g)0 1508 y Fk(1161.)94 b(Non-const)31 b(v)m(ersion.)0 1633 y Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1733 y Fk(real)32 +b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1733 y Fk(real)32 b Fi(get)p 380 1733 V 31 w(axis)p 551 1733 V 31 w(h)11 -b Fm(\()j(\);)0 1932 y Fk(1157.)0 2056 y Fn(h)g Fm(De\014ne)28 -b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 b Fn(i)23 +b Fm(\()j(\);)0 1932 y Fk(1162.)0 2056 y Fn(h)g Fm(De\014ne)28 +b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2156 y Fk(real)32 b(Ellipse)11 b Fm(::)d Fi(get)p 724 2156 V 31 w(axis)p 895 2156 V 31 w(h)j Fm(\()j(\))83 2256 y Fn(f)166 2355 y Fk(if)41 b @@ -28366,7 +28387,7 @@ Fn(\003)f Fm(2;)166 2455 y Fk(else)45 b Fi(axis)p 509 2455 V 31 w(h)34 b Fm(=)23 b Ff(INVALID_REAL)o Fm(;)166 2554 y Fk(return)33 b Fi(axis)p 609 2554 V 31 w(h)11 -b Fm(;)83 2654 y Fn(g)0 2853 y Fk(1158.)94 b(Angle)32 +b Fm(;)83 2654 y Fn(g)0 2853 y Fk(1163.)94 b(Angle)32 b(p)s(oin)m(t.)94 b Fi(angle)p 1119 2853 V 31 w(p)l(oint)13 b Fm(\()h(\))28 b(returns)g(a)g(p)r(oin)n(t)g(on)g(the)g(ellipse)g(giv) n(en)g(an)f(angle.)38 b(E\013ectiv)n(ely)-7 b(,)28 b @@ -28377,48 +28398,46 @@ (returned.)83 3152 y([)p Fh(LDF)e(2003.07.27.)p Fm(])61 b(TO)27 b(DO:)h(T)-7 b(ry)27 b(to)h(get)f(the)h(rotation)e(to)i(alw)n (a)n(ys)e(go)g(in)i(the)g(direction)f(I)h(w)n(ould)f(lik)n(e.)p -0 3256 1643 4 v 1738 3289 a Fk(Begin)k(Log)p 2257 3256 -V 83 3429 a Fm([)p Fh(LDF)25 b(2003.07.01.)p Fm(])65 -b(BUG)31 b(FIX:)h(No)n(w)f(returning)f Fi(bpp)11 b Fe(:)p -Fi(\014rst)g Fe(:)p Fi(pt)43 b Fm(if)32 b(it's)f(not)h(equal)e(to)h -Ff(INVALID_POINT)o Fm(.)48 b(Otherwise,)0 3529 y Fi(bpp)11 -b Fe(:)p Fi(se)l(c)l(ond)i Fe(:)p Fi(pt)45 b Fm(is)32 -b(returned.)51 b(The)33 b(latter)f(ma)n(y)g(b)r(e)h(a)f(v)-5 -b(alid)33 b Fk(P)m(oin)m(t)5 b Fm(,)34 b(or)d Ff(INVALID_POINT)o -Fm(.)52 b(Before,)33 b Ff(INVALID_POINT)0 3629 y Fm(w)n(as)26 -b(returned)h(if)h Fi(bpp)11 b Fe(:)p Fi(\014rst)g Fe(:b)27 -b Fm(and)g Fi(bpp)11 b Fe(:)p Fi(se)l(c)l(ond)i Fe(:b)27 -b Fm(w)n(ere)g Fi(false)11 b Fm(,)28 b(but)g(this)f(is)h(the)f(case,)g -(if)h(the)f(in)n(tersection)g(p)r(oin)n(ts)g(didn't)0 +0 3255 1779 4 v 1874 3288 a Fk(Log)p 2122 3255 V 83 3429 +a Fm([)p Fh(LDF)e(2003.07.01.)p Fm(])65 b(BUG)31 b(FIX:)h(No)n(w)f +(returning)f Fi(bpp)11 b Fe(:)p Fi(\014rst)g Fe(:)p Fi(pt)43 +b Fm(if)32 b(it's)f(not)h(equal)e(to)h Ff(INVALID_POINT)o +Fm(.)48 b(Otherwise,)0 3528 y Fi(bpp)11 b Fe(:)p Fi(se)l(c)l(ond)i +Fe(:)p Fi(pt)45 b Fm(is)32 b(returned.)51 b(The)33 b(latter)f(ma)n(y)g +(b)r(e)h(a)f(v)-5 b(alid)33 b Fk(P)m(oin)m(t)5 b Fm(,)34 +b(or)d Ff(INVALID_POINT)o Fm(.)52 b(Before,)33 b Ff(INVALID_POINT)0 +3628 y Fm(w)n(as)26 b(returned)h(if)h Fi(bpp)11 b Fe(:)p +Fi(\014rst)g Fe(:b)27 b Fm(and)g Fi(bpp)11 b Fe(:)p Fi(se)l(c)l(ond)i +Fe(:b)27 b Fm(w)n(ere)g Fi(false)11 b Fm(,)28 b(but)g(this)f(is)h(the)f +(case,)g(if)h(the)f(in)n(tersection)g(p)r(oin)n(ts)g(didn't)0 3728 y(lie)h(on)f(the)h(line)g(segmen)n(t)f(b)r(et)n(w)n(een)g -Fi(c)l(enter)41 b Fm(and)27 b Fi(pt0)16 b Fm(.)83 3828 +Fi(c)l(enter)41 b Fm(and)27 b Fi(pt0)16 b Fm(.)83 3827 y(BUG)30 b(FIX:)g(No)n(w)f(c)n(hec)n(king)f(to)h(mak)n(e)g(sure)f(that) i(the)g(in)n(tersection)e(p)r(oin)n(t)i(lies)f(in)h(the)g(prop)r(er)e -(direction.)42 b(No)n(w)29 b(that)0 3928 y(the)f(in)n(tersection)f(p)r +(direction.)42 b(No)n(w)29 b(that)0 3927 y(the)f(in)n(tersection)f(p)r (oin)n(t)h(do)r(esn't)f(ha)n(v)n(e)g(to)g(b)r(e)h(on)f(the)h(line)g (segmen)n(t,)f(it's)h(necessary)e(to)h(c)n(hec)n(k)g(this.)83 -4027 y([)p Fh(LDF)e(2003.07.20.)p Fm(])57 b(No)n(w)23 -b(using)g Fi(get)p 1242 4027 26 4 v 31 w(axis)p 1413 -4027 V 31 w(v)13 b Fm(\()h(\))24 b(and)f Fi(get)p 1858 -4027 V 31 w(axis)p 2029 4027 V 31 w(h)11 b Fm(\()j(\),)25 -b(instead)e(of)g(accessing)f Fi(axis)p 3103 4027 V 31 -w(h)35 b Fm(and)23 b Fi(axis)p 3508 4027 V 31 w(v)37 -b Fm(directly)-7 b(.)83 4127 y([)p Fh(LDF)25 b(2003.07.27.)p +4026 y([)p Fh(LDF)e(2003.07.20.)p Fm(])57 b(No)n(w)23 +b(using)g Fi(get)p 1242 4026 26 4 v 31 w(axis)p 1413 +4026 V 31 w(v)13 b Fm(\()h(\))24 b(and)f Fi(get)p 1858 +4026 V 31 w(axis)p 2029 4026 V 31 w(h)11 b Fm(\()j(\),)25 +b(instead)e(of)g(accessing)f Fi(axis)p 3103 4026 V 31 +w(h)35 b Fm(and)23 b Fi(axis)p 3508 4026 V 31 w(v)37 +b Fm(directly)-7 b(.)83 4126 y([)p Fh(LDF)25 b(2003.07.27.)p Fm(])60 b(Made)26 b Fk(const)5 b Fm(.)37 b(Made)26 b Fi(angle)38 b Fm(argumen)n(t)26 b Fk(const)t Fm(.)37 -b(No)n(w)26 b(using)g Fi(get)p 2865 4127 V 31 w(c)l(enter)13 +b(No)n(w)26 b(using)g Fi(get)p 2865 4126 V 31 w(c)l(enter)13 b Fm(\()h(\))27 b(instead)f(of)h Fi(c)l(enter)12 b Fm(.)p -0 4219 1678 4 v 1773 4251 a Fk(End)32 b(Log)p 2222 4219 -V 0 4376 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4475 y Fk(P)m(oin)m(t)33 -b Fi(angle)p 531 4475 26 4 v 31 w(p)l(oint)13 b Fm(\()p -Fk(const)32 b(real)h Fi(angle)11 b Fm(\))28 b Fk(const)5 -b Fm(;)p eop end -%%Page: 323 323 -TeXDict begin 323 322 bop 0 83 a Fn(x)p Fm(1159)139 b -Fl(3DLDFPR)n(G)2396 b(ANGLE)23 b(POINT)141 b Fm(323)0 -263 y Fk(1159.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +0 4218 3900 4 v 0 4375 a Fn(h)i Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4475 y Fk(P)m(oin)m(t)33 b Fi(angle)p 531 4475 26 4 v +31 w(p)l(oint)13 b Fm(\()p Fk(const)32 b(real)h Fi(angle)11 +b Fm(\))28 b Fk(const)5 b Fm(;)p eop end +%%Page: 327 327 +TeXDict begin 327 326 bop 0 83 a Fn(x)p Fm(1164)139 b +Fl(3DLDFPR)n(G)2396 b(ANGLE)23 b(POINT)141 b Fm(327)0 +263 y Fk(1164.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(P)m(oin)m(t)33 b(Ellipse)11 b Fm(::)d Fi(angle)p 875 487 26 4 v 31 w(p)l(oint)13 b Fm(\()p Fk(const)33 b(real)f Fi(angle)11 b Fm(\))28 b Fk(const)83 587 y Fn(f)166 @@ -28465,24 +28484,24 @@ Fi(bpp)11 b Fe(:)p Fi(\014rst)g Fe(:)p Fi(pt)h Fm(;)166 2754 y Fn(g)166 2853 y Fk(return)33 b Fi(bpp)11 b Fe(:)p Fi(se)l(c)l(ond)i Fe(:)p Fi(pt)f Fm(;)83 2953 y Fn(g)0 -3152 y Fk(1160.)94 b(Equalit)m(y)-8 b(.)95 b Fm(TO)38 +3152 y Fk(1165.)94 b(Equalit)m(y)-8 b(.)95 b Fm(TO)38 b(DO:)h(I'll)g(need)f(to)g(de\014ne)h Fk(P)m(ath)14 b Fm(::)9 b Fk(op)s(erator)c Fn(\021)o Fm(\()14 b(\))39 b(in)g(order)e(to)h(b)r(e)h(able)f(to)g(de\014ne)h(this)0 3252 y(function.)0 3376 y Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j -Fm(functions)36 b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)0 +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)0 3476 y Fm(#)p Fk(if)41 b Fm(0)83 3576 y Fk(virtual)33 b(b)s(o)s(ol)e(op)s(erator)t Fn(\021)p Fm(\()p Fk(const)i(Ellipse)d Fm(&)p Fe(e)o Fm(\);)0 3675 y(#)p Fk(endif)p eop end -%%Page: 324 324 -TeXDict begin 324 323 bop 0 83 a Fm(324)140 b Fl(EQUALITY)2521 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1161)0 263 y Fk(1161.)0 +%%Page: 328 328 +TeXDict begin 328 327 bop 0 83 a Fm(328)140 b Fl(EQUALITY)2521 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1166)0 263 y Fk(1166.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)0 487 y Fm(#)p +b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)0 487 y Fm(#)p Fk(if)41 b Fm(0)83 587 y Fk(virtual)33 b(b)s(o)s(ol)e(Ellipse)10 b Fm(::)f Fk(op)s(erator)c Fn(\021)o Fm(\()p Fk(const)33 b(Ellipse)d Fm(&)p Fe(e)o Fm(\))83 686 y Fn(f)14 b(g)0 -786 y Fm(#)p Fk(endif)0 985 y(1162.)94 b(Lo)s(cation)32 +786 y Fm(#)p Fk(endif)0 985 y(1167.)94 b(Lo)s(cation)32 b(of)g(a)g(p)s(oin)m(t.)94 b Fm([)p Fh(LDF)26 b(2003.07.25.)p Fm(])60 b(This)28 b(function)g(o)n(v)n(erloads)0 1085 y Fk(Reg)p 168 1085 29 5 v 39 w(Cl)p 303 1085 V 40 w(Plane)p @@ -28518,19 +28537,18 @@ Fk(Ellipse)r Fm(.)0 2181 y(-2)198 b Fe(P)40 b Fm(is)27 b(not)h(in)g(the)g(same)f(plane)g(as)g(the)h Fk(Ellipse)s Fm(.)0 2330 y(-3)198 b(The)28 b Fk(Ellipse)i Fm(is)e(non-elliptical.)p -0 2479 1643 4 v 1738 2512 a Fk(Begin)j(Log)p 2257 2479 -V 83 2653 a Fm([)p Fh(LDF)25 b(2003.07.25.)p Fm(])61 -b(Added)28 b(this)g(function.)p 0 2745 1678 4 v 1773 -2777 a Fk(End)k(Log)p 2222 2745 V 0 2902 a Fn(h)14 b -Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 b Fl(1101)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3001 y Fk(virtual)33 b(signed)e(short)h -Fi(lo)l(c)l(ation)12 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)f -Fm(&)p Fe(p)p Fm(\))c Fk(const)5 b Fm(;)p eop end -%%Page: 325 325 -TeXDict begin 325 324 bop 0 83 a Fn(x)p Fm(1163)139 b +0 2479 1779 4 v 1874 2511 a Fk(Log)p 2122 2479 V 83 2652 +a Fm([)p Fh(LDF)d(2003.07.25.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 2744 3900 4 v 0 2901 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3001 y Fk(virtual)33 b(signed)e(short)h Fi(lo)l(c)l(ation)12 +b Fm(\()p Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fe(p)p Fm(\))c +Fk(const)5 b Fm(;)p eop end +%%Page: 329 329 +TeXDict begin 329 328 bop 0 83 a Fn(x)p Fm(1168)139 b Fl(3DLDFPR)n(G)2067 b(LOCA)-6 b(TION)23 b(OF)h(A)f(POINT)141 -b Fm(325)0 263 y Fk(1163.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 b Fn(i)23 +b Fm(329)0 263 y Fk(1168.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(signed)31 b(short)i(Ellipse)10 b Fm(::)e Fi(lo)l(c)l(ation)k Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)p Fe(p)o Fm(\))28 b Fk(const)83 587 y Fn(f)166 686 @@ -28589,25 +28607,24 @@ Fj( )p Ff(insid)o(e)p Fj( )p Ff(o)-7 b(f)p Fj( )p Ff(perimeter)p Fj( )p Ff(of)p Fj( )p Ff(|E)o(ll)o(i)h(pse|.\\n")q Fm(;)249 3551 y Fk(return)33 b Fm(1;)166 3650 y Fn(g)83 3750 y(g)0 -3949 y Fk(1164.)94 b(In)m(tersection)32 b(p)s(oin)m(ts.)0 -4148 y(1165.)94 b(P)m(oin)m(t)32 b(argumen)m(ts.)p 0 -4248 1643 4 v 1738 4280 a(Begin)f(Log)p 2257 4248 V 83 -4421 a Fm([)p Fh(LDF)25 b(2003.07.27.)p Fm(])61 b(Made)27 -b(the)h(argumen)n(ts)f Fk(const)32 b(P)m(oin)m(t)h Fm(&.)p -0 4513 1678 4 v 1773 4546 a Fk(End)f(Log)p 2222 4513 -V 0 4670 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4770 y Fk(virtual)33 -b(b)s(o)s(ol)p 581 4770 29 5 v 38 w(p)s(oin)m(t)p 837 -4770 V 40 w(pair)g Fi(interse)l(ction)p 1497 4770 26 +3949 y Fk(1169.)94 b(In)m(tersection)32 b(p)s(oin)m(ts.)0 +4148 y(1170.)94 b(P)m(oin)m(t)32 b(argumen)m(ts.)p 0 +4247 1779 4 v 1874 4280 a(Log)p 2122 4247 V 83 4420 a +Fm([)p Fh(LDF)25 b(2003.07.27.)p Fm(])61 b(Made)27 b(the)h(argumen)n +(ts)f Fk(const)32 b(P)m(oin)m(t)h Fm(&.)p 0 4512 3900 +4 v 0 4669 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 +b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4769 y Fk(virtual)33 +b(b)s(o)s(ol)p 581 4769 29 5 v 38 w(p)s(oin)m(t)p 837 +4769 V 40 w(pair)g Fi(interse)l(ction)p 1497 4769 26 4 v 30 w(p)l(oints)12 b Fm(\()p Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 326 326 -TeXDict begin 326 325 bop 0 83 a Fm(326)140 b Fk(POINT)24 -b Fl(AR)n(GUMENTS)2098 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1166)0 -263 y Fk(1166.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 330 330 +TeXDict begin 330 329 bop 0 83 a Fm(330)140 b Fk(POINT)24 +b Fl(AR)n(GUMENTS)2098 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1171)0 +263 y Fk(1171.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)p 269 487 29 5 v 38 w(p)s(oin)m(t)p 525 487 V 40 w(pair)33 b(Ellipse)11 b Fm(::)d Fi(interse)l(ction)p 1529 487 26 4 v 31 w(p)l(oints)j Fm(\()p Fk(const)33 @@ -28617,71 +28634,69 @@ 5 v 39 w(Cl)p 767 686 V 40 w(Plane)p 1042 686 V 40 w(Curv)m(e)14 b Fm(::)8 b Fi(interse)l(ction)p 1824 686 26 4 v 31 w(p)l(oints)j Fm(\()p Fi(c)l(enter)i Fe(;)h Fi(pt0)i Fe(;)e Fi(pt1)i -Fm(\);)83 786 y Fn(g)0 985 y Fk(1167.)94 b(P)m(ath)29 +Fm(\);)83 786 y Fn(g)0 985 y Fk(1172.)94 b(P)m(ath)29 b(argumen)m(t.)96 b Fm(This)24 b(function)h(just)g(c)n(hec)n(ks)e(to)h (b)r(e)h(sure)e(that)i Fk(P)m(ath)30 b Fe(p)25 b Fm(is)f(a)g(line,)h (extracts)e(the)i Fk(P)m(oin)m(ts)5 b Fm(,)0 1085 y(and)27 b(calls)g(the)h(v)n(ersion)e(with)j Fk(P)m(oin)m(t)j Fm(argumen)n(ts,)27 b(returning)g(the)h(latter's)f(return)g(v)-5 -b(alue.)p 0 1184 1643 4 v 1738 1217 a Fk(Begin)31 b(Log)p -2257 1184 V 83 1358 a Fm([)p Fh(LDF)25 b(2003.07.09.)p -Fm(])61 b(Made)27 b Fk(virtual)6 b Fm(.)83 1457 y([)p -Fh(LDF)25 b(2003.07.27.)p Fm(])61 b(Made)27 b(argumen)n(t)g -Fe(p)g Fm(a)h Fk(const)k(P)m(ath)i Fm(&)o(.)j(Changed,)27 -b(so)g(that)h Fi(is)p 2799 1457 26 4 v 31 w(line)l(ar)14 -b Fm(\()g(\))28 b(is)f(used,)h(and)0 1557 y Fi(get)p -109 1557 V 31 w(last)p 265 1557 V 30 w(p)l(oint)13 b -Fm(\()h(\))28 b(rather)e(than)i Fi(get)p 1141 1557 V -31 w(p)l(oint)12 b Fm(\(1\).)p 0 1649 1678 4 v 1773 1681 -a Fk(End)32 b(Log)p 2222 1649 V 0 1806 a Fn(h)14 b Fm(Declare)27 -b Fk(Ellipse)j Fm(functions)36 b Fl(1101)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 1905 y Fk(virtual)33 b(b)s(o)s(ol)p -581 1905 29 5 v 38 w(p)s(oin)m(t)p 837 1905 V 40 w(pair)g -Fi(interse)l(ction)p 1497 1905 26 4 v 30 w(p)l(oints)12 -b Fm(\()p Fk(const)32 b(P)m(ath)i Fm(&)p Fe(p)o Fm(\))28 -b Fk(const)5 b Fm(;)0 2105 y Fk(1168.)0 2229 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2329 y Fk(b)s(o)s(ol)p -269 2329 29 5 v 38 w(p)s(oin)m(t)p 525 2329 V 40 w(pair)33 -b(Ellipse)11 b Fm(::)d Fi(interse)l(ction)p 1529 2329 -26 4 v 31 w(p)l(oints)j Fm(\()p Fk(const)33 b(P)m(ath)g -Fm(&)p Fe(p)p Fm(\))28 b Fk(const)83 2429 y Fn(f)166 -2528 y Fk(if)41 b Fm(\()p Fn(:)p Fe(p)q(:)p Fi(is)p 480 -2528 V 31 w(line)l(ar)14 b Fm(\()g(\)\))42 b Fn(f)249 -2628 y Fi(c)l(err)57 b Fn(\034)44 b Ff("ERROR!)p Fj( )p -Ff(In)p Fj( )p Ff(Ellips)o(e:)o(:)-6 b(intersection_poi)o(nts)o(\()g -(const)p Fj( )p Ff(Path&\):\\n")41 b Fn(\034)415 2727 -y Ff("Path)p Fj( )p Ff(argument)p Fj( )p Ff(i)o(s)p Fj( )p -Ff(n)o(o)-6 b(n-linear.\\n")28 b Fn(\034)h Ff("Haven't)p +b(alue.)p 0 1184 1779 4 v 1874 1216 a Fk(Log)p 2122 1184 +V 83 1357 a Fm([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 +b(Made)27 b Fk(virtual)6 b Fm(.)83 1456 y([)p Fh(LDF)25 +b(2003.07.27.)p Fm(])61 b(Made)27 b(argumen)n(t)g Fe(p)g +Fm(a)h Fk(const)k(P)m(ath)i Fm(&)o(.)j(Changed,)27 b(so)g(that)h +Fi(is)p 2799 1456 26 4 v 31 w(line)l(ar)14 b Fm(\()g(\))28 +b(is)f(used,)h(and)0 1556 y Fi(get)p 109 1556 V 31 w(last)p +265 1556 V 30 w(p)l(oint)13 b Fm(\()h(\))28 b(rather)e(than)i +Fi(get)p 1141 1556 V 31 w(p)l(oint)12 b Fm(\(1\).)p 0 +1648 3900 4 v 0 1805 a Fn(h)i Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1905 y Fk(virtual)33 b(b)s(o)s(ol)p 581 1905 29 5 v 38 +w(p)s(oin)m(t)p 837 1905 V 40 w(pair)g Fi(interse)l(ction)p +1497 1905 26 4 v 30 w(p)l(oints)12 b Fm(\()p Fk(const)32 +b(P)m(ath)i Fm(&)p Fe(p)o Fm(\))28 b Fk(const)5 b Fm(;)0 +2104 y Fk(1173.)0 2229 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2328 y Fk(b)s(o)s(ol)p 269 2328 29 5 v 38 w(p)s(oin)m(t)p +525 2328 V 40 w(pair)33 b(Ellipse)11 b Fm(::)d Fi(interse)l(ction)p +1529 2328 26 4 v 31 w(p)l(oints)j Fm(\()p Fk(const)33 +b(P)m(ath)g Fm(&)p Fe(p)p Fm(\))28 b Fk(const)83 2428 +y Fn(f)166 2527 y Fk(if)41 b Fm(\()p Fn(:)p Fe(p)q(:)p +Fi(is)p 480 2527 V 31 w(line)l(ar)14 b Fm(\()g(\)\))42 +b Fn(f)249 2627 y Fi(c)l(err)57 b Fn(\034)44 b Ff("ERROR!)p +Fj( )p Ff(In)p Fj( )p Ff(Ellips)o(e:)o(:)-6 b(intersection_poi)o(nts)o +(\()g(const)p Fj( )p Ff(Path&\):\\n")41 b Fn(\034)415 +2727 y Ff("Path)p Fj( )p Ff(argument)p Fj( )p Ff(i)o(s)p +Fj( )p Ff(n)o(o)-6 b(n-linear.\\n")28 b Fn(\034)h Ff("Haven't)p Fj( )p Ff(programm)o(ed)o Fj( )-6 b Ff(this)p Fj( )p -Ff(case)p Fj( )p Ff(yet.\\n)o(")27 b Fn(\034)415 2827 +Ff(case)p Fj( )p Ff(yet.\\n)o(")27 b Fn(\034)415 2826 y Ff("Returning)p Fj( )p Ff(INVAL)o(ID_)o(B)-6 b(OOL_POINT_PAIR.")21 b Fn(\034)i Fi(end)t(l)36 b Fn(\034)23 b Fi(end)t(l)37 -b Fn(\034)23 b Fi(\015ush)11 b Fm(;)249 2927 y Fk(return)33 +b Fn(\034)23 b Fi(\015ush)11 b Fm(;)249 2926 y Fk(return)33 b Ff(INVALID_BOOL_POIN)o(T_)o(PA)o(IR)n Fm(;)166 3026 -y Fn(g)166 3126 y Fk(return)g Fi(interse)l(ction)p 890 -3126 V 31 w(p)l(oints)11 b Fm(\()p Fe(p:)p Fi(get)p 1347 -3126 V 31 w(p)l(oint)h Fm(\(0\))p Fe(;)i(p:)p Fi(get)p -1882 3126 V 31 w(last)p 2038 3126 V 30 w(p)l(oint)f Fm(\()h(\)\);)83 -3226 y Fn(g)0 3425 y Fk(1169.)94 b(Ellipse)30 b(argumen)m(t.)95 +y Fn(g)166 3125 y Fk(return)g Fi(interse)l(ction)p 890 +3125 V 31 w(p)l(oints)11 b Fm(\()p Fe(p:)p Fi(get)p 1347 +3125 V 31 w(p)l(oint)h Fm(\(0\))p Fe(;)i(p:)p Fi(get)p +1882 3125 V 31 w(last)p 2038 3125 V 30 w(p)l(oint)f Fm(\()h(\)\);)83 +3225 y Fn(g)0 3424 y Fk(1174.)94 b(Ellipse)30 b(argumen)m(t.)95 b Fm(TO)27 b(DO:)h(Read)f(through)g(and)g(explain.)37 b([)p Fh(LDF)25 b(2002.11.06.)p Fm(])83 3524 y(TO)i(DO:)h([)p Fh(LDF)d(2003.07.20.)p Fm(])61 b(The)28 b(follo)n(wing)e(co)r(de)i -(found)g(only)f(one)g(in)n(tersection:)0 3649 y(#)p Fk(if)41 -b Fm(0)83 3749 y Fk(Ellipse)30 b Fe(t)p Fm(\()p Fi(origin)12 -b Fe(;)i Fm(5)p Fe(;)g Fm(4)o Fe(;)g Fm(90)o(\);)83 3848 +(found)g(only)f(one)g(in)n(tersection:)0 3648 y(#)p Fk(if)41 +b Fm(0)83 3748 y Fk(Ellipse)30 b Fe(t)p Fm(\()p Fi(origin)12 +b Fe(;)i Fm(5)p Fe(;)g Fm(4)o Fe(;)g Fm(90)o(\);)83 3847 y Fk(Circle)32 b Fe(c)p Fm(\()p Fi(origin)12 b Fe(;)i -Fm(3)o Fe(;)g Fm(90)o(\);)83 3973 y Fe(c:)p Fi(shift)f +Fm(3)o Fe(;)g Fm(90)o(\);)83 3972 y Fe(c:)p Fi(shift)f Fm(\(3\);)83 4072 y Fe(c:)p Fi(r)l(otate)d Fm(\(0)p Fe(;)k -Fm(0)p Fe(;)g Fm(30)o(\);)83 4197 y Fk(b)s(o)s(ol)p 269 -4197 29 5 v 38 w(p)s(oin)m(t)p 525 4197 V 40 w(quadruple)33 +Fm(0)p Fe(;)g Fm(30)o(\);)83 4196 y Fk(b)s(o)s(ol)p 269 +4196 29 5 v 38 w(p)s(oin)m(t)p 525 4196 V 40 w(quadruple)33 b Fi(bp)l(q)i Fm(=)23 b Fe(t:)p Fi(interse)l(ction)p -1728 4197 26 4 v 31 w(p)l(oints)11 b Fm(\()p Fe(c)p Fm(\);)0 -4297 y(#)p Fk(endif)p eop end -%%Page: 327 327 -TeXDict begin 327 326 bop 0 83 a Fn(x)p Fm(1170)139 b +1728 4196 26 4 v 31 w(p)l(oints)11 b Fm(\()p Fe(c)p Fm(\);)0 +4296 y(#)p Fk(endif)p eop end +%%Page: 331 331 +TeXDict begin 331 330 bop 0 83 a Fn(x)p Fm(1175)139 b Fl(3DLDFPR)n(G)2059 b Fk(ELLIPSE)24 b Fl(AR)n(GUMENT)140 -b Fm(327)0 263 y Fk(1170.)94 b Fm([)p Fh(LDF)25 b(2003.07.20.)p +b Fm(331)0 263 y Fk(1175.)94 b Fm([)p Fh(LDF)25 b(2003.07.20.)p Fm(])57 b(When)24 b Fe(c)f Fm(w)n(as)g(rotated)f(b)n(y)i(15)1900 233 y Fd(\016)1960 263 y Fm(or)f(45)2142 233 y Fd(\016)2179 263 y Fm(,)h Fi(interse)l(ction)p 2652 263 26 4 v 31 @@ -28702,90 +28717,89 @@ (tersection)e(line)h(of)g(the)g(planes)g(is)f(found.)37 b(Then,)28 b(the)0 960 y(in)n(tersection)f(p)r(oin)n(ts)g(of)h(the)g (this)g(line)g(with)g(the)g Fk(Ellipses)r Fm(,)g(if)g(they)f(exist.)p -0 1060 1643 4 v 1738 1092 a Fk(Begin)k(Log)p 2257 1060 -V 83 1233 a Fm([)p Fh(LDF)25 b(2002.04.12.)p Fm(])56 -b(Actually)-7 b(,)23 b(it)g(lo)r(oks)f(as)f(if)i(the)g(equations)e(Dr.) -h(Sc)n(h)n(w)n(ardmann)f(ga)n(v)n(e)g(me)h(w)n(on't)g(do)g(the)h(tric)n -(k.)34 b(They)0 1333 y(assume)29 b(b)r(oth)g(ellipses)g(are)g(cen)n -(tered)f(ab)r(out)i(the)f(origin.)41 b(When)30 b(I)g(tried)f(to)g(ha)n -(v)n(e)f(Mathematica)h(solv)n(e)f(the)i(equations)0 1432 -y(for)f Fe(x)176 1402 y Fg(2)214 1432 y Fe(=a)300 1402 -y Fg(2)356 1432 y Fm(+)20 b Fe(y)485 1402 y Fg(2)522 -1432 y Fe(=b)600 1402 y Fg(2)663 1432 y Fm(=)26 b(\()p -Fe(x)20 b Fn(\000)g Fe(m)p Fm(\))1043 1402 y Fg(2)1080 -1432 y Fe(=c)1158 1402 y Fg(2)1215 1432 y Fm(+)f(\()p -Fe(y)k Fn(\000)c Fe(n)p Fm(\))1561 1402 y Fg(2)1599 1432 -y Fe(=d)1684 1402 y Fg(2)1721 1432 y Fm(,)30 b(Mathematica)f(pro)r -(duced)g(solutions)g(that)h(to)r(ok)f(up)h(o)n(v)n(er)e(35,000)0 -1532 y(lines)g(of)f(text!)83 1632 y([)p Fh(LDF)e(2002.04.12.)p +0 1059 1779 4 v 1874 1092 a Fk(Log)p 2122 1059 V 83 1232 +a Fm([)p Fh(LDF)e(2002.04.12.)p Fm(])56 b(Actually)-7 +b(,)23 b(it)g(lo)r(oks)f(as)f(if)i(the)g(equations)e(Dr.)h(Sc)n(h)n(w)n +(ardmann)f(ga)n(v)n(e)g(me)h(w)n(on't)g(do)g(the)h(tric)n(k.)34 +b(They)0 1332 y(assume)29 b(b)r(oth)g(ellipses)g(are)g(cen)n(tered)f +(ab)r(out)i(the)f(origin.)41 b(When)30 b(I)g(tried)f(to)g(ha)n(v)n(e)f +(Mathematica)h(solv)n(e)f(the)i(equations)0 1432 y(for)f +Fe(x)176 1401 y Fg(2)214 1432 y Fe(=a)300 1401 y Fg(2)356 +1432 y Fm(+)20 b Fe(y)485 1401 y Fg(2)522 1432 y Fe(=b)600 +1401 y Fg(2)663 1432 y Fm(=)26 b(\()p Fe(x)20 b Fn(\000)g +Fe(m)p Fm(\))1043 1401 y Fg(2)1080 1432 y Fe(=c)1158 +1401 y Fg(2)1215 1432 y Fm(+)f(\()p Fe(y)k Fn(\000)c +Fe(n)p Fm(\))1561 1401 y Fg(2)1599 1432 y Fe(=d)1684 +1401 y Fg(2)1721 1432 y Fm(,)30 b(Mathematica)f(pro)r(duced)g +(solutions)g(that)h(to)r(ok)f(up)h(o)n(v)n(er)e(35,000)0 +1531 y(lines)g(of)f(text!)83 1631 y([)p Fh(LDF)e(2002.04.12.)p Fm(])63 b(I'v)n(e)28 b(rewritten)h(the)h(other)e(cases)g(\(parallel,)h (p)r(erp)r(endicular,)g(and)g(sk)n(ew\))g(in)h(this)f(function)h(com-)0 -1731 y(pletely)-7 b(,)24 b(and)f(it)g(seems)g(lik)n(e)f(it)i(w)n(asn't) +1730 y(pletely)-7 b(,)24 b(and)f(it)g(seems)g(lik)n(e)f(it)i(w)n(asn't) e(really)g(w)n(orth)g(the)h(e\013ort.)35 b(The)23 b(new)g(v)n(ersion)f (do)r(es)g(ho)n(w)n(ev)n(er)f(mak)n(e)h(use)h(of)g Fk(Planes)0 -1831 y Fm(and)28 b Fk(Lines)5 b Fm(,)29 b(whic)n(h)f(is)h(not)f(a)g +1830 y Fm(and)28 b Fk(Lines)5 b Fm(,)29 b(whic)n(h)f(is)h(not)f(a)g (bad)h(thing,)g(and)f(it)h(c)n(hec)n(ks)f(whether)g(the)h(in)n (tersection)f Fk(P)m(oin)m(ts)33 b Fm(are)28 b(on)g(the)h Fk(Ellipse)s Fm(,)g(so)0 1930 y(it)f(w)n(asn't)f(a)g(total)h(loss.)83 -2030 y([)p Fh(LDF)d(2002.04.12.)p Fm(])59 b(I'v)n(e)25 +2029 y([)p Fh(LDF)d(2002.04.12.)p Fm(])59 b(I'v)n(e)25 b(written)g(to)g(Dr.)g(Sc)n(h)n(w)n(ardmann)f(and)h(ask)n(ed)f(him)i (ab)r(out)f(this)g(problem.)36 b(It)25 b(ma)n(y)g(just)h(b)r(e)f(m)n(y) -0 2130 y(ignorance,)g(or)h(p)r(erhaps)g(I'v)n(e)g(o)n(v)n(erlo)r(ok)n +0 2129 y(ignorance,)g(or)h(p)r(erhaps)g(I'v)n(e)g(o)n(v)n(erlo)r(ok)n (ed)e(something)i(simple.)37 b(I'm)27 b(not)g(to)r(o)f(hop)r(eful,)i (ho)n(w)n(ev)n(er,)d(so)h(I'll)h(probably)e(ha)n(v)n(e)0 2229 y(to)i(implemen)n(t)i(the)f(n)n(umerical)e(solution)h(I'd)h -(started,)f(after)h(all.)83 2329 y([)p Fh(LDF)d(2002.04.12.)p +(started,)f(after)h(all.)83 2328 y([)p Fh(LDF)d(2002.04.12.)p Fm(])64 b(Remo)n(v)n(ed)29 b(old)h(de\014nition.)45 b(Dr.)31 b(Ulric)n(h)f(Sc)n(h)n(w)n(ardmann)e(of)i(the)h(Gesellsc)n(haft)f(f)r -(\177)-44 b(ur)30 b(wissensc)n(haft-)0 2429 y(lic)n(he)i(Datenv)n +(\177)-44 b(ur)30 b(wissensc)n(haft-)0 2428 y(lic)n(he)i(Datenv)n (erarb)r(eitung,)f(G\177)-42 b(ottingen,)33 b(German)n(y)d(sho)n(w)n (ed)h(me)h(ho)n(w)f(to)g(use)h(Mathematica's)f(\\Solv)n(e")f(command)h -(to)0 2528 y(solv)n(e)c(the)h(systems)f(of)h(equations)f(that)h +(to)0 2527 y(solv)n(e)c(the)h(systems)f(of)h(equations)f(that)h (describ)r(e)g(the)g(in)n(tersections)f(b)r(et)n(w)n(een)g(t)n(w)n(o)g (ellipses.)38 b(Therefore,)26 b(I'v)n(e)i(remo)n(v)n(ed)0 -2628 y(the)g(old)f(de\014nition)h(of)g(this)g(function,)g(whic)n(h)g(w) +2627 y(the)g(old)f(de\014nition)h(of)g(this)g(function,)g(whic)n(h)g(w) n(asn't)f(complete,)g(an)n(yw)n(a)n(y)-7 b(,)26 b(and)h(I'll)h(put)g (in)g(a)f(new)h(de\014nition)g(so)r(on.)83 2727 y([)p Fh(LDF)d(2002.04.14.)p Fm(])59 b(Ab)r(out)27 b(to)f(start)f(w)n(ork)f (on)i(implemen)n(ting)g(the)g(coplanar)e(case)h(again.)35 -b(The)26 b(equations)f(pro)r(duced)0 2827 y(b)n(y)g(Mathematica)g(will) +b(The)26 b(equations)f(pro)r(duced)0 2826 y(b)n(y)g(Mathematica)g(will) g(w)n(ork)f(for)h(the)h(case)e(that)i(the)f(ellipses)g(ha)n(v)n(e)g (the)g(same)g(cen)n(ter.)35 b(I)26 b(will)f(catc)n(h)g(the)h(case)e -(that)i(they)0 2927 y(are)f(congruen)n(t)g(and)g(ha)n(v)n(e)g(the)h +(that)i(they)0 2926 y(are)f(congruen)n(t)g(and)g(ha)n(v)n(e)g(the)h (same)g(cen)n(ter)f(and)h(the)g(case)f(that)h(they)h(are)d (non-congruen)n(t)h(and)g(ha)n(v)n(e)g(the)h(same)g(cen)n(ter)0 3026 y(b)r(efore)h(going)g(on)g(to)g(implemen)n(t)i(a)e(n)n(umerical)g (solution)g(for)g(the)h(case)e(that)i(they)g(ha)n(v)n(e)f(di\013eren)n -(t)g(cen)n(ters.)83 3126 y([)p Fh(LDF)e(2002.04.14.)p +(t)g(cen)n(ters.)83 3125 y([)p Fh(LDF)e(2002.04.14.)p Fm(])68 b(Changed)33 b(argumen)n(t)g(from)h Fk(const)39 b(Ellipse)e Fm(&)d(to)g Fk(Ellipse)r Fm(,)i(since)e(I)g(w)n(as)f(ha)n -(ving)g(to)h(cop)n(y)g(it,)0 3226 y(an)n(yw)n(a)n(y)-7 -b(.)83 3325 y([)p Fh(LDF)25 b(2003.07.01.)p Fm(])61 b(Added)28 -b Fi(verb)l(ose)39 b Fm(argumen)n(t.)83 3425 y([)p Fh(LDF)25 +(ving)g(to)h(cop)n(y)g(it,)0 3225 y(an)n(yw)n(a)n(y)-7 +b(.)83 3324 y([)p Fh(LDF)25 b(2003.07.01.)p Fm(])61 b(Added)28 +b Fi(verb)l(ose)39 b Fm(argumen)n(t.)83 3424 y([)p Fh(LDF)25 b(2003.07.01.)p Fm(])62 b(Changed)28 b(\\p)r(erp)r(endicular)g(and)g (sk)n(ew)g(case".)39 b(Debugged)28 b(coplanar)f(case,)h(where)g(the)h Fk(Ellipses)0 3524 y Fm(don't)f(ha)n(v)n(e)e(the)i(same)f(cen)n(ters)g -(and/or)f(axis)h(orien)n(tation.)83 3624 y([)p Fh(LDF)e(2003.07.06.)p +(and/or)f(axis)h(orien)n(tation.)83 3623 y([)p Fh(LDF)e(2003.07.06.)p Fm(])73 b(Made)39 b(a)h(minor)f(c)n(hange)f(to)i(the)g(conditional)e (that)i(determines)g(whether)f(the)h Fk(Ellipses)i Fm(are)0 -3724 y(coplanar)26 b(or)h(not.)83 3823 y([)p Fh(LDF)e(2003.08.14.)p +3723 y(coplanar)26 b(or)h(not.)83 3823 y([)p Fh(LDF)e(2003.08.14.)p Fm(])61 b(Setting)28 b Fi(verb)l(ose)39 b Fm(to)28 b Fi(true)37 b Fm(if)28 b Ff(VERBOSE_GLOBAL)e Fm(is)i Fi(true)10 -b Fm(.)37 b(Added)28 b Ff(VERBOSE_GLOBAL)e Fm(to)0 3923 -y Fj(pspglb.web)e Fm(to)r(da)n(y)-7 b(.)p 0 4015 1678 -4 v 1773 4047 a Fk(End)32 b(Log)p 2222 4015 V 0 4172 -a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4272 y Fk(virtual)33 -b(b)s(o)s(ol)p 581 4272 29 5 v 38 w(p)s(oin)m(t)p 837 -4272 V 40 w(quadruple)g Fi(interse)l(ction)p 1750 4272 +b Fm(.)37 b(Added)28 b Ff(VERBOSE_GLOBAL)e Fm(to)0 3922 +y Fj(pspglb.web)e Fm(to)r(da)n(y)-7 b(.)p 0 4014 3900 +4 v 0 4171 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 +b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4271 y Fk(virtual)33 +b(b)s(o)s(ol)p 581 4271 29 5 v 38 w(p)s(oin)m(t)p 837 +4271 V 40 w(quadruple)g Fi(interse)l(ction)p 1750 4271 26 4 v 31 w(p)l(oints)11 b Fm(\()p Fk(Ellipse)30 b Fe(e;)14 b Fk(b)s(o)s(ol)31 b Fi(verb)l(ose)j Fm(=)23 b Fi(false)12 b Fm(\))27 b Fk(const)5 b Fm(;)p eop end -%%Page: 328 328 -TeXDict begin 328 327 bop 0 83 a Fm(328)140 b Fk(ELLIPSE)24 -b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1171)0 -263 y Fk(1171.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 332 332 +TeXDict begin 332 331 bop 0 83 a Fm(332)140 b Fk(ELLIPSE)24 +b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1176)0 +263 y Fk(1176.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)p 269 487 29 5 v 38 w(p)s(oin)m(t)p 525 487 V 40 w(quadruple)40 b(Ellipse)10 b Fm(::)e Fi(interse)l(ction)p 1788 487 26 4 v 32 w(p)l(oints)j Fm(\()p Fk(Ellipse)37 @@ -28817,36 +28831,35 @@ V 31 w(plane)11 b Fe(:)p Fi(normal)32 b Fn(_)19 b Fi(this)p 1930 1857 V 31 w(plane)12 b Fe(:)p Fi(normal)36 b Fn(\021)23 b(\000)o Fi(e)p 2667 1857 V 31 w(plane)12 b Fe(:)p Fi(normal)h -Fm(\))28 b Fn(f)0 2056 y Fk(1172.)94 b Fm(Coplanar)26 -b(case.)p 0 2156 1643 4 v 1738 2188 a Fk(Begin)31 b(Log)p -2257 2156 V 83 2329 a Fm([)p Fh(LDF)25 b(2003.07.20.)p -Fm(])54 b(No)n(w)20 b(using)g Fi(get)p 1233 2329 26 4 -v 31 w(axis)p 1404 2329 V 31 w(v)13 b Fm(\()h(\))21 b(and)g -Fi(get)p 1844 2329 V 30 w(axis)p 2014 2329 V 31 w(h)11 -b Fm(\()j(\),)23 b(instead)d(of)h(accessing)e Fi(axis)p -3078 2329 V 31 w(h)31 b Fm(and)21 b Fi(axis)p 3477 2329 -V 31 w(v)34 b Fm(directly)-7 b(.)p 0 2421 1678 4 v 1773 -2453 a Fk(End)32 b(Log)p 2222 2421 V 0 2578 a Fn(h)14 -b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2678 y Fk(if)41 b Fm(\()p +Fm(\))28 b Fn(f)0 2056 y Fk(1177.)94 b Fm(Coplanar)26 +b(case.)p 0 2155 1779 4 v 1874 2188 a Fk(Log)p 2122 2155 +V 83 2328 a Fm([)p Fh(LDF)f(2003.07.20.)p Fm(])54 b(No)n(w)20 +b(using)g Fi(get)p 1233 2328 26 4 v 31 w(axis)p 1404 +2328 V 31 w(v)13 b Fm(\()h(\))21 b(and)g Fi(get)p 1844 +2328 V 30 w(axis)p 2014 2328 V 31 w(h)11 b Fm(\()j(\),)23 +b(instead)d(of)h(accessing)e Fi(axis)p 3078 2328 V 31 +w(h)31 b Fm(and)21 b Fi(axis)p 3477 2328 V 31 w(v)34 +b Fm(directly)-7 b(.)p 0 2420 3900 4 v 0 2577 a Fn(h)14 +b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 2677 y Fk(if)41 b Fm(\()p Fi(fabs)13 b Fm(\()p Fi(fabs)f Fm(\()p Fi(this)p 713 -2678 26 4 v 31 w(plane)g Fe(:)p Fi(distanc)l(e)f Fm(\))19 -b Fn(\000)f Fi(fabs)12 b Fm(\()p Fi(e)p 1625 2678 V 31 +2677 26 4 v 31 w(plane)g Fe(:)p Fi(distanc)l(e)f Fm(\))19 +b Fn(\000)f Fi(fabs)12 b Fm(\()p Fi(e)p 1625 2677 V 31 w(plane)f Fe(:)p Fi(distanc)l(e)g Fm(\)\))24 b Fe(<)f Fk(P)m(oin)m(t)13 b Fm(::)c Fi(epsilon)j Fm(\()i(\)\))28 b Fn(f)83 2777 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h -Fn(f)166 2877 y Fi(c)l(out)35 b Fn(\034)23 b Ff("Ellipses)p +Fn(f)166 2876 y Fi(c)l(out)35 b Fn(\034)23 b Ff("Ellipses)p Fj( )p Ff(are)p Fj( )p Ff(co)o(pl)o(an)-6 b(ar.\\n")24 -b Fn(\034)g Fi(\015ush)10 b Fm(;)83 2976 y Fn(g)83 3101 -y Fk(real)32 b Fi(ax)p 357 3101 V 31 w(h)i Fm(=)23 b -Fi(get)p 656 3101 V 30 w(axis)p 826 3101 V 31 w(h)11 -b Fm(\()j(\);)83 3201 y Fk(real)32 b Fi(ax)p 357 3201 -V 31 w(v)k Fm(=)23 b Fi(get)p 654 3201 V 31 w(axis)p -825 3201 V 30 w(v)14 b Fm(\()g(\);)p eop end -%%Page: 329 329 -TeXDict begin 329 328 bop 0 83 a Fn(x)p Fm(1173)139 b +b Fn(\034)g Fi(\015ush)10 b Fm(;)83 2976 y Fn(g)83 3100 +y Fk(real)32 b Fi(ax)p 357 3100 V 31 w(h)i Fm(=)23 b +Fi(get)p 656 3100 V 30 w(axis)p 826 3100 V 31 w(h)11 +b Fm(\()j(\);)83 3200 y Fk(real)32 b Fi(ax)p 357 3200 +V 31 w(v)k Fm(=)23 b Fi(get)p 654 3200 V 31 w(axis)p +825 3200 V 30 w(v)14 b Fm(\()g(\);)p eop end +%%Page: 333 333 +TeXDict begin 333 332 bop 0 83 a Fn(x)p Fm(1178)139 b Fl(3DLDFPR)n(G)2059 b Fk(ELLIPSE)24 b Fl(AR)n(GUMENT)140 -b Fm(329)0 263 y Fk(1173.)94 b Fm(Congruen)n(t,)25 b(same)h(lo)r +b Fm(333)0 263 y Fk(1178.)94 b Fm(Congruen)n(t,)25 b(same)h(lo)r (cation)f(and)h(axis)g(orien)n(tation.)35 b([)p Fh(LDF)25 b(2002.04.15.)p Fm(])59 b(Added)27 b(c)n(hec)n(k)e(for)h(the)g(axis)g (orien)n(ta-)0 363 y(tion.)43 b(If)30 b(the)g(axes)f(are)g(not)g(all)g @@ -28889,7 +28902,7 @@ (ts)h(on)g(t)n(w)n(o)g(non-congruen)n(t)e(ellipses)0 1558 y(and)27 b(mistak)n(enly)g(conclude)h(that)g(they)f(are)g (congruen)n(t.)0 1683 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1782 y Fk(P)m(oin)m(t)33 b Fi(this)p 474 1782 V 31 w(axis)p 645 1782 V 31 w(orientation)11 b Fm(\()p Fi(get)p 1222 1782 V 31 w(p)l(oint)i Fm(\(0)o(\)\);)83 1907 y Fi(this)p @@ -28924,10 +28937,10 @@ V 31 w(r)l(otate)l(d)13 b Fm(\()p Fi(e)p 1345 3227 V 31 w(axis)p 1516 3227 V 31 w(orientation)e Fm(\);)p eop end -%%Page: 330 330 -TeXDict begin 330 329 bop 0 83 a Fm(330)140 b Fk(ELLIPSE)24 -b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1174)0 -263 y Fk(1174.)94 b Fm([)p Fh(LDF)25 b(2002.09.26.)p +%%Page: 334 334 +TeXDict begin 334 333 bop 0 83 a Fm(334)140 b Fk(ELLIPSE)24 +b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1179)0 +263 y Fk(1179.)94 b Fm([)p Fh(LDF)25 b(2002.09.26.)p Fm(])58 b(ST)-7 b(AR)g(T)25 b(HERE.)f(Added)h(the)g Fk(if)38 b Fm(condition.)e(I)25 b(think)g(this)f(should)h(b)r(e)g(done,)g(but)g (I)f(should)0 363 y(c)n(hec)n(k)j(to)g(b)r(e)h(sure.)36 @@ -28935,7 +28948,7 @@ (that)h(the)f(cen)n(ters)g(aren't)g(the)h(same,)f(but)h(it)g(w)n(ould)0 462 y(b)r(e)g(easy)f(enough)g(to)g(do,)g(I)h(think.)0 587 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 686 y Fk(if)39 +b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 686 y Fk(if)39 b Fm(\()p Fi(e)p 253 686 26 4 v 31 w(axis)p 424 686 V 31 w(orientation)c Fn(6)p Fm(=)22 b Fi(this)p 1105 686 V 31 w(axis)p 1276 686 V 31 w(orientation)12 b Fm(\))41 @@ -29058,10 +29071,10 @@ V 31 w(this)12 b Fe(:)p Fi(se)l(c)l(ond)h Fe(:)p Fi(pt)f Fm(;)249 5219 y Fn(g)249 5319 y Fk(else)45 b Fn(f)p eop end -%%Page: 331 331 -TeXDict begin 331 330 bop 0 83 a Fn(x)p Fm(1174)139 b +%%Page: 335 335 +TeXDict begin 335 334 bop 0 83 a Fn(x)p Fm(1179)139 b Fl(3DLDFPR)n(G)2059 b Fk(ELLIPSE)24 b Fl(AR)n(GUMENT)140 -b Fm(331)332 263 y Fi(c)l(err)68 b Fn(\034)54 b Ff("In)p +b Fm(335)332 263 y Fi(c)l(err)68 b Fn(\034)54 b Ff("In)p Fj( )p Ff(Ellipse::in)o(ter)o(se)-7 b(ction_points\(Elli)o(pse)g (\).\\n")57 b Fn(\034)498 363 y Ff("This)p Fj( )p Ff(can't)p Fj( )p Ff(happe)o(n)p Fj( )o Ff(\()-6 b(this\)!\\n")24 @@ -29151,12 +29164,12 @@ Fm(\()h(\)\);)83 5269 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)83 5369 y Fk(T)-8 b(ransform)33 b Fi(t)p 579 5369 V 30 w(inverse)11 b Fm(;)p eop end -%%Page: 332 332 -TeXDict begin 332 331 bop 0 83 a Fm(332)140 b Fk(ELLIPSE)24 -b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1175)0 -263 y Fk(1175.)94 b Fm(Shift)29 b(to)e(origin)g(\(if)h(necessary\).)0 +%%Page: 336 336 +TeXDict begin 336 335 bop 0 83 a Fm(336)140 b Fk(ELLIPSE)24 +b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1180)0 +263 y Fk(1180.)94 b Fm(Shift)29 b(to)e(origin)g(\(if)h(necessary\).)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(if)41 +b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(if)41 b Fm(\()p Fi(c)l(opy)p 375 487 26 4 v 32 w(c)l(enter)36 b Fn(6)p Fm(=)23 b Fi(origin)11 b Fm(\))42 b Fn(f)166 587 y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)249 686 @@ -29177,9 +29190,9 @@ Fm(\))h Fn(f)166 1483 y Fi(c)l(out)35 b Fn(\034)23 b Ff("copy)p Fj( )p Ff(is)p Fj( )p Ff(already)o Fj( )p Ff(a)o(t)p Fj( )-6 b Ff(origin.\\n")23 b Fn(\034)g Fi(\015ush)10 -b Fm(;)83 1583 y Fn(g)0 1782 y Fk(1176.)94 b Fm(Get)28 +b Fm(;)83 1583 y Fn(g)0 1782 y Fk(1181.)94 b Fm(Get)28 b(co)r(ordinates)e(of)i(normal.)0 1907 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 b Fn(i)23 +b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2006 y Fk(real)32 b Fi(normal)p 531 2006 V 32 w(x)37 b Fm(=)22 b Fi(this)p 855 2006 V 31 w(plane)12 b Fe(:)p Fi(normal)h Fe(:)p Fi(get)p 1506 @@ -29190,104 +29203,103 @@ 531 2206 V 32 w(z)37 b Fm(=)23 b Fi(this)p 851 2206 V 31 w(plane)11 b Fe(:)p Fi(normal)j Fe(:)p Fi(get)p 1502 2206 V 30 w(z)h Fm(\()f(\);)p eop end -%%Page: 333 333 -TeXDict begin 333 332 bop 0 83 a Fn(x)p Fm(1177)139 b +%%Page: 337 337 +TeXDict begin 337 336 bop 0 83 a Fn(x)p Fm(1182)139 b Fl(3DLDFPR)n(G)2059 b Fk(ELLIPSE)24 b Fl(AR)n(GUMENT)140 -b Fm(333)0 263 y Fk(1177.)94 b Fm(Determine)27 b(the)f(orien)n(tation)f +b Fm(337)0 263 y Fk(1182.)94 b Fm(Determine)27 b(the)f(orien)n(tation)f (of)h(the)h(ellipse)f(and)h(rotate,)e(if)i(it's)g(not)f(already)f(in)h (a)g(plane)g(parallel)f(to)h(a)g(ma)5 b(jor)0 363 y(plane.)38 b(Rotating)27 b(the)h Fk(Ellipse)j Fm(can)d(cause)f(inaccuracies)f(in)i (the)h(co)r(ordinate)d(v)-5 b(alues,)28 b(so)f(if)i(the)f(ellipse)g(is) g(already)e(in)i(a)0 462 y(ma)5 b(jor)26 b(plane,)i(\(i.e.,)g(one)f(p)r (erp)r(endicular)g(to)h(a)f(ma)5 b(jor)26 b(axis\),)i(w)n(e)f(lea)n(v)n -(e)f(it)i(where)f(it)h(is.)p 0 566 1643 4 v 1738 599 -a Fk(Begin)j(Log)p 2257 566 V 83 739 a Fm([)p Fh(LDF)25 -b(2003.08.27.)p Fm(])62 b(Commen)n(ted-out)27 b(the)h(declaration)f(of) -h Ff(OTHER)r Fm(,)g(b)r(ecause)g(it's)g(nev)n(er)f(used.)38 -b(I)28 b(ha)n(v)n(en't)f(deleted)i(it,)0 839 y(just)f(in)g(case.)p -0 931 1678 4 v 1773 964 a Fk(End)k(Log)p 2222 931 V 0 -1088 a Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1188 y Fk(unsigned)31 -b(short)i Fi(orientation)11 b Fm(;)83 1287 y Fk(const)32 -b(unsigned)g(short)g Ff(X_Y)26 b Fm(=)d(0)o(;)83 1387 -y Fk(const)32 b(unsigned)g(short)g Ff(X_Z)26 b Fm(=)d(1)o(;)83 -1487 y Fk(const)32 b(unsigned)g(short)g Ff(Z_Y)26 b Fm(=)d(2)o(;)0 -1586 y(#)p Fk(if)41 b Fm(0)83 1686 y Fk(const)32 b(unsigned)g(short)g -Ff(OTHER)25 b Fm(=)e(3;)0 1786 y(#)p Fk(endif)83 1910 -y(if)41 b Fm(\()p Fi(normal)p 472 1910 26 4 v 32 w(x)c -Fn(\021)22 b Fm(0)c Fn(^)h Fi(normal)p 1056 1910 V 31 +(e)f(it)i(where)f(it)h(is.)p 0 565 1779 4 v 1874 598 +a Fk(Log)p 2122 565 V 83 739 a Fm([)p Fh(LDF)d(2003.08.27.)p +Fm(])62 b(Commen)n(ted-out)27 b(the)h(declaration)f(of)h +Ff(OTHER)r Fm(,)g(b)r(ecause)g(it's)g(nev)n(er)f(used.)38 +b(I)28 b(ha)n(v)n(en't)f(deleted)i(it,)0 838 y(just)f(in)g(case.)p +0 930 3900 4 v 0 1087 a Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1187 y Fk(unsigned)31 b(short)i Fi(orientation)11 b Fm(;)83 +1287 y Fk(const)32 b(unsigned)g(short)g Ff(X_Y)26 b Fm(=)d(0)o(;)83 +1386 y Fk(const)32 b(unsigned)g(short)g Ff(X_Z)26 b Fm(=)d(1)o(;)83 +1486 y Fk(const)32 b(unsigned)g(short)g Ff(Z_Y)26 b Fm(=)d(2)o(;)0 +1586 y(#)p Fk(if)41 b Fm(0)83 1685 y Fk(const)32 b(unsigned)g(short)g +Ff(OTHER)25 b Fm(=)e(3;)0 1785 y(#)p Fk(endif)83 1909 +y(if)41 b Fm(\()p Fi(normal)p 472 1909 26 4 v 32 w(x)c +Fn(\021)22 b Fm(0)c Fn(^)h Fi(normal)p 1056 1909 V 31 w(y)35 b Fn(\021)23 b Fm(0)18 b Fn(^)g Fi(normal)p 1638 -1910 V 32 w(z)37 b Fn(\021)23 b Fm(0)o(\))42 b Fn(f)166 -2010 y Fi(c)l(err)51 b Fn(\034)37 b Ff("ERROR!)p Fj( )p +1909 V 32 w(z)37 b Fn(\021)23 b Fm(0)o(\))42 b Fn(f)166 +2009 y Fi(c)l(err)51 b Fn(\034)37 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Ellips)o(e:)o(:)-6 b(intersection_poi)o(nts)o(\()g (\):\\n")40 b Fn(\034)d Ff("Normal)p Fj( )p Ff(==)p Fj( )p Ff(0.)p Fj( )p Ff(")f Fn(\034)332 2109 y Ff("Returning)p Fj( )p Ff(INVAL)o(ID_)o(B)-6 b(OOL_POINT_QUADRU)o(PL)o(E\\)g(n\\n")25 -b Fn(\034)e Fi(\015ush)11 b Fm(;)166 2209 y Fk(return)33 +b Fn(\034)e Fi(\015ush)11 b Fm(;)166 2208 y Fk(return)33 b Ff(INVALID_BOOL_POI)o(NT_)o(QU)o(ADR)o(UP)o(LE)n Fm(;)83 -2309 y Fn(g)83 2408 y Fk(else)e(if)41 b Fm(\()p Fi(normal)p +2308 y Fn(g)83 2408 y Fk(else)e(if)41 b Fm(\()p Fi(normal)p 656 2408 V 32 w(x)c Fn(\021)22 b Fm(0)c Fn(^)h Fi(normal)p 1240 2408 V 31 w(y)35 b Fn(\021)23 b Fm(0)o(\))167 b Fe(=)p Fn(\003)40 b Fm(Ellipse)27 b(lies)h(in)g(a)f(plane)g(parallel)g -(to)g(x-y)g(plane.)51 b Fn(\003)p Fe(=)83 2508 y Fn(f)166 +(to)g(x-y)g(plane.)51 b Fn(\003)p Fe(=)83 2507 y Fn(f)166 2607 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Ellipse)p Fj( )p Ff(lies)p Fj( )p Ff(in)p Fj( )o Ff(a)p Fj( )p Ff(p)-7 b(lane)p Fj( )p Ff(parallel)p Fj( )p Ff(to)o Fj( )p Ff(x-)o(y)h Fj( )p Ff(plane\\n")24 b Fn(\034)f Fi(\015ush)10 b Fm(;)166 -2707 y Fi(orientation)35 b Fm(=)22 b Ff(X_Y)s Fm(;)83 -2807 y Fn(g)83 2906 y Fk(else)31 b(if)41 b Fm(\()p Fi(normal)p +2706 y Fi(orientation)35 b Fm(=)22 b Ff(X_Y)s Fm(;)83 +2806 y Fn(g)83 2906 y Fk(else)31 b(if)41 b Fm(\()p Fi(normal)p 656 2906 V 32 w(x)c Fn(\021)22 b Fm(0)c Fn(^)h Fi(normal)p 1240 2906 V 31 w(z)38 b Fn(\021)22 b Fm(0\))166 b Fe(=)p Fn(\003)41 b Fm(Ellipse)27 b(lies)g(in)h(a)f(plane)h(parallel)e(to)i -(x-z)f(plane.)50 b Fn(\003)p Fe(=)83 3006 y Fn(f)166 -3106 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 +(x-z)f(plane.)50 b Fn(\003)p Fe(=)83 3005 y Fn(f)166 +3105 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Ellipse)p Fj( )p Ff(lies)p Fj( )p Ff(in)p Fj( )o Ff(a)p Fj( )p Ff(p)-7 b(lane)p Fj( )p Ff(parallel)p Fj( )p Ff(to)o Fj( )p Ff(x-)o(z)h Fj( )p Ff(plane\\n")24 b Fn(\034)f Fi(\015ush)10 b Fm(;)166 3205 y Fi(orientation)35 b Fm(=)22 b Ff(X_Z)s Fm(;)83 -3305 y Fn(g)83 3404 y Fk(else)31 b(if)41 b Fm(\()p Fi(normal)p +3304 y Fn(g)83 3404 y Fk(else)31 b(if)41 b Fm(\()p Fi(normal)p 656 3404 V 32 w(z)c Fn(\021)23 b Fm(0)18 b Fn(^)h Fi(normal)p 1236 3404 V 31 w(y)35 b Fn(\021)23 b Fm(0)o(\))166 b Fe(=)p Fn(\003)41 b Fm(Ellipse)27 b(lies)g(in)h(a)g(plane)f(parallel)f -(to)i(z-y)f(plane.)50 b Fn(\003)p Fe(=)83 3504 y Fn(f)166 -3604 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 +(to)i(z-y)f(plane.)50 b Fn(\003)p Fe(=)83 3503 y Fn(f)166 +3603 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Ellipse)p Fj( )p Ff(lies)p Fj( )p Ff(in)p Fj( )o Ff(a)p Fj( )p Ff(p)-7 b(lane)p Fj( )p Ff(parallel)p Fj( )p Ff(to)o Fj( )p Ff(z-)o(y)h Fj( )p Ff(plane\\n")24 b Fn(\034)f Fi(\015ush)10 b Fm(;)166 3703 y Fi(orientation)35 b Fm(=)22 b Ff(Z_Y)s Fm(;)83 -3803 y Fn(g)83 3903 y Fk(else)170 b Fe(=)p Fn(\003)40 +3802 y Fn(g)83 3902 y Fk(else)170 b Fe(=)p Fn(\003)40 b Fm(Ellipse)27 b(do)r(esn't)h(lie)g(in)f(a)h(plane)f(parallel)f(to)i (a)f(ma)5 b(jor)27 b(plane.)50 b Fn(\003)p Fe(=)83 4002 -y Fn(f)166 4102 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h +y Fn(f)166 4101 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Ellipse)p Fj( )p Ff(doesn't)p Fj( )o Ff(lie)-7 b Fj( )p Ff(in)p Fj( )p Ff(a)p Fj( )p Ff(plane)p Fj( )p Ff(para)o(lle)o(l)h Fj( )p Ff(to)p Fj( )p Ff(a)p Fj( )p Ff(major)p Fj( )p Ff(plan)o(e.)o(\\n)g(")27 b Fn(\034)c Fi(\015ush)10 b Fm(;)374 4201 y Fe(=)p Fn(\003)40 b Fm(Put)28 b(it)g(in)g(x-z)f(plane.)50 b Fn(\003)p Fe(=)166 -4301 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)249 -4401 y Fi(c)l(opy)p 412 4401 V 32 w(c)l(enter)13 b Fe(:)p +4300 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)249 +4400 y Fi(c)l(opy)p 412 4400 V 32 w(c)l(enter)13 b Fe(:)p Fi(dotlab)l(el)h Fm(\()p Ff("c")s Fm(\);)166 4500 y Fn(g)166 -4625 y Fk(P)m(oin)m(t)33 b Fi(el)t(lipse)p 651 4625 V +4624 y Fk(P)m(oin)m(t)33 b Fi(el)t(lipse)p 651 4624 V 32 w(pt0)39 b Fm(=)23 b Fi(c)l(opy)13 b Fe(:)p Fi(get)p -1220 4625 V 30 w(p)l(oint)g Fm(\(0\);)166 4725 y Fk(T)-8 -b(ransform)33 b Fi(t0)16 b Fm(;)166 4849 y Fi(t0)g Fe(:)p -Fi(align)p 453 4849 V 31 w(with)p 634 4849 V 31 w(axis)c -Fm(\()p Fi(c)l(opy)p 1007 4849 V 32 w(c)l(enter)g Fe(;)i -Fi(el)t(lipse)p 1531 4849 V 33 w(pt0)i Fe(;)e Ff('x')s -Fm(\);)166 4949 y Fi(c)l(opy)36 b Fn(\003)p Fm(=)22 b +1220 4624 V 30 w(p)l(oint)g Fm(\(0\);)166 4724 y Fk(T)-8 +b(ransform)33 b Fi(t0)16 b Fm(;)166 4848 y Fi(t0)g Fe(:)p +Fi(align)p 453 4848 V 31 w(with)p 634 4848 V 31 w(axis)c +Fm(\()p Fi(c)l(opy)p 1007 4848 V 32 w(c)l(enter)g Fe(;)i +Fi(el)t(lipse)p 1531 4848 V 33 w(pt0)i Fe(;)e Ff('x')s +Fm(\);)166 4948 y Fi(c)l(opy)36 b Fn(\003)p Fm(=)22 b Fi(t0)15 b Fm(;)166 5048 y Fi(c)l(opy)p 329 5048 V 32 w(c)l(enter)36 b Fn(\003)p Fm(=)22 b Fi(t0)15 b Fm(;)166 -5148 y Fi(el)t(lipse)p 394 5148 V 32 w(pt0)39 b Fn(\003)p -Fm(=)23 b Fi(t0)15 b Fm(;)166 5248 y Fe(e)23 b Fn(\003)p +5147 y Fi(el)t(lipse)p 394 5147 V 32 w(pt0)39 b Fn(\003)p +Fm(=)23 b Fi(t0)15 b Fm(;)166 5247 y Fe(e)23 b Fn(\003)p Fm(=)f Fi(t0)15 b Fm(;)166 5347 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)p eop end -%%Page: 334 334 -TeXDict begin 334 333 bop 0 83 a Fm(334)140 b Fk(ELLIPSE)24 -b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1177)249 +%%Page: 338 338 +TeXDict begin 338 337 bop 0 83 a Fm(338)140 b Fk(ELLIPSE)24 +b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1182)249 263 y Fi(el)t(lipse)p 477 263 26 4 v 33 w(pt0)15 b Fe(:)p Fi(show)g Fm(\()p Ff("ellipse_pt0")o Fm(\);)249 363 y Fi(el)t(lipse)p 477 363 V 33 w(pt0)g Fe(:)p Fi(dotlab)l(el)g @@ -29320,15 +29332,15 @@ Ff("copy_center")o Fm(\);)166 2305 y Fi(e)p 209 2305 V 31 w(c)l(enter)e Fe(:)p Fi(show)h Fm(\()p Ff("e_center")p Fm(\);)83 2405 y Fn(g)p eop end -%%Page: 335 335 -TeXDict begin 335 334 bop 0 83 a Fn(x)p Fm(1178)139 b +%%Page: 339 339 +TeXDict begin 339 338 bop 0 83 a Fn(x)p Fm(1183)139 b Fl(3DLDFPR)n(G)2059 b Fk(ELLIPSE)24 b Fl(AR)n(GUMENT)140 -b Fm(335)0 263 y Fk(1178.)94 b Fm(Ellipses)24 b(ha)n(v)n(e)g(the)i +b Fm(339)0 263 y Fk(1183.)94 b Fm(Ellipses)24 b(ha)n(v)n(e)g(the)i (same)e(cen)n(ter)h(and)g(orien)n(tation.)34 b(If)26 b(they)f(do,)h(then)f(there)g(is)g(an)g(algebraic)e(solution)i(w)n(e)f (can)0 363 y(apply)j(to)h(\014nd)g(the)g(in)n(tersection)f(p)r(oin)n (ts.)0 487 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 587 y Fk(P)m(oin)m(t)33 b Fi(c)l(opy)p 503 587 26 4 v 32 w(axis)p 675 587 V 30 w(orientation)12 b Fm(\()p Fi(c)l(opy)h Fe(:)p Fi(get)p 1446 587 V 31 w(p)l(oint)f Fm(\(0\)\);)83 @@ -29430,9 +29442,9 @@ Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("x)p Fj( )p Ff(==)p Fj( )p Ff(INVALID_REA)o(L.\\)-7 b(n")t Fm(;)p eop end -%%Page: 336 336 -TeXDict begin 336 335 bop 0 83 a Fm(336)140 b Fk(ELLIPSE)24 -b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1178)166 +%%Page: 340 340 +TeXDict begin 340 339 bop 0 83 a Fm(340)140 b Fk(ELLIPSE)24 +b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1183)166 263 y Fe(x)24 b Fm(=)e Ff(INVALID_REAL)p Fm(;)83 363 y Fn(g)83 462 y Fk(else)45 b Fn(f)166 562 y Fk(try)j Fn(f)249 662 y Fe(x)24 b Fm(=)e Fn(\000)p Fm(\()p Fe(c)c @@ -29479,10 +29491,10 @@ Fj( )p Ff(==)p Fj( )p Ff(")h Fn(\034)f Fe(y)j Fn(\034)d Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)83 4099 y Fn(g)p eop end -%%Page: 337 337 -TeXDict begin 337 336 bop 0 83 a Fn(x)p Fm(1179)139 b +%%Page: 341 341 +TeXDict begin 341 340 bop 0 83 a Fn(x)p Fm(1184)139 b Fl(3DLDFPR)n(G)2059 b Fk(ELLIPSE)24 b Fl(AR)n(GUMENT)140 -b Fm(337)0 263 y Fk(1179.)94 b Fm(The)28 b(ellipses)f(can)g(in)n +b Fm(341)0 263 y Fk(1184.)94 b Fm(The)28 b(ellipses)f(can)g(in)n (tersect)g(at)h(no)f(p)r(oin)n(ts,)h(t)n(w)n(o)e(p)r(oin)n(ts,)i(or)f (four)g(p)r(oin)n(ts.)0 363 y Fn(\017)41 b Fm(If)28 b(they)g(do)f(not)h (in)n(tersect,)f(then)h(one)f(of)h(the)g(ellipses)f(m)n(ust)h(b)r(e)g @@ -29491,7 +29503,7 @@ f Fe(x)d Fm(=)f(0)k(or)f Fe(y)g Fm(=)d(0)k(\(but)h(not)g(b)r(oth\).)0 562 y Fn(\017)41 b Fm(Otherwise,)27 b(they)h(in)n(tersect)f(at)g(four)g (p)r(oin)n(ts.)0 686 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 786 y Fk(if)41 b Fm(\()p Fe(x)24 b Fn(\021)f Ff(INVALID_REAL)17 b Fn(_)i Fe(y)26 b Fn(\021)d Ff(INVALID_REAL)o Fm(\))42 b Fn(f)166 886 y Fi(c)l(err)62 b Fn(\034)48 b Ff("WARNING!)p @@ -29552,9 +29564,9 @@ b(inue.\\n\\n")23 b Fn(\034)g Fi(\015ush)10 b Fm(;)83 5269 y Fn(g)83 5369 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)p eop end -%%Page: 338 338 -TeXDict begin 338 337 bop 0 83 a Fm(338)140 b Fk(ELLIPSE)24 -b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1179)166 +%%Page: 342 342 +TeXDict begin 342 341 bop 0 83 a Fm(342)140 b Fk(ELLIPSE)24 +b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1184)166 263 y Fi(pt20)16 b Fe(:)p Fi(show)f Fm(\()p Ff("pt20")r Fm(\);)166 363 y Fi(pt20)h Fe(:)p Fi(dotlab)l(el)f Fm(\()p Ff("20")s Fm(\);)166 462 y Fi(pt21)h Fe(:)p Fi(show)f @@ -29641,15 +29653,15 @@ b Fe(=)p Fn(\003)40 b Fm(End)28 b(of)f(\\Ellipses)f(ha)n(v)n(e)h(the)h (same)f(cen)n(ter)g(and)g(axis)g(orien)n(tation".)49 b Fn(\003)p Fe(=)p eop end -%%Page: 339 339 -TeXDict begin 339 338 bop 0 83 a Fn(x)p Fm(1180)139 b +%%Page: 343 343 +TeXDict begin 343 342 bop 0 83 a Fn(x)p Fm(1185)139 b Fl(3DLDFPR)n(G)2059 b Fk(ELLIPSE)24 b Fl(AR)n(GUMENT)140 -b Fm(339)0 263 y Fk(1180.)94 b Fm(Ellipses)24 b(ha)n(v)n(e)g +b Fm(343)0 263 y Fk(1185.)94 b Fm(Ellipses)24 b(ha)n(v)n(e)g (di\013eren)n(t)g(cen)n(ters)g(and/or)f(axis)h(orien)n(tation.)35 b(There)24 b(is)h(no)f(simple)h(algebraic)e(solution)i(for)f(this)0 363 y(case,)j(so)g(I)g(ha)n(v)n(e)g(to)g(implemen)n(t)h(a)g(n)n (umerical)e(one)i(here.)0 487 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 b Fn(i)23 +b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 587 y Fk(else)45 b Fn(f)166 686 y Fk(if)50 b Fm(\()p Ff(DEBUG)s Fm(\))42 b Fi(c)l(out)49 b Fn(\034)39 b Ff("The)p Fj( )p Ff(two)p Fj( )p Ff(ellips)o(es)p @@ -29704,7 +29716,7 @@ b(on)p Fj( )p Ff(point!\\n")o Fm(;)415 3227 y Fi(curr)p 573 3227 V 30 w(p)l(oint)13 b Fe(:)p Fi(show)h Fm(\()p Ff("curr_point:")o Fm(\);)332 3327 y Fn(g)332 3426 y(h)g -Fm(Handle)28 b(in)n(tersection)f(p)r(oin)n(t)35 b Fl(1181)15 +Fm(Handle)28 b(in)n(tersection)f(p)r(oin)n(t)35 b Fl(1186)15 b Fn(i)332 3526 y Fe(i)23 b Fm(+=)f Fe(:)p Fm(5;)332 3625 y Fi(save)p 489 3625 V 31 w(angle)35 b Fm(=)22 b Fe(i)p Fm(;)332 3725 y Fi(curr)p 490 3725 V 30 w(p)l(oint)36 @@ -29732,9 +29744,9 @@ b Ff("Point)p Fj( )p Ff(is)p Fj( )p Ff(outside)o Fj( )p Ff(e.)-7 b(\\n")s Fm(;)249 5120 y Fn(g)249 5219 y Fk(else)45 b Fn(f)p eop end -%%Page: 340 340 -TeXDict begin 340 339 bop 0 83 a Fm(340)140 b Fk(ELLIPSE)24 -b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1180)332 +%%Page: 344 344 +TeXDict begin 344 343 bop 0 83 a Fm(344)140 b Fk(ELLIPSE)24 +b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1185)332 263 y Fi(c)l(err)68 b Fn(\034)54 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Elli)o(pse)o(::)-7 b(intersection_poin)o(ts\()g (\):\\n")57 b Fn(\034)498 363 y Ff("This)p Fj( )p Ff(can't)p @@ -29790,7 +29802,7 @@ b(on)p Fj( )p Ff(point!\\n")o Fm(;)581 3053 y Fi(curr)p 739 3053 V 30 w(p)l(oint)13 b Fe(:)p Fi(show)h Fm(\()p Ff("curr_point:")o Fm(\);)498 3152 y Fn(g)498 3252 y(h)g -Fm(Handle)28 b(in)n(tersection)f(p)r(oin)n(t)35 b Fl(1181)15 +Fm(Handle)28 b(in)n(tersection)f(p)r(oin)n(t)35 b Fl(1186)15 b Fn(i)498 3351 y Fe(i)23 b Fm(=)f Fi(\015o)l(or)14 b Fm(\()p Fi(test)p 980 3351 V 30 w(angle)d Fm(\);)498 3451 y Fe(i)23 b Fm(+=)f Fe(:)p Fm(5;)498 3551 y Fk(if)41 @@ -29823,10 +29835,10 @@ b(_BOOL_POINT_QUAD)o(RU)o(PL)g(E.\\n\\n")24 b Fn(\034)f Fi(\015ush)11 b Fm(;)498 5344 y Fk(return)33 b Ff(INVALID_BOOL_POIN)o (T_)o(QUA)o(DR)o(UP)o(LE)n Fm(;)p eop end -%%Page: 341 341 -TeXDict begin 341 340 bop 0 83 a Fn(x)p Fm(1180)139 b +%%Page: 345 345 +TeXDict begin 345 344 bop 0 83 a Fn(x)p Fm(1185)139 b Fl(3DLDFPR)n(G)2059 b Fk(ELLIPSE)24 b Fl(AR)n(GUMENT)140 -b Fm(341)415 263 y Fn(g)332 363 y(g)166 b Fe(=)p Fn(\003)40 +b Fm(345)415 263 y Fn(g)332 363 y(g)166 b Fe(=)p Fn(\003)40 b Fk(while)45 b Fn(\003)p Fe(=)249 462 y Fn(g)166 b Fe(=)p Fn(\003)40 b Fk(if)55 b Fn(\003)p Fe(=)166 562 y Fn(g)166 b Fe(=)p Fn(\003)40 b Fk(for)47 b Fn(\003)p Fe(=)166 @@ -29838,9 +29850,9 @@ b(of)f(\\Ellipses)f(ha)n(v)n(e)h(di\013eren)n(t)h(cen)n(ters)e(and/or)g (axis)h(orien)n(tation".)49 b Fn(\003)p Fe(=)83 861 y Fn(g)166 b Fe(=)p Fn(\003)40 b Fm(End)28 b(of)f(coplanar)f(case.)50 -b Fn(\003)p Fe(=)0 1060 y Fk(1181.)94 b Fm(Handle)28 +b Fn(\003)p Fe(=)0 1060 y Fk(1186.)94 b Fm(Handle)28 b(in)n(tersection)e(p)r(oin)n(t.)0 1185 y Fn(h)14 b Fm(Handle)28 -b(in)n(tersection)f(p)r(oin)n(t)35 b Fl(1181)15 b Fn(i)23 +b(in)n(tersection)f(p)r(oin)n(t)35 b Fl(1186)15 b Fn(i)23 b(\021)83 1284 y(f)170 1376 y Fg(+)-8 b(+)268 1384 y Fi(interse)l(ction)p 694 1384 26 4 v 31 w(ctr)13 b Fm(;)166 1483 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)249 @@ -29900,13 +29912,13 @@ (ADR)o(UP)f(LE.\\n\\n")q Fm(;)249 4671 y Fk(return)33 b Ff(INVALID_BOOL_POIN)o(T_)o(QU)o(ADR)o(UP)o(LE)n Fm(;)166 4771 y Fn(g)83 4871 y(g)0 4979 y Fl(This)23 b(co)r(de)i(is)e(used)h(in) -f(section)i(1180.)p eop end -%%Page: 342 342 -TeXDict begin 342 341 bop 0 83 a Fm(342)140 b Fk(ELLIPSE)24 -b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1182)0 -263 y Fk(1182.)94 b Fm(P)n(arallel)25 b(and)j(non-coplanar)d(case.)0 +f(section)i(1185.)p eop end +%%Page: 346 346 +TeXDict begin 346 345 bop 0 83 a Fm(346)140 b Fk(ELLIPSE)24 +b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1187)0 +263 y Fk(1187.)94 b Fm(P)n(arallel)25 b(and)j(non-coplanar)d(case.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(else)45 +b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(else)45 b Fn(f)166 587 y Fi(c)l(err)62 b Fn(\034)48 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(Ell)o(ips)o(e)-6 b(::intersection_p)o(oi)o(nt) f(s\(Ellipse\).\\n")47 b Fn(\034)332 686 y Ff("Ellipses)p @@ -29917,13 +29929,13 @@ Ff(INVAL)o(ID_)o(B)-6 b(OOL_POINT_QUADRU)o(PL)o(E.)g(\\n\\n")r Fm(;)166 886 y Fk(return)33 b Ff(INVALID_BOOL_POI)o(NT_)o(QU)o(ADR)o (UP)o(LE)n Fm(;)83 985 y Fn(g)83 1085 y(g)p eop end -%%Page: 343 343 -TeXDict begin 343 342 bop 0 83 a Fn(x)p Fm(1183)139 b +%%Page: 347 347 +TeXDict begin 347 346 bop 0 83 a Fn(x)p Fm(1188)139 b Fl(3DLDFPR)n(G)2059 b Fk(ELLIPSE)24 b Fl(AR)n(GUMENT)140 -b Fm(343)0 263 y Fk(1183.)94 b Fm(P)n(erp)r(endicular)26 +b Fm(347)0 263 y Fk(1188.)94 b Fm(P)n(erp)r(endicular)26 b(and)h(sk)n(ew)g(cases.)36 b(These)27 b(cases)g(are)f(handled)i(in)g (exactly)f(the)h(same)f(w)n(a)n(y)-7 b(.)0 388 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 +b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(else)45 b Fn(f)166 587 y Fk(if)c Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Ellipses)p Fj( )p Ff(are)p Fj( )p @@ -29999,7 +30011,7 @@ Fi(\014rst)g Fe(:b)o Fm(;)249 3675 y Fi(temp)p 430 3675 V 31 w(string)34 b Fm(=)23 b Ff("First")q Fm(;)249 3775 y Fn(h)14 b Fm(Chec)n(k)27 b(in)n(tersection)g(p)r(oin)n(t)h(lo)r -(cations)34 b Fl(1184)15 b Fn(i)166 3874 y(g)166 3974 +(cations)34 b Fl(1189)15 b Fn(i)166 3874 y(g)166 3974 y Fk(else)31 b(if)41 b Fm(\()p Fi(verb)l(ose)12 b Fm(\))42 b Fi(c)l(out)35 b Fn(\034)23 b Ff("First)p Fj( )p Ff(intersec)o(tio)o (n)p Fj( )-7 b Ff(point)p Fj( )p Ff(is)p Fj( )p Ff(INVALID_)o(PO)o(I)h @@ -30014,7 +30026,7 @@ Fi(bp)l(q)12 b Fe(:)p Fi(se)l(c)l(ond)h Fe(:b)p Fm(;)249 4472 y Fi(temp)p 430 4472 V 31 w(string)34 b Fm(=)23 b Ff("Second")q Fm(;)249 4572 y Fn(h)14 b Fm(Chec)n(k)27 -b(in)n(tersection)g(p)r(oin)n(t)h(lo)r(cations)34 b Fl(1184)15 +b(in)n(tersection)g(p)r(oin)n(t)h(lo)r(cations)34 b Fl(1189)15 b Fn(i)166 4671 y(g)166 4771 y Fk(else)31 b(if)41 b Fm(\()p Fi(verb)l(ose)12 b Fm(\))42 b Fi(c)l(out)35 b Fn(\034)23 b Ff("Second)p Fj( )p Ff(interse)o(cti)o(on)-7 b Fj( )p @@ -30030,10 +30042,10 @@ b Fe(:)p Fi(thir)l(d)i Fe(:b)o Fm(;)249 5269 y Fi(temp)p 430 5269 V 31 w(string)34 b Fm(=)23 b Ff("Third")q Fm(;)249 5369 y Fn(h)14 b Fm(Chec)n(k)27 b(in)n(tersection)g(p)r(oin)n(t)h(lo)r -(cations)34 b Fl(1184)15 b Fn(i)p eop end -%%Page: 344 344 -TeXDict begin 344 343 bop 0 83 a Fm(344)140 b Fk(ELLIPSE)24 -b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1183)166 +(cations)34 b Fl(1189)15 b Fn(i)p eop end +%%Page: 348 348 +TeXDict begin 348 347 bop 0 83 a Fm(348)140 b Fk(ELLIPSE)24 +b Fl(AR)n(GUMENT)2057 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1188)166 263 y Fn(g)166 363 y Fk(else)31 b(if)41 b Fm(\()p Fi(verb)l(ose)12 b Fm(\))42 b Fi(c)l(out)35 b Fn(\034)23 b Ff("Third)p Fj( )p Ff(intersec)o(tio)o(n)p Fj( )-7 b Ff(point)p Fj( )p @@ -30048,7 +30060,7 @@ w(b)l(o)l(ol)36 b Fm(=)23 b Fi(bp)l(q)12 b Fe(:)p Fi(fourth)f Fe(:b)p Fm(;)249 861 y Fi(temp)p 430 861 V 31 w(string)34 b Fm(=)23 b Ff("Fourth")q Fm(;)249 960 y Fn(h)14 b Fm(Chec)n(k)27 -b(in)n(tersection)g(p)r(oin)n(t)h(lo)r(cations)34 b Fl(1184)15 +b(in)n(tersection)g(p)r(oin)n(t)h(lo)r(cations)34 b Fl(1189)15 b Fn(i)166 1060 y(g)166 1160 y Fk(else)31 b(if)41 b Fm(\()p Fi(verb)l(ose)12 b Fm(\))42 b Fi(c)l(out)35 b Fn(\034)23 b Ff("Fourth)p Fj( )p Ff(interse)o(cti)o(on)-7 b Fj( )p @@ -30060,30 +30072,29 @@ b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Ellipse)o(::i)o(n)-6 b(tersection_point)o(s\()o(El)f(lipse\)\\n")24 b Fn(\034)f Fi(\015ush)11 b Fm(;)83 1459 y Fk(return)33 b Fi(bp)l(q)12 -b Fm(;)37 b Fn(g)0 1658 y Fk(1184.)94 b(Chec)m(k)38 b(in)m(tersection)e +b Fm(;)37 b Fn(g)0 1658 y Fk(1189.)94 b(Chec)m(k)38 b(in)m(tersection)e (p)s(oin)m(t)g(lo)s(cations.)94 b Fm(This)32 b(is)f(used)h(in)g(the)h (\\P)n(erp)r(endicular)d(and)h(Sk)n(ew)h(Cases")e(of)0 1757 y Fi(interse)l(ction)p 426 1757 V 31 w(p)l(oints)11 b Fm(\()p Fk(Ellipse)31 b Fe(e)o(;)14 b Fk(const)33 b(b)s(o)s(ol)d Fi(verb)l(ose)12 b Fm(\).)37 b([)p Fh(LDF)25 b(2003.07.01.)p -Fm(])p 0 1861 1643 4 v 1738 1894 a Fk(Begin)31 b(Log)p -2257 1861 V 83 2035 a Fm([)p Fh(LDF)25 b(2003.07.01.)p -Fm(])61 b(Added)28 b(this)g(section.)p 0 2127 1678 4 -v 1773 2159 a Fk(End)k(Log)p 2222 2127 V 0 2284 a Fn(h)14 +Fm(])p 0 1861 1779 4 v 1874 1893 a Fk(Log)p 2122 1861 +V 83 2034 a Fm([)p Fh(LDF)g(2003.07.01.)p Fm(])61 b(Added)28 +b(this)g(section.)p 0 2126 3900 4 v 0 2283 a Fn(h)14 b Fm(Chec)n(k)27 b(in)n(tersection)g(p)r(oin)n(t)h(lo)r(cations)34 -b Fl(1184)15 b Fn(i)23 b(\021)83 2383 y Fk(if)41 b Fm(\()p +b Fl(1189)15 b Fn(i)23 b(\021)83 2383 y Fk(if)41 b Fm(\()p Fi(temp)p 393 2383 26 4 v 31 w(b)l(o)l(ol)14 b Fm(\))42 -b Fn(f)166 2483 y Fk(if)f Fm(\()p Fi(verb)l(ose)12 b -Fm(\))42 b Fn(f)249 2583 y Fk(if)f Fm(\()p Fi(s)p 417 -2583 V 31 w(t)35 b Fn(\021)22 b Fm(0)c Fn(^)h Fi(s)p -766 2583 V 31 w(e)33 b Fn(\021)23 b Fm(0\))332 2682 y +b Fn(f)166 2482 y Fk(if)f Fm(\()p Fi(verb)l(ose)12 b +Fm(\))42 b Fn(f)249 2582 y Fk(if)f Fm(\()p Fi(s)p 417 +2582 V 31 w(t)35 b Fn(\021)22 b Fm(0)c Fn(^)h Fi(s)p +766 2582 V 31 w(e)33 b Fn(\021)23 b Fm(0\))332 2682 y Fi(c)l(out)35 b Fn(\034)23 b Fi(temp)p 803 2682 V 31 w(string)34 b Fn(\034)23 b Ff(")p Fj( )p Ff(point)p Fj( )p Ff(lies)p Fj( )p Ff(on)p Fj( )o Ff(the)o Fj( )-6 b Ff(perimeter)p Fj( )p Ff(of)p Fj( )p Ff(bot)o(h)p Fj( )o Ff(el)g(lipses.\\n")p -Fm(;)249 2782 y Fk(else)31 b(if)41 b Fm(\()p Fi(s)p 601 -2782 V 31 w(t)35 b Fn(\021)23 b Fm(0)o(\))42 b Fi(c)l(out)35 -b Fn(\034)23 b Fi(temp)p 1364 2782 V 30 w(string)35 b +Fm(;)249 2781 y Fk(else)31 b(if)41 b Fm(\()p Fi(s)p 601 +2781 V 31 w(t)35 b Fn(\021)23 b Fm(0)o(\))42 b Fi(c)l(out)35 +b Fn(\034)23 b Fi(temp)p 1364 2781 V 30 w(string)35 b Fn(\034)23 b Ff(")p Fj( )p Ff(point)p Fj( )p Ff(lies)p Fj( )p Ff(on)p Fj( )o Ff(th)o(e)p Fj( )-6 b Ff(perimeter)p Fj( )p Ff(of)p Fj( )p Ff(*t)o(his)o(.\\)f(n")t Fm(;)249 @@ -30092,14 +30103,14 @@ b Fn(\034)23 b Fi(temp)p 1428 2881 V 31 w(string)34 b Fn(\034)23 b Ff(")p Fj( )p Ff(point)p Fj( )p Ff(lies)p Fj( )p Ff(outs)o(ide)-7 b Fj( )p Ff(*this.\\n")p Fm(;)249 -2981 y Fk(else)31 b(if)41 b Fm(\()p Fi(s)p 601 2981 V +2980 y Fk(else)31 b(if)41 b Fm(\()p Fi(s)p 601 2980 V 31 w(t)35 b Fn(\021)23 b Fm(1)o(\))42 b Fi(c)l(out)35 -b Fn(\034)23 b Fi(temp)p 1364 2981 V 30 w(string)35 b +b Fn(\034)23 b Fi(temp)p 1364 2980 V 30 w(string)35 b Fn(\034)23 b Ff(")p Fj( )p Ff(point)p Fj( )p Ff(lies)p Fj( )p Ff(ins)o(id)o(e)p Fj( )-6 b Ff(*this.\\n")p Fm(;)249 -3081 y Fk(else)31 b(if)41 b Fm(\()p Fi(s)p 601 3081 V +3080 y Fk(else)31 b(if)41 b Fm(\()p Fi(s)p 601 3080 V 31 w(t)35 b Fn(\021)23 b(\000)o Fm(2\))41 b Fi(c)l(out)35 -b Fn(\034)23 b Fi(temp)p 1428 3081 V 31 w(string)34 b +b Fn(\034)23 b Fi(temp)p 1428 3080 V 31 w(string)34 b Fn(\034)23 b Ff(")p Fj( )p Ff(point)p Fj( )p Ff(doesn't)p Fj( )p Ff(l)o(ie)p Fj( )-7 b Ff(in)p Fj( )p Ff(the)p Fj( )p Ff(plane)p Fj( )p Ff(of)p Fj( )p Ff(*)o(th)o(i)h(s.\\n")r @@ -30109,15 +30120,15 @@ b Fn(\034)23 b Fi(temp)p 1537 3180 V 31 w(string)34 b Fn(\034)23 b Ff(")p Fj( )p Ff(point)p Fj( )p Ff(lies)p Fj( )p Ff(on)p Fj( )p Ff(t)o(he)p Fj( )-7 b Ff(perimeter)p -Fj( )p Ff(of)p Fj( )p Ff(e.\\)o(n")n Fm(;)249 3280 y -Fk(if)41 b Fm(\()p Fi(s)p 417 3280 V 31 w(e)34 b Fn(\021)22 +Fj( )p Ff(of)p Fj( )p Ff(e.\\)o(n")n Fm(;)249 3279 y +Fk(if)41 b Fm(\()p Fi(s)p 417 3279 V 31 w(e)34 b Fn(\021)22 b(\000)p Fm(1)o(\))42 b Fi(c)l(out)35 b Fn(\034)23 b -Fi(temp)p 1253 3280 V 31 w(string)34 b Fn(\034)23 b Ff(")p +Fi(temp)p 1253 3279 V 31 w(string)34 b Fn(\034)23 b Ff(")p Fj( )p Ff(point)p Fj( )p Ff(lies)p Fj( )p Ff(outs)o(id)o(e)-6 -b Fj( )p Ff(e.\\n")r Fm(;)249 3380 y Fk(else)31 b(if)41 -b Fm(\()p Fi(s)p 601 3380 V 31 w(e)34 b Fn(\021)23 b +b Fj( )p Ff(e.\\n")r Fm(;)249 3379 y Fk(else)31 b(if)41 +b Fm(\()p Fi(s)p 601 3379 V 31 w(e)34 b Fn(\021)23 b Fm(1)o(\))42 b Fi(c)l(out)35 b Fn(\034)23 b Fi(temp)p -1373 3380 V 30 w(string)35 b Fn(\034)23 b Ff(")p Fj( )p +1373 3379 V 30 w(string)35 b Fn(\034)23 b Ff(")p Fj( )p Ff(point)p Fj( )p Ff(lies)p Fj( )p Ff(ins)o(id)o(e)p Fj( )-6 b Ff(e.\\n")r Fm(;)249 3479 y Fk(else)31 b(if)41 b Fm(\()p Fi(s)p 601 3479 V 31 w(e)34 b Fn(\021)23 b(\000)o @@ -30125,20 +30136,19 @@ 3479 V 31 w(string)34 b Fn(\034)23 b Ff(")p Fj( )p Ff(point)p Fj( )p Ff(doesn't)p Fj( )p Ff(l)o(ie)p Fj( )-7 b Ff(in)p Fj( )p Ff(the)p Fj( )p Ff(plane)p Fj( )p Ff(of)p Fj( )p -Ff(e)o(.\\)o(n)h(")t Fm(;)166 3579 y Fn(g)83 3678 y(g)0 -3786 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1183.)0 -3986 y Fk(1185.)94 b(T)-8 b(ransformations.)p 0 4061 -1643 4 v 1738 4094 a(Begin)31 b(Log)p 2257 4061 V 83 -4235 a Fm([)p Fh(LDF)25 b(2003.04.27.)p Fm(])57 b(Finished)24 -b(adding)f(the)h(transformation)e(functions.)35 b(I)24 -b(already)e(had)h Fi(shift)13 b Fm(\()h(\),)25 b(no)n(w)e(I)g(ha)n(v)n -(e)g(the)h(rest)0 4334 y(of)k(them.)p 0 4426 1678 4 v -1773 4459 a Fk(End)k(Log)p 2222 4426 V 0 4658 a(1186.)94 +Ff(e)o(.\\)o(n)h(")t Fm(;)166 3578 y Fn(g)83 3678 y(g)0 +3786 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1188.)0 +3985 y Fk(1190.)94 b(T)-8 b(ransformations.)p 0 4061 +1779 4 v 1874 4093 a(Log)p 2122 4061 V 83 4234 a Fm([)p +Fh(LDF)25 b(2003.04.27.)p Fm(])57 b(Finished)24 b(adding)f(the)h +(transformation)e(functions.)35 b(I)24 b(already)e(had)h +Fi(shift)13 b Fm(\()h(\),)25 b(no)n(w)e(I)g(ha)n(v)n(e)g(the)h(rest)0 +4334 y(of)k(them.)p 0 4426 3900 4 v 0 4657 a Fk(1191.)94 b(P)m(erforming)32 b(a)g(transformation.)p eop end -%%Page: 345 345 -TeXDict begin 345 344 bop 0 83 a Fn(x)p Fm(1187)139 b -Fl(3DLDFPR)n(G)2309 b(DO)23 b(TRANSF)n(ORM)140 b Fm(345)0 -263 y Fk(1187.)94 b(Do)32 b(transform.)95 b Fm([)p Fh(LDF)26 +%%Page: 349 349 +TeXDict begin 349 348 bop 0 83 a Fn(x)p Fm(1192)139 b +Fl(3DLDFPR)n(G)2309 b(DO)23 b(TRANSF)n(ORM)140 b Fm(349)0 +263 y Fk(1192.)94 b(Do)32 b(transform.)95 b Fm([)p Fh(LDF)26 b(2003.07.20.)p Fm(])60 b(P)n(erforms)26 b(a)h(transformation)f(on)h Fn(\003)p Fi(this)11 b Fm(.)83 363 y(If)26 b Fi(che)l(ck)37 b Fn(\021)23 b Fi(true)10 b Fm(,)26 b Fi(is)p 748 363 @@ -30163,22 +30173,21 @@ Fn(\003)o Fi(this)41 b Fm(to)28 b(b)r(ecome)h(non-elliptical,)f Fi(axis)p 3407 861 V 31 w(h)40 b Fm(and)29 b Fi(axis)p 3823 861 V 31 w(v)0 960 y Fm(are)e(recalculated.)p 0 -1036 1643 4 v 1738 1069 a Fk(Begin)k(Log)p 2257 1036 -V 83 1209 a Fm([)p Fh(LDF)25 b(2003.07.20.)p Fm(])55 -b(Added)22 b(this)g(function.)35 b(It)22 b(mak)n(es)e(it)i(p)r(ossible) -f(to)g(p)r(erform)g(a)g(transformation)f(on)h(an)g Fk(Ellipse)s -Fm(,)i(op-)0 1309 y(tionally)h(calling)h Fi(is)p 624 -1309 26 4 v 30 w(el)t(liptic)l(al)16 b Fm(\()e(\).)36 -b(It)25 b(is)g(called)g(in)g Fi(is)p 1662 1309 V 31 w(el)t(liptic)l(al) -15 b Fm(\()f(\))25 b(with)g Fi(che)l(ck)38 b Fn(\021)22 -b Fi(false)12 b Fm(.)36 b(This)25 b(prev)n(en)n(ts)f -Fk(op)s(erator)5 b Fn(\003)p Fm(=)o(\()14 b(\))0 1409 -y(and)27 b Fi(is)p 225 1409 V 31 w(el)t(liptic)l(al)16 -b Fm(\()e(\))28 b(from)f(calling)g(eac)n(h)g(other)g -Fi(ad)j(in\014nitum)p Fm(.)83 1508 y([)p Fh(LDF)25 b(2003.07.25.)p -Fm(])61 b(Added)28 b(co)r(de)g(for)f(recalculating)f -Fi(line)l(ar)p 2021 1508 V 31 w(e)l(c)l(c)l(entricity)12 -b Fm(,)28 b Fi(fo)l(cus0)44 b Fm(and)27 b Fi(fo)l(cus1)17 +1036 1779 4 v 1874 1069 a Fk(Log)p 2122 1036 V 83 1209 +a Fm([)p Fh(LDF)e(2003.07.20.)p Fm(])55 b(Added)22 b(this)g(function.) +35 b(It)22 b(mak)n(es)e(it)i(p)r(ossible)f(to)g(p)r(erform)g(a)g +(transformation)f(on)h(an)g Fk(Ellipse)s Fm(,)i(op-)0 +1309 y(tionally)h(calling)h Fi(is)p 624 1309 26 4 v 30 +w(el)t(liptic)l(al)16 b Fm(\()e(\).)36 b(It)25 b(is)g(called)g(in)g +Fi(is)p 1662 1309 V 31 w(el)t(liptic)l(al)15 b Fm(\()f(\))25 +b(with)g Fi(che)l(ck)38 b Fn(\021)22 b Fi(false)12 b +Fm(.)36 b(This)25 b(prev)n(en)n(ts)f Fk(op)s(erator)5 +b Fn(\003)p Fm(=)o(\()14 b(\))0 1409 y(and)27 b Fi(is)p +225 1409 V 31 w(el)t(liptic)l(al)16 b Fm(\()e(\))28 b(from)f(calling)g +(eac)n(h)g(other)g Fi(ad)j(in\014nitum)p Fm(.)83 1508 +y([)p Fh(LDF)25 b(2003.07.25.)p Fm(])61 b(Added)28 b(co)r(de)g(for)f +(recalculating)f Fi(line)l(ar)p 2021 1508 V 31 w(e)l(c)l(c)l(entricity) +12 b Fm(,)28 b Fi(fo)l(cus0)44 b Fm(and)27 b Fi(fo)l(cus1)17 b Fm(.)83 1608 y([)p Fh(LDF)25 b(2003.07.25.)p Fm(])61 b(BUG)28 b(FIX:)g Fi(axis)p 1295 1608 V 31 w(h)39 b Fm(and)27 b Fi(axis)p 1708 1608 V 31 w(v)41 b Fm(w)n(ere)27 b(to)r(o)g(small)g(b) @@ -30186,18 +30195,18 @@ 1708 y([)p Fh(LDF)e(2003.07.25.)p Fm(])61 b(Added)28 b(co)r(de)g(for)f(recalculating)f Fi(numeric)l(al)p 2172 1708 V 31 w(e)l(c)l(c)l(entricity)12 b Fm(.)p 0 1800 -1678 4 v 1773 1832 a Fk(End)32 b(Log)p 2222 1800 V 0 -1957 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2056 y Fk(virtual)33 -b(T)-8 b(ransform)33 b Fi(do)p 947 2056 26 4 v 31 w(tr)l(ansform)11 -b Fm(\()p Fk(const)33 b(T)-8 b(ransform)33 b Fm(&)p Fe(t;)14 -b Fk(b)s(o)s(ol)30 b Fi(che)l(ck)37 b Fm(=)23 b Fi(false)12 -b Fm(\);)p eop end -%%Page: 346 346 -TeXDict begin 346 345 bop 0 83 a Fm(346)140 b Fl(DO)23 -b(TRANSF)n(ORM)2307 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1188)0 -263 y Fk(1188.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3900 4 v 0 1957 a Fn(h)i Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2056 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(do)p 947 +2056 26 4 v 31 w(tr)l(ansform)11 b Fm(\()p Fk(const)33 +b(T)-8 b(ransform)33 b Fm(&)p Fe(t;)14 b Fk(b)s(o)s(ol)30 +b Fi(che)l(ck)37 b Fm(=)23 b Fi(false)12 b Fm(\);)p eop +end +%%Page: 350 350 +TeXDict begin 350 349 bop 0 83 a Fm(350)140 b Fl(DO)23 +b(TRANSF)n(ORM)2307 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1193)0 +263 y Fk(1193.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(Ellipse)11 b Fm(::)d Fi(do)p 979 487 26 4 v 32 w(tr)l(ansform)j Fm(\()p Fk(const)32 b(T)-8 b(ransform)34 b Fm(&)o Fe(t;)14 b Fk(b)s(o)s(ol)31 @@ -30307,95 +30316,91 @@ 4522 V 31 w(e)l(c)l(c)l(entricity)35 b Fm(=)23 b Ff(INVALID_REAL)o Fm(;)249 4622 y Fn(g)166 4721 y(g)166 4821 y Fk(return)33 b Fe(t)p Fm(;)83 4921 y Fn(g)p eop end -%%Page: 347 347 -TeXDict begin 347 346 bop 0 83 a Fn(x)p Fm(1189)139 b -Fl(3DLDFPR)n(G)2497 b(OPERA)-6 b(TOR)140 b Fm(347)0 263 -y Fk(1189.)94 b(Op)s(erator.)p 0 362 1643 4 v 1738 395 -a(Begin)31 b(Log)p 2257 362 V 83 536 a Fm([)p Fh(LDF)25 -b(2002.04.12.)p Fm(])61 b(Added)28 b(this)g(section.)83 -635 y([)p Fh(LDF)d(2003.07.20.)p Fm(])67 b(Changed,)35 -b(so)e(that)h(it)g(calls)f Fi(do)p 1785 635 26 4 v 32 -w(tr)l(ansform)11 b Fm(\()j(\))34 b(with)g Fi(che)l(ck)48 -b Fn(\021)32 b Fi(true)10 b Fm(,)36 b(so)d(that)h Fi(is)p -3390 635 V 31 w(el)t(liptic)l(al)15 b Fm(\()f(\))34 b(is)0 -735 y(called.)p 0 827 1678 4 v 1773 859 a Fk(End)e(Log)p -2222 827 V 0 984 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j -Fm(functions)36 b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -1084 y Fk(virtual)33 b(T)-8 b(ransform)33 b(op)s(erator)5 -b Fn(\003)p Fm(=)o(\()p Fk(const)33 b(T)-8 b(ransform)33 -b Fm(&)o Fe(t)p Fm(\);)0 1283 y Fk(1190.)0 1407 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 1507 y Fk(T)-8 b(ransform)33 -b(Ellipse)11 b Fm(::)d Fk(op)s(erator)d Fn(\003)p Fm(=)o(\()p -Fk(const)33 b(T)-8 b(ransform)33 b Fm(&)p Fe(t)p Fm(\))83 -1607 y Fn(f)166 1706 y Fk(return)g Fi(do)p 553 1706 26 -4 v 32 w(tr)l(ansform)10 b Fm(\()p Fe(t)q(;)k Fi(true)9 -b Fm(\);)83 1806 y Fn(g)0 2005 y Fk(1191.)94 b(Rotation)31 -b(around)i(the)e(main)h(axes.)p 0 2081 1643 4 v 1738 -2113 a(Begin)f(Log)p 2257 2081 V 83 2254 a Fm([)p Fh(LDF)25 -b(2003.07.25.)p Fm(])68 b(Changed,)36 b(so)e(that)h Fi(do)p -1509 2254 26 4 v 32 w(tr)l(ansform)10 b Fm(\()15 b(\))35 -b(is)f(called)h(with)g Fi(che)l(ck)49 b Fn(\021)34 b -Fi(false)12 b Fm(.)59 b(Rotation)34 b(can)g(neither)0 -2354 y(c)n(hange)25 b(the)i(lengths)f(of)h Fi(axis)p -939 2354 V 30 w(h)38 b Fm(or)25 b Fi(axis)p 1289 2354 +%%Page: 351 351 +TeXDict begin 351 350 bop 0 83 a Fn(x)p Fm(1194)139 b +Fl(3DLDFPR)n(G)2497 b(OPERA)-6 b(TOR)140 b Fm(351)0 263 +y Fk(1194.)94 b(Op)s(erator.)p 0 362 1779 4 v 1874 394 +a(Log)p 2122 362 V 83 535 a Fm([)p Fh(LDF)25 b(2002.04.12.)p +Fm(])61 b(Added)28 b(this)g(section.)83 635 y([)p Fh(LDF)d(2003.07.20.) +p Fm(])67 b(Changed,)35 b(so)e(that)h(it)g(calls)f Fi(do)p +1785 635 26 4 v 32 w(tr)l(ansform)11 b Fm(\()j(\))34 +b(with)g Fi(che)l(ck)48 b Fn(\021)32 b Fi(true)10 b Fm(,)36 +b(so)d(that)h Fi(is)p 3390 635 V 31 w(el)t(liptic)l(al)15 +b Fm(\()f(\))34 b(is)0 734 y(called.)p 0 826 3900 4 v +0 983 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 +b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1083 y Fk(virtual)33 +b(T)-8 b(ransform)33 b(op)s(erator)5 b Fn(\003)p Fm(=)o(\()p +Fk(const)33 b(T)-8 b(ransform)33 b Fm(&)o Fe(t)p Fm(\);)0 +1282 y Fk(1195.)0 1407 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1506 y Fk(T)-8 b(ransform)33 b(Ellipse)11 b Fm(::)d Fk(op)s(erator)d +Fn(\003)p Fm(=)o(\()p Fk(const)33 b(T)-8 b(ransform)33 +b Fm(&)p Fe(t)p Fm(\))83 1606 y Fn(f)166 1706 y Fk(return)g +Fi(do)p 553 1706 26 4 v 32 w(tr)l(ansform)10 b Fm(\()p +Fe(t)q(;)k Fi(true)9 b Fm(\);)83 1805 y Fn(g)0 2004 y +Fk(1196.)94 b(Rotation)31 b(around)i(the)e(main)h(axes.)p +0 2080 1779 4 v 1874 2113 a(Log)p 2122 2080 V 83 2253 +a Fm([)p Fh(LDF)25 b(2003.07.25.)p Fm(])68 b(Changed,)36 +b(so)e(that)h Fi(do)p 1509 2253 26 4 v 32 w(tr)l(ansform)10 +b Fm(\()15 b(\))35 b(is)f(called)h(with)g Fi(che)l(ck)49 +b Fn(\021)34 b Fi(false)12 b Fm(.)59 b(Rotation)34 b(can)g(neither)0 +2353 y(c)n(hange)25 b(the)i(lengths)f(of)h Fi(axis)p +939 2353 V 30 w(h)38 b Fm(or)25 b Fi(axis)p 1289 2353 V 31 w(v)14 b Fm(,)26 b(nor)g(mak)n(e)g(an)g Fk(Ellipse)j Fm(non-elliptical,)d(so)g(there's)g(no)g(need)g(to)h(c)n(hec)n(k)e Fn(\003)p Fi(this)0 2453 y Fm(after)i(rotation.)p 0 2545 -1678 4 v 1773 2578 a Fk(End)32 b(Log)p 2222 2545 V 0 -2702 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2802 y Fk(virtual)33 -b(T)-8 b(ransform)33 b Fi(r)l(otate)10 b Fm(\()p Fk(const)33 -b(real)g Fe(x;)14 b Fk(const)32 b(real)h Fe(y)26 b Fm(=)c(0)p -Fe(;)14 b Fk(const)32 b(real)h Fe(z)26 b Fm(=)d(0)o(\);)0 -3001 y Fk(1192.)0 3126 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3226 y Fk(T)-8 b(ransform)33 b(Ellipse)11 b Fm(::)d Fi(r)l(otate)j -Fm(\()p Fk(const)33 b(real)f Fe(x)q(;)14 b Fk(const)32 -b(real)g Fe(y)s(;)14 b Fk(const)32 b(real)h Fe(z)s Fm(\))83 -3325 y Fn(f)166 3425 y Fk(T)-8 b(ransform)33 b Fe(t)p -Fm(;)166 3549 y Fe(t:)p Fi(r)l(otate)11 b Fm(\()p Fe(x;)j(y)s(;)g(z)s -Fm(\);)166 3649 y Fk(return)33 b Fi(do)p 553 3649 26 +3900 4 v 0 2702 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2801 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(r)l(otate)10 +b Fm(\()p Fk(const)33 b(real)g Fe(x;)14 b Fk(const)32 +b(real)h Fe(y)26 b Fm(=)c(0)p Fe(;)14 b Fk(const)32 b(real)h +Fe(z)26 b Fm(=)d(0)o(\);)0 3001 y Fk(1197.)0 3125 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3225 y Fk(T)-8 b(ransform)33 +b(Ellipse)11 b Fm(::)d Fi(r)l(otate)j Fm(\()p Fk(const)33 +b(real)f Fe(x)q(;)14 b Fk(const)32 b(real)g Fe(y)s(;)14 +b Fk(const)32 b(real)h Fe(z)s Fm(\))83 3324 y Fn(f)166 +3424 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 3549 y +Fe(t:)p Fi(r)l(otate)11 b Fm(\()p Fe(x;)j(y)s(;)g(z)s +Fm(\);)166 3648 y Fk(return)33 b Fi(do)p 553 3648 26 4 v 32 w(tr)l(ansform)10 b Fm(\()p Fe(t)q(;)k Fi(false)d -Fm(\);)83 3749 y Fn(g)0 3948 y Fk(1193.)94 b(Scale.)p -0 4024 1643 4 v 1738 4056 a(Begin)31 b(Log)p 2257 4024 -V 83 4197 a Fm([)p Fh(LDF)25 b(2003.07.20.)p Fm(])61 -b(Added)28 b(c)n(hec)n(k)f(for)g(whether)h Fn(\003)o -Fi(this)39 b Fm(is)28 b(still)g(elliptical)f(after)h(the)g(scaling)e -(op)r(eration.)p 0 4289 1678 4 v 1773 4321 a Fk(End)32 -b(Log)p 2222 4289 V 0 4446 a Fn(h)14 b Fm(Declare)27 -b Fk(Ellipse)j Fm(functions)36 b Fl(1101)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 4546 y Fk(virtual)33 b(T)-8 b(ransform)33 +Fm(\);)83 3748 y Fn(g)0 3947 y Fk(1198.)94 b(Scale.)p +0 4023 1779 4 v 1874 4056 a(Log)p 2122 4023 V 83 4196 +a Fm([)p Fh(LDF)25 b(2003.07.20.)p Fm(])61 b(Added)28 +b(c)n(hec)n(k)f(for)g(whether)h Fn(\003)o Fi(this)39 +b Fm(is)28 b(still)g(elliptical)f(after)h(the)g(scaling)e(op)r +(eration.)p 0 4288 3900 4 v 0 4445 a Fn(h)14 b Fm(Declare)27 +b Fk(Ellipse)j Fm(functions)36 b Fl(1106)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 4545 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(sc)l(ale)11 b Fm(\()p Fk(real)33 b Fe(x;)14 b Fk(real)33 b Fe(y)25 b Fm(=)e(1)p Fe(;)14 b Fk(real)32 b Fe(z)26 b Fm(=)d(1)o(\);)p eop end -%%Page: 348 348 -TeXDict begin 348 347 bop 0 83 a Fm(348)140 b Fl(SCALE)2668 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1194)0 263 y Fk(1194.)0 +%%Page: 352 352 +TeXDict begin 352 351 bop 0 83 a Fm(352)140 b Fl(SCALE)2668 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1199)0 263 y Fk(1199.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 +b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(Ellipse)11 b Fm(::)d Fi(sc)l(ale)k Fm(\()p Fk(real)32 b Fe(x)q(;)14 b Fk(real)32 b Fe(y)s(;)14 b Fk(real)32 b Fe(z)s Fm(\))83 587 y Fn(f)166 686 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 811 y Fe(t:)p Fi(sc)l(ale)11 b Fm(\()p Fe(x)q(;)j(y)s(;)g(z)s Fm(\);)166 911 y Fk(return)33 b Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p Fm(=)23 b Fe(t)p -Fm(\);)83 1010 y Fn(g)0 1209 y Fk(1195.)94 b(Shear.)p -0 1285 1643 4 v 1738 1318 a(Begin)31 b(Log)p 2257 1285 -V 83 1459 a Fm([)p Fh(LDF)25 b(2003.07.20.)p Fm(])61 -b(Added)28 b(c)n(hec)n(k)f(for)g(whether)h Fn(\003)o -Fi(this)39 b Fm(is)28 b(still)g(elliptical)f(after)h(the)g(shearing)e -(op)r(eration.)p 0 1550 1678 4 v 1773 1583 a Fk(End)32 -b(Log)p 2222 1550 V 0 1708 a Fn(h)14 b Fm(Declare)27 -b Fk(Ellipse)j Fm(functions)36 b Fl(1101)15 b Fn(i)23 +Fm(\);)83 1010 y Fn(g)0 1209 y Fk(1200.)94 b(Shear.)p +0 1285 1779 4 v 1874 1318 a(Log)p 2122 1285 V 83 1459 +a Fm([)p Fh(LDF)25 b(2003.07.20.)p Fm(])61 b(Added)28 +b(c)n(hec)n(k)f(for)g(whether)h Fn(\003)o Fi(this)39 +b Fm(is)28 b(still)g(elliptical)f(after)h(the)g(shearing)e(op)r +(eration.)p 0 1550 3900 4 v 0 1708 a Fn(h)14 b Fm(Declare)27 +b Fk(Ellipse)j Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1807 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(she)l(ar)14 b Fm(\()p Fk(real)33 b Fi(xy)11 b Fe(;)j Fk(real)32 b Fi(xz)37 b Fm(=)23 b(0)p Fe(;)14 b Fk(real)32 b Fi(yx)37 b Fm(=)23 b(0)o Fe(;)14 b Fk(real)33 b Fi(yz)k Fm(=)23 b(0)o Fe(;)14 b Fk(real)33 b Fi(zx)k Fm(=)22 b(0)p Fe(;)14 b Fk(real)32 b Fi(zy)j Fm(=)23 b(0)o(\);)0 -2006 y Fk(1196.)0 2131 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2006 y Fk(1201.)0 2131 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2231 y Fk(T)-8 b(ransform)33 b(Ellipse)11 b Fm(::)d Fi(she)l(ar)14 b Fm(\()p Fk(real)33 b Fi(xy)12 b Fe(;)i Fk(real)32 b Fi(xz)14 b Fe(;)g Fk(real)32 b Fi(yx)14 b Fe(;)g Fk(real)33 @@ -30405,184 +30410,181 @@ b Fm(\()p Fi(xy)e Fe(;)i Fi(xz)g Fe(;)g Fi(yx)g Fe(;)g Fi(yz)g Fe(;)g Fi(zx)g Fe(;)g Fi(zy)d Fm(\);)166 2654 y Fk(return)33 b Fm(\()p Fn(\003)p Fi(this)h Fn(\003)p -Fm(=)23 b Fe(t)p Fm(\);)83 2754 y Fn(g)0 2953 y Fk(1197.)94 -b(Shift.)0 3152 y(1198.)g(real)32 b(argumen)m(ts.)p 0 -3251 1643 4 v 1738 3284 a(Begin)f(Log)p 2257 3251 V 83 -3425 a Fm([)p Fh(LDF)25 b(2003.07.25.)p Fm(])70 b(Changed,)39 -b(so)d(that)h Fi(do)p 1518 3425 26 4 v 32 w(tr)l(ansform)11 +Fm(=)23 b Fe(t)p Fm(\);)83 2754 y Fn(g)0 2953 y Fk(1202.)94 +b(Shift.)0 3152 y(1203.)g(real)32 b(argumen)m(ts.)p 0 +3251 1779 4 v 1874 3283 a(Log)p 2122 3251 V 83 3424 a +Fm([)p Fh(LDF)25 b(2003.07.25.)p Fm(])70 b(Changed,)39 +b(so)d(that)h Fi(do)p 1518 3424 26 4 v 32 w(tr)l(ansform)11 b Fm(\()j(\))37 b(is)g(called)f(with)i Fi(che)l(ck)52 b Fn(\021)38 b Fi(false)12 b Fm(.)65 b(Shifting)38 b(can)e(neither)0 3524 y(c)n(hange)25 b(the)i(lengths)f(of)h Fi(axis)p 939 3524 V 30 w(h)38 b Fm(or)25 b Fi(axis)p 1289 3524 V 31 w(v)14 b Fm(,)26 b(nor)g(mak)n(e)g(an)g Fk(Ellipse)j Fm(non-elliptical,)d(so)g(there's)g(no)g(need)g(to)h(c)n(hec)n(k)e -Fn(\003)p Fi(this)0 3624 y Fm(after)i(shifting.)p 0 3716 -1678 4 v 1773 3749 a Fk(End)32 b(Log)p 2222 3716 V 0 -3873 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3973 y Fk(virtual)33 -b(T)-8 b(ransform)33 b Fi(shift)13 b Fm(\()p Fk(real)33 -b Fi(xx)13 b Fe(;)h Fk(real)32 b Fi(yy)k Fm(=)22 b(0)p -Fe(;)14 b Fk(real)32 b Fi(zz)37 b Fm(=)23 b(0\);)0 4172 -y Fk(1199.)0 4297 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4396 y Fk(T)-8 b(ransform)33 b(Ellipse)11 b Fm(::)d Fi(shift)13 -b Fm(\()p Fk(real)33 b Fi(xx)13 b Fe(;)h Fk(real)33 b -Fi(yy)12 b Fe(;)i Fk(real)32 b Fi(zz)15 b Fm(\))83 4496 -y Fn(f)166 4595 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 -4720 y Fe(t:)p Fi(shift)13 b Fm(\()p Fi(xx)h Fe(;)g Fi(yy)e -Fe(;)i Fi(zz)g Fm(\);)166 4820 y Fk(return)33 b Fi(do)p -553 4820 26 4 v 32 w(tr)l(ansform)10 b Fm(\()p Fe(t)q(;)k -Fi(false)d Fm(\);)83 4919 y Fn(g)0 5118 y Fk(1200.)94 -b(P)m(oin)m(t)32 b(argumen)m(t.)0 5243 y Fn(h)14 b Fm(Declare)27 -b Fk(Ellipse)j Fm(functions)36 b Fl(1101)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 5343 y Fk(virtual)33 b(T)-8 b(ransform)33 -b Fi(shift)13 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o -Fe(p)p Fm(\);)p eop end -%%Page: 349 349 -TeXDict begin 349 348 bop 0 83 a Fn(x)p Fm(1201)139 b +Fn(\003)p Fi(this)0 3623 y Fm(after)i(shifting.)p 0 3715 +3900 4 v 0 3872 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3972 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(shift)13 +b Fm(\()p Fk(real)33 b Fi(xx)13 b Fe(;)h Fk(real)32 b +Fi(yy)k Fm(=)22 b(0)p Fe(;)14 b Fk(real)32 b Fi(zz)37 +b Fm(=)23 b(0\);)0 4171 y Fk(1204.)0 4296 y Fn(h)14 b +Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 4395 y Fk(T)-8 b(ransform)33 +b(Ellipse)11 b Fm(::)d Fi(shift)13 b Fm(\()p Fk(real)33 +b Fi(xx)13 b Fe(;)h Fk(real)33 b Fi(yy)12 b Fe(;)i Fk(real)32 +b Fi(zz)15 b Fm(\))83 4495 y Fn(f)166 4595 y Fk(T)-8 +b(ransform)33 b Fe(t)p Fm(;)166 4719 y Fe(t:)p Fi(shift)13 +b Fm(\()p Fi(xx)h Fe(;)g Fi(yy)e Fe(;)i Fi(zz)g Fm(\);)166 +4819 y Fk(return)33 b Fi(do)p 553 4819 26 4 v 32 w(tr)l(ansform)10 +b Fm(\()p Fe(t)q(;)k Fi(false)d Fm(\);)83 4918 y Fn(g)0 +5118 y Fk(1205.)94 b(P)m(oin)m(t)32 b(argumen)m(t.)0 +5242 y Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 +b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 5342 y Fk(virtual)33 +b(T)-8 b(ransform)33 b Fi(shift)13 b Fm(\()p Fk(const)33 +b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\);)p eop end +%%Page: 353 353 +TeXDict begin 353 352 bop 0 83 a Fn(x)p Fm(1206)139 b Fl(3DLDFPR)n(G)2139 b Fk(POINT)24 b Fl(AR)n(GUMENT)140 -b Fm(349)0 263 y Fk(1201.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 b Fn(i)23 +b Fm(353)0 263 y Fk(1206.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(Ellipse)11 b Fm(::)d Fi(shift)13 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)p Fe(p)o Fm(\))83 587 y Fn(f)166 686 y Fk(return)g Fi(shift)13 b Fm(\()p Fe(p:)p Fi(get)p 837 686 26 4 v 31 w(x)g Fm(\()h(\))p Fe(;)g(p)q(:)p Fi(get)p 1205 686 V 30 w(y)e Fm(\()i(\))p Fe(;)g(p:)p Fi(get)p 1571 686 -V 31 w(z)g Fm(\()g(\)\);)83 786 y Fn(g)0 985 y Fk(1202.)94 -b(Shift)32 b(times.)0 1185 y(1203.)94 b(real)32 b(argumen)m(ts.)p -0 1284 1643 4 v 1738 1316 a(Begin)f(Log)p 2257 1284 V -83 1457 a Fm([)p Fh(LDF)25 b(2003.07.25.)p Fm(])61 b(No)n(w)27 -b(p)r(erforming)g Fi(shift)p 1512 1457 26 4 v 31 w(times)12 +V 31 w(z)g Fm(\()g(\)\);)83 786 y Fn(g)0 985 y Fk(1207.)94 +b(Shift)32 b(times.)0 1185 y(1208.)94 b(real)32 b(argumen)m(ts.)p +0 1283 1779 4 v 1874 1316 a(Log)p 2122 1283 V 83 1456 +a Fm([)p Fh(LDF)25 b(2003.07.25.)p Fm(])61 b(No)n(w)27 +b(p)r(erforming)g Fi(shift)p 1512 1456 26 4 v 31 w(times)12 b Fm(\()i(\))28 b(on)f Fi(fo)l(cus0)44 b Fm(and)27 b -Fi(fo)l(cus1)17 b Fm(,)27 b(to)r(o.)p 0 1549 1678 4 v -1773 1582 a Fk(End)32 b(Log)p 2222 1549 V 0 1706 a Fn(h)14 -b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 b Fl(1101)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 1806 y Fk(virtual)33 b(v)m(oid)f -Fi(shift)p 761 1806 26 4 v 32 w(times)11 b Fm(\()p Fk(real)33 -b Fe(x;)14 b Fk(real)32 b Fe(y)26 b Fm(=)d(1)o Fe(;)14 -b Fk(real)33 b Fe(z)26 b Fm(=)d(1)o(\);)0 2005 y Fk(1204.)0 -2130 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2229 y Fk(v)m(oid)33 -b(Ellipse)10 b Fm(::)e Fi(shift)p 793 2229 V 32 w(times)j -Fm(\()p Fk(real)33 b Fe(x)q(;)14 b Fk(real)32 b Fe(y)s(;)14 -b Fk(real)32 b Fe(z)s Fm(\))83 2329 y Fn(f)166 2429 y -Fk(P)m(ath)14 b Fm(::)9 b Fi(shift)p 592 2429 V 31 w(times)i -Fm(\()p Fe(x)q(;)j(y)s(;)g(z)s Fm(\);)166 2528 y Fi(fo)l(cus1)i -Fe(:)p Fi(shift)p 586 2528 V 32 w(times)11 b Fm(\()p -Fe(x)q(;)j(y)r(;)g(z)s Fm(\);)166 2628 y Fi(fo)l(cus0)i -Fe(:)p Fi(shift)p 586 2628 V 32 w(times)11 b Fm(\()p -Fe(x)q(;)j(y)r(;)g(z)s Fm(\);)166 2727 y Fi(c)l(enter)f -Fe(:)p Fi(shift)p 581 2727 V 31 w(times)e Fm(\()p Fe(x)q(;)j(y)s(;)g(z) -s Fm(\);)166 2827 y Fk(return)5 b Fm(;)83 2927 y Fn(g)0 -3126 y Fk(1205.)94 b(P)m(oin)m(t)32 b(argumen)m(t.)0 -3250 y Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3350 y Fk(virtual)33 -b(v)m(oid)f Fi(shift)p 761 3350 V 32 w(times)11 b Fm(\()p -Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fe(p)p Fm(\);)0 3549 -y Fk(1206.)0 3674 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3773 y Fk(v)m(oid)33 b(Ellipse)10 b Fm(::)e Fi(shift)p -793 3773 V 32 w(times)j Fm(\()p Fk(const)33 b(P)m(oin)m(t)g -Fm(&)o Fe(p)p Fm(\))83 3873 y Fn(f)166 3973 y Fk(return)g -Fi(shift)p 623 3973 V 32 w(times)11 b Fm(\()p Fe(p:)p -Fi(get)p 1060 3973 V 30 w(x)j Fm(\()g(\))p Fe(;)g(p:)p -Fi(get)p 1427 3973 V 31 w(y)e Fm(\()i(\))p Fe(;)g(p:)p -Fi(get)p 1794 3973 V 30 w(z)h Fm(\()f(\)\);)83 4072 y -Fn(g)0 4272 y Fk(1207.)94 b(Rotatation)32 b(around)g(an)g(arbitrary)i -(axis.)p eop end -%%Page: 350 350 -TeXDict begin 350 349 bop 0 83 a Fm(350)140 b Fk(POINT)24 -b Fl(AR)n(GUMENTS)2098 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1208)0 -263 y Fk(1208.)94 b(P)m(oin)m(t)32 b(argumen)m(ts.)p -0 362 1643 4 v 1738 395 a(Begin)f(Log)p 2257 362 V 83 -536 a Fm([)p Fh(LDF)25 b(2003.05.02.)p Fm(])67 b(Changed)34 -b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p -2343 536 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f -Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 -635 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 -b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)83 735 y([)p +Fi(fo)l(cus1)17 b Fm(,)27 b(to)r(o.)p 0 1548 3900 4 v +0 1706 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 +b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1805 y Fk(virtual)33 +b(v)m(oid)f Fi(shift)p 761 1805 26 4 v 32 w(times)11 +b Fm(\()p Fk(real)33 b Fe(x;)14 b Fk(real)32 b Fe(y)26 +b Fm(=)d(1)o Fe(;)14 b Fk(real)33 b Fe(z)26 b Fm(=)d(1)o(\);)0 +2004 y Fk(1209.)0 2129 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2229 y Fk(v)m(oid)33 b(Ellipse)10 b Fm(::)e Fi(shift)p +793 2229 V 32 w(times)j Fm(\()p Fk(real)33 b Fe(x)q(;)14 +b Fk(real)32 b Fe(y)s(;)14 b Fk(real)32 b Fe(z)s Fm(\))83 +2328 y Fn(f)166 2428 y Fk(P)m(ath)14 b Fm(::)9 b Fi(shift)p +592 2428 V 31 w(times)i Fm(\()p Fe(x)q(;)j(y)s(;)g(z)s +Fm(\);)166 2527 y Fi(fo)l(cus1)i Fe(:)p Fi(shift)p 586 +2527 V 32 w(times)11 b Fm(\()p Fe(x)q(;)j(y)r(;)g(z)s +Fm(\);)166 2627 y Fi(fo)l(cus0)i Fe(:)p Fi(shift)p 586 +2627 V 32 w(times)11 b Fm(\()p Fe(x)q(;)j(y)r(;)g(z)s +Fm(\);)166 2727 y Fi(c)l(enter)f Fe(:)p Fi(shift)p 581 +2727 V 31 w(times)e Fm(\()p Fe(x)q(;)j(y)s(;)g(z)s Fm(\);)166 +2826 y Fk(return)5 b Fm(;)83 2926 y Fn(g)0 3125 y Fk(1210.)94 +b(P)m(oin)m(t)32 b(argumen)m(t.)0 3250 y Fn(h)14 b Fm(Declare)27 +b Fk(Ellipse)j Fm(functions)36 b Fl(1106)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 3349 y Fk(virtual)33 b(v)m(oid)f +Fi(shift)p 761 3349 V 32 w(times)11 b Fm(\()p Fk(const)33 +b(P)m(oin)m(t)f Fm(&)p Fe(p)p Fm(\);)0 3549 y Fk(1211.)0 +3673 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 +b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3773 y Fk(v)m(oid)33 +b(Ellipse)10 b Fm(::)e Fi(shift)p 793 3773 V 32 w(times)j +Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fe(p)p Fm(\))83 +3872 y Fn(f)166 3972 y Fk(return)g Fi(shift)p 623 3972 +V 32 w(times)11 b Fm(\()p Fe(p:)p Fi(get)p 1060 3972 +V 30 w(x)j Fm(\()g(\))p Fe(;)g(p:)p Fi(get)p 1427 3972 +V 31 w(y)e Fm(\()i(\))p Fe(;)g(p:)p Fi(get)p 1794 3972 +V 30 w(z)h Fm(\()f(\)\);)83 4072 y Fn(g)0 4271 y Fk(1212.)94 +b(Rotatation)32 b(around)g(an)g(arbitrary)i(axis.)p eop +end +%%Page: 354 354 +TeXDict begin 354 353 bop 0 83 a Fm(354)140 b Fk(POINT)24 +b Fl(AR)n(GUMENTS)2098 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1213)0 +263 y Fk(1213.)94 b(P)m(oin)m(t)32 b(argumen)m(ts.)p +0 362 1779 4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm([)p +Fh(LDF)25 b(2003.05.02.)p Fm(])67 b(Changed)34 b(name)f(of)h(this)h +(function)f(from)g Fi(r)l(otate)p 2343 535 26 4 v 30 +w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f Fi(r)l(otate)10 +b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 635 +y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 +b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)83 734 y([)p Fh(LDF)25 b(2003.07.25.)p Fm(])68 b(Changed,)36 b(so)e(that)h -Fi(do)p 1509 735 V 32 w(tr)l(ansform)10 b Fm(\()15 b(\))35 +Fi(do)p 1509 734 V 32 w(tr)l(ansform)10 b Fm(\()15 b(\))35 b(is)f(called)h(with)g Fi(che)l(ck)49 b Fn(\021)34 b Fi(false)12 b Fm(.)59 b(Rotation)34 b(can)g(neither)0 834 y(c)n(hange)25 b(the)i(lengths)f(of)h Fi(axis)p 939 834 V 30 w(h)38 b Fm(or)25 b Fi(axis)p 1289 834 V 31 w(v)14 b Fm(,)26 b(nor)g(mak)n(e)g(an)g Fk(Ellipse)j Fm(non-elliptical,)d(so)g(there's)g(no)g(need)g(to)h(c)n(hec)n(k)e -Fn(\003)p Fi(this)0 934 y Fm(after)i(rotation.)p 0 1026 -1678 4 v 1773 1059 a Fk(End)32 b(Log)p 2222 1026 V 0 -1183 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1283 y Fk(virtual)33 -b(T)-8 b(ransform)33 b Fi(r)l(otate)10 b Fm(\()p Fk(const)33 -b(P)m(oin)m(t)g Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)32 -b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fe(;)e Fk(const)32 -b(real)h Fi(angle)h Fm(=)23 b(180)n(\);)0 1482 y Fk(1209.)0 -1607 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1706 y Fk(T)-8 -b(ransform)33 b(Ellipse)11 b Fm(::)d Fi(r)l(otate)j Fm(\()p -Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fi(p0)16 b Fe(;)e -Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(p1)17 b Fe(;)d -Fk(const)32 b(real)g Fi(angle)11 b Fm(\))83 1806 y Fn(f)166 -1905 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 2030 y -Fe(t:)p Fi(r)l(otate)11 b Fm(\()p Fi(p0)16 b Fe(;)e Fi(p1)i -Fe(;)e Fi(angle)e Fm(\);)166 2130 y Fk(return)33 b Fi(do)p -553 2130 26 4 v 32 w(tr)l(ansform)10 b Fm(\()p Fe(t)q(;)k -Fi(false)d Fm(\);)83 2229 y Fn(g)0 2429 y Fk(1210.)94 -b(P)m(ath)33 b(argumen)m(ts.)p 0 2528 1643 4 v 1738 2560 -a(Begin)e(Log)p 2257 2528 V 83 2701 a Fm([)p Fh(LDF)25 +Fn(\003)p Fi(this)0 933 y Fm(after)i(rotation.)p 0 1025 +3900 4 v 0 1182 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1282 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(r)l(otate)10 +b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)p Fi(p0)16 +b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 +b Fe(;)e Fk(const)32 b(real)h Fi(angle)h Fm(=)23 b(180)n(\);)0 +1481 y Fk(1214.)0 1606 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1706 y Fk(T)-8 b(ransform)33 b(Ellipse)11 b Fm(::)d Fi(r)l(otate)j +Fm(\()p Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fi(p0)16 b +Fe(;)e Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(p1)17 b +Fe(;)d Fk(const)32 b(real)g Fi(angle)11 b Fm(\))83 1805 +y Fn(f)166 1905 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 +2029 y Fe(t:)p Fi(r)l(otate)11 b Fm(\()p Fi(p0)16 b Fe(;)e +Fi(p1)i Fe(;)e Fi(angle)e Fm(\);)166 2129 y Fk(return)33 +b Fi(do)p 553 2129 26 4 v 32 w(tr)l(ansform)10 b Fm(\()p +Fe(t)q(;)k Fi(false)d Fm(\);)83 2229 y Fn(g)0 2428 y +Fk(1215.)94 b(P)m(ath)33 b(argumen)m(ts.)p 0 2526 1779 +4 v 1874 2559 a(Log)p 2122 2526 V 83 2700 a Fm([)p Fh(LDF)25 b(2003.05.02.)p Fm(])67 b(Changed)34 b(name)f(of)h(this)h(function)f -(from)g Fi(r)l(otate)p 2343 2701 26 4 v 30 w(ar)l(ound)13 +(from)g Fi(r)l(otate)p 2343 2700 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 -b(This)34 b(function)h(no)n(w)0 2801 y(o)n(v)n(erloads)25 +b(This)34 b(function)h(no)n(w)0 2799 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 b(with)g(three)g Fk(real)k -Fm(argumen)n(ts.)p 0 2893 1678 4 v 1773 2925 a Fk(End)g(Log)p -2222 2893 V 0 3050 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j -Fm(functions)36 b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3149 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(r)l(otate)10 -b Fm(\()p Fk(const)33 b(P)m(ath)h Fm(&)o Fe(p;)14 b Fk(const)32 -b(real)h Fi(angle)h Fm(=)23 b(180)n(\);)p eop end -%%Page: 351 351 -TeXDict begin 351 350 bop 0 83 a Fn(x)p Fm(1211)139 b +Fm(argumen)n(ts.)p 0 2891 3900 4 v 0 3048 a Fn(h)14 b +Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 b Fl(1106)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3148 y Fk(virtual)33 b(T)-8 +b(ransform)33 b Fi(r)l(otate)10 b Fm(\()p Fk(const)33 +b(P)m(ath)h Fm(&)o Fe(p;)14 b Fk(const)32 b(real)h Fi(angle)h +Fm(=)23 b(180)n(\);)p eop end +%%Page: 355 355 +TeXDict begin 355 354 bop 0 83 a Fn(x)p Fm(1216)139 b Fl(3DLDFPR)n(G)2151 b Fk(P)-8 b(A)g(TH)25 b Fl(AR)n(GUMENTS)140 -b Fm(351)0 263 y Fk(1211.)p 0 339 1643 4 v 1738 371 a(Begin)31 -b(Log)p 2257 339 V 83 512 a Fm([)p Fh(LDF)25 b(2003.04.27.)p +b Fm(355)0 263 y Fk(1216.)p 0 339 1779 4 v 1874 371 a(Log)p +2122 339 V 83 512 a Fm([)p Fh(LDF)25 b(2003.04.27.)p Fm(])61 b(Changed)27 b Fi(get)p 1194 512 26 4 v 31 w(p)l(oint)12 b Fm(\(1\))28 b(to)f Fi(get)p 1756 512 V 31 w(last)p -1912 512 V 31 w(p)l(oint)12 b Fm(\()i(\).)p 0 604 1678 -4 v 1773 637 a Fk(End)32 b(Log)p 2222 604 V 0 761 a Fn(h)14 -b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 861 y Fk(T)-8 b(ransform)33 -b(Ellipse)11 b Fm(::)d Fi(r)l(otate)j Fm(\()p Fk(const)33 -b(P)m(ath)g Fm(&)p Fe(p;)14 b Fk(const)32 b(real)g Fi(angle)12 -b Fm(\))83 960 y Fn(f)166 1060 y Fk(if)41 b Fm(\()p Fn(:)p -Fe(p)q(:)p Fi(is)p 480 1060 26 4 v 31 w(line)l(ar)14 -b Fm(\()g(\)\))42 b Fn(f)249 1160 y Fi(c)l(err)73 b Fn(\034)60 -b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Elli)o(pse)o(::)-7 -b(rotate\(Path,)p Fj( )p Ff(real)o(\).)o(\\)h(n")63 b -Fn(\034)415 1259 y Ff("Path)p Fj( )p Ff(is)p Fj( )p Ff(not)p -Fj( )p Ff(a)p Fj( )p Ff(l)o(ine)o(.)-6 b Fj( )p Ff(Returning)p -Fj( )p Ff(INVA)o(LI)o(D_)g(TRANSFORM.\\n\\n")n Fm(;)249 -1359 y Fk(return)33 b Ff(INVALID_TRANSFORM)m Fm(;)166 -1459 y Fn(g)166 1558 y Fk(return)g Fi(r)l(otate)11 b -Fm(\()p Fe(p:)p Fi(get)p 890 1558 V 30 w(p)l(oint)i Fm(\(0)o(\))p +1912 512 V 31 w(p)l(oint)12 b Fm(\()i(\).)p 0 604 3900 +4 v 0 761 a Fn(h)g Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 +b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 861 y Fk(T)-8 +b(ransform)33 b(Ellipse)11 b Fm(::)d Fi(r)l(otate)j Fm(\()p +Fk(const)33 b(P)m(ath)g Fm(&)p Fe(p;)14 b Fk(const)32 +b(real)g Fi(angle)12 b Fm(\))83 960 y Fn(f)166 1060 y +Fk(if)41 b Fm(\()p Fn(:)p Fe(p)q(:)p Fi(is)p 480 1060 +26 4 v 31 w(line)l(ar)14 b Fm(\()g(\)\))42 b Fn(f)249 +1160 y Fi(c)l(err)73 b Fn(\034)60 b Ff("ERROR!)p Fj( )p +Ff(In)p Fj( )p Ff(Elli)o(pse)o(::)-7 b(rotate\(Path,)p +Fj( )p Ff(real)o(\).)o(\\)h(n")63 b Fn(\034)415 1259 +y Ff("Path)p Fj( )p Ff(is)p Fj( )p Ff(not)p Fj( )p Ff(a)p +Fj( )p Ff(l)o(ine)o(.)-6 b Fj( )p Ff(Returning)p Fj( )p +Ff(INVA)o(LI)o(D_)g(TRANSFORM.\\n\\n")n Fm(;)249 1359 +y Fk(return)33 b Ff(INVALID_TRANSFORM)m Fm(;)166 1459 +y Fn(g)166 1558 y Fk(return)g Fi(r)l(otate)11 b Fm(\()p +Fe(p:)p Fi(get)p 890 1558 V 30 w(p)l(oint)i Fm(\(0)o(\))p Fe(;)h(p:)p Fi(get)p 1424 1558 V 31 w(last)p 1580 1558 V 31 w(p)l(oint)e Fm(\()i(\))p Fe(;)g Fi(angle)e Fm(\);)83 -1658 y Fn(g)0 1857 y Fk(1212.)94 b(Rectangles.)0 2056 -y(1213.)g(Surrounding)32 b(rectangle.)p 0 2156 1643 4 -v 1738 2188 a(Begin)f(Log)p 2257 2156 V 83 2329 a Fm([)p -Fh(LDF)25 b(2003.07.18.)p Fm(])61 b(Made)27 b Fk(const)5 -b Fm(.)p 0 2421 1678 4 v 1773 2453 a Fk(End)32 b(Log)p -2222 2421 V 0 2578 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j -Fm(functions)36 b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2678 y Fk(Rectangle)32 b Fi(out)p 648 2678 26 4 v 30 +1658 y Fn(g)0 1857 y Fk(1217.)94 b(Rectangles.)0 2056 +y(1218.)g(Surrounding)32 b(rectangle.)p 0 2155 1779 4 +v 1874 2188 a(Log)p 2122 2155 V 83 2328 a Fm([)p Fh(LDF)25 +b(2003.07.18.)p Fm(])61 b(Made)27 b Fk(const)5 b Fm(.)p +0 2420 3900 4 v 0 2577 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j +Fm(functions)36 b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2677 y Fk(Rectangle)32 b Fi(out)p 648 2677 26 4 v 30 w(r)l(e)l(ctangle)11 b Fm(\()j(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 352 352 -TeXDict begin 352 351 bop 0 83 a Fm(352)140 b Fl(SURR)n(OUNDING)23 -b(RECT)-6 b(ANGLE)1889 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1214)0 -263 y Fk(1214.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 356 356 +TeXDict begin 356 355 bop 0 83 a Fm(356)140 b Fl(SURR)n(OUNDING)23 +b(RECT)-6 b(ANGLE)1889 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1219)0 +263 y Fk(1219.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Rectangle)32 b(Ellipse)11 b Fm(::)d Fi(out)p 992 487 26 4 v 30 w(r)l(e)l(ctangle)j Fm(\()j(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(P)m(oin)m(t)33 b @@ -30625,20 +30627,19 @@ Fm(\()p Ff("9")t Fm(\);)0 3650 y(#)p Fk(endif)166 3775 y(Rectangle)32 b Fe(r)s Fm(\()p Fi(pt6)16 b Fe(;)e Fi(pt9)i Fe(;)e Fi(pt8)i Fe(;)e Fi(pt5)h Fm(\);)166 3899 y Fk(return)33 -b Fe(r)s Fm(;)83 3999 y Fn(g)0 4198 y Fk(1215.)94 b(Inscrib)s(ed)31 -b(rectangle.)p 0 4298 1643 4 v 1738 4330 a(Begin)g(Log)p -2257 4298 V 83 4471 a Fm([)p Fh(LDF)25 b(2003.07.18.)p -Fm(])61 b(Made)27 b Fk(const)5 b Fm(.)p 0 4563 1678 4 -v 1773 4595 a Fk(End)32 b(Log)p 2222 4563 V 0 4720 a -Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 -b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4820 y Fk(Rectangle)32 -b Fi(in)p 605 4820 26 4 v 31 w(r)l(e)l(ctangle)10 b Fm(\()k(\))28 +b Fe(r)s Fm(;)83 3999 y Fn(g)0 4198 y Fk(1220.)94 b(Inscrib)s(ed)31 +b(rectangle.)p 0 4297 1779 4 v 1874 4329 a(Log)p 2122 +4297 V 83 4470 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])61 +b(Made)27 b Fk(const)5 b Fm(.)p 0 4562 3900 4 v 0 4719 +a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j Fm(functions)36 +b Fl(1106)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4819 y Fk(Rectangle)32 +b Fi(in)p 605 4819 26 4 v 31 w(r)l(e)l(ctangle)10 b Fm(\()k(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 353 353 -TeXDict begin 353 352 bop 0 83 a Fn(x)p Fm(1216)139 b +%%Page: 357 357 +TeXDict begin 357 356 bop 0 83 a Fn(x)p Fm(1221)139 b Fl(3DLDFPR)n(G)2034 b(INSCRIBED)24 b(RECT)-6 b(ANGLE)141 -b Fm(353)0 263 y Fk(1216.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 b Fn(i)23 +b Fm(357)0 263 y Fk(1221.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Rectangle)32 b(Ellipse)11 b Fm(::)d Fi(in)p 949 487 26 4 v 31 w(r)l(e)l(ctangle)i Fm(\()15 b(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(Rectangle)k @@ -30673,64 +30674,62 @@ Fi(bpp0)j Fe(:)p Fi(\014rst)11 b Fe(:)p Fi(pt)i Fe(;)h Fi(bpp1)i Fe(:)p Fi(se)l(c)l(ond)e Fe(:)p Fi(pt)e Fm(\);)166 1807 y Fk(return)33 b Fi(r1)16 b Fm(;)83 1907 y Fn(g)0 -2106 y Fk(1217.)94 b(Dra)m(w)33 b(surrounding)e(rectangle.)p -0 2205 1643 4 v 1738 2238 a(Begin)g(Log)p 2257 2205 V -83 2379 a Fm([)p Fh(LDF)25 b(2003.07.01.)p Fm(])62 b(Changed)27 +2106 y Fk(1222.)94 b(Dra)m(w)33 b(surrounding)e(rectangle.)p +0 2205 1779 4 v 1874 2237 a(Log)p 2122 2205 V 83 2378 +a Fm([)p Fh(LDF)25 b(2003.07.01.)p Fm(])62 b(Changed)27 b(the)i(return)f(v)-5 b(alue)28 b(from)g Fk(v)m(oid)33 b Fm(to)28 b Fk(Rectangle)5 b Fm(.)39 b(No)n(w)27 b(the)i(surrounding)e -Fk(Rectangle)0 2478 y Fm(is)g(returned.)83 2578 y([)p +Fk(Rectangle)0 2478 y Fm(is)g(returned.)83 2577 y([)p Fh(LDF)e(2003.07.18.)p Fm(])61 b(Made)27 b Fk(const)5 -b Fm(.)p 0 2670 1678 4 v 1773 2702 a Fk(End)32 b(Log)p -2222 2670 V 0 2827 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j -Fm(functions)36 b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2927 y Fk(Rectangle)38 b Fi(dr)l(aw)p 709 2927 26 4 v -32 w(out)p 856 2927 V 30 w(r)l(e)l(ctangle)10 b Fm(\()p -Fk(const)40 b(Color)e Fm(&)o Fi(ddr)l(aw)p 2048 2927 -V 32 w(c)l(olor)48 b Fm(=)33 b Fn(\003)p Fk(Colors)12 -b Fm(::)c Fi(default)p 3018 2927 V 31 w(c)l(olor)15 b +b Fm(.)p 0 2669 3900 4 v 0 2826 a Fn(h)14 b Fm(Declare)27 +b Fk(Ellipse)j Fm(functions)36 b Fl(1106)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 2926 y Fk(Rectangle)38 b Fi(dr)l(aw)p +709 2926 26 4 v 32 w(out)p 856 2926 V 30 w(r)l(e)l(ctangle)10 +b Fm(\()p Fk(const)40 b(Color)e Fm(&)o Fi(ddr)l(aw)p +2048 2926 V 32 w(c)l(olor)48 b Fm(=)33 b Fn(\003)p Fk(Colors)12 +b Fm(::)c Fi(default)p 3018 2926 V 31 w(c)l(olor)15 b Fe(;)f Fk(string)249 3026 y Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(string)33 b Fi(pp)l(en)h Fm(=)23 b Ff("")t Fe(;)14 b Fk(Picture)32 b Fm(&)p Fi(pictur)l(e)i Fm(=)22 b Fi(curr)l(ent)p 2511 3026 V 30 w(pictur)l(e)10 -b Fm(\))28 b Fk(const)5 b Fm(;)0 3226 y Fk(1218.)0 3350 +b Fm(\))28 b Fk(const)5 b Fm(;)0 3225 y Fk(1223.)0 3349 y Fn(h)14 b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 -b Fl(1102)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3450 y Fk(Rectangle)38 -b(Ellipse)11 b Fm(::)d Fi(dr)l(aw)p 1053 3450 V 32 w(out)p -1200 3450 V 30 w(r)l(e)l(ctangle)j Fm(\()p Fk(const)39 -b(Color)g Fm(&)o Fi(ddr)l(aw)p 2393 3450 V 32 w(c)l(olor)14 +b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3449 y Fk(Rectangle)38 +b(Ellipse)11 b Fm(::)d Fi(dr)l(aw)p 1053 3449 V 32 w(out)p +1200 3449 V 30 w(r)l(e)l(ctangle)j Fm(\()p Fk(const)39 +b(Color)g Fm(&)o Fi(ddr)l(aw)p 2393 3449 V 32 w(c)l(olor)14 b Fe(;)g Fk(string)40 b Fi(ddashe)l(d)15 b Fe(;)f Fk(string)415 3549 y Fi(pp)l(en)d Fe(;)j Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)10 -b Fm(\))28 b Fk(const)83 3649 y Fn(f)166 3749 y Fk(Rectangle)k -Fe(r)26 b Fm(=)c Fi(out)p 881 3749 V 30 w(r)l(e)l(ctangle)11 -b Fm(\()j(\);)166 3873 y Fe(r)s(:)p Fi(dr)l(aw)g Fm(\()p -Fi(ddr)l(aw)p 662 3873 V 32 w(c)l(olor)g Fe(;)g Fi(ddashe)l(d)h +b Fm(\))28 b Fk(const)83 3648 y Fn(f)166 3748 y Fk(Rectangle)k +Fe(r)26 b Fm(=)c Fi(out)p 881 3748 V 30 w(r)l(e)l(ctangle)11 +b Fm(\()j(\);)166 3872 y Fe(r)s(:)p Fi(dr)l(aw)g Fm(\()p +Fi(ddr)l(aw)p 662 3872 V 32 w(c)l(olor)g Fe(;)g Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)c Fm(\);)166 -3973 y Fk(return)33 b Fe(r)s Fm(;)83 4072 y Fn(g)0 4272 -y Fk(1219.)94 b(Dra)m(w)33 b(inscrib)s(ed)e(rectangle.)p -0 4371 1643 4 v 1738 4404 a(Begin)g(Log)p 2257 4371 V -83 4544 a Fm([)p Fh(LDF)25 b(2003.07.01.)p Fm(])63 b(Changed)30 +3972 y Fk(return)33 b Fe(r)s Fm(;)83 4072 y Fn(g)0 4271 +y Fk(1224.)94 b(Dra)m(w)33 b(inscrib)s(ed)e(rectangle.)p +0 4369 1779 4 v 1874 4402 a(Log)p 2122 4369 V 83 4543 +a Fm([)p Fh(LDF)25 b(2003.07.01.)p Fm(])63 b(Changed)30 b(the)g(return)f(v)-5 b(alue)30 b(from)g Fk(v)m(oid)35 b Fm(to)29 b Fk(Rectangle)5 b Fm(.)43 b(No)n(w)30 b(the)g(inscrib)r(ed) -g Fk(Rectangle)k Fm(is)0 4644 y(returned.)83 4743 y([)p +g Fk(Rectangle)k Fm(is)0 4642 y(returned.)83 4742 y([)p Fh(LDF)25 b(2003.07.18.)p Fm(])61 b(Made)27 b Fk(const)5 -b Fm(.)p 0 4835 1678 4 v 1773 4868 a Fk(End)32 b(Log)p -2222 4835 V 0 4993 a Fn(h)14 b Fm(Declare)27 b Fk(Ellipse)j -Fm(functions)36 b Fl(1101)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -5092 y Fk(Rectangle)39 b Fi(dr)l(aw)p 710 5092 26 4 v -31 w(in)p 813 5092 V 31 w(r)l(e)l(ctangle)11 b Fm(\()p -Fk(const)39 b(Color)g Fm(&)p Fi(ddr)l(aw)p 2008 5092 -V 31 w(c)l(olor)49 b Fm(=)35 b Fn(\003)o Fk(Colors)12 -b Fm(::)d Fi(default)p 2980 5092 V 31 w(c)l(olor)14 b -Fe(;)g Fk(string)249 5192 y Fi(ddashe)l(d)38 b Fm(=)23 +b Fm(.)p 0 4834 3900 4 v 0 4991 a Fn(h)14 b Fm(Declare)27 +b Fk(Ellipse)j Fm(functions)36 b Fl(1106)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 5091 y Fk(Rectangle)39 b Fi(dr)l(aw)p +710 5091 26 4 v 31 w(in)p 813 5091 V 31 w(r)l(e)l(ctangle)11 +b Fm(\()p Fk(const)39 b(Color)g Fm(&)p Fi(ddr)l(aw)p +2008 5091 V 31 w(c)l(olor)49 b Fm(=)35 b Fn(\003)o Fk(Colors)12 +b Fm(::)d Fi(default)p 2980 5091 V 31 w(c)l(olor)14 b +Fe(;)g Fk(string)249 5190 y Fi(ddashe)l(d)38 b Fm(=)23 b Ff("")s Fe(;)14 b Fk(string)33 b Fi(pp)l(en)h Fm(=)23 b Ff("")t Fe(;)14 b Fk(Picture)32 b Fm(&)p Fi(pictur)l(e)i -Fm(=)22 b Fi(curr)l(ent)p 2511 5192 V 30 w(pictur)l(e)10 +Fm(=)22 b Fi(curr)l(ent)p 2511 5190 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 354 354 -TeXDict begin 354 353 bop 0 83 a Fm(354)140 b Fl(DRA)-8 +%%Page: 358 358 +TeXDict begin 358 357 bop 0 83 a Fm(358)140 b Fl(DRA)-8 b(W)23 b(INSCRIBED)i(RECT)-6 b(ANGLE)1786 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(1220)0 263 y Fk(1220.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Ellipse)i Fm(functions)36 b Fl(1102)15 b Fn(i)23 +b Fn(x)p Fm(1225)0 263 y Fk(1225.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Ellipse)i Fm(functions)36 b Fl(1107)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Rectangle)39 b(Ellipse)11 b Fm(::)d Fi(dr)l(aw)p 1054 487 26 4 v 32 w(in)p 1158 487 V 30 w(r)l(e)l(ctangle)j Fm(\()p Fk(const)40 b(Color)f @@ -30743,291 +30742,286 @@ Fi(ddr)l(aw)p 662 911 V 32 w(c)l(olor)g Fe(;)g Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)c Fm(\);)166 1010 y Fk(return)33 b Fe(r)s Fm(;)83 1110 y Fn(g)0 1309 -y Fk(1221.)94 b(Rectangle)23 b(functions.)94 b Fm([)p +y Fk(1226.)94 b(Rectangle)23 b(functions.)94 b Fm([)p Fh(LDF)26 b(2003.07.18.)p Fm(])53 b(TO)20 b(DO:)g(Add)h Fi(undr)l(aw)p 2657 1309 V 30 w(in)p 2759 1309 V 31 w(el)t(lipse)12 b Fm(\()i(\),)22 b Fi(\014l)t(l)p 3241 1309 V 31 w(out)p 3387 1309 V 30 w(el)t(lipse)13 b Fm(\()h(\),)22 b(etc.)0 1409 y(Also,)27 b(I)h(should)f(add)h(v)n(ersions)e(with)i(the)g -Fk(Picture)33 b Fm(argumen)n(t)26 b(\014rst.)p 0 1508 -1643 4 v 1738 1541 a Fk(Begin)31 b(Log)p 2257 1508 V -83 1681 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])58 b(Added)25 -b(this)f(section.)36 b(These)24 b(functions)g(are)g(declared)f(in)i -Fj(rectangs.web)p Fm(,)20 b(but)25 b(m)n(ust)f(b)r(e)h(de\014ned)0 -1781 y(here,)i(b)r(ecause)g Fk(Ellipse)k Fm(is)c(an)g(incomplete)h(t)n -(yp)r(e)g(there.)p 0 1873 1678 4 v 1773 1905 a Fk(End)k(Log)p -2222 1873 V 0 2105 a(1222.)94 b(Ellipses.)p eop end -%%Page: 355 355 -TeXDict begin 355 354 bop 0 83 a Fn(x)p Fm(1223)139 b +Fk(Picture)33 b Fm(argumen)n(t)26 b(\014rst.)p 0 1507 +1779 4 v 1874 1540 a Fk(Log)p 2122 1507 V 83 1681 a Fm([)p +Fh(LDF)f(2003.07.18.)p Fm(])58 b(Added)25 b(this)f(section.)36 +b(These)24 b(functions)g(are)g(declared)f(in)i Fj(rectangs.web)p +Fm(,)20 b(but)25 b(m)n(ust)f(b)r(e)h(de\014ned)0 1780 +y(here,)i(b)r(ecause)g Fk(Ellipse)k Fm(is)c(an)g(incomplete)h(t)n(yp)r +(e)g(there.)p 0 1872 3900 4 v 0 2104 a Fk(1227.)94 b(Ellipses.)p +eop end +%%Page: 359 359 +TeXDict begin 359 358 bop 0 83 a Fn(x)p Fm(1228)139 b Fl(3DLDFPR)n(G)1944 b(SURR)n(OUNDING)24 b Fk(ELLIPSE)141 -b Fm(355)0 263 y Fk(1223.)94 b(Surrounding)32 b(Ellipse.)p -0 362 1643 4 v 1738 395 a(Begin)f(Log)p 2257 362 V 83 -536 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 628 1678 4 v 1773 660 a Fk(End)k(Log)p -2222 628 V 0 785 a Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k -Fm(functions)k Fl(1059)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +b Fm(359)0 263 y Fk(1228.)94 b(Surrounding)32 b(Ellipse.)p +0 362 1779 4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm([)p +Fh(LDF)25 b(2003.07.18.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 627 3900 4 v 0 784 a Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k +Fm(functions)k Fl(1062)15 b Fn(i)23 b Fm(+)p Fn(\021)83 884 y Fk(Ellipse)30 b(Rectangle)13 b Fm(::)8 b Fi(out)p 992 884 26 4 v 30 w(el)t(lipse)13 b Fm(\()h(\))28 b Fk(const)83 -984 y Fn(f)166 1084 y Fk(P)m(oin)m(t)33 b Fe(C)c Fm(=)23 -b Fi(get)p 708 1084 V 30 w(c)l(enter)13 b Fm(\()h(\);)166 -1183 y Fk(P)m(oin)m(t)33 b Fi(p0)39 b Fm(=)23 b Fi(get)p -743 1183 V 30 w(p)l(oint)13 b Fm(\(0\);)166 1283 y Fk(P)m(oin)m(t)33 -b Fe(M)f Fm(=)22 b Fi(get)p 732 1283 V 31 w(mid)p 898 -1283 V 31 w(p)l(oint)12 b Fm(\(1\);)166 1382 y Fk(P)m(oin)m(t)33 +983 y Fn(f)166 1083 y Fk(P)m(oin)m(t)33 b Fe(C)c Fm(=)23 +b Fi(get)p 708 1083 V 30 w(c)l(enter)13 b Fm(\()h(\);)166 +1182 y Fk(P)m(oin)m(t)33 b Fi(p0)39 b Fm(=)23 b Fi(get)p +743 1182 V 30 w(p)l(oint)13 b Fm(\(0\);)166 1282 y Fk(P)m(oin)m(t)33 +b Fe(M)f Fm(=)22 b Fi(get)p 732 1282 V 31 w(mid)p 898 +1282 V 31 w(p)l(oint)12 b Fm(\(1\);)166 1382 y Fk(P)m(oin)m(t)33 b Fi(normal)j Fm(=)23 b Fi(get)p 911 1382 V 31 w(normal)13 -b Fm(\()h(\);)166 1507 y Fi(normal)g Fe(:)p Fi(shift)f -Fm(\()p Fe(C)6 b Fm(\);)166 1632 y Fk(real)33 b Fi(out)p -475 1632 V 30 w(distanc)l(e)h Fm(=)22 b(\()p Fi(p0)36 +b Fm(\()h(\);)166 1506 y Fi(normal)g Fe(:)p Fi(shift)f +Fm(\()p Fe(C)6 b Fm(\);)166 1631 y Fk(real)33 b Fi(out)p +475 1631 V 30 w(distanc)l(e)h Fm(=)22 b(\()p Fi(p0)36 b Fn(\000)18 b Fe(C)6 b Fm(\))p Fe(:)p Fi(magnitude)11 -b Fm(\()j(\);)166 1731 y Fk(T)-8 b(ransform)33 b Fe(t)p -Fm(;)166 1831 y Fk(real)g Fi(h)p 402 1831 V 30 w(length)h -Fm(=)23 b(\()p Fi(get)p 904 1831 V 31 w(p)l(oint)12 b +b Fm(\()j(\);)166 1730 y Fk(T)-8 b(ransform)33 b Fe(t)p +Fm(;)166 1830 y Fk(real)g Fi(h)p 402 1830 V 30 w(length)h +Fm(=)23 b(\()p Fi(get)p 904 1830 V 31 w(p)l(oint)12 b Fm(\(1\))19 b Fn(\000)f Fi(p0)e Fm(\))p Fe(:)p Fi(magnitude)c Fm(\()i(\);)166 1930 y Fk(real)33 b Fi(v)p 398 1930 V 30 w(length)h Fm(=)23 b(\()p Fi(get)p 900 1930 V 31 w(p)l(oint)12 b Fm(\(3\))19 b Fn(\000)f Fi(p0)e Fm(\))p Fe(:)p Fi(magnitude)11 -b Fm(\()j(\);)166 2055 y Fi(p0)39 b Fn(\003)p Fm(=)23 +b Fm(\()j(\);)166 2054 y Fi(p0)39 b Fn(\003)p Fm(=)23 b Fe(M)31 b Fn(\003)p Fm(=)22 b Fe(C)30 b Fn(\003)p Fm(=)22 -b Fe(t:)p Fi(align)p 1109 2055 V 31 w(with)p 1290 2055 +b Fe(t:)p Fi(align)p 1109 2054 V 31 w(with)p 1290 2054 V 32 w(axis)11 b Fm(\()p Fe(C)c(;)14 b Fi(normal)f Fe(;)h Ff('y')s Fm(\);)166 2179 y Fk(P)m(oin)m(t)33 b Fi(x)p 467 2179 V 30 w(axis)p 637 2179 V 31 w(pt)12 b Fm(\(1\);)166 -2279 y Fk(real)33 b Fi(angle)h Fm(=)22 b Fe(M)9 b(:)p -Fi(angle)i Fm(\()p Fi(x)p 1048 2279 V 31 w(axis)p 1219 -2279 V 30 w(pt)i Fm(\);)166 2404 y Fi(p0)39 b Fn(\003)p +2278 y Fk(real)33 b Fi(angle)h Fm(=)22 b Fe(M)9 b(:)p +Fi(angle)i Fm(\()p Fi(x)p 1048 2278 V 31 w(axis)p 1219 +2278 V 30 w(pt)i Fm(\);)166 2403 y Fi(p0)39 b Fn(\003)p Fm(=)23 b Fe(M)31 b Fn(\003)p Fm(=)22 b Fe(t:)p Fi(r)l(otate)11 b Fm(\(0)p Fe(;)j Fi(angle)d Fm(\);)166 2503 y Fk(if)41 b Fm(\()p Fe(M)9 b(:)p Fi(unit)p 558 2503 V 30 w(ve)l(ctor)14 b Fm(\()g(\))23 b Fn(6)p Fm(=)g Fi(x)p 1045 2503 V 30 w(axis)p 1215 2503 V 31 w(pt)12 b Fm(\))42 b Fn(f)249 -2603 y Fi(c)l(err)36 b Fn(\034)24 b Ff("WARNING!)p Fj( )p +2602 y Fi(c)l(err)36 b Fn(\034)24 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(|R)o(ect)o(an)-7 b(gle::in_ellipse\(\))o(|:)o(\\)h (n")27 b Fn(\034)c Ff("M)p Fj( )p Ff(is)p Fj( )p Ff(not)p Fj( )p Ff(\(1,)p Fj( )p Ff(0)o(,)p Fj( )p Ff(0)o(\)!)-7 b(\\n")t Fm(;)249 2702 y Fe(M)9 b(:)p Fi(show)14 b Fm(\()p -Ff("M:")s Fm(\);)332 2802 y Fe(=)p Fn(\003)41 b Fm(I'd)27 +Ff("M:")s Fm(\);)332 2801 y Fe(=)p Fn(\003)41 b Fm(I'd)27 b(rather)g(output)h(this)g(to)f Fi(stderr)14 b Fm(,)28 b(but)g(I)f(don't)h(ha)n(v)n(e)f(a)g(w)n(a)n(y)f(to)i(do)f(this)h(y)n (et.)36 b([)p Fh(LDF)26 b(2003.07.18.)p Fm(])74 b Fn(\003)p -Fe(=)249 2902 y Fi(c)l(out)35 b Fn(\034)23 b Fi(end)t(l)36 +Fe(=)249 2901 y Fi(c)l(out)35 b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)24 b Fi(\015ush)10 b Fm(;)166 3001 y Fn(g)166 -3126 y Fk(Ellipse)30 b Fe(e)p Fm(\()p Fi(origin)12 b -Fe(;)i Fi(h)p 854 3126 V 31 w(length)d Fe(;)j Fi(v)p -1185 3126 V 30 w(length)d Fm(\);)166 3226 y Fk(b)s(o)s(ol)p -352 3226 29 5 v 38 w(p)s(oin)m(t)p 608 3226 V 40 w(pair)33 +3125 y Fk(Ellipse)30 b Fe(e)p Fm(\()p Fi(origin)12 b +Fe(;)i Fi(h)p 854 3125 V 31 w(length)d Fe(;)j Fi(v)p +1185 3125 V 30 w(length)d Fm(\);)166 3225 y Fk(b)s(o)s(ol)p +352 3225 29 5 v 38 w(p)s(oin)m(t)p 608 3225 V 40 w(pair)33 b Fi(bpp)g Fm(=)23 b Fe(e:)p Fi(interse)l(ction)p 1573 -3226 26 4 v 30 w(p)l(oints)12 b Fm(\()p Fi(origin)g Fe(;)i -Fi(p0)i Fm(\);)166 3325 y Fk(real)33 b Fi(in)p 432 3325 -V 30 w(distanc)l(e)11 b Fm(;)166 3450 y Fk(if)41 b Fm(\()p +3225 26 4 v 30 w(p)l(oints)12 b Fm(\()p Fi(origin)g Fe(;)i +Fi(p0)i Fm(\);)166 3324 y Fk(real)33 b Fi(in)p 432 3324 +V 30 w(distanc)l(e)11 b Fm(;)166 3449 y Fk(if)41 b Fm(\()p Fi(bpp)11 b Fe(:)p Fi(\014rst)g Fe(:b)p Fm(\))42 b Fn(f)249 3549 y Fi(in)p 326 3549 V 31 w(distanc)l(e)34 b Fm(=)23 b Fi(bpp)10 b Fe(:)p Fi(\014rst)i Fe(:)p Fi(pt)g Fe(:)p -Fi(magnitude)f Fm(\()j(\);)166 3649 y Fn(g)166 3749 y +Fi(magnitude)f Fm(\()j(\);)166 3648 y Fn(g)166 3748 y Fk(else)31 b(if)41 b Fm(\()p Fi(bpp)11 b Fe(:)p Fi(se)l(c)l(ond)i -Fe(:b)p Fm(\))42 b Fn(f)249 3848 y Fi(in)p 326 3848 V +Fe(:b)p Fm(\))42 b Fn(f)249 3847 y Fi(in)p 326 3847 V 31 w(distanc)l(e)34 b Fm(=)23 b Fi(bpp)10 b Fe(:)p Fi(se)l(c)l(ond)j Fe(:)p Fi(pt)g Fe(:)p Fi(magnitude)e Fm(\()j(\);)166 -3948 y Fn(g)166 4047 y Fk(else)45 b Fn(f)249 4147 y Fi(c)l(err)74 +3947 y Fn(g)166 4047 y Fk(else)45 b Fn(f)249 4146 y Fi(c)l(err)74 b Fn(\034)61 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(|Rect)o(an)o(gl)-6 b(e::out_ellipse\()o(\)|:)o(\\n)f(")65 b Fn(\034)415 -4247 y Ff("Couldn't)p Fj( )p Ff(find)p Fj( )p Ff(i)o(nte)o(r)-6 +4246 y Ff("Couldn't)p Fj( )p Ff(find)p Fj( )p Ff(i)o(nte)o(r)-6 b(section)p Fj( )p Ff(point.\\n)o(")21 b Fn(\034)i Ff("Returning)p Fj( )p Ff(empty)p Fj( )o Ff(El)o(l)-6 b(ipse.\\n\\n")23 b Fn(\034)g Fi(\015ush)11 b Fm(;)249 4371 y Fk(Ellipse)30 -b Fe(r)s Fm(;)249 4496 y Fk(return)j Fe(r)s Fm(;)166 -4595 y Fn(g)166 4720 y Fk(real)g Fi(sc)l(ale)p 529 4720 -V 31 w(value)h Fm(=)23 b Fi(out)p 981 4720 V 30 w(distanc)l(e)11 -b Fe(=)p Fi(in)p 1426 4720 V 30 w(distanc)l(e)g Fm(;)166 +b Fe(r)s Fm(;)249 4495 y Fk(return)j Fe(r)s Fm(;)166 +4595 y Fn(g)166 4719 y Fk(real)g Fi(sc)l(ale)p 529 4719 +V 31 w(value)h Fm(=)23 b Fi(out)p 981 4719 V 30 w(distanc)l(e)11 +b Fe(=)p Fi(in)p 1426 4719 V 30 w(distanc)l(e)g Fm(;)166 4844 y Fe(e:)p Fi(sc)l(ale)g Fm(\()p Fi(sc)l(ale)p 614 4844 V 32 w(value)g Fe(;)j Fm(0)o Fe(;)g Fi(sc)l(ale)p -1125 4844 V 31 w(value)d Fm(\);)166 4944 y Fe(e)23 b +1125 4844 V 31 w(value)d Fm(\);)166 4943 y Fe(e)23 b Fn(\003)p Fm(=)f Fe(t:)p Fi(inverse)11 b Fm(\()j(\);)166 -5044 y Fk(return)33 b Fe(e)p Fm(;)83 5143 y Fn(g)p eop +5043 y Fk(return)33 b Fe(e)p Fm(;)83 5143 y Fn(g)p eop end -%%Page: 356 356 -TeXDict begin 356 355 bop 0 83 a Fm(356)140 b Fl(ENCLOSED)23 -b Fk(ELLIPSE)2094 b Fl(3DLDFPR)n(G)142 b Fn(x)p Fm(1224)0 -263 y Fk(1224.)94 b(Enclosed)31 b(Ellipse.)p 0 362 1643 -4 v 1738 395 a(Begin)g(Log)p 2257 362 V 83 536 a Fm([)p -Fh(LDF)25 b(2003.07.18.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 628 1678 4 v 1773 660 a Fk(End)k(Log)p 2222 628 V 0 -785 a Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k Fm(functions)k -Fl(1059)15 b Fn(i)23 b Fm(+)p Fn(\021)83 884 y Fk(Ellipse)30 -b(Rectangle)13 b Fm(::)8 b Fi(in)p 949 884 26 4 v 31 -w(el)t(lipse)k Fm(\()i(\))28 b Fk(const)83 984 y Fn(f)166 -1084 y Fk(P)m(oin)m(t)33 b Fe(C)c Fm(=)23 b Fi(get)p -708 1084 V 30 w(c)l(enter)13 b Fm(\()h(\);)166 1183 y -Fk(P)m(oin)m(t)33 b Fe(M)f Fm(=)22 b Fi(get)p 732 1183 -V 31 w(mid)p 898 1183 V 31 w(p)l(oint)12 b Fm(\(1\);)166 -1283 y Fk(P)m(oin)m(t)33 b Fi(normal)j Fm(=)23 b Fi(get)p -911 1283 V 31 w(normal)13 b Fm(\()h(\);)166 1407 y Fi(normal)g -Fe(:)p Fi(shift)f Fm(\()p Fe(C)6 b Fm(\);)166 1532 y -Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 1632 y Fk(real)g -Fi(h)p 402 1632 V 30 w(length)h Fm(=)23 b(\()p Fi(get)p -904 1632 V 31 w(p)l(oint)12 b Fm(\(1\))19 b Fn(\000)f -Fi(get)p 1439 1632 V 30 w(p)l(oint)13 b Fm(\(0\)\))p -Fe(:)p Fi(magnitude)e Fm(\()j(\);)166 1731 y Fk(real)33 -b Fi(v)p 398 1731 V 30 w(length)h Fm(=)23 b(\()p Fi(get)p -900 1731 V 31 w(p)l(oint)12 b Fm(\(3\))19 b Fn(\000)f -Fi(get)p 1435 1731 V 30 w(p)l(oint)13 b Fm(\(0)o(\)\))p -Fe(:)p Fi(magnitude)f Fm(\()i(\);)166 1856 y Fe(M)32 +%%Page: 360 360 +TeXDict begin 360 359 bop 0 83 a Fm(360)140 b Fl(ENCLOSED)23 +b Fk(ELLIPSE)2094 b Fl(3DLDFPR)n(G)142 b Fn(x)p Fm(1229)0 +263 y Fk(1229.)94 b(Enclosed)31 b(Ellipse.)p 0 362 1779 +4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm([)p Fh(LDF)25 +b(2003.07.18.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 627 3900 4 v 0 784 a Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k +Fm(functions)k Fl(1062)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +884 y Fk(Ellipse)30 b(Rectangle)13 b Fm(::)8 b Fi(in)p +949 884 26 4 v 31 w(el)t(lipse)k Fm(\()i(\))28 b Fk(const)83 +983 y Fn(f)166 1083 y Fk(P)m(oin)m(t)33 b Fe(C)c Fm(=)23 +b Fi(get)p 708 1083 V 30 w(c)l(enter)13 b Fm(\()h(\);)166 +1182 y Fk(P)m(oin)m(t)33 b Fe(M)f Fm(=)22 b Fi(get)p +732 1182 V 31 w(mid)p 898 1182 V 31 w(p)l(oint)12 b Fm(\(1\);)166 +1282 y Fk(P)m(oin)m(t)33 b Fi(normal)j Fm(=)23 b Fi(get)p +911 1282 V 31 w(normal)13 b Fm(\()h(\);)166 1407 y Fi(normal)g +Fe(:)p Fi(shift)f Fm(\()p Fe(C)6 b Fm(\);)166 1531 y +Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 1631 y Fk(real)g +Fi(h)p 402 1631 V 30 w(length)h Fm(=)23 b(\()p Fi(get)p +904 1631 V 31 w(p)l(oint)12 b Fm(\(1\))19 b Fn(\000)f +Fi(get)p 1439 1631 V 30 w(p)l(oint)13 b Fm(\(0\)\))p +Fe(:)p Fi(magnitude)e Fm(\()j(\);)166 1730 y Fk(real)33 +b Fi(v)p 398 1730 V 30 w(length)h Fm(=)23 b(\()p Fi(get)p +900 1730 V 31 w(p)l(oint)12 b Fm(\(3\))19 b Fn(\000)f +Fi(get)p 1435 1730 V 30 w(p)l(oint)13 b Fm(\(0)o(\)\))p +Fe(:)p Fi(magnitude)f Fm(\()i(\);)166 1855 y Fe(M)32 b Fn(\003)p Fm(=)22 b Fe(C)29 b Fn(\003)p Fm(=)22 b Fe(t:)p -Fi(align)p 856 1856 V 32 w(with)p 1038 1856 V 31 w(axis)11 +Fi(align)p 856 1855 V 32 w(with)p 1038 1855 V 31 w(axis)11 b Fm(\()p Fe(C)c(;)14 b Fi(normal)f Fe(;)h Ff('y')s Fm(\);)166 1980 y Fk(P)m(oin)m(t)33 b Fi(x)p 467 1980 V 30 w(axis)p -637 1980 V 31 w(pt)12 b Fm(\(1\);)166 2080 y Fk(real)33 +637 1980 V 31 w(pt)12 b Fm(\(1\);)166 2079 y Fk(real)33 b Fi(angle)h Fm(=)22 b Fe(M)9 b(:)p Fi(angle)i Fm(\()p -Fi(x)p 1048 2080 V 31 w(axis)p 1219 2080 V 30 w(pt)i +Fi(x)p 1048 2079 V 31 w(axis)p 1219 2079 V 30 w(pt)i Fm(\);)166 2204 y Fe(M)32 b Fn(\003)p Fm(=)22 b Fe(t:)p Fi(r)l(otate)10 b Fm(\(0)p Fe(;)k Fi(angle)d Fm(\);)166 -2304 y Fk(if)41 b Fm(\()p Fe(M)9 b(:)p Fi(unit)p 558 -2304 V 30 w(ve)l(ctor)14 b Fm(\()g(\))23 b Fn(6)p Fm(=)g -Fi(x)p 1045 2304 V 30 w(axis)p 1215 2304 V 31 w(pt)12 -b Fm(\))42 b Fn(f)249 2404 y Fi(c)l(err)36 b Fn(\034)24 +2303 y Fk(if)41 b Fm(\()p Fe(M)9 b(:)p Fi(unit)p 558 +2303 V 30 w(ve)l(ctor)14 b Fm(\()g(\))23 b Fn(6)p Fm(=)g +Fi(x)p 1045 2303 V 30 w(axis)p 1215 2303 V 31 w(pt)12 +b Fm(\))42 b Fn(f)249 2403 y Fi(c)l(err)36 b Fn(\034)24 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(|R)o(ect)o(an)-7 b(gle::in_ellipse\(\))o(|:)o(\\)h(n")27 b Fn(\034)c Ff("M)p Fj( )p Ff(is)p Fj( )p Ff(not)p Fj( )p Ff(\(1,)p Fj( )p Ff(0)o(,)p Fj( )p Ff(0)o(\)!)-7 b(\\n")t Fm(;)249 2503 y Fe(M)9 b(:)p Fi(show)14 b Fm(\()p Ff("M:")s Fm(\);)332 -2603 y Fe(=)p Fn(\003)41 b Fm(I'd)27 b(rather)g(output)h(this)g(to)f +2602 y Fe(=)p Fn(\003)41 b Fm(I'd)27 b(rather)g(output)h(this)g(to)f Fi(stderr)14 b Fm(,)28 b(but)g(I)f(don't)h(ha)n(v)n(e)f(a)g(w)n(a)n(y)f (to)i(do)f(this)h(y)n(et.)36 b([)p Fh(LDF)26 b(2003.07.18.)p Fm(])74 b Fn(\003)p Fe(=)249 2702 y Fi(c)l(out)35 b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)24 b Fi(\015ush)10 b Fm(;)166 -2802 y Fn(g)166 2927 y Fk(Ellipse)30 b Fe(e)p Fm(\()p -Fi(origin)12 b Fe(;)i Fi(h)p 854 2927 V 31 w(length)d -Fe(;)j Fi(v)p 1185 2927 V 30 w(length)d Fm(\);)166 3051 +2801 y Fn(g)166 2926 y Fk(Ellipse)30 b Fe(e)p Fm(\()p +Fi(origin)12 b Fe(;)i Fi(h)p 854 2926 V 31 w(length)d +Fe(;)j Fi(v)p 1185 2926 V 30 w(length)d Fm(\);)166 3050 y Fe(e)23 b Fn(\003)p Fm(=)f Fe(t:)p Fi(inverse)11 b -Fm(\()j(\);)166 3151 y Fk(return)33 b Fe(e)p Fm(;)83 -3250 y Fn(g)0 3450 y Fk(1225.)94 b(Dra)m(w)42 b(surrounding)e(Ellipse.) +Fm(\()j(\);)166 3150 y Fk(return)33 b Fe(e)p Fm(;)83 +3250 y Fn(g)0 3449 y Fk(1230.)94 b(Dra)m(w)42 b(surrounding)e(Ellipse.) 93 b Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])69 b(TO)35 b(DO:)g(Add)h(v)n(ersion)e(with)i Fk(Picture)k Fm(argumen)n(t)0 -3549 y(\014rst.)p 0 3625 1643 4 v 1738 3658 a Fk(Begin)31 -b(Log)p 2257 3625 V 83 3798 a Fm([)p Fh(LDF)25 b(2003.07.18.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 3890 1678 4 -v 1773 3923 a Fk(End)k(Log)p 2222 3890 V 0 4047 a Fn(h)14 -b Fm(De\014ne)28 b Fk(Rectangle)k Fm(functions)k Fl(1059)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 4147 y Fk(Ellipse)k(Rectangle)13 -b Fm(::)8 b Fi(dr)l(aw)p 1044 4147 26 4 v 32 w(out)p -1191 4147 V 30 w(el)t(lipse)k Fm(\()p Fk(const)30 b(Color)f -Fm(&)p Fi(ddr)l(aw)p 2273 4147 V 32 w(c)l(olor)14 b Fe(;)g -Fk(string)30 b Fi(ddashe)l(d)15 b Fe(;)f Fk(string)30 -b Fi(pp)l(en)11 b Fe(;)j Fk(Picture)415 4247 y Fm(&)p -Fi(pictur)l(e)c Fm(\))28 b Fk(const)83 4346 y Fn(f)166 -4446 y Fk(Ellipse)i Fe(e)23 b Fm(=)g Fi(out)p 745 4446 -V 30 w(el)t(lipse)12 b Fm(\()i(\);)166 4570 y Fe(e:)p -Fi(dr)l(aw)g Fm(\()p Fi(ddr)l(aw)p 661 4570 V 32 w(c)l(olor)g -Fe(;)g Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)c -Fm(\);)166 4670 y Fk(return)33 b Fe(e)p Fm(;)83 4770 -y Fn(g)p eop end -%%Page: 357 357 -TeXDict begin 357 356 bop 0 83 a Fn(x)p Fm(1226)139 b +3549 y(\014rst.)p 0 3624 1779 4 v 1874 3657 a Fk(Log)p +2122 3624 V 83 3798 a Fm([)p Fh(LDF)25 b(2003.07.18.)p +Fm(])61 b(Added)28 b(this)g(function.)p 0 3890 3900 4 +v 0 4047 a Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k +Fm(functions)k Fl(1062)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4146 y Fk(Ellipse)k(Rectangle)13 b Fm(::)8 b Fi(dr)l(aw)p +1044 4146 26 4 v 32 w(out)p 1191 4146 V 30 w(el)t(lipse)k +Fm(\()p Fk(const)30 b(Color)f Fm(&)p Fi(ddr)l(aw)p 2273 +4146 V 32 w(c)l(olor)14 b Fe(;)g Fk(string)30 b Fi(ddashe)l(d)15 +b Fe(;)f Fk(string)30 b Fi(pp)l(en)11 b Fe(;)j Fk(Picture)415 +4246 y Fm(&)p Fi(pictur)l(e)c Fm(\))28 b Fk(const)83 +4346 y Fn(f)166 4445 y Fk(Ellipse)i Fe(e)23 b Fm(=)g +Fi(out)p 745 4445 V 30 w(el)t(lipse)12 b Fm(\()i(\);)166 +4570 y Fe(e:)p Fi(dr)l(aw)g Fm(\()p Fi(ddr)l(aw)p 661 +4570 V 32 w(c)l(olor)g Fe(;)g Fi(ddashe)l(d)h Fe(;)f +Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)c Fm(\);)166 4669 y +Fk(return)33 b Fe(e)p Fm(;)83 4769 y Fn(g)p eop end +%%Page: 361 361 +TeXDict begin 361 360 bop 0 83 a Fn(x)p Fm(1231)139 b Fl(3DLDFPR)n(G)1847 b(DRA)-8 b(W)24 b(ENCLOSED)g Fk(ELLIPSE)141 -b Fm(357)0 263 y Fk(1226.)94 b(Dra)m(w)33 b(enclosed)e(Ellipse.)93 +b Fm(361)0 263 y Fk(1231.)94 b(Dra)m(w)33 b(enclosed)e(Ellipse.)93 b Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])61 b(TO)27 b(DO:)h(Add)g(v)n (ersion)e(with)i Fk(Picture)33 b Fm(argumen)n(t)26 b(\014rst.)p -0 367 1643 4 v 1738 400 a Fk(Begin)31 b(Log)p 2257 367 -V 83 540 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 632 1678 4 v 1773 665 a Fk(End)k(Log)p -2222 632 V 0 789 a Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k -Fm(functions)k Fl(1059)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -889 y Fk(Ellipse)30 b(Rectangle)13 b Fm(::)8 b Fi(dr)l(aw)p -1047 889 26 4 v 32 w(in)p 1151 889 V 30 w(el)t(lipse)13 +0 366 1779 4 v 1874 399 a Fk(Log)p 2122 366 V 83 540 +a Fm([)p Fh(LDF)f(2003.07.18.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 631 3900 4 v 0 789 a Fn(h)14 b Fm(De\014ne)28 b Fk(Rectangle)k +Fm(functions)k Fl(1062)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +888 y Fk(Ellipse)30 b(Rectangle)13 b Fm(::)8 b Fi(dr)l(aw)p +1047 888 26 4 v 32 w(in)p 1151 888 V 30 w(el)t(lipse)13 b Fm(\()p Fk(const)32 b(Color)g Fm(&)p Fi(ddr)l(aw)p -2239 889 V 32 w(c)l(olor)14 b Fe(;)g Fk(string)33 b Fi(ddashe)l(d)15 +2239 888 V 32 w(c)l(olor)14 b Fe(;)g Fk(string)33 b Fi(ddashe)l(d)15 b Fe(;)f Fk(string)33 b Fi(pp)l(en)11 b Fe(;)j Fk(Picture)415 -989 y Fm(&)p Fi(pictur)l(e)c Fm(\))28 b Fk(const)83 1088 -y Fn(f)166 1188 y Fk(Ellipse)i Fe(e)23 b Fm(=)g Fi(in)p -702 1188 V 30 w(el)t(lipse)13 b Fm(\()h(\);)166 1312 +988 y Fm(&)p Fi(pictur)l(e)c Fm(\))28 b Fk(const)83 1087 +y Fn(f)166 1187 y Fk(Ellipse)i Fe(e)23 b Fm(=)g Fi(in)p +702 1187 V 30 w(el)t(lipse)13 b Fm(\()h(\);)166 1312 y Fe(e:)p Fi(dr)l(aw)g Fm(\()p Fi(ddr)l(aw)p 661 1312 V 32 w(c)l(olor)g Fe(;)g Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d -Fe(;)j Fi(pictur)l(e)c Fm(\);)166 1412 y Fk(return)33 -b Fe(e)p Fm(;)83 1512 y Fn(g)0 1711 y Fk(1227.)94 b(Putting)32 +Fe(;)j Fi(pictur)l(e)c Fm(\);)166 1411 y Fk(return)33 +b Fe(e)p Fm(;)83 1511 y Fn(g)0 1710 y Fk(1232.)94 b(Putting)32 b(Ellipse)d(together.)95 b Fm(This)27 b(is)h(what's)f(compiled.)83 1835 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 -b Fn(i)83 1935 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n -(ti\014er)35 b Fl(10)15 b Fn(i)83 2035 y(h)f Fm(De\014ne)28 -b Fk(class)k(Ellipse)38 b Fl(1098)15 b Fn(i)83 2134 y(h)f +b Fn(i)83 1934 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n +(ti\014er)35 b Fl(10)15 b Fn(i)83 2034 y(h)f Fm(De\014ne)28 +b Fk(class)k(Ellipse)38 b Fl(1103)15 b Fn(i)83 2134 y(h)f Fm(De\014ne)28 b Fk(static)33 b(Ellipse)d Fm(data)d(mem)n(b)r(ers)35 -b Fl(1099)15 b Fn(i)83 2234 y(h)f Fm(De\014ne)28 b Fk(Ellipse)i -Fm(functions)36 b Fl(1102)15 b Fn(i)83 2334 y(h)f Fm(De\014ne)28 -b Fk(Rectangle)k Fm(functions)k Fl(1059)15 b Fn(i)p eop +b Fl(1104)15 b Fn(i)83 2233 y(h)f Fm(De\014ne)28 b Fk(Ellipse)i +Fm(functions)36 b Fl(1107)15 b Fn(i)83 2333 y(h)f Fm(De\014ne)28 +b Fk(Rectangle)k Fm(functions)k Fl(1062)15 b Fn(i)p eop end -%%Page: 358 358 -TeXDict begin 358 357 bop 0 83 a Fm(358)140 b Fl(PUTTING)24 +%%Page: 362 362 +TeXDict begin 362 361 bop 0 83 a Fm(362)140 b Fl(PUTTING)24 b Fk(ELLIPSE)g Fl(TOGETHER)1712 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(1228)0 263 y Fk(1228.)94 b Fm(This)28 b(is)f(what's)g(written)h(to)g +Fm(1233)0 263 y Fk(1233.)94 b Fm(This)28 b(is)f(what's)g(written)h(to)g Fj(ellipses.h)p Fm(.)0 388 y Fn(h)14 b Ff(ellipses.h)79 -b Fl(1228)15 b Fn(i)24 b(\021)83 487 y(h)14 b Fm(De\014ne)28 -b Fk(class)k(Ellipse)38 b Fl(1098)15 b Fn(i)0 686 y Fk(1229.)94 +b Fl(1233)15 b Fn(i)24 b(\021)83 487 y(h)14 b Fm(De\014ne)28 +b Fk(class)k(Ellipse)38 b Fl(1103)15 b Fn(i)0 686 y Fk(1234.)94 b(Circle)h(\()p Fj(circles.web)p Fk(\).)235 b Fm(It)28 b(w)n(on't)f(b)r(e)h(p)r(ossible)f(to)h(mak)n(e)f(circles)g(recede)f (to)i(the)g(cen)n(tral)f(v)-5 b(anishing)0 786 y(p)r(oin)n(t.)37 -b(!!)g(Get)28 b(quote)f(from)h(b)r(o)r(ok!!)p 0 885 1643 -4 v 1738 918 a Fk(Begin)j(Log)p 2257 885 V 83 1059 a -Fm([)p Fh(LDF)25 b(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 -b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB) -g(\014les)g(for)f(the)h(distribution)g(of)0 1158 y(3DLDF)28 -b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t) -f(v)n(ersions.)83 1258 y([)p Fh(LDF)e(2003.12.01.)p Fm(])61 -b(Put)28 b(the)f(v)n(ersion)f(con)n(trol)h(iden)n(ti\014ers)g(bac)n(k)f -(in)n(to)i(the)f(release)g(v)n(ersions,)e(b)r(ecause)i(I'v)n(e)g(put)i -(them)0 1358 y(in)f(their)f(o)n(wn)g(R)n(CS)h(rep)r(ository)-7 -b(.)p 0 1449 1678 4 v 1773 1482 a Fk(End)32 b(Log)p 2222 -1449 V 83 1607 a(format)65 b Fi(Cir)l(cle)81 b(Shap)l(e)0 -1731 y Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 -b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1831 y Fk(static)33 -b(string)g Fi(r)l(cs)p 726 1831 26 4 v 30 w(id)k Fm(=)23 -b Ff("$Id:)p Fj( )p Ff(circles.we)o(b,)o(v)p Fj( )-6 -b Ff(1.2)p Fj( )p Ff(2003/12/01)p Fj( )o Ff(19)o(:12)f(:40)p +b(!!)g(Get)28 b(quote)f(from)h(b)r(o)r(ok!!)p 0 885 1779 +4 v 1874 917 a Fk(Log)p 2122 885 V 83 1058 a Fm([)p Fh(LDF)d +(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n +(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h +(distribution)g(of)0 1158 y(3DLDF)28 b(1.1.)36 b(They're)27 +b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)83 +1257 y([)p Fh(LDF)e(2003.12.01.)p Fm(])61 b(Put)28 b(the)f(v)n(ersion)f +(con)n(trol)h(iden)n(ti\014ers)g(bac)n(k)f(in)n(to)i(the)f(release)g(v) +n(ersions,)e(b)r(ecause)i(I'v)n(e)g(put)i(them)0 1357 +y(in)f(their)f(o)n(wn)g(R)n(CS)h(rep)r(ository)-7 b(.)p +0 1449 3900 4 v 83 1606 a Fk(format)65 b Fi(Cir)l(cle)81 +b(Shap)l(e)0 1730 y Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n +(ti\014er)35 b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1830 y Fk(static)33 b(string)g Fi(r)l(cs)p 726 1830 26 +4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p Ff(circles.we)o(b,)o(v)p +Fj( )-6 b Ff(1.4)p Fj( )p Ff(2003/12/10)p Fj( )o Ff(15)o(:09)f(:04)p Fj( )p Ff(lfinsto1)p Fj( )p Ff(Exp)p Fj( )o Ff($")n Fm(;)0 -2030 y Fk(1230.)94 b(Include)32 b(\014les.)0 2155 y Fn(h)14 +2029 y Fk(1235.)94 b(Include)32 b(\014les.)0 2154 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p -Fn(\021)0 2254 y Fm(#)p Fk(include)32 b Ff("loader.h")0 -2354 y Fm(#)p Fk(include)g Ff("pspglb.h")0 2453 y Fm(#)p -Fk(include)g Ff("io.h")0 2553 y Fm(#)p Fk(include)g Ff("colors.h")0 -2653 y Fm(#)p Fk(include)g Ff("transfor.h")0 2752 y Fm(#)p -Fk(include)g Ff("shapes.h")0 2852 y Fm(#)p Fk(include)g -Ff("pictures.h")0 2952 y Fm(#)p Fk(include)g Ff("points.h")0 -3051 y Fm(#)p Fk(include)g Ff("lines.h")0 3151 y Fm(#)p +Fn(\021)0 2253 y Fm(#)p Fk(include)32 b Ff("loader.h")0 +2353 y Fm(#)p Fk(include)g Ff("pspglb.h")0 2453 y Fm(#)p +Fk(include)g Ff("io.h")0 2552 y Fm(#)p Fk(include)g Ff("colors.h")0 +2652 y Fm(#)p Fk(include)g Ff("transfor.h")0 2752 y Fm(#)p +Fk(include)g Ff("shapes.h")0 2851 y Fm(#)p Fk(include)g +Ff("pictures.h")0 2951 y Fm(#)p Fk(include)g Ff("points.h")0 +3050 y Fm(#)p Fk(include)g Ff("lines.h")0 3150 y Fm(#)p Fk(include)g Ff("planes.h")0 3250 y Fm(#)p Fk(include)g -Ff("paths.h")0 3350 y Fm(#)p Fk(include)g Ff("curves.h")0 -3450 y Fm(#)p Fk(include)g Ff("polygons.h")0 3549 y Fm(#)p -Fk(include)g Ff("rectangs.h")0 3649 y Fm(#)p Fk(include)g -Ff("ellipses.h")0 3848 y Fk(1231.)94 b(Circle)31 b(class)h +Ff("paths.h")0 3349 y Fm(#)p Fk(include)g Ff("curves.h")0 +3449 y Fm(#)p Fk(include)g Ff("polygons.h")0 3549 y Fm(#)p +Fk(include)g Ff("rectangs.h")0 3648 y Fm(#)p Fk(include)g +Ff("ellipses.h")0 3847 y Fk(1236.)94 b(Circle)31 b(class)h (de\014nition.)p eop end -%%Page: 359 359 -TeXDict begin 359 358 bop 0 83 a Fn(x)p Fm(1232)139 b +%%Page: 363 363 +TeXDict begin 363 362 bop 0 83 a Fn(x)p Fm(1237)139 b Fl(3DLDFPR)n(G)1832 b Fk(CIR)m(CLE)24 b Fl(CLASS)g(DEFINITION)141 -b Fm(359)0 263 y Fk(1232.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(class)k(Circle)40 b Fl(1232)15 b Fn(i)23 b(\021)83 +b Fm(363)0 263 y Fk(1237.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(class)k(Circle)40 b Fl(1237)15 b Fn(i)23 b(\021)83 487 y Fk(class)32 b(Circle)g Fm(:)37 b Fk(public)32 b(Ellipse)e Fn(f)166 587 y Fk(real)j Fi(r)l(adius)11 b Fm(;)83 711 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 b Fk(Circle)32 -b Fm(functions)j Fl(1234)15 b Fn(i)83 811 y(g)p Fm(;)0 -919 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(1273)f(and)h -(1274.)0 1118 y Fk(1233.)94 b(Constructors)32 b(and)g(setting)f -(functions.)0 1317 y(1234.)94 b(Default)32 b(constructor.)96 +b Fm(functions)j Fl(1239)15 b Fn(i)83 811 y(g)p Fm(;)0 +919 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(1278)f(and)h +(1279.)0 1118 y Fk(1238.)94 b(Constructors)32 b(and)g(setting)f +(functions.)0 1317 y(1239.)94 b(Default)32 b(constructor.)96 b Fm(No)27 b(argumen)n(ts.)0 1442 y Fn(h)14 b Fm(Declare)27 -b Fk(Circle)32 b Fm(functions)j Fl(1234)15 b Fn(i)24 +b Fk(Circle)32 b Fm(functions)j Fl(1239)15 b Fn(i)24 b(\021)83 1542 y Fk(Circle)t Fm(\()14 b(\);)0 1649 y -Fl(See)24 b(also)g(sections)g(1237,)h(1239,)f(1242,)g(1244,)h(1248,)f -(1250,)g(1253,)g(1255,)h(1256,)f(1258,)g(1260,)g(and)h(1262.)0 -1757 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i(1232.)0 -1957 y Fk(1235.)0 2081 y Fn(h)14 b Fm(De\014ne)28 b Fk(Circle)k -Fm(functions)k Fl(1235)15 b Fn(i)23 b(\021)83 2181 y +Fl(See)24 b(also)g(sections)g(1242,)h(1244,)f(1247,)g(1249,)h(1253,)f +(1255,)g(1258,)g(1260,)h(1261,)f(1263,)g(1265,)g(and)h(1267.)0 +1757 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i(1237.)0 +1957 y Fk(1240.)0 2081 y Fn(h)14 b Fm(De\014ne)28 b Fk(Circle)k +Fm(functions)k Fl(1240)15 b Fn(i)23 b(\021)83 2181 y Fk(Circle)13 b Fm(::)8 b Fk(Circle)t Fm(\()14 b(\))83 2280 y Fn(f)166 2380 y Fi(on)p 260 2380 26 4 v 31 w(fr)l(e)l(e)p 419 2380 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(false)11 b Fm(;)166 2480 y Fi(line)p 302 2480 V 31 w(switch)35 b Fm(=)22 b Fi(false)12 b Fm(;)166 2579 y Fi(cycle)p 346 2579 V 32 w(switch)34 b Fm(=)23 b Fi(true)10 b Fm(;)83 -2679 y Fn(g)0 2787 y Fl(See)24 b(also)g(sections)g(1238,)h(1240,)f -(1243,)g(1245,)h(1249,)f(1251,)g(1254,)g(1259,)h(1261,)f(and)g(1263.)0 -2895 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1273.)0 -3094 y Fk(1236.)94 b(Cen)m(ter,)32 b(diameters)f(and)h(angles.)0 -3293 y(1237.)94 b(Constructor.)0 3418 y Fn(h)14 b Fm(Declare)27 -b Fk(Circle)32 b Fm(functions)j Fl(1234)15 b Fn(i)24 +2679 y Fn(g)0 2787 y Fl(See)24 b(also)g(sections)g(1243,)h(1245,)f +(1248,)g(1250,)h(1254,)f(1256,)g(1259,)g(1264,)h(1266,)f(and)g(1268.)0 +2895 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1278.)0 +3094 y Fk(1241.)94 b(Cen)m(ter,)32 b(diameters)f(and)h(angles.)0 +3293 y(1242.)94 b(Constructor.)0 3418 y Fn(h)14 b Fm(Declare)27 +b Fk(Circle)32 b Fm(functions)j Fl(1239)15 b Fn(i)24 b Fm(+)p Fn(\021)83 3517 y Fk(Circle)t Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(c)l(c)l(enter)13 b Fe(;)h Fk(const)33 b(real)f Fi(ddiameter)15 b Fe(;)f Fk(const)32 b(real)h @@ -31037,8 +31031,8 @@ 875 3617 V 32 w(z)37 b Fm(=)23 b(0)o Fe(;)14 b Fk(const)31 b(unsigned)e(short)i Fi(nnumb)l(er)p 2351 3617 V 30 w(of)p 2448 3617 V 31 w(p)l(oints)j Fm(=)23 b Ff(DEFAULT_NUMBER_O)o(F_P)o(OI)o -(NT)o(S)n Fm(\);)0 3816 y Fk(1238.)0 3941 y Fn(h)14 b -Fm(De\014ne)28 b Fk(Circle)k Fm(functions)k Fl(1235)15 +(NT)o(S)n Fm(\);)0 3816 y Fk(1243.)0 3941 y Fn(h)14 b +Fm(De\014ne)28 b Fk(Circle)k Fm(functions)k Fl(1240)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4041 y Fk(Circle)13 b Fm(::)8 b Fk(Circle)t Fm(\()p Fk(const)38 b(P)m(oin)m(t)g Fm(&)o Fi(c)l(c)l(enter)13 b Fe(;)h Fk(const)38 b(real)f Fi(ddiameter)15 @@ -31069,67 +31063,65 @@ w(z)g Fe(;)g Fi(numb)l(er)p 2523 5062 V 30 w(of)p 2620 5062 V 32 w(p)l(oints)d Fm(\);)166 5186 y Fn(\003)p Fi(this)34 b Fm(=)23 b Fe(e)o Fm(;)83 5286 y Fn(g)p eop end -%%Page: 360 360 -TeXDict begin 360 359 bop 0 83 a Fm(360)140 b Fl(SETTING)24 -b(FUNCTION)2170 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1239)0 -263 y Fk(1239.)94 b(Setting)31 b(function.)p 0 362 1643 -4 v 1738 395 a(Begin)g(Log)p 2257 362 V 83 536 a Fm([)p -Fh(LDF)25 b(2003.05.06.)p Fm(])60 b(Added)27 b(the)f(argumen)n(t)f -Fi(nnumb)l(er)p 1832 536 26 4 v 30 w(of)p 1929 536 V +%%Page: 364 364 +TeXDict begin 364 363 bop 0 83 a Fm(364)140 b Fl(SETTING)24 +b(FUNCTION)2170 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1244)0 +263 y Fk(1244.)94 b(Setting)31 b(function.)p 0 362 1779 +4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm([)p Fh(LDF)25 +b(2003.05.06.)p Fm(])60 b(Added)27 b(the)f(argumen)n(t)f +Fi(nnumb)l(er)p 1832 535 26 4 v 30 w(of)p 1929 535 V 31 w(p)l(oints)11 b Fm(.)37 b(Without)27 b(it,)g(this)f(setting)h (function)f(didn't)h(matc)n(h)0 635 y(the)h(constructor)e(ab)r(o)n(v)n -(e.)p 0 727 1678 4 v 1773 760 a Fk(End)32 b(Log)p 2222 -727 V 0 884 a Fn(h)14 b Fm(Declare)27 b Fk(Circle)32 -b Fm(functions)j Fl(1234)15 b Fn(i)24 b Fm(+)p Fn(\021)83 -984 y Fk(v)m(oid)30 b Fi(set)12 b Fm(\()p Fk(const)31 -b(P)m(oin)m(t)f Fm(&)p Fi(c)l(c)l(enter)13 b Fe(;)h Fk(const)30 -b(real)g Fi(ddiameter)15 b Fe(;)f Fk(const)30 b(real)g -Fi(angle)p 2773 984 26 4 v 31 w(x)37 b Fm(=)23 b(0)o -Fe(;)14 b Fk(const)30 b(real)h Fi(angle)p 3667 984 V -31 w(y)k Fm(=)22 b(0)p Fe(;)249 1084 y Fk(const)31 b(real)f -Fi(angle)p 875 1084 V 32 w(z)37 b Fm(=)23 b(0)o Fe(;)14 -b Fk(const)31 b(unsigned)e(short)i Fi(nnumb)l(er)p 2351 -1084 V 30 w(of)p 2448 1084 V 31 w(p)l(oints)j Fm(=)23 +(e.)p 0 726 3900 4 v 0 884 a Fn(h)14 b Fm(Declare)27 +b Fk(Circle)32 b Fm(functions)j Fl(1239)15 b Fn(i)24 +b Fm(+)p Fn(\021)83 983 y Fk(v)m(oid)30 b Fi(set)12 b +Fm(\()p Fk(const)31 b(P)m(oin)m(t)f Fm(&)p Fi(c)l(c)l(enter)13 +b Fe(;)h Fk(const)30 b(real)g Fi(ddiameter)15 b Fe(;)f +Fk(const)30 b(real)g Fi(angle)p 2773 983 26 4 v 31 w(x)37 +b Fm(=)23 b(0)o Fe(;)14 b Fk(const)30 b(real)h Fi(angle)p +3667 983 V 31 w(y)k Fm(=)22 b(0)p Fe(;)249 1083 y Fk(const)31 +b(real)f Fi(angle)p 875 1083 V 32 w(z)37 b Fm(=)23 b(0)o +Fe(;)14 b Fk(const)31 b(unsigned)e(short)i Fi(nnumb)l(er)p +2351 1083 V 30 w(of)p 2448 1083 V 31 w(p)l(oints)j Fm(=)23 b Ff(DEFAULT_NUMBER_O)o(F_P)o(OI)o(NT)o(S)n Fm(\);)0 -1283 y Fk(1240.)0 1407 y Fn(h)14 b Fm(De\014ne)28 b Fk(Circle)k -Fm(functions)k Fl(1235)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -1507 y Fk(v)m(oid)36 b(Circle)13 b Fm(::)8 b Fi(set)k +1282 y Fk(1245.)0 1407 y Fn(h)14 b Fm(De\014ne)28 b Fk(Circle)k +Fm(functions)k Fl(1240)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1506 y Fk(v)m(oid)36 b(Circle)13 b Fm(::)8 b Fi(set)k Fm(\()p Fk(const)37 b(P)m(oin)m(t)g Fm(&)o Fi(c)l(c)l(enter)13 b Fe(;)h Fk(const)36 b(real)h Fi(ddiameter)15 b Fe(;)f -Fk(const)36 b(real)g Fi(angle)p 3131 1507 V 32 w(x)13 -b Fe(;)h Fk(const)37 b(real)415 1607 y Fi(angle)p 606 -1607 V 31 w(y)12 b Fe(;)i Fk(const)33 b(real)f Fi(angle)p -1351 1607 V 31 w(z)15 b Fe(;)f Fk(const)32 b(unsigned)f(short)i -Fi(nnumb)l(er)p 2680 1607 V 29 w(of)p 2776 1607 V 32 -w(p)l(oints)11 b Fm(\))83 1706 y Fn(f)166 1806 y Fk(Circle)32 +Fk(const)36 b(real)g Fi(angle)p 3131 1506 V 32 w(x)13 +b Fe(;)h Fk(const)37 b(real)415 1606 y Fi(angle)p 606 +1606 V 31 w(y)12 b Fe(;)i Fk(const)33 b(real)f Fi(angle)p +1351 1606 V 31 w(z)15 b Fe(;)f Fk(const)32 b(unsigned)f(short)i +Fi(nnumb)l(er)p 2680 1606 V 29 w(of)p 2776 1606 V 32 +w(p)l(oints)11 b Fm(\))83 1706 y Fn(f)166 1805 y Fk(Circle)32 b Fe(c)p Fm(\()p Fi(c)l(c)l(enter)13 b Fe(;)h Fi(ddiameter)h -Fe(;)f Fi(angle)p 1419 1806 V 31 w(x)g Fe(;)g Fi(angle)p -1726 1806 V 31 w(y)e Fe(;)i Fi(angle)p 2032 1806 V 31 -w(z)g Fe(;)g Fi(nnumb)l(er)p 2462 1806 V 30 w(of)p 2559 -1806 V 31 w(p)l(oints)d Fm(\);)166 1930 y Fn(\003)p Fi(this)34 -b Fm(=)23 b Fe(c)p Fm(;)166 2030 y Fk(return)5 b Fm(;)83 -2130 y Fn(g)0 2329 y Fk(1241.)94 b(Pseudo-constructor)32 -b(for)g(dynamic)g(allo)s(cation.)0 2528 y(1242.)94 b(Optional)31 -b(p)s(oin)m(ter)g(argumen)m(t.)p 0 2627 1643 4 v 1738 -2660 a(Begin)g(Log)p 2257 2627 V 83 2801 a Fm([)p Fh(LDF)25 -b(2003.07.27.)p Fm(])61 b(Made)27 b(non-inline.)37 b(Made)28 -b(argumen)n(t)e Fe(p)h Fk(const)33 b(Circle)f Fn(\003)o -Fm(.)83 2900 y([)p Fh(LDF)25 b(2003.08.10.)p Fm(])59 -b(Remo)n(v)n(ed)24 b(rede\014nition)i(of)f(the)h(default)g(argumen)n(t) -e Fk(const)30 b(Circle)g Fn(\003)o Fe(p)c Fm(=)f(0)g(from)g(the)h -(de\014nition.)0 3000 y(The)i(DEC)f(compiler)g(complained,)g(but)i(GCC) -e(didn't.)p 0 3092 1678 4 v 1773 3125 a Fk(End)32 b(Log)p -2222 3092 V 0 3249 a Fn(h)14 b Fm(Declare)27 b Fk(Circle)32 -b Fm(functions)j Fl(1234)15 b Fn(i)24 b Fm(+)p Fn(\021)83 -3349 y Fk(static)33 b(Circle)f Fn(\003)o Fi(cr)l(e)l(ate)p -880 3349 26 4 v 31 w(new)p 1051 3349 V 30 w(cir)l(cle)12 -b Fm(\()p Fk(const)33 b(Circle)f Fn(\003)o Fe(p)23 b -Fm(=)g(0)o(\);)p eop end -%%Page: 361 361 -TeXDict begin 361 360 bop 0 83 a Fn(x)p Fm(1243)139 b +Fe(;)f Fi(angle)p 1419 1805 V 31 w(x)g Fe(;)g Fi(angle)p +1726 1805 V 31 w(y)e Fe(;)i Fi(angle)p 2032 1805 V 31 +w(z)g Fe(;)g Fi(nnumb)l(er)p 2462 1805 V 30 w(of)p 2559 +1805 V 31 w(p)l(oints)d Fm(\);)166 1930 y Fn(\003)p Fi(this)34 +b Fm(=)23 b Fe(c)p Fm(;)166 2029 y Fk(return)5 b Fm(;)83 +2129 y Fn(g)0 2328 y Fk(1246.)94 b(Pseudo-constructor)32 +b(for)g(dynamic)g(allo)s(cation.)0 2527 y(1247.)94 b(Optional)31 +b(p)s(oin)m(ter)g(argumen)m(t.)p 0 2626 1779 4 v 1874 +2659 a(Log)p 2122 2626 V 83 2799 a Fm([)p Fh(LDF)25 b(2003.07.27.)p +Fm(])61 b(Made)27 b(non-inline.)37 b(Made)28 b(argumen)n(t)e +Fe(p)h Fk(const)33 b(Circle)f Fn(\003)o Fm(.)83 2899 +y([)p Fh(LDF)25 b(2003.08.10.)p Fm(])59 b(Remo)n(v)n(ed)24 +b(rede\014nition)i(of)f(the)h(default)g(argumen)n(t)e +Fk(const)30 b(Circle)g Fn(\003)o Fe(p)c Fm(=)f(0)g(from)g(the)h +(de\014nition.)0 2999 y(The)i(DEC)f(compiler)g(complained,)g(but)i(GCC) +e(didn't.)p 0 3090 3900 4 v 0 3248 a Fn(h)14 b Fm(Declare)27 +b Fk(Circle)32 b Fm(functions)j Fl(1239)15 b Fn(i)24 +b Fm(+)p Fn(\021)83 3347 y Fk(static)33 b(Circle)f Fn(\003)o +Fi(cr)l(e)l(ate)p 880 3347 26 4 v 31 w(new)p 1051 3347 +V 30 w(cir)l(cle)12 b Fm(\()p Fk(const)33 b(Circle)f +Fn(\003)o Fe(p)23 b Fm(=)g(0)o(\);)p eop end +%%Page: 365 365 +TeXDict begin 365 364 bop 0 83 a Fn(x)p Fm(1248)139 b Fl(3DLDFPR)n(G)1714 b(OPTIONAL)23 b(POINTER)h(AR)n(GUMENT)140 -b Fm(361)0 263 y Fk(1243.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Circle)k Fm(functions)k Fl(1235)15 b Fn(i)23 b Fm(+)p +b Fm(365)0 263 y Fk(1248.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Circle)k Fm(functions)k Fl(1240)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Circle)32 b Fn(\003)o Fk(Circle)13 b Fm(::)8 b Fi(cr)l(e)l(ate)p 935 487 26 4 v 31 w(new)p 1106 487 V 31 w(cir)l(cle)j Fm(\()p Fk(const)33 b(Circle)f @@ -31144,81 +31136,78 @@ Fm(=)23 b Fi(true)10 b Fm(;)166 1110 y Fe(c)185 1135 y(~)235 1110 y Fi(line)p 371 1110 V 31 w(switch)35 b Fm(=)22 b Fi(false)12 b Fm(;)166 1209 y Fk(return)33 -b Fe(c)p Fm(;)83 1309 y Fn(g)0 1508 y Fk(1244.)94 b(Required)31 -b(Circle)h(argumen)m(t.)p 0 1608 1643 4 v 1738 1640 a(Begin)f(Log)p -2257 1608 V 83 1781 a Fm([)p Fh(LDF)25 b(2003.07.27.)p -Fm(])61 b(Made)27 b(non-inline.)p 0 1873 1678 4 v 1773 -1905 a Fk(End)32 b(Log)p 2222 1873 V 0 2030 a Fn(h)14 -b Fm(Declare)27 b Fk(Circle)32 b Fm(functions)j Fl(1234)15 -b Fn(i)24 b Fm(+)p Fn(\021)83 2130 y Fk(static)33 b(Circle)f -Fn(\003)o Fi(cr)l(e)l(ate)p 880 2130 26 4 v 31 w(new)p -1051 2130 V 30 w(cir)l(cle)12 b Fm(\()p Fk(const)33 b(Circle)f -Fm(&)o Fe(p)p Fm(\);)0 2329 y Fk(1245.)0 2453 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Circle)k Fm(functions)k Fl(1235)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2553 y Fk(Circle)32 b Fn(\003)o -Fk(Circle)13 b Fm(::)8 b Fi(cr)l(e)l(ate)p 935 2553 V -31 w(new)p 1106 2553 V 31 w(cir)l(cle)j Fm(\()p Fk(const)33 -b(Circle)f Fm(&)o Fe(p)p Fm(\))83 2653 y Fn(f)166 2752 -y Fk(Circle)g Fn(\003)p Fe(c)23 b Fm(=)f Fk(new)34 b -Fm(\()p Fk(Circle)t Fm(\);)166 2877 y Fn(\003)p Fe(c)23 -b Fm(=)f Fe(p)p Fm(;)166 2976 y Fe(c)185 3001 y(~)235 -2976 y Fi(on)p 329 2976 V 31 w(fr)l(e)l(e)p 488 2976 -V 31 w(stor)l(e)33 b Fm(=)23 b Fi(true)10 b Fm(;)166 -3076 y Fk(return)33 b Fe(c)p Fm(;)83 3176 y Fn(g)0 3375 -y Fk(1246.)94 b(Destructor.)i Fm([)p Fh(LDF)25 b(2002.10.09.)p -Fm(])61 b(Remo)n(v)n(ed)26 b(the)i(destructor.)36 b Fk(P)m(ath)15 -b Fm(::)8 b Fn(\030)p Fk(P)m(ath)e Fm(\()14 b(\))28 b(or)e -Fk(P)m(ath)15 b Fm(::)8 b Fi(cle)l(ar)14 b Fm(\()g(\))0 -3475 y(should)25 b(b)r(e)g(used)h(instead,)f(unless)g(I)g(add)g -(dynamically)f(allo)r(cated)h(data)f(mem)n(b)r(ers)h(to)g -Fk(Circle)30 b Fm(\(rather)24 b(than)h Fk(Ellipse)j Fm(or)0 -3574 y Fk(P)m(ath)6 b Fm(\).)0 3773 y Fk(1247.)94 b(Assignmen)m(t.)0 -3973 y(1248.)g(Circle)45 b(argumen)m(t.)96 b Fm(This)39 -b(function)i(returns)e(a)g(reference)g(to)h Fn(\003)o -Fi(this)12 b Fm(,)43 b(whic)n(h)d(can)f(b)r(e)h(used)g(for)f(further)0 -4072 y(assignmen)n(t.)p 0 4172 1643 4 v 1738 4204 a Fk(Begin)31 -b(Log)p 2257 4172 V 83 4345 a Fm([)p Fh(LDF)25 b(2002.11.10.)p -Fm(])61 b(Changed)27 b(and)h(simpli\014ed)g(this)f(function.)38 -b(It)28 b(no)n(w)f(uses)g Fk(Ellipse)11 b Fm(::)d Fk(op)s(erator)d -Fm(=\()14 b(\).)p 0 4437 1678 4 v 1773 4469 a Fk(End)32 -b(Log)p 2222 4437 V 0 4594 a Fn(h)14 b Fm(Declare)27 -b Fk(Circle)32 b Fm(functions)j Fl(1234)15 b Fn(i)24 -b Fm(+)p Fn(\021)83 4694 y Fk(Circle)32 b Fm(&)p Fk(op)s(erator)t -Fm(=\()p Fk(const)h(Circle)f Fm(&)o Fe(c)p Fm(\);)p eop -end -%%Page: 362 362 -TeXDict begin 362 361 bop 0 83 a Fm(362)140 b Fk(CIR)m(CLE)23 -b Fl(AR)n(GUMENT)2089 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1249)0 -263 y Fk(1249.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Circle)k -Fm(functions)k Fl(1235)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +b Fe(c)p Fm(;)83 1309 y Fn(g)0 1508 y Fk(1249.)94 b(Required)31 +b(Circle)h(argumen)m(t.)p 0 1607 1779 4 v 1874 1640 a(Log)p +2122 1607 V 83 1780 a Fm([)p Fh(LDF)25 b(2003.07.27.)p +Fm(])61 b(Made)27 b(non-inline.)p 0 1872 3900 4 v 0 2029 +a Fn(h)14 b Fm(Declare)27 b Fk(Circle)32 b Fm(functions)j +Fl(1239)15 b Fn(i)24 b Fm(+)p Fn(\021)83 2129 y Fk(static)33 +b(Circle)f Fn(\003)o Fi(cr)l(e)l(ate)p 880 2129 26 4 +v 31 w(new)p 1051 2129 V 30 w(cir)l(cle)12 b Fm(\()p +Fk(const)33 b(Circle)f Fm(&)o Fe(p)p Fm(\);)0 2328 y +Fk(1250.)0 2453 y Fn(h)14 b Fm(De\014ne)28 b Fk(Circle)k +Fm(functions)k Fl(1240)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2552 y Fk(Circle)32 b Fn(\003)o Fk(Circle)13 b Fm(::)8 +b Fi(cr)l(e)l(ate)p 935 2552 V 31 w(new)p 1106 2552 V +31 w(cir)l(cle)j Fm(\()p Fk(const)33 b(Circle)f Fm(&)o +Fe(p)p Fm(\))83 2652 y Fn(f)166 2752 y Fk(Circle)g Fn(\003)p +Fe(c)23 b Fm(=)f Fk(new)34 b Fm(\()p Fk(Circle)t Fm(\);)166 +2876 y Fn(\003)p Fe(c)23 b Fm(=)f Fe(p)p Fm(;)166 2976 +y Fe(c)185 3001 y(~)235 2976 y Fi(on)p 329 2976 V 31 +w(fr)l(e)l(e)p 488 2976 V 31 w(stor)l(e)33 b Fm(=)23 +b Fi(true)10 b Fm(;)166 3075 y Fk(return)33 b Fe(c)p +Fm(;)83 3175 y Fn(g)0 3374 y Fk(1251.)94 b(Destructor.)i +Fm([)p Fh(LDF)25 b(2002.10.09.)p Fm(])61 b(Remo)n(v)n(ed)26 +b(the)i(destructor.)36 b Fk(P)m(ath)15 b Fm(::)8 b Fn(\030)p +Fk(P)m(ath)e Fm(\()14 b(\))28 b(or)e Fk(P)m(ath)15 b +Fm(::)8 b Fi(cle)l(ar)14 b Fm(\()g(\))0 3474 y(should)25 +b(b)r(e)g(used)h(instead,)f(unless)g(I)g(add)g(dynamically)f(allo)r +(cated)h(data)f(mem)n(b)r(ers)h(to)g Fk(Circle)30 b Fm(\(rather)24 +b(than)h Fk(Ellipse)j Fm(or)0 3574 y Fk(P)m(ath)6 b Fm(\).)0 +3773 y Fk(1252.)94 b(Assignmen)m(t.)0 3972 y(1253.)g(Circle)45 +b(argumen)m(t.)96 b Fm(This)39 b(function)i(returns)e(a)g(reference)g +(to)h Fn(\003)o Fi(this)12 b Fm(,)43 b(whic)n(h)d(can)f(b)r(e)h(used)g +(for)f(further)0 4072 y(assignmen)n(t.)p 0 4170 1779 +4 v 1874 4203 a Fk(Log)p 2122 4170 V 83 4344 a Fm([)p +Fh(LDF)25 b(2002.11.10.)p Fm(])61 b(Changed)27 b(and)h(simpli\014ed)g +(this)f(function.)38 b(It)28 b(no)n(w)f(uses)g Fk(Ellipse)11 +b Fm(::)d Fk(op)s(erator)d Fm(=\()14 b(\).)p 0 4435 3900 +4 v 0 4593 a Fn(h)g Fm(Declare)27 b Fk(Circle)32 b Fm(functions)j +Fl(1239)15 b Fn(i)24 b Fm(+)p Fn(\021)83 4692 y Fk(Circle)32 +b Fm(&)p Fk(op)s(erator)t Fm(=\()p Fk(const)h(Circle)f +Fm(&)o Fe(c)p Fm(\);)p eop end +%%Page: 366 366 +TeXDict begin 366 365 bop 0 83 a Fm(366)140 b Fk(CIR)m(CLE)23 +b Fl(AR)n(GUMENT)2089 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1254)0 +263 y Fk(1254.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Circle)k +Fm(functions)k Fl(1240)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Circle)32 b Fm(&)p Fk(Circle)12 b Fm(::)d Fk(op)s(erator)t Fm(=\()p Fk(const)33 b(Circle)f Fm(&)o Fe(c)p Fm(\))83 587 y Fn(f)166 686 y Fi(r)l(adius)j Fm(=)22 b Fe(c:)p Fi(r)l(adius)12 b Fm(;)166 786 y Fk(Ellipse)f Fm(::)d Fk(op)s(erator)d Fm(=\()p Fe(c)p Fm(\);)166 886 y Fk(return)33 b Fn(\003)p Fi(this)11 b Fm(;)83 985 y Fn(g)0 1185 y -Fk(1250.)94 b(Ellipse)41 b(argumen)m(t.)95 b Fm(This)38 +Fk(1255.)94 b(Ellipse)41 b(argumen)m(t.)95 b Fm(This)38 b(function)g(returns)f(a)g(reference)g(to)g Fn(\003)p Fi(this)11 b Fm(,)41 b(whic)n(h)c(can)g(b)r(e)h(used)g(for)f(further)0 -1284 y(assignmen)n(t.)p 0 1383 1643 4 v 1738 1416 a Fk(Begin)31 -b(Log)p 2257 1383 V 83 1557 a Fm([)p Fh(LDF)25 b(2002.11.10.)p +1284 y(assignmen)n(t.)p 0 1383 1779 4 v 1874 1415 a Fk(Log)p +2122 1383 V 83 1556 a Fm([)p Fh(LDF)25 b(2002.11.10.)p Fm(])61 b(Changed)27 b(and)h(simpli\014ed)g(this)f(function.)38 b(It)28 b(no)n(w)f(uses)g Fk(Ellipse)11 b Fm(::)d Fk(op)s(erator)d Fm(=\()14 b(\).)83 1656 y([)p Fh(LDF)25 b(2003.08.14.)p Fm(])64 b(Added)30 b(co)r(de)g(for)g(handling)f(the)i(case)e(that)h Fe(e:)p Fi(axis)p 2389 1656 26 4 v 31 w(v)44 b Fm(and)29 b Fe(e:)p Fi(axis)p 2867 1656 V 31 w(h)41 b Fm(di\013er)30 -b(b)n(y)g(a)g(small)g(amoun)n(t,)0 1756 y(p)r(ossible)d(due)h(to)g -(imprecision)e(\(see)i(b)r(elo)n(w\).)p 0 1848 1678 4 -v 1773 1881 a Fk(End)k(Log)p 2222 1848 V 0 2005 a Fn(h)14 -b Fm(Declare)27 b Fk(Circle)32 b Fm(functions)j Fl(1234)15 -b Fn(i)24 b Fm(+)p Fn(\021)83 2105 y Fk(Circle)32 b Fm(&)p -Fk(op)s(erator)t Fm(=\()p Fk(const)h(Ellipse)d Fm(&)p -Fe(e)o Fm(\);)p eop end -%%Page: 363 363 -TeXDict begin 363 362 bop 0 83 a Fn(x)p Fm(1251)139 b +b(b)n(y)g(a)g(small)g(amoun)n(t,)0 1755 y(p)r(ossible)d(due)h(to)g +(imprecision)e(\(see)i(b)r(elo)n(w\).)p 0 1847 3900 4 +v 0 2004 a Fn(h)14 b Fm(Declare)27 b Fk(Circle)32 b Fm(functions)j +Fl(1239)15 b Fn(i)24 b Fm(+)p Fn(\021)83 2104 y Fk(Circle)32 +b Fm(&)p Fk(op)s(erator)t Fm(=\()p Fk(const)h(Ellipse)d +Fm(&)p Fe(e)o Fm(\);)p eop end +%%Page: 367 367 +TeXDict begin 367 366 bop 0 83 a Fn(x)p Fm(1256)139 b Fl(3DLDFPR)n(G)2059 b Fk(ELLIPSE)24 b Fl(AR)n(GUMENT)140 -b Fm(363)0 263 y Fk(1251.)94 b Fm(If)21 b Fe(e)o(:)p +b Fm(367)0 263 y Fk(1256.)94 b Fm(If)21 b Fe(e)o(:)p Fi(axis)p 595 263 26 4 v 31 w(v)37 b Fn(6)p Fm(=)22 b Fe(e:)p Fi(axis)p 990 263 V 31 w(h)11 b Fm(,)22 b(it's)e(quite)h(p)r (ossible)f(that)h(the)f(di\013erence)g(is)h(negligible,)g(and)f(the)h @@ -31253,7 +31242,7 @@ (matter)f(whic)n(h)g(one)g(w)n(e)g(use)g(to)g(set)g Fi(r)l(adius)12 b Fm(.)0 1160 y([)p Fh(LDF)25 b(2003.08.14.)p Fm(])0 1284 y Fn(h)14 b Fm(De\014ne)28 b Fk(Circle)k Fm(functions)k -Fl(1235)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1384 y Fk(Circle)32 +Fl(1240)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1384 y Fk(Circle)32 b Fm(&)p Fk(Circle)12 b Fm(::)d Fk(op)s(erator)t Fm(=\()p Fk(const)33 b(Ellipse)d Fm(&)p Fe(e)o Fm(\))83 1483 y Fn(f)166 1583 y Fk(real)j Fi(e)p 398 1583 V 30 w(axis)p @@ -31290,8 +31279,8 @@ Fm(2)p Fe(:)p Fm(0)o(;)166 2803 y Fk(Ellipse)d Fm(::)d Fk(op)s(erator)d Fm(=\()p Fe(e)p Fm(\);)166 2903 y Fk(return)33 b Fn(\003)p Fi(this)11 b Fm(;)83 3003 y Fn(g)0 3202 y -Fk(1252.)94 b(Returning)31 b(elemen)m(ts)f(and)j(information.)0 -3401 y(1253.)94 b(Is)37 b(circular.)96 b Fm(T)-7 b(ests)31 +Fk(1257.)94 b(Returning)31 b(elemen)m(ts)f(and)j(information.)0 +3401 y(1258.)94 b(Is)37 b(circular.)96 b Fm(T)-7 b(ests)31 b(whether)h Fn(\003)p Fi(this)43 b Fm(is)32 b(circular.)49 b(Op)r(erations)30 b(suc)n(h)i(as)f Fi(sc)l(ale)12 b Fm(\()i(\))32 b(and)g Fi(she)l(ar)14 b Fm(\()g(\))32 @@ -31325,19 +31314,18 @@ Fm(\()p Fi(p)l(oints)11 b Fm([)p Fe(n)p Fm(]\))28 b(for)f Fe(n)c(>)g Fm(0,)k Fi(is)p 899 4198 V 31 w(cir)l(cular)14 b Fm(\()g(\))28 b(returns)f Fi(true)10 b Fm(.)37 b([)p -Fh(LDF)25 b(2003.07.25.)p Fm(])p 0 4302 1643 4 v 1738 -4335 a Fk(Begin)31 b(Log)p 2257 4302 V 83 4475 a Fm([)p -Fh(LDF)25 b(2003.07.25.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 4567 1678 4 v 1773 4600 a Fk(End)k(Log)p 2222 4567 -V 0 4725 a Fn(h)14 b Fm(Declare)27 b Fk(Circle)32 b Fm(functions)j -Fl(1234)15 b Fn(i)24 b Fm(+)p Fn(\021)83 4824 y Fk(b)s(o)s(ol)31 -b Fi(is)p 360 4824 26 4 v 31 w(cir)l(cular)14 b Fm(\()p +Fh(LDF)25 b(2003.07.25.)p Fm(])p 0 4301 1779 4 v 1874 +4334 a Fk(Log)p 2122 4301 V 83 4475 a Fm([)p Fh(LDF)g(2003.07.25.)p +Fm(])61 b(Added)28 b(this)g(function.)p 0 4567 3900 4 +v 0 4724 a Fn(h)14 b Fm(Declare)27 b Fk(Circle)32 b Fm(functions)j +Fl(1239)15 b Fn(i)24 b Fm(+)p Fn(\021)83 4823 y Fk(b)s(o)s(ol)31 +b Fi(is)p 360 4823 26 4 v 31 w(cir)l(cular)14 b Fm(\()p Fk(v)m(oid)5 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 364 364 -TeXDict begin 364 363 bop 0 83 a Fm(364)140 b Fl(IS)24 -b(CIR)n(CULAR)2436 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1254)0 -263 y Fk(1254.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Circle)k -Fm(functions)k Fl(1235)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 368 368 +TeXDict begin 368 367 bop 0 83 a Fm(368)140 b Fl(IS)24 +b(CIR)n(CULAR)2436 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1259)0 +263 y Fk(1259.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Circle)k +Fm(functions)k Fl(1240)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)31 b(Circle)12 b Fm(::)c Fi(is)p 674 487 26 4 v 32 w(cir)l(cular)14 b Fm(\()p Fk(v)m(oid)5 b Fm(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(b)s(o)s(ol)j @@ -31388,26 +31376,25 @@ Ff(Circle::)o(is_)-7 b(circular\(\).)p Fj( )p Ff(Retu)o(rni)o(n)h(g)p Fj( )p Ff(true.\\n")23 b Fn(\034)g Fi(\015ush)11 b Fm(;)166 3351 y Fk(return)33 b Fi(true)10 b Fm(;)83 3451 y Fn(g)0 -3650 y Fk(1255.)94 b(Get)32 b(radius.)p 0 3726 1643 4 -v 1738 3759 a(Begin)f(Log)p 2257 3726 V 83 3899 a Fm([)p -Fh(LDF)25 b(2002.05.10.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 3991 1678 4 v 1773 4024 a Fk(End)k(Log)p 2222 3991 -V 0 4148 a Fn(h)14 b Fm(Declare)27 b Fk(Circle)32 b Fm(functions)j -Fl(1234)15 b Fn(i)24 b Fm(+)p Fn(\021)83 4248 y Fk(inline)31 -b(real)h Fi(get)p 642 4248 26 4 v 31 w(r)l(adius)11 b -Fm(\()k(\))83 4348 y Fn(f)166 4447 y Fk(return)33 b Fi(r)l(adius)12 -b Fm(;)83 4547 y Fn(g)0 4746 y Fk(1256.)94 b(Get)32 b(diameter.)94 -b Fm([)p Fh(LDF)26 b(2002.05.10.)p Fm(])60 b(Added)29 -b(this)e(function.)0 4871 y Fn(h)14 b Fm(Declare)27 b -Fk(Circle)32 b Fm(functions)j Fl(1234)15 b Fn(i)24 b -Fm(+)p Fn(\021)83 4970 y Fk(inline)31 b(real)h Fi(get)p -642 4970 V 31 w(diameter)14 b Fm(\()g(\))83 5070 y Fn(f)166 -5170 y Fk(return)33 b Fm(\(2)18 b Fn(\003)g Fi(r)l(adius)12 -b Fm(\);)83 5269 y Fn(g)p eop end -%%Page: 365 365 -TeXDict begin 365 364 bop 0 83 a Fn(x)p Fm(1257)139 b -Fl(3DLDFPR)n(G)2314 b(INTERSECTIONS)141 b Fm(365)0 263 -y Fk(1257.)94 b(In)m(tersections.)h Fm(Neither)29 b(GCC)g(nor)f(the)h +3650 y Fk(1260.)94 b(Get)32 b(radius.)p 0 3726 1779 4 +v 1874 3759 a(Log)p 2122 3726 V 83 3899 a Fm([)p Fh(LDF)25 +b(2002.05.10.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 3991 3900 4 v 0 4148 a Fn(h)14 b Fm(Declare)27 b Fk(Circle)32 +b Fm(functions)j Fl(1239)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +4248 y Fk(inline)31 b(real)h Fi(get)p 642 4248 26 4 v +31 w(r)l(adius)11 b Fm(\()k(\))83 4348 y Fn(f)166 4447 +y Fk(return)33 b Fi(r)l(adius)12 b Fm(;)83 4547 y Fn(g)0 +4746 y Fk(1261.)94 b(Get)32 b(diameter.)94 b Fm([)p Fh(LDF)26 +b(2002.05.10.)p Fm(])60 b(Added)29 b(this)e(function.)0 +4871 y Fn(h)14 b Fm(Declare)27 b Fk(Circle)32 b Fm(functions)j +Fl(1239)15 b Fn(i)24 b Fm(+)p Fn(\021)83 4970 y Fk(inline)31 +b(real)h Fi(get)p 642 4970 V 31 w(diameter)14 b Fm(\()g(\))83 +5070 y Fn(f)166 5170 y Fk(return)33 b Fm(\(2)18 b Fn(\003)g +Fi(r)l(adius)12 b Fm(\);)83 5269 y Fn(g)p eop end +%%Page: 369 369 +TeXDict begin 369 368 bop 0 83 a Fn(x)p Fm(1262)139 b +Fl(3DLDFPR)n(G)2314 b(INTERSECTIONS)141 b Fm(369)0 263 +y Fk(1262.)94 b(In)m(tersections.)h Fm(Neither)29 b(GCC)g(nor)f(the)h (DEC)g(compiler)f(could)h(resolv)n(e)e(a)h(call)h(to)g Fi(interse)l(ction)p 3571 263 26 4 v 30 w(p)l(oints)12 b Fm(\()i(\))0 363 y(with)22 b Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)20 @@ -31437,79 +31424,76 @@ Fm(\()p Fk(const)33 b(Ellipse)d Fm(&\))e(and)0 1259 y Fk(Ellipse)11 b Fm(::)d Fi(interse)l(ction)p 770 1259 V 31 w(p)l(oints)j Fm(\()p Fk(const)33 b(Circle)f Fm(&\).)0 -1459 y Fk(1258.)94 b(P)m(oin)m(t)32 b(argumen)m(t.)p -0 1558 1643 4 v 1738 1590 a(Begin)f(Log)p 2257 1558 V -83 1731 a Fm([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 1823 1678 4 v 1773 1856 a Fk(End)k(Log)p -2222 1823 V 0 1980 a Fn(h)14 b Fm(Declare)27 b Fk(Circle)32 -b Fm(functions)j Fl(1234)15 b Fn(i)24 b Fm(+)p Fn(\021)83 -2080 y Fk(virtual)33 b(b)s(o)s(ol)p 581 2080 29 5 v 38 -w(p)s(oin)m(t)p 837 2080 V 40 w(pair)g Fi(interse)l(ction)p -1497 2080 26 4 v 30 w(p)l(oints)12 b Fm(\()p Fk(const)32 -b(P)m(oin)m(t)h Fm(&)p Fi(pt0)16 b Fe(;)e Fk(const)32 -b(P)m(oin)m(t)h Fm(&)o Fi(pt1)16 b Fm(\))28 b Fk(const)5 -b Fm(;)0 2279 y Fk(1259.)0 2404 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Circle)k Fm(functions)k Fl(1235)15 b Fn(i)23 b Fm(+)p -Fn(\021)83 2503 y Fk(b)s(o)s(ol)p 269 2503 29 5 v 38 -w(p)s(oin)m(t)p 525 2503 V 40 w(pair)33 b(Circle)12 b -Fm(::)c Fi(interse)l(ction)p 1499 2503 26 4 v 31 w(p)l(oints)k -Fm(\()p Fk(const)33 b(P)m(oin)m(t)f Fm(&)p Fi(pt0)16 -b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(pt1)16 -b Fm(\))28 b Fk(const)83 2603 y Fn(f)166 2702 y Fk(return)33 -b(Ellipse)11 b Fm(::)d Fi(interse)l(ction)p 1234 2702 -V 31 w(p)l(oints)j Fm(\()p Fi(pt0)17 b Fe(;)d Fi(pt1)h -Fm(\);)83 2802 y Fn(g)0 3001 y Fk(1260.)94 b(P)m(ath)33 -b(argumen)m(t.)p 0 3101 1643 4 v 1738 3133 a(Begin)e(Log)p -2257 3101 V 83 3274 a Fm([)p Fh(LDF)25 b(2003.07.09.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 3366 1678 4 -v 1773 3398 a Fk(End)k(Log)p 2222 3366 V 0 3523 a Fn(h)14 -b Fm(Declare)27 b Fk(Circle)32 b Fm(functions)j Fl(1234)15 -b Fn(i)24 b Fm(+)p Fn(\021)83 3623 y Fk(virtual)33 b(b)s(o)s(ol)p -581 3623 29 5 v 38 w(p)s(oin)m(t)p 837 3623 V 40 w(pair)g -Fi(interse)l(ction)p 1497 3623 26 4 v 30 w(p)l(oints)12 -b Fm(\()p Fk(const)32 b(P)m(ath)i Fm(&)p Fe(p)o Fm(\))28 -b Fk(const)5 b Fm(;)p eop end -%%Page: 366 366 -TeXDict begin 366 365 bop 0 83 a Fm(366)140 b Fk(P)-8 +1459 y Fk(1263.)94 b(P)m(oin)m(t)32 b(argumen)m(t.)p +0 1557 1779 4 v 1874 1590 a(Log)p 2122 1557 V 83 1730 +a Fm([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 1822 3900 4 v 0 1980 a Fn(h)14 +b Fm(Declare)27 b Fk(Circle)32 b Fm(functions)j Fl(1239)15 +b Fn(i)24 b Fm(+)p Fn(\021)83 2079 y Fk(virtual)33 b(b)s(o)s(ol)p +581 2079 29 5 v 38 w(p)s(oin)m(t)p 837 2079 V 40 w(pair)g +Fi(interse)l(ction)p 1497 2079 26 4 v 30 w(p)l(oints)12 +b Fm(\()p Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(pt0)16 +b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)o Fi(pt1)16 +b Fm(\))28 b Fk(const)5 b Fm(;)0 2278 y Fk(1264.)0 2403 +y Fn(h)14 b Fm(De\014ne)28 b Fk(Circle)k Fm(functions)k +Fl(1240)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2503 y Fk(b)s(o)s(ol)p +269 2503 29 5 v 38 w(p)s(oin)m(t)p 525 2503 V 40 w(pair)33 +b(Circle)12 b Fm(::)c Fi(interse)l(ction)p 1499 2503 +26 4 v 31 w(p)l(oints)k Fm(\()p Fk(const)33 b(P)m(oin)m(t)f +Fm(&)p Fi(pt0)16 b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h +Fm(&)p Fi(pt1)16 b Fm(\))28 b Fk(const)83 2602 y Fn(f)166 +2702 y Fk(return)33 b(Ellipse)11 b Fm(::)d Fi(interse)l(ction)p +1234 2702 V 31 w(p)l(oints)j Fm(\()p Fi(pt0)17 b Fe(;)d +Fi(pt1)h Fm(\);)83 2801 y Fn(g)0 3001 y Fk(1265.)94 b(P)m(ath)33 +b(argumen)m(t.)p 0 3099 1779 4 v 1874 3132 a(Log)p 2122 +3099 V 83 3273 a Fm([)p Fh(LDF)25 b(2003.07.09.)p Fm(])61 +b(Added)28 b(this)g(function.)p 0 3364 3900 4 v 0 3522 +a Fn(h)14 b Fm(Declare)27 b Fk(Circle)32 b Fm(functions)j +Fl(1239)15 b Fn(i)24 b Fm(+)p Fn(\021)83 3621 y Fk(virtual)33 +b(b)s(o)s(ol)p 581 3621 29 5 v 38 w(p)s(oin)m(t)p 837 +3621 V 40 w(pair)g Fi(interse)l(ction)p 1497 3621 26 +4 v 30 w(p)l(oints)12 b Fm(\()p Fk(const)32 b(P)m(ath)i +Fm(&)p Fe(p)o Fm(\))28 b Fk(const)5 b Fm(;)p eop end +%%Page: 370 370 +TeXDict begin 370 369 bop 0 83 a Fm(370)140 b Fk(P)-8 b(A)g(TH)24 b Fl(AR)n(GUMENT)2189 b(3DLDFPR)n(G)142 b -Fn(x)p Fm(1261)0 263 y Fk(1261.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Circle)k Fm(functions)k Fl(1235)15 b Fn(i)23 b Fm(+)p +Fn(x)p Fm(1266)0 263 y Fk(1266.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Circle)k Fm(functions)k Fl(1240)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)p 269 487 29 5 v 38 w(p)s(oin)m(t)p 525 487 V 40 w(pair)33 b(Circle)12 b Fm(::)c Fi(interse)l(ction)p 1499 487 26 4 v 31 w(p)l(oints)k Fm(\()p Fk(const)33 b(P)m(ath)g Fm(&)p Fe(p)p Fm(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(return)33 b(Ellipse)11 b Fm(::)d Fi(interse)l(ction)p 1234 686 V 31 w(p)l(oints)j Fm(\()p -Fe(p)p Fm(\);)83 786 y Fn(g)0 985 y Fk(1262.)94 b(Circle)31 -b(argumen)m(t.)p 0 1085 1643 4 v 1738 1117 a(Begin)g(Log)p -2257 1085 V 83 1258 a Fm([)p Fh(LDF)25 b(2003.07.20.)p -Fm(])68 b(W)-7 b(rote)35 b(the)g(de\014nition)h(of)f(this)g(function.) -59 b(T)-7 b(ested)35 b(all)g(cases.)58 b(It)35 b(should)g(probably)e(b) -r(e)j(tested)0 1358 y(more)27 b(thoroughly)-7 b(.)83 -1457 y([)p Fh(LDF)25 b(2003.08.14.)p Fm(])58 b(Made)25 -b Fi(verb)l(ose)36 b Fm(argumen)n(t)24 b(non-)p Fk(const)t -Fm(.)36 b(Setting)26 b Fi(verb)l(ose)36 b Fm(to)25 b -Fi(true)34 b Fm(if)26 b Ff(VERBOSE_GLOBAL)d Fm(is)i Fi(true)10 -b Fm(.)0 1557 y(Added)28 b Ff(VERBOSE_GLOBAL)e Fm(to)i -Fj(pspglb.web)23 b Fm(to)r(da)n(y)-7 b(.)83 1656 y([)p -Fh(LDF)25 b(2003.08.27.)p Fm(])61 b(Remo)n(v)n(ed)27 -b(the)h(declaration)e Fk(real)32 b Fi(c)p 1901 1656 26 -4 v 31 w(r)l(adius)39 b Fm(=)28 b Fe(c:)p Fi(r)l(adius)11 -b Fm(,)28 b(since)f Fi(c)p 2864 1656 V 31 w(r)l(adius)40 -b Fm(w)n(as)26 b(nev)n(er)h(used.)p 0 1748 1678 4 v 1773 -1781 a Fk(End)32 b(Log)p 2222 1748 V 0 1905 a Fn(h)14 -b Fm(Declare)27 b Fk(Circle)32 b Fm(functions)j Fl(1234)15 -b Fn(i)24 b Fm(+)p Fn(\021)83 2005 y Fk(virtual)33 b(b)s(o)s(ol)p -581 2005 29 5 v 38 w(p)s(oin)m(t)p 837 2005 V 40 w(quadruple)g -Fi(interse)l(ction)p 1750 2005 26 4 v 31 w(p)l(oints)11 -b Fm(\()p Fk(const)33 b(Circle)f Fm(&)o Fe(c;)14 b Fk(b)s(o)s(ol)31 -b Fi(verb)l(ose)j Fm(=)23 b Fi(false)12 b Fm(\))28 b -Fk(const)t Fm(;)p eop end -%%Page: 367 367 -TeXDict begin 367 366 bop 0 83 a Fn(x)p Fm(1263)139 b +Fe(p)p Fm(\);)83 786 y Fn(g)0 985 y Fk(1267.)94 b(Circle)31 +b(argumen)m(t.)p 0 1084 1779 4 v 1874 1117 a(Log)p 2122 +1084 V 83 1257 a Fm([)p Fh(LDF)25 b(2003.07.20.)p Fm(])68 +b(W)-7 b(rote)35 b(the)g(de\014nition)h(of)f(this)g(function.)59 +b(T)-7 b(ested)35 b(all)g(cases.)58 b(It)35 b(should)g(probably)e(b)r +(e)j(tested)0 1357 y(more)27 b(thoroughly)-7 b(.)83 1456 +y([)p Fh(LDF)25 b(2003.08.14.)p Fm(])58 b(Made)25 b Fi(verb)l(ose)36 +b Fm(argumen)n(t)24 b(non-)p Fk(const)t Fm(.)36 b(Setting)26 +b Fi(verb)l(ose)36 b Fm(to)25 b Fi(true)34 b Fm(if)26 +b Ff(VERBOSE_GLOBAL)d Fm(is)i Fi(true)10 b Fm(.)0 1556 +y(Added)28 b Ff(VERBOSE_GLOBAL)e Fm(to)i Fj(pspglb.web)23 +b Fm(to)r(da)n(y)-7 b(.)83 1656 y([)p Fh(LDF)25 b(2003.08.27.)p +Fm(])61 b(Remo)n(v)n(ed)27 b(the)h(declaration)e Fk(real)32 +b Fi(c)p 1901 1656 26 4 v 31 w(r)l(adius)39 b Fm(=)28 +b Fe(c:)p Fi(r)l(adius)11 b Fm(,)28 b(since)f Fi(c)p +2864 1656 V 31 w(r)l(adius)40 b Fm(w)n(as)26 b(nev)n(er)h(used.)p +0 1748 3900 4 v 0 1905 a Fn(h)14 b Fm(Declare)27 b Fk(Circle)32 +b Fm(functions)j Fl(1239)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +2004 y Fk(virtual)33 b(b)s(o)s(ol)p 581 2004 29 5 v 38 +w(p)s(oin)m(t)p 837 2004 V 40 w(quadruple)g Fi(interse)l(ction)p +1750 2004 26 4 v 31 w(p)l(oints)11 b Fm(\()p Fk(const)33 +b(Circle)f Fm(&)o Fe(c;)14 b Fk(b)s(o)s(ol)31 b Fi(verb)l(ose)j +Fm(=)23 b Fi(false)12 b Fm(\))28 b Fk(const)t Fm(;)p +eop end +%%Page: 371 371 +TeXDict begin 371 370 bop 0 83 a Fn(x)p Fm(1268)139 b Fl(3DLDFPR)n(G)2090 b Fk(CIR)m(CLE)24 b Fl(AR)n(GUMENT)140 -b Fm(367)0 263 y Fk(1263.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Circle)k Fm(functions)k Fl(1235)15 b Fn(i)23 b Fm(+)p +b Fm(371)0 263 y Fk(1268.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Circle)k Fm(functions)k Fl(1240)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)p 269 487 29 5 v 38 w(p)s(oin)m(t)p 525 487 V 40 w(quadruple)33 b(Circle)13 b Fm(::)8 b Fi(interse)l(ction) p 1753 487 26 4 v 31 w(p)l(oints)j Fm(\()p Fk(const)33 @@ -31611,9 +31595,9 @@ b Fn(\034)23 b Fi(\015ush)10 b Fm(;)415 5394 y Fk(return)33 b Ff(INVALID_BOOL_POIN)o(T_)o(QU)o(ADR)o(UP)o(LE)n Fm(;)p eop end -%%Page: 368 368 -TeXDict begin 368 367 bop 0 83 a Fm(368)140 b Fk(CIR)m(CLE)23 -b Fl(AR)n(GUMENT)2089 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1263)332 +%%Page: 372 372 +TeXDict begin 372 371 bop 0 83 a Fm(372)140 b Fk(CIR)m(CLE)23 +b Fl(AR)n(GUMENT)2089 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1268)332 263 y Fn(g)332 363 y Fk(else)45 b Fn(f)415 462 y Fi(c)l(err)40 b Fn(\034)26 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(")f Fn(\034)i Ff("|Circle::inter)o(sec)o(ti)-7 b(on_points\(const)p @@ -31723,10 +31707,10 @@ Fe(;)i(c:)p Fi(r)l(adius)d Fm(\))19 b Fn(\000)f Fi(min)11 b Fm(\()p Fi(r)l(adius)h Fe(;)i(c:)p Fi(r)l(adius)d Fm(\)\))42 b Fn(f)p eop end -%%Page: 369 369 -TeXDict begin 369 368 bop 0 83 a Fn(x)p Fm(1263)139 b +%%Page: 373 373 +TeXDict begin 373 372 bop 0 83 a Fn(x)p Fm(1268)139 b Fl(3DLDFPR)n(G)2090 b Fk(CIR)m(CLE)24 b Fl(AR)n(GUMENT)140 -b Fm(369)415 263 y Fk(if)41 b Fm(\()p Fi(verb)l(ose)30 +b Fm(373)415 263 y Fk(if)41 b Fm(\()p Fi(verb)l(ose)30 b Fn(_)19 b Ff(DEBUG)s Fm(\))41 b Fi(c)l(out)35 b Fn(\034)23 b Ff("t)p Fj( )p Ff(and)p Fj( )p Ff(c)p Fj( )p Ff(have)p Fj( )p Ff(2)p Fj( )o Ff(int)o(e)-6 b(rsections.\\n")o @@ -31821,9 +31805,9 @@ b Fn(\034)498 5294 y Ff("Returning)p Fj( )p Ff(INVALI)o(D_)o(B)-6 b(OOL_POINT_QUADRU)o(PL)o(E.)g(")27 b Fn(\034)c Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 b Fm(;)p eop end -%%Page: 370 370 -TeXDict begin 370 369 bop 0 83 a Fm(370)140 b Fk(CIR)m(CLE)23 -b Fl(AR)n(GUMENT)2089 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1263)332 +%%Page: 374 374 +TeXDict begin 374 373 bop 0 83 a Fm(374)140 b Fk(CIR)m(CLE)23 +b Fl(AR)n(GUMENT)2089 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1268)332 263 y Fk(if)42 b Fm(\()p Ff(DEBUG)s Fm(\))f Fi(c)l(out)36 b Fn(\034)25 b Ff("\\nExiting)p Fj( )p Ff(Circ)o(le:)o(:i)-7 b(ntersection_point)o(s\()o(c)h(onst)p Fj( )p Ff(Circle&\).")22 @@ -31832,67 +31816,68 @@ b Ff(INVALID_BOOL_POIN)o(T_)o(QU)o(ADR)o(UP)o(LE)n Fm(;)249 562 y Fn(g)166 662 y(g)166 b Fe(=)p Fn(\003)40 b Fk(else)31 b Fm(\(Coplanar)c(case\).)50 b Fn(\003)p Fe(=)83 761 -y Fn(g)0 960 y Fk(1264.)94 b(Reg)p 483 960 29 4 v 33 +y Fn(g)0 960 y Fk(1269.)94 b(Reg)p 483 960 29 4 v 33 w(P)m(olygon)34 b(functions.)95 b Fm([)p Fh(LDF)25 b(2003.06.13.)p Fm(])63 b(The)29 b(functions)h(in)g(this)f(section)g(are)g(declared)f (in)i Fj(poly-)0 1060 y(gons.web)p Fm(.)k(They)27 b(m)n(ust)h(b)r(e)g (de\014ned)g(here,)f(b)r(ecause)g Fk(Circle)32 b Fm(is)c(an)f -(incomplete)h(t)n(yp)r(e)f(there.)p 0 1162 1643 4 v 1738 -1194 a Fk(Begin)k(Log)p 2257 1162 V 83 1335 a Fm([)p -Fh(LDF)25 b(2003.06.13.)p Fm(])61 b(Added)28 b(this)g(section.)p -0 1427 1678 4 v 1773 1459 a Fk(End)k(Log)p 2222 1427 -V 0 1659 a(1265.)94 b(Enclosed)31 b(circle.)p 0 1734 -1643 4 v 1738 1767 a(Begin)g(Log)p 2257 1734 V 83 1908 -a Fm([)p Fh(LDF)25 b(2003.06.13.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 2000 1678 4 v 1773 2032 a Fk(End)k(Log)p -2222 2000 V 0 2157 a Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p -471 2157 29 5 v 39 w(P)m(olygon)33 b Fm(functions)i Fl(1024)15 -b Fn(i)24 b Fm(+)p Fn(\021)83 2256 y Fk(Circle)32 b(Reg)p -531 2256 V 39 w(P)m(olygon)13 b Fm(::)8 b Fi(in)p 1046 -2256 26 4 v 31 w(cir)l(cle)k Fm(\()i(\))28 b Fk(const)83 -2356 y Fn(f)166 2456 y Fk(Circle)k Fe(c)p Fm(;)166 2580 -y Fk(if)41 b Fm(\()p Fn(:)p Fi(is)p 414 2580 V 32 w(planar)14 -b Fm(\()g(\)\))42 b Fn(f)249 2680 y Fi(c)l(err)d Fn(\034)26 +(incomplete)h(t)n(yp)r(e)f(there.)p 0 1161 1779 4 v 1874 +1194 a Fk(Log)p 2122 1161 V 83 1334 a Fm([)p Fh(LDF)e(2003.06.13.)p +Fm(])61 b(Added)28 b(this)g(section.)p 0 1426 3900 4 +v 0 1658 a Fk(1270.)94 b(Enclosed)31 b(circle.)p 0 1734 +1779 4 v 1874 1766 a(Log)p 2122 1734 V 83 1907 a Fm([)p +Fh(LDF)25 b(2003.06.13.)p Fm(])61 b(Added)28 b(this)g(function.)83 +2007 y([)p Fh(LDF)d(2003.12.09.)p Fm(])61 b(Changed)27 +b(call)g(to)h Fk(P)m(oin)m(t)13 b Fm(::)8 b Fi(me)l(diate)k +Fm(\()i(\))28 b(b)r(elo)n(w.)37 b(It's)27 b(no)n(w)g(a)h(mem)n(b)r(er)f +(function.)p 0 2099 3900 4 v 0 2256 a Fn(h)14 b Fm(De\014ne)28 +b Fk(Reg)p 471 2256 29 5 v 39 w(P)m(olygon)33 b Fm(functions)i +Fl(1027)15 b Fn(i)24 b Fm(+)p Fn(\021)83 2355 y Fk(Circle)32 +b(Reg)p 531 2355 V 39 w(P)m(olygon)13 b Fm(::)8 b Fi(in)p +1046 2355 26 4 v 31 w(cir)l(cle)k Fm(\()i(\))28 b Fk(const)83 +2455 y Fn(f)166 2555 y Fk(Circle)k Fe(c)p Fm(;)166 2679 +y Fk(if)41 b Fm(\()p Fn(:)p Fi(is)p 414 2679 V 32 w(planar)14 +b Fm(\()g(\)\))42 b Fn(f)249 2779 y Fi(c)l(err)d Fn(\034)26 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Reg_Po)o(ly)o(g)-6 b(on::in_circle\(\):)o(\\n)o(")24 b Fn(\034)i Ff("Reg_Polygon)p Fj( )p Ff(is)p Fj( )p Ff(n)o(on)o(-)-6 b(planar.\\n")26 -b Fn(\034)415 2780 y Ff("Returning)p Fj( )p Ff(empty)o +b Fn(\034)415 2878 y Ff("Returning)p Fj( )p Ff(empty)o Fj( )p Ff(Ci)o(r)-6 b(cle.\\n\\n")24 b Fn(\034)f Fi(\015ush)10 -b Fm(;)249 2879 y Fk(return)33 b Fe(c)p Fm(;)166 2979 -y Fn(g)166 3078 y Fk(if)41 b Fm(\()p Fi(p)l(oints)12 +b Fm(;)249 2978 y Fk(return)33 b Fe(c)p Fm(;)166 3078 +y Fn(g)166 3177 y Fk(if)41 b Fm(\()p Fi(p)l(oints)12 b Fe(:)p Fi(size)f Fm(\()j(\))23 b Fe(<)g Fm(3\))41 b -Fn(f)249 3178 y Fi(c)l(err)76 b Fn(\034)63 b Ff("ERROR!)p +Fn(f)249 3277 y Fi(c)l(err)76 b Fn(\034)63 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Reg_Po)o(ly)o(g)-6 b(on::in_circle\(\):)o -(\\n")61 b Fn(\034)415 3278 y Ff("Reg_Polygon)p Fj( )p +(\\n")61 b Fn(\034)415 3377 y Ff("Reg_Polygon)p Fj( )p Ff(has)o Fj( )p Ff(le)o(s)-6 b(s)p Fj( )p Ff(than)p Fj( )p Ff(3)p Fj( )p Ff(Points.)o(\\n)o(")21 b Fn(\034)i Ff("Returning)p Fj( )p Ff(empty)p Fj( )o Ff(Cir)-7 b(cle.\\n\\n")24 b -Fn(\034)f Fi(\015ush)10 b Fm(;)249 3377 y Fk(return)33 -b Fe(c)p Fm(;)166 3477 y Fn(g)166 3601 y Fk(P)m(oin)m(t)g -Fi(mid)p 563 3601 V 31 w(pt)i Fm(=)23 b Fi(me)l(diate)11 -b Fm(\()p Fn(\003)p Fi(p)l(oints)h Fm([0)o(])p Fe(;)i -Fn(\003)p Fi(p)l(oints)d Fm([1]\);)166 3726 y Fi(mid)p -306 3726 V 31 w(pt)36 b Fn(\000)p Fm(=)22 b Fi(c)l(enter)13 -b Fm(;)166 3850 y Fk(real)33 b Fe(r)25 b Fm(=)e Fi(mid)p -645 3850 V 31 w(pt)12 b Fe(:)p Fi(magnitude)f Fm(\()j(\);)166 -3975 y Fe(c:)p Fi(set)e Fm(\()p Fi(origin)g Fe(;)i Fm(2)k -Fn(\003)g Fe(r)s Fm(\);)166 4100 y Fk(P)m(oin)m(t)33 -b Fi(normal)j Fm(=)23 b Fi(get)p 911 4100 V 31 w(normal)13 -b Fm(\()h(\);)166 4224 y Fi(normal)g Fe(:)p Fi(shift)f -Fm(\()p Fi(c)l(enter)g Fm(\);)166 4349 y Fk(T)-8 b(ransform)33 -b Fe(t)p Fm(;)166 4473 y Fe(t:)p Fi(align)p 397 4473 -V 32 w(with)p 579 4473 V 31 w(axis)11 b Fm(\()p Fi(c)l(enter)i -Fe(;)h Fi(normal)g Fe(;)g Ff('y')s Fm(\);)166 4573 y +Fn(\034)f Fi(\015ush)10 b Fm(;)249 3476 y Fk(return)33 +b Fe(c)p Fm(;)166 3576 y Fn(g)166 3700 y Fk(P)m(oin)m(t)g +Fi(mid)p 563 3700 V 31 w(pt)i Fm(=)23 b Fi(p)l(oints)11 +b Fm([0])1078 3725 y Fe(~)1128 3700 y Fi(me)l(diate)h +Fm(\()p Fn(\003)o Fi(p)l(oints)g Fm([1)o(]\);)166 3825 +y Fi(mid)p 306 3825 V 31 w(pt)36 b Fn(\000)p Fm(=)22 +b Fi(c)l(enter)13 b Fm(;)166 3949 y Fk(real)33 b Fe(r)25 +b Fm(=)e Fi(mid)p 645 3949 V 31 w(pt)12 b Fe(:)p Fi(magnitude)f +Fm(\()j(\);)166 4074 y Fe(c:)p Fi(set)e Fm(\()p Fi(origin)g +Fe(;)i Fm(2)k Fn(\003)g Fe(r)s Fm(\);)166 4198 y Fk(P)m(oin)m(t)33 +b Fi(normal)j Fm(=)23 b Fi(get)p 911 4198 V 31 w(normal)13 +b Fm(\()h(\);)166 4323 y Fi(normal)g Fe(:)p Fi(shift)f +Fm(\()p Fi(c)l(enter)g Fm(\);)166 4448 y Fk(T)-8 b(ransform)33 +b Fe(t)p Fm(;)166 4572 y Fe(t:)p Fi(align)p 397 4572 +V 32 w(with)p 579 4572 V 31 w(axis)11 b Fm(\()p Fi(c)l(enter)i +Fe(;)h Fi(normal)g Fe(;)g Ff('y')s Fm(\);)166 4672 y Fe(c)23 b Fn(\003)p Fm(=)f Fe(t:)p Fi(inverse)11 b Fm(\()j(\);)166 -4672 y Fk(return)33 b Fe(c)p Fm(;)83 4772 y Fn(g)0 4971 -y Fk(1266.)94 b(Dra)m(w)33 b(enclosed)e(circle.)p eop +4771 y Fk(return)33 b Fe(c)p Fm(;)83 4871 y Fn(g)0 5070 +y Fk(1271.)94 b(Dra)m(w)33 b(enclosed)e(circle.)p eop end -%%Page: 371 371 -TeXDict begin 371 370 bop 0 83 a Fn(x)p Fm(1267)139 b -Fl(3DLDFPR)n(G)2234 b(NORMAL)23 b(VERSION)141 b Fm(371)0 -263 y Fk(1267.)94 b(Normal)31 b(v)m(ersion.)0 388 y Fn(h)14 +%%Page: 375 375 +TeXDict begin 375 374 bop 0 83 a Fn(x)p Fm(1272)139 b +Fl(3DLDFPR)n(G)2234 b(NORMAL)23 b(VERSION)141 b Fm(375)0 +263 y Fk(1272.)94 b(Normal)31 b(v)m(ersion.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 388 29 5 v 39 w(P)m(olygon)33 -b Fm(functions)i Fl(1024)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +b Fm(functions)i Fl(1027)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(Circle)31 b(Reg)p 530 487 V 40 w(P)m(olygon)12 b Fm(::)c Fi(dr)l(aw)p 1143 487 26 4 v 32 w(in)p 1247 487 V 31 w(cir)l(cle)j Fm(\()p Fk(const)33 b(Color)e @@ -31905,9 +31890,9 @@ Fi(dr)l(aw)g Fm(\()p Fi(ddr)l(aw)p 658 911 V 32 w(c)l(olor)g Fe(;)g Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)d Fm(\);)166 1010 y Fk(return)33 b Fe(c)p Fm(;)83 1110 -y Fn(g)0 1309 y Fk(1268.)94 b(Picture)32 b(argumen)m(t)g(\014rst.)0 +y Fn(g)0 1309 y Fk(1273.)94 b(Picture)32 b(argumen)m(t)g(\014rst.)0 1434 y Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 1434 29 -5 v 39 w(P)m(olygon)33 b Fm(functions)i Fl(1024)15 b +5 v 39 w(P)m(olygon)33 b Fm(functions)i Fl(1027)15 b Fn(i)24 b Fm(+)p Fn(\021)83 1533 y Fk(Circle)34 b(Reg)p 533 1533 V 39 w(P)m(olygon)13 b Fm(::)8 b Fi(dr)l(aw)p 1146 1533 26 4 v 32 w(in)p 1250 1533 V 31 w(cir)l(cle)j @@ -31920,55 +31905,54 @@ 742 1832 V 31 w(cir)l(cle)12 b Fm(\()p Fi(ddr)l(aw)p 1220 1832 V 32 w(c)l(olor)i Fe(;)g Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)c Fm(\);)83 1932 y -Fn(g)0 2131 y Fk(1269.)94 b(Surrounding)32 b(circle.)p -0 2230 1643 4 v 1738 2263 a(Begin)f(Log)p 2257 2230 V -83 2404 a Fm([)p Fh(LDF)25 b(2003.06.13.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 2496 1678 4 v 1773 2528 a Fk(End)k(Log)p -2222 2496 V 0 2653 a Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p -471 2653 29 5 v 39 w(P)m(olygon)33 b Fm(functions)i Fl(1024)15 -b Fn(i)24 b Fm(+)p Fn(\021)83 2752 y Fk(Circle)32 b(Reg)p -531 2752 V 39 w(P)m(olygon)13 b Fm(::)8 b Fi(out)p 1089 -2752 26 4 v 31 w(cir)l(cle)j Fm(\()j(\))28 b Fk(const)83 -2852 y Fn(f)166 2952 y Fk(Circle)k Fe(c)p Fm(;)166 3076 -y Fk(if)41 b Fm(\()p Fn(:)p Fi(is)p 414 3076 V 32 w(planar)14 -b Fm(\()g(\)\))42 b Fn(f)249 3176 y Fi(c)l(err)c Fn(\034)25 +Fn(g)0 2131 y Fk(1274.)94 b(Surrounding)32 b(circle.)p +0 2230 1779 4 v 1874 2262 a(Log)p 2122 2230 V 83 2403 +a Fm([)p Fh(LDF)25 b(2003.06.13.)p Fm(])61 b(Added)28 +b(this)g(function.)p 0 2495 3900 4 v 0 2652 a Fn(h)14 +b Fm(De\014ne)28 b Fk(Reg)p 471 2652 29 5 v 39 w(P)m(olygon)33 +b Fm(functions)i Fl(1027)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +2752 y Fk(Circle)32 b(Reg)p 531 2752 V 39 w(P)m(olygon)13 +b Fm(::)8 b Fi(out)p 1089 2752 26 4 v 31 w(cir)l(cle)j +Fm(\()j(\))28 b Fk(const)83 2851 y Fn(f)166 2951 y Fk(Circle)k +Fe(c)p Fm(;)166 3075 y Fk(if)41 b Fm(\()p Fn(:)p Fi(is)p +414 3075 V 32 w(planar)14 b Fm(\()g(\)\))42 b Fn(f)249 +3175 y Fi(c)l(err)c Fn(\034)25 b Ff("ERROR!)p Fj( )p +Ff(In)p Fj( )p Ff(Reg_P)o(oly)o(g)-6 b(on::out_circle\(\))o(:\\)o(n")23 +b Fn(\034)h Ff("Reg_Polygon)p Fj( )p Ff(is)p Fj( )p Ff(n)o(on-)-7 +b(planar.\\n")25 b Fn(\034)415 3275 y Ff("Returning)p +Fj( )p Ff(empty)o Fj( )p Ff(Ci)o(r)-6 b(cle.\\n\\n")24 +b Fn(\034)f Fi(\015ush)10 b Fm(;)249 3374 y Fk(return)33 +b Fe(c)p Fm(;)166 3474 y Fn(g)166 3574 y Fk(if)41 b Fm(\()p +Fi(p)l(oints)12 b Fe(:)p Fi(size)f Fm(\()j(\))23 b Fe(<)g +Fm(3\))41 b Fn(f)249 3673 y Fi(c)l(err)75 b Fn(\034)62 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(Reg_P)o(oly)o(g)-6 -b(on::out_circle\(\))o(:\\)o(n")23 b Fn(\034)h Ff("Reg_Polygon)p -Fj( )p Ff(is)p Fj( )p Ff(n)o(on-)-7 b(planar.\\n")25 -b Fn(\034)415 3275 y Ff("Returning)p Fj( )p Ff(empty)o -Fj( )p Ff(Ci)o(r)-6 b(cle.\\n\\n")24 b Fn(\034)f Fi(\015ush)10 -b Fm(;)249 3375 y Fk(return)33 b Fe(c)p Fm(;)166 3475 -y Fn(g)166 3574 y Fk(if)41 b Fm(\()p Fi(p)l(oints)12 -b Fe(:)p Fi(size)f Fm(\()j(\))23 b Fe(<)g Fm(3\))41 b -Fn(f)249 3674 y Fi(c)l(err)75 b Fn(\034)62 b Ff("ERROR!)p -Fj( )p Ff(In)p Fj( )p Ff(Reg_P)o(oly)o(g)-6 b(on::out_circle\(\))o(:\\) -o(n")60 b Fn(\034)415 3773 y Ff("Reg_Polygon)p Fj( )p -Ff(has)o Fj( )p Ff(le)o(s)-6 b(s)p Fj( )p Ff(than)p Fj( )p -Ff(3)p Fj( )p Ff(Points.)o(\\n)o(")21 b Fn(\034)i Ff("Returning)p -Fj( )p Ff(empty)p Fj( )o Ff(Cir)-7 b(cle.\\n\\n")24 b -Fn(\034)f Fi(\015ush)10 b Fm(;)249 3873 y Fk(return)33 -b Fe(c)p Fm(;)166 3973 y Fn(g)166 4097 y Fk(P)m(oin)m(t)g -Fi(normal)j Fm(=)23 b Fi(get)p 911 4097 V 31 w(normal)13 -b Fm(\()h(\);)166 4222 y Fi(normal)g Fe(:)p Fi(shift)f -Fm(\()p Fi(c)l(enter)g Fm(\);)166 4321 y Fe(c:)p Fi(set)f -Fm(\()p Fi(origin)g Fe(;)i Fm(2)k Fn(\003)g Fi(r)l(adius)11 -b Fm(\);)166 4446 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 -4570 y Fe(t:)p Fi(align)p 397 4570 V 32 w(with)p 579 -4570 V 31 w(axis)11 b Fm(\()p Fi(c)l(enter)i Fe(;)h Fi(normal)g -Fe(;)g Ff('y')s Fm(\);)166 4670 y Fe(c)23 b Fn(\003)p -Fm(=)f Fe(t:)p Fi(inverse)11 b Fm(\()j(\);)166 4770 y -Fk(return)33 b Fe(c)p Fm(;)83 4869 y Fn(g)0 5069 y Fk(1270.)94 +b(on::out_circle\(\))o(:\\)o(n")60 b Fn(\034)415 3773 +y Ff("Reg_Polygon)p Fj( )p Ff(has)o Fj( )p Ff(le)o(s)-6 +b(s)p Fj( )p Ff(than)p Fj( )p Ff(3)p Fj( )p Ff(Points.)o(\\n)o(")21 +b Fn(\034)i Ff("Returning)p Fj( )p Ff(empty)p Fj( )o +Ff(Cir)-7 b(cle.\\n\\n")24 b Fn(\034)f Fi(\015ush)10 +b Fm(;)249 3872 y Fk(return)33 b Fe(c)p Fm(;)166 3972 +y Fn(g)166 4097 y Fk(P)m(oin)m(t)g Fi(normal)j Fm(=)23 +b Fi(get)p 911 4097 V 31 w(normal)13 b Fm(\()h(\);)166 +4221 y Fi(normal)g Fe(:)p Fi(shift)f Fm(\()p Fi(c)l(enter)g +Fm(\);)166 4321 y Fe(c:)p Fi(set)f Fm(\()p Fi(origin)g +Fe(;)i Fm(2)k Fn(\003)g Fi(r)l(adius)11 b Fm(\);)166 +4445 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 4570 y +Fe(t:)p Fi(align)p 397 4570 V 32 w(with)p 579 4570 V +31 w(axis)11 b Fm(\()p Fi(c)l(enter)i Fe(;)h Fi(normal)g +Fe(;)g Ff('y')s Fm(\);)166 4669 y Fe(c)23 b Fn(\003)p +Fm(=)f Fe(t:)p Fi(inverse)11 b Fm(\()j(\);)166 4769 y +Fk(return)33 b Fe(c)p Fm(;)83 4869 y Fn(g)0 5068 y Fk(1275.)94 b(Dra)m(w)33 b(surrounding)e(circle.)p eop end -%%Page: 372 372 -TeXDict begin 372 371 bop 0 83 a Fm(372)140 b Fl(NORMAL)22 -b(VERSION)2234 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1271)0 263 -y Fk(1271.)94 b(Normal)31 b(v)m(ersion.)p 0 339 1643 -4 v 1738 371 a(Begin)g(Log)p 2257 339 V 83 512 a Fm([)p -Fh(LDF)25 b(2003.06.13.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 604 1678 4 v 1773 637 a Fk(End)k(Log)p 2222 604 V 0 -761 a Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 761 29 -5 v 39 w(P)m(olygon)33 b Fm(functions)i Fl(1024)15 b -Fn(i)24 b Fm(+)p Fn(\021)83 861 y Fk(Circle)35 b(Reg)p +%%Page: 376 376 +TeXDict begin 376 375 bop 0 83 a Fm(376)140 b Fl(NORMAL)22 +b(VERSION)2234 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1276)0 263 +y Fk(1276.)94 b(Normal)31 b(v)m(ersion.)p 0 339 1779 +4 v 1874 371 a(Log)p 2122 339 V 83 512 a Fm([)p Fh(LDF)25 +b(2003.06.13.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 604 3900 4 v 0 761 a Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p +471 761 29 5 v 39 w(P)m(olygon)33 b Fm(functions)i Fl(1027)15 +b Fn(i)24 b Fm(+)p Fn(\021)83 861 y Fk(Circle)35 b(Reg)p 534 861 V 40 w(P)m(olygon)12 b Fm(::)c Fi(dr)l(aw)p 1147 861 26 4 v 32 w(out)p 1294 861 V 30 w(cir)l(cle)k Fm(\()p Fk(const)36 b(Color)f Fm(&)p Fi(ddr)l(aw)p 2356 861 V @@ -31980,41 +31964,40 @@ 1284 y Fe(c:)p Fi(dr)l(aw)g Fm(\()p Fi(ddr)l(aw)p 658 1284 V 32 w(c)l(olor)g Fe(;)g Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)d Fm(\);)166 1384 y -Fk(return)33 b Fe(c)p Fm(;)83 1483 y Fn(g)0 1683 y Fk(1272.)94 -b(Picture)32 b(argumen)m(t)g(\014rst.)p 0 1782 1643 4 -v 1738 1815 a(Begin)f(Log)p 2257 1782 V 83 1955 a Fm([)p -Fh(LDF)25 b(2003.06.13.)p Fm(])61 b(Added)28 b(this)g(function.)p -0 2047 1678 4 v 1773 2080 a Fk(End)k(Log)p 2222 2047 -V 0 2204 a Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p 471 2204 -29 5 v 39 w(P)m(olygon)33 b Fm(functions)i Fl(1024)15 -b Fn(i)24 b Fm(+)p Fn(\021)83 2304 y Fk(Circle)34 b(Reg)p -533 2304 V 39 w(P)m(olygon)13 b Fm(::)8 b Fi(dr)l(aw)p -1146 2304 26 4 v 31 w(out)p 1292 2304 V 31 w(cir)l(cle)j +Fk(return)33 b Fe(c)p Fm(;)83 1483 y Fn(g)0 1683 y Fk(1277.)94 +b(Picture)32 b(argumen)m(t)g(\014rst.)p 0 1781 1779 4 +v 1874 1814 a(Log)p 2122 1781 V 83 1955 a Fm([)p Fh(LDF)25 +b(2003.06.13.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 2046 3900 4 v 0 2204 a Fn(h)14 b Fm(De\014ne)28 b Fk(Reg)p +471 2204 29 5 v 39 w(P)m(olygon)33 b Fm(functions)i Fl(1027)15 +b Fn(i)24 b Fm(+)p Fn(\021)83 2303 y Fk(Circle)34 b(Reg)p +533 2303 V 39 w(P)m(olygon)13 b Fm(::)8 b Fi(dr)l(aw)p +1146 2303 26 4 v 31 w(out)p 1292 2303 V 31 w(cir)l(cle)j Fm(\()p Fk(Picture)35 b Fm(&)o Fi(pictur)l(e)11 b Fe(;)j -Fk(const)34 b(Color)f Fm(&)p Fi(ddr)l(aw)p 3051 2304 +Fk(const)34 b(Color)f Fm(&)p Fi(ddr)l(aw)p 3051 2303 V 32 w(c)l(olor)14 b Fe(;)g Fk(const)34 b(string)415 -2404 y Fi(ddashe)l(d)15 b Fe(;)f Fk(const)32 b(string)i +2403 y Fi(ddashe)l(d)15 b Fe(;)f Fk(const)32 b(string)i Fi(pp)l(en)11 b Fm(\))28 b Fk(const)83 2503 y Fn(f)166 -2603 y Fk(return)33 b Fi(dr)l(aw)p 639 2603 V 31 w(out)p -785 2603 V 31 w(cir)l(cle)11 b Fm(\()p Fi(ddr)l(aw)p -1262 2603 V 32 w(c)l(olor)j Fe(;)g Fi(ddashe)l(d)h Fe(;)f +2602 y Fk(return)33 b Fi(dr)l(aw)p 639 2602 V 31 w(out)p +785 2602 V 31 w(cir)l(cle)11 b Fm(\()p Fi(ddr)l(aw)p +1262 2602 V 32 w(c)l(olor)j Fe(;)g Fi(ddashe)l(d)h Fe(;)f Fi(pp)l(en)d Fe(;)j Fi(pictur)l(e)d Fm(\);)83 2702 y -Fn(g)0 2902 y Fk(1273.)94 b(Putting)32 b(Circle)f(together.)95 +Fn(g)0 2901 y Fk(1278.)94 b(Putting)32 b(Circle)f(together.)95 b Fm(This)27 b(is)h(what's)f(compiled.)83 3026 y Fn(h)14 -b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 3126 +b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 3125 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 -b Fl(10)15 b Fn(i)83 3226 y(h)f Fm(De\014ne)28 b Fk(class)k(Circle)40 -b Fl(1232)15 b Fn(i)83 3325 y(h)f Fm(De\014ne)28 b Fk(Circle)k -Fm(functions)k Fl(1235)15 b Fn(i)83 3425 y(h)f Fm(De\014ne)28 -b Fk(Reg)p 554 3425 29 5 v 39 w(P)m(olygon)33 b Fm(functions)i -Fl(1024)15 b Fn(i)p eop end -%%Page: 373 373 -TeXDict begin 373 372 bop 0 83 a Fn(x)p Fm(1274)139 b +b Fl(10)15 b Fn(i)83 3225 y(h)f Fm(De\014ne)28 b Fk(class)k(Circle)40 +b Fl(1237)15 b Fn(i)83 3324 y(h)f Fm(De\014ne)28 b Fk(Circle)k +Fm(functions)k Fl(1240)15 b Fn(i)83 3424 y(h)f Fm(De\014ne)28 +b Fk(Reg)p 554 3424 29 5 v 39 w(P)m(olygon)33 b Fm(functions)i +Fl(1027)15 b Fn(i)p eop end +%%Page: 377 377 +TeXDict begin 377 376 bop 0 83 a Fn(x)p Fm(1279)139 b Fl(3DLDFPR)n(G)1745 b(PUTTING)24 b Fk(CIR)m(CLE)f Fl(TOGETHER)141 -b Fm(373)0 263 y Fk(1274.)94 b Fm(This)28 b(is)f(what's)g(written)h(to) +b Fm(377)0 263 y Fk(1279.)94 b Fm(This)28 b(is)f(what's)g(written)h(to) g Fj(circles.h)p Fm(.)0 388 y Fn(h)14 b Ff(circles.h)80 -b Fl(1274)15 b Fn(i)23 b(\021)83 487 y(h)14 b Fm(De\014ne)28 -b Fk(class)k(Circle)40 b Fl(1232)15 b Fn(i)0 686 y Fk(1275.)94 +b Fl(1279)15 b Fn(i)23 b(\021)83 487 y(h)14 b Fm(De\014ne)28 +b Fk(class)k(Circle)40 b Fl(1237)15 b Fn(i)0 686 y Fk(1280.)94 b(P)m(atterns)i(\()p Fj(patterns.web)p Fk(\).)286 b Fm([)p Fh(LDF)25 b(2002.09.21.)p Fm(])61 b(NOTE:)27 b(When)h(y)n(ou)f(add)h(a) f(new)g Fj(.web)f Fm(\014le)i(and)0 786 y(mo)n(v)n(e)g(co)r(de)h(to)f @@ -32022,136 +32005,144 @@ Fm(\014le,)h(remem)n(b)r(er)g(to)f(c)n(hange)g(the)i(name)e(of)h(the)h (header)e(\014le)h(that)0 886 y(it)f(writes.)36 b(Otherwise,)27 b(this)h(can)f(cause)g(problems)g(and)g(it's)h(not)g(ob)n(vious)e -(what's)i(caused)f(them.)p 0 985 1643 4 v 1738 1018 a -Fk(Begin)k(Log)p 2257 985 V 83 1158 a Fm([)p Fh(LDF)25 -b(2002.09.21.)p Fm(])54 b(Started)20 b(using)f(this)i(\014le)f(again.) -33 b(Mo)n(v)n(ed)19 b Fi(hex)p 2145 1158 26 4 v 31 w(p)l(attern)p +(what's)i(caused)f(them.)p 0 984 1779 4 v 1874 1017 a +Fk(Log)p 2122 984 V 83 1158 a Fm([)p Fh(LDF)e(2002.09.21.)p +Fm(])54 b(Started)20 b(using)f(this)i(\014le)f(again.)33 +b(Mo)n(v)n(ed)19 b Fi(hex)p 2145 1158 26 4 v 31 w(p)l(attern)p 2432 1158 V 30 w(1)d Fm(\()e(\))21 b(here.)34 b(Made)20 -b(the)g(appropriate)e(c)n(hanges)0 1258 y(to)27 b Fj(cmplprsp.web)c -Fm(and)28 b Fj(main.web)p Fm(.)83 1358 y([)p Fh(LDF)d(2003.11.12.)p +b(the)g(appropriate)e(c)n(hanges)0 1257 y(to)27 b Fj(cmplprsp.web)c +Fm(and)28 b Fj(main.web)p Fm(.)83 1357 y([)p Fh(LDF)d(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n (ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g -(of)0 1457 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n -(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)p 0 1549 1678 4 -v 1773 1582 a Fk(End)32 b(Log)p 2222 1549 V 0 1706 a -Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 -b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)0 1905 y Fk(1276.)94 -b(Include)32 b(\014les.)0 2030 y Fn(h)14 b Fm(Include)28 +(of)0 1456 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n +(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)83 1556 y([)p Fh(LDF)e +(2003.12.10.)p Fm(])64 b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden) +n(ti\014ers)h(bac)n(k)f(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h +(3DLDF)i(1.1.4.)43 b(I'v)n(e)0 1656 y(already)24 b(put)j(some)e(of)h +(them)h(bac)n(k)e(in,)i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.) +37 b(Ho)n(w)n(ev)n(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w) +i(in)0 1755 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 +b(.)p 0 1847 3900 4 v 0 2004 a Fn(h)14 b Fm(V)-7 b(ersion)27 +b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 2104 y Fk(static)33 b(string)g Fi(r)l(cs)p +726 2104 26 4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p +Ff(patterns.w)o(eb)o(,v)-6 b Fj( )p Ff(1.2)p Fj( )p Ff(2003/12/10)o +Fj( )p Ff(1)o(6:1)f(2:59)p Fj( )p Ff(lfinsto1)p Fj( )p +Ff(Exp)o Fj( )p Ff($)o(")n Fm(;)0 2303 y Fk(1281.)94 +b(Include)32 b(\014les.)0 2428 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 -2130 y Fm(#)p Fk(include)32 b Ff("loader.h")0 2229 y -Fm(#)p Fk(include)g Ff("pspglb.h")0 2329 y Fm(#)p Fk(include)g -Ff("io.h")0 2429 y Fm(#)p Fk(include)g Ff("colors.h")0 -2528 y Fm(#)p Fk(include)g Ff("transfor.h")0 2628 y Fm(#)p -Fk(include)g Ff("shapes.h")0 2727 y Fm(#)p Fk(include)g -Ff("pictures.h")0 2827 y Fm(#)p Fk(include)g Ff("points.h")0 -2927 y Fm(#)p Fk(include)g Ff("lines.h")0 3026 y Fm(#)p -Fk(include)g Ff("planes.h")0 3126 y Fm(#)p Fk(include)g -Ff("paths.h")0 3226 y Fm(#)p Fk(include)g Ff("curves.h")0 -3325 y Fm(#)p Fk(include)g Ff("polygons.h")0 3425 y Fm(#)p -Fk(include)g Ff("rectangs.h")0 3524 y Fm(#)p Fk(include)g -Ff("ellipses.h")0 3624 y Fm(#)p Fk(include)g Ff("circles.h")0 -3823 y Fk(1277.)94 b(Plane)32 b(tesselations.)0 4023 -y(1278.)94 b(Hexagonal)31 b(tesselation)g(1.)83 4122 +2527 y Fm(#)p Fk(include)32 b Ff("loader.h")0 2627 y +Fm(#)p Fk(include)g Ff("pspglb.h")0 2727 y Fm(#)p Fk(include)g +Ff("io.h")0 2826 y Fm(#)p Fk(include)g Ff("colors.h")0 +2926 y Fm(#)p Fk(include)g Ff("transfor.h")0 3026 y Fm(#)p +Fk(include)g Ff("shapes.h")0 3125 y Fm(#)p Fk(include)g +Ff("pictures.h")0 3225 y Fm(#)p Fk(include)g Ff("points.h")0 +3324 y Fm(#)p Fk(include)g Ff("lines.h")0 3424 y Fm(#)p +Fk(include)g Ff("planes.h")0 3524 y Fm(#)p Fk(include)g +Ff("paths.h")0 3623 y Fm(#)p Fk(include)g Ff("curves.h")0 +3723 y Fm(#)p Fk(include)g Ff("polygons.h")0 3823 y Fm(#)p +Fk(include)g Ff("rectangs.h")0 3922 y Fm(#)p Fk(include)g +Ff("ellipses.h")0 4022 y Fm(#)p Fk(include)g Ff("circles.h")0 +4221 y Fk(1282.)94 b(Plane)32 b(tesselations.)0 4420 +y(1283.)94 b(Hexagonal)31 b(tesselation)g(1.)83 4520 y Fm([)p Fh(LDF)25 b(2003.08.10.)p Fm(])61 b(TO)27 b(DO:)h(Change,)f (so)g(that)h(it's)g(p)r(ossible)f(to)g(put)i(the)f(pattern)f(in)n(to)g -(a)g(rectangular)f(area.)p 0 4226 1643 4 v 1738 4259 -a Fk(Begin)31 b(Log)p 2257 4226 V 83 4399 a Fm([)p Fh(LDF)25 -b(2002.09.22.)p Fm(])58 b(Added)25 b(argumen)n(ts.)34 -b Fi(hex)p 1557 4399 26 4 v 31 w(p)l(attern)p 1844 4399 -V 30 w(1)16 b Fm(\()e(\))25 b(can)f(no)n(w)g(b)r(e)g(used)h(to)f(mak)n -(e)f(a)h(pattern)h(with)f(up)h(to)f(three)0 4499 y(nested)i(hexagons)f -(whic)n(h)h(can)g(b)r(e)g(dra)n(wn)f(and)h(\014lled.)37 -b(Eac)n(h)25 b(hexagon)g(has)g(its)i(o)n(wn)e(argumen)n(t)g(for)h(the)h -(dra)n(w)e(color,)g(the)0 4599 y(\014ll)f(color)f(and)h(the)h(p)r(en)g -(to)f(b)r(e)g(used.)36 b Fi(hex)p 1322 4599 V 31 w(p)l(attern)p -1609 4599 V 30 w(1)16 b Fm(\()e(\))24 b(do)r(es)g(not)g(ha)n(v)n(e)f +(a)g(rectangular)f(area.)p 0 4623 1779 4 v 1874 4656 +a Fk(Log)p 2122 4623 V 83 4796 a Fm([)p Fh(LDF)f(2002.09.22.)p +Fm(])58 b(Added)25 b(argumen)n(ts.)34 b Fi(hex)p 1557 +4796 26 4 v 31 w(p)l(attern)p 1844 4796 V 30 w(1)16 b +Fm(\()e(\))25 b(can)f(no)n(w)g(b)r(e)g(used)h(to)f(mak)n(e)f(a)h +(pattern)h(with)f(up)h(to)f(three)0 4896 y(nested)i(hexagons)f(whic)n +(h)h(can)g(b)r(e)g(dra)n(wn)f(and)h(\014lled.)37 b(Eac)n(h)25 +b(hexagon)g(has)g(its)i(o)n(wn)e(argumen)n(t)g(for)h(the)h(dra)n(w)e +(color,)g(the)0 4996 y(\014ll)f(color)f(and)h(the)h(p)r(en)g(to)f(b)r +(e)g(used.)36 b Fi(hex)p 1322 4996 V 31 w(p)l(attern)p +1609 4996 V 30 w(1)16 b Fm(\()e(\))24 b(do)r(es)g(not)g(ha)n(v)n(e)f (argumen)n(ts)g(for)h(dash)g(patterns,)g(but)h(they)f(could)0 -4698 y(b)r(e)29 b(added,)g(if)h(necessary)-7 b(.)38 b(If)30 +5095 y(b)r(e)29 b(added,)g(if)h(necessary)-7 b(.)38 b(If)30 b(the)f(argumen)n(t)f(for)g(the)h(diameter)g(of)f(the)h(middle)h(or)e -(the)h(inner)g(hexagon)e(is)i(0,)f(then)i(that)0 4798 +(the)h(inner)g(hexagon)e(is)i(0,)f(then)i(that)0 5195 y(hexagon)e(is)h(not)g(dra)n(wn)g(or)f(\014lled.)42 b(In)30 b(this)f(case,)g(the)h(argumen)n(ts)e(for)h(the)g(dra)n(w)f(and)h -(\014ll)h(colors)e(are)g(ignored)g(for)h(that)0 4897 +(\014ll)h(colors)e(are)g(ignored)g(for)h(that)0 5295 y(hexagon.)34 b(The)25 b(default)g(p)r(en)f(for)g(the)h(outer)f (hexagon)f(is)h(thic)n(k)n(er)f(than)i(the)g(p)r(ens)f(for)g(the)h -(other)f(t)n(w)n(o)f(\(.5mm)i(and)f(.3mm,)0 4997 y(resp)r(ectiv)n -(ely\).)83 5097 y([)p Fh(LDF)h(2002.09.20.)p Fm(])63 +(other)f(t)n(w)n(o)f(\(.5mm)i(and)f(.3mm,)0 5394 y(resp)r(ectiv)n +(ely\).)p eop end +%%Page: 378 378 +TeXDict begin 378 377 bop 0 83 a Fm(378)140 b Fl(HEXA)n(GONAL)23 +b(TESSELA)-6 b(TION)24 b(1)1856 b(3DLDFPR)n(G)142 b Fn(x)p +Fm(1283)83 263 y([)p Fh(LDF)25 b(2002.09.20.)p Fm(])63 b(Rewrote)28 b(this)h(function.)42 b(It)29 b(no)n(w)f(w)n(orks)g(with)h (the)h(new)f Fi(pr)l(oje)l(ct)13 b Fm(\()h(\))29 b(function.)42 -b Fi(hex)p 3452 5097 V 30 w(p)l(attern)p 3738 5097 V -31 w(1)16 b Fm(\()e(\))0 5196 y(mak)n(es)31 b(a)i(\\honeycom)n(b")d +b Fi(hex)p 3452 263 26 4 v 30 w(p)l(attern)p 3738 263 +V 31 w(1)16 b Fm(\()e(\))0 363 y(mak)n(es)31 b(a)i(\\honeycom)n(b")d (pattern)i(on)h(the)g(x-z)f(plane)g(using)g(a)g(single)g(hexagon)f -(\(i.e.,)k(there)d(aren't)g(nested)h(hexagons)0 5296 -y(y)n(et,)d(as)e(in)i(the)f(old)g(v)n(ersion\).)41 b(In)29 -b(the)h(next)g(v)n(ersion,)e(I)h(plan)g(to)g(add)h(argumen)n(ts)d(for)i -(optionally)g(putting)h(t)n(w)n(o)e(smaller)0 5396 y(hexagons)e(inside) -i(the)g(large)e(one,)h(and)g(for)h(\014lling)f(and)h(un\014lling.)p -eop end -%%Page: 374 374 -TeXDict begin 374 373 bop 0 83 a Fm(374)140 b Fl(HEXA)n(GONAL)23 -b(TESSELA)-6 b(TION)24 b(1)1856 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(1278)83 263 y(This)43 b(v)n(ersion)f(con)n(tains)g(argumen)n(ts)g -(for)h(the)g(dra)n(wing)f(command,)47 b(including)c(a)g -Fk(Picture)48 b Fm(argumen)n(t,)e(so)d(that)0 363 y Fi(hex)p -124 363 26 4 v 31 w(p)l(attern)p 411 363 V 30 w(1)16 -b Fm(\()e(\))28 b(need)g(not)f(b)r(e)h(put)g(on)n(to)f -Fi(curr)l(ent)p 1660 363 V 30 w(pictur)l(e)10 b Fm(.)p -0 455 1678 4 v 1773 487 a Fk(End)32 b(Log)p 2222 455 -V 0 612 a Fn(h)14 b Fm(Declare)27 b(P)n(attern)f(functions)36 -b Fl(1278)15 b Fn(i)23 b(\021)83 711 y Fk(unsigned)41 -b(in)m(t)h Fi(hex)p 773 711 26 4 v 31 w(p)l(attern)p -1060 711 V 30 w(1)16 b Fm(\()p Fk(real)42 b Fi(diameter)p -1694 711 V 32 w(outer)52 b Fm(=)39 b(5)o Fe(;)14 b Fk(real)42 -b Fi(diameter)p 2662 711 V 32 w(midd)t(le)51 b Fm(=)39 -b(0)o Fe(;)14 b Fk(real)249 811 y Fi(diameter)p 570 811 -V 32 w(inner)38 b Fm(=)24 b(0)p Fe(;)14 b Fk(unsigned)32 -b(short)h Fi(\014rst)p 1793 811 V 30 w(r)l(ow)38 b Fm(=)25 +(\(i.e.,)k(there)d(aren't)g(nested)h(hexagons)0 462 y(y)n(et,)d(as)e +(in)i(the)f(old)g(v)n(ersion\).)41 b(In)29 b(the)h(next)g(v)n(ersion,)e +(I)h(plan)g(to)g(add)h(argumen)n(ts)d(for)i(optionally)g(putting)h(t)n +(w)n(o)e(smaller)0 562 y(hexagons)e(inside)i(the)g(large)e(one,)h(and)g +(for)h(\014lling)f(and)h(un\014lling.)83 662 y(This)43 +b(v)n(ersion)f(con)n(tains)g(argumen)n(ts)g(for)h(the)g(dra)n(wing)f +(command,)47 b(including)c(a)g Fk(Picture)48 b Fm(argumen)n(t,)e(so)d +(that)0 761 y Fi(hex)p 124 761 V 31 w(p)l(attern)p 411 +761 V 30 w(1)16 b Fm(\()e(\))28 b(need)g(not)f(b)r(e)h(put)g(on)n(to)f +Fi(curr)l(ent)p 1660 761 V 30 w(pictur)l(e)10 b Fm(.)p +0 853 3900 4 v 0 1010 a Fn(h)k Fm(Declare)27 b(P)n(attern)f(functions) +36 b Fl(1283)15 b Fn(i)23 b(\021)83 1110 y Fk(unsigned)41 +b(in)m(t)h Fi(hex)p 773 1110 26 4 v 31 w(p)l(attern)p +1060 1110 V 30 w(1)16 b Fm(\()p Fk(real)42 b Fi(diameter)p +1694 1110 V 32 w(outer)52 b Fm(=)39 b(5)o Fe(;)14 b Fk(real)42 +b Fi(diameter)p 2662 1110 V 32 w(midd)t(le)51 b Fm(=)39 +b(0)o Fe(;)14 b Fk(real)249 1209 y Fi(diameter)p 570 +1209 V 32 w(inner)38 b Fm(=)24 b(0)p Fe(;)14 b Fk(unsigned)32 +b(short)h Fi(\014rst)p 1793 1209 V 30 w(r)l(ow)38 b Fm(=)25 b(5)o Fe(;)14 b Fk(unsigned)32 b(short)i Fi(double)p -3033 811 V 31 w(r)l(ows)i Fm(=)25 b(10)o Fe(;)14 b Fk(unsigned)249 -911 y(short)32 b Fi(r)l(ow)p 629 911 V 31 w(shift)k Fm(=)23 -b(2)p Fe(;)263 1010 y(=)p Fn(\003)40 b Fm(Argumen)n(ts)27 +3033 1209 V 31 w(r)l(ows)i Fm(=)25 b(10)o Fe(;)14 b Fk(unsigned)249 +1309 y(short)32 b Fi(r)l(ow)p 629 1309 V 31 w(shift)k +Fm(=)23 b(2)p Fe(;)263 1409 y(=)p Fn(\003)40 b Fm(Argumen)n(ts)27 b(for)h(the)g(dra)n(wing)e(and)h(\014lling)h(commands.)50 -b Fn(\003)p Fe(=)83 1110 y Fk(Color)32 b Fi(dr)l(aw)p -521 1110 V 31 w(c)l(olor)p 726 1110 V 32 w(outer)k Fm(=)22 +b Fn(\003)p Fe(=)83 1508 y Fk(Color)32 b Fi(dr)l(aw)p +521 1508 V 31 w(c)l(olor)p 726 1508 V 32 w(outer)k Fm(=)22 b Fn(\003)p Fk(Colors)12 b Fm(::)c Fi(default)p 1687 -1110 V 32 w(c)l(olor)14 b Fe(;)180 b(=)p Fn(\003)40 b -Fm(Outer)h Fn(\003)p Fe(=)83 1209 y Fk(Color)30 b Fi(\014l)t(l)p -442 1209 V 30 w(c)l(olor)p 646 1209 V 32 w(outer)36 b +1508 V 32 w(c)l(olor)14 b Fe(;)180 b(=)p Fn(\003)40 b +Fm(Outer)h Fn(\003)p Fe(=)83 1608 y Fk(Color)30 b Fi(\014l)t(l)p +442 1608 V 30 w(c)l(olor)p 646 1608 V 32 w(outer)36 b Fm(=)23 b Fn(\003)o Fk(Colors)12 b Fm(::)d Fi(b)l(ackgr)l(ound)p -1764 1209 V 31 w(c)l(olor)14 b Fe(;)g Fk(Color)30 b Fi(dr)l(aw)p -2451 1209 V 31 w(c)l(olor)p 2656 1209 V 31 w(midd)t(le)36 +1764 1608 V 31 w(c)l(olor)14 b Fe(;)g Fk(Color)30 b Fi(dr)l(aw)p +2451 1608 V 31 w(c)l(olor)p 2656 1608 V 31 w(midd)t(le)36 b Fm(=)23 b Fn(\003)o Fk(Colors)12 b Fm(::)c Fi(default)p -3668 1209 V 32 w(c)l(olor)14 b Fe(;)208 1309 y(=)p Fn(\003)40 -b Fm(Middle)i Fn(\003)p Fe(=)83 1409 y Fk(Color)29 b -Fi(\014l)t(l)p 441 1409 V 31 w(c)l(olor)p 646 1409 V +3668 1608 V 32 w(c)l(olor)14 b Fe(;)208 1708 y(=)p Fn(\003)40 +b Fm(Middle)i Fn(\003)p Fe(=)83 1807 y Fk(Color)29 b +Fi(\014l)t(l)p 441 1807 V 31 w(c)l(olor)p 646 1807 V 32 w(midd)t(le)35 b Fm(=)23 b Fn(\003)o Fk(Colors)12 -b Fm(::)d Fi(b)l(ackgr)l(ound)p 1815 1409 V 31 w(c)l(olor)14 -b Fe(;)g Fk(Color)29 b Fi(dr)l(aw)p 2501 1409 V 32 w(c)l(olor)p -2707 1409 V 31 w(inner)36 b Fm(=)23 b Fn(\003)p Fk(Colors)12 -b Fm(::)c Fi(default)p 3672 1409 V 31 w(c)l(olor)15 b -Fe(;)208 1508 y(=)p Fn(\003)40 b Fm(Inner)h Fn(\003)p -Fe(=)83 1608 y Fk(Color)32 b Fi(\014l)t(l)p 444 1608 -V 31 w(c)l(olor)p 649 1608 V 31 w(inner)k Fm(=)23 b Fn(\003)p -Fk(Colors)12 b Fm(::)c Fi(b)l(ackgr)l(ound)p 1770 1608 +b Fm(::)d Fi(b)l(ackgr)l(ound)p 1815 1807 V 31 w(c)l(olor)14 +b Fe(;)g Fk(Color)29 b Fi(dr)l(aw)p 2501 1807 V 32 w(c)l(olor)p +2707 1807 V 31 w(inner)36 b Fm(=)23 b Fn(\003)p Fk(Colors)12 +b Fm(::)c Fi(default)p 3672 1807 V 31 w(c)l(olor)15 b +Fe(;)208 1907 y(=)p Fn(\003)40 b Fm(Inner)h Fn(\003)p +Fe(=)83 2006 y Fk(Color)32 b Fi(\014l)t(l)p 444 2006 +V 31 w(c)l(olor)p 649 2006 V 31 w(inner)k Fm(=)23 b Fn(\003)p +Fk(Colors)12 b Fm(::)c Fi(b)l(ackgr)l(ound)p 1770 2006 V 31 w(c)l(olor)15 b Fe(;)f Fk(string)33 b Fi(p)l(en)p -2425 1608 V 30 w(outer)j Fm(=)23 b Ff("pencircle)p Fj( )p -Ff(scale)o(d)p Fj( )p Ff(.)o(5)-6 b(mm")s Fe(;)249 1708 -y Fk(string)33 b Fi(p)l(en)p 652 1708 V 31 w(midd)t(le)i +2425 2006 V 30 w(outer)j Fm(=)23 b Ff("pencircle)p Fj( )p +Ff(scale)o(d)p Fj( )p Ff(.)o(5)-6 b(mm")s Fe(;)249 2106 +y Fk(string)33 b Fi(p)l(en)p 652 2106 V 31 w(midd)t(le)i Fm(=)23 b Ff("pencircle)p Fj( )p Ff(scale)o(d)p Fj( )o Ff(.3)-6 b(mm")s Fe(;)14 b Fk(string)33 b Fi(p)l(en)p -2488 1708 V 30 w(inner)k Fm(=)22 b Ff("pencircle)p Fj( )p -Ff(scaled)o Fj( )p Ff(.)o(3)-6 b(mm")s Fe(;)249 1807 +2488 2106 V 30 w(inner)k Fm(=)22 b Ff("pencircle)p Fj( )p +Ff(scaled)o Fj( )p Ff(.)o(3)-6 b(mm")s Fe(;)249 2206 y Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)g Fm(=)23 b Fi(curr)l(ent)p -1289 1807 V 29 w(pictur)l(e)11 b Fe(;)j Fk(unsigned)31 -b(in)m(t)i Fi(max)p 2309 1807 V 30 w(hexagons)i Fm(=)23 -b(1000)n(\);)0 1915 y Fl(See)h(also)g(sections)g(1281)h(and)f(1284.)0 -2023 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(1287)f(and)h(1288.) +1289 2206 V 29 w(pictur)l(e)11 b Fe(;)j Fk(unsigned)31 +b(in)m(t)i Fi(max)p 2309 2206 V 30 w(hexagons)i Fm(=)23 +b(1000)n(\);)0 2314 y Fl(See)h(also)g(sections)g(1286)h(and)f(1289.)0 +2422 y(This)f(co)r(de)i(is)e(used)h(in)f(sections)i(1292)f(and)h(1293.) p eop end -%%Page: 375 375 -TeXDict begin 375 374 bop 0 83 a Fn(x)p Fm(1279)139 b +%%Page: 379 379 +TeXDict begin 379 378 bop 0 83 a Fn(x)p Fm(1284)139 b Fl(3DLDFPR)n(G)1857 b(HEXA)n(GONAL)23 b(TESSELA)-6 b(TION)24 -b(1)141 b Fm(375)0 263 y Fk(1279.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b(P)n(attern)f(functions)35 b Fl(1279)15 b Fn(i)24 b(\021)83 +b(1)141 b Fm(379)0 263 y Fk(1284.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b(P)n(attern)f(functions)35 b Fl(1284)15 b Fn(i)24 b(\021)83 487 y Fk(unsigned)31 b(in)m(t)h Fi(hex)p 753 487 26 4 v 31 w(p)l(attern)p 1040 487 V 30 w(1)16 b Fm(\()p Fk(real)32 b Fi(diameter)p 1664 487 V 32 w(outer)13 b Fe(;)h Fk(real)32 @@ -32302,10 +32293,10 @@ b Fm(These)27 b Fk(Reg)p 1921 5319 29 5 v 40 w(P)m(olygons)32 b Fm(are)26 b(used)i(for)f(cop)n(ying.)49 b Fn(\003)p Fe(=)p eop end -%%Page: 376 376 -TeXDict begin 376 375 bop 0 83 a Fm(376)140 b Fl(HEXA)n(GONAL)23 +%%Page: 380 380 +TeXDict begin 380 379 bop 0 83 a Fm(380)140 b Fl(HEXA)n(GONAL)23 b(TESSELA)-6 b(TION)24 b(1)1856 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(1279)166 263 y Fk(Reg)p 334 263 29 5 v 39 w(P)m(olygon)32 +Fm(1284)166 263 y Fk(Reg)p 334 263 29 5 v 39 w(P)m(olygon)32 b Fi(p)p 784 263 26 4 v 31 w(midd)t(le)p 1055 263 V 33 w(c)l(opy)13 b Fm(;)166 363 y Fk(Reg)p 334 363 29 5 v 39 w(P)m(olygon)32 b Fi(p)p 784 363 26 4 v 31 w(inner)p @@ -32443,10 +32434,10 @@ 903 5369 V 31 w(inner)p 1126 5369 V 31 w(c)l(opy)35 b Fm(=)23 b Fi(p)p 1480 5369 V 31 w(inner)13 b Fm(;)p eop end -%%Page: 377 377 -TeXDict begin 377 376 bop 0 83 a Fn(x)p Fm(1279)139 b +%%Page: 381 381 +TeXDict begin 381 380 bop 0 83 a Fn(x)p Fm(1284)139 b Fl(3DLDFPR)n(G)1857 b(HEXA)n(GONAL)23 b(TESSELA)-6 b(TION)24 -b(1)141 b Fm(377)332 263 y Fk(if)41 b Fm(\()p Fe(j)29 +b(1)141 b Fm(381)332 263 y Fk(if)41 b Fm(\()p Fe(j)29 b Fn(\021)22 b Fm(1\))42 b Fn(f)415 363 y Fi(p)p 462 363 26 4 v 31 w(outer)p 681 363 V 30 w(c)l(opy)36 b Fn(\003)p Fm(=)22 b Fi(o\013set)13 b Fm(;)415 462 y Fk(if)41 b @@ -32576,13 +32567,13 @@ Fj( )p Ff(hex_patt)o(ern)-7 b(_1\(\).\\n")24 b Fn(\034)f Fi(\015ush)11 b Fm(;)166 4746 y Fk(return)33 b Fi(hexagon)p 757 4746 V 32 w(ctr)12 b Fm(;)83 4846 y Fn(g)0 4954 y -Fl(See)24 b(also)g(sections)g(1282)h(and)f(1285.)0 5062 -y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1287.)0 -5261 y Fk(1280.)94 b(patterns.)p eop end -%%Page: 378 378 -TeXDict begin 378 377 bop 0 83 a Fm(378)140 b Fl(EPICYCLOID)24 +Fl(See)24 b(also)g(sections)g(1287)h(and)f(1290.)0 5062 +y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1292.)0 +5261 y Fk(1285.)94 b(patterns.)p eop end +%%Page: 382 382 +TeXDict begin 382 381 bop 0 83 a Fm(382)140 b Fl(EPICYCLOID)24 b(P)-6 b(A)g(TTERN)23 b(1)2023 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(1281)0 263 y Fk(1281.)94 b(Epicycloid)30 b(pattern)h(1.)95 +Fm(1286)0 263 y Fk(1286.)94 b(Epicycloid)30 b(pattern)h(1.)95 b Fm([)p Fh(LDF)25 b(2003.02.11.)p Fm(])60 b(This)26 b(functions)h(w)n(orks)e(w)n(ell)h(for)g(outer)g Fk(Circles)31 b Fm(with)c(radii)0 363 y(that)h(are)e(divisors)g(\(with)i(no)f @@ -32602,34 +32593,33 @@ (the)i(radius)e(of)h(the)g(inner)g Fk(Circle)t Fm(.)38 b(!!)g(ST)-7 b(AR)g(T)28 b(HERE.)g(TO)f(DO:)h(Start)g(from)f(b)r (eginning)h(of)0 861 y Fk(Color)k Fn(\003)27 b Fm(v)n(ector,)f(if)i(I)g -(get)f(to)h(the)g(end.)p 0 960 1643 4 v 1738 993 a Fk(Begin)j(Log)p -2257 960 V 83 1133 a Fm([)p Fh(LDF)25 b(2003.02.09.)p -Fm(])61 b(Added)28 b(this)g(function.)83 1233 y([)p Fh(LDF)d -(2003.08.27.)p Fm(])61 b(Remo)n(v)n(ed)27 b(the)h(declaration)e -Fk(const)32 b(Color)g Fn(\003)p Fi(curr)p 2383 1233 26 -4 v 30 w(c)l(olor)14 b Fm(,)28 b(since)f Fi(curr)p 3008 -1233 V 31 w(c)l(olor)41 b Fm(w)n(as)27 b(nev)n(er)g(used.)p -0 1325 1678 4 v 1773 1358 a Fk(End)32 b(Log)p 2222 1325 -V 0 1482 a Fn(h)14 b Fm(Declare)27 b(P)n(attern)f(functions)36 -b Fl(1278)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1582 y Fk(unsigned)31 -b(in)m(t)i Fi(epicycloid)p 986 1582 26 4 v 34 w(p)l(attern)p -1276 1582 V 30 w(1)16 b Fm(\()p Fk(real)33 b Fi(diameter)p -1901 1582 V 31 w(inner)13 b Fe(;)249 1681 y Fk(real)33 +(get)f(to)h(the)g(end.)p 0 959 1779 4 v 1874 992 a Fk(Log)p +2122 959 V 83 1133 a Fm([)p Fh(LDF)d(2003.02.09.)p Fm(])61 +b(Added)28 b(this)g(function.)83 1232 y([)p Fh(LDF)d(2003.08.27.)p +Fm(])61 b(Remo)n(v)n(ed)27 b(the)h(declaration)e Fk(const)32 +b(Color)g Fn(\003)p Fi(curr)p 2383 1232 26 4 v 30 w(c)l(olor)14 +b Fm(,)28 b(since)f Fi(curr)p 3008 1232 V 31 w(c)l(olor)41 +b Fm(w)n(as)27 b(nev)n(er)g(used.)p 0 1324 3900 4 v 0 +1481 a Fn(h)14 b Fm(Declare)27 b(P)n(attern)f(functions)36 +b Fl(1283)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1581 y Fk(unsigned)31 +b(in)m(t)i Fi(epicycloid)p 986 1581 26 4 v 34 w(p)l(attern)p +1276 1581 V 30 w(1)16 b Fm(\()p Fk(real)33 b Fi(diameter)p +1901 1581 V 31 w(inner)13 b Fe(;)249 1681 y Fk(real)33 b Fi(diameter)p 759 1681 V 32 w(outer)p 979 1681 V 30 w(start)12 b Fe(;)i Fk(real)33 b Fi(diameter)p 1730 1681 V 31 w(outer)p 1949 1681 V 31 w(end)13 b Fe(;)h Fk(real)33 b Fi(step)9 b Fe(;)14 b Fk(unsigned)32 b(in)m(t)h Fi(o\013sets)11 -b Fe(;)j Fk(v)m(ector)6 b Fn(h)p Fk(const)249 1781 y(Color)32 +b Fe(;)j Fk(v)m(ector)6 b Fn(h)p Fk(const)249 1780 y(Color)32 b Fn(\003)o(i)c Fi(c)l(olors)35 b Fm(=)23 b Fk(Colors)12 -b Fm(::)c Fi(default)p 1525 1781 V 32 w(c)l(olor)p 1731 -1781 V 31 w(ve)l(ctor)14 b Fe(;)g Fk(in)m(t)32 b Fi(ar)l(c)p -2285 1781 V 31 w(divisions)k Fm(=)23 b(72)o(\);)p eop +b Fm(::)c Fi(default)p 1525 1780 V 32 w(c)l(olor)p 1731 +1780 V 31 w(ve)l(ctor)14 b Fe(;)g Fk(in)m(t)32 b Fi(ar)l(c)p +2285 1780 V 31 w(divisions)k Fm(=)23 b(72)o(\);)p eop end -%%Page: 379 379 -TeXDict begin 379 378 bop 0 83 a Fn(x)p Fm(1282)139 b +%%Page: 383 383 +TeXDict begin 383 382 bop 0 83 a Fn(x)p Fm(1287)139 b Fl(3DLDFPR)n(G)2024 b(EPICYCLOID)24 b(P)-6 b(A)g(TTERN)23 -b(1)141 b Fm(379)0 263 y Fk(1282.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b(P)n(attern)f(functions)35 b Fl(1279)15 b Fn(i)24 b +b(1)141 b Fm(383)0 263 y Fk(1287.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b(P)n(attern)f(functions)35 b Fl(1284)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(unsigned)41 b(in)m(t)h Fi(epicycloid)p 1005 487 26 4 v 33 w(p)l(attern)p 1294 487 V 31 w(1)16 b Fm(\()p Fk(real)42 b Fi(diameter)p 1929 487 V 31 w(inner)14 @@ -32734,10 +32724,10 @@ b Fe(:)p Fi(r)l(otate)g Fm(\(0)o Fe(;)j Fm(360)p Fe(:)p Fm(0)n Fe(=)p Fi(o\013sets)d Fm(\);)332 5394 y Fk(else)45 b Fn(f)p eop end -%%Page: 380 380 -TeXDict begin 380 379 bop 0 83 a Fm(380)140 b Fl(EPICYCLOID)24 +%%Page: 384 384 +TeXDict begin 384 383 bop 0 83 a Fm(384)140 b Fl(EPICYCLOID)24 b(P)-6 b(A)g(TTERN)23 b(1)2023 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(1282)415 263 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h +Fm(1287)415 263 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)498 363 y Fi(p0)16 b Fe(:)p Fi(dotlab)l(el)f Fm(\()p Ff("p0")s Fm(\);)498 462 y Fi(outer)p 691 462 26 4 v 30 w(cir)l(cle)d Fe(:)p Fi(dr)l(aw)i Fm(\()p Fi(blue)d @@ -32783,7 +32773,7 @@ Fe(:)p Fi(cle)l(ar)g Fm(\()g(\);)332 2953 y Fi(spir)l(al)37 b Fm(+=)22 b Ff("..")s Fm(;)249 3053 y Fn(g)166 3152 y(g)166 3252 y Fk(return)33 b Fi(spir)l(al)p 664 3252 -V 32 w(c)l(ounter)12 b Fm(;)83 3351 y Fn(g)0 3551 y Fk(1283.)94 +V 32 w(c)l(ounter)12 b Fm(;)83 3351 y Fn(g)0 3551 y Fk(1288.)94 b(Epicycloid)47 b(pattern)h(2.)95 b Fm([)p Fh(LDF)25 b(2003.02.11.)p Fm(])74 b(This)41 b(pattern)g(should)g(b)r(e)h(lik)n(e) f Fi(epicycloid)p 3426 3551 V 33 w(p)l(attern)p 3715 @@ -32793,38 +32783,36 @@ Fk(Circle)t Fm(,)0 3750 y(but)28 b(b)n(y)g(rotating)e(the)i Fk(P)m(oin)m(t)33 b Fm(used)27 b(for)g(tracing)g(the)h(epicycloid)f(ab) r(out)h(the)g(cen)n(ter)f(of)g(the)h(outer)f Fk(Circle)t -Fm(.)0 3949 y Fk(1284.)94 b(Epicycloid)33 b(pattern)i(3.)95 +Fm(.)0 3949 y Fk(1289.)94 b(Epicycloid)33 b(pattern)i(3.)95 b Fm([)p Fh(LDF)25 b(2003.02.11.)p Fm(])63 b(This)29 b(function)h(w)n(orks)e(w)n(ell)h(for)g(outer)f Fk(Circles)34 b Fm(with)c(radii)0 4049 y(that)e(are)e(not)i(ev)n(en)f(divisors)f(of)i (the)g(radius)f(of)g(the)h(inner)g Fk(Circle)t Fm(.)p -0 4125 1643 4 v 1738 4157 a Fk(Begin)j(Log)p 2257 4125 -V 83 4298 a Fm([)p Fh(LDF)25 b(2003.02.11.)p Fm(])61 -b(Added)28 b(this)g(function.)83 4398 y([)p Fh(LDF)d(2003.08.27.)p -Fm(])61 b(Remo)n(v)n(ed)27 b(the)h(declaration)e Fk(real)32 -b Fi(r)l(adius)p 2082 4398 26 4 v 32 w(r)l(atio)37 b -Fm(=)28 b Fi(r)l(adius)p 2631 4398 V 31 w(outer)13 b -Fe(=)p Fi(r)l(adius)p 3124 4398 V 30 w(inner)h Fm(,)27 -b(since)0 4497 y Fi(r)l(adius)p 224 4497 V 31 w(r)l(atio)38 -b Fm(w)n(as)27 b(nev)n(er)f(used.)p 0 4589 1678 4 v 1773 -4622 a Fk(End)32 b(Log)p 2222 4589 V 0 4746 a Fn(h)14 -b Fm(Declare)27 b(P)n(attern)f(functions)36 b Fl(1278)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 4846 y Fk(unsigned)32 b(in)m(t)i -Fi(epicycloid)p 988 4846 26 4 v 34 w(p)l(attern)p 1278 -4846 V 30 w(3)16 b Fm(\()p Fk(real)34 b Fi(diameter)p -1904 4846 V 32 w(inner)13 b Fe(;)h Fk(real)33 b Fi(diameter)p -2683 4846 V 32 w(outer)13 b Fe(;)h Fk(v)m(ector)6 b Fn(h)p -Fk(const)34 b(Color)f Fn(\003)o(i)249 4945 y Fi(c)l(olors)i -Fm(=)23 b Fk(Colors)12 b Fm(::)c Fi(default)p 1161 4945 -V 32 w(c)l(olor)p 1367 4945 V 31 w(ve)l(ctor)14 b Fe(;)g -Fk(unsigned)31 b(in)m(t)h Fi(limit)k Fm(=)23 b(100)n -Fe(;)14 b Fk(in)m(t)33 b Fi(ar)l(c)p 2920 4945 V 31 w(divisions)j -Fm(=)22 b(72\);)p eop end -%%Page: 381 381 -TeXDict begin 381 380 bop 0 83 a Fn(x)p Fm(1285)139 b +0 4125 1779 4 v 1874 4157 a Fk(Log)p 2122 4125 V 83 4298 +a Fm([)p Fh(LDF)d(2003.02.11.)p Fm(])61 b(Added)28 b(this)g(function.) +83 4398 y([)p Fh(LDF)d(2003.08.27.)p Fm(])61 b(Remo)n(v)n(ed)27 +b(the)h(declaration)e Fk(real)32 b Fi(r)l(adius)p 2082 +4398 26 4 v 32 w(r)l(atio)37 b Fm(=)28 b Fi(r)l(adius)p +2631 4398 V 31 w(outer)13 b Fe(=)p Fi(r)l(adius)p 3124 +4398 V 30 w(inner)h Fm(,)27 b(since)0 4497 y Fi(r)l(adius)p +224 4497 V 31 w(r)l(atio)38 b Fm(w)n(as)27 b(nev)n(er)f(used.)p +0 4589 3900 4 v 0 4746 a Fn(h)14 b Fm(Declare)27 b(P)n(attern)f +(functions)36 b Fl(1283)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4846 y Fk(unsigned)32 b(in)m(t)i Fi(epicycloid)p 988 +4846 26 4 v 34 w(p)l(attern)p 1278 4846 V 30 w(3)16 b +Fm(\()p Fk(real)34 b Fi(diameter)p 1904 4846 V 32 w(inner)13 +b Fe(;)h Fk(real)33 b Fi(diameter)p 2683 4846 V 32 w(outer)13 +b Fe(;)h Fk(v)m(ector)6 b Fn(h)p Fk(const)34 b(Color)f +Fn(\003)o(i)249 4945 y Fi(c)l(olors)i Fm(=)23 b Fk(Colors)12 +b Fm(::)c Fi(default)p 1161 4945 V 32 w(c)l(olor)p 1367 +4945 V 31 w(ve)l(ctor)14 b Fe(;)g Fk(unsigned)31 b(in)m(t)h +Fi(limit)k Fm(=)23 b(100)n Fe(;)14 b Fk(in)m(t)33 b Fi(ar)l(c)p +2920 4945 V 31 w(divisions)j Fm(=)22 b(72\);)p eop end +%%Page: 385 385 +TeXDict begin 385 384 bop 0 83 a Fn(x)p Fm(1290)139 b Fl(3DLDFPR)n(G)2024 b(EPICYCLOID)24 b(P)-6 b(A)g(TTERN)23 -b(3)141 b Fm(381)0 263 y Fk(1285.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b(P)n(attern)f(functions)35 b Fl(1279)15 b Fn(i)24 b +b(3)141 b Fm(385)0 263 y Fk(1290.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b(P)n(attern)f(functions)35 b Fl(1284)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(unsigned)32 b(in)m(t)i Fi(epicycloid)p 988 487 26 4 v 34 w(p)l(attern)p 1278 487 V 30 w(3)16 b Fm(\()p Fk(real)34 b Fi(diameter)p 1904 487 V 32 w(inner)13 @@ -32927,10 +32915,10 @@ b Fn(\034)23 b Ff("Breaking.\\n\\n")e Fn(\034)i Fi(\015ush)10 b Fm(;)332 5294 y Fk(break)c Fm(;)249 5394 y Fn(g)p eop end -%%Page: 382 382 -TeXDict begin 382 381 bop 0 83 a Fm(382)140 b Fl(EPICYCLOID)24 +%%Page: 386 386 +TeXDict begin 386 385 bop 0 83 a Fm(386)140 b Fl(EPICYCLOID)24 b(P)-6 b(A)g(TTERN)23 b(3)2023 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(1285)249 263 y Fi(outer)p 442 263 26 4 v 30 w(cir)l(cle)p +Fm(1290)249 263 y Fi(outer)p 442 263 26 4 v 30 w(cir)l(cle)p 663 263 V 32 w(c)l(enter)36 b Fn(\003)p Fm(=)22 b Fi(normal)36 b Fn(\003)p Fm(=)23 b Fi(p0)39 b Fn(\003)p Fm(=)22 b Fi(outer)p 1941 263 V 31 w(cir)l(cle)11 b Fe(:)p Fi(r)l(otate)g @@ -32948,176 +32936,184 @@ 1060 y Fi(spir)l(al)p 551 1060 V 32 w(c)l(ounter)12 b Fm(;)166 1160 y Fn(g)166 1259 y Fk(return)33 b Fi(spir)l(al)p 664 1259 V 32 w(c)l(ounter)12 b Fm(;)83 1359 y Fn(g)0 -1558 y Fk(1286.)94 b(Putting)32 b(patterns)g(together.)0 -1757 y(1287.)94 b Fm(This)28 b(is)f(what's)g(compiled.)83 +1558 y Fk(1291.)94 b(Putting)32 b(patterns)g(together.)0 +1757 y(1292.)94 b Fm(This)28 b(is)f(what's)g(compiled.)83 1882 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 1982 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n (ti\014er)35 b Fl(10)15 b Fn(i)83 2081 y(h)f Fm(Declare)27 -b(P)n(attern)g(functions)35 b Fl(1278)15 b Fn(i)83 2181 -y(h)f Fm(De\014ne)28 b(P)n(attern)f(functions)35 b Fl(1279)15 +b(P)n(attern)g(functions)35 b Fl(1283)15 b Fn(i)83 2181 +y(h)f Fm(De\014ne)28 b(P)n(attern)f(functions)35 b Fl(1284)15 b Fn(i)p eop end -%%Page: 383 383 -TeXDict begin 383 382 bop 0 83 a Fn(x)p Fm(1288)139 b +%%Page: 387 387 +TeXDict begin 387 386 bop 0 83 a Fn(x)p Fm(1293)139 b Fl(3DLDFPR)n(G)1725 b(PUTTING)24 b(P)-6 b(A)g(TTERNS)23 -b(TOGETHER)141 b Fm(383)0 263 y Fk(1288.)94 b Fm(This)28 +b(TOGETHER)141 b Fm(387)0 263 y Fk(1293.)94 b Fm(This)28 b(is)f(what's)g(written)h(to)g Fj(patterns.h)p Fm(.)0 -388 y Fn(h)14 b Ff(patterns.h)79 b Fl(1288)15 b Fn(i)24 +388 y Fn(h)14 b Ff(patterns.h)79 b Fl(1293)15 b Fn(i)24 b(\021)83 487 y(h)14 b Fm(Declare)27 b(P)n(attern)g(functions)35 -b Fl(1278)15 b Fn(i)0 686 y Fk(1289.)94 b(Solid)g(\()p +b Fl(1283)15 b Fn(i)0 686 y Fk(1294.)94 b(Solid)g(\()p Fj(solids.web)p Fk(\).)252 b Fm([)p Fh(LDF)25 b(2002.11.12.)p Fm(])61 b(TO)27 b(DO:)h(Add)g Fi(get)p 2686 686 26 4 v 31 w(c)l(enter)12 b Fm(\()j(\).)37 b(Must)28 b(set)f Fi(c)l(enter)41 b Fm(in)28 b(the)0 786 y Fk(P)m(olyhedra)33 -b Fm(b)r(efore)28 b(this)f(is)h(useful.)p 0 885 1643 -4 v 1738 918 a Fk(Begin)j(Log)p 2257 885 V 83 1059 a -Fm([)p Fh(LDF)25 b(2002.09.29.)p Fm(])61 b(Created)27 -b(this)h(\014le.)83 1158 y([)p Fh(LDF)d(2003.11.12.)p -Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n -(ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g -(of)0 1258 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n -(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)p 0 1350 1678 4 -v 1773 1382 a Fk(End)32 b(Log)p 2222 1350 V 0 1507 a -Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 -b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)0 1706 y Fk(1290.)94 -b(Include)32 b(\014les.)0 1831 y Fn(h)14 b Fm(Include)28 +b Fm(b)r(efore)28 b(this)f(is)h(useful.)p 0 885 1779 +4 v 1874 917 a Fk(Log)p 2122 885 V 83 1058 a Fm([)p Fh(LDF)d +(2002.09.29.)p Fm(])61 b(Created)27 b(this)h(\014le.)83 +1158 y([)p Fh(LDF)d(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 +b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB) +g(\014les)g(for)f(the)h(distribution)g(of)0 1257 y(3DLDF)28 +b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t) +f(v)n(ersions.)83 1357 y([)p Fh(LDF)e(2003.12.10.)p Fm(])64 +b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden)n(ti\014ers)h(bac)n(k)f +(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h(3DLDF)i(1.1.4.)43 +b(I'v)n(e)0 1456 y(already)24 b(put)j(some)e(of)h(them)h(bac)n(k)e(in,) +i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.)37 b(Ho)n(w)n(ev)n +(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w)i(in)0 +1556 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 b(.)p +0 1648 3900 4 v 0 1805 a Fn(h)14 b Fm(V)-7 b(ersion)27 +b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 1905 y Fk(static)33 b(string)g Fi(r)l(cs)p +726 1905 26 4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p +Ff(solids.web)o(,v)o Fj( )p Ff(1)-6 b(.2)p Fj( )p Ff(2003/12/10)p +Fj( )p Ff(1)o(6:)o(46:)f(34)p Fj( )p Ff(lfinsto1)p Fj( )p +Ff(Exp)p Fj( )p Ff($)o(")n Fm(;)0 2104 y Fk(1295.)94 +b(Include)32 b(\014les.)0 2229 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 -1930 y Fm(#)p Fk(include)32 b Ff("loader.h")0 2030 y -Fm(#)p Fk(include)g Ff("pspglb.h")0 2130 y Fm(#)p Fk(include)g -Ff("io.h")0 2229 y Fm(#)p Fk(include)g Ff("colors.h")0 -2329 y Fm(#)p Fk(include)g Ff("transfor.h")0 2429 y Fm(#)p -Fk(include)g Ff("shapes.h")0 2528 y Fm(#)p Fk(include)g -Ff("pictures.h")0 2628 y Fm(#)p Fk(include)g Ff("points.h")0 -2727 y Fm(#)p Fk(include)g Ff("lines.h")0 2827 y Fm(#)p -Fk(include)g Ff("planes.h")0 2927 y Fm(#)p Fk(include)g -Ff("paths.h")0 3026 y Fm(#)p Fk(include)g Ff("curves.h")0 -3126 y Fm(#)p Fk(include)g Ff("polygons.h")0 3226 y Fm(#)p -Fk(include)g Ff("rectangs.h")0 3325 y Fm(#)p Fk(include)g -Ff("ellipses.h")0 3425 y Fm(#)p Fk(include)g Ff("circles.h")0 -3624 y Fk(1291.)94 b(Solid)31 b(class)g(de\014nition.)p -0 3700 1643 4 v 1738 3732 a(Begin)g(Log)p 2257 3700 V -83 3873 a Fm([)p Fh(LDF)25 b(2002.09.30.)p Fm(])63 b(Added)29 +2328 y Fm(#)p Fk(include)32 b Ff("loader.h")0 2428 y +Fm(#)p Fk(include)g Ff("pspglb.h")0 2527 y Fm(#)p Fk(include)g +Ff("io.h")0 2627 y Fm(#)p Fk(include)g Ff("colors.h")0 +2727 y Fm(#)p Fk(include)g Ff("transfor.h")0 2826 y Fm(#)p +Fk(include)g Ff("shapes.h")0 2926 y Fm(#)p Fk(include)g +Ff("pictures.h")0 3026 y Fm(#)p Fk(include)g Ff("points.h")0 +3125 y Fm(#)p Fk(include)g Ff("lines.h")0 3225 y Fm(#)p +Fk(include)g Ff("planes.h")0 3324 y Fm(#)p Fk(include)g +Ff("paths.h")0 3424 y Fm(#)p Fk(include)g Ff("curves.h")0 +3524 y Fm(#)p Fk(include)g Ff("polygons.h")0 3623 y Fm(#)p +Fk(include)g Ff("rectangs.h")0 3723 y Fm(#)p Fk(include)g +Ff("ellipses.h")0 3823 y Fm(#)p Fk(include)g Ff("circles.h")0 +4022 y Fk(1296.)94 b(Solid)31 b(class)g(de\014nition.)p +0 4098 1779 4 v 1874 4130 a(Log)p 2122 4098 V 83 4271 +a Fm([)p Fh(LDF)25 b(2002.09.30.)p Fm(])63 b(Added)29 b(the)g(data)g(mem)n(b)r(ers)g Fi(cir)l(cles)12 b Fm(,)29 b Fi(el)t(lipses)13 b Fm(,)29 b Fi(p)l(olygons)13 b Fm(,)29 b(and)g Fi(p)l(aths)12 b Fm(.)41 b(On)29 b(the)g(one)f(hand,)i(this)0 -3973 y(is)37 b(w)n(asteful,)i(since)d(most)h(if)g(not)g(all)g +4371 y(is)37 b(w)n(asteful,)i(since)d(most)h(if)g(not)g(all)g Fk(Solids)j Fm(will)d(con)n(tain)f(only)h(one)f(kind)h(of)g Fk(P)m(ath)6 b Fm(;)42 b(on)36 b(the)i(other)e(hand,)j(it's)e(an)0 -4072 y(adv)-5 b(an)n(tage)27 b(to)i(b)r(e)h(able)e(to)h(ha)n(v)n(e)f +4470 y(adv)-5 b(an)n(tage)27 b(to)i(b)r(e)h(able)e(to)h(ha)n(v)n(e)f (the)h(dra)n(wing)e(and)i(\014lling)g(functions)g(b)r(e)h(mem)n(b)r (ers)e(of)h Fk(Solid)t Fm(,)g(since)g(they)g(don't)g(ha)n(v)n(e)0 -4172 y(to)j(kno)n(w)g(what)h(kind)f(of)h(a)f Fk(P)m(ath)38 +4570 y(to)j(kno)n(w)g(what)h(kind)f(of)h(a)f Fk(P)m(ath)38 b Fm(a)32 b Fk(P)m(ath)39 b Fm(is,)34 b(in)e(order)g(to)g(dra)n(w)f(or) h(\014ll)h(it.)52 b(This)32 b(w)n(a)n(y)-7 b(,)33 b(I)g(don't)f(ha)n(v) -n(e)g(to)g(de\014ne)h(the)0 4272 y(dra)n(wing)26 b(and)i(\014lling)f +n(e)g(to)g(de\014ne)h(the)0 4669 y(dra)n(wing)26 b(and)i(\014lling)f (functions)h(for)f Fi(Spher)l(e)11 b Fm(,)28 b Fi(El)t(lipsoid)16 -b Fm(,)28 b Fk(P)m(olyhedron)5 b Fm(,)28 b(etc.)83 4371 +b Fm(,)28 b Fk(P)m(olyhedron)5 b Fm(,)28 b(etc.)83 4769 y([)p Fh(LDF)d(2002.10.01.)p Fm(])61 b(Added)28 b(the)g(data)f(mem)n(b) -r(er)h Fi(pr)l(oje)l(ctive)p 2001 4371 26 4 v 32 w(extr)l(emes)10 -b Fm(.)83 4471 y([)p Fh(LDF)25 b(2003.04.11.)p Fm(])72 +r(er)h Fi(pr)l(oje)l(ctive)p 2001 4769 26 4 v 32 w(extr)l(emes)10 +b Fm(.)83 4869 y([)p Fh(LDF)25 b(2003.04.11.)p Fm(])72 b(Added)39 b(the)f Fk(static)44 b(const)f Fm(data)37 b(mem)n(b)r(ers)h Ff(PATH)s Fm(,)j Ff(CIRCLE)r Fm(,)g -Ff(ELLIPSE)q Fm(,)g Ff(REG_POLYGON)p Fm(,)g(and)0 4570 +Ff(ELLIPSE)q Fm(,)g Ff(REG_POLYGON)p Fm(,)g(and)0 4968 y Ff(RECTANGLE)q Fm(.)c(Curren)n(tly)-7 b(,)26 b(their)i(only)f(use)h -(is)f(as)g(argumen)n(ts)f(to)i Fi(get)p 2176 4570 V 30 -w(shap)l(e)p 2400 4570 V 32 w(ptr)13 b Fm(\()h(\))28 -b(and)g Fi(get)p 2922 4570 V 30 w(shap)l(e)p 3146 4570 -V 32 w(c)l(enter)13 b Fm(\()h(\).)83 4670 y([)p Fh(LDF)25 +(is)f(as)g(argumen)n(ts)f(to)i Fi(get)p 2176 4968 V 30 +w(shap)l(e)p 2400 4968 V 32 w(ptr)13 b Fm(\()h(\))28 +b(and)g Fi(get)p 2922 4968 V 30 w(shap)l(e)p 3146 4968 +V 32 w(c)l(enter)13 b Fm(\()h(\).)83 5068 y([)p Fh(LDF)25 b(2003.04.11.)p Fm(])62 b(Renamed)28 b Fi(p)l(olygons)40 -b Fm(to)28 b Fi(r)l(e)l(g)p 1658 4670 V 31 w(p)l(olygons)12 +b Fm(to)28 b Fi(r)l(e)l(g)p 1658 5068 V 31 w(p)l(olygons)12 b Fm(.)38 b(This)28 b(is)g(in)h(case)e(I)h(decide)g(to)g(mak)n(e)f(it)i -(p)r(ossible)e(to)h(ha)n(v)n(e)0 4770 y(irregular)d(p)r(olygons.)36 +(p)r(ossible)e(to)h(ha)n(v)n(e)0 5168 y(irregular)d(p)r(olygons.)36 b(In)28 b(this)g(case,)f(I)g(ma)n(y)g(de\014ne)h(a)f Fk(class)32 b(P)m(olygon)g Fm(and)c(deriv)n(ed)f Fk(Reg)p -2939 4770 29 5 v 39 w(P)m(olygon)32 b Fm(from)27 b(it.)p -0 4862 1678 4 v 1773 4894 a Fk(End)32 b(Log)p 2222 4862 -V 0 5019 a Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Solid)39 -b Fl(1291)15 b Fn(i)24 b(\021)83 5118 y Fk(class)32 b(Solid)f -Fm(:)37 b Fk(public)32 b(Shap)s(e)h Fn(f)83 5218 y Fk(protected)5 -b Fm(:)42 b Fk(b)s(o)s(ol)31 b Fi(on)p 857 5218 26 4 -v 30 w(fr)l(e)l(e)p 1015 5218 V 31 w(stor)l(e)10 b Fm(;)166 -5318 y Fk(P)m(oin)m(t)33 b Fi(c)l(enter)13 b Fm(;)p eop -end -%%Page: 384 384 -TeXDict begin 384 383 bop 0 83 a Fm(384)140 b Fk(SOLID)24 +2939 5168 29 5 v 39 w(P)m(olygon)32 b Fm(from)27 b(it.)p +0 5259 3900 4 v eop end +%%Page: 388 388 +TeXDict begin 388 387 bop 0 83 a Fm(388)140 b Fk(SOLID)24 b Fl(CLASS)g(DEFINITION)1903 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(1291)166 263 y Fk(b)s(o)s(ol)31 b Fi(do)p 468 263 -26 4 v 31 w(output)12 b Fm(;)166 b Fe(=)p Fn(\003)40 -b Fm(LDF)28 b(2002.10.01.)33 b(Added.)52 b Fn(\003)p -Fe(=)166 363 y Fk(v)m(ector)6 b Fn(h)p Fk(Circle)32 b -Fn(\003i)c Fi(cir)l(cles)12 b Fm(;)166 462 y Fk(v)m(ector)6 -b Fn(h)p Fk(Ellipse)30 b Fn(\003i)e Fi(el)t(lipses)13 -b Fm(;)166 562 y Fk(v)m(ector)6 b Fn(h)p Fk(P)m(ath)34 -b Fn(\003)o(i)28 b Fi(p)l(aths)12 b Fm(;)166 662 y Fk(v)m(ector)6 -b Fn(h)p Fk(Rectangle)32 b Fn(\003i)c Fi(r)l(e)l(ctangles)11 -b Fm(;)166 761 y Fk(v)m(ector)6 b Fn(h)p Fk(Reg)p 629 -761 29 5 v 39 w(P)m(olygon)33 b Fn(\003)o(i)28 b Fi(r)l(e)l(g)p -1242 761 26 4 v 31 w(p)l(olygons)12 b Fm(;)166 861 y -Fk(v)-5 b(alarra)m(y)8 b Fn(h)p Fk(real)d Fn(i)28 b Fi(pr)l(oje)l -(ctive)p 1108 861 V 33 w(extr)l(emes)10 b Fm(;)83 960 -y Fk(public)t Fm(:)42 b Fk(static)33 b(const)f(unsigned)f(short)i -Ff(CIRCLE)r Fm(;)166 1060 y Fk(static)g(const)f(unsigned)g(short)g -Ff(ELLIPSE)q Fm(;)166 1160 y Fk(static)h(const)f(unsigned)g(short)g -Ff(PATH)s Fm(;)166 1259 y Fk(static)h(const)f(unsigned)g(short)g -Ff(RECTANGLE)p Fm(;)166 1359 y Fk(static)h(const)f(unsigned)g(short)g -Ff(REG_POLYGON)p Fm(;)166 1483 y Fn(h)14 b Fm(Declare)27 -b Fk(Solid)k Fm(functions)36 b Fl(1294)15 b Fn(i)83 1583 -y(g)p Fm(;)0 1691 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i -(1396)f(and)h(1397.)0 1890 y Fk(1292.)94 b(De\014ne)32 +Fm(1296)0 263 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Solid)39 +b Fl(1296)15 b Fn(i)24 b(\021)83 363 y Fk(class)32 b(Solid)f +Fm(:)37 b Fk(public)32 b(Shap)s(e)h Fn(f)83 462 y Fk(protected)5 +b Fm(:)42 b Fk(b)s(o)s(ol)31 b Fi(on)p 857 462 26 4 v +30 w(fr)l(e)l(e)p 1015 462 V 31 w(stor)l(e)10 b Fm(;)166 +562 y Fk(P)m(oin)m(t)33 b Fi(c)l(enter)13 b Fm(;)166 +662 y Fk(b)s(o)s(ol)31 b Fi(do)p 468 662 V 31 w(output)12 +b Fm(;)166 b Fe(=)p Fn(\003)40 b Fm(LDF)28 b(2002.10.01.)33 +b(Added.)52 b Fn(\003)p Fe(=)166 761 y Fk(v)m(ector)6 +b Fn(h)p Fk(Circle)32 b Fn(\003i)c Fi(cir)l(cles)12 b +Fm(;)166 861 y Fk(v)m(ector)6 b Fn(h)p Fk(Ellipse)30 +b Fn(\003i)e Fi(el)t(lipses)13 b Fm(;)166 960 y Fk(v)m(ector)6 +b Fn(h)p Fk(P)m(ath)34 b Fn(\003)o(i)28 b Fi(p)l(aths)12 +b Fm(;)166 1060 y Fk(v)m(ector)6 b Fn(h)p Fk(Rectangle)32 +b Fn(\003i)c Fi(r)l(e)l(ctangles)11 b Fm(;)166 1160 y +Fk(v)m(ector)6 b Fn(h)p Fk(Reg)p 629 1160 29 5 v 39 w(P)m(olygon)33 +b Fn(\003)o(i)28 b Fi(r)l(e)l(g)p 1242 1160 26 4 v 31 +w(p)l(olygons)12 b Fm(;)166 1259 y Fk(v)-5 b(alarra)m(y)8 +b Fn(h)p Fk(real)d Fn(i)28 b Fi(pr)l(oje)l(ctive)p 1108 +1259 V 33 w(extr)l(emes)10 b Fm(;)83 1359 y Fk(public)t +Fm(:)42 b Fk(static)33 b(const)f(unsigned)f(short)i Ff(CIRCLE)r +Fm(;)166 1459 y Fk(static)g(const)f(unsigned)g(short)g +Ff(ELLIPSE)q Fm(;)166 1558 y Fk(static)h(const)f(unsigned)g(short)g +Ff(PATH)s Fm(;)166 1658 y Fk(static)h(const)f(unsigned)g(short)g +Ff(RECTANGLE)p Fm(;)166 1757 y Fk(static)h(const)f(unsigned)g(short)g +Ff(REG_POLYGON)p Fm(;)166 1882 y Fn(h)14 b Fm(Declare)27 +b Fk(Solid)k Fm(functions)36 b Fl(1299)15 b Fn(i)83 1982 +y(g)p Fm(;)0 2090 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i +(1401)f(and)h(1402.)0 2289 y Fk(1297.)94 b(De\014ne)32 b(static)g(const)g(Solid)e(data)j(mem)m(b)s(ers.)p 0 -1966 1643 4 v 1738 1999 a(Begin)e(Log)p 2257 1966 V 83 -2139 a Fm([)p Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 -b(this)g(section.)p 0 2231 1678 4 v 1773 2264 a Fk(End)k(Log)p -2222 2231 V 0 2388 a Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 -b(const)f(Solid)g Fm(data)27 b(mem)n(b)r(ers)35 b Fl(1292)15 -b Fn(i)23 b(\021)83 2488 y Fk(const)32 b(unsigned)g(short)g(Solid)12 -b Fm(::)c Ff(CIRCLE)25 b Fm(=)e(0;)83 2588 y Fk(const)32 +2365 1779 4 v 1874 2397 a(Log)p 2122 2365 V 83 2538 a +Fm([)p Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 b(this)g(section.)p +0 2630 3900 4 v 0 2787 a Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 +b(const)f(Solid)g Fm(data)27 b(mem)n(b)r(ers)35 b Fl(1297)15 +b Fn(i)23 b(\021)83 2887 y Fk(const)32 b(unsigned)g(short)g(Solid)12 +b Fm(::)c Ff(CIRCLE)25 b Fm(=)e(0;)83 2986 y Fk(const)32 b(unsigned)g(short)g(Solid)12 b Fm(::)c Ff(ELLIPSE)25 -b Fm(=)e(1)o(;)83 2687 y Fk(const)32 b(unsigned)g(short)g(Solid)12 -b Fm(::)c Ff(PATH)26 b Fm(=)d(2)o(;)83 2787 y Fk(const)32 +b Fm(=)e(1)o(;)83 3086 y Fk(const)32 b(unsigned)g(short)g(Solid)12 +b Fm(::)c Ff(PATH)26 b Fm(=)d(2)o(;)83 3185 y Fk(const)32 b(unsigned)g(short)g(Solid)12 b Fm(::)c Ff(RECTANGLE)24 -b Fm(=)f(3)o(;)83 2887 y Fk(const)32 b(unsigned)g(short)g(Solid)12 -b Fm(::)c Ff(REG_POLYGON)23 b Fm(=)g(4)o(;)0 2994 y Fl(This)g(co)r(de)i -(is)e(used)h(in)f(section)i(1396.)0 3194 y Fk(1293.)94 -b(Constructors.)0 3393 y(1294.)g(Default)23 b(constructor.)96 +b Fm(=)f(3)o(;)83 3285 y Fk(const)32 b(unsigned)g(short)g(Solid)12 +b Fm(::)c Ff(REG_POLYGON)23 b Fm(=)g(4)o(;)0 3393 y Fl(This)g(co)r(de)i +(is)e(used)h(in)f(section)i(1401.)0 3592 y Fk(1298.)94 +b(Constructors.)0 3791 y(1299.)g(Default)23 b(constructor.)96 b Fm(\(No)20 b(argumen)n(ts.\))33 b([)p Fh(LDF)26 b(2002.10.02.)p Fm(])53 b Fk(Solid)23 b Fm(will)d(not)g(normally)f(b)r(e)h(used)g(in)g -(user)0 3493 y(co)r(de,)h(since)d(it)i(is)e(in)n(tended)i(to)f(b)r(e)g +(user)0 3891 y(co)r(de,)h(since)d(it)i(is)e(in)n(tended)i(to)f(b)r(e)g (a)f(base)h(class)f(only)-7 b(.)33 b(Therefore,)20 b(ob)5 b(jects)18 b(of)h(t)n(yp)r(e)g Fk(Solid)k Fm(will)c(not)g(normally)f(b) -r(e)h(declared)0 3592 y(as)h(automatic)h(v)-5 b(ariables)20 +r(e)h(declared)0 3991 y(as)h(automatic)h(v)-5 b(ariables)20 b(and)h(there)g(will)g(b)r(e)h(no)f Fk(static)26 b Fm(global)20 b Fk(Solids)s Fm(.)35 b(Ho)n(w)n(ev)n(er,)21 b Fk(Solid)11 -b Fm(::)d Fi(cr)l(e)l(ate)p 3186 3592 26 4 v 32 w(new)p -3358 3592 V 30 w(solid)14 b Fm(\()h(\))21 b(is)g(used)0 -3692 y(in)27 b(the)g(dra)n(wing)e(and)i(\014lling)g(functions,)g(in)g +b Fm(::)d Fi(cr)l(e)l(ate)p 3186 3991 26 4 v 32 w(new)p +3358 3991 V 30 w(solid)14 b Fm(\()h(\))21 b(is)g(used)0 +4090 y(in)27 b(the)g(dra)n(wing)e(and)i(\014lling)g(functions,)g(in)g (order)e(to)i(put)g Fk(Solids)j Fm(on)n(to)c Fk(Pictures)5 b Fm(.)37 b(If)27 b(w)n(e)f(didn't)i(ha)n(v)n(e)d(a)i(constructor,)0 -3791 y Fi(pr)l(oje)l(ctive)p 346 3791 V 32 w(extr)l(emes)32 +4190 y Fi(pr)l(oje)l(ctive)p 346 4190 V 32 w(extr)l(emes)32 b Fm(w)n(ouldn't)21 b(initially)h(ha)n(v)n(e)e(the)i(righ)n(t)e(size)h -(and)g Fi(on)p 2273 3791 V 31 w(fr)l(e)l(e)p 2432 3791 -V 31 w(stor)l(e)32 b Fm(and)21 b Fi(do)p 2907 3791 V +(and)g Fi(on)p 2273 4190 V 31 w(fr)l(e)l(e)p 2432 4190 +V 31 w(stor)l(e)32 b Fm(and)21 b Fi(do)p 2907 4190 V 31 w(output)33 b Fm(w)n(ould)21 b(b)r(oth)h(b)r(e)f Fi(false)0 -3891 y Fm(\(assuming)33 b(the)g(compiler)g(set)g(s)g(the)h(initial)f(v) +4290 y Fm(\(assuming)33 b(the)g(compiler)g(set)g(s)g(the)h(initial)f(v) -5 b(alues)33 b(of)g(uninitialized)h Fk(b)s(o)s(ols)i Fm(to)d Fi(false)12 b Fm(\).)54 b(None)34 b(of)f(this)g(w)n(ould)g -(really)0 3991 y(matter,)28 b(b)r(ecause)f(presumably)g(an)h(assignmen) +(really)0 4389 y(matter,)28 b(b)r(ecause)f(presumably)g(an)h(assignmen) n(t)f(w)n(ould)g(follo)n(w)h(immediately)-7 b(,)28 b(whic)n(h)g(w)n -(ould)f(tak)n(e)g(care)g(of)h(ev)n(erything,)0 4090 y(but)g(there's)f -(no)h(harm)f(in)h(making)e(sure.)0 4215 y Fn(h)14 b Fm(Declare)27 -b Fk(Solid)k Fm(functions)36 b Fl(1294)15 b Fn(i)23 b(\021)83 -4314 y Fk(Solid)t Fm(\()14 b(\);)0 4422 y Fl(See)25 b(also)g(sections)g -(1296,)g(1298,)g(1300,)h(1302,)f(1304,)g(1306,)g(1308,)h(1311,)f(1313,) -g(1315,)h(1317,)f(1319,)g(1321,)g(1324,)h(1326,)f(1328,)g(1330,)g -(1332,)166 4505 y(1334,)g(1336,)g(1338,)h(1341,)f(1343,)g(1345,)g -(1347,)h(1350,)f(1352,)g(1354,)g(1356,)g(1359,)h(1361,)f(1363,)g(1364,) -g(1366,)h(1368,)f(1370,)g(1372,)g(1374,)166 4588 y(1378,)f(1381,)h -(1384,)f(1387,)g(1390,)g(and)h(1393.)0 4696 y(This)e(co)r(de)i(is)e -(used)h(in)f(section)i(1291.)p eop end -%%Page: 385 385 -TeXDict begin 385 384 bop 0 83 a Fn(x)p Fm(1295)139 b +(ould)f(tak)n(e)g(care)g(of)h(ev)n(erything,)0 4489 y(but)g(there's)f +(no)h(harm)f(in)h(making)e(sure.)0 4613 y Fn(h)14 b Fm(Declare)27 +b Fk(Solid)k Fm(functions)36 b Fl(1299)15 b Fn(i)23 b(\021)83 +4713 y Fk(Solid)t Fm(\()14 b(\);)0 4821 y Fl(See)25 b(also)g(sections)g +(1301,)g(1303,)g(1305,)h(1307,)f(1309,)g(1311,)g(1313,)h(1316,)f(1318,) +g(1320,)h(1322,)f(1324,)g(1326,)g(1329,)h(1331,)f(1333,)g(1335,)g +(1337,)166 4904 y(1339,)g(1341,)g(1343,)h(1346,)f(1348,)g(1350,)g +(1352,)h(1355,)f(1357,)g(1359,)g(1361,)g(1364,)h(1366,)f(1368,)g(1369,) +g(1371,)h(1373,)f(1375,)g(1377,)g(1379,)166 4987 y(1383,)f(1386,)h +(1389,)f(1392,)g(1395,)g(and)h(1398.)0 5095 y(This)e(co)r(de)i(is)e +(used)h(in)f(section)i(1296.)p eop end +%%Page: 389 389 +TeXDict begin 389 388 bop 0 83 a Fn(x)p Fm(1300)139 b Fl(3DLDFPR)n(G)1987 b(DEF)-8 b(A)n(UL)i(T)24 b(CONSTR)n(UCTOR)140 -b Fm(385)0 263 y Fk(1295.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Solid)k Fm(functions)j Fl(1295)15 b Fn(i)23 b(\021)83 +b Fm(389)0 263 y Fk(1300.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Solid)k Fm(functions)j Fl(1300)15 b Fn(i)23 b(\021)83 487 y Fk(Solid)12 b Fm(::)c Fk(Solid)t Fm(\()14 b(\))83 587 y Fn(f)166 686 y Fi(on)p 260 686 26 4 v 31 w(fr)l(e)l(e)p 419 686 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(false)11 b @@ -33125,22 +33121,22 @@ b Fi(true)10 b Fm(;)166 886 y Fi(pr)l(oje)l(ctive)p 512 886 V 32 w(extr)l(emes)h Fe(:)p Fi(r)l(esize)g Fm(\(6)o Fe(;)j Fm(0\);)83 985 y Fn(g)0 1093 y Fl(See)25 b(also)g(sections)g -(1297,)g(1299,)g(1301,)h(1303,)f(1305,)g(1309,)g(1312,)h(1314,)f(1316,) -g(1318,)h(1320,)f(1322,)g(1325,)g(1327,)h(1329,)f(1331,)g(1333,)g -(1335,)166 1176 y(1337,)g(1339,)g(1342,)h(1344,)f(1346,)g(1348,)g -(1351,)h(1353,)f(1355,)g(1357,)g(1360,)g(1362,)h(1365,)f(1367,)g(1369,) -g(1371,)h(1373,)f(1375,)g(1379,)g(1382,)166 1259 y(1385,)f(1388,)h -(1391,)f(and)g(1394.)0 1367 y(This)f(co)r(de)i(is)e(used)h(in)f -(section)i(1396.)0 1566 y Fk(1296.)94 b(Cop)m(y)32 b(constructor.)96 +(1302,)g(1304,)g(1306,)h(1308,)f(1310,)g(1314,)g(1317,)h(1319,)f(1321,) +g(1323,)h(1325,)f(1327,)g(1330,)g(1332,)h(1334,)f(1336,)g(1338,)g +(1340,)166 1176 y(1342,)g(1344,)g(1347,)h(1349,)f(1351,)g(1353,)g +(1356,)h(1358,)f(1360,)g(1362,)g(1365,)g(1367,)h(1370,)f(1372,)g(1374,) +g(1376,)h(1378,)f(1380,)g(1384,)g(1387,)166 1259 y(1390,)f(1393,)h +(1396,)f(and)g(1399.)0 1367 y(This)f(co)r(de)i(is)e(used)h(in)f +(section)i(1401.)0 1566 y Fk(1301.)94 b(Cop)m(y)32 b(constructor.)96 b Fm([)p Fh(LDF)26 b(2002.10.02.)p Fm(])0 1691 y Fn(h)14 -b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1294)15 +b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1791 y Fk(Solid)t Fm(\()p Fk(const)32 b(Solid)g Fm(&)o Fe(s)p Fm(\);)p eop end -%%Page: 386 386 -TeXDict begin 386 385 bop 0 83 a Fm(386)140 b Fl(COPY)23 -b(CONSTR)n(UCTOR)2112 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1297)0 -263 y Fk(1297.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k -Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 390 390 +TeXDict begin 390 389 bop 0 83 a Fm(390)140 b Fl(COPY)23 +b(CONSTR)n(UCTOR)2112 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1302)0 +263 y Fk(1302.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Solid)12 b Fm(::)c Fk(Solid)t Fm(\()p Fk(const)33 b(Solid)e Fm(&)p Fe(s)p Fm(\))83 587 y Fn(f)166 686 y Fi(on)p 260 686 26 4 v 31 w(fr)l(e)l(e)p 419 686 V 31 @@ -33212,22 +33208,22 @@ V 31 w(new)p 1893 2878 V 31 w(r)l(e)l(ctangle)i Fm(\()k(\)\);)249 2978 y Fn(\003)p Fm(\()p Fi(r)l(e)l(ctangles)d Fe(:)p Fi(b)l(ack)j Fm(\()g(\)\))24 b(=)e Fn(\003\003)o Fi(iter)14 -b Fm(;)166 3077 y Fn(g)83 3177 y(g)0 3376 y Fk(1298.)94 +b Fm(;)166 3077 y Fn(g)83 3177 y(g)0 3376 y Fk(1303.)94 b(Pseudo-constructor)47 b(for)g(dynamic)g(allo)s(cation.)94 b Fm([)p Fh(LDF)26 b(2003.05.06.)p Fm(])73 b(TO)41 b(DO:)f(Add)i(an)e (optional)0 3476 y Fk(Solid)31 b Fn(\003)c Fm(argumen)n(t,)g(and)h(a)f (v)n(ersion)f(with)i(a)f(required)g Fk(const)32 b(Solid)f Fm(&)d(argumen)n(t.)0 3601 y Fn(h)14 b Fm(Declare)27 -b Fk(Solid)k Fm(functions)36 b Fl(1294)15 b Fn(i)23 b +b Fk(Solid)k Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3700 y Fk(static)33 b(Solid)e Fn(\003)p Fi(cr)l(e)l(ate)p 840 3700 V 30 w(new)p 1010 3700 V 31 w(solid)14 b Fm(\()g(\);)p eop end -%%Page: 387 387 -TeXDict begin 387 386 bop 0 83 a Fn(x)p Fm(1299)139 b +%%Page: 391 391 +TeXDict begin 391 390 bop 0 83 a Fn(x)p Fm(1304)139 b Fl(3DLDFPR)n(G)973 b(PSEUDO-CONSTR)n(UCTOR)22 b(F)n(OR)h(D)n(YNAMIC)g -(ALLOCA)-6 b(TION)141 b Fm(387)0 263 y Fk(1299.)0 388 +(ALLOCA)-6 b(TION)141 b Fm(391)0 263 y Fk(1304.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Solid)31 +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Solid)31 b Fn(\003)p Fk(Solid)12 b Fm(::)c Fi(cr)l(e)l(ate)p 854 487 26 4 v 31 w(new)p 1025 487 V 30 w(solid)15 b Fm(\()f(\))83 587 y Fn(f)166 686 y Fk(Solid)31 b Fn(\003)p Fe(s)23 @@ -33236,31 +33232,30 @@ 491 811 V 31 w(stor)l(e)f Fm(=)23 b Fi(true)10 b Fm(;)166 911 y Fe(s)188 936 y(~)238 911 y Fi(do)p 327 911 V 32 w(output)34 b Fm(=)23 b Fi(true)9 b Fm(;)166 1010 y Fk(return)33 -b Fe(s)p Fm(;)83 1110 y Fn(g)0 1309 y Fk(1300.)94 b(Destructor.)p -0 1385 1643 4 v 1738 1417 a(Begin)31 b(Log)p 2257 1385 -V 83 1558 a Fm([)p Fh(LDF)25 b(2003.08.27.)p Fm(])62 -b(Added)29 b(a)g Fk(virtual)34 b Fm(destructor)27 b(with)i(an)g(empt)n -(y)f(de\014nition,)i(b)r(ecause)e(GCC)h(with)g(the)g(\\)p +b Fe(s)p Fm(;)83 1110 y Fn(g)0 1309 y Fk(1305.)94 b(Destructor.)p +0 1385 1779 4 v 1874 1417 a(Log)p 2122 1385 V 83 1558 +a Fm([)p Fh(LDF)25 b(2003.08.27.)p Fm(])62 b(Added)29 +b(a)g Fk(virtual)34 b Fm(destructor)27 b(with)i(an)g(empt)n(y)f +(de\014nition,)i(b)r(ecause)e(GCC)h(with)g(the)g(\\)p Fj(-Wall)p Fm(")0 1658 y(option)e(issued)h(the)g(follo)n(wing)e(w)n (arning:)36 b(\\`class)26 b(Solid')h(has)h(virtual)f(functions)h(but)g -(non-virtual)e(destructor".)p 0 1750 1678 4 v 1773 1782 -a Fk(End)32 b(Log)p 2222 1750 V 0 1907 a Fn(h)14 b Fm(Declare)27 -b Fk(Solid)k Fm(functions)36 b Fl(1294)15 b Fn(i)23 b -Fm(+)p Fn(\021)83 2006 y Fk(virtual)33 b Fn(\030)o Fk(Solid)t -Fm(\()14 b(\);)0 2206 y Fk(1301.)0 2330 y Fn(h)g Fm(De\014ne)28 -b Fk(Solid)k Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p -Fn(\021)83 2430 y Fk(Solid)12 b Fm(::)c Fn(\030)p Fk(Solid)t -Fm(\()14 b(\))83 2530 y Fn(f)g(g)0 2729 y Fk(1302.)94 -b(Assignmen)m(t.)0 2853 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k -Fm(functions)36 b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2953 y Fk(virtual)33 b(const)f(Solid)g Fm(&)o Fk(op)s(erator)5 -b Fm(=\()p Fk(const)32 b(Solid)g Fm(&)o Fe(s)p Fm(\);)p -eop end -%%Page: 388 388 -TeXDict begin 388 387 bop 0 83 a Fm(388)140 b Fl(ASSIGNMENT)2422 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1303)0 263 y Fk(1303.)0 +(non-virtual)e(destructor".)p 0 1750 3900 4 v 0 1907 +a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2006 y Fk(virtual)33 +b Fn(\030)o Fk(Solid)t Fm(\()14 b(\);)0 2206 y Fk(1306.)0 +2330 y Fn(h)g Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2430 y Fk(Solid)12 +b Fm(::)c Fn(\030)p Fk(Solid)t Fm(\()14 b(\))83 2530 +y Fn(f)g(g)0 2729 y Fk(1307.)94 b(Assignmen)m(t.)0 2853 +y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2953 y Fk(virtual)33 +b(const)f(Solid)g Fm(&)o Fk(op)s(erator)5 b Fm(=\()p +Fk(const)32 b(Solid)g Fm(&)o Fe(s)p Fm(\);)p eop end +%%Page: 392 392 +TeXDict begin 392 391 bop 0 83 a Fm(392)140 b Fl(ASSIGNMENT)2422 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1308)0 263 y Fk(1308.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(const)32 +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(const)32 b(Solid)g Fm(&)o Fk(Solid)12 b Fm(::)d Fk(op)s(erator)c Fm(=)o(\()p Fk(const)33 b(Solid)e Fm(&)p Fe(s)p Fm(\))83 587 y Fn(f)166 686 y Fk(b)s(o)s(ol)g Ff(DEBUG)25 b Fm(=)e @@ -33390,9 +33385,9 @@ b Fe(s)o(:)p Fi(r)l(e)l(g)p 3357 5294 V 31 w(p)l(olygons)12 b Fe(:)p Fi(end)i Fm(\()g(\);)419 5386 y Fg(+)-8 b(+)517 5394 y Fi(iter)13 b Fm(\))42 b Fn(f)p eop end -%%Page: 389 389 -TeXDict begin 389 388 bop 0 83 a Fn(x)p Fm(1303)139 b -Fl(3DLDFPR)n(G)2423 b(ASSIGNMENT)141 b Fm(389)249 263 +%%Page: 393 393 +TeXDict begin 393 392 bop 0 83 a Fn(x)p Fm(1308)139 b +Fl(3DLDFPR)n(G)2423 b(ASSIGNMENT)141 b Fm(393)249 263 y Fi(r)l(e)l(g)p 357 263 26 4 v 31 w(p)l(olygons)12 b Fe(:)p Fi(push)p 888 263 V 31 w(b)l(ack)i Fm(\()p Fk(Reg)p 1280 263 29 5 v 39 w(P)m(olygon)f Fm(::)c Fi(cr)l(e)l(ate)p @@ -33442,26 +33437,24 @@ Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Solid::o)o(per)-7 b(ator=\(\).\\n")p Fm(;)166 2056 y Fk(return)33 b Fn(\003)p Fi(this)11 b Fm(;)83 -2156 y Fn(g)0 2355 y Fk(1304.)94 b(Cop)m(ying.)p 0 2454 -1643 4 v 1738 2487 a(Begin)31 b(Log)p 2257 2454 V 83 -2628 a Fm([)p Fh(LDF)25 b(2003.05.06.)p Fm(])58 b(BUG)24 -b(FIX:)g(Changed)g Fe(s)g Fm(from)f Fk(Shap)s(e)29 b -Fn(\003)23 b Fm(to)h Fk(Solid)k Fn(\003)o Fm(.)36 b(I)24 -b(noticed)g(this)g(bug)g(when)g(I)g(tried)g(to)g(cop)n(y)0 -2727 y(a)j Fk(Picture)33 b Fm(con)n(taining)27 b(a)g -Fk(Cub)s(oid)t Fm(,)g(and)h(the)g(cop)n(y)e(con)n(tained)h(a)h(single)f -(empt)n(y)g Fk(Shap)s(e)33 b Fn(\003)27 b Fm(on)g Fi(shap)l(es)12 -b Fm(.)p 0 2819 1678 4 v 1773 2852 a Fk(End)32 b(Log)p -2222 2819 V 0 2976 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k -Fm(functions)36 b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3076 y Fk(virtual)33 b(Shap)s(e)f Fn(\003)p Fi(get)p -830 3076 26 4 v 30 w(c)l(opy)13 b Fm(\()h(\))28 b Fk(const)5 -b Fm(;)p eop end -%%Page: 390 390 -TeXDict begin 390 389 bop 0 83 a Fm(390)140 b Fl(COPYING)2563 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1305)0 263 y Fk(1305.)0 +2156 y Fn(g)0 2355 y Fk(1309.)94 b(Cop)m(ying.)p 0 2454 +1779 4 v 1874 2486 a(Log)p 2122 2454 V 83 2627 a Fm([)p +Fh(LDF)25 b(2003.05.06.)p Fm(])58 b(BUG)24 b(FIX:)g(Changed)g +Fe(s)g Fm(from)f Fk(Shap)s(e)29 b Fn(\003)23 b Fm(to)h +Fk(Solid)k Fn(\003)o Fm(.)36 b(I)24 b(noticed)g(this)g(bug)g(when)g(I)g +(tried)g(to)g(cop)n(y)0 2727 y(a)j Fk(Picture)33 b Fm(con)n(taining)27 +b(a)g Fk(Cub)s(oid)t Fm(,)g(and)h(the)g(cop)n(y)e(con)n(tained)h(a)h +(single)f(empt)n(y)g Fk(Shap)s(e)33 b Fn(\003)27 b Fm(on)g +Fi(shap)l(es)12 b Fm(.)p 0 2819 3900 4 v 0 2976 a Fn(h)i +Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1299)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 3075 y Fk(virtual)33 b(Shap)s(e)f +Fn(\003)p Fi(get)p 830 3075 26 4 v 30 w(c)l(opy)13 b +Fm(\()h(\))28 b Fk(const)5 b Fm(;)p eop end +%%Page: 394 394 +TeXDict begin 394 393 bop 0 83 a Fm(394)140 b Fl(COPYING)2563 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1310)0 263 y Fk(1310.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Shap)s(e)32 +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Shap)s(e)32 b Fn(\003)p Fk(Solid)12 b Fm(::)c Fi(get)p 792 487 26 4 v 31 w(c)l(opy)13 b Fm(\()h(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(Solid)j Fn(\003)p Fe(s)23 b Fm(=)f @@ -33470,16 +33463,16 @@ Fi(this)11 b Fm(;)166 911 y Fk(return)33 b(dynamic)p 819 911 29 5 v 41 w(cast)5 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)p Fm(\()p Fe(s)q Fm(\);)83 1010 y Fn(g)0 -1209 y Fk(1306.)94 b(Set)32 b(on)f(free)h(store.)0 1334 +1209 y Fk(1311.)94 b(Set)32 b(on)f(free)h(store.)0 1334 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 -b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1434 y Fk(inline)31 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1434 y Fk(inline)31 b(virtual)i(b)s(o)s(ol)d Fi(set)p 974 1434 26 4 v 31 w(on)p 1094 1434 V 30 w(fr)l(e)l(e)p 1252 1434 V 31 w(stor)l(e)11 b Fm(\()p Fk(b)s(o)s(ol)31 b Fe(b)22 b Fm(=)h Fi(true)10 b Fm(\))83 1533 y Fn(f)166 1633 y Fi(on)p 260 1633 V 31 w(fr)l(e)l(e)p 419 1633 V 31 w(stor)l(e)33 b Fm(=)23 b Fe(b)o Fm(;)166 1733 y Fk(return)33 b Fe(b)p Fm(;)83 -1832 y Fn(g)0 2031 y Fk(1307.)94 b(Returning)31 b(elemen)m(ts)f(and)j +1832 y Fn(g)0 2031 y Fk(1312.)94 b(Returning)31 b(elemen)m(ts)f(and)j (information.)94 b Fm([)p Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(The)28 b(functions)g Fi(get)p 3251 2031 V 30 w(shap)l(e)p 3475 2031 V 32 w(ptr)13 b Fm(\()h(\),)0 2131 y Fi(get)p @@ -33507,127 +33500,122 @@ v 39 w(P)m(olygon)k Fe(A)24 b Fm(=)e Fn(\003)p Fe(d:)p Fi(get)p 961 2530 26 4 v 31 w(r)l(e)l(g)p 1095 2530 V 30 w(p)l(olygon)p 1393 2530 V 32 w(ptr)13 b Fm(\(5\);.)p -0 2633 1643 4 v 1738 2666 a Fk(Begin)31 b(Log)p 2257 -2633 V 83 2807 a Fm([)p Fh(LDF)25 b(2003.05.09.)p Fm(])61 -b(Changed)27 b(the)h(names)f(of)h Fi(get)p 1686 2807 -26 4 v 30 w(shap)l(e)12 b Fm(\()i(\),)28 b Fi(get)p 2155 -2807 V 31 w(cir)l(cle)11 b Fm(\()j(\),)28 b Fi(get)p -2621 2807 V 31 w(el)t(lipse)12 b Fm(\()i(\),)28 b Fi(get)p -3120 2807 V 31 w(p)l(ath)11 b Fm(\()j(\),)0 2906 y Fi(get)p -109 2906 V 31 w(r)l(e)l(ctangle)c Fm(\()k(\),)28 b(and)g -Fi(get)p 862 2906 V 30 w(r)l(e)l(g)p 995 2906 V 31 w(p)l(olygon)12 -b Fm(\()i(\))28 b(to)f Fi(get)p 1617 2906 V 31 w(shap)l(e)p -1842 2906 V 32 w(ptr)13 b Fm(\()h(\),)28 b Fi(get)p 2225 -2906 V 30 w(cir)l(cle)p 2446 2906 V 32 w(ptr)13 b Fm(\()h(\),)28 -b Fi(get)p 2829 2906 V 31 w(el)t(lipse)p 3083 2906 V -32 w(ptr)14 b Fm(\()g(\),)28 b Fi(get)p 3467 2906 V 30 -w(p)l(ath)p 3647 2906 V 31 w(ptr)14 b Fm(\()g(\),)0 3006 -y Fi(get)p 109 3006 V 31 w(r)l(e)l(ctangle)p 457 3006 -V 30 w(ptr)f Fm(\()i(\),)42 b(and)d Fi(get)p 1026 3006 -V 30 w(r)l(e)l(g)p 1159 3006 V 31 w(p)l(olygon)p 1458 -3006 V 32 w(ptr)13 b Fm(\()h(\).)72 b(The)39 b(names)f(without)i(\\)p -2591 3006 V 30 w Fi(ptr)13 b Fm(")39 b(w)n(ere)f(confusing,)j(b)r -(ecause)e(they)0 3106 y(didn't)28 b(mak)n(e)f(clear)g(that)h(the)g -(functions)g(returned)f(p)r(oin)n(ters.)p 0 3198 1678 -4 v 1773 3230 a Fk(End)32 b(Log)p 2222 3198 V 0 3429 -a(1308.)94 b(Get)32 b(cen)m(ter.)p 0 3505 1643 4 v 1738 -3538 a(Begin)f(Log)p 2257 3505 V 83 3678 a Fm([)p Fh(LDF)25 -b(2003.05.06.)p Fm(])61 b(Added)28 b(this)g(function.)83 -3778 y([)p Fh(LDF)d(2003.08.10.)p Fm(])61 b(Made)27 b(this)h(function)h -Fk(const)t Fm(.)p 0 3870 1678 4 v 1773 3903 a Fk(End)j(Log)p -2222 3870 V 0 4027 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k -Fm(functions)36 b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4127 y Fk(virtual)33 b(const)f(P)m(oin)m(t)h Fm(&)p Fi(get)p -1076 4127 26 4 v 30 w(c)l(enter)13 b Fm(\()h(\))28 b -Fk(const)5 b Fm(;)p eop end -%%Page: 391 391 -TeXDict begin 391 390 bop 0 83 a Fn(x)p Fm(1309)139 b -Fl(3DLDFPR)n(G)2424 b(GET)24 b(CENTER)140 b Fm(391)0 -263 y Fk(1309.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k -Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +0 2633 1779 4 v 1874 2665 a Fk(Log)p 2122 2633 V 83 2806 +a Fm([)p Fh(LDF)25 b(2003.05.09.)p Fm(])61 b(Changed)27 +b(the)h(names)f(of)h Fi(get)p 1686 2806 26 4 v 30 w(shap)l(e)12 +b Fm(\()i(\),)28 b Fi(get)p 2155 2806 V 31 w(cir)l(cle)11 +b Fm(\()j(\),)28 b Fi(get)p 2621 2806 V 31 w(el)t(lipse)12 +b Fm(\()i(\),)28 b Fi(get)p 3120 2806 V 31 w(p)l(ath)11 +b Fm(\()j(\),)0 2906 y Fi(get)p 109 2906 V 31 w(r)l(e)l(ctangle)c +Fm(\()k(\),)28 b(and)g Fi(get)p 862 2906 V 30 w(r)l(e)l(g)p +995 2906 V 31 w(p)l(olygon)12 b Fm(\()i(\))28 b(to)f +Fi(get)p 1617 2906 V 31 w(shap)l(e)p 1842 2906 V 32 w(ptr)13 +b Fm(\()h(\),)28 b Fi(get)p 2225 2906 V 30 w(cir)l(cle)p +2446 2906 V 32 w(ptr)13 b Fm(\()h(\),)28 b Fi(get)p 2829 +2906 V 31 w(el)t(lipse)p 3083 2906 V 32 w(ptr)14 b Fm(\()g(\),)28 +b Fi(get)p 3467 2906 V 30 w(p)l(ath)p 3647 2906 V 31 +w(ptr)14 b Fm(\()g(\),)0 3005 y Fi(get)p 109 3005 V 31 +w(r)l(e)l(ctangle)p 457 3005 V 30 w(ptr)f Fm(\()i(\),)42 +b(and)d Fi(get)p 1026 3005 V 30 w(r)l(e)l(g)p 1159 3005 +V 31 w(p)l(olygon)p 1458 3005 V 32 w(ptr)13 b Fm(\()h(\).)72 +b(The)39 b(names)f(without)i(\\)p 2591 3005 V 30 w Fi(ptr)13 +b Fm(")39 b(w)n(ere)f(confusing,)j(b)r(ecause)e(they)0 +3105 y(didn't)28 b(mak)n(e)f(clear)g(that)h(the)g(functions)g(returned) +f(p)r(oin)n(ters.)p 0 3197 3900 4 v 0 3429 a Fk(1313.)94 +b(Get)32 b(cen)m(ter.)p 0 3504 1779 4 v 1874 3537 a(Log)p +2122 3504 V 83 3678 a Fm([)p Fh(LDF)25 b(2003.05.06.)p +Fm(])61 b(Added)28 b(this)g(function.)83 3777 y([)p Fh(LDF)d +(2003.08.10.)p Fm(])61 b(Made)27 b(this)h(function)h +Fk(const)t Fm(.)p 0 3869 3900 4 v 0 4026 a Fn(h)14 b +Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1299)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 4126 y Fk(virtual)33 b(const)f(P)m(oin)m +(t)h Fm(&)p Fi(get)p 1076 4126 26 4 v 30 w(c)l(enter)13 +b Fm(\()h(\))28 b Fk(const)5 b Fm(;)p eop end +%%Page: 395 395 +TeXDict begin 395 394 bop 0 83 a Fn(x)p Fm(1314)139 b +Fl(3DLDFPR)n(G)2424 b(GET)24 b(CENTER)140 b Fm(395)0 +263 y Fk(1314.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fk(Solid)12 b Fm(::)c Fi(get)p 1038 487 26 4 v 31 w(c)l(enter)13 b Fm(\()h(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(return)33 -b Fi(c)l(enter)13 b Fm(;)83 786 y Fn(g)0 985 y Fk(1310.)94 -b(Getting)31 b(Shap)s(es.)p 0 1085 1643 4 v 1738 1117 -a(Begin)g(Log)p 2257 1085 V 83 1258 a Fm([)p Fh(LDF)25 -b(2003.04.30.)p Fm(])61 b(Changed)27 b(the)h(functions)g -Fi(get)p 1695 1258 26 4 v 31 w(cir)l(cle)p 1917 1258 -V 31 w(ptr)13 b Fm(\()h(\),)28 b Fi(get)p 2299 1258 V -31 w(el)t(lipse)p 2553 1258 V 32 w(ptr)14 b Fm(\()g(\),)28 -b Fi(get)p 2937 1258 V 30 w(p)l(ath)p 3117 1258 V 31 -w(ptr)14 b Fm(\()g(\),)0 1358 y Fi(get)p 109 1358 V 31 -w(r)l(e)l(ctangle)p 457 1358 V 30 w(ptr)f Fm(\()i(\),)28 -b(and)f Fi(get)p 1000 1358 V 30 w(r)l(e)l(g)p 1133 1358 -V 31 w(p)l(olygon)p 1432 1358 V 32 w(ptr)13 b Fm(\()h(\).)37 -b(They)28 b(no)f(longer)f(use)i Fi(get)p 2547 1358 V -30 w(shap)l(e)p 2771 1358 V 32 w(ptr)13 b Fm(\()h(\).)38 -b(There's)27 b(no)g(go)r(o)r(d)g(reason)0 1457 y(for)g(casting)g(p)r -(oin)n(ters)g(from)g(one)g(t)n(yp)r(e)h(to)g(another.)35 -b(I)28 b(rather)f(doubt)h(that)f Fi(get)p 2537 1457 V -31 w(shap)l(e)p 2762 1457 V 32 w(ptr)13 b Fm(\()h(\))28 -b(is)f(needed,)h(an)n(yw)n(a)n(y)-7 b(.)p 0 1549 1678 -4 v 1773 1582 a Fk(End)32 b(Log)p 2222 1549 V 0 1781 -a(1311.)94 b(Get)43 b(Shap)s(e)f(p)s(oin)m(ter.)95 b -Fm([)p Fh(LDF)25 b(2003.05.30.)p Fm(])70 b(This)37 b(function)h(copies) -e(one)h(of)g(the)h(ob)5 b(jects)36 b(on)h(one)g(of)g(the)0 -1881 y(v)n(ectors)i(of)i Fk(Shap)s(e)46 b Fn(\003)40 -b Fm(b)r(elonging)g(to)h(the)g Fk(Solid)t Fm(,)j(and)d(returns)f(a)g(p) -r(oin)n(ter)h(to)f Fk(Shap)s(e)46 b Fm(that)41 b(p)r(oin)n(ts)g(to)g -(the)g(cop)n(y)-7 b(.)0 1980 y(Curren)n(tly)g(,)26 b(a)h -Fk(Solid)k Fm(con)n(tains)26 b(the)i(v)n(ectors)d Fi(cir)l(cles)12 -b Fm(,)28 b Fi(el)t(lipses)12 b Fm(,)28 b Fi(p)l(aths)11 -b Fm(,)28 b Fi(r)l(e)l(ctangles)11 b Fm(,)27 b(and)g -Fi(r)l(e)l(g)p 2986 1980 26 4 v 31 w(p)l(olygons)12 b -Fm(.)37 b(The)27 b(argumen)n(t)0 2080 y Fi(shap)l(e)p -199 2080 V 32 w(typ)l(e)45 b Fm(indicates)34 b(whic)n(h)g(v)n(ector)f -(should)h(b)r(e)h(accessed.)55 b(Normally)-7 b(,)35 b(the)g(corresp)r -(onding)d Fk(public)39 b(static)g(const)0 2179 y Fm(data)d(mem)n(b)r -(ers)h Ff(CIRCLE)q Fm(,)i Ff(ELLIPSE)r Fm(,)g Ff(PATH)s -Fm(,)g Ff(RECTANGLE)p Fm(,)h(or)35 b Ff(REG_POLYGON)i -Fm(should)f(b)r(e)h(passed)f(as)g(the)i Fi(shap)l(e)p -3719 2179 V 31 w(typ)l(e)0 2279 y Fm(argumen)n(t,)27 -b(e.g.,)g Fk(Circle)32 b Fn(\003)o Fi(c)p 934 2279 V -31 w(ptr)41 b Fm(=)27 b Fk(static)p 1429 2279 29 5 v +b Fi(c)l(enter)13 b Fm(;)83 786 y Fn(g)0 985 y Fk(1315.)94 +b(Getting)31 b(Shap)s(es.)p 0 1084 1779 4 v 1874 1117 +a(Log)p 2122 1084 V 83 1257 a Fm([)p Fh(LDF)25 b(2003.04.30.)p +Fm(])61 b(Changed)27 b(the)h(functions)g Fi(get)p 1695 +1257 26 4 v 31 w(cir)l(cle)p 1917 1257 V 31 w(ptr)13 +b Fm(\()h(\),)28 b Fi(get)p 2299 1257 V 31 w(el)t(lipse)p +2553 1257 V 32 w(ptr)14 b Fm(\()g(\),)28 b Fi(get)p 2937 +1257 V 30 w(p)l(ath)p 3117 1257 V 31 w(ptr)14 b Fm(\()g(\),)0 +1357 y Fi(get)p 109 1357 V 31 w(r)l(e)l(ctangle)p 457 +1357 V 30 w(ptr)f Fm(\()i(\),)28 b(and)f Fi(get)p 1000 +1357 V 30 w(r)l(e)l(g)p 1133 1357 V 31 w(p)l(olygon)p +1432 1357 V 32 w(ptr)13 b Fm(\()h(\).)37 b(They)28 b(no)f(longer)f(use) +i Fi(get)p 2547 1357 V 30 w(shap)l(e)p 2771 1357 V 32 +w(ptr)13 b Fm(\()h(\).)38 b(There's)27 b(no)g(go)r(o)r(d)g(reason)0 +1456 y(for)g(casting)g(p)r(oin)n(ters)g(from)g(one)g(t)n(yp)r(e)h(to)g +(another.)35 b(I)28 b(rather)f(doubt)h(that)f Fi(get)p +2537 1456 V 31 w(shap)l(e)p 2762 1456 V 32 w(ptr)13 b +Fm(\()h(\))28 b(is)f(needed,)h(an)n(yw)n(a)n(y)-7 b(.)p +0 1548 3900 4 v 0 1780 a Fk(1316.)94 b(Get)43 b(Shap)s(e)f(p)s(oin)m +(ter.)95 b Fm([)p Fh(LDF)25 b(2003.05.30.)p Fm(])70 b(This)37 +b(function)h(copies)e(one)h(of)g(the)h(ob)5 b(jects)36 +b(on)h(one)g(of)g(the)0 1880 y(v)n(ectors)i(of)i Fk(Shap)s(e)46 +b Fn(\003)40 b Fm(b)r(elonging)g(to)h(the)g Fk(Solid)t +Fm(,)j(and)d(returns)f(a)g(p)r(oin)n(ter)h(to)f Fk(Shap)s(e)46 +b Fm(that)41 b(p)r(oin)n(ts)g(to)g(the)g(cop)n(y)-7 b(.)0 +1980 y(Curren)n(tly)g(,)26 b(a)h Fk(Solid)k Fm(con)n(tains)26 +b(the)i(v)n(ectors)d Fi(cir)l(cles)12 b Fm(,)28 b Fi(el)t(lipses)12 +b Fm(,)28 b Fi(p)l(aths)11 b Fm(,)28 b Fi(r)l(e)l(ctangles)11 +b Fm(,)27 b(and)g Fi(r)l(e)l(g)p 2986 1980 26 4 v 31 +w(p)l(olygons)12 b Fm(.)37 b(The)27 b(argumen)n(t)0 2079 +y Fi(shap)l(e)p 199 2079 V 32 w(typ)l(e)45 b Fm(indicates)34 +b(whic)n(h)g(v)n(ector)f(should)h(b)r(e)h(accessed.)55 +b(Normally)-7 b(,)35 b(the)g(corresp)r(onding)d Fk(public)39 +b(static)g(const)0 2179 y Fm(data)d(mem)n(b)r(ers)h Ff(CIRCLE)q +Fm(,)i Ff(ELLIPSE)r Fm(,)g Ff(PATH)s Fm(,)g Ff(RECTANGLE)p +Fm(,)h(or)35 b Ff(REG_POLYGON)i Fm(should)f(b)r(e)h(passed)f(as)g(the)i +Fi(shap)l(e)p 3719 2179 V 31 w(typ)l(e)0 2278 y Fm(argumen)n(t,)27 +b(e.g.,)g Fk(Circle)32 b Fn(\003)o Fi(c)p 934 2278 V +31 w(ptr)41 b Fm(=)27 b Fk(static)p 1429 2278 29 5 v 41 w(cast)5 b Fn(h)p Fk(Circle)32 b Fn(\003i)p Fm(\()p -Fi(get)p 2161 2279 26 4 v 31 w(shap)l(e)p 2386 2279 V +Fi(get)p 2161 2278 26 4 v 31 w(shap)l(e)p 2386 2278 V 32 w(ptr)13 b Fm(\()p Fk(Solid)f Fm(::)c Ff(CIRCLE)r -Fe(;)14 b Fm(3\)\).)83 2379 y([)p Fh(LDF)25 b(2003.04.30.)p +Fe(;)14 b Fm(3\)\).)83 2378 y([)p Fh(LDF)25 b(2003.04.30.)p Fm(])61 b(This)28 b(function)g(w)n(as)e(mainly)i(in)n(tended)g(for)f -(use)g(in)h(the)g(functions)g Fi(get)p 3004 2379 V 31 -w(cir)l(cle)p 3226 2379 V 31 w(ptr)13 b Fm(\()i(\),)0 +(use)g(in)h(the)g(functions)g Fi(get)p 3004 2378 V 31 +w(cir)l(cle)p 3226 2378 V 31 w(ptr)13 b Fm(\()i(\),)0 2478 y Fi(get)p 109 2478 V 31 w(el)t(lipse)p 363 2478 V 32 w(ptr)e Fm(\()h(\),)24 b(etc.,)f(and)e(w)n(as)g(not)h(in)n(tended) g(for)f(use)g(in)h(user)f(co)r(de.)35 b(I)22 b(no)n(w)f(doubt)h -(whether)f(this)h(function)g(is)g(needed)0 2578 y(at)27 +(whether)f(this)h(function)g(is)g(needed)0 2577 y(at)27 b(all,)h(esp)r(ecially)f(since)g(it)h(is)g(no)f(longer)f(used)i(in)g (the)g(functions)g(men)n(tioned)f(ab)r(o)n(v)n(e.)p 0 -2677 1643 4 v 1738 2710 a Fk(Begin)k(Log)p 2257 2677 -V 83 2851 a Fm([)p Fh(LDF)25 b(2003.04.11.)p Fm(])61 -b(Added)28 b(this)g(function.)83 2950 y([)p Fh(LDF)d(2003.04.30.)p -Fm(])55 b(No)n(w)21 b(using)g Fi(get)p 1236 2950 26 4 -v 31 w(c)l(opy)13 b Fm(\()h(\))22 b(instead)f(of)g Fk(static)p -2132 2950 29 5 v 41 w(cast)5 b Fn(h)p Fk(const)27 b(Shap)s(e)f +2676 1779 4 v 1874 2708 a Fk(Log)p 2122 2676 V 83 2849 +a Fm([)p Fh(LDF)e(2003.04.11.)p Fm(])61 b(Added)28 b(this)g(function.) +83 2949 y([)p Fh(LDF)d(2003.04.30.)p Fm(])55 b(No)n(w)21 +b(using)g Fi(get)p 1236 2949 26 4 v 31 w(c)l(opy)13 b +Fm(\()h(\))22 b(instead)f(of)g Fk(static)p 2132 2949 +29 5 v 41 w(cast)5 b Fn(h)p Fk(const)27 b(Shap)s(e)f Fn(\003i)p Fm(\()14 b(\).)35 b(The)22 b(w)n(a)n(y)e(it)i(w)n(as)f -(caused)0 3050 y(compilation)27 b(errors)e(under)j(T)-7 -b(ru64)26 b(\(DEC)i(ALPHA\).)83 3149 y([)p Fh(LDF)d(2003.05.30.)p +(caused)0 3048 y(compilation)27 b(errors)e(under)j(T)-7 +b(ru64)26 b(\(DEC)i(ALPHA\).)83 3148 y([)p Fh(LDF)d(2003.05.30.)p Fm(])60 b(Changed)26 b(return)h(v)-5 b(alue)26 b(to)h Fk(Shap)s(e)32 b Fn(\003)26 b Fm(from)g Fk(const)32 b(Shap)s(e)g Fn(\003)o Fm(.)37 b(The)27 b(w)n(a)n(y)e(it)i(w)n(as)f(b)r(efore)h -(caused)0 3249 y(\\Memory)f(fault")i(errors)d(at)j(run-time.)p -0 3341 1678 4 v 1773 3374 a Fk(End)k(Log)p 2222 3341 -V 0 3498 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 -b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3598 y Fk(virtual)33 -b(Shap)s(e)f Fn(\003)p Fi(get)p 830 3598 26 4 v 30 w(shap)l(e)p -1054 3598 V 32 w(ptr)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)i -Fi(shap)l(e)p 2329 3598 V 31 w(typ)l(e)11 b Fe(;)j Fk(const)32 -b(unsigned)g(short)g Fe(s)p Fm(\))c Fk(const)5 b Fm(;)p -eop end -%%Page: 392 392 -TeXDict begin 392 391 bop 0 83 a Fm(392)140 b Fl(GET)24 -b(SHAPE)f(POINTER)2129 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1312)0 -263 y Fk(1312.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k -Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +(caused)0 3248 y(\\Memory)f(fault")i(errors)d(at)j(run-time.)p +0 3340 3900 4 v 0 3497 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k +Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3596 y Fk(virtual)33 b(Shap)s(e)f Fn(\003)p Fi(get)p +830 3596 26 4 v 30 w(shap)l(e)p 1054 3596 V 32 w(ptr)13 +b Fm(\()p Fk(const)33 b(unsigned)e(short)i Fi(shap)l(e)p +2329 3596 V 31 w(typ)l(e)11 b Fe(;)j Fk(const)32 b(unsigned)g(short)g +Fe(s)p Fm(\))c Fk(const)5 b Fm(;)p eop end +%%Page: 396 396 +TeXDict begin 396 395 bop 0 83 a Fm(396)140 b Fl(GET)24 +b(SHAPE)f(POINTER)2129 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1317)0 +263 y Fk(1317.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Shap)s(e)32 b Fn(\003)p Fk(Solid)12 b Fm(::)c Fi(get)p 792 487 26 4 v 31 w(shap)l(e)p 1017 487 V 32 w(ptr)13 b Fm(\()p Fk(const)32 b(unsigned)g(short)g Fi(shap)l(e)p @@ -33716,10 +33704,10 @@ y Fk(if)g Fm(\()p Fe(s)24 b(<)e Fi(r)l(e)l(g)p 636 5394 V 31 w(p)l(olygons)12 b Fe(:)p Fi(size)f Fm(\()j(\)\))42 b Fn(f)p eop end -%%Page: 393 393 -TeXDict begin 393 392 bop 0 83 a Fn(x)p Fm(1312)139 b +%%Page: 397 397 +TeXDict begin 397 396 bop 0 83 a Fn(x)p Fm(1317)139 b Fl(3DLDFPR)n(G)2130 b(GET)24 b(SHAPE)f(POINTER)141 b -Fm(393)332 263 y Fk(return)33 b Fi(r)l(e)l(g)p 738 263 +Fm(397)332 263 y Fk(return)33 b Fi(r)l(e)l(g)p 738 263 26 4 v 31 w(p)l(olygons)12 b Fm([)p Fe(s)p Fm(])1146 288 y Fe(~)1196 263 y Fi(get)p 1305 263 V 31 w(c)l(opy)h Fm(\()h(\);)249 363 y Fn(g)249 462 y Fk(else)45 b Fn(f)332 @@ -33745,50 +33733,48 @@ Fj( )p Ff(\(0\).\\n\\n")21 b Fn(\034)i Fi(\015ush)11 b Fm(;)249 1459 y Fk(return)33 b(static)p 778 1459 29 5 v 41 w(cast)5 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)p -Fm(\(0\);)166 1558 y Fn(g)83 1658 y(g)0 1857 y Fk(1313.)94 -b(Get)32 b(Circle)f(p)s(oin)m(ter.)p 0 1956 1643 4 v -1738 1989 a(Begin)g(Log)p 2257 1956 V 83 2130 a Fm([)p -Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 b(this)g(function.)83 +Fm(\(0\);)166 1558 y Fn(g)83 1658 y(g)0 1857 y Fk(1318.)94 +b(Get)32 b(Circle)f(p)s(oin)m(ter.)p 0 1956 1779 4 v +1874 1988 a(Log)p 2122 1956 V 83 2129 a Fm([)p Fh(LDF)25 +b(2003.04.11.)p Fm(])61 b(Added)28 b(this)g(function.)83 2229 y([)p Fh(LDF)d(2003.04.30.)p Fm(])61 b(Changed)27 b(this)h(function,)g(so)f(that)h(it)g(no)f(longer)g(uses)g Fi(get)p 2610 2229 26 4 v 30 w(shap)l(e)p 2834 2229 V -32 w(ptr)13 b Fm(\()h(\).)p 0 2321 1678 4 v 1773 2354 -a Fk(End)32 b(Log)p 2222 2321 V 0 2478 a Fn(h)14 b Fm(Declare)27 -b Fk(Solid)k Fm(functions)36 b Fl(1294)15 b Fn(i)23 b -Fm(+)p Fn(\021)83 2578 y Fk(virtual)33 b(const)f(Circle)g -Fn(\003)p Fi(get)p 1076 2578 26 4 v 30 w(cir)l(cle)p -1297 2578 V 32 w(ptr)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)h -Fe(s)p Fm(\))c Fk(const)5 b Fm(;)0 2777 y Fk(1314.)0 -2902 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3001 y Fk(const)32 +32 w(ptr)13 b Fm(\()h(\).)p 0 2320 3900 4 v 0 2478 a +Fn(h)g Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1299)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 2577 y Fk(virtual)33 b(const)f(Circle)g +Fn(\003)p Fi(get)p 1076 2577 26 4 v 30 w(cir)l(cle)p +1297 2577 V 32 w(ptr)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)h +Fe(s)p Fm(\))c Fk(const)5 b Fm(;)0 2777 y Fk(1319.)0 +2901 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3001 y Fk(const)32 b(Circle)g Fn(\003)p Fk(Solid)12 b Fm(::)c Fi(get)p 1038 3001 V 31 w(cir)l(cle)p 1260 3001 V 31 w(ptr)14 b Fm(\()p Fk(const)32 b(unsigned)g(short)g Fe(s)p Fm(\))c Fk(const)83 -3101 y Fn(f)166 3201 y Fk(if)41 b Fm(\()p Fi(cir)l(cles)13 +3100 y Fn(f)166 3200 y Fk(if)41 b Fm(\()p Fi(cir)l(cles)13 b Fe(:)p Fi(size)e Fm(\()j(\))23 b Fe(>)g(s)p Fm(\))41 b Fn(f)249 3300 y Fk(return)33 b Fi(cir)l(cles)12 b Fm([)p -Fe(s)p Fm(];)166 3400 y Fn(g)166 3499 y Fk(else)45 b -Fn(f)249 3599 y Fk(return)33 b(static)p 778 3599 29 5 +Fe(s)p Fm(];)166 3399 y Fn(g)166 3499 y Fk(else)45 b +Fn(f)249 3598 y Fk(return)33 b(static)p 778 3598 29 5 v 41 w(cast)5 b Fn(h)p Fk(const)33 b(Circle)f Fn(\003)o(i)p -Fm(\(0\);)166 3699 y Fn(g)83 3798 y(g)0 3998 y Fk(1315.)94 -b(Get)32 b(Ellipse)d(p)s(oin)m(ter.)p 0 4097 1643 4 v -1738 4130 a(Begin)i(Log)p 2257 4097 V 83 4270 a Fm([)p -Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 b(this)g(function.)83 -4370 y([)p Fh(LDF)d(2003.04.30.)p Fm(])61 b(Changed)27 -b(this)h(function,)g(so)f(that)h(it)g(no)f(longer)g(uses)g -Fi(get)p 2610 4370 26 4 v 30 w(shap)l(e)p 2834 4370 V -32 w(ptr)13 b Fm(\()h(\).)p 0 4462 1678 4 v 1773 4494 -a Fk(End)32 b(Log)p 2222 4462 V 0 4619 a Fn(h)14 b Fm(Declare)27 -b Fk(Solid)k Fm(functions)36 b Fl(1294)15 b Fn(i)23 b -Fm(+)p Fn(\021)83 4719 y Fk(virtual)33 b(const)f(Ellipse)e -Fn(\003)p Fi(get)p 1105 4719 26 4 v 30 w(el)t(lipse)p -1358 4719 V 33 w(ptr)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)h -Fe(s)p Fm(\))c Fk(const)5 b Fm(;)p eop end -%%Page: 394 394 -TeXDict begin 394 393 bop 0 83 a Fm(394)140 b Fl(GET)24 +Fm(\(0\);)166 3698 y Fn(g)83 3798 y(g)0 3997 y Fk(1320.)94 +b(Get)32 b(Ellipse)d(p)s(oin)m(ter.)p 0 4096 1779 4 v +1874 4128 a(Log)p 2122 4096 V 83 4269 a Fm([)p Fh(LDF)c(2003.04.11.)p +Fm(])61 b(Added)28 b(this)g(function.)83 4368 y([)p Fh(LDF)d +(2003.04.30.)p Fm(])61 b(Changed)27 b(this)h(function,)g(so)f(that)h +(it)g(no)f(longer)g(uses)g Fi(get)p 2610 4368 26 4 v +30 w(shap)l(e)p 2834 4368 V 32 w(ptr)13 b Fm(\()h(\).)p +0 4460 3900 4 v 0 4618 a Fn(h)g Fm(Declare)27 b Fk(Solid)k +Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4717 y Fk(virtual)33 b(const)f(Ellipse)e Fn(\003)p Fi(get)p +1105 4717 26 4 v 30 w(el)t(lipse)p 1358 4717 V 33 w(ptr)13 +b Fm(\()p Fk(const)33 b(unsigned)e(short)h Fe(s)p Fm(\))c +Fk(const)5 b Fm(;)p eop end +%%Page: 398 398 +TeXDict begin 398 397 bop 0 83 a Fm(398)140 b Fl(GET)24 b Fk(ELLIPSE)g Fl(POINTER)1975 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(1316)0 263 y Fk(1316.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Solid)k Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p +Fm(1321)0 263 y Fk(1321.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Solid)k Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(const)32 b(Ellipse)f Fn(\003)o Fk(Solid)12 b Fm(::)c Fi(get)p 1067 487 26 4 v 31 w(el)t(lipse)p 1321 487 V 33 w(ptr)13 b Fm(\()p Fk(const)32 b(unsigned)g(short)g @@ -33799,49 +33785,48 @@ 985 y Fk(else)45 b Fn(f)249 1085 y Fk(return)33 b(static)p 778 1085 29 5 v 41 w(cast)5 b Fn(h)p Fk(const)33 b(Ellipse)d Fn(\003)o(i)p Fm(\(0\);)166 1185 y Fn(g)83 1284 y(g)0 -1483 y Fk(1317.)94 b(Get)32 b(P)m(ath)h(p)s(oin)m(ter.)p -0 1583 1643 4 v 1738 1615 a(Begin)e(Log)p 2257 1583 V -83 1756 a Fm([)p Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 -b(this)g(function.)83 1856 y([)p Fh(LDF)d(2003.04.30.)p +1483 y Fk(1322.)94 b(Get)32 b(P)m(ath)h(p)s(oin)m(ter.)p +0 1582 1779 4 v 1874 1615 a(Log)p 2122 1582 V 83 1755 +a Fm([)p Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 +b(this)g(function.)83 1855 y([)p Fh(LDF)d(2003.04.30.)p Fm(])61 b(Changed)27 b(this)h(function,)g(so)f(that)h(it)g(no)f(longer) -g(uses)g Fi(get)p 2610 1856 26 4 v 30 w(shap)l(e)p 2834 -1856 V 32 w(ptr)13 b Fm(\()h(\).)p 0 1948 1678 4 v 1773 -1980 a Fk(End)32 b(Log)p 2222 1948 V 0 2105 a Fn(h)14 -b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1294)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2204 y Fk(virtual)33 b(const)f(P)m(ath)i -Fn(\003)o Fi(get)p 1027 2204 26 4 v 31 w(p)l(ath)p 1208 -2204 V 31 w(ptr)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)i -Fe(s)p Fm(\))28 b Fk(const)t Fm(;)0 2404 y Fk(1318.)0 -2528 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2628 y Fk(const)32 -b(P)m(ath)i Fn(\003)p Fk(Solid)12 b Fm(::)c Fi(get)p -990 2628 V 31 w(p)l(ath)p 1171 2628 V 31 w(ptr)13 b Fm(\()p -Fk(const)33 b(unsigned)e(short)h Fe(s)p Fm(\))c Fk(const)83 -2727 y Fn(f)166 2827 y Fk(if)41 b Fm(\()p Fi(p)l(aths)12 -b Fe(:)p Fi(size)f Fm(\()j(\))24 b Fe(>)e(s)p Fm(\))42 -b Fn(f)249 2927 y Fk(return)33 b Fi(p)l(aths)12 b Fm([)p -Fe(s)p Fm(];)166 3026 y Fn(g)166 3126 y Fk(else)45 b -Fn(f)249 3226 y Fk(return)33 b(static)p 778 3226 29 5 -v 41 w(cast)5 b Fn(h)p Fk(const)33 b(P)m(ath)g Fn(\003i)p -Fm(\(0\);)166 3325 y Fn(g)83 3425 y(g)0 3624 y Fk(1319.)94 -b(Get)32 b(Rectangle)f(p)s(oin)m(ter.)p 0 3723 1643 4 -v 1738 3756 a(Begin)g(Log)p 2257 3723 V 83 3897 a Fm([)p -Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 b(this)g(function.)83 -3996 y([)p Fh(LDF)d(2003.04.30.)p Fm(])61 b(Changed)27 -b(this)h(function,)g(so)f(that)h(it)g(no)f(longer)g(uses)g -Fi(get)p 2610 3996 26 4 v 30 w(shap)l(e)p 2834 3996 V -32 w(ptr)13 b Fm(\()h(\).)p 0 4088 1678 4 v 1773 4121 -a Fk(End)32 b(Log)p 2222 4088 V 0 4245 a Fn(h)14 b Fm(Declare)27 -b Fk(Solid)k Fm(functions)36 b Fl(1294)15 b Fn(i)23 b -Fm(+)p Fn(\021)83 4345 y Fk(virtual)33 b(const)f(Rectangle)g -Fn(\003)p Fi(get)p 1241 4345 26 4 v 30 w(r)l(e)l(ctangle)p -1588 4345 V 31 w(ptr)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)h -Fe(s)p Fm(\))c Fk(const)5 b Fm(;)p eop end -%%Page: 395 395 -TeXDict begin 395 394 bop 0 83 a Fn(x)p Fm(1320)139 b +g(uses)g Fi(get)p 2610 1855 26 4 v 30 w(shap)l(e)p 2834 +1855 V 32 w(ptr)13 b Fm(\()h(\).)p 0 1947 3900 4 v 0 +2104 a Fn(h)g Fm(Declare)27 b Fk(Solid)k Fm(functions)36 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2204 y Fk(virtual)33 +b(const)f(P)m(ath)i Fn(\003)o Fi(get)p 1027 2204 26 4 +v 31 w(p)l(ath)p 1208 2204 V 31 w(ptr)13 b Fm(\()p Fk(const)33 +b(unsigned)e(short)i Fe(s)p Fm(\))28 b Fk(const)t Fm(;)0 +2403 y Fk(1323.)0 2527 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2627 y Fk(const)32 b(P)m(ath)i Fn(\003)p Fk(Solid)12 +b Fm(::)c Fi(get)p 990 2627 V 31 w(p)l(ath)p 1171 2627 +V 31 w(ptr)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)h +Fe(s)p Fm(\))c Fk(const)83 2727 y Fn(f)166 2826 y Fk(if)41 +b Fm(\()p Fi(p)l(aths)12 b Fe(:)p Fi(size)f Fm(\()j(\))24 +b Fe(>)e(s)p Fm(\))42 b Fn(f)249 2926 y Fk(return)33 +b Fi(p)l(aths)12 b Fm([)p Fe(s)p Fm(];)166 3026 y Fn(g)166 +3125 y Fk(else)45 b Fn(f)249 3225 y Fk(return)33 b(static)p +778 3225 29 5 v 41 w(cast)5 b Fn(h)p Fk(const)33 b(P)m(ath)g +Fn(\003i)p Fm(\(0\);)166 3324 y Fn(g)83 3424 y(g)0 3623 +y Fk(1324.)94 b(Get)32 b(Rectangle)f(p)s(oin)m(ter.)p +0 3722 1779 4 v 1874 3755 a(Log)p 2122 3722 V 83 3895 +a Fm([)p Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 +b(this)g(function.)83 3995 y([)p Fh(LDF)d(2003.04.30.)p +Fm(])61 b(Changed)27 b(this)h(function,)g(so)f(that)h(it)g(no)f(longer) +g(uses)g Fi(get)p 2610 3995 26 4 v 30 w(shap)l(e)p 2834 +3995 V 32 w(ptr)13 b Fm(\()h(\).)p 0 4087 3900 4 v 0 +4244 a Fn(h)g Fm(Declare)27 b Fk(Solid)k Fm(functions)36 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4344 y Fk(virtual)33 +b(const)f(Rectangle)g Fn(\003)p Fi(get)p 1241 4344 26 +4 v 30 w(r)l(e)l(ctangle)p 1588 4344 V 31 w(ptr)13 b +Fm(\()p Fk(const)33 b(unsigned)e(short)h Fe(s)p Fm(\))c +Fk(const)5 b Fm(;)p eop end +%%Page: 399 399 +TeXDict begin 399 398 bop 0 83 a Fn(x)p Fm(1325)139 b Fl(3DLDFPR)n(G)1767 b(GET)24 b Fk(RECT)-8 b(ANGLE)23 -b Fl(POINTER)141 b Fm(395)0 263 y Fk(1320.)0 388 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1295)15 +b Fl(POINTER)141 b Fm(399)0 263 y Fk(1325.)0 388 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(const)32 b(Rectangle)g Fn(\003)p Fk(Solid)12 b Fm(::)c Fi(get)p 1203 487 26 4 v 31 w(r)l(e)l(ctangle)p 1551 487 V 30 w(ptr)14 b Fm(\()p @@ -33852,47 +33837,46 @@ b Fm([)p Fe(s)p Fm(];)166 886 y Fn(g)166 985 y Fk(else)45 b Fn(f)249 1085 y Fk(return)33 b(static)p 778 1085 29 5 v 41 w(cast)5 b Fn(h)p Fk(const)33 b(Rectangle)e Fn(\003i)p -Fm(\(0\);)166 1185 y Fn(g)83 1284 y(g)0 1483 y Fk(1321.)94 +Fm(\(0\);)166 1185 y Fn(g)83 1284 y(g)0 1483 y Fk(1326.)94 b(Get)32 b(Reg)p 671 1483 29 4 v 33 w(P)m(olygon)g(p)s(oin)m(ter.)p -0 1583 1643 4 v 1738 1615 a(Begin)f(Log)p 2257 1583 V -83 1756 a Fm([)p Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 -b(this)g(function.)83 1856 y([)p Fh(LDF)d(2003.04.30.)p +0 1582 1779 4 v 1874 1615 a(Log)p 2122 1582 V 83 1755 +a Fm([)p Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 +b(this)g(function.)83 1855 y([)p Fh(LDF)d(2003.04.30.)p Fm(])61 b(Changed)27 b(this)h(function,)g(so)f(that)h(it)g(no)f(longer) -g(uses)g Fi(get)p 2610 1856 26 4 v 30 w(shap)l(e)p 2834 -1856 V 32 w(ptr)13 b Fm(\()h(\).)p 0 1948 1678 4 v 1773 -1980 a Fk(End)32 b(Log)p 2222 1948 V 0 2105 a Fn(h)14 -b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1294)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2204 y Fk(virtual)33 b(const)f(Reg)p -813 2204 29 5 v 39 w(P)m(olygon)h Fn(\003)o Fi(get)p -1367 2204 26 4 v 31 w(r)l(e)l(g)p 1501 2204 V 30 w(p)l(olygon)p -1799 2204 V 32 w(ptr)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)i -Fe(s)p Fm(\))28 b Fk(const)t Fm(;)0 2404 y Fk(1322.)0 -2528 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2628 y Fk(const)32 -b(Reg)p 501 2628 29 5 v 40 w(P)m(olygon)g Fn(\003)o Fk(Solid)12 -b Fm(::)c Fi(get)p 1329 2628 26 4 v 31 w(r)l(e)l(g)p -1463 2628 V 31 w(p)l(olygon)p 1762 2628 V 32 w(ptr)13 -b Fm(\()p Fk(const)33 b(unsigned)e(short)h Fe(s)p Fm(\))c -Fk(const)83 2727 y Fn(f)166 2827 y Fk(if)41 b Fm(\()p -Fi(r)l(e)l(g)p 403 2827 V 31 w(p)l(olygons)12 b Fe(:)p -Fi(size)g Fm(\()i(\))23 b Fe(>)g(s)p Fm(\))41 b Fn(f)249 -2927 y Fk(return)33 b Fi(r)l(e)l(g)p 655 2927 V 31 w(p)l(olygons)12 -b Fm([)p Fe(s)p Fm(];)166 3026 y Fn(g)166 3126 y Fk(else)45 -b Fn(f)249 3226 y Fk(return)33 b(static)p 778 3226 29 -5 v 41 w(cast)5 b Fn(h)p Fk(const)33 b(Reg)p 1434 3226 -V 39 w(P)m(olygon)f Fn(\003i)p Fm(\(0\);)166 3325 y Fn(g)83 -3425 y(g)0 3624 y Fk(1323.)94 b(Getting)41 b(Shap)s(e)h(cen)m(ters.)96 -b Fm([)p Fh(LDF)25 b(2003.04.30.)p Fm(])69 b(TO)36 b(DO:)h(I)f(think)h -(it)g(migh)n(t)f(b)r(e)h(p)r(ossible)f(to)g(co)r(de)h(the)0 -3724 y(functions)28 b(in)g(this)g(section)f(more)g(succinctly)-7 -b(.)p 0 3823 1643 4 v 1738 3856 a Fk(Begin)31 b(Log)p -2257 3823 V 83 3996 a Fm([)p Fh(LDF)25 b(2003.04.11.)p -Fm(])61 b(Added)28 b(this)g(section.)p 0 4088 1678 4 -v 1773 4121 a Fk(End)k(Log)p 2222 4088 V eop end -%%Page: 396 396 -TeXDict begin 396 395 bop 0 83 a Fm(396)140 b Fl(GET)24 -b(SHAPE)f(CENTER)2158 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1324)0 -263 y Fk(1324.)94 b(Get)43 b(Shap)s(e)g(cen)m(ter.)96 +g(uses)g Fi(get)p 2610 1855 26 4 v 30 w(shap)l(e)p 2834 +1855 V 32 w(ptr)13 b Fm(\()h(\).)p 0 1947 3900 4 v 0 +2104 a Fn(h)g Fm(Declare)27 b Fk(Solid)k Fm(functions)36 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2204 y Fk(virtual)33 +b(const)f(Reg)p 813 2204 29 5 v 39 w(P)m(olygon)h Fn(\003)o +Fi(get)p 1367 2204 26 4 v 31 w(r)l(e)l(g)p 1501 2204 +V 30 w(p)l(olygon)p 1799 2204 V 32 w(ptr)13 b Fm(\()p +Fk(const)33 b(unsigned)e(short)i Fe(s)p Fm(\))28 b Fk(const)t +Fm(;)0 2403 y Fk(1327.)0 2527 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Solid)k Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p +Fn(\021)83 2627 y Fk(const)32 b(Reg)p 501 2627 29 5 v +40 w(P)m(olygon)g Fn(\003)o Fk(Solid)12 b Fm(::)c Fi(get)p +1329 2627 26 4 v 31 w(r)l(e)l(g)p 1463 2627 V 31 w(p)l(olygon)p +1762 2627 V 32 w(ptr)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)h +Fe(s)p Fm(\))c Fk(const)83 2727 y Fn(f)166 2826 y Fk(if)41 +b Fm(\()p Fi(r)l(e)l(g)p 403 2826 V 31 w(p)l(olygons)12 +b Fe(:)p Fi(size)g Fm(\()i(\))23 b Fe(>)g(s)p Fm(\))41 +b Fn(f)249 2926 y Fk(return)33 b Fi(r)l(e)l(g)p 655 2926 +V 31 w(p)l(olygons)12 b Fm([)p Fe(s)p Fm(];)166 3026 +y Fn(g)166 3125 y Fk(else)45 b Fn(f)249 3225 y Fk(return)33 +b(static)p 778 3225 29 5 v 41 w(cast)5 b Fn(h)p Fk(const)33 +b(Reg)p 1434 3225 V 39 w(P)m(olygon)f Fn(\003i)p Fm(\(0\);)166 +3324 y Fn(g)83 3424 y(g)0 3623 y Fk(1328.)94 b(Getting)41 +b(Shap)s(e)h(cen)m(ters.)96 b Fm([)p Fh(LDF)25 b(2003.04.30.)p +Fm(])69 b(TO)36 b(DO:)h(I)f(think)h(it)g(migh)n(t)f(b)r(e)h(p)r +(ossible)f(to)g(co)r(de)h(the)0 3723 y(functions)28 b(in)g(this)g +(section)f(more)g(succinctly)-7 b(.)p 0 3822 1779 4 v +1874 3854 a Fk(Log)p 2122 3822 V 83 3995 a Fm([)p Fh(LDF)25 +b(2003.04.11.)p Fm(])61 b(Added)28 b(this)g(section.)p +0 4087 3900 4 v eop end +%%Page: 400 400 +TeXDict begin 400 399 bop 0 83 a Fm(400)140 b Fl(GET)24 +b(SHAPE)f(CENTER)2158 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1329)0 +263 y Fk(1329.)94 b(Get)43 b(Shap)s(e)g(cen)m(ter.)96 b Fm(This)38 b(function)g(returns)f(the)h(cen)n(ter)f(of)g(the)h Fk(Circle)5 b Fm(,)40 b Fk(Ellipse)r Fm(,)h Fk(Rectangle)t Fm(,)f(or)0 363 y Fk(Reg)p 168 363 29 5 v 39 w(P)m(olygon)g @@ -33912,8 +33896,8 @@ (function)f(will)h(ha)n(v)n(e)d(to)i(b)r(e)h(c)n(hanged,)f(if)g(new)g (v)n(ectors)f(of)h Fk(Shap)s(e)35 b Fm(p)r(oin)n(ters)29 b(are)h(added)g(to)g Fk(class)0 861 y(Solid)t Fm(!)p -0 937 1643 4 v 1738 969 a Fk(Begin)h(Log)p 2257 937 V -83 1110 a Fm([)p Fh(LDF)25 b(2002.10.16.)p Fm(])61 b(Added)28 +0 937 1779 4 v 1874 969 a Fk(Log)p 2122 937 V 83 1110 +a Fm([)p Fh(LDF)25 b(2002.10.16.)p Fm(])61 b(Added)28 b(this)g(function.)83 1209 y([)p Fh(LDF)d(2003.04.09.)p Fm(])61 b(Mo)n(v)n(ed)27 b(this)h(function)g(from)f Fk(P)m(olyhedron)33 b Fm(to)27 b Fk(Solid)t Fm(.)83 1309 y([)p Fh(LDF)e(2003.04.11.)p @@ -33929,20 +33913,19 @@ 1608 y([)p Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Changed)27 b(the)h Fi(shap)l(e)p 1427 1608 26 4 v 32 w(typ)l(e)38 b Fm(argumen)n(t)27 b(from)g Fk(c)m(har)34 b Fm(to)27 -b Fk(const)33 b(unsigned)e(short)5 b Fm(.)p 0 1700 1678 -4 v 1773 1733 a Fk(End)32 b(Log)p 2222 1700 V 0 1857 -a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 -b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1957 y Fk(virtual)33 +b Fk(const)33 b(unsigned)e(short)5 b Fm(.)p 0 1700 3900 +4 v 0 1857 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1957 y Fk(virtual)33 b(const)g(P)m(oin)m(t)g Fm(&)p Fi(get)p 1077 1957 26 4 v 30 w(shap)l(e)p 1301 1957 V 32 w(c)l(enter)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)i Fi(shap)l(e)p 2691 1957 V 32 w(typ)l(e)11 b Fe(;)j Fk(const)32 b(unsigned)g(short)h Fe(s)o Fm(\))249 2056 y Fk(const)5 b Fm(;)p eop end -%%Page: 397 397 -TeXDict begin 397 396 bop 0 83 a Fn(x)p Fm(1325)139 b -Fl(3DLDFPR)n(G)2159 b(GET)24 b(SHAPE)g(CENTER)140 b Fm(397)0 -263 y Fk(1325.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k -Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 401 401 +TeXDict begin 401 400 bop 0 83 a Fn(x)p Fm(1330)139 b +Fl(3DLDFPR)n(G)2159 b(GET)24 b(SHAPE)g(CENTER)140 b Fm(401)0 +263 y Fk(1330.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(const)33 b(P)m(oin)m(t)h Fm(&)p Fk(Solid)12 b Fm(::)c Fi(get)p 1040 487 26 4 v 31 w(shap)l(e)p 1265 487 V 31 w(c)l(enter)13 b Fm(\()p Fk(const)34 b(unsigned)e(short)h @@ -34023,20 +34006,19 @@ Fj( )p Ff(INVAL)o(ID_)o(P)-6 b(OINT.\\n\\n")23 b Fn(\034)g Fi(\015ush)11 b Fm(;)249 4771 y Fk(return)33 b Ff(INVALID_POINT)o Fm(;)166 4871 y Fn(g)83 4970 y(g)p eop end -%%Page: 398 398 -TeXDict begin 398 397 bop 0 83 a Fm(398)140 b Fl(GET)24 +%%Page: 402 402 +TeXDict begin 402 401 bop 0 83 a Fm(402)140 b Fl(GET)24 b(CIR)n(CLE)f(CENTER)2130 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(1326)0 263 y Fk(1326.)94 b(Get)32 b(Circle)f(cen)m(ter.)p -0 339 1643 4 v 1738 371 a(Begin)g(Log)p 2257 339 V 83 -512 a Fm([)p Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 604 1678 4 v 1773 637 a Fk(End)k(Log)p -2222 604 V 0 761 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k -Fm(functions)36 b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +Fm(1331)0 263 y Fk(1331.)94 b(Get)32 b(Circle)f(cen)m(ter.)p +0 339 1779 4 v 1874 371 a(Log)p 2122 339 V 83 512 a Fm([)p +Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 604 3900 4 v 0 761 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k +Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 861 y Fk(virtual)33 b(const)f(P)m(oin)m(t)h Fm(&)p Fi(get)p 1076 861 26 4 v 30 w(cir)l(cle)p 1297 861 V 32 w(c)l(enter)13 b Fm(\()p Fk(const)32 b(unsigned)g(short)g Fe(s)p Fm(\))c -Fk(const)5 b Fm(;)0 1060 y Fk(1327.)0 1185 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1295)15 +Fk(const)5 b Fm(;)0 1060 y Fk(1332.)0 1185 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1284 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fk(Solid)12 b Fm(::)c Fi(get)p 1038 1284 V 31 w(cir)l(cle)p 1260 1284 V 31 w(c)l(enter)13 b Fm(\()p @@ -34044,96 +34026,93 @@ 1384 y Fn(f)166 1483 y Fk(return)33 b Fi(get)p 573 1483 V 31 w(shap)l(e)p 798 1483 V 31 w(c)l(enter)13 b Fm(\()p Ff(CIRCLE)r Fe(;)h(s)p Fm(\);)83 1583 y Fn(g)0 1782 y -Fk(1328.)94 b(Get)32 b(Ellipse)d(cen)m(ter.)p 0 1882 -1643 4 v 1738 1914 a(Begin)i(Log)p 2257 1882 V 83 2055 -a Fm([)p Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 2147 1678 4 v 1773 2179 a Fk(End)k(Log)p -2222 2147 V 0 2304 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k -Fm(functions)36 b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2404 y Fk(virtual)33 b(const)f(P)m(oin)m(t)h Fm(&)p Fi(get)p -1076 2404 26 4 v 30 w(el)t(lipse)p 1329 2404 V 33 w(c)l(enter)12 +Fk(1333.)94 b(Get)32 b(Ellipse)d(cen)m(ter.)p 0 1881 +1779 4 v 1874 1914 a(Log)p 2122 1881 V 83 2054 a Fm([)p +Fh(LDF)c(2003.04.11.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 2146 3900 4 v 0 2303 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k +Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2403 y Fk(virtual)33 b(const)f(P)m(oin)m(t)h Fm(&)p Fi(get)p +1076 2403 26 4 v 30 w(el)t(lipse)p 1329 2403 V 33 w(c)l(enter)12 b Fm(\()p Fk(const)33 b(unsigned)e(short)i Fe(s)p Fm(\))28 -b Fk(const)t Fm(;)0 2603 y Fk(1329.)0 2727 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1295)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2827 y Fk(const)32 b(P)m(oin)m(t)h -Fm(&)p Fk(Solid)12 b Fm(::)c Fi(get)p 1038 2827 V 31 -w(el)t(lipse)p 1292 2827 V 32 w(c)l(enter)13 b Fm(\()p +b Fk(const)t Fm(;)0 2602 y Fk(1334.)0 2727 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1300)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 2826 y Fk(const)32 b(P)m(oin)m(t)h +Fm(&)p Fk(Solid)12 b Fm(::)c Fi(get)p 1038 2826 V 31 +w(el)t(lipse)p 1292 2826 V 32 w(c)l(enter)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)h Fe(s)p Fm(\))c Fk(const)83 -2927 y Fn(f)166 3026 y Fk(return)33 b Fi(get)p 573 3026 +2926 y Fn(f)166 3026 y Fk(return)33 b Fi(get)p 573 3026 V 31 w(shap)l(e)p 798 3026 V 31 w(c)l(enter)13 b Fm(\()p -Ff(ELLIPSE)r Fe(;)h(s)p Fm(\);)83 3126 y Fn(g)0 3325 -y Fk(1330.)94 b(Get)32 b(Rectangle)f(cen)m(ter.)p 0 3424 -1643 4 v 1738 3457 a(Begin)g(Log)p 2257 3424 V 83 3598 -a Fm([)p Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 3690 1678 4 v 1773 3722 a Fk(End)k(Log)p -2222 3690 V 0 3847 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k -Fm(functions)36 b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3946 y Fk(virtual)33 b(const)f(P)m(oin)m(t)h Fm(&)p Fi(get)p -1076 3946 26 4 v 30 w(r)l(e)l(ctangle)p 1423 3946 V 31 +Ff(ELLIPSE)r Fe(;)h(s)p Fm(\);)83 3125 y Fn(g)0 3324 +y Fk(1335.)94 b(Get)32 b(Rectangle)f(cen)m(ter.)p 0 3423 +1779 4 v 1874 3456 a(Log)p 2122 3423 V 83 3596 a Fm([)p +Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 3688 3900 4 v 0 3845 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k +Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3945 y Fk(virtual)33 b(const)f(P)m(oin)m(t)h Fm(&)p Fi(get)p +1076 3945 26 4 v 30 w(r)l(e)l(ctangle)p 1423 3945 V 31 w(c)l(enter)13 b Fm(\()p Fk(const)32 b(unsigned)g(short)g -Fe(s)p Fm(\))c Fk(const)5 b Fm(;)0 4146 y Fk(1331.)0 -4270 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4370 y Fk(const)32 +Fe(s)p Fm(\))c Fk(const)5 b Fm(;)0 4144 y Fk(1336.)0 +4269 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4368 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fk(Solid)12 b Fm(::)c Fi(get)p -1038 4370 V 31 w(r)l(e)l(ctangle)p 1386 4370 V 30 w(c)l(enter)13 +1038 4368 V 31 w(r)l(e)l(ctangle)p 1386 4368 V 30 w(c)l(enter)13 b Fm(\()p Fk(const)33 b(unsigned)e(short)i Fe(s)p Fm(\))28 -b Fk(const)83 4469 y Fn(f)166 4569 y Fk(return)33 b Fi(get)p -573 4569 V 31 w(shap)l(e)p 798 4569 V 31 w(c)l(enter)13 -b Fm(\()p Ff(RECTANGLE)q Fe(;)h(s)p Fm(\);)83 4669 y +b Fk(const)83 4468 y Fn(f)166 4568 y Fk(return)33 b Fi(get)p +573 4568 V 31 w(shap)l(e)p 798 4568 V 31 w(c)l(enter)13 +b Fm(\()p Ff(RECTANGLE)q Fe(;)h(s)p Fm(\);)83 4667 y Fn(g)p eop end -%%Page: 399 399 -TeXDict begin 399 398 bop 0 83 a Fn(x)p Fm(1332)139 b +%%Page: 403 403 +TeXDict begin 403 402 bop 0 83 a Fn(x)p Fm(1337)139 b Fl(3DLDFPR)n(G)1676 b(GET)24 b Fk(REG)p 2800 83 29 4 -v 34 w(POL)-8 b(YGON)24 b Fl(CENTER)140 b Fm(399)0 263 -y Fk(1332.)94 b(Get)32 b(Reg)p 671 263 V 33 w(P)m(olygon)g(cen)m(ter.)p -0 362 1643 4 v 1738 395 a(Begin)f(Log)p 2257 362 V 83 -536 a Fm([)p Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 628 1678 4 v 1773 660 a Fk(End)k(Log)p -2222 628 V 0 785 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k -Fm(functions)36 b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +v 34 w(POL)-8 b(YGON)24 b Fl(CENTER)140 b Fm(403)0 263 +y Fk(1337.)94 b(Get)32 b(Reg)p 671 263 V 33 w(P)m(olygon)g(cen)m(ter.)p +0 362 1779 4 v 1874 394 a(Log)p 2122 362 V 83 535 a Fm([)p +Fh(LDF)25 b(2003.04.11.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 627 3900 4 v 0 784 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k +Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 884 y Fk(virtual)33 b(const)f(P)m(oin)m(t)h Fm(&)p Fi(get)p 1076 884 26 4 v 30 w(r)l(e)l(g)p 1209 884 V 31 w(p)l(olygon)p 1508 884 V 32 w(c)l(enter)12 b Fm(\()p Fk(const)33 b(unsigned)e(short)i -Fe(s)p Fm(\))28 b Fk(const)t Fm(;)0 1084 y Fk(1333.)0 -1208 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1308 y Fk(const)32 +Fe(s)p Fm(\))28 b Fk(const)t Fm(;)0 1083 y Fk(1338.)0 +1207 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1307 y Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fk(Solid)12 b Fm(::)c Fi(get)p -1038 1308 V 31 w(r)l(e)l(g)p 1172 1308 V 30 w(p)l(olygon)p -1470 1308 V 32 w(c)l(enter)13 b Fm(\()p Fk(const)33 b(unsigned)e(short) -h Fe(s)p Fm(\))c Fk(const)83 1407 y Fn(f)166 1507 y Fk(return)33 -b Fi(get)p 573 1507 V 31 w(shap)l(e)p 798 1507 V 31 w(c)l(enter)13 -b Fm(\()p Ff(REG_POLYGON)p Fe(;)h(s)p Fm(\);)83 1607 -y Fn(g)0 1806 y Fk(1334.)94 b(Is)32 b(on)f(free)h(store.)0 +1038 1307 V 31 w(r)l(e)l(g)p 1172 1307 V 30 w(p)l(olygon)p +1470 1307 V 32 w(c)l(enter)13 b Fm(\()p Fk(const)33 b(unsigned)e(short) +h Fe(s)p Fm(\))c Fk(const)83 1407 y Fn(f)166 1506 y Fk(return)33 +b Fi(get)p 573 1506 V 31 w(shap)l(e)p 798 1506 V 31 w(c)l(enter)13 +b Fm(\()p Ff(REG_POLYGON)p Fe(;)h(s)p Fm(\);)83 1606 +y Fn(g)0 1805 y Fk(1339.)94 b(Is)32 b(on)f(free)h(store.)0 1930 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 -b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2030 y Fk(virtual)33 -b(b)s(o)s(ol)e Fi(is)p 672 2030 V 31 w(on)p 792 2030 -V 30 w(fr)l(e)l(e)p 950 2030 V 31 w(stor)l(e)11 b Fm(\()j(\))28 -b Fk(const)t Fm(;)0 2229 y Fk(1335.)0 2354 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1295)15 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2029 y Fk(virtual)33 +b(b)s(o)s(ol)e Fi(is)p 672 2029 V 31 w(on)p 792 2029 +V 30 w(fr)l(e)l(e)p 950 2029 V 31 w(stor)l(e)11 b Fm(\()j(\))28 +b Fk(const)t Fm(;)0 2229 y Fk(1340.)0 2353 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2453 y Fk(b)s(o)s(ol)31 b(Solid)12 b Fm(::)c Fi(is)p 634 2453 V 31 w(on)p 754 2453 V 31 w(fr)l(e)l(e)p 913 2453 V 31 w(stor)l(e)i Fm(\()k(\))28 -b Fk(const)83 2553 y Fn(f)166 2653 y Fk(b)s(o)s(ol)j +b Fk(const)83 2552 y Fn(f)166 2652 y Fk(b)s(o)s(ol)j Fe(b)23 b Fm(=)f Fi(true)10 b Fm(;)166 2777 y Fk(return)33 -b Fe(b)p Fm(;)83 2877 y Fn(g)0 3076 y Fk(1336.)94 b(Sho)m(w.)0 -3201 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 -b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3300 y Fk(virtual)35 +b Fe(b)p Fm(;)83 2876 y Fn(g)0 3075 y Fk(1341.)94 b(Sho)m(w.)0 +3200 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3300 y Fk(virtual)35 b(v)m(oid)g Fi(show)14 b Fm(\()p Fk(string)36 b Fi(text)i Fm(=)26 b Ff("")t Fe(;)14 b Fk(c)m(har)36 b Fi(c)l(o)l(or)l(ds)j Fm(=)26 b Ff('w')s Fe(;)14 b Fk(const)35 b(b)s(o)s(ol)e Fi(do)p 2788 3300 V 32 w(p)l(ersp)k Fm(=)26 b Fi(true)10 -b Fe(;)k Fk(const)35 b(b)s(o)s(ol)249 3400 y Fi(do)p -338 3400 V 31 w(apply)k Fm(=)25 b Fi(true)10 b Fe(;)k +b Fe(;)k Fk(const)35 b(b)s(o)s(ol)249 3399 y Fi(do)p +338 3399 V 31 w(apply)k Fm(=)25 b Fi(true)10 b Fe(;)k Fk(F)-8 b(o)s(cus)33 b Fn(\003)p Fe(f)h Fm(=)25 b(0)o Fe(;)14 b Fk(const)34 b(unsigned)f(short)h Fi(pr)l(oj)42 b Fm(=)25 b Fk(Pro)5 b(jections)13 b Fm(::)c Ff(PERSP)r Fe(;)14 b Fk(const)34 b(real)249 3499 y Fi(factor)j Fm(=)23 b(1\))28 b Fk(const)t Fm(;)p eop end -%%Page: 400 400 -TeXDict begin 400 399 bop 0 83 a Fm(400)140 b Fl(SHO)n(W)2686 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1337)0 263 y Fk(1337.)0 +%%Page: 404 404 +TeXDict begin 404 403 bop 0 83 a Fm(404)140 b Fl(SHO)n(W)2686 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1342)0 263 y Fk(1342.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)37 +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)37 b(Solid)12 b Fm(::)c Fi(show)15 b Fm(\()p Fk(string)38 b Fi(text)11 b Fe(;)j Fk(c)m(har)38 b Fi(c)l(o)l(or)l(ds)12 b Fe(;)i Fk(const)37 b(b)s(o)s(ol)e Fi(do)p 2296 487 @@ -34237,9 +34216,9 @@ 5120 y Fn(g)166 5219 y(g)166 5319 y Fk(else)45 b Fi(c)l(out)35 b Fn(\034)23 b Ff("reg_polygons)p Fj( )p Ff(is)o Fj( )p Ff(e)o(mp)-6 b(ty.\\n")q Fm(;)p eop end -%%Page: 401 401 -TeXDict begin 401 400 bop 0 83 a Fn(x)p Fm(1337)139 b -Fl(3DLDFPR)n(G)2687 b(SHO)n(W)141 b Fm(401)166 263 y +%%Page: 405 405 +TeXDict begin 405 404 bop 0 83 a Fn(x)p Fm(1342)139 b +Fl(3DLDFPR)n(G)2687 b(SHO)n(W)141 b Fm(405)166 263 y Fk(if)41 b Fm(\()p Fi(r)l(e)l(ctangles)12 b Fe(:)p Fi(size)f Fm(\()j(\))23 b Fe(>)g Fm(0)o(\))42 b Fn(f)249 363 y Fi(c)l(out)35 b Fn(\034)23 b Ff("Showing)p Fj( )p Ff(rectang)o(le)o(s.) @@ -34263,15 +34242,15 @@ Fj( )p Ff(is)p Fj( )p Ff(e)o(mp)o(ty)-6 b(.\\n")r Fm(;)166 1359 y Fi(c)l(out)35 b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)24 b Fi(\015ush)10 b Fm(;)166 1459 y Fk(return)5 b Fm(;)83 -1558 y Fn(g)0 1757 y Fk(1338.)94 b(Clear.)h Fm([)p Fh(LDF)25 +1558 y Fn(g)0 1757 y Fk(1343.)94 b(Clear.)h Fm([)p Fh(LDF)25 b(2002.10.07.)p Fm(])63 b(Replaced)30 b(dumm)n(y)g(de\014nition)h(with) f(a)g(real)f(one.)44 b(No)n(w,)30 b Fi(cle)l(ar)14 b Fm(\()g(\))30 b(is)g(called)g(for)0 1857 y(all)d(of)h(the)g(ob)5 b(jects)27 b(in)h(the)g Fk(Solid)s Fm(.)0 1982 y Fn(h)14 -b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1294)15 +b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2081 y Fk(virtual)33 b(v)m(oid)f -Fi(cle)l(ar)14 b Fm(\()g(\);)0 2280 y Fk(1339.)0 2405 -y Fn(h)g Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1295)15 +Fi(cle)l(ar)14 b Fm(\()g(\);)0 2280 y Fk(1344.)0 2405 +y Fn(h)g Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2505 y Fk(v)m(oid)33 b(Solid)11 b Fm(::)d Fi(cle)l(ar)15 b Fm(\()f(\))83 2604 y Fn(f)166 2704 y Fk(b)s(o)s(ol)31 b Ff(DEBUG)25 b Fm(=)e Fi(false)12 @@ -34324,18 +34303,18 @@ b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Solid::c)o(lea)-7 b(r\(\).\\n")25 b Fn(\034)e Fi(\015ush)10 b Fm(;)166 4323 y Fk(return)5 -b Fm(;)83 4422 y Fn(g)0 4622 y Fk(1340.)94 b(T)-8 b(ransformations.)0 -4821 y(1341.)94 b(Multiplying)30 b(b)m(y)i(a)h(T)-8 b(ransform.)0 +b Fm(;)83 4422 y Fn(g)0 4622 y Fk(1345.)94 b(T)-8 b(ransformations.)0 +4821 y(1346.)94 b(Multiplying)30 b(b)m(y)i(a)h(T)-8 b(ransform.)0 4945 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 -b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 5045 y Fk(virtual)33 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 5045 y Fk(virtual)33 b(T)-8 b(ransform)33 b(op)s(erator)5 b Fn(\003)p Fm(=)o(\()p Fk(const)33 b(T)-8 b(ransform)33 b Fm(&)o Fe(t)p Fm(\);)p eop end -%%Page: 402 402 -TeXDict begin 402 401 bop 0 83 a Fm(402)140 b Fl(MUL)-6 +%%Page: 406 406 +TeXDict begin 406 405 bop 0 83 a Fm(406)140 b Fl(MUL)-6 b(TIPL)g(YING)24 b(BY)f(A)h Fk(TRANSF)m(ORM)1542 b Fl(3DLDFPR)n(G)142 -b Fn(x)p Fm(1342)0 263 y Fk(1342.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Solid)k Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p +b Fn(x)p Fm(1347)0 263 y Fk(1347.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Solid)k Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(Solid)12 b Fm(::)d Fk(op)s(erator)t Fn(\003)p Fm(=)o(\()p Fk(const)33 b(T)-8 b(ransform)33 b Fm(&)p Fe(t)p Fm(\))83 587 y Fn(f)166 @@ -34375,79 +34354,78 @@ b Fe(:)p Fi(end)h Fm(\()h(\);)3396 1276 y Fg(+)-8 b(+)3494 1284 y Fi(iter)13 b Fm(\))249 1384 y Fn(\003\003)o Fi(iter)37 b Fn(\003)p Fm(=)22 b Fe(t)p Fm(;)166 1483 y Fk(return)33 -b Fe(t)p Fm(;)83 1583 y Fn(g)0 1782 y Fk(1343.)94 b(Applying)31 -b(a)h(transformation.)p 0 1882 1643 4 v 1738 1914 a(Begin)f(Log)p -2257 1882 V 83 2055 a Fm([)p Fh(LDF)25 b(2003.01.05.)p +b Fe(t)p Fm(;)83 1583 y Fn(g)0 1782 y Fk(1348.)94 b(Applying)31 +b(a)h(transformation.)p 0 1881 1779 4 v 1874 1914 a(Log)p +2122 1881 V 83 2054 a Fm([)p Fh(LDF)25 b(2003.01.05.)p Fm(])74 b(Added)40 b(this)h(function.)74 b(It's)40 b(no)n(w)g(needed)g -(b)r(ecause)g(I'v)n(e)f(made)h Fi(apply)p 3148 2055 26 +(b)r(ecause)g(I'v)n(e)f(made)h Fi(apply)p 3148 2054 26 4 v 32 w(tr)l(ansform)11 b Fm(\()j(\))41 b(a)e(pure)0 -2155 y Fk(virtual)27 b Fm(function)c(in)f Fk(class)k(Shap)s(e)5 +2154 y Fk(virtual)27 b Fm(function)c(in)f Fk(class)k(Shap)s(e)5 b Fm(.)35 b(BUG)22 b(FIX:)h(I'v)n(e)e(done)h(this)g(in)g(an)g(attempt)g (to)g(\014x)g(a)f(bug)h(in)g Fk(Picture)14 b Fm(::)8 -b Fi(output)k Fm(\()i(\),)0 2254 y(where)27 b(the)h Fk(P)m(oin)m(ts)33 +b Fi(output)k Fm(\()i(\),)0 2253 y(where)27 b(the)h Fk(P)m(oin)m(ts)33 b Fm(on)27 b(a)g Fk(P)m(ath)34 b Fm(w)n(ere)26 b(not)i(transformed)e (when)i(I)g(used)f(\\)p Fk(T)-8 b(ransform)33 b Fe(t)p -Fm(;)28 b Fi(curr)l(ent)p 3214 2254 V 29 w(pictur)l(e)34 -b Fn(\003)p Fm(=)22 b Fe(t)p Fm(".)p 0 2346 1678 4 v -1773 2379 a Fk(End)32 b(Log)p 2222 2346 V 0 2503 a Fn(h)14 -b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1294)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 2603 y Fk(virtual)33 b(v)m(oid)f -Fi(apply)p 794 2603 26 4 v 33 w(tr)l(ansform)10 b Fm(\()p -Fk(v)m(oid)c Fm(\);)0 2802 y Fk(1344.)0 2927 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1295)15 -b Fn(i)23 b Fm(+)p Fn(\021)83 3026 y Fk(v)m(oid)33 b(Solid)11 -b Fm(::)d Fi(apply)p 756 3026 V 33 w(tr)l(ansform)j Fm(\()p -Fk(v)m(oid)5 b Fm(\))83 3126 y Fn(f)166 3226 y Fi(c)l(enter)13 -b Fe(:)p Fi(apply)p 614 3226 V 32 w(tr)l(ansform)e Fm(\()j(\);)166 -3325 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(P)m(ath)34 -b Fn(\003)o(i)8 b Fm(::)h Fi(iter)l(ator)14 b(iter)36 -b Fm(=)23 b Fi(p)l(aths)12 b Fe(:)p Fi(b)l(e)l(gin)f +Fm(;)28 b Fi(curr)l(ent)p 3214 2253 V 29 w(pictur)l(e)34 +b Fn(\003)p Fm(=)22 b Fe(t)p Fm(".)p 0 2345 3900 4 v +0 2503 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2602 y Fk(virtual)33 +b(v)m(oid)f Fi(apply)p 794 2602 26 4 v 33 w(tr)l(ansform)10 +b Fm(\()p Fk(v)m(oid)c Fm(\);)0 2801 y Fk(1349.)0 2926 +y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3026 y Fk(v)m(oid)33 +b(Solid)11 b Fm(::)d Fi(apply)p 756 3026 V 33 w(tr)l(ansform)j +Fm(\()p Fk(v)m(oid)5 b Fm(\))83 3125 y Fn(f)166 3225 +y Fi(c)l(enter)13 b Fe(:)p Fi(apply)p 614 3225 V 32 w(tr)l(ansform)e +Fm(\()j(\);)166 3324 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 +b Fn(h)p Fk(P)m(ath)34 b Fn(\003)o(i)8 b Fm(::)h Fi(iter)l(ator)14 +b(iter)36 b Fm(=)23 b Fi(p)l(aths)12 b Fe(:)p Fi(b)l(e)l(gin)f Fm(\()j(\);)42 b Fi(iter)36 b Fn(6)p Fm(=)23 b Fi(p)l(aths)11 -b Fe(:)p Fi(end)j Fm(\()g(\);)2850 3317 y Fg(+)-8 b(+)2947 -3325 y Fi(iter)14 b Fm(\))249 3425 y(\()p Fn(\003\003)o -Fi(iter)g Fm(\))p Fe(:)p Fi(apply)p 751 3425 V 33 w(tr)l(ansform)c +b Fe(:)p Fi(end)j Fm(\()g(\);)2850 3316 y Fg(+)-8 b(+)2947 +3324 y Fi(iter)14 b Fm(\))249 3424 y(\()p Fn(\003\003)o +Fi(iter)g Fm(\))p Fe(:)p Fi(apply)p 751 3424 V 33 w(tr)l(ansform)c Fm(\()k(\);)166 3524 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Ellipse)30 b Fn(\003i)8 b Fm(::)h Fi(iter)l(ator)14 b(iter)36 b Fm(=)23 b Fi(el)t(lipses)13 b Fe(:)p Fi(b)l(e)l(gin)d Fm(\()k(\);)42 b Fi(iter)37 b Fn(6)p Fm(=)23 b Fi(el)t(lipses)12 b Fe(:)p Fi(end)i Fm(\()g(\);)3076 3516 y Fg(+)-8 b(+)3174 -3524 y Fi(iter)13 b Fm(\))249 3624 y(\()p Fn(\003\003)o -Fi(iter)h Fm(\))p Fe(:)p Fi(apply)p 751 3624 V 33 w(tr)l(ansform)c -Fm(\()k(\);)166 3724 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 +3524 y Fi(iter)13 b Fm(\))249 3623 y(\()p Fn(\003\003)o +Fi(iter)h Fm(\))p Fe(:)p Fi(apply)p 751 3623 V 33 w(tr)l(ansform)c +Fm(\()k(\);)166 3723 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Circle)32 b Fn(\003i)8 b Fm(::)h Fi(iter)l(ator)k(iter)37 b Fm(=)22 b Fi(cir)l(cles)12 b Fe(:)p Fi(b)l(e)l(gin)f Fm(\()j(\);)42 b Fi(iter)37 b Fn(6)p Fm(=)22 b Fi(cir)l(cles)12 -b Fe(:)p Fi(end)i Fm(\()g(\);)2981 3716 y Fg(+)-8 b(+)3079 -3724 y Fi(iter)13 b Fm(\))249 3823 y(\()p Fn(\003\003)o +b Fe(:)p Fi(end)i Fm(\()g(\);)2981 3715 y Fg(+)-8 b(+)3079 +3723 y Fi(iter)13 b Fm(\))249 3823 y(\()p Fn(\003\003)o Fi(iter)h Fm(\))p Fe(:)p Fi(apply)p 751 3823 V 33 w(tr)l(ansform)c -Fm(\()k(\);)166 3923 y Fk(for)36 b Fm(\()p Fk(v)m(ector)6 -b Fn(h)p Fk(Reg)p 813 3923 29 5 v 40 w(P)m(olygon)35 +Fm(\()k(\);)166 3922 y Fk(for)36 b Fm(\()p Fk(v)m(ector)6 +b Fn(h)p Fk(Reg)p 813 3922 29 5 v 40 w(P)m(olygon)35 b Fn(\003i)8 b Fm(::)h Fi(iter)l(ator)14 b(iter)42 b -Fm(=)28 b Fi(r)l(e)l(g)p 2009 3923 26 4 v 31 w(p)l(olygons)12 +Fm(=)28 b Fi(r)l(e)l(g)p 2009 3922 26 4 v 31 w(p)l(olygons)12 b Fe(:)p Fi(b)l(e)l(gin)f Fm(\()j(\);)45 b Fi(iter)d -Fn(6)p Fm(=)29 b Fi(r)l(e)l(g)p 3077 3923 V 30 w(p)l(olygons)13 -b Fe(:)p Fi(end)g Fm(\()h(\);)419 4015 y Fg(+)-8 b(+)517 -4023 y Fi(iter)13 b Fm(\))42 b(\()p Fn(\003\003)p Fi(iter)13 -b Fm(\))p Fe(:)p Fi(apply)p 1232 4023 V 33 w(tr)l(ansform)e -Fm(\()j(\);)166 4122 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 +Fn(6)p Fm(=)29 b Fi(r)l(e)l(g)p 3077 3922 V 30 w(p)l(olygons)13 +b Fe(:)p Fi(end)g Fm(\()h(\);)419 4014 y Fg(+)-8 b(+)517 +4022 y Fi(iter)13 b Fm(\))42 b(\()p Fn(\003\003)p Fi(iter)13 +b Fm(\))p Fe(:)p Fi(apply)p 1232 4022 V 33 w(tr)l(ansform)e +Fm(\()j(\);)166 4121 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Rectangle)32 b Fn(\003i)8 b Fm(::)h Fi(iter)l(ator)k(iter) 37 b Fm(=)22 b Fi(r)l(e)l(ctangles)11 b Fe(:)p Fi(b)l(e)l(gin)g Fm(\()j(\);)42 b Fi(iter)37 b Fn(6)p Fm(=)22 b Fi(r)l(e)l(ctangles)12 -b Fe(:)p Fi(end)h Fm(\()h(\);)3396 4114 y Fg(+)-8 b(+)3494 -4122 y Fi(iter)13 b Fm(\))249 4222 y(\()p Fn(\003\003)o -Fi(iter)h Fm(\))p Fe(:)p Fi(apply)p 751 4222 V 33 w(tr)l(ansform)c -Fm(\()k(\);)83 4321 y Fn(g)0 4521 y Fk(1345.)94 b(Scale.)0 +b Fe(:)p Fi(end)h Fm(\()h(\);)3396 4113 y Fg(+)-8 b(+)3494 +4121 y Fi(iter)13 b Fm(\))249 4221 y(\()p Fn(\003\003)o +Fi(iter)h Fm(\))p Fe(:)p Fi(apply)p 751 4221 V 33 w(tr)l(ansform)c +Fm(\()k(\);)83 4321 y Fn(g)0 4520 y Fk(1350.)94 b(Scale.)0 4645 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 -b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4745 y Fk(virtual)33 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4744 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(sc)l(ale)11 b Fm(\()p Fk(real)33 b Fi(xx)13 b Fe(;)h Fk(real)33 b Fi(yy)i Fm(=)22 b(0)p Fe(;)14 b Fk(real)32 b Fi(zz)38 b Fm(=)22 b(0\);)p eop end -%%Page: 403 403 -TeXDict begin 403 402 bop 0 83 a Fn(x)p Fm(1346)139 b -Fl(3DLDFPR)n(G)2669 b(SCALE)141 b Fm(403)0 263 y Fk(1346.)0 +%%Page: 407 407 +TeXDict begin 407 406 bop 0 83 a Fn(x)p Fm(1351)139 b +Fl(3DLDFPR)n(G)2669 b(SCALE)141 b Fm(407)0 263 y Fk(1351.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(Solid)12 b Fm(::)c Fi(sc)l(ale)k Fm(\()p Fk(real)32 b Fi(xx)14 b Fe(;)g Fk(real)32 b Fi(yy)12 b Fe(;)i Fk(real)33 b Fi(zz)14 b Fm(\))83 587 y Fn(f)166 @@ -34455,16 +34433,16 @@ Fi(sc)l(ale)11 b Fm(\()p Fi(xx)j Fe(;)g Fi(yy)e Fe(;)i Fi(zz)g Fm(\);)166 911 y Fn(\003)p Fi(this)34 b Fn(\003)p Fm(=)22 b Fe(t)p Fm(;)166 1010 y Fk(return)33 b Fe(t)p -Fm(;)83 1110 y Fn(g)0 1309 y Fk(1347.)94 b(Shear.)0 1434 +Fm(;)83 1110 y Fn(g)0 1309 y Fk(1352.)94 b(Shear.)0 1434 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 -b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1533 y Fk(virtual)33 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1533 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(she)l(ar)14 b Fm(\()p Fk(real)33 b Fi(xy)11 b Fe(;)j Fk(real)32 b Fi(xz)37 b Fm(=)23 b(0)p Fe(;)14 b Fk(real)32 b Fi(yx)37 b Fm(=)23 b(0)o Fe(;)14 b Fk(real)33 b Fi(yz)k Fm(=)23 b(0)o Fe(;)14 b Fk(real)33 b Fi(zx)k Fm(=)22 b(0)p Fe(;)14 b Fk(real)32 b Fi(zy)j -Fm(=)23 b(0)o(\);)0 1733 y Fk(1348.)0 1857 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1295)15 +Fm(=)23 b(0)o(\);)0 1733 y Fk(1353.)0 1857 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1957 y Fk(T)-8 b(ransform)33 b(Solid)12 b Fm(::)c Fi(she)l(ar)14 b Fm(\()p Fk(real)33 b Fi(xy)12 b Fe(;)i Fk(real)32 b Fi(xz)14 b Fe(;)g Fk(real)32 @@ -34475,15 +34453,15 @@ Fe(;)i Fi(xz)g Fe(;)g Fi(yx)g Fe(;)g Fi(yz)g Fe(;)g Fi(zx)g Fe(;)g Fi(zy)d Fm(\);)166 2380 y Fn(\003)p Fi(this)34 b Fn(\003)p Fm(=)22 b Fe(t)p Fm(;)166 2480 y Fk(return)33 -b Fe(t)p Fm(;)83 2579 y Fn(g)0 2779 y Fk(1349.)94 b(Shift.)0 -2978 y(1350.)g(real)32 b(argumen)m(ts.)0 3102 y Fn(h)14 -b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1294)15 +b Fe(t)p Fm(;)83 2579 y Fn(g)0 2779 y Fk(1354.)94 b(Shift.)0 +2978 y(1355.)g(real)32 b(argumen)m(ts.)0 3102 y Fn(h)14 +b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3202 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(shift)13 b Fm(\()p Fk(real)33 b Fi(xx)13 b Fe(;)h Fk(real)32 b Fi(yy)k Fm(=)22 b(0)p Fe(;)14 b -Fk(real)32 b Fi(zz)37 b Fm(=)23 b(0\);)0 3401 y Fk(1351.)0 +Fk(real)32 b Fi(zz)37 b Fm(=)23 b(0\);)0 3401 y Fk(1356.)0 3526 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3625 y Fk(T)-8 +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3625 y Fk(T)-8 b(ransform)33 b(Solid)12 b Fm(::)c Fi(shift)14 b Fm(\()p Fk(real)32 b Fi(xx)14 b Fe(;)g Fk(real)32 b Fi(yy)12 b Fe(;)i Fk(real)32 b Fi(zz)15 b Fm(\))83 3725 y Fn(f)166 @@ -34491,32 +34469,32 @@ Fe(t:)p Fi(shift)13 b Fm(\()p Fi(xx)h Fe(;)g Fi(yy)e Fe(;)i Fi(zz)g Fm(\);)166 4049 y Fn(\003)p Fi(this)34 b Fn(\003)p Fm(=)22 b Fe(t)p Fm(;)166 4148 y Fk(return)33 -b Fe(t)p Fm(;)83 4248 y Fn(g)0 4447 y Fk(1352.)94 b(P)m(oin)m(t)32 +b Fe(t)p Fm(;)83 4248 y Fn(g)0 4447 y Fk(1357.)94 b(P)m(oin)m(t)32 b(argumen)m(t.)0 4572 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k -Fm(functions)36 b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4671 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(shift)13 b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(pt)12 b Fm(\);)p eop end -%%Page: 404 404 -TeXDict begin 404 403 bop 0 83 a Fm(404)140 b Fk(POINT)24 -b Fl(AR)n(GUMENT)2137 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1353)0 -263 y Fk(1353.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k -Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 408 408 +TeXDict begin 408 407 bop 0 83 a Fm(408)140 b Fk(POINT)24 +b Fl(AR)n(GUMENT)2137 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1358)0 +263 y Fk(1358.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(ransform)33 b(Solid)12 b Fm(::)c Fi(shift)14 b Fm(\()p Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(pt)12 b Fm(\))83 587 y Fn(f)166 686 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 811 y Fe(t:)p Fi(shift)13 b Fm(\()p Fi(pt)g Fm(\);)166 911 y Fn(\003)p Fi(this)34 b Fn(\003)p Fm(=)22 b Fe(t)p Fm(;)166 1010 y Fk(return)33 b Fe(t)p -Fm(;)83 1110 y Fn(g)0 1309 y Fk(1354.)94 b(Rotatation)32 +Fm(;)83 1110 y Fn(g)0 1309 y Fk(1359.)94 b(Rotatation)32 b(around)g(the)g(main)f(axes.)0 1434 y Fn(h)14 b Fm(Declare)27 -b Fk(Solid)k Fm(functions)36 b Fl(1294)15 b Fn(i)23 b +b Fk(Solid)k Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1533 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(r)l(otate)10 b Fm(\()p Fk(const)33 b(real)g Fi(xx)13 b Fe(;)h Fk(const)32 b(real)h Fi(yy)i Fm(=)23 b(0)o Fe(;)14 b Fk(const)32 b(real)h Fi(zz)k Fm(=)23 b(0)o(\);)0 1733 -y Fk(1355.)0 1857 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k -Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +y Fk(1360.)0 1857 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1957 y Fk(T)-8 b(ransform)33 b(Solid)12 b Fm(::)c Fi(r)l(otate)j Fm(\()p Fk(const)33 b(real)f Fi(xx)13 b Fe(;)h Fk(const)33 b(real)f Fi(yy)12 b Fe(;)i Fk(const)33 b(real)f Fi(zz)15 @@ -34525,44 +34503,43 @@ Fi(xx)i Fe(;)h Fi(yy)e Fe(;)i Fi(zz)g Fm(\);)166 2380 y Fn(\003)p Fi(this)34 b Fn(\003)p Fm(=)22 b Fe(t)p Fm(;)166 2480 y Fk(return)33 b Fe(t)p Fm(;)83 2579 y Fn(g)0 2779 -y Fk(1356.)94 b(Rotatation)32 b(around)g(an)g(arbitrary)i(axis.)p -0 2878 1643 4 v 1738 2911 a(Begin)d(Log)p 2257 2878 V -83 3051 a Fm([)p Fh(LDF)25 b(2003.05.02.)p Fm(])67 b(Changed)34 +y Fk(1361.)94 b(Rotatation)32 b(around)g(an)g(arbitrary)i(axis.)p +0 2877 1779 4 v 1874 2910 a(Log)p 2122 2877 V 83 3050 +a Fm([)p Fh(LDF)25 b(2003.05.02.)p Fm(])67 b(Changed)34 b(name)f(of)h(this)h(function)f(from)g Fi(r)l(otate)p -2343 3051 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f +2343 3050 26 4 v 30 w(ar)l(ound)13 b Fm(\()h(\))35 b(to)f Fi(r)l(otate)10 b Fm(\()k(\).)56 b(This)34 b(function)h(no)n(w)0 -3151 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 -b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 3243 -1678 4 v 1773 3275 a Fk(End)g(Log)p 2222 3243 V 0 3400 -a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 -b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3499 y Fk(virtual)33 -b(T)-8 b(ransform)33 b Fi(r)l(otate)10 b Fm(\()p Fk(const)33 -b(P)m(oin)m(t)g Fm(&)p Fi(p0)16 b Fe(;)e Fk(const)32 -b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 b Fe(;)e Fk(const)32 -b(real)h Fi(angle)h Fm(=)23 b(180)n(\);)0 3699 y Fk(1357.)0 -3823 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3923 y Fk(T)-8 -b(ransform)33 b(Solid)12 b Fm(::)c Fi(r)l(otate)j Fm(\()p -Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(p0)16 b Fe(;)e -Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(p1)17 b Fe(;)d -Fk(const)32 b(real)g Fi(angle)12 b Fm(\))83 4023 y Fn(f)166 -4122 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 4247 y -Fe(t:)p Fi(r)l(otate)11 b Fm(\()p Fi(p0)16 b Fe(;)e Fi(p1)i -Fe(;)e Fi(angle)e Fm(\);)166 4346 y Fn(\003)p Fi(this)34 -b Fn(\003)p Fm(=)22 b Fe(t)p Fm(;)166 4446 y Fk(return)33 -b Fe(t)p Fm(;)83 4546 y Fn(g)0 4745 y Fk(1358.)94 b(Outputting.)0 -4944 y(1359.)g(Extract.)0 5069 y Fn(h)14 b Fm(Declare)27 -b Fk(Solid)k Fm(functions)36 b Fl(1294)15 b Fn(i)23 b -Fm(+)p Fn(\021)83 5168 y Fk(virtual)33 b(v)m(ector)6 -b Fn(h)p Fk(Shap)s(e)32 b Fn(\003i)c Fi(extr)l(act)11 +3150 y(o)n(v)n(erloads)25 b Fi(r)l(otate)10 b Fm(\()k(\))28 +b(with)g(three)g Fk(real)k Fm(argumen)n(ts.)p 0 3242 +3900 4 v 0 3399 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k +Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3499 y Fk(virtual)33 b(T)-8 b(ransform)33 b Fi(r)l(otate)10 +b Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)p Fi(p0)16 +b Fe(;)e Fk(const)32 b(P)m(oin)m(t)h Fm(&)p Fi(p1)16 +b Fe(;)e Fk(const)32 b(real)h Fi(angle)h Fm(=)23 b(180)n(\);)0 +3698 y Fk(1362.)0 3823 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3922 y Fk(T)-8 b(ransform)33 b(Solid)12 b Fm(::)c Fi(r)l(otate)j +Fm(\()p Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(p0)16 b +Fe(;)e Fk(const)33 b(P)m(oin)m(t)g Fm(&)o Fi(p1)17 b +Fe(;)d Fk(const)32 b(real)g Fi(angle)12 b Fm(\))83 4022 +y Fn(f)166 4121 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 +4246 y Fe(t:)p Fi(r)l(otate)11 b Fm(\()p Fi(p0)16 b Fe(;)e +Fi(p1)i Fe(;)e Fi(angle)e Fm(\);)166 4346 y Fn(\003)p +Fi(this)34 b Fn(\003)p Fm(=)22 b Fe(t)p Fm(;)166 4445 +y Fk(return)33 b Fe(t)p Fm(;)83 4545 y Fn(g)0 4744 y +Fk(1363.)94 b(Outputting.)0 4943 y(1364.)g(Extract.)0 +5068 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 5168 y Fk(virtual)33 +b(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)32 b Fn(\003i)c Fi(extr)l(act)11 b Fm(\()p Fk(const)33 b(F)-8 b(o)s(cus)32 b Fm(&)p Fe(f)8 b(;)14 b Fk(const)33 b(unsigned)e(short)h Fi(pr)l(oj)18 b Fe(;)c Fk(real)32 b Fi(factor)14 b Fm(\);)p eop end -%%Page: 405 405 -TeXDict begin 405 404 bop 0 83 a Fn(x)p Fm(1360)139 b -Fl(3DLDFPR)n(G)2548 b(EXTRA)n(CT)140 b Fm(405)0 263 y -Fk(1360.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k -Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 409 409 +TeXDict begin 409 408 bop 0 83 a Fn(x)p Fm(1365)139 b +Fl(3DLDFPR)n(G)2548 b(EXTRA)n(CT)140 b Fm(409)0 263 y +Fk(1365.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(ector)6 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)28 b Fk(Solid)12 b Fm(::)c Fi(extr)l(act)k Fm(\()p Fk(const)33 b(F)-8 b(o)s(cus)32 b Fm(&)o Fe(f)9 b(;)14 b Fk(const)32 @@ -34668,19 +34645,19 @@ Fn(g)166 5294 y(g)166 5394 y Fe(v)s(:)p Fi(push)p 400 5394 V 31 w(b)l(ack)14 b Fm(\()p Fi(this)e Fm(\);)p eop end -%%Page: 406 406 -TeXDict begin 406 405 bop 0 83 a Fm(406)140 b Fl(EXTRA)n(CT)2546 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1360)166 263 y Fk(return)33 -b Fe(v)s Fm(;)83 363 y Fn(g)0 562 y Fk(1361.)94 b(Set)32 +%%Page: 410 410 +TeXDict begin 410 409 bop 0 83 a Fm(410)140 b Fl(EXTRA)n(CT)2546 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1365)166 263 y Fk(return)33 +b Fe(v)s Fm(;)83 363 y Fn(g)0 562 y Fk(1366.)94 b(Set)32 b(extremes.)0 686 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k -Fm(functions)36 b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 786 y Fk(virtual)33 b(b)s(o)s(ol)e Fi(set)p 713 786 26 4 v 30 w(extr)l(emes)10 b Fm(\()k(\);)p eop end -%%Page: 407 407 -TeXDict begin 407 406 bop 0 83 a Fn(x)p Fm(1362)139 b -Fl(3DLDFPR)n(G)2339 b(SET)24 b(EXTREMES)140 b Fm(407)0 -263 y Fk(1362.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k -Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 411 411 +TeXDict begin 411 410 bop 0 83 a Fn(x)p Fm(1367)139 b +Fl(3DLDFPR)n(G)2339 b(SET)24 b(EXTREMES)140 b Fm(411)0 +263 y Fk(1367.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(b)s(o)s(ol)31 b(Solid)12 b Fm(::)c Fi(set)p 675 487 26 4 v 30 w(extr)l(emes)j Fm(\()j(\))83 587 y Fn(f)166 686 y Fk(b)s(o)s(ol)31 b Ff(DEBUG)25 b Fm(=)e @@ -34785,9 +34762,9 @@ b(=)g Fi(min)11 b Fm(\()p Fi(pr)l(oje)l(ctive)p 1744 5344 V 32 w(extr)l(emes)f Fm([)p Fe(i)p Fm(])p Fe(;)k(v)s Fm([)p Fe(i)p Fm(]\);)p eop end -%%Page: 408 408 -TeXDict begin 408 407 bop 0 83 a Fm(408)140 b Fl(SET)23 -b(EXTREMES)2338 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1362)249 +%%Page: 412 412 +TeXDict begin 412 411 bop 0 83 a Fm(412)140 b Fl(SET)23 +b(EXTREMES)2338 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1367)249 263 y Fn(g)249 363 y Fk(for)33 b Fm(\()p Fk(in)m(t)g Fe(i)22 b Fm(=)h(3)o(;)42 b Fe(i)23 b(<)f Fm(6;)1071 355 y Fg(+)-8 b(+)1169 363 y Fe(i)p Fm(\))166 b Fe(=)p @@ -34868,23 +34845,23 @@ b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Solid::s)o(et_)-7 b(extremes\(\)")23 b Fn(\034)g Ff("\\n")j Fn(\034)d Fi(\015ush)10 b Fm(;)166 4248 y Fk(return)33 b Fi(true)10 b Fm(;)83 -4348 y Fn(g)0 4547 y Fk(1363.)94 b(Get)32 b(extremes.)0 +4348 y Fn(g)0 4547 y Fk(1368.)94 b(Get)32 b(extremes.)0 4671 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 -b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4771 y Fk(inline)31 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4771 y Fk(inline)31 b(virtual)i(const)f(v)-5 b(alarra)m(y)8 b Fn(h)p Fk(real)d Fn(i)28 b Fi(get)p 1612 4771 V 31 w(extr)l(emes)10 b Fm(\()k(\))28 b Fk(const)83 4871 y Fn(f)166 4970 y Fk(return)33 b Fi(pr)l(oje)l(ctive)p 810 4970 V 32 w(extr)l(emes)11 -b Fm(;)83 5070 y Fn(g)0 5269 y Fk(1364.)94 b(Get)32 b(minim)m(um)e(z.)0 +b Fm(;)83 5070 y Fn(g)0 5269 y Fk(1369.)94 b(Get)32 b(minim)m(um)e(z.)0 5394 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 -b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)p eop end -%%Page: 409 409 -TeXDict begin 409 408 bop 0 83 a Fn(x)p Fm(1364)139 b -Fl(3DLDFPR)n(G)2309 b(GET)24 b(MINIMUM)f(Z)141 b Fm(409)83 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)p eop end +%%Page: 413 413 +TeXDict begin 413 412 bop 0 83 a Fn(x)p Fm(1369)139 b +Fl(3DLDFPR)n(G)2309 b(GET)24 b(MINIMUM)f(Z)141 b Fm(413)83 263 y Fk(virtual)33 b(real)f Fi(get)p 692 263 26 4 v 31 w(minimum)p 1069 263 V 30 w(z)15 b Fm(\()f(\))28 b -Fk(const)t Fm(;)0 462 y Fk(1365.)0 587 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Solid)k Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p +Fk(const)t Fm(;)0 462 y Fk(1370.)0 587 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Solid)k Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 686 y Fk(real)32 b(Solid)12 b Fm(::)c Fi(get)p 654 686 V 31 w(minimum)p 1031 686 V 31 w(z)14 b Fm(\()g(\))28 b Fk(const)83 786 y Fn(f)166 886 y Fk(b)s(o)s(ol)j Ff(DEBUG)25 @@ -34902,13 +34879,13 @@ b Fn(\034)h Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)166 1409 y Fn(g)166 1508 y Fk(return)33 b Fi(pr)l(oje)l(ctive)p 810 1508 V 32 w(extr)l(emes)11 b Fm([4)o(];)83 1608 y -Fn(g)0 1807 y Fk(1366.)94 b(Get)32 b(maxim)m(um)f(z.)0 +Fn(g)0 1807 y Fk(1371.)94 b(Get)32 b(maxim)m(um)f(z.)0 1932 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 -b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2031 y Fk(virtual)33 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2031 y Fk(virtual)33 b(real)f Fi(get)p 692 2031 V 31 w(maximum)p 1078 2031 V 30 w(z)14 b Fm(\()g(\))28 b Fk(const)5 b Fm(;)0 2231 -y Fk(1367.)0 2355 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k -Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +y Fk(1372.)0 2355 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2455 y Fk(real)32 b(Solid)12 b Fm(::)c Fi(get)p 654 2455 V 31 w(maximum)p 1040 2455 V 31 w(z)14 b Fm(\()g(\))28 b Fk(const)83 2554 y Fn(f)166 2654 y Fk(b)s(o)s(ol)j @@ -34926,45 +34903,45 @@ b(maximum_z\(\)")22 b Fn(\034)h Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)166 3177 y Fn(g)166 3277 y Fk(return)33 b Fi(pr)l(oje)l(ctive)p 810 3277 V 32 w(extr)l(emes)11 -b Fm([5)o(];)83 3376 y Fn(g)0 3576 y Fk(1368.)94 b(Get)32 +b Fm([5)o(];)83 3376 y Fn(g)0 3576 y Fk(1373.)94 b(Get)32 b(mean)f(z.)96 b Fm([)p Fh(LDF)25 b(2003.05.16.)p Fm(])61 b(Added)28 b(this)g(function.)0 3700 y Fn(h)14 b Fm(Declare)27 -b Fk(Solid)k Fm(functions)36 b Fl(1294)15 b Fn(i)23 b +b Fk(Solid)k Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3800 y Fk(virtual)33 b(real)f Fi(get)p 692 3800 V 31 w(me)l(an)p 914 3800 V 30 w(z)15 b Fm(\()f(\))28 -b Fk(const)5 b Fm(;)0 3999 y Fk(1369.)0 4124 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1295)15 +b Fk(const)5 b Fm(;)0 3999 y Fk(1374.)0 4124 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4223 y Fk(real)32 b(Solid)12 b Fm(::)c Fi(get)p 654 4223 V 31 w(me)l(an)p 876 4223 V 31 w(z)14 b Fm(\()g(\))28 b Fk(const)83 4323 y Fn(f)166 4422 y Fk(return)33 b Fm(\(\()p Fi(pr)l(oje)l(ctive)p 874 4422 V 33 w(extr)l(emes)10 b Fm([4])18 b(+)g Fi(pr)l(oje)l(ctive)p 1761 4422 V 33 w(extr)l(emes)10 b Fm([5)o(]\))p Fe(=)p -Fm(2\);)83 4522 y Fn(g)0 4721 y Fk(1370.)94 b(Suppress)31 +Fm(2\);)83 4522 y Fn(g)0 4721 y Fk(1375.)94 b(Suppress)31 b(output.)0 4846 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k -Fm(functions)36 b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4945 y Fk(virtual)33 b(v)m(oid)f Fi(suppr)l(ess)p 907 4945 V 31 w(output)11 b Fm(\()j(\);)p eop end -%%Page: 410 410 -TeXDict begin 410 409 bop 0 83 a Fm(410)140 b Fl(SUPPRESS)24 -b(OUTPUT)2202 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1371)0 263 -y Fk(1371.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k -Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 414 414 +TeXDict begin 414 413 bop 0 83 a Fm(414)140 b Fl(SUPPRESS)24 +b(OUTPUT)2202 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1376)0 263 +y Fk(1376.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(Solid)11 b Fm(::)d Fi(suppr)l(ess)p 869 487 26 4 v 32 w(output)j Fm(\()j(\))83 587 y Fn(f)166 686 y Fi(do)p 255 686 V 31 w(output)35 b Fm(=)22 b Fi(false)12 b Fm(;)166 786 y Fk(return)5 b Fm(;)83 886 y Fn(g)0 1085 -y Fk(1372.)94 b(Unsuppress)31 b(output.)0 1209 y Fn(h)14 -b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1294)15 +y Fk(1377.)94 b(Unsuppress)31 b(output.)0 1209 y Fn(h)14 +b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1309 y Fk(virtual)33 b(v)m(oid)f Fi(unsuppr)l(ess)p 999 1309 V 30 w(output)12 b Fm(\()i(\);)0 -1508 y Fk(1373.)0 1633 y Fn(h)g Fm(De\014ne)28 b Fk(Solid)k -Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1508 y Fk(1378.)0 1633 y Fn(h)g Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1733 y Fk(v)m(oid)33 b(Solid)11 b Fm(::)d Fi(unsuppr)l(ess)p 961 1733 V 31 w(output)j Fm(\()j(\))83 1832 y Fn(f)166 1932 y Fi(do)p 255 1932 V 31 w(output)35 b Fm(=)22 b Fi(true)10 b Fm(;)166 2031 y Fk(return)5 b Fm(;)83 2131 -y Fn(g)0 2330 y Fk(1374.)94 b(Output.)h Fm([)p Fh(LDF)25 +y Fn(g)0 2330 y Fk(1379.)94 b(Output.)h Fm([)p Fh(LDF)25 b(2002.10.02.)p Fm(])61 b(In)28 b Fk(Picture)14 b Fm(::)8 b Fi(output)j Fm(\()j(\),)28 b Fi(shap)l(es)40 b Fm(is)28 b(sorted)e(according)g(to)i(the)g(v)-5 b(alues)27 b(in)0 @@ -35000,13 +34977,13 @@ b Fm(,)28 b(at)f(least)g(I)h(couldn't)g(\014nd)g(one)f(in)h (Stroustrup.)36 b(TO)28 b(DO:)f(Get)h(reference!)0 3351 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 -b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3451 y Fk(virtual)33 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3451 y Fk(virtual)33 b(v)m(oid)f Fi(output)12 b Fm(\()i(\);)p eop end -%%Page: 411 411 -TeXDict begin 411 410 bop 0 83 a Fn(x)p Fm(1375)139 b -Fl(3DLDFPR)n(G)2594 b(OUTPUT)140 b Fm(411)0 263 y Fk(1375.)0 +%%Page: 415 415 +TeXDict begin 415 414 bop 0 83 a Fn(x)p Fm(1380)139 b +Fl(3DLDFPR)n(G)2594 b(OUTPUT)140 b Fm(415)0 263 y Fk(1380.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(Solid)11 b Fm(::)d Fi(output)k Fm(\()i(\))83 587 y Fn(f)166 686 y Fk(b)s(o)s(ol)31 b Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fi(true)52 @@ -35069,12 +35046,12 @@ b Fm(\()p Fn(\003)p Fi(iter)14 b Fm(\);)166 2455 y Fn(g)166 2554 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Solid::o)o(utp)-7 -b(ut\(\).\\n")q Fm(;)83 2654 y Fn(g)0 2853 y Fk(1376.)94 +b(ut\(\).\\n")q Fm(;)83 2654 y Fn(g)0 2853 y Fk(1381.)94 b(Dra)m(wing)32 b(and)h(\014lling.)p eop end -%%Page: 412 412 -TeXDict begin 412 411 bop 0 83 a Fm(412)140 b Fl(DRA)-8 +%%Page: 416 416 +TeXDict begin 416 415 bop 0 83 a Fm(416)140 b Fl(DRA)-8 b(WING)24 b(AND)f(FILLING)2048 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(1377)0 263 y Fk(1377.)94 b Fm(Pro)r(cess)22 b(v)n(ectors)h(for)g +Fm(1382)0 263 y Fk(1382.)94 b Fm(Pro)r(cess)22 b(v)n(ectors)h(for)g Fi(dr)l(aw)9 b Fm(\(\).)37 b([)p Fh(LDF)26 b(2002.10.09.)p Fm(])57 b(Added)25 b(this)f(section.)35 b(The)25 b(same)e(things)h(are) f(done)h(to)g(eac)n(h)0 363 y(of)34 b(the)h Fk(Shap)s(e)k @@ -35086,7 +35063,7 @@ b(Eac)n(h)26 b(time)j(it)f(it's)f(used,)h Fi(iter)41 b Fm(is)28 b(an)f(iterator)f(for)h(a)g(di\013eren)n(t)h(v)n(ector.)0 587 y Fn(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(dr)l(aw)14 b Fm(\()g(\))36 b Fl(1377)15 b Fn(i)23 +Fi(dr)l(aw)14 b Fm(\()g(\))36 b Fl(1382)15 b Fn(i)23 b(\021)83 686 y(f)166 786 y Fk(if)41 b Fm(\()p Fi(c)p 338 786 V 31 w(iter)c Fn(6)p Fm(=)22 b Fe(v)t(:)p Fi(end)13 b Fm(\()h(\)\))42 b Fn(f)249 886 y Fi(c)l(olor)p 428 @@ -35139,9 +35116,9 @@ b Fm(\);)166 2729 y(\()p Fn(\003\003)o Fi(iter)e Fm(\))p Fe(:)p Fi(set)p 581 2729 V 30 w(p)l(en)d Fm(\()p Fi(pp)l(en)g Fm(\);)83 2828 y Fn(g)0 2936 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f -(section)i(1379.)0 3136 y Fk(1378.)94 b(Dra)m(w.)0 3260 +(section)i(1384.)0 3136 y Fk(1383.)94 b(Dra)m(w.)0 3260 y Fn(h)14 b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 -b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3360 y Fk(virtual)36 +b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3360 y Fk(virtual)36 b(v)m(oid)f Fi(dr)l(aw)14 b Fm(\()p Fk(const)35 b(v)m(ector)6 b Fn(h)p Fk(const)35 b(Color)g Fn(\003)o(i)c Fe(v)g Fm(=)c Fk(Colors)12 b Fm(::)c Fi(default)p 2739 3360 V 32 w(c)l(olor)p @@ -35151,11 +35128,11 @@ b Fm(&)o Fi(pictur)l(e)h Fm(=)23 b Fi(curr)l(ent)p 2762 3459 V 29 w(pictur)l(e)11 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 413 413 -TeXDict begin 413 412 bop 0 83 a Fn(x)p Fm(1379)139 b -Fl(3DLDFPR)n(G)2681 b(DRA)-8 b(W)141 b Fm(413)0 263 y -Fk(1379.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k -Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 417 417 +TeXDict begin 417 416 bop 0 83 a Fn(x)p Fm(1384)139 b +Fl(3DLDFPR)n(G)2681 b(DRA)-8 b(W)141 b Fm(417)0 263 y +Fk(1384.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)31 b(Solid)12 b Fm(::)c Fi(dr)l(aw)14 b Fm(\()p Fk(const)31 b(v)m(ector)6 b Fn(h)p Fk(const)32 b(Color)e Fn(\003)o(i)d Fe(v)s(;)14 b Fk(const)31 b(string)g @@ -35185,7 +35162,7 @@ 1508 y Fi(p)l(aths)12 b Fe(:)p Fi(end)h Fm(\()h(\);)3209 1500 y Fg(+)-8 b(+)3307 1508 y Fi(iter)13 b Fm(\))42 b Fn(f)249 1608 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(dr)l(aw)14 b Fm(\()g(\))36 b Fl(1377)15 b Fn(i)166 +Fi(dr)l(aw)14 b Fm(\()g(\))36 b Fl(1382)15 b Fn(i)166 1708 y(g)166 1807 y Fi(c)p 209 1807 V 31 w(iter)36 b Fm(=)23 b Fe(v)s(:)p Fi(b)l(e)l(gin)11 b Fm(\()j(\);)166 1907 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Circle)32 @@ -35196,7 +35173,7 @@ b Fe(:)p Fi(end)h Fm(\()h(\);)3340 1899 y Fg(+)-8 b(+)3438 1907 y Fi(iter)13 b Fm(\))42 b Fn(f)249 2006 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(dr)l(aw)14 b -Fm(\()g(\))36 b Fl(1377)15 b Fn(i)166 2106 y(g)166 2206 +Fm(\()g(\))36 b Fl(1382)15 b Fn(i)166 2106 y(g)166 2206 y Fi(c)p 209 2206 V 31 w(iter)36 b Fm(=)23 b Fe(v)s(:)p Fi(b)l(e)l(gin)11 b Fm(\()j(\);)166 2305 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Ellipse)30 b Fn(\003i)8 @@ -35207,7 +35184,7 @@ 2305 y Fi(el)t(lipses)13 b Fe(:)p Fi(end)g Fm(\()h(\);)3435 2297 y Fg(+)-8 b(+)3533 2305 y Fi(iter)13 b Fm(\))42 b Fn(f)249 2405 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(dr)l(aw)14 b Fm(\()g(\))36 b Fl(1377)15 b Fn(i)166 +Fi(dr)l(aw)14 b Fm(\()g(\))36 b Fl(1382)15 b Fn(i)166 2505 y(g)166 b Fe(=)p Fn(\003)40 b Fk(for)47 b Fn(\003)p Fe(=)166 2604 y Fi(c)p 209 2604 V 31 w(iter)36 b Fm(=)23 b Fe(v)s(:)p Fi(b)l(e)l(gin)11 b Fm(\()j(\);)166 2704 @@ -35221,7 +35198,7 @@ V 31 w(p)l(olygons)12 b Fe(:)p Fi(end)h Fm(\()h(\);)1496 2795 y Fg(+)-8 b(+)1593 2803 y Fi(iter)14 b Fm(\))42 b Fn(f)249 2903 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(dr)l(aw)14 b Fm(\()g(\))36 b Fl(1377)15 b Fn(i)166 +Fi(dr)l(aw)14 b Fm(\()g(\))36 b Fl(1382)15 b Fn(i)166 3003 y(g)166 3102 y Fk(for)35 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Rectangle)35 b Fn(\003i)8 b Fm(::)h Fi(c)l(onst)p 1419 3102 V 30 w(iter)l(ator)k(iter)41 b Fm(=)27 b Fe(s)2007 @@ -35231,7 +35208,7 @@ b Fe(:)p Fi(end)h Fm(\()h(\);)419 3194 y Fg(+)-8 b(+)517 3202 y Fi(iter)13 b Fm(\))42 b Fn(f)249 3302 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(dr)l(aw)14 b -Fm(\()g(\))36 b Fl(1377)15 b Fn(i)166 3401 y(g)166 3501 +Fm(\()g(\))36 b Fl(1382)15 b Fn(i)166 3401 y(g)166 3501 y Fi(pictur)l(e)34 b Fm(+=)22 b Fk(dynamic)p 954 3501 29 5 v 40 w(cast)6 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)p Fm(\()p Fe(s)q Fm(\);)166 3601 y Fk(if)41 b Fm(\()p Ff(DEBUG)s @@ -35239,9 +35216,9 @@ Ff("Exiting)p Fj( )p Ff(Solid::)o(dr)o(aw)-6 b(\(\):")25 b Fn(\034)e Ff("\\n")j Fn(\034)d Fi(\015ush)11 b Fm(;)166 3800 y Fn(g)83 3899 y(g)p eop end -%%Page: 414 414 -TeXDict begin 414 413 bop 0 83 a Fm(414)140 b Fl(DRA)-8 -b(W)2680 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1380)0 263 y Fk(1380.)94 +%%Page: 418 418 +TeXDict begin 418 417 bop 0 83 a Fm(418)140 b Fl(DRA)-8 +b(W)2680 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1385)0 263 y Fk(1385.)94 b Fm(Pro)r(cess)28 b(v)n(ectors)f(for)i Fi(\014l)t(l)9 b Fm(\(\).)43 b([)p Fh(LDF)26 b(2002.10.09.)p Fm(])62 b(Added)30 b(this)g(section.)42 b(The)30 b(same)f(things)g(are)f(done)i @@ -35252,86 +35229,84 @@ Fi(r)l(e)l(ctangles)11 b Fm(,)36 b(so)d(I'v)n(e)h(put)h(the)f(co)r(de)g (in)h(this)0 462 y(named)28 b(section.)36 b(Eac)n(h)26 b(time)j(it)f(it's)f(used,)h Fi(iter)41 b Fm(is)28 b(an)f(iterator)f -(for)h(a)g(di\013eren)n(t)h(v)n(ector.)p 0 562 1643 4 -v 1738 594 a Fk(Begin)j(Log)p 2257 562 V 83 735 a Fm([)p -Fh(LDF)25 b(2003.08.10.)p Fm(])61 b(No)n(w)27 b(setting)h(p)r(en)g(to)f -Ff("")t Fm(,)h(b)r(ecause)f(I'v)n(e)g(remo)n(v)n(ed)f(the)i(p)r(en)g -(argumen)n(t)f(from)g Fi(\014l)t(l)13 b Fm(\()h(\).)p -0 827 1678 4 v 1773 859 a Fk(End)32 b(Log)p 2222 827 -V 0 984 a Fn(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(\014l)t(l)13 b Fm(\()h(\))36 b Fl(1380)15 b Fn(i)23 -b(\021)83 1084 y(f)166 1183 y Fk(if)41 b Fm(\()p Fi(c)p -338 1183 26 4 v 31 w(iter)c Fn(6)p Fm(=)22 b Fe(v)t(:)p -Fi(end)13 b Fm(\()h(\)\))42 b Fn(f)249 1283 y Fi(c)l(olor)p -428 1283 V 32 w(ptr)36 b Fm(=)23 b Fn(\003)o Fi(c)p 768 -1283 V 31 w(iter)937 1275 y Fg(+)-8 b(+)1035 1283 y Fm(;)166 -1382 y Fn(g)166 1482 y Fm(\()p Fn(\003\003)o Fi(iter)14 -b Fm(\))p Fe(:)p Fi(set)p 581 1482 V 30 w(\014l)t(l)p -704 1482 V 31 w(dr)l(aw)p 905 1482 V 32 w(value)d Fm(\()p -Ff(FILL)s Fm(\);)249 1582 y Fe(=)p Fn(\003)41 b Fm(LDF)28 +(for)h(a)g(di\013eren)n(t)h(v)n(ector.)p 0 561 1779 4 +v 1874 593 a Fk(Log)p 2122 561 V 83 734 a Fm([)p Fh(LDF)d(2003.08.10.)p +Fm(])61 b(No)n(w)27 b(setting)h(p)r(en)g(to)f Ff("")t +Fm(,)h(b)r(ecause)f(I'v)n(e)g(remo)n(v)n(ed)f(the)i(p)r(en)g(argumen)n +(t)f(from)g Fi(\014l)t(l)13 b Fm(\()h(\).)p 0 826 3900 +4 v 0 983 a Fn(h)g Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h +Fi(\014l)t(l)13 b Fm(\()h(\))36 b Fl(1385)15 b Fn(i)23 +b(\021)83 1083 y(f)166 1182 y Fk(if)41 b Fm(\()p Fi(c)p +338 1182 26 4 v 31 w(iter)c Fn(6)p Fm(=)22 b Fe(v)t(:)p +Fi(end)13 b Fm(\()h(\)\))42 b Fn(f)249 1282 y Fi(c)l(olor)p +428 1282 V 32 w(ptr)36 b Fm(=)23 b Fn(\003)o Fi(c)p 768 +1282 V 31 w(iter)937 1274 y Fg(+)-8 b(+)1035 1282 y Fm(;)166 +1382 y Fn(g)166 1481 y Fm(\()p Fn(\003\003)o Fi(iter)14 +b Fm(\))p Fe(:)p Fi(set)p 581 1481 V 30 w(\014l)t(l)p +704 1481 V 31 w(dr)l(aw)p 905 1481 V 32 w(value)d Fm(\()p +Ff(FILL)s Fm(\);)249 1581 y Fe(=)p Fn(\003)41 b Fm(LDF)28 b(2002.10.09.)33 b(Added)28 b(co)r(de)g(for)f(handling)g -Fi(dr)l(aw)p 2109 1582 V 31 w(c)l(olor)42 b Fm(and)28 -b Fi(\014l)t(l)p 2611 1582 V 31 w(c)l(olor)14 b Fm(.)51 +Fi(dr)l(aw)p 2109 1581 V 31 w(c)l(olor)42 b Fm(and)28 +b Fi(\014l)t(l)p 2611 1581 V 31 w(c)l(olor)14 b Fm(.)51 b Fn(\003)p Fe(=)166 1681 y Fk(if)41 b Fm(\()p Ff(DEBUG)s -Fm(\))h Fn(f)249 1781 y Fi(c)l(out)35 b Fn(\034)23 b +Fm(\))h Fn(f)249 1780 y Fi(c)l(out)35 b Fn(\034)23 b Ff("color_ptr->get_)o(us)o(e_)-6 b(name\(\))p Fj( )p Ff(==)p Fj( )p Ff(")22 b Fn(\034)i Fi(c)l(olor)p 2203 -1781 V 31 w(ptr)2331 1806 y Fe(~)2381 1781 y Fi(get)p -2490 1781 V 30 w(use)p 2637 1781 V 30 w(name)11 b Fm(\()j(\))23 +1780 V 31 w(ptr)2331 1805 y Fe(~)2381 1780 y Fi(get)p +2490 1780 V 30 w(use)p 2637 1780 V 30 w(name)11 b Fm(\()j(\))23 b Fn(\034)h Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 -b Fm(;)166 1881 y Fn(g)166 1980 y Fk(if)41 b Fm(\()p -Fi(c)l(olor)p 474 1980 V 32 w(ptr)603 2005 y Fe(~)653 +b Fm(;)166 1880 y Fn(g)166 1980 y Fk(if)41 b Fm(\()p +Fi(c)l(olor)p 474 1980 V 32 w(ptr)603 2004 y Fe(~)653 1980 y Fi(get)p 762 1980 V 30 w(use)p 909 1980 V 30 w(name)11 b Fm(\()j(\))23 b Fn(\021)g Fi(false)12 b Fm(\))42 b -Fn(f)249 2080 y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 +Fn(f)249 2079 y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Allocating)p Fj( )p Ff(memor)o(y)p Fj( )p Ff(f)-7 b(or)p Fj( )p Ff(Color.\\n")23 b Fn(\034)g Fi(\015ush)10 b Fm(;)249 2204 y Fk(Color)32 b Fn(\003)o Fe(c)23 b Fm(=)g Fk(Color)12 b Fm(::)d Fi(cr)l(e)l(ate)p 1214 2204 V 30 w(new)p 1384 2204 V 31 w(c)l(olor)14 b -Fm(\()g(\);)249 2329 y Fn(\003)p Fe(c)23 b Fm(=)f Fn(\003)p -Fi(c)l(olor)p 658 2329 V 31 w(ptr)14 b Fm(;)249 2429 +Fm(\()g(\);)249 2328 y Fn(\003)p Fe(c)23 b Fm(=)f Fn(\003)p +Fi(c)l(olor)p 658 2328 V 31 w(ptr)14 b Fm(;)249 2428 y(\()p Fn(\003\003)o Fi(iter)g Fm(\))p Fe(:)p Fi(set)p -664 2429 V 30 w(\014l)t(l)p 787 2429 V 31 w(c)l(olor)h -Fm(\()p Fe(c)p Fm(\);)166 2528 y Fn(g)166 2628 y Fk(else)45 +664 2428 V 30 w(\014l)t(l)p 787 2428 V 31 w(c)l(olor)h +Fm(\()p Fe(c)p Fm(\);)166 2527 y Fn(g)166 2627 y Fk(else)45 b Fn(f)249 2727 y Fk(if)c Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("color_ptr->get_n)o(ame)-7 b(\(\))p Fj( )p Ff(==)p Fj( )p Ff(")25 b Fn(\034)e Fi(c)l(olor)p 2454 2727 V 31 w(ptr)2582 2752 y Fe(~)2632 2727 y Fi(get)p 2741 2727 V 30 w(name)11 b Fm(\()j(\))23 b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)11 b Fm(;)249 -2827 y(\()p Fn(\003\003)o Fi(iter)j Fm(\))p Fe(:)p Fi(set)p -664 2827 V 30 w(\014l)t(l)p 787 2827 V 31 w(c)l(olor)h -Fm(\()p Fi(c)l(olor)p 1213 2827 V 31 w(ptr)f Fm(\);)166 -2927 y Fn(g)166 3026 y Fm(\()p Fn(\003\003)o Fi(iter)g +2826 y(\()p Fn(\003\003)o Fi(iter)j Fm(\))p Fe(:)p Fi(set)p +664 2826 V 30 w(\014l)t(l)p 787 2826 V 31 w(c)l(olor)h +Fm(\()p Fi(c)l(olor)p 1213 2826 V 31 w(ptr)f Fm(\);)166 +2926 y Fn(g)166 3026 y Fm(\()p Fn(\003\003)o Fi(iter)g Fm(\))p Fe(:)p Fi(set)p 581 3026 V 30 w(dr)l(aw)p 781 3026 V 32 w(c)l(olor)g Fm(\()p Fk(static)p 1259 3026 29 5 v 41 w(cast)5 b Fn(h)p Fk(Color)32 b Fn(\003i)p -Fm(\(0\)\);)166 3126 y(\()p Fn(\003\003)o Fi(iter)14 -b Fm(\))p Fe(:)p Fi(set)p 581 3126 26 4 v 30 w(dash)p -771 3126 V 32 w(p)l(attern)c Fm(\()p Ff("")t Fm(\);)166 -3226 y(\()p Fn(\003\003)o Fi(iter)k Fm(\))p Fe(:)p Fi(set)p -581 3226 V 30 w(p)l(en)d Fm(\()p Ff("")t Fm(\);)83 3325 -y Fn(g)0 3433 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i -(1382.)0 3632 y Fk(1381.)94 b(Fill.)p 0 3708 1643 4 v -1738 3741 a(Begin)31 b(Log)p 2257 3708 V 83 3881 a Fm([)p -Fh(LDF)25 b(2003.08.10.)p Fm(])61 b(Remo)n(v)n(ed)27 -b(p)r(en)h(argumen)n(t,)e(since)i(\014lling)g(do)r(esn't)f(use)h(a)f(p) -r(en.)p 0 3973 1678 4 v 1773 4006 a Fk(End)32 b(Log)p -2222 3973 V 0 4130 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k -Fm(functions)36 b Fl(1294)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4230 y Fk(virtual)39 b(v)m(oid)g Fi(\014l)t(l)14 b Fm(\()p +Fm(\(0\)\);)166 3125 y(\()p Fn(\003\003)o Fi(iter)14 +b Fm(\))p Fe(:)p Fi(set)p 581 3125 26 4 v 30 w(dash)p +771 3125 V 32 w(p)l(attern)c Fm(\()p Ff("")t Fm(\);)166 +3225 y(\()p Fn(\003\003)o Fi(iter)k Fm(\))p Fe(:)p Fi(set)p +581 3225 V 30 w(p)l(en)d Fm(\()p Ff("")t Fm(\);)83 3324 +y Fn(g)0 3432 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i +(1387.)0 3632 y Fk(1386.)94 b(Fill.)p 0 3707 1779 4 v +1874 3740 a(Log)p 2122 3707 V 83 3881 a Fm([)p Fh(LDF)25 +b(2003.08.10.)p Fm(])61 b(Remo)n(v)n(ed)27 b(p)r(en)h(argumen)n(t,)e +(since)i(\014lling)g(do)r(esn't)f(use)h(a)f(p)r(en.)p +0 3973 3900 4 v 0 4130 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k +Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4229 y Fk(virtual)39 b(v)m(oid)g Fi(\014l)t(l)14 b Fm(\()p Fk(const)39 b(v)m(ector)6 b Fn(h)p Fk(const)39 b(Color)f Fn(\003i)c Fe(v)j Fm(=)d Fk(Colors)12 b Fm(::)c Fi(default)p -2697 4230 26 4 v 32 w(c)l(olor)p 2903 4230 V 31 w(ve)l(ctor)14 -b Fe(;)g Fk(Picture)249 4330 y Fm(&)p Fi(pictur)l(e)33 -b Fm(=)23 b Fi(curr)l(ent)p 949 4330 V 30 w(pictur)l(e)10 +2697 4229 26 4 v 32 w(c)l(olor)p 2903 4229 V 31 w(ve)l(ctor)14 +b Fe(;)g Fk(Picture)249 4329 y Fm(&)p Fi(pictur)l(e)33 +b Fm(=)23 b Fi(curr)l(ent)p 949 4329 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 415 415 -TeXDict begin 415 414 bop 0 83 a Fn(x)p Fm(1382)139 b -Fl(3DLDFPR)n(G)2745 b(FILL)141 b Fm(415)0 263 y Fk(1382.)0 +%%Page: 419 419 +TeXDict begin 419 418 bop 0 83 a Fn(x)p Fm(1387)139 b +Fl(3DLDFPR)n(G)2745 b(FILL)141 b Fm(419)0 263 y Fk(1387.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(Solid)11 b Fm(::)d Fi(\014l)t(l)14 b Fm(\()p Fk(const)33 b(v)m(ector)6 b Fn(h)p Fk(const)32 b(Color)g Fn(\003i)c Fe(v)s(;)14 b Fk(Picture)33 b Fm(&)o Fi(pictur)l(e)11 @@ -35359,7 +35334,7 @@ 1409 y Fi(p)l(aths)12 b Fe(:)p Fi(end)h Fm(\()h(\);)3209 1401 y Fg(+)-8 b(+)3307 1409 y Fi(iter)13 b Fm(\))42 b Fn(f)249 1508 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(\014l)t(l)13 b Fm(\()h(\))36 b Fl(1380)15 b Fn(i)166 +Fi(\014l)t(l)13 b Fm(\()h(\))36 b Fl(1385)15 b Fn(i)166 1608 y(g)166 1708 y Fi(c)p 209 1708 V 31 w(iter)36 b Fm(=)23 b Fe(v)s(:)p Fi(b)l(e)l(gin)11 b Fm(\()j(\);)166 1807 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Circle)32 @@ -35370,7 +35345,7 @@ b Fe(:)p Fi(end)h Fm(\()h(\);)3340 1799 y Fg(+)-8 b(+)3438 1807 y Fi(iter)13 b Fm(\))42 b Fn(f)249 1907 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(\014l)t(l)13 -b Fm(\()h(\))36 b Fl(1380)15 b Fn(i)166 2006 y(g)166 +b Fm(\()h(\))36 b Fl(1385)15 b Fn(i)166 2006 y(g)166 2106 y Fi(c)p 209 2106 V 31 w(iter)36 b Fm(=)23 b Fe(v)s(:)p Fi(b)l(e)l(gin)11 b Fm(\()j(\);)166 2206 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Ellipse)30 b Fn(\003i)8 @@ -35381,7 +35356,7 @@ 2206 y Fi(el)t(lipses)13 b Fe(:)p Fi(end)g Fm(\()h(\);)3435 2198 y Fg(+)-8 b(+)3533 2206 y Fi(iter)13 b Fm(\))42 b Fn(f)249 2305 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(\014l)t(l)13 b Fm(\()h(\))36 b Fl(1380)15 b Fn(i)166 +Fi(\014l)t(l)13 b Fm(\()h(\))36 b Fl(1385)15 b Fn(i)166 2405 y(g)166 2505 y Fi(c)p 209 2505 V 31 w(iter)36 b Fm(=)23 b Fe(v)s(:)p Fi(b)l(e)l(gin)11 b Fm(\()j(\);)166 2604 y Fk(for)47 b Fm(\()p Fk(v)m(ector)7 b Fn(h)p Fk(Reg)p @@ -35394,7 +35369,7 @@ V 31 w(p)l(olygons)12 b Fe(:)p Fi(end)h Fm(\()h(\);)1496 2696 y Fg(+)-8 b(+)1593 2704 y Fi(iter)14 b Fm(\))42 b Fn(f)249 2803 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(\014l)t(l)13 b Fm(\()h(\))36 b Fl(1380)15 b Fn(i)166 +Fi(\014l)t(l)13 b Fm(\()h(\))36 b Fl(1385)15 b Fn(i)166 2903 y(g)166 3003 y Fi(c)p 209 3003 V 31 w(iter)36 b Fm(=)23 b Fe(v)s(:)p Fi(b)l(e)l(gin)11 b Fm(\()j(\);)166 3102 y Fk(for)35 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Rectangle)35 @@ -35405,7 +35380,7 @@ 3102 y Fi(r)l(e)l(ctangles)12 b Fe(:)p Fi(end)h Fm(\()h(\);)419 3194 y Fg(+)-8 b(+)517 3202 y Fi(iter)13 b Fm(\))42 b Fn(f)249 3302 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(\014l)t(l)13 b Fm(\()h(\))36 b Fl(1380)15 b Fn(i)166 +Fi(\014l)t(l)13 b Fm(\()h(\))36 b Fl(1385)15 b Fn(i)166 3401 y(g)166 3501 y Fi(pictur)l(e)34 b Fm(+=)22 b Fk(dynamic)p 954 3501 29 5 v 40 w(cast)6 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)p Fm(\()p Fe(s)q Fm(\);)166 3601 y Fk(if)41 @@ -35413,9 +35388,9 @@ b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Solid::)o(fi)o(ll)-6 b(\(\):")25 b Fn(\034)e Ff("\\n")j Fn(\034)d Fi(\015ush)11 b Fm(;)166 3800 y Fn(g)83 3899 y(g)p eop end -%%Page: 416 416 -TeXDict begin 416 415 bop 0 83 a Fm(416)140 b Fl(FILL)2744 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1383)0 263 y Fk(1383.)94 +%%Page: 420 420 +TeXDict begin 420 419 bop 0 83 a Fm(420)140 b Fl(FILL)2744 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1388)0 263 y Fk(1388.)94 b Fm(Pro)r(cess)29 b(v)n(ectors)g(for)g Fi(\014l)t(ldr)l(aw)9 b Fm(\(\).)48 b([)p Fh(LDF)25 b(2002.10.09.)p Fm(])64 b(Added)31 b(this)g(section.)45 b(The)30 b(same)g(things)h(are)e(done)h @@ -35428,7 +35403,7 @@ b(time)i(it)g(it's)g(used,)g Fi(iter)41 b Fm(is)27 b(an)h(iterator)e (for)h(a)g(di\013eren)n(t)h(v)n(ector.)0 584 y Fn(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(\014l)t(ldr)l(aw)14 -b Fm(\()g(\))36 b Fl(1383)15 b Fn(i)23 b(\021)83 683 +b Fm(\()g(\))36 b Fl(1388)15 b Fn(i)23 b(\021)83 683 y(f)166 783 y Fk(if)41 b Fm(\()p Fi(dr)l(aw)p 470 783 V 32 w(c)l(olor)p 676 783 V 31 w(iter)c Fn(6)p Fm(=)23 b Fi(dr)l(aw)p 1128 783 V 31 w(c)l(olors)12 b Fe(:)p @@ -35519,8 +35494,8 @@ Fm(\))p Fe(:)p Fi(set)p 581 4556 V 30 w(dash)p 771 4556 V 32 w(p)l(attern)c Fm(\()p Fi(ddashe)l(d)16 b Fm(\);)83 4655 y Fn(g)0 4760 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i -(1385.)0 4959 y Fk(1384.)94 b(Filldra)m(w.)0 5080 y Fn(h)14 -b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1294)15 +(1390.)0 4959 y Fk(1389.)94 b(Filldra)m(w.)0 5080 y Fn(h)14 +b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 5180 y Fk(virtual)32 b(v)m(oid)h Fi(\014l)t(ldr)l(aw)14 b Fm(\()p Fk(const)32 b(v)m(ector)6 b Fn(h)p Fk(const)32 b(Color)g Fn(\003)o(i)c Fi(dr)l(aw)p @@ -35536,11 +35511,11 @@ b Fm(&)o Fi(pictur)l(e)h Fm(=)23 b Fi(curr)l(ent)p 2762 5379 V 29 w(pictur)l(e)11 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 417 417 -TeXDict begin 417 416 bop 0 83 a Fn(x)p Fm(1385)139 b -Fl(3DLDFPR)n(G)2521 b(FILLDRA)-8 b(W)142 b Fm(417)0 263 -y Fk(1385.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k -Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 421 421 +TeXDict begin 421 420 bop 0 83 a Fn(x)p Fm(1390)139 b +Fl(3DLDFPR)n(G)2521 b(FILLDRA)-8 b(W)142 b Fm(421)0 263 +y Fk(1390.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)37 b(Solid)11 b Fm(::)d Fi(\014l)t(ldr)l(aw)15 b Fm(\()p Fk(const)37 b(v)m(ector)6 b Fn(h)p Fk(const)37 b(Color)e Fn(\003i)d Fi(dr)l(aw)p 2230 487 26 4 v 31 @@ -35580,7 +35555,7 @@ 1708 y Fi(p)l(aths)12 b Fe(:)p Fi(end)h Fm(\()h(\);)3209 1700 y Fg(+)-8 b(+)3307 1708 y Fi(iter)13 b Fm(\))42 b Fn(f)249 1807 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(\014l)t(ldr)l(aw)14 b Fm(\()h(\))35 b Fl(1383)15 b +Fi(\014l)t(ldr)l(aw)14 b Fm(\()h(\))35 b Fl(1388)15 b Fn(i)166 1907 y(g)166 2006 y Fi(dr)l(aw)p 341 2006 V 31 w(c)l(olor)p 546 2006 V 32 w(iter)36 b Fm(=)23 b Fi(dr)l(aw)p 998 2006 V 31 w(c)l(olors)12 b Fe(:)p Fi(b)l(e)l(gin)f @@ -35595,7 +35570,7 @@ b Fe(:)p Fi(end)h Fm(\()h(\);)3340 2198 y Fg(+)-8 b(+)3438 2206 y Fi(iter)13 b Fm(\))42 b Fn(f)249 2305 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(\014l)t(ldr)l(aw)14 -b Fm(\()h(\))35 b Fl(1383)15 b Fn(i)166 2405 y(g)166 +b Fm(\()h(\))35 b Fl(1388)15 b Fn(i)166 2405 y(g)166 2505 y Fi(dr)l(aw)p 341 2505 V 31 w(c)l(olor)p 546 2505 V 32 w(iter)36 b Fm(=)23 b Fi(dr)l(aw)p 998 2505 V 31 w(c)l(olors)12 b Fe(:)p Fi(b)l(e)l(gin)f Fm(\()j(\);)166 @@ -35610,7 +35585,7 @@ 2704 y Fi(el)t(lipses)13 b Fe(:)p Fi(end)g Fm(\()h(\);)3435 2696 y Fg(+)-8 b(+)3533 2704 y Fi(iter)13 b Fm(\))42 b Fn(f)249 2803 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(\014l)t(ldr)l(aw)14 b Fm(\()h(\))35 b Fl(1383)15 b +Fi(\014l)t(ldr)l(aw)14 b Fm(\()h(\))35 b Fl(1388)15 b Fn(i)166 2903 y(g)166 3003 y Fi(dr)l(aw)p 341 3003 V 31 w(c)l(olor)p 546 3003 V 32 w(iter)36 b Fm(=)23 b Fi(dr)l(aw)p 998 3003 V 31 w(c)l(olors)12 b Fe(:)p Fi(b)l(e)l(gin)f @@ -35627,7 +35602,7 @@ V 31 w(p)l(olygons)12 b Fe(:)p Fi(end)h Fm(\()h(\);)1496 3294 y Fg(+)-8 b(+)1593 3302 y Fi(iter)14 b Fm(\))42 b Fn(f)249 3401 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(\014l)t(ldr)l(aw)14 b Fm(\()h(\))35 b Fl(1383)15 b +Fi(\014l)t(ldr)l(aw)14 b Fm(\()h(\))35 b Fl(1388)15 b Fn(i)166 3501 y(g)166 3601 y Fk(for)35 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Rectangle)35 b Fn(\003i)8 b Fm(::)h Fi(c)l(onst)p 1419 3601 V 30 w(iter)l(ator)k(iter)41 b Fm(=)27 b Fe(s)2007 @@ -35637,7 +35612,7 @@ b Fe(:)p Fi(end)h Fm(\()h(\);)419 3692 y Fg(+)-8 b(+)517 3700 y Fi(iter)13 b Fm(\))42 b Fn(f)249 3800 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(\014l)t(ldr)l(aw)14 -b Fm(\()h(\))35 b Fl(1383)15 b Fn(i)166 3899 y(g)166 +b Fm(\()h(\))35 b Fl(1388)15 b Fn(i)166 3899 y(g)166 3999 y Fi(pictur)l(e)34 b Fm(+=)22 b Fk(dynamic)p 954 3999 29 5 v 40 w(cast)6 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)p Fm(\()p Fe(s)q Fm(\);)166 4099 y Fk(if)41 b Fm(\()p Ff(DEBUG)s @@ -35645,9 +35620,9 @@ Ff("Exiting)p Fj( )p Ff(Solid::)o(fi)o(ll)-6 b(draw\(\):")24 b Fn(\034)f Ff("\\n")j Fn(\034)d Fi(\015ush)10 b Fm(;)166 4298 y Fn(g)83 4398 y(g)p eop end -%%Page: 418 418 -TeXDict begin 418 417 bop 0 83 a Fm(418)140 b Fl(FILLDRA)-8 -b(W)2521 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1386)0 263 y Fk(1386.)94 +%%Page: 422 422 +TeXDict begin 422 421 bop 0 83 a Fm(422)140 b Fl(FILLDRA)-8 +b(W)2521 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1391)0 263 y Fk(1391.)94 b Fm(Pro)r(cess)29 b(v)n(ectors)g(for)h Fi(undr)l(aw)9 b Fm(\(\).)46 b([)p Fh(LDF)26 b(2002.10.09.)p Fm(])63 b(Added)32 b(this)f(section.)45 b(The)31 b(same)f(things)g(are)g(done)g @@ -35660,7 +35635,7 @@ b(time)i(it)g(it's)g(used,)g Fi(iter)41 b Fm(is)27 b(an)h(iterator)e (for)h(a)g(di\013eren)n(t)h(v)n(ector.)0 587 y Fn(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(undr)l(aw)13 -b Fm(\()h(\))36 b Fl(1386)15 b Fn(i)23 b(\021)83 686 +b Fm(\()h(\))36 b Fl(1391)15 b Fn(i)23 b(\021)83 686 y(f)166 786 y Fm(\()p Fn(\003\003)o Fi(iter)14 b Fm(\))p Fe(:)p Fi(set)p 581 786 V 30 w(\014l)t(l)p 704 786 V 31 w(dr)l(aw)p 905 786 V 32 w(value)d Fm(\()p Ff(UNDRAW)r @@ -35677,17 +35652,17 @@ Fm(\()p Fi(ddashe)l(d)16 b Fm(\);)166 1185 y(\()p Fn(\003\003)o Fi(iter)e Fm(\))p Fe(:)p Fi(set)p 581 1185 V 30 w(p)l(en)d Fm(\()p Fi(pp)l(en)g Fm(\);)83 1284 y Fn(g)0 1392 y Fl(This)23 -b(co)r(de)i(is)e(used)h(in)f(section)i(1388.)0 1591 y -Fk(1387.)94 b(Undra)m(w.)0 1716 y Fn(h)14 b Fm(Declare)27 -b Fk(Solid)k Fm(functions)36 b Fl(1294)15 b Fn(i)23 b +b(co)r(de)i(is)e(used)h(in)f(section)i(1393.)0 1591 y +Fk(1392.)94 b(Undra)m(w.)0 1716 y Fn(h)14 b Fm(Declare)27 +b Fk(Solid)k Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1816 y Fk(virtual)42 b(v)m(oid)g Fi(undr)l(aw)13 b Fm(\()p Fk(const)42 b(string)h Fi(ddashe)l(d)53 b Fm(=)39 b Ff("")s Fe(;)14 b Fk(const)42 b(string)g Fi(pp)l(en)50 b Fm(=)38 b Ff("")t Fe(;)14 b Fk(Picture)249 1915 y Fm(&)p Fi(pictur)l(e)33 b Fm(=)23 b Fi(curr)l(ent)p 949 1915 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)0 -2114 y Fk(1388.)0 2239 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k -Fm(functions)j Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2114 y Fk(1393.)0 2239 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k +Fm(functions)j Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2339 y Fk(v)m(oid)33 b(Solid)11 b Fm(::)d Fi(undr)l(aw)14 b Fm(\()p Fk(const)33 b(string)g Fi(ddashe)l(d)15 b Fe(;)f Fk(const)32 b(string)h Fi(pp)l(en)12 b Fe(;)i Fk(Picture)32 @@ -35710,7 +35685,7 @@ b Fe(:)p Fi(end)h Fm(\()h(\);)3209 3003 y Fg(+)-8 b(+)3307 3011 y Fi(iter)13 b Fm(\))42 b Fn(f)249 3111 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(undr)l(aw)13 -b Fm(\()h(\))36 b Fl(1386)15 b Fn(i)166 3210 y(g)166 +b Fm(\()h(\))36 b Fl(1391)15 b Fn(i)166 3210 y(g)166 3310 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Circle)32 b Fn(\003i)8 b Fm(::)h Fi(c)l(onst)p 1249 3310 V 30 w(iter)l(ator)k (iter)37 b Fm(=)23 b Fe(s)1829 3335 y(~)1879 3310 y Fi(cir)l(cles)12 @@ -35719,7 +35694,7 @@ b Fe(:)p Fi(end)h Fm(\()h(\);)3340 3302 y Fg(+)-8 b(+)3438 3310 y Fi(iter)13 b Fm(\))42 b Fn(f)249 3410 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(undr)l(aw)13 -b Fm(\()h(\))36 b Fl(1386)15 b Fn(i)166 3509 y(g)166 +b Fm(\()h(\))36 b Fl(1391)15 b Fn(i)166 3509 y(g)166 3609 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Ellipse)30 b Fn(\003i)8 b Fm(::)h Fi(c)l(onst)p 1278 3609 V 30 w(iter)l(ator)14 b(iter)36 b Fm(=)23 b Fe(s)1858 3634 y(~)1908 3609 y @@ -35728,7 +35703,7 @@ 3609 y Fi(el)t(lipses)13 b Fe(:)p Fi(end)g Fm(\()h(\);)3435 3601 y Fg(+)-8 b(+)3533 3609 y Fi(iter)13 b Fm(\))42 b Fn(f)249 3708 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(undr)l(aw)13 b Fm(\()h(\))36 b Fl(1386)15 b Fn(i)166 +Fi(undr)l(aw)13 b Fm(\()h(\))36 b Fl(1391)15 b Fn(i)166 3808 y(g)166 3908 y Fk(for)47 b Fm(\()p Fk(v)m(ector)7 b Fn(h)p Fk(Reg)p 825 3908 29 5 v 39 w(P)m(olygon)47 b Fn(\003)o(i)8 b Fm(::)h Fi(c)l(onst)p 1569 3908 26 @@ -35739,7 +35714,7 @@ 845 4007 V 31 w(p)l(olygons)12 b Fe(:)p Fi(end)h Fm(\()h(\);)1496 3999 y Fg(+)-8 b(+)1593 4007 y Fi(iter)14 b Fm(\))42 b Fn(f)249 4107 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(undr)l(aw)13 b Fm(\()h(\))36 b Fl(1386)15 b Fn(i)166 +Fi(undr)l(aw)13 b Fm(\()h(\))36 b Fl(1391)15 b Fn(i)166 4207 y(g)166 4306 y Fk(for)35 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Rectangle)35 b Fn(\003i)8 b Fm(::)h Fi(c)l(onst)p 1419 4306 V 30 w(iter)l(ator)k(iter)41 b Fm(=)27 b Fe(s)2007 @@ -35749,7 +35724,7 @@ b Fe(:)p Fi(end)h Fm(\()h(\);)419 4398 y Fg(+)-8 b(+)517 4406 y Fi(iter)13 b Fm(\))42 b Fn(f)249 4505 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(undr)l(aw)13 -b Fm(\()h(\))36 b Fl(1386)15 b Fn(i)166 4605 y(g)166 +b Fm(\()h(\))36 b Fl(1391)15 b Fn(i)166 4605 y(g)166 4705 y Fi(pictur)l(e)34 b Fm(+=)22 b Fk(dynamic)p 954 4705 29 5 v 40 w(cast)6 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)p Fm(\()p Fe(s)q Fm(\);)166 4804 y Fk(if)41 b Fm(\()p Ff(DEBUG)s @@ -35757,60 +35732,58 @@ Ff("Exiting)p Fj( )p Ff(Solid::)o(un)o(dr)-6 b(aw\(\):")25 b Fn(\034)e Ff("\\n")i Fn(\034)e Fi(\015ush)11 b Fm(;)166 5004 y Fn(g)83 5103 y(g)p eop end -%%Page: 419 419 -TeXDict begin 419 418 bop 0 83 a Fn(x)p Fm(1389)139 b -Fl(3DLDFPR)n(G)2575 b(UNDRA)-8 b(W)141 b Fm(419)0 263 -y Fk(1389.)94 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(un\014l)t(l)9 b Fm(\(\).)p 0 367 1643 4 v 1738 400 -a Fk(Begin)31 b(Log)p 2257 367 V 83 540 a Fm([)p Fh(LDF)25 -b(2002.10.09.)p Fm(])66 b(Added)32 b(this)g(section.)50 -b(The)32 b(same)g(things)f(are)g(done)h(to)g(eac)n(h)f(of)h(the)h -Fk(Shap)s(e)j Fn(\003)c Fm(v)n(ectors)e Fi(p)l(aths)12 -b Fm(,)0 640 y Fi(el)t(lipses)h Fm(,)30 b Fi(cir)l(cles)12 -b Fm(,)31 b Fi(r)l(e)l(g)p 722 640 26 4 v 31 w(p)l(olygons)12 -b Fm(,)31 b(and)e Fi(r)l(e)l(ctangles)11 b Fm(,)31 b(so)e(I'v)n(e)h -(put)g(the)g(co)r(de)g(in)g(this)g(named)g(section.)43 -b(Eac)n(h)29 b(time)i(it)f(it's)0 739 y(used,)e Fi(iter)41 -b Fm(is)27 b(an)h(iterator)e(for)h(a)g(di\013eren)n(t)h(v)n(ector.)83 -839 y([)p Fh(LDF)d(2003.08.10.)p Fm(])61 b(No)n(w)27 -b(setting)h(p)r(en)g(to)f Ff("")t Fm(,)h(since)f(I'v)n(e)g(remo)n(v)n -(ed)f(the)i(p)r(en)g(argumen)n(t)f(to)g Fi(un\014l)t(l)13 -b Fm(\()h(\).)p 0 931 1678 4 v 1773 964 a Fk(End)32 b(Log)p -2222 931 V 0 1088 a Fn(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(un\014l)t(l)12 b Fm(\()j(\))35 b Fl(1389)15 b Fn(i)23 -b(\021)83 1188 y(f)166 1287 y Fm(\()p Fn(\003\003)o Fi(iter)14 +%%Page: 423 423 +TeXDict begin 423 422 bop 0 83 a Fn(x)p Fm(1394)139 b +Fl(3DLDFPR)n(G)2575 b(UNDRA)-8 b(W)141 b Fm(423)0 263 +y Fk(1394.)94 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h +Fi(un\014l)t(l)9 b Fm(\(\).)p 0 366 1779 4 v 1874 399 +a Fk(Log)p 2122 366 V 83 540 a Fm([)p Fh(LDF)25 b(2002.10.09.)p +Fm(])66 b(Added)32 b(this)g(section.)50 b(The)32 b(same)g(things)f(are) +g(done)h(to)g(eac)n(h)f(of)h(the)h Fk(Shap)s(e)j Fn(\003)c +Fm(v)n(ectors)e Fi(p)l(aths)12 b Fm(,)0 639 y Fi(el)t(lipses)h +Fm(,)30 b Fi(cir)l(cles)12 b Fm(,)31 b Fi(r)l(e)l(g)p +722 639 26 4 v 31 w(p)l(olygons)12 b Fm(,)31 b(and)e +Fi(r)l(e)l(ctangles)11 b Fm(,)31 b(so)e(I'v)n(e)h(put)g(the)g(co)r(de)g +(in)g(this)g(named)g(section.)43 b(Eac)n(h)29 b(time)i(it)f(it's)0 +739 y(used,)e Fi(iter)41 b Fm(is)27 b(an)h(iterator)e(for)h(a)g +(di\013eren)n(t)h(v)n(ector.)83 838 y([)p Fh(LDF)d(2003.08.10.)p +Fm(])61 b(No)n(w)27 b(setting)h(p)r(en)g(to)f Ff("")t +Fm(,)h(since)f(I'v)n(e)g(remo)n(v)n(ed)f(the)i(p)r(en)g(argumen)n(t)f +(to)g Fi(un\014l)t(l)13 b Fm(\()h(\).)p 0 930 3900 4 +v 0 1087 a Fn(h)g Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h +Fi(un\014l)t(l)12 b Fm(\()j(\))35 b Fl(1394)15 b Fn(i)23 +b(\021)83 1187 y(f)166 1287 y Fm(\()p Fn(\003\003)o Fi(iter)14 b Fm(\))p Fe(:)p Fi(set)p 581 1287 26 4 v 30 w(\014l)t(l)p 704 1287 V 31 w(dr)l(aw)p 905 1287 V 32 w(value)d Fm(\()p -Ff(UNFILL)r Fm(\);)166 1387 y(\()p Fn(\003\003)o Fi(iter)j -Fm(\))p Fe(:)p Fi(set)p 581 1387 V 30 w(dr)l(aw)p 781 -1387 V 32 w(c)l(olor)g Fm(\()p Fk(static)p 1259 1387 +Ff(UNFILL)r Fm(\);)166 1386 y(\()p Fn(\003\003)o Fi(iter)j +Fm(\))p Fe(:)p Fi(set)p 581 1386 V 30 w(dr)l(aw)p 781 +1386 V 32 w(c)l(olor)g Fm(\()p Fk(static)p 1259 1386 29 5 v 41 w(cast)5 b Fn(h)p Fk(Color)32 b Fn(\003i)p -Fm(\(0\)\);)166 1487 y(\()p Fn(\003\003)o Fi(iter)14 -b Fm(\))p Fe(:)p Fi(set)p 581 1487 26 4 v 30 w(\014l)t(l)p -704 1487 V 31 w(c)l(olor)h Fm(\()p Fk(static)p 1182 1487 +Fm(\(0\)\);)166 1486 y(\()p Fn(\003\003)o Fi(iter)14 +b Fm(\))p Fe(:)p Fi(set)p 581 1486 26 4 v 30 w(\014l)t(l)p +704 1486 V 31 w(c)l(olor)h Fm(\()p Fk(static)p 1182 1486 29 5 v 40 w(cast)6 b Fn(h)p Fk(Color)32 b Fn(\003)o(i)p Fm(\(0\)\);)166 1586 y(\()p Fn(\003\003)o Fi(iter)14 b Fm(\))p Fe(:)p Fi(set)p 581 1586 26 4 v 30 w(dash)p 771 1586 V 32 w(p)l(attern)c Fm(\()p Ff("")t Fm(\);)166 -1686 y(\()p Fn(\003\003)o Fi(iter)k Fm(\))p Fe(:)p Fi(set)p -581 1686 V 30 w(p)l(en)d Fm(\()p Ff("")t Fm(\);)83 1786 +1685 y(\()p Fn(\003\003)o Fi(iter)k Fm(\))p Fe(:)p Fi(set)p +581 1685 V 30 w(p)l(en)d Fm(\()p Ff("")t Fm(\);)83 1785 y Fn(g)0 1893 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i -(1391.)0 2093 y Fk(1390.)94 b(Un\014ll.)p 0 2168 1643 -4 v 1738 2201 a(Begin)31 b(Log)p 2257 2168 V 83 2342 -a Fm([)p Fh(LDF)25 b(2003.08.10.)p Fm(])61 b(Remo)n(v)n(ed)27 -b(the)h(p)r(en)g(argumen)n(t,)e(since)i(un\014lling)g(do)r(esn't)f(use) -h(a)f(p)r(en.)p 0 2434 1678 4 v 1773 2466 a Fk(End)32 -b(Log)p 2222 2434 V 0 2591 a Fn(h)14 b Fm(Declare)27 -b Fk(Solid)k Fm(functions)36 b Fl(1294)15 b Fn(i)23 b -Fm(+)p Fn(\021)83 2690 y Fk(virtual)33 b(v)m(oid)f Fi(un\014l)t(l)13 -b Fm(\()p Fk(Picture)33 b Fm(&)o Fi(pictur)l(e)h Fm(=)23 +(1396.)0 2092 y Fk(1395.)94 b(Un\014ll.)p 0 2168 1779 +4 v 1874 2200 a(Log)p 2122 2168 V 83 2341 a Fm([)p Fh(LDF)25 +b(2003.08.10.)p Fm(])61 b(Remo)n(v)n(ed)27 b(the)h(p)r(en)g(argumen)n +(t,)e(since)i(un\014lling)g(do)r(esn't)f(use)h(a)f(p)r(en.)p +0 2433 3900 4 v 0 2590 a Fn(h)14 b Fm(Declare)27 b Fk(Solid)k +Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2690 y Fk(virtual)33 b(v)m(oid)f Fi(un\014l)t(l)13 b +Fm(\()p Fk(Picture)33 b Fm(&)o Fi(pictur)l(e)h Fm(=)23 b Fi(curr)l(ent)p 1872 2690 26 4 v 29 w(pictur)l(e)11 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 420 420 -TeXDict begin 420 419 bop 0 83 a Fm(420)140 b Fl(UNFILL)2638 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1391)0 263 y Fk(1391.)0 +%%Page: 424 424 +TeXDict begin 424 423 bop 0 83 a Fm(424)140 b Fl(UNFILL)2638 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1396)0 263 y Fk(1396.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(Solid)11 b Fm(::)d Fi(un\014l)t(l)13 b Fm(\()p Fk(Picture)33 b Fm(&)p Fi(pictur)l(e)11 b Fm(\))28 b Fk(const)83 587 y Fn(f)166 686 y Fk(b)s(o)s(ol)j Ff(DEBUG)25 b Fm(=)e @@ -35831,7 +35804,7 @@ b Fe(:)p Fi(end)h Fm(\()h(\);)3209 1152 y Fg(+)-8 b(+)3307 1160 y Fi(iter)13 b Fm(\))42 b Fn(f)249 1259 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(un\014l)t(l)13 -b Fm(\()h(\))35 b Fl(1389)15 b Fn(i)166 1359 y(g)166 +b Fm(\()h(\))35 b Fl(1394)15 b Fn(i)166 1359 y(g)166 1459 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Circle)32 b Fn(\003i)8 b Fm(::)h Fi(c)l(onst)p 1249 1459 V 30 w(iter)l(ator)k (iter)37 b Fm(=)23 b Fe(s)1829 1483 y(~)1879 1459 y Fi(cir)l(cles)12 @@ -35840,7 +35813,7 @@ b Fe(:)p Fi(end)h Fm(\()h(\);)3340 1451 y Fg(+)-8 b(+)3438 1459 y Fi(iter)13 b Fm(\))42 b Fn(f)249 1558 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(un\014l)t(l)13 -b Fm(\()h(\))35 b Fl(1389)15 b Fn(i)166 1658 y(g)166 +b Fm(\()h(\))35 b Fl(1394)15 b Fn(i)166 1658 y(g)166 1757 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Ellipse)30 b Fn(\003i)8 b Fm(::)h Fi(c)l(onst)p 1278 1757 V 30 w(iter)l(ator)14 b(iter)36 b Fm(=)23 b Fe(s)1858 1782 y(~)1908 1757 y @@ -35849,7 +35822,7 @@ 1757 y Fi(el)t(lipses)13 b Fe(:)p Fi(end)g Fm(\()h(\);)3435 1749 y Fg(+)-8 b(+)3533 1757 y Fi(iter)13 b Fm(\))42 b Fn(f)249 1857 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(un\014l)t(l)13 b Fm(\()h(\))35 b Fl(1389)15 b Fn(i)166 +Fi(un\014l)t(l)13 b Fm(\()h(\))35 b Fl(1394)15 b Fn(i)166 1957 y(g)166 2056 y Fk(for)47 b Fm(\()p Fk(v)m(ector)7 b Fn(h)p Fk(Reg)p 825 2056 29 5 v 39 w(P)m(olygon)47 b Fn(\003)o(i)8 b Fm(::)h Fi(c)l(onst)p 1569 2056 26 @@ -35860,7 +35833,7 @@ 845 2156 V 31 w(p)l(olygons)12 b Fe(:)p Fi(end)h Fm(\()h(\);)1496 2148 y Fg(+)-8 b(+)1593 2156 y Fi(iter)14 b Fm(\))42 b Fn(f)249 2256 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(un\014l)t(l)13 b Fm(\()h(\))35 b Fl(1389)15 b Fn(i)166 +Fi(un\014l)t(l)13 b Fm(\()h(\))35 b Fl(1394)15 b Fn(i)166 2355 y(g)166 2455 y Fk(for)35 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Rectangle)35 b Fn(\003i)8 b Fm(::)h Fi(c)l(onst)p 1419 2455 V 30 w(iter)l(ator)k(iter)41 b Fm(=)27 b Fe(s)2007 @@ -35870,7 +35843,7 @@ b Fe(:)p Fi(end)h Fm(\()h(\);)419 2546 y Fg(+)-8 b(+)517 2554 y Fi(iter)13 b Fm(\))42 b Fn(f)249 2654 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(un\014l)t(l)13 -b Fm(\()h(\))35 b Fl(1389)15 b Fn(i)166 2754 y(g)166 +b Fm(\()h(\))35 b Fl(1394)15 b Fn(i)166 2754 y(g)166 2853 y Fi(pictur)l(e)34 b Fm(+=)22 b Fk(dynamic)p 954 2853 29 5 v 40 w(cast)6 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)p Fm(\()p Fe(s)q Fm(\);)166 2953 y Fk(if)41 b Fm(\()p Ff(DEBUG)s @@ -35878,9 +35851,9 @@ Ff("Exiting)p Fj( )p Ff(Solid::)o(un)o(fi)-6 b(ll\(\):")25 b Fn(\034)e Ff("\\n")i Fn(\034)e Fi(\015ush)11 b Fm(;)166 3152 y Fn(g)83 3252 y(g)p eop end -%%Page: 421 421 -TeXDict begin 421 420 bop 0 83 a Fn(x)p Fm(1392)139 b -Fl(3DLDFPR)n(G)2639 b(UNFILL)141 b Fm(421)0 263 y Fk(1392.)94 +%%Page: 425 425 +TeXDict begin 425 424 bop 0 83 a Fn(x)p Fm(1397)139 b +Fl(3DLDFPR)n(G)2639 b(UNFILL)141 b Fm(425)0 263 y Fk(1397.)94 b Fm(Pro)r(cess)29 b(v)n(ectors)h(for)h Fi(un\014l)t(ldr)l(aw)9 b Fm(\(\).)49 b([)p Fh(LDF)25 b(2002.10.09.)p Fm(])65 b(Added)32 b(this)f(section.)48 b(The)31 b(same)g(things)g(are)f(done)0 @@ -35892,7 +35865,7 @@ (in)0 462 y(this)h(named)f(section.)37 b(Eac)n(h)26 b(time)i(it)g(it's) g(used,)g Fi(iter)41 b Fm(is)27 b(an)h(iterator)e(for)h(a)g(di\013eren) n(t)h(v)n(ector.)0 587 y Fn(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for) -h Fi(un\014l)t(ldr)l(aw)14 b Fm(\()g(\))35 b Fl(1392)15 +h Fi(un\014l)t(ldr)l(aw)14 b Fm(\()g(\))35 b Fl(1397)15 b Fn(i)24 b(\021)83 686 y(f)166 786 y Fm(\()p Fn(\003\003)o Fi(iter)14 b Fm(\))p Fe(:)p Fi(set)p 581 786 V 30 w(\014l)t(l)p 704 786 V 31 w(dr)l(aw)p 905 786 V 32 w(value)d Fm(\()p @@ -35909,8 +35882,8 @@ Fm(\()p Fi(ddashe)l(d)16 b Fm(\);)166 1185 y(\()p Fn(\003\003)o Fi(iter)e Fm(\))p Fe(:)p Fi(set)p 581 1185 V 30 w(p)l(en)d Fm(\()p Fi(pp)l(en)g Fm(\);)83 1284 y Fn(g)0 1392 y Fl(This)23 -b(co)r(de)i(is)e(used)h(in)f(section)i(1394.)0 1591 y -Fk(1393.)94 b(Un\014lldra)m(w.)i Fm([)p Fh(LDF)25 b(2002.10.09.)p +b(co)r(de)i(is)e(used)h(in)f(section)i(1399.)0 1591 y +Fk(1398.)94 b(Un\014lldra)m(w.)i Fm([)p Fh(LDF)25 b(2002.10.09.)p Fm(])61 b(Unlik)n(e)27 b Fk(P)m(ath)15 b Fm(::)8 b Fi(un\014l)t(ldr)l (aw)14 b Fm(\()g(\),)28 b Fk(Solid)12 b Fm(::)c Fi(un\014l)t(ldr)l(aw) 14 b Fm(\()g(\))28 b(b)r(eha)n(v)n(es)e(lik)n(e)0 1691 @@ -35928,7 +35901,7 @@ (outline.)67 b(TO)37 b(DO:)h(Chec)n(k)f(what)g Fk(\014lldra)m(w)h Fm(and)0 2090 y Fk(un\014lldra)m(w)28 b Fm(mean)f(in)h(MET)-7 b(APOST)27 b(and)g(MET)-7 b(AF)n(ONT.)0 2214 y Fn(h)14 -b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1294)15 +b Fm(Declare)27 b Fk(Solid)k Fm(functions)36 b Fl(1299)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2314 y Fk(virtual)41 b(v)m(oid)f Fi(un\014l)t(ldr)l(aw)14 b Fm(\()p Fk(const)41 b(string)g Fi(ddashe)l(d)51 b Fm(=)36 b Ff("")t Fe(;)14 b Fk(const)40 @@ -35936,11 +35909,11 @@ b Fk(Picture)249 2413 y Fm(&)p Fi(pictur)l(e)33 b Fm(=)23 b Fi(curr)l(ent)p 949 2413 V 30 w(pictur)l(e)10 b Fm(\))28 b Fk(const)5 b Fm(;)p eop end -%%Page: 422 422 -TeXDict begin 422 421 bop 0 83 a Fm(422)140 b Fl(UNFILLDRA)-8 -b(W)2415 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1394)0 263 y Fk(1394.)0 +%%Page: 426 426 +TeXDict begin 426 425 bop 0 83 a Fm(426)140 b Fl(UNFILLDRA)-8 +b(W)2415 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1399)0 263 y Fk(1399.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j -Fl(1295)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 +Fl(1300)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(Solid)11 b Fm(::)d Fi(un\014l)t(ldr)l(aw)14 b Fm(\()p Fk(const)33 b(string)g Fi(ddashe)l(d)15 b Fe(;)f Fk(const)33 b(string)g Fi(pp)l(en)11 b Fe(;)j Fk(Picture)33 b Fm(&)o @@ -35962,7 +35935,7 @@ 1160 y Fi(p)l(aths)12 b Fe(:)p Fi(end)h Fm(\()h(\);)3209 1152 y Fg(+)-8 b(+)3307 1160 y Fi(iter)13 b Fm(\))42 b Fn(f)249 1259 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(un\014l)t(ldr)l(aw)14 b Fm(\()g(\))35 b Fl(1392)15 +Fi(un\014l)t(ldr)l(aw)14 b Fm(\()g(\))35 b Fl(1397)15 b Fn(i)166 1359 y(g)166 b Fe(=)p Fn(\003)40 b Fk(for)47 b Fn(\003)p Fe(=)166 1459 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Circle)32 b Fn(\003i)8 b Fm(::)h Fi(c)l(onst)p @@ -35973,7 +35946,7 @@ Fm(\()h(\);)3340 1451 y Fg(+)-8 b(+)3438 1459 y Fi(iter)13 b Fm(\))42 b Fn(f)249 1558 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(un\014l)t(ldr)l(aw)14 b Fm(\()g(\))35 -b Fl(1392)15 b Fn(i)166 1658 y(g)166 1757 y Fk(for)33 +b Fl(1397)15 b Fn(i)166 1658 y(g)166 1757 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Ellipse)30 b Fn(\003i)8 b Fm(::)h Fi(c)l(onst)p 1278 1757 V 30 w(iter)l(ator)14 b(iter)36 b Fm(=)23 b Fe(s)1858 1782 y(~)1908 1757 y @@ -35982,7 +35955,7 @@ 1757 y Fi(el)t(lipses)13 b Fe(:)p Fi(end)g Fm(\()h(\);)3435 1749 y Fg(+)-8 b(+)3533 1757 y Fi(iter)13 b Fm(\))42 b Fn(f)249 1857 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(un\014l)t(ldr)l(aw)14 b Fm(\()g(\))35 b Fl(1392)15 +Fi(un\014l)t(ldr)l(aw)14 b Fm(\()g(\))35 b Fl(1397)15 b Fn(i)166 1957 y(g)166 2056 y Fk(for)47 b Fm(\()p Fk(v)m(ector)7 b Fn(h)p Fk(Reg)p 825 2056 29 5 v 39 w(P)m(olygon)47 b Fn(\003)o(i)8 b Fm(::)h Fi(c)l(onst)p 1569 2056 26 @@ -35993,7 +35966,7 @@ 845 2156 V 31 w(p)l(olygons)12 b Fe(:)p Fi(end)h Fm(\()h(\);)1496 2148 y Fg(+)-8 b(+)1593 2156 y Fi(iter)14 b Fm(\))42 b Fn(f)249 2256 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(un\014l)t(ldr)l(aw)14 b Fm(\()g(\))35 b Fl(1392)15 +Fi(un\014l)t(ldr)l(aw)14 b Fm(\()g(\))35 b Fl(1397)15 b Fn(i)166 2355 y(g)166 2455 y Fk(for)35 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Rectangle)35 b Fn(\003i)8 b Fm(::)h Fi(c)l(onst)p 1419 2455 V 30 w(iter)l(ator)k(iter)41 b Fm(=)27 b Fe(s)2007 @@ -36003,199 +35976,219 @@ b Fe(:)p Fi(end)h Fm(\()h(\);)419 2546 y Fg(+)-8 b(+)517 2554 y Fi(iter)13 b Fm(\))42 b Fn(f)249 2654 y(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(un\014l)t(ldr)l(aw)14 -b Fm(\()g(\))35 b Fl(1392)15 b Fn(i)166 2754 y(g)166 +b Fm(\()g(\))35 b Fl(1397)15 b Fn(i)166 2754 y(g)166 2853 y Fi(pictur)l(e)34 b Fm(+=)22 b Fk(dynamic)p 954 2853 29 5 v 40 w(cast)6 b Fn(h)p Fk(Shap)s(e)33 b Fn(\003)o(i)p Fm(\()p Fe(s)q Fm(\);)166 2953 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)249 3053 y Fi(c)l(out)35 b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Solid::)o(un)o(fi)-6 b(lldraw\(\):")23 b Fn(\034)g Ff("\\n")j Fn(\034)d Fi(\015ush)10 b Fm(;)166 -3152 y Fn(g)83 3252 y(g)0 3451 y Fk(1395.)94 b(Putting)32 -b(Solid)e(together.)0 3650 y(1396.)94 b Fm(This)28 b(is)f(what's)g +3152 y Fn(g)83 3252 y(g)0 3451 y Fk(1400.)94 b(Putting)32 +b(Solid)e(together.)0 3650 y(1401.)94 b Fm(This)28 b(is)f(what's)g (compiled.)83 3775 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 3874 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f (iden)n(ti\014er)35 b Fl(10)15 b Fn(i)83 3974 y(h)f Fm(De\014ne)28 -b Fk(class)k(Solid)39 b Fl(1291)15 b Fn(i)83 4074 y(h)f +b Fk(class)k(Solid)39 b Fl(1296)15 b Fn(i)83 4074 y(h)f Fm(De\014ne)28 b Fk(static)33 b(const)f(Solid)g Fm(data)27 -b(mem)n(b)r(ers)35 b Fl(1292)15 b Fn(i)83 4173 y(h)f -Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1295)15 +b(mem)n(b)r(ers)35 b Fl(1297)15 b Fn(i)83 4173 y(h)f +Fm(De\014ne)28 b Fk(Solid)k Fm(functions)j Fl(1300)15 b Fn(i)p eop end -%%Page: 423 423 -TeXDict begin 423 422 bop 0 83 a Fn(x)p Fm(1397)139 b +%%Page: 427 427 +TeXDict begin 427 426 bop 0 83 a Fn(x)p Fm(1402)139 b Fl(3DLDFPR)n(G)1816 b(PUTTING)24 b Fk(SOLID)g Fl(TOGETHER)141 -b Fm(423)0 263 y Fk(1397.)94 b Fm(This)28 b(is)f(what's)g(written)h(to) +b Fm(427)0 263 y Fk(1402.)94 b Fm(This)28 b(is)f(what's)g(written)h(to) g Fj(solids.h)p Fm(.)0 388 y Fn(h)14 b Ff(solids.h)80 -b Fl(1397)15 b Fn(i)23 b(\021)83 487 y(h)14 b Fm(De\014ne)28 -b Fk(class)k(Solid)39 b Fl(1291)15 b Fn(i)0 686 y Fk(1398.)94 +b Fl(1402)15 b Fn(i)23 b(\021)83 487 y(h)14 b Fm(De\014ne)28 +b Fk(class)k(Solid)39 b Fl(1296)15 b Fn(i)0 686 y Fk(1403.)94 b(Solid)p 527 686 29 4 v 33 w(F)-8 b(aced)96 b(\()p Fj(solfaced.web)p -Fk(\).)p 0 790 1643 4 v 1738 823 a(Begin)31 b(Log)p 2257 -790 V 83 964 a Fm([)p Fh(LDF)25 b(2002.09.26.)p Fm(])61 -b(Created)27 b(this)h(\014le.)83 1063 y([)p Fh(LDF)d(2003.11.12.)p +Fk(\).)p 0 790 1779 4 v 1874 822 a(Log)p 2122 790 V 83 +963 a Fm([)p Fh(LDF)25 b(2002.09.26.)p Fm(])61 b(Created)27 +b(this)h(\014le.)83 1063 y([)p Fh(LDF)d(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n (ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g -(of)0 1163 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n -(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)p 0 1255 1678 4 -v 1773 1287 a Fk(End)32 b(Log)p 2222 1255 V 0 1412 a -Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 -b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)0 1611 y Fk(1399.)94 -b(Include)32 b(\014les.)0 1736 y Fn(h)14 b Fm(Include)28 +(of)0 1162 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n +(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)83 1262 y([)p Fh(LDF)e +(2003.12.10.)p Fm(])64 b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden) +n(ti\014ers)h(bac)n(k)f(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h +(3DLDF)i(1.1.4.)43 b(I'v)n(e)0 1361 y(already)24 b(put)j(some)e(of)h +(them)h(bac)n(k)e(in,)i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.) +37 b(Ho)n(w)n(ev)n(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w) +i(in)0 1461 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 +b(.)p 0 1553 3900 4 v 0 1710 a Fn(h)14 b Fm(V)-7 b(ersion)27 +b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 1810 y Fk(static)33 b(string)g Fi(r)l(cs)p +726 1810 26 4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p +Ff(solfaced.w)o(eb)o(,v)-6 b Fj( )p Ff(1.2)p Fj( )p Ff(2003/12/10)o +Fj( )p Ff(1)o(6:4)f(5:17)p Fj( )p Ff(lfinsto1)p Fj( )p +Ff(Exp)o Fj( )p Ff($)o(")n Fm(;)0 2009 y Fk(1404.)94 +b(Include)32 b(\014les.)0 2134 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 -1835 y Fm(#)p Fk(include)32 b Ff("loader.h")0 1935 y -Fm(#)p Fk(include)g Ff("pspglb.h")0 2035 y Fm(#)p Fk(include)g -Ff("io.h")0 2134 y Fm(#)p Fk(include)g Ff("colors.h")0 -2234 y Fm(#)p Fk(include)g Ff("transfor.h")0 2334 y Fm(#)p -Fk(include)g Ff("shapes.h")0 2433 y Fm(#)p Fk(include)g -Ff("pictures.h")0 2533 y Fm(#)p Fk(include)g Ff("points.h")0 -2632 y Fm(#)p Fk(include)g Ff("lines.h")0 2732 y Fm(#)p -Fk(include)g Ff("planes.h")0 2832 y Fm(#)p Fk(include)g -Ff("paths.h")0 2931 y Fm(#)p Fk(include)g Ff("curves.h")0 -3031 y Fm(#)p Fk(include)g Ff("polygons.h")0 3131 y Fm(#)p -Fk(include)g Ff("rectangs.h")0 3230 y Fm(#)p Fk(include)g -Ff("ellipses.h")0 3330 y Fm(#)p Fk(include)g Ff("circles.h")0 -3429 y Fm(#)p Fk(include)g Ff("solids.h")0 3629 y Fk(1400.)94 -b(Solid)p 527 3629 29 4 v 33 w(F)-8 b(aced)33 b(class)e(de\014nition.)0 -3753 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Solid)p -738 3753 29 5 v 39 w(F)-8 b(aced)41 b Fl(1400)15 b Fn(i)24 -b(\021)83 3853 y Fk(class)32 b(Solid)p 518 3853 V 39 +2233 y Fm(#)p Fk(include)32 b Ff("loader.h")0 2333 y +Fm(#)p Fk(include)g Ff("pspglb.h")0 2432 y Fm(#)p Fk(include)g +Ff("io.h")0 2532 y Fm(#)p Fk(include)g Ff("colors.h")0 +2632 y Fm(#)p Fk(include)g Ff("transfor.h")0 2731 y Fm(#)p +Fk(include)g Ff("shapes.h")0 2831 y Fm(#)p Fk(include)g +Ff("pictures.h")0 2931 y Fm(#)p Fk(include)g Ff("points.h")0 +3030 y Fm(#)p Fk(include)g Ff("lines.h")0 3130 y Fm(#)p +Fk(include)g Ff("planes.h")0 3229 y Fm(#)p Fk(include)g +Ff("paths.h")0 3329 y Fm(#)p Fk(include)g Ff("curves.h")0 +3429 y Fm(#)p Fk(include)g Ff("polygons.h")0 3528 y Fm(#)p +Fk(include)g Ff("rectangs.h")0 3628 y Fm(#)p Fk(include)g +Ff("ellipses.h")0 3728 y Fm(#)p Fk(include)g Ff("circles.h")0 +3827 y Fm(#)p Fk(include)g Ff("solids.h")0 4026 y Fk(1405.)94 +b(Solid)p 527 4026 29 4 v 33 w(F)-8 b(aced)33 b(class)e(de\014nition.)0 +4151 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Solid)p +738 4151 29 5 v 39 w(F)-8 b(aced)41 b Fl(1405)15 b Fn(i)24 +b(\021)83 4251 y Fk(class)32 b(Solid)p 518 4251 V 39 w(F)-8 b(aced)33 b Fm(:)k Fk(public)32 b(Solid)g Fn(f)83 -3952 y Fk(protected)5 b Fm(:)42 b Fk(unsigned)31 b(short)h -Fi(fac)l(es)12 b Fm(;)166 4052 y Fk(unsigned)31 b(short)i -Fi(vertic)l(es)11 b Fm(;)166 4152 y Fk(unsigned)31 b(short)i -Fi(e)l(dges)11 b Fm(;)83 4276 y Fk(public)t Fm(:)42 b -Fn(h)14 b Fm(Declare)27 b Fk(Solid)p 964 4276 V 39 w(F)-8 -b(aced)33 b Fm(functions)j Fl(1401)15 b Fn(i)83 4376 -y(g)p Fm(;)0 4484 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i -(1404)f(and)h(1405.)0 4683 y Fk(1401.)0 4808 y Fn(h)14 -b Fm(Declare)27 b Fk(Solid)p 557 4808 V 39 w(F)-8 b(aced)33 -b Fm(functions)j Fl(1401)15 b Fn(i)23 b(\021)0 4915 y -Fl(This)g(co)r(de)i(is)e(used)h(in)f(section)i(1400.)p +4350 y Fk(protected)5 b Fm(:)42 b Fk(unsigned)31 b(short)h +Fi(fac)l(es)12 b Fm(;)166 4450 y Fk(unsigned)31 b(short)i +Fi(vertic)l(es)11 b Fm(;)166 4549 y Fk(unsigned)31 b(short)i +Fi(e)l(dges)11 b Fm(;)83 4674 y Fk(public)t Fm(:)42 b +Fn(h)14 b Fm(Declare)27 b Fk(Solid)p 964 4674 V 39 w(F)-8 +b(aced)33 b Fm(functions)j Fl(1406)15 b Fn(i)83 4774 +y(g)p Fm(;)0 4882 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i +(1409)f(and)h(1410.)0 5081 y Fk(1406.)0 5205 y Fn(h)14 +b Fm(Declare)27 b Fk(Solid)p 557 5205 V 39 w(F)-8 b(aced)33 +b Fm(functions)j Fl(1406)15 b Fn(i)23 b(\021)0 5313 y +Fl(This)g(co)r(de)i(is)e(used)h(in)f(section)i(1405.)p eop end -%%Page: 424 424 -TeXDict begin 424 423 bop 0 83 a Fm(424)140 b Fk(SOLID)p +%%Page: 428 428 +TeXDict begin 428 427 bop 0 83 a Fm(428)140 b Fk(SOLID)p 563 83 29 4 v 35 w(F)-11 b(A)m(CED)24 b Fl(CLASS)g(DEFINITION)1545 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1402)0 263 y Fk(1402.)0 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1407)0 263 y Fk(1407.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)p 515 388 29 -5 v 39 w(F)-8 b(aced)33 b Fm(functions)j Fl(1402)15 b +5 v 39 w(F)-8 b(aced)33 b Fm(functions)j Fl(1407)15 b Fn(i)23 b(\021)0 495 y Fl(This)g(co)r(de)i(is)e(used)h(in)f(section)i -(1404.)0 695 y Fk(1403.)94 b(Putting)32 b(Solid)p 879 -695 29 4 v 33 w(F)-8 b(aced)32 b(together.)0 894 y(1404.)94 +(1409.)0 695 y Fk(1408.)94 b(Putting)32 b(Solid)p 879 +695 29 4 v 33 w(F)-8 b(aced)32 b(together.)0 894 y(1409.)94 b Fm(This)28 b(is)f(what's)g(compiled.)83 1019 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 1118 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)83 1218 y(h)f Fm(De\014ne)28 b Fk(class)k(Solid)p -821 1218 29 5 v 39 w(F)-8 b(aced)41 b Fl(1400)15 b Fn(i)83 +821 1218 29 5 v 39 w(F)-8 b(aced)41 b Fl(1405)15 b Fn(i)83 1317 y(h)f Fm(De\014ne)28 b Fk(Solid)p 598 1317 V 39 -w(F)-8 b(aced)33 b Fm(functions)j Fl(1402)15 b Fn(i)p +w(F)-8 b(aced)33 b Fm(functions)j Fl(1407)15 b Fn(i)p eop end -%%Page: 425 425 -TeXDict begin 425 424 bop 0 83 a Fn(x)p Fm(1405)139 b +%%Page: 429 429 +TeXDict begin 429 428 bop 0 83 a Fn(x)p Fm(1410)139 b Fl(3DLDFPR)n(G)1458 b(PUTTING)24 b Fk(SOLID)p 2845 83 -29 4 v 35 w(F)-11 b(A)m(CED)24 b Fl(TOGETHER)141 b Fm(425)0 -263 y Fk(1405.)94 b Fm(This)28 b(is)f(what's)g(written)h(to)g +29 4 v 35 w(F)-11 b(A)m(CED)24 b Fl(TOGETHER)141 b Fm(429)0 +263 y Fk(1410.)94 b Fm(This)28 b(is)f(what's)g(written)h(to)g Fj(solfaced.h)p Fm(.)0 388 y Fn(h)14 b Ff(solfaced.h)79 -b Fl(1405)15 b Fn(i)24 b(\021)83 487 y(h)14 b Fm(De\014ne)28 +b Fl(1410)15 b Fn(i)24 b(\021)83 487 y(h)14 b Fm(De\014ne)28 b Fk(class)k(Solid)p 821 487 29 5 v 39 w(F)-8 b(aced)41 -b Fl(1400)15 b Fn(i)0 686 y Fk(1406.)94 b(Cub)s(oid)g(\()p -Fj(cuboid.web)p Fk(\).)p 0 790 1643 4 v 1738 823 a(Begin)31 -b(Log)p 2257 790 V 83 964 a Fm([)p Fh(LDF)25 b(2002.04.22.)p +b Fl(1405)15 b Fn(i)0 686 y Fk(1411.)94 b(Cub)s(oid)g(\()p +Fj(cuboid.web)p Fk(\).)p 0 790 1779 4 v 1874 822 a(Log)p +2122 790 V 83 963 a Fm([)p Fh(LDF)25 b(2002.04.22.)p Fm(])54 b(Created)21 b(this)g(\014le.)35 b(When)21 b(I'v)n(e)g(found)g (out)g(what)g(the)g(English)f(w)n(ord)g(is)h(for)f(\\Quader",)g(I'll)h -(c)n(hange)0 1063 y(it)28 b(globally)-7 b(.)83 1163 y([)p +(c)n(hange)0 1063 y(it)28 b(globally)-7 b(.)83 1162 y([)p Fh(LDF)25 b(2002.04.22.)p Fm(])52 b Fk(Cub)s(oid)23 b Fm(is)c(the)g(\014rst)f(three-dimensional)g(ob)5 b(ject)19 b(I'v)n(e)f(de\014ned.)34 b(I'v)n(e)19 b(just)g(quic)n(kly)f(put)i(it)f -(together)0 1263 y(for)26 b(use)h(in)g(a)g(dra)n(wing.)35 +(together)0 1262 y(for)26 b(use)h(in)g(a)g(dra)n(wing.)35 b(Ultimately)-7 b(,)28 b(I'd)f(lik)n(e)f(to)h(deriv)n(e)f(it)h(from)g Fk(Shap)s(e)5 b Fm(,)27 b(whic)n(h)g(will)g(require)f(de\014ning)g(v)n -(ersions)g(of)g(all)0 1362 y(the)i(pure)f Fk(virtual)33 -b Fm(functions)28 b(in)g Fk(Shap)s(e)5 b Fm(.)83 1462 +(ersions)g(of)g(all)0 1361 y(the)i(pure)f Fk(virtual)33 +b Fm(functions)28 b(in)g Fk(Shap)s(e)5 b Fm(.)83 1461 y([)p Fh(LDF)25 b(2002.04.23.)p Fm(])74 b(Changed)41 b Fi(Quader)54 b Fm(to)41 b Fk(Cub)s(oid)s Fm(.)77 b(Ha)n(v)n(en't)40 b(c)n(hanged)g(name)h(of)f(\014le,)45 b(b)r(ecause)40 b(this)h(is)g(more)0 1561 y(complicated,)27 b(b)r(ecause)g(of)h(R)n(CS) g(\(the)g(source)e(co)r(de)i(con)n(trol)e(system\).)83 -1661 y([)p Fh(LDF)f(2002.05.03.)p Fm(])69 b(Changed)35 +1660 y([)p Fh(LDF)f(2002.05.03.)p Fm(])69 b(Changed)35 b(the)i(name)e(of)h(this)g(\014le)g(from)g Fj(quader.web)31 b Fm(to)36 b Fj(cuboid.web)p Fm(.)57 b(This)36 b(means)f(that)i(if)0 -1761 y(y)n(ou)29 b(need)i(to)f(compare)f(this)h(\014le)h(with)f +1760 y(y)n(ou)29 b(need)i(to)f(compare)f(this)h(\014le)h(with)f (revisions)f(earlier)g(than)h(the)h(initial)f(v)n(ersion)f(of)h(this)g (\014le,)h(y)n(ou'll)f(ha)n(v)n(e)f(to)h(c)n(hec)n(k)0 -1860 y(revisions)c(of)i Fj(quader.web)p Fm(.)83 1960 +1860 y(revisions)c(of)i Fj(quader.web)p Fm(.)83 1959 y([)p Fh(LDF)d(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB) -g(\014les)g(for)f(the)h(distribution)g(of)0 2060 y(3DLDF)28 +g(\014les)g(for)f(the)h(distribution)g(of)0 2059 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t) -f(v)n(ersions.)p 0 2151 1678 4 v 1773 2184 a Fk(End)32 -b(Log)p 2222 2151 V 83 2309 a(format)65 b Fi(Cub)l(oid)83 -b(Solid)0 2433 y Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n -(ti\014er)35 b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)0 -2632 y Fk(1407.)94 b(Include)32 b(\014les.)0 2757 y Fn(h)14 -b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p -Fn(\021)0 2857 y Fm(#)p Fk(include)32 b Ff("loader.h")0 -2956 y Fm(#)p Fk(include)g Ff("pspglb.h")0 3056 y Fm(#)p -Fk(include)g Ff("io.h")0 3155 y Fm(#)p Fk(include)g Ff("colors.h")0 -3255 y Fm(#)p Fk(include)g Ff("transfor.h")0 3355 y Fm(#)p -Fk(include)g Ff("shapes.h")0 3454 y Fm(#)p Fk(include)g -Ff("pictures.h")0 3554 y Fm(#)p Fk(include)g Ff("points.h")0 -3654 y Fm(#)p Fk(include)g Ff("lines.h")0 3753 y Fm(#)p -Fk(include)g Ff("planes.h")0 3853 y Fm(#)p Fk(include)g -Ff("paths.h")0 3952 y Fm(#)p Fk(include)g Ff("curves.h")0 -4052 y Fm(#)p Fk(include)g Ff("polygons.h")0 4152 y Fm(#)p -Fk(include)g Ff("rectangs.h")0 4251 y Fm(#)p Fk(include)g -Ff("ellipses.h")0 4351 y Fm(#)p Fk(include)g Ff("circles.h")0 -4451 y Fm(#)p Fk(include)g Ff("solids.h")0 4550 y Fm(#)p -Fk(include)g Ff("solfaced.h")0 4749 y Fk(1408.)94 b(Cub)s(oid)31 -b(class)g(de\014nition.)p 0 4825 1643 4 v 1738 4858 a(Begin)g(Log)p -2257 4825 V 83 4999 a Fm([)p Fh(LDF)25 b(2002.04.22.)p -Fm(])61 b(Added)28 b(this)g Fk(class)k Fm(declaration.)83 -5098 y([)p Fh(LDF)25 b(2003.08.10.)p Fm(])61 b(Remo)n(v)n(ed)27 -b Fi(dihe)l(dr)l(al)p 1382 5098 26 4 v 32 w(angle)12 -b Fm(.)p 0 5190 1678 4 v 1773 5223 a Fk(End)32 b(Log)p -2222 5190 V 0 5347 a Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Cub)s(oid)39 -b Fl(1408)15 b Fn(i)24 b(\021)p eop end -%%Page: 426 426 -TeXDict begin 426 425 bop 0 83 a Fm(426)140 b Fk(CUBOID)24 +f(v)n(ersions.)83 2158 y([)p Fh(LDF)e(2003.12.10.)p Fm(])64 +b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden)n(ti\014ers)h(bac)n(k)f +(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h(3DLDF)i(1.1.4.)43 +b(I'v)n(e)0 2258 y(already)24 b(put)j(some)e(of)h(them)h(bac)n(k)e(in,) +i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.)37 b(Ho)n(w)n(ev)n +(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w)i(in)0 +2358 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 b(.)p +0 2450 3900 4 v 83 2607 a Fk(format)65 b Fi(Cub)l(oid)83 +b(Solid)0 2731 y Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n +(ti\014er)35 b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2831 y Fk(static)33 b(string)g Fi(r)l(cs)p 726 2831 26 +4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p Ff(cuboid.web)o(,v)o +Fj( )p Ff(1)-6 b(.2)p Fj( )p Ff(2003/12/10)p Fj( )p Ff(1)o(5:)o(26:)f +(04)p Fj( )p Ff(lfinsto1)p Fj( )p Ff(Exp)p Fj( )p Ff($)o(")n +Fm(;)0 3030 y Fk(1412.)94 b(Include)32 b(\014les.)0 3155 +y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 +b Fm(+)p Fn(\021)0 3254 y Fm(#)p Fk(include)32 b Ff("loader.h")0 +3354 y Fm(#)p Fk(include)g Ff("pspglb.h")0 3454 y Fm(#)p +Fk(include)g Ff("io.h")0 3553 y Fm(#)p Fk(include)g Ff("colors.h")0 +3653 y Fm(#)p Fk(include)g Ff("transfor.h")0 3752 y Fm(#)p +Fk(include)g Ff("shapes.h")0 3852 y Fm(#)p Fk(include)g +Ff("pictures.h")0 3952 y Fm(#)p Fk(include)g Ff("points.h")0 +4051 y Fm(#)p Fk(include)g Ff("lines.h")0 4151 y Fm(#)p +Fk(include)g Ff("planes.h")0 4251 y Fm(#)p Fk(include)g +Ff("paths.h")0 4350 y Fm(#)p Fk(include)g Ff("curves.h")0 +4450 y Fm(#)p Fk(include)g Ff("polygons.h")0 4549 y Fm(#)p +Fk(include)g Ff("rectangs.h")0 4649 y Fm(#)p Fk(include)g +Ff("ellipses.h")0 4749 y Fm(#)p Fk(include)g Ff("circles.h")0 +4848 y Fm(#)p Fk(include)g Ff("solids.h")0 4948 y Fm(#)p +Fk(include)g Ff("solfaced.h")0 5147 y Fk(1413.)94 b(Cub)s(oid)31 +b(class)g(de\014nition.)p 0 5223 1779 4 v 1874 5256 a(Log)p +2122 5223 V 83 5396 a Fm([)p Fh(LDF)25 b(2002.04.22.)p +Fm(])61 b(Added)28 b(this)g Fk(class)k Fm(declaration.)p +eop end +%%Page: 430 430 +TeXDict begin 430 429 bop 0 83 a Fm(430)140 b Fk(CUBOID)24 b Fl(CLASS)f(DEFINITION)1804 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(1408)83 263 y Fk(class)32 b(Cub)s(oid)g Fm(:)37 b -Fk(public)32 b(Solid)p 1203 263 29 5 v 39 w(F)-8 b(aced)33 -b Fn(f)83 363 y Fk(protected)5 b Fm(:)42 b Fk(real)32 -b Fi(height)14 b Fm(;)166 462 y Fk(real)33 b Fi(width)11 -b Fm(;)166 562 y Fk(real)33 b Fi(depth)11 b Fm(;)83 686 +Fm(1413)83 263 y([)p Fh(LDF)25 b(2003.08.10.)p Fm(])61 +b(Remo)n(v)n(ed)27 b Fi(dihe)l(dr)l(al)p 1382 263 26 +4 v 32 w(angle)12 b Fm(.)p 0 355 3900 4 v 0 512 a Fn(h)i +Fm(De\014ne)28 b Fk(class)k(Cub)s(oid)39 b Fl(1413)15 +b Fn(i)24 b(\021)83 612 y Fk(class)32 b(Cub)s(oid)g Fm(:)37 +b Fk(public)32 b(Solid)p 1203 612 29 5 v 39 w(F)-8 b(aced)33 +b Fn(f)83 711 y Fk(protected)5 b Fm(:)42 b Fk(real)32 +b Fi(height)14 b Fm(;)166 811 y Fk(real)33 b Fi(width)11 +b Fm(;)166 911 y Fk(real)33 b Fi(depth)11 b Fm(;)83 1035 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 b Fk(Cub)s(oid)k -Fm(functions)36 b Fl(1410)15 b Fn(i)83 786 y(g)p Fm(;)0 -894 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(1422)f(and)h -(1423.)0 1093 y Fk(1409.)94 b(Constructors)32 b(and)g(setting)f -(functions.)0 1292 y(1410.)94 b(Default)32 b(constructor.)96 +Fm(functions)36 b Fl(1415)15 b Fn(i)83 1135 y(g)p Fm(;)0 +1243 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(1427)f(and)h +(1428.)0 1442 y Fk(1414.)94 b(Constructors)32 b(and)g(setting)f +(functions.)0 1641 y(1415.)94 b(Default)32 b(constructor.)96 b Fm(No)27 b(argumen)n(ts.)36 b([)p Fh(LDF)25 b(2002.04.22.)p -Fm(])61 b(Added)28 b(this)g(function.)0 1417 y Fn(h)14 -b Fm(Declare)27 b Fk(Cub)s(oid)k Fm(functions)36 b Fl(1410)15 -b Fn(i)23 b(\021)83 1517 y Fk(Cub)s(oid)t Fm(\()14 b(\);)0 -1625 y Fl(See)24 b(also)g(sections)g(1412,)h(1414,)f(1416,)g(1418,)h -(and)f(1420.)0 1733 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i -(1408.)0 1932 y Fk(1411.)0 2056 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Cub)s(oid)k Fm(functions)j Fl(1411)15 b Fn(i)24 -b(\021)83 2156 y Fk(Cub)s(oid)12 b Fm(::)c Fk(Cub)s(oid)t -Fm(\()14 b(\))83 2256 y Fn(f)166 2355 y Fi(on)p 260 2355 -26 4 v 31 w(fr)l(e)l(e)p 419 2355 V 31 w(stor)l(e)33 -b Fm(=)23 b Fi(false)11 b Fm(;)166 2455 y Fi(do)p 255 -2455 V 31 w(output)35 b Fm(=)22 b Fi(true)10 b Fm(;)166 -2554 y Fi(pr)l(oje)l(ctive)p 512 2554 V 32 w(extr)l(emes)h -Fe(:)p Fi(r)l(esize)g Fm(\(6)o Fe(;)j Fm(0\);)166 2654 -y Fi(fac)l(es)35 b Fm(=)23 b(6)o(;)166 2754 y Fi(vertic)l(es)35 -b Fm(=)22 b(8;)166 2853 y Fi(e)l(dges)35 b Fm(=)23 b(12)o(;)83 -2953 y Fn(g)0 3061 y Fl(See)h(also)g(sections)g(1413,)h(1415,)f(1417,)g -(1419,)h(and)f(1421.)0 3169 y(This)f(co)r(de)i(is)e(used)h(in)f -(section)i(1422.)0 3368 y Fk(1412.)94 b(Cop)m(y)32 b(constructor.)96 +Fm(])61 b(Added)28 b(this)g(function.)0 1766 y Fn(h)14 +b Fm(Declare)27 b Fk(Cub)s(oid)k Fm(functions)36 b Fl(1415)15 +b Fn(i)23 b(\021)83 1865 y Fk(Cub)s(oid)t Fm(\()14 b(\);)0 +1973 y Fl(See)24 b(also)g(sections)g(1417,)h(1419,)f(1421,)g(1423,)h +(and)f(1425.)0 2081 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i +(1413.)0 2280 y Fk(1416.)0 2405 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Cub)s(oid)k Fm(functions)j Fl(1416)15 b Fn(i)24 +b(\021)83 2505 y Fk(Cub)s(oid)12 b Fm(::)c Fk(Cub)s(oid)t +Fm(\()14 b(\))83 2604 y Fn(f)166 2704 y Fi(on)p 260 2704 +26 4 v 31 w(fr)l(e)l(e)p 419 2704 V 31 w(stor)l(e)33 +b Fm(=)23 b Fi(false)11 b Fm(;)166 2803 y Fi(do)p 255 +2803 V 31 w(output)35 b Fm(=)22 b Fi(true)10 b Fm(;)166 +2903 y Fi(pr)l(oje)l(ctive)p 512 2903 V 32 w(extr)l(emes)h +Fe(:)p Fi(r)l(esize)g Fm(\(6)o Fe(;)j Fm(0\);)166 3003 +y Fi(fac)l(es)35 b Fm(=)23 b(6)o(;)166 3102 y Fi(vertic)l(es)35 +b Fm(=)22 b(8;)166 3202 y Fi(e)l(dges)35 b Fm(=)23 b(12)o(;)83 +3302 y Fn(g)0 3410 y Fl(See)h(also)g(sections)g(1418,)h(1420,)f(1422,)g +(1424,)h(and)f(1426.)0 3517 y(This)f(co)r(de)i(is)e(used)h(in)f +(section)i(1427.)0 3717 y Fk(1417.)94 b(Cop)m(y)32 b(constructor.)96 b Fm([)p Fh(LDF)26 b(2002.05.03.)p Fm(])60 b(Added)29 -b(this)e(function.)0 3493 y Fn(h)14 b Fm(Declare)27 b -Fk(Cub)s(oid)k Fm(functions)36 b Fl(1410)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 3592 y Fk(Cub)s(oid)t Fm(\()p Fk(const)33 +b(this)e(function.)0 3841 y Fn(h)14 b Fm(Declare)27 b +Fk(Cub)s(oid)k Fm(functions)36 b Fl(1415)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 3941 y Fk(Cub)s(oid)t Fm(\()p Fk(const)33 b(Cub)s(oid)e Fm(&)p Fe(c)o Fm(\);)p eop end -%%Page: 427 427 -TeXDict begin 427 426 bop 0 83 a Fn(x)p Fm(1413)139 b +%%Page: 431 431 +TeXDict begin 431 430 bop 0 83 a Fn(x)p Fm(1418)139 b Fl(3DLDFPR)n(G)2114 b(COPY)23 b(CONSTR)n(UCTOR)140 b -Fm(427)0 263 y Fk(1413.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Cub)s(oid)k Fm(functions)j Fl(1411)15 b Fn(i)24 +Fm(431)0 263 y Fk(1418.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Cub)s(oid)k Fm(functions)j Fl(1416)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(Cub)s(oid)12 b Fm(::)c Fk(Cub)s(oid)t Fm(\()p Fk(const)33 b(Cub)s(oid)e Fm(&)p Fe(c)p Fm(\))83 587 y Fn(f)166 686 y Fi(on)p 260 686 26 4 v 31 w(fr)l(e)l(e)p @@ -36217,11 +36210,11 @@ V 31 w(new)p 1893 1483 V 31 w(r)l(e)l(ctangle)i Fm(\()k(\)\);)249 1583 y Fn(\003)p Fm(\()p Fi(r)l(e)l(ctangles)d Fe(:)p Fi(b)l(ack)j Fm(\()g(\)\))24 b(=)e Fn(\003\003)o Fi(iter)14 -b Fm(;)166 1683 y Fn(g)83 1782 y(g)0 1982 y Fk(1414.)94 +b Fm(;)166 1683 y Fn(g)83 1782 y(g)0 1982 y Fk(1419.)94 b(Cen)m(ter,)32 b(heigh)m(t,)f(width,)g(depth,)g(and)h(angles.)94 b Fm([)p Fh(LDF)26 b(2002.10.06.)p Fm(])61 b(Added)28 b(this)g(constructor.)0 2106 y Fn(h)14 b Fm(Declare)27 -b Fk(Cub)s(oid)k Fm(functions)36 b Fl(1410)15 b Fn(i)23 +b Fk(Cub)s(oid)k Fm(functions)36 b Fl(1415)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2206 y Fk(Cub)s(oid)t Fm(\()p Fk(const)35 b(P)m(oin)m(t)g Fm(&)o Fe(c;)14 b Fk(const)35 b(real)f Fe(h;)14 b Fk(const)35 b(real)f Fe(w)s(;)14 b Fk(const)35 @@ -36229,11 +36222,11 @@ Fm(=)f(0)p Fe(;)14 b Fk(const)34 b(real)249 2305 y Fe(y)26 b Fm(=)c(0)p Fe(;)14 b Fk(const)32 b(real)h Fe(z)26 b Fm(=)d(0)o(\);)p eop end -%%Page: 428 428 -TeXDict begin 428 427 bop 0 83 a Fm(428)140 b Fl(CENTER,)22 +%%Page: 432 432 +TeXDict begin 432 431 bop 0 83 a Fm(432)140 b Fl(CENTER,)22 b(HEIGHT,)i(WIDTH,)g(DEPTH,)f(AND)g(ANGLES)1158 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(1415)0 263 y Fk(1415.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Cub)s(oid)k Fm(functions)j Fl(1411)15 b Fn(i)24 +b Fn(x)p Fm(1420)0 263 y Fk(1420.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Cub)s(oid)k Fm(functions)j Fl(1416)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(Cub)s(oid)12 b Fm(::)c Fk(Cub)s(oid)t Fm(\()p Fk(const)35 b(P)m(oin)m(t)g Fm(&)o Fe(c;)14 b Fk(const)34 b(real)h Fe(h;)14 b Fk(const)34 b(real)g @@ -36322,20 +36315,20 @@ b Fe(i)23 b(<)f Fm(9;)41 b Fe(i)1100 3742 y Fg(+)-8 b(+)1198 3750 y Fm(\))42 b Fi(pts)11 b Fm([)p Fe(i)o Fm(])p Fe(:)p Fi(dotlab)l(el)k Fm(\()p Fe(i)p Fm(\);)83 3850 y Fn(g)0 -4049 y Fk(1416.)94 b(Pseudo-constructor)32 b(for)g(dynamic)g(allo)s +4049 y Fk(1421.)94 b(Pseudo-constructor)32 b(for)g(dynamic)g(allo)s (cation.)94 b Fm([)p Fh(LDF)26 b(2002.04.22.)p Fm(])61 b(Added)28 b(this)g(function.)0 4173 y Fn(h)14 b Fm(Declare)27 -b Fk(Cub)s(oid)k Fm(functions)36 b Fl(1410)15 b Fn(i)23 +b Fk(Cub)s(oid)k Fm(functions)36 b Fl(1415)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4273 y Fk(static)33 b(Cub)s(oid)e Fn(\003)p Fi(cr)l(e)l(ate)p 938 4273 V 30 w(new)p 1108 4273 V 31 w(cub)l(oid)14 b Fm(\()p Fk(const)33 b(Cub)s(oid)e Fn(\003)o Fe(c)23 b Fm(=)g(0\);)p eop end -%%Page: 429 429 -TeXDict begin 429 428 bop 0 83 a Fn(x)p Fm(1417)139 b +%%Page: 433 433 +TeXDict begin 433 432 bop 0 83 a Fn(x)p Fm(1422)139 b Fl(3DLDFPR)n(G)973 b(PSEUDO-CONSTR)n(UCTOR)22 b(F)n(OR)h(D)n(YNAMIC)g -(ALLOCA)-6 b(TION)141 b Fm(429)0 263 y Fk(1417.)0 388 +(ALLOCA)-6 b(TION)141 b Fm(433)0 263 y Fk(1422.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Cub)s(oid)k Fm(functions)j -Fl(1411)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(Cub)s(oid)31 +Fl(1416)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(Cub)s(oid)31 b Fn(\003)p Fk(Cub)s(oid)12 b Fm(::)c Fi(cr)l(e)l(ate)p 1050 487 26 4 v 31 w(new)p 1221 487 V 31 w(cub)l(oid)14 b Fm(\()p Fk(const)32 b(Cub)s(oid)g Fn(\003)o Fe(c)p @@ -36350,13 +36343,13 @@ b Fm(;)166 1110 y Fe(q)189 1135 y(~)239 1110 y Fi(pr)l(oje)l(ctive)p 585 1110 V 32 w(extr)l(emes)i Fe(:)p Fi(r)l(esize)g Fm(\(6)p Fe(;)j Fm(0)o(\);)166 1209 y Fk(return)33 b Fe(q)s Fm(;)83 -1309 y Fn(g)0 1508 y Fk(1418.)94 b(Destructor.)i Fm(!!)37 +1309 y Fn(g)0 1508 y Fk(1423.)94 b(Destructor.)i Fm(!!)37 b(Mak)n(e)26 b(sure)h(to)h(delete)g(an)n(ything)f(else)g(that)h(I)f (allo)r(cate)g(dynamically!)0 1633 y Fn(h)14 b Fm(Declare)27 -b Fk(Cub)s(oid)k Fm(functions)36 b Fl(1410)15 b Fn(i)23 +b Fk(Cub)s(oid)k Fm(functions)36 b Fl(1415)15 b Fn(i)23 b Fm(+)p Fn(\021)83 1733 y(\030)p Fk(Cub)s(oid)s Fm(\()14 -b(\);)0 1932 y Fk(1419.)0 2056 y Fn(h)g Fm(De\014ne)28 -b Fk(Cub)s(oid)k Fm(functions)j Fl(1411)15 b Fn(i)24 +b(\);)0 1932 y Fk(1424.)0 2056 y Fn(h)g Fm(De\014ne)28 +b Fk(Cub)s(oid)k Fm(functions)j Fl(1416)15 b Fn(i)24 b Fm(+)p Fn(\021)83 2156 y Fk(Cub)s(oid)12 b Fm(::)d Fn(\030)o Fk(Cub)s(oid)t Fm(\()14 b(\))83 2256 y Fn(f)166 2355 y Fk(for)33 b Fm(\()p Fk(v)m(ector)6 b Fn(h)p Fk(Rectangle)32 @@ -36367,12 +36360,12 @@ y Fg(+)-8 b(+)3633 2355 y Fm(\))42 b Fn(f)249 2455 y Fk(delete)31 b Fn(\003)p Fi(iter)13 b Fm(;)166 2554 y Fn(g)166 2654 y Fi(r)l(e)l(ctangles)e Fe(:)p Fi(cle)l(ar)j -Fm(\()g(\);)83 2754 y Fn(g)0 2953 y Fk(1420.)94 b(Assignmen)m(t.)0 +Fm(\()g(\);)83 2754 y Fn(g)0 2953 y Fk(1425.)94 b(Assignmen)m(t.)0 3077 y Fn(h)14 b Fm(Declare)27 b Fk(Cub)s(oid)k Fm(functions)36 -b Fl(1410)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3177 y Fk(v)m(oid)33 +b Fl(1415)15 b Fn(i)23 b Fm(+)p Fn(\021)83 3177 y Fk(v)m(oid)33 b(op)s(erator)t Fm(=\()p Fk(const)g(Cub)s(oid)e Fm(&)p -Fe(c)p Fm(\);)0 3376 y Fk(1421.)0 3501 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Cub)s(oid)k Fm(functions)j Fl(1411)15 b Fn(i)24 +Fe(c)p Fm(\);)0 3376 y Fk(1426.)0 3501 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Cub)s(oid)k Fm(functions)j Fl(1416)15 b Fn(i)24 b Fm(+)p Fn(\021)83 3601 y Fk(v)m(oid)33 b(Cub)s(oid)12 b Fm(::)c Fk(op)s(erator)d Fm(=)o(\()p Fk(const)33 b(Cub)s(oid)f Fm(&)o Fe(c)p Fm(\))83 3700 y Fn(f)166 3800 y Fi(this)290 @@ -36381,22 +36374,22 @@ b Fe(c:)p Fi(height)14 b Fm(;)166 3999 y Fi(width)35 b Fm(=)22 b Fe(c:)p Fi(width)12 b Fm(;)166 4099 y Fi(depth)35 b Fm(=)22 b Fe(c:)p Fi(depth)12 b Fm(;)83 4198 y Fn(g)0 -4398 y Fk(1422.)94 b(Putting)32 b(Cub)s(oid)e(together.)95 +4398 y Fk(1427.)94 b(Putting)32 b(Cub)s(oid)e(together.)95 b Fm(This)28 b(is)f(what's)g(compiled.)83 4522 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 4622 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)83 4721 y(h)f Fm(De\014ne)28 b Fk(class)k(Cub)s(oid) -39 b Fl(1408)15 b Fn(i)83 4821 y(h)f Fm(De\014ne)28 b -Fk(Cub)s(oid)k Fm(functions)j Fl(1411)15 b Fn(i)p eop +39 b Fl(1413)15 b Fn(i)83 4821 y(h)f Fm(De\014ne)28 b +Fk(Cub)s(oid)k Fm(functions)j Fl(1416)15 b Fn(i)p eop end -%%Page: 430 430 -TeXDict begin 430 429 bop 0 83 a Fm(430)140 b Fl(PUTTING)24 +%%Page: 434 434 +TeXDict begin 434 433 bop 0 83 a Fm(434)140 b Fl(PUTTING)24 b Fk(CUBOID)g Fl(TOGETHER)1715 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(1423)0 263 y Fk(1423.)94 b Fm(This)28 b(is)f(what's)g(written)h(to)g +Fm(1428)0 263 y Fk(1428.)94 b Fm(This)28 b(is)f(what's)g(written)h(to)g Fj(cuboid.h)p Fm(.)0 388 y Fn(h)14 b Ff(cuboid.h)80 b -Fl(1423)15 b Fn(i)23 b(\021)83 487 y(h)14 b Fm(De\014ne)28 -b Fk(class)k(Cub)s(oid)39 b Fl(1408)15 b Fn(i)0 686 y -Fk(1424.)94 b(P)m(olyhedra)i(\()p Fj(polyhedra.web)p +Fl(1428)15 b Fn(i)23 b(\021)83 487 y(h)14 b Fm(De\014ne)28 +b Fk(class)k(Cub)s(oid)39 b Fl(1413)15 b Fn(i)0 686 y +Fk(1429.)94 b(P)m(olyhedra)i(\()p Fj(polyhedra.web)p Fk(\).)251 b Fm([)p Fh(LDF)26 b(2002.11.12.)p Fm(])61 b(TO)27 b(DO:)g(Set)h Fi(c)l(enter)41 b Fm(for)27 b Fk(Do)s(decahedron) 5 b Fm(,)0 786 y Fk(Icosahedron)g Fm(,)28 b(and)f Fi(T)-6 @@ -36407,96 +36400,103 @@ Fk(P)m(olyhedra)5 b Fm(!)35 b(The)22 b(individual)f(t)n(yp)r(es)g(will) h(need)f(there)0 985 y(o)n(wn,)27 b(but)h(they)g(can)f(call)g Fk(P)m(olyhedron)14 b Fm(::)8 b Fk(op)s(erator)d Fm(=\()14 -b(\).)p 0 1089 1643 4 v 1738 1122 a Fk(Begin)31 b(Log)p -2257 1089 V 83 1263 a Fm([)p Fh(LDF)25 b(2002.09.26.)p -Fm(])61 b(Created)27 b(this)h(\014le.)83 1362 y([)p Fh(LDF)d -(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n -(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h -(distribution)g(of)0 1462 y(3DLDF)28 b(1.1.)36 b(They're)27 -b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)p -0 1554 1678 4 v 1773 1586 a Fk(End)32 b(Log)p 2222 1554 -V 0 1711 a Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n -(ti\014er)35 b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)0 -1910 y Fk(1425.)94 b(Include)32 b(\014les.)0 2035 y Fn(h)14 -b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p -Fn(\021)0 2134 y Fm(#)p Fk(include)32 b Ff("loader.h")0 -2234 y Fm(#)p Fk(include)g Ff("pspglb.h")0 2334 y Fm(#)p -Fk(include)g Ff("io.h")0 2433 y Fm(#)p Fk(include)g Ff("colors.h")0 -2533 y Fm(#)p Fk(include)g Ff("transfor.h")0 2632 y Fm(#)p -Fk(include)g Ff("shapes.h")0 2732 y Fm(#)p Fk(include)g -Ff("pictures.h")0 2832 y Fm(#)p Fk(include)g Ff("points.h")0 -2931 y Fm(#)p Fk(include)g Ff("lines.h")0 3031 y Fm(#)p -Fk(include)g Ff("planes.h")0 3131 y Fm(#)p Fk(include)g -Ff("paths.h")0 3230 y Fm(#)p Fk(include)g Ff("curves.h")0 -3330 y Fm(#)p Fk(include)g Ff("polygons.h")0 3429 y Fm(#)p -Fk(include)g Ff("rectangs.h")0 3529 y Fm(#)p Fk(include)g -Ff("ellipses.h")0 3629 y Fm(#)p Fk(include)g Ff("circles.h")0 -3728 y Fm(#)p Fk(include)g Ff("solids.h")0 3828 y Fm(#)p -Fk(include)g Ff("solfaced.h")0 4027 y Fk(1426.)94 b(P)m(olyhedron)25 +b(\).)p 0 1089 1779 4 v 1874 1121 a Fk(Log)p 2122 1089 +V 83 1262 a Fm([)p Fh(LDF)25 b(2002.09.26.)p Fm(])61 +b(Created)27 b(this)h(\014le.)83 1361 y([)p Fh(LDF)d(2003.11.12.)p +Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n +(ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g +(of)0 1461 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n +(y)h(dev)n(elopmen)n(t)f(v)n(ersions.)83 1561 y([)p Fh(LDF)e +(2003.12.10.)p Fm(])64 b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden) +n(ti\014ers)h(bac)n(k)f(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h +(3DLDF)i(1.1.4.)43 b(I'v)n(e)0 1660 y(already)24 b(put)j(some)e(of)h +(them)h(bac)n(k)e(in,)i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.) +37 b(Ho)n(w)n(ev)n(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w) +i(in)0 1760 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 +b(.)p 0 1852 3900 4 v 0 2009 a Fn(h)14 b Fm(V)-7 b(ersion)27 +b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 2109 y Fk(static)33 b(string)g Fi(r)l(cs)p +726 2109 26 4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p +Ff(polyhed.we)o(b,)o(v)p Fj( )-6 b Ff(1.3)p Fj( )p Ff(2003/12/10)p +Fj( )o Ff(16)o(:27)f(:16)p Fj( )p Ff(lfinsto1)p Fj( )p +Ff(Exp)p Fj( )o Ff($")n Fm(;)0 2308 y Fk(1430.)94 b(Include)32 +b(\014les.)0 2432 y Fn(h)14 b Fm(Include)28 b(\014les)35 +b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 2532 y Fm(#)p +Fk(include)32 b Ff("loader.h")0 2632 y Fm(#)p Fk(include)g +Ff("pspglb.h")0 2731 y Fm(#)p Fk(include)g Ff("io.h")0 +2831 y Fm(#)p Fk(include)g Ff("colors.h")0 2931 y Fm(#)p +Fk(include)g Ff("transfor.h")0 3030 y Fm(#)p Fk(include)g +Ff("shapes.h")0 3130 y Fm(#)p Fk(include)g Ff("pictures.h")0 +3229 y Fm(#)p Fk(include)g Ff("points.h")0 3329 y Fm(#)p +Fk(include)g Ff("lines.h")0 3429 y Fm(#)p Fk(include)g +Ff("planes.h")0 3528 y Fm(#)p Fk(include)g Ff("paths.h")0 +3628 y Fm(#)p Fk(include)g Ff("curves.h")0 3728 y Fm(#)p +Fk(include)g Ff("polygons.h")0 3827 y Fm(#)p Fk(include)g +Ff("rectangs.h")0 3927 y Fm(#)p Fk(include)g Ff("ellipses.h")0 +4026 y Fm(#)p Fk(include)g Ff("circles.h")0 4126 y Fm(#)p +Fk(include)g Ff("solids.h")0 4226 y Fm(#)p Fk(include)g +Ff("solfaced.h")0 4425 y Fk(1431.)94 b(P)m(olyhedron)25 b(class)f(de\014nition.)94 b Fm([)p Fh(LDF)26 b(2002.10.06.)p Fm(])54 b Fk(P)m(olyhedron)27 b Fm(is)21 b(mean)n(t)g(to)h(b)r(e)f -(used)h(only)f(as)g(a)g(base)0 4127 y(class,)27 b(so)g(there's)g(no)g +(used)h(only)f(as)g(a)g(base)0 4525 y(class,)27 b(so)g(there's)g(no)g (need)h(for)f(constructors)f(or)g(setting)i(functions.)83 -4226 y(TO)34 b(DO:)h([)p Fh(LDF)26 b(2003.08.15.)p Fm(])68 +4624 y(TO)34 b(DO:)h([)p Fh(LDF)26 b(2003.08.15.)p Fm(])68 b(If)35 b(I)g(add)f(an)n(y)g(functions,)j(I)e(should)g(add)f(an)h -(explanation)e(to)i(\\)p Fj(@node)41 b(Polyhedron)0 4326 +(explanation)e(to)i(\\)p Fj(@node)41 b(Polyhedron)0 4724 y(Getstart)p Fm(")24 b(in)k Fj(DOCUMENTATION/gs)o(so)o(lf)o(ig.)o(te)o (xi)21 b Fm(ab)r(out)28 b(abstract)e(or)h(non-abstract)f(base)h -(classes.)p 0 4428 1643 4 v 1738 4460 a Fk(Begin)k(Log)p -2257 4428 V 83 4601 a Fm([)p Fh(LDF)25 b(2002.11.08.)p -Fm(])66 b(Got)32 b(rid)f(of)h(pure)g Fk(virtual)37 b -Fm(function)c Fk(P)m(olyhedron)13 b Fm(::)8 b Fi(get)p -2640 4601 26 4 v 31 w(net)k Fm(\()i(\).)50 b(I'v)n(e)32 -b(made)g(it)g Fk(static)37 b Fm(in)c(the)0 4701 y(classes)26 -b(deriv)n(ed)h(from)g Fk(P)m(olyhedron)5 b Fm(,)28 b(whic)n(h)g(mak)n -(es)e(more)h(sense.)36 b Fk(virtual)d Fm(functions)28 -b(m)n(ust)g(b)r(e)g(non-)p Fk(static)t Fm(.)p 0 4792 -1678 4 v 1773 4825 a Fk(End)k(Log)p 2222 4792 V 83 4950 -a(format)65 b Fi(Polyhe)l(dr)l(on)81 b(R)l(e)l(g)p 1039 -4950 26 4 v 30 w(Polygon)0 5074 y Fn(h)14 b Fm(De\014ne)28 -b Fk(class)k(P)m(olyhedron)41 b Fl(1426)15 b Fn(i)23 -b(\021)83 5174 y Fk(class)32 b(P)m(olyhedron)h Fm(:)k -Fk(public)32 b(Solid)p 1375 5174 29 5 v 39 w(F)-8 b(aced)33 -b Fn(f)83 5273 y Fk(protected)5 b Fm(:)42 b Fk(unsigned)31 -b(short)h Fi(numb)l(er)p 1469 5273 26 4 v 30 w(of)p 1566 -5273 V 32 w(p)l(olygon)p 1866 5273 V 32 w(typ)l(es)11 -b Fm(;)166 5373 y Fk(real)33 b Fi(fac)l(e)p 499 5373 -V 31 w(r)l(adius)12 b Fm(;)p eop end -%%Page: 431 431 -TeXDict begin 431 430 bop 0 83 a Fn(x)p Fm(1426)139 b +(classes.)p 0 4825 1779 4 v 1874 4857 a Fk(Log)p 2122 +4825 V 83 4998 a Fm([)p Fh(LDF)e(2002.11.08.)p Fm(])66 +b(Got)32 b(rid)f(of)h(pure)g Fk(virtual)37 b Fm(function)c +Fk(P)m(olyhedron)13 b Fm(::)8 b Fi(get)p 2640 4998 26 +4 v 31 w(net)k Fm(\()i(\).)50 b(I'v)n(e)32 b(made)g(it)g +Fk(static)37 b Fm(in)c(the)0 5098 y(classes)26 b(deriv)n(ed)h(from)g +Fk(P)m(olyhedron)5 b Fm(,)28 b(whic)n(h)g(mak)n(es)e(more)h(sense.)36 +b Fk(virtual)d Fm(functions)28 b(m)n(ust)g(b)r(e)g(non-)p +Fk(static)t Fm(.)p 0 5190 3900 4 v 83 5347 a Fk(format)65 +b Fi(Polyhe)l(dr)l(on)81 b(R)l(e)l(g)p 1039 5347 26 4 +v 30 w(Polygon)p eop end +%%Page: 435 435 +TeXDict begin 435 434 bop 0 83 a Fn(x)p Fm(1431)139 b Fl(3DLDFPR)n(G)1511 b Fk(POL)-8 b(YHEDR)m(ON)23 b Fl(CLASS)h -(DEFINITION)141 b Fm(431)166 263 y Fk(real)33 b Fi(e)l(dge)p -512 263 26 4 v 31 w(r)l(adius)11 b Fm(;)166 363 y Fk(real)33 -b Fi(vertex)p 576 363 V 30 w(r)l(adius)11 b Fm(;)83 487 +(DEFINITION)141 b Fm(435)0 263 y Fn(h)14 b Fm(De\014ne)28 +b Fk(class)k(P)m(olyhedron)41 b Fl(1431)15 b Fn(i)23 +b(\021)83 363 y Fk(class)32 b(P)m(olyhedron)h Fm(:)k +Fk(public)32 b(Solid)p 1375 363 29 5 v 39 w(F)-8 b(aced)33 +b Fn(f)83 462 y Fk(protected)5 b Fm(:)42 b Fk(unsigned)31 +b(short)h Fi(numb)l(er)p 1469 462 26 4 v 30 w(of)p 1566 +462 V 32 w(p)l(olygon)p 1866 462 V 32 w(typ)l(es)11 b +Fm(;)166 562 y Fk(real)33 b Fi(fac)l(e)p 499 562 V 31 +w(r)l(adius)12 b Fm(;)166 662 y Fk(real)33 b Fi(e)l(dge)p +512 662 V 31 w(r)l(adius)11 b Fm(;)166 761 y Fk(real)33 +b Fi(vertex)p 576 761 V 30 w(r)l(adius)11 b Fm(;)83 886 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 b Fk(P)m(olyhedron)33 -b Fm(functions)i Fl(1427)15 b Fn(i)83 587 y(g)p Fm(;)0 -695 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(1488)f(and)h -(1489.)0 894 y Fk(1427.)94 b(In)m(tersection.)h Fm(!!)37 +b Fm(functions)i Fl(1432)15 b Fn(i)83 985 y(g)p Fm(;)0 +1093 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(1493)f(and)h +(1494.)0 1292 y Fk(1432.)94 b(In)m(tersection.)h Fm(!!)37 b([)p Fh(LDF)25 b(2003.04.15.)p Fm(])61 b(ST)-7 b(AR)g(T)28 b(HERE.)g(This)f(function)h(do)r(esn't)g(w)n(ork)e(y)n(et.)p -0 998 1643 4 v 1738 1031 a Fk(Begin)31 b(Log)p 2257 998 -V 83 1171 a Fm([)p Fh(LDF)25 b(2003.04.09.)p Fm(])61 -b(Added)28 b(this)g(section,)g(and)f(the)h(function)g(it)g(con)n -(tains.)83 1271 y([)p Fh(LDF)d(2003.04.15.)p Fm(])59 -b(Commen)n(ted-out)25 b(this)h(function,)h(since)f(I)f(need)h(to)g(get) -f Fk(Reg)p 2706 1271 29 5 v 39 w(P)m(olygon)13 b Fm(::)8 -b Fi(interse)l(ction)p 3570 1271 26 4 v 31 w(p)l(oints)k -Fm(\()i(\))0 1370 y(w)n(orking)26 b(\014rst.)p 0 1462 -1678 4 v 1773 1495 a Fk(End)32 b(Log)p 2222 1462 V 0 -1620 a Fn(h)14 b Fm(Declare)27 b Fk(P)m(olyhedron)33 -b Fm(functions)i Fl(1427)15 b Fn(i)24 b(\021)0 1719 y -Fm(#)p Fk(if)41 b Fm(0)83 1819 y Fk(virtual)33 b(v)m(ector)6 -b Fn(h)p Fk(P)m(oin)m(t)f Fn(i)28 b Fi(interse)l(ction)p -1405 1819 26 4 v 31 w(p)l(oints)11 b Fm(\()p Fk(const)33 -b(Reg)p 2107 1819 29 5 v 39 w(P)m(olygon)f Fm(&)p Fe(r)s -Fm(\))c Fk(const)t Fm(;)0 1918 y(#)p Fk(endif)0 2026 -y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1426.)p +0 1396 1779 4 v 1874 1428 a Fk(Log)p 2122 1396 V 83 1569 +a Fm([)p Fh(LDF)f(2003.04.09.)p Fm(])61 b(Added)28 b(this)g(section,)g +(and)f(the)h(function)g(it)g(con)n(tains.)83 1669 y([)p +Fh(LDF)d(2003.04.15.)p Fm(])59 b(Commen)n(ted-out)25 +b(this)h(function,)h(since)f(I)f(need)h(to)g(get)f Fk(Reg)p +2706 1669 29 5 v 39 w(P)m(olygon)13 b Fm(::)8 b Fi(interse)l(ction)p +3570 1669 26 4 v 31 w(p)l(oints)k Fm(\()i(\))0 1768 y(w)n(orking)26 +b(\014rst.)p 0 1860 3900 4 v 0 2017 a Fn(h)14 b Fm(Declare)27 +b Fk(P)m(olyhedron)33 b Fm(functions)i Fl(1432)15 b Fn(i)24 +b(\021)0 2117 y Fm(#)p Fk(if)41 b Fm(0)83 2217 y Fk(virtual)33 +b(v)m(ector)6 b Fn(h)p Fk(P)m(oin)m(t)f Fn(i)28 b Fi(interse)l(ction)p +1405 2217 26 4 v 31 w(p)l(oints)11 b Fm(\()p Fk(const)33 +b(Reg)p 2107 2217 29 5 v 39 w(P)m(olygon)f Fm(&)p Fe(r)s +Fm(\))c Fk(const)t Fm(;)0 2316 y(#)p Fk(endif)0 2424 +y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1431.)p eop end -%%Page: 432 432 -TeXDict begin 432 431 bop 0 83 a Fm(432)140 b Fl(INTERSECTION)2352 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1428)0 263 y Fk(1428.)0 +%%Page: 436 436 +TeXDict begin 436 435 bop 0 83 a Fm(436)140 b Fl(INTERSECTION)2352 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1433)0 263 y Fk(1433.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olyhedron)33 -b Fm(functions)i Fl(1428)15 b Fn(i)24 b(\021)0 487 y +b Fm(functions)i Fl(1433)15 b Fn(i)24 b(\021)0 487 y Fm(#)p Fk(if)41 b Fm(0)83 587 y Fk(v)m(ector)6 b Fn(h)p Fk(P)m(oin)m(t)f Fn(i)28 b Fk(P)m(olyhedron)14 b Fm(::)8 b Fi(interse)l(ction)p 1638 587 26 4 v 31 w(p)l(oints)j @@ -36536,19 +36536,18 @@ Fn(\003)o Fi(pt)p 1008 1708 V 31 w(iter)f Fm(\);)249 1807 y Fn(g)166 1907 y(g)166 2006 y Fk(return)33 b Fe(w)s Fm(;)83 2106 y Fn(g)0 2206 y Fm(#)p Fk(endif)0 2314 y -Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1488.)0 -2513 y Fk(1429.)94 b(Regular)31 b(Platonic)h(P)m(olyhedra.)0 -2712 y(1430.)94 b(T)-8 b(etrahedron.)p 0 2788 1643 4 -v 1738 2821 a(Begin)31 b(Log)p 2257 2788 V 83 2961 a -Fm([)p Fh(LDF)25 b(2002.11.12.)p Fm(])61 b(Added)28 b(this)g(section.)p -0 3053 1678 4 v 1773 3086 a Fk(End)k(Log)p 2222 3053 -V 0 3285 a(1431.)94 b(T)-8 b(etrahedron)33 b(class)e(de\014nition.)p -0 3361 1643 4 v 1738 3393 a(Begin)g(Log)p 2257 3361 V -83 3534 a Fm([)p Fh(LDF)25 b(2002.11.12.)p Fm(])61 b(Added)28 -b(this)g(section.)p 0 3626 1678 4 v 1773 3659 a Fk(End)k(Log)p -2222 3626 V 83 3783 a(format)65 b Fi(T)-6 b(etr)l(ahe)l(dr)l(on)80 +Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1493.)0 +2513 y Fk(1434.)94 b(Regular)31 b(Platonic)h(P)m(olyhedra.)0 +2712 y(1435.)94 b(T)-8 b(etrahedron.)p 0 2788 1779 4 +v 1874 2821 a(Log)p 2122 2788 V 83 2961 a Fm([)p Fh(LDF)25 +b(2002.11.12.)p Fm(])61 b(Added)28 b(this)g(section.)p +0 3053 3900 4 v 0 3285 a Fk(1436.)94 b(T)-8 b(etrahedron)33 +b(class)e(de\014nition.)p 0 3361 1779 4 v 1874 3393 a(Log)p +2122 3361 V 83 3534 a Fm([)p Fh(LDF)25 b(2002.11.12.)p +Fm(])61 b(Added)28 b(this)g(section.)p 0 3626 3900 4 +v 83 3783 a Fk(format)65 b Fi(T)-6 b(etr)l(ahe)l(dr)l(on)80 b(Polyhe)l(dr)l(on)0 3908 y Fn(h)14 b Fm(De\014ne)28 -b Fk(class)k(T)-8 b(etrahedron)41 b Fl(1431)15 b Fn(i)24 +b Fk(class)k(T)-8 b(etrahedron)41 b Fl(1436)15 b Fn(i)24 b(\021)83 4007 y Fk(class)32 b(T)-8 b(etrahedron)34 b Fm(:)j Fk(public)32 b(P)m(olyhedron)g Fn(f)83 4107 y Fk(protected)5 b Fm(:)42 b Fk(static)32 b(const)h(real)f @@ -36557,88 +36556,84 @@ b Fn(\003)p Fe(=)166 4207 y Fk(real)33 b Fi(triangle)p 634 4207 V 31 w(r)l(adius)11 b Fm(;)83 4331 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(etrahedron)33 -b Fm(functions)j Fl(1434)15 b Fn(i)83 4431 y(g)p Fm(;)0 -4539 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(1488)f(and)h -(1489.)0 4738 y Fk(1432.)94 b(De\014ne)32 b(static)g(const)g(T)-8 -b(etrahedron)32 b(data)h(mem)m(b)s(ers.)p 0 4814 1643 -4 v 1738 4846 a(Begin)e(Log)p 2257 4814 V 83 4987 a Fm([)p -Fh(LDF)25 b(2002.11.12.)p Fm(])61 b(Added)28 b(this)g(section.)p -0 5079 1678 4 v 1773 5112 a Fk(End)k(Log)p 2222 5079 -V 0 5236 a Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(const)f(T)-8 -b(etrahedron)34 b Fm(data)27 b(mem)n(b)r(ers)35 b Fl(1432)15 -b Fn(i)23 b(\021)83 5336 y Fk(const)32 b(real)h(T)-8 +b Fm(functions)j Fl(1439)15 b Fn(i)83 4431 y(g)p Fm(;)0 +4539 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(sections)i(1493)f(and)h +(1494.)0 4738 y Fk(1437.)94 b(De\014ne)32 b(static)g(const)g(T)-8 +b(etrahedron)32 b(data)h(mem)m(b)s(ers.)p 0 4814 1779 +4 v 1874 4846 a(Log)p 2122 4814 V 83 4987 a Fm([)p Fh(LDF)25 +b(2002.11.12.)p Fm(])61 b(Added)28 b(this)g(section.)p +0 5079 3900 4 v 0 5236 a Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 +b(const)f(T)-8 b(etrahedron)34 b Fm(data)27 b(mem)n(b)r(ers)35 +b Fl(1437)15 b Fn(i)23 b(\021)83 5336 y Fk(const)32 b(real)h(T)-8 b(etrahedron)14 b Fm(::)8 b Fi(dihe)l(dr)l(al)p 1388 5336 26 4 v 33 w(angle)34 b Fm(=)23 b Ff(PI)f Fn(\003)c Fm(\(70)g(+)g(32)o Fe(=)p Fm(60)p Fe(:)p Fm(0)n(\))p Fe(=)p Fm(180)p Fe(:)p Fm(0)n(;)p eop end -%%Page: 433 433 -TeXDict begin 433 432 bop 0 83 a Fn(x)p Fm(1432)139 b +%%Page: 437 437 +TeXDict begin 437 436 bop 0 83 a Fn(x)p Fm(1437)139 b Fl(3DLDFPR)n(G)485 b(DEFINE)24 b Fk(ST)-8 b(A)g(TIC)33 b(CONST)f(TETRAHEDR)m(ON)23 b Fl(D)n(A)-6 b(T)g(A)23 -b(MEMBERS)140 b Fm(433)0 263 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f -(section)i(1488.)0 462 y Fk(1433.)94 b(Constructors)32 -b(and)g(setting)f(functions.)0 662 y(1434.)94 b(Default)32 +b(MEMBERS)140 b Fm(437)0 263 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f +(section)i(1493.)0 462 y Fk(1438.)94 b(Constructors)32 +b(and)g(setting)f(functions.)0 662 y(1439.)94 b(Default)32 b(constructor.)96 b Fm(\(No)28 b(argumen)n(ts.\))p 0 -765 1643 4 v 1738 798 a Fk(Begin)j(Log)p 2257 765 V 83 -939 a Fm([)p Fh(LDF)25 b(2002.11.12.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 1031 1678 4 v 1773 1063 a Fk(End)k(Log)p -2222 1031 V 0 1188 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 -b(etrahedron)33 b Fm(functions)j Fl(1434)15 b Fn(i)23 +765 1779 4 v 1874 797 a Fk(Log)p 2122 765 V 83 938 a +Fm([)p Fh(LDF)d(2002.11.12.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 1030 3900 4 v 0 1187 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 +b(etrahedron)33 b Fm(functions)j Fl(1439)15 b Fn(i)23 b(\021)83 1287 y Fk(T)-8 b(etrahedron)6 b Fm(\()14 b(\);)0 -1395 y Fl(See)24 b(also)g(sections)g(1437,)h(1441,)f(1443,)g(and)g -(1445.)0 1503 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1431.)0 -1703 y Fk(1435.)0 1827 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 -b(etrahedron)34 b Fm(functions)h Fl(1435)15 b Fn(i)24 -b(\021)83 1927 y Fk(T)-8 b(etrahedron)14 b Fm(::)8 b +1395 y Fl(See)24 b(also)g(sections)g(1442,)h(1446,)f(1448,)g(and)g +(1450.)0 1503 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1436.)0 +1702 y Fk(1440.)0 1826 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 +b(etrahedron)34 b Fm(functions)h Fl(1440)15 b Fn(i)24 +b(\021)83 1926 y Fk(T)-8 b(etrahedron)14 b Fm(::)8 b Fk(T)-8 b(etrahedron)6 b Fm(\()14 b(\))83 2026 y Fn(f)166 -2126 y Fi(on)p 260 2126 26 4 v 31 w(fr)l(e)l(e)p 419 -2126 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(false)11 b Fm(;)167 +2125 y Fi(on)p 260 2125 26 4 v 31 w(fr)l(e)l(e)p 419 +2125 V 31 w(stor)l(e)33 b Fm(=)23 b Fi(false)11 b Fm(;)167 b Fe(=)p Fn(\003)40 b Fm(from)27 b Fk(Solid)t Fm(.)51 -b Fn(\003)p Fe(=)166 2226 y Fi(do)p 255 2226 V 31 w(output)35 +b Fn(\003)p Fe(=)166 2225 y Fi(do)p 255 2225 V 31 w(output)35 b Fm(=)22 b Fi(true)10 b Fm(;)166 2325 y Fi(fac)l(es)35 b Fm(=)23 b(4)o(;)166 b Fe(=)p Fn(\003)41 b Fm(from)27 b Fk(Solid)p 1225 2325 29 5 v 39 w(F)-8 b(aced)6 b Fm(.)50 -b Fn(\003)p Fe(=)166 2425 y Fi(vertic)l(es)35 b Fm(=)22 +b Fn(\003)p Fe(=)166 2424 y Fi(vertic)l(es)35 b Fm(=)22 b(4;)166 2524 y Fi(e)l(dges)35 b Fm(=)23 b(6)o(;)166 -2624 y Fi(c)l(enter)36 b Fm(=)23 b Ff(INVALID_POINT)n +2623 y Fi(c)l(enter)36 b Fm(=)23 b Ff(INVALID_POINT)n Fm(;)167 b Fe(=)p Fn(\003)40 b Fm(from)27 b Fk(P)m(olyhedron)5 -b Fm(.)51 b Fn(\003)p Fe(=)166 2724 y Fi(numb)l(er)p -438 2724 26 4 v 30 w(of)p 535 2724 V 31 w(p)l(olygon)p -834 2724 V 32 w(typ)l(es)35 b Fm(=)22 b(1;)166 2823 y +b Fm(.)51 b Fn(\003)p Fe(=)166 2723 y Fi(numb)l(er)p +438 2723 26 4 v 30 w(of)p 535 2723 V 31 w(p)l(olygon)p +834 2723 V 32 w(typ)l(es)35 b Fm(=)22 b(1;)166 2823 y Fi(fac)l(e)p 310 2823 V 32 w(r)l(adius)34 b Fm(=)23 b Fi(e)l(dge)p 835 2823 V 31 w(r)l(adius)35 b Fm(=)23 b Fi(vertex)p 1424 2823 V 30 w(r)l(adius)35 b Fm(=)22 b -Ff(INVALID_REAL)p Fm(;)166 2923 y Fi(triangle)p 445 2923 +Ff(INVALID_REAL)p Fm(;)166 2922 y Fi(triangle)p 445 2922 V 31 w(r)l(adius)35 b Fm(=)23 b Ff(INVALID_REAL)o Fm(;)166 b Fe(=)p Fn(\003)41 b Fm(F)-7 b(rom)27 b Fk(T)-8 b(etrahedron)6 -b Fm(.)50 b Fn(\003)p Fe(=)83 3023 y Fn(g)0 3131 y Fl(See)24 -b(also)g(sections)g(1438,)h(1439,)f(1440,)g(1442,)h(1444,)f(and)g -(1446.)0 3238 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1488.)0 -3438 y Fk(1436.)94 b(Cen)m(ter,)32 b(diameter)f(of)h(triangle,)e(and)j -(angles.)0 3637 y(1437.)94 b(Constructor.)p 0 3713 1643 -4 v 1738 3745 a(Begin)31 b(Log)p 2257 3713 V 83 3886 -a Fm([)p Fh(LDF)25 b(2002.11.12.)p Fm(])61 b(Added)28 -b(this)g(function.)83 3986 y([)p Fh(LDF)d(2003.04.27.)p -Fm(])61 b(Got)28 b(this)g(function)g(to)f(w)n(ork,)g(at)g(least)g(in)h -(a)f(rudimen)n(tary)g(w)n(a)n(y)-7 b(.)83 4085 y([)p -Fh(LDF)25 b(2002.08.12.)p Fm(])61 b(Rewrote)27 b(this)h(function.)37 -b(It)28 b(no)n(w)f(w)n(orks)f(prop)r(erly)-7 b(.)p 0 -4177 1678 4 v 1773 4210 a Fk(End)32 b(Log)p 2222 4177 -V 0 4334 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(etrahedron)33 -b Fm(functions)j Fl(1434)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -4434 y Fk(T)-8 b(etrahedron)6 b Fm(\()p Fk(const)29 b(P)m(oin)m(t)h -Fm(&)p Fe(p)o(;)14 b Fk(const)29 b(real)h Fi(diameter)p -2033 4434 26 4 v 31 w(of)p 2131 4434 V 32 w(triangle)11 -b Fe(;)j Fk(real)29 b Fi(angle)p 2856 4434 V 32 w(x)36 -b Fm(=)23 b(0)p Fe(;)14 b Fk(real)29 b Fi(angle)p 3501 -4434 V 31 w(y)35 b Fm(=)23 b(0)o Fe(;)14 b Fk(real)249 -4534 y Fi(angle)p 440 4534 V 31 w(z)38 b Fm(=)22 b(0\);)p -eop end -%%Page: 434 434 -TeXDict begin 434 433 bop 0 83 a Fm(434)140 b Fl(CONSTR)n(UCTOR)2342 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1438)0 263 y Fk(1438.)0 +b Fm(.)50 b Fn(\003)p Fe(=)83 3022 y Fn(g)0 3130 y Fl(See)24 +b(also)g(sections)g(1443,)h(1444,)f(1445,)g(1447,)h(1449,)f(and)g +(1451.)0 3238 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1493.)0 +3437 y Fk(1441.)94 b(Cen)m(ter,)32 b(diameter)f(of)h(triangle,)e(and)j +(angles.)0 3636 y(1442.)94 b(Constructor.)p 0 3712 1779 +4 v 1874 3745 a(Log)p 2122 3712 V 83 3885 a Fm([)p Fh(LDF)25 +b(2002.11.12.)p Fm(])61 b(Added)28 b(this)g(function.)83 +3985 y([)p Fh(LDF)d(2003.04.27.)p Fm(])61 b(Got)28 b(this)g(function)g +(to)f(w)n(ork,)g(at)g(least)g(in)h(a)f(rudimen)n(tary)g(w)n(a)n(y)-7 +b(.)83 4085 y([)p Fh(LDF)25 b(2002.08.12.)p Fm(])61 b(Rewrote)27 +b(this)h(function.)37 b(It)28 b(no)n(w)f(w)n(orks)f(prop)r(erly)-7 +b(.)p 0 4176 3900 4 v 0 4334 a Fn(h)14 b Fm(Declare)27 +b Fk(T)-8 b(etrahedron)33 b Fm(functions)j Fl(1439)15 +b Fn(i)23 b Fm(+)p Fn(\021)83 4433 y Fk(T)-8 b(etrahedron)6 +b Fm(\()p Fk(const)29 b(P)m(oin)m(t)h Fm(&)p Fe(p)o(;)14 +b Fk(const)29 b(real)h Fi(diameter)p 2033 4433 26 4 v +31 w(of)p 2131 4433 V 32 w(triangle)11 b Fe(;)j Fk(real)29 +b Fi(angle)p 2856 4433 V 32 w(x)36 b Fm(=)23 b(0)p Fe(;)14 +b Fk(real)29 b Fi(angle)p 3501 4433 V 31 w(y)35 b Fm(=)23 +b(0)o Fe(;)14 b Fk(real)249 4533 y Fi(angle)p 440 4533 +V 31 w(z)38 b Fm(=)22 b(0\);)p eop end +%%Page: 438 438 +TeXDict begin 438 437 bop 0 83 a Fm(438)140 b Fl(CONSTR)n(UCTOR)2342 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1443)0 263 y Fk(1443.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(etrahedron)34 -b Fm(functions)h Fl(1435)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +b Fm(functions)h Fl(1440)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(T)-8 b(etrahedron)14 b Fm(::)8 b Fk(T)-8 b(etrahedron)6 b Fm(\()p Fk(const)37 b(P)m(oin)m(t)g Fm(&)p Fe(p)o(;)14 b Fk(const)37 b(real)f Fi(triangle)p 2602 487 26 4 v @@ -36710,12 +36705,12 @@ y(#)p Fk(if)41 b Fm(0)249 3850 y Fi(pts)11 b Fm([7])p Fe(:)p Fi(lab)l(el)j Fm(\(7)o Fe(;)g Ff("")t Fm(\);)0 3949 y(#)p Fk(endif)249 4049 y Fi(pts)d Fm([8])23 b(=)f -Fi(me)l(diate)12 b Fm(\()p Fi(pts)f Fm([0])p Fe(;)j Fi(pts)d -Fm([1)o(]\);)249 4148 y Fi(pts)g Fm([9])23 b(=)f Fi(me)l(diate)12 -b Fm(\()p Fi(pts)f Fm([1])p Fe(;)j Fi(pts)d Fm([2)o(]\);)249 -4248 y Fi(pts)g Fm([10)o(])23 b(=)g Fi(me)l(diate)11 -b Fm(\()p Fi(pts)h Fm([2)o(])p Fe(;)i Fi(pts)d Fm([0]\);)0 -4348 y(#)p Fk(if)41 b Fm(0)249 4447 y Fk(for)33 b Fm(\()p +Fi(pts)11 b Fm([0])p Fe(:)p Fi(me)l(diate)h Fm(\()p Fi(pts)f +Fm([1)o(]\);)249 4148 y Fi(pts)g Fm([9])23 b(=)f Fi(pts)11 +b Fm([1])p Fe(:)p Fi(me)l(diate)h Fm(\()p Fi(pts)f Fm([2)o(]\);)249 +4248 y Fi(pts)g Fm([10)o(])23 b(=)g Fi(pts)11 b Fm([2])p +Fe(:)p Fi(me)l(diate)g Fm(\()p Fi(pts)g Fm([0]\);)0 4348 +y(#)p Fk(if)41 b Fm(0)249 4447 y Fk(for)33 b Fm(\()p Fe(i)23 b Fm(=)f(8;)41 b Fe(i)23 b(<)g Fm(11)o(;)41 b Fe(i)995 4439 y Fg(+)-8 b(+)1093 4447 y Fm(\))42 b Fi(pts)11 b Fm([)p Fe(i)o Fm(])p Fe(:)p Fi(lab)l(el)j Fm(\()p Fe(i)p @@ -36729,10 +36724,10 @@ Fm(\);)249 5195 y Fi(pts)h Fm([3])p Fe(:)p Fi(dr)l(aw)j Fm(\()p Fi(pts)d Fm([7])p Fe(;)j Fi(or)l(ange)d Fm(\);)0 5294 y(#)p Fk(endif)p eop end -%%Page: 435 435 -TeXDict begin 435 434 bop 0 83 a Fn(x)p Fm(1439)139 b -Fl(3DLDFPR)n(G)2344 b(CONSTR)n(UCTOR)140 b Fm(435)0 263 -y Fk(1439.)94 b Fi(c)l(enter)45 b Fm(is)32 b(the)h(in)n(tersection)e(p) +%%Page: 439 439 +TeXDict begin 439 438 bop 0 83 a Fn(x)p Fm(1444)139 b +Fl(3DLDFPR)n(G)2344 b(CONSTR)n(UCTOR)140 b Fm(439)0 263 +y Fk(1444.)94 b Fi(c)l(enter)45 b Fm(is)32 b(the)h(in)n(tersection)e(p) r(oin)n(t)h(of)h(the)f(line)h(segmen)n(ts)e(from)h(the)g(v)n(ertices)g (of)g Fn(\003)o Fm(\()p Fi(r)l(e)l(g)p 3186 263 26 4 v 31 w(p)l(olygons)12 b Fm([0]\))33 b(to)f(the)0 363 @@ -36753,7 +36748,7 @@ (and)f(no)n(w)g(simply)g(use)h(the)g(v)-5 b(alue)28 b(I)0 960 y(found.)37 b([)p Fh(LDF)26 b(2002.08.12.)p Fm(])0 1085 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(etrahedron)34 -b Fm(functions)h Fl(1435)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +b Fm(functions)h Fl(1440)15 b Fn(i)24 b Fm(+)p Fn(\021)83 1185 y Fk(real)32 b Fi(distanc)l(e)j Fm(=)22 b(0)p Fe(:)p Fm(74997889995574)o(95)o(11)o(71)o(87)o(5)-6 b(;)0 1284 y(#)p Fk(if)41 b Fm(0)83 1384 y Fk(P)m(oin)m(t)33 b Ff(P0)26 @@ -36809,11 +36804,11 @@ Ff(==)p Fj( )p Ff(")e Fn(\034)j Fi(distanc)l(e)34 b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)24 b Fi(\015ush)10 b Fm(;)83 3053 y Fi(c)l(out)i Fe(:)p Fi(pr)l(e)l(cision)g Fm(\(6)o(\);)0 -3152 y(#)p Fk(endif)0 3351 y(1440.)0 3476 y Fn(h)i Fm(De\014ne)28 -b Fk(T)-8 b(etrahedron)34 b Fm(functions)h Fl(1435)15 +3152 y(#)p Fk(endif)0 3351 y(1445.)0 3476 y Fn(h)i Fm(De\014ne)28 +b Fk(T)-8 b(etrahedron)34 b Fm(functions)h Fl(1440)15 b Fn(i)24 b Fm(+)p Fn(\021)83 3576 y Fi(c)l(enter)36 -b Fm(=)22 b Fi(me)l(diate)12 b Fm(\()p Fi(pts)f Fm([1])p -Fe(;)j Fi(pts)d Fm([5)o(])p Fe(;)j Fi(distanc)l(e)d Fm(\);)83 +b Fm(=)22 b Fi(pts)12 b Fm([1)o(])p Fe(:)p Fi(me)l(diate)g +Fm(\()p Fi(pts)f Fm([5])p Fe(;)j Fi(distanc)l(e)d Fm(\);)83 3675 y Fk(for)33 b Fm(\()p Fe(i)23 b Fm(=)f(0;)41 b Fe(i)23 b(<)g Fm(4)o(;)759 3667 y Fg(+)-8 b(+)857 3675 y Fe(i)o Fm(\))42 b Fi(r)l(e)l(g)p 1067 3675 V 31 w(p)l(olygons)12 @@ -36839,10 +36834,10 @@ b Fm([)p Fe(i)p Fm(])1548 4398 y Fe(~)1598 4373 y Fi(shift)h Fm(\()p Fe(p)p Fm(\);)83 4472 y Fn(g)83 4572 y Fk(return)5 b Fm(;)37 b Fn(g)p eop end -%%Page: 436 436 -TeXDict begin 436 435 bop 0 83 a Fm(436)140 b Fl(SETTING)24 -b(FUNCTION)2170 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1441)0 -263 y Fk(1441.)94 b(Setting)38 b(function.)95 b Fm([)p +%%Page: 440 440 +TeXDict begin 440 439 bop 0 83 a Fm(440)140 b Fl(SETTING)24 +b(FUNCTION)2170 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1446)0 +263 y Fk(1446.)94 b(Setting)38 b(function.)95 b Fm([)p Fh(LDF)26 b(2002.11.12.)p Fm(])66 b(!!)55 b(This)34 b(w)n(orks,)f(but)i (it)f(fails)f(to)h(assign)e(to)h(the)h(data)f(mem)n(b)r(ers)0 363 y(of)f Fk(T)-8 b(etrahedron)37 b Fm(that)32 b(are)e(de\014ned)i(in) @@ -36850,59 +36845,57 @@ b(b)r(ecause)f(neither)g Fk(T)-8 b(etrahedron)38 b Fm(nor)0 462 y Fk(P)m(olyhedron)33 b Fm(has)27 b(an)g(assignmen)n(t)g(op)r (erator)e(y)n(et.)37 b(TO)27 b(DO:)h(W)-7 b(rite)28 b(assignmen)n(t)e -(op)r(erators)g(for)h Fk(P)m(olyhedra)6 b Fm(!)p 0 562 -1643 4 v 1738 594 a Fk(Begin)31 b(Log)p 2257 562 V 83 -735 a Fm([)p Fh(LDF)25 b(2002.11.12.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 827 1678 4 v 1773 859 a Fk(End)k(Log)p -2222 827 V 0 984 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 -b(etrahedron)33 b Fm(functions)j Fl(1434)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 1084 y Fk(v)m(oid)35 b Fi(set)11 +(op)r(erators)g(for)h Fk(P)m(olyhedra)6 b Fm(!)p 0 561 +1779 4 v 1874 593 a Fk(Log)p 2122 561 V 83 734 a Fm([)p +Fh(LDF)25 b(2002.11.12.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 826 3900 4 v 0 983 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 +b(etrahedron)33 b Fm(functions)j Fl(1439)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 1083 y Fk(v)m(oid)35 b Fi(set)11 b Fm(\()p Fk(const)35 b(P)m(oin)m(t)g Fm(&)p Fe(p)o(;)14 -b Fk(const)35 b(real)f Fi(diameter)p 1855 1084 26 4 v -32 w(of)p 1954 1084 V 32 w(triangle)11 b Fe(;)j Fk(real)34 -b Fi(angle)p 2684 1084 V 32 w(x)40 b Fm(=)26 b(0)o Fe(;)14 -b Fk(real)35 b Fi(angle)p 3341 1084 V 31 w(y)j Fm(=)27 -b(0)o Fe(;)14 b Fk(real)249 1183 y Fi(angle)p 440 1183 -V 31 w(z)38 b Fm(=)22 b(0\);)0 1382 y Fk(1442.)0 1507 +b Fk(const)35 b(real)f Fi(diameter)p 1855 1083 26 4 v +32 w(of)p 1954 1083 V 32 w(triangle)11 b Fe(;)j Fk(real)34 +b Fi(angle)p 2684 1083 V 32 w(x)40 b Fm(=)26 b(0)o Fe(;)14 +b Fk(real)35 b Fi(angle)p 3341 1083 V 31 w(y)j Fm(=)27 +b(0)o Fe(;)14 b Fk(real)249 1182 y Fi(angle)p 440 1182 +V 31 w(z)38 b Fm(=)22 b(0\);)0 1382 y Fk(1447.)0 1506 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(etrahedron)34 -b Fm(functions)h Fl(1435)15 b Fn(i)24 b Fm(+)p Fn(\021)83 -1607 y Fk(v)m(oid)31 b(T)-8 b(etrahedron)14 b Fm(::)8 +b Fm(functions)h Fl(1440)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +1606 y Fk(v)m(oid)31 b(T)-8 b(etrahedron)14 b Fm(::)8 b Fi(set)k Fm(\()p Fk(const)31 b(P)m(oin)m(t)g Fm(&)o -Fe(p;)14 b Fk(const)31 b(real)f Fi(triangle)p 2376 1607 +Fe(p;)14 b Fk(const)31 b(real)f Fi(triangle)p 2376 1606 V 32 w(diameter)14 b Fe(;)g Fk(real)30 b Fi(angle)p 3147 -1607 V 32 w(x)13 b Fe(;)h Fk(real)31 b Fi(angle)p 3641 -1607 V 31 w(y)12 b Fe(;)i Fk(real)415 1706 y Fi(angle)p -606 1706 V 31 w(z)h Fm(\))83 1806 y Fn(f)166 1905 y Fk(T)-8 +1606 V 32 w(x)13 b Fe(;)h Fk(real)31 b Fi(angle)p 3641 +1606 V 31 w(y)12 b Fe(;)i Fk(real)415 1706 y Fi(angle)p +606 1706 V 31 w(z)h Fm(\))83 1805 y Fn(f)166 1905 y Fk(T)-8 b(etrahedron)34 b Fe(t)o Fm(\()p Fe(p)q(;)14 b Fi(triangle)p 1134 1905 V 31 w(diameter)g Fe(;)g Fi(angle)p 1718 1905 V 31 w(x)g Fe(;)g Fi(angle)p 2025 1905 V 31 w(y)e Fe(;)i -Fi(angle)p 2331 1905 V 31 w(z)h Fm(\);)166 2030 y Fn(\003)p -Fi(this)34 b Fm(=)23 b Fe(t)p Fm(;)166 2130 y Fk(return)5 -b Fm(;)83 2229 y Fn(g)0 2429 y Fk(1443.)94 b(Get)28 b(net.)95 +Fi(angle)p 2331 1905 V 31 w(z)h Fm(\);)166 2029 y Fn(\003)p +Fi(this)34 b Fm(=)23 b Fe(t)p Fm(;)166 2129 y Fk(return)5 +b Fm(;)83 2229 y Fn(g)0 2428 y Fk(1448.)94 b(Get)28 b(net.)95 b Fm([)p Fh(LDF)25 b(2002.11.12.)p Fm(])57 b(Unlik)n(e)24 -b(the)h Fi(get)p 1911 2429 V 30 w(net)12 b Fm(\()i(\))25 +b(the)h Fi(get)p 1911 2428 V 30 w(net)12 b Fm(\()i(\))25 b(functions)f(for)g(some)f(of)h(the)h(other)e Fk(P)m(olyhedra)6 -b Fm(,)25 b(this)0 2528 y(function)j(has)f(no)h(\\)p -Fk(b)s(o)s(ol)i Fi(do)p 932 2528 V 31 w(half)24 b Fm(")j(argumen)n(t.) +b Fm(,)25 b(this)0 2527 y(function)j(has)f(no)h(\\)p +Fk(b)s(o)s(ol)i Fi(do)p 932 2527 V 31 w(half)24 b Fm(")j(argumen)n(t.) 36 b(It)28 b(do)r(esn't)f(pa)n(y)g(for)g(a)g Fk(T)-8 -b(etrahedron)6 b Fm(.)p 0 2627 1643 4 v 1738 2660 a Fk(Begin)31 -b(Log)p 2257 2627 V 83 2801 a Fm([)p Fh(LDF)25 b(2002.11.12.)p -Fm(])61 b(Added)28 b(this)g(function.)83 2900 y([)p Fh(LDF)d +b(etrahedron)6 b Fm(.)p 0 2626 1779 4 v 1874 2659 a Fk(Log)p +2122 2626 V 83 2799 a Fm([)p Fh(LDF)25 b(2002.11.12.)p +Fm(])61 b(Added)28 b(this)g(function.)83 2899 y([)p Fh(LDF)d (2002.08.12.)p Fm(])61 b(Remo)n(v)n(ed)27 b Fi(c)l(enter)p -1323 2900 26 4 v 30 w(0)44 b Fm(argumen)n(t.)p 0 2992 -1678 4 v 1773 3025 a Fk(End)32 b(Log)p 2222 2992 V 0 -3149 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(etrahedron)33 -b Fm(functions)j Fl(1434)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -3249 y Fk(static)33 b(v)m(ector)6 b Fn(h)p Fk(Reg)p 806 -3249 29 5 v 39 w(P)m(olygon)32 b Fn(\003i)c Fi(get)p -1420 3249 26 4 v 30 w(net)12 b Fm(\()p Fk(const)33 b(real)f -Fi(triangle)p 2320 3249 V 31 w(diameter)15 b Fm(\);)p +1323 2899 26 4 v 30 w(0)44 b Fm(argumen)n(t.)p 0 2991 +3900 4 v 0 3148 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(etrahedron)33 +b Fm(functions)j Fl(1439)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +3248 y Fk(static)33 b(v)m(ector)6 b Fn(h)p Fk(Reg)p 806 +3248 29 5 v 39 w(P)m(olygon)32 b Fn(\003i)c Fi(get)p +1420 3248 26 4 v 30 w(net)12 b Fm(\()p Fk(const)33 b(real)f +Fi(triangle)p 2320 3248 V 31 w(diameter)15 b Fm(\);)p eop end -%%Page: 437 437 -TeXDict begin 437 436 bop 0 83 a Fn(x)p Fm(1444)139 b -Fl(3DLDFPR)n(G)2575 b(GET)24 b(NET)140 b Fm(437)0 263 -y Fk(1444.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 -b(etrahedron)34 b Fm(functions)h Fl(1435)15 b Fn(i)24 +%%Page: 441 441 +TeXDict begin 441 440 bop 0 83 a Fn(x)p Fm(1449)139 b +Fl(3DLDFPR)n(G)2575 b(GET)24 b(NET)140 b Fm(441)0 263 +y Fk(1449.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 +b(etrahedron)34 b Fm(functions)h Fl(1440)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(ector)6 b Fn(h)p Fk(Reg)p 546 487 29 5 v 39 w(P)m(olygon)33 b Fn(\003)o(i)28 b Fk(T)-8 b(etrahedron)14 b Fm(::)8 b Fi(get)p 1742 487 @@ -36946,7 +36939,7 @@ Fm([3)o(])556 2280 y Fe(~)607 2256 y Fi(shift)h Fm(\()p Fi(pts)e Fm([2])18 b Fn(\000)g Fi(pts)11 b Fm([4]\);)166 2355 y Fk(return)33 b Fi(triangles)12 b Fm(;)83 2455 -y Fn(g)0 2654 y Fk(1445.)94 b(Dra)m(w)41 b(net.)95 b +y Fn(g)0 2654 y Fk(1450.)94 b(Dra)m(w)41 b(net.)95 b Fm([)p Fh(LDF)25 b(2002.11.12.)p Fm(])67 b(As)35 b(of)f(this)h(date)f (it's)g(necessary)f(to)h(rotate)f(the)i(triangles)e(in)n(to)h(the)h (x-y)0 2754 y(plane,)28 b(b)r(ecause)f Fk(P)m(oin)m(t)13 @@ -36960,22 +36953,21 @@ b(jection.)41 b(The)30 b(latter)f(curren)n(tly)f(only)i(w)n(orks)d(for) i(the)h(x-y)f(plane.)42 b(TO)29 b(DO:)h(Fix)g(the)0 3053 y(bug)d(and)h(get)f(parallel)g(pro)5 b(jection)26 b(on)n(to)h(other)g -(ma)5 b(jor)26 b(planes)i(to)f(w)n(ork!)p 0 3152 1643 -4 v 1738 3184 a Fk(Begin)k(Log)p 2257 3152 V 83 3325 -a Fm([)p Fh(LDF)25 b(2002.11.12.)p Fm(])61 b(Added)28 -b(this)g(function.)p 0 3417 1678 4 v 1773 3450 a Fk(End)k(Log)p -2222 3417 V 0 3574 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 -b(etrahedron)33 b Fm(functions)j Fl(1434)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 3674 y Fk(static)33 b(v)m(oid)f Fi(dr)l(aw)p -725 3674 26 4 v 32 w(net)11 b Fm(\()p Fk(const)33 b(real)f -Fi(triangle)p 1626 3674 V 32 w(diameter)14 b Fe(;)g Fk(b)s(o)s(ol)31 -b Fi(make)p 2424 3674 V 31 w(tabs)j Fm(=)23 b Fi(true)10 +(ma)5 b(jor)26 b(planes)i(to)f(w)n(ork!)p 0 3151 1779 +4 v 1874 3184 a Fk(Log)p 2122 3151 V 83 3324 a Fm([)p +Fh(LDF)e(2002.11.12.)p Fm(])61 b(Added)28 b(this)g(function.)p +0 3416 3900 4 v 0 3574 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 +b(etrahedron)33 b Fm(functions)j Fl(1439)15 b Fn(i)23 +b Fm(+)p Fn(\021)83 3673 y Fk(static)33 b(v)m(oid)f Fi(dr)l(aw)p +725 3673 26 4 v 32 w(net)11 b Fm(\()p Fk(const)33 b(real)f +Fi(triangle)p 1626 3673 V 32 w(diameter)14 b Fe(;)g Fk(b)s(o)s(ol)31 +b Fi(make)p 2424 3673 V 31 w(tabs)j Fm(=)23 b Fi(true)10 b Fm(\);)p eop end -%%Page: 438 438 -TeXDict begin 438 437 bop 0 83 a Fm(438)140 b Fl(DRA)-8 -b(W)23 b(NET)2505 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1446)0 -263 y Fk(1446.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 -b(etrahedron)34 b Fm(functions)h Fl(1435)15 b Fn(i)24 +%%Page: 442 442 +TeXDict begin 442 441 bop 0 83 a Fm(442)140 b Fl(DRA)-8 +b(W)23 b(NET)2505 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1451)0 +263 y Fk(1451.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 +b(etrahedron)34 b Fm(functions)h Fl(1440)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(T)-8 b(etrahedron)14 b Fm(::)8 b Fi(dr)l(aw)p 1048 487 26 4 v 31 w(net)k Fm(\()p Fk(const)33 b(real)f Fi(triangle)p 1949 487 V 31 w(diameter)15 @@ -37010,10 +37002,10 @@ V 31 w(p)l(oint)12 b Fm(\(0\);)166 2156 y Fi(pts)f Fm([5])23 b(=)f Fe(v)t Fm([3)o(])593 2181 y Fe(~)643 2156 y Fi(get)p 752 2156 V 31 w(p)l(oint)12 b Fm(\(1\);)166 2256 y Fi(pts)f -Fm([6])23 b(=)f Fi(me)l(diate)12 b Fm(\()p Fi(pts)f Fm([0])p -Fe(;)j Fi(pts)d Fm([5)o(])p Fe(;)j(:)p Fm(075)o(\);)166 -2355 y Fi(pts)d Fm([7])23 b(=)f Fi(me)l(diate)12 b Fm(\()p -Fi(pts)f Fm([5])p Fe(;)j Fi(pts)d Fm([0)o(])p Fe(;)j(:)p +Fm([6])23 b(=)f Fi(pts)11 b Fm([0])p Fe(:)p Fi(me)l(diate)h +Fm(\()p Fi(pts)f Fm([5)o(])p Fe(;)j(:)p Fm(075)o(\);)166 +2355 y Fi(pts)d Fm([7])23 b(=)f Fi(pts)11 b Fm([5])p +Fe(:)p Fi(me)l(diate)h Fm(\()p Fi(pts)f Fm([0)o(])p Fe(;)j(:)p Fm(075)o(\);)166 2455 y Fi(pts)d Fm([8])23 b(=)f Fi(pts)11 b Fm([6];)166 2554 y Fi(pts)g Fm([9])23 b(=)f Fi(pts)11 b Fm([7];)166 2654 y Fi(pts)g Fm([8])23 b Fn(\003)p Fm(=)f @@ -37026,10 +37018,10 @@ 3053 y Fi(pts)d Fm([11)o(])p Fe(:)p Fi(r)l(otate)g Fm(\()p Fi(pts)g Fm([7])p Fe(;)j Fi(pts)d Fm([9)o(])p Fe(;)j Fm(110)o(\);)166 3152 y Fi(pts)d Fm([10)o(])23 b(=)g -Fi(me)l(diate)11 b Fm(\()p Fi(pts)h Fm([6)o(])p Fe(;)i -Fi(pts)d Fm([10)o(])p Fe(;)j Fm(1)p Fe(:)p Fm(5)o(\);)166 -3252 y Fi(pts)d Fm([11)o(])23 b(=)g Fi(me)l(diate)11 -b Fm(\()p Fi(pts)h Fm([7)o(])p Fe(;)i Fi(pts)d Fm([11)o(])p +Fi(pts)11 b Fm([6)o(])p Fe(:)p Fi(me)l(diate)h Fm(\()p +Fi(pts)f Fm([10)o(])p Fe(;)j Fm(1)p Fe(:)p Fm(5)o(\);)166 +3252 y Fi(pts)d Fm([11)o(])23 b(=)g Fi(pts)11 b Fm([7)o(])p +Fe(:)p Fi(me)l(diate)h Fm(\()p Fi(pts)f Fm([11)o(])p Fe(;)j Fm(1)p Fe(:)p Fm(5)o(\);)0 3351 y(#)p Fk(if)41 b Fm(0)166 3451 y Fk(for)33 b Fm(\()p Fe(i)23 b Fm(=)f(0;)41 b Fe(i)23 b(<)g Fm(8)o(;)42 b Fe(i)871 3443 y Fg(+)-8 @@ -37044,11 +37036,11 @@ Fe(;)j Fm(&)o Fi(pts)d Fm([11)o(])p Fe(;)j Fm(&)p Fi(pts)d Fm([7])p Fe(;)j Fm(0)o(\);)166 4099 y Fe(p)p Fm([0)o(])p Fe(:)p Fi(dr)l(aw)g Fm(\()g(\);)166 4198 y Fi(pts)d Fm([12)o(])23 -b(=)g Fi(me)l(diate)11 b Fm(\()p Fi(pts)h Fm([6)o(])p -Fe(;)i Fi(pts)d Fm([7]\);)166 4298 y Fi(pts)g Fm([13)o(])23 -b(=)g Fi(me)l(diate)11 b Fm(\()p Fi(pts)h Fm([10)o(])p -Fe(;)i Fi(pts)d Fm([11)o(]\);)0 4398 y(#)p Fk(if)41 b -Fm(0)166 4497 y Fi(pts)11 b Fm([12)o(])p Fe(:)p Fi(dotlab)l(el)k +b(=)g Fi(pts)11 b Fm([6)o(])p Fe(:)p Fi(me)l(diate)h +Fm(\()p Fi(pts)f Fm([7]\);)166 4298 y Fi(pts)g Fm([13)o(])23 +b(=)g Fi(pts)11 b Fm([10)o(])p Fe(:)p Fi(me)l(diate)h +Fm(\()p Fi(pts)f Fm([11)o(]\);)0 4398 y(#)p Fk(if)41 +b Fm(0)166 4497 y Fi(pts)11 b Fm([12)o(])p Fe(:)p Fi(dotlab)l(el)k Fm(\(12)o(\);)166 4597 y Fi(pts)c Fm([13)o(])p Fe(:)p Fi(dotlab)l(el)k Fm(\(13)o(\);)0 4696 y(#)p Fk(endif)166 4796 y Fe(p)p Fm([1)o(])p Fe(:)p Fi(set)d Fm(\()p Fi(pts)g @@ -37057,16 +37049,16 @@ Fi(dr)l(aw)p 493 4995 V 32 w(help)11 b Fm(\()p Fn(\003)o Fk(Colors)h Fm(::)d Fi(help)p 1231 4995 V 32 w(c)l(olor)14 b Fe(;)g Ff("")s Fm(\);)0 5095 y(#)p Fk(endif)166 5195 -y Fi(pts)d Fm([14)o(])23 b(=)g Fi(me)l(diate)11 b Fm(\()p -Fi(pts)h Fm([12)o(])p Fe(;)i Fi(pts)d Fm([13)o(]\);)0 +y Fi(pts)d Fm([14)o(])23 b(=)g Fi(pts)11 b Fm([12)o(])p +Fe(:)p Fi(me)l(diate)h Fm(\()p Fi(pts)f Fm([13)o(]\);)0 5294 y(#)p Fk(if)41 b Fm(0)166 5394 y Fi(pts)11 b Fm([14)o(])p Fe(:)p Fi(dotlab)l(el)k Fm(\(14)o(\);)p eop end -%%Page: 439 439 -TeXDict begin 439 438 bop 0 83 a Fn(x)p Fm(1446)139 b -Fl(3DLDFPR)n(G)2506 b(DRA)-8 b(W)24 b(NET)140 b Fm(439)0 +%%Page: 443 443 +TeXDict begin 443 442 bop 0 83 a Fn(x)p Fm(1451)139 b +Fl(3DLDFPR)n(G)2506 b(DRA)-8 b(W)24 b(NET)140 b Fm(443)0 263 y(#)p Fk(endif)166 363 y Fi(pts)11 b Fm([15)o(])23 -b(=)g Fi(me)l(diate)11 b Fm(\()p Fi(pts)h Fm([6)o(])p -Fe(;)i Fi(pts)d Fm([7])p Fe(;)j(:)p Fm(25)o(\);)0 462 +b(=)g Fi(pts)11 b Fm([6)o(])p Fe(:)p Fi(me)l(diate)h +Fm(\()p Fi(pts)f Fm([7])p Fe(;)j(:)p Fm(25)o(\);)0 462 y(#)p Fk(if)41 b Fm(0)166 562 y Fi(pts)11 b Fm([15)o(])p Fe(:)p Fi(dotlab)l(el)k Fm(\(15)o(\);)0 662 y(#)p Fk(endif)166 761 y Fi(pts)c Fm([16)o(])23 b(=)g Fi(pts)11 b Fm([14)o(];)166 @@ -37097,9 +37089,9 @@ Ff("")s Fm(\);)0 2604 y(#)p Fk(endif)166 2704 y(for)33 b Fm(\()p Fe(i)23 b Fm(=)f(1;)41 b Fe(i)23 b(<)g Fm(16)o(;)883 2696 y Fg(+)-8 b(+)981 2704 y Fe(i)p Fm(\))42 b Fn(f)249 -2803 y Fi(pts)11 b Fm([19)o(])23 b(=)g Fi(me)l(diate)11 -b Fm(\()p Fi(pts)h Fm([17)o(])p Fe(;)i Fi(pts)d Fm([18)o(])p -Fe(;)j(i)o(=)p Fm(16)p Fe(:)p Fm(0)n(\);)249 2903 y Fi(pts)d +2803 y Fi(pts)11 b Fm([19)o(])23 b(=)g Fi(pts)11 b Fm([17)o(])p +Fe(:)p Fi(me)l(diate)h Fm(\()p Fi(pts)f Fm([18)o(])p +Fe(;)j(i=)p Fm(16)p Fe(:)p Fm(0)n(\);)249 2903 y Fi(pts)d Fm([19)o(])p Fe(:)p Fi(dr)l(awdot)j Fm(\()p Fn(\003)o Fk(Colors)e Fm(::)d Fi(default)p 1467 2903 V 31 w(c)l(olor)15 b Fe(;)f Ff("pencircle)p Fj( )p Ff(scal)o(ed)o Fj( )p @@ -37117,9 +37109,9 @@ Fi(dr)l(aw)14 b Fm(\()g(\);)166 3949 y Fk(for)33 b Fm(\()p Fe(i)23 b Fm(=)f(1;)41 b Fe(i)23 b(<)g Fm(16)o(;)883 3941 y Fg(+)-8 b(+)981 3949 y Fe(i)p Fm(\))42 b Fn(f)249 -4049 y Fi(pts)11 b Fm([19)o(])23 b(=)g Fi(me)l(diate)11 -b Fm(\()p Fi(pts)h Fm([20)o(])p Fe(;)i Fi(pts)d Fm([21)o(])p -Fe(;)j(i)o(=)p Fm(16)p Fe(:)p Fm(0)n(\);)249 4148 y Fi(pts)d +4049 y Fi(pts)11 b Fm([19)o(])23 b(=)g Fi(pts)11 b Fm([20)o(])p +Fe(:)p Fi(me)l(diate)h Fm(\()p Fi(pts)f Fm([21)o(])p +Fe(;)j(i=)p Fm(16)p Fe(:)p Fm(0)n(\);)249 4148 y Fi(pts)d Fm([19)o(])p Fe(:)p Fi(dr)l(awdot)j Fm(\()p Fn(\003)o Fk(Colors)e Fm(::)d Fi(default)p 1467 4148 V 31 w(c)l(olor)15 b Fe(;)f Ff("pencircle)p Fj( )p Ff(scal)o(ed)o Fj( )p @@ -37132,9 +37124,9 @@ Fi(dr)l(aw)14 b Fm(\()g(\);)166 4746 y Fk(for)33 b Fm(\()p Fe(i)23 b Fm(=)f(1;)41 b Fe(i)23 b(<)g Fm(16)o(;)883 4738 y Fg(+)-8 b(+)981 4746 y Fe(i)p Fm(\))42 b Fn(f)249 -4846 y Fi(pts)11 b Fm([19)o(])23 b(=)g Fi(me)l(diate)11 -b Fm(\()p Fi(pts)h Fm([20)o(])p Fe(;)i Fi(pts)d Fm([21)o(])p -Fe(;)j(i)o(=)p Fm(16)p Fe(:)p Fm(0)n(\);)249 4945 y Fi(pts)d +4846 y Fi(pts)11 b Fm([19)o(])23 b(=)g Fi(pts)11 b Fm([20)o(])p +Fe(:)p Fi(me)l(diate)h Fm(\()p Fi(pts)f Fm([21)o(])p +Fe(;)j(i=)p Fm(16)p Fe(:)p Fm(0)n(\);)249 4945 y Fi(pts)d Fm([19)o(])p Fe(:)p Fi(dr)l(awdot)j Fm(\()p Fn(\003)o Fk(Colors)e Fm(::)d Fi(default)p 1467 4945 V 31 w(c)l(olor)15 b Fe(;)f Ff("pencircle)p Fj( )p Ff(scal)o(ed)o Fj( )p @@ -37143,18 +37135,18 @@ y Fi(pts)g Fm([21)o(])23 b(=)g Fi(pts)11 b Fm([18)o(];)166 5344 y Fe(p)p Fm([3)o(])24 b(=)e Fe(p)p Fm([0)o(];)p eop end -%%Page: 440 440 -TeXDict begin 440 439 bop 0 83 a Fm(440)140 b Fl(DRA)-8 -b(W)23 b(NET)2505 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1446)166 +%%Page: 444 444 +TeXDict begin 444 443 bop 0 83 a Fm(444)140 b Fl(DRA)-8 +b(W)23 b(NET)2505 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1451)166 263 y Fi(pts)11 b Fm([20)o(])23 b Fn(\003)p Fm(=)f Fi(pts)11 b Fm([21])23 b Fn(\003)p Fm(=)f Fe(p)p Fm([3)o(])h Fn(\003)p Fm(=)f Fe(t)p Fm(;)166 363 y Fe(p)p Fm([3)o(])p Fe(:)p Fi(dr)l(aw)14 b Fm(\()g(\);)166 462 y Fk(for)33 b Fm(\()p Fe(i)23 b Fm(=)f(1;)41 b Fe(i)23 b(<)g Fm(16)o(;)883 454 y Fg(+)-8 b(+)981 462 y Fe(i)p Fm(\))42 b Fn(f)249 -562 y Fi(pts)11 b Fm([19)o(])23 b(=)g Fi(me)l(diate)11 -b Fm(\()p Fi(pts)h Fm([20)o(])p Fe(;)i Fi(pts)d Fm([21)o(])p -Fe(;)j(i)o(=)p Fm(16)p Fe(:)p Fm(0)n(\);)249 662 y Fi(pts)d +562 y Fi(pts)11 b Fm([19)o(])23 b(=)g Fi(pts)11 b Fm([20)o(])p +Fe(:)p Fi(me)l(diate)h Fm(\()p Fi(pts)f Fm([21)o(])p +Fe(;)j(i=)p Fm(16)p Fe(:)p Fm(0)n(\);)249 662 y Fi(pts)d Fm([19)o(])p Fe(:)p Fi(dr)l(awdot)j Fm(\()p Fn(\003)o Fk(Colors)e Fm(::)d Fi(default)p 1467 662 26 4 v 31 w(c)l(olor)15 b Fe(;)f Ff("pencircle)p Fj( )p Ff(scal)o(ed)o Fj( )p @@ -37176,8 +37168,8 @@ 1857 y Fk(for)33 b Fm(\()p Fe(i)23 b Fm(=)f(1;)41 b Fe(i)23 b(<)g Fm(16)o(;)883 1849 y Fg(+)-8 b(+)981 1857 y Fe(i)p Fm(\))42 b Fn(f)249 1957 y Fi(pts)11 b Fm([19)o(])23 -b(=)g Fi(me)l(diate)11 b Fm(\()p Fi(pts)h Fm([20)o(])p -Fe(;)i Fi(pts)d Fm([21)o(])p Fe(;)j(i)o(=)p Fm(16)p Fe(:)p +b(=)g Fi(pts)11 b Fm([20)o(])p Fe(:)p Fi(me)l(diate)h +Fm(\()p Fi(pts)f Fm([21)o(])p Fe(;)j(i=)p Fm(16)p Fe(:)p Fm(0)n(\);)249 2056 y Fi(pts)d Fm([19)o(])p Fe(:)p Fi(dr)l(awdot)j Fm(\()p Fn(\003)o Fk(Colors)e Fm(::)d Fi(default)p 1467 2056 V 31 w(c)l(olor)15 b Fe(;)f Ff("pencircle)p Fj( )p @@ -37195,17 +37187,17 @@ 2953 y Fk(for)33 b Fm(\()p Fe(i)23 b Fm(=)f(1;)41 b Fe(i)23 b(<)g Fm(16)o(;)883 2945 y Fg(+)-8 b(+)981 2953 y Fe(i)p Fm(\))42 b Fn(f)249 3053 y Fi(pts)11 b Fm([19)o(])23 -b(=)g Fi(me)l(diate)11 b Fm(\()p Fi(pts)h Fm([20)o(])p -Fe(;)i Fi(pts)d Fm([21)o(])p Fe(;)j(i)o(=)p Fm(16)p Fe(:)p +b(=)g Fi(pts)11 b Fm([20)o(])p Fe(:)p Fi(me)l(diate)h +Fm(\()p Fi(pts)f Fm([21)o(])p Fe(;)j(i=)p Fm(16)p Fe(:)p Fm(0)n(\);)249 3152 y Fi(pts)d Fm([19)o(])p Fe(:)p Fi(dr)l(awdot)j Fm(\()p Fn(\003)o Fk(Colors)e Fm(::)d Fi(default)p 1467 3152 V 31 w(c)l(olor)15 b Fe(;)f Ff("pencircle)p Fj( )p Ff(scal)o(ed)o Fj( )p Ff(.5)-7 b(mm")s Fm(\);)166 3252 -y Fn(g)83 3351 y(g)0 3551 y Fk(1447.)94 b(Do)s(decahedron.)0 -3750 y(1448.)g(Do)s(decahedron)32 b(class)f(de\014nition.)83 +y Fn(g)83 3351 y(g)0 3551 y Fk(1452.)94 b(Do)s(decahedron.)0 +3750 y(1453.)g(Do)s(decahedron)32 b(class)f(de\014nition.)83 3874 y(format)65 b Fi(Do)l(de)l(c)l(ahe)l(dr)l(on)81 b(Polyhe)l(dr)l(on)0 3999 y Fn(h)14 b Fm(De\014ne)28 -b Fk(class)k(Do)s(decahedron)41 b Fl(1448)15 b Fn(i)23 +b Fk(class)k(Do)s(decahedron)41 b Fl(1453)15 b Fn(i)23 b(\021)83 4099 y Fk(class)32 b(Do)s(decahedron)h Fm(:)k Fk(public)32 b(P)m(olyhedron)g Fn(f)83 4198 y Fk(protected)5 b Fm(:)42 b Fk(static)32 b(const)h(real)f Fi(dihe)l(dr)l(al)p @@ -37213,41 +37205,40 @@ b Fm(In)28 b(radians!)49 b Fn(\003)p Fe(=)166 4298 y Fk(real)33 b Fi(p)l(entagon)p 680 4298 V 30 w(r)l(adius)12 b Fm(;)83 4422 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 -b Fk(Do)s(decahedron)33 b Fm(functions)i Fl(1451)15 b +b Fk(Do)s(decahedron)33 b Fm(functions)i Fl(1456)15 b Fn(i)83 4522 y(g)p Fm(;)0 4630 y Fl(This)23 b(co)r(de)i(is)e(used)h(in) -f(sections)i(1488)f(and)h(1489.)0 4829 y Fk(1449.)94 +f(sections)i(1493)f(and)h(1494.)0 4829 y Fk(1454.)94 b(De\014ne)32 b(static)g(const)g(Do)s(decahedron)g(data)g(mem)m(b)s -(ers.)p 0 4905 1643 4 v 1738 4938 a(Begin)f(Log)p 2257 -4905 V 83 5078 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])54 -b(No)n(w)19 b(passing)g(\\2.0")g(instead)h(of)g(\\2.0")e(as)i(the)g -(argumen)n(t)f(to)i Fi(atan)10 b Fm(\()k(\).)35 b(GCC)20 -b(3.3)g(couldn't)g(compile)0 5178 y(this)28 b(\014le,)g(the)g(w)n(a)n -(y)e(it)i(w)n(as)f(b)r(efore.)p 0 5270 1678 4 v 1773 -5302 a Fk(End)32 b(Log)p 2222 5270 V eop end -%%Page: 441 441 -TeXDict begin 441 440 bop 0 83 a Fn(x)p Fm(1449)139 b +(ers.)p 0 4905 1779 4 v 1874 4938 a(Log)p 2122 4905 V +83 5078 a Fm([)p Fh(LDF)25 b(2003.07.18.)p Fm(])54 b(No)n(w)19 +b(passing)g(\\2.0")g(instead)h(of)g(\\2.0")e(as)i(the)g(argumen)n(t)f +(to)i Fi(atan)10 b Fm(\()k(\).)35 b(GCC)20 b(3.3)g(couldn't)g(compile)0 +5178 y(this)28 b(\014le,)g(the)g(w)n(a)n(y)e(it)i(w)n(as)f(b)r(efore.)p +0 5270 3900 4 v eop end +%%Page: 445 445 +TeXDict begin 445 444 bop 0 83 a Fn(x)p Fm(1454)139 b Fl(3DLDFPR)n(G)403 b(DEFINE)23 b Fk(ST)-8 b(A)g(TIC)33 b(CONST)f(DODECAHEDR)m(ON)23 b Fl(D)n(A)-6 b(T)g(A)23 -b(MEMBERS)140 b Fm(441)0 263 y Fn(h)14 b Fm(De\014ne)28 +b(MEMBERS)140 b Fm(445)0 263 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(const)f(Do)s(decahedron)h Fm(data)27 -b(mem)n(b)r(ers)35 b Fl(1449)15 b Fn(i)23 b(\021)83 363 +b(mem)n(b)r(ers)35 b Fl(1454)15 b Fn(i)23 b(\021)83 363 y Fk(const)32 b(real)h(Do)s(decahedron)13 b Fm(::)8 b Fi(dihe)l(dr)l(al)p 1472 363 26 4 v 33 w(angle)35 b Fm(=)22 b Ff(PI)g Fn(\000)c Fi(atan)11 b Fm(\(2)p Fe(:)p Fm(0)o(\);)0 -471 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1488.)0 -670 y Fk(1450.)94 b(Constructors)32 b(and)g(setting)f(functions.)0 -869 y(1451.)94 b(Default)23 b(constructor.)96 b Fm(\(No)21 +471 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1493.)0 +670 y Fk(1455.)94 b(Constructors)32 b(and)g(setting)f(functions.)0 +869 y(1456.)94 b(Default)23 b(constructor.)96 b Fm(\(No)21 b(argumen)n(ts.\))33 b([)p Fh(LDF)25 b(2002.09.29.)p Fm(])54 b(TO)19 b(DO:)h(I)g(should)g(set)g(the)h(data)e(mem)n(b)r(ers)0 969 y(of)28 b(other)f(classes)f(to)h Ff(INVALID_POINT)o Fm(,)h Ff(INVALID_REAL)o Fm(,)g(etc.,)g(in)g(the)g(default)g (constructors,)e(to)r(o.)0 1093 y Fn(h)14 b Fm(Declare)27 -b Fk(Do)s(decahedron)33 b Fm(functions)i Fl(1451)15 b +b Fk(Do)s(decahedron)33 b Fm(functions)i Fl(1456)15 b Fn(i)23 b(\021)83 1193 y Fk(Do)s(decahedron)5 b Fm(\()14 -b(\);)0 1301 y Fl(See)24 b(also)g(sections)g(1454,)h(1457,)f(and)g -(1459.)0 1409 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1448.)0 -1608 y Fk(1452.)0 1733 y Fn(h)14 b Fm(De\014ne)28 b Fk(Do)s(decahedron) -33 b Fm(functions)i Fl(1452)15 b Fn(i)24 b(\021)83 1832 +b(\);)0 1301 y Fl(See)24 b(also)g(sections)g(1459,)h(1462,)f(and)g +(1464.)0 1409 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1453.)0 +1608 y Fk(1457.)0 1733 y Fn(h)14 b Fm(De\014ne)28 b Fk(Do)s(decahedron) +33 b Fm(functions)i Fl(1457)15 b Fn(i)24 b(\021)83 1832 y Fk(Do)s(decahedron)13 b Fm(::)8 b Fk(Do)s(decahedron)e Fm(\()14 b(\))83 1932 y Fn(f)166 2031 y Fi(on)p 260 2031 V 31 w(fr)l(e)l(e)p 419 2031 V 31 w(stor)l(e)33 b Fm(=)23 @@ -37270,10 +37261,10 @@ 491 2828 V 31 w(r)l(adius)35 b Fm(=)22 b Ff(INVALID_REAL)p Fm(;)166 b Fe(=)p Fn(\003)40 b Fm(F)-7 b(rom)28 b Fk(Do)s(decahedron)t Fm(.)51 b Fn(\003)p Fe(=)83 2928 y Fn(g)0 3036 y Fl(See)24 -b(also)g(sections)g(1455,)h(1456,)f(1458,)g(and)g(1460.)0 -3144 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1488.)0 -3343 y Fk(1453.)94 b(Cen)m(ter,)32 b(diameter)f(of)h(p)s(en)m(tagon,)f -(and)h(angles.)0 3542 y(1454.)94 b(Constructor.)h Fm([)p +b(also)g(sections)g(1460,)h(1461,)f(1463,)g(and)g(1465.)0 +3144 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1493.)0 +3343 y Fk(1458.)94 b(Cen)m(ter,)32 b(diameter)f(of)h(p)s(en)m(tagon,)f +(and)h(angles.)0 3542 y(1459.)94 b(Constructor.)h Fm([)p Fh(LDF)26 b(2003.08.10.)p Fm(])67 b(TO)33 b(DO:)h(Chec)n(k)f(the)i(w)n (a)n(y)d(I)i(sp)r(ecify)g(the)g(rotations.)55 b(If)34 b(its)g(not)g(the)0 3642 y(w)n(a)n(y)e(I)h(think)g(it)g(should)g(b)r @@ -37281,33 +37272,32 @@ Fi(align)p 1865 3642 V 32 w(with)p 2047 3642 V 31 w(axis)k Fm(\()i(\))33 b(and)g(an)n(y)f(other)g(functions)h(that)h(are)d(in)n(v) n(olv)n(ed.)0 3742 y(This)d(ma)n(y)e(b)r(e)i(a)g(long-term)e(pro)5 -b(ject.)p 0 3841 1643 4 v 1738 3874 a Fk(Begin)31 b(Log)p -2257 3841 V 83 4014 a Fm([)p Fh(LDF)25 b(2002.10.16.)p -Fm(])61 b(Added)28 b(shift)h(to)e Fi(c)l(enter)41 b Fm(and)27 -b(rotation.)83 4114 y([)p Fh(LDF)e(2003.08.10.)p Fm(])62 +b(ject.)p 0 3840 1779 4 v 1874 3873 a Fk(Log)p 2122 3840 +V 83 4014 a Fm([)p Fh(LDF)25 b(2002.10.16.)p Fm(])61 +b(Added)28 b(shift)h(to)e Fi(c)l(enter)41 b Fm(and)27 +b(rotation.)83 4113 y([)p Fh(LDF)e(2003.08.10.)p Fm(])62 b(Rewrote)28 b(this)h(function.)41 b(It)29 b(had)g(suddenly)f(stopp)r (ed)h(w)n(orking)e(prop)r(erly)-7 b(,)28 b(probably)g(b)r(ecause)g(of)0 4213 y(c)n(hanges)34 b(I)i(made)f(to)h Fk(T)-8 b(ransform)13 b Fm(::)8 b Fi(align)p 1395 4213 26 4 v 32 w(with)p 1577 4213 V 31 w(axis)k Fm(\()i(\).)61 b(I'm)36 b(still)g(not)f(en)n(tirely) g(happ)n(y)g(with)h(the)g(w)n(a)n(y)f(I'v)n(e)g(had)g(to)0 -4313 y(sp)r(ecify)28 b(the)g(rotations,)e(see)h(the)h(\\TO)f(DO")g -(note)h(of)f(this)h(date,)g(ab)r(o)n(v)n(e.)p 0 4405 -1678 4 v 1773 4438 a Fk(End)k(Log)p 2222 4405 V 0 4562 -a Fn(h)14 b Fm(Declare)27 b Fk(Do)s(decahedron)33 b Fm(functions)i -Fl(1451)15 b Fn(i)23 b Fm(+)p Fn(\021)83 4662 y Fk(Do)s(decahedron)5 -b Fm(\()p Fk(const)27 b(P)m(oin)m(t)h Fm(&)o Fe(p;)14 -b Fk(const)27 b(real)g Fi(p)l(entagon)p 2112 4662 26 -4 v 31 w(diameter)14 b Fe(;)g Fk(real)27 b Fi(angle)p -2879 4662 V 31 w(x)37 b Fm(=)23 b(0)o Fe(;)14 b Fk(real)27 -b Fi(angle)p 3521 4662 V 31 w(y)35 b Fm(=)23 b(0)p Fe(;)14 -b Fk(real)249 4761 y Fi(angle)p 440 4761 V 31 w(z)38 -b Fm(=)22 b(0\);)p eop end -%%Page: 442 442 -TeXDict begin 442 441 bop 0 83 a Fm(442)140 b Fl(CONSTR)n(UCTOR)2342 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1455)0 263 y Fk(1455.)0 +4312 y(sp)r(ecify)28 b(the)g(rotations,)e(see)h(the)h(\\TO)f(DO")g +(note)h(of)f(this)h(date,)g(ab)r(o)n(v)n(e.)p 0 4404 +3900 4 v 0 4561 a Fn(h)14 b Fm(Declare)27 b Fk(Do)s(decahedron)33 +b Fm(functions)i Fl(1456)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +4661 y Fk(Do)s(decahedron)5 b Fm(\()p Fk(const)27 b(P)m(oin)m(t)h +Fm(&)o Fe(p;)14 b Fk(const)27 b(real)g Fi(p)l(entagon)p +2112 4661 26 4 v 31 w(diameter)14 b Fe(;)g Fk(real)27 +b Fi(angle)p 2879 4661 V 31 w(x)37 b Fm(=)23 b(0)o Fe(;)14 +b Fk(real)27 b Fi(angle)p 3521 4661 V 31 w(y)35 b Fm(=)23 +b(0)p Fe(;)14 b Fk(real)249 4761 y Fi(angle)p 440 4761 +V 31 w(z)38 b Fm(=)22 b(0\);)p eop end +%%Page: 446 446 +TeXDict begin 446 445 bop 0 83 a Fm(446)140 b Fl(CONSTR)n(UCTOR)2342 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1460)0 263 y Fk(1460.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Do)s(decahedron)33 -b Fm(functions)i Fl(1452)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +b Fm(functions)i Fl(1457)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(Do)s(decahedron)13 b Fm(::)8 b Fk(Do)s(decahedron)e Fm(\()p Fk(const)33 b(P)m(oin)m(t)h Fm(&)o Fe(p;)14 b Fk(const)33 b(real)h Fi(p)l(entagon)p 2804 487 26 4 v @@ -37355,13 +37345,13 @@ Fm(\()p Fi(dihe)l(dr)l(al)p 1287 2679 V 33 w(angle)30 b Fn(\003)18 b Fm(180)p Fe(:)p Fm(0)n Fe(=)p Ff(PI)s Fm(\);)p eop end -%%Page: 443 443 -TeXDict begin 443 442 bop 0 83 a Fn(x)p Fm(1456)139 b -Fl(3DLDFPR)n(G)2344 b(CONSTR)n(UCTOR)140 b Fm(443)0 263 -y Fk(1456.)94 b Fm([)p Fh(LDF)25 b(2003.08.10.)p Fm(])61 +%%Page: 447 447 +TeXDict begin 447 446 bop 0 83 a Fn(x)p Fm(1461)139 b +Fl(3DLDFPR)n(G)2344 b(CONSTR)n(UCTOR)140 b Fm(447)0 263 +y Fk(1461.)94 b Fm([)p Fh(LDF)25 b(2003.08.10.)p Fm(])61 b(Chec)n(k)27 b(this,)h(as)f(noted)h(ab)r(o)n(v)n(e.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Do)s(decahedron)33 -b Fm(functions)i Fl(1452)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +b Fm(functions)i Fl(1457)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fi(r)l(e)l(g)p 191 487 26 4 v 30 w(p)l(olygons)13 b Fm([1])602 512 y Fe(~)652 487 y Fi(r)l(otate)d Fm(\()p Fi(pts)i Fm([0)o(])p Fe(;)i Fi(pts)d Fm([1])p Fe(;)j @@ -37457,14 +37447,15 @@ 565 5145 V 30 w(6)39 b Fm(=)23 b Fi(r)l(e)l(g)p 867 5145 V 30 w(p)l(olygons)13 b Fm([6)o(])1277 5170 y Fe(~)1327 5145 y Fi(get)p 1436 5145 V 31 w(c)l(enter)g Fm(\()h(\);)83 -5269 y Fi(c)l(enter)36 b Fm(=)22 b Fi(me)l(diate)12 b -Fm(\()p Fi(c)l(enter)p 972 5269 V 30 w(0)k Fe(;)e Fi(c)l(enter)p -1317 5269 V 30 w(6)i Fm(\);)83 5394 y Fk(T)-8 b(ransform)33 -b Fe(t)23 b Fm(=)g Fi(c)l(enter)13 b Fe(:)p Fi(shift)g -Fm(\()p Fn(\000)p Fi(c)l(enter)f Fm(\);)p eop end -%%Page: 444 444 -TeXDict begin 444 443 bop 0 83 a Fm(444)140 b Fl(CONSTR)n(UCTOR)2342 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1456)83 263 y Fk(if)41 +5269 y Fi(c)l(enter)36 b Fm(=)22 b Fi(c)l(enter)p 651 +5269 V 31 w(0)16 b Fe(:)p Fi(me)l(diate)11 b Fm(\()p +Fi(c)l(enter)p 1303 5269 V 30 w(6)16 b Fm(\);)83 5394 +y Fk(T)-8 b(ransform)33 b Fe(t)23 b Fm(=)g Fi(c)l(enter)13 +b Fe(:)p Fi(shift)g Fm(\()p Fn(\000)p Fi(c)l(enter)f +Fm(\);)p eop end +%%Page: 448 448 +TeXDict begin 448 447 bop 0 83 a Fm(448)140 b Fl(CONSTR)n(UCTOR)2342 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1461)83 263 y Fk(if)41 b Fm(\()p Fi(angle)p 403 263 26 4 v 32 w(x)c Fn(6)p Fm(=)22 b(0)c Fn(_)h Fi(angle)p 918 263 V 31 w(y)35 b Fn(6)p Fm(=)23 b(0)18 b Fn(_)h Fi(angle)p 1432 263 V 31 w(z)37 @@ -37486,7 +37477,7 @@ Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Dodecahe)o(dro)-7 b(n::Dodecahedron\()o(\).\\)o(n)h(")27 b Fn(\034)c Fi(\015ush)10 b Fm(;)83 761 y Fk(return)5 b Fm(;)37 b Fn(g)0 960 y -Fk(1457.)94 b(Get)24 b(net.)95 b Fm([)p Fh(LDF)26 b(2002.09.29.)p +Fk(1462.)94 b(Get)24 b(net.)95 b Fm([)p Fh(LDF)26 b(2002.09.29.)p Fm(])54 b(Changed)20 b(this)h(function.)36 b(TO)20 b(DO.)i(I'v)n(e)e (remo)n(v)n(ed)g Fi(r)l(otate)10 b Fm(\()k(\))22 b(and)f(no)n(w)f (rotate)0 1060 y(the)k(p)r(en)n(tagons)f(in)i(the)f(x-z)g(plane)g(only) @@ -37507,24 +37498,23 @@ (tagon)g(0)f(at)h(the)h(origin.)40 b(Ev)n(en)28 b(if)h Fi(c)l(enter)p 1808 1558 V 30 w(0)45 b Fm(is)29 b(used,)h(the)f(net)h (is)f(alw)n(a)n(ys)e(generated)h(in)h(a)f(plane)h(parallel)0 -1658 y(to)e(the)h(x-z)g(plane.)p 0 1757 1643 4 v 1738 -1790 a Fk(Begin)j(Log)p 2257 1757 V 83 1930 a Fm([)p -Fh(LDF)25 b(2002.08.12.)p Fm(])61 b(Remo)n(v)n(ed)27 -b Fi(c)l(enter)p 1323 1930 26 4 v 30 w(0)44 b Fm(argumen)n(t.)p -0 2022 1678 4 v 1773 2055 a Fk(End)32 b(Log)p 2222 2022 -V 0 2179 a Fn(h)14 b Fm(Declare)27 b Fk(Do)s(decahedron)33 -b Fm(functions)i Fl(1451)15 b Fn(i)23 b Fm(+)p Fn(\021)83 -2279 y Fk(static)33 b(v)m(ector)6 b Fn(h)p Fk(Reg)p 806 -2279 29 5 v 39 w(P)m(olygon)32 b Fn(\003i)c Fi(get)p -1420 2279 26 4 v 30 w(net)12 b Fm(\()p Fk(const)33 b(real)f -Fi(p)l(entagon)p 2366 2279 V 31 w(diameter)14 b Fe(;)g -Fk(b)s(o)s(ol)31 b Fi(do)p 3061 2279 V 31 w(half)47 b +1658 y(to)e(the)h(x-z)g(plane.)p 0 1756 1779 4 v 1874 +1789 a Fk(Log)p 2122 1756 V 83 1930 a Fm([)p Fh(LDF)d(2002.08.12.)p +Fm(])61 b(Remo)n(v)n(ed)27 b Fi(c)l(enter)p 1323 1930 +26 4 v 30 w(0)44 b Fm(argumen)n(t.)p 0 2022 3900 4 v +0 2179 a Fn(h)14 b Fm(Declare)27 b Fk(Do)s(decahedron)33 +b Fm(functions)i Fl(1456)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +2278 y Fk(static)33 b(v)m(ector)6 b Fn(h)p Fk(Reg)p 806 +2278 29 5 v 39 w(P)m(olygon)32 b Fn(\003i)c Fi(get)p +1420 2278 26 4 v 30 w(net)12 b Fm(\()p Fk(const)33 b(real)f +Fi(p)l(entagon)p 2366 2278 V 31 w(diameter)14 b Fe(;)g +Fk(b)s(o)s(ol)31 b Fi(do)p 3061 2278 V 31 w(half)47 b Fm(=)23 b Fi(false)11 b Fm(\);)p eop end -%%Page: 445 445 -TeXDict begin 445 444 bop 0 83 a Fn(x)p Fm(1458)139 b -Fl(3DLDFPR)n(G)2575 b(GET)24 b(NET)140 b Fm(445)0 263 -y Fk(1458.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Do)s(decahedron)33 -b Fm(functions)i Fl(1452)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +%%Page: 449 449 +TeXDict begin 449 448 bop 0 83 a Fn(x)p Fm(1463)139 b +Fl(3DLDFPR)n(G)2575 b(GET)24 b(NET)140 b Fm(449)0 263 +y Fk(1463.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Do)s(decahedron)33 +b Fm(functions)i Fl(1457)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fk(v)m(ector)6 b Fn(h)p Fk(Reg)p 546 487 29 5 v 39 w(P)m(olygon)33 b Fn(\003)o(i)28 b Fk(Do)s(decahedron)13 b Fm(::)8 b Fi(get)p 1826 487 26 4 v 31 w(net)k Fm(\()p @@ -37637,10 +37627,10 @@ b(is!\\n\\n")24 b Fn(\034)f Fi(\015ush)10 b Fm(;)332 5045 y Fn(g)166 5145 y(g)166 5244 y Fk(return)33 b Fi(p)l(ents)11 b Fm(;)83 5344 y Fn(g)p eop end -%%Page: 446 446 -TeXDict begin 446 445 bop 0 83 a Fm(446)140 b Fl(DRA)-8 -b(W)23 b(NET)2505 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1459)0 -263 y Fk(1459.)94 b(Dra)m(w)24 b(net.)95 b Fm([)p Fh(LDF)25 +%%Page: 450 450 +TeXDict begin 450 449 bop 0 83 a Fm(450)140 b Fl(DRA)-8 +b(W)23 b(NET)2505 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1464)0 +263 y Fk(1464.)94 b(Dra)m(w)24 b(net.)95 b Fm([)p Fh(LDF)25 b(2002.11.10.)p Fm(])53 b(This)20 b(function)g(is)g(for)f(dra)n(wing)f (the)i(net)h(of)e(a)h Fk(Do)s(decahedron)5 b Fm(.)34 b(Normally)-7 b(,)0 363 y(this)37 b(will)g(b)r(e)g(done)f(in)h(order)f @@ -37664,26 +37654,24 @@ b(w)n(ork)f(righ)n(t.)36 b(Fix)27 b(it!)37 b(!!)g(KLUDGE:)27 b Fi(p)l(ortr)l(ait)40 b Fm(is)27 b(set)h(to)f Fi(false)39 b Fm(at)27 b(the)0 1060 y(b)r(eginning)h(of)f(this)h(function)g(and)g -(a)f(w)n(arning)f(is)h(issued.)p 0 1159 1643 4 v 1738 -1192 a Fk(Begin)k(Log)p 2257 1159 V 83 1333 a Fm([)p -Fh(LDF)25 b(2002.11.10.)p Fm(])61 b(Added)28 b(this)g(function.)83 -1432 y([)p Fh(LDF)d(2002.11.10.)p Fm(])61 b(T)-7 b(ried)27 -b(to)h(get)f(output)h(in)g(p)r(ortrait)f(format)g(to)h(w)n(ork,)e(but)i -(it)g(do)r(esn't)g(y)n(et.)p 0 1524 1678 4 v 1773 1557 -a Fk(End)k(Log)p 2222 1524 V 0 1681 a Fn(h)14 b Fm(Declare)27 -b Fk(Do)s(decahedron)33 b Fm(functions)i Fl(1451)15 b -Fn(i)23 b Fm(+)p Fn(\021)83 1781 y Fk(static)33 b(v)m(oid)f -Fi(dr)l(aw)p 725 1781 26 4 v 32 w(net)11 b Fm(\()p Fk(const)33 -b(real)f Fi(p)l(entagon)p 1672 1781 V 31 w(diameter)15 -b Fe(;)f Fk(b)s(o)s(ol)30 b Fi(p)l(ortr)l(ait)36 b Fm(=)23 -b Fi(true)9 b Fe(;)14 b Fk(b)s(o)s(ol)31 b Fi(make)p -3267 1781 V 31 w(tabs)k Fm(=)22 b Fi(true)10 b Fm(\);)p -eop end -%%Page: 447 447 -TeXDict begin 447 446 bop 0 83 a Fn(x)p Fm(1460)139 b -Fl(3DLDFPR)n(G)2506 b(DRA)-8 b(W)24 b(NET)140 b Fm(447)0 -263 y Fk(1460.)0 381 y Fn(h)14 b Fm(De\014ne)28 b Fk(Do)s(decahedron)33 -b Fm(functions)i Fl(1452)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +(a)f(w)n(arning)f(is)h(issued.)p 0 1159 1779 4 v 1874 +1191 a Fk(Log)p 2122 1159 V 83 1332 a Fm([)p Fh(LDF)e(2002.11.10.)p +Fm(])61 b(Added)28 b(this)g(function.)83 1432 y([)p Fh(LDF)d +(2002.11.10.)p Fm(])61 b(T)-7 b(ried)27 b(to)h(get)f(output)h(in)g(p)r +(ortrait)f(format)g(to)h(w)n(ork,)e(but)i(it)g(do)r(esn't)g(y)n(et.)p +0 1523 3900 4 v 0 1681 a Fn(h)14 b Fm(Declare)27 b Fk(Do)s(decahedron) +33 b Fm(functions)i Fl(1456)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +1780 y Fk(static)33 b(v)m(oid)f Fi(dr)l(aw)p 725 1780 +26 4 v 32 w(net)11 b Fm(\()p Fk(const)33 b(real)f Fi(p)l(entagon)p +1672 1780 V 31 w(diameter)15 b Fe(;)f Fk(b)s(o)s(ol)30 +b Fi(p)l(ortr)l(ait)36 b Fm(=)23 b Fi(true)9 b Fe(;)14 +b Fk(b)s(o)s(ol)31 b Fi(make)p 3267 1780 V 31 w(tabs)k +Fm(=)22 b Fi(true)10 b Fm(\);)p eop end +%%Page: 451 451 +TeXDict begin 451 450 bop 0 83 a Fn(x)p Fm(1465)139 b +Fl(3DLDFPR)n(G)2506 b(DRA)-8 b(W)24 b(NET)140 b Fm(451)0 +263 y Fk(1465.)0 381 y Fn(h)14 b Fm(De\014ne)28 b Fk(Do)s(decahedron)33 +b Fm(functions)i Fl(1457)15 b Fn(i)24 b Fm(+)p Fn(\021)83 481 y Fk(v)m(oid)33 b(Do)s(decahedron)13 b Fm(::)8 b Fi(dr)l(aw)p 1132 481 26 4 v 32 w(net)j Fm(\()p Fk(const)33 b(real)f Fi(p)l(entagon)p 2079 481 V 31 w(diameter)15 @@ -37729,9 +37717,9 @@ Fm(\);)166 2628 y Fn(g)166 2728 y Fk(if)41 b Fm(\()p Fn(:)p Fi(make)p 541 2728 V 32 w(tabs)11 b Fm(\))42 b Fk(return)6 b Fm(;)166 2828 y Fk(return)f Fm(;)83 2927 -y Fn(g)0 3127 y Fk(1461.)94 b(Icosahedron.)0 3326 y(1462.)g +y Fn(g)0 3127 y Fk(1466.)94 b(Icosahedron.)0 3326 y(1467.)g (Icosahedron)32 b(class)g(de\014nition.)0 3444 y Fn(h)14 -b Fm(De\014ne)28 b Fk(class)k(Icosahedron)41 b Fl(1462)15 +b Fm(De\014ne)28 b Fk(class)k(Icosahedron)41 b Fl(1467)15 b Fn(i)23 b(\021)83 3544 y Fk(class)32 b(Icosahedron)h Fm(:)k Fk(public)32 b(P)m(olyhedron)h Fn(f)83 3643 y Fk(protected)5 b Fm(:)42 b Fk(static)32 b(const)h(real)f @@ -37740,29 +37728,29 @@ Fe(=)166 3743 y Fk(real)33 b Fi(triangle)p 634 3743 V 31 w(r)l(adius)11 b Fm(;)83 3861 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 b Fk(Icosahedron)33 b Fm(functions)i -Fl(1465)15 b Fn(i)83 3961 y(g)p Fm(;)0 4062 y Fl(This)23 -b(co)r(de)i(is)e(used)h(in)f(sections)i(1488)f(and)h(1489.)0 -4261 y Fk(1463.)94 b(De\014ne)32 b(static)g(const)g(Icosahedron)g(data) +Fl(1470)15 b Fn(i)83 3961 y(g)p Fm(;)0 4062 y Fl(This)23 +b(co)r(de)i(is)e(used)h(in)f(sections)i(1493)f(and)h(1494.)0 +4261 y Fk(1468.)94 b(De\014ne)32 b(static)g(const)g(Icosahedron)g(data) h(mem)m(b)s(ers.)0 4380 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(const)f(Icosahedron)h Fm(data)27 b(mem)n(b)r(ers)35 -b Fl(1463)15 b Fn(i)24 b(\021)83 4479 y Fk(const)32 b(real)h +b Fl(1468)15 b Fn(i)24 b(\021)83 4479 y Fk(const)32 b(real)h (Icosahedron)13 b Fm(::)8 b Fi(dihe)l(dr)l(al)p 1373 4479 V 33 w(angle)35 b Fm(=)22 b Ff(PI)g Fn(\000)c Fi(asin)12 b Fm(\(2)p Fe(:)p Fm(0)o Fe(=)p Fm(3)p Fe(:)p Fm(0)n(\);)0 -4581 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1488.)0 -4780 y Fk(1464.)94 b(Constructors)32 b(and)g(setting)f(functions.)0 -4979 y(1465.)94 b(Default)32 b(constructor.)96 b Fm(\(No)28 +4581 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1493.)0 +4780 y Fk(1469.)94 b(Constructors)32 b(and)g(setting)f(functions.)0 +4979 y(1470.)94 b(Default)32 b(constructor.)96 b Fm(\(No)28 b(argumen)n(ts.\))0 5097 y Fn(h)14 b Fm(Declare)27 b -Fk(Icosahedron)33 b Fm(functions)i Fl(1465)15 b Fn(i)24 +Fk(Icosahedron)33 b Fm(functions)i Fl(1470)15 b Fn(i)24 b(\021)83 5197 y Fk(Icosahedron)5 b Fm(\()14 b(\);)0 -5298 y Fl(See)24 b(also)g(sections)g(1468,)h(1470,)f(and)g(1472.)0 -5400 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1462.)p +5298 y Fl(See)24 b(also)g(sections)g(1473,)h(1475,)f(and)g(1477.)0 +5400 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1467.)p eop end -%%Page: 448 448 -TeXDict begin 448 447 bop 0 83 a Fm(448)140 b Fl(DEF)-8 +%%Page: 452 452 +TeXDict begin 452 451 bop 0 83 a Fm(452)140 b Fl(DEF)-8 b(A)n(UL)i(T)23 b(CONSTR)n(UCTOR)1986 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(1466)0 263 y Fk(1466.)0 388 y Fn(h)14 b Fm(De\014ne)28 -b Fk(Icosahedron)33 b Fm(functions)j Fl(1466)15 b Fn(i)23 +b Fn(x)p Fm(1471)0 263 y Fk(1471.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Icosahedron)33 b Fm(functions)j Fl(1471)15 b Fn(i)23 b(\021)83 487 y Fk(Icosahedron)13 b Fm(::)8 b Fk(Icosahedron)e Fm(\()14 b(\))83 587 y Fn(f)166 686 y Fi(on)p 260 686 26 4 v 31 w(fr)l(e)l(e)p 419 686 V 31 w(stor)l(e)33 b @@ -37784,31 +37772,31 @@ w(r)l(adius)35 b Fm(=)22 b Ff(INVALID_REAL)p Fm(;)166 1483 y Fi(triangle)p 445 1483 V 31 w(r)l(adius)35 b Fm(=)23 b Ff(INVALID_REAL)o Fm(;)83 1583 y Fn(g)0 1691 y Fl(See)h(also)g -(sections)g(1469,)h(1471,)f(and)g(1473.)0 1799 y(This)f(co)r(de)i(is)e -(used)h(in)f(section)i(1488.)0 1998 y Fk(1467.)94 b(Cen)m(ter,)32 -b(diameter)f(of)h(triangle,)e(and)j(angles.)0 2197 y(1468.)94 +(sections)g(1474,)h(1476,)f(and)g(1478.)0 1799 y(This)f(co)r(de)i(is)e +(used)h(in)f(section)i(1493.)0 1998 y Fk(1472.)94 b(Cen)m(ter,)32 +b(diameter)f(of)h(triangle,)e(and)j(angles.)0 2197 y(1473.)94 b(Constructor.)h Fm([)p Fh(LDF)26 b(2002.12.18.)p Fm(])61 b(!!)38 b(ST)-7 b(AR)g(T)29 b(HERE.)e(Must)i(\014x)f(this)g (constructor.)37 b(There's)27 b(a)h(problem)0 2297 y(with)g(rotation.) 36 b(I'v)n(e)27 b(already)f(done)h(so)g(for)g(the)h Fk(Do)s(decahedron) -33 b Fm(constructor.)p 0 2396 1643 4 v 1738 2429 a Fk(Begin)e(Log)p -2257 2396 V 83 2570 a Fm([)p Fh(LDF)25 b(2002.10.16.)p -Fm(])61 b(De\014ned)28 b(this)g(function.)p 0 2662 1678 -4 v 1773 2694 a Fk(End)k(Log)p 2222 2662 V 0 2819 a Fn(h)14 -b Fm(Declare)27 b Fk(Icosahedron)33 b Fm(functions)i -Fl(1465)15 b Fn(i)24 b Fm(+)p Fn(\021)83 2918 y Fk(Icosahedron)5 -b Fm(\()p Fk(const)31 b(P)m(oin)m(t)f Fm(&)p Fe(p;)14 -b Fk(const)30 b(real)g Fi(diameter)p 2022 2918 26 4 v -32 w(of)p 2121 2918 V 31 w(triangle)11 b Fe(;)j Fk(real)31 -b Fi(angle)p 2847 2918 V 31 w(x)37 b Fm(=)22 b(0)p Fe(;)14 -b Fk(real)30 b Fi(angle)p 3492 2918 V 31 w(y)35 b Fm(=)23 -b(0)o Fe(;)14 b Fk(real)249 3018 y Fi(angle)p 440 3018 -V 31 w(z)38 b Fm(=)22 b(0\);)p eop end -%%Page: 449 449 -TeXDict begin 449 448 bop 0 83 a Fn(x)p Fm(1469)139 b -Fl(3DLDFPR)n(G)2344 b(CONSTR)n(UCTOR)140 b Fm(449)0 263 -y Fk(1469.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Icosahedron)33 -b Fm(functions)j Fl(1466)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +33 b Fm(constructor.)p 0 2396 1779 4 v 1874 2428 a Fk(Log)p +2122 2396 V 83 2569 a Fm([)p Fh(LDF)25 b(2002.10.16.)p +Fm(])61 b(De\014ned)28 b(this)g(function.)p 0 2661 3900 +4 v 0 2818 a Fn(h)14 b Fm(Declare)27 b Fk(Icosahedron)33 +b Fm(functions)i Fl(1470)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +2918 y Fk(Icosahedron)5 b Fm(\()p Fk(const)31 b(P)m(oin)m(t)f +Fm(&)p Fe(p;)14 b Fk(const)30 b(real)g Fi(diameter)p +2022 2918 26 4 v 32 w(of)p 2121 2918 V 31 w(triangle)11 +b Fe(;)j Fk(real)31 b Fi(angle)p 2847 2918 V 31 w(x)37 +b Fm(=)22 b(0)p Fe(;)14 b Fk(real)30 b Fi(angle)p 3492 +2918 V 31 w(y)35 b Fm(=)23 b(0)o Fe(;)14 b Fk(real)249 +3017 y Fi(angle)p 440 3017 V 31 w(z)38 b Fm(=)22 b(0\);)p +eop end +%%Page: 453 453 +TeXDict begin 453 452 bop 0 83 a Fn(x)p Fm(1474)139 b +Fl(3DLDFPR)n(G)2344 b(CONSTR)n(UCTOR)140 b Fm(453)0 263 +y Fk(1474.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Icosahedron)33 +b Fm(functions)j Fl(1471)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(Icosahedron)13 b Fm(::)8 b Fk(Icosahedron)e Fm(\()p Fk(const)37 b(P)m(oin)m(t)h Fm(&)o Fe(p;)14 b Fk(const)37 b(real)g Fi(triangle)p 2575 487 26 4 v 31 @@ -37941,9 +37929,9 @@ 5344 y Fi(r)l(otate)f Fm(\()p Fi(pts)g Fm([1)o(])p Fe(;)j Fi(pts)d Fm([4])p Fe(;)j Fn(\000)o Fi(angle)e Fm(\);)p eop end -%%Page: 450 450 -TeXDict begin 450 449 bop 0 83 a Fm(450)140 b Fl(CONSTR)n(UCTOR)2342 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1469)166 263 y Fn(\003)p +%%Page: 454 454 +TeXDict begin 454 453 bop 0 83 a Fm(454)140 b Fl(CONSTR)n(UCTOR)2342 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1474)166 263 y Fn(\003)p Fi(r)l(e)l(g)p 316 263 26 4 v 30 w(p)l(olygons)12 b Fm([7])23 b Fn(\003)p Fm(=)f Fn(\003)p Fi(r)l(e)l(g)p 1045 263 V 30 w(p)l(olygons)13 b Fm([2)o(])23 b Fn(\003)p Fm(=)g @@ -37998,15 +37986,15 @@ w(p)l(olygons)12 b Fm([)p Fe(i)p Fm(])1631 1733 y Fe(~)1681 1708 y Fi(shift)h Fm(\(0)p Fe(;)h Fi(y)p 2004 1708 V 31 w(shift)f Fm(\);)166 1807 y Fi(c)l(enter)36 b Fm(=)23 -b Fi(me)l(diate)11 b Fm(\()p Fi(r)l(e)l(g)p 938 1807 -V 31 w(p)l(olygons)h Fm([0])1349 1832 y Fe(~)1399 1807 -y Fi(get)p 1508 1807 V 30 w(c)l(enter)h Fm(\()h(\))p -Fe(;)g Fi(r)l(e)l(g)p 1989 1807 V 31 w(p)l(olygons)e -Fm([10])2442 1832 y Fe(~)2492 1807 y Fi(get)p 2601 1807 -V 30 w(c)l(enter)h Fm(\()h(\)\);)166 1907 y Fk(for)33 -b Fm(\()p Fe(i)23 b Fm(=)f(0;)41 b Fe(i)23 b(<)g Fm(20)o(;)883 -1899 y Fg(+)-8 b(+)981 1907 y Fe(i)p Fm(\))42 b Fi(r)l(e)l(g)p -1192 1907 V 30 w(p)l(olygons)13 b Fm([)p Fe(i)o Fm(])1589 +b Fi(r)l(e)l(g)p 618 1807 V 30 w(p)l(olygons)12 b Fm([0])1028 +1832 y Fe(~)1078 1807 y Fi(get)p 1187 1807 V 31 w(c)l(enter)h +Fm(\()h(\))p Fe(:)p Fi(me)l(diate)d Fm(\()p Fi(r)l(e)l(g)p +1975 1807 V 31 w(p)l(olygons)i Fm([10)o(])2428 1832 y +Fe(~)2478 1807 y Fi(get)p 2587 1807 V 30 w(c)l(enter)g +Fm(\()h(\)\);)166 1907 y Fk(for)33 b Fm(\()p Fe(i)23 +b Fm(=)f(0;)41 b Fe(i)23 b(<)g Fm(20)o(;)883 1899 y Fg(+)-8 +b(+)981 1907 y Fe(i)p Fm(\))42 b Fi(r)l(e)l(g)p 1192 +1907 V 30 w(p)l(olygons)13 b Fm([)p Fe(i)o Fm(])1589 1932 y Fe(~)1639 1907 y Fi(shift)g Fm(\()p Fn(\000)p Fi(c)l(enter)g Fm(\);)166 2006 y Fi(c)l(enter)36 b Fm(=)23 b Fi(origin)11 b Fm(;)166 2106 y Fk(if)41 b Fm(\()p Fi(angle)p @@ -38040,33 +38028,32 @@ b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(Icosahe)o(dr)o(on)-6 b(::Icosahedron\(\))o(.\\n)o(")21 b Fn(\034)i Fi(\015ush)11 b Fm(;)166 3302 y Fn(g)166 3401 y Fk(return)5 b Fm(;)83 -3501 y Fn(g)0 3700 y Fk(1470.)94 b(Get)32 b(net.)p 0 -3776 1643 4 v 1738 3809 a(Begin)f(Log)p 2257 3776 V 83 -3949 a Fm([)p Fh(LDF)25 b(2002.11.10.)p Fm(])61 b(BUG)28 -b(FIX:)g(Remo)n(v)n(ed)f(erroneous)e(co)r(de)j(that)g(created)e(6)i -(extra)e(triangles.)83 4049 y([)p Fh(LDF)f(2002.08.12.)p -Fm(])61 b(Remo)n(v)n(ed)27 b Fi(c)l(enter)p 1323 4049 -26 4 v 30 w(0)44 b Fm(argumen)n(t.)83 4148 y([)p Fh(LDF)25 -b(2003.08.27.)p Fm(])64 b(Added)32 b Fk(size)p 1166 4148 -29 5 v 39 w(t)k Fi(triangles)p 1587 4148 26 4 v 31 w(size)42 -b Fm(and)31 b(added)f Fk(size)p 2353 4148 29 5 v 40 w(t)36 -b Fe(i)30 b Fm(to)h(a)f Fk(for)36 b Fm(lo)r(op,)31 b(where)g(it's)g -(compared)e(to)0 4248 y Fi(triangles)p 313 4248 26 4 -v 31 w(size)11 b Fm(.)37 b(This)28 b(o)r(ccurs)e(in)i(debugging)f(co)r -(de.)p 0 4340 1678 4 v 1773 4373 a Fk(End)32 b(Log)p -2222 4340 V 0 4497 a Fn(h)14 b Fm(Declare)27 b Fk(Icosahedron)33 -b Fm(functions)i Fl(1465)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +3501 y Fn(g)0 3700 y Fk(1475.)94 b(Get)32 b(net.)p 0 +3776 1779 4 v 1874 3809 a(Log)p 2122 3776 V 83 3949 a +Fm([)p Fh(LDF)25 b(2002.11.10.)p Fm(])61 b(BUG)28 b(FIX:)g(Remo)n(v)n +(ed)f(erroneous)e(co)r(de)j(that)g(created)e(6)i(extra)e(triangles.)83 +4049 y([)p Fh(LDF)f(2002.08.12.)p Fm(])61 b(Remo)n(v)n(ed)27 +b Fi(c)l(enter)p 1323 4049 26 4 v 30 w(0)44 b Fm(argumen)n(t.)83 +4148 y([)p Fh(LDF)25 b(2003.08.27.)p Fm(])64 b(Added)32 +b Fk(size)p 1166 4148 29 5 v 39 w(t)k Fi(triangles)p +1587 4148 26 4 v 31 w(size)42 b Fm(and)31 b(added)f Fk(size)p +2353 4148 29 5 v 40 w(t)36 b Fe(i)30 b Fm(to)h(a)f Fk(for)36 +b Fm(lo)r(op,)31 b(where)g(it's)g(compared)e(to)0 4248 +y Fi(triangles)p 313 4248 26 4 v 31 w(size)11 b Fm(.)37 +b(This)28 b(o)r(ccurs)e(in)i(debugging)f(co)r(de.)p 0 +4340 3900 4 v 0 4497 a Fn(h)14 b Fm(Declare)27 b Fk(Icosahedron)33 +b Fm(functions)i Fl(1470)15 b Fn(i)24 b Fm(+)p Fn(\021)83 4597 y Fk(static)33 b(v)m(ector)6 b Fn(h)p Fk(Reg)p 806 4597 29 5 v 39 w(P)m(olygon)32 b Fn(\003i)c Fi(get)p 1420 4597 26 4 v 30 w(net)12 b Fm(\()p Fk(const)33 b(real)f Fi(triangle)p 2320 4597 V 31 w(diameter)15 b Fe(;)f Fk(b)s(o)s(ol)30 b Fi(do)p 3015 4597 V 32 w(half)46 b Fm(=)23 b Fi(false)12 b Fm(\);)p eop end -%%Page: 451 451 -TeXDict begin 451 450 bop 0 83 a Fn(x)p Fm(1471)139 b -Fl(3DLDFPR)n(G)2575 b(GET)24 b(NET)140 b Fm(451)0 263 -y Fk(1471.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Icosahedron)33 -b Fm(functions)j Fl(1466)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 455 455 +TeXDict begin 455 454 bop 0 83 a Fn(x)p Fm(1476)139 b +Fl(3DLDFPR)n(G)2575 b(GET)24 b(NET)140 b Fm(455)0 263 +y Fk(1476.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Icosahedron)33 +b Fm(functions)j Fl(1471)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(ector)6 b Fn(h)p Fk(Reg)p 546 487 29 5 v 39 w(P)m(olygon)33 b Fn(\003)o(i)28 b Fk(Icosahedron)14 b Fm(::)8 b Fi(get)p 1728 487 26 4 v 31 w(net)j Fm(\()p @@ -38181,9 +38168,9 @@ Fm(=)f(0;)41 b Fe(i)23 b(<)g Fi(triangles)p 1388 5394 26 4 v 31 w(size)11 b Fm(;)1625 5386 y Fg(+)-8 b(+)1723 5394 y Fe(i)o Fm(\))p eop end -%%Page: 452 452 -TeXDict begin 452 451 bop 0 83 a Fm(452)140 b Fl(GET)24 -b(NET)2573 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1471)332 263 +%%Page: 456 456 +TeXDict begin 456 455 bop 0 83 a Fm(456)140 b Fl(GET)24 +b(NET)2573 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1476)332 263 y Fk(if)41 b Fm(\()p Fi(triangles)12 b Fm([)p Fe(i)p Fm(])839 288 y Fe(~)889 263 y Fi(size)f Fm(\()j(\))24 b Fe(>)e Fm(0\))42 b Fi(triangles)11 b Fm([)p Fe(i)p @@ -38206,36 +38193,34 @@ Fj( )p Ff(better)p Fj( )p Ff(fix)o Fj( )p Ff(t)o(h)-6 b(is!\\n\\n")24 b Fn(\034)f Fi(\015ush)10 b Fm(;)332 960 y Fn(g)166 1060 y(g)166 1160 y Fk(return)33 b Fi(triangles)12 -b Fm(;)83 1259 y Fn(g)0 1459 y Fk(1472.)94 b(Dra)m(w)33 +b Fm(;)83 1259 y Fn(g)0 1459 y Fk(1477.)94 b(Dra)m(w)33 b(net.)95 b Fm(TO)27 b(DO:)h(Add)g(parallel)e(pro)5 b(jections)27 b(on)n(to)g(planes)g(other)g(than)g(the)h(x-y)f(plane.)p -0 1558 1643 4 v 1738 1590 a Fk(Begin)k(Log)p 2257 1558 -V 83 1731 a Fm([)p Fh(LDF)25 b(2002.11.10.)p Fm(])67 -b(Added)34 b(this)g(function.)55 b Fi(p)l(ortr)l(ait)46 -b Fm(w)n(orks,)34 b(unlik)n(e)f Fk(Do)s(decahedron)13 -b Fm(::)c Fi(dr)l(aw)p 3233 1731 26 4 v 31 w(net)j Fm(\()i(\))p -Fi(p)l(olyhe)l(d)h Fe(:)p Fi(web)0 1831 y Fm(\(as)27 -b(of)h(this)g(date\).)83 1930 y([)p Fh(LDF)d(2002.08.12.)p -Fm(])61 b(Changed,)27 b(so)g(that)h(net)g(is)f(dra)n(wn)g(in)h(x-z)f -(plane.)83 2030 y([)p Fh(LDF)e(2002.08.12.)p Fm(])58 -b(This)24 b(function)g(no)n(w)g(returns)f(b)r(efore)h(the)g(co)r(de)g -(for)g(making)f(the)i(tabs)e(can)h(b)r(e)h(executed,)f(b)r(ecause)0 -2130 y(it)k(do)r(esn't)g(w)n(ork)e(y)n(et.)37 b(TO)27 -b(DO:)h(W)-7 b(rite)27 b(co)r(de)h(for)f(tabs.)p 0 2222 -1678 4 v 1773 2254 a Fk(End)32 b(Log)p 2222 2222 V 0 -2379 a Fn(h)14 b Fm(Declare)27 b Fk(Icosahedron)33 b -Fm(functions)i Fl(1465)15 b Fn(i)24 b Fm(+)p Fn(\021)83 +0 1557 1779 4 v 1874 1590 a Fk(Log)p 2122 1557 V 83 1730 +a Fm([)p Fh(LDF)e(2002.11.10.)p Fm(])67 b(Added)34 b(this)g(function.) +55 b Fi(p)l(ortr)l(ait)46 b Fm(w)n(orks,)34 b(unlik)n(e)f +Fk(Do)s(decahedron)13 b Fm(::)c Fi(dr)l(aw)p 3233 1730 +26 4 v 31 w(net)j Fm(\()i(\))p Fi(p)l(olyhe)l(d)h Fe(:)p +Fi(web)0 1830 y Fm(\(as)27 b(of)h(this)g(date\).)83 1930 +y([)p Fh(LDF)d(2002.08.12.)p Fm(])61 b(Changed,)27 b(so)g(that)h(net)g +(is)f(dra)n(wn)g(in)h(x-z)f(plane.)83 2029 y([)p Fh(LDF)e(2002.08.12.)p +Fm(])58 b(This)24 b(function)g(no)n(w)g(returns)f(b)r(efore)h(the)g(co) +r(de)g(for)g(making)f(the)i(tabs)e(can)h(b)r(e)h(executed,)f(b)r +(ecause)0 2129 y(it)k(do)r(esn't)g(w)n(ork)e(y)n(et.)37 +b(TO)27 b(DO:)h(W)-7 b(rite)27 b(co)r(de)h(for)f(tabs.)p +0 2221 3900 4 v 0 2378 a Fn(h)14 b Fm(Declare)27 b Fk(Icosahedron)33 +b Fm(functions)i Fl(1470)15 b Fn(i)24 b Fm(+)p Fn(\021)83 2478 y Fk(static)33 b(v)m(oid)f Fi(dr)l(aw)p 725 2478 26 4 v 32 w(net)11 b Fm(\()p Fk(const)33 b(real)f Fi(triangle)p 1626 2478 V 32 w(diameter)14 b Fe(;)g Fk(b)s(o)s(ol)31 b Fi(p)l(ortr)l(ait)k Fm(=)23 b Fi(true)10 b Fe(;)k Fk(b)s(o)s(ol)30 b Fi(make)p 3221 2478 V 32 w(tabs)k Fm(=)23 b Fi(true)9 b Fm(\);)p eop end -%%Page: 453 453 -TeXDict begin 453 452 bop 0 83 a Fn(x)p Fm(1473)139 b -Fl(3DLDFPR)n(G)2506 b(DRA)-8 b(W)24 b(NET)140 b Fm(453)0 -263 y Fk(1473.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Icosahedron)33 -b Fm(functions)j Fl(1466)15 b Fn(i)23 b Fm(+)p Fn(\021)83 +%%Page: 457 457 +TeXDict begin 457 456 bop 0 83 a Fn(x)p Fm(1478)139 b +Fl(3DLDFPR)n(G)2506 b(DRA)-8 b(W)24 b(NET)140 b Fm(457)0 +263 y Fk(1478.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(Icosahedron)33 +b Fm(functions)j Fl(1471)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fk(v)m(oid)33 b(Icosahedron)13 b Fm(::)8 b Fi(dr)l(aw)p 1033 487 26 4 v 32 w(net)j Fm(\()p Fk(const)33 b(real)g Fi(triangle)p 1935 487 V 31 w(diameter)14 b Fe(;)g Fk(b)s(o)s(ol)31 @@ -38275,18 +38260,18 @@ 752 2256 V 31 w(p)l(oint)12 b Fm(\(1\);)166 2355 y Fi(pts)f Fm([2])23 b(=)f Fe(v)t Fm([0)o(])593 2380 y Fe(~)643 2355 y Fi(get)p 752 2355 V 31 w(p)l(oint)12 b Fm(\(2\);)166 -2455 y Fi(pts)f Fm([3])23 b(=)f Fi(me)l(diate)12 b Fm(\()p -Fi(pts)f Fm([0])p Fe(;)j Fi(pts)d Fm([1)o(])p Fe(;)j(:)p -Fm(1\);)166 2554 y Fi(pts)d Fm([4])23 b(=)f Fi(me)l(diate)12 -b Fm(\()p Fi(pts)f Fm([1])p Fe(;)j Fi(pts)d Fm([0)o(])p +2455 y Fi(pts)f Fm([3])23 b(=)f Fi(pts)11 b Fm([0])p +Fe(:)p Fi(me)l(diate)h Fm(\()p Fi(pts)f Fm([1)o(])p Fe(;)j(:)p +Fm(1\);)166 2554 y Fi(pts)d Fm([4])23 b(=)f Fi(pts)11 +b Fm([1])p Fe(:)p Fi(me)l(diate)h Fm(\()p Fi(pts)f Fm([0)o(])p Fe(;)j(:)p Fm(1\);)0 2654 y(#)p Fk(if)41 b Fm(0)166 2754 y Fi(pts)11 b Fm([3])p Fe(:)p Fi(dotlab)l(el)j Fm(\(2\);)166 2853 y Fi(pts)d Fm([4])p Fe(:)p Fi(dotlab)l(el)j Fm(\(3\);)0 2953 y(#)p Fk(endif)166 3053 y Fi(pts)d Fm([5])23 b(=)f -Fi(me)l(diate)12 b Fm(\()p Fi(pts)f Fm([0])p Fe(;)j Fi(pts)d +Fi(pts)11 b Fm([0])p Fe(:)p Fi(me)l(diate)h Fm(\()p Fi(pts)f Fm([3)o(])p Fe(;)j(:)p Fm(1\);)166 3152 y Fi(pts)d Fm([6])23 -b(=)f Fi(me)l(diate)12 b Fm(\()p Fi(pts)f Fm([1])p Fe(;)j -Fi(pts)d Fm([4)o(])p Fe(;)j(:)p Fm(1\);)166 3252 y Fi(pts)d +b(=)f Fi(pts)11 b Fm([1])p Fe(:)p Fi(me)l(diate)h Fm(\()p +Fi(pts)f Fm([4)o(])p Fe(;)j(:)p Fm(1\);)166 3252 y Fi(pts)d Fm([7])23 b(=)f Fi(pts)11 b Fm([3];)166 3351 y Fi(pts)g Fm([7])p Fe(:)p Fi(shift)i Fm(\(0)p Fe(;)h Fm(0)o Fe(;)g Fm(1)o(\);)166 3451 y Fi(pts)d Fm([8])23 b(=)f Fi(pts)11 @@ -38299,11 +38284,11 @@ 3850 y(#)p Fk(if)41 b Fm(0)166 3949 y Fi(pts)11 b Fm([5])p Fe(:)p Fi(dotlab)l(el)j Fm(\(4\);)166 4049 y Fi(pts)d Fm([6])p Fe(:)p Fi(dotlab)l(el)j Fm(\(5\);)0 4148 y(#)p -Fk(endif)166 4248 y Fi(pts)d Fm([9])23 b(=)f Fi(me)l(diate)12 -b Fm(\()p Fi(pts)f Fm([5])p Fe(;)j Fi(pts)d Fm([6)o(])p +Fk(endif)166 4248 y Fi(pts)d Fm([9])23 b(=)f Fi(pts)11 +b Fm([5])p Fe(:)p Fi(me)l(diate)h Fm(\()p Fi(pts)f Fm([6)o(])p Fe(;)j(:)p Fm(1\);)166 4348 y Fi(pts)d Fm([10)o(])23 -b(=)g Fi(me)l(diate)11 b Fm(\()p Fi(pts)h Fm([6)o(])p -Fe(;)i Fi(pts)d Fm([5])p Fe(;)j(:)p Fm(1)o(\);)0 4447 +b(=)g Fi(pts)11 b Fm([6)o(])p Fe(:)p Fi(me)l(diate)h +Fm(\()p Fi(pts)f Fm([5])p Fe(;)j(:)p Fm(1)o(\);)0 4447 y(#)p Fk(if)41 b Fm(0)166 4547 y Fi(pts)11 b Fm([9])p Fe(:)p Fi(dotlab)l(el)j Fm(\(8\);)166 4647 y Fi(pts)d Fm([10)o(])p Fe(:)p Fi(dotlab)l(el)k Fm(\(9)o(\);)0 4746 @@ -38327,9 +38312,9 @@ Fm(\()p Fe(v)s Fm([16)o(])673 5369 y Fe(~)723 5344 y Fi(get)p 832 5344 V 31 w(p)l(oint)e Fm(\(1\))19 b Fn(\000)f Fi(pts)11 b Fm([1)o(]\);)p eop end -%%Page: 454 454 -TeXDict begin 454 453 bop 0 83 a Fm(454)140 b Fl(DRA)-8 -b(W)23 b(NET)2505 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1473)166 +%%Page: 458 458 +TeXDict begin 458 457 bop 0 83 a Fm(458)140 b Fl(DRA)-8 +b(W)23 b(NET)2505 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1478)166 263 y Fe(p)p Fm([5)o(])p Fe(:)p Fi(shift)14 b Fm(\()p Fe(v)s Fm([18)o(])673 288 y Fe(~)723 263 y Fi(get)p 832 263 26 4 v 31 w(p)l(oint)e Fm(\(1\))19 b Fn(\000)f Fi(pts)11 @@ -38362,13 +38347,13 @@ Fm(=)f(0;)41 b Fe(i)23 b(<)g Fm(11)o(;)41 b Fe(i)912 1550 y Fg(+)-8 b(+)1010 1558 y Fm(\))42 b Fe(p)o Fm([)p Fe(i)p Fm(])p Fe(:)p Fi(dr)l(aw)14 b Fm(\()g(\);)166 -1658 y Fk(return)5 b Fm(;)83 1757 y Fn(g)0 1957 y Fk(1474.)94 +1658 y Fk(return)5 b Fm(;)83 1757 y Fn(g)0 1957 y Fk(1479.)94 b(Semi-Regular)30 b(Arc)m(himedean)i(P)m(olyhedra.)0 -2156 y(1475.)94 b(T)-8 b(runcated)33 b(Octahedron.)0 -2355 y(1476.)94 b(T)-8 b(runc)p 564 2355 29 4 v 36 w(Octahedron)32 +2156 y(1480.)94 b(T)-8 b(runcated)33 b(Octahedron.)0 +2355 y(1481.)94 b(T)-8 b(runc)p 564 2355 29 4 v 36 w(Octahedron)32 b(class)g(de\014nition.)0 2480 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(T)-8 b(runc)p 775 2480 29 5 v 42 w(Octahedron)40 -b Fl(1476)15 b Fn(i)24 b(\021)83 2579 y Fk(class)32 b(T)-8 +b Fl(1481)15 b Fn(i)24 b(\021)83 2579 y Fk(class)32 b(T)-8 b(runc)p 555 2579 V 42 w(Octahedron)33 b Fm(:)k Fk(public)32 b(P)m(olyhedron)g Fn(f)83 2679 y Fk(protected)5 b Fm(:)42 b Fk(static)32 b(const)h(real)f Fi(angle)p 1439 2679 @@ -38380,14 +38365,14 @@ Fe(=)166 2878 y Fk(real)33 b Fi(hexagon)p 648 2878 V 31 w(r)l(adius)12 b Fm(;)83 3003 y Fk(public)t Fm(:)42 b Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(runc)p 1001 3003 -29 5 v 41 w(Octahedron)33 b Fm(functions)j Fl(1479)15 +29 5 v 41 w(Octahedron)33 b Fm(functions)j Fl(1484)15 b Fn(i)83 3102 y(g)p Fm(;)0 3210 y Fl(This)23 b(co)r(de)i(is)e(used)h -(in)f(sections)i(1488)f(and)h(1489.)0 3410 y Fk(1477.)94 +(in)f(sections)i(1493)f(and)h(1494.)0 3410 y Fk(1482.)94 b(De\014ne)32 b(static)g(const)g(T)-8 b(runc)p 1372 3410 29 4 v 35 w(Octahedron)33 b(data)f(mem)m(b)s(ers.)0 3534 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(const)f(T)-8 b(runc)p 1062 3534 29 5 v 42 w(Octahedron)33 b Fm(data)27 -b(mem)n(b)r(ers)35 b Fl(1477)15 b Fn(i)23 b(\021)83 3634 +b(mem)n(b)r(ers)35 b Fl(1482)15 b Fn(i)23 b(\021)83 3634 y Fk(const)32 b(real)h(T)-8 b(runc)p 771 3634 V 41 w(Octahedron)14 b Fm(::)8 b Fi(angle)p 1554 3634 26 4 v 32 w(hex)p 1705 3634 V 30 w(squar)l(e)34 b Fm(=)23 b(\(125)17 b(+)h(\(16)p @@ -38398,33 +38383,33 @@ 26 4 v 32 w(hex)p 1705 3733 V 30 w(hex)38 b Fm(=)22 b(\(109)c(+)g(\(28) p Fe(:)p Fm(0)o Fe(=)p Fm(60)p Fe(:)p Fm(0)n(\)\))h Fn(\003)f Fm(\()p Ff(PI)t Fe(=)p Fm(180)p Fe(:)p Fm(0)m(\);)0 3841 -y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1488.)0 -4041 y Fk(1478.)94 b(Constructors)32 b(and)g(setting)f(functions.)p -0 4140 1643 4 v 1738 4172 a(Begin)g(Log)p 2257 4140 V -83 4313 a Fm([)p Fh(LDF)25 b(2003.04.15.)p Fm(])66 b(Commen)n(ted-out) -33 b(the)g(constructors)e(and)h Fi(get)p 2261 4313 26 -4 v 31 w(net)12 b Fm(\()i(\).)52 b(They)33 b(made)g(use)f(of)h(the)g -(fact,)h(whic)n(h)f(is)0 4413 y(no)25 b(longer)f(true,)i(that)f +y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1493.)0 +4041 y Fk(1483.)94 b(Constructors)32 b(and)g(setting)f(functions.)p +0 4139 1779 4 v 1874 4172 a(Log)p 2122 4139 V 83 4312 +a Fm([)p Fh(LDF)25 b(2003.04.15.)p Fm(])66 b(Commen)n(ted-out)33 +b(the)g(constructors)e(and)h Fi(get)p 2261 4312 26 4 +v 31 w(net)12 b Fm(\()i(\).)52 b(They)33 b(made)g(use)f(of)h(the)g +(fact,)h(whic)n(h)f(is)0 4412 y(no)25 b(longer)f(true,)i(that)f Fk(Rectangle)k Fm(w)n(as)c(formerly)f(deriv)n(ed)g(from)h -Fk(Reg)p 2314 4413 29 5 v 39 w(P)m(olygon)5 b Fm(.)36 +Fk(Reg)p 2314 4412 29 5 v 39 w(P)m(olygon)5 b Fm(.)36 b(No)n(w)25 b(that)g Fk(Rectangle)30 b Fm(is)25 b(deriv)n(ed)0 4512 y(from)i Fk(P)m(ath)6 b Fm(,)28 b(some)f(of)h(the)g(co)r(de)f(in)h (these)f(functions)h(do)r(esn't)g(w)n(ork.)36 b(TO)27 -b(DO:)g(Fix)h(these)g(functions!)p 0 4604 1678 4 v 1773 -4637 a Fk(End)k(Log)p 2222 4604 V 0 4836 a(1479.)94 b(Default)32 -b(constructor.)96 b Fm(\(No)28 b(argumen)n(ts.\))0 4961 -y Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(runc)p 594 4961 -29 5 v 41 w(Octahedron)33 b Fm(functions)j Fl(1479)15 -b Fn(i)23 b(\021)83 5060 y Fk(T)-8 b(runc)p 332 5060 -V 41 w(Octahedron)6 b Fm(\()14 b(\);)0 5168 y Fl(See)24 -b(also)g(sections)g(1482)h(and)f(1484.)0 5276 y(This)f(co)r(de)i(is)e -(used)h(in)f(section)i(1476.)p eop end -%%Page: 455 455 -TeXDict begin 455 454 bop 0 83 a Fn(x)p Fm(1480)139 b +b(DO:)g(Fix)h(these)g(functions!)p 0 4604 3900 4 v 0 +4835 a Fk(1484.)94 b(Default)32 b(constructor.)96 b Fm(\(No)28 +b(argumen)n(ts.\))0 4960 y Fn(h)14 b Fm(Declare)27 b +Fk(T)-8 b(runc)p 594 4960 29 5 v 41 w(Octahedron)33 b +Fm(functions)j Fl(1484)15 b Fn(i)23 b(\021)83 5060 y +Fk(T)-8 b(runc)p 332 5060 V 41 w(Octahedron)6 b Fm(\()14 +b(\);)0 5168 y Fl(See)24 b(also)g(sections)g(1487)h(and)f(1489.)0 +5275 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i(1481.)p +eop end +%%Page: 459 459 +TeXDict begin 459 458 bop 0 83 a Fn(x)p Fm(1485)139 b Fl(3DLDFPR)n(G)1987 b(DEF)-8 b(A)n(UL)i(T)24 b(CONSTR)n(UCTOR)140 -b Fm(455)0 263 y Fk(1480.)0 388 y Fn(h)14 b Fm(De\014ne)28 +b Fm(459)0 263 y Fk(1485.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(runc)p 552 388 29 5 v 42 w(Octahedron)33 -b Fm(functions)i Fl(1480)15 b Fn(i)24 b(\021)83 487 y +b Fm(functions)i Fl(1485)15 b Fn(i)24 b(\021)83 487 y Fk(T)-8 b(runc)p 332 487 V 41 w(Octahedron)14 b Fm(::)8 b Fk(T)-8 b(runc)p 1173 487 V 42 w(Octahedron)5 b Fm(\()14 b(\))83 587 y Fn(f)166 686 y Fi(on)p 260 686 26 4 v 31 @@ -38449,29 +38434,29 @@ w(r)l(adius)35 b Fm(=)22 b Ff(INVALID_REAL)p Fm(;)166 1583 y Fi(hexagon)p 459 1583 V 31 w(r)l(adius)35 b Fm(=)23 b Ff(INVALID_REAL)o Fm(;)83 1683 y Fn(g)0 1791 y Fl(See)h(also)g -(sections)g(1483,)h(1485,)f(and)g(1486.)0 1899 y(This)f(co)r(de)i(is)e -(used)h(in)f(section)i(1488.)0 2098 y Fk(1481.)94 b(Cen)m(ter,)32 -b(diameter)f(of)h(hexagon,)f(and)h(angles.)0 2297 y(1482.)94 -b(Constructor.)p 0 2373 1643 4 v 1738 2405 a(Begin)31 -b(Log)p 2257 2373 V 83 2546 a Fm([)p Fh(LDF)25 b(2002.11.08.)p -Fm(])61 b(Added)28 b(this)g(function.)p 0 2638 1678 4 -v 1773 2671 a Fk(End)k(Log)p 2222 2638 V 0 2795 a Fn(h)14 -b Fm(Declare)27 b Fk(T)-8 b(runc)p 594 2795 29 5 v 41 -w(Octahedron)33 b Fm(functions)j Fl(1479)15 b Fn(i)23 -b Fm(+)p Fn(\021)0 2895 y Fm(#)p Fk(if)41 b Fm(0)83 2994 -y Fk(T)-8 b(runc)p 332 2994 V 41 w(Octahedron)6 b Fm(\()p -Fk(const)37 b(P)m(oin)m(t)h Fm(&)p Fe(p)o(;)14 b Fk(const)37 -b(real)h Fi(diameter)p 2324 2994 26 4 v 31 w(of)p 2422 -2994 V 32 w(hexagon)11 b Fe(;)j Fk(real)37 b Fi(angle)p -3169 2994 V 32 w(x)44 b Fm(=)31 b(0)o Fe(;)14 b Fk(real)249 -3094 y Fi(angle)p 440 3094 V 31 w(y)35 b Fm(=)23 b(0)o -Fe(;)14 b Fk(real)33 b Fi(angle)p 1087 3094 V 31 w(z)38 -b Fm(=)22 b(0\);)0 3194 y(#)p Fk(endif)p eop end -%%Page: 456 456 -TeXDict begin 456 455 bop 0 83 a Fm(456)140 b Fl(CONSTR)n(UCTOR)2342 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1483)0 263 y Fk(1483.)0 +(sections)g(1488,)h(1490,)f(and)g(1491.)0 1899 y(This)f(co)r(de)i(is)e +(used)h(in)f(section)i(1493.)0 2098 y Fk(1486.)94 b(Cen)m(ter,)32 +b(diameter)f(of)h(hexagon,)f(and)h(angles.)0 2297 y(1487.)94 +b(Constructor.)p 0 2373 1779 4 v 1874 2405 a(Log)p 2122 +2373 V 83 2546 a Fm([)p Fh(LDF)25 b(2002.11.08.)p Fm(])61 +b(Added)28 b(this)g(function.)p 0 2638 3900 4 v 0 2795 +a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(runc)p 594 2795 +29 5 v 41 w(Octahedron)33 b Fm(functions)j Fl(1484)15 +b Fn(i)23 b Fm(+)p Fn(\021)0 2895 y Fm(#)p Fk(if)41 b +Fm(0)83 2994 y Fk(T)-8 b(runc)p 332 2994 V 41 w(Octahedron)6 +b Fm(\()p Fk(const)37 b(P)m(oin)m(t)h Fm(&)p Fe(p)o(;)14 +b Fk(const)37 b(real)h Fi(diameter)p 2324 2994 26 4 v +31 w(of)p 2422 2994 V 32 w(hexagon)11 b Fe(;)j Fk(real)37 +b Fi(angle)p 3169 2994 V 32 w(x)44 b Fm(=)31 b(0)o Fe(;)14 +b Fk(real)249 3094 y Fi(angle)p 440 3094 V 31 w(y)35 +b Fm(=)23 b(0)o Fe(;)14 b Fk(real)33 b Fi(angle)p 1087 +3094 V 31 w(z)38 b Fm(=)22 b(0\);)0 3194 y(#)p Fk(endif)p +eop end +%%Page: 460 460 +TeXDict begin 460 459 bop 0 83 a Fm(460)140 b Fl(CONSTR)n(UCTOR)2342 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1488)0 263 y Fk(1488.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(runc)p 552 -388 29 5 v 42 w(Octahedron)33 b Fm(functions)i Fl(1480)15 +388 29 5 v 42 w(Octahedron)33 b Fm(functions)i Fl(1485)15 b Fn(i)24 b Fm(+)p Fn(\021)0 487 y Fm(#)p Fk(if)41 b Fm(0)83 587 y Fk(T)-8 b(runc)p 332 587 V 41 w(Octahedron)14 b Fm(::)8 b Fk(T)-8 b(runc)p 1173 587 V 42 w(Octahedron)5 @@ -38614,9 +38599,9 @@ V 31 w(p)l(olygons)h Fm([6)o(]\)\);)166 5269 y Fk(T)-8 b(ransform)33 b Fe(t)p Fm(;)166 5394 y Fe(t:)p Fi(r)l(otate)11 b Fm(\(180)n(\);)p eop end -%%Page: 457 457 -TeXDict begin 457 456 bop 0 83 a Fn(x)p Fm(1483)139 b -Fl(3DLDFPR)n(G)2344 b(CONSTR)n(UCTOR)140 b Fm(457)166 +%%Page: 461 461 +TeXDict begin 461 460 bop 0 83 a Fn(x)p Fm(1488)139 b +Fl(3DLDFPR)n(G)2344 b(CONSTR)n(UCTOR)140 b Fm(461)166 263 y Fe(t:)p Fi(shift)13 b Fm(\(0)p Fe(;)h Fm(15)o(\);)166 363 y Fk(for)33 b Fm(\()p Fe(i)23 b Fm(=)f(7;)41 b Fe(i)23 b(<)g Fm(14)o(;)41 b Fe(i)912 355 y Fg(+)-8 b(+)1010 @@ -38650,27 +38635,26 @@ (ron\(\).")25 b Fn(\034)e Fi(end)t(l)37 b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 b Fm(;)166 1459 y Fn(g)166 1558 y Fk(return)5 b Fm(;)83 1658 y Fn(g)0 -1757 y Fm(#)p Fk(endif)0 1957 y(1484.)94 b(Get)32 b(net.)p -0 2032 1643 4 v 1738 2065 a(Begin)f(Log)p 2257 2032 V -83 2206 a Fm([)p Fh(LDF)25 b(2002.11.08.)p Fm(])61 b(Added)28 +1757 y Fm(#)p Fk(endif)0 1957 y(1489.)94 b(Get)32 b(net.)p +0 2032 1779 4 v 1874 2065 a(Log)p 2122 2032 V 83 2206 +a Fm([)p Fh(LDF)25 b(2002.11.08.)p Fm(])61 b(Added)28 b(this)g(function.)83 2305 y([)p Fh(LDF)d(2002.08.12.)p Fm(])61 b(Remo)n(v)n(ed)27 b Fi(c)l(enter)p 1323 2305 -26 4 v 30 w(0)44 b Fm(argumen)n(t.)p 0 2397 1678 4 v -1773 2430 a Fk(End)32 b(Log)p 2222 2397 V 0 2554 a Fn(h)14 -b Fm(Declare)27 b Fk(T)-8 b(runc)p 594 2554 29 5 v 41 -w(Octahedron)33 b Fm(functions)j Fl(1479)15 b Fn(i)23 -b Fm(+)p Fn(\021)0 2654 y Fm(#)p Fk(if)41 b Fm(0)83 2754 -y Fk(static)33 b(v)m(ector)6 b Fn(h)p Fk(Reg)p 806 2754 -V 39 w(P)m(olygon)32 b Fn(\003i)c Fi(get)p 1420 2754 -26 4 v 30 w(net)12 b Fm(\()p Fk(const)33 b(real)f Fi(hexagon)p -2334 2754 V 32 w(diameter)14 b Fe(;)g Fk(b)s(o)s(ol)31 +26 4 v 30 w(0)44 b Fm(argumen)n(t.)p 0 2397 3900 4 v +0 2554 a Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(runc)p 594 +2554 29 5 v 41 w(Octahedron)33 b Fm(functions)j Fl(1484)15 +b Fn(i)23 b Fm(+)p Fn(\021)0 2654 y Fm(#)p Fk(if)41 b +Fm(0)83 2754 y Fk(static)33 b(v)m(ector)6 b Fn(h)p Fk(Reg)p +806 2754 V 39 w(P)m(olygon)32 b Fn(\003i)c Fi(get)p 1420 +2754 26 4 v 30 w(net)12 b Fm(\()p Fk(const)33 b(real)f +Fi(hexagon)p 2334 2754 V 32 w(diameter)14 b Fe(;)g Fk(b)s(o)s(ol)31 b Fi(do)p 3030 2754 V 31 w(half)46 b Fm(=)23 b Fi(false)12 b Fm(\);)0 2853 y(#)p Fk(endif)p eop end -%%Page: 458 458 -TeXDict begin 458 457 bop 0 83 a Fm(458)140 b Fl(GET)24 -b(NET)2573 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1485)0 263 y -Fk(1485.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(runc)p -552 388 29 5 v 42 w(Octahedron)33 b Fm(functions)i Fl(1480)15 +%%Page: 462 462 +TeXDict begin 462 461 bop 0 83 a Fm(462)140 b Fl(GET)24 +b(NET)2573 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1490)0 263 y +Fk(1490.)0 388 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(runc)p +552 388 29 5 v 42 w(Octahedron)33 b Fm(functions)i Fl(1485)15 b Fn(i)24 b Fm(+)p Fn(\021)0 487 y Fm(#)p Fk(if)41 b Fm(0)83 587 y Fk(v)m(ector)6 b Fn(h)p Fk(Reg)p 546 587 V 39 w(P)m(olygon)33 b Fn(\003i)28 b Fk(T)-8 b(runc)p @@ -38778,10 +38762,10 @@ b Fm(\))42 b Fk(return)33 b Fi(r)l(e)l(g)p 1127 4472 V 31 w(p)l(olygons)12 b Fm(;)0 4572 y(#)p Fk(endif)p eop end -%%Page: 459 459 -TeXDict begin 459 458 bop 0 83 a Fn(x)p Fm(1486)139 b -Fl(3DLDFPR)n(G)2575 b(GET)24 b(NET)140 b Fm(459)0 263 -y Fk(1486.)94 b Fm([)p Fh(LDF)25 b(2002.11.08.)p Fm(])71 +%%Page: 463 463 +TeXDict begin 463 462 bop 0 83 a Fn(x)p Fm(1491)139 b +Fl(3DLDFPR)n(G)2575 b(GET)24 b(NET)140 b Fm(463)0 263 +y Fk(1491.)94 b Fm([)p Fh(LDF)25 b(2002.11.08.)p Fm(])71 b(If)39 b(w)n(e)e(just)i(w)n(an)n(t)e(the)i(net,)i Fi(r)l(e)l(g)p 2034 263 26 4 v 30 w(p)l(olygons)13 b Fm([5)o(])38 b(and)g Fi(r)l(e)l(g)p 2779 263 V 30 w(p)l(olygons)13 b Fm([6])38 @@ -38792,7 +38776,7 @@ b(t)n(w)n(o)g(of)h(the)g(squares)e(slan)n(ted,)h(in)h(order)e(to)i(a)n (v)n(oid)e(ha)n(ving)g(to)i(rotate)e(them)i(t)n(wice.)0 587 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(runc)p 552 -587 29 5 v 42 w(Octahedron)33 b Fm(functions)i Fl(1480)15 +587 29 5 v 42 w(Octahedron)33 b Fm(functions)i Fl(1485)15 b Fn(i)24 b Fm(+)p Fn(\021)0 686 y Fm(#)p Fk(if)41 b Fm(0)83 786 y Fn(\003)p Fi(r)l(e)l(g)p 233 786 26 4 v 30 w(p)l(olygons)12 b Fm([6])23 b(=)g Fn(\003)o Fi(r)l(e)l(g)p @@ -38876,164 +38860,173 @@ b Fn(\000)f Fi(pts)11 b Fm([2)o(])19 b Fn(\000)f Fi(pts)11 b Fm([1]\);)83 2380 y Fk(return)33 b Fi(r)l(e)l(g)p 489 2380 V 31 w(p)l(olygons)12 b Fm(;)37 b Fn(g)0 2480 y -Fm(#)p Fk(endif)0 2679 y(1487.)94 b(Putting)32 b(p)s(olyhedra)f -(together.)0 2878 y(1488.)94 b Fm(This)28 b(is)f(what's)g(compiled.)83 +Fm(#)p Fk(endif)0 2679 y(1492.)94 b(Putting)32 b(p)s(olyhedra)f +(together.)0 2878 y(1493.)94 b Fm(This)28 b(is)f(what's)g(compiled.)83 3003 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 3102 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n (ti\014er)35 b Fl(10)15 b Fn(i)83 3202 y(h)f Fm(De\014ne)28 -b Fk(class)k(P)m(olyhedron)41 b Fl(1426)15 b Fn(i)83 +b Fk(class)k(P)m(olyhedron)41 b Fl(1431)15 b Fn(i)83 3302 y(h)f Fm(De\014ne)28 b Fk(class)k(T)-8 b(etrahedron)41 -b Fl(1431)15 b Fn(i)83 3401 y(h)f Fm(De\014ne)28 b Fk(static)33 +b Fl(1436)15 b Fn(i)83 3401 y(h)f Fm(De\014ne)28 b Fk(static)33 b(const)f(T)-8 b(etrahedron)34 b Fm(data)27 b(mem)n(b)r(ers)35 -b Fl(1432)15 b Fn(i)83 3501 y(h)f Fm(De\014ne)28 b Fk(class)k(Do)s -(decahedron)41 b Fl(1448)15 b Fn(i)83 3601 y(h)f Fm(De\014ne)28 +b Fl(1437)15 b Fn(i)83 3501 y(h)f Fm(De\014ne)28 b Fk(class)k(Do)s +(decahedron)41 b Fl(1453)15 b Fn(i)83 3601 y(h)f Fm(De\014ne)28 b Fk(static)33 b(const)f(Do)s(decahedron)h Fm(data)27 -b(mem)n(b)r(ers)35 b Fl(1449)15 b Fn(i)83 3700 y(h)f -Fm(De\014ne)28 b Fk(class)k(Icosahedron)41 b Fl(1462)15 +b(mem)n(b)r(ers)35 b Fl(1454)15 b Fn(i)83 3700 y(h)f +Fm(De\014ne)28 b Fk(class)k(Icosahedron)41 b Fl(1467)15 b Fn(i)83 3800 y(h)f Fm(De\014ne)28 b Fk(static)33 b(const)f -(Icosahedron)h Fm(data)27 b(mem)n(b)r(ers)35 b Fl(1463)15 +(Icosahedron)h Fm(data)27 b(mem)n(b)r(ers)35 b Fl(1468)15 b Fn(i)83 3899 y(h)f Fm(De\014ne)28 b Fk(class)k(T)-8 -b(runc)p 858 3899 29 5 v 42 w(Octahedron)41 b Fl(1476)14 +b(runc)p 858 3899 29 5 v 42 w(Octahedron)41 b Fl(1481)14 b Fn(i)83 3999 y(h)g Fm(De\014ne)28 b Fk(static)33 b(const)f(T)-8 b(runc)p 1145 3999 V 42 w(Octahedron)33 b Fm(data)27 -b(mem)n(b)r(ers)35 b Fl(1477)15 b Fn(i)83 4099 y(h)f +b(mem)n(b)r(ers)35 b Fl(1482)15 b Fn(i)83 4099 y(h)f Fm(De\014ne)28 b Fk(P)m(olyhedron)33 b Fm(functions)i -Fl(1428)15 b Fn(i)83 4198 y(h)f Fm(De\014ne)28 b Fk(T)-8 -b(etrahedron)34 b Fm(functions)h Fl(1435)15 b Fn(i)83 +Fl(1433)15 b Fn(i)83 4198 y(h)f Fm(De\014ne)28 b Fk(T)-8 +b(etrahedron)34 b Fm(functions)h Fl(1440)15 b Fn(i)83 4298 y(h)f Fm(De\014ne)28 b Fk(Do)s(decahedron)33 b Fm(functions)i -Fl(1452)15 b Fn(i)83 4398 y(h)f Fm(De\014ne)28 b Fk(Icosahedron)33 -b Fm(functions)j Fl(1466)15 b Fn(i)83 4497 y(h)f Fm(De\014ne)28 +Fl(1457)15 b Fn(i)83 4398 y(h)f Fm(De\014ne)28 b Fk(Icosahedron)33 +b Fm(functions)j Fl(1471)15 b Fn(i)83 4497 y(h)f Fm(De\014ne)28 b Fk(T)-8 b(runc)p 635 4497 V 42 w(Octahedron)33 b Fm(functions)i -Fl(1480)15 b Fn(i)p eop end -%%Page: 460 460 -TeXDict begin 460 459 bop 0 83 a Fm(460)140 b Fl(PUTTING)24 +Fl(1485)15 b Fn(i)p eop end +%%Page: 464 464 +TeXDict begin 464 463 bop 0 83 a Fm(464)140 b Fl(PUTTING)24 b(POL)-6 b(YHEDRA)23 b(TOGETHER)1653 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(1489)0 263 y Fk(1489.)94 b Fm(This)28 b(is)f(what's)g -(written)h(to)g Fj(polyhed.h)p Fm(.)0 387 y Fn(h)14 b -Ff(polyhed.h)80 b Fl(1489)15 b Fn(i)23 b(\021)83 487 +b Fn(x)p Fm(1494)0 263 y Fk(1494.)94 b Fm(This)28 b(is)f(what's)g +(written)h(to)g Fj(polyhed.h)p Fm(.)0 388 y Fn(h)14 b +Ff(polyhed.h)80 b Fl(1494)15 b Fn(i)23 b(\021)83 487 y(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(olyhedron)41 -b Fl(1426)15 b Fn(i)83 586 y(h)f Fm(De\014ne)28 b Fk(class)k(T)-8 -b(etrahedron)41 b Fl(1431)15 b Fn(i)83 686 y(h)f Fm(De\014ne)28 -b Fk(class)k(Do)s(decahedron)41 b Fl(1448)15 b Fn(i)83 +b Fl(1431)15 b Fn(i)83 587 y(h)f Fm(De\014ne)28 b Fk(class)k(T)-8 +b(etrahedron)41 b Fl(1436)15 b Fn(i)83 686 y(h)f Fm(De\014ne)28 +b Fk(class)k(Do)s(decahedron)41 b Fl(1453)15 b Fn(i)83 786 y(h)f Fm(De\014ne)28 b Fk(class)k(Icosahedron)41 -b Fl(1462)15 b Fn(i)83 885 y(h)f Fm(De\014ne)28 b Fk(class)k(T)-8 -b(runc)p 858 885 29 5 v 42 w(Octahedron)41 b Fl(1476)14 -b Fn(i)0 1085 y Fk(1490.)94 b(P)m(arsing)i(\()p Fj(parser.web)p -Fk(\).)p 0 1188 1643 4 v 1738 1220 a(Begin)31 b(Log)p -2257 1188 V 83 1361 a Fm(Remo)n(v)n(ed)c(the)h(co)r(de)f(from)g(this)h +b Fl(1467)15 b Fn(i)83 886 y(h)f Fm(De\014ne)28 b Fk(class)k(T)-8 +b(runc)p 858 886 29 5 v 42 w(Octahedron)41 b Fl(1481)14 +b Fn(i)0 1085 y Fk(1495.)94 b(P)m(arsing)i(\()p Fj(parser.web)p +Fk(\).)p 0 1188 1779 4 v 1874 1221 a(Log)p 2122 1188 +V 83 1361 a Fm(Remo)n(v)n(ed)27 b(the)h(co)r(de)f(from)g(this)h (\014le.)37 b(I)28 b(plan)f(to)h(use)f(Bison)g(for)g(making)g(the)h (parser.)35 b([)p Fh(LDF)26 b(2003.08.25.)p Fm(])83 1461 y([)p Fh(LDF)f(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n(ti\014ers)i(from)f(the)h(CWEB) -g(\014les)g(for)f(the)h(distribution)g(of)0 1560 y(3DLDF)28 +g(\014les)g(for)f(the)h(distribution)g(of)0 1561 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n(y)h(dev)n(elopmen)n(t) -f(v)n(ersions.)p 0 1652 1678 4 v 1773 1685 a Fk(End)32 -b(Log)p 2222 1652 V 0 1809 a Fn(h)14 b Fm(V)-7 b(ersion)27 +f(v)n(ersions.)83 1660 y([)p Fh(LDF)e(2003.12.10.)p Fm(])64 +b(Put)30 b(the)g(v)n(ersion)e(con)n(trol)h(iden)n(ti\014ers)h(bac)n(k)f +(in)n(to)g(m)n(y)h(release)f(v)n(ersions)f(for)h(3DLDF)i(1.1.4.)43 +b(I'v)n(e)0 1760 y(already)24 b(put)j(some)e(of)h(them)h(bac)n(k)e(in,) +i(no)n(w)e(I'm)h(doing)f(the)i(rest)e(of)h(them.)37 b(Ho)n(w)n(ev)n +(er,)24 b(the)j(release)d(v)n(ersions)h(are)f(no)n(w)i(in)0 +1860 y(their)i(o)n(wn)f(R)n(CS)g(rep)r(ository)-7 b(.)p +0 1951 3900 4 v 0 2109 a Fn(h)14 b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 -b Fm(+)p Fn(\021)0 2007 y Fk(1491.)94 b Fm(Include)28 -b(\014les.)0 2132 y Fn(h)14 b Fm(Include)28 b(\014les)35 -b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 2231 y Fm(#)p -Fk(include)32 b Ff("loader.h")0 2331 y Fm(#)p Fk(include)g -Ff("pspglb.h")0 2431 y Fm(#)p Fk(include)g Ff("io.h")0 -2530 y Fm(#)p Fk(include)g Ff("colors.h")0 2630 y Fm(#)p -Fk(include)g Ff("transfor.h")0 2729 y Fm(#)p Fk(include)g -Ff("shapes.h")0 2829 y Fm(#)p Fk(include)g Ff("pictures.h")0 -2929 y Fm(#)p Fk(include)g Ff("points.h")0 3028 y Fm(#)p -Fk(include)g Ff("lines.h")0 3128 y Fm(#)p Fk(include)g -Ff("planes.h")0 3228 y Fm(#)p Fk(include)g Ff("paths.h")0 -3327 y Fm(#)p Fk(include)g Ff("curves.h")0 3427 y Fm(#)p -Fk(include)g Ff("polygons.h")0 3526 y Fm(#)p Fk(include)g -Ff("rectangs.h")0 3626 y Fm(#)p Fk(include)g Ff("ellipses.h")0 -3726 y Fm(#)p Fk(include)g Ff("circles.h")0 3825 y Fm(#)p -Fk(include)g Ff("patterns.h")0 3925 y Fm(#)p Fk(include)g -Ff("solids.h")0 4025 y Fm(#)p Fk(include)g Ff("solfaced.h")0 -4124 y Fm(#)p Fk(include)g Ff("cuboid.h")0 4224 y Fm(#)p -Fk(include)g Ff("polyhed.h")0 4323 y Fm(#)p Fk(include)g -Ff("utility.h")0 4523 y Fk(1492.)94 b(P)m(arse.)0 4647 -y Fn(h)14 b Fm(Declare)27 b(parser)f(functions)36 b Fl(1492)14 -b Fn(i)24 b(\021)0 4755 y Fl(This)f(co)r(de)i(is)e(used)h(in)f(section) -i(1496.)0 4953 y Fk(1493.)0 5077 y Fn(h)14 b Fm(De\014ne)28 -b(parser)e(functions)36 b Fl(1493)15 b Fn(i)23 b(\021)0 -5185 y Fl(This)g(co)r(de)i(is)e(used)h(in)f(section)i(1495.)0 -5384 y Fk(1494.)94 b(Putting)32 b(the)f(parser)i(together.)p -eop end -%%Page: 461 461 -TeXDict begin 461 460 bop 0 83 a Fn(x)p Fm(1495)139 b -Fl(3DLDFPR)n(G)1647 b(PUTTING)24 b(THE)f(P)-6 b(ARSER)23 -b(TOGETHER)141 b Fm(461)0 263 y Fk(1495.)94 b Fm(This)28 -b(is)f(what's)g(compiled.)83 388 y Fn(h)14 b Fm(Include)28 -b(\014les)35 b Fl(11)15 b Fn(i)83 487 y(h)f Fm(V)-7 b(ersion)27 -b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)83 -587 y(h)f Fm(De\014ne)28 b(parser)e(functions)36 b Fl(1493)15 -b Fn(i)p eop end -%%Page: 462 462 -TeXDict begin 462 461 bop 0 83 a Fm(462)140 b Fl(PUTTING)24 +b Fm(+)p Fn(\021)83 2208 y Fk(static)33 b(string)g Fi(r)l(cs)p +726 2208 26 4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p +Ff(parser.web)o(,v)o Fj( )p Ff(1)-6 b(.2)p Fj( )p Ff(2003/12/10)p +Fj( )p Ff(1)o(5:)o(47:)f(41)p Fj( )p Ff(lfinsto1)p Fj( )p +Ff(Exp)p Fj( )p Ff($)o(")n Fm(;)0 2408 y Fk(1496.)94 +b Fm(Include)28 b(\014les.)0 2532 y Fn(h)14 b Fm(Include)28 +b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 +2632 y Fm(#)p Fk(include)32 b Ff("loader.h")0 2731 y +Fm(#)p Fk(include)g Ff("pspglb.h")0 2831 y Fm(#)p Fk(include)g +Ff("io.h")0 2931 y Fm(#)p Fk(include)g Ff("colors.h")0 +3030 y Fm(#)p Fk(include)g Ff("transfor.h")0 3130 y Fm(#)p +Fk(include)g Ff("shapes.h")0 3229 y Fm(#)p Fk(include)g +Ff("pictures.h")0 3329 y Fm(#)p Fk(include)g Ff("points.h")0 +3429 y Fm(#)p Fk(include)g Ff("lines.h")0 3528 y Fm(#)p +Fk(include)g Ff("planes.h")0 3628 y Fm(#)p Fk(include)g +Ff("paths.h")0 3728 y Fm(#)p Fk(include)g Ff("curves.h")0 +3827 y Fm(#)p Fk(include)g Ff("polygons.h")0 3927 y Fm(#)p +Fk(include)g Ff("rectangs.h")0 4026 y Fm(#)p Fk(include)g +Ff("ellipses.h")0 4126 y Fm(#)p Fk(include)g Ff("circles.h")0 +4226 y Fm(#)p Fk(include)g Ff("patterns.h")0 4325 y Fm(#)p +Fk(include)g Ff("solids.h")0 4425 y Fm(#)p Fk(include)g +Ff("solfaced.h")0 4525 y Fm(#)p Fk(include)g Ff("cuboid.h")0 +4624 y Fm(#)p Fk(include)g Ff("polyhed.h")0 4724 y Fm(#)p +Fk(include)g Ff("utility.h")0 4923 y Fk(1497.)94 b(P)m(arse.)0 +5048 y Fn(h)14 b Fm(Declare)27 b(parser)f(functions)36 +b Fl(1497)14 b Fn(i)24 b(\021)0 5156 y Fl(This)f(co)r(de)i(is)e(used)h +(in)f(section)i(1501.)p eop end +%%Page: 465 465 +TeXDict begin 465 464 bop 0 83 a Fn(x)p Fm(1498)139 b +Fl(3DLDFPR)n(G)2670 b(P)-6 b(ARSE)141 b Fm(465)0 263 +y Fk(1498.)0 388 y Fn(h)14 b Fm(De\014ne)28 b(parser)e(functions)36 +b Fl(1498)15 b Fn(i)23 b(\021)0 495 y Fl(This)g(co)r(de)i(is)e(used)h +(in)f(section)i(1500.)0 695 y Fk(1499.)94 b(Putting)32 +b(the)f(parser)i(together.)0 894 y(1500.)94 b Fm(This)28 +b(is)f(what's)g(compiled.)83 1019 y Fn(h)14 b Fm(Include)28 +b(\014les)35 b Fl(11)15 b Fn(i)83 1118 y(h)f Fm(V)-7 +b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 +b Fn(i)83 1218 y(h)f Fm(De\014ne)28 b(parser)e(functions)36 +b Fl(1498)15 b Fn(i)p eop end +%%Page: 466 466 +TeXDict begin 466 465 bop 0 83 a Fm(466)140 b Fl(PUTTING)24 b(THE)f(P)-6 b(ARSER)23 b(TOGETHER)1646 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(1496)0 263 y Fk(1496.)94 b Fm(This)28 b(is)f(what's)g +b Fn(x)p Fm(1501)0 263 y Fk(1501.)94 b Fm(This)28 b(is)f(what's)g (written)h(to)g Fj(parser.h)p Fm(.)0 388 y Fn(h)14 b -Ff(parser.h)80 b Fl(1496)15 b Fn(i)23 b(\021)83 487 y(h)14 -b Fm(Declare)27 b(parser)f(functions)36 b Fl(1492)15 -b Fn(i)0 686 y Fk(1497.)94 b(Main)h(\()p Fj(main.web)p -Fk(\).)p 0 790 1643 4 v 1738 823 a(Begin)31 b(Log)p 2257 -790 V 83 964 a Fm([)p Fh(LDF)25 b(2002.11.18.)p Fm(])59 -b(Changed)24 b(name)h(of)f(this)i(\014le)f(from)f Fj(persp.web)e -Fm(to)j Fj(main.web)p Fm(.)32 b(It)26 b(no)n(w)e(has)g(few)n(er)h(than) -g(8)f(letters)0 1063 y(and)j(can)h(b)r(e)g(used)f(under)h(DOS.)83 -1163 y([)p Fh(LDF)d(2003.08.29.)p Fm(])61 b(Mo)n(v)n(ed)26 +Ff(parser.h)80 b Fl(1501)15 b Fn(i)23 b(\021)83 487 y(h)14 +b Fm(Declare)27 b(parser)f(functions)36 b Fl(1497)15 +b Fn(i)0 686 y Fk(1502.)94 b(Main)h(\()p Fj(main.web)p +Fk(\).)p 0 790 1779 4 v 1874 822 a(Log)p 2122 790 V 83 +963 a Fm([)p Fh(LDF)25 b(2002.11.18.)p Fm(])59 b(Changed)24 +b(name)h(of)f(this)i(\014le)f(from)f Fj(persp.web)e Fm(to)j +Fj(main.web)p Fm(.)32 b(It)26 b(no)n(w)e(has)g(few)n(er)h(than)g(8)f +(letters)0 1063 y(and)j(can)h(b)r(e)g(used)f(under)h(DOS.)83 +1162 y([)p Fh(LDF)d(2003.08.29.)p Fm(])61 b(Mo)n(v)n(ed)26 b Fj(getopt.h)f Fm(from)i Fj(loader.web)c Fm(to)k(here,)g(b)r(ecause)g (it's)h(only)f(used)g(here.)37 b(TO)27 b(DO:)g(Mo)n(v)n(e)0 -1263 y(the)h(rest)f(of)h(the)g(include)g(commands)f(to)g(the)h(\014les) +1262 y(the)h(rest)f(of)h(the)g(include)g(commands)f(to)g(the)h(\014les) g(where)f(they're)g(needed,)h Fk(and)k(get)f(rid)h(of)g -Fj(loader.web)p Fm(.)83 1362 y([)p Fh(LDF)25 b(2003.11.12.)p +Fj(loader.web)p Fm(.)83 1361 y([)p Fh(LDF)25 b(2003.11.12.)p Fm(])71 b(Remo)n(v)n(ed)37 b(the)h(v)n(ersion)f(con)n(trol)f(iden)n (ti\014ers)i(from)f(the)h(CWEB)g(\014les)g(for)f(the)h(distribution)g -(of)0 1462 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n +(of)0 1461 y(3DLDF)28 b(1.1.)36 b(They're)27 b(still)h(used)g(in)f(m)n (y)h(dev)n(elopmen)n(t)f(v)n(ersions.)83 1561 y([)p Fh(LDF)e (2003.12.01.)p Fm(])61 b(Put)28 b(the)f(v)n(ersion)f(con)n(trol)h(iden) n(ti\014ers)g(bac)n(k)f(in)n(to)i(the)f(release)g(v)n(ersions,)e(b)r -(ecause)i(I'v)n(e)g(put)i(them)0 1661 y(in)f(their)f(o)n(wn)g(R)n(CS)h -(rep)r(ository)-7 b(.)p 0 1753 1678 4 v 1773 1786 a Fk(End)32 -b(Log)p 2222 1753 V 0 1910 a Fn(h)14 b Fm(V)-7 b(ersion)27 -b(con)n(trol)f(iden)n(ti\014er)35 b Fl(10)15 b Fn(i)23 -b Fm(+)p Fn(\021)83 2010 y Fk(static)33 b(string)g Fi(r)l(cs)p -726 2010 26 4 v 30 w(id)k Fm(=)23 b Ff("$Id:)p Fj( )p -Ff(main.web,v)o Fj( )p Ff(1)o(.6)-6 b Fj( )p Ff(2003/12/01)p -Fj( )p Ff(19:)o(39)o(:22)f Fj( )p Ff(lfinsto1)p Fj( )p -Ff(Exp)p Fj( )p Ff($")n Fm(;)0 2209 y Fk(1498.)94 b(Include)32 -b(\014les.)0 2334 y Fn(h)14 b Fm(Include)28 b(\014les)35 -b Fl(11)15 b Fn(i)23 b Fm(+)p Fn(\021)0 2433 y Fm(#)p -Fk(include)32 b Ff("loader.h")0 2533 y Fm(#)p Fk(ifdef)41 -b Ff(__GNUC__)0 2632 y Fm(#)p Fk(include)32 b Ff()166 -b Fe(=)p Fn(\003)41 b Fm(F)-7 b(or)27 b(pro)r(cessing)f(the)i(command)f -(line)h(options.)36 b([)p Fh(LDF)26 b(2003.08.14.)p Fm(])74 -b Fn(\003)p Fe(=)0 2732 y Fm(#)p Fk(endif)0 2832 y Fm(#)p -Fk(include)32 b Ff("pspglb.h")0 2931 y Fm(#)p Fk(include)g -Ff("io.h")0 3031 y Fm(#)p Fk(include)g Ff("colors.h")0 -3131 y Fm(#)p Fk(include)g Ff("transfor.h")0 3230 y Fm(#)p -Fk(include)g Ff("shapes.h")0 3330 y Fm(#)p Fk(include)g -Ff("pictures.h")0 3429 y Fm(#)p Fk(include)g Ff("points.h")0 -3529 y Fm(#)p Fk(include)g Ff("lines.h")0 3629 y Fm(#)p -Fk(include)g Ff("planes.h")0 3728 y Fm(#)p Fk(include)g -Ff("paths.h")0 3828 y Fm(#)p Fk(include)g Ff("curves.h")0 -3928 y Fm(#)p Fk(include)g Ff("polygons.h")0 4027 y Fm(#)p -Fk(include)g Ff("rectangs.h")0 4127 y Fm(#)p Fk(include)g -Ff("ellipses.h")0 4226 y Fm(#)p Fk(include)g Ff("circles.h")0 -4326 y Fm(#)p Fk(include)g Ff("patterns.h")0 4426 y Fm(#)p -Fk(include)g Ff("solids.h")0 4525 y Fm(#)p Fk(include)g -Ff("solfaced.h")0 4625 y Fm(#)p Fk(include)g Ff("cuboid.h")0 -4725 y Fm(#)p Fk(include)g Ff("polyhed.h")0 4824 y Fm(#)p -Fk(include)g Ff("utility.h")0 4924 y Fm(#)p Fk(include)g -Ff("parser.h")0 5023 y Fm(#)p Fk(include)g Ff("examples.h")0 -5223 y Fk(1499.)94 b(Get)29 b(input.)95 b Fm(I)26 b(plan)f(to)h(use)f -(Flex)h(and)f(Bison)g(to)g(handle)h(scanning)f(and)g(parsing)f(input.) -37 b(I)26 b(ha)n(v)n(en't)f(started)0 5322 y(w)n(ork)h(on)h(this)h(y)n -(et.)37 b([)p Fh(LDF)25 b(2003.08.20.)p Fm(])p eop end -%%Page: 463 463 -TeXDict begin 463 462 bop 0 83 a Fn(x)p Fm(1499)139 b -Fl(3DLDFPR)n(G)2496 b(GET)24 b(INPUT)141 b Fm(463)0 263 -y Fn(h)14 b Fm(Get)28 b(input)36 b Fl(1499)15 b Fn(i)23 -b(\021)0 462 y Fk(1500.)94 b(Actions)31 b(in)h(main.)0 -587 y Fn(h)14 b Fm(Actions)28 b(in)g(main)35 b Fl(1500)15 +(ecause)i(I'v)n(e)g(put)i(them)0 1660 y(in)f(their)f(o)n(wn)g(R)n(CS)h +(rep)r(ository)-7 b(.)p 0 1752 3900 4 v 0 1909 a Fn(h)14 +b Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 +b Fl(10)15 b Fn(i)23 b Fm(+)p Fn(\021)83 2009 y Fk(static)33 +b(string)g Fi(r)l(cs)p 726 2009 26 4 v 30 w(id)k Fm(=)23 +b Ff("$Id:)p Fj( )p Ff(main.web,v)o Fj( )p Ff(1)o(.9)-6 +b Fj( )p Ff(2003/12/09)p Fj( )p Ff(15:)o(33)o(:08)f Fj( )p +Ff(lfinsto1)p Fj( )p Ff(Exp)p Fj( )p Ff($")n Fm(;)0 2208 +y Fk(1503.)94 b(Include)32 b(\014les.)0 2333 y Fn(h)14 +b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)23 b Fm(+)p +Fn(\021)0 2432 y Fm(#)p Fk(include)32 b Ff("loader.h")0 +2532 y Fm(#)p Fk(ifdef)41 b Ff(__GNUC__)0 2632 y Fm(#)p +Fk(include)32 b Ff()166 b Fe(=)p Fn(\003)41 +b Fm(F)-7 b(or)27 b(pro)r(cessing)f(the)i(command)f(line)h(options.)36 +b([)p Fh(LDF)26 b(2003.08.14.)p Fm(])74 b Fn(\003)p Fe(=)0 +2731 y Fm(#)p Fk(endif)0 2831 y Fm(#)p Fk(include)32 +b Ff("pspglb.h")0 2931 y Fm(#)p Fk(include)g Ff("io.h")0 +3030 y Fm(#)p Fk(include)g Ff("colors.h")0 3130 y Fm(#)p +Fk(include)g Ff("transfor.h")0 3229 y Fm(#)p Fk(include)g +Ff("shapes.h")0 3329 y Fm(#)p Fk(include)g Ff("pictures.h")0 +3429 y Fm(#)p Fk(include)g Ff("points.h")0 3528 y Fm(#)p +Fk(include)g Ff("lines.h")0 3628 y Fm(#)p Fk(include)g +Ff("planes.h")0 3728 y Fm(#)p Fk(include)g Ff("paths.h")0 +3827 y Fm(#)p Fk(include)g Ff("curves.h")0 3927 y Fm(#)p +Fk(include)g Ff("polygons.h")0 4026 y Fm(#)p Fk(include)g +Ff("rectangs.h")0 4126 y Fm(#)p Fk(include)g Ff("ellipses.h")0 +4226 y Fm(#)p Fk(include)g Ff("circles.h")0 4325 y Fm(#)p +Fk(include)g Ff("patterns.h")0 4425 y Fm(#)p Fk(include)g +Ff("solids.h")0 4525 y Fm(#)p Fk(include)g Ff("solfaced.h")0 +4624 y Fm(#)p Fk(include)g Ff("cuboid.h")0 4724 y Fm(#)p +Fk(include)g Ff("polyhed.h")0 4823 y Fm(#)p Fk(include)g +Ff("utility.h")0 4923 y Fm(#)p Fk(include)g Ff("parser.h")0 +5023 y Fm(#)p Fk(include)g Ff("examples.h")0 5222 y Fk(1504.)94 +b(Get)29 b(input.)95 b Fm(I)26 b(plan)f(to)h(use)f(Flex)h(and)f(Bison)g +(to)g(handle)h(scanning)f(and)g(parsing)f(input.)37 b(I)26 +b(ha)n(v)n(en't)f(started)0 5322 y(w)n(ork)h(on)h(this)h(y)n(et.)37 +b([)p Fh(LDF)25 b(2003.08.20.)p Fm(])p eop end +%%Page: 467 467 +TeXDict begin 467 466 bop 0 83 a Fn(x)p Fm(1504)139 b +Fl(3DLDFPR)n(G)2496 b(GET)24 b(INPUT)141 b Fm(467)0 263 +y Fn(h)14 b Fm(Get)28 b(input)36 b Fl(1504)15 b Fn(i)23 +b(\021)0 462 y Fk(1505.)94 b(Actions)31 b(in)h(main.)0 +587 y Fn(h)14 b Fm(Actions)28 b(in)g(main)35 b Fl(1505)15 b Fn(i)23 b(\021)83 686 y Fk(using)33 b(namespace)f(Colors)t Fm(;)83 786 y Fk(using)h(namespace)f(Pro)5 b(jections)g Fm(;)83 886 y Fk(v)m(ector)h Fn(h)p Fk(const)33 b(Color)e @@ -39077,14 +39070,14 @@ 753 3302 V 31 w(violet)f Fm(\);)83 3401 y Fe(v)s(:)p Fi(push)p 317 3401 V 31 w(b)l(ack)h Fm(\(&)p Fi(violet)p 803 3401 V 32 w(r)l(e)l(d)f Fm(\);)0 3501 y(#)p Fk(endif)0 -3601 y Fm(#)p Fk(endif)0 3708 y Fl(See)24 b(also)g(section)h(1501.)0 -3816 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i(1511.)p +3601 y Fm(#)p Fk(endif)0 3708 y Fl(See)24 b(also)g(section)h(1506.)0 +3816 y(This)e(co)r(de)i(is)e(used)h(in)f(section)i(1519.)p eop end -%%Page: 464 464 -TeXDict begin 464 463 bop 0 83 a Fm(464)140 b Fl(A)n(CTIONS)23 -b(IN)h(MAIN)2257 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1501)0 -263 y Fk(1501.)94 b Fm(Y)-7 b(our)27 b(co)r(de)h(here!)0 -388 y Fn(h)14 b Fm(Actions)28 b(in)g(main)35 b Fl(1500)15 +%%Page: 468 468 +TeXDict begin 468 467 bop 0 83 a Fm(468)140 b Fl(A)n(CTIONS)23 +b(IN)h(MAIN)2257 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1506)0 +263 y Fk(1506.)94 b Fm(Y)-7 b(our)27 b(co)r(de)h(here!)0 +388 y Fn(h)14 b Fm(Actions)28 b(in)g(main)35 b Fl(1505)15 b Fn(i)23 b Fm(+)p Fn(\021)83 487 y Fi(b)l(e)l(gin\014g)12 b Fm(\(1)o(\);)83 612 y Fk(P)m(oin)m(t)33 b Fe(p)p Fm(;)83 711 y Fk(P)m(oin)m(t)g Fe(q)s Fm(\(1)p Fe(;)14 b Fm(1)o @@ -39093,7 +39086,7 @@ Fi(\014l)t(ldr)l(aw)g Fm(\()g(\);)83 1035 y Fe(p:)p Fi(dr)l(aw)g Fm(\()p Fe(q)s Fm(\);)83 1135 y Fi(curr)l(ent)p 350 1135 26 4 v 30 w(pictur)l(e)c Fe(:)p Fi(output)i Fm(\()i(\);)83 -1234 y Fi(end\014g)e Fm(\()i(\);)0 1434 y Fk(1502.)94 +1234 y Fi(end\014g)e Fm(\()i(\);)0 1434 y Fk(1507.)94 b(Pro)s(cess)38 b(command)g(line)g(options.)94 b Fm(This)33 b(section)g(includes)h(one)f(of)g(\(curren)n(tly\))g(t)n(w)n(o)g(other) g(sections,)0 1533 y(one)23 b(for)g(the)h(GCC/Lin)n(ux)f(v)n(ersion)e @@ -39109,140 +39102,137 @@ 1932 y(I)g(ha)n(v)n(e)e(to)i(implemen)n(t)g(the)g(command)g(line)g (option)f(pro)r(cessing)f(co)r(de)i(separately)e(for)h(eac)n(h)g(v)n (ersion.)35 b([)p Fh(LDF)25 b(2003.08.14.)p Fm(])p 0 -2036 1643 4 v 1738 2068 a Fk(Begin)31 b(Log)p 2257 2036 -V 83 2209 a Fm([)p Fh(LDF)25 b(2003.08.14.)p Fm(])61 -b(Added)28 b(this)g(section.)p 0 2301 1678 4 v 1773 2334 -a Fk(End)k(Log)p 2222 2301 V 0 2458 a Fn(h)14 b Fm(Pro)r(cess)26 -b(command)h(line)h(options)35 b Fl(1502)15 b Fn(i)23 -b(\021)0 2558 y Fm(#)p Fk(ifdef)41 b Ff(__GNUC__)83 2657 -y Fn(h)14 b Fm(GCC)28 b(command)f(line)h(option)f(pro)r(cessing)34 -b Fl(1503)15 b Fn(i)0 2757 y Fm(#)p Fk(else)0 2857 y -Fm(#)p Fk(ifdef)41 b Ff(__DECCXX)83 2956 y Fn(h)14 b -Fm(DEC)28 b(command)f(line)h(option)f(pro)r(cessing)34 -b Fl(1505)15 b Fn(i)0 3056 y Fm(#)p Fk(endif)0 3155 y -Fm(#)p Fk(endif)0 3263 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f -(section)i(1509.)p eop end -%%Page: 465 465 -TeXDict begin 465 464 bop 0 83 a Fn(x)p Fm(1503)139 b +2035 1779 4 v 1874 2068 a Fk(Log)p 2122 2035 V 83 2208 +a Fm([)p Fh(LDF)g(2003.08.14.)p Fm(])61 b(Added)28 b(this)g(section.)p +0 2300 3900 4 v 0 2457 a Fn(h)14 b Fm(Pro)r(cess)26 b(command)h(line)h +(options)35 b Fl(1507)15 b Fn(i)23 b(\021)0 2557 y Fm(#)p +Fk(ifdef)41 b Ff(__GNUC__)83 2657 y Fn(h)14 b Fm(GCC)28 +b(command)f(line)h(option)f(pro)r(cessing)34 b Fl(1508)15 +b Fn(i)0 2756 y Fm(#)p Fk(else)0 2856 y Fm(#)p Fk(ifdef)41 +b Ff(__DECCXX)83 2955 y Fn(h)14 b Fm(DEC)28 b(command)f(line)h(option)f +(pro)r(cessing)34 b Fl(1510)15 b Fn(i)0 3055 y Fm(#)p +Fk(endif)0 3155 y Fm(#)p Fk(endif)0 3263 y Fl(This)23 +b(co)r(de)i(is)e(used)h(in)f(section)i(1517.)p eop end +%%Page: 469 469 +TeXDict begin 469 468 bop 0 83 a Fn(x)p Fm(1508)139 b Fl(3DLDFPR)n(G)1612 b(PR)n(OCESS)24 b(COMMAND)e(LINE)i(OPTIONS)141 -b Fm(465)0 263 y Fk(1503.)94 b Fm(GCC)28 b(v)n(ersion)e(of)h(command)g -(line)h(pro)r(cessing.)p 0 362 1643 4 v 1738 395 a Fk(Begin)j(Log)p -2257 362 V 83 536 a Fm([)p Fh(LDF)25 b(2003.08.14.)p -Fm(])61 b(Added)28 b(this)g(section.)83 635 y([)p Fh(LDF)d(2003.08.14.) -p Fm(])55 b(Added)21 b(co)r(de)g(for)g(handling)f(the)i(\\)p +b Fm(469)0 263 y Fk(1508.)94 b Fm(GCC)28 b(v)n(ersion)e(of)h(command)g +(line)h(pro)r(cessing.)p 0 362 1779 4 v 1874 394 a Fk(Log)p +2122 362 V 83 535 a Fm([)p Fh(LDF)d(2003.08.14.)p Fm(])61 +b(Added)28 b(this)g(section.)83 635 y([)p Fh(LDF)d(2003.08.14.)p +Fm(])55 b(Added)21 b(co)r(de)g(for)g(handling)f(the)i(\\)p Fj(--silent)p Fm(")17 b(option,)22 b(including)f(the)h(constan)n(t)e -Ff(SILENT_INDEX)o Fm(.)p 0 727 1678 4 v 1773 760 a Fk(End)32 -b(Log)p 2222 727 V 0 884 a Fn(h)14 b Fm(GCC)28 b(command)f(line)h -(option)f(pro)r(cessing)34 b Fl(1503)15 b Fn(i)23 b(\021)83 -984 y(f)166 1084 y Fk(b)s(o)s(ol)31 b Ff(DEBUG)25 b Fm(=)e -Fi(false)12 b Fm(;)166 b Fe(=)p Fn(\003)40 b Fm(true)i -Fn(\003)p Fe(=)166 1183 y Fk(in)m(t)33 b Fi(option)p -544 1183 26 4 v 31 w(ctr)13 b Fm(;)166 1283 y Fk(in)m(t)33 -b Fi(digit)p 476 1283 V 31 w(optind)k Fm(=)23 b(0)o(;)166 -1382 y Fk(const)32 b(unsigned)g(short)g Ff(HELP_INDEX)23 -b Fm(=)g(0;)166 1482 y Fk(const)32 b(unsigned)g(short)g -Ff(SILENT_INDEX)23 b Fm(=)f(1;)166 1582 y Fk(const)32 +Ff(SILENT_INDEX)o Fm(.)p 0 726 3900 4 v 0 884 a Fn(h)14 +b Fm(GCC)28 b(command)f(line)h(option)f(pro)r(cessing)34 +b Fl(1508)15 b Fn(i)23 b(\021)83 983 y(f)166 1083 y Fk(b)s(o)s(ol)31 +b Ff(DEBUG)25 b Fm(=)e Fi(false)12 b Fm(;)166 b Fe(=)p +Fn(\003)40 b Fm(true)i Fn(\003)p Fe(=)166 1182 y Fk(in)m(t)33 +b Fi(option)p 544 1182 26 4 v 31 w(ctr)13 b Fm(;)166 +1282 y Fk(in)m(t)33 b Fi(digit)p 476 1282 V 31 w(optind)k +Fm(=)23 b(0)o(;)166 1382 y Fk(const)32 b(unsigned)g(short)g +Ff(HELP_INDEX)23 b Fm(=)g(0;)166 1481 y Fk(const)32 b(unsigned)g(short) +g Ff(SILENT_INDEX)23 b Fm(=)f(1;)166 1581 y Fk(const)32 b(unsigned)g(short)g Ff(VERBOSE_INDEX)22 b Fm(=)h(2)o(;)166 1681 y Fk(const)32 b(unsigned)g(short)g Ff(VERSION_INDEX)22 -b Fm(=)h(3)o(;)166 1781 y Fk(static)33 b(struct)g Fi(option)39 -b(long)p 1123 1781 V 31 w(options)12 b Fm([)i(])23 b(=)g +b Fm(=)h(3)o(;)166 1780 y Fk(static)33 b(struct)g Fi(option)39 +b(long)p 1123 1780 V 31 w(options)12 b Fm([)i(])23 b(=)g Fn(ff)p Ff("help")q Fe(;)14 b Fm(0)o Fe(;)g Fm(0)p Fe(;)g Fm(0)o Fn(g)p Fe(;)g Fn(f)p Ff("silent")p Fe(;)g Fm(0)o Fe(;)g Fm(0)p Fe(;)g Fm(0)o Fn(g)p Fe(;)g Fn(f)p Ff("verbose")p Fe(;)g Fm(0)o Fe(;)g Fm(0)p Fe(;)g Fm(0)o Fn(g)p Fe(;)332 -1881 y Fn(f)p Ff("version")p Fe(;)g Fm(0)p Fe(;)g Fm(0)o +1880 y Fn(f)p Ff("version")p Fe(;)g Fm(0)p Fe(;)g Fm(0)o Fe(;)g Fm(0)o Fn(g)p Fe(;)g Fn(f)p Fm(0)o Fe(;)g Fm(0)o Fe(;)g Fm(0)p Fe(;)g Fm(0)o Fn(gg)p Fm(;)166 1980 y Fk(in)m(t)33 b Fi(option)p 544 1980 V 31 w(index)38 b Fm(=)22 b(0;)166 -2080 y Fk(in)m(t)33 b Fi(this)p 447 2080 V 31 w(option)p -704 2080 V 31 w(optind)k Fm(=)23 b Fi(optind)37 b Fm(?)23 +2079 y Fk(in)m(t)33 b Fi(this)p 447 2079 V 31 w(option)p +704 2079 V 31 w(optind)k Fm(=)23 b Fi(optind)37 b Fm(?)23 b Fi(optind)37 b Fm(:)23 b(1)o(;)166 2204 y Fk(while)31 -b Fm(\(1\))42 b Fn(f)249 2304 y Fi(option)p 480 2304 -V 32 w(ctr)36 b Fm(=)22 b Fi(getopt)p 952 2304 V 31 w(long)p -1131 2304 V 31 w(only)13 b Fm(\()p Fi(ar)l(gc)c Fe(;)14 +b Fm(\(1\))42 b Fn(f)249 2303 y Fi(option)p 480 2303 +V 32 w(ctr)36 b Fm(=)22 b Fi(getopt)p 952 2303 V 31 w(long)p +1131 2303 V 31 w(only)13 b Fm(\()p Fi(ar)l(gc)c Fe(;)14 b Fi(ar)l(gv)g Fe(;)g Ff("hv")s Fe(;)g Fi(long)p 2116 -2304 V 31 w(options)e Fe(;)i Fm(&)o Fi(option)p 2746 -2304 V 32 w(index)g Fm(\);)249 2404 y Fk(if)41 b Fm(\()p +2303 V 31 w(options)e Fe(;)i Fm(&)o Fi(option)p 2746 +2303 V 32 w(index)g Fm(\);)249 2403 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)332 2503 y Fi(c)l(out)35 b Fn(\034)23 b Ff("option_ctr)p Fj( )p Ff(==)p Fj( )p Ff(")e Fn(\034)i Fi(option)p 1684 2503 V 31 w(ctr)36 b Fn(\034)23 b Fi(end)t(l)37 -b Fn(\034)23 b Fi(\015ush)10 b Fm(;)332 2603 y Fi(c)l(out)35 +b Fn(\034)23 b Fi(\015ush)10 b Fm(;)332 2602 y Fi(c)l(out)35 b Fn(\034)23 b Ff("option_index)p Fj( )p Ff(==)o Fj( )p -Ff(")e Fn(\034)i Fi(option)p 1771 2603 V 31 w(index)38 +Ff(")e Fn(\034)i Fi(option)p 1771 2602 V 31 w(index)38 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 b Fm(;)332 2702 y Fi(c)l(out)35 b Fn(\034)23 b Ff("optarg)p Fj( )p Ff(==)p Fj( )p Ff(")f Fn(\034)h Fi(optar)l(g)36 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 -b Fm(;)249 2802 y Fn(g)249 2902 y Fk(if)41 b Fm(\()p -Fi(option)p 609 2902 V 32 w(ctr)36 b Fn(\021)23 b(\000)o +b Fm(;)249 2801 y Fn(g)249 2901 y Fk(if)41 b Fm(\()p +Fi(option)p 609 2901 V 32 w(ctr)36 b Fn(\021)23 b(\000)o Fm(1\))42 b Fn(f)332 3001 y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("No)p Fj( )p Ff(more)p Fj( )p Ff(options.)o(")e Fn(\034)i Fi(end)t(l)37 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 b Fi(\015ush)10 -b Fm(;)332 3101 y Fk(break)c Fm(;)249 3201 y Fn(g)249 +b Fm(;)332 3100 y Fk(break)c Fm(;)249 3200 y Fn(g)249 3300 y Fk(if)41 b Fm(\()p Fi(option)p 609 3300 V 32 w(ctr)36 -b Fn(\021)23 b Fm(0)o(\))42 b Fn(f)332 3400 y Fk(if)f +b Fn(\021)23 b Fm(0)o(\))42 b Fn(f)332 3399 y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))h Fn(f)415 3499 y Fi(c)l(out)35 b Fn(\034)23 b Ff("option)p Fj( )p Ff(")h Fn(\034)f Fi(long)p 1384 3499 V 31 w(options)12 b Fm([)p Fi(option)p 1936 3499 V 31 w(index)j Fm(])p Fe(:)p Fi(name)c Fm(;)415 -3599 y Fk(if)41 b Fm(\()p Fi(optar)l(g)13 b Fm(\))42 +3598 y Fk(if)41 b Fm(\()p Fi(optar)l(g)13 b Fm(\))42 b Fi(c)l(out)35 b Fn(\034)23 b Ff(")p Fj( )p Ff(with)p Fj( )p Ff(arg)p Fj( )p Ff(")f Fn(\034)h Fi(optar)l(g)13 -b Fm(;)415 3699 y Fi(c)l(out)35 b Fn(\034)23 b Fi(end)t(l)13 -b Fm(;)332 3798 y Fn(g)332 3898 y Fk(if)41 b Fm(\()p -Fi(option)p 692 3898 V 32 w(index)d Fn(\021)22 b Ff(HELP_INDEX)q -Fm(\))41 b Fn(f)415 3998 y Fi(c)l(out)48 b Fn(\034)36 +b Fm(;)415 3698 y Fi(c)l(out)35 b Fn(\034)23 b Fi(end)t(l)13 +b Fm(;)332 3798 y Fn(g)332 3897 y Fk(if)41 b Fm(\()p +Fi(option)p 692 3897 V 32 w(index)d Fn(\021)22 b Ff(HELP_INDEX)q +Fm(\))41 b Fn(f)415 3997 y Fi(c)l(out)48 b Fn(\034)36 b Ff("3DLDF)p Fj( )p Ff(Version)p Fj( )p Ff(")e Fn(\034)i Ff(VERSION_3DLDF)g Fn(\034)g Ff(".)p Fj( )p Ff(")j Fn(\034)d Ff(COPYRIGHT_3DLDF)e Fn(\034)581 4097 y Fi(end)t(l)69 b Fn(\034)55 b Ff("Valid)p Fj( )p Ff(options)p Fj( )p Ff(f)o(or)o Fj( )p Ff(3)-6 b(DLDF)p Fj( )p Ff(are:")55 -b Fn(\034)g Fi(end)t(l)69 b Fn(\034)581 4197 y Ff("--help:)p +b Fn(\034)g Fi(end)t(l)69 b Fn(\034)581 4196 y Ff("--help:)p Fj( )p Ff(Pri)o(nt)o(s)-6 b Fj( )p Ff(this)p Fj( )p Ff(message)p Fj( )p Ff(an)o(d)p Fj( )o Ff(ex)g(its)p Fj( )p Ff(")29 b Fn(\034)e Ff("with)p Fj( )p Ff(return)p Fj( )p Ff(val)o(ue)p Fj( )o Ff(0)-6 b(.")30 b Fn(\034)581 -4297 y Fi(end)t(l)41 b Fn(\034)28 b Fi(end)t(l)41 b Fn(\034)27 +4296 y Fi(end)t(l)41 b Fn(\034)28 b Fi(end)t(l)41 b Fn(\034)27 b Ff("--silent:)p Fj( )p Ff(Su)o(ppr)o(e)-6 b(sses)p Fj( )p Ff(some)p Fj( )p Ff(output)o Fj( )p Ff(t)o(o)p Fj( )f Ff(standard)p Fj( )p Ff(output")26 b Fn(\034)581 -4396 y Fi(end)t(l)45 b Fn(\034)32 b Ff(")p Fj( )p +4395 y Fi(end)t(l)45 b Fn(\034)32 b Ff(")p Fj( )p Ff(an)o(d)p Fj( )p Ff(s)o(t)-6 b(andard)p Fj( )p Ff(error)p Fj( )p Ff(whe)o(n)p Fj( )o Ff(3d)g(ldf)p Fj( )p Ff(is)p Fj( )p Ff(run.")31 b Fn(\034)g Fi(end)t(l)45 b Fn(\034)581 -4496 y Fi(end)t(l)50 b Fn(\034)36 b Ff("--verbose:)p +4495 y Fi(end)t(l)50 b Fn(\034)36 b Ff("--verbose:)p Fj( )p Ff(Cau)o(ses)-7 b Fj( )p Ff(status)p Fj( )p Ff(informat)o(ion)o Fj( )h Ff(to)p Fj( )p Ff(be)p Fj( )p Ff(printed)p Fj( )p Ff(")34 b Fn(\034)581 4595 y Ff("to)p Fj( )p Ff(standard)p Fj( )p Ff(outp)o(ut)o(")f Fn(\034)h Fi(end)t(l)48 b Fn(\034)35 b Ff(")p Fj( )p -Ff(wh)o(en)p Fj( )o Ff(3)-6 b(DLDF)p Fj( )p Ff(is)p Fj( )p -Ff(run.")33 b Fn(\034)581 4695 y Fi(end)t(l)41 b Fn(\034)28 +Ff(wh)o(en)p Fj( )o Ff(3)-6 b(dldf)p Fj( )p Ff(is)p Fj( )p +Ff(run.")33 b Fn(\034)581 4694 y Fi(end)t(l)41 b Fn(\034)28 b Fi(end)t(l)41 b Fn(\034)27 b Ff("--version:)p Fj( )p Ff(Pri)o(nt)o(s)-6 b Fj( )p Ff(the)p Fj( )p Ff(version)p Fj( )p Ff(num)o(be)o(r)p Fj( )g Ff(of)p Fj( )p Ff(3DLDF")28 -b Fn(\034)f Fi(end)t(l)41 b Fn(\034)581 4795 y Ff(")p +b Fn(\034)f Fi(end)t(l)41 b Fn(\034)581 4794 y Ff(")p Fj( )p Ff(to)p Fj( )o Ff(st)o(a)-6 b(ndard)p Fj( )p Ff(output)p Fj( )p Ff(and)o Fj( )p Ff(")26 b Fn(\034)i Ff("exits)p Fj( )p Ff(with)p Fj( )p Ff(retu)o(rn)p Fj( )o Ff(v)-6 b(alue)p Fj( )p Ff(0.")29 b Fn(\034)581 4894 y Fi(end)t(l)37 b Fn(\034)23 b Fi(end)t(l)37 b Fn(\034)23 -b Fi(\015ush)10 b Fm(;)415 4994 y Fk(if)41 b Fm(\()p +b Fi(\015ush)10 b Fm(;)415 4993 y Fk(if)41 b Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(with)p Fj( )p Ff(ret)o(urn)-7 b Fj( )p Ff(value)p Fj( )p Ff(0.")23 b Fn(\034)h Fi(end)t(l)36 b Fn(\034)23 -b Fi(\015ush)11 b Fm(;)415 5094 y Fi(exit)h Fm(\(0\);)332 -5193 y Fn(g)332 5293 y Fk(else)31 b(if)41 b Fm(\()p Fi(option)p -876 5293 V 32 w(index)d Fn(\021)22 b Ff(SILENT_INDEX)p +b Fi(\015ush)11 b Fm(;)415 5093 y Fi(exit)h Fm(\(0\);)332 +5192 y Fn(g)332 5292 y Fk(else)31 b(if)41 b Fm(\()p Fi(option)p +876 5292 V 32 w(index)d Fn(\021)22 b Ff(SILENT_INDEX)p Fm(\))42 b Fn(f)415 5392 y Fk(if)f Fm(\()p Ff(DEBUG)s Fm(\))h Fi(c)l(out)34 b Fn(\034)23 b Ff("Setting)p Fj( )p Ff(SILENT_G)o(LOB)-7 b(AL)p Fj( )p Ff(to)p Fj( )p Ff(true.")23 b Fn(\034)g Fi(end)t(l)13 b Fm(;)p eop end -%%Page: 466 466 -TeXDict begin 466 465 bop 0 83 a Fm(466)140 b Fl(PR)n(OCESS)23 +%%Page: 470 470 +TeXDict begin 470 469 bop 0 83 a Fm(470)140 b Fl(PR)n(OCESS)23 b(COMMAND)g(LINE)g(OPTIONS)1612 b(3DLDFPR)n(G)142 b Fn(x)p -Fm(1503)415 263 y Ff(SILENT_GLOBAL)22 b Fm(=)h Fi(true)10 +Fm(1508)415 263 y Ff(SILENT_GLOBAL)22 b Fm(=)h Fi(true)10 b Fm(;)332 363 y Fn(g)332 462 y Fk(else)31 b(if)41 b Fm(\()p Fi(option)p 876 462 26 4 v 32 w(index)d Fn(\021)22 b Ff(VERBOSE_INDEX)o Fm(\))42 b Fn(f)415 562 y Fk(if)f @@ -39303,86 +39293,83 @@ b Fn(\034)23 b Fi(\015ush)11 b Fm(;)249 3451 y Fi(exit)h Fm(\(0\);)166 3551 y Fn(g)83 3650 y(g)166 b Fe(=)p Fn(\003)40 b Fm(End)28 b(of)f(group.)50 b Fn(\003)p Fe(=)0 3758 -y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1502.)0 -3958 y Fk(1504.)94 b Fm(DEC)28 b(v)n(ersion.)p eop end -%%Page: 467 467 -TeXDict begin 467 466 bop 0 83 a Fn(x)p Fm(1505)139 b +y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1507.)0 +3958 y Fk(1509.)94 b Fm(DEC)28 b(v)n(ersion.)p eop end +%%Page: 471 471 +TeXDict begin 471 470 bop 0 83 a Fn(x)p Fm(1510)139 b Fl(3DLDFPR)n(G)1612 b(PR)n(OCESS)24 b(COMMAND)e(LINE)i(OPTIONS)141 -b Fm(467)0 263 y Fk(1505.)94 b Fm(This)28 b(section)f(do)r(esn't)g(con) -n(tain)g(an)n(y)g(co)r(de)h(y)n(et.)p 0 362 1643 4 v -1738 395 a Fk(Begin)j(Log)p 2257 362 V 83 536 a Fm([)p -Fh(LDF)25 b(2003.08.14.)p Fm(])61 b(Added)28 b(this)g(section.)p -0 628 1678 4 v 1773 660 a Fk(End)k(Log)p 2222 628 V 0 -785 a Fn(h)14 b Fm(DEC)28 b(command)f(line)h(option)f(pro)r(cessing)34 -b Fl(1505)15 b Fn(i)23 b(\021)189 b Fe(=)p Fn(\003)40 -b Fm(Do)28 b(nothing.)50 b Fn(\003)p Fe(=)0 893 y Fl(This)23 -b(co)r(de)i(is)e(used)h(in)f(section)i(1502.)0 1092 y -Fk(1506.)94 b(Prin)m(t)51 b(v)m(ersion,)i(cop)m(yrigh)m(t,)j(and)50 +b Fm(471)0 263 y Fk(1510.)94 b Fm(This)28 b(section)f(do)r(esn't)g(con) +n(tain)g(an)n(y)g(co)r(de)h(y)n(et.)p 0 362 1779 4 v +1874 394 a Fk(Log)p 2122 362 V 83 535 a Fm([)p Fh(LDF)d(2003.08.14.)p +Fm(])61 b(Added)28 b(this)g(section.)p 0 627 3900 4 v +0 784 a Fn(h)14 b Fm(DEC)28 b(command)f(line)h(option)f(pro)r(cessing) +34 b Fl(1510)15 b Fn(i)23 b(\021)189 b Fe(=)p Fn(\003)40 +b Fm(Do)28 b(nothing.)50 b Fn(\003)p Fe(=)0 892 y Fl(This)23 +b(co)r(de)i(is)e(used)h(in)f(section)i(1507.)0 1091 y +Fk(1511.)94 b(Prin)m(t)51 b(v)m(ersion,)i(cop)m(yrigh)m(t,)j(and)50 b(license)f(information.)94 b Fm(The)43 b(v)n(ersion,)j(cop)n(yrigh)n (t,)g(and)d(license)0 1191 y(information)35 b(is)h(prin)n(ted)g(to)g (standard)f(output)i(when)f(3DLDF)h(is)f(run,)i(unless)e(the)g(\\)p -Fj(--silent)p Fm(")c(option)k(w)n(as)f(used.)0 1291 y(The)25 +Fj(--silent)p Fm(")c(option)k(w)n(as)f(used.)0 1290 y(The)25 b(co)r(de)g(for)g(this)g(di\013ers)h(for)e(the)i(GCC)f(2.95/Lin)n(ux)e (v)n(ersion)h(on)h(the)g(one)g(hand,)h(and)f(the)h(other)e(v)n(ersions) -g(\(curren)n(tly)-7 b(,)0 1391 y(GCC)38 b(3.3/Lin)n(ux)e(and)i(DEC\))h +g(\(curren)n(tly)-7 b(,)0 1390 y(GCC)38 b(3.3/Lin)n(ux)e(and)i(DEC\))h (on)e(the)i(other.)67 b(The)38 b(reason)e(for)i(this)g(is,)j(that)d (GCC)g(2.95)f(do)r(esn't)h(handle)g(stream)0 1490 y(formatting)29 b(in)h(the)g(same)f(w)n(a)n(y)f(as)h(the)h(others.)42 b(I)30 b(assume)e(that)i(the)g(others)f(adhere)g(to)g(the)h(standard)f -(and)g(that)h(GCC)0 1590 y(2.95)39 b(do)r(esn't,)k(but)e(I)f(ha)n(v)n +(and)g(that)h(GCC)0 1589 y(2.95)39 b(do)r(esn't,)k(but)e(I)f(ha)n(v)n (en't)f(c)n(hec)n(k)n(ed)g(this.)74 b(A)n(t)40 b(an)n(y)g(rate,)i(the)e (non-GCC)g(2.95)f(v)n(ersion)f(corresp)r(onds)g(to)i(what)0 -1690 y(Stroustrup)27 b(describ)r(es)g(in)h Fi(The)j Fh(C)1096 -1682 y Fg(+)-8 b(+)1224 1690 y Fi(Pr)l(o)l(gr)l(amming)30 -b(L)l(anguage)p Fm(.)p 0 1789 1643 4 v 1738 1822 a Fk(Begin)h(Log)p -2257 1789 V 83 1962 a Fm([)p Fh(LDF)25 b(2003.08.14.)p -Fm(])61 b(Added)28 b(this)g(section.)p 0 2054 1678 4 -v 1773 2087 a Fk(End)k(Log)p 2222 2054 V 0 2211 a Fn(h)14 -b Fm(Prin)n(t)27 b(v)n(ersion,)f(cop)n(yrigh)n(t,)g(and)h(license)h -(information)34 b Fl(1506)15 b Fn(i)24 b(\021)83 2311 -y Fk(if)41 b Fm(\()p Fn(:)p Ff(SILENT_GLOBAL)p Fm(\))h -Fn(f)0 2411 y Fm(#)p Fk(ifdef)f Ff(LDF_GCC_2_95)166 2510 -y Fn(h)14 b Fm(GCC)28 b(2.95)e(prin)n(t)i(v)n(ersion,)e(cop)n(yrigh)n -(t,)g(and)h(license)h(information)34 b Fl(1507)15 b Fn(i)0 -2610 y Fm(#)p Fk(else)166 2709 y Fn(h)f Fm(GCC)28 b(3.3)f(and)g(DEC)h -(prin)n(t)f(v)n(ersion,)f(cop)n(yrigh)n(t,)g(and)i(license)f -(information)35 b Fl(1508)15 b Fn(i)0 2809 y Fm(#)p Fk(endif)83 -2909 y Fn(g)0 3017 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i -(1510.)0 3216 y Fk(1507.)94 b Fm(GCC)28 b(2.95)e(v)n(ersion.)p -0 3292 1643 4 v 1738 3324 a Fk(Begin)31 b(Log)p 2257 -3292 V 83 3465 a Fm([)p Fh(LDF)25 b(2003.08.14.)p Fm(])61 -b(Added)28 b(this)g(section.)p 0 3557 1678 4 v 1773 3589 -a Fk(End)k(Log)p 2222 3557 V 0 3714 a Fn(h)14 b Fm(GCC)28 -b(2.95)e(prin)n(t)i(v)n(ersion,)e(cop)n(yrigh)n(t,)g(and)h(license)g -(information)35 b Fl(1507)15 b Fn(i)23 b(\021)83 3814 -y Fi(c)l(out)12 b Fe(:)p Fi(setf)22 b Fm(\()p Fi(ios)e -Fm(::)9 b Fi(\014xe)l(d)j Fe(;)i Fi(ios)20 b Fm(::)9 -b Fi(\015o)l(at\014eld)k Fm(\);)83 3913 y Fi(c)l(out)f -Fe(:)p Fi(pr)l(e)l(cision)g Fm(\(1)o(\);)83 4013 y Fi(c)l(out)42 -b Fn(\034)31 b Ff("3DLDF)p Fj( )p Ff(Version)p Fj( )p -Ff(")e Fn(\034)i Ff(VERSION_3DLDF)e Fn(\034)i Ff(".")j -Fn(\034)d Fi(end)t(l)44 b Fn(\034)31 b Ff(COPYRIGHT_3DLDF)e -Fn(\034)i Fi(end)t(l)44 b Fn(\034)249 4112 y Ff(DISCLAIMER_3DLDF)21 -b Fn(\034)i Fi(end)t(l)37 b Fn(\034)23 b Fi(end)t(l)36 -b Fn(\034)23 b Fi(\015ush)11 b Fm(;)83 4212 y Fi(c)l(out)h -Fe(:)p Fi(setf)22 b Fm(\()p Fi(ios)e Fm(::)9 b Fi(fmt\015ags)i -Fm(\(0\))p Fe(;)j Fi(ios)20 b Fm(::)9 b Fi(\015o)l(at\014eld)k -Fm(\);)166 b Fe(=)p Fn(\003)41 b Fm(Reset)28 b(to)f(defaults.)37 +1689 y(Stroustrup)27 b(describ)r(es)g(in)h Fi(The)j Fh(C)1096 +1681 y Fg(+)-8 b(+)1224 1689 y Fi(Pr)l(o)l(gr)l(amming)30 +b(L)l(anguage)p Fm(.)p 0 1788 1779 4 v 1874 1820 a Fk(Log)p +2122 1788 V 83 1961 a Fm([)p Fh(LDF)25 b(2003.08.14.)p +Fm(])61 b(Added)28 b(this)g(section.)p 0 2053 3900 4 +v 0 2210 a Fn(h)14 b Fm(Prin)n(t)27 b(v)n(ersion,)f(cop)n(yrigh)n(t,)g +(and)h(license)h(information)34 b Fl(1511)15 b Fn(i)24 +b(\021)83 2310 y Fk(if)41 b Fm(\()p Fn(:)p Ff(SILENT_GLOBAL)p +Fm(\))h Fn(f)0 2409 y Fm(#)p Fk(ifdef)f Ff(LDF_GCC_2_95)166 +2509 y Fn(h)14 b Fm(GCC)28 b(2.95)e(prin)n(t)i(v)n(ersion,)e(cop)n +(yrigh)n(t,)g(and)h(license)h(information)34 b Fl(1512)15 +b Fn(i)0 2608 y Fm(#)p Fk(else)166 2708 y Fn(h)f Fm(GCC)28 +b(3.3)f(and)g(DEC)h(prin)n(t)f(v)n(ersion,)f(cop)n(yrigh)n(t,)g(and)i +(license)f(information)35 b Fl(1513)15 b Fn(i)0 2808 +y Fm(#)p Fk(endif)83 2907 y Fn(g)0 3015 y Fl(This)23 +b(co)r(de)i(is)e(used)h(in)f(section)i(1518.)0 3214 y +Fk(1512.)94 b Fm(GCC)28 b(2.95)e(v)n(ersion.)p 0 3290 +1779 4 v 1874 3323 a Fk(Log)p 2122 3290 V 83 3464 a Fm([)p +Fh(LDF)f(2003.08.14.)p Fm(])61 b(Added)28 b(this)g(section.)p +0 3555 3900 4 v 0 3713 a Fn(h)14 b Fm(GCC)28 b(2.95)e(prin)n(t)i(v)n +(ersion,)e(cop)n(yrigh)n(t,)g(and)h(license)g(information)35 +b Fl(1512)15 b Fn(i)23 b(\021)83 3812 y Fi(c)l(out)12 +b Fe(:)p Fi(setf)22 b Fm(\()p Fi(ios)e Fm(::)9 b Fi(\014xe)l(d)j +Fe(;)i Fi(ios)20 b Fm(::)9 b Fi(\015o)l(at\014eld)k Fm(\);)83 +3912 y Fi(c)l(out)f Fe(:)p Fi(pr)l(e)l(cision)g Fm(\(1)o(\);)83 +4011 y Fi(c)l(out)42 b Fn(\034)31 b Ff("3DLDF)p Fj( )p +Ff(Version)p Fj( )p Ff(")e Fn(\034)i Ff(VERSION_3DLDF)e +Fn(\034)i Ff(".")j Fn(\034)d Fi(end)t(l)44 b Fn(\034)31 +b Ff(COPYRIGHT_3DLDF)e Fn(\034)i Fi(end)t(l)44 b Fn(\034)249 +4111 y Ff(DISCLAIMER_3DLDF)21 b Fn(\034)i Fi(end)t(l)37 +b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 +b Fm(;)83 4211 y Fi(c)l(out)h Fe(:)p Fi(setf)22 b Fm(\()p +Fi(ios)e Fm(::)9 b Fi(fmt\015ags)i Fm(\(0\))p Fe(;)j +Fi(ios)20 b Fm(::)9 b Fi(\015o)l(at\014eld)k Fm(\);)166 +b Fe(=)p Fn(\003)41 b Fm(Reset)28 b(to)f(defaults.)37 b([)p Fh(LDF)25 b(2003.08.14.)p Fm(])75 b Fn(\003)p Fe(=)83 -4312 y Fi(c)l(out)12 b Fe(:)p Fi(pr)l(e)l(cision)g Fm(\(6)o(\);)0 -4420 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1506.)p +4310 y Fi(c)l(out)12 b Fe(:)p Fi(pr)l(e)l(cision)g Fm(\(6)o(\);)0 +4418 y Fl(This)23 b(co)r(de)i(is)e(used)h(in)f(section)i(1511.)p eop end -%%Page: 468 468 -TeXDict begin 468 467 bop 0 83 a Fm(468)140 b Fl(PRINT)23 +%%Page: 472 472 +TeXDict begin 472 471 bop 0 83 a Fm(472)140 b Fl(PRINT)23 b(VERSION,)h(COPYRIGHT,)f(AND)g(LICENSE)h(INF)n(ORMA)-6 -b(TION)756 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1508)0 263 y -Fk(1508.)94 b Fm(GCC)28 b(3.3)e(and)i(DEC)f(v)n(ersion.)p -0 339 1643 4 v 1738 371 a Fk(Begin)k(Log)p 2257 339 V -83 512 a Fm([)p Fh(LDF)25 b(2003.08.14.)p Fm(])61 b(Added)28 -b(this)g(section.)p 0 604 1678 4 v 1773 637 a Fk(End)k(Log)p -2222 604 V 0 761 a Fn(h)14 b Fm(GCC)28 b(3.3)f(and)g(DEC)h(prin)n(t)f -(v)n(ersion,)f(cop)n(yrigh)n(t,)g(and)i(license)f(information)35 -b Fl(1508)14 b Fn(i)24 b(\021)83 861 y Fi(c)l(out)12 +b(TION)756 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1513)0 263 y +Fk(1513.)94 b Fm(GCC)28 b(3.3)e(and)i(DEC)f(v)n(ersion.)p +0 339 1779 4 v 1874 371 a Fk(Log)p 2122 339 V 83 512 +a Fm([)p Fh(LDF)e(2003.08.14.)p Fm(])61 b(Added)28 b(this)g(section.)p +0 604 3900 4 v 0 761 a Fn(h)14 b Fm(GCC)28 b(3.3)f(and)g(DEC)h(prin)n +(t)f(v)n(ersion,)f(cop)n(yrigh)n(t,)g(and)i(license)f(information)35 +b Fl(1513)14 b Fn(i)24 b(\021)83 861 y Fi(c)l(out)12 b Fe(:)p Fi(pr)l(e)l(cision)g Fm(\(1)o(\);)83 960 y Fi(c)l(out)42 b Fn(\034)31 b Ff("3DLDF)p Fj( )p Ff(Version)p Fj( )p Ff(")e Fn(\034)i Ff(VERSION_3DLDF)e Fn(\034)i Ff(".")j @@ -39391,8 +39378,8 @@ b Fn(\034)i Fi(end)t(l)37 b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 b Fm(;)83 1160 y Fi(c)l(out)h Fe(:)p Fi(pr)l(e)l(cision)g Fm(\(6)o(\);)0 1268 y Fl(This)23 -b(co)r(de)i(is)e(used)h(in)f(section)i(1506.)0 1467 y -Fk(1509.)94 b(Main)42 b(itself.)94 b Fm([)p Fh(LDF)26 +b(co)r(de)i(is)e(used)h(in)f(section)i(1511.)0 1467 y +Fk(1514.)94 b(Main)42 b(itself.)94 b Fm([)p Fh(LDF)26 b(2002.12.11.)p Fm(])70 b(!!)65 b(KLUDGE:)38 b(I)f(test)g(whether)g Ff(INVALID_REAL)g Fm(and)g Ff(MAX_REAL)h Fm(are)0 1566 y(equal)26 b(here,)g(b)r(ecause)g(I'v)n(e)h(had)f(to)g(set)h(them)g(in) @@ -39403,53 +39390,166 @@ (it.)62 b(See)36 b(the)h(place)f(where)0 1766 y Ff(INVALID_REAL)27 b Fm(and)g Ff(MAX_REAL)i Fm(are)e(declared)g(in)g Fj(pspglb.web)d Fm(for)j(more)g(information.)0 1890 y Fn(h)14 b Fm(Main)35 -b Fl(1509)15 b Fn(i)24 b(\021)83 1990 y Fk(in)m(t)33 +b Fl(1514)15 b Fn(i)24 b(\021)83 1990 y Fk(in)m(t)33 b Fi(main)11 b Fm(\()p Fk(in)m(t)32 b Fi(ar)l(gc)10 b Fe(;)k Fk(c)m(har)34 b Fn(\003)o Fi(ar)l(gv)14 b Fm([)g(]\))p Fn(f)166 b Fe(=)p Fn(\003)40 b Fm([)p Fh(LDF)26 b(2002.12.11.)p Fm(])61 b(Kludge.)36 b(See)27 b(T)2804 2005 y(E)2851 -1990 y(X)h(section)f(ab)r(o)n(v)n(e.)49 b Fn(\003)p Fe(=)249 -2090 y Fk(if)41 b Fm(\()p Ff(INVALID_REAL)23 b Fn(\021)g -Ff(MAX_REAL)q Fm(\))41 b Fn(f)332 2189 y Fi(c)l(err)36 -b Fn(\034)24 b Ff("ERROR!)p Fj( )p Ff(In)p Fj( )p Ff(main)o(\(\):)o -(\\n)-7 b(INVALID_REAL)p Fj( )p Ff(==)p Fj( )p Ff(M)o(AX)o(_)h -(REAL.\\nExiting.")n Fm(;)332 2289 y Fi(exit)12 b Fm(\(1\);)249 -2388 y Fn(g)249 2488 y(h)i Fm(Pro)r(cess)26 b(command)h(line)h(options) -35 b Fl(1502)15 b Fn(i)p Fm(;)0 2596 y Fl(See)24 b(also)g(sections)g -(1510)h(and)f(1511.)0 2704 y(This)f(co)r(de)i(is)e(used)h(in)f(section) -i(1512.)0 2903 y Fk(1510.)p 0 2979 1643 4 v 1738 3012 -a(Begin)31 b(Log)p 2257 2979 V 83 3152 a Fm([)p Fh(LDF)25 -b(2003.08.29.)p Fm(])63 b(Changed)28 b(the)i(string)f(that's)g(passed)g -(to)g Fi(initialize)p 2392 3152 26 4 v 32 w(io)11 b Fm(\()j(\))29 -b(as)g(the)h(name)f(of)g(the)h(input)g(\014le.)42 b(It's)29 -b(a)0 3252 y(dumm)n(y)d(name,)f(since)g(I'v)n(e)g(c)n(hanged)g -Fi(initialize)p 1532 3252 V 32 w(io)10 b Fm(\()k(\))26 +1990 y(X)h(section)f(ab)r(o)n(v)n(e.)49 b Fn(\003)p Fe(=)0 +2098 y Fl(See)24 b(also)g(sections)g(1515,)h(1516,)f(1517,)g(1518,)h +(and)f(1519.)0 2206 y(This)f(co)r(de)i(is)e(used)h(in)f(section)i +(1520.)0 2405 y Fk(1515.)94 b Fm(Error)25 b(handling.)0 +2530 y Fn(h)14 b Fm(Main)35 b Fl(1514)15 b Fn(i)24 b +Fm(+)p Fn(\021)0 2629 y Fm(#)p Fk(if)41 b Ff(LDF_REAL_FLOAT)83 +2729 y Fk(if)32 b Fm(\()p Fk(sizeof)14 b Fm(\()p Fk(\015oat)5 +b Fm(\))23 b Fn(6)p Fm(=)g Fk(sizeof)13 b Fm(\()p Fk(unsigned)23 +b(long)5 b Fm(\)\))19 b Fn(f)f Fi(c)l(err)37 b Fn(\034)23 +b Ff("sizeof\(float\))p Fj( )p Ff(!)o(=)p Fj( )p Ff(s)o(i)-6 +b(zeof\(unsigned)p Fj( )p Ff(l)o(ong)o(\)!)f(")27 b Fn(\034)249 +2828 y Fi(end)t(l)14 b Fm(;)33 b Fn(\034)h Ff("This)p +Fj( )p Ff(will)p Fj( )p Ff(proba)o(bl)o(y)p Fj( )-7 b +Ff(cause)p Fj( )p Ff(|MAX_REAL|)p Fj( )o Ff(to)p Fj( )g +Ff(have)p Fj( )p Ff(a)p Fj( )p Ff(bad)p Fj( )p Ff(value.)o(")31 +b Fn(\034)i Fi(end)t(l)46 b Fn(\034)249 2928 y Ff("Continuing,)p +Fj( )p Ff(wit)o(h)p Fj( )p Ff(f)o(i)-6 b(nger's)p Fj( )p +Ff(crossed.")21 b Fn(\034)i Fi(end)t(l)36 b Fn(\034)23 +b Fi(end)t(l)14 b Fm(;)28 b Fn(g)0 3028 y Fm(#)p Fk(elif)41 +b Ff(LDF_REAL_DOUBLE)83 3127 y Fk(if)63 b Fm(\()p Fk(sizeof)13 +b Fm(\()p Fk(double)t Fm(\))59 b Fn(6)p Fm(=)g Fk(sizeof)13 +b Fm(\()p Fk(unsigned)53 b(long)h(long)5 b Fm(\)\))50 +b Fn(f)f Fi(c)l(err)72 b Fn(\034)249 3227 y Ff("sizeof\(double\))p +Fj( )o Ff(!=)p Fj( )o Ff(s)-6 b(izeof\(unsigned)p Fj( )p +Ff(l)o(on)o(g)p Fj( )g Ff(long\)!")54 b Fn(\034)g Fi(end)t(l)13 +b Fm(;)46 b Fn(\034)249 3327 y Ff("This)p Fj( )p Ff(will)p +Fj( )p Ff(proba)o(bly)o Fj( )-6 b Ff(cause)p Fj( )p Ff(|MAX_REAL|)o +Fj( )p Ff(t)o(o)p Fj( )g Ff(have)p Fj( )p Ff(a)p Fj( )p +Ff(bad)p Fj( )p Ff(valu)o(e.)o(")40 b Fn(\034)h Fi(end)t(l)55 +b Fn(\034)249 3426 y Ff("Proceding)p Fj( )p Ff(with)p +Fj( )o Ff(fin)o(g)-6 b(ers)p Fj( )p Ff(crossed.")22 b +Fn(\034)h Fi(end)t(l)37 b Fn(\034)23 b Fi(end)t(l)36 +b Fn(\034)23 b Fi(\015ush)11 b Fm(;)27 b Fn(g)0 3526 +y Fm(#)p Fk(endif)83 3625 y(if)41 b Fm(\()p Ff(INVALID_REAL)23 +b Fn(\021)g Ff(MAX_REAL)q Fm(\))41 b Fn(f)166 3725 y +Fi(c)l(err)36 b Fn(\034)24 b Ff("ERROR!)p Fj( )p Ff(In)p +Fj( )p Ff(main)o(\(\))o(:\\n)-7 b(INVALID_REAL)p Fj( )p +Ff(==)p Fj( )p Ff(M)o(AX)o(_)h(REAL.\\n.")q Fm(;)166 +3825 y Fi(c)l(err)36 b Fn(\034)24 b Ff("You)p Fj( )p +Ff(must)p Fj( )p Ff(set)p Fj( )p Ff(M)o(AX)o(_RE)-7 b(AL)p +Fj( )p Ff(to)p Fj( )p Ff(a)p Fj( )p Ff(smaller)p Fj( )p +Ff(v)o(al)o(u)h(e)p Fj( )p Ff(in)p Fj( )p Ff(pspglb.web)p +Fj( )o Ff(")21 b Fn(\034)i Ff(")p Fj( )p Ff(and)p Fj( )p +Ff(recompile.)o(")e Fn(\034)332 3924 y Fi(end)t(l)37 +b Fn(\034)23 b Ff("Exiting)p Fj( )p Ff(with)p Fj( )p +Ff(re)o(tu)o(rn)-6 b Fj( )p Ff(value)p Fj( )p Ff(1.")23 +b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 b Fi(end)t(l)36 +b Fn(\034)23 b Fi(\015ush)11 b Fm(;)166 4024 y Fi(exit)h +Fm(\(1\);)83 4124 y Fn(g)p eop end +%%Page: 473 473 +TeXDict begin 473 472 bop 0 83 a Fn(x)p Fm(1516)139 b +Fl(3DLDFPR)n(G)2431 b(MAIN)24 b(ITSELF)141 b Fm(473)0 +263 y Fk(1516.)94 b Fm(This)29 b(tests)g(whether)g Ff(MAX_REAL)h +Fm(has)f(a)g(reasonable)e(v)-5 b(alue.)41 b(This)29 b(is)g(system)g +(dep)r(enden)n(t,)i(so)d(it)i(ma)n(y)e(need)h(to)0 363 +y(b)r(e)f(\014ddled)g(with)g(when)g(3DLDF)g(is)g(p)r(orted.)36 +b([)p Fh(LDF)26 b(2003.12.08.)p Fm(])83 462 y(TO)h(DO:)h(If)g +Ff(LDF_REAL_DOUBLE)n Fm(,)g Fi(thr)l(eshold)42 b Fm(m)n(ust)28 +b(b)r(e)g(set)f(to)h(a)f(smaller)f(v)-5 b(alue.)37 b([)p +Fh(LDF)26 b(2003.12.08.)p Fm(])0 587 y Fn(h)14 b Fm(Main)35 +b Fl(1514)15 b Fn(i)24 b Fm(+)p Fn(\021)0 686 y Fm(#)p +Fk(ifdef)41 b Ff(WORDS_BIGENDIAN)83 786 y Fn(f)166 886 +y Fi(c)l(err)63 b Fn(\034)49 b Ff("ERROR!)p Fj( )p Ff(In)p +Fj( )p Ff(main\(\))o(:\\)o(n)-6 b(This)p Fj( )p Ff(is)p +Fj( )p Ff(a)p Fj( )p Ff(big-en)o(dia)o(n)g Fj( )p Ff(computer.\\n")48 +b Fn(\034)332 985 y Ff("You)p Fj( )p Ff(will)p Fj( )p +Ff(have)p Fj( )p Ff(t)o(o)p Fj( )p Ff(c)o(h)-6 b(ange)p +Fj( )p Ff(the)p Fj( )p Ff(way)p Fj( )p Ff(MAX)o(_R)o(EA)g(L)p +Fj( )p Ff(is)p Fj( )p Ff(calculated)o(\\n")46 b Fn(\034)332 +1085 y Ff("in)p Fj( )p Ff(pspglb.web)p Fj( )p Ff(a)o(nd)p +Fj( )o Ff(r)-6 b(ecompile.)p Fj( )p Ff(Sorry)p Fj( )o +Ff(ab)o(ou)g(t)p Fj( )p Ff(this.\\n")57 b Fn(\034)332 +1185 y Ff("Exiting)p Fj( )p Ff(with)p Fj( )p Ff(re)o(tur)o(n)-6 +b Fj( )p Ff(value)p Fj( )p Ff(1\\n\\n")22 b Fn(\034)h +Fi(\015ush)10 b Fm(;)166 1284 y Fi(exit)i Fm(\(1\);)83 +1384 y Fn(g)0 1483 y Fm(#)p Fk(endif)83 1583 y Fn(f)166 +1683 y Fk(real)33 b Fi(thr)l(eshold)k Fm(=)22 b(1)c Fn(\001)h +Fm(10)985 1653 y Fg(35)1054 1683 y Fm(;)0 1782 y(#)p +Fk(if)41 b Ff(LDF_REAL_DOUBLE)166 1907 y Fi(c)l(err)c +Fn(\034)24 b Ff("WARNING!)p Fj( )p Ff(In)p Fj( )p Ff(ma)o(in\()o(\))-6 +b(:")27 b Fn(\034)d Fi(end)t(l)38 b Fn(\034)23 b Ff("threshold)p +Fj( )p Ff(must)p Fj( )p Ff(b)o(e)p Fj( )p Ff(s)-7 b(et)p +Fj( )p Ff(to)p Fj( )p Ff(a)p Fj( )p Ff(smaller)p Fj( )p +Ff(v)o(al)o(u)h(e,)p Fj( )p Ff(")26 b Fn(\034)332 2006 +y Ff("because)p Fj( )p Ff(real)p Fj( )p Ff(is)o Fj( )p +Ff(a)p Fj( )o Ff(s)-6 b(ynonym)p Fj( )p Ff(for)p Fj( )p +Ff(doubl)o(e.)o(")59 b Fn(\034)h Fi(end)t(l)75 b Fn(\034)332 +2106 y Ff("Proceding)p Fj( )p Ff(with)p Fj( )o Ff(fin)o(g)-6 +b(ers)p Fj( )p Ff(crossed.")22 b Fn(\034)h Fi(end)t(l)37 +b Fn(\034)23 b Fi(end)t(l)36 b Fn(\034)23 b Fi(\015ush)11 +b Fm(;)0 2206 y(#)p Fk(endif)166 2305 y(if)41 b Fm(\(\()p +Ff(INVALID_REAL)19 b Fn(\000)f Ff(MAX_REAL)q Fm(\))23 +b Fe(>)g Fi(thr)l(eshold)14 b Fm(\))42 b Fn(f)249 2405 +y Fi(c)l(err)58 b Fn(\034)46 b Ff("ERROR!)p Fj( )p Ff(In)p +Fj( )p Ff(main)o(\(\):)o(\\n)-7 b(INVALID_REAL)p Fj( )p +Ff(-)p Fj( )p Ff(MA)o(X_)o(R)h(EAL)p Fj( )p Ff(>)p Fj( )p +Ff(1e35.\\n.")43 b Fn(\034)415 2505 y Ff("INVALID_REAL)p +Fj( )p Ff(==)o Fj( )p Ff(")30 b Fn(\034)j Ff(INVALID_REAL)e +Fn(\034)h Fi(end)t(l)46 b Fn(\034)32 b Ff("MAX_REAL)p +Fj( )p Ff(==)p Fj( )p Ff(")f Fn(\034)i Ff(MAX_REAL)g +Fn(\034)415 2604 y Fi(end)t(l)52 b Fn(\034)38 b Ff("INVALID_REAL)p +Fj( )p Ff(-)p Fj( )p Ff(M)o(AX_)-7 b(REAL)p Fj( )p Ff(==)p +Fj( )p Ff(")39 b Fn(\034)g Fm(\()p Ff(INVALID_REAL)24 +b Fn(\000)g Ff(MAX_REAL)q Fm(\))39 b Fn(\034)415 2704 +y Fi(end)t(l)46 b Fn(\034)33 b Ff("This)p Fj( )p Ff(may)p +Fj( )p Ff(mean)p Fj( )p Ff(th)o(at)o Fj( )-6 b Ff(your)p +Fj( )p Ff(computer)p Fj( )p Ff(re)o(pr)o(es)g(ents)p +Fj( )p Ff(floating)p Fj( )p Ff(p)o(oin)o(t\\)f(n")37 +b Fn(\034)415 2803 y Ff("numbers)p Fj( )p Ff(differe)o(ntl)o(y)-6 +b Fj( )p Ff(from)p Fj( )p Ff(the)p Fj( )p Ff(one)p Fj( )p +Ff(3D)o(LD)o(F)p Fj( )g Ff(was)p Fj( )p Ff(developed)p +Fj( )p Ff(o)o(n.\\)o(n")41 b Fn(\034)415 2903 y Ff("You'll)p +Fj( )p Ff(have)p Fj( )p Ff(to)p Fj( )o Ff(cha)o(n)-6 +b(ge)p Fj( )p Ff(the)p Fj( )p Ff(way)p Fj( )p Ff(MAX_R)o(EA)o(L)p +Fj( )g Ff(is)p Fj( )p Ff(set)p Fj( )p Ff(in)p Fj( )p +Ff(pspgl)o(b.w)o(eb)f(.")37 b Fn(\034)32 b Fi(end)t(l)47 +b Fn(\034)415 3003 y Ff("Exiting)p Fj( )p Ff(with)p Fj( )p +Ff(re)o(tur)o(n)-6 b Fj( )p Ff(value)p Fj( )p Ff(1.")23 +b Fn(\034)g Fi(end)t(l)37 b Fn(\034)23 b Fi(end)t(l)37 +b Fn(\034)23 b Fi(\015ush)10 b Fm(;)249 3102 y Fi(exit)i +Fm(\(1\);)166 3202 y Fn(g)83 3302 y(g)0 3501 y Fk(1517.)0 +3625 y Fn(h)i Fm(Main)35 b Fl(1514)15 b Fn(i)24 b Fm(+)p +Fn(\021)83 3725 y(h)14 b Fm(Pro)r(cess)26 b(command)h(line)h(options)35 +b Fl(1507)15 b Fn(i)p Fm(;)0 3924 y Fk(1518.)p 0 4000 +1779 4 v 1874 4033 a(Log)p 2122 4000 V 83 4173 a Fm([)p +Fh(LDF)25 b(2003.08.29.)p Fm(])63 b(Changed)28 b(the)i(string)f(that's) +g(passed)g(to)g Fi(initialize)p 2392 4173 26 4 v 32 w(io)11 +b Fm(\()j(\))29 b(as)g(the)h(name)f(of)g(the)h(input)g(\014le.)42 +b(It's)29 b(a)0 4273 y(dumm)n(y)d(name,)f(since)g(I'v)n(e)g(c)n(hanged) +g Fi(initialize)p 1532 4273 V 32 w(io)10 b Fm(\()k(\))26 b(to)r(da)n(y)-7 b(,)25 b(so)g(that)h(no)f Fi(in)p 2455 -3252 V 31 w(str)l(e)l(am)35 b Fm(isn't)26 b(op)r(ened.)36 -b(Also,)26 b(commen)n(ted-)0 3351 y(out)i(the)g(line)f(where)g -Fi(in)p 764 3351 V 31 w(str)l(e)l(am)38 b Fm(is)27 b(closed.)83 -3451 y([)p Fh(LDF)e(2003.11.28.)p Fm(])52 b(Remo)n(v)n(ed)17 -b(T)1125 3466 y(E)1172 3451 y(X)h(text)h(ab)r(o)n(v)n(e,)g(that)g +4273 V 31 w(str)l(e)l(am)35 b Fm(isn't)26 b(op)r(ened.)36 +b(Also,)26 b(commen)n(ted-)0 4373 y(out)i(the)g(line)f(where)g +Fi(in)p 764 4373 V 31 w(str)l(e)l(am)38 b Fm(is)27 b(closed.)83 +4472 y([)p Fh(LDF)e(2003.11.28.)p Fm(])52 b(Remo)n(v)n(ed)17 +b(T)1125 4487 y(E)1172 4472 y(X)h(text)h(ab)r(o)n(v)n(e,)g(that)g (referred)e(to)h(the)h(precision)e(used)i(when)f(prin)n(ting)g(out)g -Ff(VERSION_3DLDF)o Fm(.)p 4126 3472 42 84 v 0 3551 a(This)28 +Ff(VERSION_3DLDF)o Fm(.)p 4126 4493 42 84 v 0 4572 a(This)28 b(is)f(no)g(longer)g(relev)-5 b(an)n(t,)27 b(b)r(ecause)g Ff(VERSION_3DLDF)f Fm(is)i(no)n(w)f(a)g Fk(string)33 -b Fm(rather)27 b(than)g(a)h Fk(real)t Fm(.)p 0 3643 1678 -4 v 1773 3675 a Fk(End)k(Log)p 2222 3643 V 0 3800 a Fn(h)14 -b Fm(Main)35 b Fl(1509)15 b Fn(i)24 b Fm(+)p Fn(\021)83 -3899 y(h)14 b Fm(Prin)n(t)27 b(v)n(ersion,)f(cop)n(yrigh)n(t,)g(and)i -(license)f(information)34 b Fl(1506)15 b Fn(i)p Fm(;)p -eop end -%%Page: 469 469 -TeXDict begin 469 468 bop 0 83 a Fn(x)p Fm(1511)139 b -Fl(3DLDFPR)n(G)2427 b(MAIN)28 b(ITSELF)141 b Fm(469)0 -263 y Fk(1511.)0 388 y Fn(h)14 b Fm(Main)35 b Fl(1509)15 +b Fm(rather)27 b(than)g(a)h Fk(real)t Fm(.)p 0 4664 3900 +4 v 0 4821 a Fn(h)14 b Fm(Main)35 b Fl(1514)15 b Fn(i)24 +b Fm(+)p Fn(\021)83 4921 y(h)14 b Fm(Prin)n(t)27 b(v)n(ersion,)f(cop)n +(yrigh)n(t,)g(and)i(license)f(information)34 b Fl(1511)15 +b Fn(i)p Fm(;)p eop end +%%Page: 474 474 +TeXDict begin 474 473 bop 0 83 a Fm(474)140 b Fl(MAIN)27 +b(ITSELF)2427 b(3DLDFPR)n(G)142 b Fn(x)p Fm(1519)0 263 +y Fk(1519.)0 388 y Fn(h)14 b Fm(Main)35 b Fl(1514)15 b Fn(i)24 b Fm(+)p Fn(\021)83 487 y Fi(initialize)p 398 487 26 4 v 32 w(io)11 b Fm(\()p Ff("3DLDFin.ldf")o Fe(;)j Ff("3DLDFput.mp")o Fe(;)g Ff("3DLDFput.tex")n Fe(;)g Fi(ar)l(gv)g Fm([0]\);)83 587 y Fk(Color)e Fm(::)c Fi(initialize)p 695 587 V 33 w(c)l(olors)k Fm(\()i(\);)83 686 y Fn(h)g -Fm(Actions)28 b(in)g(main)35 b Fl(1500)15 b Fn(i)p Fm(;)83 +Fm(Actions)28 b(in)g(main)35 b Fl(1505)15 b Fn(i)p Fm(;)83 786 y Fi(write)p 269 786 V 31 w(fo)l(oters)d Fm(\()i(\);)0 886 y(#)p Fk(if)41 b Fm(0)83 985 y Fi(in)p 160 985 V 31 w(str)l(e)l(am)10 b Fe(:)p Fi(close)h Fm(\()j(\);)0 @@ -39462,13 +39562,13 @@ b(on)p Fj( )p Ff(")25 b Fn(\034)e Ff(VERSION_3DLDF)f Fn(\034)i Ff(".\\n\\n")g Fn(\034)f Fi(\015ush)10 b Fm(;)83 1583 y Fn(g)83 1683 y Fk(return)33 b Fm(\(0\);)k Fn(g)0 -1882 y Fk(1512.)94 b(Putting)32 b(Main)f(together.)95 +1882 y Fk(1520.)94 b(Putting)32 b(Main)f(together.)95 b Fm(This)27 b(is)h(what's)f(compiled.)83 2006 y Fn(h)14 b Fm(Include)28 b(\014les)35 b Fl(11)15 b Fn(i)83 2106 y(h)f Fm(V)-7 b(ersion)27 b(con)n(trol)f(iden)n(ti\014er)35 -b Fl(10)15 b Fn(i)83 2206 y(h)f Fm(Main)35 b Fl(1509)15 -b Fn(i)0 2305 y Fm(#)p Fk(endif)0 2505 y(1513.)94 b(App)s(endices.)0 -2704 y(1514.)g(References.)0 2853 y Fm(Cundy)-7 b(,)28 +b Fl(10)15 b Fn(i)83 2206 y(h)f Fm(Main)35 b Fl(1514)15 +b Fn(i)0 2305 y Fm(#)p Fk(endif)0 2505 y(1521.)94 b(App)s(endices.)0 +2704 y(1522.)g(References.)0 2853 y Fm(Cundy)-7 b(,)28 b(H.)g(Mart)n(yn)f(and)g(A.P)-7 b(.)28 b(Rollet.)41 b Fi(Mathematic)l(al)30 b(Mo)l(dels)p Fm(.)43 b(Oxford)27 b(1961.)39 b(Oxford)27 b(Univ)n(ersit)n(y)f(Press.)236 @@ -39508,9 +39608,9 @@ b(.)41 b Fi(The)29 b Fk(CWEB)e Fi(System)g(of)i(Structur)l(e)l(d)d(Do)l (cumentation)p Fm(.)199 5219 y(V)-7 b(ersion)27 b(3.64|F)-7 b(ebruary)25 b(2002.)p eop end -%%Page: 470 470 -TeXDict begin 470 469 bop 0 83 a Fm(470)140 b Fl(REFERENCES)2418 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1514)0 263 y(Salomon,)27 +%%Page: 475 475 +TeXDict begin 475 474 bop 0 83 a Fn(x)p Fm(1522)139 b +Fl(3DLDFPR)n(G)2419 b(REFERENCES)141 b Fm(475)0 263 y(Salomon,)27 b(Da)n(vid.)41 b Fi(Computer)28 b(Gr)l(aphics)i(and)e(Ge)l(ometric)h (Mo)l(deling)p Fm(.)43 b(Berlin)27 b(1999.)40 b(Springer-V)-7 b(erlag.)199 363 y(ISBN:)28 b(0-387-98682-0.)0 512 y(Sto)r(er,)f @@ -39526,7 +39626,7 @@ h Fh(C)1872 1102 y Fg(+)-8 b(+)1970 1110 y Fm(.)42 b(Reading,)27 b(Massac)n(h)n(usetts)f(1994.)39 b(Addison-W)-7 b(esley)199 1209 y(Publishing)27 b(Compan)n(y)-7 b(.)199 1309 y(ISBN)28 -b(0-201-54330-3.)0 1508 y Fk(1515.)94 b(GNU)38 b(F)-8 +b(0-201-54330-3.)0 1508 y Fk(1523.)94 b(GNU)38 b(F)-8 b(ree)37 b(Do)s(cumen)m(tation)g(License.)95 b Fm(The)32 b(GNU)i(F)-7 b(ree)32 b(Do)r(cumen)n(tation)g(License,)i(whic)n(h)e (follo)n(ws,)0 1608 y(applies)27 b(to)h(this)g(do)r(cumen)n(t.)1326 @@ -39597,11 +39697,11 @@ b(ject)37 b(\(or)f(to)h(related)f(matters\))h(and)f(con)n(tains)g (nothing)h(that)g(could)f(fall)h(directly)g(within)g(that)g(o)n(v)n (erall)e(sub)5 b(ject.)p eop end -%%Page: 471 471 -TeXDict begin 471 470 bop 0 83 a Fn(x)p Fm(1515)139 b -Fl(3DLDFPR)n(G)1516 b(GNU)24 b(FREE)f(DOCUMENT)-6 b(A)g(TION)23 -b(LICENSE)141 b Fm(471)0 263 y(\(Th)n(us,)37 b(if)e(the)g(Do)r(cumen)n -(t)g(is)g(in)g(part)f(a)g(textb)r(o)r(ok)h(of)f(mathematics,)j(a)d +%%Page: 476 476 +TeXDict begin 476 475 bop 0 83 a Fm(476)140 b Fl(GNU)23 +b(FREE)h(DOCUMENT)-6 b(A)g(TION)22 b(LICENSE)1516 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(1523)0 263 y(\(Th)n(us,)37 b(if)e(the)g(Do)r(cumen)n(t)g +(is)g(in)g(part)f(a)g(textb)r(o)r(ok)h(of)f(mathematics,)j(a)d (Secondary)f(Section)i(ma)n(y)f(not)g(explain)h(an)n(y)0 363 y(mathematics.\))40 b(The)28 b(relationship)g(could)g(b)r(e)h(a)f (matter)h(of)f(historical)f(connection)h(with)h(the)g(sub)5 @@ -39712,10 +39812,10 @@ b(If)40 b(y)n(ou)0 5294 y(distribute)28 b(a)f(large)f(enough)h(n)n(um)n (b)r(er)h(of)f(copies)g(y)n(ou)g(m)n(ust)h(also)e(follo)n(w)h(the)h (conditions)f(in)h(section)f(3.)p eop end -%%Page: 472 472 -TeXDict begin 472 471 bop 0 83 a Fm(472)140 b Fl(GNU)23 -b(FREE)h(DOCUMENT)-6 b(A)g(TION)22 b(LICENSE)1516 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(1515)83 263 y(Y)-7 b(ou)28 b(ma)n(y)f(also)f(lend)i +%%Page: 477 477 +TeXDict begin 477 476 bop 0 83 a Fn(x)p Fm(1523)139 b +Fl(3DLDFPR)n(G)1516 b(GNU)24 b(FREE)f(DOCUMENT)-6 b(A)g(TION)23 +b(LICENSE)141 b Fm(477)83 263 y(Y)-7 b(ou)28 b(ma)n(y)f(also)f(lend)i (copies,)f(under)g(the)h(same)f(conditions)h(stated)f(ab)r(o)n(v)n(e,)f (and)i(y)n(ou)f(ma)n(y)f(publicly)i(displa)n(y)f(copies.)1393 462 y(3.)37 b(COPYING)27 b(IN)h(QUANTITY)83 662 y(If)k(y)n(ou)e @@ -39833,12 +39933,12 @@ b(These)36 b(ma)n(y)f(b)r(e)h(placed)g(in)g(the)h(\\History")d (section.)62 b(Y)-7 b(ou)36 b(ma)n(y)f(omit)h(a)g(net)n(w)n(ork)e(lo)r (cation)h(for)h(a)g(w)n(ork)p eop end -%%Page: 473 473 -TeXDict begin 473 472 bop 0 83 a Fn(x)p Fm(1515)139 b -Fl(3DLDFPR)n(G)1516 b(GNU)24 b(FREE)f(DOCUMENT)-6 b(A)g(TION)23 -b(LICENSE)141 b Fm(473)0 263 y(that)29 b(w)n(as)e(published)i(at)f -(least)g(four)g(y)n(ears)f(b)r(efore)h(the)h(Do)r(cumen)n(t)g(itself,)g -(or)f(if)h(the)f(original)f(publisher)h(of)h(the)g(v)n(ersion)0 +%%Page: 478 478 +TeXDict begin 478 477 bop 0 83 a Fm(478)140 b Fl(GNU)23 +b(FREE)h(DOCUMENT)-6 b(A)g(TION)22 b(LICENSE)1516 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(1523)0 263 y(that)29 b(w)n(as)e(published)i(at)f(least)g +(four)g(y)n(ears)f(b)r(efore)h(the)h(Do)r(cumen)n(t)g(itself,)g(or)f +(if)h(the)f(original)f(publisher)h(of)h(the)g(v)n(ersion)0 363 y(it)j(refers)e(to)i(giv)n(es)e(p)r(ermission.)48 b(K.)31 b(F)-7 b(or)31 b(an)n(y)g(section)g(En)n(titled)h(\\Ac)n(kno)n (wledgemen)n(ts")d(or)h(\\Dedications",)i(Preserv)n(e)0 @@ -39948,15 +40048,15 @@ (follo)n(w)f(this)g(License)h(in)f(all)h(other)0 5294 y(resp)r(ects)e(regarding)f(v)n(erbatim)g(cop)n(ying)h(of)g(that)h(do)r (cumen)n(t.)p eop end -%%Page: 474 474 -TeXDict begin 474 473 bop 0 83 a Fm(474)140 b Fl(GNU)23 -b(FREE)h(DOCUMENT)-6 b(A)g(TION)22 b(LICENSE)1516 b(3DLDFPR)n(G)142 -b Fn(x)p Fm(1515)942 263 y(7.)36 b(A)n(GGREGA)-7 b(TION)28 -b(WITH)g(INDEPENDENT)g(W)n(ORKS)83 459 y(A)21 b(compilation)f(of)g(the) -h(Do)r(cumen)n(t)g(or)e(its)i(deriv)-5 b(ativ)n(es)19 -b(with)i(other)e(separate)g(and)i(indep)r(enden)n(t)g(do)r(cumen)n(ts)f -(or)g(w)n(orks,)0 559 y(in)i(or)g(on)f(a)h(v)n(olume)g(of)g(a)g -(storage)e(or)h(distribution)h(medium,)i(is)e(called)g(an)g +%%Page: 479 479 +TeXDict begin 479 478 bop 0 83 a Fn(x)p Fm(1523)139 b +Fl(3DLDFPR)n(G)1516 b(GNU)24 b(FREE)f(DOCUMENT)-6 b(A)g(TION)23 +b(LICENSE)141 b Fm(479)942 263 y(7.)36 b(A)n(GGREGA)-7 +b(TION)28 b(WITH)g(INDEPENDENT)g(W)n(ORKS)83 459 y(A)21 +b(compilation)f(of)g(the)h(Do)r(cumen)n(t)g(or)e(its)i(deriv)-5 +b(ativ)n(es)19 b(with)i(other)e(separate)g(and)i(indep)r(enden)n(t)g +(do)r(cumen)n(ts)f(or)g(w)n(orks,)0 559 y(in)i(or)g(on)f(a)h(v)n(olume) +g(of)g(a)g(storage)e(or)h(distribution)h(medium,)i(is)e(called)g(an)g (\\aggregate")c(if)23 b(the)f(cop)n(yrigh)n(t)f(resulting)g(from)0 658 y(the)31 b(compilation)g(is)g(not)g(used)g(to)g(limit)h(the)f (legal)g(righ)n(ts)f(of)h(the)g(compilation's)f(users)h(b)r(ey)n(ond)f @@ -40048,10 +40148,10 @@ b(ree)27 b(Do)r(cumen)n(tation)g(License,)f(V)-7 b(ersion)26 b(1.2)g(or)g(an)n(y)g(later)g(v)n(ersion)f(published)i(b)n(y)g(the)p eop end -%%Page: 475 475 -TeXDict begin 475 474 bop 0 83 a Fn(x)p Fm(1515)139 b -Fl(3DLDFPR)n(G)1516 b(GNU)24 b(FREE)f(DOCUMENT)-6 b(A)g(TION)23 -b(LICENSE)141 b Fm(475)0 263 y(F)-7 b(ree)30 b(Soft)n(w)n(are)e(F)-7 +%%Page: 480 480 +TeXDict begin 480 479 bop 0 83 a Fm(480)140 b Fl(GNU)23 +b(FREE)h(DOCUMENT)-6 b(A)g(TION)22 b(LICENSE)1516 b(3DLDFPR)n(G)142 +b Fn(x)p Fm(1523)0 263 y(F)-7 b(ree)30 b(Soft)n(w)n(are)e(F)-7 b(oundation;)31 b(with)g(no)f(In)n(v)-5 b(arian)n(t)28 b(Sections,)j(no)f(F)-7 b(ron)n(t-Co)n(v)n(er)27 b(T)-7 b(exts,)30 b(and)g(no)g(Bac)n(k-Co)n(v)n(er)d(T)-7 b(exts.)44 @@ -40076,11 +40176,11 @@ (license,)j(suc)n(h)e(as)g(the)i(GNU)f(General)f(Public)h(License,)h (to)f(p)r(ermit)0 1459 y(their)28 b(use)f(in)h(free)f(soft)n(w)n(are.)0 1583 y Fn(h)14 b Fm(GNU)28 b(F)-7 b(ree)28 b(Do)r(cumen)n(tation)f -(License)35 b Fl(1515)15 b Fn(i)23 b(\021)189 b Fe(=)p +(License)35 b Fl(1523)15 b Fn(i)23 b(\021)189 b Fe(=)p Fn(\003)41 b Fm(This)27 b(section)g(con)n(tains)g(no)g Fh(C)2884 1575 y Fg(+)-8 b(+)3010 1583 y Fm(co)r(de.)51 b Fn(\003)p Fe(=)0 1691 y Fl(This)23 b(co)r(de)i(is)e(cited)h(in)g -(section)g(1.)0 1890 y Fk(1516.)94 b(GNU)27 b(General)g(Public)f +(section)g(1.)0 1890 y Fk(1524.)94 b(GNU)27 b(General)g(Public)f (License.)95 b Fm(The)23 b(GNU)h(General)f(Public)g(License,)g(whic)n (h)h(follo)n(ws,)f(applies)g(to)g(the)0 1990 y(program)j(3DLDF)i (describ)r(ed)f(in)h(this)g(do)r(cumen)n(t.)1264 2189 @@ -40148,12 +40248,12 @@ (problems)g(in)n(tro)r(duced)h(b)n(y)g(others)f(will)0 5327 y(not)f(re\015ect)f(on)g(the)h(original)e(authors')h(reputations.) p eop end -%%Page: 476 476 -TeXDict begin 476 475 bop 0 83 a Fm(476)140 b Fl(GNU)23 -b(GENERAL)h(PUBLIC)g(LICENSE)1739 b(3DLDFPR)n(G)142 b -Fn(x)p Fm(1516)83 263 y(Finally)-7 b(,)39 b(an)n(y)e(free)f(program)f -(is)i(threatened)g(constan)n(tly)f(b)n(y)g(soft)n(w)n(are)g(paten)n -(ts.)64 b(W)-7 b(e)38 b(wish)f(to)g(a)n(v)n(oid)e(the)i(danger)0 +%%Page: 481 481 +TeXDict begin 481 480 bop 0 83 a Fn(x)p Fm(1524)139 b +Fl(3DLDFPR)n(G)1740 b(GNU)23 b(GENERAL)h(PUBLIC)g(LICENSE)141 +b Fm(481)83 263 y(Finally)-7 b(,)39 b(an)n(y)e(free)f(program)f(is)i +(threatened)g(constan)n(tly)f(b)n(y)g(soft)n(w)n(are)g(paten)n(ts.)64 +b(W)-7 b(e)38 b(wish)f(to)g(a)n(v)n(oid)e(the)i(danger)0 363 y(that)30 b(redistributors)f(of)h(a)g(free)g(program)e(will)i (individually)g(obtain)g(paten)n(t)g(licenses,)g(in)h(e\013ect)f (making)g(the)g(program)0 462 y(proprietary)-7 b(.)35 @@ -40257,10 +40357,10 @@ (the)i(righ)n(t)f(to)h(con)n(trol)e(the)i(distribution)g(of)f(deriv)-5 b(ativ)n(e)33 b(or)g(collectiv)n(e)g(w)n(orks)0 5394 y(based)27 b(on)g(the)h(Program.)p eop end -%%Page: 477 477 -TeXDict begin 477 476 bop 0 83 a Fn(x)p Fm(1516)139 b -Fl(3DLDFPR)n(G)1740 b(GNU)23 b(GENERAL)h(PUBLIC)g(LICENSE)141 -b Fm(477)83 263 y(In)33 b(addition,)h(mere)e(aggregation)e(of)j +%%Page: 482 482 +TeXDict begin 482 481 bop 0 83 a Fm(482)140 b Fl(GNU)23 +b(GENERAL)h(PUBLIC)g(LICENSE)1739 b(3DLDFPR)n(G)142 b +Fn(x)p Fm(1524)83 263 y(In)33 b(addition,)h(mere)e(aggregation)e(of)j (another)f(w)n(ork)f(not)i(based)f(on)h(the)g(Program)d(with)k(the)f (Program)d(\(or)i(with)h(a)0 363 y(w)n(ork)24 b(based)g(on)h(the)g (Program\))e(on)i(a)f(v)n(olume)h(of)g(a)f(storage)f(or)i(distribution) @@ -40369,19 +40469,19 @@ (only)e(w)n(a)n(y)g(y)n(ou)g(could)h(satisfy)f(b)r(oth)i(it)f(and)g (this)g(License)f(w)n(ould)h(b)r(e)g(to)0 5244 y(refrain)g(en)n(tirely) g(from)g(distribution)h(of)f(the)h(Program.)p eop end -%%Page: 478 478 -TeXDict begin 478 477 bop 0 83 a Fm(478)140 b Fl(GNU)23 -b(GENERAL)h(PUBLIC)g(LICENSE)1739 b(3DLDFPR)n(G)142 b -Fn(x)p Fm(1516)83 263 y(If)21 b(an)n(y)e(p)r(ortion)g(of)i(this)f -(section)g(is)g(held)g(in)n(v)-5 b(alid)20 b(or)f(unenforceable)g -(under)h(an)n(y)g(particular)f(circumstance,)h(the)h(balance)0 -363 y(of)28 b(the)g(section)f(is)g(in)n(tended)h(to)g(apply)f(and)g -(the)h(section)g(as)f(a)g(whole)g(is)g(in)n(tended)h(to)g(apply)f(in)h -(other)f(circumstances.)83 512 y(It)j(is)g(not)g(the)h(purp)r(ose)e(of) -h(this)h(section)e(to)h(induce)h(y)n(ou)e(to)h(infringe)g(an)n(y)f -(paten)n(ts)h(or)f(other)g(prop)r(ert)n(y)g(righ)n(t)h(claims)0 -612 y(or)e(to)g(con)n(test)g(v)-5 b(alidit)n(y)28 b(of)h(an)n(y)e(suc)n -(h)h(claims;)h(this)g(section)f(has)f(the)i(sole)f(purp)r(ose)g(of)g +%%Page: 483 483 +TeXDict begin 483 482 bop 0 83 a Fn(x)p Fm(1524)139 b +Fl(3DLDFPR)n(G)1740 b(GNU)23 b(GENERAL)h(PUBLIC)g(LICENSE)141 +b Fm(483)83 263 y(If)21 b(an)n(y)e(p)r(ortion)g(of)i(this)f(section)g +(is)g(held)g(in)n(v)-5 b(alid)20 b(or)f(unenforceable)g(under)h(an)n(y) +g(particular)f(circumstance,)h(the)h(balance)0 363 y(of)28 +b(the)g(section)f(is)g(in)n(tended)h(to)g(apply)f(and)g(the)h(section)g +(as)f(a)g(whole)g(is)g(in)n(tended)h(to)g(apply)f(in)h(other)f +(circumstances.)83 512 y(It)j(is)g(not)g(the)h(purp)r(ose)e(of)h(this)h +(section)e(to)h(induce)h(y)n(ou)e(to)h(infringe)g(an)n(y)f(paten)n(ts)h +(or)f(other)g(prop)r(ert)n(y)g(righ)n(t)h(claims)0 612 +y(or)e(to)g(con)n(test)g(v)-5 b(alidit)n(y)28 b(of)h(an)n(y)e(suc)n(h)h +(claims;)h(this)g(section)f(has)f(the)i(sole)f(purp)r(ose)g(of)g (protecting)g(the)h(in)n(tegrit)n(y)e(of)i(the)0 711 y(free)c(soft)n(w)n(are)e(distribution)i(system,)h(whic)n(h)e(is)h (implemen)n(ted)h(b)n(y)f(public)g(license)g(practices.)35 @@ -40474,10 +40574,10 @@ (HOLDER)e(OR)h(OTHER)f(P)-7 b(AR)g(TY)22 b(HAS)g(BEEN)f(AD)n(VISED)i (OF)e(THE)h(POSSIBILITY)0 5244 y(OF)27 b(SUCH)i(D)n(AMA)n(GES.)p eop end -%%Page: 479 479 -TeXDict begin 479 478 bop 0 83 a Fn(x)p Fm(1516)139 b -Fl(3DLDFPR)n(G)1740 b(GNU)23 b(GENERAL)h(PUBLIC)g(LICENSE)141 -b Fm(479)1229 263 y(END)28 b(OF)f(TERMS)h(AND)g(CONDITIONS)1014 +%%Page: 484 484 +TeXDict begin 484 483 bop 0 83 a Fm(484)140 b Fl(GNU)23 +b(GENERAL)h(PUBLIC)g(LICENSE)1739 b(3DLDFPR)n(G)142 b +Fn(x)p Fm(1524)1229 263 y(END)28 b(OF)f(TERMS)h(AND)g(CONDITIONS)1014 462 y(Ho)n(w)f(to)h(Apply)g(These)f(T)-7 b(erms)27 b(to)h(Y)-7 b(our)27 b(New)h(Programs)83 612 y(If)i(y)n(ou)f(dev)n(elop)g(a)g(new)h (program,)e(and)i(y)n(ou)f(w)n(an)n(t)g(it)h(to)g(b)r(e)g(of)g(the)g @@ -40552,11 +40652,11 @@ (w)n(an)n(t)h(to)g(do,)h(use)f(the)h(GNU)g(Library)e(General)g(Public)h (License)g(instead)g(of)h(this)0 4447 y(License.)0 4572 y Fn(h)14 b Fm(GNU)28 b(General)f(Public)h(License)35 -b Fl(1516)15 b Fn(i)23 b(\021)189 b Fe(=)p Fn(\003)40 +b Fl(1524)15 b Fn(i)23 b(\021)189 b Fe(=)p Fn(\003)40 b Fm(This)28 b(section)f(con)n(tains)f(no)i Fh(C)2688 4564 y Fg(+)-8 b(+)2814 4572 y Fm(co)r(de.)50 b Fn(\003)p Fe(=)0 4680 y Fl(This)23 b(co)r(de)i(is)e(cited)h(in)g(section)g(1.)0 -4879 y Fk(1517.)94 b(Index.)h Fm([)p Fh(LDF)26 b(2002.10.09.)p +4879 y Fk(1525.)94 b(Index.)h Fm([)p Fh(LDF)26 b(2002.10.09.)p Fm(])66 b(The)33 b(w)n(a)n(y)e(CWEA)-9 b(VE)33 b(handles)f(indexing)h (is)f(not)h(ideal)g(for)f Fh(C)3370 4871 y Fg(+)-8 b(+)3468 4879 y Fm(.)53 b(It)33 b(do)r(esn't)0 4979 y(index)22 @@ -40573,9 +40673,9 @@ (na)-9 b(\177)-32 b(\020v)n(e)35 b(and)i(do)r(esn't)h(ignore)e(the)h(c) n(haracters)e(of)i(the)h(T)2954 5392 y(E)3000 5377 y(X)f(macros)f(that) h(I)h(use)f(for)p eop end -%%Page: 480 480 -TeXDict begin 480 479 bop 0 83 a Fm(480)140 b Fl(INDEX)2670 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1517)0 263 y(formatting)32 +%%Page: 485 485 +TeXDict begin 485 484 bop 0 83 a Fn(x)p Fm(1525)139 b +Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(485)0 263 y(formatting)32 b(the)i(index)f(en)n(tries,)g(so)g(the)g(order)e(of)i(the)h(en)n(tries) e(is)h(a)f(bit)i(p)r(eculiar.)52 b(F)-7 b(or)32 b(example,)i Fj(\\cfunc{z})c Fm(w)n(ould)0 363 y(come)c(b)r(efore)f @@ -40597,40 +40697,40 @@ b(b)r(e)h(p)r(ossible)f(to)h(\014x)f(this,)h(but)h(sligh)n(tly)e(tric)n (ky)-7 b(.)36 b(TO)27 b(DO:)h(Fix)g(this!)39 1209 y Fk(BUG)39 b(FIX)p Fm(:)84 b(15,)35 b(150,)f(173,)g(404,)g(549,)g(656,)g(658,)166 -1309 y(828,)41 b(1343,)f(1470.)0 1408 y Fk(!!)p Fm(:)83 +1309 y(828,)41 b(1348,)f(1475.)0 1408 y Fk(!!)p Fm(:)83 b(56,)30 b(60,)g(111,)f(112,)g(114,)g(122,)g(130,)g(148,)g(162,)h(163,) 166 1508 y(181,)24 b(311,)f(404,)h(436,)f(458,)h(502,)g(503,)f(515,)h -(528,)f(685,)166 1608 y(791,)28 b(800,)f(863,)h(874,)f(893,)h(923,)g -(1077,)f(1115,)g(1229,)166 1707 y(1278,)e(1324,)g(1393,)g(1418,)g -(1427,)g(1441,)g(1457,)g(1486.)0 1807 y Fk(!!)75 b(BUG)p +(528,)f(685,)166 1608 y(791,)28 b(800,)f(863,)h(874,)f(896,)h(926,)g +(1080,)f(1120,)g(1234,)166 1707 y(1283,)e(1329,)g(1398,)g(1423,)g +(1432,)g(1446,)g(1462,)g(1491.)0 1807 y Fk(!!)75 b(BUG)p Fm(:)83 b(379,)38 b(537,)g(677.)0 1907 y Fk(!!)43 b(KLUDGE)p -Fm(:)83 b(16,)27 b(265,)g(272,)f(401,)g(431,)g(1459,)g(1509.)0 +Fm(:)83 b(16,)27 b(265,)g(272,)f(401,)g(431,)g(1464,)g(1514.)0 2007 y Fk(!!)79 b(LOOK)44 b(UP)p Fm(:)84 b(397.)0 2107 -y Fk(!!)g(NOTE)p Fm(:)f(1275.)0 2207 y Fk(!!)62 b(TO)39 +y Fk(!!)g(NOTE)p Fm(:)f(1280.)0 2207 y Fk(!!)62 b(TO)39 b(DO)p Fm(:)83 b(5,)34 b(6,)h(16,)f(21,)f(29,)h(31,)g(33,)g(138,)g (139,)166 2306 y(181,)g(222,)g(264,)g(354,)f(379,)h(395,)g(397,)g(400,) g(401,)166 2406 y(409,)g(431,)g(461,)g(463,)f(465,)h(547,)g(556,)g (557,)g(591,)166 2506 y(603,)g(604,)g(643,)g(654,)f(686,)h(708,)g(720,) -g(723,)g(742,)166 2605 y(914,)c(920,)f(945,)h(947,)g(949,)f(964,)h -(992,)g(1021,)f(1056,)166 2705 y(1084,)c(1128,)g(1158,)g(1160,)g(1169,) -g(1221,)g(1225,)g(1226,)166 2804 y(1257,)g(1278,)g(1281,)g(1289,)g -(1298,)g(1323,)g(1374,)g(1393,)166 2904 y(1424,)g(1426,)g(1441,)g -(1445,)g(1451,)g(1454,)g(1457,)g(1459,)166 3004 y(1472,)37 -b(1478,)f(1497,)h(1517.)0 3104 y Fk(!!)75 b(UR)m(GENT)p -Fm(:)84 b(26,)38 b(656.)0 3203 y Fk(??)p Fm(:)83 b(16,)26 -b(114,)e(199,)h(310,)g(311,)g(486,)g(494,)g(546,)g(644,)f(656,)166 -3303 y(667,)31 b(677,)h(686,)f(792,)g(839,)h(1033,)f(1034.)0 +g(723,)g(742,)166 2605 y(917,)c(923,)f(948,)h(950,)g(952,)f(967,)h +(995,)g(1024,)f(1059,)166 2705 y(1082,)c(1089,)g(1133,)g(1163,)g(1165,) +g(1174,)g(1226,)g(1230,)166 2804 y(1231,)g(1262,)g(1283,)g(1286,)g +(1294,)g(1303,)g(1328,)g(1379,)166 2904 y(1398,)g(1429,)g(1431,)g +(1446,)g(1450,)g(1456,)g(1459,)g(1462,)166 3004 y(1464,)31 +b(1477,)g(1483,)g(1502,)g(1516,)g(1525.)0 3104 y Fk(!!)75 +b(UR)m(GENT)p Fm(:)84 b(26,)38 b(656.)0 3203 y Fk(??)p +Fm(:)83 b(114,)33 b(199,)f(310,)g(311,)h(486,)f(494,)g(546,)g(644,)h +(656,)166 3303 y(667,)e(677,)h(686,)f(792,)g(839,)h(1036,)f(1037.)0 3403 y Fk(Circle)t Fm(::)p Fi(Cir)l(cle)12 b Fm(:)83 -b(1234,)37 b(1237.)0 3503 y Fk(Circle)t Fm(::)p Fi(cr)l(e)l(ate)p +b(1239,)37 b(1242.)0 3503 y Fk(Circle)t Fm(::)p Fi(cr)l(e)l(ate)p 514 3503 26 4 v 31 w(new)p 685 3503 V 31 w(cir)l(cle)11 -b Fm(:)83 b(1242,)32 b(1244.)0 3603 y Fk(Circle)t Fm(::)p -Fi(get)p 407 3603 V 31 w(diameter)14 b Fm(:)83 b(1256.)0 +b Fm(:)83 b(1247,)32 b(1249.)0 3603 y Fk(Circle)t Fm(::)p +Fi(get)p 407 3603 V 31 w(diameter)14 b Fm(:)83 b(1261.)0 3702 y Fk(Circle)t Fm(::)p Fi(get)p 407 3702 V 31 w(r)l(adius)12 -b Fm(:)83 b(1255.)0 3802 y Fk(Circle)t Fm(::)p Fi(interse)l(ction)p -724 3802 V 31 w(p)l(oints)11 b Fm(:)84 b(1258,)27 b(1260,)h(1262.)0 +b Fm(:)83 b(1260.)0 3802 y Fk(Circle)t Fm(::)p Fi(interse)l(ction)p +724 3802 V 31 w(p)l(oints)11 b Fm(:)84 b(1263,)27 b(1265,)h(1267.)0 3902 y Fk(Circle)t Fm(::)p Fi(is)p 362 3902 V 31 w(cir)l(cular)14 -b Fm(:)83 b(1253.)0 4002 y Fk(Circle)t Fm(::)p Fi(set)12 -b Fm(:)83 b(1239.)0 4102 y Fk(Color)t Fm(::)p Fi(Color)15 +b Fm(:)83 b(1258.)0 4002 y Fk(Circle)t Fm(::)p Fi(set)12 +b Fm(:)83 b(1244.)0 4102 y Fk(Color)t Fm(::)p Fi(Color)15 b Fm(:)83 b(58,)36 b(60,)g(63,)h(68.)0 4202 y Fk(Color)t Fm(::)p Fi(cr)l(e)l(ate)p 497 4202 V 31 w(new)p 668 4202 V 30 w(c)l(olor)15 b Fm(:)83 b(72.)0 4302 y Fk(Color)t @@ -40661,57 +40761,57 @@ w(name)10 b Fm(:)83 b(82.)2033 1409 y Fk(Color)t Fm(::)p Fi(set)12 b Fm(:)83 b(65,)41 b(70.)2033 1508 y Fk(Color)t Fm(::)p Fi(show)14 b Fm(:)83 b(92.)2033 1608 y Fk(Cub)s(oid)t -Fm(::)p Fi(~Cub)l(oid)14 b Fm(:)83 b(1418.)2033 1708 +Fm(::)p Fi(~Cub)l(oid)14 b Fm(:)83 b(1423.)2033 1708 y Fk(Cub)s(oid)t Fm(::)p Fi(cr)l(e)l(ate)p 2605 1708 V 31 w(new)p 2776 1708 V 30 w(cub)l(oid)14 b Fm(:)83 -b(1416.)2033 1808 y Fk(Cub)s(oid)t Fm(::)p Fi(Cub)l(oid)14 -b Fm(:)83 b(1410,)32 b(1412,)h(1414.)2033 1908 y Fk(Do)s(decahedron)5 +b(1421.)2033 1808 y Fk(Cub)s(oid)t Fm(::)p Fi(Cub)l(oid)14 +b Fm(:)83 b(1415,)32 b(1417,)h(1419.)2033 1908 y Fk(Do)s(decahedron)5 b Fm(::)p Fi(Do)l(de)l(c)l(ahe)l(dr)l(on)12 b Fm(:)83 -b(1451,)29 b(1454.)2033 2007 y Fk(Do)s(decahedron)5 b +b(1456,)29 b(1459.)2033 2007 y Fk(Do)s(decahedron)5 b Fm(::)p Fi(dr)l(aw)p 2858 2007 V 31 w(net)12 b Fm(:)83 -b(1459.)2033 2107 y Fk(Do)s(decahedron)5 b Fm(::)p Fi(get)p -2792 2107 V 31 w(net)11 b Fm(:)83 b(1457.)2033 2207 y -Fk(Ellipse)s Fm(::)p Fi(~El)t(lipse)13 b Fm(:)83 b(1113.)2033 +b(1464.)2033 2107 y Fk(Do)s(decahedron)5 b Fm(::)p Fi(get)p +2792 2107 V 31 w(net)11 b Fm(:)83 b(1462.)2033 2207 y +Fk(Ellipse)s Fm(::)p Fi(~El)t(lipse)13 b Fm(:)83 b(1118.)2033 2307 y Fk(Ellipse)s Fm(::)p Fi(angle)p 2552 2307 V 31 -w(p)l(oint)12 b Fm(:)83 b(1158.)2033 2406 y Fk(Ellipse)s +w(p)l(oint)12 b Fm(:)83 b(1163.)2033 2406 y Fk(Ellipse)s Fm(::)p Fi(cr)l(e)l(ate)p 2577 2406 V 30 w(new)p 2747 -2406 V 31 w(el)t(lipse)12 b Fm(:)83 b(1109,)31 b(1111.)2033 +2406 V 31 w(el)t(lipse)12 b Fm(:)83 b(1114,)31 b(1116.)2033 2506 y Fk(Ellipse)s Fm(::)p Fi(dotlab)l(el)14 b Fm(:)83 -b(1119.)2033 2606 y Fk(Ellipse)s Fm(::)p Fi(dr)l(aw)p +b(1124.)2033 2606 y Fk(Ellipse)s Fm(::)p Fi(dr)l(aw)p 2536 2606 V 31 w(out)p 2682 2606 V 30 w(r)l(e)l(ctangle)11 -b Fm(:)83 b(1217.)2033 2706 y Fk(Ellipse)s Fm(::)p Fi(El)t(lipse)12 -b Fm(:)83 b(1101,)36 b(1104.)2033 2806 y Fk(Ellipse)s +b Fm(:)83 b(1222.)2033 2706 y Fk(Ellipse)s Fm(::)p Fi(El)t(lipse)12 +b Fm(:)83 b(1106,)36 b(1109.)2033 2806 y Fk(Ellipse)s Fm(::)p Fi(get)p 2470 2806 V 30 w(axis)p 2640 2806 V -31 w(h)11 b Fm(:)83 b(1154,)35 b(1156.)2033 2905 y Fk(Ellipse)s +31 w(h)11 b Fm(:)83 b(1159,)35 b(1161.)2033 2905 y Fk(Ellipse)s Fm(::)p Fi(get)p 2470 2905 V 30 w(axis)p 2640 2905 V -31 w(v)13 b Fm(:)84 b(1149,)34 b(1151.)2033 3005 y Fk(Ellipse)s +31 w(v)13 b Fm(:)84 b(1154,)34 b(1156.)2033 3005 y Fk(Ellipse)s Fm(::)p Fi(get)p 2470 3005 V 30 w(c)l(enter)13 b Fm(:)83 -b(1134,)34 b(1136.)2033 3105 y Fk(Ellipse)s Fm(::)p Fi(get)p -2470 3105 V 30 w(c)l(o)l(e\016cients)12 b Fm(:)83 b(1131.)2033 +b(1139,)34 b(1141.)2033 3105 y Fk(Ellipse)s Fm(::)p Fi(get)p +2470 3105 V 30 w(c)l(o)l(e\016cients)12 b Fm(:)83 b(1136.)2033 3205 y Fk(Ellipse)s Fm(::)p Fi(get)p 2470 3205 V 30 w(fo)l(cus)12 -b Fm(:)83 b(1139,)34 b(1141.)2033 3305 y Fk(Ellipse)s +b Fm(:)83 b(1144,)34 b(1146.)2033 3305 y Fk(Ellipse)s Fm(::)p Fi(in)p 2438 3305 V 30 w(r)l(e)l(ctangle)11 b -Fm(:)83 b(1215.)2033 3404 y Fk(Ellipse)s Fm(::)p Fi(interse)l(ction)p -2787 3404 V 30 w(p)l(oints)12 b Fm(:)83 b(1165,)27 b(1167,)h(1169.)2033 +Fm(:)83 b(1220.)2033 3404 y Fk(Ellipse)s Fm(::)p Fi(interse)l(ction)p +2787 3404 V 30 w(p)l(oints)12 b Fm(:)83 b(1170,)27 b(1172,)h(1174.)2033 3504 y Fk(Ellipse)s Fm(::)p Fi(is)p 2425 3504 V 31 w(cubic)9 -b Fm(:)83 b(1124.)2033 3604 y Fk(Ellipse)s Fm(::)p Fi(is)p -2425 3604 V 31 w(el)t(liptic)l(al)15 b Fm(:)83 b(1121.)2033 +b Fm(:)83 b(1129.)2033 3604 y Fk(Ellipse)s Fm(::)p Fi(is)p +2425 3604 V 31 w(el)t(liptic)l(al)15 b Fm(:)83 b(1126.)2033 3704 y Fk(Ellipse)s Fm(::)p Fi(is)p 2425 3704 V 31 w(quadr)l(atic)10 -b Fm(:)83 b(1123.)2033 3803 y Fk(Ellipse)s Fm(::)p Fi(is)p -2425 3803 V 31 w(quartic)9 b Fm(:)83 b(1126.)2033 3903 -y Fk(Ellipse)s Fm(::)p Fi(lab)l(el)13 b Fm(:)84 b(1117.)2033 +b Fm(:)83 b(1128.)2033 3803 y Fk(Ellipse)s Fm(::)p Fi(is)p +2425 3803 V 31 w(quartic)9 b Fm(:)83 b(1131.)2033 3903 +y Fk(Ellipse)s Fm(::)p Fi(lab)l(el)13 b Fm(:)84 b(1122.)2033 4003 y Fk(Ellipse)s Fm(::)p Fi(lo)l(c)l(ation)11 b Fm(:)83 -b(1162.)2033 4103 y Fk(Ellipse)s Fm(::)p Fi(out)p 2481 -4103 V 30 w(r)l(e)l(ctangle)10 b Fm(:)84 b(1213.)2033 +b(1167.)2033 4103 y Fk(Ellipse)s Fm(::)p Fi(out)p 2481 +4103 V 30 w(r)l(e)l(ctangle)10 b Fm(:)84 b(1218.)2033 4203 y Fk(Ellipse)s Fm(::)p Fi(r)l(otate)10 b Fm(:)83 -b(1191,)34 b(1208,)f(1210.)2033 4302 y Fk(Ellipse)s Fm(::)p -Fi(sc)l(ale)11 b Fm(:)83 b(1193.)2033 4402 y Fk(Ellipse)s -Fm(::)p Fi(set)12 b Fm(:)83 b(1106.)2033 4502 y Fk(Ellipse)s -Fm(::)p Fi(she)l(ar)14 b Fm(:)83 b(1195.)2033 4602 y +b(1196,)34 b(1213,)f(1215.)2033 4302 y Fk(Ellipse)s Fm(::)p +Fi(sc)l(ale)11 b Fm(:)83 b(1198.)2033 4402 y Fk(Ellipse)s +Fm(::)p Fi(set)12 b Fm(:)83 b(1111.)2033 4502 y Fk(Ellipse)s +Fm(::)p Fi(she)l(ar)14 b Fm(:)83 b(1200.)2033 4602 y Fk(Ellipse)s Fm(::)p Fi(shift)p 2520 4602 V 31 w(times)11 -b Fm(:)83 b(1203,)34 b(1205.)2033 4702 y Fk(Ellipse)s -Fm(::)p Fi(shift)13 b Fm(:)83 b(1198,)37 b(1200.)2033 -4801 y Fk(Ellipse)s Fm(::)p Fi(solve)11 b Fm(:)83 b(1128.)2033 +b Fm(:)83 b(1208,)34 b(1210.)2033 4702 y Fk(Ellipse)s +Fm(::)p Fi(shift)13 b Fm(:)83 b(1203,)37 b(1205.)2033 +4801 y Fk(Ellipse)s Fm(::)p Fi(solve)11 b Fm(:)83 b(1133.)2033 4901 y Fk(F)-8 b(o)s(cus)t Fm(::)p Fi(F)i(o)l(cus)11 b Fm(:)83 b(558,)36 b(560,)g(565.)2033 5001 y Fk(F)-8 b(o)s(cus)t Fm(::)p Fi(get)p 2428 5001 V 31 w(dir)l(e)l(ction)12 @@ -40723,11 +40823,11 @@ 2428 5300 V 31 w(p)l(ersp)10 b Fm(:)83 b(583.)2033 5400 y Fk(F)-8 b(o)s(cus)t Fm(::)p Fi(get)p 2428 5400 V 31 w(p)l(osition)12 b Fm(:)83 b(576.)p eop end -%%Page: 481 481 -TeXDict begin 481 480 bop 0 83 a Fn(x)p Fm(1517)139 b -Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(481)0 263 y Fk(F)-8 -b(o)s(cus)t Fm(::)p Fi(get)p 395 263 26 4 v 31 w(tr)l(ansform)p -778 263 V 31 w(element)12 b Fm(:)83 b(581.)0 364 y Fk(F)-8 +%%Page: 486 486 +TeXDict begin 486 485 bop 0 83 a Fm(486)140 b Fl(INDEX)2670 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1525)0 263 y Fk(F)-8 b(o)s(cus)t +Fm(::)p Fi(get)p 395 263 26 4 v 31 w(tr)l(ansform)p 778 +263 V 31 w(element)12 b Fm(:)83 b(581.)0 364 y Fk(F)-8 b(o)s(cus)t Fm(::)p Fi(get)p 395 364 V 31 w(tr)l(ansform)11 b Fm(:)83 b(580.)0 464 y Fk(F)-8 b(o)s(cus)t Fm(::)p Fi(get)p 395 464 V 31 w(up)10 b Fm(:)83 b(579.)0 565 @@ -40736,16 +40836,16 @@ Fm(::)p Fi(set)12 b Fm(:)83 b(562,)40 b(567.)0 767 y Fk(F)-8 b(o)s(cus)t Fm(::)p Fi(show)15 b Fm(:)83 b(573.)0 867 y Fk(Icosahedron)5 b Fm(::)p Fi(dr)l(aw)p 726 867 -V 32 w(net)11 b Fm(:)83 b(1472.)0 968 y Fk(Icosahedron)5 -b Fm(::)p Fi(get)p 660 968 V 31 w(net)11 b Fm(:)83 b(1470.)0 +V 32 w(net)11 b Fm(:)83 b(1477.)0 968 y Fk(Icosahedron)5 +b Fm(::)p Fi(get)p 660 968 V 31 w(net)11 b Fm(:)83 b(1475.)0 1069 y Fk(Icosahedron)5 b Fm(::)p Fi(Ic)l(osahe)l(dr)l(on)12 -b Fm(:)83 b(1465,)31 b(1468.)0 1170 y Fk(Lab)s(el)5 b +b Fm(:)83 b(1470,)31 b(1473.)0 1170 y Fk(Lab)s(el)5 b Fm(::)p Fi(get)p 390 1170 V 30 w(c)l(opy)13 b Fm(:)83 b(471.)0 1270 y Fk(Lab)s(el)5 b Fm(::)p Fi(output)11 b Fm(:)83 b(472.)0 1371 y Fk(Line)5 b Fm(::)p Fi(get)p 341 1371 V 30 w(distanc)l(e)11 b Fm(:)83 b(604.)0 1472 y Fk(Line)5 b Fm(::)p Fi(get)p 341 1472 V 30 w(p)l(ath)11 -b Fm(:)83 b(602,)38 b(931.)0 1572 y Fk(Line)5 b Fm(::)p +b Fm(:)83 b(602,)38 b(934.)0 1572 y Fk(Line)5 b Fm(::)p Fi(Line)11 b Fm(:)83 b(595,)39 b(597.)0 1673 y Fk(Line)5 b Fm(::)p Fi(show)14 b Fm(:)83 b(608.)0 1774 y Fk(P)m(ath)6 b Fm(::)p Fi(~Path)12 b Fm(:)83 b(684.)0 1875 y Fk(P)m(ath)6 @@ -40771,24 +40871,24 @@ 3184 y Fk(P)m(ath)6 b Fm(::)p Fi(get)p 359 3184 V 31 w(extr)l(emes)k Fm(:)83 b(845.)0 3285 y Fk(P)m(ath)6 b Fm(::)p Fi(get)p 359 3285 V 31 w(last)p 515 3285 V -30 w(p)l(oint)13 b Fm(:)83 b(889.)0 3385 y Fk(P)m(ath)6 +30 w(p)l(oint)13 b Fm(:)83 b(892.)0 3385 y Fk(P)m(ath)6 b Fm(::)p Fi(get)p 359 3385 V 31 w(line)p 521 3385 V 31 w(switch)11 b Fm(:)83 b(876.)0 3486 y Fk(P)m(ath)6 b Fm(::)p Fi(get)p 359 3486 V 31 w(line)11 b Fm(:)83 -b(929.)0 3587 y Fk(P)m(ath)6 b Fm(::)p Fi(get)p 359 3587 +b(932.)0 3587 y Fk(P)m(ath)6 b Fm(::)p Fi(get)p 359 3587 V 31 w(maximum)p 745 3587 V 30 w(z)14 b Fm(:)83 b(848.)0 3688 y Fk(P)m(ath)6 b Fm(::)p Fi(get)p 359 3688 V 31 w(me)l(an)p 581 3688 V 30 w(z)15 b Fm(:)83 b(850.)0 3788 y Fk(P)m(ath)6 b Fm(::)p Fi(get)p 359 3788 V 31 w(minimum)p 736 3788 V 30 w(z)14 b Fm(:)83 b(846.)0 3889 y Fk(P)m(ath)6 b Fm(::)p Fi(get)p 359 3889 V 31 w(normal)13 b Fm(:)83 -b(893.)0 3990 y Fk(P)m(ath)6 b Fm(::)p Fi(get)p 359 3990 -V 31 w(plane)11 b Fm(:)83 b(899.)0 4091 y Fk(P)m(ath)6 +b(896.)0 3990 y Fk(P)m(ath)6 b Fm(::)p Fi(get)p 359 3990 +V 31 w(plane)11 b Fm(:)83 b(902.)0 4091 y Fk(P)m(ath)6 b Fm(::)p Fi(get)p 359 4091 V 31 w(p)l(oint)12 b Fm(:)83 -b(887.)0 4191 y Fk(P)m(ath)6 b Fm(::)p Fi(get)p 359 4191 -V 31 w(size)11 b Fm(:)83 b(891.)0 4292 y Fk(P)m(ath)6 +b(888,)37 b(890.)0 4191 y Fk(P)m(ath)6 b Fm(::)p Fi(get)p +359 4191 V 31 w(size)11 b Fm(:)83 b(894.)0 4292 y Fk(P)m(ath)6 b Fm(::)p Fi(interse)l(ction)p 676 4292 V 31 w(p)l(oint)12 -b Fm(:)83 b(917.)0 4393 y Fk(P)m(ath)6 b Fm(::)p Fi(is)p +b Fm(:)83 b(920.)0 4393 y Fk(P)m(ath)6 b Fm(::)p Fi(is)p 314 4393 V 31 w(cycle)12 b Fm(:)83 b(877.)0 4493 y Fk(P)m(ath)6 b Fm(::)p Fi(is)p 314 4493 V 31 w(line)l(ar)14 b Fm(:)83 b(874.)0 4594 y Fk(P)m(ath)6 b Fm(::)p Fi(is)p 314 4594 @@ -40801,12 +40901,12 @@ b Fm(:)84 b(660,)32 b(663,)g(668,)g(673,)h(677.)0 5098 y Fk(P)m(ath)6 b Fm(::)p Fi(pr)l(oje)l(ct)13 b Fm(:)83 b(742.)0 5199 y Fk(P)m(ath)6 b Fm(::)p Fi(r)l(everse)11 -b Fm(:)83 b(908,)38 b(912.)0 5299 y Fk(P)m(ath)6 b Fm(::)p +b Fm(:)83 b(911,)38 b(915.)0 5299 y Fk(P)m(ath)6 b Fm(::)p Fi(r)l(otate)11 b Fm(:)83 b(713,)36 b(719,)g(721.)0 5400 y Fk(P)m(ath)6 b Fm(::)p Fi(sc)l(ale)11 b Fm(:)83 b(723.)2033 263 y Fk(P)m(ath)6 b Fm(::)p Fi(set)p 2388 263 V 30 w(c)l(onne)l(ctors) 11 b Fm(:)83 b(708.)2033 364 y Fk(P)m(ath)6 b Fm(::)p -Fi(set)p 2388 364 V 30 w(cycle)12 b Fm(:)83 b(905.)2033 +Fi(set)p 2388 364 V 30 w(cycle)12 b Fm(:)83 b(908.)2033 464 y Fk(P)m(ath)6 b Fm(::)p Fi(set)p 2388 464 V 30 w(dash)p 2578 464 V 32 w(p)l(attern)k Fm(:)84 b(704.)2033 565 y Fk(P)m(ath)6 b Fm(::)p Fi(set)p 2388 565 V 30 w(dr)l(aw)p @@ -40863,7 +40963,7 @@ Fm(:)83 b(633,)35 b(635.)2033 3990 y Fk(Plane)5 b Fm(::)p Fi(interse)l(ction)p 2745 3990 V 31 w(line)11 b Fm(:)83 b(643.)2033 4091 y Fk(Plane)5 b Fm(::)p Fi(interse)l(ction)p -2745 4091 V 31 w(p)l(oint)12 b Fm(:)83 b(919.)2033 4191 +2745 4091 V 31 w(p)l(oint)12 b Fm(:)83 b(922.)2033 4191 y Fk(Plane)5 b Fm(::)p Fi(Plane)11 b Fm(:)83 b(619,)36 b(621,)g(623.)2033 4292 y Fk(Plane)5 b Fm(::)p Fi(show)14 b Fm(:)83 b(645.)2033 4393 y Fk(P)m(oin)m(t)5 b Fm(::)p @@ -40885,9 +40985,9 @@ b(419,)35 b(420,)f(780,)g(781.)2033 5400 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(dr)l(awarr)l(ow)15 b Fm(:)83 b(422,)32 b(423,)f(789,)h (790.)p eop end -%%Page: 482 482 -TeXDict begin 482 481 bop 0 83 a Fm(482)140 b Fl(INDEX)2670 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1517)0 263 y Fk(P)m(oin)m(t)5 +%%Page: 487 487 +TeXDict begin 487 486 bop 0 83 a Fn(x)p Fm(1525)139 b +Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(487)0 263 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(dr)l(awdot)14 b Fm(:)83 b(410,)37 b(412.)0 364 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(epsilon)12 b Fm(:)83 b(308.)0 464 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(extr)l(act)12 @@ -40906,7 +41006,7 @@ Fi(get)p 384 1170 V 31 w(minimum)p 761 1170 V 30 w(z)15 b Fm(:)83 b(445.)0 1270 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(get)p 384 1270 V 31 w(normal)13 b Fm(:)83 b(513,)36 -b(898.)0 1371 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(get)p 384 +b(901.)0 1371 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(get)p 384 1371 V 31 w(tr)l(ansform)11 b Fm(:)83 b(341.)0 1472 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(get)p 384 1472 V 31 w(w)13 b Fm(:)83 b(337,)39 b(339.)0 1572 y Fk(P)m(oin)m(t)5 @@ -40929,4626 +41029,4664 @@ b(352.)0 2479 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(lab)l(el)14 b Fm(:)83 b(461,)39 b(463.)0 2580 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(magnitude)11 b Fm(:)83 b(502.)0 2680 y Fk(P)m(oin)m(t)5 -b Fm(::)p Fi(output)12 b Fm(:)83 b(457.)0 2781 y Fk(P)m(oin)m(t)5 -b Fm(::)p Fi(Point)13 b Fm(:)83 b(279,)36 b(282,)g(286.)0 -2882 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(pr)l(oje)l(ct)13 -b Fm(:)83 b(398,)38 b(402.)0 2983 y Fk(P)m(oin)m(t)5 -b Fm(::)p Fi(r)l(eset)p 449 2983 V 31 w(tr)l(ansform)10 -b Fm(:)83 b(406.)0 3083 y Fk(P)m(oin)m(t)5 b Fm(::)p -Fi(r)l(otate)11 b Fm(:)83 b(360,)34 b(392,)f(394,)h(717.)0 -3184 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(sc)l(ale)12 b Fm(:)83 -b(362.)0 3285 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(set)p 380 -3285 V 31 w(extr)l(emes)10 b Fm(:)83 b(451.)0 3385 y -Fk(P)m(oin)m(t)5 b Fm(::)p Fi(set)p 380 3385 V 31 w(on)p -500 3385 V 30 w(fr)l(e)l(e)p 658 3385 V 31 w(stor)l(e)11 -b Fm(:)83 b(301.)0 3486 y Fk(P)m(oin)m(t)5 b Fm(::)p -Fi(set)12 b Fm(:)83 b(284,)40 b(288.)0 3587 y Fk(P)m(oin)m(t)5 -b Fm(::)p Fi(she)l(ar)14 b Fm(:)83 b(364.)0 3688 y Fk(P)m(oin)m(t)5 -b Fm(::)p Fi(shift)p 434 3688 V 32 w(times)11 b Fm(:)83 -b(375,)36 b(377.)0 3788 y Fk(P)m(oin)m(t)5 b Fm(::)p -Fi(shift)13 b Fm(:)83 b(240,)37 b(368,)g(370.)0 3889 -y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(show)p 453 3889 V 32 -w(tr)l(ansform)11 b Fm(:)83 b(433.)0 3990 y Fk(P)m(oin)m(t)5 -b Fm(::)p Fi(show)14 b Fm(:)84 b(431.)0 4091 y Fk(P)m(oin)m(t)5 -b Fm(::)p Fi(slop)l(e)12 b Fm(:)83 b(345.)0 4191 y Fk(P)m(oin)m(t)5 -b Fm(::)p Fi(suppr)l(ess)p 580 4191 V 31 w(output)11 -b Fm(:)83 b(438.)0 4292 y Fk(P)m(oin)m(t)5 b Fm(::)p +b Fm(::)p Fi(me)l(diate)12 b Fm(:)83 b(511.)0 2781 y +Fk(P)m(oin)m(t)5 b Fm(::)p Fi(output)12 b Fm(:)83 b(457.)0 +2882 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(Point)13 b Fm(:)83 +b(279,)36 b(282,)g(286.)0 2983 y Fk(P)m(oin)m(t)5 b Fm(::)p +Fi(pr)l(oje)l(ct)13 b Fm(:)83 b(398,)38 b(402.)0 3083 +y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(r)l(eset)p 449 3083 V +31 w(tr)l(ansform)10 b Fm(:)83 b(406.)0 3184 y Fk(P)m(oin)m(t)5 +b Fm(::)p Fi(r)l(otate)11 b Fm(:)83 b(360,)34 b(392,)f(394,)h(717.)0 +3285 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(sc)l(ale)12 b Fm(:)83 +b(362.)0 3385 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(set)p 380 +3385 V 31 w(extr)l(emes)10 b Fm(:)83 b(451.)0 3486 y +Fk(P)m(oin)m(t)5 b Fm(::)p Fi(set)p 380 3486 V 31 w(on)p +500 3486 V 30 w(fr)l(e)l(e)p 658 3486 V 31 w(stor)l(e)11 +b Fm(:)83 b(301.)0 3587 y Fk(P)m(oin)m(t)5 b Fm(::)p +Fi(set)12 b Fm(:)83 b(284,)40 b(288.)0 3688 y Fk(P)m(oin)m(t)5 +b Fm(::)p Fi(she)l(ar)14 b Fm(:)83 b(364.)0 3788 y Fk(P)m(oin)m(t)5 +b Fm(::)p Fi(shift)p 434 3788 V 32 w(times)11 b Fm(:)83 +b(375,)36 b(377.)0 3889 y Fk(P)m(oin)m(t)5 b Fm(::)p +Fi(shift)13 b Fm(:)83 b(240,)37 b(368,)g(370.)0 3990 +y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(show)p 453 3990 V 32 +w(tr)l(ansform)11 b Fm(:)83 b(433.)0 4091 y Fk(P)m(oin)m(t)5 +b Fm(::)p Fi(show)14 b Fm(:)84 b(431.)0 4191 y Fk(P)m(oin)m(t)5 +b Fm(::)p Fi(slop)l(e)12 b Fm(:)83 b(345.)0 4292 y Fk(P)m(oin)m(t)5 +b Fm(::)p Fi(suppr)l(ess)p 580 4292 V 31 w(output)11 +b Fm(:)83 b(438.)0 4393 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(undr)l(aw)13 b Fm(:)84 b(425,)33 b(426,)g(817,)g(818.)0 -4393 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(undr)l(awdot)13 -b Fm(:)83 b(414,)36 b(416.)0 4493 y Fk(P)m(oin)m(t)5 -b Fm(::)p Fi(unit)p 425 4493 V 30 w(ve)l(ctor)14 b Fm(:)83 -b(507,)36 b(509.)0 4594 y Fk(P)m(oin)m(t)5 b Fm(::)p -Fi(unsuppr)l(ess)p 672 4594 V 30 w(output)12 b Fm(:)83 -b(440.)0 4695 y Fk(P)m(olygon)5 b Fm(::)p Fi(get)p 496 -4695 V 30 w(c)l(enter)13 b Fm(:)83 b(975,)35 b(977.)0 -4796 y Fk(P)m(olygon)5 b Fm(::)p Fi(interse)l(ction)p -813 4796 V 30 w(p)l(oints)12 b Fm(:)83 b(981,)29 b(990,)f(992.)0 -4896 y Fk(P)m(olygon)5 b Fm(::)p Fi(r)l(otate)10 b Fm(:)83 -b(1000,)33 b(1003,)f(1005.)0 4997 y Fk(P)m(olygon)5 b -Fm(::)p Fi(sc)l(ale)11 b Fm(:)83 b(1007.)0 5098 y Fk(P)m(olygon)5 -b Fm(::)p Fi(she)l(ar)14 b Fm(:)83 b(1009.)0 5199 y Fk(P)m(olygon)5 -b Fm(::)p Fi(shift)p 546 5199 V 31 w(times)11 b Fm(:)83 -b(1017,)34 b(1019.)0 5299 y Fk(P)m(olygon)5 b Fm(::)p -Fi(shift)13 b Fm(:)83 b(1012,)36 b(1014.)0 5400 y Fk(P)m(olyhedron)5 -b Fm(::)p Fi(interse)l(ction)p 954 5400 V 31 w(p)l(oints)11 -b Fm(:)83 b(1427.)2033 263 y Fk(Rectangle)t Fm(::)p Fi(~R)l(e)l -(ctangle)11 b Fm(:)83 b(1075.)2033 364 y Fk(Rectangle)t -Fm(::)p Fi(c)l(orner)14 b Fm(:)83 b(1080.)2033 465 y -Fk(Rectangle)t Fm(::)p Fi(cr)l(e)l(ate)p 2712 465 V 31 -w(new)p 2883 465 V 31 w(r)l(e)l(ctangle)10 b Fm(:)83 -b(1071,)28 b(1073.)2033 565 y Fk(Rectangle)t Fm(::)p -Fi(mid)p 2636 565 V 32 w(p)l(oint)12 b Fm(:)83 b(1082.)2033 -666 y Fk(Rectangle)t Fm(::)p Fi(R)l(e)l(ctangle)11 b -Fm(:)83 b(1058,)29 b(1061,)h(1066.)2033 767 y Fk(Rectangle)t -Fm(::)p Fi(set)12 b Fm(:)83 b(1063,)36 b(1068.)2033 868 -y Fk(Reg)p 2201 868 29 5 v 39 w(Cl)p 2336 868 V 40 w(Plane)p -2611 868 V 40 w(Curv)m(e)5 b Fm(::)p Fi(angle)p 3141 -868 26 4 v 32 w(p)l(oint)12 b Fm(:)83 b(947.)2033 969 -y Fk(Reg)p 2201 969 29 5 v 39 w(Cl)p 2336 969 V 40 w(Plane)p -2611 969 V 40 w(Curv)m(e)5 b Fm(::)p Fi(get)p 3059 969 -26 4 v 31 w(c)l(o)l(e\016cients)12 b Fm(:)83 b(943.)2033 -1069 y Fk(Reg)p 2201 1069 29 5 v 39 w(Cl)p 2336 1069 -V 40 w(Plane)p 2611 1069 V 40 w(Curv)m(e)5 b Fm(::)p -Fi(half)24 b Fm(:)83 b(966.)2033 1170 y Fk(Reg)p 2201 -1170 V 39 w(Cl)p 2336 1170 V 40 w(Plane)p 2611 1170 V -40 w(Curv)m(e)5 b Fm(::)p Fi(interse)l(ction)p 3376 1170 -26 4 v 31 w(p)l(oints)12 b Fm(:)83 b(950,)2199 1270 y(961.)2033 -1371 y Fk(Reg)p 2201 1371 29 5 v 39 w(Cl)p 2336 1371 -V 40 w(Plane)p 2611 1371 V 40 w(Curv)m(e)5 b Fm(::)p -Fi(is)p 3014 1371 26 4 v 32 w(cubic)k Fm(:)83 b(941.)2033 -1471 y Fk(Reg)p 2201 1471 29 5 v 39 w(Cl)p 2336 1471 -V 40 w(Plane)p 2611 1471 V 40 w(Curv)m(e)5 b Fm(::)p -Fi(is)p 3014 1471 26 4 v 32 w(quadr)l(atic)10 b Fm(:)83 -b(940.)2033 1572 y Fk(Reg)p 2201 1572 29 5 v 39 w(Cl)p +4493 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(undr)l(awdot)13 +b Fm(:)83 b(414,)36 b(416.)0 4594 y Fk(P)m(oin)m(t)5 +b Fm(::)p Fi(unit)p 425 4594 V 30 w(ve)l(ctor)14 b Fm(:)83 +b(507,)36 b(509.)0 4695 y Fk(P)m(oin)m(t)5 b Fm(::)p +Fi(unsuppr)l(ess)p 672 4695 V 30 w(output)12 b Fm(:)83 +b(440.)0 4796 y Fk(P)m(olygon)5 b Fm(::)p Fi(get)p 496 +4796 V 30 w(c)l(enter)13 b Fm(:)83 b(978,)35 b(980.)0 +4896 y Fk(P)m(olygon)5 b Fm(::)p Fi(interse)l(ction)p +813 4896 V 30 w(p)l(oints)12 b Fm(:)83 b(984,)29 b(993,)f(995.)0 +4997 y Fk(P)m(olygon)5 b Fm(::)p Fi(r)l(otate)10 b Fm(:)83 +b(1003,)33 b(1006,)f(1008.)0 5098 y Fk(P)m(olygon)5 b +Fm(::)p Fi(sc)l(ale)11 b Fm(:)83 b(1010.)0 5199 y Fk(P)m(olygon)5 +b Fm(::)p Fi(she)l(ar)14 b Fm(:)83 b(1012.)0 5299 y Fk(P)m(olygon)5 +b Fm(::)p Fi(shift)p 546 5299 V 31 w(times)11 b Fm(:)83 +b(1020,)34 b(1022.)0 5400 y Fk(P)m(olygon)5 b Fm(::)p +Fi(shift)13 b Fm(:)83 b(1015,)36 b(1017.)2033 263 y Fk(P)m(olyhedron)5 +b Fm(::)p Fi(interse)l(ction)p 2987 263 V 31 w(p)l(oints)11 +b Fm(:)83 b(1432.)2033 364 y Fk(Rectangle)t Fm(::)p Fi(~R)l(e)l +(ctangle)11 b Fm(:)83 b(1078.)2033 465 y Fk(Rectangle)t +Fm(::)p Fi(c)l(orner)14 b Fm(:)83 b(1085.)2033 565 y +Fk(Rectangle)t Fm(::)p Fi(cr)l(e)l(ate)p 2712 565 V 31 +w(new)p 2883 565 V 31 w(r)l(e)l(ctangle)10 b Fm(:)83 +b(1074,)28 b(1076.)2033 666 y Fk(Rectangle)t Fm(::)p +Fi(is)p 2560 666 V 31 w(r)l(e)l(ctangular)13 b Fm(:)84 +b(1082.)2033 767 y Fk(Rectangle)t Fm(::)p Fi(mid)p 2636 +767 V 32 w(p)l(oint)12 b Fm(:)83 b(1087.)2033 868 y Fk(Rectangle)t +Fm(::)p Fi(R)l(e)l(ctangle)11 b Fm(:)83 b(1061,)29 b(1064,)h(1069.)2033 +969 y Fk(Rectangle)t Fm(::)p Fi(set)12 b Fm(:)83 b(1066,)36 +b(1071.)2033 1069 y Fk(Reg)p 2201 1069 29 5 v 39 w(Cl)p +2336 1069 V 40 w(Plane)p 2611 1069 V 40 w(Curv)m(e)5 +b Fm(::)p Fi(angle)p 3141 1069 26 4 v 32 w(p)l(oint)12 +b Fm(:)83 b(950.)2033 1170 y Fk(Reg)p 2201 1170 29 5 +v 39 w(Cl)p 2336 1170 V 40 w(Plane)p 2611 1170 V 40 w(Curv)m(e)5 +b Fm(::)p Fi(get)p 3059 1170 26 4 v 31 w(c)l(o)l(e\016cients)12 +b Fm(:)83 b(946.)2033 1271 y Fk(Reg)p 2201 1271 29 5 +v 39 w(Cl)p 2336 1271 V 40 w(Plane)p 2611 1271 V 40 w(Curv)m(e)5 +b Fm(::)p Fi(half)24 b Fm(:)83 b(969.)2033 1372 y Fk(Reg)p +2201 1372 V 39 w(Cl)p 2336 1372 V 40 w(Plane)p 2611 1372 +V 40 w(Curv)m(e)5 b Fm(::)p Fi(interse)l(ction)p 3376 +1372 26 4 v 31 w(p)l(oints)12 b Fm(:)83 b(953,)2199 1471 +y(964.)2033 1572 y Fk(Reg)p 2201 1572 29 5 v 39 w(Cl)p 2336 1572 V 40 w(Plane)p 2611 1572 V 40 w(Curv)m(e)5 -b Fm(::)p Fi(is)p 3014 1572 26 4 v 32 w(quartic)k Fm(:)83 -b(942.)2033 1673 y Fk(Reg)p 2201 1673 29 5 v 39 w(Cl)p +b Fm(::)p Fi(is)p 3014 1572 26 4 v 32 w(cubic)k Fm(:)83 +b(944.)2033 1673 y Fk(Reg)p 2201 1673 29 5 v 39 w(Cl)p 2336 1673 V 40 w(Plane)p 2611 1673 V 40 w(Curv)m(e)5 -b Fm(::)p Fi(lo)l(c)l(ation)12 b Fm(:)83 b(945.)2033 -1774 y Fk(Reg)p 2201 1774 V 39 w(Cl)p 2336 1774 V 40 -w(Plane)p 2611 1774 V 40 w(Curv)m(e)5 b Fm(::)p Fi(quarter)14 -b Fm(:)83 b(967.)2033 1875 y Fk(Reg)p 2201 1875 V 39 -w(Cl)p 2336 1875 V 40 w(Plane)p 2611 1875 V 40 w(Curv)m(e)5 -b Fm(::)p Fi(se)l(gment)12 b Fm(:)83 b(964.)2033 1975 -y Fk(Reg)p 2201 1975 V 39 w(Cl)p 2336 1975 V 40 w(Plane)p -2611 1975 V 40 w(Curv)m(e)5 b Fm(::)p Fi(solve)12 b Fm(:)83 -b(944.)2033 2076 y Fk(Reg)p 2201 2076 V 39 w(P)m(olygon)5 -b Fm(::)p Fi(cr)l(e)l(ate)p 2839 2076 26 4 v 31 w(new)p -3010 2076 V 30 w(r)l(e)l(g)p 3143 2076 V 31 w(p)l(olygon)12 -b Fm(:)83 b(1036.)2033 2177 y Fk(Reg)p 2201 2177 29 5 +b Fm(::)p Fi(is)p 3014 1673 26 4 v 32 w(quadr)l(atic)10 +b Fm(:)83 b(943.)2033 1774 y Fk(Reg)p 2201 1774 29 5 +v 39 w(Cl)p 2336 1774 V 40 w(Plane)p 2611 1774 V 40 w(Curv)m(e)5 +b Fm(::)p Fi(is)p 3014 1774 26 4 v 32 w(quartic)k Fm(:)83 +b(945.)2033 1875 y Fk(Reg)p 2201 1875 29 5 v 39 w(Cl)p +2336 1875 V 40 w(Plane)p 2611 1875 V 40 w(Curv)m(e)5 +b Fm(::)p Fi(lo)l(c)l(ation)12 b Fm(:)83 b(948.)2033 +1975 y Fk(Reg)p 2201 1975 V 39 w(Cl)p 2336 1975 V 40 +w(Plane)p 2611 1975 V 40 w(Curv)m(e)5 b Fm(::)p Fi(quarter)14 +b Fm(:)83 b(970.)2033 2076 y Fk(Reg)p 2201 2076 V 39 +w(Cl)p 2336 2076 V 40 w(Plane)p 2611 2076 V 40 w(Curv)m(e)5 +b Fm(::)p Fi(se)l(gment)12 b Fm(:)83 b(967.)2033 2177 +y Fk(Reg)p 2201 2177 V 39 w(Cl)p 2336 2177 V 40 w(Plane)p +2611 2177 V 40 w(Curv)m(e)5 b Fm(::)p Fi(solve)12 b Fm(:)83 +b(947.)2033 2278 y Fk(Reg)p 2201 2278 V 39 w(P)m(olygon)5 +b Fm(::)p Fi(cr)l(e)l(ate)p 2839 2278 26 4 v 31 w(new)p +3010 2278 V 30 w(r)l(e)l(g)p 3143 2278 V 31 w(p)l(olygon)12 +b Fm(:)83 b(1039.)2033 2379 y Fk(Reg)p 2201 2379 29 5 v 39 w(P)m(olygon)5 b Fm(::)p Fi(cr)l(e)l(ate)p 2839 -2177 26 4 v 31 w(new)p 3010 2177 V 30 w(R)l(e)l(g)p 3169 -2177 V 30 w(Polygon)12 b Fm(:)83 b(1038.)2033 2278 y -Fk(Reg)p 2201 2278 29 5 v 39 w(P)m(olygon)5 b Fm(::)p -Fi(dr)l(aw)p 2798 2278 26 4 v 31 w(in)p 2901 2278 V 31 -w(cir)l(cle)11 b Fm(:)84 b(1046,)28 b(1047,)h(1267,)2199 -2377 y(1268.)2033 2478 y Fk(Reg)p 2201 2478 29 5 v 39 -w(P)m(olygon)5 b Fm(::)p Fi(dr)l(aw)p 2798 2478 26 4 -v 31 w(out)p 2944 2478 V 30 w(cir)l(cle)12 b Fm(:)83 -b(1050,)25 b(1051,)h(1270,)2199 2578 y(1271,)42 b(1272.)2033 -2679 y Fk(Reg)p 2201 2679 29 5 v 39 w(P)m(olygon)5 b -Fm(::)p Fi(get)p 2732 2679 26 4 v 30 w(r)l(adius)12 b -Fm(:)83 b(1042.)2033 2779 y Fk(Reg)p 2201 2779 29 5 v -39 w(P)m(olygon)5 b Fm(::)p Fi(in)p 2700 2779 26 4 v -31 w(cir)l(cle)11 b Fm(:)83 b(1044,)32 b(1265.)2033 2880 -y Fk(Reg)p 2201 2880 29 5 v 39 w(P)m(olygon)5 b Fm(::)p -Fi(out)p 2743 2880 26 4 v 30 w(cir)l(cle)12 b Fm(:)83 -b(1048,)31 b(1269.)2033 2981 y Fk(Reg)p 2201 2981 29 -5 v 39 w(P)m(olygon)5 b Fm(::)p Fi(R)l(e)l(g)p 2757 2981 -26 4 v 30 w(Polygon)12 b Fm(:)83 b(1026,)30 b(1029.)2033 -3082 y Fk(Reg)p 2201 3082 29 5 v 39 w(P)m(olygon)5 b -Fm(::)p Fi(set)12 b Fm(:)83 b(1032.)2033 3183 y Fk(Solid)t -Fm(::)p Fi(~Solid)14 b Fm(:)83 b(1300.)2033 3283 y Fk(Solid)t -Fm(::)p Fi(apply)p 2483 3283 26 4 v 32 w(tr)l(ansform)11 -b Fm(:)83 b(1343.)2033 3384 y Fk(Solid)t Fm(::)p Fi(cle)l(ar)14 -b Fm(:)83 b(1338.)2033 3485 y Fk(Solid)t Fm(::)p Fi(cr)l(e)l(ate)p -2507 3485 V 30 w(new)p 2677 3485 V 31 w(solid)14 b Fm(:)83 -b(1298.)2033 3586 y Fk(Solid)t Fm(::)p Fi(dr)l(aw)14 -b Fm(:)83 b(1378.)2033 3687 y Fk(Solid)t Fm(::)p Fi(extr)l(act)11 -b Fm(:)83 b(1359.)2033 3787 y Fk(Solid)t Fm(::)p Fi(\014l)t(l)13 -b Fm(:)83 b(1381.)2033 3888 y Fk(Solid)t Fm(::)p Fi(\014l)t(ldr)l(aw)14 -b Fm(:)83 b(1384.)2033 3989 y Fk(Solid)t Fm(::)p Fi(get)p -2400 3989 V 30 w(c)l(enter)13 b Fm(:)83 b(1308.)2033 -4090 y Fk(Solid)t Fm(::)p Fi(get)p 2400 4090 V 30 w(cir)l(cle)p -2621 4090 V 32 w(c)l(enter)13 b Fm(:)83 b(1326.)2033 -4190 y Fk(Solid)t Fm(::)p Fi(get)p 2400 4190 V 30 w(cir)l(cle)p -2621 4190 V 32 w(ptr)13 b Fm(:)83 b(1313.)2033 4291 y -Fk(Solid)t Fm(::)p Fi(get)p 2400 4291 V 30 w(c)l(opy)13 -b Fm(:)83 b(1304.)2033 4392 y Fk(Solid)t Fm(::)p Fi(get)p -2400 4392 V 30 w(el)t(lipse)p 2653 4392 V 33 w(c)l(enter)13 -b Fm(:)83 b(1328.)2033 4493 y Fk(Solid)t Fm(::)p Fi(get)p -2400 4493 V 30 w(el)t(lipse)p 2653 4493 V 33 w(ptr)13 -b Fm(:)83 b(1315.)2033 4594 y Fk(Solid)t Fm(::)p Fi(get)p -2400 4594 V 30 w(extr)l(emes)11 b Fm(:)83 b(1363.)2033 -4694 y Fk(Solid)t Fm(::)p Fi(get)p 2400 4694 V 30 w(maximum)p -2785 4694 V 30 w(z)15 b Fm(:)83 b(1366.)2033 4795 y Fk(Solid)t -Fm(::)p Fi(get)p 2400 4795 V 30 w(me)l(an)p 2621 4795 -V 31 w(z)14 b Fm(:)83 b(1368.)2033 4896 y Fk(Solid)t -Fm(::)p Fi(get)p 2400 4896 V 30 w(minimum)p 2776 4896 -V 31 w(z)14 b Fm(:)83 b(1364.)2033 4997 y Fk(Solid)t -Fm(::)p Fi(get)p 2400 4997 V 30 w(p)l(ath)p 2580 4997 -V 31 w(ptr)14 b Fm(:)83 b(1317.)2033 5098 y Fk(Solid)t -Fm(::)p Fi(get)p 2400 5098 V 30 w(r)l(e)l(ctangle)p 2747 -5098 V 31 w(c)l(enter)13 b Fm(:)83 b(1330.)2033 5198 -y Fk(Solid)t Fm(::)p Fi(get)p 2400 5198 V 30 w(r)l(e)l(ctangle)p -2747 5198 V 31 w(ptr)13 b Fm(:)83 b(1319.)2033 5299 y -Fk(Solid)t Fm(::)p Fi(get)p 2400 5299 V 30 w(r)l(e)l(g)p -2533 5299 V 31 w(p)l(olygon)p 2832 5299 V 32 w(c)l(enter)13 -b Fm(:)83 b(1332.)2033 5400 y Fk(Solid)t Fm(::)p Fi(get)p -2400 5400 V 30 w(r)l(e)l(g)p 2533 5400 V 31 w(p)l(olygon)p -2832 5400 V 32 w(ptr)13 b Fm(:)83 b(1321.)p eop end -%%Page: 483 483 -TeXDict begin 483 482 bop 0 83 a Fn(x)p Fm(1517)139 b -Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(483)0 263 y Fk(Solid)t -Fm(::)p Fi(get)p 367 263 26 4 v 30 w(shap)l(e)p 591 263 -V 32 w(c)l(enter)13 b Fm(:)83 b(1324.)0 364 y Fk(Solid)t -Fm(::)p Fi(get)p 367 364 V 30 w(shap)l(e)p 591 364 V -32 w(ptr)13 b Fm(:)83 b(1311.)0 465 y Fk(Solid)t Fm(::)p -Fi(is)p 322 465 V 31 w(on)p 442 465 V 30 w(fr)l(e)l(e)p -600 465 V 31 w(stor)l(e)11 b Fm(:)83 b(1334.)0 565 y -Fk(Solid)t Fm(::)p Fi(output)11 b Fm(:)83 b(1374.)0 666 -y Fk(Solid)t Fm(::)p Fi(r)l(otate)10 b Fm(:)83 b(1354,)37 -b(1356.)0 767 y Fk(Solid)t Fm(::)p Fi(sc)l(ale)11 b Fm(:)83 -b(1345.)0 868 y Fk(Solid)t Fm(::)p Fi(set)p 363 868 V -30 w(extr)l(emes)10 b Fm(:)83 b(1361.)0 968 y Fk(Solid)t -Fm(::)p Fi(set)p 363 968 V 30 w(on)p 482 968 V 31 w(fr)l(e)l(e)p -641 968 V 31 w(stor)l(e)10 b Fm(:)83 b(1306.)0 1069 y -Fk(Solid)t Fm(::)p Fi(she)l(ar)14 b Fm(:)83 b(1347.)0 -1170 y Fk(Solid)t Fm(::)p Fi(shift)13 b Fm(:)83 b(1350,)38 -b(1352.)0 1270 y Fk(Solid)t Fm(::)p Fi(show)14 b Fm(:)83 -b(1336.)0 1371 y Fk(Solid)t Fm(::)p Fi(Solid)14 b Fm(:)83 -b(1294,)37 b(1296.)0 1472 y Fk(Solid)t Fm(::)p Fi(suppr)l(ess)p -563 1472 V 31 w(output)11 b Fm(:)83 b(1370.)0 1573 y -Fk(Solid)t Fm(::)p Fi(undr)l(aw)13 b Fm(:)83 b(1387.)0 -1673 y Fk(Solid)t Fm(::)p Fi(un\014l)t(l)12 b Fm(:)83 -b(1390.)0 1774 y Fk(Solid)t Fm(::)p Fi(un\014l)t(ldr)l(aw)13 -b Fm(:)83 b(1393.)0 1875 y Fk(Solid)t Fm(::)p Fi(unsuppr)l(ess)p -655 1875 V 30 w(output)11 b Fm(:)83 b(1372.)0 1976 y -Fk(T)-8 b(etrahedron)6 b Fm(::)p Fi(dr)l(aw)p 741 1976 -V 31 w(net)12 b Fm(:)83 b(1445.)0 2076 y Fk(T)-8 b(etrahedron)6 -b Fm(::)p Fi(get)p 675 2076 V 30 w(net)12 b Fm(:)83 b(1443.)0 -2177 y Fk(T)-8 b(etrahedron)6 b Fm(::)p Fi(set)12 b Fm(:)83 -b(1441.)0 2278 y Fk(T)-8 b(etrahedron)6 b Fm(::)p Fi(T)-6 -b(etr)l(ahe)l(dr)l(on)11 b Fm(:)83 b(1434,)31 b(1437.)0 -2379 y Fk(T)-8 b(ransform)5 b Fm(::)p Fi(align)p 659 -2379 V 32 w(with)p 841 2379 V 31 w(axis)12 b Fm(:)83 -b(168,)31 b(379.)0 2479 y Fk(T)-8 b(ransform)5 b Fm(::)p -Fi(cle)l(an)12 b Fm(:)83 b(136.)0 2580 y Fk(T)-8 b(ransform)5 -b Fm(::)p Fi(epsilon)13 b Fm(:)83 b(138.)0 2681 y Fk(T)-8 -b(ransform)5 b Fm(::)p Fi(get)p 590 2681 V 31 w(element)12 -b Fm(:)83 b(145.)0 2782 y Fk(T)-8 b(ransform)5 b Fm(::)p -Fi(inverse)12 b Fm(:)83 b(181,)35 b(187.)0 2882 y Fk(T)-8 -b(ransform)5 b Fm(::)p Fi(is)p 545 2882 V 32 w(identity)12 -b Fm(:)83 b(140,)34 b(142.)0 2983 y Fk(T)-8 b(ransform)5 -b Fm(::)p Fi(r)l(eset)12 b Fm(:)83 b(132.)0 3084 y Fk(T)-8 +2379 26 4 v 31 w(new)p 3010 2379 V 30 w(R)l(e)l(g)p 3169 +2379 V 30 w(Polygon)12 b Fm(:)83 b(1041.)2033 2479 y +Fk(Reg)p 2201 2479 29 5 v 39 w(P)m(olygon)5 b Fm(::)p +Fi(dr)l(aw)p 2798 2479 26 4 v 31 w(in)p 2901 2479 V 31 +w(cir)l(cle)11 b Fm(:)84 b(1049,)28 b(1050,)h(1272,)2199 +2579 y(1273.)2033 2680 y Fk(Reg)p 2201 2680 29 5 v 39 +w(P)m(olygon)5 b Fm(::)p Fi(dr)l(aw)p 2798 2680 26 4 +v 31 w(out)p 2944 2680 V 30 w(cir)l(cle)12 b Fm(:)83 +b(1053,)25 b(1054,)h(1275,)2199 2779 y(1276,)42 b(1277.)2033 +2880 y Fk(Reg)p 2201 2880 29 5 v 39 w(P)m(olygon)5 b +Fm(::)p Fi(get)p 2732 2880 26 4 v 30 w(r)l(adius)12 b +Fm(:)83 b(1045.)2033 2981 y Fk(Reg)p 2201 2981 29 5 v +39 w(P)m(olygon)5 b Fm(::)p Fi(in)p 2700 2981 26 4 v +31 w(cir)l(cle)11 b Fm(:)83 b(1047,)32 b(1270.)2033 3082 +y Fk(Reg)p 2201 3082 29 5 v 39 w(P)m(olygon)5 b Fm(::)p +Fi(out)p 2743 3082 26 4 v 30 w(cir)l(cle)12 b Fm(:)83 +b(1051,)31 b(1274.)2033 3183 y Fk(Reg)p 2201 3183 29 +5 v 39 w(P)m(olygon)5 b Fm(::)p Fi(R)l(e)l(g)p 2757 3183 +26 4 v 30 w(Polygon)12 b Fm(:)83 b(1029,)30 b(1032.)2033 +3283 y Fk(Reg)p 2201 3283 29 5 v 39 w(P)m(olygon)5 b +Fm(::)p Fi(set)12 b Fm(:)83 b(1035.)2033 3384 y Fk(Solid)t +Fm(::)p Fi(~Solid)14 b Fm(:)83 b(1305.)2033 3485 y Fk(Solid)t +Fm(::)p Fi(apply)p 2483 3485 26 4 v 32 w(tr)l(ansform)11 +b Fm(:)83 b(1348.)2033 3586 y Fk(Solid)t Fm(::)p Fi(cle)l(ar)14 +b Fm(:)83 b(1343.)2033 3687 y Fk(Solid)t Fm(::)p Fi(cr)l(e)l(ate)p +2507 3687 V 30 w(new)p 2677 3687 V 31 w(solid)14 b Fm(:)83 +b(1303.)2033 3787 y Fk(Solid)t Fm(::)p Fi(dr)l(aw)14 +b Fm(:)83 b(1383.)2033 3888 y Fk(Solid)t Fm(::)p Fi(extr)l(act)11 +b Fm(:)83 b(1364.)2033 3989 y Fk(Solid)t Fm(::)p Fi(\014l)t(l)13 +b Fm(:)83 b(1386.)2033 4090 y Fk(Solid)t Fm(::)p Fi(\014l)t(ldr)l(aw)14 +b Fm(:)83 b(1389.)2033 4190 y Fk(Solid)t Fm(::)p Fi(get)p +2400 4190 V 30 w(c)l(enter)13 b Fm(:)83 b(1313.)2033 +4291 y Fk(Solid)t Fm(::)p Fi(get)p 2400 4291 V 30 w(cir)l(cle)p +2621 4291 V 32 w(c)l(enter)13 b Fm(:)83 b(1331.)2033 +4392 y Fk(Solid)t Fm(::)p Fi(get)p 2400 4392 V 30 w(cir)l(cle)p +2621 4392 V 32 w(ptr)13 b Fm(:)83 b(1318.)2033 4493 y +Fk(Solid)t Fm(::)p Fi(get)p 2400 4493 V 30 w(c)l(opy)13 +b Fm(:)83 b(1309.)2033 4594 y Fk(Solid)t Fm(::)p Fi(get)p +2400 4594 V 30 w(el)t(lipse)p 2653 4594 V 33 w(c)l(enter)13 +b Fm(:)83 b(1333.)2033 4694 y Fk(Solid)t Fm(::)p Fi(get)p +2400 4694 V 30 w(el)t(lipse)p 2653 4694 V 33 w(ptr)13 +b Fm(:)83 b(1320.)2033 4795 y Fk(Solid)t Fm(::)p Fi(get)p +2400 4795 V 30 w(extr)l(emes)11 b Fm(:)83 b(1368.)2033 +4896 y Fk(Solid)t Fm(::)p Fi(get)p 2400 4896 V 30 w(maximum)p +2785 4896 V 30 w(z)15 b Fm(:)83 b(1371.)2033 4997 y Fk(Solid)t +Fm(::)p Fi(get)p 2400 4997 V 30 w(me)l(an)p 2621 4997 +V 31 w(z)14 b Fm(:)83 b(1373.)2033 5098 y Fk(Solid)t +Fm(::)p Fi(get)p 2400 5098 V 30 w(minimum)p 2776 5098 +V 31 w(z)14 b Fm(:)83 b(1369.)2033 5198 y Fk(Solid)t +Fm(::)p Fi(get)p 2400 5198 V 30 w(p)l(ath)p 2580 5198 +V 31 w(ptr)14 b Fm(:)83 b(1322.)2033 5299 y Fk(Solid)t +Fm(::)p Fi(get)p 2400 5299 V 30 w(r)l(e)l(ctangle)p 2747 +5299 V 31 w(c)l(enter)13 b Fm(:)83 b(1335.)2033 5400 +y Fk(Solid)t Fm(::)p Fi(get)p 2400 5400 V 30 w(r)l(e)l(ctangle)p +2747 5400 V 31 w(ptr)13 b Fm(:)83 b(1324.)p eop end +%%Page: 488 488 +TeXDict begin 488 487 bop 0 83 a Fm(488)140 b Fl(INDEX)2670 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1525)0 263 y Fk(Solid)t +Fm(::)p Fi(get)p 367 263 26 4 v 30 w(r)l(e)l(g)p 500 +263 V 31 w(p)l(olygon)p 799 263 V 32 w(c)l(enter)12 b +Fm(:)84 b(1337.)0 364 y Fk(Solid)t Fm(::)p Fi(get)p 367 +364 V 30 w(r)l(e)l(g)p 500 364 V 31 w(p)l(olygon)p 799 +364 V 32 w(ptr)13 b Fm(:)83 b(1326.)0 465 y Fk(Solid)t +Fm(::)p Fi(get)p 367 465 V 30 w(shap)l(e)p 591 465 V +32 w(c)l(enter)13 b Fm(:)83 b(1329.)0 565 y Fk(Solid)t +Fm(::)p Fi(get)p 367 565 V 30 w(shap)l(e)p 591 565 V +32 w(ptr)13 b Fm(:)83 b(1316.)0 666 y Fk(Solid)t Fm(::)p +Fi(is)p 322 666 V 31 w(on)p 442 666 V 30 w(fr)l(e)l(e)p +600 666 V 31 w(stor)l(e)11 b Fm(:)83 b(1339.)0 767 y +Fk(Solid)t Fm(::)p Fi(output)11 b Fm(:)83 b(1379.)0 868 +y Fk(Solid)t Fm(::)p Fi(r)l(otate)10 b Fm(:)83 b(1359,)37 +b(1361.)0 968 y Fk(Solid)t Fm(::)p Fi(sc)l(ale)11 b Fm(:)83 +b(1350.)0 1069 y Fk(Solid)t Fm(::)p Fi(set)p 363 1069 +V 30 w(extr)l(emes)10 b Fm(:)83 b(1366.)0 1170 y Fk(Solid)t +Fm(::)p Fi(set)p 363 1170 V 30 w(on)p 482 1170 V 31 w(fr)l(e)l(e)p +641 1170 V 31 w(stor)l(e)10 b Fm(:)83 b(1311.)0 1270 +y Fk(Solid)t Fm(::)p Fi(she)l(ar)14 b Fm(:)83 b(1352.)0 +1371 y Fk(Solid)t Fm(::)p Fi(shift)13 b Fm(:)83 b(1355,)38 +b(1357.)0 1472 y Fk(Solid)t Fm(::)p Fi(show)14 b Fm(:)83 +b(1341.)0 1573 y Fk(Solid)t Fm(::)p Fi(Solid)14 b Fm(:)83 +b(1299,)37 b(1301.)0 1673 y Fk(Solid)t Fm(::)p Fi(suppr)l(ess)p +563 1673 V 31 w(output)11 b Fm(:)83 b(1375.)0 1774 y +Fk(Solid)t Fm(::)p Fi(undr)l(aw)13 b Fm(:)83 b(1392.)0 +1875 y Fk(Solid)t Fm(::)p Fi(un\014l)t(l)12 b Fm(:)83 +b(1395.)0 1976 y Fk(Solid)t Fm(::)p Fi(un\014l)t(ldr)l(aw)13 +b Fm(:)83 b(1398.)0 2076 y Fk(Solid)t Fm(::)p Fi(unsuppr)l(ess)p +655 2076 V 30 w(output)11 b Fm(:)83 b(1377.)0 2177 y +Fk(T)-8 b(etrahedron)6 b Fm(::)p Fi(dr)l(aw)p 741 2177 +V 31 w(net)12 b Fm(:)83 b(1450.)0 2278 y Fk(T)-8 b(etrahedron)6 +b Fm(::)p Fi(get)p 675 2278 V 30 w(net)12 b Fm(:)83 b(1448.)0 +2379 y Fk(T)-8 b(etrahedron)6 b Fm(::)p Fi(set)12 b Fm(:)83 +b(1446.)0 2479 y Fk(T)-8 b(etrahedron)6 b Fm(::)p Fi(T)-6 +b(etr)l(ahe)l(dr)l(on)11 b Fm(:)83 b(1439,)31 b(1442.)0 +2580 y Fk(T)-8 b(ransform)5 b Fm(::)p Fi(align)p 659 +2580 V 32 w(with)p 841 2580 V 31 w(axis)12 b Fm(:)83 +b(168,)31 b(379.)0 2681 y Fk(T)-8 b(ransform)5 b Fm(::)p +Fi(cle)l(an)12 b Fm(:)83 b(136.)0 2782 y Fk(T)-8 b(ransform)5 +b Fm(::)p Fi(epsilon)13 b Fm(:)83 b(138.)0 2882 y Fk(T)-8 +b(ransform)5 b Fm(::)p Fi(get)p 590 2882 V 31 w(element)12 +b Fm(:)83 b(145.)0 2983 y Fk(T)-8 b(ransform)5 b Fm(::)p +Fi(inverse)12 b Fm(:)83 b(181,)35 b(187.)0 3084 y Fk(T)-8 +b(ransform)5 b Fm(::)p Fi(is)p 545 3084 V 32 w(identity)12 +b Fm(:)83 b(140,)34 b(142.)0 3185 y Fk(T)-8 b(ransform)5 +b Fm(::)p Fi(r)l(eset)12 b Fm(:)83 b(132.)0 3285 y Fk(T)-8 b(ransform)5 b Fm(::)p Fi(r)l(otate)11 b Fm(:)83 b(160,)29 -b(166,)g(167,)g(395,)g(716.)0 3185 y Fk(T)-8 b(ransform)5 -b Fm(::)p Fi(sc)l(ale)12 b Fm(:)83 b(150.)0 3285 y Fk(T)-8 -b(ransform)5 b Fm(::)p Fi(set)p 586 3285 V 31 w(element)12 -b Fm(:)83 b(134.)0 3386 y Fk(T)-8 b(ransform)5 b Fm(::)p -Fi(she)l(ar)15 b Fm(:)83 b(152.)0 3487 y Fk(T)-8 b(ransform)5 +b(166,)g(167,)g(395,)g(716.)0 3386 y Fk(T)-8 b(ransform)5 +b Fm(::)p Fi(sc)l(ale)12 b Fm(:)83 b(150.)0 3487 y Fk(T)-8 +b(ransform)5 b Fm(::)p Fi(set)p 586 3487 V 31 w(element)12 +b Fm(:)83 b(134.)0 3588 y Fk(T)-8 b(ransform)5 b Fm(::)p +Fi(she)l(ar)15 b Fm(:)83 b(152.)0 3688 y Fk(T)-8 b(ransform)5 b Fm(::)p Fi(shift)14 b Fm(:)83 b(155,)31 b(157,)h(158,)g(372.)0 -3588 y Fk(T)-8 b(ransform)5 b Fm(::)p Fi(show)15 b Fm(:)83 -b(147.)0 3688 y Fk(T)-8 b(ransform)5 b Fm(::)p Fi(T)-6 +3789 y Fk(T)-8 b(ransform)5 b Fm(::)p Fi(show)15 b Fm(:)83 +b(147.)0 3890 y Fk(T)-8 b(ransform)5 b Fm(::)p Fi(T)-6 b(r)l(ansform)12 b Fm(:)83 b(124,)31 b(126,)g(128.)0 -3789 y Fk(T)-8 b(runc)p 249 3789 29 5 v 41 w(Octahedron)6 -b Fm(::)p Fi(get)p 934 3789 26 4 v 30 w(net)12 b Fm(:)83 -b(1484.)0 3890 y Fk(T)-8 b(runc)p 249 3890 29 5 v 41 -w(Octahedron)6 b Fm(::)p Fi(T)-6 b(runc)p 1048 3890 26 -4 v 30 w(Octahe)l(dr)l(on)11 b Fm(:)83 b(1479,)166 3990 -y(1482.)0 4090 y Fk(Circle)t Fm(::)p Fi(op)l(er)l(ator=)11 -b Fm(:)83 b(1248,)35 b(1250.)0 4191 y Fk(Color)t Fm(::)p -Fi(op)l(er)l(ator!=)11 b Fm(:)83 b(77.)0 4292 y Fk(Color)t -Fm(::)p Fi(op)l(er)l(ator==)10 b Fm(:)83 b(75.)0 4393 +3991 y Fk(T)-8 b(runc)p 249 3991 29 5 v 41 w(Octahedron)6 +b Fm(::)p Fi(get)p 934 3991 26 4 v 30 w(net)12 b Fm(:)83 +b(1489.)0 4091 y Fk(T)-8 b(runc)p 249 4091 29 5 v 41 +w(Octahedron)6 b Fm(::)p Fi(T)-6 b(runc)p 1048 4091 26 +4 v 30 w(Octahe)l(dr)l(on)11 b Fm(:)83 b(1484,)166 4191 +y(1487.)0 4292 y Fk(Circle)t Fm(::)p Fi(op)l(er)l(ator=)11 +b Fm(:)83 b(1253,)35 b(1255.)0 4393 y Fk(Color)t Fm(::)p +Fi(op)l(er)l(ator!=)11 b Fm(:)83 b(77.)0 4493 y Fk(Color)t +Fm(::)p Fi(op)l(er)l(ator==)10 b Fm(:)83 b(75.)0 4594 y Fk(Color)t Fm(::)p Fi(op)l(er)l(ator=)11 b Fm(:)83 -b(73.)0 4493 y Fk(Cub)s(oid)t Fm(::)p Fi(op)l(er)l(ator=)10 -b Fm(:)83 b(1420.)0 4594 y Fk(Ellipse)s Fm(::)p Fi(op)l(er)l(ator*=)10 -b Fm(:)84 b(1189.)0 4695 y Fk(Ellipse)s Fm(::)p Fi(op)l(er)l(ator=)10 -b Fm(:)83 b(1114.)0 4796 y Fk(Ellipse)s Fm(::)p Fi(op)l(er)l(ator)l(do) -p 709 4796 V 32 w(tr)l(ansform)11 b Fm(:)83 b(1187.)0 -4896 y Fk(Line)5 b Fm(::)p Fi(op)l(er)l(ator=)10 b Fm(:)83 -b(599.)0 4997 y Fk(P)m(ath)6 b Fm(::)p Fi(op)l(er)l(ator*=)11 -b Fm(:)83 b(738.)0 5098 y Fk(P)m(ath)6 b Fm(::)p Fi(op)l(er)l(ator+=)k -Fm(:)83 b(754,)36 b(758.)0 5199 y Fk(P)m(ath)6 b Fm(::)p -Fi(op)l(er)l(ator+)i Fm(:)83 b(756.)0 5299 y Fk(P)m(ath)6 -b Fm(::)p Fi(op)l(er)l(ator==)k Fm(:)83 b(914.)0 5400 +b(73.)0 4695 y Fk(Cub)s(oid)t Fm(::)p Fi(op)l(er)l(ator=)10 +b Fm(:)83 b(1425.)0 4796 y Fk(Ellipse)s Fm(::)p Fi(op)l(er)l(ator*=)10 +b Fm(:)84 b(1194.)0 4896 y Fk(Ellipse)s Fm(::)p Fi(op)l(er)l(ator=)10 +b Fm(:)83 b(1119.)0 4997 y Fk(Ellipse)s Fm(::)p Fi(op)l(er)l(ator)l(do) +p 709 4997 V 32 w(tr)l(ansform)11 b Fm(:)83 b(1192.)0 +5098 y Fk(Line)5 b Fm(::)p Fi(op)l(er)l(ator=)10 b Fm(:)83 +b(599.)0 5199 y Fk(P)m(ath)6 b Fm(::)p Fi(op)l(er)l(ator*=)11 +b Fm(:)83 b(738.)0 5299 y Fk(P)m(ath)6 b Fm(::)p Fi(op)l(er)l(ator+=)k +Fm(:)83 b(754,)36 b(758.)0 5400 y Fk(P)m(ath)6 b Fm(::)p +Fi(op)l(er)l(ator+)i Fm(:)83 b(756.)2033 263 y Fk(P)m(ath)6 +b Fm(::)p Fi(op)l(er)l(ator==)k Fm(:)83 b(917.)2033 364 y Fk(P)m(ath)6 b Fm(::)p Fi(op)l(er)l(ator=)11 b Fm(:)83 -b(656.)2033 263 y Fk(P)m(ath)6 b Fm(::)p Fi(op)l(er)l(ator&=)k -Fm(:)83 b(762.)2033 364 y Fk(P)m(ath)6 b Fm(::)p Fi(op)l(er)l(ator&)13 -b Fm(:)83 b(767.)2033 465 y Fk(Picture)5 b Fm(::)p Fi(op)l(er)l(ator*=) -11 b Fm(:)83 b(246.)2033 566 y Fk(Picture)5 b Fm(::)p +b(656.)2033 465 y Fk(P)m(ath)6 b Fm(::)p Fi(op)l(er)l(ator&=)k +Fm(:)83 b(762.)2033 566 y Fk(P)m(ath)6 b Fm(::)p Fi(op)l(er)l(ator&)13 +b Fm(:)83 b(767.)2033 666 y Fk(Picture)5 b Fm(::)p Fi(op)l(er)l(ator*=) +11 b Fm(:)83 b(246.)2033 767 y Fk(Picture)5 b Fm(::)p Fi(op)l(er)l(ator+=)10 b Fm(:)84 b(224,)30 b(225,)f(227,)h(545.)2033 -667 y Fk(Picture)5 b Fm(::)p Fi(op)l(er)l(ator=)11 b -Fm(:)83 b(222.)2033 767 y Fk(P)m(oin)m(t)5 b Fm(::)p -Fi(op)l(er)l(ator!=)11 b Fm(:)83 b(525.)2033 868 y Fk(P)m(oin)m(t)5 +868 y Fk(Picture)5 b Fm(::)p Fi(op)l(er)l(ator=)11 b +Fm(:)83 b(222.)2033 969 y Fk(P)m(oin)m(t)5 b Fm(::)p +Fi(op)l(er)l(ator!=)11 b Fm(:)83 b(525.)2033 1070 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(op)l(er)l(ator*=)11 b Fm(:)83 b(474,)36 -b(485.)2033 969 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(op)l(er)l(ator*)18 -b Fm(:)83 b(488.)2033 1070 y Fk(P)m(oin)m(t)5 b Fm(::)p -Fi(op)l(er)l(ator+=)10 b Fm(:)83 b(479.)2033 1171 y Fk(P)m(oin)m(t)5 -b Fm(::)p Fi(op)l(er)l(ator+)j Fm(:)83 b(477.)2033 1272 +b(485.)2033 1171 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(op)l(er)l(ator*)18 +b Fm(:)83 b(488.)2033 1271 y Fk(P)m(oin)m(t)5 b Fm(::)p +Fi(op)l(er)l(ator+=)10 b Fm(:)83 b(479.)2033 1372 y Fk(P)m(oin)m(t)5 +b Fm(::)p Fi(op)l(er)l(ator+)j Fm(:)83 b(477.)2033 1473 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(op)l(er)l(ator-=)10 b -Fm(:)84 b(483.)2033 1373 y Fk(P)m(oin)m(t)5 b Fm(::)p -Fi(op)l(er)l(ator-)j Fm(:)83 b(481,)37 b(492.)2033 1473 +Fm(:)84 b(483.)2033 1574 y Fk(P)m(oin)m(t)5 b Fm(::)p +Fi(op)l(er)l(ator-)j Fm(:)83 b(481,)37 b(492.)2033 1675 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(op)l(er)l(ator/=)11 b -Fm(:)83 b(494.)2033 1574 y Fk(P)m(oin)m(t)5 b Fm(::)p -Fi(op)l(er)l(ator/)19 b Fm(:)84 b(496.)2033 1675 y Fk(P)m(oin)m(t)5 +Fm(:)83 b(494.)2033 1776 y Fk(P)m(oin)m(t)5 b Fm(::)p +Fi(op)l(er)l(ator/)19 b Fm(:)84 b(496.)2033 1877 y Fk(P)m(oin)m(t)5 b Fm(::)p Fi(op)l(er)l(ator==)10 b Fm(:)83 b(515,)34 -b(516,)f(523.)2033 1776 y Fk(P)m(oin)m(t)5 b Fm(::)p -Fi(op)l(er)l(ator=)11 b Fm(:)83 b(299.)2033 1877 y Fk(P)m(olygon)5 -b Fm(::)p Fi(op)l(er)l(ator*=)11 b Fm(:)83 b(998.)2033 -1978 y Fk(Rectangle)t Fm(::)p Fi(op)l(er)l(ator=)11 b -Fm(:)83 b(1076.)2033 2079 y Fk(Reg)p 2201 2079 29 5 v +b(516,)f(523.)2033 1977 y Fk(P)m(oin)m(t)5 b Fm(::)p +Fi(op)l(er)l(ator=)11 b Fm(:)83 b(299.)2033 2078 y Fk(P)m(olygon)5 +b Fm(::)p Fi(op)l(er)l(ator*=)11 b Fm(:)83 b(1001.)2033 +2179 y Fk(Rectangle)t Fm(::)p Fi(op)l(er)l(ator=)11 b +Fm(:)83 b(1079.)2033 2280 y Fk(Reg)p 2201 2280 29 5 v 39 w(P)m(olygon)5 b Fm(::)p Fi(op)l(er)l(ator=)10 b Fm(:)83 -b(1023.)2033 2180 y Fk(Solid)t Fm(::)p Fi(op)l(er)l(ator*=)11 -b Fm(:)83 b(1341.)2033 2280 y Fk(Solid)t Fm(::)p Fi(op)l(er)l(ator=)10 -b Fm(:)83 b(1302.)2033 2381 y Fk(T)-8 b(ransform)5 b +b(1026.)2033 2381 y Fk(Solid)t Fm(::)p Fi(op)l(er)l(ator*=)11 +b Fm(:)83 b(1346.)2033 2482 y Fk(Solid)t Fm(::)p Fi(op)l(er)l(ator=)10 +b Fm(:)83 b(1307.)2033 2582 y Fk(T)-8 b(ransform)5 b Fm(::)p Fi(op)l(er)l(ator*=)11 b Fm(:)84 b(171,)33 b(173.)2033 -2482 y Fk(T)-8 b(ransform)5 b Fm(::)p Fi(op)l(er)l(ator*)19 -b Fm(:)83 b(176,)34 b(178.)2033 2583 y Fk(T)-8 b(ransform)5 +2683 y Fk(T)-8 b(ransform)5 b Fm(::)p Fi(op)l(er)l(ator*)19 +b Fm(:)83 b(176,)34 b(178.)2033 2784 y Fk(T)-8 b(ransform)5 b Fm(::)p Fi(op)l(er)l(ator=)11 b Fm(:)83 b(130.)2033 -2684 y Fi(op)l(er)l(ator)p Fn(\034)5 b Fm(:)83 b(103,)40 -b(436.)2033 2785 y Fi(op)l(er)l(ator*)18 b Fm(:)83 b(490.)2033 -2886 y Ff(__CXXL_PI)q Fm(:)g(36.)2033 2987 y Ff(__DECCXX)q -Fm(:)g(6,)28 b(7,)f(15,)g(23,)g(25,)g(36,)g(44,)g(278,)f(399,)h(1502.) -2033 3087 y Ff(__GNUC__)q Fm(:)83 b(7,)28 b(16,)f(21,)g(26,)g(44,)g -(278,)f(399,)h(1498,)f(1502.)2033 3188 y Ff(__USE_STD_IOSTRE)o(AM)n -Fm(:)83 b(7)p 2928 3201 42 4 v(.)2033 3289 y Ff(_GNU_SOURCE)p -Fm(:)g(7)p 2623 3302 V -1 w(.)p 2038 3390 26 4 v 2064 -3390 a Fi(ptr)13 b Fm(:)83 b(1307.)2033 3491 y Fe(A)p -Fm(:)g(1307)p 2201 3504 167 4 v -2 w(.)2033 3592 y Fe(a)p -Fm(:)g(13)p 2183 3605 84 4 v -1 w(,)33 b(29)p 2322 3605 -V -1 w(,)h(30)p 2462 3605 V -1 w(,)f(179)p 2601 3605 -125 4 v -2 w(,)h(270)p 2782 3605 V -2 w(,)g(292)p 2963 -3605 V -2 w(,)f(294)p 3143 3605 V -1 w(,)g(296)p 3324 -3605 V -1 w(,)g(346)p 3505 3605 V -1 w(,)g(353)p 3686 -3605 V -2 w(,)2199 3691 y(389)p 2199 3704 V -1 w(,)i(393)p -2382 3704 V -2 w(,)h(395)p 2565 3704 V -2 w(,)g(478)p -2748 3704 V -2 w(,)f(482)p 2930 3704 V -1 w(,)g(489)p -3113 3704 V -1 w(,)g(493)p 3296 3704 V -1 w(,)g(497)p -3479 3704 V -2 w(,)h(499)p 3662 3704 V -2 w(,)2199 3791 -y(501)p 2199 3804 V -1 w(,)f(503)p 2382 3804 V -2 w(,)h(510)p -2565 3804 V -2 w(,)g(516)p 2748 3804 V -2 w(,)f(681)p -2930 3804 V -1 w(,)g(683)p 3113 3804 V -1 w(,)g(879)p -3296 3804 V -1 w(,)g(880)p 3479 3804 V -2 w(,)h(886)p -3662 3804 V -2 w(,)2199 3891 y(887)p 2199 3904 V -1 w(,)g(888)p -2383 3904 V -1 w(,)h(1122)p 2568 3904 167 4 v -2 w(,)f(1178)p -2793 3904 V -2 w(,)h(1263)p 3019 3904 V -2 w(.)2033 3992 -y Fi(a)p 2080 3992 26 4 v 31 w(m)p 2179 3992 V 30 w(c)l(o)l(or)l(d)14 -b Fm(:)83 b(346)p 2511 4005 125 4 v -1 w(,)41 b(347.)2033 -4092 y Fi(a)p 2080 4092 26 4 v 31 w(n)p 2158 4092 V 30 -w(c)l(o)l(or)l(d)14 b Fm(:)83 b(346)p 2490 4105 125 4 -v -2 w(,)42 b(347.)2033 4193 y Fi(a)p 2080 4193 26 4 -v 31 w(x)14 b Fm(:)83 b(606)p 2265 4206 125 4 v -2 w(.)2033 -4294 y Fi(a)p 2080 4294 26 4 v 31 w(y)12 b Fm(:)83 b(606)p -2264 4307 125 4 v -1 w(.)2033 4395 y Fi(a)p 2080 4395 -26 4 v 31 w(z)14 b Fm(:)83 b(606)p 2260 4408 125 4 v --1 w(.)2033 4496 y Fi(aa)12 b Fm(:)83 b(1178)p 2235 4509 -167 4 v -2 w(.)2033 4597 y Fi(aarr)l(ow)14 b Fm(:)84 -b(419)p 2401 4610 125 4 v -2 w(,)29 b(420)p 2577 4610 -V -1 w(,)g(775)p 2754 4610 V -1 w(,)g(776)p 2931 4610 -V -2 w(,)h(777)p 3108 4610 V -2 w(,)f(778)p 3284 4610 -V -1 w(,)g(780)p 3461 4610 V -1 w(,)g(781)p 3638 4610 -V -2 w(.)2033 4698 y Fi(aaxis)p 2220 4698 26 4 v 31 w(h)11 -b Fm(:)83 b(1061)p 2405 4711 167 4 v -1 w(,)40 b(1062)p -2635 4711 V -2 w(,)h(1063)p 2865 4711 V -2 w(,)g(1064)p -3095 4711 V -2 w(,)g(1104)p 3325 4711 V -2 w(,)g(1105)p -3555 4711 V -2 w(,)2199 4797 y(1106)p 2199 4810 V -2 -w(,)j(1107)p 2432 4810 V -1 w(.)2033 4898 y Fi(aaxis)p -2220 4898 26 4 v 31 w(v)14 b Fm(:)83 b(1061)p 2404 4911 -167 4 v -2 w(,)41 b(1062)p 2634 4911 V -2 w(,)g(1063)p -2864 4911 V -2 w(,)g(1064)p 3094 4911 V -2 w(,)f(1104)p -3323 4911 V -2 w(,)h(1105)p 3553 4911 V -2 w(,)2199 4998 -y(1106)p 2199 5011 V -2 w(,)j(1107)p 2432 5011 V -1 w(.)2033 -5099 y Fi(abs)12 b Fm(:)83 b(1279.)2033 5200 y Fi(ac)l(os)12 -b Fm(:)83 b(505.)2033 5300 y Fi(align)p 2211 5300 26 -4 v 32 w(with)p 2393 5300 V 31 w(axis)11 b Fm(:)83 b(168)p -2676 5313 125 4 v -1 w(,)29 b(264)p 2853 5313 V -2 w(,)h(379,)d(380)p -3206 5313 V -1 w(,)i(395,)e(561,)h(572,)2199 5400 y(747)p -2199 5413 V -1 w(,)33 b(748)p 2380 5413 V -2 w(,)h(749)p -2561 5413 V -2 w(,)f(750)p 2741 5413 V -1 w(,)g(751)p -2922 5413 V -1 w(,)g(752)p 3103 5413 V -2 w(,)h(946,)d(950,)h(1122,)p -eop end -%%Page: 484 484 -TeXDict begin 484 483 bop 0 83 a Fm(484)140 b Fl(INDEX)2670 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1517)166 263 y(1177,)31 -b(1223,)g(1224,)g(1265,)g(1269,)g(1454.)0 365 y Fi(ang)12 -b Fm(:)83 b(559,)30 b(560)p 424 378 125 4 v -2 w(,)i(561)p -603 378 V -2 w(,)g(562)p 782 378 V -2 w(,)f(563)p 960 -378 V -1 w(,)g(565)p 1139 378 V -1 w(,)g(566)p 1318 378 -V -1 w(,)g(567)p 1497 378 V -1 w(,)g(568)p 1676 378 V --1 w(,)166 464 y(571)p 166 477 V -1 w(,)40 b(572)p 354 -477 V -2 w(,)g(954)p 541 477 V -1 w(,)g(1122)p 729 477 -167 4 v -2 w(.)0 566 y Fi(angle)11 b Fm(:)83 b(166)p -303 579 125 4 v -1 w(,)28 b(167)p 479 579 V -1 w(,)g(243)p -655 579 V -1 w(,)g(380)p 831 579 V -1 w(,)g(382,)f(384,)g(385,)g(386,)g -(387,)166 666 y(391,)34 b(392)p 349 679 V -2 w(,)i(393)p -532 679 V -2 w(,)g(394)p 715 679 V -2 w(,)f(395)p 897 -679 V -1 w(,)g(396)p 1080 679 V -1 w(,)g(504)p 1263 679 -V -1 w(,)g(505)p 1446 679 V -2 w(,)h(556)p 1629 679 V --2 w(,)166 765 y(557,)e(559,)g(561,)g(570,)f(572,)h(574,)g(716)p -1263 778 V -1 w(,)h(717)p 1446 778 V -2 w(,)h(719)p 1629 -778 V -2 w(,)166 865 y(720)p 166 878 V -1 w(,)f(721)p -349 878 V -2 w(,)h(722)p 532 878 V -2 w(,)g(947)p 715 -878 V -2 w(,)f(948)p 897 878 V -1 w(,)g(950,)f(954,)g(964)p -1446 878 V -2 w(,)i(965)p 1629 878 V -2 w(,)166 965 y(966)p -166 978 V -1 w(,)31 b(967)p 345 978 V -1 w(,)h(1003)p -525 978 167 4 v -2 w(,)g(1004)p 746 978 V -2 w(,)f(1005)p -966 978 V -2 w(,)h(1006)p 1187 978 V -2 w(,)g(1122,)e(1158)p -1629 978 V -2 w(,)166 1064 y(1159)p 166 1077 V -2 w(,)d(1208)p -382 1077 V -2 w(,)g(1209)p 598 1077 V -2 w(,)g(1210)p -814 1077 V -2 w(,)g(1211)p 1030 1077 V -2 w(,)g(1223)p -1246 1077 V -2 w(,)g(1224)p 1462 1077 V -2 w(,)g(1356)p -1678 1077 V -2 w(,)166 1164 y(1357)p 166 1177 V -2 w(,)36 -b(1438)p 391 1177 V -2 w(,)g(1455)p 616 1177 V -2 w(,)f(1456,)f(1469)p -1065 1177 V -2 w(.)0 1266 y Fi(angle)p 191 1266 26 4 -v 31 w(h)p 264 1266 V 31 w(h)11 b Fm(:)83 b(1483)p 449 -1279 167 4 v -2 w(.)0 1368 y Fi(angle)p 191 1368 26 4 -v 31 w(h)p 264 1368 V 31 w(s)11 b Fm(:)83 b(1483)p 441 -1381 167 4 v -2 w(.)0 1469 y Fi(angle)p 191 1469 26 4 -v 31 w(hex)p 341 1469 V 31 w(hex)14 b Fm(:)83 b(1476)p -606 1482 167 4 v -2 w(,)36 b(1477)p 831 1482 V -2 w(,)g(1483.)0 -1571 y Fi(angle)p 191 1571 26 4 v 31 w(hex)p 341 1571 -V 31 w(squar)l(e)11 b Fm(:)83 b(1476)p 712 1584 167 4 -v -2 w(,)34 b(1477)p 935 1584 V -2 w(,)h(1483.)0 1673 -y Fi(angle)p 191 1673 26 4 v 31 w(p)l(oint)13 b Fm(:)83 -b(947)p 516 1686 125 4 v -2 w(,)33 b(948)p 696 1686 V --2 w(,)g(1158)p 876 1686 167 4 v -2 w(,)f(1159)p 1097 -1686 V -2 w(,)h(1180.)0 1775 y Fi(angle)p 191 1775 26 -4 v 31 w(x)14 b Fm(:)83 b(1029)p 376 1788 167 4 v -2 -w(,)28 b(1030)p 593 1788 V -2 w(,)g(1031,)e(1032)p 1027 -1788 V -2 w(,)h(1033)p 1243 1788 V -1 w(,)g(1034,)f(1060,)166 -1874 y(1061)p 166 1887 V -2 w(,)h(1062)p 382 1887 V -2 -w(,)g(1063)p 598 1887 V -2 w(,)g(1064)p 814 1887 V -2 -w(,)g(1104)p 1030 1887 V -2 w(,)g(1105)p 1246 1887 V --2 w(,)g(1106)p 1462 1887 V -2 w(,)g(1107)p 1678 1887 -V -2 w(,)166 1974 y(1237)p 166 1987 V -2 w(,)g(1238)p -382 1987 V -2 w(,)g(1239)p 598 1987 V -2 w(,)g(1240)p -814 1987 V -2 w(,)g(1437)p 1030 1987 V -2 w(,)g(1438)p -1246 1987 V -2 w(,)g(1440,)e(1441)p 1678 1987 V -2 w(,)166 -2074 y(1442)p 166 2087 V -2 w(,)i(1454)p 382 2087 V -2 -w(,)g(1455)p 598 2087 V -2 w(,)g(1456,)e(1468)p 1030 -2087 V -2 w(,)i(1469)p 1246 2087 V -2 w(,)g(1482)p 1462 -2087 V -2 w(,)g(1483)p 1678 2087 V -2 w(.)0 2175 y Fi(angle)p -191 2175 26 4 v 31 w(y)12 b Fm(:)83 b(1029)p 375 2188 -167 4 v -2 w(,)28 b(1030)p 592 2188 V -2 w(,)g(1031,)e(1032)p -1026 2188 V -2 w(,)i(1033)p 1243 2188 V -2 w(,)g(1034,)e(1060,)166 -2275 y(1061)p 166 2288 V -2 w(,)h(1062)p 382 2288 V -2 -w(,)g(1063)p 598 2288 V -2 w(,)g(1064)p 814 2288 V -2 -w(,)g(1104)p 1030 2288 V -2 w(,)g(1105)p 1246 2288 V --2 w(,)g(1106)p 1462 2288 V -2 w(,)g(1107)p 1678 2288 -V -2 w(,)166 2375 y(1237)p 166 2388 V -2 w(,)g(1238)p -382 2388 V -2 w(,)g(1239)p 598 2388 V -2 w(,)g(1240)p -814 2388 V -2 w(,)g(1437)p 1030 2388 V -2 w(,)g(1438)p -1246 2388 V -2 w(,)g(1440,)e(1441)p 1678 2388 V -2 w(,)166 -2474 y(1442)p 166 2487 V -2 w(,)i(1454)p 382 2487 V -2 -w(,)g(1455)p 598 2487 V -2 w(,)g(1456,)e(1468)p 1030 -2487 V -2 w(,)i(1469)p 1246 2487 V -2 w(,)g(1482)p 1462 -2487 V -2 w(,)g(1483)p 1678 2487 V -2 w(.)0 2576 y Fi(angle)p -191 2576 26 4 v 31 w(z)15 b Fm(:)83 b(1029)p 372 2589 -167 4 v -2 w(,)28 b(1030)p 589 2589 V -2 w(,)g(1031,)e(1032)p -1023 2589 V -2 w(,)i(1033)p 1240 2589 V -2 w(,)g(1034,)e(1060,)166 -2676 y(1061)p 166 2689 V -2 w(,)h(1062)p 382 2689 V -2 -w(,)g(1063)p 598 2689 V -2 w(,)g(1064)p 814 2689 V -2 -w(,)g(1104)p 1030 2689 V -2 w(,)g(1105)p 1246 2689 V --2 w(,)g(1106)p 1462 2689 V -2 w(,)g(1107)p 1678 2689 -V -2 w(,)166 2775 y(1237)p 166 2788 V -2 w(,)g(1238)p -382 2788 V -2 w(,)g(1239)p 598 2788 V -2 w(,)g(1240)p -814 2788 V -2 w(,)g(1437)p 1030 2788 V -2 w(,)g(1438)p -1246 2788 V -2 w(,)g(1440,)e(1441)p 1678 2788 V -2 w(,)166 -2875 y(1442)p 166 2888 V -2 w(,)i(1454)p 382 2888 V -2 -w(,)g(1455)p 598 2888 V -2 w(,)g(1456,)e(1468)p 1030 -2888 V -2 w(,)i(1469)p 1246 2888 V -2 w(,)g(1482)p 1462 -2888 V -2 w(,)g(1483)p 1678 2888 V -2 w(.)0 2977 y Fi(ap)10 -b Fm(:)83 b(669)p 200 2990 125 4 v -1 w(,)40 b(671)p -388 2990 V -1 w(,)g(674)p 576 2990 V -2 w(,)h(676)p 764 -2990 V -2 w(.)0 3078 y Fi(app)l(end)14 b Fm(:)83 b(769)p -369 3091 V -1 w(,)43 b(770)p 560 3091 V -2 w(.)0 3180 -y Fi(apply)p 192 3180 26 4 v 32 w(tr)l(ansform)11 b Fm(:)83 -b(200)p 688 3193 125 4 v -1 w(,)24 b(305,)f(313,)g(318,)g(346,)g(350,)f -(374,)166 3280 y(379,)i(380,)f(381,)h(385,)f(389,)h(395,)g(397,)f(399,) -h(404)p 1547 3293 V -2 w(,)h(405)p 1719 3293 V -1 w(,)166 -3379 y(431,)34 b(436,)g(443,)g(451,)f(457,)h(463,)g(472,)g(476,)g(478,) -166 3479 y(480,)g(482,)g(484,)g(486,)f(489,)h(493,)g(495,)g(497,)g -(499,)166 3579 y(501,)g(503,)g(508,)g(512,)f(529,)h(531,)g(549,)g(561,) -g(572,)166 3678 y(596,)g(597,)g(598,)g(624,)f(732,)h(740)p -1080 3691 V -1 w(,)h(741)p 1263 3691 V -1 w(,)g(839,)f(887,)166 -3778 y(901,)f(976,)f(978,)h(1030,)f(1062,)g(1105,)g(1135,)g(1137,)166 -3878 y(1140,)f(1142,)g(1238,)g(1343)p 832 3891 167 4 -v -2 w(,)i(1344)p 1054 3891 V -2 w(,)g(1360.)0 3979 y -Fi(ar)l(c)p 116 3979 26 4 v 31 w(divisions)13 b Fm(:)83 -b(1281)p 573 3992 167 4 v -2 w(,)34 b(1282)p 796 3992 -V -2 w(,)f(1284)p 1018 3992 V -2 w(,)h(1285)p 1241 3992 -V -2 w(.)0 4081 y Fi(ar)l(g)12 b Fm(:)83 b(270)p 229 -4094 125 4 v -1 w(.)0 4183 y Fi(ar)l(g)p 116 4183 26 -4 v 31 w(ptr)13 b Fm(:)83 b(669)p 366 4196 125 4 v -1 -w(,)43 b(671)p 557 4196 V -2 w(.)0 4285 y Fi(ar)l(gc)10 -b Fm(:)83 b(1503,)41 b(1509)p 497 4298 167 4 v -2 w(.)0 -4386 y Fi(ar)l(gument)11 b Fm(:)83 b(556)p 454 4399 125 -4 v -1 w(.)0 4488 y Fi(ar)l(gv)14 b Fm(:)83 b(1503,)38 -b(1509)p 498 4501 167 4 v -2 w(,)i(1511.)0 4590 y Fi(arr)l(ow)14 -b Fm(:)83 b(654)p 325 4603 125 4 v -1 w(,)36 b(658,)f(661,)g(664,)g -(666,)g(669,)h(671,)f(674,)166 4690 y(676,)g(776,)f(856,)h(859,)f(861,) -h(863.)0 4791 y Fi(asctime)11 b Fm(:)83 b(43.)0 4893 -y Fi(asin)11 b Fm(:)83 b(1463.)0 4995 y Fi(assign)11 -b Fm(:)83 b(187)p 337 5008 V -1 w(,)36 b(188)p 521 5008 -V -2 w(,)g(506,)f(507)p 888 5008 V -2 w(,)h(508)p 1071 -5008 V -1 w(,)g(749)p 1255 5008 V -2 w(,)g(750)p 1438 -5008 V -2 w(,)g(769)p 1621 5008 V -1 w(,)166 5095 y(770)p -166 5108 V -1 w(,)k(771,)f(908)p 542 5108 V -1 w(,)h(909)p -730 5108 V -1 w(.)0 5196 y Fi(atan)11 b Fm(:)83 b(25,)40 -b(1263,)f(1449.)0 5298 y Fi(ax)14 b Fm(:)83 b(559,)28 -b(560)p 378 5311 V -2 w(,)i(561)p 555 5311 V -2 w(,)f(562)p -731 5311 V -1 w(,)g(563)p 908 5311 V -2 w(,)g(565)p 1084 -5311 V -1 w(,)g(566)p 1261 5311 V -1 w(,)g(567)p 1438 -5311 V -2 w(,)g(568)p 1614 5311 V -1 w(.)0 5400 y Fi(ax)p -86 5400 26 4 v 30 w(h)12 b Fm(:)83 b(1132)p 271 5413 -167 4 v -2 w(,)34 b(1163)p 494 5413 V -2 w(,)h(1172)p -718 5413 V -2 w(,)f(1174,)e(1178.)2033 263 y Fi(ax)p -2119 263 26 4 v 31 w(v)13 b Fm(:)83 b(1132)p 2302 276 -167 4 v -2 w(,)34 b(1163)p 2525 276 V -1 w(,)g(1172)p -2749 276 V -2 w(,)g(1174,)f(1178.)2033 365 y Fi(axis)11 -b Fm(:)84 b(168)p 2291 378 125 4 v -2 w(,)31 b(380)p -2469 378 V -2 w(,)g(382,)e(383,)h(388,)f(395)p 3182 378 -V -2 w(,)i(556)p 3360 378 V -1 w(,)f(557,)g(559,)2199 -464 y(561,)24 b(570,)f(572,)h(574,)f(747)p 2889 477 V --1 w(,)i(748)p 3062 477 V -1 w(,)g(749)p 3235 477 V -2 -w(,)g(750)p 3407 477 V -1 w(,)g(751)p 3580 477 V -2 w(,)g(752)p -3752 477 V -1 w(.)2033 566 y Fi(axis)p 2178 566 26 4 -v 31 w(h)11 b Fm(:)83 b(1056)p 2363 579 167 4 v -2 w(,)30 -b(1061,)f(1062,)f(1067,)h(1077,)f(1084,)g(1086,)2199 -666 y(1098)p 2199 679 V -2 w(,)f(1105,)e(1115,)g(1128,)g(1131,)g(1147,) -g(1157,)g(1158,)2199 765 y(1162,)g(1172,)g(1173,)g(1174,)g(1187,)g -(1188,)g(1191,)g(1198,)2199 865 y(1208,)37 b(1238,)f(1250,)h(1251.)2033 -966 y Fi(axis)p 2178 966 26 4 v 31 w(h)p 2251 966 V 31 -w(half)23 b Fm(:)83 b(1061,)33 b(1062)p 2760 979 167 -4 v -2 w(,)h(1105)p 2983 979 V -2 w(,)g(1188)p 3206 979 -V -2 w(.)2033 1068 y Fi(axis)p 2178 1068 26 4 v 31 w(unknown)10 -b Fm(:)83 b(1128)p 2641 1081 167 4 v -2 w(,)39 b(1129)p -2869 1081 V -2 w(.)2033 1170 y Fi(axis)p 2178 1170 26 -4 v 31 w(v)13 b Fm(:)83 b(1056)p 2361 1183 167 4 v -2 -w(,)31 b(1061,)d(1062,)h(1067,)f(1077,)h(1084,)f(1088,)2199 -1269 y(1098)p 2199 1282 V -2 w(,)f(1105,)e(1115,)g(1128,)g(1131,)g -(1147,)g(1152,)g(1158,)2199 1369 y(1162,)g(1172,)g(1173,)g(1174,)g -(1187,)g(1188,)g(1191,)g(1198,)2199 1469 y(1208,)37 b(1238,)f(1250,)h -(1251.)2033 1570 y Fi(axis)p 2178 1570 26 4 v 31 w(v)p -2247 1570 V 31 w(half)23 b Fm(:)83 b(1061,)33 b(1062)p -2756 1583 167 4 v -2 w(,)h(1105)p 2979 1583 V -2 w(,)g(1188)p -3202 1583 V -2 w(.)2033 1672 y Ff(AXON)s Fm(:)83 b(211)p -2318 1685 125 4 v -2 w(,)44 b(212)p 2509 1685 V -1 w(.)2033 -1773 y Fi(a0)16 b Fm(:)83 b(897)p 2239 1786 V -1 w(.)2033 -1875 y Fi(a1)16 b Fm(:)83 b(897)p 2239 1888 V -1 w(.)2033 -1977 y Fe(b)p Fm(:)g(13)p 2175 1990 84 4 v -1 w(,)34 -b(29)p 2315 1990 V -1 w(,)g(30)p 2455 1990 V -1 w(,)g(63)p -2595 1990 V -1 w(,)g(64)p 2735 1990 V(,)g(65)p 2876 1990 -V -1 w(,)g(66)p 3016 1990 V -1 w(,)g(68)p 3156 1990 V --1 w(,)g(69)p 3296 1990 V -1 w(,)g(70)p 3436 1990 V -1 -w(,)h(71)p 3577 1990 V -1 w(,)f(82)p 3717 1990 V -1 w(,)2199 -2076 y(83)p 2199 2089 V -1 w(,)28 b(84)p 2333 2089 V --1 w(,)g(85)p 2467 2089 V -1 w(,)g(90)p 2601 2089 V -1 -w(,)h(91)p 2736 2089 V -1 w(,)f(200)p 2870 2089 125 4 -v -2 w(,)g(268)p 3045 2089 V -1 w(,)g(270)p 3221 2089 -V -1 w(,)g(272)p 3397 2089 V -2 w(,)g(301)p 3572 2089 -V -1 w(,)g(350)p 3748 2089 V -2 w(,)2199 2176 y(393)p -2199 2189 V -1 w(,)d(690)p 2372 2189 V -1 w(,)h(879)p -2546 2189 V -2 w(,)g(880)p 2719 2189 V -1 w(,)g(903)p -2893 2189 V -2 w(,)g(1122)p 3066 2189 167 4 v -2 w(,)g(1178)p -3281 2189 V -2 w(,)g(1306)p 3496 2189 V -2 w(,)g(1335)p -3711 2189 V -2 w(.)2033 2278 y Fi(b)p 2076 2278 26 4 -v 31 w(x)14 b Fm(:)83 b(606)p 2261 2291 125 4 v -2 w(.)2033 -2379 y Fi(b)p 2076 2379 26 4 v 31 w(y)12 b Fm(:)83 b(606)p -2260 2392 125 4 v -2 w(.)2033 2481 y Fi(b)p 2076 2481 -26 4 v 31 w(z)14 b Fm(:)83 b(606)p 2256 2494 125 4 v --1 w(.)2033 2582 y Fi(b)l(ack)14 b Fm(:)83 b(545,)29 -b(764,)f(765,)h(770,)f(886,)h(910,)f(930,)h(985,)f(987,)2199 -2682 y(1105,)j(1297,)g(1303,)g(1413,)g(1456,)g(1469.)2033 -2784 y Fi(b)l(ackgr)l(ound)14 b Fm(:)83 b(108,)39 b(1279.)2033 -2885 y Fi(b)l(ackgr)l(ound)p 2435 2885 26 4 v 31 w(c)l(olor)15 -b Fm(:)83 b(112)p 2756 2898 125 4 v -2 w(,)35 b(113)p -2938 2898 V -1 w(,)f(115,)g(415,)f(776,)g(802,)2199 2985 -y(806,)e(808,)h(823,)f(825,)g(862,)h(1278,)f(1279.)2033 -3087 y Fi(b)l(ackgr)l(ound)p 2435 3087 26 4 v 31 w(c)l(olor)p -2640 3087 V 32 w(ve)l(ctor)14 b Fm(:)83 b(115)p 3002 -3100 125 4 v -2 w(,)32 b(116)p 3181 3100 V -1 w(,)g(1384.)2033 -3188 y Fi(bb)10 b Fm(:)83 b(268)p 2225 3201 V -1 w(,)39 -b(272)p 2412 3201 V -2 w(,)h(1178)p 2599 3201 167 4 v --2 w(,)f(1263)p 2827 3201 V -2 w(.)2033 3290 y Fi(b)l(e)l(gin)11 +2885 y Fi(op)l(er)l(ator)p Fn(\034)5 b Fm(:)83 b(103,)40 +b(436.)2033 2986 y Fi(op)l(er)l(ator*)18 b Fm(:)83 b(490.)2033 +3087 y Ff(__CXXL_PI)q Fm(:)g(36.)2033 3188 y Ff(__DECCXX)q +Fm(:)g(6,)28 b(7,)f(16,)g(23,)g(25,)g(36,)g(44,)g(278,)f(399,)h(1507.) +2033 3288 y Ff(__GNUC__)q Fm(:)83 b(7,)29 b(21,)g(26,)g(44,)f(278,)g +(399,)h(1503,)e(1507.)2033 3389 y Ff(__USE_STD_IOSTRE)o(AM)n +Fm(:)83 b(7)p 2928 3402 42 4 v(.)2033 3490 y Ff(_GNU_SOURCE)p +Fm(:)g(7)p 2623 3503 V -1 w(.)p 2038 3591 26 4 v 2064 +3591 a Fi(ptr)13 b Fm(:)83 b(1312.)2033 3692 y Fe(A)p +Fm(:)g(1312)p 2201 3705 167 4 v -2 w(.)2033 3793 y Fe(a)p +Fm(:)g(13)p 2183 3806 84 4 v -1 w(,)33 b(29)p 2322 3806 +V -1 w(,)h(30)p 2462 3806 V -1 w(,)f(179)p 2601 3806 +125 4 v -2 w(,)h(270)p 2782 3806 V -2 w(,)g(292)p 2963 +3806 V -2 w(,)f(294)p 3143 3806 V -1 w(,)g(296)p 3324 +3806 V -1 w(,)g(346)p 3505 3806 V -1 w(,)g(353)p 3686 +3806 V -2 w(,)2199 3892 y(389)p 2199 3905 V -1 w(,)25 +b(393)p 2372 3905 V -2 w(,)g(395)p 2544 3905 V -1 w(,)g(478)p +2717 3905 V -2 w(,)g(482)p 2889 3905 V -1 w(,)g(489)p +3062 3905 V -1 w(,)g(493)p 3235 3905 V -2 w(,)g(497)p +3407 3905 V -1 w(,)g(499)p 3580 3905 V -2 w(,)g(501)p +3752 3905 V -1 w(,)2199 3992 y(503)p 2199 4005 V -1 w(,)35 +b(510)p 2382 4005 V -2 w(,)h(516)p 2565 4005 V -2 w(,)g(681)p +2748 4005 V -2 w(,)f(683)p 2930 4005 V -1 w(,)g(879)p +3113 4005 V -1 w(,)g(880)p 3296 4005 V -1 w(,)g(886)p +3479 4005 V -2 w(,)h(888)p 3662 4005 V -2 w(,)2199 4091 +y(889)p 2199 4104 V -1 w(,)31 b(890)p 2378 4104 V -1 +w(,)h(891)p 2558 4104 V -2 w(,)g(1083)p 2737 4104 167 +4 v -2 w(,)g(1127)p 2958 4104 V -2 w(,)g(1183)p 3179 +4104 V -2 w(,)g(1268)p 3400 4104 V -2 w(.)2033 4192 y +Fi(a)p 2080 4192 26 4 v 31 w(m)p 2179 4192 V 30 w(c)l(o)l(or)l(d)14 +b Fm(:)83 b(346)p 2511 4205 125 4 v -1 w(,)41 b(347.)2033 +4293 y Fi(a)p 2080 4293 26 4 v 31 w(n)p 2158 4293 V 30 +w(c)l(o)l(or)l(d)14 b Fm(:)83 b(346)p 2490 4306 125 4 +v -2 w(,)42 b(347.)2033 4394 y Fi(a)p 2080 4394 26 4 +v 31 w(x)14 b Fm(:)83 b(606)p 2265 4407 125 4 v -2 w(.)2033 +4495 y Fi(a)p 2080 4495 26 4 v 31 w(y)12 b Fm(:)83 b(606)p +2264 4508 125 4 v -1 w(.)2033 4596 y Fi(a)p 2080 4596 +26 4 v 31 w(z)14 b Fm(:)83 b(606)p 2260 4609 125 4 v +-1 w(.)2033 4697 y Fi(aa)12 b Fm(:)83 b(1183)p 2235 4710 +167 4 v -2 w(.)2033 4797 y Fi(aarr)l(ow)14 b Fm(:)84 +b(419)p 2401 4810 125 4 v -2 w(,)29 b(420)p 2577 4810 +V -1 w(,)g(775)p 2754 4810 V -1 w(,)g(776)p 2931 4810 +V -2 w(,)h(777)p 3108 4810 V -2 w(,)f(778)p 3284 4810 +V -1 w(,)g(780)p 3461 4810 V -1 w(,)g(781)p 3638 4810 +V -2 w(.)2033 4898 y Fi(aaxis)p 2220 4898 26 4 v 31 w(h)11 +b Fm(:)83 b(1064)p 2405 4911 167 4 v -1 w(,)40 b(1065)p +2635 4911 V -2 w(,)h(1066)p 2865 4911 V -2 w(,)g(1067)p +3095 4911 V -2 w(,)g(1109)p 3325 4911 V -2 w(,)g(1110)p +3555 4911 V -2 w(,)2199 4998 y(1111)p 2199 5011 V -2 +w(,)j(1112)p 2432 5011 V -1 w(.)2033 5099 y Fi(aaxis)p +2220 5099 26 4 v 31 w(v)14 b Fm(:)83 b(1064)p 2404 5112 +167 4 v -2 w(,)41 b(1065)p 2634 5112 V -2 w(,)g(1066)p +2864 5112 V -2 w(,)g(1067)p 3094 5112 V -2 w(,)f(1109)p +3323 5112 V -2 w(,)h(1110)p 3553 5112 V -2 w(,)2199 5198 +y(1111)p 2199 5211 V -2 w(,)j(1112)p 2432 5211 V -1 w(.)2033 +5299 y Fi(abs)12 b Fm(:)83 b(1284.)2033 5400 y Fi(ac)l(os)12 +b Fm(:)83 b(505.)p eop end +%%Page: 489 489 +TeXDict begin 489 488 bop 0 83 a Fn(x)p Fm(1525)139 b +Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(489)0 263 y Fi(align)p +178 263 26 4 v 32 w(with)p 360 263 V 31 w(axis)11 b Fm(:)83 +b(168)p 643 276 125 4 v -1 w(,)29 b(264)p 820 276 V -2 +w(,)g(379,)f(380)p 1173 276 V -1 w(,)h(395,)e(561,)h(572,)166 +363 y(747)p 166 376 V -1 w(,)33 b(748)p 347 376 V -2 +w(,)h(749)p 528 376 V -2 w(,)f(750)p 708 376 V -1 w(,)g(751)p +889 376 V -1 w(,)g(752)p 1070 376 V -2 w(,)h(949,)d(953,)h(1127,)166 +462 y(1182,)f(1228,)g(1229,)g(1270,)g(1274,)g(1459.)0 +564 y Fi(ang)12 b Fm(:)83 b(559,)30 b(560)p 424 577 V +-2 w(,)i(561)p 603 577 V -2 w(,)g(562)p 782 577 V -2 +w(,)f(563)p 960 577 V -1 w(,)g(565)p 1139 577 V -1 w(,)g(566)p +1318 577 V -1 w(,)g(567)p 1497 577 V -1 w(,)g(568)p 1676 +577 V -1 w(,)166 664 y(571)p 166 677 V -1 w(,)40 b(572)p +354 677 V -2 w(,)g(957)p 541 677 V -1 w(,)g(1127)p 729 +677 167 4 v -2 w(.)0 766 y Fi(angle)11 b Fm(:)83 b(166)p +303 779 125 4 v -1 w(,)28 b(167)p 479 779 V -1 w(,)g(243)p +655 779 V -1 w(,)g(380)p 831 779 V -1 w(,)g(382,)f(384,)g(385,)g(386,)g +(387,)166 865 y(391,)34 b(392)p 349 878 V -2 w(,)i(393)p +532 878 V -2 w(,)g(394)p 715 878 V -2 w(,)f(395)p 897 +878 V -1 w(,)g(396)p 1080 878 V -1 w(,)g(504)p 1263 878 +V -1 w(,)g(505)p 1446 878 V -2 w(,)h(556)p 1629 878 V +-2 w(,)166 965 y(557,)e(559,)g(561,)g(570,)f(572,)h(574,)g(716)p +1263 978 V -1 w(,)h(717)p 1446 978 V -2 w(,)h(719)p 1629 +978 V -2 w(,)166 1065 y(720)p 166 1078 V -1 w(,)f(721)p +349 1078 V -2 w(,)h(722)p 532 1078 V -2 w(,)g(950)p 715 +1078 V -2 w(,)f(951)p 897 1078 V -1 w(,)g(953,)f(957,)g(967)p +1446 1078 V -2 w(,)i(968)p 1629 1078 V -2 w(,)166 1164 +y(969)p 166 1177 V -1 w(,)31 b(970)p 345 1177 V -1 w(,)h(1006)p +525 1177 167 4 v -2 w(,)g(1007)p 746 1177 V -2 w(,)f(1008)p +966 1177 V -2 w(,)h(1009)p 1187 1177 V -2 w(,)g(1083,)e(1127,)166 +1264 y(1163)p 166 1277 V -2 w(,)d(1164)p 382 1277 V -2 +w(,)g(1213)p 598 1277 V -2 w(,)g(1214)p 814 1277 V -2 +w(,)g(1215)p 1030 1277 V -2 w(,)g(1216)p 1246 1277 V +-2 w(,)g(1228)p 1462 1277 V -2 w(,)g(1229)p 1678 1277 +V -2 w(,)166 1364 y(1361)p 166 1377 V -2 w(,)33 b(1362)p +388 1377 V -2 w(,)g(1443)p 610 1377 V -2 w(,)g(1460)p +832 1377 V -2 w(,)g(1461,)e(1474)p 1276 1377 V -2 w(.)0 +1466 y Fi(angle)p 191 1466 26 4 v 31 w(h)p 264 1466 V +31 w(h)11 b Fm(:)83 b(1488)p 449 1479 167 4 v -2 w(.)0 +1568 y Fi(angle)p 191 1568 26 4 v 31 w(h)p 264 1568 V +31 w(s)11 b Fm(:)83 b(1488)p 441 1581 167 4 v -2 w(.)0 +1669 y Fi(angle)p 191 1669 26 4 v 31 w(hex)p 341 1669 +V 31 w(hex)14 b Fm(:)83 b(1481)p 606 1682 167 4 v -2 +w(,)36 b(1482)p 831 1682 V -2 w(,)g(1488.)0 1771 y Fi(angle)p +191 1771 26 4 v 31 w(hex)p 341 1771 V 31 w(squar)l(e)11 +b Fm(:)83 b(1481)p 712 1784 167 4 v -2 w(,)34 b(1482)p +935 1784 V -2 w(,)h(1488.)0 1873 y Fi(angle)p 191 1873 +26 4 v 31 w(p)l(oint)13 b Fm(:)83 b(950)p 516 1886 125 +4 v -2 w(,)33 b(951)p 696 1886 V -2 w(,)g(1163)p 876 +1886 167 4 v -2 w(,)f(1164)p 1097 1886 V -2 w(,)h(1185.)0 +1975 y Fi(angle)p 191 1975 26 4 v 31 w(x)14 b Fm(:)83 +b(1032)p 376 1988 167 4 v -2 w(,)28 b(1033)p 593 1988 +V -2 w(,)g(1034,)e(1035)p 1027 1988 V -2 w(,)h(1036)p +1243 1988 V -1 w(,)g(1037,)f(1063,)166 2075 y(1064)p +166 2088 V -2 w(,)h(1065)p 382 2088 V -2 w(,)g(1066)p +598 2088 V -2 w(,)g(1067)p 814 2088 V -2 w(,)g(1109)p +1030 2088 V -2 w(,)g(1110)p 1246 2088 V -2 w(,)g(1111)p +1462 2088 V -2 w(,)g(1112)p 1678 2088 V -2 w(,)166 2175 +y(1242)p 166 2188 V -2 w(,)g(1243)p 382 2188 V -2 w(,)g(1244)p +598 2188 V -2 w(,)g(1245)p 814 2188 V -2 w(,)g(1442)p +1030 2188 V -2 w(,)g(1443)p 1246 2188 V -2 w(,)g(1445,)e(1446)p +1678 2188 V -2 w(,)166 2274 y(1447)p 166 2287 V -2 w(,)i(1459)p +382 2287 V -2 w(,)g(1460)p 598 2287 V -2 w(,)g(1461,)e(1473)p +1030 2287 V -2 w(,)i(1474)p 1246 2287 V -2 w(,)g(1487)p +1462 2287 V -2 w(,)g(1488)p 1678 2287 V -2 w(.)0 2376 +y Fi(angle)p 191 2376 26 4 v 31 w(y)12 b Fm(:)83 b(1032)p +375 2389 167 4 v -2 w(,)28 b(1033)p 592 2389 V -2 w(,)g(1034,)e(1035)p +1026 2389 V -2 w(,)i(1036)p 1243 2389 V -2 w(,)g(1037,)e(1063,)166 +2476 y(1064)p 166 2489 V -2 w(,)h(1065)p 382 2489 V -2 +w(,)g(1066)p 598 2489 V -2 w(,)g(1067)p 814 2489 V -2 +w(,)g(1109)p 1030 2489 V -2 w(,)g(1110)p 1246 2489 V +-2 w(,)g(1111)p 1462 2489 V -2 w(,)g(1112)p 1678 2489 +V -2 w(,)166 2575 y(1242)p 166 2588 V -2 w(,)g(1243)p +382 2588 V -2 w(,)g(1244)p 598 2588 V -2 w(,)g(1245)p +814 2588 V -2 w(,)g(1442)p 1030 2588 V -2 w(,)g(1443)p +1246 2588 V -2 w(,)g(1445,)e(1446)p 1678 2588 V -2 w(,)166 +2675 y(1447)p 166 2688 V -2 w(,)i(1459)p 382 2688 V -2 +w(,)g(1460)p 598 2688 V -2 w(,)g(1461,)e(1473)p 1030 +2688 V -2 w(,)i(1474)p 1246 2688 V -2 w(,)g(1487)p 1462 +2688 V -2 w(,)g(1488)p 1678 2688 V -2 w(.)0 2777 y Fi(angle)p +191 2777 26 4 v 31 w(z)15 b Fm(:)83 b(1032)p 372 2790 +167 4 v -2 w(,)28 b(1033)p 589 2790 V -2 w(,)g(1034,)e(1035)p +1023 2790 V -2 w(,)i(1036)p 1240 2790 V -2 w(,)g(1037,)e(1063,)166 +2877 y(1064)p 166 2890 V -2 w(,)h(1065)p 382 2890 V -2 +w(,)g(1066)p 598 2890 V -2 w(,)g(1067)p 814 2890 V -2 +w(,)g(1109)p 1030 2890 V -2 w(,)g(1110)p 1246 2890 V +-2 w(,)g(1111)p 1462 2890 V -2 w(,)g(1112)p 1678 2890 +V -2 w(,)166 2976 y(1242)p 166 2989 V -2 w(,)g(1243)p +382 2989 V -2 w(,)g(1244)p 598 2989 V -2 w(,)g(1245)p +814 2989 V -2 w(,)g(1442)p 1030 2989 V -2 w(,)g(1443)p +1246 2989 V -2 w(,)g(1445,)e(1446)p 1678 2989 V -2 w(,)166 +3076 y(1447)p 166 3089 V -2 w(,)i(1459)p 382 3089 V -2 +w(,)g(1460)p 598 3089 V -2 w(,)g(1461,)e(1473)p 1030 +3089 V -2 w(,)i(1474)p 1246 3089 V -2 w(,)g(1487)p 1462 +3089 V -2 w(,)g(1488)p 1678 3089 V -2 w(.)0 3178 y Fi(ap)10 +b Fm(:)83 b(669)p 200 3191 125 4 v -1 w(,)40 b(671)p +388 3191 V -1 w(,)g(674)p 576 3191 V -2 w(,)h(676)p 764 +3191 V -2 w(.)0 3280 y Fi(app)l(end)14 b Fm(:)83 b(769)p +369 3293 V -1 w(,)43 b(770)p 560 3293 V -2 w(.)0 3382 +y Fi(apply)p 192 3382 26 4 v 32 w(tr)l(ansform)11 b Fm(:)83 +b(200)p 688 3395 125 4 v -1 w(,)24 b(305,)f(313,)g(318,)g(346,)g(350,)f +(374,)166 3481 y(379,)i(380,)f(381,)h(385,)f(389,)h(395,)g(397,)f(399,) +h(404)p 1547 3494 V -2 w(,)h(405)p 1719 3494 V -1 w(,)166 +3581 y(431,)f(436,)f(443,)h(451,)f(457,)h(463,)g(472,)f(476,)h(478,)f +(480,)166 3681 y(482,)34 b(484,)g(486,)g(489,)f(493,)h(495,)g(497,)g +(499,)g(501,)166 3780 y(503,)g(508,)g(529,)g(531,)f(549,)h(561,)g(572,) +g(596,)g(597,)166 3880 y(598,)g(624,)g(732,)g(740)p 715 +3893 V -2 w(,)h(741)p 897 3893 V -1 w(,)g(839,)f(888,)g(889,)g(891,)166 +3980 y(904,)f(979,)f(981,)h(1033,)f(1065,)g(1110,)g(1140,)g(1142,)166 +4079 y(1145,)f(1147,)g(1243,)g(1348)p 832 4092 167 4 +v -2 w(,)i(1349)p 1054 4092 V -2 w(,)g(1365.)0 4181 y +Fi(ar)l(c)p 116 4181 26 4 v 31 w(divisions)13 b Fm(:)83 +b(1286)p 573 4194 167 4 v -2 w(,)34 b(1287)p 796 4194 +V -2 w(,)f(1289)p 1018 4194 V -2 w(,)h(1290)p 1241 4194 +V -2 w(.)0 4283 y Fi(ar)l(g)12 b Fm(:)83 b(270)p 229 +4296 125 4 v -1 w(.)0 4385 y Fi(ar)l(g)p 116 4385 26 +4 v 31 w(ptr)13 b Fm(:)83 b(669)p 366 4398 125 4 v -1 +w(,)43 b(671)p 557 4398 V -2 w(.)0 4487 y Fi(ar)l(gc)10 +b Fm(:)83 b(1508,)41 b(1514)p 497 4500 167 4 v -2 w(.)0 +4589 y Fi(ar)l(gument)11 b Fm(:)83 b(556)p 454 4602 125 +4 v -1 w(.)0 4691 y Fi(ar)l(gv)14 b Fm(:)83 b(1508,)38 +b(1514)p 498 4704 167 4 v -2 w(,)i(1519.)0 4793 y Fi(arr)l(ow)14 +b Fm(:)83 b(654)p 325 4806 125 4 v -1 w(,)36 b(658,)f(661,)g(664,)g +(666,)g(669,)h(671,)f(674,)166 4893 y(676,)g(776,)f(856,)h(859,)f(861,) +h(863.)0 4994 y Fi(asctime)11 b Fm(:)83 b(43.)0 5096 +y Fi(asin)11 b Fm(:)83 b(1468.)0 5198 y Fi(assign)11 +b Fm(:)83 b(187)p 337 5211 V -1 w(,)36 b(188)p 521 5211 +V -2 w(,)g(506,)f(507)p 888 5211 V -2 w(,)h(508)p 1071 +5211 V -1 w(,)g(749)p 1255 5211 V -2 w(,)g(750)p 1438 +5211 V -2 w(,)g(769)p 1621 5211 V -1 w(,)166 5298 y(770)p +166 5311 V -1 w(,)k(771,)f(911)p 542 5311 V -1 w(,)h(912)p +730 5311 V -1 w(.)0 5400 y Fi(atan)11 b Fm(:)83 b(25,)40 +b(1268,)f(1454.)2033 263 y Fi(ax)14 b Fm(:)83 b(559,)28 +b(560)p 2411 276 V -2 w(,)i(561)p 2588 276 V -2 w(,)f(562)p +2764 276 V -1 w(,)g(563)p 2941 276 V -2 w(,)g(565)p 3117 +276 V -1 w(,)g(566)p 3294 276 V -1 w(,)g(567)p 3471 276 +V -2 w(,)g(568)p 3647 276 V -1 w(.)2033 365 y Fi(ax)p +2119 365 26 4 v 31 w(h)11 b Fm(:)83 b(1137)p 2304 378 +167 4 v -2 w(,)34 b(1168)p 2527 378 V -2 w(,)h(1177)p +2751 378 V -2 w(,)f(1179,)f(1183.)2033 466 y Fi(ax)p +2119 466 26 4 v 31 w(v)13 b Fm(:)83 b(1137)p 2302 479 +167 4 v -2 w(,)34 b(1168)p 2525 479 V -1 w(,)g(1177)p +2749 479 V -2 w(,)g(1179,)f(1183.)2033 568 y Fi(axis)11 +b Fm(:)84 b(168)p 2291 581 125 4 v -2 w(,)31 b(380)p +2469 581 V -2 w(,)g(382,)e(383,)h(388,)f(395)p 3182 581 +V -2 w(,)i(556)p 3360 581 V -1 w(,)f(557,)g(559,)2199 +667 y(561,)24 b(570,)f(572,)h(574,)f(747)p 2889 680 V +-1 w(,)i(748)p 3062 680 V -1 w(,)g(749)p 3235 680 V -2 +w(,)g(750)p 3407 680 V -1 w(,)g(751)p 3580 680 V -2 w(,)g(752)p +3752 680 V -1 w(.)2033 769 y Fi(axis)p 2178 769 26 4 +v 31 w(h)11 b Fm(:)83 b(1059)p 2363 782 167 4 v -2 w(,)30 +b(1064,)f(1065,)f(1070,)h(1080,)f(1089,)g(1091,)2199 +868 y(1103)p 2199 881 V -2 w(,)f(1110,)e(1120,)g(1133,)g(1136,)g(1152,) +g(1162,)g(1163,)2199 968 y(1167,)g(1177,)g(1178,)g(1179,)g(1192,)g +(1193,)g(1196,)g(1203,)2199 1068 y(1213,)37 b(1243,)f(1255,)h(1256.) +2033 1169 y Fi(axis)p 2178 1169 26 4 v 31 w(h)p 2251 +1169 V 31 w(half)23 b Fm(:)83 b(1064,)33 b(1065)p 2760 +1182 167 4 v -2 w(,)h(1110)p 2983 1182 V -2 w(,)g(1193)p +3206 1182 V -2 w(.)2033 1270 y Fi(axis)p 2178 1270 26 +4 v 31 w(unknown)10 b Fm(:)83 b(1133)p 2641 1283 167 +4 v -2 w(,)39 b(1134)p 2869 1283 V -2 w(.)2033 1372 y +Fi(axis)p 2178 1372 26 4 v 31 w(v)13 b Fm(:)83 b(1059)p +2361 1385 167 4 v -2 w(,)31 b(1064,)d(1065,)h(1070,)f(1080,)h(1089,)f +(1093,)2199 1472 y(1103)p 2199 1485 V -2 w(,)f(1110,)e(1120,)g(1133,)g +(1136,)g(1152,)g(1157,)g(1163,)2199 1571 y(1167,)g(1177,)g(1178,)g +(1179,)g(1192,)g(1193,)g(1196,)g(1203,)2199 1671 y(1213,)37 +b(1243,)f(1255,)h(1256.)2033 1772 y Fi(axis)p 2178 1772 +26 4 v 31 w(v)p 2247 1772 V 31 w(half)23 b Fm(:)83 b(1064,)33 +b(1065)p 2756 1785 167 4 v -2 w(,)h(1110)p 2979 1785 +V -2 w(,)g(1193)p 3202 1785 V -2 w(.)2033 1874 y Ff(AXON)s +Fm(:)83 b(211)p 2318 1887 125 4 v -2 w(,)44 b(212)p 2509 +1887 V -1 w(.)2033 1975 y Fi(a0)16 b Fm(:)83 b(900)p +2239 1988 V -1 w(.)2033 2077 y Fi(a1)16 b Fm(:)83 b(900)p +2239 2090 V -1 w(.)2033 2178 y Fe(b)p Fm(:)g(13)p 2175 +2191 84 4 v -1 w(,)34 b(16)p 2315 2191 V -1 w(,)g(29)p +2455 2191 V -1 w(,)g(30)p 2595 2191 V -1 w(,)g(63)p 2735 +2191 V(,)g(64)p 2876 2191 V -1 w(,)g(65)p 3016 2191 V +-1 w(,)g(66)p 3156 2191 V -1 w(,)g(68)p 3296 2191 V -1 +w(,)g(69)p 3436 2191 V -1 w(,)h(70)p 3577 2191 V -1 w(,)f(71)p +3717 2191 V -1 w(,)2199 2278 y(82)p 2199 2291 V -1 w(,)39 +b(83)p 2344 2291 V -1 w(,)f(84)p 2488 2291 V -1 w(,)g(85)p +2632 2291 V(,)g(90)p 2777 2291 V -1 w(,)g(91)p 2921 2291 +V -1 w(,)h(200)p 3066 2291 125 4 v -2 w(,)g(268)p 3252 +2291 V -2 w(,)g(270)p 3438 2291 V -2 w(,)g(272)p 3624 +2291 V -2 w(,)2199 2378 y(301)p 2199 2391 V -1 w(,)31 +b(350)p 2378 2391 V -2 w(,)g(393)p 2556 2391 V -1 w(,)g(690)p +2735 2391 V -1 w(,)g(879)p 2914 2391 V -2 w(,)g(880)p +3092 2391 V -1 w(,)g(906)p 3271 2391 V -1 w(,)g(1083)p +3450 2391 167 4 v -2 w(,)g(1127)p 3670 2391 V -2 w(,)2199 +2477 y(1183)p 2199 2490 V -2 w(,)42 b(1311)p 2430 2490 +V -2 w(,)f(1340)p 2660 2490 V -2 w(.)2033 2579 y Fi(b)p +2076 2579 26 4 v 31 w(x)14 b Fm(:)83 b(606)p 2261 2592 +125 4 v -2 w(.)2033 2680 y Fi(b)p 2076 2680 26 4 v 31 +w(y)12 b Fm(:)83 b(606)p 2260 2693 125 4 v -2 w(.)2033 +2782 y Fi(b)p 2076 2782 26 4 v 31 w(z)14 b Fm(:)83 b(606)p +2256 2795 125 4 v -1 w(.)2033 2883 y Fi(b)l(ack)14 b +Fm(:)83 b(545,)29 b(764,)f(765,)h(770,)f(886,)h(913,)f(933,)h(988,)f +(990,)2199 2983 y(1110,)j(1302,)g(1308,)g(1418,)g(1461,)g(1474.)2033 +3084 y Fi(b)l(ackgr)l(ound)14 b Fm(:)83 b(108,)39 b(1284.)2033 +3186 y Fi(b)l(ackgr)l(ound)p 2435 3186 26 4 v 31 w(c)l(olor)15 +b Fm(:)83 b(112)p 2756 3199 125 4 v -2 w(,)35 b(113)p +2938 3199 V -1 w(,)f(115,)g(415,)f(776,)g(802,)2199 3285 +y(806,)e(808,)h(823,)f(825,)g(862,)h(1283,)f(1284.)2033 +3387 y Fi(b)l(ackgr)l(ound)p 2435 3387 26 4 v 31 w(c)l(olor)p +2640 3387 V 32 w(ve)l(ctor)14 b Fm(:)83 b(115)p 3002 +3400 125 4 v -2 w(,)32 b(116)p 3181 3400 V -1 w(,)g(1389.)2033 +3488 y Fi(bb)10 b Fm(:)83 b(268)p 2225 3501 V -1 w(,)39 +b(272)p 2412 3501 V -2 w(,)h(1183)p 2599 3501 167 4 v +-2 w(,)f(1268)p 2827 3501 V -2 w(.)2033 3590 y Fi(b)l(e)l(gin)11 b Fm(:)83 b(249,)27 b(543,)h(545,)f(546,)g(549,)h(550,)f(552,)h(553,)f -(657,)2199 3389 y(659,)d(685,)f(734,)h(739,)f(741,)h(743,)g(765,)f -(766,)h(770,)f(771,)2199 3489 y(830,)h(840,)f(843,)h(859,)f(860,)h -(862,)g(867,)f(895,)h(897,)f(911,)2199 3589 y(985,)33 -b(987,)f(994,)h(1118,)f(1122,)g(1254,)g(1282,)g(1285,)2199 -3688 y(1297,)25 b(1303,)g(1337,)g(1339,)g(1342,)g(1344,)g(1360,)g -(1362,)2199 3788 y(1375,)g(1379,)g(1382,)g(1385,)g(1388,)g(1391,)g -(1394,)g(1413,)2199 3888 y(1419,)j(1428,)h(1456,)f(1460,)g(1469,)h -(1473,)f(1483.)2033 3989 y Fi(b)l(e)l(gin\014g)12 b Fm(:)83 -b(47)p 2414 4002 84 4 v -1 w(,)38 b(48)p 2558 4002 V --1 w(,)h(470,)e(1501.)2033 4091 y Fi(b)l(eta)11 b Fm(:)83 -b(1263)p 2292 4104 167 4 v -2 w(.)2033 4192 y Fi(black)14 -b Fm(:)84 b(108,)29 b(112)p 2509 4205 125 4 v -2 w(,)i(113)p -2687 4205 V -1 w(,)f(954,)f(1282,)g(1285,)g(1456.)2033 -4294 y Fi(blue)11 b Fm(:)83 b(108,)32 b(112)p 2473 4307 -V -2 w(,)i(113)p 2654 4307 V -2 w(,)g(946,)e(954,)g(1282,)f(1438,)h -(1456,)2199 4394 y(1500.)2033 4495 y Fi(blue)p 2180 4495 -26 4 v 31 w(p)l(art)12 b Fm(:)83 b(56)p 2467 4508 84 -4 v -1 w(,)41 b(59,)e(61,)h(64,)g(66,)f(69,)h(71,)f(74,)h(75,)2199 -4595 y(76,)i(85,)g(91,)f(99.)2033 4697 y Fi(blue)p 2180 -4697 26 4 v 31 w(violet)13 b Fm(:)83 b(108,)35 b(112)p -2701 4710 125 4 v -2 w(,)h(113)p 2884 4710 V -1 w(,)g(1500.)2033 -4798 y Fk(b)s(o)s(ol)p 2219 4798 29 5 v 38 w(pair)6 b -Fm(:)83 b(12)p 2530 4811 84 4 v -1 w(.)2033 4900 y Fk(b)s(o)s(ol)p -2219 4900 29 5 v 38 w(p)s(oin)m(t)5 b Fm(:)83 b(33)p -2582 4913 84 4 v -1 w(,)25 b(267,)g(268)p 2887 4913 125 -4 v -2 w(,)h(269)p 3060 4913 V -2 w(,)g(270,)e(274,)g(275,)g(527,)2199 -4999 y(528,)g(529,)f(530,)h(603,)f(604,)h(640,)g(641,)f(642,)h(917,)f -(918,)2199 5099 y(919,)32 b(949,)g(960,)g(985,)f(987,)h(994,)g(1446.) -2033 5201 y Fk(b)s(o)s(ol)p 2219 5201 29 5 v 38 w(p)s(oin)m(t)p -2475 5201 V 40 w(pair)5 b Fm(:)83 b(267)p 2787 5214 125 -4 v -1 w(,)33 b(274,)e(275,)h(949,)f(950,)h(951,)2199 -5300 y(961,)e(962,)f(981,)h(982,)g(990,)f(991,)h(996,)g(1159,)f(1165,) -2199 5400 y(1166,)38 b(1167,)f(1168,)h(1174,)f(1183,)h(1216,)f(1223,)p -eop end -%%Page: 485 485 -TeXDict begin 485 484 bop 0 83 a Fn(x)p Fm(1517)139 b -Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(485)166 263 y(1258,)37 -b(1259,)f(1260,)h(1261.)0 364 y Fk(b)s(o)s(ol)p 186 364 -29 5 v 38 w(p)s(oin)m(t)p 442 364 V 40 w(quadruple)5 -b Fm(:)83 b(270)p 1007 377 125 4 v -1 w(,)40 b(271)p -1195 377 V -1 w(,)g(274,)e(275,)166 464 y(1169,)c(1170,)g(1171,)f -(1262,)h(1263.)0 565 y Fk(b)s(o)s(ol)p 186 565 29 5 v -38 w(real)5 b Fm(:)83 b(12)p 487 578 84 4 v -1 w(,)40 -b(349,)f(350,)g(352,)f(353,)h(354,)f(355,)166 665 y(603,)k(958,)f(996.) -0 766 y Fk(b)s(o)s(ol)p 186 766 29 5 v 38 w(real)p 380 -766 V 41 w(p)s(oin)m(t)t Fm(:)83 b(33)p 745 779 84 4 -v -1 w(,)36 b(272)p 887 779 125 4 v -2 w(,)g(273)p 1070 -779 V -1 w(,)g(274,)e(275,)h(603,)166 866 y(604,)42 b(605,)f(917.)0 -967 y Fk(b)s(o)s(ols)s Fm(:)83 b(667,)39 b(949,)g(1294.)0 -1068 y Fi(b)l(ot)p 109 1068 26 4 v 31 w(lft)12 b Fm(:)83 -b(1062)p 327 1081 167 4 v -2 w(.)0 1169 y Fi(b)l(ot)p -109 1169 26 4 v 31 w(rt)11 b Fm(:)83 b(1062)p 315 1182 -167 4 v -2 w(.)0 1270 y Fi(bp)10 b Fm(:)83 b(268)p 196 -1283 125 4 v -1 w(,)34 b(530)p 378 1283 V -2 w(,)g(541,)e(603)p -740 1283 V -1 w(,)h(641)p 921 1283 V -1 w(,)h(960)p 1103 -1283 V -2 w(,)g(985)p 1284 1283 V -1 w(,)f(987)p 1465 -1283 V -1 w(,)h(988,)166 1370 y(994)p 166 1383 V -1 w(,)45 -b(1446)p 359 1383 167 4 v -2 w(.)0 1471 y Fi(bpp)11 b -Fm(:)83 b(950,)30 b(951)p 418 1484 125 4 v -2 w(,)i(955,)e(956,)g(957,) -h(958,)f(960,)g(982)p 1493 1484 V -1 w(,)h(985,)166 1571 -y(987,)d(988,)g(989,)h(996)p 698 1584 V -2 w(,)h(1158,)d(1159)p -1093 1584 167 4 v -1 w(,)i(1183)p 1312 1584 V -2 w(,)h(1223)p -1531 1584 V -2 w(.)0 1672 y Fi(bpp)p 127 1672 26 4 v -32 w(e)10 b Fm(:)83 b(1174)p 308 1685 167 4 v -2 w(.)0 -1773 y Fi(bpp)p 127 1773 26 4 v 32 w(this)11 b Fm(:)83 -b(1174)p 400 1786 167 4 v -2 w(.)0 1875 y Fi(bpp0)17 -b Fm(:)83 b(1216)p 287 1888 V -2 w(.)0 1976 y Fi(bpp1)17 -b Fm(:)83 b(1216)p 287 1989 V -2 w(.)0 2077 y Fi(bp)l(q)12 -b Fm(:)83 b(1169)p 232 2090 V -2 w(,)32 b(1171)p 453 -2090 V -2 w(,)h(1179,)d(1181,)g(1183,)g(1263)p 1338 2090 -V -2 w(.)0 2178 y Fi(br)13 b Fm(:)83 b(355)p 192 2191 -125 4 v -1 w(,)45 b(996)p 385 2191 V -1 w(.)0 2280 y -Fi(br)p 78 2280 26 4 v 31 w(p)10 b Fm(:)83 b(603)p 262 -2293 125 4 v -2 w(.)0 2381 y Fi(br)p 78 2381 26 4 v 31 -w(q)12 b Fm(:)83 b(603)p 260 2394 125 4 v -2 w(.)0 2482 -y Fi(brp)10 b Fm(:)83 b(272)p 231 2495 V -1 w(,)37 b(603)p -416 2495 V -1 w(,)g(605)p 601 2495 V -1 w(,)g(606,)f(607.)0 -2583 y Fk(BUG)j(FIX)p Fm(:)84 b(119,)34 b(150,)g(265,)g(349,)g(386,)g -(397,)f(463,)166 2683 y(474,)h(545,)g(601,)g(623,)f(633,)h(672,)g(901,) -g(950,)g(964,)166 2782 y(1061,)g(1147,)g(1158,)f(1187,)h(1304.)0 -2884 y Fk(BUGS)p Fm(:)84 b(395.)0 2985 y Fi(b0)16 b Fm(:)83 -b(897)p 202 2998 V -1 w(.)0 3086 y Fi(b1)16 b Fm(:)83 -b(897)p 202 3099 V -1 w(.)0 3187 y Fe(C)6 b Fm(:)83 b(31)p -171 3200 84 4 v -1 w(,)38 b(32)p 315 3200 V -1 w(,)g(1214)p -459 3200 167 4 v -2 w(,)g(1223)p 686 3200 V -2 w(,)f(1224)p -912 3200 V -2 w(.)0 3289 y Fe(c)p Fm(:)83 b(13)p 142 -3302 84 4 v -1 w(,)34 b(29)p 282 3302 V -1 w(,)g(30)p -422 3302 V -1 w(,)h(60)p 563 3302 V -1 w(,)f(61)p 703 -3302 V -1 w(,)g(72)p 843 3302 V -1 w(,)g(73)p 983 3302 -V -1 w(,)g(74)p 1123 3302 V -1 w(,)g(75)p 1263 3302 V --1 w(,)h(76)p 1404 3302 V -1 w(,)f(77)p 1544 3302 V -1 -w(,)g(78)p 1684 3302 V -1 w(,)166 3388 y(103)p 166 3401 -125 4 v -1 w(,)25 b(104)p 339 3401 V -2 w(,)g(270)p 511 -3401 V -1 w(,)g(317)p 684 3401 V -2 w(,)g(318)p 856 3401 -V -1 w(,)g(319)p 1029 3401 V -1 w(,)g(320)p 1202 3401 -V -2 w(,)g(695)p 1374 3401 V -1 w(,)g(696)p 1547 3401 -V -2 w(,)g(697)p 1719 3401 V -1 w(,)166 3488 y(698)p -166 3501 V -1 w(,)35 b(700)p 349 3501 V -2 w(,)h(701)p -532 3501 V -2 w(,)g(702)p 715 3501 V -2 w(,)f(703)p 897 -3501 V -1 w(,)g(776)p 1080 3501 V -1 w(,)g(802)p 1263 -3501 V -1 w(,)g(807)p 1446 3501 V -2 w(,)h(824)p 1629 -3501 V -2 w(,)166 3588 y(901)p 166 3601 V -1 w(,)e(905)p -348 3601 V -2 w(,)g(906)p 529 3601 V -1 w(,)g(1076)p -711 3601 167 4 v -2 w(,)g(1077)p 934 3601 V -2 w(,)g(1080)p -1157 3601 V -2 w(,)g(1081)p 1380 3601 V -2 w(,)g(1082)p -1603 3601 V -2 w(,)166 3687 y(1083)p 166 3700 V -2 w(,)27 -b(1118)p 382 3700 V -2 w(,)g(1169)p 598 3700 V -2 w(,)g(1178)p -814 3700 V -2 w(,)g(1188)p 1030 3700 V -2 w(,)g(1240)p -1246 3700 V -2 w(,)g(1243)p 1462 3700 V -2 w(,)g(1245)p -1678 3700 V -2 w(,)166 3787 y(1248)p 166 3800 V -2 w(,)g(1249)p -382 3800 V -2 w(,)g(1253)p 598 3800 V -2 w(,)g(1254)p -814 3800 V -2 w(,)g(1262)p 1030 3800 V -2 w(,)g(1263)p -1246 3800 V -2 w(,)g(1265)p 1462 3800 V -2 w(,)g(1267)p -1678 3800 V -2 w(,)166 3886 y(1269)p 166 3899 V -2 w(,)g(1271)p -382 3899 V -2 w(,)g(1377)p 598 3899 V -2 w(,)g(1380)p -814 3899 V -2 w(,)g(1383)p 1030 3899 V -2 w(,)g(1412)p -1246 3899 V -2 w(,)g(1413)p 1462 3899 V -2 w(,)g(1414)p -1678 3899 V -2 w(,)166 3986 y(1415)p 166 3999 V -2 w(,)33 -b(1416)p 388 3999 V -2 w(,)g(1417)p 610 3999 V -2 w(,)g(1420)p -832 3999 V -2 w(,)g(1421)p 1054 3999 V -2 w(,)g(1501)p -1276 3999 V -2 w(.)0 4087 y Fi(c)p 43 4087 26 4 v 31 -w(iter)13 b Fm(:)83 b(657,)33 b(1377,)g(1379,)f(1380,)g(1382.)0 -4188 y Fi(c)p 43 4188 V 31 w(plane)11 b Fm(:)83 b(1263)p -376 4201 167 4 v -2 w(.)0 4290 y Fi(c)p 43 4290 26 4 -v 31 w(ptr)13 b Fm(:)83 b(1311)p 293 4303 167 4 v -2 -w(.)0 4391 y Fi(c)p 43 4391 26 4 v 31 w(r)l(adius)11 -b Fm(:)83 b(1262)p 405 4404 167 4 v -1 w(.)0 4492 y Fi(c)p -43 4492 26 4 v 31 w(str)12 b Fm(:)84 b(44.)0 4593 y Fi(c)p -43 4593 V 31 w(x)13 b Fm(:)84 b(901)p 228 4606 125 4 -v -2 w(,)45 b(903.)0 4695 y Fi(c)p 43 4695 26 4 v 31 -w(y)12 b Fm(:)83 b(901)p 227 4708 125 4 v -2 w(,)42 b(902,)f(903.)0 -4796 y Fi(c)p 43 4796 26 4 v 31 w(z)14 b Fm(:)83 b(901)p -223 4809 125 4 v -1 w(,)42 b(902,)f(903.)0 4897 y Fi(c)l(c)9 -b Fm(:)83 b(1178)p 187 4910 167 4 v -2 w(.)0 4998 y Fi(c)l(c)l(enter)13 -b Fm(:)83 b(1029)p 373 5011 V -2 w(,)28 b(1030)p 590 -5011 V -2 w(,)g(1032)p 807 5011 V -2 w(,)g(1033)p 1024 -5011 V -2 w(,)g(1034,)e(1061)p 1458 5011 V -2 w(,)i(1062)p -1675 5011 V -2 w(,)166 5098 y(1063)p 166 5111 V -2 w(,)40 -b(1064)p 395 5111 V -2 w(,)f(1104)p 623 5111 V -2 w(,)h(1105)p -852 5111 V -2 w(,)f(1106)p 1080 5111 V -2 w(,)h(1107)p -1309 5111 V -2 w(,)f(1237)p 1537 5111 V -2 w(,)166 5198 -y(1238)p 166 5211 V -2 w(,)j(1239)p 397 5211 V -2 w(,)f(1240)p -627 5211 V -2 w(.)0 5299 y Fi(c)l(c)l(os)11 b Fm(:)83 -b(161)p 261 5312 125 4 v -1 w(,)39 b(162,)f(163,)g(164.)0 -5400 y Fi(Center)13 b Fm(:)83 b(1159)p 364 5413 167 4 -v -2 w(.)2033 263 y Fi(c)l(enter)13 b Fm(:)83 b(938)p -2372 276 125 4 v -2 w(,)36 b(945,)f(949,)f(950,)g(961,)h(963,)f(965,)g -(966,)2199 363 y(967,)g(972)p 2382 376 V -2 w(,)i(976,)e(978,)f(981,)h -(982,)g(987,)g(988,)g(999,)2199 462 y(1018,)k(1021,)f(1024,)h(1030,)f -(1031,)h(1062,)f(1067,)2199 562 y(1077,)h(1104,)f(1105,)h(1115,)f -(1122,)h(1135,)f(1137,)2199 662 y(1158,)25 b(1166,)g(1174,)g(1187,)g -(1188,)g(1204,)g(1238,)g(1263,)2199 761 y(1265,)g(1269,)g(1289,)g(1291) -p 2847 774 167 4 v -2 w(,)i(1303,)e(1309,)g(1342,)g(1344,)2199 -861 y(1415,)g(1424,)g(1435,)g(1439,)g(1440,)g(1452,)g(1454,)g(1456,) -2199 960 y(1466,)37 b(1469,)f(1480,)h(1483.)2033 1064 -y Fi(c)l(enter)p 2258 1064 26 4 v 30 w(0)16 b Fm(:)83 -b(1443,)31 b(1456)p 2669 1077 167 4 v -2 w(,)i(1457)p -2891 1077 V -2 w(,)f(1470,)f(1484.)2033 1167 y Fi(c)l(enter)p -2258 1167 26 4 v 30 w(6)16 b Fm(:)83 b(1456)p 2447 1180 -167 4 v -2 w(.)2033 1270 y Fi(c)l(err)13 b Fm(:)83 b(69,)33 +(657,)2199 3690 y(659,)d(685,)f(734,)h(739,)f(741,)h(743,)g(765,)f +(766,)h(770,)f(771,)2199 3789 y(830,)h(840,)f(843,)h(859,)f(860,)h +(862,)g(867,)f(898,)h(900,)f(914,)2199 3889 y(988,)33 +b(990,)f(997,)h(1123,)f(1127,)g(1259,)g(1287,)g(1290,)2199 +3988 y(1302,)25 b(1308,)g(1342,)g(1344,)g(1347,)g(1349,)g(1365,)g +(1367,)2199 4088 y(1380,)g(1384,)g(1387,)g(1390,)g(1393,)g(1396,)g +(1399,)g(1418,)2199 4188 y(1424,)j(1433,)h(1461,)f(1465,)g(1474,)h +(1478,)f(1488.)2033 4289 y Fi(b)l(e)l(gin\014g)12 b Fm(:)83 +b(47)p 2414 4302 84 4 v -1 w(,)38 b(48)p 2558 4302 V +-1 w(,)h(470,)e(1506.)2033 4391 y Fi(b)l(eta)11 b Fm(:)83 +b(1268)p 2292 4404 167 4 v -2 w(.)2033 4492 y Fk(bitset)t +Fm(:)g(16.)2033 4594 y Fi(black)14 b Fm(:)84 b(108,)29 +b(112)p 2509 4607 125 4 v -2 w(,)i(113)p 2687 4607 V +-1 w(,)f(957,)f(1287,)g(1290,)g(1461.)2033 4695 y Fi(blue)11 +b Fm(:)83 b(108,)32 b(112)p 2473 4708 V -2 w(,)i(113)p +2654 4708 V -2 w(,)g(949,)e(957,)g(1287,)f(1443,)h(1461,)2199 +4795 y(1505.)2033 4896 y Fi(blue)p 2180 4896 26 4 v 31 +w(p)l(art)12 b Fm(:)83 b(56)p 2467 4909 84 4 v -1 w(,)41 +b(59,)e(61,)h(64,)g(66,)f(69,)h(71,)f(74,)h(75,)2199 +4996 y(76,)i(85,)g(91,)f(99.)2033 5097 y Fi(blue)p 2180 +5097 26 4 v 31 w(violet)13 b Fm(:)83 b(108,)35 b(112)p +2701 5110 125 4 v -2 w(,)h(113)p 2884 5110 V -1 w(,)g(1505.)2033 +5199 y Fk(b)s(o)s(ol)p 2219 5199 29 5 v 38 w(pair)6 b +Fm(:)83 b(12)p 2530 5212 84 4 v -1 w(.)2033 5300 y Fk(b)s(o)s(ol)p +2219 5300 29 5 v 38 w(p)s(oin)m(t)5 b Fm(:)83 b(33)p +2582 5313 84 4 v -1 w(,)25 b(267,)g(268)p 2887 5313 125 +4 v -2 w(,)h(269)p 3060 5313 V -2 w(,)g(270,)e(274,)g(275,)g(527,)2199 +5400 y(528,)g(529,)f(530,)h(603,)f(604,)h(640,)g(641,)f(642,)h(920,)f +(921,)p eop end +%%Page: 490 490 +TeXDict begin 490 489 bop 0 83 a Fm(490)140 b Fl(INDEX)2670 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1525)166 263 y(922,)32 +b(952,)g(963,)g(988,)f(990,)h(997,)g(1451.)0 367 y Fk(b)s(o)s(ol)p +186 367 29 5 v 38 w(p)s(oin)m(t)p 442 367 V 40 w(pair)5 +b Fm(:)83 b(267)p 754 380 125 4 v -1 w(,)33 b(274,)e(275,)h(952,)f +(953,)h(954,)166 467 y(964,)e(965,)f(984,)h(985,)g(993,)f(994,)h(999,)g +(1164,)f(1170,)166 567 y(1171,)38 b(1172,)f(1173,)h(1179,)f(1188,)h +(1221,)f(1228,)166 666 y(1263,)g(1264,)f(1265,)h(1266.)0 +771 y Fk(b)s(o)s(ol)p 186 771 29 5 v 38 w(p)s(oin)m(t)p +442 771 V 40 w(quadruple)5 b Fm(:)83 b(270)p 1007 784 +125 4 v -1 w(,)40 b(271)p 1195 784 V -1 w(,)g(274,)e(275,)166 +870 y(1174,)c(1175,)g(1176,)f(1267,)h(1268.)0 975 y Fk(b)s(o)s(ol)p +186 975 29 5 v 38 w(real)5 b Fm(:)83 b(12)p 487 988 84 +4 v -1 w(,)40 b(349,)f(350,)g(352,)f(353,)h(354,)f(355,)166 +1074 y(603,)k(961,)f(999.)0 1179 y Fk(b)s(o)s(ol)p 186 +1179 29 5 v 38 w(real)p 380 1179 V 41 w(p)s(oin)m(t)t +Fm(:)83 b(33)p 745 1192 84 4 v -1 w(,)36 b(272)p 887 +1192 125 4 v -2 w(,)g(273)p 1070 1192 V -1 w(,)g(274,)e(275,)h(603,)166 +1278 y(604,)42 b(605,)f(920.)0 1382 y Fk(b)s(o)s(ols)s +Fm(:)83 b(667,)39 b(952,)g(1299.)0 1487 y Fi(b)l(ot)p +109 1487 26 4 v 31 w(lft)12 b Fm(:)83 b(1065)p 327 1500 +167 4 v -2 w(.)0 1591 y Fi(b)l(ot)p 109 1591 26 4 v 31 +w(rt)11 b Fm(:)83 b(1065)p 315 1604 167 4 v -2 w(.)0 +1696 y Fi(bp)10 b Fm(:)83 b(268)p 196 1709 125 4 v -1 +w(,)34 b(530)p 378 1709 V -2 w(,)g(541,)e(603)p 740 1709 +V -1 w(,)h(641)p 921 1709 V -1 w(,)h(963)p 1103 1709 +V -2 w(,)g(988)p 1284 1709 V -1 w(,)f(990)p 1465 1709 +V -1 w(,)h(991,)166 1795 y(997)p 166 1808 V -1 w(,)45 +b(1451)p 359 1808 167 4 v -2 w(.)0 1899 y Fi(bpp)11 b +Fm(:)83 b(953,)30 b(954)p 418 1912 125 4 v -2 w(,)i(958,)e(959,)g(960,) +h(961,)f(963,)g(985)p 1493 1912 V -1 w(,)h(988,)166 1999 +y(990,)d(991,)g(992,)h(999)p 698 2012 V -2 w(,)h(1163,)d(1164)p +1093 2012 167 4 v -1 w(,)i(1188)p 1312 2012 V -2 w(,)h(1228)p +1531 2012 V -2 w(.)0 2103 y Fi(bpp)p 127 2103 26 4 v +32 w(e)10 b Fm(:)83 b(1179)p 308 2116 167 4 v -2 w(.)0 +2208 y Fi(bpp)p 127 2208 26 4 v 32 w(this)11 b Fm(:)83 +b(1179)p 400 2221 167 4 v -2 w(.)0 2312 y Fi(bpp0)17 +b Fm(:)83 b(1221)p 287 2325 V -2 w(.)0 2416 y Fi(bpp1)17 +b Fm(:)83 b(1221)p 287 2429 V -2 w(.)0 2521 y Fi(bp)l(q)12 +b Fm(:)83 b(1174)p 232 2534 V -2 w(,)32 b(1176)p 453 +2534 V -2 w(,)h(1184,)d(1186,)g(1188,)g(1268)p 1338 2534 +V -2 w(.)0 2625 y Fi(br)13 b Fm(:)83 b(355)p 192 2638 +125 4 v -1 w(,)45 b(999)p 385 2638 V -1 w(.)0 2730 y +Fi(br)p 78 2730 26 4 v 31 w(p)10 b Fm(:)83 b(603)p 262 +2743 125 4 v -2 w(.)0 2834 y Fi(br)p 78 2834 26 4 v 31 +w(q)12 b Fm(:)83 b(603)p 260 2847 125 4 v -2 w(.)0 2938 +y Fi(brp)10 b Fm(:)83 b(272)p 231 2951 V -1 w(,)37 b(603)p +416 2951 V -1 w(,)g(605)p 601 2951 V -1 w(,)g(606,)f(607.)0 +3043 y Fk(BUG)j(FIX)p Fm(:)84 b(119,)34 b(150,)g(265,)g(349,)g(386,)g +(397,)f(463,)166 3142 y(474,)h(545,)g(601,)g(623,)f(633,)h(672,)g(888,) +g(904,)g(953,)166 3242 y(967,)e(1064,)g(1152,)f(1163,)h(1192,)f(1309.)0 +3346 y Fk(BUGS)p Fm(:)84 b(395.)0 3450 y Fi(b0)16 b Fm(:)83 +b(900)p 202 3463 V -1 w(.)0 3555 y Fi(b1)16 b Fm(:)83 +b(900)p 202 3568 V -1 w(.)0 3659 y Fe(C)6 b Fm(:)83 b(31)p +171 3672 84 4 v -1 w(,)38 b(32)p 315 3672 V -1 w(,)g(1219)p +459 3672 167 4 v -2 w(,)g(1228)p 686 3672 V -2 w(,)f(1229)p +912 3672 V -2 w(.)0 3764 y Fe(c)p Fm(:)83 b(13)p 142 +3777 84 4 v -1 w(,)34 b(29)p 282 3777 V -1 w(,)g(30)p +422 3777 V -1 w(,)h(60)p 563 3777 V -1 w(,)f(61)p 703 +3777 V -1 w(,)g(72)p 843 3777 V -1 w(,)g(73)p 983 3777 +V -1 w(,)g(74)p 1123 3777 V -1 w(,)g(75)p 1263 3777 V +-1 w(,)h(76)p 1404 3777 V -1 w(,)f(77)p 1544 3777 V -1 +w(,)g(78)p 1684 3777 V -1 w(,)166 3863 y(103)p 166 3876 +125 4 v -1 w(,)25 b(104)p 339 3876 V -2 w(,)g(270)p 511 +3876 V -1 w(,)g(317)p 684 3876 V -2 w(,)g(318)p 856 3876 +V -1 w(,)g(319)p 1029 3876 V -1 w(,)g(320)p 1202 3876 +V -2 w(,)g(695)p 1374 3876 V -1 w(,)g(696)p 1547 3876 +V -2 w(,)g(697)p 1719 3876 V -1 w(,)166 3963 y(698)p +166 3976 V -1 w(,)g(700)p 339 3976 V -2 w(,)g(701)p 511 +3976 V -1 w(,)g(702)p 684 3976 V -2 w(,)g(703)p 856 3976 +V -1 w(,)g(776)p 1029 3976 V -1 w(,)g(802)p 1202 3976 +V -2 w(,)g(807)p 1374 3976 V -1 w(,)g(824)p 1547 3976 +V -2 w(,)g(904)p 1719 3976 V -1 w(,)166 4062 y(908)p +166 4075 V -1 w(,)31 b(909)p 345 4075 V -1 w(,)h(1079)p +525 4075 167 4 v -2 w(,)g(1080)p 746 4075 V -2 w(,)f(1083)p +966 4075 V -2 w(,)h(1085)p 1187 4075 V -2 w(,)g(1086)p +1408 4075 V -2 w(,)g(1087)p 1629 4075 V -2 w(,)166 4162 +y(1088)p 166 4175 V -2 w(,)27 b(1123)p 382 4175 V -2 +w(,)g(1174)p 598 4175 V -2 w(,)g(1183)p 814 4175 V -2 +w(,)g(1193)p 1030 4175 V -2 w(,)g(1245)p 1246 4175 V +-2 w(,)g(1248)p 1462 4175 V -2 w(,)g(1250)p 1678 4175 +V -2 w(,)166 4262 y(1253)p 166 4275 V -2 w(,)g(1254)p +382 4275 V -2 w(,)g(1258)p 598 4275 V -2 w(,)g(1259)p +814 4275 V -2 w(,)g(1267)p 1030 4275 V -2 w(,)g(1268)p +1246 4275 V -2 w(,)g(1270)p 1462 4275 V -2 w(,)g(1272)p +1678 4275 V -2 w(,)166 4361 y(1274)p 166 4374 V -2 w(,)g(1276)p +382 4374 V -2 w(,)g(1382)p 598 4374 V -2 w(,)g(1385)p +814 4374 V -2 w(,)g(1388)p 1030 4374 V -2 w(,)g(1417)p +1246 4374 V -2 w(,)g(1418)p 1462 4374 V -2 w(,)g(1419)p +1678 4374 V -2 w(,)166 4461 y(1420)p 166 4474 V -2 w(,)33 +b(1421)p 388 4474 V -2 w(,)g(1422)p 610 4474 V -2 w(,)g(1425)p +832 4474 V -2 w(,)g(1426)p 1054 4474 V -2 w(,)g(1506)p +1276 4474 V -2 w(.)0 4565 y Fi(c)p 43 4565 26 4 v 31 +w(iter)13 b Fm(:)83 b(657,)33 b(1382,)g(1384,)f(1385,)g(1387.)0 +4670 y Fi(c)p 43 4670 V 31 w(plane)11 b Fm(:)83 b(1268)p +376 4683 167 4 v -2 w(.)0 4774 y Fi(c)p 43 4774 26 4 +v 31 w(ptr)13 b Fm(:)83 b(1316)p 293 4787 167 4 v -2 +w(.)0 4878 y Fi(c)p 43 4878 26 4 v 31 w(r)l(adius)11 +b Fm(:)83 b(1267)p 405 4891 167 4 v -1 w(.)0 4983 y Fi(c)p +43 4983 26 4 v 31 w(str)12 b Fm(:)84 b(44.)0 5087 y Fi(c)p +43 5087 V 31 w(x)13 b Fm(:)84 b(904)p 228 5100 125 4 +v -2 w(,)45 b(906.)0 5191 y Fi(c)p 43 5191 26 4 v 31 +w(y)12 b Fm(:)83 b(904)p 227 5204 125 4 v -2 w(,)42 b(905,)f(906.)0 +5296 y Fi(c)p 43 5296 26 4 v 31 w(z)14 b Fm(:)83 b(904)p +223 5309 125 4 v -1 w(,)42 b(905,)f(906.)0 5400 y Fi(c)l(c)9 +b Fm(:)83 b(1183)p 187 5413 167 4 v -2 w(.)2033 263 y +Fi(c)l(c)l(enter)13 b Fm(:)83 b(1032)p 2406 276 V -2 +w(,)28 b(1033)p 2623 276 V -2 w(,)g(1035)p 2840 276 V +-2 w(,)g(1036)p 3057 276 V -2 w(,)g(1037,)e(1064)p 3491 +276 V -2 w(,)i(1065)p 3708 276 V -2 w(,)2199 363 y(1066)p +2199 376 V -2 w(,)40 b(1067)p 2428 376 V -2 w(,)f(1109)p +2656 376 V -2 w(,)h(1110)p 2885 376 V -2 w(,)f(1111)p +3113 376 V -2 w(,)h(1112)p 3342 376 V -2 w(,)f(1242)p +3570 376 V -2 w(,)2199 462 y(1243)p 2199 475 V -2 w(,)j(1244)p +2430 475 V -2 w(,)f(1245)p 2660 475 V -2 w(.)2033 566 +y Fi(c)l(c)l(os)11 b Fm(:)83 b(161)p 2294 579 125 4 v +-1 w(,)39 b(162,)f(163,)g(164.)2033 669 y Fi(Center)13 +b Fm(:)83 b(1164)p 2397 682 167 4 v -2 w(.)2033 772 y +Fi(c)l(enter)13 b Fm(:)83 b(941)p 2372 785 125 4 v -2 +w(,)36 b(948,)f(952,)f(953,)g(964,)h(966,)f(968,)g(969,)2199 +872 y(970,)e(975)p 2380 885 V -2 w(,)i(979,)d(981,)h(984,)g(985,)g +(990,)f(991,)h(1002,)2199 972 y(1021,)38 b(1024,)f(1027,)h(1033,)f +(1034,)h(1065,)f(1070,)2199 1071 y(1080,)h(1109,)f(1110,)h(1120,)f +(1127,)h(1140,)f(1142,)2199 1171 y(1163,)25 b(1171,)g(1179,)g(1192,)g +(1193,)g(1209,)g(1243,)g(1268,)2199 1270 y(1270,)g(1274,)g(1294,)g +(1296)p 2847 1283 167 4 v -2 w(,)i(1308,)e(1314,)g(1347,)g(1349,)2199 +1370 y(1420,)g(1429,)g(1440,)g(1444,)g(1445,)g(1457,)g(1459,)g(1461,) +2199 1470 y(1471,)37 b(1474,)f(1485,)h(1488.)2033 1573 +y Fi(c)l(enter)p 2258 1573 26 4 v 30 w(0)16 b Fm(:)83 +b(1448,)31 b(1461)p 2669 1586 167 4 v -2 w(,)i(1462)p +2891 1586 V -2 w(,)f(1475,)f(1489.)2033 1676 y Fi(c)l(enter)p +2258 1676 26 4 v 30 w(6)16 b Fm(:)83 b(1461)p 2447 1689 +167 4 v -2 w(.)2033 1780 y Fi(c)l(err)13 b Fm(:)83 b(69,)33 b(71,)g(85,)g(87,)g(89,)g(91,)g(106,)f(108,)h(151,)f(153,)2199 -1370 y(161,)24 b(183,)f(188,)h(313,)f(318,)h(346,)g(347,)f(350,)h(351,) -f(380,)2199 1470 y(383,)h(393,)f(400,)h(401,)f(432,)h(443,)g(452,)f -(458,)h(462,)f(464,)2199 1569 y(472,)h(503,)f(505,)h(508,)f(536,)h -(540,)g(549,)f(550,)h(551,)f(561,)2199 1669 y(572,)34 -b(606,)g(624,)g(641,)f(644,)h(716,)g(717,)g(722,)g(743,)2199 -1769 y(748,)g(750,)g(763,)g(765,)f(776,)h(802,)g(807,)g(813,)g(821,) -2199 1868 y(824,)g(830,)g(842,)g(844,)f(858,)h(863,)g(867,)g(873,)g -(880,)2199 1968 y(883,)g(884,)g(885,)g(888,)f(890,)h(894,)g(895,)g -(896,)g(898,)2199 2068 y(900,)g(901,)g(903,)g(909,)f(919,)h(924,)g -(930,)g(946,)g(948,)2199 2167 y(952,)g(959,)g(962,)g(965,)f(976,)h -(978,)g(983,)g(986,)g(991,)2199 2267 y(995,)28 b(1006,)g(1067,)g(1081,) -f(1083,)h(1105,)g(1122,)f(1129,)2199 2366 y(1140,)e(1142,)g(1163,)g -(1168,)g(1174,)g(1177,)g(1179,)g(1180,)2199 2466 y(1181,)g(1182,)g -(1188,)g(1211,)g(1216,)g(1223,)g(1224,)g(1251,)2199 2566 -y(1254,)g(1263,)g(1265,)g(1269,)g(1279,)g(1282,)g(1312,)g(1325,)2199 -2665 y(1360,)31 b(1362,)g(1458,)g(1471,)g(1503,)g(1509.)2033 -2769 y Fi(che)l(ck)14 b Fm(:)83 b(1187)p 2343 2782 V --2 w(,)31 b(1188)p 2563 2782 V -1 w(,)g(1189,)e(1191,)g(1198,)g(1208.) -2033 2872 y Fi(che)l(ck)p 2228 2872 26 4 v 32 w(pr)l(oje)l(ction)p -2614 2872 V 31 w(limits)12 b Fm(:)83 b(252.)2033 2975 -y Ff(CIRCLE)r Fm(:)g(1291)p 2405 2988 167 4 v -2 w(,)28 -b(1292)p 2622 2988 V -2 w(,)g(1311,)e(1312,)f(1324,)h(1325,)g(1327.) -2033 3079 y Fk(Circle)t Fm(:)83 b(33)p 2391 3092 84 4 -v -1 w(,)38 b(686,)f(963,)f(1021,)h(1043,)f(1044,)g(1046,)2199 -3178 y(1047,)25 b(1048,)g(1050,)g(1051,)g(1169,)g(1170,)g(1232)p -3495 3191 167 4 v -2 w(,)i(1234,)2199 3278 y(1235)p 2199 -3291 V -2 w(,)g(1237,)e(1238)p 2631 3291 V -2 w(,)i(1240,)e(1242,)g -(1243,)g(1244,)g(1245,)2199 3378 y(1246,)g(1248,)g(1249,)g(1250,)g -(1251,)g(1253,)g(1254,)g(1257,)2199 3477 y(1259,)g(1261,)g(1262,)g -(1263,)g(1264,)g(1265,)g(1267,)g(1268,)2199 3577 y(1269,)g(1271,)g -(1272,)g(1281,)g(1282,)g(1283,)g(1284,)g(1285,)2199 3676 -y(1291,)g(1297,)g(1303,)g(1307,)g(1311,)g(1313,)g(1314,)g(1324,)2199 -3776 y(1337,)g(1339,)g(1342,)g(1344,)g(1360,)g(1362,)g(1374,)g(1375,) -2199 3876 y(1379,)j(1382,)h(1385,)f(1388,)g(1391,)h(1394,)f(1501.)2033 -3979 y Fi(cir)l(cles)12 b Fm(:)83 b(1291)p 2376 3992 -V -2 w(,)30 b(1297,)d(1303,)h(1311,)g(1312,)f(1314,)h(1324,)2199 -4079 y(1325,)d(1337,)g(1339,)g(1342,)g(1344,)g(1360,)g(1362,)g(1374,) -2199 4178 y(1375,)g(1377,)g(1379,)g(1380,)g(1382,)g(1383,)g(1385,)g -(1386,)2199 4278 y(1388,)34 b(1389,)g(1391,)f(1392,)h(1394.)2033 -4381 y Fk(Circles)t Fm(:)83 b(1173,)34 b(1253,)f(1281,)h(1284.)2033 -4485 y Fi(classes)12 b Fm(:)83 b(656.)2033 4588 y Fi(cle)l(an)11 -b Fm(:)83 b(136)p 2332 4601 125 4 v -1 w(,)28 b(137)p -2508 4601 V -1 w(,)h(141,)e(143,)g(151,)g(153,)g(156,)g(164,)h(172,) -2199 4688 y(174,)g(177,)g(179,)g(304)p 2730 4701 V -1 -w(,)h(305)p 2907 4701 V -1 w(,)g(395,)f(516,)g(517,)g(520.)2033 -4791 y Fi(cle)l(ar)14 b Fm(:)83 b(200)p 2323 4804 V -1 -w(,)38 b(221,)f(222,)g(232,)g(255)p 3067 4804 V -2 w(,)i(302)p -3253 4804 V -2 w(,)g(303)p 3439 4804 V -2 w(,)g(470,)2199 -4891 y(543,)32 b(546)p 2380 4904 V -2 w(,)i(659,)d(685,)h(686)p -2922 4904 V -1 w(,)h(687)p 3103 4904 V -2 w(,)h(709,)d(996,)h(1024,) -2199 4990 y(1040,)38 b(1075,)f(1077,)h(1113,)f(1246,)h(1282,)f(1285,) -2199 5090 y(1303,)g(1338)p 2427 5103 167 4 v -2 w(,)h(1339)p -2654 5103 V -2 w(,)h(1419.)2033 5193 y Fi(close)11 b -Fm(:)84 b(1511.)2033 5297 y Fi(close)l(d)14 b Fm(:)83 -b(964)p 2364 5310 125 4 v -1 w(,)38 b(965)p 2550 5310 -V -1 w(,)g(966)p 2736 5310 V -1 w(,)g(967)p 2922 5310 -V -1 w(.)2033 5400 y Fi(c)l(o)l(e\013s)11 b Fm(:)83 b(957)p -2345 5413 V -1 w(.)p eop end -%%Page: 486 486 -TeXDict begin 486 485 bop 0 83 a Fm(486)140 b Fl(INDEX)2670 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1517)0 263 y Fi(c)l(ol)13 -b Fm(:)84 b(134)p 217 276 125 4 v -2 w(,)40 b(135)p 404 -276 V -1 w(,)g(145)p 592 276 V -2 w(,)g(146)p 779 276 -V -1 w(.)0 365 y Fi(c)l(ol)p 102 365 26 4 v 31 w(ve)l(c)9 -b Fm(:)83 b(1456)p 353 378 167 4 v -1 w(.)0 467 y Fk(Color)t -Fm(:)g(56)p 341 480 84 4 v -1 w(,)32 b(58,)e(59)p 616 -480 V -1 w(,)i(60,)e(61)p 891 480 V -1 w(,)i(63,)e(64)p -1166 480 V -1 w(,)i(66,)e(68,)h(69)p 1579 480 V -1 w(,)g(71,)166 -567 y(72,)h(73,)g(74,)g(75,)h(76,)f(77,)g(78,)g(81,)g(83,)g(85,)g(87,)g -(89,)166 667 y(91,)e(93,)f(101,)g(103,)g(104,)g(106,)g(108,)h(111,)f -(112,)g(113,)166 766 y(115,)24 b(116,)f(264,)h(409,)f(410,)h(411,)g -(412,)f(413,)h(419,)f(420,)166 866 y(422,)h(423,)f(428,)h(429,)f(654,)h -(655,)g(657,)f(695,)h(696,)f(697,)166 966 y(698,)h(700,)f(701,)h(702,)f -(703,)h(775,)g(776,)f(777,)h(778,)f(780,)166 1065 y(781,)h(784,)f(785,) -h(786,)f(787,)h(789,)g(790,)f(793,)h(794,)f(795,)166 -1165 y(796,)34 b(798,)g(799,)g(801,)f(802,)h(803,)g(804,)g(806,)g(807,) -166 1264 y(808,)g(809,)g(823,)g(824,)f(825,)h(826,)g(921,)g(922,)g -(926,)166 1364 y(927,)28 b(1046,)g(1047,)g(1050,)f(1051,)h(1092,)g -(1093,)f(1217,)166 1464 y(1218,)e(1219,)g(1220,)g(1225,)g(1226,)g -(1267,)g(1268,)g(1271,)166 1563 y(1272,)g(1278,)g(1279,)g(1281,)g -(1282,)g(1284,)g(1285,)g(1377,)166 1663 y(1378,)g(1379,)g(1380,)g -(1381,)g(1382,)g(1383,)g(1384,)g(1385,)166 1763 y(1386,)31 -b(1389,)g(1392,)g(1456,)g(1500,)g(1511.)0 1865 y Fi(c)l(olor)p -179 1865 26 4 v 32 w(iter)13 b Fm(:)83 b(1285.)0 1967 -y Fi(c)l(olor)p 179 1967 V 32 w(ptr)13 b Fm(:)83 b(1377,)33 -b(1379)p 654 1980 167 4 v -2 w(,)i(1380,)f(1382)p 1103 -1980 V -2 w(.)0 2069 y Fk(Colors)t Fm(:)83 b(67,)28 b(75,)f(107,)h(108) -p 825 2082 125 4 v -2 w(,)h(112)p 1001 2082 V -1 w(,)f(113)p -1177 2082 V -1 w(,)h(115)p 1354 2082 V -2 w(,)g(116)p -1530 2082 V -1 w(,)g(410,)166 2169 y(412,)24 b(415,)f(419,)h(420,)f -(422,)h(423,)g(427,)f(428,)h(429,)f(458,)166 2268 y(655,)h(775,)f(776,) +1879 y(161,)24 b(183,)f(188,)h(313,)f(318,)h(346,)g(347,)f(350,)h(351,) +f(380,)2199 1979 y(383,)h(393,)f(400,)h(401,)f(432,)h(443,)g(452,)f +(458,)h(462,)f(464,)2199 2079 y(472,)h(503,)f(505,)h(508,)f(536,)h +(540,)g(549,)f(550,)h(551,)f(561,)2199 2178 y(572,)h(606,)f(624,)h +(641,)f(644,)h(716,)g(717,)f(722,)h(743,)f(748,)2199 +2278 y(750,)h(763,)f(765,)h(776,)f(802,)h(807,)g(813,)f(821,)h(824,)f +(830,)2199 2378 y(842,)h(844,)f(858,)h(863,)f(867,)h(873,)g(880,)f +(883,)h(884,)f(885,)2199 2477 y(889,)34 b(891,)g(893,)g(897,)f(898,)h +(899,)g(901,)g(903,)g(904,)2199 2577 y(906,)g(912,)g(922,)g(927,)f +(933,)h(949,)g(951,)g(955,)g(962,)2199 2676 y(965,)e(968,)g(979,)f +(981,)h(986,)g(989,)g(994,)f(998,)h(1009,)2199 2776 y(1070,)25 +b(1086,)g(1088,)g(1110,)g(1127,)g(1134,)g(1145,)g(1147,)2199 +2876 y(1168,)g(1173,)g(1179,)g(1182,)g(1184,)g(1185,)g(1186,)g(1187,) +2199 2975 y(1193,)g(1216,)g(1221,)g(1228,)g(1229,)g(1256,)g(1259,)g +(1268,)2199 3075 y(1270,)g(1274,)g(1284,)g(1287,)g(1317,)g(1330,)g +(1365,)g(1367,)2199 3175 y(1463,)34 b(1476,)g(1508,)f(1515,)h(1516.) +2033 3278 y Fi(che)l(ck)14 b Fm(:)83 b(1192)p 2343 3291 +V -2 w(,)31 b(1193)p 2563 3291 V -1 w(,)g(1194,)e(1196,)g(1203,)g +(1213.)2033 3381 y Fi(che)l(ck)p 2228 3381 26 4 v 32 +w(pr)l(oje)l(ction)p 2614 3381 V 31 w(limits)12 b Fm(:)83 +b(252.)2033 3485 y Ff(CIRCLE)r Fm(:)g(1296)p 2405 3498 +167 4 v -2 w(,)28 b(1297)p 2622 3498 V -2 w(,)g(1316,)e(1317,)f(1329,)h +(1330,)g(1332.)2033 3588 y Fk(Circle)t Fm(:)83 b(33)p +2391 3601 84 4 v -1 w(,)38 b(686,)f(966,)f(1024,)h(1046,)f(1047,)g +(1049,)2199 3688 y(1050,)25 b(1051,)g(1053,)g(1054,)g(1174,)g(1175,)g +(1237)p 3495 3701 167 4 v -2 w(,)i(1239,)2199 3787 y(1240)p +2199 3800 V -2 w(,)g(1242,)e(1243)p 2631 3800 V -2 w(,)i(1245,)e(1247,) +g(1248,)g(1249,)g(1250,)2199 3887 y(1251,)g(1253,)g(1254,)g(1255,)g +(1256,)g(1258,)g(1259,)g(1262,)2199 3987 y(1264,)g(1266,)g(1267,)g +(1268,)g(1269,)g(1270,)g(1272,)g(1273,)2199 4086 y(1274,)g(1276,)g +(1277,)g(1286,)g(1287,)g(1288,)g(1289,)g(1290,)2199 4186 +y(1296,)g(1302,)g(1308,)g(1312,)g(1316,)g(1318,)g(1319,)g(1329,)2199 +4285 y(1342,)g(1344,)g(1347,)g(1349,)g(1365,)g(1367,)g(1379,)g(1380,) +2199 4385 y(1384,)j(1387,)h(1390,)f(1393,)g(1396,)h(1399,)f(1506.)2033 +4488 y Fi(cir)l(cles)12 b Fm(:)83 b(1296)p 2376 4501 +V -2 w(,)30 b(1302,)d(1308,)h(1316,)g(1317,)f(1319,)h(1329,)2199 +4588 y(1330,)d(1342,)g(1344,)g(1347,)g(1349,)g(1365,)g(1367,)g(1379,) +2199 4688 y(1380,)g(1382,)g(1384,)g(1385,)g(1387,)g(1388,)g(1390,)g +(1391,)2199 4787 y(1393,)34 b(1394,)g(1396,)f(1397,)h(1399.)2033 +4891 y Fk(Circles)t Fm(:)83 b(1178,)34 b(1258,)f(1286,)h(1289.)2033 +4994 y Fi(classes)12 b Fm(:)83 b(656.)2033 5097 y Fi(cle)l(an)11 +b Fm(:)83 b(136)p 2332 5110 125 4 v -1 w(,)28 b(137)p +2508 5110 V -1 w(,)h(141,)e(143,)g(151,)g(153,)g(156,)g(164,)h(172,) +2199 5197 y(174,)g(177,)g(179,)g(304)p 2730 5210 V -1 +w(,)h(305)p 2907 5210 V -1 w(,)g(395,)f(516,)g(517,)g(520.)2033 +5300 y Fi(cle)l(ar)14 b Fm(:)83 b(200)p 2323 5313 V -1 +w(,)38 b(221,)f(222,)g(232,)g(255)p 3067 5313 V -2 w(,)i(302)p +3253 5313 V -2 w(,)g(303)p 3439 5313 V -2 w(,)g(470,)2199 +5400 y(543,)32 b(546)p 2380 5413 V -2 w(,)i(659,)d(685,)h(686)p +2922 5413 V -1 w(,)h(687)p 3103 5413 V -2 w(,)h(709,)d(999,)h(1027,)p +eop end +%%Page: 491 491 +TeXDict begin 491 490 bop 0 83 a Fn(x)p Fm(1525)139 b +Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(491)166 263 y(1043,)38 +b(1078,)f(1080,)h(1118,)f(1251,)h(1287,)f(1290,)166 363 +y(1308,)g(1343)p 394 376 167 4 v -2 w(,)h(1344)p 621 +376 V -2 w(,)h(1424.)0 465 y Fi(close)11 b Fm(:)84 b(1519.)0 +567 y Fi(close)l(d)14 b Fm(:)83 b(967)p 331 580 125 4 +v -1 w(,)38 b(968)p 517 580 V -1 w(,)g(969)p 703 580 +V -1 w(,)g(970)p 889 580 V -1 w(.)0 669 y Fi(c)l(o)l(e\013s)11 +b Fm(:)83 b(960)p 312 682 V -1 w(.)0 770 y Fi(c)l(ol)13 +b Fm(:)84 b(134)p 217 783 V -2 w(,)40 b(135)p 404 783 +V -1 w(,)g(145)p 592 783 V -2 w(,)g(146)p 779 783 V -1 +w(.)0 872 y Fi(c)l(ol)p 102 872 26 4 v 31 w(ve)l(c)9 +b Fm(:)83 b(1461)p 353 885 167 4 v -1 w(.)0 974 y Fk(Color)t +Fm(:)g(56)p 341 987 84 4 v -1 w(,)32 b(58,)e(59)p 616 +987 V -1 w(,)i(60,)e(61)p 891 987 V -1 w(,)i(63,)e(64)p +1166 987 V -1 w(,)i(66,)e(68,)h(69)p 1579 987 V -1 w(,)g(71,)166 +1074 y(72,)h(73,)g(74,)g(75,)h(76,)f(77,)g(78,)g(81,)g(83,)g(85,)g(87,) +g(89,)166 1174 y(91,)e(93,)f(101,)g(103,)g(104,)g(106,)g(108,)h(111,)f +(112,)g(113,)166 1273 y(115,)24 b(116,)f(264,)h(409,)f(410,)h(411,)g +(412,)f(413,)h(419,)f(420,)166 1373 y(422,)h(423,)f(428,)h(429,)f(654,) +h(655,)g(657,)f(695,)h(696,)f(697,)166 1473 y(698,)h(700,)f(701,)h +(702,)f(703,)h(775,)g(776,)f(777,)h(778,)f(780,)166 1572 +y(781,)h(784,)f(785,)h(786,)f(787,)h(789,)g(790,)f(793,)h(794,)f(795,) +166 1672 y(796,)34 b(798,)g(799,)g(801,)f(802,)h(803,)g(804,)g(806,)g +(807,)166 1771 y(808,)g(809,)g(823,)g(824,)f(825,)h(826,)g(924,)g(925,) +g(929,)166 1871 y(930,)28 b(1049,)g(1050,)g(1053,)f(1054,)h(1097,)g +(1098,)f(1222,)166 1971 y(1223,)e(1224,)g(1225,)g(1230,)g(1231,)g +(1272,)g(1273,)g(1276,)166 2070 y(1277,)g(1283,)g(1284,)g(1286,)g +(1287,)g(1289,)g(1290,)g(1382,)166 2170 y(1383,)g(1384,)g(1385,)g +(1386,)g(1387,)g(1388,)g(1389,)g(1390,)166 2270 y(1391,)31 +b(1394,)g(1397,)g(1461,)g(1505,)g(1519.)0 2372 y Fi(c)l(olor)p +179 2372 26 4 v 32 w(iter)13 b Fm(:)83 b(1290.)0 2473 +y Fi(c)l(olor)p 179 2473 V 32 w(ptr)13 b Fm(:)83 b(1382,)33 +b(1384)p 654 2486 167 4 v -2 w(,)i(1385,)f(1387)p 1103 +2486 V -2 w(.)0 2575 y Fk(Colors)t Fm(:)83 b(67,)28 b(75,)f(107,)h(108) +p 825 2588 125 4 v -2 w(,)h(112)p 1001 2588 V -1 w(,)f(113)p +1177 2588 V -1 w(,)h(115)p 1354 2588 V -2 w(,)g(116)p +1530 2588 V -1 w(,)g(410,)166 2675 y(412,)24 b(415,)f(419,)h(420,)f +(422,)h(423,)g(427,)f(428,)h(429,)f(458,)166 2775 y(655,)h(775,)f(776,) h(777,)f(784,)h(786,)g(801,)f(802,)h(803,)f(806,)166 -2368 y(808,)h(823,)f(825,)h(859,)f(861,)h(862,)g(863,)f(921,)h(946,)f -(954,)166 2468 y(1046,)i(1047,)g(1050,)g(1051,)g(1092,)g(1093,)g(1217,) -g(1219,)166 2567 y(1278,)g(1279,)g(1281,)g(1282)p 814 -2580 167 4 v -2 w(,)i(1284,)e(1285)p 1246 2580 V -2 w(,)i(1378,)e -(1379,)166 2667 y(1381,)j(1382,)h(1384,)f(1438)p 824 -2680 V -2 w(,)i(1446,)f(1456)p 1263 2680 V -2 w(,)h(1500)p -1482 2680 V -2 w(.)0 2769 y Fi(c)l(olors)12 b Fm(:)83 -b(1281)p 326 2782 V -2 w(,)37 b(1282)p 552 2782 V -2 -w(,)f(1284)p 777 2782 V -2 w(,)h(1285)p 1003 2782 V -2 -w(.)0 2871 y Fi(c)l(olumn)10 b Fm(:)83 b(581)p 373 2884 -125 4 v -1 w(,)38 b(582)p 559 2884 V -1 w(,)g(584)p 745 -2884 V -2 w(,)g(585)p 930 2884 V -1 w(.)0 2973 y Fk(Compare)p -383 2973 29 5 v 40 w(maxim)m(um)p 836 2973 V 39 w(z)6 -b Fm(:)83 b(453,)28 b(455)p 1202 2986 125 4 v -2 w(,)h(552,)f(1375.)0 -3075 y Fk(Compare)p 383 3075 29 5 v 40 w(mean)p 646 3075 -V 40 w(z)5 b Fm(:)83 b(453,)33 b(456)p 1017 3088 125 -4 v -1 w(,)h(552.)0 3178 y Fk(Compare)p 383 3178 29 5 -v 40 w(minim)m(um)p 820 3178 V 38 w(z)5 b Fm(:)83 b(453,)31 -b(454)p 1187 3191 125 4 v -1 w(,)h(552.)0 3280 y(Compiling:)83 -b(1275.)0 3382 y Fi(c)l(ongruent)p 359 3382 26 4 v 30 -w(\015ag)12 b Fm(:)83 b(1174)p 631 3395 167 4 v -2 w(.)0 -3484 y Fi(c)l(onne)l(ctor)13 b Fm(:)83 b(667,)38 b(668)p -653 3497 125 4 v -2 w(,)h(669)p 839 3497 V -1 w(,)g(670)p -1026 3497 V -2 w(,)g(671)p 1212 3497 V -1 w(,)g(769)p -1399 3497 V -2 w(,)g(770)p 1585 3497 V -1 w(,)166 3584 -y(881)p 166 3597 V -1 w(,)h(882)p 354 3597 V -1 w(,)g(885,)f(886.)0 -3686 y Fi(c)l(onne)l(ctor)p 352 3686 26 4 v 30 w(iter)14 -b Fm(:)83 b(859,)33 b(860,)h(862,)f(864.)0 3788 y Fi(c)l(onne)l(ctor)p -352 3788 V 30 w(ptr)14 b Fm(:)83 b(674)p 602 3801 125 -4 v -2 w(,)40 b(676)p 789 3801 V -1 w(.)0 3890 y Fi(c)l(onne)l(ctor)p -352 3890 26 4 v 30 w(string)12 b Fm(:)83 b(674)p 702 -3903 125 4 v -1 w(,)22 b(676)p 872 3903 V -2 w(,)g(859)p -1041 3903 V -1 w(,)g(860,)e(862,)h(864,)f(867)p 1719 -3903 V -1 w(.)0 3992 y Fi(c)l(onne)l(ctors)11 b Fm(:)83 -b(654)p 498 4005 V -1 w(,)37 b(657,)e(659,)h(664,)g(666,)f(669,)h(671,) -166 4092 y(674,)e(676,)g(685,)g(709,)f(759,)h(764,)g(765,)g(766,)g -(770,)166 4192 y(771,)g(859,)g(860,)g(862,)f(864,)h(866,)g(867,)g(885,) -g(886,)166 4291 y(895,)i(910,)g(911,)f(1067,)h(1105.)0 -4394 y Fi(c)l(onne)l(ctors)p 386 4394 26 4 v 30 w(iter)14 -b Fm(:)83 b(867.)0 4496 y Fi(c)l(onst)p 190 4496 V 30 +2874 y(808,)h(823,)f(825,)h(859,)f(861,)h(862,)g(863,)f(924,)h(949,)f +(957,)166 2974 y(1049,)i(1050,)g(1053,)g(1054,)g(1097,)g(1098,)g(1222,) +g(1224,)166 3074 y(1283,)g(1284,)g(1286,)g(1287)p 814 +3087 167 4 v -2 w(,)i(1289,)e(1290)p 1246 3087 V -2 w(,)i(1383,)e +(1384,)166 3173 y(1386,)j(1387,)h(1389,)f(1443)p 824 +3186 V -2 w(,)i(1451,)f(1461)p 1263 3186 V -2 w(,)h(1505)p +1482 3186 V -2 w(.)0 3275 y Fi(c)l(olors)12 b Fm(:)83 +b(1286)p 326 3288 V -2 w(,)37 b(1287)p 552 3288 V -2 +w(,)f(1289)p 777 3288 V -2 w(,)h(1290)p 1003 3288 V -2 +w(.)0 3377 y Fi(c)l(olumn)10 b Fm(:)83 b(581)p 373 3390 +125 4 v -1 w(,)38 b(582)p 559 3390 V -1 w(,)g(584)p 745 +3390 V -2 w(,)g(585)p 930 3390 V -1 w(.)0 3479 y Fk(Compare)p +383 3479 29 5 v 40 w(maxim)m(um)p 836 3479 V 39 w(z)6 +b Fm(:)83 b(453,)28 b(455)p 1202 3492 125 4 v -2 w(,)h(552,)f(1380.)0 +3581 y Fk(Compare)p 383 3581 29 5 v 40 w(mean)p 646 3581 +V 40 w(z)5 b Fm(:)83 b(453,)33 b(456)p 1017 3594 125 +4 v -1 w(,)h(552.)0 3683 y Fk(Compare)p 383 3683 29 5 +v 40 w(minim)m(um)p 820 3683 V 38 w(z)5 b Fm(:)83 b(453,)31 +b(454)p 1187 3696 125 4 v -1 w(,)h(552.)0 3785 y(Compiling:)83 +b(1280.)0 3887 y Fi(c)l(ongruent)p 359 3887 26 4 v 30 +w(\015ag)12 b Fm(:)83 b(1179)p 631 3900 167 4 v -2 w(.)0 +3989 y Fi(c)l(onne)l(ctor)13 b Fm(:)83 b(667,)38 b(668)p +653 4002 125 4 v -2 w(,)h(669)p 839 4002 V -1 w(,)g(670)p +1026 4002 V -2 w(,)g(671)p 1212 4002 V -1 w(,)g(769)p +1399 4002 V -2 w(,)g(770)p 1585 4002 V -1 w(,)166 4089 +y(881)p 166 4102 V -1 w(,)h(882)p 354 4102 V -1 w(,)g(885,)f(886.)0 +4190 y Fi(c)l(onne)l(ctor)p 352 4190 26 4 v 30 w(iter)14 +b Fm(:)83 b(859,)33 b(860,)h(862,)f(864.)0 4292 y Fi(c)l(onne)l(ctor)p +352 4292 V 30 w(ptr)14 b Fm(:)83 b(674)p 602 4305 125 +4 v -2 w(,)40 b(676)p 789 4305 V -1 w(.)0 4394 y Fi(c)l(onne)l(ctor)p +352 4394 26 4 v 30 w(string)12 b Fm(:)83 b(674)p 702 +4407 125 4 v -1 w(,)22 b(676)p 872 4407 V -2 w(,)g(859)p +1041 4407 V -1 w(,)g(860,)e(862,)h(864,)f(867)p 1719 +4407 V -1 w(.)0 4496 y Fi(c)l(onne)l(ctors)11 b Fm(:)83 +b(654)p 498 4509 V -1 w(,)37 b(657,)e(659,)h(664,)g(666,)f(669,)h(671,) +166 4596 y(674,)e(676,)g(685,)g(709,)f(759,)h(764,)g(765,)g(766,)g +(770,)166 4696 y(771,)g(859,)g(860,)g(862,)f(864,)h(866,)g(867,)g(885,) +g(886,)166 4795 y(898,)i(913,)g(914,)f(1070,)h(1110.)0 +4897 y Fi(c)l(onne)l(ctors)p 386 4897 26 4 v 30 w(iter)14 +b Fm(:)83 b(867.)0 4999 y Fi(c)l(onst)p 190 4999 V 30 w(iter)l(ator)14 b Fm(:)83 b(543,)30 b(545,)f(657,)h(765,)g(766,)g -(770,)g(771,)166 4595 y(830,)g(867,)f(895,)h(897,)g(985,)f(987,)h(994,) -g(1118,)f(1122,)166 4695 y(1254,)c(1297,)g(1303,)g(1337,)g(1379,)g -(1382,)g(1385,)g(1388,)166 4795 y(1391,)37 b(1394,)f(1413,)h(1428.)0 -4897 y Fi(c)l(onsts)11 b Fm(:)83 b(24,)43 b(274.)0 4999 -y Fi(c)l(o)l(or)l(ds)12 b Fm(:)83 b(200)p 339 5012 125 -4 v -2 w(,)36 b(312)p 522 5012 V -1 w(,)g(313)p 706 5012 -V -2 w(,)g(314)p 889 5012 V -2 w(,)g(315)p 1072 5012 -V -1 w(,)g(317)p 1256 5012 V -2 w(,)g(318)p 1439 5012 -V -1 w(,)f(319)p 1622 5012 V -1 w(,)166 5099 y(320)p -166 5112 V -1 w(,)g(322)p 349 5112 V -2 w(,)h(323)p 532 -5112 V -2 w(,)g(324)p 715 5112 V -2 w(,)f(325)p 897 5112 -V -1 w(,)g(327)p 1080 5112 V -1 w(,)g(328)p 1263 5112 -V -1 w(,)g(329)p 1446 5112 V -2 w(,)h(330)p 1629 5112 -V -2 w(,)166 5198 y(332)p 166 5211 V -1 w(,)f(333)p 349 -5211 V -2 w(,)h(334)p 532 5211 V -2 w(,)g(335)p 715 5211 -V -2 w(,)f(337)p 897 5211 V -1 w(,)g(338)p 1080 5211 -V -1 w(,)g(339)p 1263 5211 V -1 w(,)g(340)p 1446 5211 -V -2 w(,)h(431)p 1629 5211 V -2 w(,)166 5298 y(432)p -166 5311 V -1 w(,)h(866)p 351 5311 V -2 w(,)h(867)p 536 -5311 V -2 w(,)f(1336)p 720 5311 167 4 v -2 w(,)h(1337)p -947 5311 V -2 w(.)0 5400 y Fi(c)l(opy)13 b Fm(:)83 b(524)p -277 5413 125 4 v -2 w(,)41 b(946)p 465 5413 V -2 w(,)f(954)p -652 5413 V -1 w(,)g(1174)p 840 5413 167 4 v -2 w(,)g(1175,)f(1177,)f -(1178,)2199 263 y(1179,)k(1180.)2033 365 y Fi(c)l(opy)p -2196 365 26 4 v 32 w(axis)p 2368 365 V 31 w(orientation)11 -b Fm(:)83 b(1178)p 2910 378 167 4 v -2 w(.)2033 468 y -Fi(c)l(opy)p 2196 468 26 4 v 32 w(c)l(enter)12 b Fm(:)84 -b(1174)p 2562 481 167 4 v -2 w(,)34 b(1175,)e(1177,)g(1178.)2033 -570 y Fi(c)l(opy)p 2196 570 26 4 v 32 w(normal)13 b Fm(:)83 -b(946)p 2597 583 125 4 v -1 w(.)2033 672 y Ff(COPYRIGHT_3DLDF)n -Fm(:)g(19)p 2797 685 84 4 v -1 w(,)31 b(20)p 2934 685 -V -1 w(,)f(1503,)e(1507,)h(1508.)2033 774 y Fi(c)l(orner)13 -b Fm(:)84 b(1080)p 2384 787 167 4 v -2 w(,)42 b(1081)p -2615 787 V -2 w(.)2033 877 y Fi(c)l(os)11 b Fm(:)83 b(162,)38 -b(163,)g(164,)g(1105.)2033 979 y Fi(c)l(ounter)13 b Fm(:)83 -b(864)p 2421 992 125 4 v -2 w(.)2033 1081 y Fi(c)l(out)12 -b Fm(:)83 b(32,)30 b(48,)h(50,)g(72,)g(93,)f(148,)g(174,)h(182,)f(183,) -g(184,)2199 1181 y(185,)24 b(186,)f(188,)h(249,)f(350,)h(380,)g(382,)f -(385,)h(387,)f(388,)2199 1281 y(395,)h(399,)f(400,)h(401,)f(405,)h -(411,)g(432,)f(434,)h(443,)f(446,)2199 1380 y(448,)h(452,)f(458,)h -(462,)f(464,)h(517,)g(519,)f(520,)h(521,)f(522,)2199 -1480 y(530,)h(531,)f(532,)h(533,)f(534,)h(535,)g(536,)f(537,)h(538,)f -(540,)2199 1580 y(541,)h(546,)f(548,)h(549,)f(550,)h(551,)g(552,)f -(553,)h(561,)f(574,)2199 1679 y(603,)h(605,)f(606,)h(607,)f(609,)h -(644,)g(646,)f(661,)h(664,)f(669,)2199 1779 y(674,)h(678,)f(681,)h -(683,)f(685,)h(687,)g(726,)f(776,)h(802,)f(807,)2199 -1878 y(824,)h(830,)f(840,)h(842,)f(843,)h(844,)g(847,)f(849,)h(857,)f -(859,)2199 1978 y(861,)h(862,)f(863,)h(864,)f(867,)h(869,)g(873,)f -(875,)h(886,)f(894,)2199 2078 y(897,)h(901,)f(903,)h(911,)f(918,)h -(946,)g(951,)f(952,)h(954,)f(955,)2199 2177 y(956,)h(957,)f(958,)h -(960,)f(982,)h(983,)g(985,)f(987,)h(988,)f(989,)2199 -2277 y(993,)33 b(994,)f(996,)h(1030,)f(1031,)g(1033,)g(1034,)g(1122,) -2199 2377 y(1163,)25 b(1171,)g(1172,)g(1174,)g(1175,)g(1177,)g(1178,)g -(1179,)2199 2476 y(1180,)g(1181,)g(1183,)g(1184,)g(1188,)g(1223,)g -(1224,)g(1254,)2199 2576 y(1263,)g(1279,)g(1285,)g(1303,)g(1312,)g -(1337,)g(1339,)g(1362,)2199 2675 y(1365,)g(1367,)g(1375,)g(1377,)g -(1379,)g(1380,)g(1382,)g(1383,)2199 2775 y(1385,)g(1388,)g(1391,)g -(1394,)g(1428,)g(1439,)g(1455,)g(1456,)2199 2875 y(1469,)j(1471,)h -(1483,)f(1503,)g(1507,)h(1508,)f(1511.)2033 2977 y Fi(cr)l(e)l(ate)11 -b Fm(:)83 b(200.)2033 3079 y Fi(cr)l(e)l(ate)p 2249 3079 -26 4 v 31 w(new)13 b Fm(:)83 b(31)p 2534 3092 84 4 v --1 w(,)40 b(32)p 2680 3092 V -1 w(,)g(200.)2033 3182 -y Fi(cr)l(e)l(ate)p 2249 3182 26 4 v 31 w(new)p 2420 -3182 V 30 w(cir)l(cle)12 b Fm(:)83 b(1242)p 2754 3195 -167 4 v -2 w(,)33 b(1243)p 2976 3195 V -2 w(,)h(1244)p -3199 3195 V -2 w(,)f(1245)p 3421 3195 V -2 w(,)g(1297,)2199 -3281 y(1303.)2033 3383 y Fi(cr)l(e)l(ate)p 2249 3383 -26 4 v 31 w(new)p 2420 3383 V 30 w(c)l(olor)14 b Fm(:)84 -b(72)p 2740 3396 84 4 v -1 w(,)35 b(776,)g(802,)f(807,)g(824,)h(1377,) -2199 3483 y(1380,)42 b(1383.)2033 3585 y Fi(cr)l(e)l(ate)p -2249 3585 26 4 v 31 w(new)p 2420 3585 V 30 w(cub)l(oid)14 -b Fm(:)83 b(1416)p 2791 3598 167 4 v -2 w(,)37 b(1417)p -3017 3598 V -2 w(.)2033 3688 y Fi(cr)l(e)l(ate)p 2249 -3688 26 4 v 31 w(new)p 2420 3688 V 30 w(el)t(lipse)13 -b Fm(:)83 b(1109)p 2787 3701 167 4 v -2 w(,)31 b(1110)p -3007 3701 V -2 w(,)g(1111)p 3227 3701 V -2 w(,)h(1112)p -3448 3701 V -2 w(,)f(1297,)2199 3787 y(1303.)2033 3890 -y Fi(cr)l(e)l(ate)p 2249 3890 26 4 v 31 w(new)p 2420 -3890 V 30 w(p)l(ath)12 b Fm(:)83 b(680)p 2713 3903 125 -4 v -2 w(,)26 b(681)p 2886 3903 V -2 w(,)g(682)p 3059 -3903 V -1 w(,)f(683)p 3232 3903 V -1 w(,)h(689,)e(776,)g(802,)2199 -3989 y(807,)34 b(813,)f(821,)h(824,)f(1297,)g(1303.)2033 -4092 y Fi(cr)l(e)l(ate)p 2249 4092 26 4 v 31 w(new)p -2420 4092 V 30 w(p)l(oint)13 b Fm(:)83 b(290,)34 b(291)p -2927 4105 125 4 v -2 w(,)i(292)p 3110 4105 V -2 w(,)g(293)p -3293 4105 V -2 w(,)g(294)p 3476 4105 V -1 w(,)f(295)p -3659 4105 V -1 w(,)2199 4191 y(296)p 2199 4204 V -1 w(,)g(343,)f(411,)g -(415,)f(462,)h(471,)g(657,)g(664,)g(666,)2199 4291 y(669,)g(671,)g +(770,)g(771,)166 5099 y(830,)g(867,)f(898,)h(900,)g(988,)f(990,)h(997,) +g(1123,)f(1127,)166 5198 y(1259,)c(1302,)g(1308,)g(1342,)g(1384,)g +(1387,)g(1390,)g(1393,)166 5298 y(1396,)37 b(1399,)f(1418,)h(1433.)0 +5400 y Fi(c)l(onsts)11 b Fm(:)83 b(24,)43 b(274.)2033 +263 y Fi(c)l(o)l(or)l(ds)12 b Fm(:)83 b(200)p 2372 276 +125 4 v -2 w(,)36 b(312)p 2555 276 V -1 w(,)g(313)p 2739 +276 V -2 w(,)g(314)p 2922 276 V -2 w(,)g(315)p 3105 276 +V -1 w(,)g(317)p 3289 276 V -2 w(,)g(318)p 3472 276 V +-1 w(,)f(319)p 3655 276 V -1 w(,)2199 363 y(320)p 2199 +376 V -1 w(,)g(322)p 2382 376 V -2 w(,)h(323)p 2565 376 +V -2 w(,)g(324)p 2748 376 V -2 w(,)f(325)p 2930 376 V +-1 w(,)g(327)p 3113 376 V -1 w(,)g(328)p 3296 376 V -1 +w(,)g(329)p 3479 376 V -2 w(,)h(330)p 3662 376 V -2 w(,)2199 +462 y(332)p 2199 475 V -1 w(,)f(333)p 2382 475 V -2 w(,)h(334)p +2565 475 V -2 w(,)g(335)p 2748 475 V -2 w(,)f(337)p 2930 +475 V -1 w(,)g(338)p 3113 475 V -1 w(,)g(339)p 3296 475 +V -1 w(,)g(340)p 3479 475 V -2 w(,)h(431)p 3662 475 V +-2 w(,)2199 562 y(432)p 2199 575 V -1 w(,)h(866)p 2384 +575 V -2 w(,)h(867)p 2569 575 V -2 w(,)f(1341)p 2753 +575 167 4 v -2 w(,)h(1342)p 2980 575 V -2 w(.)2033 664 +y Fi(c)l(opy)13 b Fm(:)83 b(524)p 2310 677 125 4 v -2 +w(,)41 b(949)p 2498 677 V -2 w(,)f(957)p 2685 677 V -1 +w(,)g(1179)p 2873 677 167 4 v -2 w(,)g(1180,)f(1182,)f(1183,)2199 +764 y(1184,)k(1185.)2033 867 y Fi(c)l(opy)p 2196 867 +26 4 v 32 w(axis)p 2368 867 V 31 w(orientation)11 b Fm(:)83 +b(1183)p 2910 880 167 4 v -2 w(.)2033 969 y Fi(c)l(opy)p +2196 969 26 4 v 32 w(c)l(enter)12 b Fm(:)84 b(1179)p +2562 982 167 4 v -2 w(,)34 b(1180,)e(1182,)g(1183.)2033 +1072 y Fi(c)l(opy)p 2196 1072 26 4 v 32 w(normal)13 b +Fm(:)83 b(949)p 2597 1085 125 4 v -1 w(.)2033 1174 y +Ff(COPYRIGHT_3DLDF)n Fm(:)g(19)p 2797 1187 84 4 v -1 +w(,)31 b(20)p 2934 1187 V -1 w(,)f(1508,)e(1512,)h(1513.)2033 +1277 y Fi(c)l(orner)13 b Fm(:)84 b(1085)p 2384 1290 167 +4 v -2 w(,)42 b(1086)p 2615 1290 V -2 w(.)2033 1380 y +Fi(c)l(os)11 b Fm(:)83 b(162,)38 b(163,)g(164,)g(1110.)2033 +1482 y Fi(c)l(ounter)13 b Fm(:)83 b(864)p 2421 1495 125 +4 v -2 w(.)2033 1585 y Fi(c)l(out)12 b Fm(:)83 b(32,)30 +b(48,)h(50,)g(72,)g(93,)f(148,)g(174,)h(182,)f(183,)g(184,)2199 +1684 y(185,)24 b(186,)f(188,)h(249,)f(350,)h(380,)g(382,)f(385,)h(387,) +f(388,)2199 1784 y(395,)h(399,)f(400,)h(401,)f(405,)h(411,)g(432,)f +(434,)h(443,)f(446,)2199 1884 y(448,)h(452,)f(458,)h(462,)f(464,)h +(517,)g(519,)f(520,)h(521,)f(522,)2199 1983 y(530,)h(531,)f(532,)h +(533,)f(534,)h(535,)g(536,)f(537,)h(538,)f(540,)2199 +2083 y(541,)h(546,)f(548,)h(549,)f(550,)h(551,)g(552,)f(553,)h(561,)f +(574,)2199 2182 y(603,)h(605,)f(606,)h(607,)f(609,)h(644,)g(646,)f +(661,)h(664,)f(669,)2199 2282 y(674,)h(678,)f(681,)h(683,)f(685,)h +(687,)g(726,)f(776,)h(802,)f(807,)2199 2382 y(824,)h(830,)f(840,)h +(842,)f(843,)h(844,)g(847,)f(849,)h(857,)f(859,)2199 +2481 y(861,)h(862,)f(863,)h(864,)f(867,)h(869,)g(873,)f(875,)h(886,)f +(897,)2199 2581 y(900,)h(904,)f(906,)h(914,)f(921,)h(949,)g(954,)f +(955,)h(957,)f(958,)2199 2681 y(959,)h(960,)f(961,)h(963,)f(985,)h +(986,)g(988,)f(990,)h(991,)f(992,)2199 2780 y(996,)33 +b(997,)f(999,)h(1033,)f(1034,)g(1036,)g(1037,)g(1127,)2199 +2880 y(1168,)25 b(1176,)g(1177,)g(1179,)g(1180,)g(1182,)g(1183,)g +(1184,)2199 2979 y(1185,)g(1186,)g(1188,)g(1189,)g(1193,)g(1228,)g +(1229,)g(1259,)2199 3079 y(1268,)g(1284,)g(1290,)g(1308,)g(1317,)g +(1342,)g(1344,)g(1367,)2199 3179 y(1370,)g(1372,)g(1380,)g(1382,)g +(1384,)g(1385,)g(1387,)g(1388,)2199 3278 y(1390,)g(1393,)g(1396,)g +(1399,)g(1433,)g(1444,)g(1460,)g(1461,)2199 3378 y(1474,)j(1476,)h +(1488,)f(1508,)g(1512,)h(1513,)f(1519.)2033 3481 y Fi(cr)l(e)l(ate)11 +b Fm(:)83 b(200.)2033 3583 y Fi(cr)l(e)l(ate)p 2249 3583 +26 4 v 31 w(new)13 b Fm(:)83 b(31)p 2534 3596 84 4 v +-1 w(,)40 b(32)p 2680 3596 V -1 w(,)g(200.)2033 3686 +y Fi(cr)l(e)l(ate)p 2249 3686 26 4 v 31 w(new)p 2420 +3686 V 30 w(cir)l(cle)12 b Fm(:)83 b(1247)p 2754 3699 +167 4 v -2 w(,)33 b(1248)p 2976 3699 V -2 w(,)h(1249)p +3199 3699 V -2 w(,)f(1250)p 3421 3699 V -2 w(,)g(1302,)2199 +3785 y(1308.)2033 3888 y Fi(cr)l(e)l(ate)p 2249 3888 +26 4 v 31 w(new)p 2420 3888 V 30 w(c)l(olor)14 b Fm(:)84 +b(72)p 2740 3901 84 4 v -1 w(,)35 b(776,)g(802,)f(807,)g(824,)h(1382,) +2199 3988 y(1385,)42 b(1388.)2033 4090 y Fi(cr)l(e)l(ate)p +2249 4090 26 4 v 31 w(new)p 2420 4090 V 30 w(cub)l(oid)14 +b Fm(:)83 b(1421)p 2791 4103 167 4 v -2 w(,)37 b(1422)p +3017 4103 V -2 w(.)2033 4193 y Fi(cr)l(e)l(ate)p 2249 +4193 26 4 v 31 w(new)p 2420 4193 V 30 w(el)t(lipse)13 +b Fm(:)83 b(1114)p 2787 4206 167 4 v -2 w(,)31 b(1115)p +3007 4206 V -2 w(,)g(1116)p 3227 4206 V -2 w(,)h(1117)p +3448 4206 V -2 w(,)f(1302,)2199 4292 y(1308.)2033 4395 +y Fi(cr)l(e)l(ate)p 2249 4395 26 4 v 31 w(new)p 2420 +4395 V 30 w(p)l(ath)12 b Fm(:)83 b(680)p 2713 4408 125 +4 v -2 w(,)26 b(681)p 2886 4408 V -2 w(,)g(682)p 3059 +4408 V -1 w(,)f(683)p 3232 4408 V -1 w(,)h(689,)e(776,)g(802,)2199 +4495 y(807,)34 b(813,)f(821,)h(824,)f(1302,)g(1308.)2033 +4597 y Fi(cr)l(e)l(ate)p 2249 4597 26 4 v 31 w(new)p +2420 4597 V 30 w(p)l(oint)13 b Fm(:)83 b(290,)34 b(291)p +2927 4610 125 4 v -2 w(,)i(292)p 3110 4610 V -2 w(,)g(293)p +3293 4610 V -2 w(,)g(294)p 3476 4610 V -1 w(,)f(295)p +3659 4610 V -1 w(,)2199 4697 y(296)p 2199 4710 V -1 w(,)g(343,)f(411,)g +(415,)f(462,)h(471,)g(657,)g(664,)g(666,)2199 4796 y(669,)g(671,)g (674,)g(676,)f(755,)h(757,)g(765,)g(770,)g(885,)2199 -4390 y(886,)h(1031,)f(1062,)g(1067,)h(1105.)2033 4493 -y Fi(cr)l(e)l(ate)p 2249 4493 26 4 v 31 w(new)p 2420 -4493 V 30 w(r)l(e)l(ctangle)11 b Fm(:)83 b(1071)p 2879 -4506 167 4 v -2 w(,)40 b(1072)p 3108 4506 V -2 w(,)g(1073)p -3337 4506 V -2 w(,)g(1074)p 3566 4506 V -2 w(,)2199 4592 -y(1297,)d(1303,)f(1413,)h(1415.)2033 4695 y Fi(cr)l(e)l(ate)p -2249 4695 26 4 v 31 w(new)p 2420 4695 V 30 w(r)l(e)l(g)p -2553 4695 V 31 w(p)l(olygon)12 b Fm(:)83 b(1036)p 2965 -4708 167 4 v -2 w(,)34 b(1037)p 3188 4708 V -2 w(,)g(1038)p -3411 4708 V -2 w(,)g(1039)p 3634 4708 V -2 w(,)2199 4794 -y(1297,)k(1303,)f(1444,)h(1456,)f(1458,)h(1469,)f(1471,)2199 -4894 y(1483,)j(1485,)f(1486.)2033 4996 y Fi(cr)l(e)l(ate)p -2249 4996 26 4 v 31 w(new)p 2420 4996 V 30 w(solid)15 -b Fm(:)83 b(1294,)33 b(1298)p 2954 5009 167 4 v -2 w(,)h(1299)p -3177 5009 V -1 w(,)g(1305,)f(1379,)2199 5096 y(1382,)h(1385,)g(1388,)f -(1391,)h(1394.)2033 5198 y Fi(cr)l(oss)11 b Fm(:)83 b(950,)36 -b(951)p 2514 5211 125 4 v -2 w(,)h(953,)e(982)p 2882 -5211 V -1 w(,)h(984.)2033 5300 y Fi(cr)l(oss)p 2217 5300 -26 4 v 31 w(pr)l(o)l(duct)12 b Fm(:)83 b(500)p 2625 5313 -125 4 v -1 w(,)42 b(501)p 2815 5313 V -1 w(,)g(605,)f(644,)g(897,)g -(951,)2199 5400 y(982,)j(1067.)p eop end -%%Page: 487 487 -TeXDict begin 487 486 bop 0 83 a Fn(x)p Fm(1517)139 b -Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(487)0 263 y Fi(ctr)13 -b Fm(:)83 b(318)p 220 276 125 4 v -1 w(,)44 b(346)p 412 -276 V -1 w(.)0 365 y Fk(Cub)s(oid)t Fm(:)83 b(442,)39 -b(1304,)g(1406,)f(1408)p 1063 378 167 4 v -2 w(,)j(1410,)e(1411)p -1523 378 V -2 w(,)166 464 y(1412,)f(1413)p 395 477 V --2 w(,)h(1414,)f(1415)p 852 477 V -2 w(,)h(1416,)f(1417,)f(1418,)166 -564 y(1419)p 166 577 V -2 w(,)42 b(1420,)d(1421.)0 666 -y Fi(curr)p 158 666 26 4 v 30 w(angle)11 b Fm(:)84 b(1105)p -487 679 167 4 v -2 w(.)0 768 y Fi(curr)p 158 768 26 4 -v 30 w(c)l(olor)15 b Fm(:)83 b(1281)p 478 781 167 4 v --2 w(.)0 869 y Fi(curr)p 158 869 26 4 v 30 w(lo)l(c)l(ation)12 -b Fm(:)83 b(1180)p 578 882 167 4 v -2 w(.)0 971 y Fi(curr)p -158 971 26 4 v 30 w(p)l(oint)13 b Fm(:)83 b(1180)p 482 -984 167 4 v -2 w(,)40 b(1181.)0 1073 y Fi(curr)p 158 -1073 26 4 v 30 w(x)14 b Fm(:)83 b(1105)p 342 1086 167 -4 v -2 w(.)0 1175 y Ff(CURR_Y)r Fm(:)g(264)p 372 1188 -125 4 v -2 w(,)39 b(265)p 558 1188 V -2 w(,)f(282,)f(284.)0 -1277 y Ff(CURR_Z)r Fm(:)83 b(264)p 372 1290 V -2 w(,)39 -b(265)p 558 1290 V -2 w(,)f(282,)f(284.)0 1378 y Fi(curr)p -158 1378 26 4 v 30 w(z)15 b Fm(:)83 b(1105)p 338 1391 -167 4 v -2 w(.)0 1480 y Fi(curr)l(ent)p 267 1480 26 4 -v 30 w(pictur)l(e)10 b Fm(:)83 b(257)p 655 1493 125 4 -v -1 w(,)28 b(258)p 831 1493 V -1 w(,)g(410,)f(414,)g(419,)g(422,)g -(425,)166 1580 y(428,)d(461,)f(463,)h(466,)f(468,)h(470,)g(775,)f(784,) -h(793,)f(801,)166 1679 y(806,)32 b(812,)g(820,)f(823,)h(829,)g(834,)g -(921,)f(926,)h(1046,)166 1779 y(1050,)25 b(1092,)g(1093,)g(1117,)g -(1119,)g(1217,)g(1219,)g(1278,)166 1879 y(1343,)g(1378,)g(1381,)g -(1384,)g(1387,)g(1390,)g(1393,)g(1501.)0 1980 y Fi(curve)p -199 1980 26 4 v 31 w(0)16 b Fm(:)83 b(954)p 389 1993 -125 4 v -2 w(.)0 2082 y Fi(curve)p 199 2082 26 4 v 31 -w(4)16 b Fm(:)83 b(954)p 389 2095 125 4 v -2 w(.)0 2184 -y Fi(cyan)11 b Fm(:)83 b(108,)35 b(112)p 468 2197 V -2 -w(,)h(113)p 651 2197 V -2 w(,)g(1456,)e(1500.)0 2286 -y Fi(cycle)12 b Fm(:)83 b(667)p 293 2299 V -2 w(,)28 -b(668,)f(669,)f(670,)h(671,)f(881)p 1170 2299 V -1 w(,)i(882)p -1346 2299 V -1 w(,)g(885,)e(886.)0 2388 y Fi(cycle)p -180 2388 26 4 v 32 w(switch)11 b Fm(:)83 b(654)p 546 -2401 125 4 v -1 w(,)34 b(657,)f(661,)g(664,)g(666,)g(669,)g(671,)166 -2487 y(674,)k(676,)g(867,)g(877,)g(906,)g(1027,)f(1030,)g(1037,)166 -2587 y(1039,)i(1059,)f(1062,)h(1067,)f(1072,)h(1074,)f(1102,)166 -2686 y(1105,)g(1235,)f(1238,)h(1243.)0 2788 y Fe(d)p -Fm(:)83 b(21)p 149 2801 84 4 v -1 w(,)29 b(22)p 284 2801 -V -1 w(,)g(270)p 419 2801 125 4 v -2 w(,)g(644)p 595 -2801 V -1 w(,)f(901)p 771 2801 V -1 w(,)h(1178)p 948 -2801 167 4 v -2 w(,)f(1307)p 1165 2801 V -2 w(,)h(1414)p -1383 2801 V -2 w(,)g(1415)p 1601 2801 V -2 w(.)0 2890 -y Fi(d)p 47 2890 26 4 v 31 w(x)14 b Fm(:)83 b(901)p 232 -2903 125 4 v -2 w(,)45 b(903.)0 2992 y Fi(d)p 47 2992 -26 4 v 31 w(y)12 b Fm(:)83 b(901)p 231 3005 125 4 v -1 -w(,)42 b(902,)e(903.)0 3094 y Fi(d)p 47 3094 26 4 v 31 -w(z)14 b Fm(:)83 b(901)p 227 3107 125 4 v -1 w(,)42 b(902,)f(903.)0 -3195 y Fi(dashe)l(d)14 b Fm(:)84 b(654)p 357 3208 V -2 +4896 y(886,)h(1034,)f(1065,)g(1070,)h(1110.)2033 4999 +y Fi(cr)l(e)l(ate)p 2249 4999 26 4 v 31 w(new)p 2420 +4999 V 30 w(r)l(e)l(ctangle)11 b Fm(:)83 b(1074)p 2879 +5012 167 4 v -2 w(,)40 b(1075)p 3108 5012 V -2 w(,)g(1076)p +3337 5012 V -2 w(,)g(1077)p 3566 5012 V -2 w(,)2199 5098 +y(1302,)d(1308,)f(1418,)h(1420.)2033 5201 y Fi(cr)l(e)l(ate)p +2249 5201 26 4 v 31 w(new)p 2420 5201 V 30 w(r)l(e)l(g)p +2553 5201 V 31 w(p)l(olygon)12 b Fm(:)83 b(1039)p 2965 +5214 167 4 v -2 w(,)34 b(1040)p 3188 5214 V -2 w(,)g(1041)p +3411 5214 V -2 w(,)g(1042)p 3634 5214 V -2 w(,)2199 5300 +y(1302,)k(1308,)f(1449,)h(1461,)f(1463,)h(1474,)f(1476,)2199 +5400 y(1488,)j(1490,)f(1491.)p eop end +%%Page: 492 492 +TeXDict begin 492 491 bop 0 83 a Fm(492)140 b Fl(INDEX)2670 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1525)0 263 y Fi(cr)l(e)l(ate)p +216 263 26 4 v 31 w(new)p 387 263 V 30 w(solid)15 b Fm(:)83 +b(1299,)33 b(1303)p 921 276 167 4 v -2 w(,)h(1304)p 1144 +276 V -1 w(,)g(1310,)f(1384,)166 363 y(1387,)h(1390,)g(1393,)f(1396,)h +(1399.)0 464 y Fi(cr)l(oss)11 b Fm(:)83 b(953,)36 b(954)p +481 477 125 4 v -2 w(,)h(956,)e(985)p 849 477 V -1 w(,)h(987.)0 +566 y Fi(cr)l(oss)p 184 566 26 4 v 31 w(pr)l(o)l(duct)12 +b Fm(:)83 b(500)p 592 579 125 4 v -1 w(,)32 b(501)p 772 +579 V -2 w(,)g(605,)f(644,)f(900,)h(954,)f(985,)166 666 +y(1070,)40 b(1082,)f(1083.)0 767 y Fi(ctr)13 b Fm(:)83 +b(318)p 220 780 V -1 w(,)44 b(346)p 412 780 V -1 w(.)0 +869 y Fk(Cub)s(oid)t Fm(:)83 b(442,)39 b(1309,)g(1411,)f(1413)p +1063 882 167 4 v -2 w(,)j(1415,)e(1416)p 1523 882 V -2 +w(,)166 968 y(1417,)f(1418)p 395 981 V -2 w(,)h(1419,)f(1420)p +852 981 V -2 w(,)h(1421,)f(1422,)f(1423,)166 1068 y(1424)p +166 1081 V -2 w(,)42 b(1425,)d(1426.)0 1170 y Fi(curr)p +158 1170 26 4 v 30 w(angle)11 b Fm(:)84 b(1110)p 487 +1183 167 4 v -2 w(.)0 1271 y Fi(curr)p 158 1271 26 4 +v 30 w(c)l(olor)15 b Fm(:)83 b(1286)p 478 1284 167 4 +v -2 w(.)0 1373 y Fi(curr)p 158 1373 26 4 v 30 w(lo)l(c)l(ation)12 +b Fm(:)83 b(1185)p 578 1386 167 4 v -2 w(.)0 1475 y Fi(curr)p +158 1475 26 4 v 30 w(p)l(oint)13 b Fm(:)83 b(1185)p 482 +1488 167 4 v -2 w(,)40 b(1186.)0 1576 y Fi(curr)p 158 +1576 26 4 v 30 w(x)14 b Fm(:)83 b(1110)p 342 1589 167 +4 v -2 w(.)0 1678 y Ff(CURR_Y)r Fm(:)g(264)p 372 1691 +125 4 v -2 w(,)39 b(265)p 558 1691 V -2 w(,)f(282,)f(284.)0 +1779 y Ff(CURR_Z)r Fm(:)83 b(264)p 372 1792 V -2 w(,)39 +b(265)p 558 1792 V -2 w(,)f(282,)f(284.)0 1881 y Fi(curr)p +158 1881 26 4 v 30 w(z)15 b Fm(:)83 b(1110)p 338 1894 +167 4 v -2 w(.)0 1983 y Fi(curr)l(ent)p 267 1983 26 4 +v 30 w(pictur)l(e)10 b Fm(:)83 b(257)p 655 1996 125 4 +v -1 w(,)28 b(258)p 831 1996 V -1 w(,)g(410,)f(414,)g(419,)g(422,)g +(425,)166 2082 y(428,)d(461,)f(463,)h(466,)f(468,)h(470,)g(775,)f(784,) +h(793,)f(801,)166 2182 y(806,)32 b(812,)g(820,)f(823,)h(829,)g(834,)g +(924,)f(929,)h(1049,)166 2282 y(1053,)25 b(1097,)g(1098,)g(1122,)g +(1124,)g(1222,)g(1224,)g(1283,)166 2381 y(1348,)g(1383,)g(1386,)g +(1389,)g(1392,)g(1395,)g(1398,)g(1506.)0 2483 y Fi(curve)p +199 2483 26 4 v 31 w(0)16 b Fm(:)83 b(957)p 389 2496 +125 4 v -2 w(.)0 2584 y Fi(curve)p 199 2584 26 4 v 31 +w(4)16 b Fm(:)83 b(957)p 389 2597 125 4 v -2 w(.)0 2686 +y Fi(cyan)11 b Fm(:)83 b(108,)35 b(112)p 468 2699 V -2 +w(,)h(113)p 651 2699 V -2 w(,)g(1461,)e(1505.)0 2788 +y Fi(cycle)12 b Fm(:)83 b(667)p 293 2801 V -2 w(,)28 +b(668,)f(669,)f(670,)h(671,)f(881)p 1170 2801 V -1 w(,)i(882)p +1346 2801 V -1 w(,)g(885,)e(886.)0 2889 y Fi(cycle)p +180 2889 26 4 v 32 w(switch)11 b Fm(:)83 b(654)p 546 +2902 125 4 v -1 w(,)34 b(657,)f(661,)g(664,)g(666,)g(669,)g(671,)166 +2989 y(674,)k(676,)g(867,)g(877,)g(909,)g(1030,)f(1033,)g(1040,)166 +3089 y(1042,)i(1062,)f(1065,)h(1070,)f(1075,)h(1077,)f(1107,)166 +3188 y(1110,)g(1240,)f(1243,)h(1248.)0 3290 y Fe(d)p +Fm(:)83 b(16)p 149 3303 84 4 v -1 w(,)36 b(21)p 291 3303 +V -1 w(,)h(22)p 434 3303 V -1 w(,)f(270)p 576 3303 125 +4 v -2 w(,)g(644)p 759 3303 V -1 w(,)g(904)p 943 3303 +V -1 w(,)g(1083)p 1127 3303 167 4 v -2 w(,)g(1183)p 1352 +3303 V -2 w(,)g(1312)p 1577 3303 V -2 w(,)166 3389 y(1419)p +166 3402 V -2 w(,)44 b(1420)p 399 3402 V -1 w(.)0 3491 +y Fi(d)p 47 3491 26 4 v 31 w(x)14 b Fm(:)83 b(904)p 232 +3504 125 4 v -2 w(,)45 b(906.)0 3593 y Fi(d)p 47 3593 +26 4 v 31 w(y)12 b Fm(:)83 b(904)p 231 3606 125 4 v -1 +w(,)42 b(905,)e(906.)0 3694 y Fi(d)p 47 3694 26 4 v 31 +w(z)14 b Fm(:)83 b(904)p 227 3707 125 4 v -1 w(,)42 b(905,)f(906.)0 +3796 y Fi(dashe)l(d)14 b Fm(:)84 b(654)p 357 3809 V -2 w(,)35 b(657,)e(658,)h(661,)f(664,)h(666,)f(669,)h(671,)166 -3295 y(674,)g(676,)g(705,)g(776,)f(802,)h(807,)g(813,)g(821,)g(824,)166 -3395 y(859,)39 b(861,)g(862,)g(863.)0 3496 y Fi(datestamp)10 -b Fm(:)83 b(43)p 480 3509 84 4 v(,)42 b(44.)0 3598 y -Ff(DBL_MAX)q Fm(:)84 b(16.)0 3700 y Fi(dd)14 b Fm(:)83 -b(1178)p 204 3713 167 4 v -2 w(.)0 3802 y Fi(ddashe)l(d)15 -b Fm(:)83 b(419)p 399 3815 125 4 v -2 w(,)33 b(420)p -579 3815 V -1 w(,)f(422)p 759 3815 V -1 w(,)h(423)p 940 -3815 V -2 w(,)g(425)p 1120 3815 V -2 w(,)g(426)p 1300 -3815 V -2 w(,)g(428)p 1480 3815 V -1 w(,)f(429)p 1660 -3815 V -1 w(,)166 3901 y(775)p 166 3914 V -1 w(,)j(776)p -349 3914 V -2 w(,)h(777)p 532 3914 V -2 w(,)g(778)p 715 -3914 V -2 w(,)f(780)p 897 3914 V -1 w(,)g(781)p 1080 -3914 V -1 w(,)g(784)p 1263 3914 V -1 w(,)g(785)p 1446 -3914 V -2 w(,)h(786)p 1629 3914 V -2 w(,)166 4001 y(787)p -166 4014 V -1 w(,)f(789)p 349 4014 V -2 w(,)h(790)p 532 -4014 V -2 w(,)g(793)p 715 4014 V -2 w(,)f(794)p 897 4014 -V -1 w(,)g(795)p 1080 4014 V -1 w(,)g(796)p 1263 4014 -V -1 w(,)g(798)p 1446 4014 V -2 w(,)h(799)p 1629 4014 -V -2 w(,)166 4101 y(806)p 166 4114 V -1 w(,)f(807)p 349 -4114 V -2 w(,)h(808)p 532 4114 V -2 w(,)g(809)p 715 4114 -V -2 w(,)f(812)p 897 4114 V -1 w(,)g(813)p 1080 4114 -V -1 w(,)g(814)p 1263 4114 V -1 w(,)g(815)p 1446 4114 -V -2 w(,)h(817)p 1629 4114 V -2 w(,)166 4200 y(818)p -166 4213 V -1 w(,)f(823)p 349 4213 V -2 w(,)h(824)p 532 -4213 V -2 w(,)g(825)p 715 4213 V -2 w(,)f(826)p 897 4213 -V -1 w(,)g(920,)f(921)p 1263 4213 V -1 w(,)h(922)p 1446 -4213 V -2 w(,)h(925,)166 4300 y(926)p 166 4313 V -1 w(,)31 -b(927)p 345 4313 V -1 w(,)h(1046)p 525 4313 167 4 v -2 -w(,)g(1047)p 746 4313 V -2 w(,)f(1050)p 966 4313 V -2 -w(,)h(1051)p 1187 4313 V -2 w(,)g(1092)p 1408 4313 V --2 w(,)g(1093)p 1629 4313 V -2 w(,)166 4399 y(1217)p -166 4412 V -2 w(,)27 b(1218)p 382 4412 V -2 w(,)g(1219)p -598 4412 V -2 w(,)g(1220)p 814 4412 V -2 w(,)g(1225)p -1030 4412 V -2 w(,)g(1226)p 1246 4412 V -2 w(,)g(1267)p -1462 4412 V -2 w(,)g(1268)p 1678 4412 V -2 w(,)166 4499 -y(1271)p 166 4512 V -2 w(,)g(1272)p 382 4512 V -2 w(,)g(1377,)e(1378)p -814 4512 V -2 w(,)i(1379)p 1030 4512 V -2 w(,)g(1383,)e(1384)p -1462 4512 V -2 w(,)i(1385)p 1678 4512 V -2 w(,)166 4599 -y(1386,)k(1387)p 388 4612 V -2 w(,)i(1388)p 610 4612 -V -2 w(,)g(1392,)e(1393)p 1054 4612 V -2 w(,)i(1394)p -1276 4612 V -2 w(.)0 4700 y Fi(ddiameter)15 b Fm(:)83 -b(1029)p 479 4713 V -2 w(,)34 b(1030)p 702 4713 V -2 -w(,)h(1032)p 926 4713 V -2 w(,)g(1033)p 1150 4713 V -2 -w(,)f(1034,)f(1237)p 1597 4713 V -2 w(,)166 4800 y(1238)p -166 4813 V -2 w(,)42 b(1239)p 397 4813 V -2 w(,)f(1240)p -627 4813 V -2 w(.)0 4902 y Fi(ddr)l(aw)p 217 4902 26 -4 v 32 w(c)l(olor)14 b Fm(:)83 b(419)p 538 4915 125 4 -v -1 w(,)35 b(420)p 721 4915 V -2 w(,)g(422)p 903 4915 -V -1 w(,)g(423)p 1086 4915 V -2 w(,)g(428)p 1268 4915 -V -1 w(,)f(429)p 1450 4915 V -1 w(,)h(775)p 1633 4915 -V -2 w(,)166 5001 y(776)p 166 5014 V -1 w(,)g(777)p 349 -5014 V -2 w(,)h(778)p 532 5014 V -2 w(,)g(780)p 715 5014 -V -2 w(,)f(781)p 897 5014 V -1 w(,)g(784)p 1080 5014 -V -1 w(,)g(785)p 1263 5014 V -1 w(,)g(786)p 1446 5014 -V -2 w(,)h(787)p 1629 5014 V -2 w(,)166 5101 y(789)p -166 5114 V -1 w(,)f(790)p 349 5114 V -2 w(,)h(793)p 532 -5114 V -2 w(,)g(794)p 715 5114 V -2 w(,)f(795)p 897 5114 -V -1 w(,)g(796)p 1080 5114 V -1 w(,)g(798)p 1263 5114 -V -1 w(,)g(799)p 1446 5114 V -2 w(,)h(805,)166 5201 y(806)p -166 5214 V -1 w(,)f(807)p 349 5214 V -2 w(,)h(808)p 532 -5214 V -2 w(,)g(809)p 715 5214 V -2 w(,)f(823)p 897 5214 -V -1 w(,)g(824)p 1080 5214 V -1 w(,)g(825)p 1263 5214 -V -1 w(,)g(826)p 1446 5214 V -2 w(,)h(921)p 1629 5214 -V -2 w(,)166 5300 y(922)p 166 5313 V -1 w(,)g(925,)e(926)p -533 5313 V -1 w(,)i(927)p 717 5313 V -1 w(,)g(1046)p -901 5313 167 4 v -2 w(,)g(1047)p 1126 5313 V -2 w(,)g(1050)p -1351 5313 V -2 w(,)h(1051)p 1577 5313 V -2 w(,)166 5400 -y(1092)p 166 5413 V -2 w(,)27 b(1093)p 382 5413 V -2 -w(,)g(1217)p 598 5413 V -2 w(,)g(1218)p 814 5413 V -2 -w(,)g(1219)p 1030 5413 V -2 w(,)g(1220)p 1246 5413 V --2 w(,)g(1225)p 1462 5413 V -2 w(,)g(1226)p 1678 5413 -V -2 w(,)2199 263 y(1267)p 2199 276 V -2 w(,)39 b(1268)p -2427 276 V -2 w(,)f(1271)p 2654 276 V -2 w(,)h(1272)p -2882 276 V -2 w(.)2033 365 y Fi(ddr)l(awdot)p 2362 365 +3896 y(674,)g(676,)g(705,)g(776,)f(802,)h(807,)g(813,)g(821,)g(824,)166 +3995 y(859,)39 b(861,)g(862,)g(863.)0 4097 y Fi(datestamp)10 +b Fm(:)83 b(43)p 480 4110 84 4 v(,)42 b(44.)0 4198 y +Ff(DBL_MAX)q Fm(:)84 b(16.)0 4300 y Fi(dd)14 b Fm(:)83 +b(1183)p 204 4313 167 4 v -2 w(.)0 4402 y Fi(ddashe)l(d)15 +b Fm(:)83 b(419)p 399 4415 125 4 v -2 w(,)33 b(420)p +579 4415 V -1 w(,)f(422)p 759 4415 V -1 w(,)h(423)p 940 +4415 V -2 w(,)g(425)p 1120 4415 V -2 w(,)g(426)p 1300 +4415 V -2 w(,)g(428)p 1480 4415 V -1 w(,)f(429)p 1660 +4415 V -1 w(,)166 4501 y(775)p 166 4514 V -1 w(,)j(776)p +349 4514 V -2 w(,)h(777)p 532 4514 V -2 w(,)g(778)p 715 +4514 V -2 w(,)f(780)p 897 4514 V -1 w(,)g(781)p 1080 +4514 V -1 w(,)g(784)p 1263 4514 V -1 w(,)g(785)p 1446 +4514 V -2 w(,)h(786)p 1629 4514 V -2 w(,)166 4601 y(787)p +166 4614 V -1 w(,)f(789)p 349 4614 V -2 w(,)h(790)p 532 +4614 V -2 w(,)g(793)p 715 4614 V -2 w(,)f(794)p 897 4614 +V -1 w(,)g(795)p 1080 4614 V -1 w(,)g(796)p 1263 4614 +V -1 w(,)g(798)p 1446 4614 V -2 w(,)h(799)p 1629 4614 +V -2 w(,)166 4701 y(806)p 166 4714 V -1 w(,)f(807)p 349 +4714 V -2 w(,)h(808)p 532 4714 V -2 w(,)g(809)p 715 4714 +V -2 w(,)f(812)p 897 4714 V -1 w(,)g(813)p 1080 4714 +V -1 w(,)g(814)p 1263 4714 V -1 w(,)g(815)p 1446 4714 +V -2 w(,)h(817)p 1629 4714 V -2 w(,)166 4800 y(818)p +166 4813 V -1 w(,)f(823)p 349 4813 V -2 w(,)h(824)p 532 +4813 V -2 w(,)g(825)p 715 4813 V -2 w(,)f(826)p 897 4813 +V -1 w(,)g(923,)f(924)p 1263 4813 V -1 w(,)h(925)p 1446 +4813 V -2 w(,)h(928,)166 4900 y(929)p 166 4913 V -1 w(,)31 +b(930)p 345 4913 V -1 w(,)h(1049)p 525 4913 167 4 v -2 +w(,)g(1050)p 746 4913 V -2 w(,)f(1053)p 966 4913 V -2 +w(,)h(1054)p 1187 4913 V -2 w(,)g(1097)p 1408 4913 V +-2 w(,)g(1098)p 1629 4913 V -2 w(,)166 4999 y(1222)p +166 5012 V -2 w(,)27 b(1223)p 382 5012 V -2 w(,)g(1224)p +598 5012 V -2 w(,)g(1225)p 814 5012 V -2 w(,)g(1230)p +1030 5012 V -2 w(,)g(1231)p 1246 5012 V -2 w(,)g(1272)p +1462 5012 V -2 w(,)g(1273)p 1678 5012 V -2 w(,)166 5099 +y(1276)p 166 5112 V -2 w(,)g(1277)p 382 5112 V -2 w(,)g(1382,)e(1383)p +814 5112 V -2 w(,)i(1384)p 1030 5112 V -2 w(,)g(1388,)e(1389)p +1462 5112 V -2 w(,)i(1390)p 1678 5112 V -2 w(,)166 5199 +y(1391,)k(1392)p 388 5212 V -2 w(,)i(1393)p 610 5212 +V -2 w(,)g(1397,)e(1398)p 1054 5212 V -2 w(,)i(1399)p +1276 5212 V -2 w(.)0 5300 y Fi(ddiameter)15 b Fm(:)83 +b(1032)p 479 5313 V -2 w(,)34 b(1033)p 702 5313 V -2 +w(,)h(1035)p 926 5313 V -2 w(,)g(1036)p 1150 5313 V -2 +w(,)f(1037,)f(1242)p 1597 5313 V -2 w(,)166 5400 y(1243)p +166 5413 V -2 w(,)42 b(1244)p 397 5413 V -2 w(,)f(1245)p +627 5413 V -2 w(.)2033 263 y Fi(ddr)l(aw)p 2250 263 26 +4 v 32 w(c)l(olor)14 b Fm(:)83 b(419)p 2571 276 125 4 +v -1 w(,)35 b(420)p 2754 276 V -2 w(,)g(422)p 2936 276 +V -1 w(,)g(423)p 3119 276 V -2 w(,)g(428)p 3301 276 V +-1 w(,)f(429)p 3483 276 V -1 w(,)h(775)p 3666 276 V -2 +w(,)2199 363 y(776)p 2199 376 V -1 w(,)g(777)p 2382 376 +V -2 w(,)h(778)p 2565 376 V -2 w(,)g(780)p 2748 376 V +-2 w(,)f(781)p 2930 376 V -1 w(,)g(784)p 3113 376 V -1 +w(,)g(785)p 3296 376 V -1 w(,)g(786)p 3479 376 V -2 w(,)h(787)p +3662 376 V -2 w(,)2199 462 y(789)p 2199 475 V -1 w(,)f(790)p +2382 475 V -2 w(,)h(793)p 2565 475 V -2 w(,)g(794)p 2748 +475 V -2 w(,)f(795)p 2930 475 V -1 w(,)g(796)p 3113 475 +V -1 w(,)g(798)p 3296 475 V -1 w(,)g(799)p 3479 475 V +-2 w(,)h(805,)2199 562 y(806)p 2199 575 V -1 w(,)f(807)p +2382 575 V -2 w(,)h(808)p 2565 575 V -2 w(,)g(809)p 2748 +575 V -2 w(,)f(823)p 2930 575 V -1 w(,)g(824)p 3113 575 +V -1 w(,)g(825)p 3296 575 V -1 w(,)g(826)p 3479 575 V +-2 w(,)h(924)p 3662 575 V -2 w(,)2199 662 y(925)p 2199 +675 V -1 w(,)g(928,)e(929)p 2566 675 V -1 w(,)i(930)p +2750 675 V -1 w(,)g(1049)p 2934 675 167 4 v -2 w(,)g(1050)p +3159 675 V -2 w(,)g(1053)p 3384 675 V -2 w(,)h(1054)p +3610 675 V -2 w(,)2199 761 y(1097)p 2199 774 V -2 w(,)27 +b(1098)p 2415 774 V -2 w(,)g(1222)p 2631 774 V -2 w(,)g(1223)p +2847 774 V -2 w(,)g(1224)p 3063 774 V -2 w(,)g(1225)p +3279 774 V -2 w(,)g(1230)p 3495 774 V -2 w(,)g(1231)p +3711 774 V -2 w(,)2199 861 y(1272)p 2199 874 V -2 w(,)39 +b(1273)p 2427 874 V -2 w(,)f(1276)p 2654 874 V -2 w(,)h(1277)p +2882 874 V -2 w(.)2033 963 y Fi(ddr)l(awdot)p 2362 963 26 4 v 32 w(c)l(olor)14 b Fm(:)84 b(409,)30 b(410)p 2863 -378 125 4 v -1 w(,)i(411)p 3043 378 V -1 w(,)g(412)p -3223 378 V -1 w(,)g(413)p 3403 378 V -2 w(.)2033 467 -y Ff(DEBUG)r Fm(:)83 b(72)p 2361 480 84 4 v -1 w(,)30 -b(159)p 2497 480 125 4 v -2 w(,)f(161)p 2673 480 V -1 -w(,)g(174)p 2850 480 V -1 w(,)g(182)p 3027 480 V -1 w(,)g(183,)f(184,)f -(185,)h(186,)2199 566 y(188)p 2199 579 V -1 w(,)d(346)p -2372 579 V -2 w(,)g(350)p 2544 579 V -1 w(,)g(380)p 2717 -579 V -2 w(,)g(381,)f(382,)g(385,)f(387,)h(388,)f(389,)2199 -666 y(395)p 2199 679 V -1 w(,)i(399)p 2372 679 V -2 w(,)g(400,)f(401,)f -(405)p 2889 679 V -1 w(,)i(411)p 3062 679 V -1 w(,)g(432)p -3235 679 V -2 w(,)g(443)p 3407 679 V -1 w(,)g(446)p 3580 -679 V -2 w(,)g(448)p 3752 679 V -1 w(,)2199 765 y(452)p -2199 778 V -1 w(,)g(458)p 2372 778 V -2 w(,)g(462)p 2544 -778 V -1 w(,)g(464)p 2717 778 V -2 w(,)g(505)p 2889 778 -V -1 w(,)g(517)p 3062 778 V -1 w(,)g(518,)e(519,)h(520,)f(521,)2199 -865 y(522,)h(530)p 2372 878 V -2 w(,)h(531,)f(532,)f(533,)h(534,)g -(535,)f(536,)h(537,)f(538,)2199 965 y(540,)h(541,)f(546)p -2544 978 V -1 w(,)i(548)p 2717 978 V -2 w(,)g(549,)f(550,)g(551,)f -(552,)h(553,)f(561)p 3752 978 V -1 w(,)2199 1064 y(603)p -2199 1077 V -1 w(,)i(605)p 2372 1077 V -2 w(,)g(606,)f(607,)f(644)p -2889 1077 V -1 w(,)i(661)p 3062 1077 V -1 w(,)g(664)p -3235 1077 V -2 w(,)g(669)p 3407 1077 V -1 w(,)g(674)p -3580 1077 V -2 w(,)g(678)p 3752 1077 V -1 w(,)2199 1164 -y(681)p 2199 1177 V -1 w(,)g(683)p 2372 1177 V -2 w(,)g(685)p -2544 1177 V -1 w(,)g(687)p 2717 1177 V -2 w(,)g(726)p -2889 1177 V -1 w(,)g(776)p 3062 1177 V -1 w(,)g(802)p -3235 1177 V -2 w(,)g(807)p 3407 1177 V -1 w(,)g(824)p -3580 1177 V -2 w(,)g(830)p 3752 1177 V -1 w(,)2199 1264 -y(840)p 2199 1277 V -1 w(,)g(842)p 2372 1277 V -2 w(,)g(843,)f(844,)f -(847)p 2889 1277 V -1 w(,)i(849)p 3062 1277 V -1 w(,)g(857)p -3235 1277 V -2 w(,)g(859,)f(861,)f(862,)2199 1363 y(863,)h(864,)f(873)p -2544 1376 V -1 w(,)i(875)p 2717 1376 V -2 w(,)g(882)p -2889 1376 V -1 w(,)g(886,)f(894)p 3235 1376 V -2 w(,)h(897,)f(901)p -3580 1376 V -2 w(,)h(903,)2199 1463 y(909)p 2199 1476 -V -1 w(,)g(911,)e(946)p 2544 1476 V -1 w(,)i(951)p 2717 -1476 V -2 w(,)g(952,)f(954,)g(955,)f(956,)h(957,)f(958,)2199 -1562 y(960,)h(982)p 2372 1575 V -2 w(,)h(983,)f(985,)f(987,)h(988,)g -(989,)f(993)p 3407 1575 V -1 w(,)i(994,)e(996,)2199 1662 -y(1030)p 2199 1675 167 4 v -2 w(,)k(1031,)e(1033)p 2631 -1675 V -2 w(,)i(1034,)e(1122)p 3063 1675 V -2 w(,)i(1163)p -3279 1675 V -2 w(,)g(1171)p 3495 1675 V -2 w(,)g(1172,)2199 -1762 y(1173,)e(1174,)g(1175,)g(1177,)g(1178,)g(1179,)g(1180,)g(1181,) -2199 1861 y(1183,)g(1188)p 2415 1874 V -2 w(,)i(1254)p -2631 1874 V -2 w(,)g(1263)p 2847 1874 V -2 w(,)g(1279)p -3063 1874 V -2 w(,)g(1282)p 3279 1874 V -2 w(,)g(1285)p -3495 1874 V -2 w(,)g(1303)p 3711 1874 V -2 w(,)2199 1961 -y(1312)p 2199 1974 V -2 w(,)g(1339)p 2415 1974 V -2 w(,)g(1362)p -2631 1974 V -2 w(,)g(1365)p 2847 1974 V -2 w(,)g(1367)p -3063 1974 V -2 w(,)g(1375)p 3279 1974 V -2 w(,)g(1377,)e(1379)p -3711 1974 V -2 w(,)2199 2061 y(1380,)g(1382)p 2415 2074 -V -2 w(,)i(1383,)e(1385)p 2847 2074 V -2 w(,)i(1388)p -3063 2074 V -2 w(,)g(1391)p 3279 2074 V -2 w(,)g(1394)p -3495 2074 V -2 w(,)g(1415)p 3711 2074 V -2 w(,)2199 2160 -y(1438)p 2199 2173 V -2 w(,)g(1455)p 2415 2173 V -2 w(,)g(1456,)e(1469) -p 2847 2173 V -2 w(,)i(1471)p 3063 2173 V -2 w(,)g(1483)p -3279 2173 V -2 w(,)g(1485)p 3495 2173 V -2 w(,)g(1503)p -3711 2173 V -2 w(.)2033 2262 y Fi(de)l(cimal)14 b Fm(:)84 -b(96,)38 b(97)p 2569 2275 84 4 v -1 w(,)i(98)p 2715 2275 -V -1 w(,)g(99)p 2861 2275 V -1 w(.)2033 2364 y Fi(default)p -2279 2364 26 4 v 31 w(b)l(ackgr)l(ound)14 b Fm(:)83 b(108,)34 -b(112)p 3005 2377 125 4 v -2 w(,)h(113)p 3187 2377 V --1 w(.)2033 2466 y Fi(default)p 2279 2466 26 4 v 31 w(c)l(olor)15 -b Fm(:)83 b(112)p 2600 2479 125 4 v -2 w(,)34 b(113)p -2781 2479 V -2 w(,)g(115,)d(410,)h(412,)g(419,)g(420,)2199 -2565 y(422,)i(423,)g(458,)g(775,)f(777,)h(784,)g(786,)g(801,)g(803,) -2199 2665 y(806,)c(808,)f(859,)h(861,)g(862,)f(863,)h(921,)g(1046,)f -(1047,)2199 2764 y(1050,)c(1051,)g(1092,)g(1093,)g(1217,)g(1219,)g -(1278,)g(1279,)2199 2864 y(1282,)37 b(1379,)f(1382,)h(1446.)2033 -2966 y Fi(default)p 2279 2966 26 4 v 31 w(c)l(olor)p -2484 2966 V 32 w(ve)l(ctor)14 b Fm(:)83 b(115)p 2846 -2979 125 4 v -2 w(,)33 b(116)p 3026 2979 V -1 w(,)f(1281,)f(1284,)g -(1378,)2199 3065 y(1381,)42 b(1384.)2033 3167 y Fi(default)p -2279 3167 26 4 v 31 w(fo)l(cus)12 b Fm(:)83 b(313,)32 -b(318,)f(397,)h(402,)g(403,)f(431,)h(443,)2199 3267 y(457,)39 -b(554,)g(586)p 2575 3280 125 4 v -1 w(,)i(587)p 2764 -3280 V -2 w(.)2033 3369 y Ff(DEFAULT_NUMBER_O)o(F_P)o(OI)o(NTS)m -Fm(:)84 b(1098)p 3190 3382 167 4 v -2 w(,)34 b(1099)p -3413 3382 V -2 w(,)g(1104,)2199 3468 y(1105,)j(1106,)f(1237,)h(1239.) -2033 3570 y Fi(de\014ne)p 2250 3570 26 4 v 31 w(c)l(olor)p -2455 3570 V 31 w(mp)10 b Fm(:)83 b(105)p 2707 3583 125 -4 v -1 w(,)36 b(106)p 2891 3583 V -1 w(,)g(108.)2033 -3672 y Fi(delta)p 2209 3672 26 4 v 31 w(x)14 b Fm(:)83 -b(522)p 2394 3685 125 4 v -1 w(.)2033 3774 y Fi(delta)p -2209 3774 26 4 v 31 w(x)p 2279 3774 V 30 w(p)10 b Fm(:)83 -b(532)p 2462 3787 125 4 v -1 w(,)42 b(533.)2033 3875 -y Fi(delta)p 2209 3875 26 4 v 31 w(x)p 2279 3875 V 30 -w(q)12 b Fm(:)83 b(532)p 2460 3888 125 4 v -1 w(,)42 -b(534.)2033 3977 y Fi(delta)p 2209 3977 26 4 v 31 w(y)12 -b Fm(:)83 b(522)p 2393 3990 125 4 v -1 w(.)2033 4079 -y Fi(delta)p 2209 4079 26 4 v 31 w(y)p 2280 4079 V 31 -w(p)10 b Fm(:)83 b(532)p 2464 4092 125 4 v -1 w(,)42 -b(533.)2033 4181 y Fi(delta)p 2209 4181 26 4 v 31 w(y)p -2280 4181 V 31 w(q)12 b Fm(:)83 b(532)p 2462 4194 125 -4 v -1 w(,)42 b(534.)2033 4283 y Fi(delta)p 2209 4283 -26 4 v 31 w(z)15 b Fm(:)83 b(522)p 2390 4296 125 4 v --2 w(.)2033 4384 y Fi(delta)p 2209 4384 26 4 v 31 w(z)p -2274 4384 V 31 w(p)10 b Fm(:)83 b(532)p 2458 4397 125 -4 v -2 w(,)43 b(533.)2033 4486 y Fi(delta)p 2209 4486 -26 4 v 31 w(z)p 2274 4486 V 31 w(q)12 b Fm(:)83 b(532)p -2456 4499 125 4 v -2 w(,)42 b(534.)2033 4588 y Fi(denominator)14 -b Fm(:)84 b(641)p 2610 4601 V -2 w(,)40 b(1178)p 2797 -4601 167 4 v -2 w(.)2033 4690 y Fi(depth)12 b Fm(:)83 -b(1408)p 2343 4703 V -2 w(,)39 b(1415,)f(1421.)2033 4791 -y Fi(diameter)p 2354 4791 26 4 v 32 w(inner)13 b Fm(:)83 -b(1278)p 2692 4804 167 4 v -2 w(,)37 b(1279)p 2918 4804 -V -2 w(,)h(1281)p 3145 4804 V -2 w(,)f(1282)p 3371 4804 -V -2 w(,)g(1284)p 3597 4804 V -2 w(,)2199 4891 y(1285)p -2199 4904 V -2 w(.)2033 4993 y Fi(diameter)p 2354 4993 -26 4 v 32 w(midd)t(le)12 b Fm(:)83 b(1278)p 2739 5006 -167 4 v -2 w(,)38 b(1279)p 2966 5006 V -2 w(.)2033 5095 -y Fi(diameter)p 2354 5095 26 4 v 32 w(of)p 2453 5095 -V 31 w(hexagon)12 b Fm(:)83 b(1482)p 2885 5108 167 4 -v -2 w(.)2033 5196 y Fi(diameter)p 2354 5196 26 4 v 32 -w(of)p 2453 5196 V 31 w(triangle)11 b Fm(:)84 b(1437)p -2871 5209 167 4 v -2 w(,)32 b(1441)p 3092 5209 V -1 w(,)g(1468)p -3314 5209 V -2 w(.)2033 5298 y Fi(diameter)p 2354 5298 -26 4 v 32 w(outer)13 b Fm(:)83 b(1278)p 2688 5311 167 -4 v -2 w(,)30 b(1279)p 2907 5311 V -2 w(,)f(1282)p 3125 -5311 V -2 w(,)h(1284)p 3344 5311 V -2 w(,)g(1285)p 3563 -5311 V -2 w(.)2033 5400 y Fi(diameter)p 2354 5400 26 -4 v 32 w(outer)p 2574 5400 V 30 w(end)13 b Fm(:)83 b(1281)p -2845 5413 167 4 v -2 w(,)36 b(1282)p 3070 5413 V -2 w(.)p -eop end -%%Page: 488 488 -TeXDict begin 488 487 bop 0 83 a Fm(488)140 b Fl(INDEX)2670 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1517)0 263 y Fi(diameter)p -321 263 26 4 v 32 w(outer)p 541 263 V 30 w(start)12 b -Fm(:)83 b(1281)p 851 276 167 4 v -2 w(,)35 b(1282)p 1075 -276 V -2 w(.)0 365 y Fi(digit)p 163 365 26 4 v 32 w(optind)14 -b Fm(:)83 b(1503)p 536 378 167 4 v -2 w(.)0 466 y Fi(dihe)l(dr)l(al)p -284 466 26 4 v 33 w(angle)11 b Fm(:)83 b(1408,)38 b(1431)p -844 479 167 4 v -2 w(,)i(1432)p 1073 479 V -2 w(,)g(1438,)e(1448)p -1531 479 V -2 w(,)166 566 y(1449)p 166 579 V -2 w(,)e(1455,)e(1462)p -616 579 V -2 w(,)h(1463)p 840 579 V -2 w(,)h(1469.)0 -667 y Fi(dir)14 b Fm(:)83 b(565)p 222 680 125 4 v -1 -w(,)35 b(566)p 405 680 V -1 w(,)g(567)p 588 680 V -2 -w(,)h(568)p 771 680 V -2 w(,)g(595)p 954 680 V -2 w(,)f(596)p -1136 680 V -1 w(.)0 769 y Fi(dir)p 107 769 26 4 v 31 -w(x)14 b Fm(:)83 b(560)p 292 782 125 4 v -1 w(,)39 b(561)p -479 782 V -2 w(,)g(562)p 665 782 V -1 w(,)g(563)p 852 -782 V -1 w(.)0 870 y Fi(dir)p 107 870 26 4 v 31 w(y)12 -b Fm(:)83 b(560)p 291 883 125 4 v -1 w(,)39 b(561)p 478 -883 V -1 w(,)g(562)p 665 883 V -2 w(,)g(563)p 851 883 -V -1 w(.)0 972 y Fi(dir)p 107 972 26 4 v 31 w(z)15 b -Fm(:)83 b(560)p 288 985 125 4 v -2 w(,)40 b(561)p 475 -985 V -2 w(,)f(562)p 661 985 V -1 w(,)g(563)p 848 985 -V -2 w(.)0 1074 y Fi(dir)l(e)l(ction)12 b Fm(:)83 b(556)p -430 1087 V -2 w(,)31 b(557,)f(559,)f(561,)h(570,)g(572,)f(574,)h(577,) -166 1173 y(593)p 166 1186 V -1 w(,)35 b(594,)f(596,)g(597,)f(598,)h -(600,)g(601,)g(605,)g(606,)166 1273 y(609,)39 b(931,)f(996,)h(1183.)0 -1374 y Fi(dir)l(e)l(ction)p 317 1374 26 4 v 31 w(line)12 -b Fm(:)83 b(1159)p 592 1387 167 4 v -2 w(.)0 1476 y Fi(dir)l(e)l(ction) -p 317 1476 26 4 v 31 w(pt)13 b Fm(:)83 b(1159)p 532 1489 -167 4 v -2 w(.)0 1577 y Fi(dir)l(e)l(ction)p 317 1577 -26 4 v 31 w(ve)l(ctor)14 b Fm(:)83 b(644)p 678 1590 125 -4 v -1 w(.)0 1679 y Ff(DISCLAIMER_3DLDF)n Fm(:)g(19)p -808 1692 84 4 v -1 w(,)32 b(20)p 946 1692 V -1 w(,)h(1507,)e(1508.)0 -1781 y Fi(dist)13 b Fm(:)83 b(559,)29 b(560)p 426 1794 -125 4 v -1 w(,)i(561)p 605 1794 V -1 w(,)g(562)p 784 -1794 V -2 w(,)h(563)p 963 1794 V -2 w(,)f(565)p 1141 -1794 V -1 w(,)g(566)p 1320 1794 V -1 w(,)g(567)p 1499 -1794 V -2 w(,)h(568)p 1678 1794 V -2 w(,)166 1880 y(920,)e(921)p -345 1893 V -2 w(,)h(922)p 523 1893 V -1 w(,)g(923,)f(925,)f(926)p -1059 1893 V -1 w(,)i(927)p 1238 1893 V -1 w(,)g(1263)p -1417 1893 167 4 v -2 w(.)0 1982 y Fi(distanc)l(e)11 b -Fm(:)83 b(556)p 407 1995 125 4 v -1 w(,)42 b(559,)f(561,)f(570,)h(572,) -g(574,)g(578,)166 2081 y(617)p 166 2094 V -1 w(,)35 b(619,)f(620,)g -(623,)f(624,)h(626,)g(629,)g(635,)g(636,)166 2181 y(641,)g(644,)g(646,) -g(951)p 715 2194 V -2 w(,)h(954,)f(982)p 1080 2194 V --1 w(,)h(985,)f(993)p 1446 2194 V -2 w(,)i(994,)166 2281 -y(1172,)k(1439)p 397 2294 167 4 v -2 w(,)h(1440.)0 2382 -y Fi(do)p 89 2382 26 4 v 31 w(apply)14 b Fm(:)83 b(200)p -422 2395 125 4 v -2 w(,)32 b(312)p 601 2395 V -2 w(,)g(313)p -780 2395 V -2 w(,)g(314)p 959 2395 V -2 w(,)g(315)p 1138 -2395 V -2 w(,)g(317)p 1317 2395 V -2 w(,)g(318)p 1496 -2395 V -2 w(,)g(319)p 1675 2395 V -2 w(,)166 2482 y(320)p -166 2495 V -1 w(,)j(322)p 349 2495 V -2 w(,)h(323)p 532 -2495 V -2 w(,)g(324)p 715 2495 V -2 w(,)f(325)p 897 2495 -V -1 w(,)g(327)p 1080 2495 V -1 w(,)g(328)p 1263 2495 -V -1 w(,)g(329)p 1446 2495 V -2 w(,)h(330)p 1629 2495 -V -2 w(,)166 2581 y(332)p 166 2594 V -1 w(,)f(333)p 349 -2594 V -2 w(,)h(334)p 532 2594 V -2 w(,)g(335)p 715 2594 -V -2 w(,)f(337)p 897 2594 V -1 w(,)g(338)p 1080 2594 -V -1 w(,)g(339)p 1263 2594 V -1 w(,)g(340)p 1446 2594 -V -2 w(,)h(431)p 1629 2594 V -2 w(,)166 2681 y(432)p -166 2694 V -1 w(,)h(866)p 351 2694 V -2 w(,)h(867)p 536 -2694 V -2 w(,)f(1336)p 720 2694 167 4 v -2 w(,)h(1337)p -947 2694 V -2 w(.)0 2783 y Fi(do)p 89 2783 26 4 v 31 -w(half)24 b Fm(:)83 b(1443)p 375 2796 167 4 v -2 w(,)28 -b(1457)p 592 2796 V -2 w(,)g(1458)p 809 2796 V -2 w(,)f(1470)p -1025 2796 V -2 w(,)h(1471)p 1242 2796 V -2 w(,)g(1484)p -1459 2796 V -2 w(,)g(1485)p 1676 2796 V -2 w(.)0 2884 -y Fi(do)p 89 2884 26 4 v 31 w(help)p 263 2884 V 32 w(lines)12 -b Fm(:)83 b(427,)34 b(654)p 756 2897 125 4 v -2 w(,)i(655)p -939 2897 V -1 w(,)f(794.)0 2986 y Fi(do)p 89 2986 26 -4 v 31 w(inner)14 b Fm(:)83 b(1279)p 427 2999 167 4 v --2 w(.)0 3087 y Fi(do)p 89 3087 26 4 v 31 w(lab)l(els)12 -b Fm(:)84 b(209,)27 b(216)p 600 3100 125 4 v -2 w(,)i(219,)e(229,)g -(230,)g(249,)g(544,)g(553.)0 3189 y Ff(DO_LABELS)q Fm(:)83 -b(208)p 503 3202 V -2 w(,)32 b(209)p 682 3202 V -2 w(,)g(216,)d(462,)h -(830,)g(1118.)0 3290 y Fi(do)p 89 3290 26 4 v 31 w(midd)t(le)13 -b Fm(:)83 b(1279)p 474 3303 167 4 v -2 w(.)0 3392 y Fi(do)p -89 3392 26 4 v 31 w(output)12 b Fm(:)83 b(264)p 463 3405 +976 125 4 v -1 w(,)i(411)p 3043 976 V -1 w(,)g(412)p +3223 976 V -1 w(,)g(413)p 3403 976 V -2 w(.)2033 1065 +y Ff(DEBUG)r Fm(:)83 b(72)p 2361 1078 84 4 v -1 w(,)30 +b(159)p 2497 1078 125 4 v -2 w(,)f(161)p 2673 1078 V +-1 w(,)g(174)p 2850 1078 V -1 w(,)g(182)p 3027 1078 V +-1 w(,)g(183,)f(184,)f(185,)h(186,)2199 1165 y(188)p +2199 1178 V -1 w(,)d(346)p 2372 1178 V -2 w(,)g(350)p +2544 1178 V -1 w(,)g(380)p 2717 1178 V -2 w(,)g(381,)f(382,)g(385,)f +(387,)h(388,)f(389,)2199 1265 y(395)p 2199 1278 V -1 +w(,)i(399)p 2372 1278 V -2 w(,)g(400,)f(401,)f(405)p +2889 1278 V -1 w(,)i(411)p 3062 1278 V -1 w(,)g(432)p +3235 1278 V -2 w(,)g(443)p 3407 1278 V -1 w(,)g(446)p +3580 1278 V -2 w(,)g(448)p 3752 1278 V -1 w(,)2199 1364 +y(452)p 2199 1377 V -1 w(,)g(458)p 2372 1377 V -2 w(,)g(462)p +2544 1377 V -1 w(,)g(464)p 2717 1377 V -2 w(,)g(505)p +2889 1377 V -1 w(,)g(517)p 3062 1377 V -1 w(,)g(518,)e(519,)h(520,)f +(521,)2199 1464 y(522,)h(530)p 2372 1477 V -2 w(,)h(531,)f(532,)f(533,) +h(534,)g(535,)f(536,)h(537,)f(538,)2199 1564 y(540,)h(541,)f(546)p +2544 1577 V -1 w(,)i(548)p 2717 1577 V -2 w(,)g(549,)f(550,)g(551,)f +(552,)h(553,)f(561)p 3752 1577 V -1 w(,)2199 1663 y(603)p +2199 1676 V -1 w(,)i(605)p 2372 1676 V -2 w(,)g(606,)f(607,)f(644)p +2889 1676 V -1 w(,)i(661)p 3062 1676 V -1 w(,)g(664)p +3235 1676 V -2 w(,)g(669)p 3407 1676 V -1 w(,)g(674)p +3580 1676 V -2 w(,)g(678)p 3752 1676 V -1 w(,)2199 1763 +y(681)p 2199 1776 V -1 w(,)g(683)p 2372 1776 V -2 w(,)g(685)p +2544 1776 V -1 w(,)g(687)p 2717 1776 V -2 w(,)g(726)p +2889 1776 V -1 w(,)g(776)p 3062 1776 V -1 w(,)g(802)p +3235 1776 V -2 w(,)g(807)p 3407 1776 V -1 w(,)g(824)p +3580 1776 V -2 w(,)g(830)p 3752 1776 V -1 w(,)2199 1862 +y(840)p 2199 1875 V -1 w(,)g(842)p 2372 1875 V -2 w(,)g(843,)f(844,)f +(847)p 2889 1875 V -1 w(,)i(849)p 3062 1875 V -1 w(,)g(857)p +3235 1875 V -2 w(,)g(859,)f(861,)f(862,)2199 1962 y(863,)h(864,)f(873)p +2544 1975 V -1 w(,)i(875)p 2717 1975 V -2 w(,)g(882)p +2889 1975 V -1 w(,)g(886,)f(897)p 3235 1975 V -2 w(,)h(900,)f(904)p +3580 1975 V -2 w(,)h(906,)2199 2062 y(912)p 2199 2075 +V -1 w(,)g(914,)e(949)p 2544 2075 V -1 w(,)i(954)p 2717 +2075 V -2 w(,)g(955,)f(957,)g(958,)f(959,)h(960,)f(961,)2199 +2161 y(963,)h(985)p 2372 2174 V -2 w(,)h(986,)f(988,)f(990,)h(991,)g +(992,)f(996)p 3407 2174 V -1 w(,)i(997,)e(999,)2199 2261 +y(1033)p 2199 2274 167 4 v -2 w(,)k(1034,)e(1036)p 2631 +2274 V -2 w(,)i(1037,)e(1127)p 3063 2274 V -2 w(,)i(1168)p +3279 2274 V -2 w(,)g(1176)p 3495 2274 V -2 w(,)g(1177,)2199 +2361 y(1178,)e(1179,)g(1180,)g(1182,)g(1183,)g(1184,)g(1185,)g(1186,) +2199 2460 y(1188,)g(1193)p 2415 2473 V -2 w(,)i(1259)p +2631 2473 V -2 w(,)g(1268)p 2847 2473 V -2 w(,)g(1284)p +3063 2473 V -2 w(,)g(1287)p 3279 2473 V -2 w(,)g(1290)p +3495 2473 V -2 w(,)g(1308)p 3711 2473 V -2 w(,)2199 2560 +y(1317)p 2199 2573 V -2 w(,)g(1344)p 2415 2573 V -2 w(,)g(1367)p +2631 2573 V -2 w(,)g(1370)p 2847 2573 V -2 w(,)g(1372)p +3063 2573 V -2 w(,)g(1380)p 3279 2573 V -2 w(,)g(1382,)e(1384)p +3711 2573 V -2 w(,)2199 2659 y(1385,)g(1387)p 2415 2672 +V -2 w(,)i(1388,)e(1390)p 2847 2672 V -2 w(,)i(1393)p +3063 2672 V -2 w(,)g(1396)p 3279 2672 V -2 w(,)g(1399)p +3495 2672 V -2 w(,)g(1420)p 3711 2672 V -2 w(,)2199 2759 +y(1443)p 2199 2772 V -2 w(,)g(1460)p 2415 2772 V -2 w(,)g(1461,)e(1474) +p 2847 2772 V -2 w(,)i(1476)p 3063 2772 V -2 w(,)g(1488)p +3279 2772 V -2 w(,)g(1490)p 3495 2772 V -2 w(,)g(1508)p +3711 2772 V -2 w(.)2033 2861 y Fi(de)l(cimal)14 b Fm(:)84 +b(96,)38 b(97)p 2569 2874 84 4 v -1 w(,)i(98)p 2715 2874 +V -1 w(,)g(99)p 2861 2874 V -1 w(.)2033 2964 y Fi(default)p +2279 2964 26 4 v 31 w(b)l(ackgr)l(ound)14 b Fm(:)83 b(108,)34 +b(112)p 3005 2977 125 4 v -2 w(,)h(113)p 3187 2977 V +-1 w(.)2033 3066 y Fi(default)p 2279 3066 26 4 v 31 w(c)l(olor)15 +b Fm(:)83 b(112)p 2600 3079 125 4 v -2 w(,)34 b(113)p +2781 3079 V -2 w(,)g(115,)d(410,)h(412,)g(419,)g(420,)2199 +3166 y(422,)i(423,)g(458,)g(775,)f(777,)h(784,)g(786,)g(801,)g(803,) +2199 3265 y(806,)c(808,)f(859,)h(861,)g(862,)f(863,)h(924,)g(1049,)f +(1050,)2199 3365 y(1053,)c(1054,)g(1097,)g(1098,)g(1222,)g(1224,)g +(1283,)g(1284,)2199 3464 y(1287,)37 b(1384,)f(1387,)h(1451.)2033 +3567 y Fi(default)p 2279 3567 26 4 v 31 w(c)l(olor)p +2484 3567 V 32 w(ve)l(ctor)14 b Fm(:)83 b(115)p 2846 +3580 125 4 v -2 w(,)33 b(116)p 3026 3580 V -1 w(,)f(1286,)f(1289,)g +(1383,)2199 3666 y(1386,)42 b(1389.)2033 3769 y Fi(default)p +2279 3769 26 4 v 31 w(fo)l(cus)12 b Fm(:)83 b(313,)32 +b(318,)f(397,)h(402,)g(403,)f(431,)h(443,)2199 3868 y(457,)39 +b(554,)g(586)p 2575 3881 125 4 v -1 w(,)i(587)p 2764 +3881 V -2 w(.)2033 3971 y Ff(DEFAULT_NUMBER_O)o(F_P)o(OI)o(NTS)m +Fm(:)84 b(1103)p 3190 3984 167 4 v -2 w(,)34 b(1104)p +3413 3984 V -2 w(,)g(1109,)2199 4070 y(1110,)j(1111,)f(1242,)h(1244.) +2033 4172 y Fi(de\014ne)p 2250 4172 26 4 v 31 w(c)l(olor)p +2455 4172 V 31 w(mp)10 b Fm(:)83 b(105)p 2707 4185 125 +4 v -1 w(,)36 b(106)p 2891 4185 V -1 w(,)g(108.)2033 +4275 y Fi(delta)p 2209 4275 26 4 v 31 w(x)14 b Fm(:)83 +b(522)p 2394 4288 125 4 v -1 w(.)2033 4377 y Fi(delta)p +2209 4377 26 4 v 31 w(x)p 2279 4377 V 30 w(p)10 b Fm(:)83 +b(532)p 2462 4390 125 4 v -1 w(,)42 b(533.)2033 4479 +y Fi(delta)p 2209 4479 26 4 v 31 w(x)p 2279 4479 V 30 +w(q)12 b Fm(:)83 b(532)p 2460 4492 125 4 v -1 w(,)42 +b(534.)2033 4582 y Fi(delta)p 2209 4582 26 4 v 31 w(y)12 +b Fm(:)83 b(522)p 2393 4595 125 4 v -1 w(.)2033 4684 +y Fi(delta)p 2209 4684 26 4 v 31 w(y)p 2280 4684 V 31 +w(p)10 b Fm(:)83 b(532)p 2464 4697 125 4 v -1 w(,)42 +b(533.)2033 4786 y Fi(delta)p 2209 4786 26 4 v 31 w(y)p +2280 4786 V 31 w(q)12 b Fm(:)83 b(532)p 2462 4799 125 +4 v -1 w(,)42 b(534.)2033 4889 y Fi(delta)p 2209 4889 +26 4 v 31 w(z)15 b Fm(:)83 b(522)p 2390 4902 125 4 v +-2 w(.)2033 4991 y Fi(delta)p 2209 4991 26 4 v 31 w(z)p +2274 4991 V 31 w(p)10 b Fm(:)83 b(532)p 2458 5004 125 +4 v -2 w(,)43 b(533.)2033 5093 y Fi(delta)p 2209 5093 +26 4 v 31 w(z)p 2274 5093 V 31 w(q)12 b Fm(:)83 b(532)p +2456 5106 125 4 v -2 w(,)42 b(534.)2033 5195 y Fi(denominator)14 +b Fm(:)84 b(641)p 2610 5208 V -2 w(,)40 b(1183)p 2797 +5208 167 4 v -2 w(.)2033 5298 y Fi(depth)12 b Fm(:)83 +b(1413)p 2343 5311 V -2 w(,)39 b(1420,)f(1426.)2033 5400 +y Fi(diameter)p 2354 5400 26 4 v 32 w(inner)13 b Fm(:)83 +b(1283)p 2692 5413 167 4 v -2 w(,)37 b(1284)p 2918 5413 +V -2 w(,)h(1286)p 3145 5413 V -2 w(,)f(1287)p 3371 5413 +V -2 w(,)g(1289)p 3597 5413 V -2 w(,)p eop end +%%Page: 493 493 +TeXDict begin 493 492 bop 0 83 a Fn(x)p Fm(1525)139 b +Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(493)166 263 y(1290)p +166 276 167 4 v -2 w(.)0 364 y Fi(diameter)p 321 364 +26 4 v 32 w(midd)t(le)12 b Fm(:)83 b(1283)p 706 377 167 +4 v -2 w(,)38 b(1284)p 933 377 V -2 w(.)0 466 y Fi(diameter)p +321 466 26 4 v 32 w(of)p 420 466 V 31 w(hexagon)12 b +Fm(:)83 b(1487)p 852 479 167 4 v -2 w(.)0 567 y Fi(diameter)p +321 567 26 4 v 32 w(of)p 420 567 V 31 w(triangle)11 b +Fm(:)84 b(1442)p 838 580 167 4 v -2 w(,)32 b(1446)p 1059 +580 V -2 w(,)h(1473)p 1281 580 V -2 w(.)0 669 y Fi(diameter)p +321 669 26 4 v 32 w(outer)13 b Fm(:)83 b(1283)p 655 682 +167 4 v -2 w(,)29 b(1284)p 873 682 V -1 w(,)g(1287)p +1092 682 V -2 w(,)h(1289)p 1311 682 V -2 w(,)g(1290)p +1530 682 V -2 w(.)0 770 y Fi(diameter)p 321 770 26 4 +v 32 w(outer)p 541 770 V 30 w(end)13 b Fm(:)83 b(1286)p +812 783 167 4 v -2 w(,)36 b(1287)p 1037 783 V -2 w(.)0 +871 y Fi(diameter)p 321 871 26 4 v 32 w(outer)p 541 871 +V 30 w(start)12 b Fm(:)83 b(1286)p 851 884 167 4 v -2 +w(,)35 b(1287)p 1075 884 V -2 w(.)0 973 y Fi(digit)p +163 973 26 4 v 32 w(optind)14 b Fm(:)83 b(1508)p 536 +986 167 4 v -2 w(.)0 1074 y Fi(dihe)l(dr)l(al)p 284 1074 +26 4 v 33 w(angle)11 b Fm(:)83 b(1413,)38 b(1436)p 844 +1087 167 4 v -2 w(,)i(1437)p 1073 1087 V -2 w(,)g(1443,)e(1453)p +1531 1087 V -2 w(,)166 1174 y(1454)p 166 1187 V -2 w(,)e(1460,)e(1467)p +616 1187 V -2 w(,)h(1468)p 840 1187 V -2 w(,)h(1474.)0 +1275 y Fi(dir)14 b Fm(:)83 b(565)p 222 1288 125 4 v -1 +w(,)35 b(566)p 405 1288 V -1 w(,)g(567)p 588 1288 V -2 +w(,)h(568)p 771 1288 V -2 w(,)g(595)p 954 1288 V -2 w(,)f(596)p +1136 1288 V -1 w(.)0 1376 y Fi(dir)p 107 1376 26 4 v +31 w(x)14 b Fm(:)83 b(560)p 292 1389 125 4 v -1 w(,)39 +b(561)p 479 1389 V -2 w(,)g(562)p 665 1389 V -1 w(,)g(563)p +852 1389 V -1 w(.)0 1478 y Fi(dir)p 107 1478 26 4 v 31 +w(y)12 b Fm(:)83 b(560)p 291 1491 125 4 v -1 w(,)39 b(561)p +478 1491 V -1 w(,)g(562)p 665 1491 V -2 w(,)g(563)p 851 +1491 V -1 w(.)0 1579 y Fi(dir)p 107 1579 26 4 v 31 w(z)15 +b Fm(:)83 b(560)p 288 1592 125 4 v -2 w(,)40 b(561)p +475 1592 V -2 w(,)f(562)p 661 1592 V -1 w(,)g(563)p 848 +1592 V -2 w(.)0 1681 y Fi(dir)l(e)l(ction)12 b Fm(:)83 +b(556)p 430 1694 V -2 w(,)31 b(557,)f(559,)f(561,)h(570,)g(572,)f(574,) +h(577,)166 1780 y(593)p 166 1793 V -1 w(,)35 b(594,)f(596,)g(597,)f +(598,)h(600,)g(601,)g(605,)g(606,)166 1880 y(609,)39 +b(934,)f(999,)h(1188.)0 1981 y Fi(dir)l(e)l(ction)p 317 +1981 26 4 v 31 w(line)12 b Fm(:)83 b(1164)p 592 1994 +167 4 v -2 w(.)0 2083 y Fi(dir)l(e)l(ction)p 317 2083 +26 4 v 31 w(pt)13 b Fm(:)83 b(1164)p 532 2096 167 4 v +-2 w(.)0 2184 y Fi(dir)l(e)l(ction)p 317 2184 26 4 v +31 w(ve)l(ctor)14 b Fm(:)83 b(644)p 678 2197 125 4 v +-1 w(.)0 2285 y Ff(DISCLAIMER_3DLDF)n Fm(:)g(19)p 808 +2298 84 4 v -1 w(,)32 b(20)p 946 2298 V -1 w(,)h(1512,)e(1513.)0 +2387 y Fi(dist)13 b Fm(:)83 b(559,)29 b(560)p 426 2400 +125 4 v -1 w(,)i(561)p 605 2400 V -1 w(,)g(562)p 784 +2400 V -2 w(,)h(563)p 963 2400 V -2 w(,)f(565)p 1141 +2400 V -1 w(,)g(566)p 1320 2400 V -1 w(,)g(567)p 1499 +2400 V -2 w(,)h(568)p 1678 2400 V -2 w(,)166 2486 y(923,)e(924)p +345 2499 V -2 w(,)h(925)p 523 2499 V -1 w(,)g(926,)f(928,)f(929)p +1059 2499 V -1 w(,)i(930)p 1238 2499 V -1 w(,)g(1268)p +1417 2499 167 4 v -2 w(.)0 2588 y Fi(distanc)l(e)11 b +Fm(:)83 b(556)p 407 2601 125 4 v -1 w(,)42 b(559,)f(561,)f(570,)h(572,) +g(574,)g(578,)166 2687 y(617)p 166 2700 V -1 w(,)35 b(619,)f(620,)g +(623,)f(624,)h(626,)g(629,)g(635,)g(636,)166 2787 y(641,)g(644,)g(646,) +g(954)p 715 2800 V -2 w(,)h(957,)f(985)p 1080 2800 V +-1 w(,)h(988,)f(996)p 1446 2800 V -2 w(,)i(997,)166 2887 +y(1177,)k(1444)p 397 2900 167 4 v -2 w(,)h(1445.)0 2988 +y Fi(do)p 89 2988 26 4 v 31 w(apply)14 b Fm(:)83 b(200)p +422 3001 125 4 v -2 w(,)32 b(312)p 601 3001 V -2 w(,)g(313)p +780 3001 V -2 w(,)g(314)p 959 3001 V -2 w(,)g(315)p 1138 +3001 V -2 w(,)g(317)p 1317 3001 V -2 w(,)g(318)p 1496 +3001 V -2 w(,)g(319)p 1675 3001 V -2 w(,)166 3088 y(320)p +166 3101 V -1 w(,)j(322)p 349 3101 V -2 w(,)h(323)p 532 +3101 V -2 w(,)g(324)p 715 3101 V -2 w(,)f(325)p 897 3101 +V -1 w(,)g(327)p 1080 3101 V -1 w(,)g(328)p 1263 3101 +V -1 w(,)g(329)p 1446 3101 V -2 w(,)h(330)p 1629 3101 +V -2 w(,)166 3187 y(332)p 166 3200 V -1 w(,)f(333)p 349 +3200 V -2 w(,)h(334)p 532 3200 V -2 w(,)g(335)p 715 3200 +V -2 w(,)f(337)p 897 3200 V -1 w(,)g(338)p 1080 3200 +V -1 w(,)g(339)p 1263 3200 V -1 w(,)g(340)p 1446 3200 +V -2 w(,)h(431)p 1629 3200 V -2 w(,)166 3287 y(432)p +166 3300 V -1 w(,)h(866)p 351 3300 V -2 w(,)h(867)p 536 +3300 V -2 w(,)f(1341)p 720 3300 167 4 v -2 w(,)h(1342)p +947 3300 V -2 w(.)0 3388 y Fi(do)p 89 3388 26 4 v 31 +w(half)24 b Fm(:)83 b(1448)p 375 3401 167 4 v -2 w(,)28 +b(1462)p 592 3401 V -2 w(,)g(1463)p 809 3401 V -2 w(,)f(1475)p +1025 3401 V -2 w(,)h(1476)p 1242 3401 V -2 w(,)g(1489)p +1459 3401 V -2 w(,)g(1490)p 1676 3401 V -2 w(.)0 3490 +y Fi(do)p 89 3490 26 4 v 31 w(help)p 263 3490 V 32 w(lines)12 +b Fm(:)83 b(427,)34 b(654)p 756 3503 125 4 v -2 w(,)i(655)p +939 3503 V -1 w(,)f(794.)0 3591 y Fi(do)p 89 3591 26 +4 v 31 w(inner)14 b Fm(:)83 b(1284)p 427 3604 167 4 v +-2 w(.)0 3692 y Fi(do)p 89 3692 26 4 v 31 w(lab)l(els)12 +b Fm(:)84 b(209,)27 b(216)p 600 3705 125 4 v -2 w(,)i(219,)e(229,)g +(230,)g(249,)g(544,)g(553.)0 3794 y Ff(DO_LABELS)q Fm(:)83 +b(208)p 503 3807 V -2 w(,)32 b(209)p 682 3807 V -2 w(,)g(216,)d(462,)h +(830,)g(1123.)0 3895 y Fi(do)p 89 3895 26 4 v 31 w(midd)t(le)13 +b Fm(:)83 b(1284)p 474 3908 167 4 v -2 w(.)0 3996 y Fi(do)p +89 3996 26 4 v 31 w(output)12 b Fm(:)83 b(264)p 463 4009 125 4 v -2 w(,)30 b(280,)d(283,)h(285,)g(287,)g(289,)g(300,)g(439,)166 -3492 y(441,)c(458,)f(552,)h(654)p 684 3505 V -2 w(,)h(657,)f(661,)g -(664,)f(666,)h(669,)f(671,)166 3591 y(674,)h(676,)h(853,)f(855,)h(857,) -f(1291)p 1033 3604 167 4 v -2 w(,)i(1294,)e(1295,)g(1297,)166 -3691 y(1299,)h(1303,)g(1371,)g(1373,)g(1411,)g(1413,)g(1415,)g(1417,) -166 3791 y(1435,)g(1438,)g(1452,)g(1455,)g(1466,)g(1469,)g(1480,)g -(1483.)0 3892 y Fi(do)p 89 3892 26 4 v 31 w(p)l(ersp)11 -b Fm(:)83 b(200)p 419 3905 125 4 v -2 w(,)32 b(312)p -598 3905 V -2 w(,)g(313)p 777 3905 V -1 w(,)f(314)p 956 -3905 V -1 w(,)g(315)p 1135 3905 V -1 w(,)h(317)p 1315 -3905 V -2 w(,)g(318)p 1494 3905 V -2 w(,)g(319)p 1673 -3905 V -2 w(,)166 3992 y(320)p 166 4005 V -1 w(,)j(322)p -349 4005 V -2 w(,)h(323)p 532 4005 V -2 w(,)g(324)p 715 -4005 V -2 w(,)f(325)p 897 4005 V -1 w(,)g(327)p 1080 -4005 V -1 w(,)g(328)p 1263 4005 V -1 w(,)g(329)p 1446 -4005 V -2 w(,)h(330)p 1629 4005 V -2 w(,)166 4091 y(332)p -166 4104 V -1 w(,)f(333)p 349 4104 V -2 w(,)h(334)p 532 -4104 V -2 w(,)g(335)p 715 4104 V -2 w(,)f(337)p 897 4104 -V -1 w(,)g(338)p 1080 4104 V -1 w(,)g(339)p 1263 4104 -V -1 w(,)g(340)p 1446 4104 V -2 w(,)h(431)p 1629 4104 -V -2 w(,)166 4191 y(432)p 166 4204 V -1 w(,)h(866)p 351 -4204 V -2 w(,)h(867)p 536 4204 V -2 w(,)f(1336)p 720 -4204 167 4 v -2 w(,)h(1337)p 947 4204 V -2 w(.)0 4293 -y Fi(do)p 89 4293 26 4 v 31 w(sort)13 b Fm(:)83 b(547)p -373 4306 125 4 v -2 w(.)0 4394 y Fi(do)p 89 4394 26 4 -v 31 w(tr)l(ansform)11 b Fm(:)83 b(549)p 584 4407 125 -4 v -1 w(,)31 b(1122,)d(1187)p 982 4407 167 4 v -2 w(,)j(1188)p -1202 4407 V -2 w(,)g(1189,)e(1190,)166 4494 y(1191,)i(1192,)g(1198,)g -(1199,)g(1208,)g(1209.)0 4595 y Fi(do)p 89 4595 26 4 -v 31 w(warnings)12 b Fm(:)83 b(253)p 556 4608 125 4 v --1 w(,)31 b(254)p 735 4608 V -2 w(,)h(547,)d(548)p 1092 -4608 V -1 w(,)i(551,)f(554)p 1450 4608 V -1 w(.)0 4697 -y Fk(Do)s(decahedron)5 b Fm(:)83 b(196,)35 b(1307,)g(1424,)g(1448)p -1346 4710 167 4 v -2 w(,)h(1449,)166 4796 y(1451,)i(1452)p -395 4809 V -2 w(,)h(1454,)f(1455)p 852 4809 V -2 w(,)h(1458,)f(1459,)f -(1460,)166 4896 y(1468,)42 b(1472.)0 4998 y Fi(dot)13 -b Fm(:)83 b(208)p 231 5011 125 4 v -2 w(,)32 b(461)p -410 5011 V -1 w(,)g(462)p 590 5011 V -2 w(,)g(463)p 769 -5011 V -1 w(,)g(464)p 949 5011 V -1 w(,)g(471,)e(472,)h(828,)f(829)p -1667 5011 V -1 w(,)166 5097 y(830)p 166 5110 V -1 w(,)k(831)p -348 5110 V -1 w(,)g(832)p 530 5110 V -1 w(,)g(1117)p -712 5110 167 4 v -2 w(,)h(1118)p 936 5110 V -2 w(,)f(1119.)0 -5199 y Fi(dot)p 117 5199 26 4 v 31 w(pr)l(o)l(duct)12 -b Fm(:)83 b(498)p 525 5212 125 4 v -1 w(,)23 b(499)p -696 5212 V -2 w(,)h(504,)d(505,)h(605,)f(624,)h(634,)f(641.)0 -5300 y Fi(dotlab)l(el)14 b Fm(:)83 b(207,)32 b(209,)g(461,)g(465,)f -(466)p 1111 5313 V -1 w(,)i(467)p 1292 5313 V -1 w(,)g(468)p -1473 5313 V -2 w(,)h(469)p 1654 5313 V -2 w(,)166 5400 -y(828,)c(834)p 345 5413 V -2 w(,)h(835)p 523 5413 V -1 -w(,)g(836)p 702 5413 V -1 w(,)g(837)p 881 5413 V -2 w(,)g(946,)f(954,)g -(1119)p 1417 5413 167 4 v -2 w(,)h(1174,)2199 263 y(1177,)25 -b(1179,)g(1214,)g(1263,)g(1279,)g(1282,)g(1285,)g(1415,)2199 -363 y(1446,)j(1456,)h(1460,)f(1469,)g(1471,)h(1473,)f(1483.)2033 -464 y Fi(double)p 2264 464 26 4 v 32 w(r)l(ows)11 b Fm(:)83 -b(1278)p 2570 477 167 4 v -2 w(,)40 b(1279)p 2799 477 -V -2 w(.)2033 565 y Fi(doubles)12 b Fm(:)83 b(12,)42 -b(138.)2033 666 y Fi(dr)l(aw)14 b Fm(:)83 b(418,)37 b(419)p -2509 679 125 4 v -1 w(,)h(420)p 2695 679 V -2 w(,)h(427,)e(775)p -3067 679 V -2 w(,)i(776)p 3253 679 V -2 w(,)g(777)p 3439 -679 V -2 w(,)g(778)p 3625 679 V -2 w(,)2199 766 y(779,)34 -b(780)p 2382 779 V -2 w(,)i(781)p 2565 779 V -2 w(,)g(785,)d(787,)h -(794,)g(805,)g(858,)g(946,)2199 865 y(954,)28 b(1218,)g(1220,)g(1225,)f -(1226,)h(1267,)g(1271,)f(1279,)2199 965 y(1282,)38 b(1285,)f(1378)p -2656 978 167 4 v -2 w(,)j(1379)p 2885 978 V -2 w(,)f(1438,)f(1446,)f -(1456,)2199 1065 y(1460,)g(1473,)f(1501,)h(1517.)2033 -1166 y Ff(DRAW)s Fm(:)83 b(199)p 2318 1179 125 4 v -2 -w(,)37 b(201)p 2502 1179 V -2 w(,)f(776,)f(859,)g(1377.)2033 -1267 y Fi(dr)l(aw)p 2208 1267 26 4 v 31 w(axes)12 b Fm(:)83 -b(921)p 2505 1280 125 4 v -2 w(,)35 b(922)p 2687 1280 -V -2 w(,)g(926)p 2869 1280 V -2 w(,)g(927)p 3051 1280 -V -2 w(,)g(954.)2033 1368 y Fi(dr)l(aw)p 2208 1368 26 -4 v 31 w(c)l(olor)15 b Fm(:)83 b(654)p 2529 1381 125 +4096 y(441,)c(458,)f(552,)h(654)p 684 4109 V -2 w(,)h(657,)f(661,)g +(664,)f(666,)h(669,)f(671,)166 4196 y(674,)h(676,)h(853,)f(855,)h(857,) +f(1296)p 1033 4209 167 4 v -2 w(,)i(1299,)e(1300,)g(1302,)166 +4295 y(1304,)h(1308,)g(1376,)g(1378,)g(1416,)g(1418,)g(1420,)g(1422,) +166 4395 y(1440,)g(1443,)g(1457,)g(1460,)g(1471,)g(1474,)g(1485,)g +(1488.)0 4496 y Fi(do)p 89 4496 26 4 v 31 w(p)l(ersp)11 +b Fm(:)83 b(200)p 419 4509 125 4 v -2 w(,)32 b(312)p +598 4509 V -2 w(,)g(313)p 777 4509 V -1 w(,)f(314)p 956 +4509 V -1 w(,)g(315)p 1135 4509 V -1 w(,)h(317)p 1315 +4509 V -2 w(,)g(318)p 1494 4509 V -2 w(,)g(319)p 1673 +4509 V -2 w(,)166 4596 y(320)p 166 4609 V -1 w(,)j(322)p +349 4609 V -2 w(,)h(323)p 532 4609 V -2 w(,)g(324)p 715 +4609 V -2 w(,)f(325)p 897 4609 V -1 w(,)g(327)p 1080 +4609 V -1 w(,)g(328)p 1263 4609 V -1 w(,)g(329)p 1446 +4609 V -2 w(,)h(330)p 1629 4609 V -2 w(,)166 4696 y(332)p +166 4709 V -1 w(,)f(333)p 349 4709 V -2 w(,)h(334)p 532 +4709 V -2 w(,)g(335)p 715 4709 V -2 w(,)f(337)p 897 4709 +V -1 w(,)g(338)p 1080 4709 V -1 w(,)g(339)p 1263 4709 +V -1 w(,)g(340)p 1446 4709 V -2 w(,)h(431)p 1629 4709 +V -2 w(,)166 4795 y(432)p 166 4808 V -1 w(,)h(866)p 351 +4808 V -2 w(,)h(867)p 536 4808 V -2 w(,)f(1341)p 720 +4808 167 4 v -2 w(,)h(1342)p 947 4808 V -2 w(.)0 4897 +y Fi(do)p 89 4897 26 4 v 31 w(sort)13 b Fm(:)83 b(547)p +373 4910 125 4 v -2 w(.)0 4998 y Fi(do)p 89 4998 26 4 +v 31 w(tr)l(ansform)11 b Fm(:)83 b(549)p 584 5011 125 +4 v -1 w(,)31 b(1127,)d(1192)p 982 5011 167 4 v -2 w(,)j(1193)p +1202 5011 V -2 w(,)g(1194,)e(1195,)166 5098 y(1196,)i(1197,)g(1203,)g +(1204,)g(1213,)g(1214.)0 5199 y Fi(do)p 89 5199 26 4 +v 31 w(warnings)12 b Fm(:)83 b(253)p 556 5212 125 4 v +-1 w(,)31 b(254)p 735 5212 V -2 w(,)h(547,)d(548)p 1092 +5212 V -1 w(,)i(551,)f(554)p 1450 5212 V -1 w(.)0 5300 +y Fk(Do)s(decahedron)5 b Fm(:)83 b(196,)35 b(1312,)g(1429,)g(1453)p +1346 5313 167 4 v -2 w(,)h(1454,)166 5400 y(1456,)i(1457)p +395 5413 V -2 w(,)h(1459,)f(1460)p 852 5413 V -2 w(,)h(1463,)f(1464,)f +(1465,)2199 263 y(1473,)42 b(1477.)2033 364 y Fi(dot)13 +b Fm(:)83 b(208)p 2264 377 125 4 v -2 w(,)32 b(461)p +2443 377 V -1 w(,)g(462)p 2623 377 V -2 w(,)g(463)p 2802 +377 V -1 w(,)g(464)p 2982 377 V -1 w(,)g(471,)e(472,)h(828,)f(829)p +3700 377 V -1 w(,)2199 464 y(830)p 2199 477 V -1 w(,)k(831)p +2381 477 V -1 w(,)g(832)p 2563 477 V -1 w(,)g(1122)p +2745 477 167 4 v -2 w(,)h(1123)p 2969 477 V -2 w(,)f(1124.)2033 +565 y Fi(dot)p 2150 565 26 4 v 31 w(pr)l(o)l(duct)12 +b Fm(:)83 b(498)p 2558 578 125 4 v -1 w(,)23 b(499)p +2729 578 V -2 w(,)h(504,)d(505,)h(605,)f(624,)h(634,)f(641.)2033 +666 y Fi(dotlab)l(el)14 b Fm(:)83 b(207,)32 b(209,)g(461,)g(465,)f(466) +p 3144 679 V -1 w(,)i(467)p 3325 679 V -1 w(,)g(468)p +3506 679 V -2 w(,)h(469)p 3687 679 V -2 w(,)2199 766 +y(828,)c(834)p 2378 779 V -2 w(,)h(835)p 2556 779 V -1 +w(,)g(836)p 2735 779 V -1 w(,)g(837)p 2914 779 V -2 w(,)g(949,)f(957,)g +(1124)p 3450 779 167 4 v -2 w(,)h(1179,)2199 865 y(1182,)25 +b(1184,)g(1219,)g(1268,)g(1284,)g(1287,)g(1290,)g(1420,)2199 +965 y(1451,)j(1461,)h(1465,)f(1474,)g(1476,)h(1478,)f(1488.)2033 +1066 y Fi(double)p 2264 1066 26 4 v 32 w(r)l(ows)11 b +Fm(:)83 b(1283)p 2570 1079 167 4 v -2 w(,)40 b(1284)p +2799 1079 V -2 w(.)2033 1167 y Fi(doubles)12 b Fm(:)83 +b(12,)42 b(138.)2033 1269 y Fi(dp)10 b Fm(:)83 b(16)p +2233 1282 84 4 v -1 w(.)2033 1370 y Fi(dr)l(aw)14 b Fm(:)83 +b(418,)37 b(419)p 2509 1383 125 4 v -1 w(,)h(420)p 2695 +1383 V -2 w(,)h(427,)e(775)p 3067 1383 V -2 w(,)i(776)p +3253 1383 V -2 w(,)g(777)p 3439 1383 V -2 w(,)g(778)p +3625 1383 V -2 w(,)2199 1469 y(779,)34 b(780)p 2382 1482 +V -2 w(,)i(781)p 2565 1482 V -2 w(,)g(785,)d(787,)h(794,)g(805,)g(858,) +g(949,)2199 1569 y(957,)28 b(1223,)g(1225,)g(1230,)f(1231,)h(1272,)g +(1276,)f(1284,)2199 1669 y(1287,)38 b(1290,)f(1383)p +2656 1682 167 4 v -2 w(,)j(1384)p 2885 1682 V -2 w(,)f(1443,)f(1451,)f +(1461,)2199 1768 y(1465,)g(1478,)f(1506,)h(1525.)2033 +1869 y Ff(DRAW)s Fm(:)83 b(199)p 2318 1882 125 4 v -2 +w(,)37 b(201)p 2502 1882 V -2 w(,)f(776,)f(859,)g(1382.)2033 +1971 y Fi(dr)l(aw)p 2208 1971 26 4 v 31 w(axes)12 b Fm(:)83 +b(924)p 2505 1984 125 4 v -2 w(,)35 b(925)p 2687 1984 +V -2 w(,)g(929)p 2869 1984 V -2 w(,)g(930)p 3051 1984 +V -2 w(,)g(957.)2033 2072 y Fi(dr)l(aw)p 2208 2072 26 +4 v 31 w(c)l(olor)15 b Fm(:)83 b(654)p 2529 2085 125 4 v -2 w(,)27 b(657,)f(661,)g(664,)g(666,)g(669,)g(671,)f(674,)2199 -1468 y(676,)34 b(681,)g(685,)g(686,)f(687,)h(696,)g(698,)g(775,)g(776,) -2199 1567 y(802,)g(806,)g(807,)g(813,)f(821,)h(824,)g(859,)g(861,)g -(862,)2199 1667 y(863,)i(864,)g(869,)f(1377,)h(1380.)2033 -1768 y Fi(dr)l(aw)p 2208 1768 26 4 v 31 w(c)l(olor)p -2413 1768 V 32 w(inner)13 b Fm(:)83 b(1278)p 2751 1781 -167 4 v -2 w(,)38 b(1279)p 2978 1781 V -2 w(.)2033 1869 -y Fi(dr)l(aw)p 2208 1869 26 4 v 31 w(c)l(olor)p 2413 -1869 V 32 w(iter)13 b Fm(:)83 b(1383,)37 b(1385.)2033 -1970 y Fi(dr)l(aw)p 2208 1970 V 31 w(c)l(olor)p 2413 -1970 V 32 w(midd)t(le)12 b Fm(:)83 b(1278)p 2798 1983 -167 4 v -2 w(,)37 b(1279)p 3024 1983 V -2 w(.)2033 2071 -y Fi(dr)l(aw)p 2208 2071 26 4 v 31 w(c)l(olor)p 2413 -2071 V 32 w(outer)13 b Fm(:)83 b(1278)p 2747 2084 167 -4 v -2 w(,)37 b(1279)p 2973 2084 V -2 w(.)2033 2173 y -Fi(dr)l(aw)p 2208 2173 26 4 v 31 w(c)l(olor)p 2413 2173 -V 32 w(ptr)13 b Fm(:)83 b(1383,)37 b(1385)p 2892 2186 -167 4 v -2 w(.)2033 2274 y Fi(dr)l(aw)p 2208 2274 26 -4 v 31 w(c)l(olors)12 b Fm(:)83 b(1383,)35 b(1384)p 2786 -2287 167 4 v -2 w(,)i(1385)p 3012 2287 V -2 w(.)2033 -2375 y Fi(dr)l(aw)p 2208 2375 26 4 v 31 w(help)11 b Fm(:)83 -b(427,)38 b(428)p 2681 2388 125 4 v -2 w(,)i(429)p 2868 -2388 V -2 w(,)f(791,)f(793)p 3241 2388 V -1 w(,)h(794)p -3428 2388 V -2 w(,)h(795)p 3615 2388 V -2 w(,)2199 2474 -y(796)p 2199 2487 V -1 w(,)g(798)p 2387 2487 V -2 w(,)g(799)p -2574 2487 V -1 w(,)g(1446.)2033 2576 y Fi(dr)l(aw)p 2208 -2576 26 4 v 31 w(in)p 2311 2576 V 31 w(cir)l(cle)12 b -Fm(:)83 b(1046)p 2646 2589 167 4 v -2 w(,)33 b(1047)p -2868 2589 V -2 w(,)g(1267)p 3090 2589 V -2 w(,)g(1268)p -3312 2589 V -2 w(.)2033 2677 y Fi(dr)l(aw)p 2208 2677 -26 4 v 31 w(in)p 2311 2677 V 31 w(el)t(lipse)12 b Fm(:)84 -b(1093)p 2679 2690 167 4 v -2 w(,)38 b(1226)p 2906 2690 -V -2 w(.)2033 2778 y Fi(dr)l(aw)p 2208 2778 26 4 v 31 -w(in)p 2311 2778 V 31 w(r)l(e)l(ctangle)11 b Fm(:)83 -b(1219)p 2771 2791 167 4 v -2 w(,)37 b(1220)p 2997 2791 -V -2 w(.)2033 2879 y Fi(dr)l(aw)p 2208 2879 26 4 v 31 -w(net)12 b Fm(:)83 b(1445)p 2465 2892 167 4 v -2 w(,)30 -b(1446)p 2684 2892 V -2 w(,)g(1459)p 2903 2892 V -2 w(,)f(1460)p -3121 2892 V -2 w(,)h(1472)p 3340 2892 V -2 w(,)g(1473)p -3559 2892 V -2 w(.)2033 2980 y Fi(dr)l(aw)p 2208 2980 -26 4 v 31 w(out)p 2354 2980 V 30 w(cir)l(cle)12 b Fm(:)83 -b(1050)p 2688 2993 167 4 v -2 w(,)33 b(1051)p 2910 2993 -V -2 w(,)f(1271)p 3131 2993 V -2 w(,)g(1272)p 3352 2993 -V -2 w(.)2033 3081 y Fi(dr)l(aw)p 2208 3081 26 4 v 31 -w(out)p 2354 3081 V 30 w(el)t(lipse)13 b Fm(:)83 b(1092)p -2721 3094 167 4 v -2 w(,)38 b(1225)p 2948 3094 V -2 w(.)2033 -3182 y Fi(dr)l(aw)p 2208 3182 26 4 v 31 w(out)p 2354 -3182 V 30 w(r)l(e)l(ctangle)11 b Fm(:)83 b(1217)p 2813 -3195 167 4 v -2 w(,)37 b(1218)p 3039 3195 V -2 w(.)2033 -3284 y Fi(dr)l(awarr)l(ow)15 b Fm(:)83 b(422)p 2529 3297 -125 4 v -2 w(,)38 b(423)p 2714 3297 V -2 w(,)g(654,)d(784)p -3083 3297 V -1 w(,)i(785)p 3268 3297 V -1 w(,)g(786)p -3453 3297 V -1 w(,)g(787)p 3638 3297 V -2 w(,)2199 3383 -y(789)p 2199 3396 V -1 w(,)j(790)p 2387 3396 V -1 w(,)g(856,)g(925.) -2033 3484 y Ff(DRAWDOT)q Fm(:)84 b(199)p 2449 3497 V --2 w(,)38 b(201)p 2634 3497 V -2 w(,)g(411,)e(458.)2033 -3586 y Fi(dr)l(awdot)13 b Fm(:)83 b(409,)29 b(410)p 2612 -3599 V -1 w(,)h(411)p 2790 3599 V -1 w(,)g(412)p 2968 -3599 V -1 w(,)g(413)p 3146 3599 V -1 w(,)g(465,)f(1446.)2033 -3687 y Fi(dr)l(awdot)p 2320 3687 26 4 v 32 w(c)l(olor)14 -b Fm(:)83 b(264)p 2641 3700 125 4 v -1 w(,)28 b(300,)f(302,)g(409,)g -(411,)g(415,)g(458.)2033 3788 y Fi(dr)l(awdot)p 2320 -3788 26 4 v 32 w(value)11 b Fm(:)83 b(264)p 2648 3801 +2171 y(676,)34 b(681,)g(685,)g(686,)f(687,)h(696,)g(698,)g(775,)g(776,) +2199 2271 y(802,)g(806,)g(807,)g(813,)f(821,)h(824,)g(859,)g(861,)g +(862,)2199 2371 y(863,)i(864,)g(869,)f(1382,)h(1385.)2033 +2472 y Fi(dr)l(aw)p 2208 2472 26 4 v 31 w(c)l(olor)p +2413 2472 V 32 w(inner)13 b Fm(:)83 b(1283)p 2751 2485 +167 4 v -2 w(,)38 b(1284)p 2978 2485 V -2 w(.)2033 2573 +y Fi(dr)l(aw)p 2208 2573 26 4 v 31 w(c)l(olor)p 2413 +2573 V 32 w(iter)13 b Fm(:)83 b(1388,)37 b(1390.)2033 +2674 y Fi(dr)l(aw)p 2208 2674 V 31 w(c)l(olor)p 2413 +2674 V 32 w(midd)t(le)12 b Fm(:)83 b(1283)p 2798 2687 +167 4 v -2 w(,)37 b(1284)p 3024 2687 V -2 w(.)2033 2775 +y Fi(dr)l(aw)p 2208 2775 26 4 v 31 w(c)l(olor)p 2413 +2775 V 32 w(outer)13 b Fm(:)83 b(1283)p 2747 2788 167 +4 v -2 w(,)37 b(1284)p 2973 2788 V -2 w(.)2033 2877 y +Fi(dr)l(aw)p 2208 2877 26 4 v 31 w(c)l(olor)p 2413 2877 +V 32 w(ptr)13 b Fm(:)83 b(1388,)37 b(1390)p 2892 2890 +167 4 v -2 w(.)2033 2978 y Fi(dr)l(aw)p 2208 2978 26 +4 v 31 w(c)l(olors)12 b Fm(:)83 b(1388,)35 b(1389)p 2786 +2991 167 4 v -2 w(,)i(1390)p 3012 2991 V -2 w(.)2033 +3079 y Fi(dr)l(aw)p 2208 3079 26 4 v 31 w(help)11 b Fm(:)83 +b(427,)38 b(428)p 2681 3092 125 4 v -2 w(,)i(429)p 2868 +3092 V -2 w(,)f(791,)f(793)p 3241 3092 V -1 w(,)h(794)p +3428 3092 V -2 w(,)h(795)p 3615 3092 V -2 w(,)2199 3179 +y(796)p 2199 3192 V -1 w(,)g(798)p 2387 3192 V -2 w(,)g(799)p +2574 3192 V -1 w(,)g(1451.)2033 3280 y Fi(dr)l(aw)p 2208 +3280 26 4 v 31 w(in)p 2311 3280 V 31 w(cir)l(cle)12 b +Fm(:)83 b(1049)p 2646 3293 167 4 v -2 w(,)33 b(1050)p +2868 3293 V -2 w(,)g(1272)p 3090 3293 V -2 w(,)g(1273)p +3312 3293 V -2 w(.)2033 3381 y Fi(dr)l(aw)p 2208 3381 +26 4 v 31 w(in)p 2311 3381 V 31 w(el)t(lipse)12 b Fm(:)84 +b(1098)p 2679 3394 167 4 v -2 w(,)38 b(1231)p 2906 3394 +V -2 w(.)2033 3482 y Fi(dr)l(aw)p 2208 3482 26 4 v 31 +w(in)p 2311 3482 V 31 w(r)l(e)l(ctangle)11 b Fm(:)83 +b(1224)p 2771 3495 167 4 v -2 w(,)37 b(1225)p 2997 3495 +V -2 w(.)2033 3583 y Fi(dr)l(aw)p 2208 3583 26 4 v 31 +w(net)12 b Fm(:)83 b(1450)p 2465 3596 167 4 v -2 w(,)30 +b(1451)p 2684 3596 V -2 w(,)g(1464)p 2903 3596 V -2 w(,)f(1465)p +3121 3596 V -2 w(,)h(1477)p 3340 3596 V -2 w(,)g(1478)p +3559 3596 V -2 w(.)2033 3685 y Fi(dr)l(aw)p 2208 3685 +26 4 v 31 w(out)p 2354 3685 V 30 w(cir)l(cle)12 b Fm(:)83 +b(1053)p 2688 3698 167 4 v -2 w(,)33 b(1054)p 2910 3698 +V -2 w(,)f(1276)p 3131 3698 V -2 w(,)g(1277)p 3352 3698 +V -2 w(.)2033 3786 y Fi(dr)l(aw)p 2208 3786 26 4 v 31 +w(out)p 2354 3786 V 30 w(el)t(lipse)13 b Fm(:)83 b(1097)p +2721 3799 167 4 v -2 w(,)38 b(1230)p 2948 3799 V -2 w(.)2033 +3887 y Fi(dr)l(aw)p 2208 3887 26 4 v 31 w(out)p 2354 +3887 V 30 w(r)l(e)l(ctangle)11 b Fm(:)83 b(1222)p 2813 +3900 167 4 v -2 w(,)37 b(1223)p 3039 3900 V -2 w(.)2033 +3988 y Fi(dr)l(awarr)l(ow)15 b Fm(:)83 b(422)p 2529 4001 +125 4 v -2 w(,)38 b(423)p 2714 4001 V -2 w(,)g(654,)d(784)p +3083 4001 V -1 w(,)i(785)p 3268 4001 V -1 w(,)g(786)p +3453 4001 V -1 w(,)g(787)p 3638 4001 V -2 w(,)2199 4088 +y(789)p 2199 4101 V -1 w(,)j(790)p 2387 4101 V -1 w(,)g(856,)g(928.) +2033 4189 y Ff(DRAWDOT)q Fm(:)84 b(199)p 2449 4202 V +-2 w(,)38 b(201)p 2634 4202 V -2 w(,)g(411,)e(458.)2033 +4290 y Fi(dr)l(awdot)13 b Fm(:)83 b(409,)29 b(410)p 2612 +4303 V -1 w(,)h(411)p 2790 4303 V -1 w(,)g(412)p 2968 +4303 V -1 w(,)g(413)p 3146 4303 V -1 w(,)g(465,)f(1451.)2033 +4391 y Fi(dr)l(awdot)p 2320 4391 26 4 v 32 w(c)l(olor)14 +b Fm(:)83 b(264)p 2641 4404 125 4 v -1 w(,)28 b(300,)f(302,)g(409,)g +(411,)g(415,)g(458.)2033 4492 y Fi(dr)l(awdot)p 2320 +4492 26 4 v 32 w(value)11 b Fm(:)83 b(264)p 2648 4505 125 4 v -2 w(,)29 b(300,)e(302,)g(409,)g(411,)g(415,)f(458.)2033 -3889 y Fe(e)p Fm(:)83 b(644)p 2178 3902 V -2 w(,)33 b(901)p -2358 3902 V -1 w(,)g(1107)p 2539 3902 167 4 v -2 w(,)g(1109)p -2761 3902 V -2 w(,)g(1110)p 2983 3902 V -2 w(,)g(1111)p -3205 3902 V -2 w(,)g(1112)p 3427 3902 V -2 w(,)g(1114)p -3649 3902 V -2 w(,)2199 3989 y(1115)p 2199 4002 V -2 -w(,)27 b(1122)p 2415 4002 V -2 w(,)g(1160)p 2631 4002 -V -2 w(,)g(1161)p 2847 4002 V -2 w(,)g(1170)p 3063 4002 -V -2 w(,)g(1171)p 3279 4002 V -2 w(,)g(1184)p 3495 4002 -V -2 w(,)g(1223)p 3711 4002 V -2 w(,)2199 4088 y(1224)p -2199 4101 V -2 w(,)33 b(1225)p 2421 4101 V -2 w(,)g(1226)p -2643 4101 V -2 w(,)g(1238)p 2865 4101 V -2 w(,)g(1250)p -3087 4101 V -2 w(,)g(1251)p 3309 4101 V -2 w(.)2033 4189 -y Fi(e)p 2076 4189 26 4 v 31 w(axis)p 2247 4189 V 31 -w(h)11 b Fm(:)83 b(1251)p 2432 4202 167 4 v -2 w(.)2033 -4290 y Fi(e)p 2076 4290 26 4 v 31 w(axis)p 2247 4290 -V 31 w(orientation)11 b Fm(:)83 b(1173)p 2789 4303 167 -4 v -2 w(,)34 b(1174,)e(1178.)2033 4392 y Fi(e)p 2076 -4392 26 4 v 31 w(axis)p 2247 4392 V 31 w(orientation)p -2677 4392 V 31 w(r)l(otate)l(d)13 b Fm(:)83 b(1173)p -3069 4405 167 4 v -2 w(,)31 b(1174,)d(1178.)2033 4493 -y Fi(e)p 2076 4493 26 4 v 31 w(axis)p 2247 4493 V 31 -w(v)13 b Fm(:)83 b(1251)p 2430 4506 167 4 v -2 w(.)2033 -4594 y Fi(e)p 2076 4594 26 4 v 31 w(c)l(enter)13 b Fm(:)83 -b(1177)p 2441 4607 167 4 v -2 w(,)41 b(1178.)2033 4695 -y Fi(e)p 2076 4695 26 4 v 31 w(plane)11 b Fm(:)83 b(1171)p -2409 4708 167 4 v -2 w(,)39 b(1172,)e(1183.)2033 4796 -y Fi(e)p 2076 4796 26 4 v 31 w(x)14 b Fm(:)83 b(901)p -2261 4809 125 4 v -2 w(,)45 b(903.)2033 4897 y Fi(e)p -2076 4897 26 4 v 31 w(y)12 b Fm(:)83 b(901)p 2260 4910 -125 4 v -2 w(,)43 b(902,)d(903.)2033 4998 y Fi(e)p 2076 -4998 26 4 v 31 w(z)14 b Fm(:)83 b(901)p 2256 5011 125 -4 v -1 w(,)42 b(902,)f(903.)2033 5100 y Fi(e)l(dge)p -2190 5100 26 4 v 31 w(r)l(adius)12 b Fm(:)83 b(1426)p -2553 5113 167 4 v -2 w(,)32 b(1435,)e(1438,)g(1452,)h(1455,)f(1466,) -2199 5199 y(1469,)40 b(1480,)f(1483.)2033 5300 y Fi(e)l(dges)12 -b Fm(:)83 b(1400)p 2337 5313 V -2 w(,)32 b(1411,)e(1413,)f(1415,)h -(1435,)g(1438,)g(1452,)2199 5400 y(1455,)k(1466,)g(1469,)f(1480,)h -(1483.)p eop end -%%Page: 489 489 -TeXDict begin 489 488 bop 0 83 a Fn(x)p Fm(1517)139 b -Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(489)0 263 y Fi(elements)11 -b Fm(:)83 b(438,)30 b(440,)f(442,)h(453)p 965 276 125 -4 v -2 w(,)h(549)p 1143 276 V -1 w(,)g(550,)f(551,)f(552,)166 -363 y(839,)39 b(852,)g(854,)g(856)p 730 376 V -1 w(.)0 -466 y Ff(ELLIPSE)q Fm(:)84 b(1291)p 416 479 167 4 v -2 -w(,)21 b(1292)p 626 479 V -2 w(,)g(1311,)f(1312,)f(1324,)g(1325,)h -(1329.)0 570 y Fk(Ellipse)s Fm(:)83 b(33)p 388 583 84 -4 v -1 w(,)36 b(290,)f(644,)g(1089,)f(1090,)h(1091,)f(1092,)166 -670 y(1093,)25 b(1098)p 382 683 167 4 v -2 w(,)i(1099,)e(1101,)g(1102)p -1030 683 V -2 w(,)i(1104,)e(1105)p 1462 683 V -2 w(,)i(1107,)166 -769 y(1109,)e(1110,)g(1111,)g(1112,)g(1113,)g(1114,)g(1115,)g(1118,)166 -869 y(1119,)g(1122,)g(1125,)g(1127,)g(1128,)g(1129,)g(1132,)g(1135,)166 -968 y(1137,)g(1140,)g(1142,)g(1144,)g(1146,)g(1147,)g(1150,)g(1152,)166 -1068 y(1155,)g(1157,)g(1159,)g(1160,)g(1161,)g(1162,)g(1163,)g(1166,) -166 1168 y(1168,)g(1169,)g(1170,)g(1171,)g(1173,)g(1174,)g(1177,)g -(1184,)166 1267 y(1187,)g(1188,)g(1190,)g(1191,)g(1192,)g(1194,)g -(1196,)g(1198,)166 1367 y(1199,)g(1201,)g(1204,)g(1206,)g(1208,)g -(1209,)g(1211,)g(1214,)166 1467 y(1216,)g(1218,)g(1220,)g(1221,)g -(1223,)g(1224,)g(1225,)g(1226,)166 1566 y(1232,)g(1238,)g(1246,)g -(1248,)g(1249,)g(1250,)g(1251,)g(1257,)166 1666 y(1259,)g(1261,)g -(1263,)g(1291,)g(1297,)g(1303,)g(1307,)g(1315,)166 1765 -y(1316,)g(1324,)g(1337,)g(1339,)g(1342,)g(1344,)g(1360,)g(1362,)166 -1865 y(1374,)g(1375,)g(1379,)g(1382,)g(1385,)g(1388,)g(1391,)g(1394.)0 -1969 y Fi(el)t(lipse)p 228 1969 26 4 v 32 w(pt0)16 b -Fm(:)83 b(1177)p 489 1982 167 4 v -1 w(.)0 2072 y Fi(el)t(lipse)p -228 2072 26 4 v 32 w(pt4)16 b Fm(:)83 b(1177)p 489 2085 -167 4 v -1 w(.)0 2176 y Fk(Ellipses)r Fm(:)g(1115,)34 -b(1170,)f(1173,)g(1174.)0 2280 y Fi(el)t(lipses)13 b -Fm(:)83 b(1291)p 376 2293 V -2 w(,)28 b(1297,)e(1303,)g(1311,)f(1312,)h -(1316,)g(1324,)166 2379 y(1325,)f(1337,)g(1339,)g(1342,)g(1344,)g -(1360,)g(1362,)g(1374,)166 2479 y(1375,)g(1377,)g(1379,)g(1380,)g -(1382,)g(1383,)g(1385,)g(1386,)166 2578 y(1388,)34 b(1389,)g(1391,)f -(1392,)h(1394.)0 2682 y Fi(El)t(lipsoid)16 b Fm(:)83 -b(1291.)0 2786 y Fi(end)13 b Fm(:)83 b(249,)30 b(543,)g(545,)g(546,)f -(549,)h(550,)g(552,)g(553,)g(657,)166 2885 y(659,)24 +4594 y Fe(e)p Fm(:)83 b(644)p 2178 4607 V -2 w(,)33 b(904)p +2358 4607 V -1 w(,)g(1112)p 2539 4607 167 4 v -2 w(,)g(1114)p +2761 4607 V -2 w(,)g(1115)p 2983 4607 V -2 w(,)g(1116)p +3205 4607 V -2 w(,)g(1117)p 3427 4607 V -2 w(,)g(1119)p +3649 4607 V -2 w(,)2199 4693 y(1120)p 2199 4706 V -2 +w(,)27 b(1127)p 2415 4706 V -2 w(,)g(1165)p 2631 4706 +V -2 w(,)g(1166)p 2847 4706 V -2 w(,)g(1175)p 3063 4706 +V -2 w(,)g(1176)p 3279 4706 V -2 w(,)g(1189)p 3495 4706 +V -2 w(,)g(1228)p 3711 4706 V -2 w(,)2199 4793 y(1229)p +2199 4806 V -2 w(,)33 b(1230)p 2421 4806 V -2 w(,)g(1231)p +2643 4806 V -2 w(,)g(1243)p 2865 4806 V -2 w(,)g(1255)p +3087 4806 V -2 w(,)g(1256)p 3309 4806 V -2 w(.)2033 4894 +y Fi(e)p 2076 4894 26 4 v 31 w(axis)p 2247 4894 V 31 +w(h)11 b Fm(:)83 b(1256)p 2432 4907 167 4 v -2 w(.)2033 +4995 y Fi(e)p 2076 4995 26 4 v 31 w(axis)p 2247 4995 +V 31 w(orientation)11 b Fm(:)83 b(1178)p 2789 5008 167 +4 v -2 w(,)34 b(1179,)e(1183.)2033 5096 y Fi(e)p 2076 +5096 26 4 v 31 w(axis)p 2247 5096 V 31 w(orientation)p +2677 5096 V 31 w(r)l(otate)l(d)13 b Fm(:)83 b(1178)p +3069 5109 167 4 v -2 w(,)31 b(1179,)d(1183.)2033 5198 +y Fi(e)p 2076 5198 26 4 v 31 w(axis)p 2247 5198 V 31 +w(v)13 b Fm(:)83 b(1256)p 2430 5211 167 4 v -2 w(.)2033 +5299 y Fi(e)p 2076 5299 26 4 v 31 w(c)l(enter)13 b Fm(:)83 +b(1182)p 2441 5312 167 4 v -2 w(,)41 b(1183.)2033 5400 +y Fi(e)p 2076 5400 26 4 v 31 w(plane)11 b Fm(:)83 b(1176)p +2409 5413 167 4 v -2 w(,)39 b(1177,)e(1188.)p eop end +%%Page: 494 494 +TeXDict begin 494 493 bop 0 83 a Fm(494)140 b Fl(INDEX)2670 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1525)0 263 y Fi(e)p 43 +263 26 4 v 31 w(x)13 b Fm(:)84 b(904)p 228 276 125 4 +v -2 w(,)45 b(906.)0 366 y Fi(e)p 43 366 26 4 v 31 w(y)12 +b Fm(:)83 b(904)p 227 379 125 4 v -2 w(,)42 b(905,)f(906.)0 +470 y Fi(e)p 43 470 26 4 v 31 w(z)14 b Fm(:)83 b(904)p +223 483 125 4 v -1 w(,)42 b(905,)f(906.)0 573 y Fi(e)l(dge)p +157 573 26 4 v 31 w(r)l(adius)12 b Fm(:)83 b(1431)p 520 +586 167 4 v -2 w(,)32 b(1440,)e(1443,)g(1457,)h(1460,)f(1471,)166 +673 y(1474,)40 b(1485,)f(1488.)0 776 y Fi(e)l(dges)12 +b Fm(:)83 b(1405)p 304 789 V -2 w(,)32 b(1416,)e(1418,)f(1420,)h(1440,) +g(1443,)g(1457,)166 876 y(1460,)k(1471,)g(1474,)f(1485,)h(1488.)0 +979 y Fi(elements)11 b Fm(:)83 b(438,)30 b(440,)f(442,)h(453)p +965 992 125 4 v -2 w(,)h(549)p 1143 992 V -1 w(,)g(550,)f(551,)f(552,) +166 1079 y(839,)39 b(852,)g(854,)g(856)p 730 1092 V -1 +w(.)0 1182 y Ff(ELLIPSE)q Fm(:)84 b(1296)p 416 1195 167 +4 v -2 w(,)21 b(1297)p 626 1195 V -2 w(,)g(1316,)f(1317,)f(1329,)g +(1330,)h(1334.)0 1285 y Fk(Ellipse)s Fm(:)83 b(33)p 388 +1298 84 4 v -1 w(,)36 b(290,)f(644,)g(1094,)f(1095,)h(1096,)f(1097,)166 +1385 y(1098,)25 b(1103)p 382 1398 167 4 v -2 w(,)i(1104,)e(1106,)g +(1107)p 1030 1398 V -2 w(,)i(1109,)e(1110)p 1462 1398 +V -2 w(,)i(1112,)166 1485 y(1114,)e(1115,)g(1116,)g(1117,)g(1118,)g +(1119,)g(1120,)g(1123,)166 1584 y(1124,)g(1127,)g(1130,)g(1132,)g +(1133,)g(1134,)g(1137,)g(1140,)166 1684 y(1142,)g(1145,)g(1147,)g +(1149,)g(1151,)g(1152,)g(1155,)g(1157,)166 1784 y(1160,)g(1162,)g +(1164,)g(1165,)g(1166,)g(1167,)g(1168,)g(1171,)166 1883 +y(1173,)g(1174,)g(1175,)g(1176,)g(1178,)g(1179,)g(1182,)g(1189,)166 +1983 y(1192,)g(1193,)g(1195,)g(1196,)g(1197,)g(1199,)g(1201,)g(1203,) +166 2082 y(1204,)g(1206,)g(1209,)g(1211,)g(1213,)g(1214,)g(1216,)g +(1219,)166 2182 y(1221,)g(1223,)g(1225,)g(1226,)g(1228,)g(1229,)g +(1230,)g(1231,)166 2282 y(1237,)g(1243,)g(1251,)g(1253,)g(1254,)g +(1255,)g(1256,)g(1262,)166 2381 y(1264,)g(1266,)g(1268,)g(1296,)g +(1302,)g(1308,)g(1312,)g(1320,)166 2481 y(1321,)g(1329,)g(1342,)g +(1344,)g(1347,)g(1349,)g(1365,)g(1367,)166 2581 y(1379,)g(1380,)g +(1384,)g(1387,)g(1390,)g(1393,)g(1396,)g(1399.)0 2684 +y Fi(el)t(lipse)p 228 2684 26 4 v 32 w(pt0)16 b Fm(:)83 +b(1182)p 489 2697 167 4 v -1 w(.)0 2787 y Fi(el)t(lipse)p +228 2787 26 4 v 32 w(pt4)16 b Fm(:)83 b(1182)p 489 2800 +167 4 v -1 w(.)0 2891 y Fk(Ellipses)r Fm(:)g(1120,)34 +b(1175,)f(1178,)g(1179.)0 2994 y Fi(el)t(lipses)13 b +Fm(:)83 b(1296)p 376 3007 V -2 w(,)28 b(1302,)e(1308,)g(1316,)f(1317,)h +(1321,)g(1329,)166 3094 y(1330,)f(1342,)g(1344,)g(1347,)g(1349,)g +(1365,)g(1367,)g(1379,)166 3193 y(1380,)g(1382,)g(1384,)g(1385,)g +(1387,)g(1388,)g(1390,)g(1391,)166 3293 y(1393,)34 b(1394,)g(1396,)f +(1397,)h(1399.)0 3396 y Fi(El)t(lipsoid)16 b Fm(:)83 +b(1296.)0 3500 y Fi(end)13 b Fm(:)83 b(249,)30 b(543,)g(545,)g(546,)f +(549,)h(550,)g(552,)g(553,)g(657,)166 3599 y(659,)24 b(685,)f(734,)h(739,)f(741,)h(743,)g(765,)f(766,)h(770,)f(771,)166 -2985 y(830,)34 b(840,)g(843,)g(864,)f(867,)h(881)p 1080 -2998 125 4 v -1 w(,)h(882)p 1263 2998 V -1 w(,)g(883,)f(884,)166 -3085 y(885,)e(886,)g(895,)f(897,)h(911,)g(985,)g(987,)f(994,)h(1118,) -166 3184 y(1122,)25 b(1254,)g(1282,)g(1285,)g(1297,)g(1303,)g(1337,)g -(1339,)166 3284 y(1342,)g(1344,)g(1360,)g(1362,)g(1375,)g(1377,)g -(1379,)g(1380,)166 3383 y(1382,)g(1383,)g(1385,)g(1388,)g(1391,)g -(1394,)g(1413,)g(1419,)166 3483 y(1428,)31 b(1456,)g(1460,)g(1469,)g -(1473,)g(1483.)0 3587 y Fi(end\014g)12 b Fm(:)83 b(49)p -330 3600 84 4 v -1 w(,)41 b(50)p 477 3600 V -1 w(,)h(1501.)0 -3690 y Fi(end)t(l)14 b Fm(:)83 b(44,)30 b(46,)f(48,)h(50,)g(85,)g(87,)g -(89,)g(91,)g(93,)g(148,)f(151,)166 3790 y(153,)24 b(182,)f(183,)h(185,) -f(186,)h(249,)g(318,)f(346,)h(380,)f(382,)166 3890 y(383,)h(385,)f +3699 y(830,)34 b(840,)g(843,)g(864,)f(867,)h(881)p 1080 +3712 125 4 v -1 w(,)h(882)p 1263 3712 V -1 w(,)g(883,)f(884,)166 +3799 y(885,)e(886,)g(898,)f(900,)h(914,)g(988,)g(990,)f(997,)h(1123,) +166 3898 y(1127,)25 b(1259,)g(1287,)g(1290,)g(1302,)g(1308,)g(1342,)g +(1344,)166 3998 y(1347,)g(1349,)g(1365,)g(1367,)g(1380,)g(1382,)g +(1384,)g(1385,)166 4097 y(1387,)g(1388,)g(1390,)g(1393,)g(1396,)g +(1399,)g(1418,)g(1424,)166 4197 y(1433,)31 b(1461,)g(1465,)g(1474,)g +(1478,)g(1488.)0 4300 y Fi(end\014g)12 b Fm(:)83 b(49)p +330 4313 84 4 v -1 w(,)41 b(50)p 477 4313 V -1 w(,)h(1506.)0 +4404 y Fi(end)t(l)14 b Fm(:)83 b(44,)30 b(46,)f(48,)h(50,)g(85,)g(87,)g +(89,)g(91,)g(93,)g(148,)f(151,)166 4503 y(153,)24 b(182,)f(183,)h(185,) +f(186,)h(249,)g(318,)f(346,)h(380,)f(382,)166 4603 y(383,)h(385,)f (387,)h(388,)f(400,)h(401,)g(405,)f(434,)h(446,)f(448,)166 -3989 y(452,)h(464,)f(519,)h(521,)f(522,)h(536,)g(537,)f(538,)h(541,)f -(548,)166 4089 y(551,)34 b(552,)g(561,)g(572,)f(574,)h(603,)g(605,)g -(606,)g(609,)166 4188 y(641,)g(646,)g(776,)g(802,)f(807,)h(824,)g(840,) -g(842,)g(843,)166 4288 y(844,)g(847,)g(849,)g(867,)f(886,)h(895,)g -(903,)g(911,)g(919,)166 4388 y(924,)g(946,)g(954,)g(955,)f(957,)h(958,) -g(959,)g(960,)g(965,)166 4487 y(986,)f(987,)f(993,)h(1105,)f(1122,)g -(1140,)g(1142,)g(1168,)166 4587 y(1171,)25 b(1174,)g(1178,)g(1179,)g -(1180,)g(1181,)g(1183,)g(1188,)166 4687 y(1223,)g(1224,)g(1254,)g -(1263,)g(1279,)g(1282,)g(1285,)g(1303,)166 4786 y(1312,)g(1325,)g -(1337,)g(1365,)g(1367,)g(1377,)g(1380,)g(1383,)166 4886 -y(1428,)31 b(1439,)g(1483,)g(1503,)g(1507,)g(1508.)0 -4989 y Fi(epicycloid)p 356 4989 26 4 v 34 w(p)l(attern)p -646 4989 V 30 w(1)16 b Fm(:)83 b(1281)p 835 5002 167 -4 v -2 w(,)33 b(1282)p 1057 5002 V -2 w(,)g(1283.)0 5093 -y Fi(epicycloid)p 356 5093 26 4 v 34 w(p)l(attern)p 646 -5093 V 30 w(3)16 b Fm(:)83 b(1281,)31 b(1284)p 1057 5106 -167 4 v -2 w(,)i(1285)p 1279 5106 V -2 w(.)0 5197 y Fi(eps)12 -b Fm(:)83 b(137)p 232 5210 125 4 v -2 w(,)32 b(151)p -411 5210 V -1 w(,)g(153)p 591 5210 V -2 w(,)g(156)p 770 -5210 V -1 w(,)g(161)p 950 5210 V -2 w(,)g(162,)f(163,)g(164,)f(305)p -1668 5210 V -1 w(,)166 5296 y(401)p 166 5309 V -1 w(,)j(405)p -347 5309 V -1 w(,)h(515,)e(516,)g(517)p 891 5309 V -1 -w(,)i(521,)e(522.)0 5400 y Fi(epsilon)12 b Fm(:)83 b(15,)28 -b(24,)h(135,)f(136,)g(137,)g(138)p 1169 5413 V -2 w(,)i(139,)e(150,)f -(151,)2199 263 y(153,)d(156,)f(161,)h(305,)f(308)p 2889 -276 V -1 w(,)i(401,)f(405,)f(498,)h(499,)f(515,)2199 -363 y(517,)32 b(606,)g(624,)f(633,)h(634,)g(945,)g(946,)f(993,)h(1121,) -2199 462 y(1122,)25 b(1162,)g(1163,)g(1172,)g(1188,)g(1251,)g(1253,)g -(1254.)2033 567 y Fi(er)l(ase)11 b Fm(:)83 b(43.)2033 -671 y Fi(exchange)p 2360 671 26 4 v 31 w(x)p 2430 671 -V 30 w(z)15 b Fm(:)83 b(901)p 2610 684 125 4 v -2 w(,)41 -b(903.)2033 775 y Fi(exchange)p 2360 775 26 4 v 31 w(y)p -2431 775 V 31 w(z)15 b Fm(:)83 b(901)p 2612 788 125 4 -v -2 w(.)2033 879 y Fi(exit)12 b Fm(:)83 b(1503,)41 b(1509.)2033 -984 y Fi(extr)l(act)11 b Fm(:)83 b(200)p 2394 997 V -1 -w(,)35 b(442)p 2577 997 V -2 w(,)g(443)p 2759 997 V -2 -w(,)g(457,)e(549,)g(839)p 3305 997 V -1 w(,)h(840)p 3487 -997 V -1 w(,)h(841,)2199 1083 y(856,)j(1359)p 2386 1096 -167 4 v -2 w(,)h(1360)p 2614 1096 V -2 w(,)g(1374.)2033 -1188 y Fi(extr)l(emes)10 b Fm(:)83 b(549,)39 b(550)p -2651 1201 125 4 v -2 w(,)h(551.)2033 1292 y Fe(f)9 b -Fm(:)83 b(200)p 2189 1305 V -2 w(,)26 b(210)p 2362 1305 -V -1 w(,)g(253)p 2536 1305 V -1 w(,)g(312)p 2710 1305 -V -2 w(,)h(313)p 2884 1305 V -2 w(,)f(314)p 3057 1305 -V -1 w(,)g(315)p 3231 1305 V -1 w(,)g(317)p 3405 1305 -V -2 w(,)h(318)p 3579 1305 V -2 w(,)f(319)p 3752 1305 -V -1 w(,)2199 1392 y(320)p 2199 1405 V -1 w(,)35 b(322)p -2382 1405 V -2 w(,)h(323)p 2565 1405 V -2 w(,)g(324)p -2748 1405 V -2 w(,)f(325)p 2930 1405 V -1 w(,)g(327)p -3113 1405 V -1 w(,)g(328)p 3296 1405 V -1 w(,)g(329)p -3479 1405 V -2 w(,)h(330)p 3662 1405 V -2 w(,)2199 1491 -y(332)p 2199 1504 V -1 w(,)f(333)p 2382 1504 V -2 w(,)h(334)p -2565 1504 V -2 w(,)g(335)p 2748 1504 V -2 w(,)f(337)p -2930 1504 V -1 w(,)g(338)p 3113 1504 V -1 w(,)g(339)p -3296 1504 V -1 w(,)g(340)p 3479 1504 V -2 w(,)h(398)p -3662 1504 V -2 w(,)2199 1591 y(399)p 2199 1604 V -1 w(,)f(402)p -2382 1604 V -2 w(,)h(431)p 2565 1604 V -2 w(,)g(432)p -2748 1604 V -2 w(,)f(442)p 2930 1604 V -1 w(,)g(443)p -3113 1604 V -1 w(,)g(472)p 3296 1604 V -1 w(,)g(548)p -3479 1604 V -2 w(,)h(563)p 3662 1604 V -2 w(,)2199 1690 -y(566)p 2199 1703 V -1 w(,)f(568)p 2382 1703 V -2 w(,)h(570)p -2565 1703 V -2 w(,)g(636)p 2748 1703 V -2 w(,)f(742)p -2930 1703 V -1 w(,)g(743)p 3113 1703 V -1 w(,)g(839)p -3296 1703 V -1 w(,)g(840)p 3479 1703 V -2 w(,)h(866)p -3662 1703 V -2 w(,)2199 1790 y(867)p 2199 1803 V -1 w(,)g(1336)p -2383 1803 167 4 v -2 w(,)g(1337)p 2608 1803 V -2 w(,)g(1359)p -2833 1803 V -2 w(,)h(1360)p 3059 1803 V -2 w(.)2033 1894 -y Fi(fabs)12 b Fm(:)83 b(135,)29 b(137,)h(151,)f(153,)g(156,)h(162,)f -(163,)g(164,)g(183,)2199 1994 y(305,)34 b(401,)g(405,)g(499,)f(516,)h -(521,)g(522,)g(605,)g(624,)2199 2094 y(634,)24 b(636,)h(946,)f(965,)h -(993,)f(1122,)g(1129,)g(1163,)g(1172,)2199 2193 y(1178,)34 -b(1188,)g(1251,)f(1253,)h(1254.)2033 2298 y Fi(fac)l(e)p -2177 2298 26 4 v 32 w(r)l(adius)11 b Fm(:)83 b(1426)p -2540 2311 167 4 v -2 w(,)33 b(1435,)e(1438,)g(1452,)g(1455,)g(1466,) -2199 2397 y(1469,)40 b(1480,)f(1483.)2033 2501 y Fi(fac)l(es)12 -b Fm(:)83 b(1400)p 2324 2514 V -2 w(,)33 b(1411,)d(1413,)h(1415,)f -(1435,)h(1438,)g(1452,)2199 2601 y(1455,)j(1466,)g(1469,)f(1480,)h -(1483.)2033 2705 y Fi(factor)14 b Fm(:)83 b(200)p 2363 -2718 125 4 v -1 w(,)26 b(210)p 2537 2718 V -1 w(,)g(253)p -2711 2718 V -2 w(,)g(254)p 2884 2718 V -1 w(,)g(304)p -3058 2718 V -2 w(,)h(305)p 3232 2718 V -2 w(,)f(312)p -3405 2718 V -1 w(,)g(313)p 3579 2718 V -2 w(,)g(314)p -3752 2718 V -1 w(,)2199 2805 y(315)p 2199 2818 V -1 w(,)f(317)p -2372 2818 V -2 w(,)g(318)p 2544 2818 V -1 w(,)g(319)p -2717 2818 V -2 w(,)g(320)p 2889 2818 V -1 w(,)g(322)p -3062 2818 V -1 w(,)g(323)p 3235 2818 V -2 w(,)g(324)p -3407 2818 V -1 w(,)g(325)p 3580 2818 V -2 w(,)g(327)p -3752 2818 V -1 w(,)2199 2905 y(328)p 2199 2918 V -1 w(,)g(329)p -2372 2918 V -2 w(,)g(330)p 2544 2918 V -1 w(,)g(332)p -2717 2918 V -2 w(,)g(333)p 2889 2918 V -1 w(,)g(334)p -3062 2918 V -1 w(,)g(335)p 3235 2918 V -2 w(,)g(337)p -3407 2918 V -1 w(,)g(338)p 3580 2918 V -2 w(,)g(339)p -3752 2918 V -1 w(,)2199 3004 y(340)p 2199 3017 V -1 w(,)g(398)p -2372 3017 V -2 w(,)g(399)p 2544 3017 V -1 w(,)g(400,)e(402)p -2889 3017 V -1 w(,)i(403)p 3062 3017 V -1 w(,)g(431)p -3235 3017 V -2 w(,)g(432)p 3407 3017 V -1 w(,)g(442)p -3580 3017 V -2 w(,)g(443)p 3752 3017 V -1 w(,)2199 3104 -y(472)p 2199 3117 V -1 w(,)g(516,)e(517)p 2544 3117 V --1 w(,)i(548)p 2717 3117 V -2 w(,)g(549,)f(553,)g(554)p -3235 3117 V -2 w(,)h(742)p 3407 3117 V -1 w(,)g(743)p -3580 3117 V -2 w(,)g(839)p 3752 3117 V -1 w(,)2199 3204 -y(840)p 2199 3217 V -1 w(,)g(866)p 2372 3217 V -1 w(,)h(867)p -2546 3217 V -2 w(,)g(964)p 2719 3217 V -1 w(,)g(965)p -2893 3217 V -2 w(,)g(1336)p 3066 3217 167 4 v -2 w(,)g(1337)p -3281 3217 V -2 w(,)g(1359)p 3496 3217 V -2 w(,)g(1360)p -3711 3217 V -2 w(.)2033 3308 y Fi(false)12 b Fm(:)83 +4703 y(452,)h(464,)f(519,)h(521,)f(522,)h(536,)g(537,)f(538,)h(541,)f +(548,)166 4802 y(551,)h(552,)f(561,)h(572,)f(574,)h(603,)g(605,)f(606,) +h(609,)f(641,)166 4902 y(646,)h(776,)f(802,)h(807,)f(824,)h(840,)g +(842,)f(843,)h(844,)f(847,)166 5001 y(849,)34 b(867,)g(886,)g(898,)f +(906,)h(914,)g(922,)g(927,)g(949,)166 5101 y(957,)g(958,)g(960,)g(961,) +f(962,)h(963,)g(968,)g(989,)g(990,)166 5201 y(996,)28 +b(1110,)g(1127,)g(1145,)f(1147,)h(1173,)g(1176,)f(1179,)166 +5300 y(1183,)e(1184,)g(1185,)g(1186,)g(1188,)g(1193,)g(1228,)g(1229,) +166 5400 y(1259,)g(1268,)g(1284,)g(1287,)g(1290,)g(1308,)g(1317,)g +(1330,)2199 263 y(1342,)g(1370,)g(1372,)g(1382,)g(1385,)g(1388,)g +(1433,)g(1444,)2199 363 y(1488,)31 b(1508,)g(1512,)g(1513,)g(1515,)g +(1516.)2033 466 y Fi(epicycloid)p 2389 466 26 4 v 34 +w(p)l(attern)p 2679 466 V 30 w(1)16 b Fm(:)83 b(1286)p +2868 479 167 4 v -2 w(,)33 b(1287)p 3090 479 V -2 w(,)g(1288.)2033 +569 y Fi(epicycloid)p 2389 569 26 4 v 34 w(p)l(attern)p +2679 569 V 30 w(3)16 b Fm(:)83 b(1286,)31 b(1289)p 3090 +582 167 4 v -2 w(,)i(1290)p 3312 582 V -2 w(.)2033 672 +y Fi(eps)12 b Fm(:)83 b(137)p 2265 685 125 4 v -2 w(,)32 +b(151)p 2444 685 V -1 w(,)g(153)p 2624 685 V -2 w(,)g(156)p +2803 685 V -1 w(,)g(161)p 2983 685 V -2 w(,)g(162,)f(163,)g(164,)f(305) +p 3701 685 V -1 w(,)2199 772 y(401)p 2199 785 V -1 w(,)j(405)p +2380 785 V -1 w(,)h(515,)e(516,)g(517)p 2924 785 V -1 +w(,)i(521,)e(522.)2033 875 y Fi(epsilon)12 b Fm(:)83 +b(15,)38 b(24,)g(135,)f(136,)g(137,)g(138)p 3248 888 +V -1 w(,)h(139,)g(150,)2199 974 y(151,)c(153,)g(156,)g(161,)f(305,)h +(308)p 3113 987 V -1 w(,)h(401,)f(405,)g(498,)2199 1074 +y(499,)g(515,)g(517,)g(606,)f(624,)h(633,)g(634,)g(948,)g(949,)2199 +1174 y(996,)28 b(1082,)g(1083,)g(1126,)f(1127,)h(1167,)g(1168,)f(1177,) +2199 1273 y(1193,)37 b(1256,)f(1258,)h(1259.)2033 1376 +y Fi(er)l(ase)11 b Fm(:)83 b(43.)2033 1480 y Fi(exchange)p +2360 1480 26 4 v 31 w(x)p 2430 1480 V 30 w(z)15 b Fm(:)83 +b(904)p 2610 1493 125 4 v -2 w(,)41 b(906.)2033 1583 +y Fi(exchange)p 2360 1583 26 4 v 31 w(y)p 2431 1583 V +31 w(z)15 b Fm(:)83 b(904)p 2612 1596 125 4 v -2 w(.)2033 +1686 y Fi(exit)12 b Fm(:)83 b(1508,)38 b(1515,)h(1516.)2033 +1789 y Fi(extr)l(act)11 b Fm(:)83 b(200)p 2394 1802 V +-1 w(,)35 b(442)p 2577 1802 V -2 w(,)g(443)p 2759 1802 +V -2 w(,)g(457,)e(549,)g(839)p 3305 1802 V -1 w(,)h(840)p +3487 1802 V -1 w(,)h(841,)2199 1889 y(856,)j(1364)p 2386 +1902 167 4 v -2 w(,)h(1365)p 2614 1902 V -2 w(,)g(1379.)2033 +1992 y Fi(extr)l(emes)10 b Fm(:)83 b(549,)39 b(550)p +2651 2005 125 4 v -2 w(,)h(551.)2033 2095 y Fe(f)9 b +Fm(:)83 b(16)p 2189 2108 84 4 v -1 w(,)29 b(200)p 2324 +2108 125 4 v -2 w(,)g(210)p 2500 2108 V -1 w(,)g(253)p +2677 2108 V -2 w(,)h(312)p 2854 2108 V -2 w(,)f(313)p +3030 2108 V -1 w(,)g(314)p 3207 2108 V -2 w(,)g(315)p +3383 2108 V -1 w(,)g(317)p 3560 2108 V -2 w(,)h(318)p +3737 2108 V -2 w(,)2199 2194 y(319)p 2199 2207 V -1 w(,)35 +b(320)p 2382 2207 V -2 w(,)h(322)p 2565 2207 V -2 w(,)g(323)p +2748 2207 V -2 w(,)f(324)p 2930 2207 V -1 w(,)g(325)p +3113 2207 V -1 w(,)g(327)p 3296 2207 V -1 w(,)g(328)p +3479 2207 V -2 w(,)h(329)p 3662 2207 V -2 w(,)2199 2294 +y(330)p 2199 2307 V -1 w(,)f(332)p 2382 2307 V -2 w(,)h(333)p +2565 2307 V -2 w(,)g(334)p 2748 2307 V -2 w(,)f(335)p +2930 2307 V -1 w(,)g(337)p 3113 2307 V -1 w(,)g(338)p +3296 2307 V -1 w(,)g(339)p 3479 2307 V -2 w(,)h(340)p +3662 2307 V -2 w(,)2199 2394 y(398)p 2199 2407 V -1 w(,)f(399)p +2382 2407 V -2 w(,)h(402)p 2565 2407 V -2 w(,)g(431)p +2748 2407 V -2 w(,)f(432)p 2930 2407 V -1 w(,)g(442)p +3113 2407 V -1 w(,)g(443)p 3296 2407 V -1 w(,)g(472)p +3479 2407 V -2 w(,)h(548)p 3662 2407 V -2 w(,)2199 2493 +y(563)p 2199 2506 V -1 w(,)f(566)p 2382 2506 V -2 w(,)h(568)p +2565 2506 V -2 w(,)g(570)p 2748 2506 V -2 w(,)f(636)p +2930 2506 V -1 w(,)g(742)p 3113 2506 V -1 w(,)g(743)p +3296 2506 V -1 w(,)g(839)p 3479 2506 V -2 w(,)h(840)p +3662 2506 V -2 w(,)2199 2593 y(866)p 2199 2606 V -1 w(,)e(867)p +2381 2606 V -2 w(,)g(1341)p 2562 2606 167 4 v -2 w(,)g(1342)p +2785 2606 V -2 w(,)g(1364)p 3008 2606 V -2 w(,)g(1365)p +3231 2606 V -2 w(.)2033 2696 y Fi(fabs)12 b Fm(:)83 b(135,)29 +b(137,)h(151,)f(153,)g(156,)h(162,)f(163,)g(164,)g(183,)2199 +2796 y(305,)34 b(401,)g(405,)g(499,)f(516,)h(521,)g(522,)g(605,)g(624,) +2199 2895 y(634,)24 b(636,)h(949,)f(968,)h(996,)f(1083,)g(1127,)g +(1134,)g(1168,)2199 2995 y(1177,)31 b(1183,)g(1193,)g(1256,)g(1258,)g +(1259.)2033 3098 y Fi(fac)l(e)p 2177 3098 26 4 v 32 w(r)l(adius)11 +b Fm(:)83 b(1431)p 2540 3111 167 4 v -2 w(,)33 b(1440,)e(1443,)g(1457,) +g(1460,)g(1471,)2199 3198 y(1474,)40 b(1485,)f(1488.)2033 +3301 y Fi(fac)l(es)12 b Fm(:)83 b(1405)p 2324 3314 V +-2 w(,)33 b(1416,)d(1418,)h(1420,)f(1440,)h(1443,)g(1457,)2199 +3400 y(1460,)j(1471,)g(1474,)f(1485,)h(1488.)2033 3504 +y Fi(factor)14 b Fm(:)83 b(200)p 2363 3517 125 4 v -1 +w(,)26 b(210)p 2537 3517 V -1 w(,)g(253)p 2711 3517 V +-2 w(,)g(254)p 2884 3517 V -1 w(,)g(304)p 3058 3517 V +-2 w(,)h(305)p 3232 3517 V -2 w(,)f(312)p 3405 3517 V +-1 w(,)g(313)p 3579 3517 V -2 w(,)g(314)p 3752 3517 V +-1 w(,)2199 3603 y(315)p 2199 3616 V -1 w(,)f(317)p 2372 +3616 V -2 w(,)g(318)p 2544 3616 V -1 w(,)g(319)p 2717 +3616 V -2 w(,)g(320)p 2889 3616 V -1 w(,)g(322)p 3062 +3616 V -1 w(,)g(323)p 3235 3616 V -2 w(,)g(324)p 3407 +3616 V -1 w(,)g(325)p 3580 3616 V -2 w(,)g(327)p 3752 +3616 V -1 w(,)2199 3703 y(328)p 2199 3716 V -1 w(,)g(329)p +2372 3716 V -2 w(,)g(330)p 2544 3716 V -1 w(,)g(332)p +2717 3716 V -2 w(,)g(333)p 2889 3716 V -1 w(,)g(334)p +3062 3716 V -1 w(,)g(335)p 3235 3716 V -2 w(,)g(337)p +3407 3716 V -1 w(,)g(338)p 3580 3716 V -2 w(,)g(339)p +3752 3716 V -1 w(,)2199 3802 y(340)p 2199 3815 V -1 w(,)g(398)p +2372 3815 V -2 w(,)g(399)p 2544 3815 V -1 w(,)g(400,)e(402)p +2889 3815 V -1 w(,)i(403)p 3062 3815 V -1 w(,)g(431)p +3235 3815 V -2 w(,)g(432)p 3407 3815 V -1 w(,)g(442)p +3580 3815 V -2 w(,)g(443)p 3752 3815 V -1 w(,)2199 3902 +y(472)p 2199 3915 V -1 w(,)g(516,)e(517)p 2544 3915 V +-1 w(,)i(548)p 2717 3915 V -2 w(,)g(549,)f(553,)g(554)p +3235 3915 V -2 w(,)h(742)p 3407 3915 V -1 w(,)g(743)p +3580 3915 V -2 w(,)g(839)p 3752 3915 V -1 w(,)2199 4002 +y(840)p 2199 4015 V -1 w(,)g(866)p 2372 4015 V -1 w(,)h(867)p +2546 4015 V -2 w(,)g(967)p 2719 4015 V -1 w(,)g(968)p +2893 4015 V -2 w(,)g(1341)p 3066 4015 167 4 v -2 w(,)g(1342)p +3281 4015 V -2 w(,)g(1364)p 3496 4015 V -2 w(,)g(1365)p +3711 4015 V -2 w(.)2033 4105 y Fi(false)12 b Fm(:)83 b(17,)27 b(47,)g(49,)h(59,)f(61,)g(64,)g(65,)h(66,)f(69,)g(71,)h(72,)f -(74,)2199 3407 y(97,)32 b(98,)f(99,)h(141,)f(143,)g(159,)g(161,)g(174,) -g(182,)g(187,)2199 3507 y(188,)24 b(209,)f(216,)h(229,)f(248,)h(269,)g -(273,)f(274,)h(280,)f(283,)2199 3607 y(287,)h(346,)f(350,)h(351,)f -(356,)h(357,)g(380,)f(395,)h(399,)f(401,)2199 3706 y(405,)h(409,)f -(411,)h(419,)f(420,)h(431,)g(432,)f(437,)h(439,)f(443,)2199 -3806 y(446,)h(448,)f(452,)h(458,)f(461,)h(462,)g(463,)f(464,)h(472,)f -(505,)2199 3906 y(507,)h(508,)f(517,)h(518,)f(521,)h(527,)g(529,)f -(530,)h(541,)f(546,)2199 4005 y(548,)h(549,)f(550,)h(552,)f(561,)h -(573,)g(603,)f(605,)h(607,)f(637,)2199 4105 y(641,)h(644,)f(658,)h -(661,)f(664,)h(666,)g(669,)f(671,)h(674,)f(676,)2199 -4204 y(678,)h(681,)f(683,)h(685,)f(687,)h(726,)g(743,)f(749,)h(750,)f -(775,)2199 4304 y(776,)h(777,)f(794,)h(802,)f(807,)h(824,)g(829,)f -(830,)h(831,)f(840,)2199 4404 y(842,)34 b(843,)g(844,)g(847,)f(849,)h -(853,)g(857,)g(868,)g(872,)2199 4503 y(873,)g(874,)g(875,)g(881,)f -(882,)h(894,)g(901,)g(903,)g(908,)2199 4603 y(909,)g(917,)g(925,)g -(940,)f(941,)h(942,)g(945,)g(946,)g(949,)2199 4703 y(951,)c(958,)f -(965,)h(982,)g(985,)f(993,)h(996,)g(1027,)f(1030,)2199 -4802 y(1033,)c(1037,)g(1039,)g(1059,)g(1062,)g(1067,)g(1072,)g(1074,) -2199 4902 y(1102,)g(1105,)g(1117,)g(1118,)g(1121,)g(1122,)g(1125,)g -(1127,)2199 5001 y(1158,)g(1163,)g(1170,)g(1171,)g(1174,)g(1183,)g -(1187,)g(1188,)2199 5101 y(1191,)g(1192,)g(1198,)g(1199,)g(1208,)g -(1209,)g(1235,)g(1238,)2199 5201 y(1243,)g(1253,)g(1254,)g(1262,)g -(1263,)g(1279,)g(1282,)g(1285,)2199 5300 y(1294,)g(1295,)g(1297,)g -(1303,)g(1312,)g(1339,)g(1362,)g(1365,)2199 5400 y(1367,)g(1371,)g -(1375,)g(1377,)g(1379,)g(1380,)g(1382,)g(1383,)p eop -end -%%Page: 490 490 -TeXDict begin 490 489 bop 0 83 a Fm(490)140 b Fl(INDEX)2670 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1517)166 263 y(1385,)25 -b(1388,)g(1391,)g(1394,)g(1411,)g(1413,)g(1415,)g(1435,)166 -363 y(1438,)g(1452,)g(1455,)g(1457,)g(1459,)g(1466,)g(1469,)g(1470,)166 -462 y(1471,)31 b(1480,)g(1483,)g(1484,)g(1485,)g(1503.)0 -564 y Fi(\016l)t(l)p 124 564 26 4 v 31 w(c)l(olor)15 -b Fm(:)83 b(801)p 445 577 125 4 v -2 w(,)40 b(802)p 632 -577 V -1 w(,)g(803)p 820 577 V -1 w(,)g(804)p 1008 577 -V -2 w(,)g(805,)f(806)p 1383 577 V -1 w(,)h(807)p 1571 -577 V -2 w(,)166 664 y(808)p 166 677 V -1 w(,)45 b(809)p -359 677 V -1 w(.)0 766 y Fi(\014g)p 90 766 26 4 v 30 -w(num)10 b Fm(:)83 b(39)p 391 779 84 4 v -1 w(,)40 b(40)p -537 779 V -1 w(,)g(48,)f(50.)0 868 y Fi(\014l)t(l)13 -b Fm(:)83 b(553,)30 b(801)p 391 881 125 4 v -2 w(,)h(802)p -569 881 V -1 w(,)g(803)p 748 881 V -2 w(,)g(804)p 926 -881 V -1 w(,)f(805,)g(966,)f(967,)h(1279,)166 967 y(1380,)40 -b(1381)p 397 980 167 4 v -2 w(,)h(1382)p 627 980 V -2 -w(.)0 1069 y Ff(FILL)s Fm(:)83 b(199)p 285 1082 125 4 -v -2 w(,)37 b(201)p 469 1082 V -2 w(,)f(802,)f(859,)g(1380.)0 -1171 y Fi(\014l)t(l)p 98 1171 26 4 v 31 w(c)l(olor)14 -b Fm(:)83 b(654)p 418 1184 125 4 v -1 w(,)31 b(657,)g(661,)f(664,)g -(666,)g(669,)g(671,)g(674,)166 1271 y(676,)k(681,)g(685,)g(686,)f(687,) -h(701,)g(703,)g(775,)g(776,)166 1371 y(801,)g(802,)g(806,)g(807,)f -(813,)h(821,)g(824,)g(859,)g(864,)166 1470 y(869,)41 -b(1279,)f(1380.)0 1572 y Fi(\014l)t(l)p 98 1572 26 4 -v 31 w(c)l(olor)p 303 1572 V 31 w(inner)14 b Fm(:)83 -b(1278)p 641 1585 167 4 v -2 w(,)38 b(1279)p 868 1585 -V -2 w(.)0 1674 y Fi(\014l)t(l)p 98 1674 26 4 v 31 w(c)l(olor)p -303 1674 V 31 w(iter)14 b Fm(:)83 b(1383,)37 b(1385.)0 -1776 y Fi(\014l)t(l)p 98 1776 V 31 w(c)l(olor)p 303 1776 -V 31 w(midd)t(le)13 b Fm(:)83 b(1278)p 688 1789 167 4 -v -2 w(,)38 b(1279)p 915 1789 V -2 w(.)0 1878 y Fi(\014l)t(l)p -98 1878 26 4 v 31 w(c)l(olor)p 303 1878 V 31 w(outer)13 -b Fm(:)84 b(1278)p 637 1891 167 4 v -2 w(,)38 b(1279)p -864 1891 V -2 w(.)0 1980 y Fi(\014l)t(l)p 98 1980 26 -4 v 31 w(c)l(olor)p 303 1980 V 31 w(ptr)14 b Fm(:)83 -b(1383,)37 b(1385)p 782 1993 167 4 v -2 w(.)0 2082 y -Fi(\014l)t(l)p 98 2082 26 4 v 31 w(c)l(olors)12 b Fm(:)83 -b(1383,)36 b(1384)p 677 2095 167 4 v -2 w(,)i(1385)p -904 2095 V -2 w(.)0 2184 y Fi(\014l)t(l)p 98 2184 26 -4 v 31 w(dr)l(aw)p 299 2184 V 31 w(value)11 b Fm(:)83 -b(654)p 626 2197 125 4 v -1 w(,)30 b(657,)f(661,)f(664,)h(666,)f(669,)h -(671,)166 2284 y(674,)34 b(676,)g(681,)g(693,)f(776,)h(802,)g(807,)g -(813,)g(821,)166 2383 y(824,)e(859,)h(861,)f(862,)g(863,)h(866,)f(867.) -0 2485 y Fi(\014l)t(l)p 98 2485 26 4 v 31 w(out)p 244 -2485 V 30 w(el)t(lipse)12 b Fm(:)83 b(1221.)0 2587 y +(74,)2199 4204 y(97,)32 b(98,)f(99,)h(141,)f(143,)g(159,)g(161,)g(174,) +g(182,)g(187,)2199 4304 y(188,)24 b(209,)f(216,)h(229,)f(248,)h(269,)g +(273,)f(274,)h(280,)f(283,)2199 4404 y(287,)h(346,)f(350,)h(351,)f +(356,)h(357,)g(380,)f(395,)h(399,)f(401,)2199 4503 y(405,)h(409,)f +(411,)h(419,)f(420,)h(431,)g(432,)f(437,)h(439,)f(443,)2199 +4603 y(446,)h(448,)f(452,)h(458,)f(461,)h(462,)g(463,)f(464,)h(472,)f +(505,)2199 4703 y(507,)h(508,)f(517,)h(518,)f(521,)h(527,)g(529,)f +(530,)h(541,)f(546,)2199 4802 y(548,)h(549,)f(550,)h(552,)f(561,)h +(573,)g(603,)f(605,)h(607,)f(637,)2199 4902 y(641,)h(644,)f(658,)h +(661,)f(664,)h(666,)g(669,)f(671,)h(674,)f(676,)2199 +5001 y(678,)h(681,)f(683,)h(685,)f(687,)h(726,)g(743,)f(749,)h(750,)f +(775,)2199 5101 y(776,)h(777,)f(794,)h(802,)f(807,)h(824,)g(829,)f +(830,)h(831,)f(840,)2199 5201 y(842,)h(843,)f(844,)h(847,)f(849,)h +(853,)g(857,)f(868,)h(872,)f(873,)2199 5300 y(874,)34 +b(875,)g(881,)g(882,)f(897,)h(904,)g(906,)g(911,)g(912,)2199 +5400 y(920,)g(928,)g(943,)g(944,)f(945,)h(948,)g(949,)g(952,)g(954,)p +eop end +%%Page: 495 495 +TeXDict begin 495 494 bop 0 83 a Fn(x)p Fm(1525)139 b +Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(495)166 263 y(961,)28 +b(968,)f(985,)h(988,)f(996,)h(999,)g(1030,)f(1033,)g(1036,)166 +363 y(1040,)e(1042,)g(1062,)g(1065,)g(1070,)g(1075,)g(1077,)g(1083,)166 +462 y(1107,)g(1110,)g(1122,)g(1123,)g(1126,)g(1127,)g(1130,)g(1132,)166 +562 y(1163,)g(1168,)g(1175,)g(1176,)g(1179,)g(1188,)g(1192,)g(1193,)166 +662 y(1196,)g(1197,)g(1203,)g(1204,)g(1213,)g(1214,)g(1240,)g(1243,)166 +761 y(1248,)g(1258,)g(1259,)g(1267,)g(1268,)g(1284,)g(1287,)g(1290,)166 +861 y(1299,)g(1300,)g(1302,)g(1308,)g(1317,)g(1344,)g(1367,)g(1370,)166 +960 y(1372,)g(1376,)g(1380,)g(1382,)g(1384,)g(1385,)g(1387,)g(1388,)166 +1060 y(1390,)g(1393,)g(1396,)g(1399,)g(1416,)g(1418,)g(1420,)g(1440,) +166 1160 y(1443,)g(1457,)g(1460,)g(1462,)g(1464,)g(1471,)g(1474,)g +(1475,)166 1259 y(1476,)31 b(1485,)g(1488,)g(1489,)g(1490,)g(1508.)0 +1361 y Fi(\016l)t(l)p 124 1361 26 4 v 31 w(c)l(olor)15 +b Fm(:)83 b(801)p 445 1374 125 4 v -2 w(,)40 b(802)p +632 1374 V -1 w(,)g(803)p 820 1374 V -1 w(,)g(804)p 1008 +1374 V -2 w(,)g(805,)f(806)p 1383 1374 V -1 w(,)h(807)p +1571 1374 V -2 w(,)166 1461 y(808)p 166 1474 V -1 w(,)45 +b(809)p 359 1474 V -1 w(.)0 1563 y Fi(\014g)p 90 1563 +26 4 v 30 w(num)10 b Fm(:)83 b(39)p 391 1576 84 4 v -1 +w(,)40 b(40)p 537 1576 V -1 w(,)g(48,)f(50.)0 1665 y +Fi(\014l)t(l)13 b Fm(:)83 b(553,)30 b(801)p 391 1678 +125 4 v -2 w(,)h(802)p 569 1678 V -1 w(,)g(803)p 748 +1678 V -2 w(,)g(804)p 926 1678 V -1 w(,)f(805,)g(969,)f(970,)h(1284,) +166 1764 y(1385,)40 b(1386)p 397 1777 167 4 v -2 w(,)h(1387)p +627 1777 V -2 w(.)0 1866 y Ff(FILL)s Fm(:)83 b(199)p +285 1879 125 4 v -2 w(,)37 b(201)p 469 1879 V -2 w(,)f(802,)f(859,)g +(1385.)0 1968 y Fi(\014l)t(l)p 98 1968 26 4 v 31 w(c)l(olor)14 +b Fm(:)83 b(654)p 418 1981 125 4 v -1 w(,)31 b(657,)g(661,)f(664,)g +(666,)g(669,)g(671,)g(674,)166 2068 y(676,)k(681,)g(685,)g(686,)f(687,) +h(701,)g(703,)g(775,)g(776,)166 2168 y(801,)g(802,)g(806,)g(807,)f +(813,)h(821,)g(824,)g(859,)g(864,)166 2267 y(869,)41 +b(1284,)f(1385.)0 2369 y Fi(\014l)t(l)p 98 2369 26 4 +v 31 w(c)l(olor)p 303 2369 V 31 w(inner)14 b Fm(:)83 +b(1283)p 641 2382 167 4 v -2 w(,)38 b(1284)p 868 2382 +V -2 w(.)0 2471 y Fi(\014l)t(l)p 98 2471 26 4 v 31 w(c)l(olor)p +303 2471 V 31 w(iter)14 b Fm(:)83 b(1388,)37 b(1390.)0 +2573 y Fi(\014l)t(l)p 98 2573 V 31 w(c)l(olor)p 303 2573 +V 31 w(midd)t(le)13 b Fm(:)83 b(1283)p 688 2586 167 4 +v -2 w(,)38 b(1284)p 915 2586 V -2 w(.)0 2675 y Fi(\014l)t(l)p +98 2675 26 4 v 31 w(c)l(olor)p 303 2675 V 31 w(outer)13 +b Fm(:)84 b(1283)p 637 2688 167 4 v -2 w(,)38 b(1284)p +864 2688 V -2 w(.)0 2777 y Fi(\014l)t(l)p 98 2777 26 +4 v 31 w(c)l(olor)p 303 2777 V 31 w(ptr)14 b Fm(:)83 +b(1388,)37 b(1390)p 782 2790 167 4 v -2 w(.)0 2879 y +Fi(\014l)t(l)p 98 2879 26 4 v 31 w(c)l(olors)12 b Fm(:)83 +b(1388,)36 b(1389)p 677 2892 167 4 v -2 w(,)i(1390)p +904 2892 V -2 w(.)0 2981 y Fi(\014l)t(l)p 98 2981 26 +4 v 31 w(dr)l(aw)p 299 2981 V 31 w(value)11 b Fm(:)83 +b(654)p 626 2994 125 4 v -1 w(,)30 b(657,)f(661,)f(664,)h(666,)f(669,)h +(671,)166 3081 y(674,)34 b(676,)g(681,)g(693,)f(776,)h(802,)g(807,)g +(813,)g(821,)166 3180 y(824,)e(859,)h(861,)f(862,)g(863,)h(866,)f(867.) +0 3282 y Fi(\014l)t(l)p 98 3282 26 4 v 31 w(out)p 244 +3282 V 30 w(el)t(lipse)12 b Fm(:)83 b(1226.)0 3384 y Fi(\014l)t(ldr)l(aw)14 b Fm(:)83 b(553,)32 b(805,)g(806)p -745 2600 125 4 v -1 w(,)h(807)p 926 2600 V -1 w(,)g(808)p -1107 2600 V -1 w(,)g(809)p 1288 2600 V -1 w(,)g(966,)f(967,)166 -2687 y(1279,)i(1384)p 391 2700 167 4 v -2 w(,)i(1385)p -616 2700 V -2 w(,)f(1393,)f(1501.)0 2789 y Ff(FILLDRAW)q -Fm(:)83 b(199)p 459 2802 125 4 v -1 w(,)34 b(201)p 641 -2802 V -2 w(,)g(807,)f(859,)g(1383.)0 2891 y Fi(\014rst)11 -b Fm(:)83 b(13)p 261 2904 84 4 v -1 w(,)35 b(30,)f(270)p -543 2904 125 4 v -2 w(,)h(271,)e(355,)g(541,)h(603,)f(633,)g(945,)166 -2990 y(946,)h(955,)g(956,)g(957,)f(958,)h(960,)g(985,)g(987,)g(988,)166 -3090 y(996,)28 b(1130,)g(1131,)g(1132,)f(1158,)h(1159,)g(1174,)f(1179,) -166 3190 y(1181,)34 b(1183,)g(1216,)f(1223,)h(1263.)0 -3292 y Fi(\014rst)p 149 3292 26 4 v 30 w(p)l(oint)p 359 -3292 V 31 w(ptr)13 b Fm(:)83 b(667)p 609 3305 125 4 v --2 w(,)31 b(672,)e(673)p 965 3305 V -1 w(,)h(674)p 1143 -3305 V -1 w(,)g(675)p 1321 3305 V -1 w(,)h(676)p 1500 -3305 V -2 w(.)0 3393 y Fi(\014rst)p 149 3393 26 4 v 30 -w(r)l(ow)13 b Fm(:)83 b(1278)p 421 3406 167 4 v -2 w(,)42 -b(1279)p 652 3406 V -2 w(.)0 3495 y Fi(\014xe)l(d)12 -b Fm(:)83 b(44,)41 b(864,)f(1507.)0 3597 y Fi(\015o)l(at\014eld)13 -b Fm(:)83 b(44,)42 b(1507.)0 3699 y Fi(\015o)l(ats)11 -b Fm(:)83 b(12,)39 b(24,)g(138,)f(502.)0 3801 y Fi(\015o)l(or)14 -b Fm(:)83 b(1180,)41 b(1251.)0 3903 y Ff(FLT_MAX)q Fm(:)84 -b(7,)43 b(16.)0 4005 y Fi(\015ush)10 b Fm(:)83 b(32,)25 +745 3397 125 4 v -1 w(,)h(807)p 926 3397 V -1 w(,)g(808)p +1107 3397 V -1 w(,)g(809)p 1288 3397 V -1 w(,)g(969,)f(970,)166 +3484 y(1284,)i(1389)p 391 3497 167 4 v -2 w(,)i(1390)p +616 3497 V -2 w(,)f(1398,)f(1506.)0 3586 y Ff(FILLDRAW)q +Fm(:)83 b(199)p 459 3599 125 4 v -1 w(,)34 b(201)p 641 +3599 V -2 w(,)g(807,)f(859,)g(1388.)0 3688 y Fi(\014rst)11 +b Fm(:)83 b(13)p 261 3701 84 4 v -1 w(,)35 b(30,)f(270)p +543 3701 125 4 v -2 w(,)h(271,)e(355,)g(541,)h(603,)f(633,)g(948,)166 +3787 y(949,)h(958,)g(959,)g(960,)f(961,)h(963,)g(988,)g(990,)g(991,)166 +3887 y(999,)28 b(1135,)g(1136,)g(1137,)f(1163,)h(1164,)g(1179,)f(1184,) +166 3987 y(1186,)34 b(1188,)g(1221,)f(1228,)h(1268.)0 +4089 y Fi(\014rst)p 149 4089 26 4 v 30 w(p)l(oint)p 359 +4089 V 31 w(ptr)13 b Fm(:)83 b(667)p 609 4102 125 4 v +-2 w(,)31 b(672,)e(673)p 965 4102 V -1 w(,)h(674)p 1143 +4102 V -1 w(,)g(675)p 1321 4102 V -1 w(,)h(676)p 1500 +4102 V -2 w(.)0 4190 y Fi(\014rst)p 149 4190 26 4 v 30 +w(r)l(ow)13 b Fm(:)83 b(1283)p 421 4203 167 4 v -2 w(,)42 +b(1284)p 652 4203 V -2 w(.)0 4292 y Fi(\014xe)l(d)12 +b Fm(:)83 b(44,)41 b(864,)f(1512.)0 4394 y Fi(\015o)l(at\014eld)13 +b Fm(:)83 b(44,)42 b(1512.)0 4496 y Fi(\015o)l(ats)11 +b Fm(:)83 b(12,)39 b(24,)g(138,)f(502.)0 4598 y Fi(\015o)l(or)14 +b Fm(:)83 b(1185,)41 b(1256.)0 4700 y Ff(FLT_MAX)q Fm(:)84 +b(7,)43 b(16.)0 4802 y Fi(\015ush)10 b Fm(:)83 b(32,)25 b(48,)g(50,)f(106,)g(108,)g(148,)g(151,)g(153,)g(161,)g(174,)166 -4105 y(182,)g(183,)f(184,)h(185,)f(186,)h(188,)g(249,)f(313,)h(318,)f -(346,)166 4204 y(350,)h(351,)f(380,)h(382,)f(383,)h(385,)g(387,)f(388,) -h(393,)f(399,)166 4304 y(400,)h(401,)f(405,)h(411,)f(432,)h(443,)g -(446,)f(448,)h(452,)f(458,)166 4404 y(462,)h(464,)f(472,)h(508,)f(517,) -h(519,)g(521,)f(522,)h(530,)f(531,)166 4503 y(532,)h(533,)f(534,)h -(535,)f(536,)h(537,)g(538,)f(540,)h(541,)f(546,)166 4603 +4902 y(182,)g(183,)f(184,)h(185,)f(186,)h(188,)g(249,)f(313,)h(318,)f +(346,)166 5001 y(350,)h(351,)f(380,)h(382,)f(383,)h(385,)g(387,)f(388,) +h(393,)f(399,)166 5101 y(400,)h(401,)f(405,)h(411,)f(432,)h(443,)g +(446,)f(448,)h(452,)f(458,)166 5201 y(462,)h(464,)f(472,)h(508,)f(517,) +h(519,)g(521,)f(522,)h(530,)f(531,)166 5300 y(532,)h(533,)f(534,)h +(535,)f(536,)h(537,)g(538,)f(540,)h(541,)f(546,)166 5400 y(548,)h(549,)f(550,)h(551,)f(552,)h(553,)g(561,)f(572,)h(574,)f(603,) -166 4703 y(605,)h(606,)f(607,)h(624,)f(641,)h(644,)g(646,)f(661,)h -(664,)f(669,)166 4802 y(674,)h(678,)f(681,)h(683,)f(685,)h(743,)g(750,) -f(765,)h(776,)f(802,)166 4902 y(807,)h(813,)f(821,)h(824,)f(830,)h -(842,)g(843,)f(844,)h(847,)f(849,)166 5001 y(857,)h(858,)f(859,)h(861,) -f(862,)h(863,)g(864,)f(867,)h(873,)f(875,)166 5101 y(880,)h(883,)f -(884,)h(885,)f(886,)h(888,)g(890,)f(894,)h(895,)f(896,)166 -5201 y(897,)34 b(898,)g(900,)g(901,)f(903,)h(909,)g(911,)g(918,)g(919,) -166 5300 y(924,)g(930,)g(946,)g(948,)f(951,)h(952,)g(954,)g(955,)g -(957,)166 5400 y(958,)g(959,)g(960,)g(962,)f(965,)h(976,)g(978,)g(982,) -g(983,)2199 263 y(986,)c(987,)f(989,)h(991,)g(993,)f(995,)h(996,)g -(1030,)f(1031,)2199 363 y(1033,)c(1034,)g(1067,)g(1081,)g(1083,)g -(1105,)g(1122,)g(1129,)2199 462 y(1140,)g(1142,)g(1163,)g(1168,)g -(1172,)g(1174,)g(1175,)g(1177,)2199 562 y(1178,)g(1179,)g(1180,)g -(1181,)g(1183,)g(1188,)g(1216,)g(1223,)2199 662 y(1224,)g(1254,)g -(1263,)g(1265,)g(1269,)g(1279,)g(1282,)g(1285,)2199 761 -y(1303,)g(1312,)g(1325,)g(1337,)g(1339,)g(1360,)g(1362,)g(1365,)2199 -861 y(1367,)g(1377,)g(1379,)g(1380,)g(1382,)g(1383,)g(1385,)g(1388,) -2199 960 y(1391,)g(1394,)g(1428,)g(1439,)g(1455,)g(1456,)g(1458,)g -(1469,)2199 1060 y(1471,)31 b(1483,)g(1503,)g(1507,)g(1508,)g(1511.) -2033 1162 y Fi(fmo)l(d)14 b Fm(:)83 b(965,)42 b(1285.)2033 -1264 y Fi(fmt\015ags)11 b Fm(:)83 b(1507.)2033 1366 y -Fi(fo)l(cus)11 b Fm(:)84 b(856.)2033 1468 y Fk(F)-8 b(o)s(cus)t -Fm(:)84 b(33)p 2380 1481 84 4 v -1 w(,)28 b(122,)f(200,)g(210,)g(252,)f -(253,)h(264,)g(311,)g(312,)2199 1568 y(313,)d(314,)f(315,)h(317,)f -(318,)h(319,)g(320,)f(322,)h(323,)f(324,)2199 1668 y(325,)h(327,)f -(328,)h(329,)f(330,)h(332,)g(333,)f(334,)h(335,)f(337,)2199 -1767 y(338,)34 b(339,)g(340,)g(397,)f(398,)h(399,)g(402,)g(431,)g(432,) -2199 1867 y(442,)g(443,)g(453,)g(457,)f(472,)h(547,)g(548,)g(549,)g -(552,)2199 1966 y(553,)g(556)p 2382 1979 125 4 v -2 w(,)i(557,)e(558)p -2748 1979 V -2 w(,)h(559,)f(560,)g(561)p 3296 1979 V --1 w(,)h(563,)f(565,)2199 2066 y(566)p 2199 2079 V -1 -w(,)h(568,)f(569,)g(570,)f(572,)h(574,)g(575,)g(581,)g(582,)2199 -2166 y(584,)g(585,)g(586,)g(587,)f(742,)h(743,)g(839,)g(840,)g(844,) -2199 2265 y(866,)c(867,)h(920,)f(1336,)g(1337,)g(1359,)g(1360.)2033 -2367 y Fi(F)-6 b(o)l(cuses)11 b Fm(:)83 b(122,)41 b(920.)2033 -2469 y Fi(fo)l(cus0)16 b Fm(:)83 b(1098)p 2377 2482 167 -4 v -2 w(,)30 b(1104,)e(1105,)f(1115,)h(1140,)f(1142,)h(1162,)2199 -2569 y(1187,)37 b(1188,)f(1203,)h(1204.)2033 2671 y Fi(fo)l(cus1)16 -b Fm(:)83 b(1098)p 2377 2684 V -2 w(,)30 b(1104,)e(1105,)f(1115,)h -(1140,)f(1142,)h(1187,)2199 2771 y(1188,)40 b(1203,)f(1204.)2033 -2873 y Fi(found)13 b Fm(:)83 b(985)p 2353 2886 125 4 -v -1 w(.)2033 2975 y Fi(fourth)11 b Fm(:)83 b(270)p 2367 -2988 V -1 w(,)34 b(271,)g(1179,)e(1181,)h(1183.)2033 -3077 y Fi(fr)l(ont)12 b Fm(:)83 b(930,)32 b(985,)g(987,)g(994,)g(1374,) -g(1469.)2033 3179 y Fe(g)s Fm(:)83 b(63)p 2182 3192 84 -4 v -1 w(,)21 b(64)p 2309 3192 V -1 w(,)h(65)p 2437 3192 -V -1 w(,)f(66)p 2564 3192 V -1 w(,)g(68)p 2691 3192 V --1 w(,)h(69)p 2819 3192 V -1 w(,)f(70)p 2946 3192 V -1 -w(,)h(71)p 3074 3192 V -1 w(,)f(84)p 3201 3192 V -1 w(,)h(85)p -3329 3192 V -1 w(,)f(88)p 3456 3192 V -1 w(,)g(89)p 3583 -3192 V -1 w(,)h(1337)p 3711 3192 167 4 v -2 w(.)2033 -3281 y Fi(get)p 2142 3281 26 4 v 31 w(al)t(l)p 2261 3281 -V 31 w(c)l(o)l(or)l(ds)12 b Fm(:)83 b(312)p 2626 3294 -125 4 v -1 w(,)30 b(313)p 2804 3294 V -1 w(,)h(314)p -2983 3294 V -2 w(,)g(315)p 3161 3294 V -1 w(,)f(432,)g(867.)2033 -3383 y Fi(get)p 2142 3383 26 4 v 31 w(axis)p 2313 3383 -V 30 w(h)11 b Fm(:)84 b(1085)p 2498 3396 167 4 v -2 w(,)35 -b(1086)p 2722 3396 V -2 w(,)g(1128,)f(1129,)f(1131,)h(1132,)2199 -3483 y(1147,)k(1154)p 2428 3496 V -2 w(,)h(1155)p 2656 -3496 V -2 w(,)h(1156)p 2885 3496 V -2 w(,)f(1157)p 3113 -3496 V -2 w(,)h(1158,)d(1159,)2199 3582 y(1163,)g(1172,)f(1178,)h -(1251.)2033 3684 y Fi(get)p 2142 3684 26 4 v 31 w(axis)p -2313 3684 V 30 w(v)14 b Fm(:)83 b(1087)p 2496 3697 167 -4 v -2 w(,)35 b(1088)p 2720 3697 V -2 w(,)h(1128,)d(1129,)h(1131,)f -(1132,)2199 3784 y(1147,)38 b(1149)p 2428 3797 V -2 w(,)h(1150)p -2656 3797 V -2 w(,)h(1151)p 2885 3797 V -2 w(,)f(1152)p -3113 3797 V -2 w(,)h(1158,)d(1159,)2199 3884 y(1163,)g(1172,)f(1178,)h -(1251.)2033 3986 y Fi(get)p 2142 3986 26 4 v 31 w(blue)p -2315 3986 V 30 w(p)l(art)13 b Fm(:)83 b(61,)34 b(93,)f(99)p -2883 3999 84 4 v -1 w(,)i(104,)f(106.)2033 4088 y Fi(get)p -2142 4088 26 4 v 31 w(c)l(enter)12 b Fm(:)83 b(954,)33 -b(975)p 2688 4101 125 4 v -2 w(,)h(976)p 2869 4101 V --1 w(,)g(977)p 3051 4101 V -2 w(,)g(978)p 3232 4101 V --1 w(,)g(1079,)e(1122,)2199 4187 y(1134)p 2199 4200 167 -4 v -2 w(,)27 b(1135)p 2415 4200 V -2 w(,)g(1136)p 2631 -4200 V -2 w(,)g(1137)p 2847 4200 V -2 w(,)g(1150,)e(1152,)g(1155,)g -(1157,)2199 4287 y(1158,)g(1159,)g(1173,)g(1174,)g(1177,)g(1188,)g -(1214,)g(1223,)2199 4387 y(1224,)g(1253,)g(1254,)g(1282,)g(1289,)g -(1308)p 3279 4400 V -2 w(,)i(1309)p 3495 4400 V -2 w(,)g(1325,)2199 -4486 y(1438,)h(1446,)h(1456,)f(1460,)g(1469,)h(1471,)f(1473.)2033 -4588 y Fi(get)p 2142 4588 26 4 v 31 w(cir)l(cle)11 b -Fm(:)83 b(1307.)2033 4690 y Fi(get)p 2142 4690 V 31 w(cir)l(cle)p -2364 4690 V 31 w(c)l(enter)13 b Fm(:)83 b(1326)p 2729 -4703 167 4 v -2 w(,)38 b(1327)p 2956 4703 V -2 w(.)2033 -4792 y Fi(get)p 2142 4792 26 4 v 31 w(cir)l(cle)p 2364 -4792 V 31 w(ptr)13 b Fm(:)83 b(1307,)29 b(1310,)g(1311,)f(1313)p -3273 4805 167 4 v -2 w(,)j(1314)p 3493 4805 V -2 w(.)2033 -4895 y Fi(get)p 2142 4895 26 4 v 31 w(c)l(o)l(e\016cients)11 -b Fm(:)83 b(943)p 2678 4908 125 4 v -1 w(,)33 b(957,)f(1131)p -3040 4908 167 4 v -2 w(,)i(1132)p 3263 4908 V -2 w(.)2033 -4997 y Fi(get)p 2142 4997 26 4 v 31 w(c)l(o)l(or)l(d)13 -b Fm(:)83 b(316,)29 b(317)p 2652 5010 125 4 v -1 w(,)h(318)p -2830 5010 V -1 w(,)g(319)p 3008 5010 V -1 w(,)g(320)p -3186 5010 V -1 w(,)g(323,)f(325,)g(328,)2199 5096 y(330,)37 -b(333,)g(335,)g(338,)f(340.)2033 5198 y Fi(get)p 2142 -5198 26 4 v 31 w(c)l(opy)12 b Fm(:)83 b(200)p 2444 5211 -125 4 v -1 w(,)32 b(210)p 2624 5211 V -2 w(,)g(222,)f(342)p -2983 5211 V -2 w(,)i(343)p 3163 5211 V -2 w(,)f(471)p -3342 5211 V -1 w(,)g(543,)e(545,)2199 5298 y(688)p 2199 -5311 V -1 w(,)h(689)p 2378 5311 V -2 w(,)h(1304)p 2557 -5311 167 4 v -2 w(,)f(1305)p 2777 5311 V -2 w(,)g(1311,)f(1312,)f -(1375.)2033 5400 y Fi(get)p 2142 5400 26 4 v 31 w(diameter)14 -b Fm(:)83 b(1256)p 2604 5413 167 4 v -2 w(.)p eop end -%%Page: 491 491 -TeXDict begin 491 490 bop 0 83 a Fn(x)p Fm(1517)139 b -Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(491)0 263 y Fi(get)p -109 263 26 4 v 31 w(dir)l(e)l(ction)11 b Fm(:)83 b(577)p -564 276 125 4 v -1 w(.)0 364 y Fi(get)p 109 364 26 4 -v 31 w(distanc)l(e)11 b Fm(:)83 b(12,)25 b(401,)h(578)p -849 377 125 4 v -2 w(,)h(603,)e(604)p 1197 377 V -2 w(,)i(605)p -1371 377 V -1 w(,)f(633)p 1545 377 V -1 w(,)g(634)p 1719 -377 V -1 w(,)166 464 y(635)p 166 477 V -1 w(,)33 b(636)p -347 477 V -1 w(,)h(637,)e(945,)g(946,)h(951,)f(982.)0 -565 y Fi(get)p 109 565 26 4 v 31 w(element)12 b Fm(:)83 -b(122,)28 b(145)p 708 578 125 4 v -2 w(,)i(146)p 885 -578 V -2 w(,)f(581,)f(582,)g(584,)g(585.)0 667 y Fi(get)p -109 667 26 4 v 31 w(el)t(lipse)12 b Fm(:)83 b(1307.)0 -768 y Fi(get)p 109 768 V 31 w(el)t(lipse)p 363 768 V -32 w(c)l(enter)13 b Fm(:)83 b(1328)p 729 781 167 4 v --2 w(,)37 b(1329)p 955 781 V -2 w(.)0 870 y Fi(get)p -109 870 26 4 v 31 w(el)t(lipse)p 363 870 V 32 w(ptr)13 -b Fm(:)83 b(1307,)28 b(1310,)h(1311,)f(1315)p 1272 883 -167 4 v -2 w(,)i(1316)p 1491 883 V -2 w(.)0 971 y Fi(get)p -109 971 26 4 v 31 w(extr)l(emes)10 b Fm(:)83 b(200)p -565 984 125 4 v -2 w(,)31 b(444)p 743 984 V -2 w(,)f(551,)f(845)p -1098 984 V -2 w(,)i(1362,)d(1363)p 1495 984 167 4 v -2 -w(.)0 1072 y Fi(get)p 109 1072 26 4 v 31 w(fo)l(cus)11 -b Fm(:)83 b(1139)p 432 1085 167 4 v -2 w(,)32 b(1140)p -653 1085 V -1 w(,)g(1141)p 875 1085 V -2 w(,)g(1142)p -1096 1085 V -2 w(,)h(1163.)0 1174 y Fi(get)p 109 1174 -26 4 v 31 w(gr)l(e)l(en)p 328 1174 V 30 w(p)l(art)12 -b Fm(:)83 b(61,)34 b(93,)f(98)p 895 1187 84 4 v -1 w(,)h(104,)f(106.)0 -1275 y Fi(get)p 109 1275 26 4 v 31 w(last)p 265 1275 -V 30 w(p)l(oint)13 b Fm(:)83 b(716,)30 b(721,)h(722,)g(750,)f(889)p -1307 1288 125 4 v -1 w(,)i(890)p 1487 1288 V -1 w(,)g(917,)166 -1375 y(918,)39 b(919,)g(962,)g(965,)g(981,)g(991,)h(1006,)e(1167,)166 -1474 y(1168,)k(1211.)0 1576 y Fi(get)p 109 1576 26 4 -v 31 w(line)11 b Fm(:)83 b(309)p 383 1589 125 4 v -2 -w(,)34 b(594,)d(601)p 744 1589 V -1 w(,)i(603,)f(929)p -1106 1589 V -1 w(,)h(930)p 1287 1589 V -1 w(.)0 1677 -y Fi(get)p 109 1677 26 4 v 31 w(line)p 271 1677 V 31 +2199 263 y(605,)h(606,)f(607,)h(624,)f(641,)h(644,)g(646,)f(661,)h +(664,)f(669,)2199 363 y(674,)h(678,)f(681,)h(683,)f(685,)h(743,)g(750,) +f(765,)h(776,)f(802,)2199 462 y(807,)h(813,)f(821,)h(824,)f(830,)h +(842,)g(843,)f(844,)h(847,)f(849,)2199 562 y(857,)h(858,)f(859,)h(861,) +f(862,)h(863,)g(864,)f(867,)h(873,)f(875,)2199 662 y(880,)h(883,)f +(884,)h(885,)f(886,)h(889,)g(891,)f(893,)h(897,)f(898,)2199 +761 y(899,)h(900,)f(901,)h(903,)f(904,)h(906,)g(912,)f(914,)h(921,)f +(922,)2199 861 y(927,)h(933,)f(949,)h(951,)f(954,)h(955,)g(957,)f(958,) +h(960,)f(961,)2199 960 y(962,)34 b(963,)g(965,)g(968,)f(979,)h(981,)g +(985,)g(986,)g(989,)2199 1060 y(990,)28 b(992,)f(994,)h(996,)f(998,)h +(999,)g(1033,)f(1034,)g(1036,)2199 1160 y(1037,)e(1070,)g(1086,)g +(1088,)g(1110,)g(1127,)g(1134,)g(1145,)2199 1259 y(1147,)g(1168,)g +(1173,)g(1177,)g(1179,)g(1180,)g(1182,)g(1183,)2199 1359 +y(1184,)g(1185,)g(1186,)g(1188,)g(1193,)g(1221,)g(1228,)g(1229,)2199 +1459 y(1259,)g(1268,)g(1270,)g(1274,)g(1284,)g(1287,)g(1290,)g(1308,) +2199 1558 y(1317,)g(1330,)g(1342,)g(1344,)g(1365,)g(1367,)g(1370,)g +(1372,)2199 1658 y(1382,)g(1384,)g(1385,)g(1387,)g(1388,)g(1390,)g +(1393,)g(1396,)2199 1757 y(1399,)g(1433,)g(1444,)g(1460,)g(1461,)g +(1463,)g(1474,)g(1476,)2199 1857 y(1488,)j(1508,)h(1512,)f(1513,)g +(1515,)h(1516,)f(1519.)2033 1960 y Fi(fmo)l(d)14 b Fm(:)83 +b(968,)42 b(1290.)2033 2063 y Fi(fmt\015ags)11 b Fm(:)83 +b(1512.)2033 2166 y Fi(fo)l(cus)11 b Fm(:)84 b(856.)2033 +2269 y Fk(F)-8 b(o)s(cus)t Fm(:)84 b(33)p 2380 2282 84 +4 v -1 w(,)28 b(122,)f(200,)g(210,)g(252,)f(253,)h(264,)g(311,)g(312,) +2199 2368 y(313,)d(314,)f(315,)h(317,)f(318,)h(319,)g(320,)f(322,)h +(323,)f(324,)2199 2468 y(325,)h(327,)f(328,)h(329,)f(330,)h(332,)g +(333,)f(334,)h(335,)f(337,)2199 2568 y(338,)34 b(339,)g(340,)g(397,)f +(398,)h(399,)g(402,)g(431,)g(432,)2199 2667 y(442,)g(443,)g(453,)g +(457,)f(472,)h(547,)g(548,)g(549,)g(552,)2199 2767 y(553,)g(556)p +2382 2780 125 4 v -2 w(,)i(557,)e(558)p 2748 2780 V -2 +w(,)h(559,)f(560,)g(561)p 3296 2780 V -1 w(,)h(563,)f(565,)2199 +2866 y(566)p 2199 2879 V -1 w(,)h(568,)f(569,)g(570,)f(572,)h(574,)g +(575,)g(581,)g(582,)2199 2966 y(584,)g(585,)g(586,)g(587,)f(742,)h +(743,)g(839,)g(840,)g(844,)2199 3066 y(866,)c(867,)h(923,)f(1341,)g +(1342,)g(1364,)g(1365.)2033 3169 y Fi(F)-6 b(o)l(cuses)11 +b Fm(:)83 b(122,)41 b(923.)2033 3272 y Fi(fo)l(cus0)16 +b Fm(:)83 b(1103)p 2377 3285 167 4 v -2 w(,)30 b(1109,)e(1110,)f(1120,) +h(1145,)f(1147,)h(1167,)2199 3371 y(1192,)37 b(1193,)f(1208,)h(1209.) +2033 3474 y Fi(fo)l(cus1)16 b Fm(:)83 b(1103)p 2377 3487 +V -2 w(,)30 b(1109,)e(1110,)f(1120,)h(1145,)f(1147,)h(1192,)2199 +3574 y(1193,)40 b(1208,)f(1209.)2033 3677 y Fi(found)13 +b Fm(:)83 b(988)p 2353 3690 125 4 v -1 w(.)2033 3780 +y Fi(fourth)11 b Fm(:)83 b(270)p 2367 3793 V -1 w(,)34 +b(271,)g(1184,)e(1186,)h(1188.)2033 3883 y Fi(fp)10 b +Fm(:)83 b(16)p 2216 3896 84 4 v(.)2033 3985 y Fi(fr)l(ont)12 +b Fm(:)83 b(933,)32 b(988,)g(990,)g(997,)g(1379,)g(1474.)2033 +4088 y Fe(g)s Fm(:)83 b(63)p 2182 4101 V -1 w(,)21 b(64)p +2309 4101 V -1 w(,)h(65)p 2437 4101 V -1 w(,)f(66)p 2564 +4101 V -1 w(,)g(68)p 2691 4101 V -1 w(,)h(69)p 2819 4101 +V -1 w(,)f(70)p 2946 4101 V -1 w(,)h(71)p 3074 4101 V +-1 w(,)f(84)p 3201 4101 V -1 w(,)h(85)p 3329 4101 V -1 +w(,)f(88)p 3456 4101 V -1 w(,)g(89)p 3583 4101 V -1 w(,)h(1342)p +3711 4101 167 4 v -2 w(.)2033 4191 y Fi(get)p 2142 4191 +26 4 v 31 w(al)t(l)p 2261 4191 V 31 w(c)l(o)l(or)l(ds)12 +b Fm(:)83 b(312)p 2626 4204 125 4 v -1 w(,)30 b(313)p +2804 4204 V -1 w(,)h(314)p 2983 4204 V -2 w(,)g(315)p +3161 4204 V -1 w(,)f(432,)g(867.)2033 4294 y Fi(get)p +2142 4294 26 4 v 31 w(axis)p 2313 4294 V 30 w(h)11 b +Fm(:)84 b(1090)p 2498 4307 167 4 v -2 w(,)35 b(1091)p +2722 4307 V -2 w(,)g(1133,)f(1134,)f(1136,)h(1137,)2199 +4394 y(1152,)k(1159)p 2428 4407 V -2 w(,)h(1160)p 2656 +4407 V -2 w(,)h(1161)p 2885 4407 V -2 w(,)f(1162)p 3113 +4407 V -2 w(,)h(1163,)d(1164,)2199 4493 y(1168,)g(1177,)f(1183,)h +(1256.)2033 4596 y Fi(get)p 2142 4596 26 4 v 31 w(axis)p +2313 4596 V 30 w(v)14 b Fm(:)83 b(1092)p 2496 4609 167 +4 v -2 w(,)35 b(1093)p 2720 4609 V -2 w(,)h(1133,)d(1134,)h(1136,)f +(1137,)2199 4696 y(1152,)38 b(1154)p 2428 4709 V -2 w(,)h(1155)p +2656 4709 V -2 w(,)h(1156)p 2885 4709 V -2 w(,)f(1157)p +3113 4709 V -2 w(,)h(1163,)d(1164,)2199 4796 y(1168,)g(1177,)f(1183,)h +(1256.)2033 4899 y Fi(get)p 2142 4899 26 4 v 31 w(blue)p +2315 4899 V 30 w(p)l(art)13 b Fm(:)83 b(61,)34 b(93,)f(99)p +2883 4912 84 4 v -1 w(,)i(104,)f(106.)2033 5001 y Fi(get)p +2142 5001 26 4 v 31 w(c)l(enter)12 b Fm(:)83 b(957,)33 +b(978)p 2688 5014 125 4 v -2 w(,)h(979)p 2869 5014 V +-1 w(,)g(980)p 3051 5014 V -2 w(,)g(981)p 3232 5014 V +-1 w(,)g(1084,)e(1127,)2199 5101 y(1139)p 2199 5114 167 +4 v -2 w(,)27 b(1140)p 2415 5114 V -2 w(,)g(1141)p 2631 +5114 V -2 w(,)g(1142)p 2847 5114 V -2 w(,)g(1155,)e(1157,)g(1160,)g +(1162,)2199 5201 y(1163,)g(1164,)g(1178,)g(1179,)g(1182,)g(1193,)g +(1219,)g(1228,)2199 5300 y(1229,)g(1258,)g(1259,)g(1287,)g(1294,)g +(1313)p 3279 5313 V -2 w(,)i(1314)p 3495 5313 V -2 w(,)g(1330,)2199 +5400 y(1443,)h(1451,)h(1461,)f(1465,)g(1474,)h(1476,)f(1478.)p +eop end +%%Page: 496 496 +TeXDict begin 496 495 bop 0 83 a Fm(496)140 b Fl(INDEX)2670 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1525)0 263 y Fi(get)p 109 +263 26 4 v 31 w(cir)l(cle)11 b Fm(:)83 b(1312.)0 364 +y Fi(get)p 109 364 V 31 w(cir)l(cle)p 331 364 V 31 w(c)l(enter)13 +b Fm(:)83 b(1331)p 696 377 167 4 v -2 w(,)38 b(1332)p +923 377 V -2 w(.)0 466 y Fi(get)p 109 466 26 4 v 31 w(cir)l(cle)p +331 466 V 31 w(ptr)13 b Fm(:)83 b(1312,)29 b(1315,)g(1316,)f(1318)p +1240 479 167 4 v -2 w(,)j(1319)p 1460 479 V -2 w(.)0 +567 y Fi(get)p 109 567 26 4 v 31 w(c)l(o)l(e\016cients)11 +b Fm(:)83 b(946)p 645 580 125 4 v -1 w(,)33 b(960,)f(1136)p +1007 580 167 4 v -2 w(,)i(1137)p 1230 580 V -2 w(.)0 +668 y Fi(get)p 109 668 26 4 v 31 w(c)l(o)l(or)l(d)13 +b Fm(:)83 b(316,)29 b(317)p 619 681 125 4 v -1 w(,)h(318)p +797 681 V -1 w(,)g(319)p 975 681 V -1 w(,)g(320)p 1153 +681 V -1 w(,)g(323,)f(325,)g(328,)166 768 y(330,)37 b(333,)g(335,)g +(338,)f(340.)0 869 y Fi(get)p 109 869 26 4 v 31 w(c)l(opy)12 +b Fm(:)83 b(200)p 411 882 125 4 v -1 w(,)32 b(210)p 591 +882 V -2 w(,)g(222,)f(342)p 950 882 V -2 w(,)h(343)p +1129 882 V -1 w(,)g(471)p 1309 882 V -1 w(,)g(543,)e(545,)166 +969 y(688)p 166 982 V -1 w(,)h(689)p 345 982 V -2 w(,)h(1309)p +524 982 167 4 v -2 w(,)f(1310)p 744 982 V -2 w(,)g(1316,)f(1317,)f +(1380.)0 1070 y Fi(get)p 109 1070 26 4 v 31 w(diameter)14 +b Fm(:)83 b(1261)p 571 1083 167 4 v -2 w(.)0 1172 y Fi(get)p +109 1172 26 4 v 31 w(dir)l(e)l(ction)11 b Fm(:)83 b(577)p +564 1185 125 4 v -1 w(.)0 1273 y Fi(get)p 109 1273 26 +4 v 31 w(distanc)l(e)11 b Fm(:)83 b(12,)25 b(401,)h(578)p +849 1286 125 4 v -2 w(,)h(603,)e(604)p 1197 1286 V -2 +w(,)i(605)p 1371 1286 V -1 w(,)f(633)p 1545 1286 V -1 +w(,)g(634)p 1719 1286 V -1 w(,)166 1372 y(635)p 166 1385 +V -1 w(,)33 b(636)p 347 1385 V -1 w(,)h(637,)e(948,)g(949,)h(954,)f +(985.)0 1474 y Fi(get)p 109 1474 26 4 v 31 w(element)12 +b Fm(:)83 b(122,)28 b(145)p 708 1487 125 4 v -2 w(,)i(146)p +885 1487 V -2 w(,)f(581,)f(582,)g(584,)g(585.)0 1575 +y Fi(get)p 109 1575 26 4 v 31 w(el)t(lipse)12 b Fm(:)83 +b(1312.)0 1676 y Fi(get)p 109 1676 V 31 w(el)t(lipse)p +363 1676 V 32 w(c)l(enter)13 b Fm(:)83 b(1333)p 729 1689 +167 4 v -2 w(,)37 b(1334)p 955 1689 V -2 w(.)0 1778 y +Fi(get)p 109 1778 26 4 v 31 w(el)t(lipse)p 363 1778 V +32 w(ptr)13 b Fm(:)83 b(1312,)28 b(1315,)h(1316,)f(1320)p +1272 1791 167 4 v -2 w(,)i(1321)p 1491 1791 V -2 w(.)0 +1879 y Fi(get)p 109 1879 26 4 v 31 w(extr)l(emes)10 b +Fm(:)83 b(200)p 565 1892 125 4 v -2 w(,)31 b(444)p 743 +1892 V -2 w(,)f(551,)f(845)p 1098 1892 V -2 w(,)i(1367,)d(1368)p +1495 1892 167 4 v -2 w(.)0 1980 y Fi(get)p 109 1980 26 +4 v 31 w(fo)l(cus)11 b Fm(:)83 b(1144)p 432 1993 167 +4 v -2 w(,)32 b(1145)p 653 1993 V -1 w(,)g(1146)p 875 +1993 V -2 w(,)g(1147)p 1096 1993 V -2 w(,)h(1168.)0 2082 +y Fi(get)p 109 2082 26 4 v 31 w(gr)l(e)l(en)p 328 2082 +V 30 w(p)l(art)12 b Fm(:)83 b(61,)34 b(93,)f(98)p 895 +2095 84 4 v -1 w(,)h(104,)f(106.)0 2183 y Fi(get)p 109 +2183 26 4 v 31 w(last)p 265 2183 V 30 w(p)l(oint)13 b +Fm(:)83 b(716,)30 b(721,)h(722,)g(750,)f(892)p 1307 2196 +125 4 v -1 w(,)i(893)p 1487 2196 V -1 w(,)g(920,)166 +2283 y(921,)39 b(922,)g(965,)g(968,)g(984,)g(994,)h(1009,)e(1172,)166 +2382 y(1173,)k(1216.)0 2484 y Fi(get)p 109 2484 26 4 +v 31 w(line)11 b Fm(:)83 b(309)p 383 2497 125 4 v -2 +w(,)34 b(594,)d(601)p 744 2497 V -1 w(,)i(603,)f(932)p +1106 2497 V -1 w(,)h(933)p 1287 2497 V -1 w(.)0 2585 +y Fi(get)p 109 2585 26 4 v 31 w(line)p 271 2585 V 31 w(switch)11 b Fm(:)83 b(418,)39 b(716,)f(717,)g(721,)h(748,)f(749,)166 -1777 y(876)p 166 1790 125 4 v -1 w(,)43 b(879,)e(917.)0 -1878 y Fi(get)p 109 1878 26 4 v 31 w(line)l(ar)p 344 -1878 V 31 w(e)l(c)l(c)l(entricity)12 b Fm(:)83 b(1143)p -894 1891 167 4 v -2 w(,)35 b(1144)p 1118 1891 V -2 w(.)0 -1979 y Fi(get)p 109 1979 26 4 v 31 w(maximum)p 495 1979 -V 30 w(z)14 b Fm(:)83 b(200)p 674 1992 125 4 v -1 w(,)37 -b(447)p 859 1992 V -1 w(,)h(448)p 1045 1992 V -2 w(,)g(455,)e(456,)g -(552,)166 2079 y(848)p 166 2092 V -1 w(,)j(849)p 353 -2092 V -1 w(,)g(1366)p 540 2092 167 4 v -2 w(,)h(1367)p -769 2092 V -2 w(.)0 2180 y Fi(get)p 109 2180 26 4 v 31 -w(me)l(an)p 331 2180 V 30 w(z)14 b Fm(:)83 b(199,)35 -b(200)p 694 2193 125 4 v -1 w(,)i(449)p 879 2193 V -2 -w(,)g(450)p 1063 2193 V -2 w(,)g(552,)e(850)p 1431 2193 -V -2 w(,)i(851)p 1615 2193 V -2 w(,)166 2280 y(1368)p -166 2293 167 4 v -2 w(,)44 b(1369)p 399 2293 V -1 w(.)0 -2381 y Fi(get)p 109 2381 26 4 v 31 w(mid)p 275 2381 V -31 w(p)l(oint)12 b Fm(:)83 b(1082)p 599 2394 167 4 v --2 w(,)34 b(1083)p 822 2394 V -2 w(,)f(1223,)e(1224.)0 -2483 y Fi(get)p 109 2483 26 4 v 31 w(minimum)p 486 2483 -V 30 w(z)14 b Fm(:)83 b(199,)27 b(200)p 841 2496 125 -4 v -2 w(,)h(445)p 1016 2496 V -1 w(,)g(446)p 1192 2496 -V -2 w(,)g(454,)e(456,)h(550,)166 2582 y(552,)36 b(846)p -351 2595 V -2 w(,)i(847)p 536 2595 V -2 w(,)f(1364)p -720 2595 167 4 v -2 w(,)h(1365)p 947 2595 V -2 w(.)0 -2684 y Fi(get)p 109 2684 26 4 v 31 w(name)10 b Fm(:)83 -b(93,)42 b(102)p 595 2697 125 4 v -2 w(,)h(104,)d(776,)h(802,)g(807,)g -(824,)166 2783 y(1377,)f(1380,)f(1383.)0 2885 y Fi(get)p -109 2885 26 4 v 31 w(net)11 b Fm(:)83 b(1426,)39 b(1438,)h(1443)p -826 2898 167 4 v -2 w(,)h(1444)p 1056 2898 V -2 w(,)g(1446,)e(1455,)166 -2984 y(1457)p 166 2997 V -2 w(,)h(1458)p 395 2997 V -2 -w(,)f(1460,)f(1470)p 852 2997 V -2 w(,)h(1471)p 1080 -2997 V -2 w(,)h(1473,)d(1478,)166 3084 y(1483,)j(1484)p -397 3097 V -2 w(,)h(1485)p 627 3097 V -2 w(.)0 3185 y -Fi(get)p 109 3185 26 4 v 31 w(normal)13 b Fm(:)83 b(513)p -509 3198 125 4 v -1 w(,)36 b(872,)f(873,)g(874,)g(875,)h(893)p -1430 3198 V -2 w(,)h(894)p 1614 3198 V -2 w(,)166 3285 -y(898)p 166 3298 V -1 w(,)29 b(899,)e(900,)h(945,)f(946,)h(965,)g -(1121,)f(1122,)g(1159,)166 3385 y(1223,)34 b(1224,)g(1263,)f(1265,)h -(1269.)0 3486 y Fi(get)p 109 3486 26 4 v 31 w(numeric)l(al)p -495 3486 V 30 w(e)l(c)l(c)l(entricity)12 b Fm(:)83 b(1145)p -1044 3499 167 4 v -2 w(,)34 b(1146)p 1267 3499 V -2 w(.)0 -3587 y Fi(get)p 109 3587 26 4 v 31 w(p)l(ath)11 b Fm(:)83 -b(602)p 402 3600 125 4 v -2 w(,)40 b(931)p 589 3600 V --2 w(,)g(1307.)0 3689 y Fi(get)p 109 3689 26 4 v 31 w(p)l(ath)p -290 3689 V 31 w(ptr)13 b Fm(:)83 b(1307,)32 b(1310,)g(1317)p -986 3702 167 4 v -2 w(,)i(1318)p 1209 3702 V -2 w(.)0 -3790 y Fi(get)p 109 3790 26 4 v 31 w(p)l(ersp)10 b Fm(:)83 -b(583)p 438 3803 125 4 v -2 w(.)0 3892 y Fi(get)p 109 -3892 26 4 v 31 w(p)l(ersp)p 327 3892 V 31 w(element)12 -b Fm(:)83 b(401,)34 b(584)p 932 3905 125 4 v -1 w(,)h(585)p -1115 3905 V -1 w(.)0 3993 y Fi(get)p 109 3993 26 4 v -31 w(plane)11 b Fm(:)83 b(619,)29 b(899)p 620 4006 125 -4 v -2 w(,)i(900)p 798 4006 V -2 w(,)g(901,)e(945,)g(946,)g(951,)g -(982,)166 4093 y(993,)38 b(1163,)f(1171,)g(1263.)0 4194 -y Fi(get)p 109 4194 26 4 v 31 w(p)l(oint)12 b Fm(:)83 -b(716,)29 b(717,)h(721,)f(722,)h(750,)f(765,)g(887)p -1503 4207 125 4 v -1 w(,)i(888)p 1682 4207 V -2 w(,)166 -4294 y(900,)j(919,)g(946,)g(951,)f(954,)h(962,)g(965,)g(981,)g(982,)166 -4393 y(991,)28 b(1006,)g(1122,)g(1150,)f(1152,)h(1155,)g(1157,)f(1159,) -166 4493 y(1167,)38 b(1168,)f(1173,)h(1174,)f(1177,)h(1178,)f(1179,)166 -4592 y(1188,)25 b(1211,)g(1214,)g(1216,)g(1223,)g(1224,)g(1279,)g -(1438,)166 4692 y(1444,)g(1446,)g(1455,)g(1456,)g(1458,)g(1460,)g -(1469,)g(1471,)166 4792 y(1473,)37 b(1483,)f(1485,)h(1486.)0 -4893 y Fi(get)p 109 4893 26 4 v 31 w(p)l(olygon)p 408 -4893 V 32 w(c)l(enter)12 b Fm(:)83 b(1324.)0 4994 y Fi(get)p -109 4994 V 31 w(p)l(osition)11 b Fm(:)83 b(576)p 533 -5007 125 4 v -1 w(.)0 5096 y Fi(get)p 109 5096 26 4 v -31 w(r)l(adius)11 b Fm(:)83 b(1042)p 471 5109 167 4 v --2 w(,)41 b(1255)p 701 5109 V -2 w(.)0 5197 y Fi(get)p -109 5197 26 4 v 31 w(r)l(e)l(ctangle)10 b Fm(:)83 b(1307.)0 -5299 y Fi(get)p 109 5299 V 31 w(r)l(e)l(ctangle)p 457 -5299 V 30 w(c)l(enter)13 b Fm(:)83 b(1330)p 821 5312 -167 4 v -2 w(,)36 b(1331)p 1046 5312 V -2 w(.)0 5400 -y Fi(get)p 109 5400 26 4 v 31 w(r)l(e)l(ctangle)p 457 -5400 V 30 w(ptr)13 b Fm(:)84 b(1307,)29 b(1310,)h(1319)p -1148 5413 167 4 v -2 w(,)i(1320)p 1369 5413 V -2 w(.)2033 -263 y Fi(get)p 2142 263 26 4 v 31 w(r)l(e)l(d)p 2280 -263 V 30 w(p)l(art)13 b Fm(:)83 b(61,)34 b(93,)g(97)p -2849 276 84 4 v -1 w(,)i(104,)d(106.)2033 364 y Fi(get)p -2142 364 26 4 v 31 w(r)l(e)l(g)p 2276 364 V 30 w(p)l(olygon)12 -b Fm(:)83 b(1307.)2033 466 y Fi(get)p 2142 466 V 31 w(r)l(e)l(g)p -2276 466 V 30 w(p)l(olygon)p 2574 466 V 32 w(c)l(enter)13 -b Fm(:)83 b(1332)p 2940 479 167 4 v -2 w(,)35 b(1333)p -3164 479 V -2 w(.)2033 567 y Fi(get)p 2142 567 26 4 v -31 w(r)l(e)l(g)p 2276 567 V 30 w(p)l(olygon)p 2574 567 -V 32 w(ptr)13 b Fm(:)83 b(1307,)29 b(1310,)g(1321)p 3265 -580 167 4 v -2 w(,)h(1322)p 3484 580 V -1 w(.)2033 668 -y Fi(get)p 2142 668 26 4 v 31 w(shap)l(e)11 b Fm(:)83 -b(1307.)2033 769 y Fi(get)p 2142 769 V 31 w(shap)l(e)p -2367 769 V 31 w(c)l(enter)13 b Fm(:)83 b(1291,)33 b(1324)p -2956 782 167 4 v -2 w(,)i(1325)p 3180 782 V -2 w(,)f(1327,)f(1329,)2199 -869 y(1331,)42 b(1333.)2033 970 y Fi(get)p 2142 970 26 -4 v 31 w(shap)l(e)p 2367 970 V 31 w(ptr)13 b Fm(:)84 -b(1291,)26 b(1307,)g(1310,)h(1311)p 3270 983 167 4 v --2 w(,)h(1312)p 3487 983 V -2 w(,)g(1313,)2199 1070 y(1315,)37 -b(1317,)f(1319,)h(1321.)2033 1171 y Fi(get)p 2142 1171 -26 4 v 31 w(size)11 b Fm(:)83 b(891)p 2416 1184 125 4 -v -2 w(.)2033 1272 y Fi(get)p 2142 1272 26 4 v 31 w(tr)l(ansform)10 -b Fm(:)83 b(341)p 2636 1285 125 4 v -1 w(,)40 b(580)p -2824 1285 V -2 w(.)2033 1374 y Fi(get)p 2142 1374 26 -4 v 31 w(tr)l(ansform)p 2525 1374 V 30 w(element)12 b -Fm(:)83 b(399,)32 b(581)p 3127 1387 125 4 v -1 w(,)i(582)p -3309 1387 V -2 w(.)2033 1475 y Fi(get)p 2142 1475 26 -4 v 31 w(up)9 b Fm(:)83 b(579)p 2370 1488 125 4 v -1 -w(.)2033 1576 y Fi(get)p 2142 1576 26 4 v 31 w(use)p -2290 1576 V 30 w(name)10 b Fm(:)84 b(93,)33 b(100)p 2767 -1589 125 4 v -2 w(,)h(101)p 2948 1589 V -1 w(,)g(104,)f(776,)g(802,)f -(807,)2199 1676 y(824,)38 b(1377,)f(1380,)g(1383.)2033 -1777 y Fi(get)p 2142 1777 26 4 v 31 w(w)13 b Fm(:)83 -b(337)p 2342 1790 125 4 v -2 w(,)39 b(338)p 2528 1790 -V -1 w(,)g(339)p 2715 1790 V -2 w(,)g(340)p 2901 1790 -V -1 w(.)2033 1878 y Fi(get)p 2142 1878 26 4 v 31 w(x)13 -b Fm(:)83 b(264,)28 b(310,)f(316,)h(322)p 2856 1891 125 -4 v -2 w(,)h(323)p 3032 1891 V -1 w(,)g(324)p 3209 1891 -V -2 w(,)g(325)p 3385 1891 V -1 w(,)g(349,)e(371,)2199 -1978 y(372,)34 b(373,)g(378,)g(379,)f(395,)h(437,)g(463,)g(464,)g(472,) -2199 2078 y(476,)g(498,)g(500,)g(502,)f(516,)h(566,)g(568,)g(606,)g -(644,)2199 2177 y(731,)24 b(736,)h(843,)f(946,)h(954,)f(1015,)g(1020,)g -(1122,)g(1175,)2199 2277 y(1176,)34 b(1201,)g(1206,)f(1279,)h(1485.) -2033 2378 y Fi(get)p 2142 2378 26 4 v 31 w(y)11 b Fm(:)84 -b(327)p 2326 2391 125 4 v -2 w(,)38 b(328)p 2511 2391 -V -1 w(,)g(329)p 2697 2391 V -1 w(,)g(330)p 2883 2391 -V -2 w(,)h(349,)d(371,)h(372,)g(373,)2199 2478 y(378,)d(379,)g(395,)g -(437,)f(463,)h(464,)g(472,)g(476,)g(498,)2199 2578 y(500,)g(502,)g +2685 y(876)p 166 2698 125 4 v -1 w(,)43 b(879,)e(920.)0 +2786 y Fi(get)p 109 2786 26 4 v 31 w(line)l(ar)p 344 +2786 V 31 w(e)l(c)l(c)l(entricity)12 b Fm(:)83 b(1148)p +894 2799 167 4 v -2 w(,)35 b(1149)p 1118 2799 V -2 w(.)0 +2887 y Fi(get)p 109 2887 26 4 v 31 w(maximum)p 495 2887 +V 30 w(z)14 b Fm(:)83 b(200)p 674 2900 125 4 v -1 w(,)37 +b(447)p 859 2900 V -1 w(,)h(448)p 1045 2900 V -2 w(,)g(455,)e(456,)g +(552,)166 2987 y(848)p 166 3000 V -1 w(,)j(849)p 353 +3000 V -1 w(,)g(1371)p 540 3000 167 4 v -2 w(,)h(1372)p +769 3000 V -2 w(.)0 3088 y Fi(get)p 109 3088 26 4 v 31 +w(me)l(an)p 331 3088 V 30 w(z)14 b Fm(:)83 b(199,)35 +b(200)p 694 3101 125 4 v -1 w(,)i(449)p 879 3101 V -2 +w(,)g(450)p 1063 3101 V -2 w(,)g(552,)e(850)p 1431 3101 +V -2 w(,)i(851)p 1615 3101 V -2 w(,)166 3188 y(1373)p +166 3201 167 4 v -2 w(,)44 b(1374)p 399 3201 V -1 w(.)0 +3289 y Fi(get)p 109 3289 26 4 v 31 w(mid)p 275 3289 V +31 w(p)l(oint)12 b Fm(:)83 b(1087)p 599 3302 167 4 v +-2 w(,)34 b(1088)p 822 3302 V -2 w(,)f(1228,)e(1229.)0 +3390 y Fi(get)p 109 3390 26 4 v 31 w(minimum)p 486 3390 +V 30 w(z)14 b Fm(:)83 b(199,)27 b(200)p 841 3403 125 +4 v -2 w(,)h(445)p 1016 3403 V -1 w(,)g(446)p 1192 3403 +V -2 w(,)g(454,)e(456,)h(550,)166 3490 y(552,)36 b(846)p +351 3503 V -2 w(,)i(847)p 536 3503 V -2 w(,)f(1369)p +720 3503 167 4 v -2 w(,)h(1370)p 947 3503 V -2 w(.)0 +3591 y Fi(get)p 109 3591 26 4 v 31 w(name)10 b Fm(:)83 +b(93,)42 b(102)p 595 3604 125 4 v -2 w(,)h(104,)d(776,)h(802,)g(807,)g +(824,)166 3691 y(1382,)f(1385,)f(1388.)0 3792 y Fi(get)p +109 3792 26 4 v 31 w(net)11 b Fm(:)83 b(1431,)39 b(1443,)h(1448)p +826 3805 167 4 v -2 w(,)h(1449)p 1056 3805 V -2 w(,)g(1451,)e(1460,)166 +3892 y(1462)p 166 3905 V -2 w(,)h(1463)p 395 3905 V -2 +w(,)f(1465,)f(1475)p 852 3905 V -2 w(,)h(1476)p 1080 +3905 V -2 w(,)h(1478,)d(1483,)166 3992 y(1488,)j(1489)p +397 4005 V -2 w(,)h(1490)p 627 4005 V -2 w(.)0 4093 y +Fi(get)p 109 4093 26 4 v 31 w(normal)13 b Fm(:)83 b(513)p +509 4106 125 4 v -1 w(,)36 b(872,)f(873,)g(874,)g(875,)h(896)p +1430 4106 V -2 w(,)h(897)p 1614 4106 V -2 w(,)166 4193 +y(901)p 166 4206 V -1 w(,)29 b(902,)e(903,)h(948,)f(949,)h(968,)g +(1126,)f(1127,)g(1164,)166 4292 y(1228,)34 b(1229,)g(1268,)f(1270,)h +(1274.)0 4394 y Fi(get)p 109 4394 26 4 v 31 w(numeric)l(al)p +495 4394 V 30 w(e)l(c)l(c)l(entricity)12 b Fm(:)83 b(1150)p +1044 4407 167 4 v -2 w(,)34 b(1151)p 1267 4407 V -2 w(.)0 +4495 y Fi(get)p 109 4495 26 4 v 31 w(p)l(ath)11 b Fm(:)83 +b(602)p 402 4508 125 4 v -2 w(,)40 b(934)p 589 4508 V +-2 w(,)g(1312.)0 4596 y Fi(get)p 109 4596 26 4 v 31 w(p)l(ath)p +290 4596 V 31 w(ptr)13 b Fm(:)83 b(1312,)32 b(1315,)g(1322)p +986 4609 167 4 v -2 w(,)i(1323)p 1209 4609 V -2 w(.)0 +4698 y Fi(get)p 109 4698 26 4 v 31 w(p)l(ersp)10 b Fm(:)83 +b(583)p 438 4711 125 4 v -2 w(.)0 4799 y Fi(get)p 109 +4799 26 4 v 31 w(p)l(ersp)p 327 4799 V 31 w(element)12 +b Fm(:)83 b(401,)34 b(584)p 932 4812 125 4 v -1 w(,)h(585)p +1115 4812 V -1 w(.)0 4900 y Fi(get)p 109 4900 26 4 v +31 w(plane)11 b Fm(:)83 b(619,)29 b(902)p 620 4913 125 +4 v -2 w(,)i(903)p 798 4913 V -2 w(,)g(904,)e(948,)g(949,)g(954,)g +(985,)166 5000 y(996,)38 b(1168,)f(1176,)g(1268.)0 5101 +y Fi(get)p 109 5101 26 4 v 31 w(p)l(oint)12 b Fm(:)83 +b(716,)29 b(717,)h(721,)f(722,)h(750,)f(765,)g(888)p +1503 5114 125 4 v -1 w(,)i(889)p 1682 5114 V -2 w(,)166 +5201 y(890)p 166 5214 V -1 w(,)k(891)p 349 5214 V -2 +w(,)h(903,)e(922,)f(949,)h(954,)g(957,)g(965,)g(968,)166 +5300 y(984,)f(985,)f(994,)h(1009,)f(1083,)g(1127,)g(1155,)g(1157,)166 +5400 y(1160,)25 b(1162,)g(1164,)g(1172,)g(1173,)g(1178,)g(1179,)g +(1182,)2199 263 y(1183,)g(1184,)g(1193,)g(1216,)g(1219,)g(1221,)g +(1228,)g(1229,)2199 363 y(1284,)g(1443,)g(1449,)g(1451,)g(1460,)g +(1461,)g(1463,)g(1465,)2199 462 y(1474,)31 b(1476,)g(1478,)g(1488,)g +(1490,)g(1491.)2033 564 y Fi(get)p 2142 564 26 4 v 31 +w(p)l(olygon)p 2441 564 V 32 w(c)l(enter)12 b Fm(:)83 +b(1329.)2033 665 y Fi(get)p 2142 665 V 31 w(p)l(osition)11 +b Fm(:)83 b(576)p 2566 678 125 4 v -1 w(.)2033 766 y +Fi(get)p 2142 766 26 4 v 31 w(r)l(adius)11 b Fm(:)83 +b(1045)p 2504 779 167 4 v -2 w(,)41 b(1260)p 2734 779 +V -2 w(.)2033 868 y Fi(get)p 2142 868 26 4 v 31 w(r)l(e)l(ctangle)10 +b Fm(:)83 b(1312.)2033 969 y Fi(get)p 2142 969 V 31 w(r)l(e)l(ctangle)p +2490 969 V 30 w(c)l(enter)13 b Fm(:)83 b(1335)p 2854 +982 167 4 v -2 w(,)36 b(1336)p 3079 982 V -2 w(.)2033 +1070 y Fi(get)p 2142 1070 26 4 v 31 w(r)l(e)l(ctangle)p +2490 1070 V 30 w(ptr)13 b Fm(:)84 b(1312,)29 b(1315,)h(1324)p +3181 1083 167 4 v -2 w(,)i(1325)p 3402 1083 V -2 w(.)2033 +1172 y Fi(get)p 2142 1172 26 4 v 31 w(r)l(e)l(d)p 2280 +1172 V 30 w(p)l(art)13 b Fm(:)83 b(61,)34 b(93,)g(97)p +2849 1185 84 4 v -1 w(,)i(104,)d(106.)2033 1273 y Fi(get)p +2142 1273 26 4 v 31 w(r)l(e)l(g)p 2276 1273 V 30 w(p)l(olygon)12 +b Fm(:)83 b(1312.)2033 1374 y Fi(get)p 2142 1374 V 31 +w(r)l(e)l(g)p 2276 1374 V 30 w(p)l(olygon)p 2574 1374 +V 32 w(c)l(enter)13 b Fm(:)83 b(1337)p 2940 1387 167 +4 v -2 w(,)35 b(1338)p 3164 1387 V -2 w(.)2033 1476 y +Fi(get)p 2142 1476 26 4 v 31 w(r)l(e)l(g)p 2276 1476 +V 30 w(p)l(olygon)p 2574 1476 V 32 w(ptr)13 b Fm(:)83 +b(1312,)29 b(1315,)g(1326)p 3265 1489 167 4 v -2 w(,)h(1327)p +3484 1489 V -1 w(.)2033 1577 y Fi(get)p 2142 1577 26 +4 v 31 w(shap)l(e)11 b Fm(:)83 b(1312.)2033 1678 y Fi(get)p +2142 1678 V 31 w(shap)l(e)p 2367 1678 V 31 w(c)l(enter)13 +b Fm(:)83 b(1296,)33 b(1329)p 2956 1691 167 4 v -2 w(,)i(1330)p +3180 1691 V -2 w(,)f(1332,)f(1334,)2199 1778 y(1336,)42 +b(1338.)2033 1879 y Fi(get)p 2142 1879 26 4 v 31 w(shap)l(e)p +2367 1879 V 31 w(ptr)13 b Fm(:)84 b(1296,)26 b(1312,)g(1315,)h(1316)p +3270 1892 167 4 v -2 w(,)h(1317)p 3487 1892 V -2 w(,)g(1318,)2199 +1979 y(1320,)37 b(1322,)f(1324,)h(1326.)2033 2080 y Fi(get)p +2142 2080 26 4 v 31 w(size)11 b Fm(:)83 b(894)p 2416 +2093 125 4 v -2 w(.)2033 2181 y Fi(get)p 2142 2181 26 +4 v 31 w(tr)l(ansform)10 b Fm(:)83 b(341)p 2636 2194 +125 4 v -1 w(,)40 b(580)p 2824 2194 V -2 w(.)2033 2283 +y Fi(get)p 2142 2283 26 4 v 31 w(tr)l(ansform)p 2525 +2283 V 30 w(element)12 b Fm(:)83 b(399,)32 b(581)p 3127 +2296 125 4 v -1 w(,)i(582)p 3309 2296 V -2 w(.)2033 2384 +y Fi(get)p 2142 2384 26 4 v 31 w(up)9 b Fm(:)83 b(579)p +2370 2397 125 4 v -1 w(.)2033 2485 y Fi(get)p 2142 2485 +26 4 v 31 w(use)p 2290 2485 V 30 w(name)10 b Fm(:)84 +b(93,)33 b(100)p 2767 2498 125 4 v -2 w(,)h(101)p 2948 +2498 V -1 w(,)g(104,)f(776,)g(802,)f(807,)2199 2585 y(824,)38 +b(1382,)f(1385,)g(1388.)2033 2686 y Fi(get)p 2142 2686 +26 4 v 31 w(w)13 b Fm(:)83 b(337)p 2342 2699 125 4 v +-2 w(,)39 b(338)p 2528 2699 V -1 w(,)g(339)p 2715 2699 +V -2 w(,)g(340)p 2901 2699 V -1 w(.)2033 2788 y Fi(get)p +2142 2788 26 4 v 31 w(x)13 b Fm(:)83 b(264,)28 b(310,)f(316,)h(322)p +2856 2801 125 4 v -2 w(,)h(323)p 3032 2801 V -1 w(,)g(324)p +3209 2801 V -2 w(,)g(325)p 3385 2801 V -1 w(,)g(349,)e(371,)2199 +2887 y(372,)34 b(373,)g(378,)g(379,)f(395,)h(437,)g(463,)g(464,)g(472,) +2199 2987 y(476,)g(498,)g(500,)g(502,)f(516,)h(566,)g(568,)g(606,)g +(644,)2199 3087 y(731,)24 b(736,)h(843,)f(949,)h(957,)f(1018,)g(1023,)g +(1127,)g(1180,)2199 3186 y(1181,)34 b(1206,)g(1211,)f(1284,)h(1490.) +2033 3287 y Fi(get)p 2142 3287 26 4 v 31 w(y)11 b Fm(:)84 +b(327)p 2326 3300 125 4 v -2 w(,)38 b(328)p 2511 3300 +V -1 w(,)g(329)p 2697 3300 V -1 w(,)g(330)p 2883 3300 +V -2 w(,)h(349,)d(371,)h(372,)g(373,)2199 3387 y(378,)d(379,)g(395,)g +(437,)f(463,)h(464,)g(472,)g(476,)g(498,)2199 3487 y(500,)g(502,)g (516,)g(566,)f(568,)h(606,)g(644,)g(731,)g(736,)2199 -2677 y(843,)f(946,)f(954,)h(1015,)f(1020,)g(1175,)g(1176,)g(1201,)2199 -2777 y(1206,)37 b(1458,)f(1469,)h(1471.)2033 2878 y Fi(get)p -2142 2878 26 4 v 31 w(z)14 b Fm(:)83 b(332)p 2322 2891 -125 4 v -1 w(,)29 b(333)p 2499 2891 V -2 w(,)g(334)p -2675 2891 V -1 w(,)g(335)p 2852 2891 V -1 w(,)g(349,)e(371,)h(372,)g -(373,)f(378,)2199 2978 y(379,)d(383,)f(463,)h(464,)f(476,)h(498,)g -(500,)f(502,)h(516,)f(566,)2199 3077 y(568,)32 b(606,)g(644,)f(731,)h -(736,)g(843,)g(946,)f(954,)h(1015,)2199 3177 y(1020,)f(1122,)g(1175,)g -(1176,)g(1201,)g(1206.)2033 3278 y Fi(getchar)14 b Fm(:)83 +3586 y(843,)f(949,)f(957,)h(1018,)f(1023,)g(1180,)g(1181,)g(1206,)2199 +3686 y(1211,)37 b(1463,)f(1474,)h(1476.)2033 3787 y Fi(get)p +2142 3787 26 4 v 31 w(z)14 b Fm(:)83 b(332)p 2322 3800 +125 4 v -1 w(,)29 b(333)p 2499 3800 V -2 w(,)g(334)p +2675 3800 V -1 w(,)g(335)p 2852 3800 V -1 w(,)g(349,)e(371,)h(372,)g +(373,)f(378,)2199 3887 y(379,)d(383,)f(463,)h(464,)f(476,)h(498,)g +(500,)f(502,)h(516,)f(566,)2199 3987 y(568,)32 b(606,)g(644,)f(731,)h +(736,)g(843,)g(949,)f(957,)h(1018,)2199 4086 y(1023,)f(1127,)g(1180,)g +(1181,)g(1206,)g(1211.)2033 4188 y Fi(getchar)14 b Fm(:)83 b(182,)42 b(249,)h(458,)f(644,)g(685,)g(858,)g(863,)2199 -3378 y(869,)g(911,)f(946.)2033 3479 y Fi(getopt)p 2254 -3479 26 4 v 31 w(long)p 2433 3479 V 31 w(only)12 b Fm(:)83 -b(1503.)2033 3580 y Fi(gr)l(ay)12 b Fm(:)83 b(108,)41 -b(112)p 2492 3593 125 4 v -2 w(,)h(113)p 2681 3593 V --2 w(.)2033 3682 y Fi(gr)l(e)l(en)10 b Fm(:)83 b(108,)29 -b(112)p 2515 3695 V -1 w(,)h(113)p 2693 3695 V -2 w(,)g(1282,)f(1438,)f -(1456,)g(1500.)2033 3783 y Fi(gr)l(e)l(en)p 2226 3783 -26 4 v 30 w(p)l(art)13 b Fm(:)83 b(56)p 2513 3796 84 +4287 y(869,)g(914,)f(949.)2033 4388 y Fi(getopt)p 2254 +4388 26 4 v 31 w(long)p 2433 4388 V 31 w(only)12 b Fm(:)83 +b(1508.)2033 4490 y Fi(gr)l(ay)12 b Fm(:)83 b(108,)41 +b(112)p 2492 4503 125 4 v -2 w(,)h(113)p 2681 4503 V +-2 w(.)2033 4591 y Fi(gr)l(e)l(en)10 b Fm(:)83 b(108,)29 +b(112)p 2515 4604 V -1 w(,)h(113)p 2693 4604 V -2 w(,)g(1287,)f(1443,)f +(1461,)g(1505.)2033 4692 y Fi(gr)l(e)l(en)p 2226 4692 +26 4 v 30 w(p)l(art)13 b Fm(:)83 b(56)p 2513 4705 84 4 v -1 w(,)38 b(59,)f(61,)h(64,)f(66,)g(69,)h(71,)f(74,)g(75,)2199 -3883 y(76,)42 b(85,)g(89,)f(98.)2033 3984 y Fi(gr)l(e)l(en)p -2226 3984 26 4 v 30 w(yel)t(low)15 b Fm(:)83 b(108,)34 -b(112)p 2776 3997 125 4 v -1 w(,)h(113)p 2959 3997 V --2 w(,)g(1500.)2033 4085 y Fe(h)p Fm(:)83 b(1414)p 2187 -4098 167 4 v -2 w(,)45 b(1415)p 2421 4098 V -2 w(.)2033 -4186 y Fi(h)p 2080 4186 26 4 v 31 w(length)11 b Fm(:)83 -b(1223)p 2437 4199 167 4 v -2 w(,)41 b(1224)p 2667 4199 -V -2 w(.)2033 4288 y Fi(half)23 b Fm(:)83 b(33,)42 b(963,)f(966)p -2631 4301 125 4 v -2 w(.)2033 4389 y Ff(HAVE_FLOAT_H)o -Fm(:)83 b(7.)2033 4490 y Ff(HAVE_LIMITS_H)o Fm(:)g(7.)2033 -4591 y Ff(HAVE_STDLIB_H)o Fm(:)g(7.)2033 4693 y Fi(height)13 -b Fm(:)84 b(1408)p 2366 4706 167 4 v -2 w(,)39 b(1415,)e(1421.)2033 -4794 y Fi(help)p 2181 4794 26 4 v 32 w(c)l(olor)14 b -Fm(:)83 b(112)p 2502 4807 125 4 v -1 w(,)38 b(113)p 2688 -4807 V -1 w(,)h(115,)e(427,)g(428,)h(429,)f(654)p 3620 -4807 V -1 w(,)2199 4894 y(655)p 2199 4907 V -1 w(,)j(793,)e(795,)h -(1446.)2033 4995 y Fi(help)p 2181 4995 26 4 v 32 w(c)l(olor)p -2387 4995 V 31 w(ve)l(ctor)14 b Fm(:)83 b(115)p 2748 -5008 125 4 v -1 w(,)38 b(116)p 2934 5008 V -1 w(.)2033 -5096 y Fi(help)p 2181 5096 26 4 v 32 w(dash)p 2373 5096 -V 32 w(p)l(attern)10 b Fm(:)83 b(654)p 2772 5109 125 -4 v -1 w(,)33 b(655)p 2953 5109 V -1 w(,)g(793,)f(795.)2033 -5197 y Ff(HELP_INDEX)p Fm(:)83 b(1503)p 2579 5210 167 -4 v -2 w(.)2033 5299 y Fi(hex)p 2157 5299 26 4 v 31 w(p)l(attern)p -2444 5299 V 30 w(1)16 b Fm(:)83 b(1275,)34 b(1278)p 2858 -5312 167 4 v -2 w(,)i(1279)p 3083 5312 V -2 w(.)2033 -5400 y Fi(hex)p 2157 5400 26 4 v 31 w(p)l(attern1)15 -b Fm(:)83 b(397.)p eop end -%%Page: 492 492 -TeXDict begin 492 491 bop 0 83 a Fm(492)140 b Fl(INDEX)2670 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1517)0 263 y Fi(hexagon)p -293 263 26 4 v 31 w(ctr)13 b Fm(:)83 b(1279)p 539 276 -167 4 v -1 w(.)0 367 y Fi(hexagon)p 293 367 26 4 v 31 -w(diameter)15 b Fm(:)83 b(1483)p 756 380 167 4 v -2 w(,)34 -b(1484)p 979 380 V -2 w(,)g(1485)p 1202 380 V -2 w(.)0 -471 y Fi(hexagon)p 293 471 26 4 v 31 w(r)l(adius)12 b -Fm(:)83 b(1476)p 656 484 167 4 v -2 w(,)35 b(1480,)f(1483.)0 -576 y Fi(hi)14 b Fm(:)83 b(181,)41 b(182)p 377 589 125 -4 v -2 w(,)i(184.)0 680 y Fi(horizontal)14 b Fm(:)84 -b(400)p 479 693 V -2 w(.)0 784 y Fi(hr)14 b Fm(:)83 b(182)p -197 797 V -2 w(,)43 b(184,)e(185.)0 888 y Fi(hv)14 b -Fm(:)83 b(182)p 200 901 V -2 w(,)45 b(186.)0 992 y Fe(i)p -Fm(:)83 b(22)p 135 1005 84 4 v -1 w(,)29 b(47)p 270 1005 -V -1 w(,)h(48)p 406 1005 V -1 w(,)f(49)p 541 1005 V -1 -w(,)h(50)p 677 1005 V -1 w(,)f(127)p 812 1005 125 4 v --1 w(,)h(131)p 990 1005 V -2 w(,)g(133)p 1167 1005 V --2 w(,)g(137)p 1344 1005 V -2 w(,)g(141)p 1521 1005 V --2 w(,)g(143)p 1698 1005 V -2 w(,)166 1092 y(148)p 166 -1105 V -1 w(,)35 b(161)p 349 1105 V -2 w(,)h(164)p 532 -1105 V -2 w(,)g(172)p 715 1105 V -2 w(,)f(174)p 897 1105 -V -1 w(,)g(182)p 1080 1105 V -1 w(,)g(303)p 1263 1105 -V -1 w(,)g(305)p 1446 1105 V -2 w(,)h(395)p 1629 1105 -V -2 w(,)166 1192 y(399)p 166 1205 V -1 w(,)f(405)p 349 -1205 V -2 w(,)h(452)p 532 1205 V -2 w(,)g(486)p 715 1205 -V -2 w(,)f(495)p 897 1205 V -1 w(,)g(508)p 1080 1205 -V -1 w(,)g(551)p 1263 1205 V -1 w(,)g(828)p 1446 1205 -V -2 w(,)h(840)p 1629 1205 V -2 w(,)166 1291 y(843)p -166 1304 V -1 w(,)31 b(844)p 345 1304 V -2 w(,)g(881)p -523 1304 V -1 w(,)g(885)p 702 1304 V -1 w(,)g(886)p 881 -1304 V -2 w(,)g(954)p 1059 1304 V -1 w(,)g(965)p 1238 -1304 V -1 w(,)g(1031)p 1417 1304 167 4 v -2 w(,)g(1062)p -1637 1304 V -2 w(,)166 1391 y(1105)p 166 1404 V -2 w(,)c(1122)p -382 1404 V -2 w(,)g(1174)p 598 1404 V -2 w(,)g(1180)p -814 1404 V -2 w(,)g(1254)p 1030 1404 V -2 w(,)g(1279)p -1246 1404 V -2 w(,)g(1282)p 1462 1404 V -2 w(,)g(1337)p -1678 1404 V -2 w(,)166 1491 y(1362)p 166 1504 V -2 w(,)g(1415)p -382 1504 V -2 w(,)g(1438)p 598 1504 V -2 w(,)g(1444)p -814 1504 V -2 w(,)g(1446)p 1030 1504 V -2 w(,)g(1455)p -1246 1504 V -2 w(,)g(1458)p 1462 1504 V -2 w(,)g(1460)p -1678 1504 V -2 w(,)166 1590 y(1469)p 166 1603 V -2 w(,)33 -b(1470)p 388 1603 V -2 w(,)g(1471)p 610 1603 V -2 w(,)g(1473)p -832 1603 V -2 w(,)g(1483)p 1054 1603 V -2 w(,)g(1485)p -1276 1603 V -2 w(.)0 1694 y Fi(i)p 30 1694 26 4 v 31 -w(max)14 b Fm(:)83 b(1279)p 325 1707 167 4 v -2 w(.)0 -1799 y Fi(i)p 30 1799 26 4 v 31 w(min)11 b Fm(:)83 b(1279)p -313 1812 167 4 v -2 w(.)0 1903 y Fk(Icosahedron)5 b Fm(:)83 -b(658,)28 b(1424,)f(1462)p 1006 1916 V -2 w(,)i(1463,)f(1465,)f(1466)p -1661 1916 V -2 w(,)166 2002 y(1468,)37 b(1469)p 394 2015 -V -2 w(,)h(1471,)f(1473.)0 2107 y Ff(IDENTITY_TRANSFO)o(RM)n -Fm(:)83 b(191)p 895 2120 125 4 v -1 w(,)36 b(192)p 1079 -2120 V -2 w(.)0 2211 y Fk(ifstream)t Fm(:)83 b(39,)42 -b(40.)0 2315 y Fi(in)p 77 2315 26 4 v 31 w(angle)11 b -Fm(:)83 b(1180)p 406 2328 167 4 v -2 w(.)0 2419 y Fi(in)p -77 2419 26 4 v 31 w(cir)l(cle)11 b Fm(:)83 b(1021,)34 -b(1044)p 636 2432 167 4 v -2 w(,)h(1265)p 860 2432 V --2 w(,)h(1267.)0 2523 y Fi(in)p 77 2523 26 4 v 31 w(distanc)l(e)11 -b Fm(:)83 b(1223)p 510 2536 167 4 v -2 w(.)0 2628 y Fi(in)p -77 2628 26 4 v 31 w(el)t(lipse)12 b Fm(:)83 b(1091)p -444 2641 167 4 v -2 w(,)38 b(1224)p 671 2641 V -2 w(,)g(1226.)0 -2732 y Fi(in)p 77 2732 26 4 v 31 w(r)l(e)l(ctangle)10 -b Fm(:)83 b(1215)p 536 2745 167 4 v -2 w(,)37 b(1216)p -762 2745 V -2 w(,)g(1220.)0 2836 y Fi(in)p 77 2836 26 -4 v 31 w(str)l(e)l(am)10 b Fm(:)83 b(39)p 456 2849 84 -4 v -1 w(,)33 b(40)p 595 2849 V -1 w(,)h(42,)e(44,)h(1510,)f(1511.)0 -2940 y Fi(in)p 77 2940 26 4 v 31 w(str)l(e)l(am)p 345 -2940 V 30 w(name)10 b Fm(:)84 b(42)p 682 2953 84 4 v --1 w(,)38 b(43)p 826 2953 V -1 w(,)g(44.)0 3044 y Fi(initialize)p -315 3044 26 4 v 32 w(c)l(olors)12 b Fm(:)84 b(107)p 669 -3057 125 4 v -2 w(,)34 b(108)p 850 3057 V -2 w(,)g(112,)f(1511.)0 -3149 y Fi(initialize)p 315 3149 26 4 v 32 w(io)11 b Fm(:)83 -b(42)p 526 3162 84 4 v -1 w(,)36 b(43)p 668 3162 V -1 -w(,)g(1510,)e(1511.)0 3253 y Fi(inner)p 197 3253 26 4 -v 31 w(cir)l(cle)11 b Fm(:)83 b(1282)p 531 3266 167 4 -v -2 w(,)40 b(1285)p 760 3266 V -2 w(.)0 3357 y Fi(internal)p -288 3357 26 4 v 31 w(angle)11 b Fm(:)83 b(1022)p 617 -3370 167 4 v -2 w(,)33 b(1024,)e(1030,)g(1031.)0 3461 -y Fi(interse)l(ction)p 426 3461 26 4 v 31 w(ctr)13 b -Fm(:)83 b(1180)p 672 3474 167 4 v -2 w(,)38 b(1181.)0 -3566 y Fi(interse)l(ction)p 426 3566 26 4 v 31 w(line)11 -b Fm(:)83 b(594,)30 b(643)p 879 3579 125 4 v -2 w(,)h(644)p -1057 3579 V -1 w(,)g(996,)f(1183.)0 3670 y Fi(interse)l(ction)p -426 3670 26 4 v 31 w(p)l(oint)12 b Fm(:)83 b(33,)35 b(272,)f(527,)g -(528)p 1258 3683 125 4 v -1 w(,)h(529)p 1441 3683 V -1 -w(,)h(530)p 1625 3683 V -2 w(,)166 3769 y(603)p 166 3782 -V -1 w(,)f(604,)f(640)p 532 3782 V -2 w(,)i(641)p 715 -3782 V -2 w(,)f(642)p 897 3782 V -1 w(,)g(917)p 1080 -3782 V -1 w(,)g(918)p 1263 3782 V -1 w(,)g(919)p 1446 -3782 V -2 w(,)h(950,)166 3869 y(960,)31 b(985,)g(987,)g(994,)f(1439,)h -(1445,)f(1446.)0 3973 y Fi(interse)l(ction)p 426 3973 -26 4 v 31 w(p)l(oints)11 b Fm(:)83 b(268,)30 b(528,)g(644,)g(949,)f -(950)p 1498 3986 125 4 v -1 w(,)i(951)p 1677 3986 V -1 -w(,)166 4073 y(961)p 166 4086 V -1 w(,)25 b(962)p 339 -4086 V -2 w(,)g(981)p 511 4086 V -1 w(,)g(982)p 684 4086 -V -2 w(,)g(988,)f(990)p 1029 4086 V -1 w(,)h(991)p 1202 -4086 V -2 w(,)g(992)p 1374 4086 V -1 w(,)g(993)p 1547 -4086 V -2 w(,)g(996,)166 4172 y(1159,)g(1165)p 382 4185 -167 4 v -2 w(,)i(1166)p 598 4185 V -2 w(,)g(1167)p 814 -4185 V -2 w(,)g(1168)p 1030 4185 V -2 w(,)g(1169,)e(1170)p -1462 4185 V -2 w(,)i(1171)p 1678 4185 V -2 w(,)166 4272 -y(1174,)e(1183,)g(1184,)g(1216,)g(1223,)g(1257,)g(1258)p -1462 4285 V -2 w(,)i(1259)p 1678 4285 V -2 w(,)166 4372 -y(1260)p 166 4385 V -2 w(,)33 b(1261)p 388 4385 V -2 -w(,)g(1262)p 610 4385 V -2 w(,)g(1263)p 832 4385 V -2 -w(,)g(1427)p 1054 4385 V -2 w(,)g(1428)p 1276 4385 V --2 w(.)0 4476 y Fi(ints)11 b Fm(:)83 b(667.)0 4580 y -Ff(INVALID_BOOL_POI)o(NT)n Fm(:)g(271,)34 b(273,)g(274)p -1261 4593 125 4 v -2 w(,)i(275)p 1444 4593 V -2 w(,)g(536,)166 -4680 y(540,)f(541,)f(603,)h(641,)f(918,)h(919.)0 4784 +4792 y(76,)42 b(85,)g(89,)f(98.)2033 4893 y Fi(gr)l(e)l(en)p +2226 4893 26 4 v 30 w(yel)t(low)15 b Fm(:)83 b(108,)34 +b(112)p 2776 4906 125 4 v -1 w(,)h(113)p 2959 4906 V +-2 w(,)g(1505.)2033 4995 y Fe(h)p Fm(:)83 b(1419)p 2187 +5008 167 4 v -2 w(,)45 b(1420)p 2421 5008 V -2 w(.)2033 +5096 y Fi(h)p 2080 5096 26 4 v 31 w(length)11 b Fm(:)83 +b(1228)p 2437 5109 167 4 v -2 w(,)41 b(1229)p 2667 5109 +V -2 w(.)2033 5197 y Fi(half)23 b Fm(:)83 b(33,)42 b(966,)f(969)p +2631 5210 125 4 v -2 w(.)2033 5299 y Ff(HAVE_FLOAT_H)o +Fm(:)83 b(7.)2033 5400 y Ff(HAVE_LIMITS_H)o Fm(:)g(7.)p +eop end +%%Page: 497 497 +TeXDict begin 497 496 bop 0 83 a Fn(x)p Fm(1525)139 b +Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(497)0 263 y Ff(HAVE_STDLIB_H)o +Fm(:)83 b(7.)0 367 y Fi(height)13 b Fm(:)83 b(1413)p +332 380 167 4 v -1 w(,)39 b(1420,)e(1426.)0 471 y Fi(help)p +148 471 26 4 v 32 w(c)l(olor)14 b Fm(:)83 b(112)p 469 +484 125 4 v -1 w(,)38 b(113)p 655 484 V -1 w(,)h(115,)e(427,)g(428,)h +(429,)f(654)p 1587 484 V -2 w(,)166 571 y(655)p 166 584 +V -1 w(,)j(793,)e(795,)h(1451.)0 675 y Fi(help)p 148 +675 26 4 v 32 w(c)l(olor)p 354 675 V 31 w(ve)l(ctor)14 +b Fm(:)83 b(115)p 715 688 125 4 v -1 w(,)38 b(116)p 901 +688 V -2 w(.)0 778 y Fi(help)p 148 778 26 4 v 32 w(dash)p +340 778 V 32 w(p)l(attern)10 b Fm(:)83 b(654)p 739 791 +125 4 v -1 w(,)33 b(655)p 920 791 V -2 w(,)h(793,)e(795.)0 +882 y Ff(HELP_INDEX)p Fm(:)83 b(1508)p 546 895 167 4 +v -2 w(.)0 986 y Fi(hex)p 124 986 26 4 v 31 w(p)l(attern)p +411 986 V 30 w(1)16 b Fm(:)83 b(1280,)34 b(1283)p 825 +999 167 4 v -2 w(,)i(1284)p 1050 999 V -2 w(.)0 1090 +y Fi(hex)p 124 1090 26 4 v 31 w(p)l(attern1)15 b Fm(:)83 +b(397.)0 1194 y Fi(hexagon)p 293 1194 V 31 w(ctr)13 b +Fm(:)83 b(1284)p 539 1207 167 4 v -1 w(.)0 1298 y Fi(hexagon)p +293 1298 26 4 v 31 w(diameter)15 b Fm(:)83 b(1488)p 756 +1311 167 4 v -2 w(,)34 b(1489)p 979 1311 V -2 w(,)g(1490)p +1202 1311 V -2 w(.)0 1402 y Fi(hexagon)p 293 1402 26 +4 v 31 w(r)l(adius)12 b Fm(:)83 b(1481)p 656 1415 167 +4 v -2 w(,)35 b(1485,)f(1488.)0 1506 y Fi(hi)14 b Fm(:)83 +b(181,)41 b(182)p 377 1519 125 4 v -2 w(,)i(184.)0 1610 +y Fi(horizontal)14 b Fm(:)84 b(400)p 479 1623 V -2 w(.)0 +1714 y Fi(hr)14 b Fm(:)83 b(182)p 197 1727 V -2 w(,)43 +b(184,)e(185.)0 1818 y Fi(hv)14 b Fm(:)83 b(182)p 200 +1831 V -2 w(,)45 b(186.)0 1922 y Fe(i)p Fm(:)83 b(16)p +135 1935 84 4 v -1 w(,)31 b(22)p 272 1935 V -1 w(,)h(47)p +410 1935 V -1 w(,)f(48)p 547 1935 V -1 w(,)g(49)p 684 +1935 V -1 w(,)h(50)p 822 1935 V -1 w(,)f(127)p 959 1935 +125 4 v -1 w(,)g(131)p 1138 1935 V -1 w(,)g(133)p 1317 +1935 V -1 w(,)g(137)p 1496 1935 V -1 w(,)g(141)p 1675 +1935 V -1 w(,)166 2022 y(143)p 166 2035 V -1 w(,)25 b(148)p +339 2035 V -2 w(,)g(161)p 511 2035 V -1 w(,)g(164)p 684 +2035 V -2 w(,)g(172)p 856 2035 V -1 w(,)g(174)p 1029 +2035 V -1 w(,)g(182)p 1202 2035 V -2 w(,)g(303)p 1374 +2035 V -1 w(,)g(305)p 1547 2035 V -2 w(,)g(395)p 1719 +2035 V -1 w(,)166 2121 y(399)p 166 2134 V -1 w(,)35 b(405)p +349 2134 V -2 w(,)h(452)p 532 2134 V -2 w(,)g(486)p 715 +2134 V -2 w(,)f(495)p 897 2134 V -1 w(,)g(508)p 1080 +2134 V -1 w(,)g(551)p 1263 2134 V -1 w(,)g(828)p 1446 +2134 V -2 w(,)h(840)p 1629 2134 V -2 w(,)166 2221 y(843)p +166 2234 V -1 w(,)31 b(844)p 345 2234 V -2 w(,)g(881)p +523 2234 V -1 w(,)g(885)p 702 2234 V -1 w(,)g(886)p 881 +2234 V -2 w(,)g(957)p 1059 2234 V -1 w(,)g(968)p 1238 +2234 V -1 w(,)g(1034)p 1417 2234 167 4 v -2 w(,)g(1065)p +1637 2234 V -2 w(,)166 2320 y(1110)p 166 2333 V -2 w(,)c(1127)p +382 2333 V -2 w(,)g(1179)p 598 2333 V -2 w(,)g(1185)p +814 2333 V -2 w(,)g(1259)p 1030 2333 V -2 w(,)g(1284)p +1246 2333 V -2 w(,)g(1287)p 1462 2333 V -2 w(,)g(1342)p +1678 2333 V -2 w(,)166 2420 y(1367)p 166 2433 V -2 w(,)g(1420)p +382 2433 V -2 w(,)g(1443)p 598 2433 V -2 w(,)g(1449)p +814 2433 V -2 w(,)g(1451)p 1030 2433 V -2 w(,)g(1460)p +1246 2433 V -2 w(,)g(1463)p 1462 2433 V -2 w(,)g(1465)p +1678 2433 V -2 w(,)166 2520 y(1474)p 166 2533 V -2 w(,)33 +b(1475)p 388 2533 V -2 w(,)g(1476)p 610 2533 V -2 w(,)g(1478)p +832 2533 V -2 w(,)g(1488)p 1054 2533 V -2 w(,)g(1490)p +1276 2533 V -2 w(.)0 2624 y Fi(i)p 30 2624 26 4 v 31 +w(max)14 b Fm(:)83 b(1284)p 325 2637 167 4 v -2 w(.)0 +2728 y Fi(i)p 30 2728 26 4 v 31 w(min)11 b Fm(:)83 b(1284)p +313 2741 167 4 v -2 w(.)0 2832 y Fk(Icosahedron)5 b Fm(:)83 +b(658,)28 b(1429,)f(1467)p 1006 2845 V -2 w(,)i(1468,)f(1470,)f(1471)p +1661 2845 V -2 w(,)166 2931 y(1473,)37 b(1474)p 394 2944 +V -2 w(,)h(1476,)f(1478.)0 3035 y Ff(IDENTITY_TRANSFO)o(RM)n +Fm(:)83 b(191)p 895 3048 125 4 v -1 w(,)36 b(192)p 1079 +3048 V -2 w(.)0 3139 y Fk(ifstream)t Fm(:)83 b(39,)42 +b(40.)0 3243 y Fi(in)p 77 3243 26 4 v 31 w(angle)11 b +Fm(:)83 b(1185)p 406 3256 167 4 v -2 w(.)0 3347 y Fi(in)p +77 3347 26 4 v 31 w(cir)l(cle)11 b Fm(:)83 b(1024,)34 +b(1047)p 636 3360 167 4 v -2 w(,)h(1270)p 860 3360 V +-2 w(,)h(1272.)0 3451 y Fi(in)p 77 3451 26 4 v 31 w(distanc)l(e)11 +b Fm(:)83 b(1228)p 510 3464 167 4 v -2 w(.)0 3555 y Fi(in)p +77 3555 26 4 v 31 w(el)t(lipse)12 b Fm(:)83 b(1096)p +444 3568 167 4 v -2 w(,)38 b(1229)p 671 3568 V -2 w(,)g(1231.)0 +3659 y Fi(in)p 77 3659 26 4 v 31 w(r)l(e)l(ctangle)10 +b Fm(:)83 b(1220)p 536 3672 167 4 v -2 w(,)37 b(1221)p +762 3672 V -2 w(,)g(1225.)0 3763 y Fi(in)p 77 3763 26 +4 v 31 w(str)l(e)l(am)10 b Fm(:)83 b(39)p 456 3776 84 +4 v -1 w(,)33 b(40)p 595 3776 V -1 w(,)h(42,)e(44,)h(1518,)f(1519.)0 +3867 y Fi(in)p 77 3867 26 4 v 31 w(str)l(e)l(am)p 345 +3867 V 30 w(name)10 b Fm(:)84 b(42)p 682 3880 84 4 v +-1 w(,)38 b(43)p 826 3880 V -1 w(,)g(44.)0 3971 y Fi(initialize)p +315 3971 26 4 v 32 w(c)l(olors)12 b Fm(:)84 b(107)p 669 +3984 125 4 v -2 w(,)34 b(108)p 850 3984 V -2 w(,)g(112,)f(1519.)0 +4075 y Fi(initialize)p 315 4075 26 4 v 32 w(io)11 b Fm(:)83 +b(42)p 526 4088 84 4 v -1 w(,)36 b(43)p 668 4088 V -1 +w(,)g(1518,)e(1519.)0 4179 y Fi(inner)p 197 4179 26 4 +v 31 w(cir)l(cle)11 b Fm(:)83 b(1287)p 531 4192 167 4 +v -2 w(,)40 b(1290)p 760 4192 V -2 w(.)0 4282 y Fi(internal)p +288 4282 26 4 v 31 w(angle)11 b Fm(:)83 b(1025)p 617 +4295 167 4 v -2 w(,)33 b(1027,)e(1033,)g(1034.)0 4386 +y Fi(interse)l(ction)p 426 4386 26 4 v 31 w(ctr)13 b +Fm(:)83 b(1185)p 672 4399 167 4 v -2 w(,)38 b(1186.)0 +4490 y Fi(interse)l(ction)p 426 4490 26 4 v 31 w(line)11 +b Fm(:)83 b(594,)30 b(643)p 879 4503 125 4 v -2 w(,)h(644)p +1057 4503 V -1 w(,)g(999,)f(1188.)0 4594 y Fi(interse)l(ction)p +426 4594 26 4 v 31 w(p)l(oint)12 b Fm(:)83 b(33,)35 b(272,)f(527,)g +(528)p 1258 4607 125 4 v -1 w(,)h(529)p 1441 4607 V -1 +w(,)h(530)p 1625 4607 V -2 w(,)166 4694 y(603)p 166 4707 +V -1 w(,)f(604,)f(640)p 532 4707 V -2 w(,)i(641)p 715 +4707 V -2 w(,)f(642)p 897 4707 V -1 w(,)g(920)p 1080 +4707 V -1 w(,)g(921)p 1263 4707 V -1 w(,)g(922)p 1446 +4707 V -2 w(,)h(953,)166 4794 y(963,)31 b(988,)g(990,)g(997,)f(1444,)h +(1450,)f(1451.)0 4898 y Fi(interse)l(ction)p 426 4898 +26 4 v 31 w(p)l(oints)11 b Fm(:)83 b(268,)30 b(528,)g(644,)g(952,)f +(953)p 1498 4911 125 4 v -1 w(,)i(954)p 1677 4911 V -1 +w(,)166 4997 y(964)p 166 5010 V -1 w(,)25 b(965)p 339 +5010 V -2 w(,)g(984)p 511 5010 V -1 w(,)g(985)p 684 5010 +V -2 w(,)g(991,)f(993)p 1029 5010 V -1 w(,)h(994)p 1202 +5010 V -2 w(,)g(995)p 1374 5010 V -1 w(,)g(996)p 1547 +5010 V -2 w(,)g(999,)166 5097 y(1164,)g(1170)p 382 5110 +167 4 v -2 w(,)i(1171)p 598 5110 V -2 w(,)g(1172)p 814 +5110 V -2 w(,)g(1173)p 1030 5110 V -2 w(,)g(1174,)e(1175)p +1462 5110 V -2 w(,)i(1176)p 1678 5110 V -2 w(,)166 5196 +y(1179,)e(1188,)g(1189,)g(1221,)g(1228,)g(1262,)g(1263)p +1462 5209 V -2 w(,)i(1264)p 1678 5209 V -2 w(,)166 5296 +y(1265)p 166 5309 V -2 w(,)33 b(1266)p 388 5309 V -2 +w(,)g(1267)p 610 5309 V -2 w(,)g(1268)p 832 5309 V -2 +w(,)g(1432)p 1054 5309 V -2 w(,)g(1433)p 1276 5309 V +-2 w(.)0 5400 y Fi(ints)11 b Fm(:)83 b(667.)2033 263 +y Ff(INVALID_BOOL_POI)o(NT)n Fm(:)g(271,)34 b(273,)g(274)p +3294 276 125 4 v -1 w(,)h(275)p 3477 276 V -2 w(,)h(536,)2199 +363 y(540,)f(541,)f(603,)h(641,)f(921,)h(922.)2033 464 y Ff(INVALID_BOOL_POI)o(NT_)o(PA)o(IR)n Fm(:)83 b(274)p -1113 4797 V -2 w(,)34 b(275)p 1294 4797 V -2 w(,)f(951,)f(952,)166 -4884 y(959,)e(960,)f(962,)h(982,)g(983,)f(986,)h(991,)g(1168.)0 -4988 y Ff(INVALID_BOOL_POI)o(NT_)o(QU)o(AD)o(RUP)o(LE)n -Fm(:)83 b(274)p 1331 5001 V -2 w(,)26 b(275)p 1504 5001 -V -1 w(,)g(1171,)166 5087 y(1174,)i(1177,)h(1179,)f(1180,)g(1181,)h -(1182,)f(1263.)0 5192 y Ff(INVALID_BOOL_REA)o(L_P)o(OI)o(NT)n -Fm(:)83 b(274)p 1113 5205 V -2 w(,)31 b(275)p 1291 5205 -V -1 w(,)g(606.)0 5296 y Ff(INVALID_LINE)o Fm(:)83 b(610)p -633 5309 V -1 w(,)33 b(611)p 814 5309 V -2 w(,)g(644,)e(929,)g(930.)0 -5400 y Ff(INVALID_PATH)o Fm(:)83 b(883.)2033 263 y Ff(INVALID_PLANE)o -Fm(:)g(619,)36 b(623,)g(646,)g(647)p 3265 276 V -1 w(,)h(648)p -3450 276 V -1 w(,)g(900,)2199 363 y(901,)44 b(946.)2033 -464 y Ff(INVALID_POINT)o Fm(:)83 b(24,)29 b(269,)f(273,)g(274)p -3200 477 V -2 w(,)i(275)p 3377 477 V -2 w(,)g(350,)e(432,)2199 -564 y(462,)34 b(507,)g(508,)g(518,)f(527,)h(536,)g(541,)g(603,)g(605,) -2199 664 y(607,)g(610,)g(623,)g(624,)f(641,)h(647,)g(873,)g(888,)g -(890,)2199 763 y(893,)g(894,)g(895,)g(897,)f(898,)h(900,)g(948,)g(949,) -g(952,)2199 863 y(955,)g(956,)g(957,)g(958,)f(976,)h(978,)g(983,)g -(985,)g(996,)2199 962 y(1081,)25 b(1083,)g(1121,)g(1122,)g(1140,)g -(1142,)g(1158,)g(1159,)2199 1062 y(1174,)g(1179,)g(1183,)g(1187,)g -(1216,)g(1324,)g(1325,)g(1435,)2199 1162 y(1451,)37 b(1452,)f(1466,)h -(1480.)2033 1263 y Ff(INVALID_REAL)o Fm(:)83 b(12,)24 -b(15)p 2797 1276 84 4 v -1 w(,)h(16)p 2928 1276 V -1 -w(,)f(24,)g(25,)f(27)p 3319 1276 V -1 w(,)i(30,)e(191,)g(273,)2199 -1363 y(274,)h(318,)f(346,)h(347,)f(349,)h(350,)g(351,)f(355,)h(382,)f -(385,)2199 1463 y(387,)h(401,)f(452,)h(503,)f(505,)h(518,)g(533,)f -(534,)h(535,)f(536,)2199 1562 y(538,)h(539,)f(540,)h(541,)f(623,)h -(624,)g(842,)f(844,)h(879,)f(880,)2199 1662 y(943,)30 -b(944,)f(946,)h(955,)g(956,)f(957,)h(958,)g(1147,)f(1150,)2199 -1761 y(1152,)c(1155,)g(1157,)g(1163,)g(1178,)g(1179,)g(1187,)g(1188,) -2199 1861 y(1435,)31 b(1451,)g(1452,)g(1466,)g(1480,)g(1509.)2033 -1963 y Ff(INVALID_REAL_PAI)o(R)n Fm(:)83 b(25)p 2884 -1976 V -1 w(,)35 b(27)p 3025 1976 V -1 w(,)g(1129.)2033 -2064 y Ff(INVALID_REAL_SHO)o(RT)n Fm(:)83 b(24,)34 b(25)p -3069 2077 V -1 w(,)i(27)p 3211 2077 V -1 w(.)2033 2166 -y Ff(INVALID_TRANSFOR)o(M)n Fm(:)83 b(24,)29 b(183,)f(191)p -3197 2179 125 4 v -1 w(,)i(192)p 3375 2179 V -2 w(,)g(716,)e(717,)2199 -2266 y(722,)36 b(748,)g(750,)f(1006,)h(1211.)2033 2367 -y Fi(inverse)11 b Fm(:)83 b(181)p 2405 2380 V -1 w(,)34 -b(182)p 2587 2380 V -2 w(,)g(187)p 2768 2380 V -1 w(,)g(188)p -2950 2380 V -1 w(,)g(395,)e(561,)h(572,)f(958,)2199 2467 -y(1177,)i(1223,)g(1224,)f(1265,)h(1269.)2033 2568 y Fi(invert)12 -b Fm(:)83 b(187.)2033 2670 y Fi(ios)12 b Fm(:)83 b(44,)44 -b(1507.)2033 2772 y Fi(ios)p 2139 2772 26 4 v 31 w(b)l(ase)11 -b Fm(:)83 b(44.)2033 2873 y Fi(is)p 2097 2873 V 31 w(cir)l(cular)14 -b Fm(:)83 b(1253)p 2518 2886 167 4 v -2 w(,)40 b(1254)p -2747 2886 V -2 w(.)2033 2975 y Fi(is)p 2097 2975 26 4 -v 31 w(cubic)10 b Fm(:)83 b(941)p 2423 2988 125 4 v -2 -w(,)39 b(1124)p 2609 2988 167 4 v -2 w(,)g(1125)p 2837 -2988 V -2 w(.)2033 3077 y Fi(is)p 2097 3077 26 4 v 31 -w(cycle)12 b Fm(:)83 b(763,)36 b(864,)h(877)p 2787 3090 -125 4 v -2 w(,)h(909.)2033 3178 y Fi(is)p 2097 3178 26 -4 v 31 w(el)t(lipse)12 b Fm(:)83 b(1147.)2033 3280 y -Fi(is)p 2097 3280 V 31 w(el)t(liptic)l(al)15 b Fm(:)83 -b(1121)p 2545 3293 167 4 v -2 w(,)33 b(1122)p 2767 3293 -V -2 w(,)f(1150,)f(1152,)g(1155,)f(1157,)2199 3379 y(1187,)40 -b(1188,)f(1189.)2033 3481 y Fi(is)p 2097 3481 26 4 v -31 w(identity)12 b Fm(:)83 b(140)p 2514 3494 125 4 v --1 w(,)38 b(141)p 2700 3494 V -1 w(,)g(142)p 2886 3494 -V -2 w(,)g(143)p 3071 3494 V -1 w(,)g(174,)e(283,)h(307)p -3628 3494 V -1 w(,)2199 3581 y(399,)g(405,)g(472,)g(549,)f(553.)2033 -3682 y Fi(is)p 2097 3682 26 4 v 31 w(in)p 2200 3682 V -31 w(triangle)11 b Fm(:)83 b(357)p 2617 3695 125 4 v --1 w(,)37 b(901)p 2802 3695 V -1 w(,)g(988.)2033 3784 -y Fi(is)p 2097 3784 26 4 v 31 w(line)11 b Fm(:)83 b(876,)42 -b(879.)2033 3886 y Fi(is)p 2097 3886 V 31 w(line)l(ar)14 +3146 477 V -2 w(,)34 b(275)p 3327 477 V -2 w(,)f(954,)f(955,)2199 +564 y(962,)e(963,)f(965,)h(985,)g(986,)f(989,)h(994,)g(1173.)2033 +666 y Ff(INVALID_BOOL_POI)o(NT_)o(QU)o(ADR)o(UP)o(LE)n +Fm(:)83 b(274)p 3364 679 V -2 w(,)26 b(275)p 3537 679 +V -1 w(,)g(1176,)2199 765 y(1179,)i(1182,)h(1184,)f(1185,)g(1186,)h +(1187,)f(1268.)2033 867 y Ff(INVALID_BOOL_REA)o(L_P)o(OI)o(NT)n +Fm(:)83 b(274)p 3146 880 V -2 w(,)31 b(275)p 3324 880 +V -1 w(,)g(606.)2033 969 y Ff(INVALID_LINE)o Fm(:)83 +b(610)p 2666 982 V -1 w(,)33 b(611)p 2847 982 V -2 w(,)g(644,)e(932,)g +(933.)2033 1070 y Ff(INVALID_PATH)o Fm(:)83 b(883.)2033 +1172 y Ff(INVALID_PLANE)o Fm(:)g(619,)36 b(623,)g(646,)g(647)p +3265 1185 V -1 w(,)h(648)p 3450 1185 V -1 w(,)g(903,)2199 +1272 y(904,)44 b(949.)2033 1373 y Ff(INVALID_POINT)o +Fm(:)83 b(24,)29 b(269,)f(273,)g(274)p 3200 1386 V -2 +w(,)i(275)p 3377 1386 V -2 w(,)g(350,)e(432,)2199 1473 +y(462,)34 b(507,)g(508,)g(518,)f(527,)h(536,)g(541,)g(603,)g(605,)2199 +1573 y(607,)g(610,)g(623,)g(624,)f(641,)h(647,)g(873,)g(889,)g(891,) +2199 1672 y(893,)g(896,)g(897,)g(898,)f(900,)h(901,)g(903,)g(951,)g +(952,)2199 1772 y(955,)g(958,)g(959,)g(960,)f(961,)h(979,)g(981,)g +(986,)g(988,)2199 1872 y(999,)28 b(1086,)g(1088,)g(1126,)f(1127,)h +(1145,)g(1147,)f(1163,)2199 1971 y(1164,)e(1179,)g(1184,)g(1188,)g +(1192,)g(1221,)g(1329,)g(1330,)2199 2071 y(1440,)34 b(1456,)g(1457,)f +(1471,)h(1485.)2033 2173 y Ff(INVALID_REAL)o Fm(:)83 +b(12,)24 b(15,)g(16)p 2928 2186 84 4 v -1 w(,)g(24,)g(25,)f(27)p +3319 2186 V -1 w(,)i(30,)e(191,)g(273,)2199 2272 y(274,)h(318,)f(346,)h +(347,)f(349,)h(350,)g(351,)f(355,)h(382,)f(385,)2199 +2372 y(387,)h(401,)f(452,)h(503,)f(505,)h(518,)g(533,)f(534,)h(535,)f +(536,)2199 2471 y(538,)h(539,)f(540,)h(541,)f(623,)h(624,)g(842,)f +(844,)h(879,)f(880,)2199 2571 y(946,)30 b(947,)f(949,)h(958,)g(959,)f +(960,)h(961,)g(1152,)f(1155,)2199 2671 y(1157,)c(1160,)g(1162,)g(1168,) +g(1183,)g(1184,)g(1192,)g(1193,)2199 2770 y(1440,)g(1456,)g(1457,)g +(1471,)g(1485,)g(1514,)g(1515,)g(1516.)2033 2872 y Ff(INVALID_REAL_PAI) +o(R)n Fm(:)83 b(25)p 2884 2885 V -1 w(,)35 b(27)p 3025 +2885 V -1 w(,)g(1134.)2033 2974 y Ff(INVALID_REAL_SHO)o(RT)n +Fm(:)83 b(24,)34 b(25)p 3069 2987 V -1 w(,)i(27)p 3211 +2987 V -1 w(.)2033 3075 y Ff(INVALID_TRANSFOR)o(M)n Fm(:)83 +b(24,)29 b(183,)f(191)p 3197 3088 125 4 v -1 w(,)i(192)p +3375 3088 V -2 w(,)g(716,)e(717,)2199 3175 y(722,)36 +b(748,)g(750,)f(1009,)h(1216.)2033 3277 y Fi(inverse)11 +b Fm(:)83 b(181)p 2405 3290 V -1 w(,)34 b(182)p 2587 +3290 V -2 w(,)g(187)p 2768 3290 V -1 w(,)g(188)p 2950 +3290 V -1 w(,)g(395,)e(561,)h(572,)f(961,)2199 3376 y(1182,)i(1228,)g +(1229,)f(1270,)h(1274.)2033 3478 y Fi(invert)12 b Fm(:)83 +b(187.)2033 3580 y Fi(ios)12 b Fm(:)83 b(44,)44 b(1512.)2033 +3681 y Fi(ios)p 2139 3681 26 4 v 31 w(b)l(ase)11 b Fm(:)83 +b(44.)2033 3783 y Fi(ip)10 b Fm(:)83 b(16)p 2216 3796 +84 4 v(.)2033 3885 y Fi(is)p 2097 3885 26 4 v 31 w(cir)l(cular)14 +b Fm(:)83 b(1258)p 2518 3898 167 4 v -2 w(,)40 b(1259)p +2747 3898 V -2 w(.)2033 3987 y Fi(is)p 2097 3987 26 4 +v 31 w(cubic)10 b Fm(:)83 b(944)p 2423 4000 125 4 v -2 +w(,)39 b(1129)p 2609 4000 167 4 v -2 w(,)g(1130)p 2837 +4000 V -2 w(.)2033 4088 y Fi(is)p 2097 4088 26 4 v 31 +w(cycle)12 b Fm(:)83 b(763,)36 b(864,)h(877)p 2787 4101 +125 4 v -2 w(,)h(912.)2033 4190 y Fi(is)p 2097 4190 26 +4 v 31 w(el)t(lipse)12 b Fm(:)83 b(1152.)2033 4292 y +Fi(is)p 2097 4292 V 31 w(el)t(liptic)l(al)15 b Fm(:)83 +b(1126)p 2545 4305 167 4 v -2 w(,)33 b(1127)p 2767 4305 +V -2 w(,)f(1155,)f(1157,)g(1160,)f(1162,)2199 4391 y(1192,)40 +b(1193,)f(1194.)2033 4493 y Fi(is)p 2097 4493 26 4 v +31 w(identity)12 b Fm(:)83 b(140)p 2514 4506 125 4 v +-1 w(,)38 b(141)p 2700 4506 V -1 w(,)g(142)p 2886 4506 +V -2 w(,)g(143)p 3071 4506 V -1 w(,)g(174,)e(283,)h(307)p +3628 4506 V -1 w(,)2199 4593 y(399,)g(405,)g(472,)g(549,)f(553.)2033 +4694 y Fi(is)p 2097 4694 26 4 v 31 w(in)p 2200 4694 V +31 w(triangle)11 b Fm(:)83 b(357)p 2617 4707 125 4 v +-1 w(,)37 b(904)p 2802 4707 V -1 w(,)g(991.)2033 4796 +y Fi(is)p 2097 4796 26 4 v 31 w(line)11 b Fm(:)83 b(876,)42 +b(879.)2033 4898 y Fi(is)p 2097 4898 V 31 w(line)l(ar)14 b Fm(:)83 b(716,)30 b(721,)h(722,)f(749,)h(750,)f(874)p -3344 3899 125 4 v -1 w(,)h(875)p 3523 3899 V -1 w(,)h(876,)2199 -3985 y(879,)g(880,)g(917,)f(918,)h(919,)g(930,)g(962,)f(991,)h(1006,) -2199 4085 y(1167,)40 b(1168,)f(1211.)2033 4186 y Fi(is)p -2097 4186 26 4 v 31 w(on)p 2217 4186 V 31 w(fr)l(e)l(e)p -2376 4186 V 31 w(stor)l(e)10 b Fm(:)83 b(95)p 2691 4199 -84 4 v -1 w(,)31 b(200)p 2828 4199 125 4 v -2 w(,)g(344)p -3006 4199 V -2 w(,)g(685,)e(687,)g(698,)g(703,)2199 4286 -y(871)p 2199 4299 V -1 w(,)42 b(1334)p 2389 4299 167 -4 v -2 w(,)g(1335)p 2620 4299 V -2 w(.)2033 4388 y Fi(is)p -2097 4388 26 4 v 31 w(on)p 2217 4388 V 31 w(line)11 b -Fm(:)83 b(349,)38 b(354)p 2678 4401 125 4 v -2 w(,)h(355)p -2864 4401 V -1 w(.)2033 4489 y Fi(is)p 2097 4489 26 4 -v 31 w(on)p 2217 4489 V 31 w(plane)11 b Fm(:)83 b(356)p -2550 4502 125 4 v -1 w(,)35 b(637)p 2733 4502 V -1 w(,)h(901,)e(1163.) -2033 4591 y Fi(is)p 2097 4591 26 4 v 31 w(on)p 2217 4591 -V 31 w(se)l(gment)11 b Fm(:)83 b(349)p 2647 4604 125 -4 v -1 w(,)31 b(350)p 2826 4604 V -2 w(,)g(352)p 3004 -4604 V -2 w(,)g(353)p 3182 4604 V -1 w(,)f(355,)f(541,)h(603,)2199 -4691 y(958,)35 b(960,)f(985,)h(987,)f(988,)h(996.)2033 -4792 y Fi(is)p 2097 4792 26 4 v 31 w(op)l(en)11 b Fm(:)83 -b(106,)42 b(108.)2033 4894 y Fi(is)p 2097 4894 V 31 w(planar)14 -b Fm(:)83 b(872)p 2472 4907 125 4 v -1 w(,)33 b(873)p -2653 4907 V -1 w(,)h(898,)e(939,)g(1041,)f(1253,)h(1254,)2199 -4993 y(1265,)42 b(1269.)2033 5095 y Fi(is)p 2097 5095 -26 4 v 31 w(quadr)l(atic)10 b Fm(:)83 b(940)p 2570 5108 -125 4 v -1 w(,)37 b(957,)g(1123)p 2941 5108 167 4 v -2 -w(.)2033 5197 y Fi(is)p 2097 5197 26 4 v 31 w(quartic)9 -b Fm(:)83 b(942)p 2489 5210 125 4 v -1 w(,)38 b(1126)p -2675 5210 167 4 v -2 w(,)h(1127)p 2903 5210 V -2 w(.)2033 -5298 y Fi(ise)l(ct)p 2197 5298 26 4 v 31 w(line)11 b -Fm(:)83 b(1183)p 2471 5311 167 4 v -2 w(.)2033 5400 y -Ff(ISO)s Fm(:)g(211)p 2274 5413 125 4 v -1 w(,)44 b(212)p -2466 5413 V -1 w(.)p eop end -%%Page: 493 493 -TeXDict begin 493 492 bop 0 83 a Fn(x)p Fm(1517)139 b -Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(493)0 263 y Fi(iter)13 +3344 4911 125 4 v -1 w(,)h(875)p 3523 4911 V -1 w(,)h(876,)2199 +4997 y(879,)g(880,)g(920,)f(921,)h(922,)g(933,)g(965,)f(994,)h(1009,) +2199 5097 y(1172,)40 b(1173,)f(1216.)2033 5199 y Fi(is)p +2097 5199 26 4 v 31 w(on)p 2217 5199 V 31 w(fr)l(e)l(e)p +2376 5199 V 31 w(stor)l(e)10 b Fm(:)83 b(95)p 2691 5212 +84 4 v -1 w(,)31 b(200)p 2828 5212 125 4 v -2 w(,)g(344)p +3006 5212 V -2 w(,)g(685,)e(687,)g(698,)g(703,)2199 5298 +y(871)p 2199 5311 V -1 w(,)42 b(1339)p 2389 5311 167 +4 v -2 w(,)g(1340)p 2620 5311 V -2 w(.)2033 5400 y Fi(is)p +2097 5400 26 4 v 31 w(on)p 2217 5400 V 31 w(line)11 b +Fm(:)83 b(349,)38 b(354)p 2678 5413 125 4 v -2 w(,)h(355)p +2864 5413 V -1 w(.)p eop end +%%Page: 498 498 +TeXDict begin 498 497 bop 0 83 a Fm(498)140 b Fl(INDEX)2670 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1525)0 263 y Fi(is)p 64 +263 26 4 v 31 w(on)p 184 263 V 31 w(plane)11 b Fm(:)83 +b(356)p 517 276 125 4 v -1 w(,)35 b(637)p 700 276 V -1 +w(,)h(904,)e(1168.)0 364 y Fi(is)p 64 364 26 4 v 31 w(on)p +184 364 V 31 w(se)l(gment)11 b Fm(:)83 b(349)p 614 377 +125 4 v -1 w(,)30 b(350)p 792 377 V -1 w(,)h(352)p 971 +377 V -2 w(,)g(353)p 1149 377 V -1 w(,)f(355,)f(541,)h(603,)166 +464 y(961,)35 b(963,)f(988,)h(990,)f(991,)h(999.)0 565 +y Fi(is)p 64 565 26 4 v 31 w(op)l(en)11 b Fm(:)83 b(106,)41 +b(108.)0 667 y Fi(is)p 64 667 V 31 w(p)l(ar)l(al)t(lel)15 +b Fm(:)83 b(1082.)0 768 y Fi(is)p 64 768 V 31 w(planar)14 +b Fm(:)83 b(872)p 439 781 125 4 v -1 w(,)33 b(873)p 620 +781 V -1 w(,)g(901,)g(942,)f(1044,)f(1083,)h(1258,)166 +868 y(1259,)40 b(1270,)f(1274.)0 969 y Fi(is)p 64 969 +26 4 v 31 w(quadr)l(atic)10 b Fm(:)83 b(943)p 537 982 +125 4 v -1 w(,)37 b(960,)g(1128)p 908 982 167 4 v -2 +w(.)0 1070 y Fi(is)p 64 1070 26 4 v 31 w(quartic)9 b +Fm(:)83 b(945)p 456 1083 125 4 v -1 w(,)38 b(1131)p 642 +1083 167 4 v -2 w(,)h(1132)p 870 1083 V -2 w(.)0 1172 +y Fi(is)p 64 1172 26 4 v 31 w(r)l(e)l(ctangular)13 b +Fm(:)83 b(1082)p 610 1185 167 4 v -2 w(,)39 b(1083)p +838 1185 V -2 w(.)0 1273 y Fi(ise)l(ct)p 164 1273 26 +4 v 31 w(line)11 b Fm(:)83 b(1188)p 438 1286 167 4 v +-2 w(.)0 1374 y Ff(ISO)s Fm(:)g(211)p 241 1387 125 4 +v -1 w(,)44 b(212)p 433 1387 V -1 w(.)0 1476 y Fi(iter)13 b Fm(:)84 b(249,)29 b(543,)h(545,)g(546,)g(549,)g(550,)g(551,)f(552,)h -(659,)166 363 y(685,)24 b(734,)f(739,)h(741,)f(743,)h(765,)g(766,)f -(770,)h(771,)f(830,)166 462 y(840,)32 b(843,)g(895,)f(897,)h(911,)g -(985,)g(987,)f(994,)h(1118,)166 562 y(1122,)25 b(1254,)g(1282,)g(1297,) -g(1303,)g(1337,)g(1339,)g(1342,)166 662 y(1344,)g(1360,)g(1362,)g -(1375,)g(1377,)g(1379,)g(1380,)g(1382,)166 761 y(1383,)g(1385,)g(1386,) -g(1388,)g(1389,)g(1391,)g(1392,)g(1394,)166 861 y(1413,)j(1419,)h -(1456,)f(1460,)g(1469,)h(1473,)f(1483.)0 962 y Fi(iter)p -131 962 26 4 v 31 w(ctr)13 b Fm(:)83 b(1285)p 377 975 -167 4 v -2 w(.)0 1064 y Fi(iter)l(ator)14 b Fm(:)83 b(249,)31 -b(546,)h(549,)g(553,)g(659,)f(685,)h(734,)g(739,)166 -1163 y(741,)c(743,)f(840,)h(843,)f(859,)h(911,)g(1282,)f(1285,)g(1303,) -166 1263 y(1339,)e(1342,)g(1344,)g(1360,)g(1362,)g(1375,)g(1419,)g -(1428,)166 1363 y(1456,)34 b(1460,)g(1469,)f(1473,)h(1483.)0 -1464 y Fi(iter0)16 b Fm(:)83 b(1428.)0 1566 y Fi(iter1)16 -b Fm(:)83 b(1428.)0 1667 y Fe(j)5 b Fm(:)83 b(127)p 145 -1680 125 4 v -1 w(,)27 b(131)p 320 1680 V -2 w(,)h(133)p -495 1680 V -2 w(,)g(137)p 670 1680 V -2 w(,)g(141)p 845 -1680 V -2 w(,)g(143)p 1020 1680 V -2 w(,)g(148)p 1195 -1680 V -2 w(,)g(172)p 1370 1680 V -2 w(,)f(174)p 1544 -1680 V -1 w(,)g(182)p 1719 1680 V -1 w(,)166 1767 y(399)p -166 1780 V -1 w(,)k(405)p 345 1780 V -1 w(,)h(452)p 525 -1780 V -2 w(,)g(1279)p 704 1780 167 4 v -2 w(,)g(1282)p -925 1780 V -2 w(,)g(1458)p 1146 1780 V -2 w(,)g(1471)p -1367 1780 V -2 w(.)0 1868 y Fe(k)s Fm(:)83 b(174)p 152 -1881 125 4 v -2 w(,)43 b(182)p 342 1881 V -1 w(,)f(1279)p -532 1881 167 4 v -2 w(.)0 1970 y Fi(kil)t(l)p 114 1970 -26 4 v 32 w(lab)l(els)12 b Fm(:)83 b(231)p 449 1983 125 -4 v -1 w(,)41 b(232)p 638 1983 V -1 w(.)0 2071 y Fi(known)11 -b Fm(:)83 b(1128)p 346 2084 167 4 v -2 w(,)39 b(1129)p -574 2084 V -2 w(,)g(1130.)0 2173 y Fe(l)q Fm(:)83 b(597)p -132 2186 125 4 v -1 w(,)32 b(598)p 312 2186 V -1 w(,)g(599)p -492 2186 V -2 w(,)g(600)p 671 2186 V -1 w(,)g(601)p 851 -2186 V -2 w(,)g(604)p 1030 2186 V -1 w(,)g(605)p 1210 -2186 V -2 w(,)g(996)p 1389 2186 V -1 w(.)0 2274 y Fi(l)p -26 2274 26 4 v 31 w(p)10 b Fm(:)83 b(603)p 210 2287 125 -4 v -2 w(.)0 2376 y Fi(l)p 26 2376 26 4 v 31 w(q)12 b -Fm(:)83 b(603)p 208 2389 125 4 v -2 w(.)0 2477 y Fi(lab)l(el)14 -b Fm(:)83 b(207,)28 b(209,)h(227)p 631 2490 V -2 w(,)h(228)p -808 2490 V -2 w(,)g(264,)f(265,)f(461)p 1340 2490 V -2 -w(,)i(462)p 1517 2490 V -1 w(,)g(463)p 1695 2490 V -2 -w(,)166 2577 y(464)p 166 2590 V -1 w(,)35 b(465,)f(467,)g(469,)f(828,)h -(829)p 1080 2590 V -1 w(,)h(830)p 1263 2590 V -1 w(,)g(831)p -1446 2590 V -2 w(,)h(832)p 1629 2590 V -2 w(,)166 2676 -y(835,)d(920,)f(925,)h(1117)p 711 2689 167 4 v -2 w(,)h(1118)p -934 2689 V -2 w(,)g(1119,)e(1438,)g(1446,)166 2776 y(1460,)37 -b(1469,)f(1471,)h(1473.)0 2878 y Fk(Lab)s(el)5 b Fm(:)83 -b(208)p 341 2891 125 4 v -2 w(,)36 b(209,)e(210,)g(216,)h(222,)f(227,)g -(228,)g(264,)166 2977 y(461,)g(462,)g(470)p 532 2990 +(659,)166 1575 y(685,)24 b(734,)f(739,)h(741,)f(743,)h(765,)g(766,)f +(770,)h(771,)f(830,)166 1675 y(840,)32 b(843,)g(898,)f(900,)h(914,)g +(988,)g(990,)f(997,)h(1123,)166 1774 y(1127,)25 b(1259,)g(1287,)g +(1302,)g(1308,)g(1342,)g(1344,)g(1347,)166 1874 y(1349,)g(1365,)g +(1367,)g(1380,)g(1382,)g(1384,)g(1385,)g(1387,)166 1974 +y(1388,)g(1390,)g(1391,)g(1393,)g(1394,)g(1396,)g(1397,)g(1399,)166 +2073 y(1418,)j(1424,)h(1461,)f(1465,)g(1474,)h(1478,)f(1488.)0 +2175 y Fi(iter)p 131 2175 26 4 v 31 w(ctr)13 b Fm(:)83 +b(1290)p 377 2188 167 4 v -2 w(.)0 2276 y Fi(iter)l(ator)14 +b Fm(:)83 b(249,)31 b(546,)h(549,)g(553,)g(659,)f(685,)h(734,)g(739,) +166 2376 y(741,)c(743,)f(840,)h(843,)f(859,)h(914,)g(1287,)f(1290,)g +(1308,)166 2475 y(1344,)e(1347,)g(1349,)g(1365,)g(1367,)g(1380,)g +(1424,)g(1433,)166 2575 y(1461,)34 b(1465,)g(1474,)f(1478,)h(1488.)0 +2676 y Fi(iter0)16 b Fm(:)83 b(1433.)0 2777 y Fi(iter1)16 +b Fm(:)83 b(1433.)0 2879 y Fe(j)5 b Fm(:)83 b(127)p 145 +2892 125 4 v -1 w(,)27 b(131)p 320 2892 V -2 w(,)h(133)p +495 2892 V -2 w(,)g(137)p 670 2892 V -2 w(,)g(141)p 845 +2892 V -2 w(,)g(143)p 1020 2892 V -2 w(,)g(148)p 1195 +2892 V -2 w(,)g(172)p 1370 2892 V -2 w(,)f(174)p 1544 +2892 V -1 w(,)g(182)p 1719 2892 V -1 w(,)166 2978 y(399)p +166 2991 V -1 w(,)k(405)p 345 2991 V -1 w(,)h(452)p 525 +2991 V -2 w(,)g(1284)p 704 2991 167 4 v -2 w(,)g(1287)p +925 2991 V -2 w(,)g(1463)p 1146 2991 V -2 w(,)g(1476)p +1367 2991 V -2 w(.)0 3080 y Fe(k)s Fm(:)83 b(174)p 152 +3093 125 4 v -2 w(,)43 b(182)p 342 3093 V -1 w(,)f(1284)p +532 3093 167 4 v -2 w(.)0 3181 y Fi(kil)t(l)p 114 3181 +26 4 v 32 w(lab)l(els)12 b Fm(:)83 b(231)p 449 3194 125 +4 v -1 w(,)41 b(232)p 638 3194 V -1 w(.)0 3282 y Fi(known)11 +b Fm(:)83 b(1133)p 346 3295 167 4 v -2 w(,)39 b(1134)p +574 3295 V -2 w(,)g(1135.)0 3384 y Fe(l)q Fm(:)83 b(597)p +132 3397 125 4 v -1 w(,)32 b(598)p 312 3397 V -1 w(,)g(599)p +492 3397 V -2 w(,)g(600)p 671 3397 V -1 w(,)g(601)p 851 +3397 V -2 w(,)g(604)p 1030 3397 V -1 w(,)g(605)p 1210 +3397 V -2 w(,)g(999)p 1389 3397 V -1 w(.)0 3485 y Fi(l)p +26 3485 26 4 v 31 w(p)10 b Fm(:)83 b(603)p 210 3498 125 +4 v -2 w(.)0 3586 y Fi(l)p 26 3586 26 4 v 31 w(q)12 b +Fm(:)83 b(603)p 208 3599 125 4 v -2 w(.)0 3688 y Fi(lab)l(el)14 +b Fm(:)83 b(207,)28 b(209,)h(227)p 631 3701 V -2 w(,)h(228)p +808 3701 V -2 w(,)g(264,)f(265,)f(461)p 1340 3701 V -2 +w(,)i(462)p 1517 3701 V -1 w(,)g(463)p 1695 3701 V -2 +w(,)166 3787 y(464)p 166 3800 V -1 w(,)35 b(465,)f(467,)g(469,)f(828,)h +(829)p 1080 3800 V -1 w(,)h(830)p 1263 3800 V -1 w(,)g(831)p +1446 3800 V -2 w(,)h(832)p 1629 3800 V -2 w(,)166 3887 +y(835,)d(923,)f(928,)h(1122)p 711 3900 167 4 v -2 w(,)h(1123)p +934 3900 V -2 w(,)g(1124,)e(1443,)g(1451,)166 3987 y(1465,)37 +b(1474,)f(1476,)h(1478.)0 4088 y Fk(Lab)s(el)5 b Fm(:)83 +b(208)p 341 4101 125 4 v -2 w(,)36 b(209,)e(210,)g(216,)h(222,)f(227,)g +(228,)g(264,)166 4188 y(461,)g(462,)g(470)p 532 4201 V -2 w(,)i(471,)d(472,)h(543,)g(545,)g(546,)g(553,)166 -3077 y(830,)41 b(920,)g(1118.)0 3178 y Fk(Lab)s(els)t +4287 y(830,)41 b(923,)g(1123.)0 4388 y Fk(Lab)s(els)t Fm(:)83 b(196,)32 b(207,)g(208,)g(209,)g(216,)g(552.)0 -3280 y Fi(lab)l(els)12 b Fm(:)83 b(216)p 308 3293 V -1 -w(,)37 b(221,)f(228,)g(232,)g(249,)g(462)p 1233 3293 -V -2 w(,)i(543,)e(545,)166 3379 y(546,)42 b(548,)f(553.)0 -3481 y Fi(lamb)l(da)12 b Fm(:)83 b(903)p 367 3494 V -1 -w(.)0 3582 y Fi(lamb)l(da)p 254 3582 26 4 v 32 w(denominator)14 -b Fm(:)83 b(901)p 857 3595 125 4 v -1 w(,)36 b(903.)0 -3684 y Fi(last)p 130 3684 26 4 v 31 w(c)l(onne)l(ctor)13 -b Fm(:)83 b(763)p 622 3697 125 4 v -2 w(,)35 b(764,)f(770)p -987 3697 V -2 w(,)h(910)p 1169 3697 V -1 w(.)0 3785 y -Fi(lbl)13 b Fm(:)84 b(462)p 200 3798 V -2 w(,)43 b(471)p -390 3798 V -2 w(,)g(543)p 580 3798 V -2 w(.)0 3887 y -Ff(LDF_GCC_2_95)o Fm(:)83 b(5,)33 b(6,)f(7,)g(8,)g(21,)g(22,)g(1506.)0 -3988 y Ff(LDF_GCC_3_3)p Fm(:)83 b(5,)40 b(6,)g(7)p 800 -4001 42 4 v(.)0 4090 y Ff(LDF_PUBLIC)p Fm(:)83 b(5,)43 -b(7)p 654 4103 V -1 w(.)0 4191 y Ff(LDF_REAL_DOUBLE)n -Fm(:)83 b(12)p 764 4204 84 4 v -1 w(,)39 b(16.)0 4293 -y Ff(LDF_REAL_FLOAT)o Fm(:)83 b(12)p 721 4306 V -1 w(,)39 -b(16.)0 4394 y Fi(left)13 b Fm(:)83 b(148.)0 4496 y Fi(left)p -117 4496 26 4 v 31 w(shift)13 b Fm(:)83 b(1279)p 416 -4509 167 4 v -2 w(.)0 4597 y Fi(light)p 159 4597 26 4 -v 31 w(gr)l(ay)13 b Fm(:)83 b(108,)38 b(112)p 642 4610 -125 4 v -2 w(,)i(113)p 829 4610 V -2 w(.)0 4699 y Fi(limit)13 -b Fm(:)83 b(1284)p 286 4712 167 4 v -2 w(,)43 b(1285)p -518 4712 V -2 w(.)0 4800 y Fk(Line)5 b Fm(:)83 b(33)p -292 4813 84 4 v -1 w(,)40 b(272,)f(309,)g(528,)g(591,)g(593)p -1190 4813 125 4 v -1 w(,)h(594,)f(595,)166 4900 y(596)p -166 4913 V -1 w(,)c(597,)f(598)p 532 4913 V -2 w(,)i(599,)d(600,)h -(601,)g(602,)g(603,)g(604,)166 5000 y(605,)g(609,)g(610,)g(611,)f(643,) -h(644,)g(662,)g(917,)g(929,)166 5099 y(930,)39 b(931,)f(996,)h(1183.)0 -5201 y Fi(line)p 136 5201 26 4 v 31 w(switch)11 b Fm(:)84 -b(654)p 502 5214 125 4 v -2 w(,)37 b(657,)f(661,)f(664,)h(666,)f(669,)h -(671,)166 5300 y(674,)h(676,)g(874,)g(875,)g(876,)g(1027,)f(1037,)g -(1039,)166 5400 y(1059,)i(1062,)f(1067,)h(1072,)f(1074,)h(1102,)f -(1105,)2199 263 y(1235,)j(1238,)f(1243.)2033 364 y Fi(line)l(ar)p -2242 364 26 4 v 31 w(e)l(c)l(c)l(entricity)12 b Fm(:)83 -b(1098)p 2792 377 167 4 v -2 w(,)46 b(1104,)e(1105,)f(1144,)2199 -464 y(1187,)f(1188.)2033 565 y Fk(Lines)t Fm(:)83 b(528,)32 -b(591,)g(594,)g(603,)g(949,)h(1170.)2033 666 y Fi(lo)l(c)l(altime)12 -b Fm(:)83 b(43.)2033 767 y Fi(lo)l(c)l(ation)12 b Fm(:)83 -b(945)p 2428 780 125 4 v -2 w(,)36 b(946)p 2611 780 V --1 w(,)g(950,)e(960,)h(1162)p 3162 780 167 4 v -2 w(,)h(1163)p -3387 780 V -2 w(,)g(1179,)2199 866 y(1180,)42 b(1183.)2033 -967 y Fi(lo)l(c)l(ation)p 2315 967 26 4 v 32 w(switch)11 -b Fm(:)83 b(1180)p 2681 980 167 4 v -2 w(.)2033 1068 -y Fi(long)p 2186 1068 26 4 v 31 w(options)12 b Fm(:)83 -b(1503)p 2590 1081 167 4 v -2 w(.)2033 1169 y Fi(lo)l(op)p -2181 1169 26 4 v 32 w(ctr)13 b Fm(:)83 b(867)p 2428 1182 -125 4 v -2 w(.)2033 1270 y Fi(lt)12 b Fm(:)83 b(43)p -2200 1283 84 4 v -1 w(.)2033 1372 y Fe(M)9 b Fm(:)83 -b(1223)p 2229 1385 167 4 v -2 w(,)44 b(1224)p 2462 1385 -V -2 w(.)2033 1473 y Fe(m)p Fm(:)83 b(345)p 2212 1486 -125 4 v -1 w(,)42 b(346)p 2402 1486 V -1 w(,)h(508)p -2593 1486 V -2 w(.)2033 1574 y Fi(mag)12 b Fm(:)83 b(505)p -2299 1587 V -1 w(,)38 b(1163)p 2485 1587 167 4 v -2 w(,)f(1253)p -2711 1587 V -2 w(,)h(1254)p 2938 1587 V -2 w(.)2033 1675 -y Fi(magenta)11 b Fm(:)83 b(108,)33 b(112)p 2635 1688 -125 4 v -2 w(,)h(113)p 2816 1688 V -1 w(,)g(1456,)e(1500.)2033 -1776 y Fi(magnitude)11 b Fm(:)83 b(388,)36 b(502)p 2708 -1789 V -1 w(,)h(503)p 2893 1789 V -1 w(,)g(505,)g(507,)f(508,)g(557,) -2199 1875 y(605,)30 b(946,)h(1067,)f(1122,)f(1150,)h(1152,)g(1155,)g -(1157,)2199 1975 y(1162,)38 b(1163,)f(1188,)h(1223,)f(1224,)h(1253,)f -(1254,)2199 2075 y(1263,)j(1265,)f(1439.)2033 2176 y -Fi(mag0)16 b Fm(:)84 b(1253)p 2346 2189 167 4 v -2 w(,)42 -b(1254)p 2577 2189 V -2 w(.)2033 2277 y Fi(main)11 b -Fm(:)83 b(1509)p 2332 2290 V -2 w(.)2033 2378 y Fi(make)p -2224 2378 26 4 v 31 w(tabs)11 b Fm(:)84 b(1445)p 2510 -2391 167 4 v -2 w(,)29 b(1446)p 2728 2391 V -2 w(,)g(1459)p -2946 2391 V -2 w(,)g(1460)p 3164 2391 V -2 w(,)g(1472)p -3382 2391 V -2 w(,)h(1473)p 3601 2391 V -2 w(.)2033 2479 -y Fk(Matrix)5 b Fm(:)83 b(12)p 2434 2492 84 4 v -1 w(,)38 -b(122,)f(171,)g(174.)2033 2580 y Fi(matrix)14 b Fm(:)83 -b(122)p 2390 2593 125 4 v -1 w(,)35 b(126,)e(127,)g(128,)h(129,)f(130,) -h(131,)f(133,)2199 2679 y(135,)24 b(136,)f(137,)h(138,)f(141,)h(143,)g -(146,)f(148,)h(151,)f(153,)2199 2779 y(156,)34 b(158,)g(159,)g(162,)f -(163,)h(164,)g(172,)g(174,)g(182,)2199 2879 y(183,)e(184,)h(185,)f -(186,)g(405,)h(581,)f(584.)2033 2980 y Fi(max)14 b Fm(:)83 -b(15,)32 b(182)p 2441 2993 V -1 w(,)h(183,)e(843,)h(1159,)f(1162,)g -(1163,)f(1174,)2199 3079 y(1263,)42 b(1362.)2033 3180 -y Fi(max)p 2187 3180 26 4 v 30 w(ax)15 b Fm(:)83 b(1163)p -2414 3193 167 4 v -2 w(.)2033 3281 y Fi(max)p 2187 3281 -26 4 v 30 w(hexagons)12 b Fm(:)83 b(1278)p 2652 3294 -167 4 v -2 w(,)39 b(1279)p 2880 3294 V -2 w(.)2033 3382 -y Ff(MAX_REAL)q Fm(:)83 b(12,)42 b(15)p 2641 3395 84 -4 v -1 w(,)g(16)p 2789 3395 V -1 w(,)h(24,)f(25,)f(27)p -3235 3395 V -1 w(,)i(503,)e(843,)2199 3482 y(844,)j(1509.)2033 -3583 y Ff(MAX_REAL_SQRT)o Fm(:)83 b(24,)33 b(25)p 2850 -3596 V -1 w(,)h(26)p 2990 3596 V -1 w(,)g(27)p 3130 3596 -V -1 w(,)g(503.)2033 3684 y Fi(max)p 2187 3684 26 4 v -30 w(x)p 2256 3684 V 30 w(pr)l(oj)18 b Fm(:)83 b(252,)28 -b(253)p 2722 3697 125 4 v -1 w(,)h(254)p 2899 3697 V --1 w(,)g(547,)g(548)p 3254 3697 V -2 w(,)h(551,)e(554)p -3608 3697 V -2 w(.)2033 3785 y Fi(max)p 2187 3785 26 -4 v 30 w(y)p 2257 3785 V 31 w(pr)l(oj)18 b Fm(:)83 b(253)p -2547 3798 125 4 v -2 w(,)34 b(254)p 2728 3798 V -1 w(,)g(548)p -2910 3798 V -2 w(,)g(551,)f(554)p 3273 3798 V -2 w(.)2033 -3886 y Ff(MAX_Z)r Fm(:)83 b(213)p 2361 3899 V -1 w(,)32 -b(214)p 2541 3899 V -2 w(,)g(253,)f(254,)f(453,)g(547,)h(552.)2033 -3987 y Fi(max)p 2187 3987 26 4 v 30 w(z)p 2251 3987 V -31 w(pr)l(oj)17 b Fm(:)83 b(253)p 2540 4000 125 4 v -1 -w(,)34 b(254)p 2722 4000 V -2 w(,)h(548)p 2904 4000 V --2 w(,)f(551,)f(554)p 3267 4000 V -2 w(.)2033 4088 y -Ff(MEAN_Z)r Fm(:)83 b(213)p 2405 4101 V -1 w(,)38 b(214)p -2591 4101 V -2 w(,)g(453,)f(552.)2033 4189 y Fi(me)l(asur)l(ement)p -2511 4189 26 4 v 30 w(units)10 b Fm(:)83 b(264)p 2831 -4202 125 4 v -1 w(,)30 b(265)p 3009 4202 V -1 w(,)g(437,)f(458,)g(472.) -2033 4290 y Fi(me)l(diate)11 b Fm(:)84 b(511)p 2428 4303 -V -2 w(,)31 b(512)p 2606 4303 V -1 w(,)g(1067,)f(1082,)f(1083,)h(1265,) -f(1438,)2199 4390 y(1440,)34 b(1446,)g(1456,)f(1469,)h(1473.)2033 -4491 y Fi(mid)p 2173 4491 26 4 v 31 w(p)l(oint)13 b Fm(:)83 -b(1082.)2033 4592 y Fi(mid)p 2173 4592 V 31 w(pt)12 b -Fm(:)84 b(1265)p 2388 4605 167 4 v -2 w(.)2033 4693 y -Fi(min)11 b Fm(:)83 b(15,)38 b(843,)f(1263,)g(1362.)2033 -4794 y Ff(MIN_REAL)q Fm(:)83 b(843,)40 b(844.)2033 4895 -y Fi(min)p 2178 4895 26 4 v 31 w(x)p 2248 4895 V 30 w(pr)l(oj)17 -b Fm(:)83 b(252,)28 b(253)p 2713 4908 125 4 v -1 w(,)i(254)p -2891 4908 V -2 w(,)g(547,)e(548)p 3245 4908 V -1 w(,)h(551,)g(554)p -3600 4908 V -2 w(.)2033 4996 y Fi(min)p 2178 4996 26 -4 v 31 w(y)p 2249 4996 V 30 w(pr)l(oj)18 b Fm(:)83 b(253)p -2538 5009 125 4 v -2 w(,)35 b(254)p 2720 5009 V -2 w(,)f(548)p -2901 5009 V -1 w(,)g(551,)e(554)p 3264 5009 V -1 w(.)2033 -5097 y Ff(MIN_Z)r Fm(:)83 b(213)p 2361 5110 V -1 w(,)36 -b(214)p 2545 5110 V -1 w(,)g(453,)f(547,)g(552.)2033 -5198 y Fi(min)p 2178 5198 26 4 v 31 w(z)p 2243 5198 V -30 w(pr)l(oj)17 b Fm(:)84 b(253)p 2532 5211 125 4 v -2 -w(,)34 b(254)p 2713 5211 V -1 w(,)g(548)p 2895 5211 V --2 w(,)h(551,)d(554)p 3258 5211 V -1 w(.)2033 5299 y -Fi(mo)l(dify)13 b Fm(:)83 b(84)p 2390 5312 84 4 v -1 -w(,)45 b(85)p 2541 5312 V -1 w(.)2033 5400 y Fi(move)p -2224 5400 26 4 v 31 w(b)l(ack)14 b Fm(:)83 b(1279)p 2522 -5413 167 4 v -2 w(.)p eop end -%%Page: 494 494 -TeXDict begin 494 493 bop 0 83 a Fm(494)140 b Fl(INDEX)2670 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1517)0 263 y Fi(mu)10 b -Fm(:)83 b(903)p 229 276 125 4 v -1 w(.)0 364 y Fi(mu)p -118 364 26 4 v 30 w(denominator)14 b Fm(:)83 b(901)p -719 377 125 4 v -1 w(,)38 b(903.)0 466 y Fi(mx)14 b Fm(:)83 -b(644)p 227 479 V -2 w(.)0 567 y Fi(my)12 b Fm(:)83 b(644)p -226 580 V -2 w(.)0 668 y Fi(mz)14 b Fm(:)83 b(644)p 222 -681 V -1 w(.)0 770 y Fe(n)p Fm(:)g(60)p 156 783 84 4 -v -1 w(,)28 b(61)p 290 783 V -1 w(,)h(63)p 425 783 V --1 w(,)f(64)p 559 783 V -1 w(,)h(65)p 694 783 V -1 w(,)f(66)p -828 783 V -1 w(,)h(182)p 963 783 125 4 v -2 w(,)g(345)p -1139 783 V -2 w(,)g(346)p 1315 783 V -2 w(,)f(623)p 1490 -783 V -1 w(,)g(624)p 1666 783 V -1 w(.)0 871 y Fi(name)11 -b Fm(:)83 b(56)p 312 884 84 4 v -1 w(,)39 b(59,)g(61,)f(64,)h(66,)f -(67,)g(69,)h(71,)f(74,)h(75,)166 971 y(81,)h(102,)f(106,)g(1503.)0 -1072 y Fi(new)p 145 1072 26 4 v 31 w(c)l(o)l(or)l(dinates)12 -b Fm(:)83 b(405)p 690 1085 125 4 v -2 w(.)0 1173 y Fi(new)p -145 1173 26 4 v 31 w(shap)l(e)p 370 1173 V 31 w(ptr)14 -b Fm(:)83 b(32.)0 1275 y Fi(nnumb)l(er)p 319 1275 V 29 -w(of)p 415 1275 V 32 w(p)l(oints)11 b Fm(:)83 b(1104)p -773 1288 167 4 v -2 w(,)30 b(1105)p 992 1288 V -1 w(,)g(1106)p -1212 1288 V -2 w(,)g(1107)p 1431 1288 V -2 w(,)g(1237)p -1650 1288 V -2 w(,)166 1374 y(1238)p 166 1387 V -2 w(,)42 -b(1239)p 397 1387 V -2 w(,)f(1240)p 627 1387 V -2 w(.)0 -1476 y Ff(NO_SORT)q Fm(:)84 b(213)p 416 1489 125 4 v --2 w(,)38 b(214)p 601 1489 V -2 w(,)g(453,)e(547.)0 1577 -y Fi(non)p 141 1577 26 4 v 30 w(stop)10 b Fm(:)83 b(458,)41 -b(863.)0 1678 y Fi(normal)13 b Fm(:)84 b(605)p 375 1691 -125 4 v -2 w(,)34 b(606,)f(617)p 738 1691 V -2 w(,)h(619,)e(620,)h -(623,)f(624,)h(626,)166 1778 y(629,)h(634,)g(641,)g(644,)f(646,)h(900)p -1080 1791 V -1 w(,)h(951,)f(952,)g(953,)166 1877 y(960,)c(965)p -345 1890 V -2 w(,)h(982,)f(983,)g(984,)f(987,)h(993,)g(1121,)f(1122)p -1637 1890 167 4 v -2 w(,)166 1977 y(1159)p 166 1990 V --2 w(,)e(1171,)e(1173,)g(1174,)g(1176,)g(1223)p 1246 -1990 V -2 w(,)i(1224)p 1462 1990 V -2 w(,)g(1263)p 1678 -1990 V -2 w(,)166 2077 y(1265)p 166 2090 V -2 w(,)39 -b(1269)p 394 2090 V -2 w(,)f(1282)p 621 2090 V -2 w(,)h(1285)p -849 2090 V -2 w(.)0 2178 y Fi(normal)p 260 2178 26 4 -v 31 w(p)l(oint)13 b Fm(:)83 b(1173)p 585 2191 167 4 -v -2 w(,)39 b(1174.)0 2279 y Fi(normal)p 260 2279 26 -4 v 31 w(unit)12 b Fm(:)83 b(605)p 549 2292 125 4 v -2 -w(.)0 2381 y Fi(normal)p 260 2381 26 4 v 31 w(x)14 b -Fm(:)83 b(1176)p 445 2394 167 4 v -2 w(,)41 b(1177.)0 -2482 y Fi(normal)p 260 2482 26 4 v 31 w(y)12 b Fm(:)83 -b(1176)p 444 2495 167 4 v -2 w(,)41 b(1177.)0 2583 y -Fi(normal)p 260 2583 26 4 v 31 w(z)15 b Fm(:)83 b(1176)p -441 2596 167 4 v -2 w(,)41 b(1177.)0 2685 y Fi(nul)t(l)p -143 2685 26 4 v 30 w(c)l(o)l(or)l(dinates)13 b Fm(:)83 -b(15)p 688 2698 84 4 v -1 w(,)33 b(23)p 827 2698 V -1 -w(,)f(277,)g(278,)f(399.)0 2786 y Fi(numb)l(er)p 272 -2786 26 4 v 30 w(of)p 369 2786 V 31 w(p)l(oints)12 b -Fm(:)83 b(938)p 727 2799 125 4 v -2 w(,)35 b(945,)e(946,)g(954,)g(964,) -g(965,)166 2886 y(1105,)38 b(1115,)f(1122,)h(1150,)f(1152,)h(1174,)f -(1177,)166 2985 y(1188,)j(1214,)f(1238.)0 3087 y Fi(numb)l(er)p -272 3087 26 4 v 30 w(of)p 369 3087 V 31 w(p)l(olygon)p -668 3087 V 32 w(typ)l(es)12 b Fm(:)83 b(1426)p 991 3100 -167 4 v -2 w(,)30 b(1435,)e(1438,)g(1452,)166 3186 y(1455,)34 -b(1466,)g(1469,)f(1480,)h(1483.)0 3287 y Fi(numer)l(ator)13 -b Fm(:)83 b(641)p 495 3300 125 4 v -2 w(,)41 b(1178)p -683 3300 167 4 v -2 w(.)0 3389 y Fk(n)m(umeric)p 339 -3389 29 5 v 40 w(limits)s Fm(:)83 b(15,)32 b(16,)g(23,)g(265,)f(843.)0 -3490 y Fi(numeric)l(al)p 360 3490 26 4 v 31 w(e)l(c)l(c)l(entricity)12 -b Fm(:)83 b(1098)p 910 3503 167 4 v -2 w(,)36 b(1104,)d(1105,)h(1146,) -166 3590 y(1187,)42 b(1188.)0 3691 y Fi(nx)13 b Fm(:)84 -b(644)p 206 3704 125 4 v -2 w(.)0 3792 y Fi(ny)12 b Fm(:)83 -b(644)p 205 3805 V -2 w(.)0 3894 y Fi(nz)14 b Fm(:)83 -b(644)p 201 3907 V -1 w(.)0 3995 y Fi(o\013set)12 b Fm(:)83 -b(1279)p 311 4008 167 4 v -2 w(.)0 4096 y Fi(o\013sets)11 -b Fm(:)83 b(1281)p 344 4109 V -2 w(,)42 b(1282)p 575 -4109 V -2 w(.)0 4198 y Fk(ofstream)5 b Fm(:)83 b(39,)41 -b(40.)0 4299 y Fi(old)p 110 4299 26 4 v 32 w(axis)p 282 -4299 V 31 w(h)11 b Fm(:)83 b(1188)p 467 4312 167 4 v --2 w(.)0 4400 y Fi(old)p 110 4400 26 4 v 32 w(axis)p -282 4400 V 31 w(v)13 b Fm(:)83 b(1188)p 465 4413 167 -4 v -2 w(.)0 4502 y Fi(on)p 94 4502 26 4 v 31 w(fr)l(e)l(e)p -253 4502 V 31 w(stor)l(e)10 b Fm(:)83 b(56)p 568 4515 +4490 y Fi(lab)l(els)12 b Fm(:)83 b(216)p 308 4503 V -1 +w(,)37 b(221,)f(228,)g(232,)g(249,)g(462)p 1233 4503 +V -2 w(,)i(543,)e(545,)166 4589 y(546,)42 b(548,)f(553.)0 +4691 y Fi(lamb)l(da)12 b Fm(:)83 b(906)p 367 4704 V -1 +w(.)0 4792 y Fi(lamb)l(da)p 254 4792 26 4 v 32 w(denominator)14 +b Fm(:)83 b(904)p 857 4805 125 4 v -1 w(,)36 b(906.)0 +4893 y Fi(last)p 130 4893 26 4 v 31 w(c)l(onne)l(ctor)13 +b Fm(:)83 b(763)p 622 4906 125 4 v -2 w(,)35 b(764,)f(770)p +987 4906 V -2 w(,)h(913)p 1169 4906 V -1 w(.)0 4995 y +Fi(lbl)13 b Fm(:)84 b(462)p 200 5008 V -2 w(,)43 b(471)p +390 5008 V -2 w(,)g(543)p 580 5008 V -2 w(.)0 5096 y +Ff(LDF_GCC_2_95)o Fm(:)83 b(5,)33 b(6,)f(7,)g(8,)g(21,)g(22,)g(1511.)0 +5197 y Ff(LDF_GCC_3_3)p Fm(:)83 b(5,)40 b(6,)g(7)p 800 +5210 42 4 v(.)0 5299 y Ff(LDF_PUBLIC)p Fm(:)83 b(5,)43 +b(7)p 654 5312 V -1 w(.)0 5400 y Ff(LDF_REAL_DOUBLE)n +Fm(:)83 b(12)p 764 5413 84 4 v -1 w(,)33 b(16,)g(1515,)e(1516.)2033 +263 y Ff(LDF_REAL_FLOAT)o Fm(:)83 b(12)p 2754 276 V -1 +w(,)36 b(16,)g(1515.)2033 364 y Fi(left)13 b Fm(:)83 +b(148.)2033 465 y Fi(left)p 2150 465 26 4 v 31 w(shift)13 +b Fm(:)83 b(1284)p 2449 478 167 4 v -2 w(.)2033 567 y +Fi(light)p 2192 567 26 4 v 31 w(gr)l(ay)13 b Fm(:)83 +b(108,)38 b(112)p 2675 580 125 4 v -2 w(,)i(113)p 2862 +580 V -2 w(.)2033 668 y Fi(limit)13 b Fm(:)83 b(1289)p +2319 681 167 4 v -2 w(,)43 b(1290)p 2551 681 V -2 w(.)2033 +769 y Fk(Line)5 b Fm(:)83 b(33)p 2325 782 84 4 v -1 w(,)40 +b(272,)f(309,)g(528,)g(591,)g(593)p 3223 782 125 4 v +-1 w(,)h(594,)f(595,)2199 869 y(596)p 2199 882 V -1 w(,)c(597,)f(598)p +2565 882 V -2 w(,)i(599,)d(600,)h(601,)g(602,)g(603,)g(604,)2199 +968 y(605,)g(609,)g(610,)g(611,)f(643,)h(644,)g(662,)g(920,)g(932,)2199 +1068 y(933,)39 b(934,)f(999,)h(1188.)2033 1169 y Fi(line)p +2169 1169 26 4 v 31 w(switch)12 b Fm(:)83 b(654)p 2535 +1182 125 4 v -2 w(,)37 b(657,)f(661,)f(664,)h(666,)f(669,)h(671,)2199 +1269 y(674,)h(676,)g(874,)g(875,)g(876,)g(1030,)f(1040,)g(1042,)2199 +1369 y(1062,)i(1065,)f(1070,)h(1075,)f(1077,)h(1107,)f(1110,)2199 +1468 y(1240,)j(1243,)f(1248.)2033 1569 y Fi(line)l(ar)p +2242 1569 26 4 v 31 w(e)l(c)l(c)l(entricity)12 b Fm(:)83 +b(1103)p 2792 1582 167 4 v -2 w(,)46 b(1109,)e(1110,)f(1149,)2199 +1669 y(1192,)f(1193.)2033 1770 y Fk(Lines)t Fm(:)83 b(528,)32 +b(591,)g(594,)g(603,)g(952,)h(1175.)2033 1871 y Fi(lo)l(c)l(altime)12 +b Fm(:)83 b(43.)2033 1973 y Fi(lo)l(c)l(ation)12 b Fm(:)83 +b(948)p 2428 1986 125 4 v -2 w(,)36 b(949)p 2611 1986 +V -1 w(,)g(953,)e(963,)h(1167)p 3162 1986 167 4 v -2 +w(,)h(1168)p 3387 1986 V -2 w(,)g(1184,)2199 2072 y(1185,)42 +b(1188.)2033 2174 y Fi(lo)l(c)l(ation)p 2315 2174 26 +4 v 32 w(switch)11 b Fm(:)83 b(1185)p 2681 2187 167 4 +v -2 w(.)2033 2275 y Fi(long)p 2186 2275 26 4 v 31 w(options)12 +b Fm(:)83 b(1508)p 2590 2288 167 4 v -2 w(.)2033 2376 +y Fi(lo)l(op)p 2181 2376 26 4 v 32 w(ctr)13 b Fm(:)83 +b(867)p 2428 2389 125 4 v -2 w(.)2033 2477 y Fi(lt)12 +b Fm(:)83 b(43)p 2200 2490 84 4 v -1 w(.)2033 2578 y +Fe(M)9 b Fm(:)83 b(1228)p 2229 2591 167 4 v -2 w(,)44 +b(1229)p 2462 2591 V -2 w(.)2033 2680 y Fe(m)p Fm(:)83 +b(345)p 2212 2693 125 4 v -1 w(,)42 b(346)p 2402 2693 +V -1 w(,)h(508)p 2593 2693 V -2 w(.)2033 2781 y Fi(mag)12 +b Fm(:)83 b(505)p 2299 2794 V -1 w(,)38 b(1168)p 2485 +2794 167 4 v -2 w(,)f(1258)p 2711 2794 V -2 w(,)h(1259)p +2938 2794 V -2 w(.)2033 2882 y Fi(magenta)11 b Fm(:)83 +b(108,)33 b(112)p 2635 2895 125 4 v -2 w(,)h(113)p 2816 +2895 V -1 w(,)g(1461,)e(1505.)2033 2983 y Fi(magnitude)11 +b Fm(:)83 b(388,)36 b(502)p 2708 2996 V -1 w(,)h(503)p +2893 2996 V -1 w(,)g(505,)g(507,)f(508,)g(557,)2199 3083 +y(605,)30 b(949,)h(1070,)f(1127,)f(1155,)h(1157,)g(1160,)g(1162,)2199 +3183 y(1167,)38 b(1168,)f(1193,)h(1228,)f(1229,)h(1258,)f(1259,)2199 +3282 y(1268,)j(1270,)f(1444.)2033 3383 y Fi(mag0)16 b +Fm(:)84 b(1258)p 2346 3396 167 4 v -2 w(,)42 b(1259)p +2577 3396 V -2 w(.)2033 3485 y Fi(main)11 b Fm(:)83 b(1514)p +2332 3498 V -2 w(.)2033 3586 y Fi(make)p 2224 3586 26 +4 v 31 w(tabs)11 b Fm(:)84 b(1450)p 2510 3599 167 4 v +-2 w(,)29 b(1451)p 2728 3599 V -2 w(,)g(1464)p 2946 3599 +V -2 w(,)g(1465)p 3164 3599 V -2 w(,)g(1477)p 3382 3599 +V -2 w(,)h(1478)p 3601 3599 V -2 w(.)2033 3687 y Fk(Matrix)5 +b Fm(:)83 b(12)p 2434 3700 84 4 v -1 w(,)38 b(122,)f(171,)g(174.)2033 +3788 y Fi(matrix)14 b Fm(:)83 b(122)p 2390 3801 125 4 +v -1 w(,)35 b(126,)e(127,)g(128,)h(129,)f(130,)h(131,)f(133,)2199 +3888 y(135,)24 b(136,)f(137,)h(138,)f(141,)h(143,)g(146,)f(148,)h(151,) +f(153,)2199 3988 y(156,)34 b(158,)g(159,)g(162,)f(163,)h(164,)g(172,)g +(174,)g(182,)2199 4087 y(183,)e(184,)h(185,)f(186,)g(405,)h(581,)f +(584.)2033 4188 y Fi(max)14 b Fm(:)83 b(16,)32 b(182)p +2441 4201 V -1 w(,)h(183,)e(843,)h(1164,)f(1167,)g(1168,)f(1179,)2199 +4288 y(1268,)42 b(1367.)2033 4389 y Fi(max)p 2187 4389 +26 4 v 30 w(ax)15 b Fm(:)83 b(1168)p 2414 4402 167 4 +v -2 w(.)2033 4491 y Fi(max)p 2187 4491 26 4 v 30 w(hexagons)12 +b Fm(:)83 b(1283)p 2652 4504 167 4 v -2 w(,)39 b(1284)p +2880 4504 V -2 w(.)2033 4592 y Ff(MAX_REAL)q Fm(:)83 +b(12,)32 b(15,)g(16)p 2770 4605 84 4 v -1 w(,)i(24,)e(25,)g(27)p +3188 4605 V -1 w(,)h(503,)e(843,)h(844,)2199 4691 y(1514,)40 +b(1515,)f(1516.)2033 4793 y Ff(MAX_REAL_SQRT)o Fm(:)83 +b(24,)33 b(25)p 2850 4806 V -1 w(,)h(26)p 2990 4806 V +-1 w(,)g(27)p 3130 4806 V -1 w(,)g(503.)2033 4894 y Fi(max)p +2187 4894 26 4 v 30 w(x)p 2256 4894 V 30 w(pr)l(oj)18 +b Fm(:)83 b(252,)28 b(253)p 2722 4907 125 4 v -1 w(,)h(254)p +2899 4907 V -1 w(,)g(547,)g(548)p 3254 4907 V -2 w(,)h(551,)e(554)p +3608 4907 V -2 w(.)2033 4995 y Fi(max)p 2187 4995 26 +4 v 30 w(y)p 2257 4995 V 31 w(pr)l(oj)18 b Fm(:)83 b(253)p +2547 5008 125 4 v -2 w(,)34 b(254)p 2728 5008 V -1 w(,)g(548)p +2910 5008 V -2 w(,)g(551,)f(554)p 3273 5008 V -2 w(.)2033 +5096 y Ff(MAX_Z)r Fm(:)83 b(213)p 2361 5109 V -1 w(,)32 +b(214)p 2541 5109 V -2 w(,)g(253,)f(254,)f(453,)g(547,)h(552.)2033 +5198 y Fi(max)p 2187 5198 26 4 v 30 w(z)p 2251 5198 V +31 w(pr)l(oj)17 b Fm(:)83 b(253)p 2540 5211 125 4 v -1 +w(,)34 b(254)p 2722 5211 V -2 w(,)h(548)p 2904 5211 V +-2 w(,)f(551,)f(554)p 3267 5211 V -2 w(.)2033 5299 y +Ff(MEAN_Z)r Fm(:)83 b(213)p 2405 5312 V -1 w(,)38 b(214)p +2591 5312 V -2 w(,)g(453,)f(552.)2033 5400 y Fi(me)l(asur)l(ement)p +2511 5400 26 4 v 30 w(units)10 b Fm(:)83 b(264)p 2831 +5413 125 4 v -1 w(,)30 b(265)p 3009 5413 V -1 w(,)g(437,)f(458,)g(472.) +p eop end +%%Page: 499 499 +TeXDict begin 499 498 bop 0 83 a Fn(x)p Fm(1525)139 b +Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(499)0 263 y Fi(me)l(diate)11 +b Fm(:)84 b(511)p 395 276 125 4 v -2 w(,)31 b(512)p 573 +276 V -1 w(,)g(1070,)f(1087,)f(1088,)h(1270,)f(1443,)166 +363 y(1445,)34 b(1451,)g(1461,)f(1474,)h(1478.)0 464 +y Fi(mid)p 140 464 26 4 v 31 w(p)l(oint)13 b Fm(:)83 +b(1087.)0 565 y Fi(mid)p 140 565 V 31 w(pt)12 b Fm(:)84 +b(1270)p 355 578 167 4 v -2 w(.)0 666 y Fi(min)11 b Fm(:)83 +b(15,)38 b(843,)f(1268,)g(1367.)0 767 y Ff(MIN_REAL)q +Fm(:)83 b(843,)40 b(844.)0 868 y Fi(min)p 145 868 26 +4 v 31 w(x)p 215 868 V 30 w(pr)l(oj)17 b Fm(:)83 b(252,)28 +b(253)p 680 881 125 4 v -1 w(,)i(254)p 858 881 V -2 w(,)g(547,)e(548)p +1212 881 V -1 w(,)h(551,)g(554)p 1567 881 V -2 w(.)0 +969 y Fi(min)p 145 969 26 4 v 31 w(y)p 216 969 V 30 w(pr)l(oj)18 +b Fm(:)83 b(253)p 505 982 125 4 v -2 w(,)34 b(254)p 686 +982 V -1 w(,)g(548)p 868 982 V -1 w(,)g(551,)e(554)p +1231 982 V -1 w(.)0 1070 y Ff(MIN_Z)r Fm(:)83 b(213)p +328 1083 V -1 w(,)36 b(214)p 512 1083 V -1 w(,)g(453,)f(547,)g(552.)0 +1171 y Fi(min)p 145 1171 26 4 v 31 w(z)p 210 1171 V 30 +w(pr)l(oj)17 b Fm(:)84 b(253)p 499 1184 125 4 v -2 w(,)34 +b(254)p 680 1184 V -1 w(,)g(548)p 862 1184 V -2 w(,)h(551,)d(554)p +1225 1184 V -1 w(.)0 1272 y Fi(mo)l(dify)13 b Fm(:)83 +b(84)p 357 1285 84 4 v -1 w(,)45 b(85)p 508 1285 V -1 +w(.)0 1373 y Fi(move)p 191 1373 26 4 v 31 w(b)l(ack)14 +b Fm(:)83 b(1284)p 489 1386 167 4 v -2 w(.)0 1474 y Fi(mu)10 +b Fm(:)83 b(906)p 229 1487 125 4 v -1 w(.)0 1575 y Fi(mu)p +118 1575 26 4 v 30 w(denominator)14 b Fm(:)83 b(904)p +719 1588 125 4 v -1 w(,)38 b(906.)0 1676 y Fi(mx)14 b +Fm(:)83 b(644)p 227 1689 V -2 w(.)0 1777 y Fi(my)12 b +Fm(:)83 b(644)p 226 1790 V -2 w(.)0 1878 y Fi(mz)14 b +Fm(:)83 b(644)p 222 1891 V -1 w(.)0 1979 y Fe(n)p Fm(:)g(60)p +156 1992 84 4 v -1 w(,)28 b(61)p 290 1992 V -1 w(,)h(63)p +425 1992 V -1 w(,)f(64)p 559 1992 V -1 w(,)h(65)p 694 +1992 V -1 w(,)f(66)p 828 1992 V -1 w(,)h(182)p 963 1992 +125 4 v -2 w(,)g(345)p 1139 1992 V -2 w(,)g(346)p 1315 +1992 V -2 w(,)f(623)p 1490 1992 V -1 w(,)g(624)p 1666 +1992 V -1 w(.)0 2080 y Fi(name)11 b Fm(:)83 b(56)p 312 +2093 84 4 v -1 w(,)39 b(59,)g(61,)f(64,)h(66,)f(67,)g(69,)h(71,)f(74,)h +(75,)166 2180 y(81,)h(102,)f(106,)g(1508.)0 2281 y Fi(new)p +145 2281 26 4 v 31 w(c)l(o)l(or)l(dinates)12 b Fm(:)83 +b(405)p 690 2294 125 4 v -2 w(.)0 2382 y Fi(new)p 145 +2382 26 4 v 31 w(shap)l(e)p 370 2382 V 31 w(ptr)14 b +Fm(:)83 b(32.)0 2483 y Fi(nnumb)l(er)p 319 2483 V 29 +w(of)p 415 2483 V 32 w(p)l(oints)11 b Fm(:)83 b(1109)p +773 2496 167 4 v -2 w(,)30 b(1110)p 992 2496 V -1 w(,)g(1111)p +1212 2496 V -2 w(,)g(1112)p 1431 2496 V -2 w(,)g(1242)p +1650 2496 V -2 w(,)166 2582 y(1243)p 166 2595 V -2 w(,)42 +b(1244)p 397 2595 V -2 w(,)f(1245)p 627 2595 V -2 w(.)0 +2683 y Ff(NO_SORT)q Fm(:)84 b(213)p 416 2696 125 4 v +-2 w(,)38 b(214)p 601 2696 V -2 w(,)g(453,)e(547.)0 2784 +y Fi(non)p 141 2784 26 4 v 30 w(stop)10 b Fm(:)83 b(458,)41 +b(863.)0 2886 y Fi(normal)13 b Fm(:)84 b(605)p 375 2899 +125 4 v -2 w(,)34 b(606,)f(617)p 738 2899 V -2 w(,)h(619,)e(620,)h +(623,)f(624,)h(626,)166 2985 y(629,)h(634,)g(641,)g(644,)f(646,)h(903)p +1080 2998 V -1 w(,)h(954,)f(955,)g(956,)166 3085 y(963,)c(968)p +345 3098 V -2 w(,)h(985,)f(986,)g(987,)f(990,)h(996,)g(1126,)f(1127)p +1637 3098 167 4 v -2 w(,)166 3184 y(1164)p 166 3197 V +-2 w(,)e(1176,)e(1178,)g(1179,)g(1181,)g(1228)p 1246 +3197 V -2 w(,)i(1229)p 1462 3197 V -2 w(,)g(1268)p 1678 +3197 V -2 w(,)166 3284 y(1270)p 166 3297 V -2 w(,)39 +b(1274)p 394 3297 V -2 w(,)f(1287)p 621 3297 V -2 w(,)h(1290)p +849 3297 V -2 w(.)0 3385 y Fi(normal)p 260 3385 26 4 +v 31 w(p)l(oint)13 b Fm(:)83 b(1178)p 585 3398 167 4 +v -2 w(,)39 b(1179.)0 3486 y Fi(normal)p 260 3486 26 +4 v 31 w(unit)12 b Fm(:)83 b(605)p 549 3499 125 4 v -2 +w(.)0 3587 y Fi(normal)p 260 3587 26 4 v 31 w(x)14 b +Fm(:)83 b(1181)p 445 3600 167 4 v -2 w(,)41 b(1182.)0 +3688 y Fi(normal)p 260 3688 26 4 v 31 w(y)12 b Fm(:)83 +b(1181)p 444 3701 167 4 v -2 w(,)41 b(1182.)0 3789 y +Fi(normal)p 260 3789 26 4 v 31 w(z)15 b Fm(:)83 b(1181)p +441 3802 167 4 v -2 w(,)41 b(1182.)0 3890 y Fi(nul)t(l)p +143 3890 26 4 v 30 w(c)l(o)l(or)l(dinates)13 b Fm(:)83 +b(15)p 688 3903 84 4 v -1 w(,)33 b(23)p 827 3903 V -1 +w(,)f(277,)g(278,)f(399.)0 3991 y Fi(numb)l(er)p 272 +3991 26 4 v 30 w(of)p 369 3991 V 31 w(p)l(oints)12 b +Fm(:)83 b(941)p 727 4004 125 4 v -2 w(,)35 b(948,)e(949,)g(957,)g(967,) +g(968,)166 4091 y(1110,)38 b(1120,)f(1127,)h(1155,)f(1157,)h(1179,)f +(1182,)166 4190 y(1193,)j(1219,)f(1243.)0 4292 y Fi(numb)l(er)p +272 4292 26 4 v 30 w(of)p 369 4292 V 31 w(p)l(olygon)p +668 4292 V 32 w(typ)l(es)12 b Fm(:)83 b(1431)p 991 4305 +167 4 v -2 w(,)30 b(1440,)e(1443,)g(1457,)166 4391 y(1460,)34 +b(1471,)g(1474,)f(1485,)h(1488.)0 4492 y Fi(numer)l(ator)13 +b Fm(:)83 b(641)p 495 4505 125 4 v -2 w(,)41 b(1183)p +683 4505 167 4 v -2 w(.)0 4593 y Fk(n)m(umeric)p 339 +4593 29 5 v 40 w(limits)s Fm(:)83 b(15,)32 b(16,)g(23,)g(265,)f(843.)0 +4694 y Fi(numeric)l(al)p 360 4694 26 4 v 31 w(e)l(c)l(c)l(entricity)12 +b Fm(:)83 b(1103)p 910 4707 167 4 v -2 w(,)36 b(1109,)d(1110,)h(1151,) +166 4794 y(1192,)42 b(1193.)0 4895 y Fi(nx)13 b Fm(:)84 +b(644)p 206 4908 125 4 v -2 w(.)0 4996 y Fi(ny)12 b Fm(:)83 +b(644)p 205 5009 V -2 w(.)0 5097 y Fi(nz)14 b Fm(:)83 +b(644)p 201 5110 V -1 w(.)0 5198 y Fi(o\013set)12 b Fm(:)83 +b(1284)p 311 5211 167 4 v -2 w(.)0 5299 y Fi(o\013sets)11 +b Fm(:)83 b(1286)p 344 5312 V -2 w(,)42 b(1287)p 575 +5312 V -2 w(.)0 5400 y Fk(ofstream)5 b Fm(:)83 b(39,)41 +b(40.)2033 263 y Fi(old)p 2143 263 26 4 v 32 w(axis)p +2315 263 V 31 w(h)11 b Fm(:)83 b(1193)p 2500 276 167 +4 v -2 w(.)2033 365 y Fi(old)p 2143 365 26 4 v 32 w(axis)p +2315 365 V 31 w(v)13 b Fm(:)83 b(1193)p 2498 378 167 +4 v -2 w(.)2033 466 y Fi(on)p 2127 466 26 4 v 31 w(fr)l(e)l(e)p +2286 466 V 31 w(stor)l(e)10 b Fm(:)83 b(56)p 2601 479 84 4 v -1 w(,)32 b(59,)f(61,)g(64,)f(69,)h(71,)g(72,)g(95,)g(264)p -1671 4515 125 4 v -2 w(,)166 4601 y(280,)j(283,)g(287,)g(290,)f(292,)h -(294,)g(296,)g(301,)g(344,)166 4701 y(432,)g(654)p 349 -4714 V -2 w(,)i(656,)e(661,)f(664,)h(669,)g(671,)g(674,)g(676,)166 -4801 y(678,)j(681,)g(683,)g(690,)g(871,)g(1022)p 1096 -4814 167 4 v -2 w(,)h(1027,)e(1030,)166 4900 y(1037,)i(1039,)f(1056)p -623 4913 V -2 w(,)j(1059,)d(1062,)h(1067,)f(1072,)166 -5000 y(1074,)25 b(1102,)g(1105,)g(1110,)g(1112,)g(1235,)g(1238,)g -(1243,)166 5099 y(1245,)g(1291)p 382 5112 V -2 w(,)i(1294,)e(1295,)g -(1297,)g(1299,)g(1306,)g(1337,)166 5199 y(1411,)g(1413,)g(1415,)g -(1417,)g(1435,)g(1438,)g(1452,)g(1455,)166 5299 y(1466,)37 -b(1469,)f(1480,)h(1483.)0 5400 y Fi(on)p 94 5400 26 4 -v 31 w(se)l(gment)11 b Fm(:)83 b(950,)40 b(958)p 713 -5413 125 4 v -2 w(.)2033 263 y Fi(op)l(en)11 b Fm(:)83 -b(44.)2033 365 y Fi(optar)l(g)12 b Fm(:)84 b(1503.)2033 -467 y Fi(optind)14 b Fm(:)83 b(1503.)2033 569 y Fi(option)12 -b Fm(:)83 b(1503.)2033 671 y Fi(option)p 2264 671 26 -4 v 32 w(ctr)13 b Fm(:)83 b(1503)p 2511 684 167 4 v -2 -w(.)2033 773 y Fi(option)p 2264 773 26 4 v 32 w(index)14 -b Fm(:)83 b(1503)p 2602 786 167 4 v -2 w(.)2033 875 y -Fi(or)l(ange)11 b Fm(:)83 b(108,)31 b(112)p 2568 888 -125 4 v -1 w(,)h(113)p 2748 888 V -2 w(,)g(1438,)f(1456,)f(1500.)2033 -977 y Fi(or)l(ange)p 2276 977 26 4 v 31 w(r)l(e)l(d)13 -b Fm(:)83 b(112)p 2528 990 125 4 v -1 w(,)41 b(113)p -2717 990 V -1 w(.)2033 1080 y Fi(orientation)12 b Fm(:)83 -b(946)p 2550 1093 V -2 w(,)38 b(1177)p 2735 1093 167 -4 v -2 w(,)f(1179.)2033 1182 y Fi(origin)12 b Fm(:)83 -b(274)p 2363 1195 125 4 v -2 w(,)27 b(275)p 2537 1195 -V -2 w(,)f(381,)f(507,)g(595,)f(605,)h(619,)g(620,)f(623,)2199 -1281 y(624,)34 b(635,)g(644,)g(873,)f(875,)h(893,)g(896,)g(897,)g(900,) -2199 1381 y(921,)24 b(926,)h(946,)f(952,)h(983,)f(1105,)g(1169,)g -(1174,)g(1175,)2199 1480 y(1178,)h(1223,)g(1224,)g(1265,)g(1269,)g -(1282,)g(1285,)g(1307,)2199 1580 y(1440,)g(1444,)g(1456,)g(1458,)g -(1469,)g(1471,)g(1483,)g(1485.)2033 1682 y Fi(ostr)l(e)l(am)11 -b Fm(:)83 b(103,)36 b(104)p 2614 1695 V -1 w(,)h(436,)g(437)p -2985 1695 V -2 w(.)2033 1784 y Ff(OTHER)r Fm(:)83 b(1177)p -2361 1797 167 4 v -2 w(.)2033 1886 y Fi(out)p 2153 1886 -26 4 v 30 w(angle)11 b Fm(:)83 b(1180)p 2481 1899 167 -4 v -2 w(.)2033 1988 y Fi(out)p 2153 1988 26 4 v 30 w(cir)l(cle)12 -b Fm(:)83 b(1021,)33 b(1048)p 2711 2001 167 4 v -2 w(,)i(1269)p -2935 2001 V -2 w(,)g(1271.)2033 2090 y Fi(out)p 2153 -2090 26 4 v 30 w(distanc)l(e)11 b Fm(:)83 b(1223)p 2585 -2103 167 4 v -2 w(.)2033 2192 y Fi(out)p 2153 2192 26 -4 v 30 w(el)t(lipse)13 b Fm(:)83 b(1090)p 2520 2205 167 -4 v -2 w(,)37 b(1223)p 2746 2205 V -2 w(,)g(1225.)2033 -2295 y Fi(out)p 2153 2295 26 4 v 30 w(r)l(e)l(ctangle)11 -b Fm(:)83 b(1213)p 2612 2308 167 4 v -2 w(,)33 b(1214)p -2834 2308 V -2 w(,)h(1216,)d(1218.)2033 2397 y Fi(out)p -2153 2397 26 4 v 30 w(str)l(e)l(am)10 b Fm(:)83 b(39)p -2531 2410 84 4 v -1 w(,)34 b(40)p 2671 2410 V -1 w(,)f(44,)f(46,)g(48,) -h(50,)f(67,)g(106,)g(108,)2199 2496 y(264,)i(414,)g(436,)g(457,)f(458,) -h(461,)g(472,)g(856,)g(859,)2199 2596 y(861,)g(862,)f(863,)h(864,)f -(1393,)g(1511.)2033 2698 y Fi(out)p 2153 2698 26 4 v -30 w(str)l(e)l(am)p 2420 2698 V 30 w(name)11 b Fm(:)83 -b(42)p 2757 2711 84 4 v -1 w(,)38 b(43)p 2901 2711 V --1 w(,)f(44.)2033 2800 y Fi(outer)p 2226 2800 26 4 v -30 w(cir)l(cle)12 b Fm(:)83 b(1282)p 2560 2813 167 4 -v -2 w(,)40 b(1285)p 2789 2813 V -2 w(.)2033 2902 y Fi(outer)p -2226 2902 26 4 v 30 w(cir)l(cle)p 2447 2902 V 32 w(c)l(enter)13 -b Fm(:)83 b(1282)p 2813 2915 167 4 v -2 w(,)36 b(1285)p -3038 2915 V -2 w(.)2033 3004 y Fi(output)11 b Fm(:)83 -b(45,)30 b(67,)f(200)p 2653 3017 125 4 v -1 w(,)h(210)p -2831 3017 V -1 w(,)g(213,)f(252,)g(253)p 3365 3017 V --2 w(,)i(254)p 3543 3017 V -2 w(,)g(264,)2199 3104 y(316,)j(397,)g -(436,)g(438,)f(440,)h(442,)g(453,)g(457)p 3479 3117 V --2 w(,)i(458)p 3662 3117 V -2 w(,)2199 3203 y(472)p 2199 -3216 V -1 w(,)f(548)p 2382 3216 V -2 w(,)h(549,)e(551,)f(552,)h(553,)g -(554)p 3296 3216 V -1 w(,)h(654,)f(656,)2199 3303 y(791,)g(839,)g(841,) -g(844,)f(852,)h(854,)g(856)p 3296 3316 V -1 w(,)h(857)p -3479 3316 V -2 w(,)h(858,)2199 3403 y(1343,)h(1374)p -2427 3416 167 4 v -2 w(,)h(1375)p 2654 3416 V -2 w(,)h(1501.)2033 -3505 y Fe(P)12 b Fm(:)83 b(1263)p 2204 3518 V -2 w(.)2033 -3607 y Fe(p)p Fm(:)g(30)p 2181 3620 84 4 v -1 w(,)29 -b(157)p 2316 3620 125 4 v -1 w(,)g(167)p 2493 3620 V --1 w(,)g(182)p 2670 3620 V -1 w(,)g(220)p 2847 3620 V --1 w(,)g(222)p 3024 3620 V -1 w(,)g(224)p 3201 3620 V --1 w(,)g(240)p 3378 3620 V -1 w(,)g(285)p 3555 3620 V --1 w(,)g(286)p 3732 3620 V -1 w(,)2199 3706 y(287)p 2199 -3719 V -1 w(,)c(288)p 2372 3719 V -2 w(,)g(289)p 2544 -3719 V -1 w(,)g(291)p 2717 3719 V -2 w(,)g(292)p 2889 -3719 V -1 w(,)g(293)p 3062 3719 V -1 w(,)g(294)p 3235 -3719 V -2 w(,)g(299)p 3407 3719 V -1 w(,)g(300)p 3580 -3719 V -2 w(,)g(315)p 3752 3719 V -1 w(,)2199 3806 y(320)p -2199 3819 V -1 w(,)g(343)p 2372 3819 V -2 w(,)g(345)p -2544 3819 V -1 w(,)g(346)p 2717 3819 V -2 w(,)g(356)p -2889 3819 V -1 w(,)g(370)p 3062 3819 V -1 w(,)g(371)p -3235 3819 V -2 w(,)g(372)p 3407 3819 V -1 w(,)g(373)p -3580 3819 V -2 w(,)g(377)p 3752 3819 V -1 w(,)2199 3906 -y(378)p 2199 3919 V -1 w(,)g(394)p 2372 3919 V -2 w(,)g(419)p -2544 3919 V -1 w(,)g(420)p 2717 3919 V -2 w(,)g(422)p -2889 3919 V -1 w(,)g(423)p 3062 3919 V -1 w(,)g(436)p -3235 3919 V -2 w(,)g(437)p 3407 3919 V -1 w(,)g(477)p -3580 3919 V -2 w(,)g(478)p 3752 3919 V -1 w(,)2199 4005 -y(479)p 2199 4018 V -1 w(,)g(480)p 2372 4018 V -2 w(,)g(481)p -2544 4018 V -1 w(,)g(482)p 2717 4018 V -2 w(,)g(483)p -2889 4018 V -1 w(,)g(484)p 3062 4018 V -1 w(,)g(490)p -3235 4018 V -2 w(,)g(491)p 3407 4018 V -1 w(,)g(498)p -3580 4018 V -2 w(,)g(499)p 3752 4018 V -1 w(,)2199 4105 -y(500)p 2199 4118 V -1 w(,)g(501)p 2372 4118 V -2 w(,)g(504)p -2544 4118 V -1 w(,)g(505)p 2717 4118 V -2 w(,)g(513)p -2889 4118 V -1 w(,)g(516)p 3062 4118 V -1 w(,)g(517)p -3235 4118 V -2 w(,)g(523)p 3407 4118 V -1 w(,)g(524)p -3580 4118 V -2 w(,)g(525)p 3752 4118 V -1 w(,)2199 4204 -y(526)p 2199 4217 V -1 w(,)g(543)p 2372 4217 V -2 w(,)g(544)p -2544 4217 V -1 w(,)g(545)p 2717 4217 V -2 w(,)g(621)p -2889 4217 V -1 w(,)g(622)p 3062 4217 V -1 w(,)g(623)p -3235 4217 V -2 w(,)g(624)p 3407 4217 V -1 w(,)g(625)p -3580 4217 V -2 w(,)g(626)p 3752 4217 V -1 w(,)2199 4304 -y(628)p 2199 4317 V -1 w(,)35 b(629)p 2382 4317 V -2 -w(,)h(630)p 2565 4317 V -2 w(,)g(631)p 2748 4317 V -2 -w(,)f(633)p 2930 4317 V -1 w(,)g(634)p 3113 4317 V -1 -w(,)g(637)p 3296 4317 V -1 w(,)g(642)p 3479 4317 V -2 -w(,)h(656)p 3662 4317 V -2 w(,)2199 4404 y(657)p 2199 -4417 V -1 w(,)f(677)p 2382 4417 V -2 w(,)h(678)p 2565 -4417 V -2 w(,)g(680)p 2748 4417 V -2 w(,)f(681)p 2930 -4417 V -1 w(,)g(682)p 3113 4417 V -1 w(,)g(683)p 3296 -4417 V -1 w(,)g(689)p 3479 4417 V -2 w(,)h(716)p 3662 -4417 V -2 w(,)2199 4503 y(717)p 2199 4516 V -1 w(,)f(721)p -2382 4516 V -2 w(,)h(722)p 2565 4516 V -2 w(,)g(730)p -2748 4516 V -2 w(,)f(731)p 2930 4516 V -1 w(,)g(735)p -3113 4516 V -1 w(,)g(736)p 3296 4516 V -1 w(,)g(776)p -3479 4516 V -2 w(,)h(780)p 3662 4516 V -2 w(,)2199 4603 -y(781)p 2199 4616 V -1 w(,)f(789)p 2382 4616 V -2 w(,)h(790)p -2565 4616 V -2 w(,)g(802)p 2748 4616 V -2 w(,)f(807)p -2930 4616 V -1 w(,)g(813)p 3113 4616 V -1 w(,)g(821)p -3296 4616 V -1 w(,)g(824)p 3479 4616 V -2 w(,)h(873)p -3662 4616 V -2 w(,)2199 4703 y(875)p 2199 4716 V -1 w(,)f(879)p -2382 4716 V -2 w(,)h(882)p 2565 4716 V -2 w(,)g(898)p -2748 4716 V -2 w(,)f(913)p 2930 4716 V -1 w(,)g(914)p -3113 4716 V -1 w(,)g(915)p 3296 4716 V -1 w(,)g(919)p -3479 4716 V -2 w(,)h(931)p 3662 4716 V -2 w(,)2199 4802 -y(961)p 2199 4815 V -1 w(,)29 b(962)p 2376 4815 V -2 -w(,)g(965)p 2552 4815 V -1 w(,)g(978)p 2729 4815 V -2 -w(,)g(990)p 2905 4815 V -1 w(,)g(991)p 3082 4815 V -1 -w(,)g(1005)p 3259 4815 167 4 v -2 w(,)g(1006)p 3477 4815 -V -2 w(,)g(1014)p 3695 4815 V -2 w(,)2199 4902 y(1015)p -2199 4915 V -2 w(,)e(1019)p 2415 4915 V -2 w(,)g(1020)p -2631 4915 V -2 w(,)g(1023)p 2847 4915 V -2 w(,)g(1024)p -3063 4915 V -2 w(,)g(1034)p 3279 4915 V -2 w(,)g(1037)p -3495 4915 V -2 w(,)g(1039)p 3711 4915 V -2 w(,)2199 5001 -y(1071)p 2199 5014 V -2 w(,)g(1072)p 2415 5014 V -2 w(,)g(1073)p -2631 5014 V -2 w(,)g(1074)p 2847 5014 V -2 w(,)g(1137)p -3063 5014 V -2 w(,)g(1142)p 3279 5014 V -2 w(,)g(1162)p -3495 5014 V -2 w(,)g(1163)p 3711 5014 V -2 w(,)2199 5101 -y(1167)p 2199 5114 V -2 w(,)g(1168)p 2415 5114 V -2 w(,)g(1200)p -2631 5114 V -2 w(,)g(1201)p 2847 5114 V -2 w(,)g(1205)p -3063 5114 V -2 w(,)g(1206)p 3279 5114 V -2 w(,)g(1210)p -3495 5114 V -2 w(,)g(1211)p 3711 5114 V -2 w(,)2199 5201 -y(1242)p 2199 5214 V -2 w(,)g(1243)p 2415 5214 V -2 w(,)g(1244)p -2631 5214 V -2 w(,)g(1245)p 2847 5214 V -2 w(,)g(1253)p -3063 5214 V -2 w(,)g(1254)p 3279 5214 V -2 w(,)g(1260)p -3495 5214 V -2 w(,)g(1261)p 3711 5214 V -2 w(,)2199 5300 -y(1437)p 2199 5313 V -2 w(,)g(1438)p 2415 5313 V -2 w(,)g(1441)p -2631 5313 V -2 w(,)g(1442)p 2847 5313 V -2 w(,)g(1446)p -3063 5313 V -2 w(,)g(1454)p 3279 5313 V -2 w(,)g(1455)p -3495 5313 V -2 w(,)g(1459)p 3711 5313 V -2 w(,)2199 5400 -y(1460)p 2199 5413 V -2 w(,)j(1468)p 2418 5413 V -2 w(,)h(1469)p -2638 5413 V -2 w(,)f(1473)p 2857 5413 V -2 w(,)g(1482)p -3076 5413 V -2 w(,)h(1483)p 3296 5413 V -2 w(,)f(1501)p -3515 5413 V -2 w(.)p eop end -%%Page: 495 495 -TeXDict begin 495 494 bop 0 83 a Fn(x)p Fm(1517)139 b -Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(495)0 263 y Fi(p)p -47 263 26 4 v 31 w(inner)13 b Fm(:)83 b(1279)p 384 276 -167 4 v -2 w(.)0 365 y Fi(p)p 47 365 26 4 v 31 w(inner)p -270 365 V 31 w(c)l(opy)12 b Fm(:)83 b(1279)p 572 378 -167 4 v -2 w(.)0 467 y Fi(p)p 47 467 26 4 v 31 w(iter)13 -b Fm(:)83 b(657.)0 569 y Fi(p)p 47 569 V 31 w(m)p 146 -569 V 30 w(c)l(o)l(or)l(d)14 b Fm(:)83 b(346)p 478 582 -125 4 v -1 w(,)41 b(347.)0 670 y Fi(p)p 47 670 26 4 v -31 w(mag)12 b Fm(:)83 b(505)p 339 683 125 4 v -1 w(.)0 -772 y Fi(p)p 47 772 26 4 v 31 w(midd)t(le)12 b Fm(:)83 -b(1279)p 431 785 167 4 v -2 w(.)0 874 y Fi(p)p 47 874 -26 4 v 31 w(midd)t(le)p 318 874 V 32 w(c)l(opy)13 b Fm(:)83 -b(1279)p 622 887 167 4 v -2 w(.)0 976 y Fi(p)p 47 976 -26 4 v 31 w(n)p 125 976 V 30 w(c)l(o)l(or)l(d)14 b Fm(:)83 -b(346)p 457 989 125 4 v -2 w(,)42 b(347.)0 1078 y Fi(p)p -47 1078 26 4 v 31 w(outer)13 b Fm(:)83 b(1279)p 380 1091 -167 4 v -2 w(.)0 1180 y Fi(p)p 47 1180 26 4 v 31 w(outer)p -266 1180 V 30 w(c)l(opy)13 b Fm(:)83 b(1279)p 568 1193 -167 4 v -2 w(.)0 1282 y Fi(p)p 47 1282 26 4 v 31 w(x)14 -b Fm(:)83 b(517)p 232 1295 125 4 v -2 w(,)36 b(518,)d(519,)h(520,)g -(521,)g(522.)0 1384 y Fi(p)p 47 1384 26 4 v 31 w(x)p -117 1384 V 30 w(sign)11 b Fm(:)83 b(521)p 403 1397 125 -4 v -1 w(.)0 1485 y Fi(p)p 47 1485 26 4 v 31 w(y)12 b -Fm(:)83 b(517)p 231 1498 125 4 v -1 w(,)35 b(518,)e(519,)h(520,)g(521,) -g(522.)0 1587 y Fi(p)p 47 1587 26 4 v 31 w(y)p 118 1587 -V 31 w(sign)11 b Fm(:)83 b(521)p 405 1600 125 4 v -2 -w(.)0 1689 y Fi(p)p 47 1689 26 4 v 31 w(z)14 b Fm(:)83 -b(517)p 227 1702 125 4 v -1 w(,)35 b(518,)f(519,)g(520,)g(521,)f(522.)0 -1791 y Fi(p)p 47 1791 26 4 v 31 w(z)p 112 1791 V 30 w(sign)11 -b Fm(:)83 b(521)p 398 1804 125 4 v -1 w(.)0 1893 y Fi(p)l(a)11 -b Fm(:)83 b(425)p 197 1906 V -1 w(,)34 b(426)p 379 1906 -V -2 w(,)g(757)p 560 1906 V -2 w(,)g(762)p 741 1906 V --1 w(,)f(763)p 922 1906 V -1 w(,)h(764,)e(765,)g(766,)g(767)p -1647 1906 V -1 w(,)166 1993 y(768)p 166 2006 V -1 w(,)25 -b(769)p 339 2006 V -2 w(,)g(770)p 511 2006 V -1 w(,)g(771,)e(780)p -856 2006 V -1 w(,)i(789)p 1029 2006 V -1 w(,)g(798)p -1202 2006 V -2 w(,)g(817)p 1374 2006 V -1 w(,)g(917)p -1547 2006 V -2 w(,)g(918)p 1719 2006 V -1 w(.)0 2094 +3704 479 125 4 v -2 w(,)2199 566 y(280,)j(283,)g(287,)g(290,)f(292,)h +(294,)g(296,)g(301,)g(344,)2199 666 y(432,)g(654)p 2382 +679 V -2 w(,)i(656,)e(661,)f(664,)h(669,)g(671,)g(674,)g(676,)2199 +765 y(678,)j(681,)g(683,)g(690,)g(871,)g(1025)p 3129 +778 167 4 v -2 w(,)h(1030,)e(1033,)2199 865 y(1040,)i(1042,)f(1059)p +2656 878 V -2 w(,)j(1062,)d(1065,)h(1070,)f(1075,)2199 +965 y(1077,)25 b(1107,)g(1110,)g(1115,)g(1117,)g(1240,)g(1243,)g(1248,) +2199 1064 y(1250,)g(1296)p 2415 1077 V -2 w(,)i(1299,)e(1300,)g(1302,)g +(1304,)g(1311,)g(1342,)2199 1164 y(1416,)g(1418,)g(1420,)g(1422,)g +(1440,)g(1443,)g(1457,)g(1460,)2199 1263 y(1471,)37 b(1474,)f(1485,)h +(1488.)2033 1365 y Fi(on)p 2127 1365 26 4 v 31 w(se)l(gment)11 +b Fm(:)83 b(953,)40 b(961)p 2746 1378 125 4 v -2 w(.)2033 +1467 y Fi(op)l(en)11 b Fm(:)83 b(44.)2033 1569 y Fi(optar)l(g)12 +b Fm(:)84 b(1508.)2033 1670 y Fi(optind)14 b Fm(:)83 +b(1508.)2033 1772 y Fi(option)12 b Fm(:)83 b(1508.)2033 +1874 y Fi(option)p 2264 1874 26 4 v 32 w(ctr)13 b Fm(:)83 +b(1508)p 2511 1887 167 4 v -2 w(.)2033 1975 y Fi(option)p +2264 1975 26 4 v 32 w(index)14 b Fm(:)83 b(1508)p 2602 +1988 167 4 v -2 w(.)2033 2077 y Fi(or)l(ange)11 b Fm(:)83 +b(108,)31 b(112)p 2568 2090 125 4 v -1 w(,)h(113)p 2748 +2090 V -2 w(,)g(1443,)f(1461,)f(1505.)2033 2179 y Fi(or)l(ange)p +2276 2179 26 4 v 31 w(r)l(e)l(d)13 b Fm(:)83 b(112)p +2528 2192 125 4 v -1 w(,)41 b(113)p 2717 2192 V -1 w(.)2033 +2280 y Fi(orientation)12 b Fm(:)83 b(949)p 2550 2293 +V -2 w(,)38 b(1182)p 2735 2293 167 4 v -2 w(,)f(1184.)2033 +2382 y Fi(origin)12 b Fm(:)83 b(274)p 2363 2395 125 4 +v -2 w(,)37 b(275)p 2547 2395 V -2 w(,)g(381,)d(507,)h(595,)g(605,)g +(619,)g(620,)2199 2482 y(623,)f(624,)g(635,)g(644,)f(873,)h(875,)g +(896,)g(899,)g(900,)2199 2581 y(903,)28 b(924,)f(929,)h(949,)f(955,)h +(986,)g(1083,)f(1110,)g(1174,)2199 2681 y(1179,)38 b(1180,)f(1183,)h +(1228,)f(1229,)h(1270,)f(1274,)2199 2781 y(1287,)h(1290,)f(1312,)h +(1445,)f(1449,)h(1461,)f(1463,)2199 2880 y(1474,)g(1476,)f(1488,)h +(1490.)2033 2982 y Fi(ostr)l(e)l(am)11 b Fm(:)83 b(103,)36 +b(104)p 2614 2995 V -1 w(,)h(436,)g(437)p 2985 2995 V +-2 w(.)2033 3084 y Ff(OTHER)r Fm(:)83 b(1182)p 2361 3097 +167 4 v -2 w(.)2033 3185 y Fi(out)p 2153 3185 26 4 v +30 w(angle)11 b Fm(:)83 b(1185)p 2481 3198 167 4 v -2 +w(.)2033 3287 y Fi(out)p 2153 3287 26 4 v 30 w(cir)l(cle)12 +b Fm(:)83 b(1024,)33 b(1051)p 2711 3300 167 4 v -2 w(,)i(1274)p +2935 3300 V -2 w(,)g(1276.)2033 3389 y Fi(out)p 2153 +3389 26 4 v 30 w(distanc)l(e)11 b Fm(:)83 b(1228)p 2585 +3402 167 4 v -2 w(.)2033 3490 y Fi(out)p 2153 3490 26 +4 v 30 w(el)t(lipse)13 b Fm(:)83 b(1095)p 2520 3503 167 +4 v -2 w(,)37 b(1228)p 2746 3503 V -2 w(,)g(1230.)2033 +3592 y Fi(out)p 2153 3592 26 4 v 30 w(r)l(e)l(ctangle)11 +b Fm(:)83 b(1218)p 2612 3605 167 4 v -2 w(,)33 b(1219)p +2834 3605 V -2 w(,)h(1221,)d(1223.)2033 3694 y Fi(out)p +2153 3694 26 4 v 30 w(str)l(e)l(am)10 b Fm(:)83 b(39)p +2531 3707 84 4 v -1 w(,)34 b(40)p 2671 3707 V -1 w(,)f(44,)f(46,)g(48,) +h(50,)f(67,)g(106,)g(108,)2199 3794 y(264,)i(414,)g(436,)g(457,)f(458,) +h(461,)g(472,)g(856,)g(859,)2199 3893 y(861,)g(862,)f(863,)h(864,)f +(1398,)g(1519.)2033 3995 y Fi(out)p 2153 3995 26 4 v +30 w(str)l(e)l(am)p 2420 3995 V 30 w(name)11 b Fm(:)83 +b(42)p 2757 4008 84 4 v -1 w(,)38 b(43)p 2901 4008 V +-1 w(,)f(44.)2033 4097 y Fi(outer)p 2226 4097 26 4 v +30 w(cir)l(cle)12 b Fm(:)83 b(1287)p 2560 4110 167 4 +v -2 w(,)40 b(1290)p 2789 4110 V -2 w(.)2033 4198 y Fi(outer)p +2226 4198 26 4 v 30 w(cir)l(cle)p 2447 4198 V 32 w(c)l(enter)13 +b Fm(:)83 b(1287)p 2813 4211 167 4 v -2 w(,)36 b(1290)p +3038 4211 V -2 w(.)2033 4300 y Fi(output)11 b Fm(:)83 +b(45,)30 b(67,)f(200)p 2653 4313 125 4 v -1 w(,)h(210)p +2831 4313 V -1 w(,)g(213,)f(252,)g(253)p 3365 4313 V +-2 w(,)i(254)p 3543 4313 V -2 w(,)g(264,)2199 4400 y(316,)j(397,)g +(436,)g(438,)f(440,)h(442,)g(453,)g(457)p 3479 4413 V +-2 w(,)i(458)p 3662 4413 V -2 w(,)2199 4499 y(472)p 2199 +4512 V -1 w(,)f(548)p 2382 4512 V -2 w(,)h(549,)e(551,)f(552,)h(553,)g +(554)p 3296 4512 V -1 w(,)h(654,)f(656,)2199 4599 y(791,)g(839,)g(841,) +g(844,)f(852,)h(854,)g(856)p 3296 4612 V -1 w(,)h(857)p +3479 4612 V -2 w(,)h(858,)2199 4698 y(1348,)h(1379)p +2427 4711 167 4 v -2 w(,)h(1380)p 2654 4711 V -2 w(,)h(1506.)2033 +4800 y Fe(P)12 b Fm(:)83 b(1268)p 2204 4813 V -2 w(.)2033 +4902 y Fe(p)p Fm(:)g(30)p 2181 4915 84 4 v -1 w(,)29 +b(157)p 2316 4915 125 4 v -1 w(,)g(167)p 2493 4915 V +-1 w(,)g(182)p 2670 4915 V -1 w(,)g(220)p 2847 4915 V +-1 w(,)g(222)p 3024 4915 V -1 w(,)g(224)p 3201 4915 V +-1 w(,)g(240)p 3378 4915 V -1 w(,)g(285)p 3555 4915 V +-1 w(,)g(286)p 3732 4915 V -1 w(,)2199 5001 y(287)p 2199 +5014 V -1 w(,)c(288)p 2372 5014 V -2 w(,)g(289)p 2544 +5014 V -1 w(,)g(291)p 2717 5014 V -2 w(,)g(292)p 2889 +5014 V -1 w(,)g(293)p 3062 5014 V -1 w(,)g(294)p 3235 +5014 V -2 w(,)g(299)p 3407 5014 V -1 w(,)g(300)p 3580 +5014 V -2 w(,)g(315)p 3752 5014 V -1 w(,)2199 5101 y(320)p +2199 5114 V -1 w(,)g(343)p 2372 5114 V -2 w(,)g(345)p +2544 5114 V -1 w(,)g(346)p 2717 5114 V -2 w(,)g(356)p +2889 5114 V -1 w(,)g(370)p 3062 5114 V -1 w(,)g(371)p +3235 5114 V -2 w(,)g(372)p 3407 5114 V -1 w(,)g(373)p +3580 5114 V -2 w(,)g(377)p 3752 5114 V -1 w(,)2199 5201 +y(378)p 2199 5214 V -1 w(,)g(394)p 2372 5214 V -2 w(,)g(419)p +2544 5214 V -1 w(,)g(420)p 2717 5214 V -2 w(,)g(422)p +2889 5214 V -1 w(,)g(423)p 3062 5214 V -1 w(,)g(436)p +3235 5214 V -2 w(,)g(437)p 3407 5214 V -1 w(,)g(477)p +3580 5214 V -2 w(,)g(478)p 3752 5214 V -1 w(,)2199 5300 +y(479)p 2199 5313 V -1 w(,)g(480)p 2372 5313 V -2 w(,)g(481)p +2544 5313 V -1 w(,)g(482)p 2717 5313 V -2 w(,)g(483)p +2889 5313 V -1 w(,)g(484)p 3062 5313 V -1 w(,)g(490)p +3235 5313 V -2 w(,)g(491)p 3407 5313 V -1 w(,)g(498)p +3580 5313 V -2 w(,)g(499)p 3752 5313 V -1 w(,)2199 5400 +y(500)p 2199 5413 V -1 w(,)g(501)p 2372 5413 V -2 w(,)g(504)p +2544 5413 V -1 w(,)g(505)p 2717 5413 V -2 w(,)g(511)p +2889 5413 V -1 w(,)g(512)p 3062 5413 V -1 w(,)g(513)p +3235 5413 V -2 w(,)g(516)p 3407 5413 V -1 w(,)g(517)p +3580 5413 V -2 w(,)g(523)p 3752 5413 V -1 w(,)p eop end +%%Page: 500 500 +TeXDict begin 500 499 bop 0 83 a Fm(500)140 b Fl(INDEX)2670 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1525)166 263 y(524)p 166 +276 125 4 v -1 w(,)25 b(525)p 339 276 V -2 w(,)g(526)p +511 276 V -1 w(,)g(543)p 684 276 V -2 w(,)g(544)p 856 +276 V -1 w(,)g(545)p 1029 276 V -1 w(,)g(621)p 1202 276 +V -2 w(,)g(622)p 1374 276 V -1 w(,)g(623)p 1547 276 V +-2 w(,)g(624)p 1719 276 V -1 w(,)166 363 y(625)p 166 +376 V -1 w(,)g(626)p 339 376 V -2 w(,)g(628)p 511 376 +V -1 w(,)g(629)p 684 376 V -2 w(,)g(630)p 856 376 V -1 +w(,)g(631)p 1029 376 V -1 w(,)g(633)p 1202 376 V -2 w(,)g(634)p +1374 376 V -1 w(,)g(637)p 1547 376 V -2 w(,)g(642)p 1719 +376 V -1 w(,)166 462 y(656)p 166 475 V -1 w(,)g(657)p +339 475 V -2 w(,)g(677)p 511 475 V -1 w(,)g(678)p 684 +475 V -2 w(,)g(680)p 856 475 V -1 w(,)g(681)p 1029 475 +V -1 w(,)g(682)p 1202 475 V -2 w(,)g(683)p 1374 475 V +-1 w(,)g(689)p 1547 475 V -2 w(,)g(716)p 1719 475 V -1 +w(,)166 562 y(717)p 166 575 V -1 w(,)g(721)p 339 575 +V -2 w(,)g(722)p 511 575 V -1 w(,)g(730)p 684 575 V -2 +w(,)g(731)p 856 575 V -1 w(,)g(735)p 1029 575 V -1 w(,)g(736)p +1202 575 V -2 w(,)g(776)p 1374 575 V -1 w(,)g(780)p 1547 +575 V -2 w(,)g(781)p 1719 575 V -1 w(,)166 662 y(789)p +166 675 V -1 w(,)35 b(790)p 349 675 V -2 w(,)h(802)p +532 675 V -2 w(,)g(807)p 715 675 V -2 w(,)f(813)p 897 +675 V -1 w(,)g(821)p 1080 675 V -1 w(,)g(824)p 1263 675 +V -1 w(,)g(873)p 1446 675 V -2 w(,)h(875)p 1629 675 V +-2 w(,)166 761 y(879)p 166 774 V -1 w(,)f(882)p 349 774 +V -2 w(,)h(891)p 532 774 V -2 w(,)g(901)p 715 774 V -2 +w(,)f(916)p 897 774 V -1 w(,)g(917)p 1080 774 V -1 w(,)g(918)p +1263 774 V -1 w(,)g(922)p 1446 774 V -2 w(,)h(934)p 1629 +774 V -2 w(,)166 861 y(964)p 166 874 V -1 w(,)29 b(965)p +343 874 V -2 w(,)g(968)p 519 874 V -1 w(,)g(981)p 696 +874 V -2 w(,)g(993)p 872 874 V -1 w(,)g(994)p 1049 874 +V -1 w(,)g(1008)p 1226 874 167 4 v -2 w(,)g(1009)p 1444 +874 V -2 w(,)g(1017)p 1662 874 V -2 w(,)166 960 y(1018)p +166 973 V -2 w(,)e(1022)p 382 973 V -2 w(,)g(1023)p 598 +973 V -2 w(,)g(1026)p 814 973 V -2 w(,)g(1027)p 1030 +973 V -2 w(,)g(1037)p 1246 973 V -2 w(,)g(1040)p 1462 +973 V -2 w(,)g(1042)p 1678 973 V -2 w(,)166 1060 y(1074)p +166 1073 V -2 w(,)g(1075)p 382 1073 V -2 w(,)g(1076)p +598 1073 V -2 w(,)g(1077)p 814 1073 V -2 w(,)g(1142)p +1030 1073 V -2 w(,)g(1147)p 1246 1073 V -2 w(,)g(1167)p +1462 1073 V -2 w(,)g(1168)p 1678 1073 V -2 w(,)166 1160 +y(1172)p 166 1173 V -2 w(,)g(1173)p 382 1173 V -2 w(,)g(1205)p +598 1173 V -2 w(,)g(1206)p 814 1173 V -2 w(,)g(1210)p +1030 1173 V -2 w(,)g(1211)p 1246 1173 V -2 w(,)g(1215)p +1462 1173 V -2 w(,)g(1216)p 1678 1173 V -2 w(,)166 1259 +y(1247)p 166 1272 V -2 w(,)g(1248)p 382 1272 V -2 w(,)g(1249)p +598 1272 V -2 w(,)g(1250)p 814 1272 V -2 w(,)g(1258)p +1030 1272 V -2 w(,)g(1259)p 1246 1272 V -2 w(,)g(1265)p +1462 1272 V -2 w(,)g(1266)p 1678 1272 V -2 w(,)166 1359 +y(1442)p 166 1372 V -2 w(,)g(1443)p 382 1372 V -2 w(,)g(1446)p +598 1372 V -2 w(,)g(1447)p 814 1372 V -2 w(,)g(1451)p +1030 1372 V -2 w(,)g(1459)p 1246 1372 V -2 w(,)g(1460)p +1462 1372 V -2 w(,)g(1464)p 1678 1372 V -2 w(,)166 1459 +y(1465)p 166 1472 V -2 w(,)j(1473)p 385 1472 V -2 w(,)h(1474)p +605 1472 V -2 w(,)f(1478)p 824 1472 V -2 w(,)g(1487)p +1043 1472 V -2 w(,)h(1488)p 1263 1472 V -2 w(,)f(1506)p +1482 1472 V -2 w(.)0 1561 y Fi(p)p 47 1561 26 4 v 31 +w(inner)13 b Fm(:)83 b(1284)p 384 1574 167 4 v -2 w(.)0 +1662 y Fi(p)p 47 1662 26 4 v 31 w(inner)p 270 1662 V +31 w(c)l(opy)12 b Fm(:)83 b(1284)p 572 1675 167 4 v -2 +w(.)0 1764 y Fi(p)p 47 1764 26 4 v 31 w(iter)13 b Fm(:)83 +b(657.)0 1866 y Fi(p)p 47 1866 V 31 w(m)p 146 1866 V +30 w(c)l(o)l(or)l(d)14 b Fm(:)83 b(346)p 478 1879 125 +4 v -1 w(,)41 b(347.)0 1968 y Fi(p)p 47 1968 26 4 v 31 +w(mag)12 b Fm(:)83 b(505)p 339 1981 125 4 v -1 w(.)0 +2070 y Fi(p)p 47 2070 26 4 v 31 w(midd)t(le)12 b Fm(:)83 +b(1284)p 431 2083 167 4 v -2 w(.)0 2172 y Fi(p)p 47 2172 +26 4 v 31 w(midd)t(le)p 318 2172 V 32 w(c)l(opy)13 b +Fm(:)83 b(1284)p 622 2185 167 4 v -2 w(.)0 2274 y Fi(p)p +47 2274 26 4 v 31 w(n)p 125 2274 V 30 w(c)l(o)l(or)l(d)14 +b Fm(:)83 b(346)p 457 2287 125 4 v -2 w(,)42 b(347.)0 +2376 y Fi(p)p 47 2376 26 4 v 31 w(outer)13 b Fm(:)83 +b(1284)p 380 2389 167 4 v -2 w(.)0 2478 y Fi(p)p 47 2478 +26 4 v 31 w(outer)p 266 2478 V 30 w(c)l(opy)13 b Fm(:)83 +b(1284)p 568 2491 167 4 v -2 w(.)0 2580 y Fi(p)p 47 2580 +26 4 v 31 w(x)14 b Fm(:)83 b(517)p 232 2593 125 4 v -2 +w(,)36 b(518,)d(519,)h(520,)g(521,)g(522.)0 2682 y Fi(p)p +47 2682 26 4 v 31 w(x)p 117 2682 V 30 w(sign)11 b Fm(:)83 +b(521)p 403 2695 125 4 v -1 w(.)0 2784 y Fi(p)p 47 2784 +26 4 v 31 w(y)12 b Fm(:)83 b(517)p 231 2797 125 4 v -1 +w(,)35 b(518,)e(519,)h(520,)g(521,)g(522.)0 2886 y Fi(p)p +47 2886 26 4 v 31 w(y)p 118 2886 V 31 w(sign)11 b Fm(:)83 +b(521)p 405 2899 125 4 v -2 w(.)0 2988 y Fi(p)p 47 2988 +26 4 v 31 w(z)14 b Fm(:)83 b(517)p 227 3001 125 4 v -1 +w(,)35 b(518,)f(519,)g(520,)g(521,)f(522.)0 3090 y Fi(p)p +47 3090 26 4 v 31 w(z)p 112 3090 V 30 w(sign)11 b Fm(:)83 +b(521)p 398 3103 125 4 v -1 w(.)0 3192 y Fi(p)l(a)11 +b Fm(:)83 b(425)p 197 3205 V -1 w(,)34 b(426)p 379 3205 +V -2 w(,)g(757)p 560 3205 V -2 w(,)g(762)p 741 3205 V +-1 w(,)f(763)p 922 3205 V -1 w(,)h(764,)e(765,)g(766,)g(767)p +1647 3205 V -1 w(,)166 3292 y(768)p 166 3305 V -1 w(,)25 +b(769)p 339 3305 V -2 w(,)g(770)p 511 3305 V -1 w(,)g(771,)e(780)p +856 3305 V -1 w(,)i(789)p 1029 3305 V -1 w(,)g(798)p +1202 3305 V -2 w(,)g(817)p 1374 3305 V -1 w(,)g(920)p +1547 3305 V -2 w(,)g(921)p 1719 3305 V -1 w(.)0 3393 y Fk(pair)5 b Fm(:)83 b(12,)33 b(29,)f(267,)g(270,)g(350,)g(351,)g -(944.)0 2196 y Fk(pairs)5 b Fm(:)83 b(270.)0 2298 y Ff(PARALLEL)q -Fm(:)g(400.)0 2400 y Ff(PARALLEL_X_Y)o Fm(:)g(211)p 633 -2413 V -1 w(,)37 b(212)p 818 2413 V -1 w(,)g(400.)0 2502 -y Ff(PARALLEL_X_Z)o Fm(:)83 b(211)p 633 2515 V -1 w(,)37 -b(212)p 818 2515 V -1 w(,)g(400.)0 2604 y Ff(PARALLEL_Z_Y)o -Fm(:)83 b(211)p 633 2617 V -1 w(,)37 b(212)p 818 2617 -V -1 w(,)g(400.)0 2706 y Fk(P)m(ath)6 b Fm(:)83 b(33)p -310 2719 84 4 v -1 w(,)30 b(167,)f(196,)g(290,)f(316,)h(357,)g(394,)f -(409,)h(418,)166 2805 y(419,)24 b(420,)f(422,)h(423,)f(425,)h(426,)g -(427,)f(428,)h(429,)f(436,)166 2905 y(513,)h(527,)f(549,)h(602,)f(619,) -h(641,)g(642,)f(654)p 1374 2918 125 4 v -1 w(,)i(655,)e(656,)166 -3004 y(657,)h(658,)f(660,)h(661)p 684 3017 V -2 w(,)h(663,)f(664)p -1029 3017 V -1 w(,)h(666,)e(667,)h(668,)f(669)p 1719 -3017 V -1 w(,)166 3104 y(671,)h(673,)f(674,)h(676,)f(677,)h(678)p -1029 3117 V -1 w(,)h(680,)e(681,)h(682,)f(683,)166 3204 -y(684)p 166 3217 V -1 w(,)i(685)p 339 3217 V -2 w(,)g(686,)f(687,)f -(689,)h(693,)g(696,)f(698,)h(701,)f(703,)166 3303 y(705,)h(707,)f(709,) +(947.)0 3495 y Fk(pairs)5 b Fm(:)83 b(270.)0 3597 y Ff(PARALLEL)q +Fm(:)g(400.)0 3699 y Ff(PARALLEL_X_Y)o Fm(:)g(211)p 633 +3712 V -1 w(,)37 b(212)p 818 3712 V -1 w(,)g(400.)0 3801 +y Ff(PARALLEL_X_Z)o Fm(:)83 b(211)p 633 3814 V -1 w(,)37 +b(212)p 818 3814 V -1 w(,)g(400.)0 3903 y Ff(PARALLEL_Z_Y)o +Fm(:)83 b(211)p 633 3916 V -1 w(,)37 b(212)p 818 3916 +V -1 w(,)g(400.)0 4005 y Fk(P)m(ath)6 b Fm(:)83 b(33)p +310 4018 84 4 v -1 w(,)30 b(167,)f(196,)g(290,)f(316,)h(357,)g(394,)f +(409,)h(418,)166 4105 y(419,)24 b(420,)f(422,)h(423,)f(425,)h(426,)g +(427,)f(428,)h(429,)f(436,)166 4204 y(513,)h(527,)f(549,)h(602,)f(619,) +h(641,)g(642,)f(654)p 1374 4217 125 4 v -1 w(,)i(655,)e(656,)166 +4304 y(657,)h(658,)f(660,)h(661)p 684 4317 V -2 w(,)h(663,)f(664)p +1029 4317 V -1 w(,)h(666,)e(667,)h(668,)f(669)p 1719 +4317 V -1 w(,)166 4404 y(671,)h(673,)f(674,)h(676,)f(677,)h(678)p +1029 4417 V -1 w(,)h(680,)e(681,)h(682,)f(683,)166 4503 +y(684)p 166 4516 V -1 w(,)i(685)p 339 4516 V -2 w(,)g(686,)f(687,)f +(689,)h(693,)g(696,)f(698,)h(701,)f(703,)166 4603 y(705,)h(707,)f(709,) h(714,)f(716,)h(717,)g(720,)f(721,)h(722,)f(724,)166 -3403 y(726,)h(729,)f(731,)h(732,)f(734,)h(736,)g(739,)f(741,)h(743,)f -(747,)166 3503 y(748,)h(750,)f(752,)h(754,)f(755,)h(756,)g(757,)f(759,) -h(762,)f(763,)166 3602 y(766,)h(767,)f(768,)h(769,)f(770,)h(771,)g -(776,)f(777,)h(778,)f(779,)166 3702 y(780,)h(781,)f(785,)h(787,)f(789,) -h(790,)g(791,)f(794,)h(796,)f(798,)166 3801 y(799,)h(802,)f(804,)h -(805,)f(807,)h(809,)g(813,)f(815,)h(817,)f(818,)166 3901 +4703 y(726,)h(729,)f(731,)h(732,)f(734,)h(736,)g(739,)f(741,)h(743,)f +(747,)166 4802 y(748,)h(750,)f(752,)h(754,)f(755,)h(756,)g(757,)f(759,) +h(762,)f(763,)166 4902 y(766,)h(767,)f(768,)h(769,)f(770,)h(771,)g +(776,)f(777,)h(778,)f(779,)166 5001 y(780,)h(781,)f(785,)h(787,)f(789,) +h(790,)g(791,)f(794,)h(796,)f(798,)166 5101 y(799,)h(802,)f(804,)h +(805,)f(807,)h(809,)g(813,)f(815,)h(817,)f(818,)166 5201 y(821,)h(824,)f(826,)h(830,)f(832,)h(835,)g(837,)f(839,)h(840,)f(841,) -166 4001 y(842,)h(847,)f(849,)h(851,)f(853,)h(855,)g(856,)f(857,)h -(858,)f(860,)166 4100 y(862,)h(864,)f(867,)h(869,)f(873,)h(874,)g(875,) -f(879,)h(880,)f(881,)166 4200 y(882,)h(883,)f(886,)h(888,)f(890,)h -(893,)g(894,)f(895,)h(898,)f(900,)166 4300 y(901,)h(906,)f(908,)h(909,) -f(912,)h(913,)g(914,)f(915,)h(917,)f(918,)166 4399 y(919,)h(930,)f -(931,)h(938,)f(939,)h(945,)g(961,)f(962,)h(964,)f(965,)166 -4499 y(966,)30 b(967,)f(972,)h(990,)g(991,)f(998,)h(999,)g(1005,)f -(1006,)166 4599 y(1018,)c(1022,)g(1023,)g(1024,)g(1034,)g(1040,)g -(1041,)g(1075,)166 4698 y(1077,)g(1078,)g(1079,)g(1113,)g(1115,)g -(1160,)g(1167,)g(1168,)166 4798 y(1188,)g(1204,)g(1210,)g(1211,)g -(1214,)g(1246,)g(1257,)g(1260,)166 4897 y(1261,)g(1279,)g(1282,)g -(1285,)g(1291,)g(1297,)g(1303,)g(1317,)166 4997 y(1318,)g(1337,)g -(1339,)g(1342,)g(1343,)g(1344,)g(1360,)g(1362,)166 5097 -y(1374,)g(1375,)g(1379,)g(1382,)g(1385,)g(1388,)g(1391,)g(1393,)166 -5196 y(1394,)31 b(1446,)g(1459,)g(1473,)g(1478,)g(1517.)0 -5298 y Ff(PATH)s Fm(:)83 b(1291)p 285 5311 167 4 v -2 -w(,)37 b(1292)p 511 5311 V -2 w(,)g(1311,)e(1312.)0 5400 -y Fk(P)m(aths)6 b Fm(:)83 b(207,)34 b(549,)f(656,)h(662,)g(763,)g(765,) -g(828,)g(839,)2199 263 y(872,)i(876,)h(879,)f(917,)g(1374.)2033 -366 y Fi(p)l(aths)12 b Fm(:)83 b(1291)p 2335 379 V -2 -w(,)32 b(1297,)e(1303,)g(1311,)g(1312,)g(1318,)g(1337,)2199 -466 y(1339,)38 b(1342,)f(1344,)h(1360,)f(1362,)h(1374,)f(1375,)2199 -565 y(1377,)25 b(1379,)g(1380,)g(1382,)g(1383,)g(1385,)g(1386,)g(1388,) -2199 665 y(1389,)37 b(1391,)f(1392,)h(1394.)2033 768 -y Fi(p)l(a0)17 b Fm(:)83 b(1214)p 2278 781 V -2 w(.)2033 -871 y Fi(p)l(en)11 b Fm(:)83 b(264)p 2273 884 125 4 v --2 w(,)32 b(278,)e(300,)g(302,)g(409,)g(411,)h(415,)f(458,)g(461,)2199 -971 y(465,)k(654)p 2382 984 V -2 w(,)i(657,)e(658,)f(661,)h(664,)g -(666,)g(669,)g(671,)2199 1071 y(674,)g(676,)g(707,)g(776,)f(802,)h -(807,)g(813,)g(821,)g(824,)2199 1170 y(859,)39 b(861,)g(862,)h(863.) -2033 1273 y Fi(p)l(en)p 2161 1273 26 4 v 31 w(inner)13 -b Fm(:)83 b(1278)p 2498 1286 167 4 v -2 w(,)40 b(1279)p -2727 1286 V -1 w(.)2033 1376 y Fi(p)l(en)p 2161 1376 -26 4 v 31 w(midd)t(le)12 b Fm(:)83 b(1278)p 2545 1389 -167 4 v -2 w(,)40 b(1279)p 2774 1389 V -2 w(.)2033 1480 -y Fi(p)l(en)p 2161 1480 26 4 v 31 w(outer)13 b Fm(:)83 -b(1278)p 2494 1493 167 4 v -2 w(,)40 b(1279)p 2723 1493 -V -2 w(.)2033 1583 y Fi(p)l(entagon)p 2358 1583 26 4 -v 31 w(diameter)14 b Fm(:)83 b(1454)p 2820 1596 167 4 -v -2 w(,)44 b(1455)p 3053 1596 V -2 w(,)g(1457)p 3286 -1596 V -2 w(,)g(1458)p 3519 1596 V -2 w(,)2199 1682 y(1459)p -2199 1695 V -2 w(,)g(1460)p 2432 1695 V -1 w(.)2033 1785 -y Fi(p)l(entagon)p 2358 1785 26 4 v 31 w(r)l(adius)12 -b Fm(:)83 b(1448)p 2721 1798 167 4 v -2 w(,)35 b(1452,)d(1455.)2033 -1889 y Fi(p)l(ents)11 b Fm(:)83 b(1458)p 2335 1902 V --2 w(.)2033 1992 y Fi(p)l(ersp)10 b Fm(:)83 b(556)p 2336 -2005 125 4 v -1 w(,)30 b(559,)e(561,)h(570,)f(572,)h(574,)g(583,)f -(585.)2033 2095 y Ff(PERSP)r Fm(:)83 b(211)p 2361 2108 -V -1 w(,)36 b(212)p 2545 2108 V -1 w(,)g(253,)f(254,)g(312,)g(314,)g -(317,)g(319,)2199 2194 y(322,)f(324,)g(327,)g(329,)f(332,)h(334,)g -(337,)g(339,)g(398,)2199 2294 y(402,)39 b(431,)f(866,)h(1336.)2033 -2397 y Fi(p)l(ersp)p 2225 2397 26 4 v 31 w(tr)l(ansform)11 -b Fm(:)83 b(397.)2033 2500 y Fi(phi)14 b Fm(:)83 b(1282)p -2262 2513 167 4 v -2 w(,)44 b(1285)p 2495 2513 V -2 w(.)2033 -2603 y Ff(PI)t Fm(:)83 b(24,)28 b(25)p 2366 2616 84 4 -v -1 w(,)h(27)p 2501 2616 V -1 w(,)g(36)p 2636 2616 V --1 w(,)g(162,)e(163,)h(164,)g(505,)f(1105,)g(1263,)2199 -2703 y(1432,)e(1438,)g(1449,)g(1455,)g(1463,)g(1469,)g(1477,)g(1483.) -2033 2806 y Fi(pictur)l(e)11 b Fm(:)83 b(409,)33 b(410)p -2579 2819 125 4 v -2 w(,)i(411)p 2761 2819 V -2 w(,)g(412)p -2943 2819 V -2 w(,)g(413)p 3125 2819 V -2 w(,)g(414)p -3307 2819 V -1 w(,)f(415)p 3489 2819 V -1 w(,)g(416)p -3671 2819 V -1 w(,)2199 2906 y(417)p 2199 2919 V -1 w(,)25 -b(419)p 2372 2919 V -2 w(,)g(420)p 2544 2919 V -1 w(,)g(422)p -2717 2919 V -2 w(,)g(423)p 2889 2919 V -1 w(,)g(425)p -3062 2919 V -1 w(,)g(426)p 3235 2919 V -2 w(,)g(428)p -3407 2919 V -1 w(,)g(429)p 3580 2919 V -2 w(,)g(461)p -3752 2919 V -1 w(,)2199 3005 y(462)p 2199 3018 V -1 w(,)g(463)p -2372 3018 V -2 w(,)g(464)p 2544 3018 V -1 w(,)g(466)p -2717 3018 V -2 w(,)g(467)p 2889 3018 V -1 w(,)g(468)p -3062 3018 V -1 w(,)g(469)p 3235 3018 V -2 w(,)g(775)p -3407 3018 V -1 w(,)g(776)p 3580 3018 V -2 w(,)g(777)p -3752 3018 V -1 w(,)2199 3105 y(778)p 2199 3118 V -1 w(,)g(780)p -2372 3118 V -2 w(,)g(781)p 2544 3118 V -1 w(,)g(784)p -2717 3118 V -2 w(,)g(785)p 2889 3118 V -1 w(,)g(786)p -3062 3118 V -1 w(,)g(787)p 3235 3118 V -2 w(,)g(789)p -3407 3118 V -1 w(,)g(790)p 3580 3118 V -2 w(,)g(793)p -3752 3118 V -1 w(,)2199 3205 y(794)p 2199 3218 V -1 w(,)g(795)p -2372 3218 V -2 w(,)g(796)p 2544 3218 V -1 w(,)g(798)p -2717 3218 V -2 w(,)g(799)p 2889 3218 V -1 w(,)g(801)p -3062 3218 V -1 w(,)g(802)p 3235 3218 V -2 w(,)g(803)p -3407 3218 V -1 w(,)g(804)p 3580 3218 V -2 w(,)g(806)p -3752 3218 V -1 w(,)2199 3304 y(807)p 2199 3317 V -1 w(,)g(808)p -2372 3317 V -2 w(,)g(809)p 2544 3317 V -1 w(,)g(812)p -2717 3317 V -2 w(,)g(813)p 2889 3317 V -1 w(,)g(814)p -3062 3317 V -1 w(,)g(815)p 3235 3317 V -2 w(,)g(817)p -3407 3317 V -1 w(,)g(818)p 3580 3317 V -2 w(,)g(820)p -3752 3317 V -1 w(,)2199 3404 y(821)p 2199 3417 V -1 w(,)g(823)p -2372 3417 V -2 w(,)g(824)p 2544 3417 V -1 w(,)g(825)p -2717 3417 V -2 w(,)g(826)p 2889 3417 V -1 w(,)g(829)p -3062 3417 V -1 w(,)g(830)p 3235 3417 V -2 w(,)g(831)p -3407 3417 V -1 w(,)g(832)p 3580 3417 V -2 w(,)g(834)p -3752 3417 V -1 w(,)2199 3504 y(835)p 2199 3517 V -1 w(,)33 -b(836)p 2380 3517 V -2 w(,)h(837)p 2561 3517 V -2 w(,)f(921)p -2741 3517 V -1 w(,)g(922)p 2922 3517 V -1 w(,)g(925,)f(926)p -3284 3517 V -2 w(,)h(927)p 3464 3517 V -1 w(,)g(1046)p -3645 3517 167 4 v -2 w(,)2199 3603 y(1047)p 2199 3616 -V -2 w(,)27 b(1050)p 2415 3616 V -2 w(,)g(1051)p 2631 -3616 V -2 w(,)g(1092)p 2847 3616 V -2 w(,)g(1093)p 3063 -3616 V -2 w(,)g(1117)p 3279 3616 V -2 w(,)g(1118)p 3495 -3616 V -2 w(,)g(1119)p 3711 3616 V -2 w(,)2199 3703 y(1217)p -2199 3716 V -2 w(,)g(1218)p 2415 3716 V -2 w(,)g(1219)p -2631 3716 V -2 w(,)g(1220)p 2847 3716 V -2 w(,)g(1225)p -3063 3716 V -2 w(,)g(1226)p 3279 3716 V -2 w(,)g(1267)p -3495 3716 V -2 w(,)g(1268)p 3711 3716 V -2 w(,)2199 3802 -y(1271)p 2199 3815 V -2 w(,)g(1272)p 2415 3815 V -2 w(,)g(1278)p -2631 3815 V -2 w(,)g(1279)p 2847 3815 V -2 w(,)g(1378)p -3063 3815 V -2 w(,)g(1379)p 3279 3815 V -2 w(,)g(1381)p -3495 3815 V -2 w(,)g(1382)p 3711 3815 V -2 w(,)2199 3902 -y(1384)p 2199 3915 V -2 w(,)g(1385)p 2415 3915 V -2 w(,)g(1387)p -2631 3915 V -2 w(,)g(1388)p 2847 3915 V -2 w(,)g(1390)p -3063 3915 V -2 w(,)g(1391)p 3279 3915 V -2 w(,)g(1393)p -3495 3915 V -2 w(,)g(1394)p 3711 3915 V -2 w(.)2033 4005 -y Fk(Picture)5 b Fm(:)83 b(33)p 2451 4018 84 4 v -1 w(,)34 -b(196,)f(200,)f(208)p 2954 4018 125 4 v -2 w(,)i(209,)f(213,)f(216)p -3498 4018 V -1 w(,)h(218,)2199 4105 y(219)p 2199 4118 +166 5300 y(842,)h(847,)f(849,)h(851,)f(853,)h(855,)g(856,)f(857,)h +(858,)f(860,)166 5400 y(862,)h(864,)f(867,)h(869,)f(873,)h(874,)g(875,) +f(879,)h(880,)f(881,)2199 263 y(882,)h(883,)f(886,)h(889,)f(891,)h +(893,)g(896,)f(897,)h(898,)f(901,)2199 363 y(903,)h(904,)f(909,)h(911,) +f(912,)h(915,)g(916,)f(917,)h(918,)f(920,)2199 462 y(921,)h(922,)f +(933,)h(934,)f(941,)h(942,)g(948,)f(964,)h(965,)f(967,)2199 +562 y(968,)28 b(969,)f(970,)h(975,)f(993,)h(994,)g(1001,)f(1002,)g +(1008,)2199 662 y(1009,)e(1021,)g(1025,)g(1026,)g(1027,)g(1037,)g +(1043,)g(1044,)2199 761 y(1078,)g(1080,)g(1081,)g(1082,)g(1084,)g +(1118,)g(1120,)g(1165,)2199 861 y(1172,)g(1173,)g(1193,)g(1209,)g +(1215,)g(1216,)g(1219,)g(1251,)2199 960 y(1262,)g(1265,)g(1266,)g +(1284,)g(1287,)g(1290,)g(1296,)g(1302,)2199 1060 y(1308,)g(1322,)g +(1323,)g(1342,)g(1344,)g(1347,)g(1348,)g(1349,)2199 1160 +y(1365,)g(1367,)g(1379,)g(1380,)g(1384,)g(1387,)g(1390,)g(1393,)2199 +1259 y(1396,)g(1398,)g(1399,)g(1451,)g(1464,)g(1478,)g(1483,)g(1525.) +2033 1362 y Ff(PATH)s Fm(:)83 b(1296)p 2318 1375 167 +4 v -2 w(,)37 b(1297)p 2544 1375 V -2 w(,)g(1316,)e(1317.)2033 +1465 y Fk(P)m(aths)6 b Fm(:)83 b(207,)34 b(549,)g(656,)f(662,)h(763,)g +(765,)g(828,)g(839,)2199 1564 y(872,)i(876,)h(879,)f(920,)g(1379.)2033 +1667 y Fi(p)l(aths)12 b Fm(:)83 b(1296)p 2335 1680 V +-2 w(,)32 b(1302,)e(1308,)g(1316,)g(1317,)g(1323,)g(1342,)2199 +1767 y(1344,)38 b(1347,)f(1349,)h(1365,)f(1367,)h(1379,)f(1380,)2199 +1866 y(1382,)25 b(1384,)g(1385,)g(1387,)g(1388,)g(1390,)g(1391,)g +(1393,)2199 1966 y(1394,)37 b(1396,)f(1397,)h(1399.)2033 +2069 y Fi(p)l(a0)17 b Fm(:)83 b(1219)p 2278 2082 V -2 +w(.)2033 2171 y Fi(p)l(en)11 b Fm(:)83 b(264)p 2273 2184 +125 4 v -2 w(,)32 b(278,)e(300,)g(302,)g(409,)g(411,)h(415,)f(458,)g +(461,)2199 2271 y(465,)k(654)p 2382 2284 V -2 w(,)i(657,)e(658,)f(661,) +h(664,)g(666,)g(669,)g(671,)2199 2371 y(674,)g(676,)g(707,)g(776,)f +(802,)h(807,)g(813,)g(821,)g(824,)2199 2470 y(859,)39 +b(861,)g(862,)h(863.)2033 2573 y Fi(p)l(en)p 2161 2573 +26 4 v 31 w(inner)13 b Fm(:)83 b(1283)p 2498 2586 167 +4 v -2 w(,)40 b(1284)p 2727 2586 V -1 w(.)2033 2676 y +Fi(p)l(en)p 2161 2676 26 4 v 31 w(midd)t(le)12 b Fm(:)83 +b(1283)p 2545 2689 167 4 v -2 w(,)40 b(1284)p 2774 2689 +V -2 w(.)2033 2779 y Fi(p)l(en)p 2161 2779 26 4 v 31 +w(outer)13 b Fm(:)83 b(1283)p 2494 2792 167 4 v -2 w(,)40 +b(1284)p 2723 2792 V -2 w(.)2033 2881 y Fi(p)l(entagon)p +2358 2881 26 4 v 31 w(diameter)14 b Fm(:)83 b(1459)p +2820 2894 167 4 v -2 w(,)44 b(1460)p 3053 2894 V -2 w(,)g(1462)p +3286 2894 V -2 w(,)g(1463)p 3519 2894 V -2 w(,)2199 2981 +y(1464)p 2199 2994 V -2 w(,)g(1465)p 2432 2994 V -1 w(.)2033 +3084 y Fi(p)l(entagon)p 2358 3084 26 4 v 31 w(r)l(adius)12 +b Fm(:)83 b(1453)p 2721 3097 167 4 v -2 w(,)35 b(1457,)d(1460.)2033 +3186 y Fi(p)l(ents)11 b Fm(:)83 b(1463)p 2335 3199 V +-2 w(.)2033 3289 y Fi(p)l(ersp)10 b Fm(:)83 b(556)p 2336 +3302 125 4 v -1 w(,)30 b(559,)e(561,)h(570,)f(572,)h(574,)g(583,)f +(585.)2033 3392 y Ff(PERSP)r Fm(:)83 b(211)p 2361 3405 +V -1 w(,)36 b(212)p 2545 3405 V -1 w(,)g(253,)f(254,)g(312,)g(314,)g +(317,)g(319,)2199 3492 y(322,)f(324,)g(327,)g(329,)f(332,)h(334,)g +(337,)g(339,)g(398,)2199 3591 y(402,)39 b(431,)f(866,)h(1341.)2033 +3694 y Fi(p)l(ersp)p 2225 3694 26 4 v 31 w(tr)l(ansform)11 +b Fm(:)83 b(397.)2033 3797 y Fi(phi)14 b Fm(:)83 b(1287)p +2262 3810 167 4 v -2 w(,)44 b(1290)p 2495 3810 V -2 w(.)2033 +3899 y Ff(PI)t Fm(:)83 b(24,)28 b(25)p 2366 3912 84 4 +v -1 w(,)h(27)p 2501 3912 V -1 w(,)g(36)p 2636 3912 V +-1 w(,)g(162,)e(163,)h(164,)g(505,)f(1110,)g(1268,)2199 +3999 y(1437,)e(1443,)g(1454,)g(1460,)g(1468,)g(1474,)g(1482,)g(1488.) +2033 4102 y Fi(pictur)l(e)11 b Fm(:)83 b(409,)33 b(410)p +2579 4115 125 4 v -2 w(,)i(411)p 2761 4115 V -2 w(,)g(412)p +2943 4115 V -2 w(,)g(413)p 3125 4115 V -2 w(,)g(414)p +3307 4115 V -1 w(,)f(415)p 3489 4115 V -1 w(,)g(416)p +3671 4115 V -1 w(,)2199 4201 y(417)p 2199 4214 V -1 w(,)25 +b(419)p 2372 4214 V -2 w(,)g(420)p 2544 4214 V -1 w(,)g(422)p +2717 4214 V -2 w(,)g(423)p 2889 4214 V -1 w(,)g(425)p +3062 4214 V -1 w(,)g(426)p 3235 4214 V -2 w(,)g(428)p +3407 4214 V -1 w(,)g(429)p 3580 4214 V -2 w(,)g(461)p +3752 4214 V -1 w(,)2199 4301 y(462)p 2199 4314 V -1 w(,)g(463)p +2372 4314 V -2 w(,)g(464)p 2544 4314 V -1 w(,)g(466)p +2717 4314 V -2 w(,)g(467)p 2889 4314 V -1 w(,)g(468)p +3062 4314 V -1 w(,)g(469)p 3235 4314 V -2 w(,)g(775)p +3407 4314 V -1 w(,)g(776)p 3580 4314 V -2 w(,)g(777)p +3752 4314 V -1 w(,)2199 4401 y(778)p 2199 4414 V -1 w(,)g(780)p +2372 4414 V -2 w(,)g(781)p 2544 4414 V -1 w(,)g(784)p +2717 4414 V -2 w(,)g(785)p 2889 4414 V -1 w(,)g(786)p +3062 4414 V -1 w(,)g(787)p 3235 4414 V -2 w(,)g(789)p +3407 4414 V -1 w(,)g(790)p 3580 4414 V -2 w(,)g(793)p +3752 4414 V -1 w(,)2199 4500 y(794)p 2199 4513 V -1 w(,)g(795)p +2372 4513 V -2 w(,)g(796)p 2544 4513 V -1 w(,)g(798)p +2717 4513 V -2 w(,)g(799)p 2889 4513 V -1 w(,)g(801)p +3062 4513 V -1 w(,)g(802)p 3235 4513 V -2 w(,)g(803)p +3407 4513 V -1 w(,)g(804)p 3580 4513 V -2 w(,)g(806)p +3752 4513 V -1 w(,)2199 4600 y(807)p 2199 4613 V -1 w(,)g(808)p +2372 4613 V -2 w(,)g(809)p 2544 4613 V -1 w(,)g(812)p +2717 4613 V -2 w(,)g(813)p 2889 4613 V -1 w(,)g(814)p +3062 4613 V -1 w(,)g(815)p 3235 4613 V -2 w(,)g(817)p +3407 4613 V -1 w(,)g(818)p 3580 4613 V -2 w(,)g(820)p +3752 4613 V -1 w(,)2199 4700 y(821)p 2199 4713 V -1 w(,)g(823)p +2372 4713 V -2 w(,)g(824)p 2544 4713 V -1 w(,)g(825)p +2717 4713 V -2 w(,)g(826)p 2889 4713 V -1 w(,)g(829)p +3062 4713 V -1 w(,)g(830)p 3235 4713 V -2 w(,)g(831)p +3407 4713 V -1 w(,)g(832)p 3580 4713 V -2 w(,)g(834)p +3752 4713 V -1 w(,)2199 4799 y(835)p 2199 4812 V -1 w(,)33 +b(836)p 2380 4812 V -2 w(,)h(837)p 2561 4812 V -2 w(,)f(924)p +2741 4812 V -1 w(,)g(925)p 2922 4812 V -1 w(,)g(928,)f(929)p +3284 4812 V -2 w(,)h(930)p 3464 4812 V -1 w(,)g(1049)p +3645 4812 167 4 v -2 w(,)2199 4899 y(1050)p 2199 4912 +V -2 w(,)27 b(1053)p 2415 4912 V -2 w(,)g(1054)p 2631 +4912 V -2 w(,)g(1097)p 2847 4912 V -2 w(,)g(1098)p 3063 +4912 V -2 w(,)g(1122)p 3279 4912 V -2 w(,)g(1123)p 3495 +4912 V -2 w(,)g(1124)p 3711 4912 V -2 w(,)2199 4998 y(1222)p +2199 5011 V -2 w(,)g(1223)p 2415 5011 V -2 w(,)g(1224)p +2631 5011 V -2 w(,)g(1225)p 2847 5011 V -2 w(,)g(1230)p +3063 5011 V -2 w(,)g(1231)p 3279 5011 V -2 w(,)g(1272)p +3495 5011 V -2 w(,)g(1273)p 3711 5011 V -2 w(,)2199 5098 +y(1276)p 2199 5111 V -2 w(,)g(1277)p 2415 5111 V -2 w(,)g(1283)p +2631 5111 V -2 w(,)g(1284)p 2847 5111 V -2 w(,)g(1383)p +3063 5111 V -2 w(,)g(1384)p 3279 5111 V -2 w(,)g(1386)p +3495 5111 V -2 w(,)g(1387)p 3711 5111 V -2 w(,)2199 5198 +y(1389)p 2199 5211 V -2 w(,)g(1390)p 2415 5211 V -2 w(,)g(1392)p +2631 5211 V -2 w(,)g(1393)p 2847 5211 V -2 w(,)g(1395)p +3063 5211 V -2 w(,)g(1396)p 3279 5211 V -2 w(,)g(1398)p +3495 5211 V -2 w(,)g(1399)p 3711 5211 V -2 w(.)2033 5300 +y Fk(Picture)5 b Fm(:)83 b(33)p 2451 5313 84 4 v -1 w(,)34 +b(196,)f(200,)f(208)p 2954 5313 125 4 v -2 w(,)i(209,)f(213,)f(216)p +3498 5313 V -1 w(,)h(218,)2199 5400 y(219)p 2199 5413 V -1 w(,)25 b(220,)e(221,)h(222,)f(224,)h(226,)g(228,)f(229,)h(232,)f -(233,)2199 4204 y(236,)h(239,)f(242,)h(245,)f(247,)h(249,)g(251,)f -(252,)h(257,)f(258,)2199 4304 y(264,)h(373,)f(396,)h(397,)f(400,)h -(409,)g(410,)f(411,)h(412,)f(413,)2199 4404 y(414,)h(415,)f(416,)h -(417,)f(419,)h(420,)g(422,)f(423,)h(425,)f(426,)2199 -4503 y(428,)h(429,)f(438,)h(440,)f(442,)h(453,)g(457,)f(461,)h(462,)f -(463,)2199 4603 y(464,)h(466,)f(467,)h(468,)f(469,)h(543,)g(544)p -3235 4616 V -2 w(,)h(545,)f(546,)f(548,)2199 4703 y(551,)h(552,)f(553,) -h(554,)f(654,)h(686,)g(775,)f(776,)h(777,)f(778,)2199 -4802 y(780,)34 b(781,)g(784,)g(785,)f(786,)h(787,)g(789,)g(790,)g(793,) -2199 4902 y(794,)g(795,)g(796,)g(798,)f(799,)h(801,)g(802,)g(803,)g -(804,)2199 5001 y(806,)g(807,)g(808,)g(809,)f(812,)h(813,)g(814,)g -(815,)g(817,)2199 5101 y(818,)g(820,)g(821,)g(823,)f(824,)h(825,)g -(826,)g(829,)g(830,)2199 5201 y(831,)g(832,)g(834,)g(835,)f(836,)h -(837,)g(839,)g(841,)g(844,)2199 5300 y(852,)e(854,)g(856,)f(858,)h -(921,)g(922,)g(926,)f(927,)h(1046,)2199 5400 y(1047,)25 -b(1050,)g(1051,)g(1092,)g(1093,)g(1117,)g(1118,)g(1119,)p -eop end -%%Page: 496 496 -TeXDict begin 496 495 bop 0 83 a Fm(496)140 b Fl(INDEX)2670 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1517)166 263 y(1217,)25 -b(1218,)g(1219,)g(1220,)g(1221,)g(1225,)g(1226,)g(1267,)166 -363 y(1268,)g(1271,)g(1272,)g(1278,)g(1279,)g(1304,)g(1343,)g(1374,)166 -462 y(1378,)g(1379,)g(1381,)g(1382,)g(1384,)g(1385,)g(1387,)g(1388,)166 -562 y(1390,)34 b(1391,)g(1393,)f(1394,)h(1445.)0 670 -y Fk(Pictures)5 b Fm(:)83 b(122,)26 b(207,)f(209,)h(216,)f(233,)h(264,) -f(686,)h(1294.)0 777 y Fi(pink)14 b Fm(:)83 b(112)p 272 -790 125 4 v -1 w(,)44 b(113)p 464 790 V -2 w(.)0 885 -y Fi(pl)13 b Fm(:)84 b(643)p 183 898 V -2 w(,)35 b(644)p -365 898 V -2 w(,)g(946)p 547 898 V -2 w(,)g(951)p 729 -898 V -2 w(,)g(952,)e(953,)g(960,)g(982)p 1457 898 V --2 w(,)i(983,)166 984 y(984,)k(987,)g(993)p 542 997 V --1 w(,)h(996.)0 1092 y Fi(pl)p 68 1092 26 4 v 31 w(normal)14 -b Fm(:)83 b(644)p 469 1105 125 4 v -2 w(.)0 1200 y Fk(Plane)5 -b Fm(:)83 b(12,)29 b(33)p 482 1213 84 4 v -1 w(,)i(356,)e(594,)g(615,)g -(617)p 1153 1213 125 4 v -2 w(,)i(619,)e(620)p 1509 1213 -V -2 w(,)i(621,)166 1299 y(622)p 166 1312 V -1 w(,)k(623,)f(624)p -532 1312 V -2 w(,)i(625,)d(626,)h(628,)g(629,)g(630,)g(631,)166 -1399 y(633,)g(634,)g(635,)g(636,)f(637,)h(641,)g(643,)g(644,)g(646,)166 -1499 y(647,)g(648,)g(899,)g(900,)f(901,)h(919,)g(945,)g(946,)g(950,)166 -1598 y(951,)i(982,)g(993,)f(1171,)h(1263.)0 1706 y Fk(Planes)t -Fm(:)84 b(615,)38 b(644,)g(1170.)0 1813 y Fk(P)m(oin)m(t)5 -b Fm(:)83 b(2,)33 b(33)p 433 1826 84 4 v -1 w(,)g(122)p -572 1826 125 4 v -2 w(,)g(149,)f(157,)g(166,)f(168,)h(196,)f(199,)166 -1913 y(200,)24 b(208)p 339 1926 V -2 w(,)h(210,)f(224,)f(240,)h(243,)g -(262,)f(264)p 1374 1926 V -1 w(,)i(265,)e(267,)166 2013 +(233,)p eop end +%%Page: 501 501 +TeXDict begin 501 500 bop 0 83 a Fn(x)p Fm(1525)139 b +Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(501)166 263 y(236,)24 +b(239,)f(242,)h(245,)f(247,)h(249,)g(251,)f(252,)h(257,)f(258,)166 +363 y(264,)h(373,)f(396,)h(397,)f(400,)h(409,)g(410,)f(411,)h(412,)f +(413,)166 462 y(414,)h(415,)f(416,)h(417,)f(419,)h(420,)g(422,)f(423,)h +(425,)f(426,)166 562 y(428,)h(429,)f(438,)h(440,)f(442,)h(453,)g(457,)f +(461,)h(462,)f(463,)166 662 y(464,)h(466,)f(467,)h(468,)f(469,)h(543,)g +(544)p 1202 675 125 4 v -2 w(,)h(545,)f(546,)f(548,)166 +761 y(551,)h(552,)f(553,)h(554,)f(654,)h(686,)g(775,)f(776,)h(777,)f +(778,)166 861 y(780,)34 b(781,)g(784,)g(785,)f(786,)h(787,)g(789,)g +(790,)g(793,)166 960 y(794,)g(795,)g(796,)g(798,)f(799,)h(801,)g(802,)g +(803,)g(804,)166 1060 y(806,)g(807,)g(808,)g(809,)f(812,)h(813,)g(814,) +g(815,)g(817,)166 1160 y(818,)g(820,)g(821,)g(823,)f(824,)h(825,)g +(826,)g(829,)g(830,)166 1259 y(831,)g(832,)g(834,)g(835,)f(836,)h(837,) +g(839,)g(841,)g(844,)166 1359 y(852,)e(854,)g(856,)f(858,)h(924,)g +(925,)g(929,)f(930,)h(1049,)166 1459 y(1050,)25 b(1053,)g(1054,)g +(1097,)g(1098,)g(1122,)g(1123,)g(1124,)166 1558 y(1222,)g(1223,)g +(1224,)g(1225,)g(1226,)g(1230,)g(1231,)g(1272,)166 1658 +y(1273,)g(1276,)g(1277,)g(1283,)g(1284,)g(1309,)g(1348,)g(1379,)166 +1757 y(1383,)g(1384,)g(1386,)g(1387,)g(1389,)g(1390,)g(1392,)g(1393,) +166 1857 y(1395,)34 b(1396,)g(1398,)f(1399,)h(1450.)0 +1965 y Fk(Pictures)5 b Fm(:)83 b(122,)26 b(207,)f(209,)h(216,)f(233,)h +(264,)f(686,)h(1299.)0 2072 y Fi(pink)14 b Fm(:)83 b(112)p +272 2085 V -1 w(,)44 b(113)p 464 2085 V -2 w(.)0 2180 +y Fi(pl)13 b Fm(:)84 b(643)p 183 2193 V -2 w(,)35 b(644)p +365 2193 V -2 w(,)g(949)p 547 2193 V -2 w(,)g(954)p 729 +2193 V -2 w(,)g(955,)e(956,)g(963,)g(985)p 1457 2193 +V -2 w(,)i(986,)166 2280 y(987,)k(990,)g(996)p 542 2293 +V -1 w(,)h(999.)0 2387 y Fi(pl)p 68 2387 26 4 v 31 w(normal)14 +b Fm(:)83 b(644)p 469 2400 125 4 v -2 w(.)0 2495 y Fk(Plane)5 +b Fm(:)83 b(12,)29 b(33)p 482 2508 84 4 v -1 w(,)i(356,)e(594,)g(615,)g +(617)p 1153 2508 125 4 v -2 w(,)i(619,)e(620)p 1509 2508 +V -2 w(,)i(621,)166 2594 y(622)p 166 2607 V -1 w(,)k(623,)f(624)p +532 2607 V -2 w(,)i(625,)d(626,)h(628,)g(629,)g(630,)g(631,)166 +2694 y(633,)g(634,)g(635,)g(636,)f(637,)h(641,)g(643,)g(644,)g(646,)166 +2794 y(647,)g(648,)g(902,)g(903,)f(904,)h(922,)g(948,)g(949,)g(953,)166 +2893 y(954,)i(985,)g(996,)f(1176,)h(1268.)0 3001 y Fk(Planes)t +Fm(:)84 b(615,)38 b(644,)g(1175.)0 3109 y Fk(P)m(oin)m(t)5 +b Fm(:)83 b(2,)33 b(33)p 433 3122 84 4 v -1 w(,)g(122)p +572 3122 125 4 v -2 w(,)g(149,)f(157,)g(166,)f(168,)h(196,)f(199,)166 +3208 y(200,)24 b(208)p 339 3221 V -2 w(,)h(210,)f(224,)f(240,)h(243,)g +(262,)f(264)p 1374 3221 V -1 w(,)i(265,)e(267,)166 3308 y(268,)h(272,)f(274,)h(275,)f(278,)h(279,)g(280)p 1202 -2026 V -2 w(,)h(282,)f(283)p 1547 2026 V -2 w(,)h(284,)166 -2112 y(285,)f(286,)f(287)p 511 2125 V -1 w(,)i(288,)e(289,)h(290,)g -(291,)f(292,)h(293,)f(294,)166 2212 y(295,)h(296,)f(297)p -511 2225 V -1 w(,)i(298)p 684 2225 V -2 w(,)g(299,)f(300,)g(303,)f -(305,)h(309,)f(313,)166 2312 y(315,)h(318,)f(320,)h(323,)f(325,)h(328,) -g(330,)f(333,)h(335,)f(338,)166 2411 y(340,)h(343,)f(345,)h(346,)f -(349,)h(350,)g(351,)f(352,)h(353,)f(354,)166 2511 y(355,)h(357,)f(361,) +3321 V -2 w(,)h(282,)f(283)p 1547 3321 V -2 w(,)h(284,)166 +3407 y(285,)f(286,)f(287)p 511 3420 V -1 w(,)i(288,)e(289,)h(290,)g +(291,)f(292,)h(293,)f(294,)166 3507 y(295,)h(296,)f(297)p +511 3520 V -1 w(,)i(298)p 684 3520 V -2 w(,)g(299,)f(300,)g(303,)f +(305,)h(309,)f(313,)166 3607 y(315,)h(318,)f(320,)h(323,)f(325,)h(328,) +g(330,)f(333,)h(335,)f(338,)166 3706 y(340,)h(343,)f(345,)h(346,)f +(349,)h(350,)g(351,)f(352,)h(353,)f(354,)166 3806 y(355,)h(357,)f(361,) h(363,)f(365,)h(369,)g(370,)f(371,)h(372,)f(373,)166 -2610 y(376,)h(377,)f(378,)h(379,)f(380,)h(381)p 1029 -2623 V -1 w(,)h(382,)e(383,)h(386,)f(392,)166 2710 y(393,)h(395,)f +3906 y(376,)h(377,)f(378,)h(379,)f(380,)h(381)p 1029 +3919 V -1 w(,)h(382,)e(383,)h(386,)f(392,)166 4005 y(393,)h(395,)f (396,)h(399,)f(402,)h(403,)g(404,)f(405,)h(407,)f(411,)166 -2810 y(413,)h(415,)f(417,)h(419,)f(420,)h(422,)g(423,)f(425,)h(426,)f -(428,)166 2909 y(429,)h(432,)f(434,)h(436,)f(437,)h(439,)g(441,)f(442,) -h(443,)f(446,)166 3009 y(448,)h(450,)f(452,)h(458,)f(461,)h(462,)g -(463,)f(464,)h(465,)f(467,)166 3109 y(469,)h(471,)f(472,)h(475,)f(477,) -h(478,)g(479,)f(480,)h(481,)f(482,)166 3208 y(483,)h(484,)f(485,)h -(486,)f(488,)h(489,)g(490,)f(491,)h(492,)f(493,)166 3308 +4105 y(413,)h(415,)f(417,)h(419,)f(420,)h(422,)g(423,)f(425,)h(426,)f +(428,)166 4204 y(429,)h(432,)f(434,)h(436,)f(437,)h(439,)g(441,)f(442,) +h(443,)f(446,)166 4304 y(448,)h(450,)f(452,)h(458,)f(461,)h(462,)g +(463,)f(464,)h(465,)f(467,)166 4404 y(469,)h(471,)f(472,)h(475,)f(477,) +h(478,)g(479,)f(480,)h(481,)f(482,)166 4503 y(483,)h(484,)f(485,)h +(486,)f(488,)h(489,)g(490,)f(491,)h(492,)f(493,)166 4603 y(495,)h(496,)f(497,)h(498,)f(499,)h(500,)g(501,)f(502,)h(503,)f(504,) -166 3407 y(505,)h(507,)f(508,)h(509,)f(510,)h(511,)g(512,)f(513,)h -(516,)f(517,)166 3507 y(523,)h(524,)f(525,)h(526,)f(527,)h(528,)g(529,) -f(530,)h(541,)f(549,)166 3607 y(553,)h(556,)f(557,)h(565,)f(566,)h -(567,)g(568,)f(576,)h(577,)f(579,)166 3706 y(591,)h(593,)f(594,)h(595,) -f(596,)h(601,)g(603,)f(604,)h(605,)f(606,)166 3806 y(615,)h(617,)f +166 4703 y(505,)h(507,)f(508,)h(509,)f(510,)h(511,)g(512,)f(513,)h +(516,)f(517,)166 4802 y(523,)h(524,)f(525,)h(526,)f(527,)h(528,)g(529,) +f(530,)h(541,)f(549,)166 4902 y(553,)h(556,)f(557,)h(565,)f(566,)h +(567,)g(568,)f(576,)h(577,)f(579,)166 5001 y(591,)h(593,)f(594,)h(595,) +f(596,)h(601,)g(603,)f(604,)h(605,)f(606,)166 5101 y(615,)h(617,)f (623,)h(624,)f(633,)h(634,)g(635,)f(637,)h(640,)f(641,)166 -3906 y(644,)h(654,)f(657,)h(659,)f(663,)h(664,)g(665,)f(666,)h(667,)f -(669,)166 4005 y(671,)h(672,)f(673,)h(674,)f(675,)h(676,)g(685,)f(717,) -h(719,)f(720,)166 4105 y(730,)h(731,)f(732,)h(734,)f(735,)h(736,)g -(739,)f(741,)h(743,)f(748,)166 4204 y(751,)h(752,)f(754,)h(755,)f(756,) -h(757,)g(765,)f(770,)h(780,)f(781,)166 4304 y(789,)h(790,)f(791,)h -(798,)f(799,)h(817,)g(818,)f(828,)h(830,)f(839,)166 4404 -y(840,)h(843,)f(844,)h(856,)f(859,)h(867,)g(873,)f(875,)h(885,)f(886,) -166 4503 y(887,)34 b(888,)g(889,)g(890,)f(893,)h(894,)g(897,)g(898,)g -(900,)166 4603 y(901,)g(911,)g(917,)g(918,)f(920,)h(921,)g(922,)g(925,) -g(926,)166 4703 y(927,)g(931,)g(938,)g(945,)f(946,)h(947,)g(948,)g -(949,)g(950,)166 4802 y(951,)g(954,)g(961,)g(962,)f(964,)h(965,)g(972,) -g(975,)g(976,)166 4902 y(977,)g(978,)g(981,)g(982,)f(985,)h(987,)g -(992,)g(993,)g(994,)166 5001 y(996,)28 b(1003,)g(1004,)g(1014,)f(1015,) -h(1019,)g(1020,)f(1029,)166 5101 y(1030,)e(1031,)g(1032,)g(1033,)g -(1061,)g(1062,)g(1063,)g(1064,)166 5201 y(1065,)g(1066,)g(1067,)g -(1068,)g(1069,)g(1080,)g(1081,)g(1082,)166 5300 y(1083,)g(1098,)g -(1104,)g(1105,)g(1106,)g(1107,)g(1118,)g(1121,)166 5400 -y(1122,)g(1134,)g(1135,)g(1136,)g(1137,)g(1139,)g(1140,)g(1141,)2199 -263 y(1142,)g(1158,)g(1159,)g(1162,)g(1163,)g(1165,)g(1166,)g(1167,) -2199 363 y(1172,)g(1173,)g(1174,)g(1177,)g(1178,)g(1180,)g(1183,)g -(1188,)2199 462 y(1200,)g(1201,)g(1205,)g(1206,)g(1208,)g(1209,)g -(1214,)g(1223,)2199 562 y(1224,)g(1237,)g(1238,)g(1239,)g(1240,)g -(1251,)g(1253,)g(1254,)2199 662 y(1257,)g(1258,)g(1259,)g(1263,)g -(1265,)g(1269,)g(1279,)g(1282,)2199 761 y(1283,)g(1285,)g(1291,)g -(1308,)g(1309,)g(1324,)g(1325,)g(1326,)2199 861 y(1327,)g(1328,)g -(1329,)g(1330,)g(1331,)g(1332,)g(1333,)g(1352,)2199 960 -y(1353,)g(1356,)g(1357,)g(1414,)g(1415,)g(1427,)g(1428,)g(1437,)2199 -1060 y(1438,)g(1439,)g(1441,)g(1442,)g(1444,)g(1445,)g(1446,)g(1454,) -2199 1160 y(1455,)g(1456,)g(1457,)g(1458,)g(1459,)g(1460,)g(1468,)g -(1469,)2199 1259 y(1471,)31 b(1473,)g(1482,)g(1483,)g(1485,)g(1501.) -2033 1362 y Fi(p)l(oint)12 b Fm(:)84 b(617)p 2332 1375 -V -2 w(,)38 b(619,)f(620,)f(623,)g(624,)h(626,)f(629,)h(634,)2199 -1461 y(646,)i(900)p 2387 1474 V -2 w(,)h(982,)f(1158.)2033 -1564 y Fi(p)l(oint)p 2218 1564 26 4 v 31 w(iter)13 b -Fm(:)83 b(859,)34 b(861,)f(862,)g(863,)g(864.)2033 1666 -y Fi(p)l(oint)p 2218 1666 V 31 w(on)p 2338 1666 V 31 -w(line)11 b Fm(:)83 b(644)p 2612 1679 125 4 v -2 w(.)2033 -1768 y Fk(p)s(oin)m(t)p 2255 1768 29 5 v 40 w(pair)5 -b Fm(:)83 b(267)p 2567 1781 125 4 v -2 w(.)2033 1870 -y Fi(p)l(oint)p 2218 1870 26 4 v 31 w(ptr)13 b Fm(:)83 -b(674)p 2468 1883 125 4 v -1 w(,)42 b(676)p 2658 1883 -V -2 w(.)2033 1973 y Fk(P)m(oin)m(ts)5 b Fm(:)83 b(2,)29 +5201 y(644,)h(654,)f(657,)h(659,)f(663,)h(664,)g(665,)f(666,)h(667,)f +(669,)166 5300 y(671,)h(672,)f(673,)h(674,)f(675,)h(676,)g(685,)f(717,) +h(719,)f(720,)166 5400 y(730,)h(731,)f(732,)h(734,)f(735,)h(736,)g +(739,)f(741,)h(743,)f(748,)2199 263 y(751,)h(752,)f(754,)h(755,)f(756,) +h(757,)g(765,)f(770,)h(780,)f(781,)2199 363 y(789,)h(790,)f(791,)h +(798,)f(799,)h(817,)g(818,)f(828,)h(830,)f(839,)2199 +462 y(840,)h(843,)f(844,)h(856,)f(859,)h(867,)g(873,)f(875,)h(885,)f +(886,)2199 562 y(888,)h(889,)f(890,)h(891,)f(892,)h(893,)g(896,)f(897,) +h(900,)f(901,)2199 662 y(903,)h(904,)f(914,)h(920,)f(921,)h(923,)g +(924,)f(925,)h(928,)f(929,)2199 761 y(930,)h(934,)f(941,)h(948,)f(949,) +h(950,)g(951,)f(952,)h(953,)f(954,)2199 861 y(957,)h(964,)f(965,)h +(967,)f(968,)h(975,)g(978,)f(979,)h(980,)f(981,)2199 +960 y(984,)32 b(985,)g(988,)f(990,)h(995,)g(996,)g(997,)f(999,)h(1006,) +2199 1060 y(1007,)25 b(1017,)g(1018,)g(1022,)g(1023,)g(1032,)g(1033,)g +(1034,)2199 1160 y(1035,)g(1036,)g(1064,)g(1065,)g(1066,)g(1067,)g +(1068,)g(1069,)2199 1259 y(1070,)g(1071,)g(1072,)g(1082,)g(1083,)g +(1085,)g(1086,)g(1087,)2199 1359 y(1088,)g(1103,)g(1109,)g(1110,)g +(1111,)g(1112,)g(1123,)g(1126,)2199 1459 y(1127,)g(1139,)g(1140,)g +(1141,)g(1142,)g(1144,)g(1145,)g(1146,)2199 1558 y(1147,)g(1163,)g +(1164,)g(1167,)g(1168,)g(1170,)g(1171,)g(1172,)2199 1658 +y(1177,)g(1178,)g(1179,)g(1182,)g(1183,)g(1185,)g(1188,)g(1193,)2199 +1757 y(1205,)g(1206,)g(1210,)g(1211,)g(1213,)g(1214,)g(1219,)g(1228,) +2199 1857 y(1229,)g(1242,)g(1243,)g(1244,)g(1245,)g(1256,)g(1258,)g +(1259,)2199 1957 y(1262,)g(1263,)g(1264,)g(1268,)g(1270,)g(1274,)g +(1284,)g(1287,)2199 2056 y(1288,)g(1290,)g(1296,)g(1313,)g(1314,)g +(1329,)g(1330,)g(1331,)2199 2156 y(1332,)g(1333,)g(1334,)g(1335,)g +(1336,)g(1337,)g(1338,)g(1357,)2199 2256 y(1358,)g(1361,)g(1362,)g +(1419,)g(1420,)g(1432,)g(1433,)g(1442,)2199 2355 y(1443,)g(1444,)g +(1446,)g(1447,)g(1449,)g(1450,)g(1451,)g(1459,)2199 2455 +y(1460,)g(1461,)g(1462,)g(1463,)g(1464,)g(1465,)g(1473,)g(1474,)2199 +2554 y(1476,)31 b(1478,)g(1487,)g(1488,)g(1490,)g(1506.)2033 +2660 y Fi(p)l(oint)12 b Fm(:)84 b(617)p 2332 2673 V -2 +w(,)38 b(619,)f(620,)f(623,)g(624,)h(626,)f(629,)h(634,)2199 +2759 y(646,)i(903)p 2387 2772 V -2 w(,)h(985,)f(1163.)2033 +2865 y Fi(p)l(oint)p 2218 2865 26 4 v 31 w(iter)13 b +Fm(:)83 b(859,)34 b(861,)f(862,)g(863,)g(864.)2033 2970 +y Fi(p)l(oint)p 2218 2970 V 31 w(on)p 2338 2970 V 31 +w(line)11 b Fm(:)83 b(644)p 2612 2983 125 4 v -2 w(.)2033 +3075 y Fk(p)s(oin)m(t)p 2255 3075 29 5 v 40 w(pair)5 +b Fm(:)83 b(267)p 2567 3088 125 4 v -2 w(.)2033 3180 +y Fi(p)l(oint)p 2218 3180 26 4 v 31 w(ptr)13 b Fm(:)83 +b(674)p 2468 3193 125 4 v -1 w(,)42 b(676)p 2658 3193 +V -2 w(.)2033 3285 y Fk(P)m(oin)m(ts)5 b Fm(:)83 b(2,)29 b(122,)e(138,)h(168,)f(207,)h(262,)g(264,)f(265,)h(290,)2199 -2072 y(349,)34 b(379,)g(397,)g(402,)f(418,)h(442,)g(451,)g(518,)g(520,) -2199 2172 y(527,)g(531,)g(549,)g(594,)f(602,)h(654,)g(662,)g(667,)g -(721,)2199 2272 y(732,)g(764,)g(765,)g(769,)f(770,)h(828,)g(839,)g -(841,)g(842,)2199 2371 y(856,)g(858,)g(864,)g(867,)f(876,)h(885,)g -(886,)g(893,)g(895,)2199 2471 y(901,)28 b(910,)f(917,)h(945,)f(964,)h -(996,)g(1021,)f(1121,)g(1167,)2199 2570 y(1170,)37 b(1253,)f(1343,)h -(1445.)2033 2673 y Fi(p)l(oints)11 b Fm(:)83 b(654)p -2364 2686 V -1 w(,)26 b(657,)e(659,)h(664,)f(666,)h(669,)f(671,)h(672,) -f(674,)2199 2772 y(676,)g(685,)f(732,)h(734,)f(739,)h(741,)g(743,)f -(748,)h(755,)f(757,)2199 2872 y(764,)h(765,)f(770,)h(776,)f(802,)h -(807,)g(813,)f(821,)h(824,)f(830,)2199 2972 y(839)p 2199 -2985 V -1 w(,)i(840,)e(842,)h(843,)f(856,)h(858,)g(859,)f(862,)h(864,)f -(866,)2199 3071 y(867,)34 b(878,)g(880,)g(881,)f(884,)h(885,)g(886,)g -(888,)g(890,)2199 3171 y(891,)g(894,)g(896,)g(897,)f(910,)h(911,)g -(917,)g(918,)g(930,)2199 3270 y(966,)e(967,)g(976,)f(978,)h(985,)g -(987,)g(994,)f(998,)h(1021,)2199 3370 y(1031,)25 b(1062,)g(1067,)g -(1081,)g(1083,)g(1105,)g(1118,)g(1121,)2199 3470 y(1122,)31 -b(1173,)g(1253)p 2643 3483 167 4 v -2 w(,)i(1254,)e(1265,)g(1269.)2033 -3572 y Fi(p)l(oints)p 2252 3572 26 4 v 31 w(iter)13 b -Fm(:)83 b(867.)2033 3674 y Fk(P)m(olygon)5 b Fm(:)83 -b(970,)28 b(972)p 2657 3687 125 4 v -1 w(,)i(974,)f(976,)f(978,)h(980,) -g(982,)f(985,)2199 3774 y(991,)37 b(992,)g(993,)g(997,)g(999,)g(1001,)f -(1004,)g(1006,)2199 3874 y(1008,)i(1010,)f(1013,)h(1015,)f(1018,)h -(1020,)f(1022,)2199 3973 y(1054,)g(1056,)f(1079,)h(1291.)2033 -4076 y Fi(Polygons)13 b Fm(:)83 b(996.)2033 4178 y Fi(p)l(olygons)12 -b Fm(:)84 b(1291.)2033 4280 y Fi(p)l(olyhe)l(d)15 b Fm(:)83 -b(1472.)2033 4382 y Fk(P)m(olyhedra)6 b Fm(:)83 b(528,)30 -b(1289,)g(1424,)f(1441,)h(1443.)2033 4485 y Fk(P)m(olyhedron)5 -b Fm(:)83 b(1291,)26 b(1324,)g(1424,)g(1426)p 3272 4498 -167 4 v -1 w(,)i(1428,)e(1431,)2199 4584 y(1435,)f(1441,)g(1448,)g -(1452,)g(1462,)g(1466,)g(1476,)g(1480.)2033 4687 y Fi(p)l(op)p -2160 4687 26 4 v 32 w(b)l(ack)14 b Fm(:)83 b(685.)2033 -4789 y(p)r(orting:)g(656.)2033 4891 y(P)n(orting:)e(864.)2033 -4993 y Fi(p)l(ortr)l(ait)13 b Fm(:)83 b(1459)p 2421 5006 -167 4 v -2 w(,)35 b(1460)p 2645 5006 V -1 w(,)g(1472)p -2870 5006 V -2 w(,)h(1473)p 3095 5006 V -2 w(.)2033 5096 -y Fi(p)l(os)12 b Fm(:)83 b(565)p 2265 5109 125 4 v -2 -w(,)23 b(566)p 2435 5109 V -1 w(,)g(567)p 2606 5109 V --2 w(,)g(568)p 2776 5109 V -2 w(,)g(595)p 2946 5109 V --1 w(,)g(596)p 3117 5109 V -2 w(,)g(1117)p 3287 5109 -167 4 v -2 w(,)g(1118)p 3499 5109 V -2 w(,)g(1119)p 3711 -5109 V -2 w(.)2033 5198 y Fi(p)l(os)p 2152 5198 26 4 -v 31 w(x)14 b Fm(:)83 b(560)p 2337 5211 125 4 v -1 w(,)37 -b(561)p 2522 5211 V -1 w(,)g(562)p 2707 5211 V -1 w(,)h(563)p -2893 5211 V -2 w(,)g(920,)e(921)p 3263 5211 V -2 w(,)i(922)p -3448 5211 V -1 w(,)f(923,)2199 5298 y(924,)i(925,)g(926)p -2575 5311 V -1 w(,)i(927)p 2764 5311 V -2 w(.)2033 5400 -y Fi(p)l(os)p 2152 5400 26 4 v 31 w(y)12 b Fm(:)83 b(560)p -2336 5413 125 4 v -1 w(,)37 b(561)p 2521 5413 V -1 w(,)h(562)p -2707 5413 V -2 w(,)g(563)p 2892 5413 V -2 w(,)g(920,)e(921)p -3262 5413 V -1 w(,)i(922)p 3448 5413 V -2 w(,)g(923,)p -eop end -%%Page: 497 497 -TeXDict begin 497 496 bop 0 83 a Fn(x)p Fm(1517)139 b -Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(497)166 263 y(924,)39 -b(925,)g(926)p 542 276 125 4 v -1 w(,)h(927)p 730 276 -V -1 w(.)0 365 y Fi(p)l(os)p 119 365 26 4 v 31 w(z)15 -b Fm(:)83 b(560)p 300 378 125 4 v -2 w(,)38 b(561)p 485 -378 V -1 w(,)f(562)p 670 378 V -1 w(,)h(563)p 856 378 -V -2 w(,)g(920,)f(921)p 1227 378 V -2 w(,)h(922)p 1412 -378 V -1 w(,)g(923,)166 465 y(924,)h(925,)g(926)p 542 -478 V -1 w(,)h(927)p 730 478 V -1 w(.)0 567 y Fi(p)l(osition)12 -b Fm(:)83 b(208)p 399 580 V -2 w(,)33 b(462,)e(471,)g(472,)h(556)p -1120 580 V -2 w(,)h(557,)e(559,)g(561,)166 667 y(570,)24 -b(572,)f(574,)h(576,)f(593)p 856 680 V -1 w(,)i(594,)f(596,)f(597,)h -(598,)f(600,)166 766 y(601,)32 b(605,)g(606,)g(609,)f(931,)h(996,)g -(1183.)0 869 y Fi(p)l(osition)p 286 869 26 4 v 32 w(str)12 -b Fm(:)84 b(461)p 529 882 125 4 v -2 w(,)23 b(462)p 699 -882 V -2 w(,)g(463)p 869 882 V -2 w(,)g(464)p 1039 882 -V -2 w(,)g(466)p 1209 882 V -1 w(,)f(467)p 1379 882 V --1 w(,)g(468)p 1549 882 V -1 w(,)g(469)p 1719 882 V -1 -w(.)0 971 y Fi(p)l(osition)p 286 971 26 4 v 32 w(string)11 -b Fm(:)83 b(829)p 637 984 125 4 v -1 w(,)40 b(830)p 825 -984 V -2 w(,)g(831)p 1012 984 V -1 w(,)f(832)p 1199 984 -V -1 w(,)h(834)p 1387 984 V -2 w(,)g(835)p 1574 984 V --1 w(,)166 1071 y(836)p 166 1084 V -1 w(,)45 b(837)p -359 1084 V -1 w(.)0 1173 y Fi(pp)l(en)11 b Fm(:)83 b(410)p -282 1186 V -1 w(,)29 b(411)p 459 1186 V -1 w(,)g(412)p -636 1186 V -1 w(,)g(413)p 813 1186 V -1 w(,)g(414)p 990 -1186 V -1 w(,)g(415)p 1167 1186 V -1 w(,)g(416)p 1344 -1186 V -1 w(,)g(417)p 1521 1186 V -1 w(,)g(419)p 1698 -1186 V -1 w(,)166 1273 y(420)p 166 1286 V -1 w(,)c(422)p -339 1286 V -2 w(,)g(423)p 511 1286 V -1 w(,)g(425)p 684 -1286 V -2 w(,)g(426)p 856 1286 V -1 w(,)g(428)p 1029 -1286 V -1 w(,)g(429)p 1202 1286 V -2 w(,)g(775)p 1374 -1286 V -1 w(,)g(776)p 1547 1286 V -2 w(,)g(777)p 1719 -1286 V -1 w(,)166 1372 y(778)p 166 1385 V -1 w(,)g(780)p -339 1385 V -2 w(,)g(781)p 511 1385 V -1 w(,)g(784)p 684 -1385 V -2 w(,)g(785)p 856 1385 V -1 w(,)g(786)p 1029 -1385 V -1 w(,)g(787)p 1202 1385 V -2 w(,)g(789)p 1374 -1385 V -1 w(,)g(790)p 1547 1385 V -2 w(,)g(793)p 1719 -1385 V -1 w(,)166 1472 y(794)p 166 1485 V -1 w(,)g(795)p -339 1485 V -2 w(,)g(796)p 511 1485 V -1 w(,)g(798)p 684 -1485 V -2 w(,)g(799)p 856 1485 V -1 w(,)g(806)p 1029 -1485 V -1 w(,)g(807)p 1202 1485 V -2 w(,)g(808)p 1374 -1485 V -1 w(,)g(809)p 1547 1485 V -2 w(,)g(812)p 1719 -1485 V -1 w(,)166 1572 y(813)p 166 1585 V -1 w(,)g(814)p -339 1585 V -2 w(,)g(815)p 511 1585 V -1 w(,)g(817)p 684 -1585 V -2 w(,)g(818)p 856 1585 V -1 w(,)g(823)p 1029 -1585 V -1 w(,)g(824)p 1202 1585 V -2 w(,)g(825)p 1374 -1585 V -1 w(,)g(826)p 1547 1585 V -2 w(,)g(920)p 1719 -1585 V -1 w(,)166 1671 y(921)p 166 1684 V -1 w(,)g(922)p -339 1684 V -1 w(,)h(925,)e(926)p 686 1684 V -1 w(,)i(927)p -860 1684 V -2 w(,)g(1046)p 1033 1684 167 4 v -2 w(,)g(1047)p -1248 1684 V -2 w(,)g(1050)p 1463 1684 V -2 w(,)g(1051)p -1678 1684 V -2 w(,)166 1771 y(1092)p 166 1784 V -2 w(,)h(1093)p -382 1784 V -2 w(,)g(1217)p 598 1784 V -2 w(,)g(1218)p -814 1784 V -2 w(,)g(1219)p 1030 1784 V -2 w(,)g(1220)p -1246 1784 V -2 w(,)g(1225)p 1462 1784 V -2 w(,)g(1226)p -1678 1784 V -2 w(,)166 1870 y(1267)p 166 1883 V -2 w(,)g(1268)p -382 1883 V -2 w(,)g(1271)p 598 1883 V -2 w(,)g(1272)p -814 1883 V -2 w(,)g(1377,)e(1378)p 1246 1883 V -2 w(,)i(1379)p -1462 1883 V -2 w(,)g(1383,)166 1970 y(1384)p 166 1983 -V -2 w(,)g(1385)p 382 1983 V -2 w(,)g(1386,)e(1387)p -814 1983 V -2 w(,)i(1388)p 1030 1983 V -2 w(,)g(1392,)e(1393)p -1462 1983 V -2 w(,)i(1394)p 1678 1983 V -2 w(.)0 2072 -y Fi(ppt)13 b Fm(:)83 b(268)p 231 2085 125 4 v -2 w(,)45 -b(272)p 423 2085 V -2 w(.)0 2175 y Fi(pp0)17 b Fm(:)83 -b(528)p 249 2188 V -2 w(,)45 b(603)p 441 2188 V -2 w(.)0 -2277 y Fi(pp1)17 b Fm(:)83 b(528)p 249 2290 V -2 w(,)45 -b(603)p 441 2290 V -2 w(.)0 2379 y Fi(pr)l(e)l(cision)12 -b Fm(:)83 b(1439,)36 b(1507,)g(1508.)0 2481 y Fi(pr)l(o)l(gr)l(am)p -295 2481 26 4 v 31 w(name)11 b Fm(:)83 b(42)p 633 2494 -84 4 v -1 w(,)39 b(43)p 778 2494 V -1 w(,)f(44.)0 2584 -y Fi(pr)l(oj)17 b Fm(:)83 b(200)p 263 2597 125 4 v -1 -w(,)30 b(210)p 441 2597 V -1 w(,)g(254)p 619 2597 V -1 -w(,)g(312)p 797 2597 V -1 w(,)g(313)p 975 2597 V -1 w(,)g(314)p -1153 2597 V -1 w(,)g(315)p 1331 2597 V -1 w(,)g(317)p -1509 2597 V -1 w(,)g(318)p 1687 2597 V -1 w(,)166 2683 -y(319)p 166 2696 V -1 w(,)35 b(320)p 349 2696 V -2 w(,)h(322)p -532 2696 V -2 w(,)g(323)p 715 2696 V -2 w(,)f(324)p 897 -2696 V -1 w(,)g(325)p 1080 2696 V -1 w(,)g(327)p 1263 -2696 V -1 w(,)g(328)p 1446 2696 V -2 w(,)h(329)p 1629 -2696 V -2 w(,)166 2783 y(330)p 166 2796 V -1 w(,)f(332)p -349 2796 V -2 w(,)h(333)p 532 2796 V -2 w(,)g(334)p 715 -2796 V -2 w(,)f(335)p 897 2796 V -1 w(,)g(337)p 1080 -2796 V -1 w(,)g(338)p 1263 2796 V -1 w(,)g(339)p 1446 -2796 V -2 w(,)h(340)p 1629 2796 V -2 w(,)166 2883 y(398)p -166 2896 V -1 w(,)f(399)p 349 2896 V -2 w(,)h(400,)e(402)p -715 2896 V -2 w(,)h(403)p 897 2896 V -1 w(,)g(431)p 1080 -2896 V -1 w(,)g(432)p 1263 2896 V -1 w(,)g(442)p 1446 -2896 V -2 w(,)h(443)p 1629 2896 V -2 w(,)166 2982 y(472)p -166 2995 V -1 w(,)f(548)p 349 2995 V -2 w(,)h(549,)e(553,)f(554)p -897 2995 V -1 w(,)i(742)p 1080 2995 V -1 w(,)g(743)p -1263 2995 V -1 w(,)g(839)p 1446 2995 V -2 w(,)h(840)p -1629 2995 V -2 w(,)166 3082 y(866)p 166 3095 V -1 w(,)e(867)p -348 3095 V -2 w(,)g(1336)p 529 3095 167 4 v -2 w(,)g(1337)p -752 3095 V -2 w(,)g(1359)p 975 3095 V -2 w(,)g(1360)p -1198 3095 V -2 w(.)0 3184 y Fi(pr)l(oj)p 145 3184 26 -4 v 32 w(on)p 266 3184 V 30 w(x)p 335 3184 V 30 w(z)p -399 3184 V 31 w(plane)11 b Fm(:)83 b(381)p 732 3197 125 -4 v -1 w(,)31 b(382,)f(383,)g(384,)g(386.)0 3287 y Ff(PROJ_VALUE)p -Fm(:)83 b(264.)0 3389 y Ff(PROJ_VALUES)p Fm(:)g(264)p -590 3402 V -2 w(,)33 b(265)p 770 3402 V -1 w(,)g(463,)f(464,)f(829.)0 -3491 y Ff(PROJ_VALUES_X_Y)n Fm(:)83 b(264)p 764 3504 -V -1 w(,)35 b(265)p 947 3504 V -1 w(,)g(463.)0 3593 y +3385 y(349,)34 b(379,)g(397,)g(402,)f(418,)h(442,)g(451,)g(518,)g(520,) +2199 3485 y(527,)g(531,)g(549,)g(594,)f(602,)h(654,)g(662,)g(667,)g +(721,)2199 3584 y(732,)g(764,)g(765,)g(769,)f(770,)h(828,)g(839,)g +(841,)g(842,)2199 3684 y(856,)g(858,)g(864,)g(867,)f(876,)h(885,)g +(886,)g(896,)g(898,)2199 3784 y(904,)28 b(913,)f(920,)h(948,)f(967,)h +(999,)g(1024,)f(1082,)g(1126,)2199 3883 y(1172,)34 b(1175,)g(1258,)f +(1348,)h(1450.)2033 3988 y Fi(p)l(oints)11 b Fm(:)83 +b(654)p 2364 4001 V -1 w(,)26 b(657,)e(659,)h(664,)f(666,)h(669,)f +(671,)h(672,)f(674,)2199 4088 y(676,)g(685,)f(732,)h(734,)f(739,)h +(741,)g(743,)f(748,)h(755,)f(757,)2199 4188 y(764,)h(765,)f(770,)h +(776,)f(802,)h(807,)g(813,)f(821,)h(824,)f(830,)2199 +4287 y(839)p 2199 4300 V -1 w(,)i(840,)e(842,)h(843,)f(856,)h(858,)g +(859,)f(862,)h(864,)f(866,)2199 4387 y(867,)h(878,)f(880,)h(881,)f +(884,)h(885,)g(886,)f(889,)h(891,)f(893,)2199 4487 y(894,)34 +b(897,)g(899,)g(900,)f(913,)h(914,)g(920,)g(921,)g(933,)2199 +4586 y(969,)c(970,)f(979,)h(981,)g(988,)f(990,)h(997,)g(1001,)f(1024,) +2199 4686 y(1034,)c(1065,)g(1070,)g(1086,)g(1088,)g(1110,)g(1123,)g +(1126,)2199 4785 y(1127,)31 b(1178,)g(1258)p 2643 4798 +167 4 v -2 w(,)i(1259,)e(1270,)g(1274.)2033 4891 y Fi(p)l(oints)p +2252 4891 26 4 v 31 w(iter)13 b Fm(:)83 b(867.)2033 4996 +y Fk(P)m(olygon)5 b Fm(:)83 b(973,)28 b(975)p 2657 5009 +125 4 v -1 w(,)i(977,)f(979,)f(981,)h(983,)g(985,)f(988,)2199 +5096 y(994,)33 b(995,)f(996,)h(1000,)f(1002,)g(1004,)g(1007,)g(1009,) +2199 5195 y(1011,)38 b(1013,)f(1016,)h(1018,)f(1021,)h(1023,)f(1025,) +2199 5295 y(1057,)g(1059,)f(1084,)h(1296.)2033 5400 y +Fi(Polygons)13 b Fm(:)83 b(999.)p eop end +%%Page: 502 502 +TeXDict begin 502 501 bop 0 83 a Fm(502)140 b Fl(INDEX)2670 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1525)0 263 y Fi(p)l(olygons)12 +b Fm(:)84 b(1296.)0 365 y Fi(p)l(olyhe)l(d)15 b Fm(:)83 +b(1477.)0 466 y Fk(P)m(olyhedra)6 b Fm(:)83 b(528,)30 +b(1294,)g(1429,)f(1446,)h(1448.)0 568 y Fk(P)m(olyhedron)5 +b Fm(:)83 b(1296,)26 b(1329,)g(1429,)g(1431)p 1239 581 +167 4 v -2 w(,)j(1433,)d(1436,)166 668 y(1440,)f(1446,)g(1453,)g(1457,) +g(1467,)g(1471,)g(1481,)g(1485.)0 769 y Fi(p)l(op)p 127 +769 26 4 v 32 w(b)l(ack)14 b Fm(:)83 b(685.)0 871 y(p)r(orting:)g(656.) +0 972 y(P)n(orting:)e(864.)0 1074 y Fi(p)l(ortr)l(ait)13 +b Fm(:)83 b(1464)p 388 1087 167 4 v -2 w(,)35 b(1465)p +612 1087 V -2 w(,)h(1477)p 837 1087 V -2 w(,)g(1478)p +1062 1087 V -2 w(.)0 1176 y Fi(p)l(os)12 b Fm(:)83 b(565)p +232 1189 125 4 v -2 w(,)23 b(566)p 402 1189 V -1 w(,)f(567)p +572 1189 V -1 w(,)h(568)p 743 1189 V -2 w(,)g(595)p 913 +1189 V -1 w(,)g(596)p 1084 1189 V -2 w(,)g(1122)p 1254 +1189 167 4 v -2 w(,)g(1123)p 1466 1189 V -2 w(,)g(1124)p +1678 1189 V -2 w(.)0 1277 y Fi(p)l(os)p 119 1277 26 4 +v 31 w(x)14 b Fm(:)83 b(560)p 304 1290 125 4 v -2 w(,)38 +b(561)p 489 1290 V -1 w(,)f(562)p 674 1290 V -1 w(,)h(563)p +860 1290 V -2 w(,)g(923,)e(924)p 1230 1290 V -2 w(,)i(925)p +1415 1290 V -1 w(,)f(926,)166 1377 y(927,)i(928,)g(929)p +542 1390 V -1 w(,)h(930)p 730 1390 V -1 w(.)0 1479 y +Fi(p)l(os)p 119 1479 26 4 v 31 w(y)12 b Fm(:)83 b(560)p +303 1492 125 4 v -1 w(,)37 b(561)p 488 1492 V -1 w(,)h(562)p +674 1492 V -2 w(,)g(563)p 859 1492 V -2 w(,)g(923,)e(924)p +1229 1492 V -1 w(,)i(925)p 1415 1492 V -2 w(,)g(926,)166 +1578 y(927,)h(928,)g(929)p 542 1591 V -1 w(,)h(930)p +730 1591 V -1 w(.)0 1680 y Fi(p)l(os)p 119 1680 26 4 +v 31 w(z)15 b Fm(:)83 b(560)p 300 1693 125 4 v -2 w(,)38 +b(561)p 485 1693 V -1 w(,)f(562)p 670 1693 V -1 w(,)h(563)p +856 1693 V -2 w(,)g(923,)f(924)p 1227 1693 V -2 w(,)h(925)p +1412 1693 V -1 w(,)g(926,)166 1779 y(927,)h(928,)g(929)p +542 1792 V -1 w(,)h(930)p 730 1792 V -1 w(.)0 1881 y +Fi(p)l(osition)12 b Fm(:)83 b(208)p 399 1894 V -2 w(,)33 +b(462,)e(471,)g(472,)h(556)p 1120 1894 V -2 w(,)h(557,)e(559,)g(561,) +166 1981 y(570,)24 b(572,)f(574,)h(576,)f(593)p 856 1994 +V -1 w(,)i(594,)f(596,)f(597,)h(598,)f(600,)166 2080 +y(601,)32 b(605,)g(606,)g(609,)f(934,)h(999,)g(1188.)0 +2182 y Fi(p)l(osition)p 286 2182 26 4 v 32 w(str)12 b +Fm(:)84 b(461)p 529 2195 125 4 v -2 w(,)23 b(462)p 699 +2195 V -2 w(,)g(463)p 869 2195 V -2 w(,)g(464)p 1039 +2195 V -2 w(,)g(466)p 1209 2195 V -1 w(,)f(467)p 1379 +2195 V -1 w(,)g(468)p 1549 2195 V -1 w(,)g(469)p 1719 +2195 V -1 w(.)0 2284 y Fi(p)l(osition)p 286 2284 26 4 +v 32 w(string)11 b Fm(:)83 b(829)p 637 2297 125 4 v -1 +w(,)40 b(830)p 825 2297 V -2 w(,)g(831)p 1012 2297 V +-1 w(,)f(832)p 1199 2297 V -1 w(,)h(834)p 1387 2297 V +-2 w(,)g(835)p 1574 2297 V -1 w(,)166 2383 y(836)p 166 +2396 V -1 w(,)45 b(837)p 359 2396 V -1 w(.)0 2485 y Fi(pp)l(en)11 +b Fm(:)83 b(410)p 282 2498 V -1 w(,)29 b(411)p 459 2498 +V -1 w(,)g(412)p 636 2498 V -1 w(,)g(413)p 813 2498 V +-1 w(,)g(414)p 990 2498 V -1 w(,)g(415)p 1167 2498 V +-1 w(,)g(416)p 1344 2498 V -1 w(,)g(417)p 1521 2498 V +-1 w(,)g(419)p 1698 2498 V -1 w(,)166 2584 y(420)p 166 +2597 V -1 w(,)c(422)p 339 2597 V -2 w(,)g(423)p 511 2597 +V -1 w(,)g(425)p 684 2597 V -2 w(,)g(426)p 856 2597 V +-1 w(,)g(428)p 1029 2597 V -1 w(,)g(429)p 1202 2597 V +-2 w(,)g(775)p 1374 2597 V -1 w(,)g(776)p 1547 2597 V +-2 w(,)g(777)p 1719 2597 V -1 w(,)166 2684 y(778)p 166 +2697 V -1 w(,)g(780)p 339 2697 V -2 w(,)g(781)p 511 2697 +V -1 w(,)g(784)p 684 2697 V -2 w(,)g(785)p 856 2697 V +-1 w(,)g(786)p 1029 2697 V -1 w(,)g(787)p 1202 2697 V +-2 w(,)g(789)p 1374 2697 V -1 w(,)g(790)p 1547 2697 V +-2 w(,)g(793)p 1719 2697 V -1 w(,)166 2784 y(794)p 166 +2797 V -1 w(,)g(795)p 339 2797 V -2 w(,)g(796)p 511 2797 +V -1 w(,)g(798)p 684 2797 V -2 w(,)g(799)p 856 2797 V +-1 w(,)g(806)p 1029 2797 V -1 w(,)g(807)p 1202 2797 V +-2 w(,)g(808)p 1374 2797 V -1 w(,)g(809)p 1547 2797 V +-2 w(,)g(812)p 1719 2797 V -1 w(,)166 2883 y(813)p 166 +2896 V -1 w(,)g(814)p 339 2896 V -2 w(,)g(815)p 511 2896 +V -1 w(,)g(817)p 684 2896 V -2 w(,)g(818)p 856 2896 V +-1 w(,)g(823)p 1029 2896 V -1 w(,)g(824)p 1202 2896 V +-2 w(,)g(825)p 1374 2896 V -1 w(,)g(826)p 1547 2896 V +-2 w(,)g(923)p 1719 2896 V -1 w(,)166 2983 y(924)p 166 +2996 V -1 w(,)g(925)p 339 2996 V -1 w(,)h(928,)e(929)p +686 2996 V -1 w(,)i(930)p 860 2996 V -2 w(,)g(1049)p +1033 2996 167 4 v -2 w(,)g(1050)p 1248 2996 V -2 w(,)g(1053)p +1463 2996 V -2 w(,)g(1054)p 1678 2996 V -2 w(,)166 3083 +y(1097)p 166 3096 V -2 w(,)h(1098)p 382 3096 V -2 w(,)g(1222)p +598 3096 V -2 w(,)g(1223)p 814 3096 V -2 w(,)g(1224)p +1030 3096 V -2 w(,)g(1225)p 1246 3096 V -2 w(,)g(1230)p +1462 3096 V -2 w(,)g(1231)p 1678 3096 V -2 w(,)166 3182 +y(1272)p 166 3195 V -2 w(,)g(1273)p 382 3195 V -2 w(,)g(1276)p +598 3195 V -2 w(,)g(1277)p 814 3195 V -2 w(,)g(1382,)e(1383)p +1246 3195 V -2 w(,)i(1384)p 1462 3195 V -2 w(,)g(1388,)166 +3282 y(1389)p 166 3295 V -2 w(,)g(1390)p 382 3295 V -2 +w(,)g(1391,)e(1392)p 814 3295 V -2 w(,)i(1393)p 1030 +3295 V -2 w(,)g(1397,)e(1398)p 1462 3295 V -2 w(,)i(1399)p +1678 3295 V -2 w(.)0 3383 y Fi(ppt)13 b Fm(:)83 b(268)p +231 3396 125 4 v -2 w(,)45 b(272)p 423 3396 V -2 w(.)0 +3485 y Fi(pp0)17 b Fm(:)83 b(528)p 249 3498 V -2 w(,)45 +b(603)p 441 3498 V -2 w(.)0 3587 y Fi(pp1)17 b Fm(:)83 +b(528)p 249 3600 V -2 w(,)45 b(603)p 441 3600 V -2 w(.)0 +3688 y Fi(pr)l(e)l(cision)12 b Fm(:)83 b(1444,)36 b(1512,)g(1513.)0 +3790 y Fi(pr)l(o)l(gr)l(am)p 295 3790 26 4 v 31 w(name)11 +b Fm(:)83 b(42)p 633 3803 84 4 v -1 w(,)39 b(43)p 778 +3803 V -1 w(,)f(44.)0 3892 y Fi(pr)l(oj)17 b Fm(:)83 +b(200)p 263 3905 125 4 v -1 w(,)30 b(210)p 441 3905 V +-1 w(,)g(254)p 619 3905 V -1 w(,)g(312)p 797 3905 V -1 +w(,)g(313)p 975 3905 V -1 w(,)g(314)p 1153 3905 V -1 +w(,)g(315)p 1331 3905 V -1 w(,)g(317)p 1509 3905 V -1 +w(,)g(318)p 1687 3905 V -1 w(,)166 3991 y(319)p 166 4004 +V -1 w(,)35 b(320)p 349 4004 V -2 w(,)h(322)p 532 4004 +V -2 w(,)g(323)p 715 4004 V -2 w(,)f(324)p 897 4004 V +-1 w(,)g(325)p 1080 4004 V -1 w(,)g(327)p 1263 4004 V +-1 w(,)g(328)p 1446 4004 V -2 w(,)h(329)p 1629 4004 V +-2 w(,)166 4091 y(330)p 166 4104 V -1 w(,)f(332)p 349 +4104 V -2 w(,)h(333)p 532 4104 V -2 w(,)g(334)p 715 4104 +V -2 w(,)f(335)p 897 4104 V -1 w(,)g(337)p 1080 4104 +V -1 w(,)g(338)p 1263 4104 V -1 w(,)g(339)p 1446 4104 +V -2 w(,)h(340)p 1629 4104 V -2 w(,)166 4190 y(398)p +166 4203 V -1 w(,)f(399)p 349 4203 V -2 w(,)h(400,)e(402)p +715 4203 V -2 w(,)h(403)p 897 4203 V -1 w(,)g(431)p 1080 +4203 V -1 w(,)g(432)p 1263 4203 V -1 w(,)g(442)p 1446 +4203 V -2 w(,)h(443)p 1629 4203 V -2 w(,)166 4290 y(472)p +166 4303 V -1 w(,)f(548)p 349 4303 V -2 w(,)h(549,)e(553,)f(554)p +897 4303 V -1 w(,)i(742)p 1080 4303 V -1 w(,)g(743)p +1263 4303 V -1 w(,)g(839)p 1446 4303 V -2 w(,)h(840)p +1629 4303 V -2 w(,)166 4390 y(866)p 166 4403 V -1 w(,)e(867)p +348 4403 V -2 w(,)g(1341)p 529 4403 167 4 v -2 w(,)g(1342)p +752 4403 V -2 w(,)g(1364)p 975 4403 V -2 w(,)g(1365)p +1198 4403 V -2 w(.)0 4491 y Fi(pr)l(oj)p 145 4491 26 +4 v 32 w(on)p 266 4491 V 30 w(x)p 335 4491 V 30 w(z)p +399 4491 V 31 w(plane)11 b Fm(:)83 b(381)p 732 4504 125 +4 v -1 w(,)31 b(382,)f(383,)g(384,)g(386.)0 4593 y Ff(PROJ_VALUE)p +Fm(:)83 b(264.)0 4695 y Ff(PROJ_VALUES)p Fm(:)g(264)p +590 4708 V -2 w(,)33 b(265)p 770 4708 V -1 w(,)g(463,)f(464,)f(829.)0 +4796 y Ff(PROJ_VALUES_X_Y)n Fm(:)83 b(264)p 764 4809 +V -1 w(,)35 b(265)p 947 4809 V -1 w(,)g(463.)0 4898 y Fi(pr)l(oje)l(ct)13 b Fm(:)83 b(313,)33 b(316,)h(318,)f(397,)g(398)p -1088 3606 V -1 w(,)h(399)p 1270 3606 V -1 w(,)h(402)p -1453 3606 V -2 w(,)g(403)p 1635 3606 V -1 w(,)166 3693 +1088 4911 V -1 w(,)h(399)p 1270 4911 V -1 w(,)h(402)p +1453 4911 V -2 w(,)g(403)p 1635 4911 V -1 w(,)166 4997 y(431,)f(436,)g(442,)g(443,)f(444,)h(451,)g(457,)g(463,)g(472,)166 -3793 y(742)p 166 3806 V -1 w(,)e(743)p 346 3806 V -1 -w(,)h(839,)e(841,)g(845,)h(1278,)f(1360.)0 3895 y Fi(pr)l(oje)l(ction) -12 b Fm(:)83 b(253)p 472 3908 V -1 w(.)0 3997 y Fk(Pro)5 -b(jections)g Fm(:)83 b(211)p 586 4010 V -2 w(,)33 b(212)p -766 4010 V -2 w(,)g(253,)d(254,)h(312,)g(314,)g(317,)166 -4097 y(319,)j(322,)g(324,)g(327,)f(329,)h(332,)g(334,)g(337,)g(339,)166 -4196 y(398,)d(400)p 346 4209 V -1 w(,)i(402,)e(431,)g(866,)h(1336,)f -(1500)p 1290 4209 167 4 v -2 w(.)0 4299 y Fi(pr)l(oje)l(ctive)p -346 4299 26 4 v 32 w(c)l(o)l(or)l(dinates)12 b Fm(:)83 -b(264)p 892 4312 125 4 v -1 w(,)36 b(265,)e(278,)g(300,)g(303,)166 -4398 y(313,)g(318,)g(397,)g(399,)f(400,)h(401,)g(431,)g(436,)g(443,)166 -4498 y(452,)j(457,)g(458,)g(463,)f(841.)0 4600 y Fi(pr)l(oje)l(ctive)p -346 4600 26 4 v 32 w(extr)l(emes)11 b Fm(:)83 b(252,)28 -b(264)p 981 4613 125 4 v -1 w(,)i(278,)e(300,)h(444,)g(446,)166 -4700 y(448,)24 b(450,)f(452,)h(453,)f(551)p 856 4713 -V -1 w(,)i(654)p 1029 4713 V -1 w(,)g(656,)e(657,)h(661,)f(664,)166 -4800 y(666,)34 b(669,)g(671,)g(674,)f(676,)h(842,)g(843,)g(844,)g(845,) -166 4899 y(847,)f(849,)f(851,)h(1027,)f(1030,)g(1037,)g(1039,)g(1291)p -1603 4912 167 4 v -2 w(,)166 4999 y(1294,)25 b(1295,)g(1297,)g(1303,)g -(1362,)g(1363,)g(1365,)g(1367,)166 5098 y(1369,)31 b(1374,)g(1411,)g -(1413,)g(1415,)g(1417.)0 5201 y Fi(pt)12 b Fm(:)83 b(208)p -188 5214 125 4 v -1 w(,)34 b(210,)f(268)p 552 5214 V --2 w(,)h(269,)f(270,)g(272)p 1097 5214 V -2 w(,)i(273,)d(309)p -1460 5214 V -1 w(,)i(411)p 1642 5214 V -1 w(,)166 5300 -y(415)p 166 5313 V -1 w(,)h(425)p 349 5313 V -2 w(,)h(426)p -532 5313 V -2 w(,)g(428)p 715 5313 V -2 w(,)f(429)p 897 -5313 V -1 w(,)g(462,)f(470,)g(471,)g(472,)166 5400 y(541,)g(545,)g -(546,)g(553,)f(601)p 897 5413 V -1 w(,)i(603,)f(605,)g(606,)g(607,)2199 -263 y(641,)g(754)p 2382 276 V -2 w(,)i(755)p 2565 276 -V -2 w(,)g(756)p 2748 276 V -2 w(,)f(757)p 2930 276 V --1 w(,)g(798)p 3113 276 V -1 w(,)g(799)p 3296 276 V -1 -w(,)g(817)p 3479 276 V -2 w(,)h(818)p 3662 276 V -2 w(,)2199 -363 y(955,)e(956,)g(957,)g(958,)f(960,)h(985,)g(987,)g(988,)g(994,)2199 -462 y(996,)28 b(1158,)g(1159,)g(1174,)f(1179,)h(1181,)g(1183,)f(1216,) -2199 562 y(1223,)k(1263,)g(1352)p 2643 575 167 4 v -2 -w(,)i(1353)p 2865 575 V -2 w(,)g(1439,)e(1446.)2033 663 -y Fi(pt)p 2108 663 26 4 v 31 w(c4)16 b Fm(:)83 b(946)p -2336 676 125 4 v -2 w(.)2033 765 y Fi(pt)p 2108 765 26 -4 v 31 w(iter)13 b Fm(:)83 b(1428.)2033 866 y Fi(pt)p -2108 866 V 31 w(on)p 2228 866 V 30 w(x)p 2297 866 V 30 -w(axis)12 b Fm(:)83 b(382)p 2580 879 125 4 v -2 w(.)2033 -968 y Fi(pt)p 2108 968 26 4 v 31 w(on)p 2228 968 V 30 -w(z)p 2292 968 V 31 w(axis)11 b Fm(:)83 b(383)p 2575 -981 125 4 v -1 w(,)38 b(384,)f(386.)2033 1069 y Fi(pt)p -2108 1069 26 4 v 31 w(ve)l(ctor)13 b Fm(:)83 b(950,)39 -b(951)p 2656 1082 125 4 v -1 w(,)i(952,)e(953,)g(960,)g(982)p -3409 1082 V -1 w(,)h(983,)2199 1169 y(984,)k(987.)2033 -1270 y Fi(ptr)13 b Fm(:)83 b(994)p 2257 1283 V -1 w(,)44 -b(1307)p 2449 1283 167 4 v -2 w(.)2033 1372 y Fi(pts)11 -b Fm(:)83 b(1415)p 2254 1385 V -2 w(,)37 b(1438)p 2480 -1385 V -2 w(,)f(1439,)e(1440,)h(1444)p 3156 1385 V -2 -w(,)h(1446)p 3381 1385 V -2 w(,)h(1455)p 3607 1385 V --2 w(,)2199 1471 y(1456,)h(1458)p 2428 1484 V -2 w(,)h(1459)p -2656 1484 V -2 w(,)h(1469)p 2885 1484 V -2 w(,)f(1471)p -3113 1484 V -2 w(,)h(1473)p 3342 1484 V -2 w(,)f(1483)p -3570 1484 V -2 w(,)2199 1571 y(1485)p 2199 1584 V -2 -w(,)44 b(1486.)2033 1672 y Fi(pt0)16 b Fm(:)83 b(149)p -2267 1685 125 4 v -1 w(,)31 b(717)p 2446 1685 V -1 w(,)h(945)p -2626 1685 V -2 w(,)g(946)p 2805 1685 V -1 w(,)g(951)p -2985 1685 V -2 w(,)g(954,)f(958,)f(960,)g(981)p 3702 -1685 V -1 w(,)2199 1772 y(982)p 2199 1785 V -1 w(,)20 -b(985,)g(987,)f(988,)g(1066)p 2872 1785 167 4 v -2 w(,)i(1067)p -3082 1785 V -2 w(,)f(1068)p 3291 1785 V -2 w(,)h(1069)p -3501 1785 V -2 w(,)g(1158,)2199 1872 y(1159)p 2199 1885 -V -2 w(,)27 b(1166)p 2415 1885 V -2 w(,)g(1174)p 2631 -1885 V -2 w(,)g(1183)p 2847 1885 V -2 w(,)g(1214)p 3063 -1885 V -2 w(,)g(1258)p 3279 1885 V -2 w(,)g(1259)p 3495 -1885 V -2 w(,)g(1279)p 3711 1885 V -2 w(.)2033 1973 y -Fi(pt0)p 2150 1973 26 4 v 31 w(h)11 b Fm(:)83 b(946)p -2335 1986 125 4 v -1 w(,)39 b(954)p 2522 1986 V -2 w(,)g(956,)e(957.) -2033 2074 y Fi(pt0)p 2150 2074 26 4 v 31 w(v)13 b Fm(:)83 -b(946)p 2333 2087 125 4 v -1 w(,)39 b(954)p 2520 2087 -V -2 w(,)g(955,)f(957.)2033 2176 y Fi(pt1)16 b Fm(:)83 -b(149)p 2267 2189 V -1 w(,)31 b(717)p 2446 2189 V -1 -w(,)h(946)p 2626 2189 V -2 w(,)g(951)p 2805 2189 V -1 -w(,)g(954,)e(958,)h(960,)f(981)p 3523 2189 V -1 w(,)h(982)p -3702 2189 V -1 w(,)2199 2275 y(985,)i(987,)f(988,)h(1066)p -2744 2288 167 4 v -2 w(,)h(1067)p 2967 2288 V -2 w(,)g(1068)p -3190 2288 V -2 w(,)g(1069)p 3413 2288 V -2 w(,)g(1166)p -3636 2288 V -2 w(,)2199 2375 y(1174)p 2199 2388 V -2 -w(,)39 b(1214)p 2427 2388 V -2 w(,)f(1258)p 2654 2388 -V -2 w(,)h(1259)p 2882 2388 V -2 w(.)2033 2476 y Fi(pt1)p -2150 2476 26 4 v 31 w(h)11 b Fm(:)83 b(954)p 2335 2489 -125 4 v -1 w(,)43 b(956.)2033 2578 y Fi(pt1)p 2150 2578 -26 4 v 31 w(v)13 b Fm(:)83 b(954)p 2333 2591 125 4 v --1 w(.)2033 2679 y Fi(pt2)16 b Fm(:)83 b(149)p 2267 2692 -V -1 w(,)30 b(1066)p 2445 2692 167 4 v -2 w(,)g(1067)p -2664 2692 V -2 w(,)g(1068)p 2883 2692 V -2 w(,)g(1069)p -3102 2692 V -2 w(,)g(1174)p 3321 2692 V -2 w(,)g(1214)p -3540 2692 V -2 w(.)2033 2781 y Fi(pt20)16 b Fm(:)83 b(1178)p -2309 2794 V -1 w(,)42 b(1179.)2033 2882 y Fi(pt21)16 -b Fm(:)83 b(1178)p 2309 2895 V -1 w(,)42 b(1179.)2033 -2984 y Fi(pt22)16 b Fm(:)83 b(1178)p 2309 2997 V -1 w(,)42 -b(1179.)2033 3085 y Fi(pt23)16 b Fm(:)83 b(1178)p 2309 -3098 V -1 w(,)42 b(1179.)2033 3187 y Fi(pt3)16 b Fm(:)83 -b(1066)p 2267 3200 V -2 w(,)32 b(1067)p 2488 3200 V -2 -w(,)g(1068)p 2709 3200 V -2 w(,)h(1069)p 2931 3200 V --2 w(,)f(1174)p 3152 3200 V -2 w(,)g(1214)p 3373 3200 -V -2 w(.)2033 3288 y Fi(pt4)16 b Fm(:)83 b(1067)p 2267 -3301 V -2 w(,)44 b(1214)p 2500 3301 V -2 w(.)2033 3389 -y Fi(pt5)16 b Fm(:)83 b(1067)p 2267 3402 V -2 w(,)44 -b(1214)p 2500 3402 V -2 w(.)2033 3491 y Fi(pt6)16 b Fm(:)83 -b(1067)p 2267 3504 V -2 w(,)44 b(1214)p 2500 3504 V -2 -w(.)2033 3592 y Fi(pt7)16 b Fm(:)83 b(1067)p 2267 3605 -V -2 w(,)44 b(1214)p 2500 3605 V -2 w(.)2033 3694 y Fi(pt8)16 -b Fm(:)83 b(1067)p 2267 3707 V -2 w(,)44 b(1214)p 2500 -3707 V -2 w(.)2033 3795 y Fi(pt9)16 b Fm(:)83 b(1214)p -2267 3808 V -2 w(.)2033 3897 y Fi(purple)11 b Fm(:)83 -b(108,)40 b(112)p 2562 3910 125 4 v -2 w(,)h(113)p 2750 -3910 V -1 w(.)2033 3998 y Fi(push)p 2201 3998 26 4 v +5097 y(742)p 166 5110 V -1 w(,)e(743)p 346 5110 V -1 +w(,)h(839,)e(841,)g(845,)h(1283,)f(1365.)0 5199 y Fi(pr)l(oje)l(ction) +12 b Fm(:)83 b(253)p 472 5212 V -1 w(.)0 5300 y Fk(Pro)5 +b(jections)g Fm(:)83 b(211)p 586 5313 V -2 w(,)33 b(212)p +766 5313 V -2 w(,)g(253,)d(254,)h(312,)g(314,)g(317,)166 +5400 y(319,)j(322,)g(324,)g(327,)f(329,)h(332,)g(334,)g(337,)g(339,) +2199 263 y(398,)d(400)p 2379 276 V -1 w(,)i(402,)e(431,)g(866,)h(1341,) +f(1505)p 3323 276 167 4 v -2 w(.)2033 365 y Fi(pr)l(oje)l(ctive)p +2379 365 26 4 v 32 w(c)l(o)l(or)l(dinates)12 b Fm(:)83 +b(264)p 2925 378 125 4 v -1 w(,)36 b(265,)e(278,)g(300,)g(303,)2199 +464 y(313,)g(318,)g(397,)g(399,)f(400,)h(401,)g(431,)g(436,)g(443,)2199 +564 y(452,)j(457,)g(458,)g(463,)f(841.)2033 665 y Fi(pr)l(oje)l(ctive)p +2379 665 26 4 v 32 w(extr)l(emes)11 b Fm(:)83 b(252,)28 +b(264)p 3014 678 125 4 v -1 w(,)i(278,)e(300,)h(444,)g(446,)2199 +765 y(448,)24 b(450,)f(452,)h(453,)f(551)p 2889 778 V +-1 w(,)i(654)p 3062 778 V -1 w(,)g(656,)e(657,)h(661,)f(664,)2199 +865 y(666,)34 b(669,)g(671,)g(674,)f(676,)h(842,)g(843,)g(844,)g(845,) +2199 964 y(847,)f(849,)f(851,)h(1030,)f(1033,)g(1040,)g(1042,)g(1296)p +3636 977 167 4 v -2 w(,)2199 1064 y(1299,)25 b(1300,)g(1302,)g(1308,)g +(1367,)g(1368,)g(1370,)g(1372,)2199 1163 y(1374,)31 b(1379,)g(1416,)g +(1418,)g(1420,)g(1422.)2033 1265 y Fi(pt)12 b Fm(:)83 +b(208)p 2221 1278 125 4 v -1 w(,)34 b(210,)f(268)p 2585 +1278 V -2 w(,)h(269,)f(270,)g(272)p 3130 1278 V -2 w(,)i(273,)d(309)p +3493 1278 V -1 w(,)i(411)p 3675 1278 V -1 w(,)2199 1365 +y(415)p 2199 1378 V -1 w(,)h(425)p 2382 1378 V -2 w(,)h(426)p +2565 1378 V -2 w(,)g(428)p 2748 1378 V -2 w(,)f(429)p +2930 1378 V -1 w(,)g(462,)f(470,)g(471,)g(472,)2199 1464 +y(541,)g(545,)g(546,)g(553,)f(601)p 2930 1477 V -1 w(,)i(603,)f(605,)g +(606,)g(607,)2199 1564 y(641,)g(754)p 2382 1577 V -2 +w(,)i(755)p 2565 1577 V -2 w(,)g(756)p 2748 1577 V -2 +w(,)f(757)p 2930 1577 V -1 w(,)g(798)p 3113 1577 V -1 +w(,)g(799)p 3296 1577 V -1 w(,)g(817)p 3479 1577 V -2 +w(,)h(818)p 3662 1577 V -2 w(,)2199 1663 y(958,)e(959,)g(960,)g(961,)f +(963,)h(988,)g(990,)g(991,)g(997,)2199 1763 y(999,)28 +b(1163,)g(1164,)g(1179,)f(1184,)h(1186,)g(1188,)f(1221,)2199 +1863 y(1228,)k(1268,)g(1357)p 2643 1876 167 4 v -2 w(,)i(1358)p +2865 1876 V -2 w(,)g(1444,)e(1451.)2033 1964 y Fi(pt)p +2108 1964 26 4 v 31 w(c4)16 b Fm(:)83 b(949)p 2336 1977 +125 4 v -2 w(.)2033 2066 y Fi(pt)p 2108 2066 26 4 v 31 +w(iter)13 b Fm(:)83 b(1433.)2033 2167 y Fi(pt)p 2108 +2167 V 31 w(on)p 2228 2167 V 30 w(x)p 2297 2167 V 30 +w(axis)12 b Fm(:)83 b(382)p 2580 2180 125 4 v -2 w(.)2033 +2269 y Fi(pt)p 2108 2269 26 4 v 31 w(on)p 2228 2269 V +30 w(z)p 2292 2269 V 31 w(axis)11 b Fm(:)83 b(383)p 2575 +2282 125 4 v -1 w(,)38 b(384,)f(386.)2033 2370 y Fi(pt)p +2108 2370 26 4 v 31 w(ve)l(ctor)13 b Fm(:)83 b(953,)39 +b(954)p 2656 2383 125 4 v -1 w(,)i(955,)e(956,)g(963,)g(985)p +3409 2383 V -1 w(,)h(986,)2199 2470 y(987,)k(990.)2033 +2571 y Fi(ptr)13 b Fm(:)83 b(997)p 2257 2584 V -1 w(,)44 +b(1312)p 2449 2584 167 4 v -2 w(.)2033 2673 y Fi(pts)11 +b Fm(:)83 b(1420)p 2254 2686 V -2 w(,)37 b(1443)p 2480 +2686 V -2 w(,)f(1444,)e(1445,)h(1449)p 3156 2686 V -2 +w(,)h(1451)p 3381 2686 V -2 w(,)h(1460)p 3607 2686 V +-2 w(,)2199 2772 y(1461,)h(1463)p 2428 2785 V -2 w(,)h(1464)p +2656 2785 V -2 w(,)h(1474)p 2885 2785 V -2 w(,)f(1476)p +3113 2785 V -2 w(,)h(1478)p 3342 2785 V -2 w(,)f(1488)p +3570 2785 V -2 w(,)2199 2872 y(1490)p 2199 2885 V -2 +w(,)44 b(1491.)2033 2973 y Fi(pt0)16 b Fm(:)83 b(149)p +2267 2986 125 4 v -1 w(,)31 b(717)p 2446 2986 V -1 w(,)h(948)p +2626 2986 V -2 w(,)g(949)p 2805 2986 V -1 w(,)g(954)p +2985 2986 V -2 w(,)g(957,)f(961,)f(963,)g(984)p 3702 +2986 V -1 w(,)2199 3073 y(985)p 2199 3086 V -1 w(,)20 +b(988,)g(990,)f(991,)g(1069)p 2872 3086 167 4 v -2 w(,)i(1070)p +3082 3086 V -2 w(,)f(1071)p 3291 3086 V -2 w(,)h(1072)p +3501 3086 V -2 w(,)g(1163,)2199 3173 y(1164)p 2199 3186 +V -2 w(,)27 b(1171)p 2415 3186 V -2 w(,)g(1179)p 2631 +3186 V -2 w(,)g(1188)p 2847 3186 V -2 w(,)g(1219)p 3063 +3186 V -2 w(,)g(1263)p 3279 3186 V -2 w(,)g(1264)p 3495 +3186 V -2 w(,)g(1284)p 3711 3186 V -2 w(.)2033 3274 y +Fi(pt0)p 2150 3274 26 4 v 31 w(h)11 b Fm(:)83 b(949)p +2335 3287 125 4 v -1 w(,)39 b(957)p 2522 3287 V -2 w(,)g(959,)e(960.) +2033 3376 y Fi(pt0)p 2150 3376 26 4 v 31 w(v)13 b Fm(:)83 +b(949)p 2333 3389 125 4 v -1 w(,)39 b(957)p 2520 3389 +V -2 w(,)g(958,)f(960.)2033 3477 y Fi(pt1)16 b Fm(:)83 +b(149)p 2267 3490 V -1 w(,)31 b(717)p 2446 3490 V -1 +w(,)h(949)p 2626 3490 V -2 w(,)g(954)p 2805 3490 V -1 +w(,)g(957,)e(961,)h(963,)f(984)p 3523 3490 V -1 w(,)h(985)p +3702 3490 V -1 w(,)2199 3577 y(988,)i(990,)f(991,)h(1069)p +2744 3590 167 4 v -2 w(,)h(1070)p 2967 3590 V -2 w(,)g(1071)p +3190 3590 V -2 w(,)g(1072)p 3413 3590 V -2 w(,)g(1171)p +3636 3590 V -2 w(,)2199 3676 y(1179)p 2199 3689 V -2 +w(,)39 b(1219)p 2427 3689 V -2 w(,)f(1263)p 2654 3689 +V -2 w(,)h(1264)p 2882 3689 V -2 w(.)2033 3778 y Fi(pt1)p +2150 3778 26 4 v 31 w(h)11 b Fm(:)83 b(957)p 2335 3791 +125 4 v -1 w(,)43 b(959.)2033 3879 y Fi(pt1)p 2150 3879 +26 4 v 31 w(v)13 b Fm(:)83 b(957)p 2333 3892 125 4 v +-1 w(.)2033 3981 y Fi(pt2)16 b Fm(:)83 b(149)p 2267 3994 +V -1 w(,)30 b(1069)p 2445 3994 167 4 v -2 w(,)g(1070)p +2664 3994 V -2 w(,)g(1071)p 2883 3994 V -2 w(,)g(1072)p +3102 3994 V -2 w(,)g(1179)p 3321 3994 V -2 w(,)g(1219)p +3540 3994 V -2 w(.)2033 4082 y Fi(pt20)16 b Fm(:)83 b(1183)p +2309 4095 V -1 w(,)42 b(1184.)2033 4184 y Fi(pt21)16 +b Fm(:)83 b(1183)p 2309 4197 V -1 w(,)42 b(1184.)2033 +4285 y Fi(pt22)16 b Fm(:)83 b(1183)p 2309 4298 V -1 w(,)42 +b(1184.)2033 4387 y Fi(pt23)16 b Fm(:)83 b(1183)p 2309 +4400 V -1 w(,)42 b(1184.)2033 4488 y Fi(pt3)16 b Fm(:)83 +b(1069)p 2267 4501 V -2 w(,)32 b(1070)p 2488 4501 V -2 +w(,)g(1071)p 2709 4501 V -2 w(,)h(1072)p 2931 4501 V +-2 w(,)f(1179)p 3152 4501 V -2 w(,)g(1219)p 3373 4501 +V -2 w(.)2033 4590 y Fi(pt4)16 b Fm(:)83 b(1070)p 2267 +4603 V -2 w(,)44 b(1219)p 2500 4603 V -2 w(.)2033 4691 +y Fi(pt5)16 b Fm(:)83 b(1070)p 2267 4704 V -2 w(,)44 +b(1219)p 2500 4704 V -2 w(.)2033 4793 y Fi(pt6)16 b Fm(:)83 +b(1070)p 2267 4806 V -2 w(,)44 b(1219)p 2500 4806 V -2 +w(.)2033 4894 y Fi(pt7)16 b Fm(:)83 b(1070)p 2267 4907 +V -2 w(,)44 b(1219)p 2500 4907 V -2 w(.)2033 4996 y Fi(pt8)16 +b Fm(:)83 b(1070)p 2267 5009 V -2 w(,)44 b(1219)p 2500 +5009 V -2 w(.)2033 5097 y Fi(pt9)16 b Fm(:)83 b(1219)p +2267 5110 V -2 w(.)2033 5199 y Fi(purple)11 b Fm(:)83 +b(108,)40 b(112)p 2562 5212 125 4 v -2 w(,)h(113)p 2750 +5212 V -1 w(.)2033 5300 y Fi(push)p 2201 5300 26 4 v 31 w(b)l(ack)14 b Fm(:)83 b(226,)28 b(228,)f(443,)h(543,)g(545,)f(549,) -h(657,)g(664,)2199 4098 y(666,)c(669,)f(671,)h(674,)f(676,)h(709,)g -(755,)f(757,)h(759,)f(764,)2199 4197 y(765,)h(766,)f(770,)h(771,)f -(840,)h(885,)g(886,)f(910,)h(994,)f(996,)2199 4297 y(1031,)i(1062,)g -(1067,)g(1105,)g(1282,)g(1297,)g(1303,)g(1360,)2199 4397 -y(1374,)g(1375,)g(1413,)g(1415,)g(1428,)g(1444,)g(1456,)g(1458,)2199 -4496 y(1469,)31 b(1471,)g(1483,)g(1485,)g(1486,)g(1500.)2033 -4598 y Fi(p0)16 b Fm(:)83 b(166)p 2239 4611 125 4 v -1 -w(,)33 b(168)p 2420 4611 V -1 w(,)g(243)p 2601 4611 V --1 w(,)g(349)p 2782 4611 V -2 w(,)h(350)p 2963 4611 V --2 w(,)g(351,)d(352)p 3324 4611 V -1 w(,)i(353)p 3505 -4611 V -1 w(,)g(354)p 3686 4611 V -2 w(,)2199 4697 y(355)p -2199 4710 V -1 w(,)25 b(357)p 2372 4710 V -2 w(,)g(379,)f(380)p -2717 4710 V -2 w(,)h(381,)f(389,)g(392)p 3235 4710 V --2 w(,)h(393)p 3407 4710 V -1 w(,)g(395)p 3580 4710 V --2 w(,)g(396)p 3752 4710 V -1 w(,)2199 4797 y(476,)f(511)p -2372 4810 V -2 w(,)h(512)p 2544 4810 V -1 w(,)g(529)p -2717 4810 V -2 w(,)g(530)p 2889 4810 V -1 w(,)g(531,)f(541,)f(640)p -3407 4810 V -1 w(,)i(641)p 3580 4810 V -2 w(,)g(663)p -3752 4810 V -1 w(,)2199 4896 y(664)p 2199 4909 V -1 w(,)g(665)p -2372 4909 V -2 w(,)g(666)p 2544 4909 V -1 w(,)g(719)p -2717 4909 V -2 w(,)g(720)p 2889 4909 V -1 w(,)g(721)p -3062 4909 V -1 w(,)g(748)p 3235 4909 V -2 w(,)g(751)p -3407 4909 V -1 w(,)g(752)p 3580 4909 V -2 w(,)g(897)p -3752 4909 V -1 w(,)2199 4996 y(901)p 2199 5009 V -1 w(,)31 -b(950)p 2378 5009 V -1 w(,)h(1003)p 2558 5009 167 4 v --2 w(,)g(1004)p 2779 5009 V -2 w(,)f(1083)p 2999 5009 -V -1 w(,)g(1122)p 3220 5009 V -2 w(,)h(1165)p 3441 5009 -V -2 w(,)g(1208)p 3662 5009 V -2 w(,)2199 5096 y(1209)p -2199 5109 V -2 w(,)h(1223)p 2421 5109 V -2 w(,)g(1282)p -2643 5109 V -2 w(,)g(1285)p 2865 5109 V -2 w(,)g(1356)p -3087 5109 V -2 w(,)g(1357)p 3309 5109 V -2 w(.)2033 5197 -y Ff(P0)t Fm(:)83 b(1439)p 2231 5210 V -2 w(.)2033 5299 -y Fi(p0)p 2122 5299 26 4 v 31 w(x)14 b Fm(:)83 b(531)p -2307 5312 125 4 v -1 w(,)35 b(532,)e(535,)g(536,)g(538,)g(540.)2033 -5400 y Fi(p0)p 2122 5400 26 4 v 31 w(y)12 b Fm(:)83 b(531)p -2306 5413 125 4 v -1 w(,)37 b(532,)e(535,)h(536,)f(539.)p -eop end -%%Page: 498 498 -TeXDict begin 498 497 bop 0 83 a Fm(498)140 b Fl(INDEX)2670 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1517)0 263 y Fi(p0)p 89 -263 26 4 v 31 w(z)15 b Fm(:)83 b(531)p 270 276 125 4 -v -2 w(,)37 b(532,)f(536,)g(538,)f(540.)0 364 y Fi(p1)16 -b Fm(:)83 b(166)p 206 377 V -1 w(,)33 b(168)p 387 377 -V -1 w(,)g(243)p 568 377 V -1 w(,)g(349)p 749 377 V -2 -w(,)h(350)p 930 377 V -2 w(,)f(351,)f(352)p 1291 377 -V -1 w(,)h(353)p 1472 377 V -1 w(,)g(354)p 1653 377 V --2 w(,)166 464 y(355)p 166 477 V -1 w(,)25 b(357)p 339 -477 V -2 w(,)g(379,)f(380)p 684 477 V -2 w(,)h(381,)f(382,)g(383,)f -(385,)h(386,)f(387,)166 564 y(388,)h(389,)f(392)p 511 -577 V -1 w(,)i(393)p 684 577 V -2 w(,)g(395)p 856 577 -V -1 w(,)g(396)p 1029 577 V -1 w(,)g(511)p 1202 577 V --2 w(,)g(512)p 1374 577 V -1 w(,)g(529)p 1547 577 V -2 -w(,)g(530)p 1719 577 V -1 w(,)166 663 y(531,)f(541,)f(640)p -511 676 V -1 w(,)i(641)p 684 676 V -2 w(,)g(663)p 856 -676 V -1 w(,)g(664)p 1029 676 V -1 w(,)g(665)p 1202 676 -V -2 w(,)g(666)p 1374 676 V -1 w(,)g(719)p 1547 676 V --2 w(,)g(720)p 1719 676 V -1 w(,)166 763 y(721,)30 b(748)p -345 776 V -2 w(,)h(751)p 523 776 V -1 w(,)g(752)p 702 -776 V -1 w(,)g(897)p 881 776 V -2 w(,)g(901)p 1059 776 -V -1 w(,)g(950)p 1238 776 V -1 w(,)g(1003)p 1417 776 -167 4 v -2 w(,)g(1004)p 1637 776 V -2 w(,)166 862 y(1083)p -166 875 V -2 w(,)i(1165)p 388 875 V -2 w(,)g(1208)p 610 -875 V -2 w(,)g(1209)p 832 875 V -2 w(,)g(1356)p 1054 -875 V -2 w(,)g(1357)p 1276 875 V -2 w(.)0 964 y Ff(P1)t -Fm(:)83 b(1439)p 198 977 V -2 w(.)0 1065 y Fi(p1)p 89 -1065 26 4 v 31 w(x)14 b Fm(:)83 b(531)p 274 1078 125 -4 v -1 w(,)39 b(532,)f(536,)g(540.)0 1166 y Fi(p1)p 89 -1166 26 4 v 31 w(y)12 b Fm(:)83 b(531)p 273 1179 125 -4 v -1 w(,)42 b(532,)e(536.)0 1268 y Fi(p1)p 89 1268 -26 4 v 31 w(z)15 b Fm(:)83 b(531)p 270 1281 125 4 v -2 -w(,)40 b(532,)e(536,)f(540.)0 1369 y Fi(p2)16 b Fm(:)83 -b(357)p 206 1382 V -1 w(,)37 b(897)p 391 1382 V -2 w(,)g(901)p -575 1382 V -1 w(,)f(1083)p 759 1382 167 4 v -2 w(,)h(1282)p -985 1382 V -2 w(.)0 1470 y Ff(P2)t Fm(:)83 b(1439)p 198 -1483 V -2 w(.)0 1571 y Fe(q)s Fm(:)g(513)p 146 1584 125 -4 v -1 w(,)30 b(516)p 324 1584 V -1 w(,)g(886)p 502 1584 -V -2 w(,)h(898)p 680 1584 V -2 w(,)g(901)p 858 1584 V --2 w(,)g(1163)p 1036 1584 167 4 v -2 w(,)f(1417)p 1255 -1584 V -2 w(,)h(1501)p 1475 1584 V -2 w(.)0 1673 y Fi(q)p -43 1673 26 4 v 31 w(pl)13 b Fm(:)83 b(901)p 251 1686 -125 4 v -1 w(.)0 1774 y Fi(qq0)16 b Fm(:)83 b(528)p 240 -1787 V -1 w(,)44 b(603)p 432 1787 V -1 w(.)0 1875 y Fi(qq1)16 -b Fm(:)83 b(528)p 240 1888 V -1 w(,)44 b(603)p 432 1888 -V -1 w(.)0 1976 y Fi(Quader)13 b Fm(:)84 b(1406.)0 2078 -y Fi(quarter)13 b Fm(:)83 b(33,)40 b(963,)f(967)p 715 -2091 V -1 w(.)0 2179 y Fi(q0)16 b Fm(:)83 b(529)p 202 -2192 V -1 w(,)38 b(530)p 388 2192 V -2 w(,)g(531,)e(541,)h(985)p -944 2192 V -2 w(.)0 2280 y Fi(q0)p 85 2280 26 4 v 31 -w(x)14 b Fm(:)83 b(531)p 270 2293 125 4 v -1 w(,)34 b(532,)g(535,)f -(536,)g(538,)g(540.)0 2382 y Fi(q0)p 85 2382 26 4 v 31 -w(y)12 b Fm(:)83 b(531)p 269 2395 125 4 v -1 w(,)39 b(532,)f(535,)g -(536.)0 2483 y Fi(q0)p 85 2483 26 4 v 31 w(z)15 b Fm(:)83 -b(531)p 266 2496 125 4 v -2 w(,)37 b(532,)f(536,)f(538,)h(540.)0 -2584 y Fi(q1)16 b Fm(:)83 b(529)p 202 2597 V -1 w(,)38 -b(530)p 388 2597 V -2 w(,)g(531,)e(541,)h(985)p 944 2597 -V -2 w(.)0 2685 y Fi(q1)p 85 2685 26 4 v 31 w(x)14 b -Fm(:)83 b(531)p 270 2698 125 4 v -1 w(,)39 b(532,)f(536,)g(540.)0 -2787 y Fi(q1)p 85 2787 26 4 v 31 w(y)12 b Fm(:)83 b(531)p -269 2800 125 4 v -1 w(,)41 b(532,)g(536.)0 2888 y Fi(q1)p -85 2888 26 4 v 31 w(z)15 b Fm(:)83 b(531)p 266 2901 125 -4 v -2 w(,)40 b(532,)d(536,)h(540.)0 2989 y Fe(r)s Fm(:)83 -b(63)p 146 3002 84 4 v -1 w(,)25 b(64)p 277 3002 V -1 -w(,)g(65)p 408 3002 V -1 w(,)g(66)p 539 3002 V -1 w(,)g(68)p -670 3002 V -1 w(,)g(69)p 801 3002 V(,)g(70)p 933 3002 -V -1 w(,)g(71)p 1064 3002 V -1 w(,)g(84)p 1195 3002 V --1 w(,)g(85)p 1326 3002 V -1 w(,)g(86)p 1457 3002 V -1 -w(,)g(87)p 1588 3002 V -1 w(,)g(126)p 1719 3002 125 4 -v -1 w(,)166 3089 y(127)p 166 3102 V -1 w(,)g(134)p 339 -3102 V -2 w(,)g(135)p 511 3102 V -1 w(,)g(171)p 684 3102 -V -2 w(,)g(172)p 856 3102 V -1 w(,)g(176)p 1029 3102 -V -1 w(,)g(177)p 1202 3102 V -2 w(,)g(272)p 1374 3102 -V -1 w(,)g(350)p 1547 3102 V -2 w(,)g(485)p 1719 3102 -V -1 w(,)166 3188 y(486)p 166 3201 V -1 w(,)g(488)p 339 -3201 V -2 w(,)g(489)p 511 3201 V -1 w(,)g(491)p 684 3201 -V -2 w(,)g(494)p 856 3201 V -1 w(,)g(495)p 1029 3201 -V -1 w(,)g(496)p 1202 3201 V -2 w(,)g(497)p 1374 3201 -V -1 w(,)g(499)p 1547 3201 V -2 w(,)g(501)p 1719 3201 -V -1 w(,)166 3288 y(503)p 166 3301 V -1 w(,)g(511)p 339 -3301 V -2 w(,)g(512)p 511 3301 V -1 w(,)g(522)p 684 3301 -V -2 w(,)g(633)p 856 3301 V -1 w(,)g(634)p 1029 3301 -V -1 w(,)g(768)p 1202 3301 V -2 w(,)g(770)p 1374 3301 -V -1 w(,)g(840)p 1547 3301 V -2 w(,)g(898)p 1719 3301 -V -1 w(,)166 3388 y(992)p 166 3401 V -1 w(,)31 b(993)p -345 3401 V -1 w(,)h(1036)p 525 3401 167 4 v -2 w(,)g(1037)p -746 3401 V -2 w(,)f(1038)p 966 3401 V -2 w(,)h(1039)p -1187 3401 V -2 w(,)g(1064)p 1408 3401 V -2 w(,)g(1069)p -1629 3401 V -2 w(,)166 3487 y(1072)p 166 3500 V -2 w(,)27 -b(1074)p 382 3500 V -2 w(,)g(1110)p 598 3500 V -2 w(,)g(1112)p -814 3500 V -2 w(,)g(1122)p 1030 3500 V -2 w(,)g(1129)p -1246 3500 V -2 w(,)g(1132)p 1462 3500 V -2 w(,)g(1214)p -1678 3500 V -2 w(,)166 3587 y(1218)p 166 3600 V -2 w(,)j(1220)p -385 3600 V -2 w(,)h(1223)p 605 3600 V -2 w(,)f(1265)p -824 3600 V -2 w(,)g(1427)p 1043 3600 V -2 w(,)h(1428)p -1263 3600 V -2 w(,)f(1485)p 1482 3600 V -2 w(.)0 3688 -y Fi(r)p 40 3688 26 4 v 31 w(fabs)12 b Fm(:)83 b(633,)42 -b(634)p 514 3701 125 4 v -2 w(.)0 3789 y Fi(r)p 40 3789 -26 4 v 31 w(iter)13 b Fm(:)83 b(994.)0 3891 y Fi(r)p -40 3891 V 31 w(pl)13 b Fm(:)83 b(993)p 248 3904 125 4 -v -1 w(,)44 b(996.)0 3992 y Fi(r)p 40 3992 26 4 v 31 -w(ptr)13 b Fm(:)83 b(994)p 290 4005 125 4 v -2 w(.)0 -4093 y Fi(r)l(adius)12 b Fm(:)83 b(1022)p 337 4106 167 -4 v -2 w(,)30 b(1024,)e(1030)p 775 4106 V -2 w(,)i(1031,)e(1042,)g -(1232)p 1432 4106 V -2 w(,)i(1238,)166 4193 y(1249,)e(1251,)h(1255,)f -(1256,)g(1262,)h(1263,)f(1269.)0 4294 y Fi(r)l(adius)p -224 4294 26 4 v 31 w(inner)13 b Fm(:)83 b(1282)p 561 -4307 167 4 v -2 w(,)37 b(1284,)d(1285)p 1012 4307 V -2 -w(.)0 4395 y Fi(r)l(adius)p 224 4395 26 4 v 31 w(known)11 -b Fm(:)83 b(1129)p 596 4408 167 4 v -2 w(,)39 b(1130.)0 -4497 y Fi(r)l(adius)p 224 4497 26 4 v 31 w(outer)13 b -Fm(:)83 b(1282)p 557 4510 167 4 v -2 w(,)37 b(1284,)d(1285)p -1008 4510 V -2 w(.)0 4598 y Fi(r)l(adius)p 224 4598 26 -4 v 31 w(r)l(atio)10 b Fm(:)83 b(1284)p 534 4611 167 -4 v -2 w(.)0 4699 y Fi(r)l(adius)p 224 4699 26 4 v 31 -w(unknown)10 b Fm(:)83 b(1129)p 687 4712 167 4 v -2 w(,)38 -b(1130.)0 4801 y Fi(r)l(cs)p 108 4801 26 4 v 30 w(id)14 -b Fm(:)83 b(10)p 320 4814 84 4 v -1 w(,)41 b(1229)p 467 -4814 167 4 v -2 w(,)f(1497)p 696 4814 V -2 w(.)0 4902 -y Fk(real)5 b Fm(:)83 b(12)p 267 4915 84 4 v -1 w(,)29 -b(13,)e(15,)h(16,)g(20,)g(23,)f(24,)h(25,)g(26,)g(27,)f(29,)h(30,)166 -5001 y(36,)k(56,)g(67,)g(68,)h(69,)f(70,)g(71,)g(84,)g(85,)g(86,)g(87,) -g(88,)166 5101 y(89,)f(90,)g(91,)g(96,)g(97,)g(98,)f(99,)h(126,)g(127,) -f(128,)h(129,)166 5201 y(134,)24 b(135,)f(137,)h(138,)f(145,)h(146,)g -(150,)f(151,)h(152,)f(153,)166 5300 y(155,)h(156,)f(158,)h(159,)f(160,) -h(161,)g(166,)f(167,)h(171,)f(172,)166 5400 y(176,)h(177,)f(181,)h -(182,)f(200,)h(210,)g(235,)f(236,)h(238,)f(239,)2199 -263 y(241,)h(242,)f(243,)h(252,)f(253,)h(254,)g(264,)f(265,)h(272,)f -(282,)2199 363 y(283,)h(284,)f(285,)h(295,)f(296,)h(305,)g(308,)f(312,) -h(313,)f(314,)2199 462 y(315,)h(317,)f(318,)h(319,)f(320,)h(322,)g -(323,)f(324,)h(325,)f(327,)2199 562 y(328,)h(329,)f(330,)h(332,)f(333,) -h(334,)g(335,)f(337,)h(338,)f(339,)2199 662 y(340,)h(345,)f(346,)h +h(657,)g(664,)2199 5400 y(666,)c(669,)f(671,)h(674,)f(676,)h(709,)g +(755,)f(757,)h(759,)f(764,)p eop end +%%Page: 503 503 +TeXDict begin 503 502 bop 0 83 a Fn(x)p Fm(1525)139 b +Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(503)166 263 y(765,)24 +b(766,)f(770,)h(771,)f(840,)h(885,)g(886,)f(913,)h(997,)f(999,)166 +363 y(1034,)i(1065,)g(1070,)g(1110,)g(1287,)g(1302,)g(1308,)g(1365,)166 +462 y(1379,)g(1380,)g(1418,)g(1420,)g(1433,)g(1449,)g(1461,)g(1463,)166 +562 y(1474,)31 b(1476,)g(1488,)g(1490,)g(1491,)g(1505.)0 +667 y Fi(p0)16 b Fm(:)83 b(166)p 206 680 125 4 v -1 w(,)33 +b(168)p 387 680 V -1 w(,)g(243)p 568 680 V -1 w(,)g(349)p +749 680 V -2 w(,)h(350)p 930 680 V -2 w(,)f(351,)f(352)p +1291 680 V -1 w(,)h(353)p 1472 680 V -1 w(,)g(354)p 1653 +680 V -2 w(,)166 766 y(355)p 166 779 V -1 w(,)25 b(357)p +339 779 V -2 w(,)g(379,)f(380)p 684 779 V -2 w(,)h(381,)f(389,)g(392)p +1202 779 V -2 w(,)h(393)p 1374 779 V -1 w(,)g(395)p 1547 +779 V -2 w(,)g(396)p 1719 779 V -1 w(,)166 866 y(476,)34 +b(529)p 349 879 V -2 w(,)i(530)p 532 879 V -2 w(,)g(531,)d(541,)h(640)p +1080 879 V -1 w(,)h(641)p 1263 879 V -1 w(,)g(663)p 1446 +879 V -2 w(,)h(664)p 1629 879 V -2 w(,)166 965 y(665)p +166 978 V -1 w(,)f(666)p 349 978 V -2 w(,)h(719)p 532 +978 V -2 w(,)g(720)p 715 978 V -2 w(,)f(721)p 897 978 +V -1 w(,)g(748)p 1080 978 V -1 w(,)g(751)p 1263 978 V +-1 w(,)g(752)p 1446 978 V -2 w(,)h(900)p 1629 978 V -2 +w(,)166 1065 y(904)p 166 1078 V -1 w(,)31 b(953)p 345 +1078 V -1 w(,)h(1006)p 525 1078 167 4 v -2 w(,)g(1007)p +746 1078 V -2 w(,)f(1088)p 966 1078 V -2 w(,)h(1127)p +1187 1078 V -2 w(,)g(1170)p 1408 1078 V -2 w(,)g(1213)p +1629 1078 V -2 w(,)166 1165 y(1214)p 166 1178 V -2 w(,)h(1228)p +388 1178 V -2 w(,)g(1287)p 610 1178 V -2 w(,)g(1290)p +832 1178 V -2 w(,)g(1361)p 1054 1178 V -2 w(,)g(1362)p +1276 1178 V -2 w(.)0 1269 y Ff(P0)t Fm(:)83 b(1444)p +198 1282 V -2 w(.)0 1374 y Fi(p0)p 89 1374 26 4 v 31 +w(x)14 b Fm(:)83 b(531)p 274 1387 125 4 v -1 w(,)34 b(532,)g(535,)f +(536,)g(538,)g(540.)0 1479 y Fi(p0)p 89 1479 26 4 v 31 +w(y)12 b Fm(:)83 b(531)p 273 1492 125 4 v -1 w(,)37 b(532,)e(535,)h +(536,)f(539.)0 1583 y Fi(p0)p 89 1583 26 4 v 31 w(z)15 +b Fm(:)83 b(531)p 270 1596 125 4 v -2 w(,)37 b(532,)f(536,)g(538,)f +(540.)0 1688 y Fi(p1)16 b Fm(:)83 b(166)p 206 1701 V +-1 w(,)33 b(168)p 387 1701 V -1 w(,)g(243)p 568 1701 +V -1 w(,)g(349)p 749 1701 V -2 w(,)h(350)p 930 1701 V +-2 w(,)f(351,)f(352)p 1291 1701 V -1 w(,)h(353)p 1472 +1701 V -1 w(,)g(354)p 1653 1701 V -2 w(,)166 1788 y(355)p +166 1801 V -1 w(,)25 b(357)p 339 1801 V -2 w(,)g(379,)f(380)p +684 1801 V -2 w(,)h(381,)f(382,)g(383,)f(385,)h(386,)f(387,)166 +1887 y(388,)34 b(389,)g(392)p 532 1900 V -2 w(,)i(393)p +715 1900 V -2 w(,)f(395)p 897 1900 V -1 w(,)g(396)p 1080 +1900 V -1 w(,)g(529)p 1263 1900 V -1 w(,)g(530)p 1446 +1900 V -2 w(,)h(531,)166 1987 y(541,)e(640)p 349 2000 +V -2 w(,)i(641)p 532 2000 V -2 w(,)g(663)p 715 2000 V +-2 w(,)f(664)p 897 2000 V -1 w(,)g(665)p 1080 2000 V +-1 w(,)g(666)p 1263 2000 V -1 w(,)g(719)p 1446 2000 V +-2 w(,)h(720)p 1629 2000 V -2 w(,)166 2086 y(721,)30 +b(748)p 345 2099 V -2 w(,)h(751)p 523 2099 V -1 w(,)g(752)p +702 2099 V -1 w(,)g(900)p 881 2099 V -2 w(,)g(904)p 1059 +2099 V -1 w(,)g(953)p 1238 2099 V -1 w(,)g(1006)p 1417 +2099 167 4 v -2 w(,)g(1007)p 1637 2099 V -2 w(,)166 2186 +y(1088)p 166 2199 V -2 w(,)i(1170)p 388 2199 V -2 w(,)g(1213)p +610 2199 V -2 w(,)g(1214)p 832 2199 V -2 w(,)g(1361)p +1054 2199 V -2 w(,)g(1362)p 1276 2199 V -2 w(.)0 2291 +y Ff(P1)t Fm(:)83 b(1444)p 198 2304 V -2 w(.)0 2395 y +Fi(p1)p 89 2395 26 4 v 31 w(x)14 b Fm(:)83 b(531)p 274 +2408 125 4 v -1 w(,)39 b(532,)f(536,)g(540.)0 2500 y +Fi(p1)p 89 2500 26 4 v 31 w(y)12 b Fm(:)83 b(531)p 273 +2513 125 4 v -1 w(,)42 b(532,)e(536.)0 2605 y Fi(p1)p +89 2605 26 4 v 31 w(z)15 b Fm(:)83 b(531)p 270 2618 125 +4 v -2 w(,)40 b(532,)e(536,)f(540.)0 2709 y Fi(p2)16 +b Fm(:)83 b(357)p 206 2722 V -1 w(,)37 b(900)p 391 2722 +V -2 w(,)g(904)p 575 2722 V -1 w(,)f(1088)p 759 2722 +167 4 v -2 w(,)h(1287)p 985 2722 V -2 w(.)0 2814 y Ff(P2)t +Fm(:)83 b(1444)p 198 2827 V -2 w(.)0 2919 y Fe(q)s Fm(:)g(513)p +146 2932 125 4 v -1 w(,)30 b(516)p 324 2932 V -1 w(,)g(886)p +502 2932 V -2 w(,)h(901)p 680 2932 V -2 w(,)g(904)p 858 +2932 V -2 w(,)g(1168)p 1036 2932 167 4 v -2 w(,)f(1422)p +1255 2932 V -2 w(,)h(1506)p 1475 2932 V -2 w(.)0 3023 +y Fi(q)p 43 3023 26 4 v 31 w(pl)13 b Fm(:)83 b(904)p +251 3036 125 4 v -1 w(.)0 3128 y Fi(qq0)16 b Fm(:)83 +b(528)p 240 3141 V -1 w(,)44 b(603)p 432 3141 V -1 w(.)0 +3233 y Fi(qq1)16 b Fm(:)83 b(528)p 240 3246 V -1 w(,)44 +b(603)p 432 3246 V -1 w(.)0 3337 y Fi(Quader)13 b Fm(:)84 +b(1411.)0 3442 y Fi(quarter)13 b Fm(:)83 b(33,)40 b(966,)f(970)p +715 3455 V -1 w(.)0 3546 y Fi(q0)16 b Fm(:)83 b(529)p +202 3559 V -1 w(,)38 b(530)p 388 3559 V -2 w(,)g(531,)e(541,)h(988)p +944 3559 V -2 w(.)0 3651 y Fi(q0)p 85 3651 26 4 v 31 +w(x)14 b Fm(:)83 b(531)p 270 3664 125 4 v -1 w(,)34 b(532,)g(535,)f +(536,)g(538,)g(540.)0 3756 y Fi(q0)p 85 3756 26 4 v 31 +w(y)12 b Fm(:)83 b(531)p 269 3769 125 4 v -1 w(,)39 b(532,)f(535,)g +(536.)0 3860 y Fi(q0)p 85 3860 26 4 v 31 w(z)15 b Fm(:)83 +b(531)p 266 3873 125 4 v -2 w(,)37 b(532,)f(536,)f(538,)h(540.)0 +3965 y Fi(q1)16 b Fm(:)83 b(529)p 202 3978 V -1 w(,)38 +b(530)p 388 3978 V -2 w(,)g(531,)e(541,)h(988)p 944 3978 +V -2 w(.)0 4070 y Fi(q1)p 85 4070 26 4 v 31 w(x)14 b +Fm(:)83 b(531)p 270 4083 125 4 v -1 w(,)39 b(532,)f(536,)g(540.)0 +4174 y Fi(q1)p 85 4174 26 4 v 31 w(y)12 b Fm(:)83 b(531)p +269 4187 125 4 v -1 w(,)41 b(532,)g(536.)0 4279 y Fi(q1)p +85 4279 26 4 v 31 w(z)15 b Fm(:)83 b(531)p 266 4292 125 +4 v -2 w(,)40 b(532,)d(536,)h(540.)0 4384 y Fe(r)s Fm(:)83 +b(63)p 146 4397 84 4 v -1 w(,)25 b(64)p 277 4397 V -1 +w(,)g(65)p 408 4397 V -1 w(,)g(66)p 539 4397 V -1 w(,)g(68)p +670 4397 V -1 w(,)g(69)p 801 4397 V(,)g(70)p 933 4397 +V -1 w(,)g(71)p 1064 4397 V -1 w(,)g(84)p 1195 4397 V +-1 w(,)g(85)p 1326 4397 V -1 w(,)g(86)p 1457 4397 V -1 +w(,)g(87)p 1588 4397 V -1 w(,)g(126)p 1719 4397 125 4 +v -1 w(,)166 4483 y(127)p 166 4496 V -1 w(,)g(134)p 339 +4496 V -2 w(,)g(135)p 511 4496 V -1 w(,)g(171)p 684 4496 +V -2 w(,)g(172)p 856 4496 V -1 w(,)g(176)p 1029 4496 +V -1 w(,)g(177)p 1202 4496 V -2 w(,)g(272)p 1374 4496 +V -1 w(,)g(350)p 1547 4496 V -2 w(,)g(485)p 1719 4496 +V -1 w(,)166 4583 y(486)p 166 4596 V -1 w(,)g(488)p 339 +4596 V -2 w(,)g(489)p 511 4596 V -1 w(,)g(491)p 684 4596 +V -2 w(,)g(494)p 856 4596 V -1 w(,)g(495)p 1029 4596 +V -1 w(,)g(496)p 1202 4596 V -2 w(,)g(497)p 1374 4596 +V -1 w(,)g(499)p 1547 4596 V -2 w(,)g(501)p 1719 4596 +V -1 w(,)166 4683 y(503)p 166 4696 V -1 w(,)g(511)p 339 +4696 V -2 w(,)g(512)p 511 4696 V -1 w(,)g(522)p 684 4696 +V -2 w(,)g(633)p 856 4696 V -1 w(,)g(634)p 1029 4696 +V -1 w(,)g(768)p 1202 4696 V -2 w(,)g(770)p 1374 4696 +V -1 w(,)g(840)p 1547 4696 V -2 w(,)g(901)p 1719 4696 +V -1 w(,)166 4782 y(995)p 166 4795 V -1 w(,)31 b(996)p +345 4795 V -1 w(,)h(1039)p 525 4795 167 4 v -2 w(,)g(1040)p +746 4795 V -2 w(,)f(1041)p 966 4795 V -2 w(,)h(1042)p +1187 4795 V -2 w(,)g(1067)p 1408 4795 V -2 w(,)g(1072)p +1629 4795 V -2 w(,)166 4882 y(1075)p 166 4895 V -2 w(,)27 +b(1077)p 382 4895 V -2 w(,)g(1115)p 598 4895 V -2 w(,)g(1117)p +814 4895 V -2 w(,)g(1127)p 1030 4895 V -2 w(,)g(1134)p +1246 4895 V -2 w(,)g(1137)p 1462 4895 V -2 w(,)g(1219)p +1678 4895 V -2 w(,)166 4981 y(1223)p 166 4994 V -2 w(,)j(1225)p +385 4994 V -2 w(,)h(1228)p 605 4994 V -2 w(,)f(1270)p +824 4994 V -2 w(,)g(1432)p 1043 4994 V -2 w(,)h(1433)p +1263 4994 V -2 w(,)f(1490)p 1482 4994 V -2 w(.)0 5086 +y Fi(r)p 40 5086 26 4 v 31 w(fabs)12 b Fm(:)83 b(633,)42 +b(634)p 514 5099 125 4 v -2 w(.)0 5191 y Fi(r)p 40 5191 +26 4 v 31 w(iter)13 b Fm(:)83 b(997.)0 5295 y Fi(r)p +40 5295 V 31 w(pl)13 b Fm(:)83 b(996)p 248 5308 125 4 +v -1 w(,)44 b(999.)0 5400 y Fi(r)p 40 5400 26 4 v 31 +w(ptr)13 b Fm(:)83 b(997)p 290 5413 125 4 v -2 w(.)2033 +263 y Fi(r)l(adius)12 b Fm(:)83 b(1025)p 2370 276 167 +4 v -2 w(,)30 b(1027,)e(1033)p 2808 276 V -2 w(,)i(1034,)e(1045,)g +(1237)p 3465 276 V -2 w(,)i(1243,)2199 363 y(1254,)e(1256,)h(1260,)f +(1261,)g(1267,)h(1268,)f(1274.)2033 470 y Fi(r)l(adius)p +2257 470 26 4 v 31 w(inner)13 b Fm(:)83 b(1287)p 2594 +483 167 4 v -2 w(,)37 b(1289,)d(1290)p 3045 483 V -2 +w(.)2033 578 y Fi(r)l(adius)p 2257 578 26 4 v 31 w(known)11 +b Fm(:)83 b(1134)p 2629 591 167 4 v -2 w(,)39 b(1135.)2033 +686 y Fi(r)l(adius)p 2257 686 26 4 v 31 w(outer)13 b +Fm(:)83 b(1287)p 2590 699 167 4 v -2 w(,)37 b(1289,)d(1290)p +3041 699 V -2 w(.)2033 793 y Fi(r)l(adius)p 2257 793 +26 4 v 31 w(r)l(atio)10 b Fm(:)83 b(1289)p 2567 806 167 +4 v -2 w(.)2033 901 y Fi(r)l(adius)p 2257 901 26 4 v +31 w(unknown)10 b Fm(:)83 b(1134)p 2720 914 167 4 v -2 +w(,)38 b(1135.)2033 1008 y Fi(r)l(cs)p 2141 1008 26 4 +v 30 w(id)14 b Fm(:)83 b(10)p 2353 1021 84 4 v -1 w(,)34 +b(37)p 2493 1021 V -1 w(,)g(54)p 2633 1021 V -1 w(,)g(120)p +2773 1021 125 4 v -2 w(,)g(196)p 2954 1021 V -1 w(,)f(205)p +3135 1021 V -1 w(,)h(262)p 3317 1021 V -2 w(,)g(591)p +3498 1021 V -1 w(,)f(615)p 3679 1021 V -1 w(,)2199 1108 +y(652)p 2199 1121 V -1 w(,)h(938)p 2381 1121 V -2 w(,)g(973)p +2562 1121 V -1 w(,)g(1057)p 2744 1121 167 4 v -2 w(,)g(1101)p +2967 1121 V -2 w(,)g(1234)p 3190 1121 V -2 w(,)g(1280)p +3413 1121 V -2 w(,)g(1294)p 3636 1121 V -2 w(,)2199 1208 +y(1403)p 2199 1221 V -2 w(,)i(1411)p 2424 1221 V -2 w(,)g(1429)p +2649 1221 V -2 w(,)f(1495)p 2873 1221 V -2 w(,)h(1502)p +3098 1221 V -2 w(.)2033 1315 y Fk(real)5 b Fm(:)83 b(12)p +2300 1328 84 4 v -1 w(,)29 b(13,)e(15,)h(16,)g(20,)g(23,)f(24,)h(25,)g +(26,)g(27,)f(29,)h(30,)2199 1415 y(36,)k(56,)g(67,)g(68,)h(69,)f(70,)g +(71,)g(84,)g(85,)g(86,)g(87,)g(88,)2199 1515 y(89,)f(90,)g(91,)g(96,)g +(97,)g(98,)f(99,)h(126,)g(127,)f(128,)h(129,)2199 1614 +y(134,)24 b(135,)f(137,)h(138,)f(145,)h(146,)g(150,)f(151,)h(152,)f +(153,)2199 1714 y(155,)h(156,)f(158,)h(159,)f(160,)h(161,)g(166,)f +(167,)h(171,)f(172,)2199 1813 y(176,)h(177,)f(181,)h(182,)f(200,)h +(210,)g(235,)f(236,)h(238,)f(239,)2199 1913 y(241,)h(242,)f(243,)h +(252,)f(253,)h(254,)g(264,)f(265,)h(272,)f(282,)2199 +2013 y(283,)h(284,)f(285,)h(295,)f(296,)h(305,)g(308,)f(312,)h(313,)f +(314,)2199 2112 y(315,)h(317,)f(318,)h(319,)f(320,)h(322,)g(323,)f +(324,)h(325,)f(327,)2199 2212 y(328,)h(329,)f(330,)h(332,)f(333,)h +(334,)g(335,)f(337,)h(338,)f(339,)2199 2312 y(340,)h(345,)f(346,)h (349,)f(350,)h(351,)g(360,)f(361,)h(362,)f(363,)2199 -761 y(364,)h(365,)f(368,)h(369,)f(375,)h(376,)g(379,)f(380,)h(389,)f -(392,)2199 861 y(393,)h(394,)f(395,)h(396,)f(398,)h(399,)g(401,)f(402,) -h(403,)f(405,)2199 960 y(431,)h(432,)f(442,)h(443,)f(444,)h(445,)g -(446,)f(447,)h(448,)f(449,)2199 1060 y(450,)h(465,)f(472,)h(485,)f -(486,)h(488,)g(489,)f(490,)h(491,)f(494,)2199 1160 y(495,)h(496,)f -(497,)h(498,)f(499,)h(502,)g(503,)f(504,)h(505,)f(508,)2199 -1259 y(511,)h(512,)f(517,)h(522,)f(531,)h(532,)g(533,)f(534,)h(535,)f -(536,)2199 1359 y(538,)h(548,)f(550,)h(551,)f(554,)h(556,)g(559,)f -(560,)h(561,)f(562,)2199 1459 y(563,)h(565,)f(566,)h(567,)f(568,)h -(571,)g(572,)f(578,)h(581,)f(582,)2199 1558 y(584,)h(585,)f(606,)h -(617,)f(633,)h(634,)g(636,)f(641,)h(644,)f(654,)2199 -1658 y(713,)h(714,)f(716,)h(717,)f(719,)h(720,)g(721,)f(722,)h(723,)f -(724,)2199 1757 y(725,)h(726,)f(728,)h(729,)f(733,)h(734,)g(742,)f -(743,)h(839,)f(840,)2199 1857 y(843,)h(845,)f(846,)h(847,)f(848,)h -(849,)g(850,)f(851,)h(866,)f(867,)2199 1957 y(879,)h(880,)f(893,)h -(901,)f(903,)h(921,)g(922,)f(926,)h(927,)f(943,)2199 -2056 y(944,)34 b(945,)g(946,)g(947,)f(948,)h(954,)g(957,)g(964,)g(965,) -2199 2156 y(966,)f(967,)f(993,)h(1000,)f(1001,)g(1003,)g(1004,)g(1005,) -2199 2256 y(1006,)25 b(1007,)g(1008,)g(1009,)g(1010,)g(1012,)g(1013,)g -(1017,)2199 2355 y(1018,)g(1022,)g(1029,)g(1030,)g(1032,)g(1033,)g -(1042,)g(1056,)2199 2455 y(1061,)g(1062,)g(1063,)g(1064,)g(1085,)g -(1086,)g(1087,)g(1088,)2199 2554 y(1098,)g(1104,)g(1105,)g(1106,)g -(1107,)g(1122,)g(1128,)g(1129,)2199 2654 y(1131,)g(1132,)g(1143,)g -(1144,)g(1145,)g(1146,)g(1149,)g(1150,)2199 2754 y(1151,)g(1152,)g -(1154,)g(1155,)g(1156,)g(1157,)g(1158,)g(1159,)2199 2853 -y(1163,)g(1172,)g(1176,)g(1178,)g(1180,)g(1188,)g(1191,)g(1192,)2199 -2953 y(1193,)g(1194,)g(1195,)g(1196,)g(1198,)g(1199,)g(1203,)g(1204,) -2199 3053 y(1208,)g(1209,)g(1210,)g(1211,)g(1223,)g(1224,)g(1232,)g -(1237,)2199 3152 y(1238,)g(1239,)g(1240,)g(1251,)g(1253,)g(1254,)g -(1255,)g(1256,)2199 3252 y(1262,)g(1263,)g(1265,)g(1278,)g(1279,)g -(1281,)g(1282,)g(1284,)2199 3351 y(1285,)g(1291,)g(1336,)g(1337,)g -(1345,)g(1346,)g(1347,)g(1348,)2199 3451 y(1350,)g(1351,)g(1354,)g -(1355,)g(1356,)g(1357,)g(1359,)g(1360,)2199 3551 y(1362,)g(1363,)g -(1364,)g(1365,)g(1366,)g(1367,)g(1368,)g(1369,)2199 3650 -y(1408,)g(1414,)g(1415,)g(1426,)g(1431,)g(1432,)g(1437,)g(1438,)2199 -3750 y(1439,)g(1441,)g(1442,)g(1443,)g(1444,)g(1445,)g(1446,)g(1448,) -2199 3850 y(1449,)g(1454,)g(1455,)g(1457,)g(1458,)g(1459,)g(1460,)g -(1462,)2199 3949 y(1463,)g(1468,)g(1469,)g(1470,)g(1471,)g(1472,)g -(1473,)g(1476,)2199 4049 y(1477,)31 b(1482,)g(1483,)g(1484,)g(1485,)g -(1510.)2033 4156 y Fi(r)l(e)l(al)p 2166 4156 26 4 v 31 -w(limits)12 b Fm(:)83 b(15)p 2511 4169 84 4 v -1 w(,)42 -b(23)p 2659 4169 V -1 w(.)2033 4264 y Fk(real)p 2193 -4264 29 5 v 40 w(pair)5 b Fm(:)83 b(12)p 2505 4277 84 -4 v -1 w(,)24 b(25,)f(27,)g(29,)g(30,)g(946,)f(954,)h(1128,)f(1129.) -2033 4372 y Fk(real)p 2193 4372 29 5 v 40 w(short)5 b -Fm(:)83 b(12)p 2555 4385 84 4 v -1 w(,)29 b(25,)f(27,)g(633,)f(634,)g -(635,)h(636,)f(945.)2033 4479 y Fk(real)p 2193 4479 29 -5 v 40 w(triple)t Fm(:)83 b(13)p 2566 4492 84 4 v -1 -w(,)34 b(943,)d(957,)h(1131,)f(1132.)2033 4587 y Fk(reals)t -Fm(:)84 b(12,)43 b(277.)2033 4695 y Ff(RECTANGLE)q Fm(:)83 -b(1291)p 2536 4708 167 4 v -2 w(,)33 b(1292)p 2758 4708 -V -2 w(,)g(1311,)e(1312,)g(1324,)g(1325,)2199 4794 y(1331.)2033 -4902 y Fk(Rectangle)t Fm(:)83 b(290,)30 b(970,)g(972,)f(974,)h(997,)g -(1022,)f(1054,)2199 5001 y(1056)p 2199 5014 V -2 w(,)e(1058,)e(1059)p -2631 5014 V -2 w(,)i(1060,)e(1061,)g(1062)p 3279 5014 -V -2 w(,)i(1064,)e(1065,)2199 5101 y(1066,)g(1067)p 2415 -5114 V -2 w(,)i(1069,)e(1071,)g(1072,)g(1073,)g(1074,)g(1075,)2199 -5201 y(1076,)g(1077,)g(1078,)g(1079,)g(1081,)g(1083,)g(1084,)g(1086,) -2199 5300 y(1088,)g(1213,)g(1214,)g(1215,)g(1216,)g(1217,)g(1218,)g -(1219,)2199 5400 y(1220,)g(1223,)g(1224,)g(1225,)g(1226,)g(1291,)g -(1297,)g(1303,)p eop end -%%Page: 499 499 -TeXDict begin 499 498 bop 0 83 a Fn(x)p Fm(1517)139 b -Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(499)166 263 y(1319,)25 -b(1320,)g(1324,)g(1337,)g(1339,)g(1342,)g(1344,)g(1360,)166 -363 y(1362,)g(1374,)g(1375,)g(1379,)g(1382,)g(1385,)g(1388,)g(1391,)166 -462 y(1394,)31 b(1413,)g(1415,)g(1419,)g(1478,)g(1485.)0 -565 y Fi(r)l(e)l(ctangles)11 b Fm(:)83 b(1291)p 468 578 -167 4 v -2 w(,)35 b(1297,)f(1303,)f(1311,)g(1312,)g(1320,)166 -664 y(1324,)38 b(1325,)f(1337,)h(1339,)f(1342,)h(1344,)f(1360,)166 -764 y(1362,)h(1374,)f(1375,)h(1377,)f(1379,)h(1380,)f(1382,)166 -864 y(1383,)h(1385,)f(1386,)h(1388,)f(1389,)h(1391,)f(1392,)166 -963 y(1394,)g(1413,)f(1415,)h(1419.)0 1066 y Fk(Rectangles)t -Fm(:)83 b(1077.)0 1168 y Fi(r)l(e)l(d)13 b Fm(:)83 b(108,)30 -b(112)p 405 1181 125 4 v -1 w(,)h(113)p 584 1181 V -1 -w(,)g(655,)f(1438,)g(1456,)g(1500.)0 1270 y Fi(r)l(e)l(d)p -112 1270 26 4 v 31 w(or)l(ange)11 b Fm(:)83 b(112.)0 -1373 y Fi(r)l(e)l(d)p 112 1373 V 31 w(p)l(art)12 b Fm(:)83 -b(56)p 399 1386 84 4 v -1 w(,)42 b(59,)g(61,)f(64,)g(66,)h(69,)f(71,)h -(74,)f(75,)166 1473 y(76,)h(85,)f(87,)h(97.)0 1575 y -Fi(r)l(ef)p 99 1575 26 4 v 31 w(pt)12 b Fm(:)83 b(945)p -313 1588 125 4 v -1 w(,)28 b(946)p 489 1588 V -2 w(,)g(949,)e(950)p -839 1588 V -1 w(,)h(951)p 1014 1588 V -1 w(,)h(954,)e(960,)g(961)p -1540 1588 V -1 w(,)i(962)p 1716 1588 V -2 w(.)0 1677 -y Fk(Reg)p 168 1677 29 5 v 39 w(Cl)p 303 1677 V 40 w(Plane)p -578 1677 V 40 w(Curv)m(e)5 b Fm(:)84 b(290,)28 b(937,)h(938)p -1333 1690 125 4 v -1 w(,)h(939,)f(944,)166 1777 y(945,)24 -b(946,)f(948,)h(949,)f(950,)h(951,)g(954,)f(961,)h(962,)f(963,)166 -1877 y(964,)c(965,)g(966,)h(967,)f(1022,)g(1098,)f(1115,)h(1162,)g -(1166.)0 1979 y Fk(Reg)p 168 1979 29 5 v 39 w(Cl)p 303 -1979 V 40 w(Plane)p 578 1979 V 40 w(Curv)m(es)5 b Fm(:)83 -b(938,)33 b(949.)0 2082 y Ff(REG_POLYGON)p Fm(:)83 b(1291)p -590 2095 167 4 v -2 w(,)41 b(1292)p 820 2095 V -1 w(,)g(1311,)f(1312,)f -(1324,)166 2181 y(1325,)j(1333.)0 2284 y Fk(Reg)p 168 -2284 29 5 v 39 w(P)m(olygon)5 b Fm(:)83 b(290,)37 b(386,)h(970,)g(972,) -f(974,)h(997,)166 2383 y(1021,)g(1022)p 395 2396 167 -4 v -2 w(,)h(1023,)f(1024,)f(1026,)h(1027)p 1309 2396 -V -2 w(,)h(1029,)166 2483 y(1030)p 166 2496 V -2 w(,)h(1033,)d(1034,)h -(1036,)f(1037,)h(1038,)f(1039,)166 2582 y(1040,)25 b(1041,)g(1054,)g -(1075,)g(1078,)g(1079,)g(1265,)g(1267,)166 2682 y(1268,)g(1269,)g -(1271,)g(1272,)g(1279,)g(1291,)g(1297,)g(1303,)166 2782 -y(1307,)g(1321,)g(1322,)g(1324,)g(1337,)g(1339,)g(1342,)g(1344,)166 -2881 y(1360,)g(1362,)g(1374,)g(1375,)g(1379,)g(1382,)g(1385,)g(1388,) -166 2981 y(1391,)g(1394,)g(1427,)g(1428,)g(1443,)g(1444,)g(1446,)g -(1456,)166 3081 y(1457,)g(1458,)g(1460,)g(1469,)g(1470,)g(1471,)g -(1473,)g(1478,)166 3180 y(1483,)37 b(1484,)f(1485,)h(1486.)0 -3283 y Fk(Reg)p 168 3283 29 5 v 39 w(P)m(olygons)t Fm(:)83 -b(658,)37 b(1279.)0 3385 y Fi(r)l(e)l(g)p 108 3385 26 -4 v 30 w(p)l(olygons)13 b Fm(:)83 b(1291)p 554 3398 167 -4 v -2 w(,)30 b(1297,)e(1303,)g(1311,)h(1312,)f(1322,)166 -3485 y(1324,)d(1325,)g(1337,)g(1339,)g(1342,)g(1344,)g(1360,)g(1362,) -166 3584 y(1374,)g(1375,)g(1377,)g(1379,)g(1380,)g(1382,)g(1383,)g -(1385,)166 3684 y(1386,)g(1388,)g(1389,)g(1391,)g(1392,)g(1394,)g -(1428,)g(1438,)166 3784 y(1439,)g(1440,)g(1455,)g(1456,)g(1469,)g -(1483,)g(1485)p 1462 3797 V -2 w(,)i(1486.)0 3886 y Fi(R)l(e)l(gular)p -277 3886 26 4 v 30 w(Close)l(d)p 539 3886 V 32 w(Plane)p -775 3886 V 32 w(Curve)10 b Fm(:)83 b(937.)0 3988 y Fi(r)l(eset)12 -b Fm(:)83 b(125,)28 b(132)p 464 4001 125 4 v -2 w(,)h(133)p -640 4001 V -1 w(,)g(256,)f(278,)g(303,)g(405,)f(407,)h(545,)166 -4088 y(546,)j(553,)g(561,)g(572,)f(1122,)h(1446,)f(1483.)0 -4190 y Fi(r)l(eset)p 174 4190 26 4 v 30 w(angle)11 b -Fm(:)83 b(571)p 502 4203 125 4 v -1 w(,)41 b(572)p 691 -4203 V -1 w(.)0 4293 y Fi(r)l(eset)p 174 4293 26 4 v -30 w(tr)l(ansform)11 b Fm(:)83 b(224,)33 b(256)p 850 -4306 125 4 v -1 w(,)h(406)p 1032 4306 V -2 w(,)h(407)p -1214 4306 V -2 w(.)0 4395 y Fi(r)l(esize)11 b Fm(:)83 -b(278,)36 b(399,)f(405,)h(657,)f(661,)h(664,)f(669,)h(674,)166 -4495 y(867,)28 b(1027,)g(1030,)g(1037,)f(1039,)h(1295,)g(1297,)f(1362,) -166 4595 y(1411,)37 b(1413,)f(1415,)h(1417.)0 4697 y -Fi(r)l(everse)11 b Fm(:)83 b(908)p 369 4710 V -1 w(,)35 -b(909)p 552 4710 V -1 w(,)h(911,)e(912)p 919 4710 V -2 -w(,)i(913)p 1102 4710 V -1 w(.)0 4799 y Fi(right)p 173 -4799 26 4 v 31 w(shift)13 b Fm(:)83 b(1279)p 472 4812 -167 4 v -2 w(.)0 4902 y Fi(r)l(otate)10 b Fm(:)84 b(149,)25 -b(160)p 500 4915 125 4 v -2 w(,)i(161)p 674 4915 V -1 -w(,)f(164,)f(166)p 1022 4915 V -1 w(,)i(167)p 1197 4915 -V -2 w(,)g(181,)e(200)p 1545 4915 V -1 w(,)h(241)p 1719 -4915 V -1 w(,)166 5001 y(242)p 166 5014 V -1 w(,)f(243)p -339 5014 V -2 w(,)g(360)p 511 5014 V -1 w(,)g(361)p 684 -5014 V -2 w(,)g(379,)f(382,)g(385,)f(387,)h(388,)f(389,)166 -5101 y(392)p 166 5114 V -1 w(,)i(393)p 339 5114 V -2 -w(,)g(394)p 511 5114 V -1 w(,)g(395)p 684 5114 V -2 w(,)g(396)p -856 5114 V -1 w(,)g(561,)f(572,)f(713)p 1374 5114 V -1 -w(,)i(714)p 1547 5114 V -2 w(,)g(716)p 1719 5114 V -1 -w(,)166 5201 y(717)p 166 5214 V -1 w(,)31 b(719)p 345 -5214 V -2 w(,)g(720)p 523 5214 V -1 w(,)g(721)p 702 5214 -V -1 w(,)g(722)p 881 5214 V -2 w(,)g(954,)f(965,)g(1000)p -1417 5214 167 4 v -2 w(,)h(1001)p 1637 5214 V -2 w(,)166 -5300 y(1003)p 166 5313 V -2 w(,)c(1004)p 382 5313 V -2 -w(,)g(1005)p 598 5313 V -2 w(,)g(1006)p 814 5313 V -2 -w(,)g(1031,)e(1062,)g(1105,)g(1122,)166 5400 y(1159,)g(1169,)g(1174,)g -(1191)p 814 5413 V -2 w(,)i(1192)p 1030 5413 V -2 w(,)g(1208)p -1246 5413 V -2 w(,)g(1209)p 1462 5413 V -2 w(,)g(1210)p -1678 5413 V -2 w(,)2199 263 y(1211)p 2199 276 V -2 w(,)g(1223,)e(1224,) -g(1263,)g(1282,)g(1285,)g(1354)p 3495 276 V -2 w(,)i(1355)p -3711 276 V -2 w(,)2199 363 y(1356)p 2199 376 V -2 w(,)g(1357)p -2415 376 V -2 w(,)g(1415,)e(1438,)g(1440,)g(1446,)g(1456,)g(1457,)2199 -462 y(1458,)j(1460,)h(1469,)f(1471,)g(1473,)h(1483,)f(1485.)2033 -564 y Fi(r)l(otate)p 2247 564 26 4 v 31 w(ar)l(ound)13 -b Fm(:)83 b(166,)40 b(167,)g(243,)g(379,)g(392,)g(394,)2199 -663 y(395,)f(396,)g(716,)g(717,)g(719,)g(721,)h(1003,)e(1005,)2199 -763 y(1208,)i(1210,)f(1356.)2033 864 y Fi(r)l(ow)14 b -Fm(:)83 b(134)p 2281 877 125 4 v -2 w(,)41 b(135)p 2469 -877 V -2 w(,)g(145)p 2657 877 V -2 w(,)g(146)p 2845 877 -V -1 w(,)f(182)p 3033 877 V -1 w(,)g(183,)g(184,)f(581)p -3598 877 V -2 w(,)2199 964 y(582)p 2199 977 V -1 w(,)k(584)p -2390 977 V -2 w(,)g(585)p 2580 977 V -1 w(.)2033 1065 -y Fi(r)l(ow)p 2166 1065 26 4 v 31 w(shift)13 b Fm(:)83 -b(1278)p 2465 1078 167 4 v -2 w(,)41 b(1279)p 2695 1078 -V -2 w(.)2033 1166 y Fi(rr)13 b Fm(:)83 b(272)p 2222 -1179 125 4 v -1 w(,)33 b(946)p 2403 1179 V -1 w(,)g(954)p -2584 1179 V -1 w(,)g(955,)g(956,)f(957,)g(958.)2033 1268 -y Fi(R)n(un)p 2189 1268 26 4 v 29 w(State)10 b Fm(:)83 -b(458,)40 b(863.)2033 1369 y Fi(r0)16 b Fm(:)83 b(945,)36 -b(946)p 2417 1382 125 4 v -2 w(,)i(987)p 2602 1382 V --2 w(,)g(988,)e(1216)p 2972 1382 167 4 v -2 w(.)2033 -1470 y Fi(r0)p 2115 1470 26 4 v 31 w(0)16 b Fm(:)83 b(128)p -2305 1483 125 4 v -1 w(,)44 b(129)p 2497 1483 V -2 w(.)2033 -1571 y Fi(r0)p 2115 1571 26 4 v 31 w(1)16 b Fm(:)83 b(128)p -2305 1584 125 4 v -1 w(,)44 b(129)p 2497 1584 V -2 w(.)2033 -1673 y Fi(r0)p 2115 1673 26 4 v 31 w(2)16 b Fm(:)83 b(128)p -2305 1686 125 4 v -1 w(,)44 b(129)p 2497 1686 V -2 w(.)2033 -1774 y Fi(r0)p 2115 1774 26 4 v 31 w(3)16 b Fm(:)83 b(128)p -2305 1787 125 4 v -1 w(,)44 b(129)p 2497 1787 V -2 w(.)2033 -1875 y Fi(r1)16 b Fm(:)83 b(987)p 2232 1888 V -1 w(,)42 -b(988,)e(1216)p 2611 1888 167 4 v -2 w(.)2033 1976 y -Fi(r1)p 2115 1976 26 4 v 31 w(0)16 b Fm(:)83 b(128)p -2305 1989 125 4 v -1 w(,)44 b(129)p 2497 1989 V -2 w(.)2033 -2078 y Fi(r1)p 2115 2078 26 4 v 31 w(1)16 b Fm(:)83 b(128)p -2305 2091 125 4 v -1 w(,)44 b(129)p 2497 2091 V -2 w(.)2033 -2179 y Fi(r1)p 2115 2179 26 4 v 31 w(2)16 b Fm(:)83 b(128)p -2305 2192 125 4 v -1 w(,)44 b(129)p 2497 2192 V -2 w(.)2033 -2280 y Fi(r1)p 2115 2280 26 4 v 31 w(3)16 b Fm(:)83 b(128)p -2305 2293 125 4 v -1 w(,)44 b(129)p 2497 2293 V -2 w(.)2033 -2382 y Fi(r2)16 b Fm(:)83 b(1216)p 2232 2395 167 4 v --2 w(.)2033 2483 y Fi(r2)p 2115 2483 26 4 v 31 w(0)16 -b Fm(:)83 b(128)p 2305 2496 125 4 v -1 w(,)44 b(129)p -2497 2496 V -2 w(.)2033 2584 y Fi(r2)p 2115 2584 26 4 -v 31 w(1)16 b Fm(:)83 b(128)p 2305 2597 125 4 v -1 w(,)44 -b(129)p 2497 2597 V -2 w(.)2033 2685 y Fi(r2)p 2115 2685 -26 4 v 31 w(2)16 b Fm(:)83 b(128)p 2305 2698 125 4 v --1 w(,)44 b(129)p 2497 2698 V -2 w(.)2033 2787 y Fi(r2)p -2115 2787 26 4 v 31 w(3)16 b Fm(:)83 b(128)p 2305 2800 -125 4 v -1 w(,)44 b(129)p 2497 2800 V -2 w(.)2033 2888 -y Fi(r3)p 2115 2888 26 4 v 31 w(0)16 b Fm(:)83 b(128)p -2305 2901 125 4 v -1 w(,)44 b(129)p 2497 2901 V -2 w(.)2033 -2989 y Fi(r3)p 2115 2989 26 4 v 31 w(1)16 b Fm(:)83 b(128)p -2305 3002 125 4 v -1 w(,)44 b(129)p 2497 3002 V -2 w(.)2033 -3090 y Fi(r3)p 2115 3090 26 4 v 31 w(2)16 b Fm(:)83 b(128)p -2305 3103 125 4 v -1 w(,)44 b(129)p 2497 3103 V -2 w(.)2033 -3192 y Fi(r3)p 2115 3192 26 4 v 31 w(3)16 b Fm(:)83 b(128)p -2305 3205 125 4 v -1 w(,)44 b(129)p 2497 3205 V -2 w(.)2033 -3293 y Fe(s)p Fm(:)83 b(80)p 2178 3306 84 4 v -1 w(,)32 -b(81)p 2316 3306 V -1 w(,)f(225)p 2453 3306 125 4 v -1 -w(,)g(226)p 2632 3306 V -1 w(,)g(464)p 2811 3306 V -1 -w(,)g(634)p 2990 3306 V -1 w(,)g(636)p 3169 3306 V -1 -w(,)h(692)p 3349 3306 V -2 w(,)g(693)p 3528 3306 V -2 -w(,)g(704)p 3707 3306 V -2 w(,)2199 3393 y(705)p 2199 -3406 V -1 w(,)j(706)p 2382 3406 V -2 w(,)h(707)p 2565 -3406 V -2 w(,)g(708)p 2748 3406 V -2 w(,)f(709)p 2930 -3406 V -1 w(,)g(758)p 3113 3406 V -1 w(,)g(759)p 3296 -3406 V -1 w(,)g(886)p 3479 3406 V -2 w(,)h(960)p 3662 -3406 V -2 w(,)2199 3492 y(1118)p 2199 3505 167 4 v -2 -w(,)k(1139)p 2428 3505 V -2 w(,)f(1140)p 2656 3505 V --2 w(,)h(1141)p 2885 3505 V -2 w(,)f(1142)p 3113 3505 -V -2 w(,)h(1296)p 3342 3505 V -2 w(,)f(1297)p 3570 3505 -V -2 w(,)2199 3592 y(1299)p 2199 3605 V -2 w(,)h(1302)p -2428 3605 V -2 w(,)f(1303)p 2656 3605 V -2 w(,)h(1305)p -2885 3605 V -2 w(,)f(1311)p 3113 3605 V -2 w(,)h(1312)p -3342 3605 V -2 w(,)f(1313)p 3570 3605 V -2 w(,)2199 3692 -y(1314)p 2199 3705 V -2 w(,)h(1315)p 2428 3705 V -2 w(,)f(1316)p -2656 3705 V -2 w(,)h(1317)p 2885 3705 V -2 w(,)f(1318)p -3113 3705 V -2 w(,)h(1319)p 3342 3705 V -2 w(,)f(1320)p -3570 3705 V -2 w(,)2199 3791 y(1321)p 2199 3804 V -2 -w(,)27 b(1322)p 2415 3804 V -2 w(,)g(1324)p 2631 3804 -V -2 w(,)g(1325)p 2847 3804 V -2 w(,)g(1326)p 3063 3804 -V -2 w(,)g(1327)p 3279 3804 V -2 w(,)g(1328)p 3495 3804 -V -2 w(,)g(1329)p 3711 3804 V -2 w(,)2199 3891 y(1330)p -2199 3904 V -2 w(,)g(1331)p 2415 3904 V -2 w(,)g(1332)p -2631 3904 V -2 w(,)g(1333)p 2847 3904 V -2 w(,)g(1374)p -3063 3904 V -2 w(,)g(1375)p 3279 3904 V -2 w(,)g(1379)p -3495 3904 V -2 w(,)g(1382)p 3711 3904 V -2 w(,)2199 3990 -y(1385)p 2199 4003 V -2 w(,)39 b(1388)p 2427 4003 V -2 -w(,)f(1391)p 2654 4003 V -2 w(,)h(1394)p 2882 4003 V --2 w(.)2033 4092 y Fi(s)p 2072 4092 26 4 v 31 w(e)10 -b Fm(:)83 b(1183)p 2252 4105 167 4 v -2 w(,)44 b(1184.)2033 -4193 y Fi(s)p 2072 4193 26 4 v 31 w(t)11 b Fm(:)83 b(1183)p -2243 4206 167 4 v -2 w(,)44 b(1184.)2033 4294 y Fi(save)p -2190 4294 26 4 v 31 w(angle)12 b Fm(:)83 b(1180)p 2520 -4307 167 4 v -2 w(.)2033 4395 y Fi(save)p 2190 4395 26 -4 v 31 w(z)15 b Fm(:)83 b(401)p 2371 4408 125 4 v -2 -w(.)2033 4497 y Fi(sc)l(ale)11 b Fm(:)83 b(150)p 2319 -4510 V -1 w(,)29 b(151)p 2496 4510 V -1 w(,)g(200)p 2673 -4510 V -2 w(,)h(235)p 2850 4510 V -2 w(,)g(236)p 3027 -4510 V -2 w(,)f(362)p 3203 4510 V -1 w(,)g(363)p 3380 -4510 V -1 w(,)g(723)p 3557 4510 V -1 w(,)g(724)p 3734 -4510 V -2 w(,)2199 4596 y(1007)p 2199 4609 167 4 v -2 -w(,)e(1008)p 2415 4609 V -2 w(,)g(1193)p 2631 4609 V --2 w(,)g(1194)p 2847 4609 V -2 w(,)g(1223,)e(1253,)g(1345)p -3495 4609 V -2 w(,)i(1346)p 3711 4609 V -2 w(.)2033 4698 -y Fi(sc)l(ale)p 2207 4698 26 4 v 31 w(value)11 b Fm(:)83 -b(1223)p 2534 4711 167 4 v -1 w(.)2033 4799 y Fi(se)l(c)l(ond)13 -b Fm(:)83 b(13)p 2385 4812 84 4 v -1 w(,)30 b(30,)g(270)p -2658 4812 125 4 v -2 w(,)g(271,)f(355,)g(603,)f(633,)h(637,)g(946,)2199 -4899 y(951,)j(955,)g(956,)f(957,)h(958,)g(982,)g(985,)f(996,)h(1130,) -2199 4998 y(1131,)38 b(1132,)f(1158,)h(1159,)f(1174,)h(1179,)f(1181,) -2199 5098 y(1183,)g(1216,)f(1223,)h(1263.)2033 5199 y -Fi(se)l(gment)12 b Fm(:)83 b(33,)32 b(963,)g(964)p 2758 -5212 V -1 w(,)i(965)p 2940 5212 V -2 w(,)g(966,)e(967.)2033 -5300 y Fi(set)12 b Fm(:)83 b(65)p 2251 5313 84 4 v -1 -w(,)32 b(66)p 2389 5313 V -1 w(,)g(70)p 2527 5313 V -1 -w(,)g(71)p 2665 5313 V -1 w(,)g(284)p 2803 5313 125 4 -v -1 w(,)g(285)p 2983 5313 V -2 w(,)g(288)p 3162 5313 -V -1 w(,)g(289)p 3342 5313 V -2 w(,)g(296,)f(382,)2199 -5400 y(383,)j(541,)g(561,)g(562)p 2748 5413 V -2 w(,)h(563)p -2930 5413 V -1 w(,)g(567)p 3113 5413 V -1 w(,)g(568)p -3296 5413 V -1 w(,)g(572,)f(665)p 3662 5413 V -2 w(,)p -eop end -%%Page: 500 500 -TeXDict begin 500 499 bop 0 83 a Fm(500)140 b Fl(INDEX)2670 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1517)166 263 y(666)p 166 -276 125 4 v -1 w(,)33 b(670)p 347 276 V -2 w(,)h(671)p -528 276 V -2 w(,)f(675,)f(676,)g(955,)g(956,)f(957,)h(1032)p -1612 276 167 4 v -2 w(,)166 363 y(1033)p 166 376 V -2 -w(,)40 b(1034,)d(1063)p 623 376 V -2 w(,)j(1064)p 852 -376 V -2 w(,)f(1068)p 1080 376 V -2 w(,)h(1069)p 1309 -376 V -2 w(,)f(1106)p 1537 376 V -2 w(,)166 462 y(1107)p -166 475 V -2 w(,)h(1179,)d(1239)p 623 475 V -2 w(,)j(1240)p -852 475 V -2 w(,)f(1263,)f(1265,)f(1269,)166 562 y(1279,)25 -b(1282,)g(1415,)g(1441)p 814 575 V -2 w(,)i(1442)p 1030 -575 V -2 w(,)g(1444,)e(1446,)g(1458,)166 662 y(1469,)37 -b(1471,)f(1473,)h(1485.)0 763 y Fi(set)p 105 763 26 4 -v 30 w(blue)p 277 763 V 31 w(p)l(art)12 b Fm(:)83 b(90)p -564 776 84 4 v -1 w(,)42 b(91)p 712 776 V -1 w(.)0 865 -y Fi(set)p 105 865 26 4 v 30 w(c)l(onne)l(ctors)11 b -Fm(:)83 b(708)p 628 878 125 4 v -1 w(,)37 b(709)p 813 -878 V -2 w(,)h(898.)0 967 y Fi(set)p 105 967 26 4 v 30 -w(cycle)12 b Fm(:)83 b(885,)34 b(886,)f(905)p 788 980 -125 4 v -1 w(,)i(906)p 971 980 V -2 w(,)g(965.)0 1069 -y Fi(set)p 105 1069 26 4 v 30 w(dash)p 295 1069 V 32 -w(p)l(attern)10 b Fm(:)83 b(704)p 694 1082 125 4 v -1 -w(,)40 b(705)p 882 1082 V -1 w(,)g(1377,)e(1380,)g(1383,)166 -1168 y(1386,)i(1389,)f(1392.)0 1270 y Fi(set)p 105 1270 -26 4 v 30 w(dr)l(aw)p 305 1270 V 32 w(c)l(olor)14 b Fm(:)83 -b(695)p 626 1283 125 4 v -2 w(,)36 b(696)p 809 1283 V --1 w(,)f(697)p 992 1283 V -1 w(,)g(698)p 1175 1283 V --1 w(,)h(1377,)d(1380,)166 1370 y(1383,)k(1386,)f(1389,)h(1392.)0 -1471 y Fi(set)p 105 1471 26 4 v 30 w(element)12 b Fm(:)83 -b(122,)31 b(134)p 706 1484 125 4 v -2 w(,)h(135)p 885 -1484 V -2 w(,)g(559,)e(561,)g(572.)0 1573 y Fi(set)p -105 1573 26 4 v 30 w(extr)l(emes)11 b Fm(:)83 b(200)p -561 1586 125 4 v -2 w(,)34 b(451)p 742 1586 V -2 w(,)g(452)p -923 1586 V -1 w(,)f(550,)g(552,)f(841)p 1467 1586 V -2 -w(,)i(842)p 1648 1586 V -1 w(,)166 1673 y(858,)41 b(1361)p -356 1686 167 4 v -2 w(,)h(1362)p 587 1686 V -2 w(.)0 -1775 y Fi(set)p 105 1775 26 4 v 30 w(\014l)t(l)p 228 -1775 V 31 w(c)l(olor)14 b Fm(:)83 b(700)p 548 1788 125 -4 v -1 w(,)40 b(701)p 736 1788 V -1 w(,)g(702)p 924 1788 -V -2 w(,)h(703)p 1112 1788 V -2 w(,)f(1377,)f(1380,)166 -1874 y(1383,)e(1386,)f(1389,)h(1392.)0 1976 y Fi(set)p -105 1976 26 4 v 30 w(\014l)t(l)p 228 1976 V 31 w(dr)l(aw)p -429 1976 V 32 w(value)11 b Fm(:)83 b(692)p 757 1989 125 -4 v -2 w(,)37 b(693)p 941 1989 V -2 w(,)f(1377,)f(1380,)f(1383,)166 -2076 y(1386,)40 b(1389,)f(1392.)0 2177 y Fi(set)p 105 -2177 26 4 v 30 w(gr)l(e)l(en)p 323 2177 V 31 w(p)l(art)12 -b Fm(:)83 b(88)p 610 2190 84 4 v -1 w(,)41 b(89)p 757 -2190 V -1 w(.)0 2279 y Fi(set)p 105 2279 26 4 v 30 w(minimum)p -481 2279 V 31 w(z)14 b Fm(:)83 b(451.)0 2381 y Fi(set)p -105 2381 V 30 w(name)11 b Fm(:)83 b(80)p 442 2394 84 -4 v -1 w(,)43 b(81)p 591 2394 V -1 w(.)0 2483 y Fi(set)p -105 2483 26 4 v 30 w(on)p 224 2483 V 31 w(fr)l(e)l(e)p -383 2483 V 31 w(stor)l(e)10 b Fm(:)83 b(32,)31 b(200)p -836 2496 125 4 v -1 w(,)g(301)p 1015 2496 V -1 w(,)h(690)p -1195 2496 V -2 w(,)g(1306)p 1374 2496 167 4 v -2 w(.)0 -2585 y Fi(set)p 105 2585 26 4 v 30 w(p)l(en)11 b Fm(:)83 -b(706)p 370 2598 125 4 v -1 w(,)32 b(707)p 550 2598 V --1 w(,)h(1377,)d(1380,)h(1383,)g(1386,)g(1389,)166 2684 -y(1392.)0 2786 y Fi(set)p 105 2786 26 4 v 30 w(r)l(e)l(d)p -242 2786 V 31 w(p)l(art)12 b Fm(:)83 b(86)p 529 2799 -84 4 v -1 w(,)42 b(87)p 677 2799 V -1 w(.)0 2888 y Fi(set)p -105 2888 26 4 v 30 w(tr)l(ansform)11 b Fm(:)83 b(244)p -599 2901 125 4 v -1 w(,)40 b(245)p 787 2901 V -2 w(.)0 -2990 y Fi(set)p 105 2990 26 4 v 30 w(use)p 252 2990 V -31 w(name)10 b Fm(:)83 b(82)p 589 3003 84 4 v -1 w(,)41 -b(83)p 736 3003 V -1 w(.)0 3091 y Fi(setf)22 b Fm(:)83 -b(44,)43 b(1507.)0 3193 y Fi(setpr)l(e)l(cision)12 b -Fm(:)83 b(148.)0 3295 y Fi(setw)13 b Fm(:)83 b(148.)0 -3397 y Fk(Shap)s(e)5 b Fm(:)83 b(196,)33 b(199)p 545 -3410 125 4 v -2 w(,)i(200,)e(201,)g(216,)g(225,)g(226,)g(249,)166 -3496 y(264,)24 b(302,)f(342,)h(343,)f(411,)h(415,)g(438,)f(440,)h(442,) -f(443,)166 3596 y(453,)h(454,)f(455,)h(456,)f(457,)h(543,)g(545,)f -(546,)h(547,)f(549,)166 3696 y(550,)h(551,)f(552,)h(654,)f(686,)h(688,) -g(689,)f(776,)h(802,)f(807,)166 3795 y(813,)32 b(821,)g(824,)f(839,)h -(840,)g(852,)g(854,)f(856,)h(1291,)166 3895 y(1304,)25 -b(1305,)g(1307,)g(1311,)g(1312,)g(1324,)g(1343,)g(1359,)166 -3994 y(1360,)g(1374,)g(1375,)g(1377,)g(1379,)g(1380,)g(1382,)g(1383,) -166 4094 y(1385,)g(1386,)g(1388,)g(1389,)g(1391,)g(1392,)g(1394,)g -(1406.)0 4196 y Fi(shap)l(e)p 199 4196 26 4 v 32 w(typ)l(e)10 -b Fm(:)84 b(1311)p 487 4209 167 4 v -2 w(,)34 b(1312)p -710 4209 V -2 w(,)h(1324)p 934 4209 V -2 w(,)f(1325)p -1157 4209 V -2 w(.)0 4298 y Fk(Shap)s(es)t Fm(:)83 b(196,)32 -b(207,)f(213,)g(252,)g(262,)g(453,)g(457,)g(545,)166 -4397 y(547,)k(549,)f(551,)h(591,)f(615,)h(686.)0 4499 -y Fi(shap)l(es)12 b Fm(:)83 b(216)p 346 4512 125 4 v --1 w(,)35 b(221,)f(226,)g(249,)g(409)p 1078 4512 V -1 -w(,)h(442)p 1261 4512 V -1 w(,)g(457)p 1444 4512 V -1 -w(,)g(543,)166 4599 y(545,)f(546,)f(548,)h(549,)f(1304,)g(1374.)0 -4700 y Fi(she)l(ar)14 b Fm(:)83 b(152)p 307 4713 V -1 -w(,)35 b(153)p 490 4713 V -2 w(,)h(200)p 673 4713 V -2 -w(,)g(364)p 856 4713 V -2 w(,)f(365)p 1038 4713 V -1 -w(,)g(725)p 1221 4713 V -1 w(,)g(726)p 1404 4713 V -1 -w(,)g(1009)p 1587 4713 167 4 v -2 w(,)166 4800 y(1010)p -166 4813 V -2 w(,)e(1195)p 388 4813 V -2 w(,)g(1196)p -610 4813 V -2 w(,)g(1253,)e(1347)p 1054 4813 V -2 w(,)i(1348)p -1276 4813 V -2 w(.)0 4902 y Fi(shift)13 b Fm(:)83 b(155)p -273 4915 125 4 v -1 w(,)30 b(156)p 451 4915 V -2 w(,)g(157)p -628 4915 V -1 w(,)g(181,)e(200)p 983 4915 V -1 w(,)h(238)p -1160 4915 V -1 w(,)h(239)p 1338 4915 V -2 w(,)g(240)p -1515 4915 V -1 w(,)g(368)p 1693 4915 V -2 w(,)166 5001 -y(369)p 166 5014 V -1 w(,)25 b(370)p 339 5014 V -2 w(,)g(371)p -511 5014 V -1 w(,)g(372)p 684 5014 V -2 w(,)g(373)p 856 -5014 V -1 w(,)g(374,)f(381,)f(389,)h(478,)f(480,)166 -5101 y(482,)h(484,)f(561,)h(572,)f(728)p 856 5114 V -1 -w(,)i(729)p 1029 5114 V -1 w(,)g(730)p 1202 5114 V -2 -w(,)g(731)p 1374 5114 V -1 w(,)g(732,)e(946,)166 5201 -y(954,)30 b(965,)h(1012)p 525 5214 167 4 v -2 w(,)h(1013)p -746 5214 V -2 w(,)f(1014)p 966 5214 V -2 w(,)h(1015)p -1187 5214 V -2 w(,)g(1031,)e(1062,)166 5300 y(1105,)25 -b(1122,)g(1159,)g(1169,)g(1174,)g(1175,)g(1183,)g(1185,)166 -5400 y(1188,)g(1198)p 382 5413 V -2 w(,)i(1199)p 598 -5413 V -2 w(,)g(1200)p 814 5413 V -2 w(,)g(1201)p 1030 -5413 V -2 w(,)g(1214,)e(1223,)g(1224,)2199 263 y(1263,)g(1265,)g(1269,) -g(1279,)g(1282,)g(1285,)g(1350)p 3495 276 V -2 w(,)i(1351)p -3711 276 V -2 w(,)2199 363 y(1352)p 2199 376 V -2 w(,)g(1353)p -2415 376 V -2 w(,)g(1415,)e(1440,)g(1444,)g(1446,)g(1456,)g(1458,)2199 -462 y(1469,)31 b(1471,)g(1473,)g(1483,)g(1485,)g(1486.)2033 -564 y Fi(shift)p 2192 564 26 4 v 31 w(times)12 b Fm(:)83 -b(158)p 2529 577 125 4 v -2 w(,)27 b(159)p 2703 577 V --1 w(,)g(374,)f(375)p 3053 577 V -1 w(,)h(376)p 3228 -577 V -2 w(,)h(377)p 3403 577 V -2 w(,)g(378)p 3578 577 -V -2 w(,)f(732,)2199 664 y(733)p 2199 677 V -1 w(,)36 -b(734)p 2383 677 V -2 w(,)g(735)p 2566 677 V -1 w(,)g(736)p -2750 677 V -1 w(,)g(1017)p 2934 677 167 4 v -2 w(,)g(1018)p -3159 677 V -2 w(,)g(1019)p 3384 677 V -2 w(,)h(1020)p -3610 677 V -2 w(,)2199 763 y(1203)p 2199 776 V -2 w(,)i(1204)p -2427 776 V -2 w(,)f(1205)p 2654 776 V -2 w(,)h(1206)p -2882 776 V -2 w(.)2033 865 y Fi(shift)p 2192 865 26 4 -v 31 w(x)14 b Fm(:)83 b(920,)33 b(921)p 2559 878 125 -4 v -2 w(,)h(922)p 2740 878 V -1 w(,)f(925,)g(926)p 3103 -878 V -2 w(,)h(927)p 3284 878 V -1 w(.)2033 967 y Fi(shift)p -2192 967 26 4 v 31 w(y)12 b Fm(:)83 b(920,)33 b(921)p -2558 980 125 4 v -2 w(,)h(922)p 2739 980 V -1 w(,)g(925,)e(926)p -3102 980 V -2 w(,)i(927)p 3283 980 V -1 w(.)2033 1069 -y Fi(shift)p 2192 1069 26 4 v 31 w(z)15 b Fm(:)83 b(920,)32 -b(921)p 2554 1082 125 4 v -1 w(,)i(922)p 2736 1082 V --2 w(,)g(925,)f(926)p 3099 1082 V -2 w(,)h(927)p 3280 -1082 V -1 w(.)2033 1170 y Fi(show)14 b Fm(:)83 b(92)p -2326 1183 84 4 v -1 w(,)33 b(93)p 2465 1183 V -1 w(,)g(147)p -2604 1183 125 4 v -1 w(,)g(148)p 2785 1183 V -1 w(,)g(159,)e(182,)h -(200)p 3327 1183 V -2 w(,)i(248)p 3508 1183 V -2 w(,)f(249)p -3688 1183 V -1 w(,)2199 1270 y(251,)24 b(346,)f(350,)h(381,)f(382,)h -(385,)g(387,)f(388,)h(389,)f(431)p 3752 1283 V -1 w(,)2199 -1370 y(432)p 2199 1383 V -1 w(,)i(434,)e(503,)h(530,)f(541,)h(549,)g -(561,)f(573)p 3407 1383 V -1 w(,)i(574)p 3580 1383 V --2 w(,)g(603,)2199 1469 y(605,)34 b(606,)g(608)p 2565 -1482 V -2 w(,)i(609)p 2748 1482 V -2 w(,)f(644,)f(645)p -3113 1482 V -1 w(,)h(646)p 3296 1482 V -1 w(,)g(685,)f(866)p -3662 1482 V -2 w(,)2199 1569 y(867)p 2199 1582 V -1 w(,)h(869,)f(897,)g -(901,)f(911,)h(946,)g(951,)g(952,)g(954,)2199 1669 y(955,)e(958,)g -(960,)f(982,)h(983,)g(985,)g(987,)f(993,)h(1122,)2199 -1768 y(1171,)25 b(1173,)g(1174,)g(1177,)g(1179,)g(1180,)g(1183,)g -(1223,)2199 1868 y(1224,)34 b(1263,)g(1336)p 2649 1881 -167 4 v -2 w(,)h(1337)p 2873 1881 V -2 w(,)h(1439.)2033 -1970 y Fi(show)p 2211 1970 26 4 v 32 w(c)l(olors)12 b -Fm(:)83 b(868)p 2564 1983 125 4 v -2 w(,)41 b(869)p 2752 -1983 V -1 w(.)2033 2071 y Fi(show)p 2211 2071 26 4 v -32 w(tr)l(ansform)10 b Fm(:)83 b(250)p 2706 2084 125 -4 v -1 w(,)34 b(251)p 2888 2084 V -1 w(,)g(433)p 3070 -2084 V -1 w(,)g(434)p 3252 2084 V -2 w(.)2033 2173 y -Fi(show)p 2211 2173 26 4 v 32 w(tr)l(ansforms)11 b Fm(:)83 -b(573)p 2741 2186 125 4 v -2 w(,)39 b(574)p 2927 2186 -V -2 w(.)2033 2275 y Ff(SHRT_MAX)q Fm(:)83 b(265.)2033 -2377 y Fi(side)p 2177 2377 26 4 v 32 w(length)11 b Fm(:)83 -b(1485)p 2535 2390 167 4 v -2 w(.)2033 2479 y Fi(sides)12 -b Fm(:)83 b(1022)p 2324 2492 V -2 w(,)37 b(1024,)e(1030,)g(1031.)2033 -2580 y Fi(silent)12 b Fm(:)83 b(47)p 2344 2593 84 4 v --1 w(,)30 b(48)p 2480 2593 V -1 w(,)g(49)p 2616 2593 -V -1 w(,)g(50)p 2752 2593 V -1 w(,)f(507)p 2887 2593 -125 4 v -1 w(,)h(508)p 3065 2593 V -2 w(,)g(644)p 3242 -2593 V -1 w(,)f(950,)g(992.)2033 2682 y Ff(SILENT_GLOBAL)o -Fm(:)83 b(17)p 2710 2695 84 4 v -1 w(,)39 b(18)p 2855 -2695 V -1 w(,)g(47,)e(48,)h(49,)g(50,)g(1503,)2199 2782 -y(1506,)k(1511.)2033 2883 y Ff(SILENT_INDEX)o Fm(:)83 -b(1503)p 2666 2896 167 4 v -1 w(.)2033 2985 y Fi(sin)11 -b Fm(:)83 b(162,)38 b(163,)g(164,)g(1105.)2033 3087 y +2411 y(364,)h(365,)f(368,)h(369,)f(375,)h(376,)g(379,)f(380,)h(389,)f +(392,)2199 2511 y(393,)h(394,)f(395,)h(396,)f(398,)h(399,)g(401,)f +(402,)h(403,)f(405,)2199 2610 y(431,)h(432,)f(442,)h(443,)f(444,)h +(445,)g(446,)f(447,)h(448,)f(449,)2199 2710 y(450,)h(465,)f(472,)h +(485,)f(486,)h(488,)g(489,)f(490,)h(491,)f(494,)2199 +2810 y(495,)h(496,)f(497,)h(498,)f(499,)h(502,)g(503,)f(504,)h(505,)f +(508,)2199 2909 y(511,)h(512,)f(517,)h(522,)f(531,)h(532,)g(533,)f +(534,)h(535,)f(536,)2199 3009 y(538,)h(548,)f(550,)h(551,)f(554,)h +(556,)g(559,)f(560,)h(561,)f(562,)2199 3109 y(563,)h(565,)f(566,)h +(567,)f(568,)h(571,)g(572,)f(578,)h(581,)f(582,)2199 +3208 y(584,)h(585,)f(606,)h(617,)f(633,)h(634,)g(636,)f(641,)h(644,)f +(654,)2199 3308 y(713,)h(714,)f(716,)h(717,)f(719,)h(720,)g(721,)f +(722,)h(723,)f(724,)2199 3407 y(725,)h(726,)f(728,)h(729,)f(733,)h +(734,)g(742,)f(743,)h(839,)f(840,)2199 3507 y(843,)h(845,)f(846,)h +(847,)f(848,)h(849,)g(850,)f(851,)h(866,)f(867,)2199 +3607 y(879,)h(880,)f(896,)h(904,)f(906,)h(924,)g(925,)f(929,)h(930,)f +(946,)2199 3706 y(947,)h(948,)f(949,)h(950,)f(951,)h(957,)g(960,)f +(967,)h(968,)f(969,)2199 3806 y(970,)30 b(996,)h(1003,)f(1004,)f(1006,) +h(1007,)g(1008,)g(1009,)2199 3906 y(1010,)25 b(1011,)g(1012,)g(1013,)g +(1015,)g(1016,)g(1020,)g(1021,)2199 4005 y(1025,)g(1032,)g(1033,)g +(1035,)g(1036,)g(1045,)g(1059,)g(1064,)2199 4105 y(1065,)g(1066,)g +(1067,)g(1090,)g(1091,)g(1092,)g(1093,)g(1103,)2199 4204 +y(1109,)g(1110,)g(1111,)g(1112,)g(1127,)g(1133,)g(1134,)g(1136,)2199 +4304 y(1137,)g(1148,)g(1149,)g(1150,)g(1151,)g(1154,)g(1155,)g(1156,) +2199 4404 y(1157,)g(1159,)g(1160,)g(1161,)g(1162,)g(1163,)g(1164,)g +(1168,)2199 4503 y(1177,)g(1181,)g(1183,)g(1185,)g(1193,)g(1196,)g +(1197,)g(1198,)2199 4603 y(1199,)g(1200,)g(1201,)g(1203,)g(1204,)g +(1208,)g(1209,)g(1213,)2199 4703 y(1214,)g(1215,)g(1216,)g(1228,)g +(1229,)g(1237,)g(1242,)g(1243,)2199 4802 y(1244,)g(1245,)g(1256,)g +(1258,)g(1259,)g(1260,)g(1261,)g(1267,)2199 4902 y(1268,)g(1270,)g +(1283,)g(1284,)g(1286,)g(1287,)g(1289,)g(1290,)2199 5001 +y(1296,)g(1341,)g(1342,)g(1350,)g(1351,)g(1352,)g(1353,)g(1355,)2199 +5101 y(1356,)g(1359,)g(1360,)g(1361,)g(1362,)g(1364,)g(1365,)g(1367,) +2199 5201 y(1368,)g(1369,)g(1370,)g(1371,)g(1372,)g(1373,)g(1374,)g +(1413,)2199 5300 y(1419,)g(1420,)g(1431,)g(1436,)g(1437,)g(1442,)g +(1443,)g(1444,)2199 5400 y(1446,)g(1447,)g(1448,)g(1449,)g(1450,)g +(1451,)g(1453,)g(1454,)p eop end +%%Page: 504 504 +TeXDict begin 504 503 bop 0 83 a Fm(504)140 b Fl(INDEX)2670 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1525)166 263 y(1459,)25 +b(1460,)g(1462,)g(1463,)g(1464,)g(1465,)g(1467,)g(1468,)166 +363 y(1473,)g(1474,)g(1475,)g(1476,)g(1477,)g(1478,)g(1481,)g(1482,)166 +462 y(1487,)31 b(1488,)g(1489,)g(1490,)g(1516,)g(1518.)0 +565 y Fi(r)l(e)l(al)p 133 565 26 4 v 31 w(limits)12 b +Fm(:)83 b(15,)39 b(16)p 624 578 84 4 v -1 w(,)i(23)p +771 578 V -1 w(.)0 667 y Fk(real)p 160 667 29 5 v 40 +w(pair)5 b Fm(:)83 b(12)p 472 680 84 4 v -1 w(,)24 b(25,)f(27,)g(29,)g +(30,)g(949,)f(957,)h(1133,)f(1134.)0 770 y Fk(real)p +160 770 29 5 v 40 w(short)5 b Fm(:)83 b(12)p 522 783 +84 4 v -1 w(,)29 b(25,)f(27,)g(633,)f(634,)g(635,)h(636,)f(948.)0 +873 y Fk(real)p 160 873 29 5 v 40 w(triple)t Fm(:)83 +b(13)p 533 886 84 4 v -1 w(,)34 b(946,)d(960,)h(1136,)f(1137.)0 +975 y Fk(reals)t Fm(:)84 b(12,)43 b(277.)0 1078 y Ff(RECTANGLE)q +Fm(:)83 b(1296)p 503 1091 167 4 v -2 w(,)33 b(1297)p +725 1091 V -2 w(,)g(1316,)e(1317,)g(1329,)g(1330,)166 +1177 y(1336.)0 1280 y Fk(Rectangle)t Fm(:)83 b(290,)28 +b(973,)f(975,)g(977,)h(1000,)f(1025,)g(1057,)166 1380 +y(1059)p 166 1393 V -2 w(,)g(1061,)e(1062)p 598 1393 +V -2 w(,)i(1063,)e(1064,)g(1065)p 1246 1393 V -2 w(,)i(1067,)e(1068,) +166 1479 y(1069,)g(1070)p 382 1492 V -2 w(,)i(1072,)e(1074,)g(1075,)g +(1076,)g(1077,)g(1078,)166 1579 y(1079,)g(1080,)g(1081,)g(1082,)g +(1083,)g(1084,)g(1086,)g(1088,)166 1678 y(1089,)g(1091,)g(1093,)g +(1218,)g(1219,)g(1220,)g(1221,)g(1222,)166 1778 y(1223,)g(1224,)g +(1225,)g(1228,)g(1229,)g(1230,)g(1231,)g(1296,)166 1878 +y(1302,)g(1308,)g(1324,)g(1325,)g(1329,)g(1342,)g(1344,)g(1347,)166 +1977 y(1349,)g(1365,)g(1367,)g(1379,)g(1380,)g(1384,)g(1387,)g(1390,) +166 2077 y(1393,)g(1396,)g(1399,)g(1418,)g(1420,)g(1424,)g(1483,)g +(1490.)0 2180 y Fi(r)l(e)l(ctangles)11 b Fm(:)83 b(1296)p +468 2193 V -2 w(,)35 b(1302,)f(1308,)f(1316,)g(1317,)g(1325,)166 +2279 y(1329,)38 b(1330,)f(1342,)h(1344,)f(1347,)h(1349,)f(1365,)166 +2379 y(1367,)h(1379,)f(1380,)h(1382,)f(1384,)h(1385,)f(1387,)166 +2478 y(1388,)h(1390,)f(1391,)h(1393,)f(1394,)h(1396,)f(1397,)166 +2578 y(1399,)g(1418,)f(1420,)h(1424.)0 2681 y Fk(Rectangles)t +Fm(:)83 b(1080.)0 2783 y Fi(r)l(e)l(d)13 b Fm(:)83 b(108,)30 +b(112)p 405 2796 125 4 v -1 w(,)h(113)p 584 2796 V -1 +w(,)g(655,)f(1443,)g(1461,)g(1505.)0 2886 y Fi(r)l(e)l(d)p +112 2886 26 4 v 31 w(or)l(ange)11 b Fm(:)83 b(112.)0 +2988 y Fi(r)l(e)l(d)p 112 2988 V 31 w(p)l(art)12 b Fm(:)83 +b(56)p 399 3001 84 4 v -1 w(,)42 b(59,)g(61,)f(64,)g(66,)h(69,)f(71,)h +(74,)f(75,)166 3088 y(76,)h(85,)f(87,)h(97.)0 3191 y +Fi(r)l(ef)p 99 3191 26 4 v 31 w(pt)12 b Fm(:)83 b(948)p +313 3204 125 4 v -1 w(,)28 b(949)p 489 3204 V -2 w(,)g(952,)e(953)p +839 3204 V -1 w(,)h(954)p 1014 3204 V -1 w(,)h(957,)e(963,)g(964)p +1540 3204 V -1 w(,)i(965)p 1716 3204 V -2 w(.)0 3293 +y Fk(Reg)p 168 3293 29 5 v 39 w(Cl)p 303 3293 V 40 w(Plane)p +578 3293 V 40 w(Curv)m(e)5 b Fm(:)84 b(290,)28 b(940,)h(941)p +1333 3306 125 4 v -1 w(,)h(942,)f(947,)166 3393 y(948,)24 +b(949,)f(951,)h(952,)f(953,)h(954,)g(957,)f(964,)h(965,)f(966,)166 +3492 y(967,)c(968,)g(969,)h(970,)f(1025,)g(1103,)f(1120,)h(1167,)g +(1171.)0 3595 y Fk(Reg)p 168 3595 29 5 v 39 w(Cl)p 303 +3595 V 40 w(Plane)p 578 3595 V 40 w(Curv)m(es)5 b Fm(:)83 +b(941,)33 b(952.)0 3698 y Ff(REG_POLYGON)p Fm(:)83 b(1296)p +590 3711 167 4 v -2 w(,)41 b(1297)p 820 3711 V -1 w(,)g(1316,)f(1317,)f +(1329,)166 3797 y(1330,)j(1338.)0 3900 y Fk(Reg)p 168 +3900 29 5 v 39 w(P)m(olygon)5 b Fm(:)83 b(290,)35 b(386,)g(973,)g(975,) +h(977,)f(1000,)166 3999 y(1024,)j(1025)p 395 4012 167 +4 v -2 w(,)h(1026,)f(1027,)f(1029,)h(1030)p 1309 4012 +V -2 w(,)h(1032,)166 4099 y(1033)p 166 4112 V -2 w(,)h(1036,)d(1037,)h +(1039,)f(1040,)h(1041,)f(1042,)166 4199 y(1043,)25 b(1044,)g(1057,)g +(1078,)g(1081,)g(1084,)g(1270,)g(1272,)166 4298 y(1273,)g(1274,)g +(1276,)g(1277,)g(1284,)g(1296,)g(1302,)g(1308,)166 4398 +y(1312,)g(1326,)g(1327,)g(1329,)g(1342,)g(1344,)g(1347,)g(1349,)166 +4497 y(1365,)g(1367,)g(1379,)g(1380,)g(1384,)g(1387,)g(1390,)g(1393,) +166 4597 y(1396,)g(1399,)g(1432,)g(1433,)g(1448,)g(1449,)g(1451,)g +(1461,)166 4697 y(1462,)g(1463,)g(1465,)g(1474,)g(1475,)g(1476,)g +(1478,)g(1483,)166 4796 y(1488,)37 b(1489,)f(1490,)h(1491.)0 +4899 y Fk(Reg)p 168 4899 29 5 v 39 w(P)m(olygons)t Fm(:)83 +b(658,)37 b(1284.)0 5001 y Fi(r)l(e)l(g)p 108 5001 26 +4 v 30 w(p)l(olygons)13 b Fm(:)83 b(1296)p 554 5014 167 +4 v -2 w(,)30 b(1302,)e(1308,)g(1316,)h(1317,)f(1327,)166 +5101 y(1329,)d(1330,)g(1342,)g(1344,)g(1347,)g(1349,)g(1365,)g(1367,) +166 5201 y(1379,)g(1380,)g(1382,)g(1384,)g(1385,)g(1387,)g(1388,)g +(1390,)166 5300 y(1391,)g(1393,)g(1394,)g(1396,)g(1397,)g(1399,)g +(1433,)g(1443,)166 5400 y(1444,)g(1445,)g(1460,)g(1461,)g(1474,)g +(1488,)g(1490)p 1462 5413 V -2 w(,)i(1491.)2033 263 y +Fi(R)l(e)l(gular)p 2310 263 26 4 v 30 w(Close)l(d)p 2572 +263 V 32 w(Plane)p 2808 263 V 32 w(Curve)10 b Fm(:)83 +b(940.)2033 364 y Fi(r)l(eset)12 b Fm(:)83 b(125,)28 +b(132)p 2497 377 125 4 v -2 w(,)h(133)p 2673 377 V -1 +w(,)g(256,)f(278,)g(303,)g(405,)f(407,)h(545,)2199 464 +y(546,)j(553,)g(561,)g(572,)f(1127,)h(1451,)f(1488.)2033 +565 y Fi(r)l(eset)p 2207 565 26 4 v 30 w(angle)11 b Fm(:)84 +b(571)p 2536 578 125 4 v -2 w(,)41 b(572)p 2724 578 V +-1 w(.)2033 667 y Fi(r)l(eset)p 2207 667 26 4 v 30 w(tr)l(ansform)11 +b Fm(:)83 b(224,)33 b(256)p 2883 680 125 4 v -1 w(,)h(406)p +3065 680 V -2 w(,)h(407)p 3247 680 V -2 w(.)2033 768 +y Fi(r)l(esize)11 b Fm(:)83 b(278,)36 b(399,)f(405,)h(657,)f(661,)h +(664,)f(669,)h(674,)2199 868 y(867,)28 b(1030,)g(1033,)g(1040,)f(1042,) +h(1300,)g(1302,)f(1367,)2199 967 y(1416,)37 b(1418,)f(1420,)h(1422.) +2033 1069 y Fi(r)l(everse)11 b Fm(:)83 b(911)p 2402 1082 +V -1 w(,)35 b(912)p 2585 1082 V -1 w(,)h(914,)e(915)p +2952 1082 V -1 w(,)h(916)p 3135 1082 V -1 w(.)2033 1170 +y Fi(right)p 2206 1170 26 4 v 31 w(shift)13 b Fm(:)83 +b(1284)p 2505 1183 167 4 v -2 w(.)2033 1272 y Fi(r)l(otate)10 +b Fm(:)84 b(149,)25 b(160)p 2533 1285 125 4 v -2 w(,)i(161)p +2707 1285 V -1 w(,)f(164,)f(166)p 3055 1285 V -1 w(,)i(167)p +3230 1285 V -2 w(,)g(181,)e(200)p 3578 1285 V -1 w(,)h(241)p +3752 1285 V -1 w(,)2199 1371 y(242)p 2199 1384 V -1 w(,)f(243)p +2372 1384 V -2 w(,)g(360)p 2544 1384 V -1 w(,)g(361)p +2717 1384 V -2 w(,)g(379,)f(382,)g(385,)f(387,)h(388,)f(389,)2199 +1471 y(392)p 2199 1484 V -1 w(,)i(393)p 2372 1484 V -2 +w(,)g(394)p 2544 1484 V -1 w(,)g(395)p 2717 1484 V -2 +w(,)g(396)p 2889 1484 V -1 w(,)g(561,)f(572,)f(713)p +3407 1484 V -1 w(,)i(714)p 3580 1484 V -2 w(,)g(716)p +3752 1484 V -1 w(,)2199 1570 y(717)p 2199 1583 V -1 w(,)31 +b(719)p 2378 1583 V -2 w(,)g(720)p 2556 1583 V -1 w(,)g(721)p +2735 1583 V -1 w(,)g(722)p 2914 1583 V -2 w(,)g(957,)f(968,)g(1003)p +3450 1583 167 4 v -2 w(,)h(1004)p 3670 1583 V -2 w(,)2199 +1670 y(1006)p 2199 1683 V -2 w(,)c(1007)p 2415 1683 V +-2 w(,)g(1008)p 2631 1683 V -2 w(,)g(1009)p 2847 1683 +V -2 w(,)g(1034,)e(1065,)g(1110,)g(1127,)2199 1770 y(1164,)g(1174,)g +(1179,)g(1196)p 2847 1783 V -2 w(,)i(1197)p 3063 1783 +V -2 w(,)g(1213)p 3279 1783 V -2 w(,)g(1214)p 3495 1783 +V -2 w(,)g(1215)p 3711 1783 V -2 w(,)2199 1869 y(1216)p +2199 1882 V -2 w(,)g(1228,)e(1229,)g(1268,)g(1287,)g(1290,)g(1359)p +3495 1882 V -2 w(,)i(1360)p 3711 1882 V -2 w(,)2199 1969 +y(1361)p 2199 1982 V -2 w(,)g(1362)p 2415 1982 V -2 w(,)g(1420,)e +(1443,)g(1445,)g(1451,)g(1461,)g(1462,)2199 2069 y(1463,)j(1465,)h +(1474,)f(1476,)g(1478,)h(1488,)f(1490.)2033 2170 y Fi(r)l(otate)p +2247 2170 26 4 v 31 w(ar)l(ound)13 b Fm(:)83 b(166,)40 +b(167,)g(243,)g(379,)g(392,)g(394,)2199 2270 y(395,)f(396,)g(716,)g +(717,)g(719,)g(721,)h(1006,)e(1008,)2199 2369 y(1213,)i(1215,)f(1361.) +2033 2471 y Fi(r)l(ow)14 b Fm(:)83 b(134)p 2281 2484 +125 4 v -2 w(,)41 b(135)p 2469 2484 V -2 w(,)g(145)p +2657 2484 V -2 w(,)g(146)p 2845 2484 V -1 w(,)f(182)p +3033 2484 V -1 w(,)g(183,)g(184,)f(581)p 3598 2484 V +-2 w(,)2199 2570 y(582)p 2199 2583 V -1 w(,)k(584)p 2390 +2583 V -2 w(,)g(585)p 2580 2583 V -1 w(.)2033 2672 y +Fi(r)l(ow)p 2166 2672 26 4 v 31 w(shift)13 b Fm(:)83 +b(1283)p 2465 2685 167 4 v -2 w(,)41 b(1284)p 2695 2685 +V -2 w(.)2033 2773 y Fi(rr)13 b Fm(:)83 b(272)p 2222 +2786 125 4 v -1 w(,)33 b(949)p 2403 2786 V -1 w(,)g(957)p +2584 2786 V -1 w(,)g(958,)g(959,)f(960,)g(961.)2033 2874 +y Fi(R)n(un)p 2189 2874 26 4 v 29 w(State)10 b Fm(:)83 +b(458,)40 b(863.)2033 2976 y Fi(r0)16 b Fm(:)83 b(948,)36 +b(949)p 2417 2989 125 4 v -2 w(,)i(990)p 2602 2989 V +-2 w(,)g(991,)e(1221)p 2972 2989 167 4 v -2 w(.)2033 +3077 y Fi(r0)p 2115 3077 26 4 v 31 w(0)16 b Fm(:)83 b(128)p +2305 3090 125 4 v -1 w(,)44 b(129)p 2497 3090 V -2 w(.)2033 +3178 y Fi(r0)p 2115 3178 26 4 v 31 w(1)16 b Fm(:)83 b(128)p +2305 3191 125 4 v -1 w(,)44 b(129)p 2497 3191 V -2 w(.)2033 +3280 y Fi(r0)p 2115 3280 26 4 v 31 w(2)16 b Fm(:)83 b(128)p +2305 3293 125 4 v -1 w(,)44 b(129)p 2497 3293 V -2 w(.)2033 +3381 y Fi(r0)p 2115 3381 26 4 v 31 w(3)16 b Fm(:)83 b(128)p +2305 3394 125 4 v -1 w(,)44 b(129)p 2497 3394 V -2 w(.)2033 +3483 y Fi(r1)16 b Fm(:)83 b(990)p 2232 3496 V -1 w(,)42 +b(991,)e(1221)p 2611 3496 167 4 v -2 w(.)2033 3584 y +Fi(r1)p 2115 3584 26 4 v 31 w(0)16 b Fm(:)83 b(128)p +2305 3597 125 4 v -1 w(,)44 b(129)p 2497 3597 V -2 w(.)2033 +3685 y Fi(r1)p 2115 3685 26 4 v 31 w(1)16 b Fm(:)83 b(128)p +2305 3698 125 4 v -1 w(,)44 b(129)p 2497 3698 V -2 w(.)2033 +3787 y Fi(r1)p 2115 3787 26 4 v 31 w(2)16 b Fm(:)83 b(128)p +2305 3800 125 4 v -1 w(,)44 b(129)p 2497 3800 V -2 w(.)2033 +3888 y Fi(r1)p 2115 3888 26 4 v 31 w(3)16 b Fm(:)83 b(128)p +2305 3901 125 4 v -1 w(,)44 b(129)p 2497 3901 V -2 w(.)2033 +3989 y Fi(r2)16 b Fm(:)83 b(1221)p 2232 4002 167 4 v +-2 w(.)2033 4091 y Fi(r2)p 2115 4091 26 4 v 31 w(0)16 +b Fm(:)83 b(128)p 2305 4104 125 4 v -1 w(,)44 b(129)p +2497 4104 V -2 w(.)2033 4192 y Fi(r2)p 2115 4192 26 4 +v 31 w(1)16 b Fm(:)83 b(128)p 2305 4205 125 4 v -1 w(,)44 +b(129)p 2497 4205 V -2 w(.)2033 4294 y Fi(r2)p 2115 4294 +26 4 v 31 w(2)16 b Fm(:)83 b(128)p 2305 4307 125 4 v +-1 w(,)44 b(129)p 2497 4307 V -2 w(.)2033 4395 y Fi(r2)p +2115 4395 26 4 v 31 w(3)16 b Fm(:)83 b(128)p 2305 4408 +125 4 v -1 w(,)44 b(129)p 2497 4408 V -2 w(.)2033 4496 +y Fi(r3)p 2115 4496 26 4 v 31 w(0)16 b Fm(:)83 b(128)p +2305 4509 125 4 v -1 w(,)44 b(129)p 2497 4509 V -2 w(.)2033 +4598 y Fi(r3)p 2115 4598 26 4 v 31 w(1)16 b Fm(:)83 b(128)p +2305 4611 125 4 v -1 w(,)44 b(129)p 2497 4611 V -2 w(.)2033 +4699 y Fi(r3)p 2115 4699 26 4 v 31 w(2)16 b Fm(:)83 b(128)p +2305 4712 125 4 v -1 w(,)44 b(129)p 2497 4712 V -2 w(.)2033 +4800 y Fi(r3)p 2115 4800 26 4 v 31 w(3)16 b Fm(:)83 b(128)p +2305 4813 125 4 v -1 w(,)44 b(129)p 2497 4813 V -2 w(.)2033 +4902 y Fe(s)p Fm(:)83 b(80)p 2178 4915 84 4 v -1 w(,)32 +b(81)p 2316 4915 V -1 w(,)f(225)p 2453 4915 125 4 v -1 +w(,)g(226)p 2632 4915 V -1 w(,)g(464)p 2811 4915 V -1 +w(,)g(634)p 2990 4915 V -1 w(,)g(636)p 3169 4915 V -1 +w(,)h(692)p 3349 4915 V -2 w(,)g(693)p 3528 4915 V -2 +w(,)g(704)p 3707 4915 V -2 w(,)2199 5001 y(705)p 2199 +5014 V -1 w(,)j(706)p 2382 5014 V -2 w(,)h(707)p 2565 +5014 V -2 w(,)g(708)p 2748 5014 V -2 w(,)f(709)p 2930 +5014 V -1 w(,)g(758)p 3113 5014 V -1 w(,)g(759)p 3296 +5014 V -1 w(,)g(886)p 3479 5014 V -2 w(,)h(963)p 3662 +5014 V -2 w(,)2199 5101 y(1123)p 2199 5114 167 4 v -2 +w(,)k(1144)p 2428 5114 V -2 w(,)f(1145)p 2656 5114 V +-2 w(,)h(1146)p 2885 5114 V -2 w(,)f(1147)p 3113 5114 +V -2 w(,)h(1301)p 3342 5114 V -2 w(,)f(1302)p 3570 5114 +V -2 w(,)2199 5201 y(1304)p 2199 5214 V -2 w(,)h(1307)p +2428 5214 V -2 w(,)f(1308)p 2656 5214 V -2 w(,)h(1310)p +2885 5214 V -2 w(,)f(1316)p 3113 5214 V -2 w(,)h(1317)p +3342 5214 V -2 w(,)f(1318)p 3570 5214 V -2 w(,)2199 5300 +y(1319)p 2199 5313 V -2 w(,)h(1320)p 2428 5313 V -2 w(,)f(1321)p +2656 5313 V -2 w(,)h(1322)p 2885 5313 V -2 w(,)f(1323)p +3113 5313 V -2 w(,)h(1324)p 3342 5313 V -2 w(,)f(1325)p +3570 5313 V -2 w(,)2199 5400 y(1326)p 2199 5413 V -2 +w(,)27 b(1327)p 2415 5413 V -2 w(,)g(1329)p 2631 5413 +V -2 w(,)g(1330)p 2847 5413 V -2 w(,)g(1331)p 3063 5413 +V -2 w(,)g(1332)p 3279 5413 V -2 w(,)g(1333)p 3495 5413 +V -2 w(,)g(1334)p 3711 5413 V -2 w(,)p eop end +%%Page: 505 505 +TeXDict begin 505 504 bop 0 83 a Fn(x)p Fm(1525)139 b +Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(505)166 263 y(1335)p +166 276 167 4 v -2 w(,)27 b(1336)p 382 276 V -2 w(,)g(1337)p +598 276 V -2 w(,)g(1338)p 814 276 V -2 w(,)g(1379)p 1030 +276 V -2 w(,)g(1380)p 1246 276 V -2 w(,)g(1384)p 1462 +276 V -2 w(,)g(1387)p 1678 276 V -2 w(,)166 363 y(1390)p +166 376 V -2 w(,)39 b(1393)p 394 376 V -2 w(,)f(1396)p +621 376 V -2 w(,)h(1399)p 849 376 V -2 w(.)0 464 y Fi(s)p +39 464 26 4 v 30 w(e)11 b Fm(:)83 b(1188)p 219 477 167 +4 v -2 w(,)44 b(1189.)0 566 y Fi(s)p 39 566 26 4 v 30 +w(t)12 b Fm(:)83 b(1188)p 210 579 167 4 v -2 w(,)44 b(1189.)0 +667 y Fi(save)p 157 667 26 4 v 31 w(angle)11 b Fm(:)84 +b(1185)p 487 680 167 4 v -2 w(.)0 769 y Fi(save)p 157 +769 26 4 v 31 w(z)15 b Fm(:)83 b(401)p 338 782 125 4 +v -2 w(.)0 870 y Fi(sc)l(ale)11 b Fm(:)83 b(150)p 286 +883 V -1 w(,)29 b(151)p 463 883 V -1 w(,)g(200)p 640 +883 V -2 w(,)h(235)p 817 883 V -2 w(,)g(236)p 994 883 +V -2 w(,)f(362)p 1170 883 V -1 w(,)g(363)p 1347 883 V +-1 w(,)g(723)p 1524 883 V -1 w(,)g(724)p 1701 883 V -2 +w(,)166 970 y(1010)p 166 983 167 4 v -2 w(,)e(1011)p +382 983 V -2 w(,)g(1198)p 598 983 V -2 w(,)g(1199)p 814 +983 V -2 w(,)g(1228,)e(1258,)g(1350)p 1462 983 V -2 w(,)i(1351)p +1678 983 V -2 w(.)0 1071 y Fi(sc)l(ale)p 174 1071 26 +4 v 31 w(value)11 b Fm(:)83 b(1228)p 501 1084 167 4 v +-2 w(.)0 1173 y Fi(se)l(c)l(ond)13 b Fm(:)83 b(13)p 352 +1186 84 4 v -1 w(,)30 b(30,)g(270)p 625 1186 125 4 v +-2 w(,)g(271,)f(355,)g(603,)f(633,)h(637,)g(949,)166 +1272 y(954,)j(958,)g(959,)f(960,)h(961,)g(985,)g(988,)f(999,)h(1135,) +166 1372 y(1136,)38 b(1137,)f(1163,)h(1164,)f(1179,)h(1184,)f(1186,)166 +1472 y(1188,)g(1221,)f(1228,)h(1268.)0 1573 y Fi(se)l(gment)12 +b Fm(:)83 b(33,)32 b(966,)g(967)p 725 1586 V -1 w(,)i(968)p +907 1586 V -2 w(,)g(969,)e(970.)0 1675 y Fi(set)12 b +Fm(:)83 b(65)p 218 1688 84 4 v -1 w(,)32 b(66)p 356 1688 +V -1 w(,)g(70)p 494 1688 V -1 w(,)g(71)p 632 1688 V -1 +w(,)g(284)p 770 1688 125 4 v -1 w(,)g(285)p 950 1688 +V -2 w(,)g(288)p 1129 1688 V -1 w(,)g(289)p 1309 1688 +V -2 w(,)g(296,)f(382,)166 1774 y(383,)j(541,)g(561,)g(562)p +715 1787 V -2 w(,)h(563)p 897 1787 V -1 w(,)g(567)p 1080 +1787 V -1 w(,)g(568)p 1263 1787 V -1 w(,)g(572,)f(665)p +1629 1787 V -2 w(,)166 1874 y(666)p 166 1887 V -1 w(,)f(670)p +347 1887 V -2 w(,)h(671)p 528 1887 V -2 w(,)f(675,)f(676,)g(958,)g +(959,)f(960,)h(1035)p 1612 1887 167 4 v -2 w(,)166 1973 +y(1036)p 166 1986 V -2 w(,)40 b(1037,)d(1066)p 623 1986 +V -2 w(,)j(1067)p 852 1986 V -2 w(,)f(1071)p 1080 1986 +V -2 w(,)h(1072)p 1309 1986 V -2 w(,)f(1111)p 1537 1986 +V -2 w(,)166 2073 y(1112)p 166 2086 V -2 w(,)h(1184,)d(1244)p +623 2086 V -2 w(,)j(1245)p 852 2086 V -2 w(,)f(1268,)f(1270,)f(1274,) +166 2173 y(1284,)25 b(1287,)g(1420,)g(1446)p 814 2186 +V -2 w(,)i(1447)p 1030 2186 V -2 w(,)g(1449,)e(1451,)g(1463,)166 +2272 y(1474,)37 b(1476,)f(1478,)h(1490.)0 2374 y Fi(set)p +105 2374 26 4 v 30 w(blue)p 277 2374 V 31 w(p)l(art)12 +b Fm(:)83 b(90)p 564 2387 84 4 v -1 w(,)42 b(91)p 712 +2387 V -1 w(.)0 2475 y Fi(set)p 105 2475 26 4 v 30 w(c)l(onne)l(ctors) +11 b Fm(:)83 b(708)p 628 2488 125 4 v -1 w(,)37 b(709)p +813 2488 V -2 w(,)h(901.)0 2577 y Fi(set)p 105 2577 26 +4 v 30 w(cycle)12 b Fm(:)83 b(885,)34 b(886,)f(908)p +788 2590 125 4 v -1 w(,)i(909)p 971 2590 V -2 w(,)g(968.)0 +2678 y Fi(set)p 105 2678 26 4 v 30 w(dash)p 295 2678 +V 32 w(p)l(attern)10 b Fm(:)83 b(704)p 694 2691 125 4 +v -1 w(,)40 b(705)p 882 2691 V -1 w(,)g(1382,)e(1385,)g(1388,)166 +2778 y(1391,)i(1394,)f(1397.)0 2879 y Fi(set)p 105 2879 +26 4 v 30 w(dr)l(aw)p 305 2879 V 32 w(c)l(olor)14 b Fm(:)83 +b(695)p 626 2892 125 4 v -2 w(,)36 b(696)p 809 2892 V +-1 w(,)f(697)p 992 2892 V -1 w(,)g(698)p 1175 2892 V +-1 w(,)h(1382,)d(1385,)166 2979 y(1388,)k(1391,)f(1394,)h(1397.)0 +3081 y Fi(set)p 105 3081 26 4 v 30 w(element)12 b Fm(:)83 +b(122,)31 b(134)p 706 3094 125 4 v -2 w(,)h(135)p 885 +3094 V -2 w(,)g(559,)e(561,)g(572.)0 3182 y Fi(set)p +105 3182 26 4 v 30 w(extr)l(emes)11 b Fm(:)83 b(200)p +561 3195 125 4 v -2 w(,)34 b(451)p 742 3195 V -2 w(,)g(452)p +923 3195 V -1 w(,)f(550,)g(552,)f(841)p 1467 3195 V -2 +w(,)i(842)p 1648 3195 V -1 w(,)166 3282 y(858,)41 b(1366)p +356 3295 167 4 v -2 w(,)h(1367)p 587 3295 V -2 w(.)0 +3383 y Fi(set)p 105 3383 26 4 v 30 w(\014l)t(l)p 228 +3383 V 31 w(c)l(olor)14 b Fm(:)83 b(700)p 548 3396 125 +4 v -1 w(,)40 b(701)p 736 3396 V -1 w(,)g(702)p 924 3396 +V -2 w(,)h(703)p 1112 3396 V -2 w(,)f(1382,)f(1385,)166 +3483 y(1388,)e(1391,)f(1394,)h(1397.)0 3584 y Fi(set)p +105 3584 26 4 v 30 w(\014l)t(l)p 228 3584 V 31 w(dr)l(aw)p +429 3584 V 32 w(value)11 b Fm(:)83 b(692)p 757 3597 125 +4 v -2 w(,)37 b(693)p 941 3597 V -2 w(,)f(1382,)f(1385,)f(1388,)166 +3684 y(1391,)40 b(1394,)f(1397.)0 3785 y Fi(set)p 105 +3785 26 4 v 30 w(gr)l(e)l(en)p 323 3785 V 31 w(p)l(art)12 +b Fm(:)83 b(88)p 610 3798 84 4 v -1 w(,)41 b(89)p 757 +3798 V -1 w(.)0 3887 y Fi(set)p 105 3887 26 4 v 30 w(minimum)p +481 3887 V 31 w(z)14 b Fm(:)83 b(451.)0 3988 y Fi(set)p +105 3988 V 30 w(name)11 b Fm(:)83 b(80)p 442 4001 84 +4 v -1 w(,)43 b(81)p 591 4001 V -1 w(.)0 4090 y Fi(set)p +105 4090 26 4 v 30 w(on)p 224 4090 V 31 w(fr)l(e)l(e)p +383 4090 V 31 w(stor)l(e)10 b Fm(:)83 b(32,)31 b(200)p +836 4103 125 4 v -1 w(,)g(301)p 1015 4103 V -1 w(,)h(690)p +1195 4103 V -2 w(,)g(1311)p 1374 4103 167 4 v -2 w(.)0 +4191 y Fi(set)p 105 4191 26 4 v 30 w(p)l(en)11 b Fm(:)83 +b(706)p 370 4204 125 4 v -1 w(,)32 b(707)p 550 4204 V +-1 w(,)h(1382,)d(1385,)h(1388,)g(1391,)g(1394,)166 4291 +y(1397.)0 4393 y Fi(set)p 105 4393 26 4 v 30 w(r)l(e)l(d)p +242 4393 V 31 w(p)l(art)12 b Fm(:)83 b(86)p 529 4406 +84 4 v -1 w(,)42 b(87)p 677 4406 V -1 w(.)0 4494 y Fi(set)p +105 4494 26 4 v 30 w(tr)l(ansform)11 b Fm(:)83 b(244)p +599 4507 125 4 v -1 w(,)40 b(245)p 787 4507 V -2 w(.)0 +4596 y Fi(set)p 105 4596 26 4 v 30 w(use)p 252 4596 V +31 w(name)10 b Fm(:)83 b(82)p 589 4609 84 4 v -1 w(,)41 +b(83)p 736 4609 V -1 w(.)0 4697 y Fi(setf)22 b Fm(:)83 +b(44,)43 b(1512.)0 4799 y Fi(setpr)l(e)l(cision)12 b +Fm(:)83 b(148.)0 4900 y Fi(setw)13 b Fm(:)83 b(148.)0 +5001 y Fk(Shap)s(e)5 b Fm(:)83 b(196,)33 b(199)p 545 +5014 125 4 v -2 w(,)i(200,)e(201,)g(216,)g(225,)g(226,)g(249,)166 +5101 y(264,)24 b(302,)f(342,)h(343,)f(411,)h(415,)g(438,)f(440,)h(442,) +f(443,)166 5201 y(453,)h(454,)f(455,)h(456,)f(457,)h(543,)g(545,)f +(546,)h(547,)f(549,)166 5300 y(550,)h(551,)f(552,)h(654,)f(686,)h(688,) +g(689,)f(776,)h(802,)f(807,)166 5400 y(813,)32 b(821,)g(824,)f(839,)h +(840,)g(852,)g(854,)f(856,)h(1296,)2199 263 y(1309,)25 +b(1310,)g(1312,)g(1316,)g(1317,)g(1329,)g(1348,)g(1364,)2199 +363 y(1365,)g(1379,)g(1380,)g(1382,)g(1384,)g(1385,)g(1387,)g(1388,) +2199 462 y(1390,)g(1391,)g(1393,)g(1394,)g(1396,)g(1397,)g(1399,)g +(1411.)2033 564 y Fi(shap)l(e)p 2232 564 26 4 v 32 w(typ)l(e)11 +b Fm(:)83 b(1316)p 2520 577 167 4 v -2 w(,)34 b(1317)p +2743 577 V -2 w(,)h(1329)p 2967 577 V -2 w(,)f(1330)p +3190 577 V -2 w(.)2033 667 y Fk(Shap)s(es)t Fm(:)83 b(196,)32 +b(207,)f(213,)g(252,)g(262,)g(453,)g(457,)g(545,)2199 +766 y(547,)k(549,)f(551,)h(591,)f(615,)h(686.)2033 868 +y Fi(shap)l(es)12 b Fm(:)83 b(216)p 2379 881 125 4 v +-1 w(,)35 b(221,)f(226,)g(249,)g(409)p 3111 881 V -1 +w(,)h(442)p 3294 881 V -1 w(,)g(457)p 3477 881 V -1 w(,)g(543,)2199 +968 y(545,)f(546,)f(548,)h(549,)f(1309,)g(1379.)2033 +1070 y Fi(she)l(ar)14 b Fm(:)83 b(152)p 2340 1083 V -1 +w(,)35 b(153)p 2523 1083 V -2 w(,)h(200)p 2706 1083 V +-2 w(,)g(364)p 2889 1083 V -2 w(,)f(365)p 3071 1083 V +-1 w(,)g(725)p 3254 1083 V -1 w(,)g(726)p 3437 1083 V +-1 w(,)g(1012)p 3620 1083 167 4 v -2 w(,)2199 1170 y(1013)p +2199 1183 V -2 w(,)e(1200)p 2421 1183 V -2 w(,)g(1201)p +2643 1183 V -2 w(,)g(1258,)e(1352)p 3087 1183 V -2 w(,)i(1353)p +3309 1183 V -2 w(.)2033 1272 y Fi(shift)13 b Fm(:)83 +b(155)p 2306 1285 125 4 v -1 w(,)30 b(156)p 2484 1285 +V -2 w(,)g(157)p 2661 1285 V -1 w(,)g(181,)e(200)p 3016 +1285 V -1 w(,)h(238)p 3193 1285 V -1 w(,)h(239)p 3371 +1285 V -2 w(,)g(240)p 3548 1285 V -1 w(,)g(368)p 3726 +1285 V -2 w(,)2199 1372 y(369)p 2199 1385 V -1 w(,)25 +b(370)p 2372 1385 V -2 w(,)g(371)p 2544 1385 V -1 w(,)g(372)p +2717 1385 V -2 w(,)g(373)p 2889 1385 V -1 w(,)g(374,)f(381,)f(389,)h +(478,)f(480,)2199 1471 y(482,)h(484,)f(561,)h(572,)f(728)p +2889 1484 V -1 w(,)i(729)p 3062 1484 V -1 w(,)g(730)p +3235 1484 V -2 w(,)g(731)p 3407 1484 V -1 w(,)g(732,)e(949,)2199 +1571 y(957,)30 b(968,)h(1015)p 2558 1584 167 4 v -2 w(,)h(1016)p +2779 1584 V -2 w(,)f(1017)p 2999 1584 V -1 w(,)g(1018)p +3220 1584 V -2 w(,)h(1034,)e(1065,)2199 1671 y(1110,)25 +b(1127,)g(1164,)g(1174,)g(1179,)g(1180,)g(1188,)g(1190,)2199 +1770 y(1193,)g(1203)p 2415 1783 V -2 w(,)i(1204)p 2631 +1783 V -2 w(,)g(1205)p 2847 1783 V -2 w(,)g(1206)p 3063 +1783 V -2 w(,)g(1219,)e(1228,)g(1229,)2199 1870 y(1268,)g(1270,)g +(1274,)g(1284,)g(1287,)g(1290,)g(1355)p 3495 1883 V -2 +w(,)i(1356)p 3711 1883 V -2 w(,)2199 1969 y(1357)p 2199 +1982 V -2 w(,)g(1358)p 2415 1982 V -2 w(,)g(1420,)e(1445,)g(1449,)g +(1451,)g(1461,)g(1463,)2199 2069 y(1474,)31 b(1476,)g(1478,)g(1488,)g +(1490,)g(1491.)2033 2171 y Fi(shift)p 2192 2171 26 4 +v 31 w(times)12 b Fm(:)83 b(158)p 2529 2184 125 4 v -2 +w(,)27 b(159)p 2703 2184 V -1 w(,)g(374,)f(375)p 3053 +2184 V -1 w(,)h(376)p 3228 2184 V -2 w(,)h(377)p 3403 +2184 V -2 w(,)g(378)p 3578 2184 V -2 w(,)f(732,)2199 +2271 y(733)p 2199 2284 V -1 w(,)36 b(734)p 2383 2284 +V -2 w(,)g(735)p 2566 2284 V -1 w(,)g(736)p 2750 2284 +V -1 w(,)g(1020)p 2934 2284 167 4 v -2 w(,)g(1021)p 3159 +2284 V -2 w(,)g(1022)p 3384 2284 V -2 w(,)h(1023)p 3610 +2284 V -2 w(,)2199 2370 y(1208)p 2199 2383 V -2 w(,)i(1209)p +2427 2383 V -2 w(,)f(1210)p 2654 2383 V -2 w(,)h(1211)p +2882 2383 V -2 w(.)2033 2473 y Fi(shift)p 2192 2473 26 +4 v 31 w(x)14 b Fm(:)83 b(923,)33 b(924)p 2559 2486 125 +4 v -2 w(,)h(925)p 2740 2486 V -1 w(,)f(928,)g(929)p +3103 2486 V -2 w(,)h(930)p 3284 2486 V -1 w(.)2033 2575 +y Fi(shift)p 2192 2575 26 4 v 31 w(y)12 b Fm(:)83 b(923,)33 +b(924)p 2558 2588 125 4 v -2 w(,)h(925)p 2739 2588 V +-1 w(,)g(928,)e(929)p 3102 2588 V -2 w(,)i(930)p 3283 +2588 V -1 w(.)2033 2677 y Fi(shift)p 2192 2677 26 4 v +31 w(z)15 b Fm(:)83 b(923,)32 b(924)p 2554 2690 125 4 +v -1 w(,)i(925)p 2736 2690 V -2 w(,)g(928,)f(929)p 3099 +2690 V -2 w(,)h(930)p 3280 2690 V -1 w(.)2033 2779 y +Fi(show)14 b Fm(:)83 b(92)p 2326 2792 84 4 v -1 w(,)33 +b(93)p 2465 2792 V -1 w(,)g(147)p 2604 2792 125 4 v -1 +w(,)g(148)p 2785 2792 V -1 w(,)g(159,)e(182,)h(200)p +3327 2792 V -2 w(,)i(248)p 3508 2792 V -2 w(,)f(249)p +3688 2792 V -1 w(,)2199 2879 y(251,)24 b(346,)f(350,)h(381,)f(382,)h +(385,)g(387,)f(388,)h(389,)f(431)p 3752 2892 V -1 w(,)2199 +2978 y(432)p 2199 2991 V -1 w(,)i(434,)e(503,)h(530,)f(541,)h(549,)g +(561,)f(573)p 3407 2991 V -1 w(,)i(574)p 3580 2991 V +-2 w(,)g(603,)2199 3078 y(605,)34 b(606,)g(608)p 2565 +3091 V -2 w(,)i(609)p 2748 3091 V -2 w(,)f(644,)f(645)p +3113 3091 V -1 w(,)h(646)p 3296 3091 V -1 w(,)g(685,)f(866)p +3662 3091 V -2 w(,)2199 3178 y(867)p 2199 3191 V -1 w(,)h(869,)f(900,)g +(904,)f(914,)h(949,)g(954,)g(955,)g(957,)2199 3277 y(958,)e(961,)g +(963,)f(985,)h(986,)g(988,)g(990,)f(996,)h(1127,)2199 +3377 y(1176,)25 b(1178,)g(1179,)g(1182,)g(1184,)g(1185,)g(1188,)g +(1228,)2199 3477 y(1229,)34 b(1268,)g(1341)p 2649 3490 +167 4 v -2 w(,)h(1342)p 2873 3490 V -2 w(,)h(1444.)2033 +3579 y Fi(show)p 2211 3579 26 4 v 32 w(c)l(olors)12 b +Fm(:)83 b(868)p 2564 3592 125 4 v -2 w(,)41 b(869)p 2752 +3592 V -1 w(.)2033 3681 y Fi(show)p 2211 3681 26 4 v +32 w(tr)l(ansform)10 b Fm(:)83 b(250)p 2706 3694 125 +4 v -1 w(,)34 b(251)p 2888 3694 V -1 w(,)g(433)p 3070 +3694 V -1 w(,)g(434)p 3252 3694 V -2 w(.)2033 3783 y +Fi(show)p 2211 3783 26 4 v 32 w(tr)l(ansforms)11 b Fm(:)83 +b(573)p 2741 3796 125 4 v -2 w(,)39 b(574)p 2927 3796 +V -2 w(.)2033 3885 y Ff(SHRT_MAX)q Fm(:)83 b(265.)2033 +3987 y Fi(side)p 2177 3987 26 4 v 32 w(length)11 b Fm(:)83 +b(1490)p 2535 4000 167 4 v -2 w(.)2033 4090 y Fi(sides)12 +b Fm(:)83 b(1025)p 2324 4103 V -2 w(,)37 b(1027,)e(1033,)g(1034.)2033 +4192 y Fi(silent)12 b Fm(:)83 b(47)p 2344 4205 84 4 v +-1 w(,)30 b(48)p 2480 4205 V -1 w(,)g(49)p 2616 4205 +V -1 w(,)g(50)p 2752 4205 V -1 w(,)f(507)p 2887 4205 +125 4 v -1 w(,)h(508)p 3065 4205 V -2 w(,)g(644)p 3242 +4205 V -1 w(,)f(953,)g(995.)2033 4294 y Ff(SILENT_GLOBAL)o +Fm(:)83 b(17)p 2710 4307 84 4 v -1 w(,)39 b(18)p 2855 +4307 V -1 w(,)g(47,)e(48,)h(49,)g(50,)g(1508,)2199 4394 +y(1511,)k(1519.)2033 4496 y Ff(SILENT_INDEX)o Fm(:)83 +b(1508)p 2666 4509 167 4 v -1 w(.)2033 4598 y Fi(sin)11 +b Fm(:)83 b(162,)38 b(163,)g(164,)g(1110.)2033 4700 y Fi(size)11 b Fm(:)83 b(43,)32 b(249,)g(546,)g(548,)g(549,)g(552,)f -(656,)h(657,)g(659,)2199 3187 y(764,)24 b(765,)f(770,)h(776,)f(802,)h -(807,)g(813,)f(821,)h(824,)f(830,)2199 3286 y(840,)h(842,)f(858,)h -(859,)f(860,)h(862,)g(866,)f(867,)h(878)p 3580 3299 125 -4 v -2 w(,)h(884,)2199 3386 y(885,)f(886,)f(888,)h(890,)f(891,)h(894,)g -(896,)f(910,)h(976,)f(978,)2199 3486 y(987,)28 b(1265,)g(1269,)g(1282,) -f(1303,)h(1312,)g(1314,)f(1316,)2199 3585 y(1318,)e(1320,)g(1322,)g -(1324,)g(1325,)g(1337,)g(1428,)g(1471.)2033 3687 y Fi(Slop)l(e)11 -b Fm(:)83 b(954)p 2336 3700 V -1 w(,)33 b(955,)f(956,)g(957,)g(1131)p -3060 3700 167 4 v -2 w(,)h(1132)p 3282 3700 V -2 w(.)2033 -3789 y Fi(slop)l(e)11 b Fm(:)84 b(345)p 2324 3802 125 -4 v -2 w(,)35 b(346)p 2506 3802 V -2 w(,)g(347,)e(879)p -2870 3802 V -2 w(,)i(880)p 3052 3802 V -2 w(,)g(954.)2033 -3891 y Fi(slop)l(e)p 2211 3891 26 4 v 32 w(p)p 2285 3891 -V 31 w(x)p 2355 3891 V 30 w(y)12 b Fm(:)83 b(533)p 2538 -3904 125 4 v -2 w(,)36 b(535,)f(536,)g(537.)2033 3992 -y Fi(slop)l(e)p 2211 3992 26 4 v 32 w(p)p 2285 3992 V -31 w(x)p 2355 3992 V 30 w(z)14 b Fm(:)83 b(533)p 2534 -4005 125 4 v -1 w(,)36 b(538,)f(539,)g(540.)2033 4094 -y Fi(slop)l(e)p 2211 4094 26 4 v 32 w(p)p 2285 4094 V -31 w(z)p 2350 4094 V 30 w(y)12 b Fm(:)83 b(533)p 2533 -4107 125 4 v -1 w(,)41 b(536.)2033 4196 y Fi(slop)l(e)p -2211 4196 26 4 v 32 w(q)p 2281 4196 V 30 w(x)p 2350 4196 -V 30 w(y)12 b Fm(:)83 b(534)p 2533 4209 125 4 v -1 w(,)36 -b(535,)f(536,)g(537.)2033 4298 y Fi(slop)l(e)p 2211 4298 -26 4 v 32 w(q)p 2281 4298 V 30 w(x)p 2350 4298 V 30 w(z)15 -b Fm(:)83 b(534)p 2530 4311 125 4 v -2 w(,)39 b(538,)f(539.)2033 -4399 y Fi(slop)l(e)p 2211 4399 26 4 v 32 w(q)p 2281 4399 -V 30 w(z)p 2345 4399 V 31 w(y)12 b Fm(:)83 b(534)p 2529 -4412 125 4 v -2 w(,)42 b(536.)2033 4501 y Fk(Solid)t -Fm(:)83 b(409,)36 b(549,)h(656,)f(1291)p 2907 4514 167 -4 v -2 w(,)i(1292,)e(1294,)g(1295)p 3588 4514 V -2 w(,)2199 -4601 y(1296,)25 b(1297)p 2415 4614 V -2 w(,)i(1298,)e(1299,)g(1300)p -3063 4614 V -2 w(,)i(1301)p 3279 4614 V -2 w(,)g(1302,)e(1303,)2199 -4700 y(1304,)g(1305,)g(1309,)g(1311,)g(1312,)g(1314,)g(1316,)g(1318,) -2199 4800 y(1320,)g(1322,)g(1324,)g(1325,)g(1327,)g(1329,)g(1331,)g -(1333,)2199 4900 y(1335,)g(1337,)g(1338,)g(1339,)g(1342,)g(1344,)g -(1346,)g(1348,)2199 4999 y(1351,)g(1353,)g(1355,)g(1357,)g(1360,)g -(1362,)g(1365,)g(1367,)2199 5099 y(1369,)g(1371,)g(1373,)g(1374,)g -(1375,)g(1379,)g(1382,)g(1385,)2199 5199 y(1388,)g(1391,)g(1393,)g -(1394,)g(1400,)g(1421,)g(1435,)g(1438,)2199 5298 y(1452,)31 -b(1455,)g(1466,)g(1469,)g(1480,)g(1483.)2033 5400 y Fk(Solid)p -2245 5400 29 5 v 39 w(F)-8 b(aced)6 b Fm(:)83 b(1400)p -2629 5413 167 4 v -2 w(,)27 b(1408,)f(1426,)f(1435,)g(1438,)h(1452,)p -eop end -%%Page: 501 501 -TeXDict begin 501 500 bop 0 83 a Fn(x)p Fm(1517)139 b -Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(501)166 263 y(1455,)34 -b(1466,)g(1469,)f(1480,)h(1483.)0 364 y Fk(Solids)s Fm(:)83 -b(549,)36 b(996,)g(1291,)f(1294.)0 466 y Fi(solve)11 -b Fm(:)84 b(944)p 291 479 125 4 v -2 w(,)31 b(946,)e(955,)h(956,)f -(1128)p 1004 479 167 4 v -2 w(,)i(1129)p 1224 479 V -2 -w(,)f(1162.)0 567 y Fi(solve)p 178 567 26 4 v 32 w(quadr)l(atic)10 -b Fm(:)83 b(29)p 652 580 84 4 v -1 w(,)38 b(30)p 796 -580 V -1 w(,)f(957.)0 669 y Fi(sort)12 b Fm(:)83 b(552,)42 -b(1375.)0 770 y Fi(sort)p 144 770 26 4 v 31 w(value)11 -b Fm(:)83 b(253)p 471 783 125 4 v -2 w(,)30 b(254)p 648 -783 V -1 w(,)g(453,)f(547)p 1004 783 V -2 w(,)h(548)p -1181 783 V -1 w(,)g(552,)f(554)p 1537 783 V -2 w(.)0 -871 y Fk(Sorting)6 b Fm(:)83 b(213)p 417 884 V -2 w(,)31 -b(214)p 595 884 V -1 w(,)f(253,)g(254,)f(453,)g(547,)h(548)p -1487 884 V -2 w(.)0 973 y Fi(Spher)l(e)11 b Fm(:)83 b(1291.)0 -1074 y Fi(spir)l(al)14 b Fm(:)83 b(1282)p 315 1087 167 -4 v -2 w(,)43 b(1285)p 547 1087 V -2 w(.)0 1175 y Fi(spir)l(al)p -200 1175 26 4 v 32 w(c)l(ounter)12 b Fm(:)83 b(1282)p -614 1188 167 4 v -1 w(,)38 b(1285)p 842 1188 V -2 w(.)0 -1277 y Fi(sqrt)12 b Fm(:)83 b(25,)24 b(26,)h(30,)f(503,)g(1105,)g -(1130,)f(1178,)g(1188,)h(1263.)0 1378 y Fi(ss)p 73 1378 -26 4 v 30 w(c)l(opy)13 b Fm(:)83 b(1179)p 375 1391 167 -4 v -2 w(.)0 1480 y Fi(ss)p 73 1480 26 4 v 30 w(e)11 -b Fm(:)83 b(1179)p 253 1493 167 4 v -2 w(.)0 1581 y Fi(ssides)12 -b Fm(:)83 b(1029)p 325 1594 V -2 w(,)34 b(1030)p 548 -1594 V -2 w(,)g(1032)p 771 1594 V -2 w(,)f(1033)p 993 -1594 V -2 w(,)h(1034.)0 1682 y Fi(ssin)11 b Fm(:)83 b(161)p -257 1695 125 4 v -2 w(,)40 b(162,)e(163,)g(164.)0 1784 -y Fi(start)12 b Fm(:)83 b(881)p 285 1797 V -2 w(,)35 -b(882)p 467 1797 V -2 w(,)g(883,)e(884,)g(885,)g(886.)0 -1885 y Fi(start)p 172 1885 26 4 v 30 w(pt)12 b Fm(:)83 -b(1285)p 385 1898 167 4 v -2 w(.)0 1986 y Fk(std)5 b -Fm(:)83 b(9)p 239 1999 42 4 v -1 w(,)46 b(911.)0 2088 -y Fi(stderr)13 b Fm(:)83 b(503,)34 b(920,)f(1187,)g(1223,)f(1224.)0 -2189 y Fi(stdout)12 b Fm(:)83 b(47,)38 b(49,)h(503,)f(866.)0 -2291 y Fi(step)10 b Fm(:)83 b(1281)p 258 2304 167 4 v --2 w(,)43 b(1282)p 490 2304 V -2 w(.)0 2392 y Fi(stop)10 -b Fm(:)83 b(248)p 262 2405 125 4 v -2 w(,)40 b(249)p -449 2405 V -2 w(,)g(868)p 636 2405 V -2 w(,)g(869)p 823 -2405 V -2 w(.)0 2493 y Fi(str)13 b Fm(:)83 b(463,)40 -b(464,)h(1337.)0 2595 y Fi(str)l(e)l(am)10 b Fm(:)83 -b(45.)0 2696 y Fk(string)6 b Fm(:)83 b(10,)30 b(19,)f(20,)h(42,)g(43,)g -(56,)g(60,)g(61,)g(63,)g(64,)g(65,)166 2796 y(66,)d(80,)g(81,)g(92,)h -(93,)f(102,)f(147,)h(148,)g(200,)f(208,)h(248,)166 2895 -y(249,)d(250,)f(251,)h(264,)f(265,)h(410,)g(411,)f(412,)h(413,)f(414,) -166 2995 y(415,)h(416,)f(417,)h(419,)f(420,)h(422,)g(423,)f(425,)h -(426,)f(428,)166 3095 y(429,)h(431,)f(432,)h(433,)f(434,)h(461,)g(462,) -f(463,)h(464,)f(466,)166 3194 y(467,)h(468,)f(469,)h(573,)f(574,)h -(608,)g(609,)f(645,)h(646,)f(654,)166 3294 y(655,)h(657,)f(667,)h(668,) -f(669,)h(670,)g(671,)f(674,)h(676,)f(704,)166 3393 y(705,)h(706,)f -(707,)h(708,)f(709,)h(758,)g(759,)f(763,)h(766,)f(769,)166 -3493 y(770,)h(771,)f(775,)h(776,)f(777,)h(778,)g(780,)f(781,)h(784,)f -(785,)166 3593 y(786,)h(787,)f(789,)h(790,)f(793,)h(794,)g(795,)f(796,) -h(798,)f(799,)166 3692 y(806,)34 b(807,)g(808,)g(809,)f(812,)h(813,)g -(814,)g(815,)g(817,)166 3792 y(818,)g(823,)g(824,)g(825,)f(826,)h(829,) -g(830,)g(831,)g(832,)166 3892 y(834,)g(835,)g(836,)g(837,)f(859,)h -(866,)g(867,)g(872,)g(873,)166 3991 y(874,)g(875,)g(881,)g(882,)f(886,) -h(895,)g(910,)g(911,)g(921,)166 4091 y(922,)f(926,)f(927,)h(1046,)f -(1047,)g(1050,)g(1051,)g(1092,)166 4190 y(1093,)25 b(1117,)g(1118,)g -(1119,)g(1183,)g(1217,)g(1218,)g(1219,)166 4290 y(1220,)g(1225,)g -(1226,)g(1229,)g(1267,)g(1268,)g(1271,)g(1272,)166 4390 -y(1278,)g(1279,)g(1336,)g(1337,)g(1378,)g(1379,)g(1384,)g(1385,)166 -4489 y(1387,)31 b(1388,)g(1393,)g(1394,)g(1497,)g(1510.)0 -4591 y Fk(strings)t Fm(:)83 b(461,)36 b(766,)g(771,)f(1279.)0 -4692 y Fk(stringstream)t Fm(:)83 b(464,)38 b(1337.)0 -4793 y Fi(subp)l(ath)11 b Fm(:)83 b(881)p 384 4806 V --1 w(,)40 b(882)p 572 4806 V -2 w(,)h(965.)0 4895 y Fi(subp)l(ath)p -272 4895 26 4 v 31 w(size)11 b Fm(:)83 b(964)p 546 4908 -125 4 v -1 w(,)40 b(965)p 734 4908 V -1 w(.)0 4996 y -Fi(suppr)l(ess)p 305 4996 26 4 v 31 w(lab)l(els)12 b -Fm(:)83 b(216,)38 b(229)p 826 5009 125 4 v -2 w(.)0 5098 -y Fi(suppr)l(ess)p 305 5098 26 4 v 31 w(output)11 b Fm(:)83 -b(200)p 678 5111 125 4 v -1 w(,)37 b(438)p 863 5111 V --1 w(,)g(439)p 1048 5111 V -1 w(,)g(550,)f(551,)g(552,)166 -5197 y(852)p 166 5210 V -1 w(,)j(853)p 353 5210 V -1 -w(,)g(1370)p 540 5210 167 4 v -2 w(,)h(1371)p 769 5210 -V -2 w(.)0 5299 y Fi(suppr)l(ess)p 305 5299 26 4 v 31 -w(warnings)11 b Fm(:)83 b(945)p 771 5312 125 4 v -1 w(,)38 -b(946)p 957 5312 V -2 w(.)0 5400 y Fi(suppr)l(ess)p 305 -5400 26 4 v 31 w(x)14 b Fm(:)83 b(920.)2033 263 y Fi(suppr)l(ess)p -2338 263 V 31 w(y)12 b Fm(:)83 b(920.)2033 364 y Fi(suppr)l(ess)p -2338 364 V 31 w(z)14 b Fm(:)83 b(920.)2033 465 y(surface)38 -b(hiding:)83 b(996.)2033 567 y Fi(surfac)l(e)p 2291 567 -V 31 w(ve)l(ctor)14 b Fm(:)83 b(950,)29 b(951)p 2830 -580 125 4 v -2 w(,)i(953,)e(981,)g(982)p 3364 580 V -2 -w(,)i(984.)2033 668 y Fi(s1)16 b Fm(:)83 b(454)p 2231 -681 V -1 w(,)42 b(455)p 2421 681 V -1 w(,)g(456)p 2611 -681 V -1 w(.)2033 769 y Fi(s2)16 b Fm(:)83 b(454)p 2231 -782 V -1 w(,)42 b(455)p 2421 782 V -1 w(,)g(456)p 2611 -782 V -1 w(.)2033 870 y Fe(t)p Fm(:)83 b(130)p 2169 883 -V -1 w(,)36 b(131)p 2353 883 V -1 w(,)h(143)p 2538 883 -V -2 w(,)g(149)p 2722 883 V -1 w(,)f(151)p 2906 883 V --1 w(,)h(153)p 3091 883 V -2 w(,)g(156)p 3275 883 V -1 -w(,)f(173)p 3459 883 V -1 w(,)h(174)p 3644 883 V -2 w(,)2199 -970 y(177)p 2199 983 V -1 w(,)e(178)p 2382 983 V -2 w(,)h(179)p -2565 983 V -2 w(,)g(182)p 2748 983 V -2 w(,)f(210)p 2930 -983 V -1 w(,)g(244)p 3113 983 V -1 w(,)g(245)p 3296 983 -V -1 w(,)g(246)p 3479 983 V -2 w(,)h(247)p 3662 983 V --2 w(,)2199 1070 y(360)p 2199 1083 V -1 w(,)f(362)p 2382 -1083 V -2 w(,)h(364)p 2565 1083 V -2 w(,)g(369)p 2748 -1083 V -2 w(,)f(375)p 2930 1083 V -1 w(,)g(380)p 3113 -1083 V -1 w(,)g(393)p 3296 1083 V -1 w(,)g(395)p 3479 -1083 V -2 w(,)h(396)p 3662 1083 V -2 w(,)2199 1169 y(472)p -2199 1182 V -1 w(,)f(474)p 2382 1182 V -2 w(,)h(475)p -2565 1182 V -2 w(,)g(606)p 2748 1182 V -2 w(,)f(714)p -2930 1182 V -1 w(,)g(716)p 3113 1182 V -1 w(,)g(720)p -3296 1182 V -1 w(,)g(724)p 3479 1182 V -2 w(,)h(726)p -3662 1182 V -2 w(,)2199 1269 y(729)p 2199 1282 V -1 w(,)f(738)p -2382 1282 V -2 w(,)h(739)p 2565 1282 V -2 w(,)g(748)p -2748 1282 V -2 w(,)f(749)p 2930 1282 V -1 w(,)g(750)p -3113 1282 V -1 w(,)g(752)p 3296 1282 V -1 w(,)g(901)p -3479 1282 V -2 w(,)h(998)p 3662 1282 V -2 w(,)2199 1369 -y(999)p 2199 1382 V -1 w(,)29 b(1001)p 2376 1382 167 -4 v -2 w(,)h(1004)p 2595 1382 V -2 w(,)g(1008)p 2814 -1382 V -2 w(,)f(1010)p 3032 1382 V -2 w(,)h(1013)p 3251 -1382 V -2 w(,)g(1105)p 3470 1382 V -2 w(,)f(1122)p 3688 -1382 V -2 w(,)2199 1468 y(1169)p 2199 1481 V -2 w(,)e(1174)p -2415 1481 V -2 w(,)g(1187)p 2631 1481 V -2 w(,)g(1188)p -2847 1481 V -2 w(,)g(1189)p 3063 1481 V -2 w(,)g(1190)p -3279 1481 V -2 w(,)g(1192)p 3495 1481 V -2 w(,)g(1194)p -3711 1481 V -2 w(,)2199 1568 y(1196)p 2199 1581 V -2 -w(,)g(1199)p 2415 1581 V -2 w(,)g(1209)p 2631 1581 V --2 w(,)g(1223)p 2847 1581 V -2 w(,)g(1224)p 3063 1581 -V -2 w(,)g(1265)p 3279 1581 V -2 w(,)g(1269)p 3495 1581 -V -2 w(,)g(1279)p 3711 1581 V -2 w(,)2199 1667 y(1341)p -2199 1680 V -2 w(,)g(1342)p 2415 1680 V -2 w(,)g(1343)p -2631 1680 V -2 w(,)g(1346)p 2847 1680 V -2 w(,)g(1348)p -3063 1680 V -2 w(,)g(1351)p 3279 1680 V -2 w(,)g(1353)p -3495 1680 V -2 w(,)g(1355)p 3711 1680 V -2 w(,)2199 1767 -y(1357)p 2199 1780 V -2 w(,)36 b(1442)p 2424 1780 V -2 -w(,)g(1446)p 2649 1780 V -2 w(,)f(1456)p 2873 1780 V --2 w(,)h(1483)p 3098 1780 V -2 w(.)2033 1868 y Fi(t)p -2066 1868 26 4 v 30 w(al)t(l)14 b Fm(:)83 b(161)p 2299 -1881 125 4 v -1 w(,)44 b(164.)2033 1969 y Fi(t)p 2066 -1969 26 4 v 30 w(inverse)11 b Fm(:)83 b(958)p 2463 1982 -125 4 v -1 w(,)33 b(1174)p 2644 1982 167 4 v -2 w(,)g(1177,)e(1179,)g -(1181.)2033 2071 y Fi(t)p 2066 2071 26 4 v 30 w(x)14 -b Fm(:)83 b(161)p 2250 2084 125 4 v -1 w(,)42 b(162,)f(164,)f(517)p -2819 2084 V -1 w(,)i(518,)f(519,)g(520,)f(521,)2199 2170 -y(522,)i(901)p 2390 2183 V -2 w(,)h(903.)2033 2272 y -Fi(t)p 2066 2272 26 4 v 30 w(x)p 2135 2272 V 30 w(sign)11 -b Fm(:)83 b(521)p 2421 2285 125 4 v -1 w(.)2033 2373 -y Fi(t)p 2066 2373 26 4 v 30 w(y)12 b Fm(:)83 b(161)p -2249 2386 125 4 v -1 w(,)32 b(163,)g(164,)f(517)p 2790 -2386 V -1 w(,)h(518,)g(519,)f(520,)g(521,)h(522,)2199 -2472 y(901)p 2199 2485 V -1 w(,)43 b(902,)e(903.)2033 -2574 y Fi(t)p 2066 2574 26 4 v 30 w(y)p 2136 2574 V 31 -w(sign)11 b Fm(:)83 b(521)p 2423 2587 125 4 v -1 w(.)2033 -2675 y Fi(t)p 2066 2675 26 4 v 30 w(z)15 b Fm(:)83 b(161)p -2246 2688 125 4 v -2 w(,)43 b(164,)e(517)p 2626 2688 -V -2 w(,)i(518,)e(519,)g(520,)g(521,)g(522,)2199 2774 -y(901)p 2199 2787 V -1 w(,)i(902,)e(903.)2033 2876 y -Fi(t)p 2066 2876 26 4 v 30 w(z)p 2130 2876 V 31 w(sign)11 -b Fm(:)83 b(521)p 2417 2889 125 4 v -2 w(.)2033 2977 -y Fi(temp)10 b Fm(:)83 b(503)p 2325 2990 V -2 w(,)39 -b(901)p 2511 2990 V -1 w(,)g(902,)e(903.)2033 3078 y -Fi(temp)p 2214 3078 26 4 v 31 w(b)l(o)l(ol)13 b Fm(:)83 -b(1183)p 2494 3091 167 4 v -2 w(,)41 b(1184.)2033 3179 -y Fi(temp)p 2214 3179 26 4 v 31 w(cir)l(cle)11 b Fm(:)83 -b(1282)p 2548 3192 167 4 v -2 w(.)2033 3281 y Fi(temp)p -2214 3281 26 4 v 31 w(cir)l(cle)p 2436 3281 V 31 w(c)l(enter)13 -b Fm(:)83 b(1282)p 2801 3294 167 4 v -2 w(.)2033 3382 -y Fi(temp)p 2214 3382 26 4 v 31 w(cir)l(cle)p 2436 3382 -V 31 w(normal)14 b Fm(:)83 b(1282)p 2837 3395 167 4 v --2 w(.)2033 3483 y Fi(temp)p 2214 3483 26 4 v 31 w(c)l(o)l(or)l -(dinates)12 b Fm(:)83 b(397,)34 b(399)p 2942 3496 125 -4 v -1 w(,)i(401.)2033 3584 y Fi(temp)p 2214 3584 26 -4 v 31 w(matrix)14 b Fm(:)83 b(174)p 2597 3597 125 4 -v -2 w(.)2033 3686 y Fi(temp)p 2214 3686 26 4 v 31 w(pt)12 -b Fm(:)83 b(605)p 2428 3699 125 4 v -2 w(.)2033 3787 -y Fi(temp)p 2214 3787 26 4 v 31 w(string)11 b Fm(:)83 -b(1183)p 2564 3800 167 4 v -2 w(,)40 b(1184.)2033 3888 -y Fi(temp1)16 b Fm(:)83 b(161)p 2373 3901 125 4 v -1 -w(,)38 b(162,)f(163,)g(164.)2033 3989 y Fi(temp2)16 b -Fm(:)83 b(161)p 2373 4002 V -1 w(,)38 b(162,)f(163,)g(164.)2033 -4090 y Fi(test)p 2166 4090 26 4 v 30 w(angle)11 b Fm(:)83 -b(1180)p 2494 4103 167 4 v -2 w(.)2033 4192 y Fi(test)p -2166 4192 26 4 v 30 w(p)l(oints)11 b Fm(:)83 b(357,)40 -b(901.)2033 4293 y Fi(T)-6 b(etr)l(ahe)l(dr)l(a)12 b -Fm(:)83 b(1439.)2033 4394 y Fk(T)-8 b(etrahedron)6 b -Fm(:)83 b(1424,)37 b(1431)p 2887 4407 167 4 v -2 w(,)j(1432,)d(1434,)g -(1435)p 3572 4407 V -2 w(,)2199 4494 y(1437,)25 b(1438)p -2415 4507 V -2 w(,)i(1439,)e(1441,)g(1442,)g(1443,)g(1444,)g(1446.)2033 -4595 y Fi(tex)p 2143 4595 26 4 v 30 w(str)l(e)l(am)10 -b Fm(:)83 b(39)p 2521 4608 84 4 v -1 w(,)34 b(40)p 2661 -4608 V -1 w(,)g(44,)g(45,)f(46,)g(1511.)2033 4696 y Fi(tex)p -2143 4696 26 4 v 30 w(str)l(e)l(am)p 2410 4696 V 30 w(name)11 -b Fm(:)83 b(42)p 2747 4709 84 4 v -1 w(,)37 b(43)p 2890 -4709 V -1 w(,)h(44.)2033 4797 y Fi(text)11 b Fm(:)83 -b(92)p 2283 4810 V -1 w(,)25 b(93)p 2414 4810 V -1 w(,)g(147)p -2545 4810 125 4 v -1 w(,)g(148)p 2718 4810 V -2 w(,)g(200)p -2890 4810 V -1 w(,)f(208)p 3062 4810 V -1 w(,)h(248)p -3235 4810 V -2 w(,)g(249)p 3407 4810 V -1 w(,)g(250)p -3580 4810 V -2 w(,)g(251)p 3752 4810 V -1 w(,)2199 4897 -y(431)p 2199 4910 V -1 w(,)g(432)p 2372 4910 V -2 w(,)g(433)p -2544 4910 V -1 w(,)g(434)p 2717 4910 V -2 w(,)g(462,)f(471,)g(472,)f -(608)p 3407 4910 V -1 w(,)i(609)p 3580 4910 V -2 w(,)g(645)p -3752 4910 V -1 w(,)2199 4997 y(646)p 2199 5010 V -1 w(,)j(866)p -2375 5010 V -1 w(,)g(867)p 2551 5010 V -1 w(,)g(872)p -2727 5010 V -1 w(,)g(873)p 2903 5010 V -1 w(,)g(874)p -3079 5010 V -1 w(,)h(875)p 3256 5010 V -2 w(,)g(1336)p -3432 5010 167 4 v -2 w(,)f(1337)p 3649 5010 V -2 w(.)2033 -5098 y Fi(text)p 2171 5098 26 4 v 29 w(short)13 b Fm(:)83 -b(463)p 2495 5111 125 4 v -1 w(,)29 b(464)p 2672 5111 -V -2 w(,)h(468)p 2849 5111 V -2 w(,)g(469)p 3026 5111 -V -2 w(,)g(828)p 3203 5111 V -2 w(,)f(829)p 3379 5111 -V -1 w(,)g(830)p 3556 5111 V -1 w(,)g(831)p 3733 5111 -V -1 w(,)2199 5198 y(832)p 2199 5211 V -1 w(,)38 b(834)p -2385 5211 V -2 w(,)h(835)p 2571 5211 V -2 w(,)g(836)p -2757 5211 V -2 w(,)f(837)p 2942 5211 V -1 w(.)2033 5299 -y Fi(text)p 2171 5299 26 4 v 29 w(str)13 b Fm(:)83 b(461)p -2411 5312 125 4 v -1 w(,)33 b(462)p 2592 5312 V -1 w(,)g(466)p -2773 5312 V -1 w(,)g(467)p 2954 5312 V -1 w(,)g(573)p -3135 5312 V -1 w(,)g(574)p 3316 5312 V -1 w(.)2033 5400 -y Fi(theta)11 b Fm(:)83 b(1282)p 2328 5413 167 4 v -2 -w(,)43 b(1285)p 2560 5413 V -2 w(.)p eop end -%%Page: 502 502 -TeXDict begin 502 501 bop 0 83 a Fm(502)140 b Fl(INDEX)2670 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1517)0 263 y Fi(theta)p -183 263 26 4 v 31 w(total)13 b Fm(:)83 b(1285)p 489 276 -167 4 v -2 w(.)0 367 y Fi(thir)l(d)13 b Fm(:)84 b(13)p -288 380 84 4 v -1 w(,)44 b(270)p 438 380 125 4 v -2 w(,)h(271,)d(957,)h -(1131,)f(1132,)h(1179,)166 467 y(1181,)f(1183.)0 571 -y Fi(this)11 b Fm(:)84 b(78,)32 b(143,)g(149,)g(151,)g(153,)f(156,)h -(159,)g(164,)g(171,)166 670 y(173,)24 b(174,)f(177,)h(179,)f(188,)h -(224,)g(239,)f(284,)h(285,)f(287,)166 770 y(289,)h(315,)f(320,)h(343,)f -(345,)h(346,)g(349,)f(350,)h(351,)f(353,)166 869 y(356,)h(357,)f(388,)h -(392,)f(393,)h(395,)g(409,)f(411,)h(415,)f(418,)166 969 -y(431,)h(432,)f(442,)h(443,)f(462,)h(463,)g(478,)f(482,)h(489,)f(493,) -166 1069 y(497,)h(499,)f(501,)h(503,)f(504,)h(507,)g(508,)f(510,)h -(523,)f(524,)166 1168 y(526,)h(544,)f(545,)h(557,)f(563,)h(566,)g(568,) -f(570,)h(601,)f(622,)166 1268 y(626,)h(637,)f(646,)h(657,)f(677,)h -(678,)g(689,)f(714,)h(716,)f(720,)166 1368 y(724,)h(726,)f(729,)h(750,) -f(751,)h(752,)g(754,)f(757,)h(762,)f(764,)166 1467 y(768,)h(770,)f -(771,)h(776,)f(780,)h(789,)g(798,)f(802,)h(807,)f(813,)166 -1567 y(817,)h(821,)f(824,)h(840,)f(872,)h(874,)g(881,)f(886,)h(893)p -1547 1580 V -2 w(,)h(898,)166 1666 y(901,)f(909,)f(911,)h(912,)f(913,)h -(917,)g(929,)f(945,)h(946,)f(950,)166 1766 y(954,)33 -b(964,)f(996,)h(1001,)f(1004,)g(1008,)g(1010,)g(1013,)166 -1866 y(1024,)25 b(1034,)g(1064,)g(1069,)g(1077,)g(1107,)g(1115,)g -(1121,)166 1965 y(1122,)g(1147,)g(1162,)g(1171,)g(1173,)g(1174,)g -(1187,)g(1191,)166 2065 y(1193,)g(1194,)g(1195,)g(1196,)g(1198,)g -(1208,)g(1238,)g(1240,)166 2165 y(1248,)g(1249,)g(1250,)g(1251,)g -(1253,)g(1303,)g(1305,)g(1346,)166 2264 y(1348,)g(1351,)g(1353,)g -(1355,)g(1357,)g(1360,)g(1379,)g(1382,)166 2364 y(1385,)31 -b(1388,)g(1391,)g(1394,)g(1421,)g(1442.)0 2468 y Fi(this)p -134 2468 26 4 v 31 w(axis)p 305 2468 V 31 w(orientation)11 -b Fm(:)84 b(1173)p 848 2481 167 4 v -2 w(,)35 b(1174.)0 -2572 y Fi(this)p 134 2572 26 4 v 31 w(option)p 391 2572 -V 32 w(optind)13 b Fm(:)83 b(1503)p 763 2585 167 4 v --1 w(.)0 2676 y Fi(this)p 134 2676 26 4 v 31 w(plane)11 -b Fm(:)83 b(1171)p 467 2689 167 4 v -1 w(,)35 b(1172,)e(1173,)g(1174,)g -(1176,)h(1183,)166 2775 y(1263)p 166 2788 V -2 w(.)0 -2879 y Fi(time)11 b Fm(:)83 b(43.)0 2983 y Fk(tm)t Fm(:)h(43.)0 -3087 y Fi(tolower)14 b Fm(:)83 b(313,)27 b(318,)g(346,)h(380,)f(432,)g -(561,)g(867,)g(1129.)0 3191 y Fi(top)p 117 3191 26 4 -v 31 w(lft)12 b Fm(:)83 b(1062)p 335 3204 167 4 v -1 -w(.)0 3295 y Fi(top)p 117 3295 26 4 v 31 w(rt)12 b Fm(:)83 -b(1062)p 324 3308 167 4 v -2 w(.)0 3399 y Fi(tr)l(ac)l(e)10 -b Fm(:)83 b(529)p 289 3412 125 4 v -1 w(,)39 b(530)p -476 3412 V -1 w(,)g(917)p 663 3412 V -2 w(,)g(918)p 849 -3412 V -1 w(.)0 3503 y Fi(tr)l(ac)l(e)p 178 3503 26 4 -v 30 w(x)p 247 3503 V 31 w(z)p 312 3503 V 30 w(0)16 b -Fm(:)83 b(954)p 501 3516 125 4 v -1 w(.)0 3607 y Fk(T)-8 -b(ransform)5 b Fm(:)84 b(122)p 542 3620 V -2 w(,)35 b(124,)e(125)p -906 3620 V -1 w(,)h(126,)g(127)p 1271 3620 V -2 w(,)h(128,)e(129)p -1635 3620 V -1 w(,)166 3706 y(130,)24 b(131,)f(133,)h(135,)f(137,)h -(138,)g(141,)f(143,)h(146,)f(148,)166 3806 y(149,)h(150,)f(151,)h(152,) -f(153,)h(155,)g(156,)f(157,)h(158,)f(159,)166 3906 y(160,)h(161,)f -(166,)h(167,)f(168,)h(172,)g(173,)f(174,)h(176,)f(177,)166 -4005 y(178,)h(179,)f(181,)h(182,)f(187,)h(188,)g(189,)f(190,)h(191,)f -(192,)166 4105 y(200,)h(210,)f(216,)h(235,)f(236,)h(238,)g(239,)f(240,) -h(241,)f(242,)166 4204 y(243,)h(244,)f(245,)h(246,)f(247,)h(264,)g -(341,)f(360,)h(361,)f(362,)166 4304 y(363,)h(364,)f(365,)h(368,)f(369,) -h(370,)g(371,)f(372,)h(373,)f(375,)166 4404 y(376,)h(377,)f(378,)h -(379,)f(380,)h(392,)g(393,)f(394,)h(395,)f(396,)166 4503 -y(397,)h(404,)f(472,)h(474,)f(475,)h(553,)g(556,)f(559,)h(561,)f(572,) -166 4603 y(580,)h(581,)f(583,)h(584,)f(710,)h(713,)g(714,)f(716,)h -(717,)f(719,)166 4703 y(720,)h(721,)f(722,)h(723,)f(724,)h(725,)g(726,) -f(728,)h(729,)f(730,)166 4802 y(731,)34 b(732,)g(738,)g(739,)f(747,)h -(748,)g(749,)g(750,)g(751,)166 4902 y(752,)e(946,)g(950,)f(954,)h(958,) -g(997,)g(998,)f(999,)h(1000,)166 5001 y(1001,)25 b(1003,)g(1004,)g -(1005,)g(1006,)g(1007,)g(1008,)g(1009,)166 5101 y(1010,)g(1012,)g -(1013,)g(1014,)g(1015,)g(1021,)g(1054,)g(1105,)166 5201 -y(1122,)g(1174,)g(1177,)g(1187,)g(1188,)g(1189,)g(1190,)g(1191,)166 -5300 y(1192,)g(1193,)g(1194,)g(1195,)g(1196,)g(1198,)g(1199,)g(1200,) -166 5400 y(1201,)g(1208,)g(1209,)g(1210,)g(1211,)g(1223,)g(1224,)g -(1265,)2199 263 y(1269,)g(1279,)g(1341,)g(1342,)g(1343,)g(1345,)g -(1346,)g(1347,)2199 363 y(1348,)g(1350,)g(1351,)g(1352,)g(1353,)g -(1354,)g(1355,)g(1356,)2199 462 y(1357,)34 b(1446,)g(1454,)f(1456,)h -(1483.)2033 566 y Fi(tr)l(ansform)11 b Fm(:)83 b(216)p -2502 579 V -2 w(,)29 b(224,)f(236,)f(239,)h(242,)f(245,)h(247,)f(249,) -2199 666 y(251,)d(256,)f(264)p 2544 679 V -1 w(,)i(278,)e(300,)h(302,)g -(303,)f(307,)h(341,)f(361,)2199 765 y(363,)h(365,)f(369,)h(375,)f(376,) -h(378,)g(393,)f(396,)h(397,)f(399,)2199 865 y(404,)h(405,)f(407,)h -(431,)f(432,)h(434,)g(474,)f(475,)h(486,)f(494,)2199 -964 y(543,)34 b(545,)g(546,)g(549,)f(553,)h(556)p 3113 -977 V -1 w(,)h(557,)f(561,)g(570,)2199 1064 y(572,)e(574,)h(580,)f -(581,)g(582,)h(584,)f(597.)2033 1168 y Fi(tr)l(ansforms)11 -b Fm(:)83 b(732.)2033 1271 y Fk(T)-8 b(ransforms)5 b -Fm(:)83 b(122,)39 b(138.)2033 1375 y Fi(triangle)p 2312 -1375 26 4 v 31 w(diameter)15 b Fm(:)83 b(1438)p 2775 -1388 167 4 v -2 w(,)32 b(1442)p 2996 1388 V -2 w(,)g(1443)p -3217 1388 V -2 w(,)g(1444)p 3438 1388 V -2 w(,)g(1445)p -3659 1388 V -2 w(,)2199 1475 y(1446)p 2199 1488 V -2 -w(,)h(1469)p 2421 1488 V -2 w(,)g(1470)p 2643 1488 V --2 w(,)g(1471)p 2865 1488 V -2 w(,)g(1472)p 3087 1488 -V -2 w(,)g(1473)p 3309 1488 V -2 w(.)2033 1578 y Fi(triangle)p -2312 1578 26 4 v 31 w(r)l(adius)12 b Fm(:)83 b(1431)p -2675 1591 167 4 v -2 w(,)38 b(1435,)f(1438,)f(1462)p -3357 1591 V -2 w(,)i(1466,)2199 1678 y(1469.)2033 1781 -y Fi(triangles)12 b Fm(:)83 b(1444)p 2459 1794 V -2 w(,)41 -b(1471)p 2689 1794 V -2 w(.)2033 1885 y Fi(triangles)p -2346 1885 26 4 v 31 w(size)11 b Fm(:)83 b(1470)p 2620 -1898 167 4 v -2 w(,)39 b(1471)p 2848 1898 V -2 w(.)2033 -1989 y Fi(true)10 b Fm(:)83 b(17,)34 b(32,)g(47,)g(48,)g(49,)g(50,)g -(60,)h(61,)f(63,)g(64,)g(66,)2199 2088 y(72,)28 b(104,)f(112,)g(141,)g -(143,)g(159,)g(161,)g(174,)g(182,)g(188,)2199 2188 y(200,)d(209,)f +(656,)h(657,)g(659,)2199 4800 y(764,)i(765,)g(770,)g(776,)f(802,)h +(807,)g(813,)g(821,)g(824,)2199 4899 y(830,)g(840,)g(842,)g(858,)f +(859,)h(860,)g(862,)g(866,)g(867,)2199 4999 y(878)p 2199 +5012 125 4 v -1 w(,)h(884,)f(885,)g(886,)f(889,)h(891,)g(893,)g(894,)g +(897,)2199 5099 y(899,)j(913,)g(979,)g(981,)g(990,)g(1270,)f(1274,)g +(1287,)2199 5198 y(1308,)25 b(1317,)g(1319,)g(1321,)g(1323,)g(1325,)g +(1327,)g(1329,)2199 5298 y(1330,)37 b(1342,)f(1433,)h(1476.)2033 +5400 y Fi(Slop)l(e)11 b Fm(:)83 b(957)p 2336 5413 V -1 +w(,)33 b(958,)f(959,)g(960,)g(1136)p 3060 5413 167 4 +v -2 w(,)h(1137)p 3282 5413 V -2 w(.)p eop end +%%Page: 506 506 +TeXDict begin 506 505 bop 0 83 a Fm(506)140 b Fl(INDEX)2670 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1525)0 263 y Fi(slop)l(e)11 +b Fm(:)84 b(345)p 291 276 125 4 v -2 w(,)35 b(346)p 473 +276 V -2 w(,)g(347,)e(879)p 837 276 V -2 w(,)i(880)p +1019 276 V -2 w(,)g(957.)0 364 y Fi(slop)l(e)p 178 364 +26 4 v 32 w(p)p 252 364 V 31 w(x)p 322 364 V 30 w(y)11 +b Fm(:)84 b(533)p 505 377 125 4 v -2 w(,)36 b(535,)f(536,)g(537.)0 +466 y Fi(slop)l(e)p 178 466 26 4 v 32 w(p)p 252 466 V +31 w(x)p 322 466 V 30 w(z)14 b Fm(:)83 b(533)p 501 479 +125 4 v -1 w(,)36 b(538,)f(539,)g(540.)0 567 y Fi(slop)l(e)p +178 567 26 4 v 32 w(p)p 252 567 V 31 w(z)p 317 567 V +30 w(y)12 b Fm(:)83 b(533)p 500 580 125 4 v -1 w(,)41 +b(536.)0 669 y Fi(slop)l(e)p 178 669 26 4 v 32 w(q)p +248 669 V 30 w(x)p 317 669 V 30 w(y)12 b Fm(:)83 b(534)p +500 682 125 4 v -1 w(,)36 b(535,)f(536,)g(537.)0 770 +y Fi(slop)l(e)p 178 770 26 4 v 32 w(q)p 248 770 V 30 +w(x)p 317 770 V 30 w(z)15 b Fm(:)83 b(534)p 497 783 125 +4 v -2 w(,)39 b(538,)e(539.)0 871 y Fi(slop)l(e)p 178 +871 26 4 v 32 w(q)p 248 871 V 30 w(z)p 312 871 V 31 w(y)12 +b Fm(:)83 b(534)p 496 884 125 4 v -2 w(,)42 b(536.)0 +973 y Fk(Solid)t Fm(:)83 b(409,)36 b(549,)h(656,)f(1296)p +874 986 167 4 v -2 w(,)i(1297,)e(1299,)g(1300)p 1555 +986 V -2 w(,)166 1072 y(1301,)25 b(1302)p 382 1085 V +-2 w(,)i(1303,)e(1304,)g(1305)p 1030 1085 V -2 w(,)i(1306)p +1246 1085 V -2 w(,)g(1307,)e(1308,)166 1172 y(1309,)g(1310,)g(1314,)g +(1316,)g(1317,)g(1319,)g(1321,)g(1323,)166 1272 y(1325,)g(1327,)g +(1329,)g(1330,)g(1332,)g(1334,)g(1336,)g(1338,)166 1371 +y(1340,)g(1342,)g(1343,)g(1344,)g(1347,)g(1349,)g(1351,)g(1353,)166 +1471 y(1356,)g(1358,)g(1360,)g(1362,)g(1365,)g(1367,)g(1370,)g(1372,) +166 1570 y(1374,)g(1376,)g(1378,)g(1379,)g(1380,)g(1384,)g(1387,)g +(1390,)166 1670 y(1393,)g(1396,)g(1398,)g(1399,)g(1405,)g(1426,)g +(1440,)g(1443,)166 1770 y(1457,)31 b(1460,)g(1471,)g(1474,)g(1485,)g +(1488.)0 1871 y Fk(Solid)p 212 1871 29 5 v 39 w(F)-8 +b(aced)5 b Fm(:)84 b(1405)p 596 1884 167 4 v -2 w(,)27 +b(1413,)e(1431,)h(1440,)f(1443,)h(1457,)166 1971 y(1460,)34 +b(1471,)g(1474,)f(1485,)h(1488.)0 2072 y Fk(Solids)s +Fm(:)83 b(549,)36 b(999,)g(1296,)f(1299.)0 2173 y Fi(solve)11 +b Fm(:)84 b(947)p 291 2186 125 4 v -2 w(,)31 b(949,)e(958,)h(959,)f +(1133)p 1004 2186 167 4 v -2 w(,)i(1134)p 1224 2186 V +-2 w(,)f(1167.)0 2275 y Fi(solve)p 178 2275 26 4 v 32 +w(quadr)l(atic)10 b Fm(:)83 b(29)p 652 2288 84 4 v -1 +w(,)38 b(30)p 796 2288 V -1 w(,)f(960.)0 2376 y Fi(sort)12 +b Fm(:)83 b(552,)42 b(1380.)0 2478 y Fi(sort)p 144 2478 +26 4 v 31 w(value)11 b Fm(:)83 b(253)p 471 2491 125 4 +v -2 w(,)30 b(254)p 648 2491 V -1 w(,)g(453,)f(547)p +1004 2491 V -2 w(,)h(548)p 1181 2491 V -1 w(,)g(552,)f(554)p +1537 2491 V -2 w(.)0 2579 y Fk(Sorting)6 b Fm(:)83 b(213)p +417 2592 V -2 w(,)31 b(214)p 595 2592 V -1 w(,)f(253,)g(254,)f(453,)g +(547,)h(548)p 1487 2592 V -2 w(.)0 2680 y Fi(Spher)l(e)11 +b Fm(:)83 b(1296.)0 2782 y Fi(spir)l(al)14 b Fm(:)83 +b(1287)p 315 2795 167 4 v -2 w(,)43 b(1290)p 547 2795 +V -2 w(.)0 2883 y Fi(spir)l(al)p 200 2883 26 4 v 32 w(c)l(ounter)12 +b Fm(:)83 b(1287)p 614 2896 167 4 v -1 w(,)38 b(1290)p +842 2896 V -2 w(.)0 2984 y Fi(sqrt)12 b Fm(:)83 b(25,)24 +b(26,)h(30,)f(503,)g(1110,)g(1135,)f(1183,)g(1193,)h(1268.)0 +3086 y Fi(ss)p 73 3086 26 4 v 30 w(c)l(opy)13 b Fm(:)83 +b(1184)p 375 3099 167 4 v -2 w(.)0 3187 y Fi(ss)p 73 +3187 26 4 v 30 w(e)11 b Fm(:)83 b(1184)p 253 3200 167 +4 v -2 w(.)0 3289 y Fi(ssides)12 b Fm(:)83 b(1032)p 325 +3302 V -2 w(,)34 b(1033)p 548 3302 V -2 w(,)g(1035)p +771 3302 V -2 w(,)f(1036)p 993 3302 V -2 w(,)h(1037.)0 +3390 y Fi(ssin)11 b Fm(:)83 b(161)p 257 3403 125 4 v +-2 w(,)40 b(162,)e(163,)g(164.)0 3491 y Fi(start)12 b +Fm(:)83 b(881)p 285 3504 V -2 w(,)35 b(882)p 467 3504 +V -2 w(,)g(883,)e(884,)g(885,)g(886.)0 3593 y Fi(start)p +172 3593 26 4 v 30 w(pt)12 b Fm(:)83 b(1290)p 385 3606 +167 4 v -2 w(.)0 3694 y Fk(std)5 b Fm(:)83 b(9)p 239 +3707 42 4 v -1 w(,)46 b(914.)0 3795 y Fi(stderr)13 b +Fm(:)83 b(503,)34 b(923,)f(1192,)g(1228,)f(1229.)0 3897 +y Fi(stdout)12 b Fm(:)83 b(47,)38 b(49,)h(503,)f(866.)0 +3998 y Fi(step)10 b Fm(:)83 b(1286)p 258 4011 167 4 v +-2 w(,)43 b(1287)p 490 4011 V -2 w(.)0 4100 y Fi(stop)10 +b Fm(:)83 b(248)p 262 4113 125 4 v -2 w(,)40 b(249)p +449 4113 V -2 w(,)g(868)p 636 4113 V -2 w(,)g(869)p 823 +4113 V -2 w(.)0 4201 y Fi(str)13 b Fm(:)83 b(463,)40 +b(464,)h(1342.)0 4302 y Fi(str)l(e)l(am)10 b Fm(:)83 +b(45.)0 4404 y Fk(string)6 b Fm(:)83 b(10,)30 b(19,)f(20,)h(37,)g(42,)g +(43,)g(54,)g(56,)g(60,)g(61,)g(63,)166 4503 y(64,)h(65,)g(66,)g(80,)g +(81,)g(92,)f(93,)h(102,)g(120,)f(147,)h(148,)166 4603 +y(196,)24 b(200,)f(205,)h(208,)f(248,)h(249,)g(250,)f(251,)h(262,)f +(264,)166 4703 y(265,)h(410,)f(411,)h(412,)f(413,)h(414,)g(415,)f(416,) +h(417,)f(419,)166 4802 y(420,)h(422,)f(423,)h(425,)f(426,)h(428,)g +(429,)f(431,)h(432,)f(433,)166 4902 y(434,)h(461,)f(462,)h(463,)f(464,) +h(466,)g(467,)f(468,)h(469,)f(573,)166 5001 y(574,)h(591,)f(608,)h +(609,)f(615,)h(645,)g(646,)f(652,)h(654,)f(655,)166 5101 +y(657,)h(667,)f(668,)h(669,)f(670,)h(671,)g(674,)f(676,)h(704,)f(705,) +166 5201 y(706,)h(707,)f(708,)h(709,)f(758,)h(759,)g(763,)f(766,)h +(769,)f(770,)166 5300 y(771,)h(775,)f(776,)h(777,)f(778,)h(780,)g(781,) +f(784,)h(785,)f(786,)166 5400 y(787,)h(789,)f(790,)h(793,)f(794,)h +(795,)g(796,)f(798,)h(799,)f(806,)2199 263 y(807,)h(808,)f(809,)h(812,) +f(813,)h(814,)g(815,)f(817,)h(818,)f(823,)2199 363 y(824,)34 +b(825,)g(826,)g(829,)f(830,)h(831,)g(832,)g(834,)g(835,)2199 +462 y(836,)g(837,)g(859,)g(866,)f(867,)h(872,)g(873,)g(874,)g(875,)2199 +562 y(881,)g(882,)g(886,)g(898,)f(913,)h(914,)g(924,)g(925,)g(929,)2199 +662 y(930,)f(938,)f(973,)h(1049,)f(1050,)g(1053,)g(1054,)g(1057,)2199 +761 y(1097,)25 b(1098,)g(1101,)g(1122,)g(1123,)g(1124,)g(1188,)g(1222,) +2199 861 y(1223,)g(1224,)g(1225,)g(1230,)g(1231,)g(1234,)g(1272,)g +(1273,)2199 960 y(1276,)g(1277,)g(1280,)g(1283,)g(1284,)g(1294,)g +(1341,)g(1342,)2199 1060 y(1383,)g(1384,)g(1389,)g(1390,)g(1392,)g +(1393,)g(1398,)g(1399,)2199 1160 y(1403,)31 b(1411,)g(1429,)g(1495,)g +(1502,)g(1518.)2033 1261 y Fk(strings)t Fm(:)83 b(461,)36 +b(766,)g(771,)f(1284.)2033 1363 y Fk(stringstream)t Fm(:)83 +b(464,)38 b(1342.)2033 1464 y Fi(subp)l(ath)11 b Fm(:)83 +b(881)p 2417 1477 V -1 w(,)40 b(882)p 2605 1477 V -2 +w(,)h(968.)2033 1566 y Fi(subp)l(ath)p 2305 1566 26 4 +v 31 w(size)11 b Fm(:)83 b(967)p 2579 1579 125 4 v -1 +w(,)40 b(968)p 2767 1579 V -1 w(.)2033 1667 y Fi(suppr)l(ess)p +2338 1667 26 4 v 31 w(lab)l(els)12 b Fm(:)83 b(216,)38 +b(229)p 2859 1680 125 4 v -2 w(.)2033 1769 y Fi(suppr)l(ess)p +2338 1769 26 4 v 31 w(output)11 b Fm(:)83 b(200)p 2711 +1782 125 4 v -1 w(,)37 b(438)p 2896 1782 V -1 w(,)g(439)p +3081 1782 V -1 w(,)g(550,)f(551,)g(552,)2199 1869 y(852)p +2199 1882 V -1 w(,)j(853)p 2386 1882 V -1 w(,)g(1375)p +2573 1882 167 4 v -2 w(,)h(1376)p 2802 1882 V -2 w(.)2033 +1970 y Fi(suppr)l(ess)p 2338 1970 26 4 v 31 w(warnings)11 +b Fm(:)83 b(948)p 2804 1983 125 4 v -1 w(,)38 b(949)p +2990 1983 V -2 w(.)2033 2072 y Fi(suppr)l(ess)p 2338 +2072 26 4 v 31 w(x)14 b Fm(:)83 b(923.)2033 2173 y Fi(suppr)l(ess)p +2338 2173 V 31 w(y)12 b Fm(:)83 b(923.)2033 2275 y Fi(suppr)l(ess)p +2338 2275 V 31 w(z)14 b Fm(:)83 b(923.)2033 2376 y(surface)38 +b(hiding:)83 b(999.)2033 2478 y Fi(surfac)l(e)p 2291 +2478 V 31 w(ve)l(ctor)14 b Fm(:)83 b(953,)29 b(954)p +2830 2491 125 4 v -2 w(,)i(956,)e(984,)g(985)p 3364 2491 +V -2 w(,)i(987.)2033 2580 y(system)36 b(dep)r(endencies:)83 +b(1516.)2033 2681 y Fi(s1)16 b Fm(:)83 b(454)p 2231 2694 +V -1 w(,)42 b(455)p 2421 2694 V -1 w(,)g(456)p 2611 2694 +V -1 w(.)2033 2783 y Fi(s2)16 b Fm(:)83 b(454)p 2231 +2796 V -1 w(,)42 b(455)p 2421 2796 V -1 w(,)g(456)p 2611 +2796 V -1 w(.)2033 2884 y Fe(t)p Fm(:)83 b(130)p 2169 +2897 V -1 w(,)28 b(131)p 2345 2897 V -2 w(,)g(143)p 2520 +2897 V -1 w(,)g(149)p 2696 2897 V -2 w(,)g(151)p 2871 +2897 V -1 w(,)g(153)p 3047 2897 V -2 w(,)g(156)p 3222 +2897 V -1 w(,)g(173)p 3398 2897 V -2 w(,)g(174)p 3573 +2897 V -1 w(,)g(177)p 3749 2897 V -1 w(,)2199 2984 y(178)p +2199 2997 V -1 w(,)35 b(179)p 2382 2997 V -2 w(,)h(182)p +2565 2997 V -2 w(,)g(210)p 2748 2997 V -2 w(,)f(244)p +2930 2997 V -1 w(,)g(245)p 3113 2997 V -1 w(,)g(246)p +3296 2997 V -1 w(,)g(247)p 3479 2997 V -2 w(,)h(360)p +3662 2997 V -2 w(,)2199 3083 y(362)p 2199 3096 V -1 w(,)f(364)p +2382 3096 V -2 w(,)h(369)p 2565 3096 V -2 w(,)g(375)p +2748 3096 V -2 w(,)f(380)p 2930 3096 V -1 w(,)g(393)p +3113 3096 V -1 w(,)g(395)p 3296 3096 V -1 w(,)g(396)p +3479 3096 V -2 w(,)h(472)p 3662 3096 V -2 w(,)2199 3183 +y(474)p 2199 3196 V -1 w(,)f(475)p 2382 3196 V -2 w(,)h(512)p +2565 3196 V -2 w(,)g(606)p 2748 3196 V -2 w(,)f(714)p +2930 3196 V -1 w(,)g(716)p 3113 3196 V -1 w(,)g(720)p +3296 3196 V -1 w(,)g(724)p 3479 3196 V -2 w(,)h(726)p +3662 3196 V -2 w(,)2199 3283 y(729)p 2199 3296 V -1 w(,)d(738)p +2380 3296 V -2 w(,)h(739)p 2561 3296 V -2 w(,)f(748)p +2741 3296 V -1 w(,)g(749)p 2922 3296 V -1 w(,)g(750)p +3103 3296 V -2 w(,)h(752)p 3284 3296 V -2 w(,)f(904)p +3464 3296 V -1 w(,)g(1001)p 3645 3296 167 4 v -2 w(,)2199 +3382 y(1002)p 2199 3395 V -2 w(,)27 b(1004)p 2415 3395 +V -2 w(,)g(1007)p 2631 3395 V -2 w(,)g(1011)p 2847 3395 +V -2 w(,)g(1013)p 3063 3395 V -2 w(,)g(1016)p 3279 3395 +V -2 w(,)g(1110)p 3495 3395 V -2 w(,)g(1127)p 3711 3395 +V -2 w(,)2199 3482 y(1174)p 2199 3495 V -2 w(,)g(1179)p +2415 3495 V -2 w(,)g(1192)p 2631 3495 V -2 w(,)g(1193)p +2847 3495 V -2 w(,)g(1194)p 3063 3495 V -2 w(,)g(1195)p +3279 3495 V -2 w(,)g(1197)p 3495 3495 V -2 w(,)g(1199)p +3711 3495 V -2 w(,)2199 3582 y(1201)p 2199 3595 V -2 +w(,)g(1204)p 2415 3595 V -2 w(,)g(1214)p 2631 3595 V +-2 w(,)g(1228)p 2847 3595 V -2 w(,)g(1229)p 3063 3595 +V -2 w(,)g(1270)p 3279 3595 V -2 w(,)g(1274)p 3495 3595 +V -2 w(,)g(1284)p 3711 3595 V -2 w(,)2199 3681 y(1346)p +2199 3694 V -2 w(,)g(1347)p 2415 3694 V -2 w(,)g(1348)p +2631 3694 V -2 w(,)g(1351)p 2847 3694 V -2 w(,)g(1353)p +3063 3694 V -2 w(,)g(1356)p 3279 3694 V -2 w(,)g(1358)p +3495 3694 V -2 w(,)g(1360)p 3711 3694 V -2 w(,)2199 3781 +y(1362)p 2199 3794 V -2 w(,)36 b(1447)p 2424 3794 V -2 +w(,)g(1451)p 2649 3794 V -2 w(,)f(1461)p 2873 3794 V +-2 w(,)h(1488)p 3098 3794 V -2 w(.)2033 3882 y Fi(t)p +2066 3882 26 4 v 30 w(al)t(l)14 b Fm(:)83 b(161)p 2299 +3895 125 4 v -1 w(,)44 b(164.)2033 3984 y Fi(t)p 2066 +3984 26 4 v 30 w(inverse)11 b Fm(:)83 b(961)p 2463 3997 +125 4 v -1 w(,)33 b(1179)p 2644 3997 167 4 v -2 w(,)g(1182,)e(1184,)g +(1186.)2033 4086 y Fi(t)p 2066 4086 26 4 v 30 w(x)14 +b Fm(:)83 b(161)p 2250 4099 125 4 v -1 w(,)42 b(162,)f(164,)f(517)p +2819 4099 V -1 w(,)i(518,)f(519,)g(520,)f(521,)2199 4185 +y(522,)i(904)p 2390 4198 V -2 w(,)h(906.)2033 4287 y +Fi(t)p 2066 4287 26 4 v 30 w(x)p 2135 4287 V 30 w(sign)11 +b Fm(:)83 b(521)p 2421 4300 125 4 v -1 w(.)2033 4388 +y Fi(t)p 2066 4388 26 4 v 30 w(y)12 b Fm(:)83 b(161)p +2249 4401 125 4 v -1 w(,)32 b(163,)g(164,)f(517)p 2790 +4401 V -1 w(,)h(518,)g(519,)f(520,)g(521,)h(522,)2199 +4488 y(904)p 2199 4501 V -1 w(,)43 b(905,)e(906.)2033 +4589 y Fi(t)p 2066 4589 26 4 v 30 w(y)p 2136 4589 V 31 +w(sign)11 b Fm(:)83 b(521)p 2423 4602 125 4 v -1 w(.)2033 +4691 y Fi(t)p 2066 4691 26 4 v 30 w(z)15 b Fm(:)83 b(161)p +2246 4704 125 4 v -2 w(,)43 b(164,)e(517)p 2626 4704 +V -2 w(,)i(518,)e(519,)g(520,)g(521,)g(522,)2199 4791 +y(904)p 2199 4804 V -1 w(,)i(905,)e(906.)2033 4892 y +Fi(t)p 2066 4892 26 4 v 30 w(z)p 2130 4892 V 31 w(sign)11 +b Fm(:)83 b(521)p 2417 4905 125 4 v -2 w(.)2033 4994 +y Fi(temp)10 b Fm(:)83 b(503)p 2325 5007 V -2 w(,)39 +b(904)p 2511 5007 V -1 w(,)g(905,)e(906.)2033 5095 y +Fi(temp)p 2214 5095 26 4 v 31 w(b)l(o)l(ol)13 b Fm(:)83 +b(1188)p 2494 5108 167 4 v -2 w(,)41 b(1189.)2033 5197 +y Fi(temp)p 2214 5197 26 4 v 31 w(cir)l(cle)11 b Fm(:)83 +b(1287)p 2548 5210 167 4 v -2 w(.)2033 5298 y Fi(temp)p +2214 5298 26 4 v 31 w(cir)l(cle)p 2436 5298 V 31 w(c)l(enter)13 +b Fm(:)83 b(1287)p 2801 5311 167 4 v -2 w(.)2033 5400 +y Fi(temp)p 2214 5400 26 4 v 31 w(cir)l(cle)p 2436 5400 +V 31 w(normal)14 b Fm(:)83 b(1287)p 2837 5413 167 4 v +-2 w(.)p eop end +%%Page: 507 507 +TeXDict begin 507 506 bop 0 83 a Fn(x)p Fm(1525)139 b +Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(507)0 263 y Fi(temp)p +181 263 26 4 v 31 w(c)l(o)l(or)l(dinates)12 b Fm(:)83 +b(397,)34 b(399)p 909 276 125 4 v -1 w(,)i(401.)0 365 +y Fi(temp)p 181 365 26 4 v 31 w(matrix)14 b Fm(:)83 b(174)p +564 378 125 4 v -2 w(.)0 466 y Fi(temp)p 181 466 26 4 +v 31 w(pt)12 b Fm(:)83 b(605)p 395 479 125 4 v -2 w(.)0 +568 y Fi(temp)p 181 568 26 4 v 31 w(string)11 b Fm(:)83 +b(1188)p 531 581 167 4 v -2 w(,)40 b(1189.)0 670 y Fi(temp1)16 +b Fm(:)83 b(161)p 340 683 125 4 v -1 w(,)38 b(162,)f(163,)g(164.)0 +772 y Fi(temp2)16 b Fm(:)83 b(161)p 340 785 V -1 w(,)38 +b(162,)f(163,)g(164.)0 873 y Fi(test)p 133 873 26 4 v +30 w(angle)11 b Fm(:)83 b(1185)p 461 886 167 4 v -2 w(.)0 +975 y Fi(test)p 133 975 26 4 v 30 w(p)l(oints)11 b Fm(:)83 +b(357,)40 b(904.)0 1077 y Fi(T)-6 b(etr)l(ahe)l(dr)l(a)12 +b Fm(:)83 b(1444.)0 1178 y Fk(T)-8 b(etrahedron)6 b Fm(:)83 +b(1429,)37 b(1436)p 854 1191 167 4 v -2 w(,)j(1437,)d(1439,)g(1440)p +1539 1191 V -2 w(,)166 1278 y(1442,)25 b(1443)p 382 1291 +V -2 w(,)i(1444,)e(1446,)g(1447,)g(1448,)g(1449,)g(1451.)0 +1380 y Fi(tex)p 110 1380 26 4 v 30 w(str)l(e)l(am)10 +b Fm(:)83 b(39)p 488 1393 84 4 v -1 w(,)34 b(40)p 628 +1393 V -1 w(,)g(44,)f(45,)h(46,)f(1519.)0 1481 y Fi(tex)p +110 1481 26 4 v 30 w(str)l(e)l(am)p 377 1481 V 30 w(name)11 +b Fm(:)83 b(42)p 714 1494 84 4 v -1 w(,)37 b(43)p 857 +1494 V -1 w(,)h(44.)0 1583 y Fi(text)11 b Fm(:)83 b(92)p +250 1596 V -1 w(,)25 b(93)p 381 1596 V -1 w(,)g(147)p +512 1596 125 4 v -1 w(,)f(148)p 684 1596 V -1 w(,)h(200)p +857 1596 V -1 w(,)f(208)p 1029 1596 V -1 w(,)h(248)p +1202 1596 V -2 w(,)g(249)p 1374 1596 V -1 w(,)g(250)p +1547 1596 V -2 w(,)g(251)p 1719 1596 V -1 w(,)166 1683 +y(431)p 166 1696 V -1 w(,)g(432)p 339 1696 V -2 w(,)g(433)p +511 1696 V -1 w(,)g(434)p 684 1696 V -2 w(,)g(462,)f(471,)g(472,)f(608) +p 1374 1696 V -1 w(,)i(609)p 1547 1696 V -2 w(,)g(645)p +1719 1696 V -1 w(,)166 1782 y(646)p 166 1795 V -1 w(,)j(866)p +342 1795 V -1 w(,)g(867)p 518 1795 V -1 w(,)g(872)p 694 +1795 V -1 w(,)g(873)p 870 1795 V -1 w(,)g(874)p 1046 +1795 V -1 w(,)g(875)p 1222 1795 V -1 w(,)h(1341)p 1399 +1795 167 4 v -2 w(,)f(1342)p 1616 1795 V -2 w(.)0 1884 +y Fi(text)p 138 1884 26 4 v 29 w(short)13 b Fm(:)83 b(463)p +462 1897 125 4 v -1 w(,)29 b(464)p 639 1897 V -2 w(,)h(468)p +816 1897 V -2 w(,)g(469)p 993 1897 V -2 w(,)g(828)p 1170 +1897 V -2 w(,)f(829)p 1346 1897 V -1 w(,)g(830)p 1523 +1897 V -1 w(,)g(831)p 1700 1897 V -1 w(,)166 1984 y(832)p +166 1997 V -1 w(,)38 b(834)p 352 1997 V -2 w(,)h(835)p +538 1997 V -2 w(,)g(836)p 724 1997 V -2 w(,)f(837)p 909 +1997 V -1 w(.)0 2085 y Fi(text)p 138 2085 26 4 v 29 w(str)13 +b Fm(:)83 b(461)p 378 2098 125 4 v -1 w(,)33 b(462)p +559 2098 V -1 w(,)g(466)p 740 2098 V -1 w(,)g(467)p 921 +2098 V -1 w(,)g(573)p 1102 2098 V -1 w(,)g(574)p 1283 +2098 V -1 w(.)0 2187 y Fi(theta)11 b Fm(:)83 b(1287)p +295 2200 167 4 v -2 w(,)43 b(1290)p 527 2200 V -2 w(.)0 +2289 y Fi(theta)p 183 2289 26 4 v 31 w(total)13 b Fm(:)83 +b(1290)p 489 2302 167 4 v -2 w(.)0 2390 y Fi(thir)l(d)13 +b Fm(:)84 b(13)p 288 2403 84 4 v -1 w(,)44 b(270)p 438 +2403 125 4 v -2 w(,)h(271,)d(960,)h(1136,)f(1137,)h(1184,)166 +2490 y(1186,)f(1188.)0 2592 y Fi(this)11 b Fm(:)84 b(78,)32 +b(143,)g(149,)g(151,)g(153,)f(156,)h(159,)g(164,)g(171,)166 +2691 y(173,)24 b(174,)f(177,)h(179,)f(188,)h(224,)g(239,)f(284,)h(285,) +f(287,)166 2791 y(289,)h(315,)f(320,)h(343,)f(345,)h(346,)g(349,)f +(350,)h(351,)f(353,)166 2891 y(356,)h(357,)f(388,)h(392,)f(393,)h(395,) +g(409,)f(411,)h(415,)f(418,)166 2990 y(431,)h(432,)f(442,)h(443,)f +(462,)h(463,)g(478,)f(482,)h(489,)f(493,)166 3090 y(497,)h(499,)f(501,) +h(503,)f(504,)h(507,)g(508,)f(510,)h(512,)f(523,)166 +3190 y(524,)h(526,)f(544,)h(545,)f(557,)h(563,)g(566,)f(568,)h(570,)f +(601,)166 3289 y(622,)h(626,)f(637,)h(646,)f(657,)h(677,)g(678,)f(689,) +h(714,)f(716,)166 3389 y(720,)h(724,)f(726,)h(729,)f(750,)h(751,)g +(752,)f(754,)h(757,)f(762,)166 3488 y(764,)h(768,)f(770,)h(771,)f(776,) +h(780,)g(789,)f(798,)h(802,)f(807,)166 3588 y(813,)h(817,)f(821,)h +(824,)f(840,)h(872,)g(874,)f(881,)h(886,)f(896)p 1719 +3601 V -1 w(,)166 3688 y(901,)34 b(904,)g(912,)g(914,)f(915,)h(916,)g +(920,)g(932,)g(948,)166 3787 y(949,)24 b(953,)h(957,)f(967,)h(999,)f +(1004,)g(1007,)g(1011,)g(1013,)166 3887 y(1016,)h(1027,)g(1037,)g +(1067,)g(1072,)g(1080,)g(1112,)g(1120,)166 3987 y(1126,)g(1127,)g +(1152,)g(1167,)g(1176,)g(1178,)g(1179,)g(1192,)166 4086 +y(1196,)g(1198,)g(1199,)g(1200,)g(1201,)g(1203,)g(1213,)g(1243,)166 +4186 y(1245,)g(1253,)g(1254,)g(1255,)g(1256,)g(1258,)g(1308,)g(1310,) +166 4285 y(1351,)g(1353,)g(1356,)g(1358,)g(1360,)g(1362,)g(1365,)g +(1384,)166 4385 y(1387,)j(1390,)h(1393,)f(1396,)g(1399,)h(1426,)f +(1447.)0 4487 y Fi(this)p 134 4487 26 4 v 31 w(axis)p +305 4487 V 31 w(orientation)11 b Fm(:)84 b(1178)p 848 +4500 167 4 v -2 w(,)35 b(1179.)0 4588 y Fi(this)p 134 +4588 26 4 v 31 w(option)p 391 4588 V 32 w(optind)13 b +Fm(:)83 b(1508)p 763 4601 167 4 v -1 w(.)0 4690 y Fi(this)p +134 4690 26 4 v 31 w(plane)11 b Fm(:)83 b(1176)p 467 +4703 167 4 v -1 w(,)35 b(1177,)e(1178,)g(1179,)g(1181,)h(1188,)166 +4790 y(1268)p 166 4803 V -2 w(.)0 4891 y Fi(thr)l(eshold)14 +b Fm(:)83 b(1516)p 440 4904 V -2 w(.)0 4993 y Fi(time)11 +b Fm(:)83 b(43.)0 5095 y Fk(tm)t Fm(:)h(43.)0 5197 y +Fi(tolower)14 b Fm(:)83 b(313,)27 b(318,)g(346,)h(380,)f(432,)g(561,)g +(867,)g(1134.)0 5298 y Fi(top)p 117 5298 26 4 v 31 w(lft)12 +b Fm(:)83 b(1065)p 335 5311 167 4 v -1 w(.)0 5400 y Fi(top)p +117 5400 26 4 v 31 w(rt)12 b Fm(:)83 b(1065)p 324 5413 +167 4 v -2 w(.)2033 263 y Fi(tr)l(ac)l(e)10 b Fm(:)84 +b(529)p 2323 276 125 4 v -2 w(,)39 b(530)p 2509 276 V +-1 w(,)g(920)p 2696 276 V -2 w(,)g(921)p 2882 276 V -1 +w(.)2033 368 y Fi(tr)l(ac)l(e)p 2211 368 26 4 v 30 w(x)p +2280 368 V 31 w(z)p 2345 368 V 30 w(0)16 b Fm(:)83 b(957)p +2534 381 125 4 v -1 w(.)2033 473 y Fk(T)-8 b(ransform)5 +b Fm(:)84 b(122)p 2575 486 V -2 w(,)35 b(124,)e(125)p +2939 486 V -1 w(,)h(126,)g(127)p 3304 486 V -2 w(,)h(128,)e(129)p +3668 486 V -1 w(,)2199 573 y(130,)24 b(131,)f(133,)h(135,)f(137,)h +(138,)g(141,)f(143,)h(146,)f(148,)2199 673 y(149,)h(150,)f(151,)h(152,) +f(153,)h(155,)g(156,)f(157,)h(158,)f(159,)2199 772 y(160,)h(161,)f +(166,)h(167,)f(168,)h(172,)g(173,)f(174,)h(176,)f(177,)2199 +872 y(178,)h(179,)f(181,)h(182,)f(187,)h(188,)g(189,)f(190,)h(191,)f +(192,)2199 972 y(200,)h(210,)f(216,)h(235,)f(236,)h(238,)g(239,)f(240,) +h(241,)f(242,)2199 1071 y(243,)h(244,)f(245,)h(246,)f(247,)h(264,)g +(341,)f(360,)h(361,)f(362,)2199 1171 y(363,)h(364,)f(365,)h(368,)f +(369,)h(370,)g(371,)f(372,)h(373,)f(375,)2199 1270 y(376,)h(377,)f +(378,)h(379,)f(380,)h(392,)g(393,)f(394,)h(395,)f(396,)2199 +1370 y(397,)h(404,)f(472,)h(474,)f(475,)h(553,)g(556,)f(559,)h(561,)f +(572,)2199 1470 y(580,)h(581,)f(583,)h(584,)f(710,)h(713,)g(714,)f +(716,)h(717,)f(719,)2199 1569 y(720,)34 b(721,)g(722,)g(723,)f(724,)h +(725,)g(726,)g(728,)g(729,)2199 1669 y(730,)g(731,)g(732,)g(738,)f +(739,)h(747,)g(748,)g(749,)g(750,)2199 1769 y(751,)28 +b(752,)f(949,)h(953,)f(957,)h(961,)g(1000,)f(1001,)g(1002,)2199 +1868 y(1003,)e(1004,)g(1006,)g(1007,)g(1008,)g(1009,)g(1010,)g(1011,) +2199 1968 y(1012,)g(1013,)g(1015,)g(1016,)g(1017,)g(1018,)g(1024,)g +(1057,)2199 2068 y(1110,)g(1127,)g(1179,)g(1182,)g(1192,)g(1193,)g +(1194,)g(1195,)2199 2167 y(1196,)g(1197,)g(1198,)g(1199,)g(1200,)g +(1201,)g(1203,)g(1204,)2199 2267 y(1205,)g(1206,)g(1213,)g(1214,)g +(1215,)g(1216,)g(1228,)g(1229,)2199 2366 y(1270,)g(1274,)g(1284,)g +(1346,)g(1347,)g(1348,)g(1350,)g(1351,)2199 2466 y(1352,)g(1353,)g +(1355,)g(1356,)g(1357,)g(1358,)g(1359,)g(1360,)2199 2566 +y(1361,)31 b(1362,)g(1451,)g(1459,)g(1461,)g(1488.)2033 +2671 y Fi(tr)l(ansform)11 b Fm(:)83 b(216)p 2502 2684 +V -2 w(,)29 b(224,)f(236,)f(239,)h(242,)f(245,)h(247,)f(249,)2199 +2770 y(251,)d(256,)f(264)p 2544 2783 V -1 w(,)i(278,)e(300,)h(302,)g +(303,)f(307,)h(341,)f(361,)2199 2870 y(363,)h(365,)f(369,)h(375,)f +(376,)h(378,)g(393,)f(396,)h(397,)f(399,)2199 2970 y(404,)h(405,)f +(407,)h(431,)f(432,)h(434,)g(474,)f(475,)h(486,)f(494,)2199 +3069 y(543,)34 b(545,)g(546,)g(549,)f(553,)h(556)p 3113 +3082 V -1 w(,)h(557,)f(561,)g(570,)2199 3169 y(572,)e(574,)h(580,)f +(581,)g(582,)h(584,)f(597.)2033 3274 y Fi(tr)l(ansforms)11 +b Fm(:)83 b(732.)2033 3379 y Fk(T)-8 b(ransforms)5 b +Fm(:)83 b(122,)39 b(138.)2033 3485 y Fi(triangle)p 2312 +3485 26 4 v 31 w(diameter)15 b Fm(:)83 b(1443)p 2775 +3498 167 4 v -2 w(,)32 b(1447)p 2996 3498 V -2 w(,)g(1448)p +3217 3498 V -2 w(,)g(1449)p 3438 3498 V -2 w(,)g(1450)p +3659 3498 V -2 w(,)2199 3584 y(1451)p 2199 3597 V -2 +w(,)h(1474)p 2421 3597 V -2 w(,)g(1475)p 2643 3597 V +-2 w(,)g(1476)p 2865 3597 V -2 w(,)g(1477)p 3087 3597 +V -2 w(,)g(1478)p 3309 3597 V -2 w(.)2033 3690 y Fi(triangle)p +2312 3690 26 4 v 31 w(r)l(adius)12 b Fm(:)83 b(1436)p +2675 3703 167 4 v -2 w(,)38 b(1440,)f(1443,)f(1467)p +3357 3703 V -2 w(,)i(1471,)2199 3789 y(1474.)2033 3894 +y Fi(triangles)12 b Fm(:)83 b(1449)p 2459 3907 V -2 w(,)41 +b(1476)p 2689 3907 V -2 w(.)2033 4000 y Fi(triangles)p +2346 4000 26 4 v 31 w(size)11 b Fm(:)83 b(1475)p 2620 +4013 167 4 v -2 w(,)39 b(1476)p 2848 4013 V -2 w(.)2033 +4105 y Fi(true)10 b Fm(:)83 b(17,)34 b(32,)g(47,)g(48,)g(49,)g(50,)g +(60,)h(61,)f(63,)g(64,)g(66,)2199 4204 y(72,)28 b(104,)f(112,)g(141,)g +(143,)g(159,)g(161,)g(174,)g(182,)g(188,)2199 4304 y(200,)d(209,)f (216,)h(219,)f(230,)h(253,)g(254,)f(280,)h(283,)f(285,)2199 -2288 y(287,)h(289,)f(290,)h(292,)f(294,)h(296,)g(300,)f(301,)h(312,)f -(314,)2199 2387 y(317,)h(319,)f(322,)h(324,)f(327,)h(329,)g(332,)f -(334,)h(337,)f(339,)2199 2487 y(346,)h(349,)f(350,)h(351,)f(355,)h -(356,)g(357,)f(380,)h(393,)f(395,)2199 2586 y(399,)h(400,)f(401,)h +4404 y(287,)h(289,)f(290,)h(292,)f(294,)h(296,)g(300,)f(301,)h(312,)f +(314,)2199 4503 y(317,)h(319,)f(322,)h(324,)f(327,)h(329,)g(332,)f +(334,)h(337,)f(339,)2199 4603 y(346,)h(349,)f(350,)h(351,)f(355,)h +(356,)g(357,)f(380,)h(393,)f(395,)2199 4703 y(399,)h(400,)f(401,)h (405,)f(411,)h(418,)g(427,)f(431,)h(432,)f(441,)2199 -2686 y(443,)h(446,)f(448,)h(452,)f(458,)h(461,)g(462,)f(464,)h(467,)f -(469,)2199 2786 y(472,)h(506,)f(507,)h(510,)f(517,)h(520,)g(527,)f -(529,)h(530,)f(541,)2199 2885 y(544,)h(546,)f(548,)h(549,)f(551,)h -(552,)g(553,)f(561,)h(574,)f(603,)2199 2985 y(605,)h(606,)f(624,)h +4802 y(443,)h(446,)f(448,)h(452,)f(458,)h(461,)g(462,)f(464,)h(467,)f +(469,)2199 4902 y(472,)h(506,)f(507,)h(510,)f(517,)h(520,)g(527,)f +(529,)h(530,)f(541,)2199 5001 y(544,)h(546,)f(548,)h(549,)f(551,)h +(552,)g(553,)f(561,)h(574,)f(603,)2199 5101 y(605,)h(606,)f(624,)h (637,)f(641,)h(644,)g(655,)f(661,)h(664,)f(666,)2199 -3085 y(669,)h(671,)f(674,)h(676,)f(678,)h(681,)g(683,)f(685,)h(687,)f -(690,)2199 3184 y(698,)h(703,)f(726,)h(743,)f(769,)h(771,)g(776,)f -(785,)h(787,)f(802,)2199 3284 y(807,)h(824,)f(830,)h(835,)f(840,)h -(842,)g(844,)f(847,)h(849,)f(855,)2199 3383 y(856,)h(857,)f(859,)h -(861,)f(863,)h(866,)g(872,)f(873,)h(874,)f(875,)2199 -3483 y(876,)h(882,)f(894,)h(897,)f(901,)h(903,)g(905,)f(909,)h(912,)f -(913,)2199 3583 y(946,)h(950,)f(951,)h(958,)f(964,)h(966,)g(967,)f -(982,)h(985,)f(988,)2199 3682 y(992,)30 b(993,)h(1027,)f(1030,)f(1033,) -h(1034,)g(1037,)g(1039,)2199 3782 y(1059,)25 b(1062,)g(1067,)g(1072,)g -(1074,)g(1102,)g(1105,)g(1110,)2199 3882 y(1112,)g(1119,)g(1121,)g -(1122,)g(1123,)g(1159,)g(1170,)g(1171,)2199 3981 y(1173,)g(1174,)g -(1178,)g(1179,)g(1180,)g(1181,)g(1183,)g(1187,)2199 4081 -y(1188,)g(1189,)g(1190,)g(1235,)g(1238,)g(1243,)g(1245,)g(1253,)2199 -4180 y(1254,)g(1262,)g(1263,)g(1279,)g(1285,)g(1295,)g(1297,)g(1299,) -2199 4280 y(1303,)g(1306,)g(1312,)g(1335,)g(1336,)g(1339,)g(1362,)g -(1365,)2199 4380 y(1367,)g(1373,)g(1375,)g(1379,)g(1382,)g(1385,)g -(1388,)g(1391,)2199 4479 y(1394,)g(1411,)g(1413,)g(1415,)g(1417,)g -(1435,)g(1438,)g(1445,)2199 4579 y(1446,)g(1452,)g(1455,)g(1458,)g -(1459,)g(1466,)g(1469,)g(1471,)2199 4679 y(1472,)31 b(1473,)g(1480,)g -(1483,)g(1485,)g(1503.)2033 4782 y Fi(trunc)8 b Fm(:)83 -b(21)p 2340 4795 84 4 v -1 w(,)39 b(22)p 2485 4795 V --1 w(,)g(97,)f(98,)h(99.)2033 4886 y Fk(T)-8 b(runc)p -2282 4886 29 5 v 41 w(Octahedron)6 b Fm(:)83 b(401,)38 -b(1424,)h(1476)p 3335 4899 167 4 v -2 w(,)h(1477,)2199 -4985 y(1479,)34 b(1480)p 2424 4998 V -2 w(,)i(1482,)d(1483)p -2873 4998 V -2 w(,)j(1485.)2033 5089 y Fi(tt)11 b Fm(:)83 -b(43)p 2206 5102 84 4 v -1 w(.)2033 5193 y Fi(t0)16 b -Fm(:)83 b(954)p 2225 5206 125 4 v -2 w(,)42 b(958,)f(1177)p -2604 5206 167 4 v -2 w(.)2033 5296 y Fi(t1)16 b Fm(:)83 -b(946)p 2225 5309 125 4 v -2 w(,)45 b(1177)p 2417 5309 -167 4 v -2 w(.)2033 5400 y Fi(t2)16 b Fm(:)83 b(946)p -2225 5413 125 4 v -2 w(.)p eop end -%%Page: 503 503 -TeXDict begin 503 502 bop 0 83 a Fn(x)p Fm(1517)139 b -Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(503)0 263 y Fi(t3)16 -b Fm(:)83 b(946)p 192 276 125 4 v -2 w(.)0 364 y Fe(u)p -Fm(:)g(60)p 154 377 84 4 v -1 w(,)39 b(61)p 299 377 V --1 w(,)g(63)p 444 377 V -1 w(,)g(64)p 589 377 V -1 w(,)h(65)p -735 377 V -1 w(,)f(66)p 880 377 V -1 w(.)0 465 y Fi(u)p -50 465 26 4 v 30 w(x)14 b Fm(:)83 b(606)p 234 478 125 -4 v -2 w(.)0 566 y Fi(u)p 50 566 26 4 v 30 w(y)12 b Fm(:)83 -b(606)p 233 579 125 4 v -1 w(.)0 667 y Fi(u)p 50 667 -26 4 v 30 w(z)15 b Fm(:)83 b(606)p 230 680 125 4 v -2 -w(.)0 769 y Fi(unalign)p 270 769 26 4 v 31 w(up)9 b Fm(:)83 -b(561)p 498 782 125 4 v -1 w(,)41 b(572)p 687 782 V -1 -w(.)0 870 y Ff(UNDRAW)r Fm(:)83 b(199)p 372 883 V -2 -w(,)36 b(201)p 555 883 V -2 w(,)f(813,)f(861,)g(1386.)0 -971 y Fi(undr)l(aw)13 b Fm(:)83 b(414,)32 b(425)p 562 -984 V -1 w(,)i(426)p 744 984 V -2 w(,)g(812)p 925 984 -V -2 w(,)g(813)p 1106 984 V -2 w(,)g(814)p 1287 984 V --2 w(,)g(815)p 1468 984 V -1 w(,)f(817)p 1649 984 V -1 -w(,)166 1070 y(818)p 166 1083 V -1 w(,)42 b(1387)p 356 -1083 167 4 v -2 w(,)g(1388)p 587 1083 V -2 w(.)0 1171 -y Fi(undr)l(aw)p 267 1171 26 4 v 31 w(in)p 370 1171 V -30 w(el)t(lipse)13 b Fm(:)83 b(1221.)0 1273 y Ff(UNDRAWDOT)q -Fm(:)g(199)p 503 1286 125 4 v -2 w(,)37 b(201)p 687 1286 -V -2 w(,)g(415,)e(458.)0 1374 y Fi(undr)l(awdot)13 b -Fm(:)83 b(414)p 493 1387 V -2 w(,)37 b(415)p 677 1387 -V -2 w(,)g(416)p 861 1387 V -2 w(,)g(417)p 1045 1387 -V -2 w(.)0 1475 y Ff(UNFILL)r Fm(:)83 b(199)p 372 1488 -V -2 w(,)36 b(201)p 555 1488 V -2 w(,)f(821,)f(861,)g(1389.)0 -1576 y Fi(un\014l)t(l)12 b Fm(:)83 b(820)p 303 1589 V --1 w(,)35 b(821)p 486 1589 V -1 w(,)g(1389,)e(1390)p -893 1589 167 4 v -2 w(,)i(1391)p 1117 1589 V -2 w(.)0 -1677 y Fi(un\014l)t(l)p 190 1677 26 4 v 30 w(dr)l(aw)14 -b Fm(:)83 b(1393.)0 1778 y Ff(UNFILLDRAW)p Fm(:)g(199)p -546 1791 125 4 v -1 w(,)33 b(201)p 727 1791 V -2 w(,)h(824,)d(862,)h -(1392.)0 1879 y Fi(un\014l)t(ldr)l(aw)14 b Fm(:)83 b(823)p -475 1892 V -2 w(,)31 b(824)p 653 1892 V -1 w(,)g(825)p -832 1892 V -1 w(,)g(826)p 1011 1892 V -2 w(,)h(1393)p -1190 1892 167 4 v -2 w(,)f(1394)p 1410 1892 V -2 w(.)0 -1980 y Fi(unit)p 150 1980 26 4 v 30 w(ve)l(ctor)13 b -Fm(:)83 b(350,)24 b(393,)g(395,)g(506,)g(507)p 1201 1993 -125 4 v -2 w(,)i(508)p 1374 1993 V -2 w(,)g(509)p 1547 -1993 V -2 w(,)f(510)p 1719 1993 V -1 w(,)166 2080 y(605,)32 -b(624,)g(897,)f(946,)h(950,)g(951,)g(982,)f(992,)h(1067,)166 -2180 y(1122,)25 b(1159,)g(1173,)g(1178,)g(1188,)g(1223,)g(1224,)g -(1263.)0 2281 y Fi(unsuppr)l(ess)p 397 2281 26 4 v 30 -w(lab)l(els)12 b Fm(:)83 b(230)p 730 2294 125 4 v -1 -w(.)0 2382 y Fi(unsuppr)l(ess)p 397 2382 26 4 v 30 w(output)11 -b Fm(:)83 b(200)p 769 2395 125 4 v -1 w(,)32 b(440)p -949 2395 V -2 w(,)h(441)p 1129 2395 V -2 w(,)f(552,)f(854)p -1488 2395 V -2 w(,)h(855)p 1667 2395 V -1 w(,)166 2481 -y(1372)p 166 2494 167 4 v -2 w(,)44 b(1373)p 399 2494 -V -1 w(.)0 2582 y Fi(up)9 b Fm(:)84 b(556)p 203 2595 +5201 y(669,)h(671,)f(674,)h(676,)f(678,)h(681,)g(683,)f(685,)h(687,)f +(690,)2199 5300 y(698,)h(703,)f(726,)h(743,)f(769,)h(771,)g(776,)f +(785,)h(787,)f(802,)2199 5400 y(807,)h(824,)f(830,)h(835,)f(840,)h +(842,)g(844,)f(847,)h(849,)f(855,)p eop end +%%Page: 508 508 +TeXDict begin 508 507 bop 0 83 a Fm(508)140 b Fl(INDEX)2670 +b(3DLDFPR)n(G)142 b Fn(x)p Fm(1525)166 263 y(856,)24 +b(857,)f(859,)h(861,)f(863,)h(866,)g(872,)f(873,)h(874,)f(875,)166 +363 y(876,)h(882,)f(897,)h(900,)f(904,)h(906,)g(908,)f(912,)h(915,)f +(916,)166 462 y(949,)h(953,)f(954,)h(961,)f(967,)h(969,)g(970,)f(985,)h +(988,)f(991,)166 562 y(995,)30 b(996,)h(1030,)f(1033,)f(1036,)h(1037,)g +(1040,)g(1042,)166 662 y(1062,)25 b(1065,)g(1070,)g(1075,)g(1077,)g +(1107,)g(1110,)g(1115,)166 761 y(1117,)g(1124,)g(1126,)g(1127,)g(1128,) +g(1164,)g(1175,)g(1176,)166 861 y(1178,)g(1179,)g(1183,)g(1184,)g +(1185,)g(1186,)g(1188,)g(1192,)166 960 y(1193,)g(1194,)g(1195,)g(1240,) +g(1243,)g(1248,)g(1250,)g(1258,)166 1060 y(1259,)g(1267,)g(1268,)g +(1284,)g(1290,)g(1300,)g(1302,)g(1304,)166 1160 y(1308,)g(1311,)g +(1317,)g(1340,)g(1341,)g(1344,)g(1367,)g(1370,)166 1259 +y(1372,)g(1378,)g(1380,)g(1384,)g(1387,)g(1390,)g(1393,)g(1396,)166 +1359 y(1399,)g(1416,)g(1418,)g(1420,)g(1422,)g(1440,)g(1443,)g(1450,) +166 1459 y(1451,)g(1457,)g(1460,)g(1463,)g(1464,)g(1471,)g(1474,)g +(1476,)166 1558 y(1477,)31 b(1478,)g(1485,)g(1488,)g(1490,)g(1508.)0 +1660 y Fi(trunc)8 b Fm(:)83 b(21)p 307 1673 84 4 v -1 +w(,)39 b(22)p 452 1673 V -1 w(,)g(97,)f(98,)h(99.)0 1761 +y Fk(T)-8 b(runc)p 249 1761 29 5 v 41 w(Octahedron)6 +b Fm(:)83 b(401,)38 b(1429,)g(1481)p 1301 1774 167 4 +v -1 w(,)i(1482,)166 1861 y(1484,)34 b(1485)p 391 1874 +V -2 w(,)i(1487,)d(1488)p 840 1874 V -2 w(,)j(1490.)0 +1962 y Fi(tt)11 b Fm(:)83 b(43)p 173 1975 84 4 v -1 w(.)0 +2064 y Fi(t0)16 b Fm(:)83 b(957)p 192 2077 125 4 v -2 +w(,)42 b(961,)f(1182)p 571 2077 167 4 v -2 w(.)0 2165 +y Fi(t1)16 b Fm(:)83 b(949)p 192 2178 125 4 v -2 w(,)45 +b(1182)p 384 2178 167 4 v -2 w(.)0 2266 y Fi(t2)16 b +Fm(:)83 b(949)p 192 2279 125 4 v -2 w(.)0 2368 y Fi(t3)16 +b Fm(:)83 b(949)p 192 2381 V -2 w(.)0 2469 y Fe(u)p Fm(:)g(60)p +154 2482 84 4 v -1 w(,)39 b(61)p 299 2482 V -1 w(,)g(63)p +444 2482 V -1 w(,)g(64)p 589 2482 V -1 w(,)h(65)p 735 +2482 V -1 w(,)f(66)p 880 2482 V -1 w(.)0 2571 y Fi(u)p +50 2571 26 4 v 30 w(x)14 b Fm(:)83 b(606)p 234 2584 125 +4 v -2 w(.)0 2672 y Fi(u)p 50 2672 26 4 v 30 w(y)12 b +Fm(:)83 b(606)p 233 2685 125 4 v -1 w(.)0 2774 y Fi(u)p +50 2774 26 4 v 30 w(z)15 b Fm(:)83 b(606)p 230 2787 125 +4 v -2 w(.)0 2875 y Fi(unalign)p 270 2875 26 4 v 31 w(up)9 +b Fm(:)83 b(561)p 498 2888 125 4 v -1 w(,)41 b(572)p +687 2888 V -1 w(.)0 2976 y Ff(UNDRAW)r Fm(:)83 b(199)p +372 2989 V -2 w(,)36 b(201)p 555 2989 V -2 w(,)f(813,)f(861,)g(1391.)0 +3078 y Fi(undr)l(aw)13 b Fm(:)83 b(414,)32 b(425)p 562 +3091 V -1 w(,)i(426)p 744 3091 V -2 w(,)g(812)p 925 3091 +V -2 w(,)g(813)p 1106 3091 V -2 w(,)g(814)p 1287 3091 +V -2 w(,)g(815)p 1468 3091 V -1 w(,)f(817)p 1649 3091 +V -1 w(,)166 3177 y(818)p 166 3190 V -1 w(,)42 b(1392)p +356 3190 167 4 v -2 w(,)g(1393)p 587 3190 V -2 w(.)0 +3279 y Fi(undr)l(aw)p 267 3279 26 4 v 31 w(in)p 370 3279 +V 30 w(el)t(lipse)13 b Fm(:)83 b(1226.)0 3380 y Ff(UNDRAWDOT)q +Fm(:)g(199)p 503 3393 125 4 v -2 w(,)37 b(201)p 687 3393 +V -2 w(,)g(415,)e(458.)0 3482 y Fi(undr)l(awdot)13 b +Fm(:)83 b(414)p 493 3495 V -2 w(,)37 b(415)p 677 3495 +V -2 w(,)g(416)p 861 3495 V -2 w(,)g(417)p 1045 3495 +V -2 w(.)0 3583 y Ff(UNFILL)r Fm(:)83 b(199)p 372 3596 +V -2 w(,)36 b(201)p 555 3596 V -2 w(,)f(821,)f(861,)g(1394.)0 +3685 y Fi(un\014l)t(l)12 b Fm(:)83 b(820)p 303 3698 V +-1 w(,)35 b(821)p 486 3698 V -1 w(,)g(1394,)e(1395)p +893 3698 167 4 v -2 w(,)i(1396)p 1117 3698 V -2 w(.)0 +3786 y Fi(un\014l)t(l)p 190 3786 26 4 v 30 w(dr)l(aw)14 +b Fm(:)83 b(1398.)0 3888 y Ff(UNFILLDRAW)p Fm(:)g(199)p +546 3901 125 4 v -1 w(,)33 b(201)p 727 3901 V -2 w(,)h(824,)d(862,)h +(1397.)0 3989 y Fi(un\014l)t(ldr)l(aw)14 b Fm(:)83 b(823)p +475 4002 V -2 w(,)31 b(824)p 653 4002 V -1 w(,)g(825)p +832 4002 V -1 w(,)g(826)p 1011 4002 V -2 w(,)h(1398)p +1190 4002 167 4 v -2 w(,)f(1399)p 1410 4002 V -2 w(.)0 +4090 y Fi(unit)p 150 4090 26 4 v 30 w(ve)l(ctor)13 b +Fm(:)83 b(350,)24 b(393,)g(395,)g(506,)g(507)p 1201 4103 +125 4 v -2 w(,)i(508)p 1374 4103 V -2 w(,)g(509)p 1547 +4103 V -2 w(,)f(510)p 1719 4103 V -1 w(,)166 4190 y(605,)32 +b(624,)g(900,)f(949,)h(953,)g(954,)g(985,)f(995,)h(1070,)166 +4290 y(1127,)25 b(1164,)g(1178,)g(1183,)g(1193,)g(1228,)g(1229,)g +(1268.)0 4391 y Fi(unsuppr)l(ess)p 397 4391 26 4 v 30 +w(lab)l(els)12 b Fm(:)83 b(230)p 730 4404 125 4 v -1 +w(.)0 4493 y Fi(unsuppr)l(ess)p 397 4493 26 4 v 30 w(output)11 +b Fm(:)83 b(200)p 769 4506 125 4 v -1 w(,)32 b(440)p +949 4506 V -2 w(,)h(441)p 1129 4506 V -2 w(,)f(552,)f(854)p +1488 4506 V -2 w(,)h(855)p 1667 4506 V -1 w(,)166 4592 +y(1377)p 166 4605 167 4 v -2 w(,)44 b(1378)p 399 4605 +V -1 w(.)0 4694 y Fi(up)9 b Fm(:)84 b(556)p 203 4707 125 4 v -2 w(,)29 b(557,)f(559,)f(561,)h(570,)g(572,)f(574,)h(579,)g -(920.)0 2684 y Fi(use)p 122 2684 26 4 v 30 w(name)11 -b Fm(:)83 b(56)p 459 2697 84 4 v -1 w(,)39 b(59,)g(61,)f(64,)g(66,)h -(69,)f(71,)g(74,)h(75,)166 2783 y(83,)k(101,)f(409.)0 -2884 y Fi(user)p 157 2884 26 4 v 30 w(c)l(o)l(or)l(dinates)12 -b Fm(:)83 b(264)p 701 2897 125 4 v -1 w(,)36 b(278,)f(300,)f(303,)h -(313,)f(318,)166 2984 y(431,)44 b(635.)0 3085 y Fi(user)p -157 3085 26 4 v 30 w(tr)l(ansform)11 b Fm(:)83 b(189)p -651 3098 125 4 v -1 w(,)37 b(190)p 836 3098 V -2 w(,)g(283.)0 -3186 y Ff(USER_VALUE)p Fm(:)83 b(264.)0 3287 y Ff(USER_VALUES)p -Fm(:)g(264)p 590 3300 V -2 w(,)36 b(265)p 773 3300 V --2 w(,)g(463,)d(464.)0 3388 y Ff(USER_VALUES_X_Y)n Fm(:)83 -b(264)p 764 3401 V -1 w(,)35 b(265)p 947 3401 V -1 w(,)g(463.)0 -3489 y Fe(v)s Fm(:)83 b(315)p 149 3502 V -1 w(,)32 b(432)p -329 3502 V -2 w(,)g(443)p 508 3502 V -1 w(,)g(549)p 688 -3502 V -2 w(,)g(840)p 867 3502 V -1 w(,)g(867)p 1047 -3502 V -2 w(,)g(993)p 1226 3502 V -1 w(,)g(1360)p 1406 -3502 167 4 v -2 w(,)g(1362)p 1627 3502 V -2 w(,)166 3589 -y(1378)p 166 3602 V -2 w(,)40 b(1379)p 395 3602 V -2 -w(,)f(1381)p 623 3602 V -2 w(,)h(1382)p 852 3602 V -2 -w(,)f(1428)p 1080 3602 V -2 w(,)h(1446)p 1309 3602 V --2 w(,)f(1460)p 1537 3602 V -2 w(,)166 3689 y(1473)p -166 3702 V -2 w(,)44 b(1500)p 399 3702 V -1 w(.)0 3790 -y Fi(v)p 43 3790 26 4 v 31 w(c)l(o)l(or)l(d)13 b Fm(:)83 -b(957)p 375 3803 125 4 v -1 w(.)0 3891 y Fi(v)p 43 3891 -26 4 v 31 w(inter)l(c)l(ept)12 b Fm(:)83 b(957)p 498 -3904 125 4 v -2 w(,)38 b(1131)p 683 3904 167 4 v -2 w(,)g(1132)p -910 3904 V -2 w(.)0 3992 y Fi(v)p 43 3992 26 4 v 31 w(length)11 -b Fm(:)83 b(1223)p 400 4005 167 4 v -2 w(,)41 b(1224)p -630 4005 V -2 w(.)0 4093 y Fi(v)p 43 4093 26 4 v 31 w(x)13 -b Fm(:)84 b(606)p 228 4106 125 4 v -2 w(.)0 4194 y Fi(v)p -43 4194 26 4 v 31 w(y)12 b Fm(:)83 b(606)p 227 4207 125 -4 v -2 w(.)0 4295 y Fi(v)p 43 4295 26 4 v 31 w(z)14 b -Fm(:)83 b(606)p 223 4308 125 4 v -1 w(.)0 4396 y Fi(va)p -85 4396 26 4 v 31 w(ar)l(g)12 b Fm(:)83 b(669,)37 b(671,)g(674,)g(676.) -0 4497 y Fi(va)p 85 4497 V 31 w(end)13 b Fm(:)83 b(669,)37 -b(671,)g(674,)g(676.)0 4599 y Fi(va)p 85 4599 V 31 w(start)12 -b Fm(:)83 b(669,)36 b(671,)g(674,)h(676.)0 4700 y Fk(v)-5 -b(alarra)m(y)8 b Fm(:)83 b(15,)34 b(23,)f(200,)g(264,)g(277,)g(312,)g -(313,)g(314,)166 4799 y(315,)h(399,)g(405,)g(432,)f(444,)h(550,)g(551,) -g(654,)g(845,)166 4899 y(867,)k(1291,)f(1362,)g(1363.)0 -5000 y Fk(v)-5 b(alarra)m(ys)7 b Fm(:)83 b(277.)0 5101 -y Fk(v)m(ector)6 b Fm(:)83 b(115,)33 b(116,)g(200,)f(216,)h(249,)g -(409,)g(442,)f(443,)166 5201 y(453,)24 b(457,)f(462,)h(543,)f(545,)h -(546,)g(548,)f(549,)h(553,)f(654,)166 5300 y(657,)h(659,)f(685,)h(708,) -f(734,)h(739,)g(741,)f(743,)h(765,)f(766,)166 5400 y(770,)h(771,)f +(923.)0 4795 y Fi(use)p 122 4795 26 4 v 30 w(name)11 +b Fm(:)83 b(56)p 459 4808 84 4 v -1 w(,)39 b(59,)g(61,)f(64,)g(66,)h +(69,)f(71,)g(74,)h(75,)166 4895 y(83,)k(101,)f(409.)0 +4996 y Fi(user)p 157 4996 26 4 v 30 w(c)l(o)l(or)l(dinates)12 +b Fm(:)83 b(264)p 701 5009 125 4 v -1 w(,)36 b(278,)f(300,)f(303,)h +(313,)f(318,)166 5096 y(431,)44 b(635.)0 5197 y Fi(user)p +157 5197 26 4 v 30 w(tr)l(ansform)11 b Fm(:)83 b(189)p +651 5210 125 4 v -1 w(,)37 b(190)p 836 5210 V -2 w(,)g(283.)0 +5299 y Ff(USER_VALUE)p Fm(:)83 b(264.)0 5400 y Ff(USER_VALUES)p +Fm(:)g(264)p 590 5413 V -2 w(,)36 b(265)p 773 5413 V +-2 w(,)g(463,)d(464.)2033 263 y Ff(USER_VALUES_X_Y)n +Fm(:)83 b(264)p 2797 276 V -1 w(,)35 b(265)p 2980 276 +V -1 w(,)g(463.)2033 364 y Fe(v)s Fm(:)83 b(315)p 2182 +377 V -1 w(,)32 b(432)p 2362 377 V -2 w(,)g(443)p 2541 +377 V -1 w(,)g(549)p 2721 377 V -2 w(,)g(840)p 2900 377 +V -1 w(,)g(867)p 3080 377 V -2 w(,)g(996)p 3259 377 V +-1 w(,)g(1365)p 3439 377 167 4 v -2 w(,)g(1367)p 3660 +377 V -2 w(,)2199 464 y(1383)p 2199 477 V -2 w(,)40 b(1384)p +2428 477 V -2 w(,)f(1386)p 2656 477 V -2 w(,)h(1387)p +2885 477 V -2 w(,)f(1433)p 3113 477 V -2 w(,)h(1451)p +3342 477 V -2 w(,)f(1465)p 3570 477 V -2 w(,)2199 564 +y(1478)p 2199 577 V -2 w(,)44 b(1505)p 2432 577 V -1 +w(.)2033 665 y Fi(v)p 2076 665 26 4 v 31 w(c)l(o)l(or)l(d)13 +b Fm(:)83 b(960)p 2408 678 125 4 v -1 w(.)2033 767 y +Fi(v)p 2076 767 26 4 v 31 w(inter)l(c)l(ept)12 b Fm(:)83 +b(960)p 2531 780 125 4 v -2 w(,)38 b(1136)p 2716 780 +167 4 v -2 w(,)g(1137)p 2943 780 V -2 w(.)2033 868 y +Fi(v)p 2076 868 26 4 v 31 w(length)11 b Fm(:)83 b(1228)p +2433 881 167 4 v -2 w(,)41 b(1229)p 2663 881 V -2 w(.)2033 +969 y Fi(v)p 2076 969 26 4 v 31 w(x)14 b Fm(:)83 b(606)p +2261 982 125 4 v -2 w(.)2033 1071 y Fi(v)p 2076 1071 +26 4 v 31 w(y)12 b Fm(:)83 b(606)p 2260 1084 125 4 v +-2 w(.)2033 1172 y Fi(v)p 2076 1172 26 4 v 31 w(z)14 +b Fm(:)83 b(606)p 2256 1185 125 4 v -1 w(.)2033 1274 +y Fi(va)p 2118 1274 26 4 v 31 w(ar)l(g)12 b Fm(:)83 b(669,)37 +b(671,)g(674,)g(676.)2033 1375 y Fi(va)p 2118 1375 V +31 w(end)13 b Fm(:)83 b(669,)37 b(671,)g(674,)g(676.)2033 +1477 y Fi(va)p 2118 1477 V 31 w(start)12 b Fm(:)83 b(669,)36 +b(671,)g(674,)h(676.)2033 1578 y Fk(v)-5 b(alarra)m(y)8 +b Fm(:)83 b(15,)34 b(23,)f(200,)g(264,)g(277,)g(312,)g(313,)g(314,)2199 +1678 y(315,)h(399,)g(405,)g(432,)f(444,)h(550,)g(551,)g(654,)g(845,) +2199 1777 y(867,)k(1296,)f(1367,)g(1368.)2033 1879 y +Fk(v)-5 b(alarra)m(ys)7 b Fm(:)83 b(277.)2033 1980 y +Fk(v)m(ector)6 b Fm(:)83 b(115,)33 b(116,)g(200,)f(216,)h(249,)g(409,)g +(442,)f(443,)2199 2080 y(453,)24 b(457,)f(462,)h(543,)f(545,)h(546,)g +(548,)f(549,)h(553,)f(654,)2199 2179 y(657,)h(659,)f(685,)h(708,)f +(734,)h(739,)g(741,)f(743,)h(765,)f(766,)2199 2279 y(770,)h(771,)f (791,)h(830,)f(839,)h(840,)g(843,)f(856,)h(859,)f(867,)2199 -263 y(895,)34 b(897,)g(911,)g(985,)f(987,)h(992,)g(993,)g(994,)g(996,) -2199 363 y(1118,)25 b(1122,)g(1254,)g(1281,)g(1282,)g(1284,)g(1285,)g -(1291,)2199 462 y(1297,)g(1303,)g(1337,)g(1339,)g(1342,)g(1344,)g -(1359,)g(1360,)2199 562 y(1362,)g(1374,)g(1375,)g(1378,)g(1379,)g -(1381,)g(1382,)g(1384,)2199 662 y(1385,)g(1388,)g(1391,)g(1394,)g -(1413,)g(1419,)g(1427,)g(1428,)2199 761 y(1443,)g(1444,)g(1446,)g -(1456,)g(1457,)g(1458,)g(1460,)g(1469,)2199 861 y(1470,)j(1471,)h -(1473,)f(1483,)g(1484,)h(1485,)f(1500.)2033 962 y Fk(v)m(ectors)6 -b Fm(:)83 b(1374.)2033 1063 y Fi(verb)l(ose)11 b Fm(:)83 -b(17,)25 b(357)p 2541 1076 125 4 v -1 w(,)g(872)p 2714 -1076 V -1 w(,)g(873)p 2887 1076 V -1 w(,)g(874)p 3060 -1076 V -1 w(,)g(875)p 3233 1076 V -1 w(,)g(901)p 3406 -1076 V -1 w(,)g(903,)f(988,)2199 1163 y(1170)p 2199 1176 -167 4 v -2 w(,)30 b(1171)p 2418 1176 V -2 w(,)h(1181,)d(1183,)g(1184)p -3076 1176 V -2 w(,)j(1262)p 3296 1176 V -2 w(,)f(1263)p -3515 1176 V -2 w(.)2033 1264 y Ff(VERBOSE_GLOBAL)o Fm(:)83 -b(17)p 2754 1277 84 4 v -1 w(,)29 b(18)p 2889 1277 V --1 w(,)h(872,)d(873,)h(874,)g(875,)g(901,)2199 1364 y(1170,)34 -b(1171,)g(1262,)f(1263,)h(1503.)2033 1465 y Ff(VERBOSE_INDEX)o -Fm(:)83 b(1503)p 2710 1478 167 4 v -2 w(.)2033 1566 y -Ff(VERSION_INDEX)o Fm(:)g(1503)p 2710 1579 V -2 w(.)2033 -1667 y Ff(VERSION_3DLDF)o Fm(:)g(19)p 2710 1680 84 4 -v -1 w(,)33 b(20)p 2849 1680 V -1 w(,)f(1503,)f(1507,)g(1508,)f(1510,) -2199 1767 y(1511.)2033 1868 y Fi(vertex)14 b Fm(:)83 -b(1031)p 2369 1881 167 4 v -2 w(.)2033 1969 y Fi(vertex)p -2254 1969 26 4 v 30 w(r)l(adius)12 b Fm(:)83 b(1426)p -2616 1982 167 4 v -2 w(,)28 b(1435,)f(1438,)f(1452,)h(1455,)f(1466,) -2199 2069 y(1469,)40 b(1480,)f(1483.)2033 2170 y Fi(vertic)l(al)14 -b Fm(:)83 b(400)p 2414 2183 125 4 v -2 w(.)2033 2272 -y Fi(vertic)l(es)12 b Fm(:)83 b(1400)p 2421 2285 167 -4 v -2 w(,)26 b(1411,)e(1413,)g(1415,)g(1435,)g(1438,)g(1452,)2199 -2371 y(1455,)34 b(1466,)g(1469,)f(1480,)h(1483.)2033 -2472 y Fi(view)p 2194 2472 26 4 v 32 w(c)l(o)l(or)l(dinates)12 -b Fm(:)83 b(264)p 2740 2485 125 4 v -2 w(,)36 b(278,)e(300,)h(303,)f -(313,)g(318,)2199 2572 y(431,)44 b(635.)2033 2673 y Ff(VIEW_VALUE)p -Fm(:)83 b(264.)2033 2774 y Ff(VIEW_VALUES)p Fm(:)g(264)p -2623 2787 V -2 w(,)33 b(265)p 2803 2787 V -1 w(,)g(463,)f(464,)f(830.) -2033 2876 y Ff(VIEW_VALUES_X_Y)n Fm(:)83 b(264)p 2797 -2889 V -1 w(,)33 b(265)p 2978 2889 V -2 w(,)h(463,)d(829.)2033 -2977 y Fi(violet)13 b Fm(:)83 b(108,)37 b(112)p 2530 -2990 V -1 w(,)h(113)p 2716 2990 V -2 w(,)h(1500.)2033 -3078 y Fi(violet)p 2230 3078 26 4 v 32 w(r)l(e)l(d)13 -b Fm(:)83 b(108,)35 b(112)p 2667 3091 125 4 v -2 w(,)i(113)p -2851 3091 V -2 w(,)g(1500.)2033 3179 y Fi(vx)14 b Fm(:)83 -b(644)p 2230 3192 V -1 w(.)2033 3281 y Fi(vy)12 b Fm(:)83 -b(644)p 2229 3294 V -1 w(.)2033 3382 y Fi(vz)15 b Fm(:)83 -b(644)p 2226 3395 V -2 w(.)2033 3483 y Fi(v0)16 b Fm(:)83 -b(350)p 2235 3496 V -1 w(.)2033 3584 y Fi(v1)16 b Fm(:)83 -b(350)p 2235 3597 V -1 w(.)2033 3686 y Fi(v2)16 b Fm(:)83 -b(350)p 2235 3699 V -1 w(.)2033 3787 y Fe(w)s Fm(:)g(1414)p -2201 3800 167 4 v -2 w(,)41 b(1415)p 2431 3800 V -2 w(,)h(1428)p -2662 3800 V -2 w(.)2033 3888 y Fi(w)p 2093 3888 26 4 -v 31 w(x)13 b Fm(:)84 b(606)p 2278 3901 125 4 v -2 w(.)2033 -3989 y Fi(w)p 2093 3989 26 4 v 31 w(y)12 b Fm(:)83 b(606)p -2277 4002 125 4 v -2 w(.)2033 4090 y Fi(w)p 2093 4090 -26 4 v 31 w(z)14 b Fm(:)83 b(606)p 2273 4103 125 4 v --1 w(.)2033 4192 y Fi(web)10 b Fm(:)83 b(1472.)2033 4293 -y Fi(white)11 b Fm(:)83 b(108,)40 b(112)p 2527 4306 V --1 w(,)h(113)p 2716 4306 V -2 w(.)2033 4394 y Fi(width)12 -b Fm(:)83 b(1408)p 2343 4407 167 4 v -2 w(,)39 b(1415,)f(1421.)2033 -4495 y Fi(world)p 2233 4495 26 4 v 32 w(c)l(o)l(or)l(dinates)12 -b Fm(:)83 b(264)p 2779 4508 125 4 v -1 w(,)33 b(265,)f(277,)g(278,)g -(283,)g(300,)2199 4595 y(303,)24 b(305,)f(313,)h(318,)f(345,)h(346,)g -(349,)f(351,)h(379,)f(381,)2199 4695 y(384,)h(386,)f(389,)h(399,)f -(400,)h(405,)g(431,)f(443,)h(463,)f(476,)2199 4794 y(478,)h(480,)f -(482,)h(484,)f(486,)h(495,)g(498,)f(499,)h(500,)f(501,)2199 -4894 y(502,)30 b(503,)g(508,)h(516,)f(517,)g(531,)g(556,)g(901.)2033 -4995 y Ff(WORLD_VALUE)p Fm(:)83 b(264.)2033 5096 y Ff(WORLD_VALUES)o -Fm(:)g(264)p 2666 5109 V -1 w(,)30 b(265)p 2844 5109 -V -1 w(,)g(463,)f(464,)g(829,)g(830.)2033 5198 y Ff(WORLD_VALUES_X_Y)n -Fm(:)83 b(264)p 2841 5211 V -2 w(,)31 b(265)p 3019 5211 -V -2 w(,)g(463,)d(464,)h(829.)2033 5299 y Ff(WORLD_VALUES_Z)o -Fm(:)83 b(264)p 2754 5312 V -2 w(,)34 b(265)p 2935 5312 -V -2 w(,)g(463,)e(464.)2033 5400 y Fi(write)p 2219 5400 -26 4 v 31 w(fo)l(oters)12 b Fm(:)83 b(45)p 2603 5413 -84 4 v -1 w(,)38 b(46)p 2747 5413 V -1 w(,)h(1511.)p -eop end -%%Page: 504 504 -TeXDict begin 504 503 bop 0 83 a Fm(504)140 b Fl(INDEX)2670 -b(3DLDFPR)n(G)142 b Fn(x)p Fm(1517)0 263 y Fe(x)p Fm(:)84 -b(150)p 154 276 125 4 v -2 w(,)27 b(151)p 328 276 V -2 -w(,)f(155)p 501 276 V -1 w(,)g(156)p 675 276 V -1 w(,)g(158)p -849 276 V -1 w(,)g(159)p 1023 276 V -1 w(,)g(160)p 1197 -276 V -1 w(,)g(161)p 1371 276 V -1 w(,)g(235)p 1545 276 -V -1 w(,)g(236)p 1719 276 V -1 w(,)166 363 y(238)p 166 -376 V -1 w(,)f(239)p 339 376 V -2 w(,)g(241)p 511 376 -V -1 w(,)g(242)p 684 376 V -2 w(,)g(282)p 856 376 V -1 -w(,)g(283)p 1029 376 V -1 w(,)g(284)p 1202 376 V -2 w(,)g(285)p -1374 376 V -1 w(,)g(295)p 1547 376 V -2 w(,)g(296)p 1719 -376 V -1 w(,)166 462 y(360)p 166 475 V -1 w(,)g(361)p -339 475 V -2 w(,)g(362)p 511 475 V -1 w(,)g(363)p 684 -475 V -2 w(,)g(368)p 856 475 V -1 w(,)g(369)p 1029 475 -V -1 w(,)g(375)p 1202 475 V -2 w(,)g(376)p 1374 475 V --1 w(,)g(644)p 1547 475 V -2 w(,)g(713)p 1719 475 V -1 -w(,)166 562 y(714)p 166 575 V -1 w(,)31 b(723)p 345 575 -V -2 w(,)g(724)p 523 575 V -1 w(,)g(728)p 702 575 V -1 -w(,)g(729)p 881 575 V -2 w(,)g(733)p 1059 575 V -1 w(,)g(734)p -1238 575 V -1 w(,)g(1000)p 1417 575 167 4 v -2 w(,)g(1001)p -1637 575 V -2 w(,)166 662 y(1007)p 166 675 V -2 w(,)c(1008)p -382 675 V -2 w(,)g(1012)p 598 675 V -2 w(,)g(1013)p 814 -675 V -2 w(,)g(1017)p 1030 675 V -2 w(,)g(1018)p 1246 -675 V -2 w(,)g(1122)p 1462 675 V -2 w(,)g(1178)p 1678 -675 V -2 w(,)166 761 y(1191)p 166 774 V -2 w(,)g(1192)p -382 774 V -2 w(,)g(1193)p 598 774 V -2 w(,)g(1194)p 814 -774 V -2 w(,)g(1203)p 1030 774 V -2 w(,)g(1204)p 1246 -774 V -2 w(,)g(1414)p 1462 774 V -2 w(,)g(1415)p 1678 -774 V -2 w(.)0 866 y Fi(x)p 44 866 26 4 v 30 w(axis)11 -b Fm(:)84 b(946)p 327 879 125 4 v -2 w(.)0 970 y Fi(x)p -44 970 26 4 v 30 w(axis)p 214 970 V 31 w(pt)12 b Fm(:)83 -b(954)p 428 983 125 4 v -1 w(,)35 b(1122)p 611 983 167 -4 v -1 w(,)g(1223)p 836 983 V -2 w(,)h(1224)p 1061 983 -V -2 w(.)0 1075 y Fi(x)p 44 1075 26 4 v 30 w(i)13 b Fm(:)83 -b(535)p 213 1088 125 4 v -1 w(,)35 b(536,)f(537,)g(539,)g(540,)g(541.)0 -1180 y Ff(X_Y)s Fm(:)83 b(946)p 241 1193 V -1 w(,)41 -b(1177)p 430 1193 167 4 v -2 w(,)g(1179.)0 1284 y Ff(X_Z)s -Fm(:)83 b(946)p 241 1297 125 4 v -1 w(,)41 b(1177)p 430 -1297 167 4 v -2 w(,)g(1179.)0 1389 y Fi(xx)13 b Fm(:)83 -b(1198)p 197 1402 V -2 w(,)23 b(1199)p 409 1402 V -2 -w(,)f(1345)p 620 1402 V -2 w(,)h(1346)p 832 1402 V -2 -w(,)f(1350)p 1043 1402 V -2 w(,)h(1351)p 1255 1402 V --2 w(,)f(1354)p 1466 1402 V -2 w(,)h(1355)p 1678 1402 -V -2 w(.)0 1494 y Fi(xy)11 b Fm(:)83 b(152)p 196 1507 -125 4 v -1 w(,)30 b(153)p 374 1507 V -2 w(,)g(200)p 551 -1507 V -2 w(,)g(364)p 728 1507 V -2 w(,)g(365)p 905 1507 -V -1 w(,)f(725)p 1082 1507 V -1 w(,)g(726)p 1259 1507 -V -1 w(,)h(1009)p 1437 1507 167 4 v -2 w(,)f(1010)p 1655 -1507 V -2 w(,)166 1593 y(1195)p 166 1606 V -2 w(,)39 -b(1196)p 394 1606 V -2 w(,)f(1347)p 621 1606 V -2 w(,)h(1348)p -849 1606 V -2 w(.)0 1698 y Fi(xz)14 b Fm(:)83 b(152)p -193 1711 125 4 v -1 w(,)29 b(153)p 370 1711 V -1 w(,)h(200)p -548 1711 V -2 w(,)g(364)p 725 1711 V -1 w(,)f(365)p 902 -1711 V -1 w(,)h(725)p 1080 1711 V -2 w(,)g(726)p 1257 -1711 V -1 w(,)f(1009)p 1434 1711 167 4 v -2 w(,)h(1010)p -1653 1711 V -2 w(,)166 1798 y(1195)p 166 1811 V -2 w(,)39 -b(1196)p 394 1811 V -2 w(,)f(1347)p 621 1811 V -2 w(,)h(1348)p -849 1811 V -2 w(.)0 1902 y Fi(x0)15 b Fm(:)84 b(925)p -203 1915 125 4 v -2 w(.)0 2007 y Fi(x1)15 b Fm(:)84 b(925)p -203 2020 V -2 w(.)0 2112 y Fe(y)s Fm(:)f(150)p 150 2125 -V -2 w(,)27 b(151)p 324 2125 V -1 w(,)g(155)p 499 2125 -V -2 w(,)g(156)p 673 2125 V -1 w(,)f(158)p 847 2125 V --1 w(,)h(159)p 1022 2125 V -2 w(,)g(160)p 1196 2125 V --1 w(,)g(161)p 1371 2125 V -2 w(,)g(235)p 1545 2125 V --1 w(,)f(236)p 1719 2125 V -1 w(,)166 2211 y(238)p 166 -2224 V -1 w(,)f(239)p 339 2224 V -2 w(,)g(241)p 511 2224 -V -1 w(,)g(242)p 684 2224 V -2 w(,)g(282)p 856 2224 V --1 w(,)g(283)p 1029 2224 V -1 w(,)g(284)p 1202 2224 V --2 w(,)g(285)p 1374 2224 V -1 w(,)g(295)p 1547 2224 V --2 w(,)g(296)p 1719 2224 V -1 w(,)166 2311 y(360)p 166 -2324 V -1 w(,)g(361)p 339 2324 V -2 w(,)g(362)p 511 2324 -V -1 w(,)g(363)p 684 2324 V -2 w(,)g(368)p 856 2324 V --1 w(,)g(369)p 1029 2324 V -1 w(,)g(375)p 1202 2324 V --2 w(,)g(376)p 1374 2324 V -1 w(,)g(644)p 1547 2324 V --2 w(,)g(713)p 1719 2324 V -1 w(,)166 2410 y(714)p 166 -2423 V -1 w(,)31 b(723)p 345 2423 V -2 w(,)g(724)p 523 -2423 V -1 w(,)g(728)p 702 2423 V -1 w(,)g(729)p 881 2423 -V -2 w(,)g(733)p 1059 2423 V -1 w(,)g(734)p 1238 2423 -V -1 w(,)g(1000)p 1417 2423 167 4 v -2 w(,)g(1001)p 1637 -2423 V -2 w(,)166 2510 y(1007)p 166 2523 V -2 w(,)c(1008)p -382 2523 V -2 w(,)g(1012)p 598 2523 V -2 w(,)g(1013)p -814 2523 V -2 w(,)g(1017)p 1030 2523 V -2 w(,)g(1018)p -1246 2523 V -2 w(,)g(1178)p 1462 2523 V -2 w(,)g(1191)p -1678 2523 V -2 w(,)166 2610 y(1192)p 166 2623 V -2 w(,)j(1193)p -385 2623 V -2 w(,)h(1194)p 605 2623 V -2 w(,)f(1203)p -824 2623 V -2 w(,)g(1204)p 1043 2623 V -2 w(,)h(1414)p -1263 2623 V -2 w(,)f(1415)p 1482 2623 V -2 w(.)0 2714 -y Fi(y)p 45 2714 26 4 v 31 w(i)13 b Fm(:)83 b(535)p 215 -2727 125 4 v -1 w(,)37 b(536,)g(537,)f(539,)g(541.)0 -2819 y Fi(y)p 45 2819 26 4 v 31 w(int)p 176 2819 V 30 -w(p)10 b Fm(:)83 b(535)p 359 2832 125 4 v -1 w(,)40 b(536,)f(537.)0 -2924 y Fi(y)p 45 2924 26 4 v 31 w(int)p 176 2924 V 30 -w(p)p 248 2924 V 31 w(z)15 b Fm(:)83 b(536)p 429 2937 -125 4 v -2 w(.)0 3028 y Fi(y)p 45 3028 26 4 v 31 w(int)p -176 3028 V 30 w(q)12 b Fm(:)83 b(535)p 357 3041 125 4 -v -1 w(,)40 b(536,)f(537.)0 3133 y Fi(y)p 45 3133 26 -4 v 31 w(int)p 176 3133 V 30 w(q)p 244 3133 V 31 w(z)14 -b Fm(:)83 b(536)p 424 3146 125 4 v -1 w(.)0 3238 y Fi(y)p -45 3238 26 4 v 31 w(shift)13 b Fm(:)83 b(1469)p 344 3251 -167 4 v -2 w(.)0 3342 y Fi(yel)t(low)15 b Fm(:)83 b(108,)36 -b(112)p 527 3355 125 4 v -1 w(,)i(113)p 713 3355 V -2 -w(,)g(1500.)0 3447 y Fi(yel)t(low)p 226 3447 26 4 v 32 -w(gr)l(e)l(en)11 b Fm(:)83 b(108,)34 b(112)p 741 3460 -125 4 v -2 w(,)h(113)p 923 3460 V -1 w(,)g(1500.)0 3551 -y Fi(yx)14 b Fm(:)83 b(152)p 199 3564 V -1 w(,)29 b(153)p -376 3564 V -1 w(,)g(200)p 553 3564 V -1 w(,)g(364)p 730 -3564 V -1 w(,)g(365)p 907 3564 V -1 w(,)g(725)p 1084 -3564 V -1 w(,)g(726)p 1261 3564 V -1 w(,)g(1009)p 1438 -3564 167 4 v -2 w(,)h(1010)p 1657 3564 V -2 w(,)166 3651 -y(1195)p 166 3664 V -2 w(,)39 b(1196)p 394 3664 V -2 -w(,)f(1347)p 621 3664 V -2 w(,)h(1348)p 849 3664 V -2 -w(.)0 3756 y Fi(yy)12 b Fm(:)83 b(1198)p 198 3769 V -2 -w(,)23 b(1199)p 410 3769 V -2 w(,)f(1345)p 621 3769 V --2 w(,)g(1346)p 832 3769 V -2 w(,)h(1350)p 1044 3769 -V -2 w(,)f(1351)p 1255 3769 V -2 w(,)h(1354)p 1467 3769 -V -2 w(,)f(1355)p 1678 3769 V -2 w(.)0 3860 y Fi(yz)15 -b Fm(:)83 b(152)p 195 3873 125 4 v -2 w(,)30 b(153)p -372 3873 V -1 w(,)f(200)p 549 3873 V -1 w(,)h(364)p 727 -3873 V -2 w(,)g(365)p 904 3873 V -2 w(,)g(725)p 1081 -3873 V -1 w(,)f(726)p 1258 3873 V -1 w(,)g(1009)p 1435 -3873 167 4 v -1 w(,)g(1010)p 1654 3873 V -2 w(,)166 3960 -y(1195)p 166 3973 V -2 w(,)39 b(1196)p 394 3973 V -2 -w(,)f(1347)p 621 3973 V -2 w(,)h(1348)p 849 3973 V -2 -w(.)0 4065 y Fi(y0)16 b Fm(:)83 b(925)p 204 4078 125 -4 v -1 w(.)0 4169 y Fi(y1)16 b Fm(:)83 b(925)p 204 4182 -V -1 w(.)0 4274 y Fe(z)s Fm(:)g(150)p 148 4287 V -1 w(,)27 -b(151)p 323 4287 V -2 w(,)g(155)p 497 4287 V -1 w(,)g(156)p -672 4287 V -1 w(,)g(158)p 847 4287 V -2 w(,)g(159)p 1021 -4287 V -1 w(,)g(160)p 1196 4287 V -2 w(,)g(161)p 1370 -4287 V -1 w(,)g(235)p 1545 4287 V -2 w(,)g(236)p 1719 -4287 V -1 w(,)166 4374 y(238)p 166 4387 V -1 w(,)e(239)p -339 4387 V -2 w(,)g(241)p 511 4387 V -1 w(,)g(242)p 684 -4387 V -2 w(,)g(282)p 856 4387 V -1 w(,)g(283)p 1029 -4387 V -1 w(,)g(284)p 1202 4387 V -2 w(,)g(285)p 1374 -4387 V -1 w(,)g(295)p 1547 4387 V -2 w(,)g(296)p 1719 -4387 V -1 w(,)166 4473 y(360)p 166 4486 V -1 w(,)g(361)p -339 4486 V -2 w(,)g(362)p 511 4486 V -1 w(,)g(363)p 684 -4486 V -2 w(,)g(368)p 856 4486 V -1 w(,)g(369)p 1029 -4486 V -1 w(,)g(375)p 1202 4486 V -2 w(,)g(376)p 1374 -4486 V -1 w(,)g(644)p 1547 4486 V -2 w(,)g(713)p 1719 -4486 V -1 w(,)166 4573 y(714)p 166 4586 V -1 w(,)31 b(723)p -345 4586 V -2 w(,)g(724)p 523 4586 V -1 w(,)g(728)p 702 -4586 V -1 w(,)g(729)p 881 4586 V -2 w(,)g(733)p 1059 -4586 V -1 w(,)g(734)p 1238 4586 V -1 w(,)g(1000)p 1417 -4586 167 4 v -2 w(,)g(1001)p 1637 4586 V -2 w(,)166 4672 -y(1007)p 166 4685 V -2 w(,)c(1008)p 382 4685 V -2 w(,)g(1012)p -598 4685 V -2 w(,)g(1013)p 814 4685 V -2 w(,)g(1017)p -1030 4685 V -2 w(,)g(1018)p 1246 4685 V -2 w(,)g(1122)p -1462 4685 V -2 w(,)g(1191)p 1678 4685 V -2 w(,)166 4772 -y(1192)p 166 4785 V -2 w(,)j(1193)p 385 4785 V -2 w(,)h(1194)p -605 4785 V -2 w(,)f(1203)p 824 4785 V -2 w(,)g(1204)p -1043 4785 V -2 w(,)h(1414)p 1263 4785 V -2 w(,)f(1415)p -1482 4785 V -2 w(.)0 4877 y Fi(z)p 39 4877 26 4 v 30 -w(axis)12 b Fm(:)83 b(946)p 322 4890 125 4 v -1 w(.)0 -4981 y Fi(z)p 39 4981 26 4 v 30 w(axis)p 209 4981 V 31 -w(pt)13 b Fm(:)83 b(954)p 424 4994 125 4 v -2 w(.)0 5086 -y Fi(z)p 39 5086 26 4 v 30 w(i)14 b Fm(:)83 b(535)p 209 -5099 125 4 v -2 w(,)38 b(536,)e(538,)h(540,)f(541.)0 -5191 y Fi(z)p 39 5191 26 4 v 30 w(int)p 169 5191 V 31 -w(p)10 b Fm(:)83 b(538)p 353 5204 125 4 v -2 w(,)41 b(539,)e(540.)0 -5295 y Fi(z)p 39 5295 26 4 v 30 w(int)p 169 5295 V 31 -w(q)12 b Fm(:)83 b(538)p 351 5308 125 4 v -2 w(,)41 b(539,)e(540.)0 -5400 y Ff(Z_Y)s Fm(:)83 b(946)p 241 5413 V -1 w(,)41 -b(1177)p 430 5413 167 4 v -2 w(,)g(1179.)2033 263 y Fi(zx)14 -b Fm(:)83 b(152)p 2226 276 125 4 v -2 w(,)30 b(153)p -2403 276 V -1 w(,)f(200)p 2580 276 V -1 w(,)h(364)p 2758 -276 V -2 w(,)g(365)p 2935 276 V -1 w(,)g(725)p 3113 276 -V -2 w(,)g(726)p 3290 276 V -2 w(,)g(1009)p 3467 276 -167 4 v -2 w(,)g(1010)p 3686 276 V -2 w(,)2199 363 y(1195)p -2199 376 V -2 w(,)39 b(1196)p 2427 376 V -2 w(,)f(1347)p -2654 376 V -2 w(,)h(1348)p 2882 376 V -2 w(.)2033 462 -y Fi(zy)12 b Fm(:)83 b(152)p 2225 475 125 4 v -2 w(,)30 -b(153)p 2402 475 V -1 w(,)g(200)p 2580 475 V -2 w(,)g(364)p -2757 475 V -1 w(,)f(365)p 2934 475 V -1 w(,)h(725)p 3112 -475 V -2 w(,)g(726)p 3289 475 V -1 w(,)g(1009)p 3467 -475 167 4 v -2 w(,)g(1010)p 3686 475 V -2 w(,)2199 562 -y(1195)p 2199 575 V -2 w(,)39 b(1196)p 2427 575 V -2 -w(,)f(1347)p 2654 575 V -2 w(,)h(1348)p 2882 575 V -2 -w(.)2033 662 y Fi(zz)14 b Fm(:)83 b(1198)p 2221 675 V --2 w(,)24 b(1199)p 2434 675 V -2 w(,)g(1345)p 2647 675 -V -2 w(,)g(1346)p 2860 675 V -2 w(,)g(1350)p 3073 675 -V -2 w(,)f(1351)p 3285 675 V -2 w(,)h(1354)p 3498 675 -V -2 w(,)g(1355)p 3711 675 V -2 w(.)2033 761 y Fi(z0)16 -b Fm(:)83 b(925)p 2231 774 125 4 v -1 w(.)2033 861 y -Fi(z1)16 b Fm(:)83 b(925)p 2231 874 V -1 w(.)p eop end -%%Page: 505 505 -TeXDict begin 505 504 bop 0 83 a Fl(3DLDFPR)n(G)2306 -b(NAMES)23 b(OF)g(THE)h(SECTIONS)141 b Fm(505)0 263 y -Fn(h)14 b Fm(Actions)28 b(in)g(main)35 b Fl(1500,)24 -b(1501)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1511.)0 -364 y Fn(h)14 b Fm(All)28 b Fk(Colors)39 b Fl(0)14 b -Fn(i)84 b Fl(Cited)24 b(in)f(sections)i(109)f(and)g(114.)0 -466 y Fn(h)14 b Fm(Chec)n(k)27 b(in)n(tersection)g(p)r(oin)n(t)h(lo)r -(cations)34 b Fl(1184)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1183.) +2379 y(898,)34 b(900,)g(914,)g(988,)f(990,)h(995,)g(996,)g(997,)g(999,) +2199 2478 y(1123,)25 b(1127,)g(1259,)g(1286,)g(1287,)g(1289,)g(1290,)g +(1296,)2199 2578 y(1302,)g(1308,)g(1342,)g(1344,)g(1347,)g(1349,)g +(1364,)g(1365,)2199 2678 y(1367,)g(1379,)g(1380,)g(1383,)g(1384,)g +(1386,)g(1387,)g(1389,)2199 2777 y(1390,)g(1393,)g(1396,)g(1399,)g +(1418,)g(1424,)g(1432,)g(1433,)2199 2877 y(1448,)g(1449,)g(1451,)g +(1461,)g(1462,)g(1463,)g(1465,)g(1474,)2199 2976 y(1475,)j(1476,)h +(1478,)f(1488,)g(1489,)h(1490,)f(1505.)2033 3078 y Fk(v)m(ectors)6 +b Fm(:)83 b(1379.)2033 3179 y Fi(verb)l(ose)11 b Fm(:)83 +b(17,)25 b(357)p 2541 3192 125 4 v -1 w(,)g(872)p 2714 +3192 V -1 w(,)g(873)p 2887 3192 V -1 w(,)g(874)p 3060 +3192 V -1 w(,)g(875)p 3233 3192 V -1 w(,)g(904)p 3406 +3192 V -1 w(,)g(906,)f(991,)2199 3279 y(1175)p 2199 3292 +167 4 v -2 w(,)30 b(1176)p 2418 3292 V -2 w(,)h(1186,)d(1188,)g(1189)p +3076 3292 V -2 w(,)j(1267)p 3296 3292 V -2 w(,)f(1268)p +3515 3292 V -2 w(.)2033 3380 y Ff(VERBOSE_GLOBAL)o Fm(:)83 +b(17)p 2754 3393 84 4 v -1 w(,)29 b(18)p 2889 3393 V +-1 w(,)h(872,)d(873,)h(874,)g(875,)g(904,)2199 3480 y(1175,)34 +b(1176,)g(1267,)f(1268,)h(1508.)2033 3581 y Ff(VERBOSE_INDEX)o +Fm(:)83 b(1508)p 2710 3594 167 4 v -2 w(.)2033 3683 y +Ff(VERSION_INDEX)o Fm(:)g(1508)p 2710 3696 V -2 w(.)2033 +3784 y Ff(VERSION_3DLDF)o Fm(:)g(19)p 2710 3797 84 4 +v -1 w(,)33 b(20)p 2849 3797 V -1 w(,)f(1508,)f(1512,)g(1513,)f(1518,) +2199 3884 y(1519.)2033 3985 y Fi(vertex)14 b Fm(:)83 +b(1034)p 2369 3998 167 4 v -2 w(.)2033 4087 y Fi(vertex)p +2254 4087 26 4 v 30 w(r)l(adius)12 b Fm(:)83 b(1431)p +2616 4100 167 4 v -2 w(,)28 b(1440,)f(1443,)f(1457,)h(1460,)f(1471,) +2199 4186 y(1474,)40 b(1485,)f(1488.)2033 4288 y Fi(vertic)l(al)14 +b Fm(:)83 b(400)p 2414 4301 125 4 v -2 w(.)2033 4389 +y Fi(vertic)l(es)12 b Fm(:)83 b(1405)p 2421 4402 167 +4 v -2 w(,)26 b(1416,)e(1418,)g(1420,)g(1440,)g(1443,)g(1457,)2199 +4489 y(1460,)34 b(1471,)g(1474,)f(1485,)h(1488.)2033 +4590 y Fi(view)p 2194 4590 26 4 v 32 w(c)l(o)l(or)l(dinates)12 +b Fm(:)83 b(264)p 2740 4603 125 4 v -2 w(,)36 b(278,)e(300,)h(303,)f +(313,)g(318,)2199 4690 y(431,)44 b(635.)2033 4791 y Ff(VIEW_VALUE)p +Fm(:)83 b(264.)2033 4893 y Ff(VIEW_VALUES)p Fm(:)g(264)p +2623 4906 V -2 w(,)33 b(265)p 2803 4906 V -1 w(,)g(463,)f(464,)f(830.) +2033 4994 y Ff(VIEW_VALUES_X_Y)n Fm(:)83 b(264)p 2797 +5007 V -1 w(,)33 b(265)p 2978 5007 V -2 w(,)h(463,)d(829.)2033 +5096 y Fi(violet)13 b Fm(:)83 b(108,)37 b(112)p 2530 +5109 V -1 w(,)h(113)p 2716 5109 V -2 w(,)h(1505.)2033 +5197 y Fi(violet)p 2230 5197 26 4 v 32 w(r)l(e)l(d)13 +b Fm(:)83 b(108,)35 b(112)p 2667 5210 125 4 v -2 w(,)i(113)p +2851 5210 V -2 w(,)g(1505.)2033 5299 y Fi(vx)14 b Fm(:)83 +b(644)p 2230 5312 V -1 w(.)2033 5400 y Fi(vy)12 b Fm(:)83 +b(644)p 2229 5413 V -1 w(.)p eop end +%%Page: 509 509 +TeXDict begin 509 508 bop 0 83 a Fn(x)p Fm(1525)139 b +Fl(3DLDFPR)n(G)2671 b(INDEX)141 b Fm(509)0 263 y Fi(vz)15 +b Fm(:)83 b(644)p 193 276 125 4 v -2 w(.)0 364 y Fi(v0)16 +b Fm(:)83 b(350)p 202 377 V -1 w(.)0 465 y Fi(v1)16 b +Fm(:)83 b(350)p 202 478 V -1 w(.)0 567 y Fi(v2)16 b Fm(:)83 +b(350)p 202 580 V -1 w(.)0 668 y Fe(w)s Fm(:)g(1419)p +168 681 167 4 v -2 w(,)41 b(1420)p 398 681 V -2 w(,)h(1433)p +629 681 V -2 w(.)0 769 y Fi(w)p 60 769 26 4 v 31 w(x)13 +b Fm(:)84 b(606)p 245 782 125 4 v -2 w(.)0 870 y Fi(w)p +60 870 26 4 v 31 w(y)12 b Fm(:)83 b(606)p 244 883 125 +4 v -2 w(.)0 972 y Fi(w)p 60 972 26 4 v 31 w(z)14 b Fm(:)83 +b(606)p 240 985 125 4 v -1 w(.)0 1073 y Fi(web)10 b Fm(:)83 +b(1477.)0 1174 y Fi(white)11 b Fm(:)83 b(108,)40 b(112)p +494 1187 V -1 w(,)h(113)p 683 1187 V -2 w(.)0 1275 y +Fi(width)12 b Fm(:)83 b(1413)p 310 1288 167 4 v -2 w(,)39 +b(1420,)f(1426.)0 1377 y Ff(WORDS_BIGENDIAN)n Fm(:)83 +b(1516.)0 1478 y Fi(world)p 200 1478 26 4 v 32 w(c)l(o)l(or)l(dinates) +12 b Fm(:)83 b(264)p 746 1491 125 4 v -1 w(,)33 b(265,)f(277,)g(278,)g +(283,)g(300,)166 1577 y(303,)24 b(305,)f(313,)h(318,)f(345,)h(346,)g +(349,)f(351,)h(379,)f(381,)166 1677 y(384,)h(386,)f(389,)h(399,)f(400,) +h(405,)g(431,)f(443,)h(463,)f(476,)166 1777 y(478,)h(480,)f(482,)h +(484,)f(486,)h(495,)g(498,)f(499,)h(500,)f(501,)166 1876 +y(502,)30 b(503,)g(508,)h(516,)f(517,)g(531,)g(556,)g(904.)0 +1977 y Ff(WORLD_VALUE)p Fm(:)83 b(264.)0 2079 y Ff(WORLD_VALUES)o +Fm(:)g(264)p 633 2092 V -1 w(,)30 b(265)p 811 2092 V +-1 w(,)g(463,)f(464,)g(829,)g(830.)0 2180 y Ff(WORLD_VALUES_X_Y)n +Fm(:)83 b(264)p 808 2193 V -2 w(,)31 b(265)p 986 2193 +V -2 w(,)g(463,)d(464,)h(829.)0 2281 y Ff(WORLD_VALUES_Z)o +Fm(:)83 b(264)p 721 2294 V -2 w(,)34 b(265)p 902 2294 +V -2 w(,)g(463,)e(464.)0 2382 y Fi(write)p 186 2382 26 +4 v 31 w(fo)l(oters)12 b Fm(:)83 b(45)p 570 2395 84 4 +v -1 w(,)38 b(46)p 714 2395 V -1 w(,)h(1519.)0 2484 y +Fe(x)p Fm(:)84 b(150)p 154 2497 125 4 v -2 w(,)27 b(151)p +328 2497 V -2 w(,)f(155)p 501 2497 V -1 w(,)g(156)p 675 +2497 V -1 w(,)g(158)p 849 2497 V -1 w(,)g(159)p 1023 +2497 V -1 w(,)g(160)p 1197 2497 V -1 w(,)g(161)p 1371 +2497 V -1 w(,)g(235)p 1545 2497 V -1 w(,)g(236)p 1719 +2497 V -1 w(,)166 2583 y(238)p 166 2596 V -1 w(,)f(239)p +339 2596 V -2 w(,)g(241)p 511 2596 V -1 w(,)g(242)p 684 +2596 V -2 w(,)g(282)p 856 2596 V -1 w(,)g(283)p 1029 +2596 V -1 w(,)g(284)p 1202 2596 V -2 w(,)g(285)p 1374 +2596 V -1 w(,)g(295)p 1547 2596 V -2 w(,)g(296)p 1719 +2596 V -1 w(,)166 2683 y(360)p 166 2696 V -1 w(,)g(361)p +339 2696 V -2 w(,)g(362)p 511 2696 V -1 w(,)g(363)p 684 +2696 V -2 w(,)g(368)p 856 2696 V -1 w(,)g(369)p 1029 +2696 V -1 w(,)g(375)p 1202 2696 V -2 w(,)g(376)p 1374 +2696 V -1 w(,)g(644)p 1547 2696 V -2 w(,)g(713)p 1719 +2696 V -1 w(,)166 2782 y(714)p 166 2795 V -1 w(,)31 b(723)p +345 2795 V -2 w(,)g(724)p 523 2795 V -1 w(,)g(728)p 702 +2795 V -1 w(,)g(729)p 881 2795 V -2 w(,)g(733)p 1059 +2795 V -1 w(,)g(734)p 1238 2795 V -1 w(,)g(1003)p 1417 +2795 167 4 v -2 w(,)g(1004)p 1637 2795 V -2 w(,)166 2882 +y(1010)p 166 2895 V -2 w(,)c(1011)p 382 2895 V -2 w(,)g(1015)p +598 2895 V -2 w(,)g(1016)p 814 2895 V -2 w(,)g(1020)p +1030 2895 V -2 w(,)g(1021)p 1246 2895 V -2 w(,)g(1127)p +1462 2895 V -2 w(,)g(1183)p 1678 2895 V -2 w(,)166 2982 +y(1196)p 166 2995 V -2 w(,)g(1197)p 382 2995 V -2 w(,)g(1198)p +598 2995 V -2 w(,)g(1199)p 814 2995 V -2 w(,)g(1208)p +1030 2995 V -2 w(,)g(1209)p 1246 2995 V -2 w(,)g(1419)p +1462 2995 V -2 w(,)g(1420)p 1678 2995 V -2 w(.)0 3083 +y Fi(x)p 44 3083 26 4 v 30 w(axis)11 b Fm(:)84 b(949)p +327 3096 125 4 v -2 w(.)0 3184 y Fi(x)p 44 3184 26 4 +v 30 w(axis)p 214 3184 V 31 w(pt)12 b Fm(:)83 b(957)p +428 3197 125 4 v -1 w(,)35 b(1127)p 611 3197 167 4 v +-1 w(,)g(1228)p 836 3197 V -2 w(,)h(1229)p 1061 3197 +V -2 w(.)0 3285 y Fi(x)p 44 3285 26 4 v 30 w(i)13 b Fm(:)83 +b(535)p 213 3298 125 4 v -1 w(,)35 b(536,)f(537,)g(539,)g(540,)g(541.)0 +3387 y Ff(X_Y)s Fm(:)83 b(949)p 241 3400 V -1 w(,)41 +b(1182)p 430 3400 167 4 v -2 w(,)g(1184.)0 3488 y Ff(X_Z)s +Fm(:)83 b(949)p 241 3501 125 4 v -1 w(,)41 b(1182)p 430 +3501 167 4 v -2 w(,)g(1184.)0 3589 y Fi(xx)13 b Fm(:)83 +b(1203)p 197 3602 V -2 w(,)23 b(1204)p 409 3602 V -2 +w(,)f(1350)p 620 3602 V -2 w(,)h(1351)p 832 3602 V -2 +w(,)f(1355)p 1043 3602 V -2 w(,)h(1356)p 1255 3602 V +-2 w(,)f(1359)p 1466 3602 V -2 w(,)h(1360)p 1678 3602 +V -2 w(.)0 3690 y Fi(xy)11 b Fm(:)83 b(152)p 196 3703 +125 4 v -1 w(,)30 b(153)p 374 3703 V -2 w(,)g(200)p 551 +3703 V -2 w(,)g(364)p 728 3703 V -2 w(,)g(365)p 905 3703 +V -1 w(,)f(725)p 1082 3703 V -1 w(,)g(726)p 1259 3703 +V -1 w(,)h(1012)p 1437 3703 167 4 v -2 w(,)f(1013)p 1655 +3703 V -2 w(,)166 3790 y(1200)p 166 3803 V -2 w(,)39 +b(1201)p 394 3803 V -2 w(,)f(1352)p 621 3803 V -2 w(,)h(1353)p +849 3803 V -2 w(.)0 3891 y Fi(xz)14 b Fm(:)83 b(152)p +193 3904 125 4 v -1 w(,)29 b(153)p 370 3904 V -1 w(,)h(200)p +548 3904 V -2 w(,)g(364)p 725 3904 V -1 w(,)f(365)p 902 +3904 V -1 w(,)h(725)p 1080 3904 V -2 w(,)g(726)p 1257 +3904 V -1 w(,)f(1012)p 1434 3904 167 4 v -2 w(,)h(1013)p +1653 3904 V -2 w(,)166 3991 y(1200)p 166 4004 V -2 w(,)39 +b(1201)p 394 4004 V -2 w(,)f(1352)p 621 4004 V -2 w(,)h(1353)p +849 4004 V -2 w(.)0 4092 y Fi(x0)15 b Fm(:)84 b(928)p +203 4105 125 4 v -2 w(.)0 4193 y Fi(x1)15 b Fm(:)84 b(928)p +203 4206 V -2 w(.)0 4295 y Fe(y)s Fm(:)f(150)p 150 4308 +V -2 w(,)27 b(151)p 324 4308 V -1 w(,)g(155)p 499 4308 +V -2 w(,)g(156)p 673 4308 V -1 w(,)f(158)p 847 4308 V +-1 w(,)h(159)p 1022 4308 V -2 w(,)g(160)p 1196 4308 V +-1 w(,)g(161)p 1371 4308 V -2 w(,)g(235)p 1545 4308 V +-1 w(,)f(236)p 1719 4308 V -1 w(,)166 4394 y(238)p 166 +4407 V -1 w(,)f(239)p 339 4407 V -2 w(,)g(241)p 511 4407 +V -1 w(,)g(242)p 684 4407 V -2 w(,)g(282)p 856 4407 V +-1 w(,)g(283)p 1029 4407 V -1 w(,)g(284)p 1202 4407 V +-2 w(,)g(285)p 1374 4407 V -1 w(,)g(295)p 1547 4407 V +-2 w(,)g(296)p 1719 4407 V -1 w(,)166 4494 y(360)p 166 +4507 V -1 w(,)g(361)p 339 4507 V -2 w(,)g(362)p 511 4507 +V -1 w(,)g(363)p 684 4507 V -2 w(,)g(368)p 856 4507 V +-1 w(,)g(369)p 1029 4507 V -1 w(,)g(375)p 1202 4507 V +-2 w(,)g(376)p 1374 4507 V -1 w(,)g(644)p 1547 4507 V +-2 w(,)g(713)p 1719 4507 V -1 w(,)166 4593 y(714)p 166 +4606 V -1 w(,)31 b(723)p 345 4606 V -2 w(,)g(724)p 523 +4606 V -1 w(,)g(728)p 702 4606 V -1 w(,)g(729)p 881 4606 +V -2 w(,)g(733)p 1059 4606 V -1 w(,)g(734)p 1238 4606 +V -1 w(,)g(1003)p 1417 4606 167 4 v -2 w(,)g(1004)p 1637 +4606 V -2 w(,)166 4693 y(1010)p 166 4706 V -2 w(,)c(1011)p +382 4706 V -2 w(,)g(1015)p 598 4706 V -2 w(,)g(1016)p +814 4706 V -2 w(,)g(1020)p 1030 4706 V -2 w(,)g(1021)p +1246 4706 V -2 w(,)g(1183)p 1462 4706 V -2 w(,)g(1196)p +1678 4706 V -2 w(,)166 4793 y(1197)p 166 4806 V -2 w(,)j(1198)p +385 4806 V -2 w(,)h(1199)p 605 4806 V -2 w(,)f(1208)p +824 4806 V -2 w(,)g(1209)p 1043 4806 V -2 w(,)h(1419)p +1263 4806 V -2 w(,)f(1420)p 1482 4806 V -2 w(.)0 4894 +y Fi(y)p 45 4894 26 4 v 31 w(i)13 b Fm(:)83 b(535)p 215 +4907 125 4 v -1 w(,)37 b(536,)g(537,)f(539,)g(541.)0 +4995 y Fi(y)p 45 4995 26 4 v 31 w(int)p 176 4995 V 30 +w(p)10 b Fm(:)83 b(535)p 359 5008 125 4 v -1 w(,)40 b(536,)f(537.)0 +5096 y Fi(y)p 45 5096 26 4 v 31 w(int)p 176 5096 V 30 +w(p)p 248 5096 V 31 w(z)15 b Fm(:)83 b(536)p 429 5109 +125 4 v -2 w(.)0 5198 y Fi(y)p 45 5198 26 4 v 31 w(int)p +176 5198 V 30 w(q)12 b Fm(:)83 b(535)p 357 5211 125 4 +v -1 w(,)40 b(536,)f(537.)0 5299 y Fi(y)p 45 5299 26 +4 v 31 w(int)p 176 5299 V 30 w(q)p 244 5299 V 31 w(z)14 +b Fm(:)83 b(536)p 424 5312 125 4 v -1 w(.)0 5400 y Fi(y)p +45 5400 26 4 v 31 w(shift)13 b Fm(:)83 b(1474)p 344 5413 +167 4 v -2 w(.)2033 263 y Fi(yel)t(low)15 b Fm(:)83 b(108,)36 +b(112)p 2560 276 125 4 v -1 w(,)i(113)p 2746 276 V -2 +w(,)g(1505.)2033 363 y Fi(yel)t(low)p 2259 363 26 4 v +32 w(gr)l(e)l(en)11 b Fm(:)83 b(108,)34 b(112)p 2774 +376 125 4 v -2 w(,)h(113)p 2956 376 V -1 w(,)g(1505.)2033 +462 y Fi(yx)14 b Fm(:)83 b(152)p 2232 475 V -1 w(,)29 +b(153)p 2409 475 V -1 w(,)g(200)p 2586 475 V -1 w(,)g(364)p +2763 475 V -1 w(,)g(365)p 2940 475 V -1 w(,)g(725)p 3117 +475 V -1 w(,)g(726)p 3294 475 V -1 w(,)g(1012)p 3471 +475 167 4 v -2 w(,)h(1013)p 3690 475 V -2 w(,)2199 562 +y(1200)p 2199 575 V -2 w(,)39 b(1201)p 2427 575 V -2 +w(,)f(1352)p 2654 575 V -2 w(,)h(1353)p 2882 575 V -2 +w(.)2033 662 y Fi(yy)12 b Fm(:)83 b(1203)p 2231 675 V +-2 w(,)23 b(1204)p 2443 675 V -2 w(,)f(1350)p 2654 675 +V -2 w(,)g(1351)p 2865 675 V -2 w(,)h(1355)p 3077 675 +V -2 w(,)f(1356)p 3288 675 V -2 w(,)h(1359)p 3500 675 +V -2 w(,)f(1360)p 3711 675 V -2 w(.)2033 761 y Fi(yz)15 +b Fm(:)83 b(152)p 2228 774 125 4 v -2 w(,)30 b(153)p +2405 774 V -1 w(,)f(200)p 2582 774 V -1 w(,)h(364)p 2760 +774 V -2 w(,)g(365)p 2937 774 V -2 w(,)g(725)p 3114 774 +V -1 w(,)f(726)p 3291 774 V -1 w(,)g(1012)p 3468 774 +167 4 v -1 w(,)g(1013)p 3687 774 V -2 w(,)2199 861 y(1200)p +2199 874 V -2 w(,)39 b(1201)p 2427 874 V -2 w(,)f(1352)p +2654 874 V -2 w(,)h(1353)p 2882 874 V -2 w(.)2033 960 +y Fi(y0)16 b Fm(:)83 b(928)p 2237 973 125 4 v -1 w(.)2033 +1060 y Fi(y1)16 b Fm(:)83 b(928)p 2237 1073 V -1 w(.)2033 +1160 y Fe(z)s Fm(:)g(150)p 2181 1173 V -1 w(,)27 b(151)p +2356 1173 V -2 w(,)g(155)p 2530 1173 V -1 w(,)g(156)p +2705 1173 V -1 w(,)g(158)p 2880 1173 V -2 w(,)g(159)p +3054 1173 V -1 w(,)g(160)p 3229 1173 V -2 w(,)g(161)p +3403 1173 V -1 w(,)g(235)p 3578 1173 V -2 w(,)g(236)p +3752 1173 V -1 w(,)2199 1259 y(238)p 2199 1272 V -1 w(,)e(239)p +2372 1272 V -2 w(,)g(241)p 2544 1272 V -1 w(,)g(242)p +2717 1272 V -2 w(,)g(282)p 2889 1272 V -1 w(,)g(283)p +3062 1272 V -1 w(,)g(284)p 3235 1272 V -2 w(,)g(285)p +3407 1272 V -1 w(,)g(295)p 3580 1272 V -2 w(,)g(296)p +3752 1272 V -1 w(,)2199 1359 y(360)p 2199 1372 V -1 w(,)g(361)p +2372 1372 V -2 w(,)g(362)p 2544 1372 V -1 w(,)g(363)p +2717 1372 V -2 w(,)g(368)p 2889 1372 V -1 w(,)g(369)p +3062 1372 V -1 w(,)g(375)p 3235 1372 V -2 w(,)g(376)p +3407 1372 V -1 w(,)g(644)p 3580 1372 V -2 w(,)g(713)p +3752 1372 V -1 w(,)2199 1459 y(714)p 2199 1472 V -1 w(,)31 +b(723)p 2378 1472 V -2 w(,)g(724)p 2556 1472 V -1 w(,)g(728)p +2735 1472 V -1 w(,)g(729)p 2914 1472 V -2 w(,)g(733)p +3092 1472 V -1 w(,)g(734)p 3271 1472 V -1 w(,)g(1003)p +3450 1472 167 4 v -2 w(,)g(1004)p 3670 1472 V -2 w(,)2199 +1558 y(1010)p 2199 1571 V -2 w(,)c(1011)p 2415 1571 V +-2 w(,)g(1015)p 2631 1571 V -2 w(,)g(1016)p 2847 1571 +V -2 w(,)g(1020)p 3063 1571 V -2 w(,)g(1021)p 3279 1571 +V -2 w(,)g(1127)p 3495 1571 V -2 w(,)g(1196)p 3711 1571 +V -2 w(,)2199 1658 y(1197)p 2199 1671 V -2 w(,)j(1198)p +2418 1671 V -2 w(,)h(1199)p 2638 1671 V -2 w(,)f(1208)p +2857 1671 V -2 w(,)g(1209)p 3076 1671 V -2 w(,)h(1419)p +3296 1671 V -2 w(,)f(1420)p 3515 1671 V -2 w(.)2033 1757 +y Fi(z)p 2072 1757 26 4 v 31 w(axis)11 b Fm(:)83 b(949)p +2355 1770 125 4 v -1 w(.)2033 1857 y Fi(z)p 2072 1857 +26 4 v 31 w(axis)p 2243 1857 V 30 w(pt)13 b Fm(:)83 b(957)p +2457 1870 125 4 v -2 w(.)2033 1957 y Fi(z)p 2072 1957 +26 4 v 31 w(i)13 b Fm(:)83 b(535)p 2242 1970 125 4 v +-2 w(,)38 b(536,)e(538,)h(540,)f(541.)2033 2056 y Fi(z)p +2072 2056 26 4 v 31 w(int)p 2203 2056 V 30 w(p)10 b Fm(:)83 +b(538)p 2386 2069 125 4 v -2 w(,)41 b(539,)e(540.)2033 +2156 y Fi(z)p 2072 2156 26 4 v 31 w(int)p 2203 2156 V +30 w(q)12 b Fm(:)83 b(538)p 2384 2169 125 4 v -2 w(,)41 +b(539,)e(540.)2033 2256 y Ff(Z_Y)s Fm(:)83 b(949)p 2274 +2269 V -1 w(,)41 b(1182)p 2463 2269 167 4 v -2 w(,)g(1184.)2033 +2355 y Fi(zx)14 b Fm(:)83 b(152)p 2226 2368 125 4 v -2 +w(,)30 b(153)p 2403 2368 V -1 w(,)f(200)p 2580 2368 V +-1 w(,)h(364)p 2758 2368 V -2 w(,)g(365)p 2935 2368 V +-1 w(,)g(725)p 3113 2368 V -2 w(,)g(726)p 3290 2368 V +-2 w(,)g(1012)p 3467 2368 167 4 v -2 w(,)g(1013)p 3686 +2368 V -2 w(,)2199 2455 y(1200)p 2199 2468 V -2 w(,)39 +b(1201)p 2427 2468 V -2 w(,)f(1352)p 2654 2468 V -2 w(,)h(1353)p +2882 2468 V -2 w(.)2033 2554 y Fi(zy)12 b Fm(:)83 b(152)p +2225 2567 125 4 v -2 w(,)30 b(153)p 2402 2567 V -1 w(,)g(200)p +2580 2567 V -2 w(,)g(364)p 2757 2567 V -1 w(,)f(365)p +2934 2567 V -1 w(,)h(725)p 3112 2567 V -2 w(,)g(726)p +3289 2567 V -1 w(,)g(1012)p 3467 2567 167 4 v -2 w(,)g(1013)p +3686 2567 V -2 w(,)2199 2654 y(1200)p 2199 2667 V -2 +w(,)39 b(1201)p 2427 2667 V -2 w(,)f(1352)p 2654 2667 +V -2 w(,)h(1353)p 2882 2667 V -2 w(.)2033 2754 y Fi(zz)14 +b Fm(:)83 b(1203)p 2221 2767 V -2 w(,)24 b(1204)p 2434 +2767 V -2 w(,)g(1350)p 2647 2767 V -2 w(,)g(1351)p 2860 +2767 V -2 w(,)g(1355)p 3073 2767 V -2 w(,)f(1356)p 3285 +2767 V -2 w(,)h(1359)p 3498 2767 V -2 w(,)g(1360)p 3711 +2767 V -2 w(.)2033 2853 y Fi(z0)16 b Fm(:)83 b(928)p +2231 2866 125 4 v -1 w(.)2033 2953 y Fi(z1)16 b Fm(:)83 +b(928)p 2231 2966 V -1 w(.)p eop end +%%Page: 510 510 +TeXDict begin 510 509 bop 0 83 a Fm(510)140 b Fl(NAMES)23 +b(OF)g(THE)h(SECTIONS)2306 b(3DLDFPR)n(G)0 263 y Fn(h)14 +b Fm(Actions)28 b(in)g(main)35 b Fl(1505,)24 b(1506)15 +b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1519.)0 364 y +Fn(h)14 b Fm(All)28 b Fk(Colors)39 b Fl(0)14 b Fn(i)84 +b Fl(Cited)24 b(in)f(sections)i(109)f(and)g(114.)0 466 +y Fn(h)14 b Fm(Chec)n(k)27 b(in)n(tersection)g(p)r(oin)n(t)h(lo)r +(cations)34 b Fl(1189)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1188.) 0 567 y Fn(h)14 b Fm(DEC)28 b(command)f(line)h(option)f(pro)r(cessing) -34 b Fl(1505)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1502.)0 +34 b Fl(1510)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1507.)0 669 y Fn(h)14 b Fm(Declarations)31 b(for)g(the)i(header)e(\014le)k Fl(18,)28 b(20,)h(23,)f(27,)g(190,)h(192,)g(258,)f(275,)h(587,)g(611,)f (648)15 b Fn(i)83 b Fl(Cited)28 b(in)f(section)i(21.)133 @@ -45556,8 +45694,8 @@ (and)g(651.)0 870 y Fn(h)14 b Fm(Declare)27 b(I/O)g(functions)35 b Fl(42,)24 b(45,)g(47,)f(49)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(53.)0 971 y Fn(h)14 b Fm(Declare)27 -b(P)n(attern)f(functions)36 b Fl(1278,)24 b(1281,)h(1284)15 -b Fn(i)83 b Fl(Used)24 b(in)f(sections)h(1287)h(and)f(1288.)0 +b(P)n(attern)f(functions)36 b Fl(1283,)24 b(1286,)h(1289)15 +b Fn(i)83 b Fl(Used)24 b(in)f(sections)h(1292)h(and)f(1293.)0 1072 y Fn(h)14 b Fm(Declare)27 b(namespace)g Fk(Pro)5 b(jections)40 b Fl(211)14 b Fn(i)84 b Fl(Used)23 b(in)h(section)g(260.) 0 1174 y Fn(h)14 b Fm(Declare)27 b(namespace)g Fk(Sorting)40 @@ -45565,45 +45703,45 @@ 1275 y Fn(h)14 b Fm(Declare)27 b(non-mem)n(b)r(er)g(functions)h(for)f Fk(Color)39 b Fl(103)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(119.)0 1376 y Fn(h)14 b Fm(Declare)27 b(non-mem)n(b)r(er)g(functions)h(for)f -Fk(P)m(oin)m(ts)40 b Fl(436,)24 b(490,)g(511)15 b Fn(i)83 -b Fl(Used)24 b(in)f(section)i(590.)0 1478 y Fn(h)14 b -Fm(Declare)27 b(parser)f(functions)36 b Fl(1492)14 b -Fn(i)84 b Fl(Used)24 b(in)f(section)i(1496.)0 1579 y -Fn(h)14 b Fm(Declare)27 b(utilit)n(y)h(functions)36 b -Fl(21,)23 b(29,)h(31)14 b Fn(i)84 b Fl(Cited)24 b(in)f(section)i(21.) -120 b(Used)24 b(in)f(section)i(36.)0 1681 y Fn(h)14 b -Fm(Declare)33 b Fk(Circle)39 b Fm(functions)c Fl(1234,)c(1237,)g(1239,) -g(1242,)g(1244,)g(1248,)g(1250,)g(1253,)g(1255,)g(1256,)g(1258,)g -(1260,)g(1262)15 b Fn(i)84 b Fl(Used)29 b(in)166 1780 -y(section)c(1232.)0 1882 y Fn(h)14 b Fm(Declare)30 b -Fk(Color)k Fm(functions)i Fl(58,)26 b(60,)h(63,)g(65,)f(68,)h(70,)g -(72,)f(73,)h(75,)g(77,)f(80,)h(82,)g(84,)f(86,)h(88,)g(90,)f(92,)h(95,) -g(97,)f(98,)h(99,)g(100,)g(102,)g(105,)166 1981 y(107)15 -b Fn(i)83 b Fl(Used)24 b(in)f(section)i(56.)0 2083 y -Fn(h)14 b Fm(Declare)27 b Fk(Cub)s(oid)k Fm(functions)36 -b Fl(1410,)24 b(1412,)g(1414,)h(1416,)f(1418,)g(1420)15 -b Fn(i)84 b Fl(Used)23 b(in)h(section)g(1408.)0 2184 -y Fn(h)14 b Fm(Declare)27 b Fk(Do)s(decahedron)33 b Fm(functions)i -Fl(1451,)24 b(1454,)h(1457,)f(1459)15 b Fn(i)83 b Fl(Used)24 -b(in)f(section)i(1448.)0 2285 y Fn(h)14 b Fm(Declare)31 -b Fk(Ellipse)k Fm(functions)h Fl(1101,)28 b(1104,)h(1106,)g(1109,)g -(1111,)g(1114,)g(1117,)g(1119,)g(1121,)g(1123,)g(1124,)g(1126,)g(1128,) -g(1131,)f(1134,)166 2385 y(1136,)e(1139,)h(1141,)f(1143,)h(1145,)f -(1149,)h(1151,)f(1154,)h(1156,)f(1158,)g(1160,)h(1162,)f(1165,)h(1167,) -f(1170,)h(1187,)f(1189,)h(1191,)f(1193,)g(1195,)166 2485 -y(1198,)e(1200,)h(1203,)f(1205,)g(1208,)g(1210,)h(1213,)f(1215,)g -(1217,)g(1219)15 b Fn(i)84 b Fl(Used)24 b(in)f(section)h(1098.)0 -2586 y Fn(h)14 b Fm(Declare)33 b Fk(F)-8 b(o)s(cus)39 -b Fm(functions)d Fl(558,)30 b(560,)h(562,)g(565,)g(567,)g(569,)g(571,)f -(573,)h(576,)g(577,)g(578,)g(579,)g(580,)f(581,)h(583,)g(584)15 -b Fn(i)83 b Fl(Used)29 b(in)166 2686 y(section)c(556.)0 -2787 y Fn(h)14 b Fm(Declare)27 b Fk(Icosahedron)33 b -Fm(functions)i Fl(1465,)25 b(1468,)f(1470,)g(1472)15 -b Fn(i)83 b Fl(Used)24 b(in)g(section)g(1462.)0 2888 -y Fn(h)14 b Fm(Declare)27 b Fk(Lab)s(el)32 b Fm(functions)k -Fl(210)14 b Fn(i)84 b Fl(Used)24 b(in)f(section)i(208.)0 -2990 y Fn(h)14 b Fm(Declare)27 b Fk(Line)32 b Fm(constructors)i -Fl(595,)24 b(597)14 b Fn(i)84 b Fl(Used)23 b(in)h(section)g(593.)0 +Fk(P)m(oin)m(ts)40 b Fl(436,)24 b(490)15 b Fn(i)83 b +Fl(Used)24 b(in)f(section)i(590.)0 1478 y Fn(h)14 b Fm(Declare)27 +b(parser)f(functions)36 b Fl(1497)14 b Fn(i)84 b Fl(Used)24 +b(in)f(section)i(1501.)0 1579 y Fn(h)14 b Fm(Declare)27 +b(utilit)n(y)h(functions)36 b Fl(21,)23 b(29,)h(31)14 +b Fn(i)84 b Fl(Cited)24 b(in)f(section)i(21.)120 b(Used)24 +b(in)f(section)i(36.)0 1681 y Fn(h)14 b Fm(Declare)33 +b Fk(Circle)39 b Fm(functions)c Fl(1239,)c(1242,)g(1244,)g(1247,)g +(1249,)g(1253,)g(1255,)g(1258,)g(1260,)g(1261,)g(1263,)g(1265,)g(1267) +15 b Fn(i)84 b Fl(Used)29 b(in)166 1780 y(section)c(1237.)0 +1882 y Fn(h)14 b Fm(Declare)30 b Fk(Color)k Fm(functions)i +Fl(58,)26 b(60,)h(63,)g(65,)f(68,)h(70,)g(72,)f(73,)h(75,)g(77,)f(80,)h +(82,)g(84,)f(86,)h(88,)g(90,)f(92,)h(95,)g(97,)f(98,)h(99,)g(100,)g +(102,)g(105,)166 1981 y(107)15 b Fn(i)83 b Fl(Used)24 +b(in)f(section)i(56.)0 2083 y Fn(h)14 b Fm(Declare)27 +b Fk(Cub)s(oid)k Fm(functions)36 b Fl(1415,)24 b(1417,)g(1419,)h(1421,) +f(1423,)g(1425)15 b Fn(i)84 b Fl(Used)23 b(in)h(section)g(1413.)0 +2184 y Fn(h)14 b Fm(Declare)27 b Fk(Do)s(decahedron)33 +b Fm(functions)i Fl(1456,)24 b(1459,)h(1462,)f(1464)15 +b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1453.)0 2285 +y Fn(h)14 b Fm(Declare)31 b Fk(Ellipse)k Fm(functions)h +Fl(1106,)28 b(1109,)h(1111,)g(1114,)g(1116,)g(1119,)g(1122,)g(1124,)g +(1126,)g(1128,)g(1129,)g(1131,)g(1133,)g(1136,)f(1139,)166 +2385 y(1141,)e(1144,)h(1146,)f(1148,)h(1150,)f(1154,)h(1156,)f(1159,)h +(1161,)f(1163,)g(1165,)h(1167,)f(1170,)h(1172,)f(1175,)h(1192,)f(1194,) +h(1196,)f(1198,)g(1200,)166 2485 y(1203,)e(1205,)h(1208,)f(1210,)g +(1213,)g(1215,)h(1218,)f(1220,)g(1222,)g(1224)15 b Fn(i)84 +b Fl(Used)24 b(in)f(section)h(1103.)0 2586 y Fn(h)14 +b Fm(Declare)33 b Fk(F)-8 b(o)s(cus)39 b Fm(functions)d +Fl(558,)30 b(560,)h(562,)g(565,)g(567,)g(569,)g(571,)f(573,)h(576,)g +(577,)g(578,)g(579,)g(580,)f(581,)h(583,)g(584)15 b Fn(i)83 +b Fl(Used)29 b(in)166 2686 y(section)c(556.)0 2787 y +Fn(h)14 b Fm(Declare)27 b Fk(Icosahedron)33 b Fm(functions)i +Fl(1470,)25 b(1473,)f(1475,)g(1477)15 b Fn(i)83 b Fl(Used)24 +b(in)g(section)g(1467.)0 2888 y Fn(h)14 b Fm(Declare)27 +b Fk(Lab)s(el)32 b Fm(functions)k Fl(210)14 b Fn(i)84 +b Fl(Used)24 b(in)f(section)i(208.)0 2990 y Fn(h)14 b +Fm(Declare)27 b Fk(Line)32 b Fm(constructors)i Fl(595,)24 +b(597)14 b Fn(i)84 b Fl(Used)23 b(in)h(section)g(593.)0 3091 y Fn(h)14 b Fm(Declare)27 b Fk(Line)32 b Fm(functions)k Fl(599,)24 b(602,)g(604,)g(608)14 b Fn(i)84 b Fl(Used)23 b(in)h(section)g(593.)0 3192 y Fn(h)14 b Fm(Declare)27 @@ -45615,10 +45753,10 @@ (769,)h(775,)166 3392 y(777,)g(784,)g(786,)g(793,)f(795,)h(801,)g(803,) g(806,)g(808,)g(812,)f(814,)h(820,)g(823,)g(825,)g(829,)g(831,)g(834,)f (836,)h(839,)g(841,)g(845,)g(846,)g(848,)f(850,)h(852,)166 -3491 y(854,)e(856,)h(866,)f(868,)h(871,)f(872,)h(874,)f(876,)h(877,)f -(878,)h(879,)f(881,)h(887,)f(889,)g(891,)h(893,)f(899,)h(905,)f(908,)h -(912,)f(914,)h(917,)f(929)15 b Fn(i)83 b Fl(Used)23 b(in)166 -3591 y(section)i(654.)0 3692 y Fn(h)14 b Fm(Declare)28 +3491 y(854,)j(856,)g(866,)h(868,)f(871,)g(872,)g(874,)g(876,)g(877,)h +(878,)f(879,)g(881,)g(888,)g(890,)g(892,)h(894,)f(896,)g(902,)g(908,)g +(911,)g(915,)h(917,)f(920,)g(932)15 b Fn(i)166 3591 y +Fl(Used)24 b(in)f(section)i(654.)0 3692 y Fn(h)14 b Fm(Declare)28 b Fk(Picture)34 b Fm(functions)i Fl(218,)25 b(220,)g(222,)g(224,)h (225,)f(227,)g(229,)g(230,)h(231,)f(235,)g(238,)g(240,)h(241,)f(243,)g (244,)g(246,)g(248,)h(250,)f(253,)166 3792 y(254,)f(255,)g(256)15 @@ -45639,62 +45777,62 @@ (429,)g(431,)g(433,)g(438,)f(440,)h(442,)g(444,)g(445,)g(447,)g(449,)f (451,)h(457,)166 4395 y(461,)g(463,)g(466,)g(468,)f(474,)h(477,)g(479,) g(481,)g(483,)g(485,)f(488,)h(492,)g(494,)g(496,)g(498,)g(500,)g(502,)f -(504,)h(507,)g(509,)g(513,)g(516,)g(523,)f(525,)h(528,)166 -4495 y(529)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(264.)0 -4596 y Fn(h)14 b Fm(Declare)28 b Fk(P)m(olygon)33 b Fm(functions)j -Fl(975,)25 b(977,)g(981,)g(990,)g(992,)g(998,)g(1000,)g(1003,)h(1005,)f -(1007,)g(1009,)h(1012,)f(1014,)g(1017,)h(1019)15 b Fn(i)83 -b Fl(Used)166 4696 y(in)23 b(section)i(972.)0 4797 y +(504,)h(507,)g(509,)g(511,)g(513,)g(516,)f(523,)h(525,)166 +4495 y(528,)f(529)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(264.)0 +4596 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(olygon)32 b Fm(functions)j +Fl(978,)24 b(980,)g(984,)f(993,)h(995,)g(1001,)g(1003,)g(1006,)g(1008,) +g(1010,)g(1012,)g(1015,)g(1017,)g(1020,)g(1022)15 b Fn(i)84 +b Fl(Used)166 4696 y(in)23 b(section)i(975.)0 4797 y Fn(h)14 b Fm(Declare)27 b Fk(P)m(olyhedron)33 b Fm(functions)i -Fl(1427)15 b Fn(i)83 b Fl(Used)24 b(in)g(section)g(1426.)0 +Fl(1432)15 b Fn(i)83 b Fl(Used)24 b(in)g(section)g(1431.)0 4898 y Fn(h)14 b Fm(Declare)27 b Fk(Rectangle)32 b Fm(functions)k -Fl(1058,)24 b(1061,)g(1063,)h(1066,)f(1068,)h(1071,)f(1073,)g(1076,)h -(1080,)f(1082,)h(1085,)f(1087,)g(1090,)h(1091,)f(1092,)166 -4998 y(1093)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1056.)0 +Fl(1061,)24 b(1064,)g(1066,)h(1069,)f(1071,)h(1074,)f(1076,)g(1079,)h +(1082,)f(1085,)h(1087,)f(1090,)g(1092,)h(1095,)f(1096,)166 +4998 y(1097,)g(1098)15 b Fn(i)84 b Fl(Used)23 b(in)h(section)g(1059.)0 5099 y Fn(h)14 b Fm(Declare)33 b Fk(Reg)p 519 5099 29 5 v 39 w(Cl)p 654 5099 V 40 w(Plane)p 929 5099 V 40 w(Curv)m(e)40 -b Fm(functions)35 b Fl(940,)c(941,)f(942,)h(943,)f(944,)h(945,)f(947,)h -(950,)g(961,)f(964,)h(966,)f(967)15 b Fn(i)83 b Fl(Used)29 -b(in)166 5199 y(section)c(938.)0 5300 y Fn(h)14 b Fm(Declare)26 +b Fm(functions)35 b Fl(943,)c(944,)f(945,)h(946,)f(947,)h(948,)f(950,)h +(953,)g(964,)f(967,)h(969,)f(970)15 b Fn(i)83 b Fl(Used)29 +b(in)166 5199 y(section)c(941.)0 5300 y Fn(h)14 b Fm(Declare)26 b Fk(Reg)p 512 5300 V 39 w(P)m(olygon)31 b Fm(functions)k -Fl(1023,)23 b(1026,)h(1029,)f(1032,)g(1036,)g(1038,)h(1042,)f(1044,)g -(1046,)h(1047,)f(1048,)g(1050,)g(1051)15 b Fn(i)84 b -Fl(Used)166 5400 y(in)23 b(section)i(1022.)p eop end -%%Page: 506 506 -TeXDict begin 506 505 bop 0 83 a Fm(506)140 b Fl(NAMES)23 -b(OF)g(THE)h(SECTIONS)2306 b(3DLDFPR)n(G)0 263 y Fn(h)14 -b Fm(Declare)27 b Fk(Solid)p 557 263 29 5 v 39 w(F)-8 -b(aced)33 b Fm(functions)j Fl(1401)15 b Fn(i)83 b Fl(Used)24 -b(in)f(section)i(1400.)0 368 y Fn(h)14 b Fm(Declare)28 -b Fk(Solid)k Fm(functions)j Fl(1294,)25 b(1296,)h(1298,)f(1300,)g -(1302,)g(1304,)g(1306,)g(1308,)g(1311,)g(1313,)g(1315,)g(1317,)g(1319,) -h(1321,)f(1324,)g(1326,)166 467 y(1328,)h(1330,)h(1332,)f(1334,)h -(1336,)f(1338,)h(1341,)f(1343,)h(1345,)f(1347,)g(1350,)h(1352,)f(1354,) -h(1356,)f(1359,)h(1361,)f(1363,)h(1364,)f(1366,)g(1368,)166 -567 y(1370,)e(1372,)h(1374,)f(1378,)g(1381,)g(1384,)h(1387,)f(1390,)g -(1393)15 b Fn(i)83 b Fl(Used)24 b(in)g(section)g(1291.)0 -671 y Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(etrahedron)33 -b Fm(functions)j Fl(1434,)24 b(1437,)h(1441,)f(1443,)g(1445)15 -b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1431.)0 776 y -Fn(h)14 b Fm(Declare)29 b Fk(T)-8 b(ransform)35 b Fm(functions)h -Fl(124,)26 b(126,)g(128,)g(130,)g(132,)g(134,)g(136,)g(138,)g(140,)g -(142,)g(145,)g(147,)g(150,)g(152,)g(155,)g(157,)g(158,)g(160,)166 -875 y(166,)e(167,)g(168,)g(171,)g(173,)g(176,)g(178,)g(181,)g(187)15 -b Fn(i)83 b Fl(Used)24 b(in)f(section)i(122.)0 980 y -Fn(h)14 b Fm(Declare)27 b Fk(T)-8 b(runc)p 594 980 V -41 w(Octahedron)33 b Fm(functions)j Fl(1479,)24 b(1482,)h(1484)15 -b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1476.)0 1084 -y Fn(h)14 b Fm(Declare)27 b Fi(dr)l(aw)p 520 1084 26 -4 v 31 w(axes)11 b Fm(\()k(\))35 b Fl(921,)24 b(926)15 -b Fn(i)83 b Fl(Used)24 b(in)f(section)i(934.)0 1189 y -Fn(h)14 b Fm(Declare)27 b Fk(namespace)33 b(Colors)39 +Fl(1026,)23 b(1029,)h(1032,)f(1035,)g(1039,)g(1041,)h(1045,)f(1047,)g +(1049,)h(1050,)f(1051,)g(1053,)g(1054)15 b Fn(i)84 b +Fl(Used)166 5400 y(in)23 b(section)i(1025.)p eop end +%%Page: 511 511 +TeXDict begin 511 510 bop 0 83 a Fl(3DLDFPR)n(G)2306 +b(NAMES)23 b(OF)g(THE)h(SECTIONS)141 b Fm(511)0 263 y +Fn(h)14 b Fm(Declare)27 b Fk(Solid)p 557 263 29 5 v 39 +w(F)-8 b(aced)33 b Fm(functions)j Fl(1406)15 b Fn(i)83 +b Fl(Used)24 b(in)f(section)i(1405.)0 368 y Fn(h)14 b +Fm(Declare)28 b Fk(Solid)k Fm(functions)j Fl(1299,)25 +b(1301,)h(1303,)f(1305,)g(1307,)g(1309,)g(1311,)g(1313,)g(1316,)g +(1318,)g(1320,)g(1322,)g(1324,)h(1326,)f(1329,)g(1331,)166 +467 y(1333,)h(1335,)h(1337,)f(1339,)h(1341,)f(1343,)h(1346,)f(1348,)h +(1350,)f(1352,)g(1355,)h(1357,)f(1359,)h(1361,)f(1364,)h(1366,)f(1368,) +h(1369,)f(1371,)g(1373,)166 567 y(1375,)e(1377,)h(1379,)f(1383,)g +(1386,)g(1389,)h(1392,)f(1395,)g(1398)15 b Fn(i)83 b +Fl(Used)24 b(in)g(section)g(1296.)0 671 y Fn(h)14 b Fm(Declare)27 +b Fk(T)-8 b(etrahedron)33 b Fm(functions)j Fl(1439,)24 +b(1442,)h(1446,)f(1448,)g(1450)15 b Fn(i)83 b Fl(Used)24 +b(in)f(section)i(1436.)0 776 y Fn(h)14 b Fm(Declare)29 +b Fk(T)-8 b(ransform)35 b Fm(functions)h Fl(124,)26 b(126,)g(128,)g +(130,)g(132,)g(134,)g(136,)g(138,)g(140,)g(142,)g(145,)g(147,)g(150,)g +(152,)g(155,)g(157,)g(158,)g(160,)166 875 y(166,)e(167,)g(168,)g(171,)g +(173,)g(176,)g(178,)g(181,)g(187)15 b Fn(i)83 b Fl(Used)24 +b(in)f(section)i(122.)0 980 y Fn(h)14 b Fm(Declare)27 +b Fk(T)-8 b(runc)p 594 980 V 41 w(Octahedron)33 b Fm(functions)j +Fl(1484,)24 b(1487,)h(1489)15 b Fn(i)83 b Fl(Used)24 +b(in)f(section)i(1481.)0 1084 y Fn(h)14 b Fm(Declare)27 +b Fi(dr)l(aw)p 520 1084 26 4 v 31 w(axes)11 b Fm(\()k(\))35 +b Fl(924,)24 b(929)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(937.)0 +1189 y Fn(h)14 b Fm(Declare)27 b Fk(namespace)33 b(Colors)39 b Fl(109)14 b Fn(i)84 b Fl(Cited)24 b(in)f(section)i(109.)120 b(Used)24 b(in)f(section)i(118.)0 1293 y Fn(h)14 b Fm(De\014ne)28 b(I/O)f(functions)36 b Fl(43,)23 b(44,)h(46,)g(48,)f(50)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(52.)0 1398 y Fn(h)14 b Fm(De\014ne)28 b(P)n(attern)f(functions)35 -b Fl(1279,)25 b(1282,)f(1285)15 b Fn(i)83 b Fl(Used)24 -b(in)f(section)i(1287.)0 1502 y Fn(h)14 b Fm(De\014ne)28 +b Fl(1284,)25 b(1287,)f(1290)15 b Fn(i)83 b Fl(Used)24 +b(in)f(section)i(1292.)0 1502 y Fn(h)14 b Fm(De\014ne)28 b(classes)34 b Fl(208,)24 b(216)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(260)f(and)g(261.)0 1607 y Fn(h)14 b Fm(De\014ne)28 b(comparison)e(classes)34 b Fl(454,)24 @@ -45703,48 +45841,48 @@ Fn(h)14 b Fm(De\014ne)28 b(non-mem)n(b)r(er)f(functions)h(for)f Fk(Color)39 b Fl(104)15 b Fn(i)83 b Fl(Used)24 b(in)g(section)g(118.)0 1816 y Fn(h)14 b Fm(De\014ne)28 b(non-mem)n(b)r(er)f(functions)h(for)f -Fk(P)m(oin)m(ts)40 b Fl(437,)24 b(491,)g(512)15 b Fn(i)83 -b Fl(Used)24 b(in)f(section)i(589.)0 1920 y Fn(h)14 b -Fm(De\014ne)28 b(parser)e(functions)36 b Fl(1493)15 b -Fn(i)83 b Fl(Used)24 b(in)f(section)i(1495.)0 2025 y -Fn(h)14 b Fm(De\014ne)28 b(utilit)n(y)g(functions)36 -b Fl(22,)24 b(30,)f(32)15 b Fn(i)83 b Fl(Cited)24 b(in)f(section)i(22.) -120 b(Used)24 b(in)f(section)i(35.)0 2129 y Fn(h)14 b -Fm(De\014ne)28 b Fk(Circle)k Fm(functions)k Fl(1235,)24 -b(1238,)g(1240,)h(1243,)f(1245,)g(1249,)g(1251,)h(1254,)f(1259,)g -(1261,)g(1263)15 b Fn(i)84 b Fl(Used)23 b(in)h(section)g(1273.)0 -2234 y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k Fm(functions)j +Fk(P)m(oin)m(ts)40 b Fl(437,)24 b(491)15 b Fn(i)83 b +Fl(Used)24 b(in)f(section)i(589.)0 1920 y Fn(h)14 b Fm(De\014ne)28 +b(parser)e(functions)36 b Fl(1498)15 b Fn(i)83 b Fl(Used)24 +b(in)f(section)i(1500.)0 2025 y Fn(h)14 b Fm(De\014ne)28 +b(utilit)n(y)g(functions)36 b Fl(22,)24 b(30,)f(32)15 +b Fn(i)83 b Fl(Cited)24 b(in)f(section)i(22.)120 b(Used)24 +b(in)f(section)i(35.)0 2129 y Fn(h)14 b Fm(De\014ne)28 +b Fk(Circle)k Fm(functions)k Fl(1240,)24 b(1243,)g(1245,)h(1248,)f +(1250,)g(1254,)g(1256,)h(1259,)f(1264,)g(1266,)g(1268)15 +b Fn(i)84 b Fl(Used)23 b(in)h(section)g(1278.)0 2234 +y Fn(h)14 b Fm(De\014ne)28 b Fk(Color)k Fm(functions)j Fl(59,)24 b(61,)g(64,)f(66,)h(69,)f(71,)h(74,)g(76,)f(78,)h(81,)g(83,)f (85,)h(87,)f(89,)h(91,)g(93,)f(101,)h(106,)g(108)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(118.)0 2338 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Cub)s(oid)k Fm(functions)j Fl(1411,)24 -b(1413,)h(1415,)f(1417,)g(1419,)h(1421)15 b Fn(i)83 b -Fl(Used)24 b(in)f(section)i(1422.)0 2443 y Fn(h)14 b +b Fm(De\014ne)28 b Fk(Cub)s(oid)k Fm(functions)j Fl(1416,)24 +b(1418,)h(1420,)f(1422,)g(1424,)h(1426)15 b Fn(i)83 b +Fl(Used)24 b(in)f(section)i(1427.)0 2443 y Fn(h)14 b Fm(De\014ne)28 b Fk(Do)s(decahedron)33 b Fm(functions)i -Fl(1452,)25 b(1455,)f(1456,)g(1458,)g(1460)15 b Fn(i)84 -b Fl(Used)24 b(in)f(section)i(1488.)0 2547 y Fn(h)14 -b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1102,)24 -b(1105,)g(1107,)g(1110,)g(1112,)g(1115,)g(1118,)g(1122,)g(1125,)h -(1127,)f(1129,)g(1130,)g(1132,)g(1135,)g(1137,)g(1140,)166 -2647 y(1142,)i(1144,)h(1146,)f(1150,)h(1152,)f(1155,)h(1157,)f(1159,)h -(1161,)f(1163,)g(1166,)h(1168,)f(1171,)h(1172,)f(1173,)h(1174,)f(1175,) -h(1176,)f(1177,)g(1178,)166 2746 y(1179,)e(1180,)g(1182,)g(1183,)g -(1188,)g(1190,)g(1192,)g(1194,)g(1196,)g(1199,)g(1201,)g(1204,)g(1206,) -g(1209,)g(1211,)g(1214,)g(1216,)g(1218,)g(1220)15 b Fn(i)84 -b Fl(Used)166 2846 y(in)23 b(section)i(1227.)0 2951 y +Fl(1457,)25 b(1460,)f(1461,)g(1463,)g(1465)15 b Fn(i)84 +b Fl(Used)24 b(in)f(section)i(1493.)0 2547 y Fn(h)14 +b Fm(De\014ne)28 b Fk(Ellipse)i Fm(functions)36 b Fl(1107,)24 +b(1110,)g(1112,)g(1115,)g(1117,)g(1120,)g(1123,)g(1127,)g(1130,)h +(1132,)f(1134,)g(1135,)g(1137,)g(1140,)g(1142,)g(1145,)166 +2647 y(1147,)i(1149,)h(1151,)f(1155,)h(1157,)f(1160,)h(1162,)f(1164,)h +(1166,)f(1168,)g(1171,)h(1173,)f(1176,)h(1177,)f(1178,)h(1179,)f(1180,) +h(1181,)f(1182,)g(1183,)166 2746 y(1184,)e(1185,)g(1187,)g(1188,)g +(1193,)g(1195,)g(1197,)g(1199,)g(1201,)g(1204,)g(1206,)g(1209,)g(1211,) +g(1214,)g(1216,)g(1219,)g(1221,)g(1223,)g(1225)15 b Fn(i)84 +b Fl(Used)166 2846 y(in)23 b(section)i(1232.)0 2951 y Fn(h)14 b Fm(De\014ne)28 b Fk(F)-8 b(o)s(cus)32 b Fm(functions)k Fl(561,)24 b(563,)g(566,)g(568,)g(570,)g(572,)g(574,)g(582,)g(585)14 b Fn(i)84 b Fl(Used)24 b(in)f(section)h(589.)0 3055 y Fn(h)14 b Fm(De\014ne)28 b Fk(Icosahedron)33 b Fm(functions)j -Fl(1466,)24 b(1469,)g(1471,)g(1473)15 b Fn(i)84 b Fl(Used)23 -b(in)h(section)g(1488.)0 3160 y Fn(h)14 b Fm(De\014ne)28 +Fl(1471,)24 b(1474,)g(1476,)g(1478)15 b Fn(i)84 b Fl(Used)23 +b(in)h(section)g(1493.)0 3160 y Fn(h)14 b Fm(De\014ne)28 b Fk(Lab)s(el)33 b Fm(functions)i Fl(470,)24 b(471,)g(472)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(589.)0 3264 y Fn(h)14 b Fm(De\014ne)28 b Fk(Line)k Fm(constructors)i Fl(596,)24 b(598)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(613.)0 3369 y Fn(h)14 b Fm(De\014ne)28 b Fk(Line)k Fm(functions)k -Fl(600,)24 b(605,)g(606,)g(607,)g(609,)g(931)15 b Fn(i)83 -b Fl(Used)24 b(in)f(sections)h(613)h(and)f(933.)0 3473 +Fl(600,)24 b(605,)g(606,)g(607,)g(609,)g(934)15 b Fn(i)83 +b Fl(Used)24 b(in)f(sections)h(613)h(and)f(936.)0 3473 y Fn(h)14 b Fm(De\014ne)29 b Fk(P)m(ath)35 b Fm(functions)h Fl(657,)25 b(661,)g(664,)g(666,)h(669,)f(671,)g(674,)g(676,)h(678,)f (681,)g(683,)g(685,)g(687,)h(689,)f(693,)g(696,)g(698,)h(701,)f(703,)g @@ -45755,18 +45893,18 @@ (807,)h(809,)g(813,)g(815,)g(821,)g(824,)g(826,)f(830,)h(832,)g(835,)g (837,)g(840,)g(842,)f(843,)h(844,)166 3772 y(847,)g(849,)g(851,)g(853,) f(855,)h(857,)g(858,)g(859,)g(860,)g(861,)f(862,)h(863,)g(867,)g(869,)g -(873,)g(875,)g(880,)f(882,)h(883,)g(884,)g(885,)g(886,)g(888,)f(890,)h -(894,)166 3872 y(895,)f(896,)g(897,)g(900,)g(906,)g(909,)g(910,)g(911,) -g(913,)g(915,)g(918,)g(930)15 b Fn(i)83 b Fl(Used)24 -b(in)f(section)i(933.)0 3976 y Fn(h)14 b Fm(De\014ne)31 +(873,)g(875,)g(880,)f(882,)h(883,)g(884,)g(885,)g(886,)g(889,)f(891,)h +(893,)166 3872 y(897,)f(898,)g(899,)g(900,)g(903,)g(909,)g(912,)g(913,) +g(914,)g(916,)g(918,)g(921,)g(933)15 b Fn(i)83 b Fl(Used)24 +b(in)f(section)i(936.)0 3976 y Fn(h)14 b Fm(De\014ne)31 b Fk(Picture)k Fm(functions)g Fl(219,)27 b(226,)f(228,)h(232,)f(236,)h (239,)f(242,)h(245,)f(247,)g(249,)h(251,)f(373,)h(396,)f(543,)h(544,)f (545,)h(546,)f(548,)h(549,)166 4076 y(550,)d(551,)g(552,)g(553,)g(554) 15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(260)f(and)g(589.)0 4180 y Fn(h)14 b Fm(De\014ne)28 b Fk(Plane)33 b Fm(functions)i Fl(620,)24 b(622,)g(624,)g(626,)g(629,)g(631,)g(634,)g(636,)g(641,)g -(644,)g(646,)g(919)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(650)f -(and)g(933.)0 4285 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 +(644,)g(646,)g(922)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(650)f +(and)g(936.)0 4285 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(oin)m(t)33 b Fm(constructors)h Fl(280,)24 b(283,)g(287)14 b Fn(i)84 b Fl(Used)23 b(in)h(section)g(589.)0 4389 y Fn(h)14 b Fm(De\014ne)29 b Fk(P)m(oin)m(t)k Fm(functions)j Fl(285,)24 @@ -45777,62 +45915,62 @@ (403,)g(405,)g(407,)g(411,)f(413,)h(415,)166 4588 y(417,)g(432,)g(434,) g(439,)f(441,)h(443,)g(446,)g(448,)g(450,)g(452,)f(458,)h(462,)g(464,)g (467,)g(469,)g(475,)g(478,)f(480,)h(482,)g(484,)g(486,)g(489,)g(493,)f -(495,)h(497,)166 4688 y(499,)g(501,)g(503,)g(505,)f(508,)h(510,)g(517,) -g(518,)g(519,)g(520,)f(521,)h(522,)g(524,)g(526,)g(530,)g(531,)g(532,)f -(533,)h(534,)g(535,)g(536,)g(537,)g(538,)f(539,)h(540,)166 -4788 y(541,)k(601,)g(603,)g(637,)g(717,)g(780,)g(781,)g(789,)g(790,)g -(798,)f(799,)h(817,)g(818,)g(898,)g(901,)g(902,)g(903)15 -b Fn(i)83 b Fl(Used)28 b(in)f(sections)i(589,)g(613,)f(650,)166 -4887 y(and)c(933.)0 4992 y Fn(h)14 b Fm(De\014ne)32 b -Fk(P)m(olygon)k Fm(functions)g Fl(976,)28 b(978,)g(982,)g(983,)g(984,)g -(985,)g(986,)g(987,)g(988,)g(989,)g(991,)g(993,)g(994,)g(995,)g(996,)g -(999,)g(1001,)h(1004,)166 5091 y(1006,)24 b(1008,)h(1010,)f(1013,)g -(1015,)g(1018,)h(1020)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1052.) +(495,)h(497,)166 4688 y(499,)g(501,)g(503,)g(505,)f(508,)h(510,)g(512,) +g(517,)g(518,)g(519,)f(520,)h(521,)g(522,)g(524,)g(526,)g(530,)g(531,)f +(532,)h(533,)g(534,)g(535,)g(536,)g(537,)f(538,)h(539,)166 +4788 y(540,)g(541,)f(601,)h(603,)f(637,)h(717,)g(780,)f(781,)h(789,)g +(790,)f(798,)h(799,)f(817,)h(818,)g(901,)f(904,)h(905,)f(906)15 +b Fn(i)83 b Fl(Used)25 b(in)f(sections)g(589,)h(613,)g(650,)166 +4887 y(and)f(936.)0 4992 y Fn(h)14 b Fm(De\014ne)31 b +Fk(P)m(olygon)k Fm(functions)h Fl(979,)27 b(981,)g(985,)g(986,)g(987,)g +(988,)g(989,)g(990,)g(991,)f(992,)h(994,)g(996,)g(997,)g(998,)g(999,)g +(1002,)h(1004,)f(1007,)166 5091 y(1009,)d(1011,)h(1013,)f(1016,)g +(1018,)g(1021,)h(1023)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1055.) 0 5196 y Fn(h)14 b Fm(De\014ne)28 b Fk(P)m(olyhedron)33 -b Fm(functions)i Fl(1428)15 b Fn(i)84 b Fl(Used)24 b(in)f(section)h -(1488.)0 5300 y Fn(h)14 b Fm(De\014ne)30 b Fk(Rectangle)j -Fm(functions)j Fl(1059,)25 b(1062,)h(1064,)g(1067,)g(1069,)f(1072,)h -(1074,)g(1077,)g(1081,)g(1083,)f(1086,)h(1088,)g(1223,)g(1224,)g(1225,) -166 5400 y(1226)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(1094)g(and) -f(1227.)p eop end -%%Page: 507 507 -TeXDict begin 507 506 bop 0 83 a Fl(3DLDFPR)n(G)2306 -b(NAMES)23 b(OF)g(THE)h(SECTIONS)141 b Fm(507)0 263 y -Fn(h)14 b Fm(De\014ne)29 b Fk(Reg)p 472 263 29 5 v 39 -w(Cl)p 607 263 V 39 w(Plane)p 881 263 V 40 w(Curv)m(e)34 -b Fm(functions)i Fl(946,)24 b(948,)g(951,)g(952,)h(953,)f(954,)g(955,)h -(956,)f(957,)g(958,)g(959,)h(960,)f(962,)g(965)15 b Fn(i)83 -b Fl(Used)166 363 y(in)23 b(section)i(968.)0 464 y Fn(h)14 -b Fm(De\014ne)31 b Fk(Reg)p 474 464 V 39 w(P)m(olygon)k -Fm(functions)g Fl(1024,)27 b(1027,)g(1030,)g(1031,)g(1033,)g(1034,)g -(1037,)g(1039,)g(1265,)g(1267,)f(1268,)h(1269,)g(1271,)g(1272)15 -b Fn(i)166 563 y Fl(Used)24 b(in)f(sections)i(1052)f(and)h(1273.)0 +b Fm(functions)i Fl(1433)15 b Fn(i)84 b Fl(Used)24 b(in)f(section)h +(1493.)0 5300 y Fn(h)14 b Fm(De\014ne)30 b Fk(Rectangle)j +Fm(functions)j Fl(1062,)25 b(1065,)h(1067,)g(1070,)g(1072,)f(1075,)h +(1077,)g(1080,)g(1083,)g(1086,)f(1088,)h(1091,)g(1093,)g(1228,)g(1229,) +166 5400 y(1230,)e(1231)15 b Fn(i)84 b Fl(Used)23 b(in)h(sections)g +(1099)h(and)f(1232.)p eop end +%%Page: 512 512 +TeXDict begin 512 511 bop 0 83 a Fm(512)140 b Fl(NAMES)23 +b(OF)g(THE)h(SECTIONS)2306 b(3DLDFPR)n(G)0 263 y Fn(h)14 +b Fm(De\014ne)29 b Fk(Reg)p 472 263 29 5 v 39 w(Cl)p +607 263 V 39 w(Plane)p 881 263 V 40 w(Curv)m(e)34 b Fm(functions)i +Fl(949,)24 b(951,)g(954,)g(955,)h(956,)f(957,)g(958,)h(959,)f(960,)g +(961,)g(962,)h(963,)f(965,)g(968)15 b Fn(i)83 b Fl(Used)166 +363 y(in)23 b(section)i(971.)0 464 y Fn(h)14 b Fm(De\014ne)31 +b Fk(Reg)p 474 464 V 39 w(P)m(olygon)k Fm(functions)g +Fl(1027,)27 b(1030,)g(1033,)g(1034,)g(1036,)g(1037,)g(1040,)g(1042,)g +(1270,)g(1272,)f(1273,)h(1274,)g(1276,)g(1277)15 b Fn(i)166 +563 y Fl(Used)24 b(in)f(sections)i(1055)f(and)h(1278.)0 664 y Fn(h)14 b Fm(De\014ne)28 b Fk(Shap)s(e)33 b Fm(class)h Fl(199,)24 b(200)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)h(203)h(and) f(204.)0 765 y Fn(h)14 b Fm(De\014ne)28 b Fk(Solid)p -515 765 V 39 w(F)-8 b(aced)33 b Fm(functions)j Fl(1402)15 -b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1404.)0 866 y +515 765 V 39 w(F)-8 b(aced)33 b Fm(functions)j Fl(1407)15 +b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1409.)0 866 y Fn(h)14 b Fm(De\014ne)30 b Fk(Solid)k Fm(functions)h -Fl(1295,)27 b(1297,)f(1299,)g(1301,)h(1303,)f(1305,)h(1309,)f(1312,)h -(1314,)f(1316,)h(1318,)f(1320,)g(1322,)h(1325,)f(1327,)h(1329,)166 -965 y(1331,)f(1333,)h(1335,)f(1337,)h(1339,)f(1342,)h(1344,)f(1346,)h -(1348,)f(1351,)g(1353,)h(1355,)f(1357,)h(1360,)f(1362,)h(1365,)f(1367,) -h(1369,)f(1371,)g(1373,)166 1065 y(1375,)e(1379,)h(1382,)f(1385,)g -(1388,)g(1391,)h(1394)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1396.) +Fl(1300,)27 b(1302,)f(1304,)g(1306,)h(1308,)f(1310,)h(1314,)f(1317,)h +(1319,)f(1321,)h(1323,)f(1325,)g(1327,)h(1330,)f(1332,)h(1334,)166 +965 y(1336,)f(1338,)h(1340,)f(1342,)h(1344,)f(1347,)h(1349,)f(1351,)h +(1353,)f(1356,)g(1358,)h(1360,)f(1362,)h(1365,)f(1367,)h(1370,)f(1372,) +h(1374,)f(1376,)g(1378,)166 1065 y(1380,)e(1384,)h(1387,)f(1390,)g +(1393,)g(1396,)h(1399)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1401.) 0 1166 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(etrahedron)34 -b Fm(functions)h Fl(1435,)25 b(1438,)f(1439,)g(1440,)g(1442,)h(1444,)f -(1446)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1488.)0 +b Fm(functions)h Fl(1440,)25 b(1443,)f(1444,)g(1445,)g(1447,)h(1449,)f +(1451)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1493.)0 1267 y Fn(h)14 b Fm(De\014ne)31 b Fk(T)-8 b(ransform)37 b Fm(functions)e Fl(125,)28 b(127,)f(129,)g(131,)g(133,)h(135,)f(137,)g (141,)h(143,)f(146,)g(148,)h(151,)f(153,)g(156,)h(159,)f(161,)g(162,)h (163,)166 1366 y(164,)23 b(172,)h(174,)f(177,)h(179,)f(182,)h(183,)f (184,)h(185,)f(186,)h(188,)f(372,)h(380,)f(381,)g(382,)h(383,)f(384,)h (385,)f(386,)h(387,)f(388,)h(395,)f(716)15 b Fn(i)83 -b Fl(Used)23 b(in)166 1466 y(sections)i(194,)e(589,)h(and)h(933.)0 +b Fl(Used)23 b(in)166 1466 y(sections)i(194,)e(589,)h(and)h(936.)0 1567 y Fn(h)14 b Fm(De\014ne)28 b Fk(T)-8 b(runc)p 552 -1567 V 42 w(Octahedron)33 b Fm(functions)i Fl(1480,)25 -b(1483,)f(1485,)g(1486)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i -(1488.)0 1668 y Fn(h)14 b Fm(De\014ne)28 b Fk(b)s(o)s(ol)p +1567 V 42 w(Octahedron)33 b Fm(functions)i Fl(1485,)25 +b(1488,)f(1490,)g(1491)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i +(1493.)0 1668 y Fn(h)14 b Fm(De\014ne)28 b Fk(b)s(o)s(ol)p 489 1668 V 39 w(p)s(oin)m(t)p 746 1668 V 39 w(quadruple)33 b Fm(functions)j Fl(271)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i (589.)0 1769 y Fn(h)14 b Fm(De\014ne)28 b Fk(b)s(o)s(ol)p @@ -45842,76 +45980,76 @@ b Fk(b)s(o)s(ol)p 489 1869 V 39 w(real)p 684 1869 V 40 w(p)s(oin)m(t)k Fm(functions)j Fl(273)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(589.)0 1970 y Fn(h)14 b Fm(De\014ne)28 -b Fk(class)k(Circle)40 b Fl(1232)15 b Fn(i)83 b Fl(Used)24 -b(in)f(sections)i(1273)f(and)h(1274.)0 2071 y Fn(h)14 +b Fk(class)k(Circle)40 b Fl(1237)15 b Fn(i)83 b Fl(Used)24 +b(in)f(sections)i(1278)f(and)h(1279.)0 2071 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Color)40 b Fl(56)14 b Fn(i)83 b Fl(Used)24 b(in)g(sections)g(118)g(and)h(119.)0 2172 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Cub)s(oid)39 -b Fl(1408)15 b Fn(i)84 b Fl(Used)24 b(in)f(sections)h(1422)h(and)f -(1423.)0 2273 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Do)s(decahedron) -41 b Fl(1448)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(1488)f(and)g -(1489.)0 2374 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Ellipse)38 -b Fl(1098)15 b Fn(i)83 b Fl(Used)24 b(in)g(sections)g(1227)h(and)f -(1228.)0 2475 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(F)-8 +b Fl(1413)15 b Fn(i)84 b Fl(Used)24 b(in)f(sections)h(1427)h(and)f +(1428.)0 2273 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Do)s(decahedron) +41 b Fl(1453)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(1493)f(and)g +(1494.)0 2374 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Ellipse)38 +b Fl(1103)15 b Fn(i)83 b Fl(Used)24 b(in)g(sections)g(1232)h(and)f +(1233.)0 2475 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(F)-8 b(o)s(cus)40 b Fl(556)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(589)f (and)g(590.)0 2576 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Icosahedron) -41 b Fl(1462)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(1488)f(and)h -(1489.)0 2676 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(ath)42 -b Fl(654)14 b Fn(i)84 b Fl(Used)23 b(in)h(sections)g(933)h(and)f(934.)0 +41 b Fl(1467)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(1493)f(and)h +(1494.)0 2676 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(ath)42 +b Fl(654)14 b Fn(i)84 b Fl(Used)23 b(in)h(sections)g(936)h(and)f(937.)0 2777 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(oin)m(t)41 b Fl(264)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)h(589)h(and)f(590.)0 2878 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(olygon)40 -b Fl(972)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(1052)f(and)h -(1053.)0 2979 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(olyhedron)41 -b Fl(1426)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(1488)f(and)g -(1489.)0 3080 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Rectangle)40 -b Fl(1056)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(1094)f(and)h -(1095.)0 3181 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Reg)p +b Fl(975)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(1055)f(and)h +(1056.)0 2979 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(P)m(olyhedron)41 +b Fl(1431)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(1493)f(and)g +(1494.)0 3080 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Rectangle)40 +b Fl(1059)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(1099)f(and)h +(1100.)0 3181 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Reg)p 694 3181 V 40 w(Cl)p 830 3181 V 39 w(Plane)p 1104 3181 -V 40 w(Curv)m(e)41 b Fl(938)15 b Fn(i)83 b Fl(Used)24 -b(in)f(sections)i(968)f(and)g(969.)0 3282 y Fn(h)14 b +V 40 w(Curv)m(e)41 b Fl(941)15 b Fn(i)83 b Fl(Used)24 +b(in)f(sections)i(971)f(and)g(972.)0 3282 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Reg)p 694 3282 V 40 w(P)m(olygon)39 -b Fl(1022)15 b Fn(i)84 b Fl(Used)24 b(in)f(sections)h(1052)h(and)f -(1053.)0 3383 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Solid)p -738 3383 V 39 w(F)-8 b(aced)41 b Fl(1400)15 b Fn(i)83 -b Fl(Used)24 b(in)g(sections)g(1404)h(and)f(1405.)0 3483 -y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Solid)39 b Fl(1291)15 -b Fn(i)84 b Fl(Used)23 b(in)h(sections)g(1396)h(and)f(1397.)0 +b Fl(1025)15 b Fn(i)84 b Fl(Used)24 b(in)f(sections)h(1055)h(and)f +(1056.)0 3383 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Solid)p +738 3383 V 39 w(F)-8 b(aced)41 b Fl(1405)15 b Fn(i)83 +b Fl(Used)24 b(in)g(sections)g(1409)h(and)f(1410.)0 3483 +y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(Solid)39 b Fl(1296)15 +b Fn(i)84 b Fl(Used)23 b(in)h(sections)g(1401)h(and)f(1402.)0 3584 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(T)-8 b(etrahedron)41 -b Fl(1431)15 b Fn(i)84 b Fl(Used)24 b(in)f(sections)h(1488)h(and)f -(1489.)0 3685 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(T)-8 +b Fl(1436)15 b Fn(i)84 b Fl(Used)24 b(in)f(sections)h(1493)h(and)f +(1494.)0 3685 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(T)-8 b(ransform)41 b Fl(122)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(194) f(and)g(195.)0 3786 y Fn(h)14 b Fm(De\014ne)28 b Fk(class)k(T)-8 -b(runc)p 775 3786 V 42 w(Octahedron)40 b Fl(1476)15 b -Fn(i)84 b Fl(Used)24 b(in)f(sections)h(1488)h(and)f(1489.)0 +b(runc)p 775 3786 V 42 w(Octahedron)40 b Fl(1481)15 b +Fn(i)84 b Fl(Used)24 b(in)f(sections)h(1493)h(and)f(1494.)0 3887 y Fn(h)14 b Fm(De\014ne)28 b Fi(dr)l(aw)p 478 3887 -26 4 v 32 w(axes)11 b Fm(\()j(\))35 b Fl(922,)24 b(923,)g(924,)g(925,)g -(927)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(933.)0 +26 4 v 32 w(axes)11 b Fm(\()j(\))35 b Fl(925,)24 b(926,)g(927,)g(928,)g +(930)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(936.)0 3988 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(P)m(oin)m(t)g Fm(data)27 b(mem)n(b)r(ers)35 b Fl(265)14 b Fn(i)84 b Fl(Used)24 b(in)f(section)i(589.)0 4089 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(const)f(Do)s(decahedron)h Fm(data)27 -b(mem)n(b)r(ers)35 b Fl(1449)15 b Fn(i)83 b Fl(Used)24 -b(in)f(section)i(1488.)0 4190 y Fn(h)14 b Fm(De\014ne)28 +b(mem)n(b)r(ers)35 b Fl(1454)15 b Fn(i)83 b Fl(Used)24 +b(in)f(section)i(1493.)0 4190 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(const)f(Icosahedron)h Fm(data)27 b(mem)n(b)r(ers)35 -b Fl(1463)15 b Fn(i)84 b Fl(Used)23 b(in)h(section)g(1488.)0 +b Fl(1468)15 b Fn(i)84 b Fl(Used)23 b(in)h(section)g(1493.)0 4290 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(const)f(Solid)g -Fm(data)27 b(mem)n(b)r(ers)35 b Fl(1292)15 b Fn(i)83 -b Fl(Used)24 b(in)f(section)i(1396.)0 4391 y Fn(h)14 +Fm(data)27 b(mem)n(b)r(ers)35 b Fl(1297)15 b Fn(i)83 +b Fl(Used)24 b(in)f(section)i(1401.)0 4391 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(const)f(T)-8 b(etrahedron)34 -b Fm(data)27 b(mem)n(b)r(ers)35 b Fl(1432)15 b Fn(i)83 -b Fl(Used)24 b(in)f(section)i(1488.)0 4492 y Fn(h)14 +b Fm(data)27 b(mem)n(b)r(ers)35 b Fl(1437)15 b Fn(i)83 +b Fl(Used)24 b(in)f(section)i(1493.)0 4492 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(const)f(T)-8 b(runc)p 1062 4492 29 5 v 42 w(Octahedron)33 b Fm(data)27 b(mem)n(b)r(ers)35 -b Fl(1477)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1488.)0 +b Fl(1482)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1493.)0 4593 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(Ellipse)d -Fm(data)d(mem)n(b)r(ers)35 b Fl(1099)15 b Fn(i)83 b Fl(Used)24 -b(in)g(section)g(1227.)0 4694 y Fn(h)14 b Fm(De\014ne)28 +Fm(data)d(mem)n(b)r(ers)35 b Fl(1104)15 b Fn(i)83 b Fl(Used)24 +b(in)g(section)g(1232.)0 4694 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(Shap)s(e)f Fm(mem)n(b)r(er)c(v)-5 b(ariables)34 b Fl(201)14 b Fn(i)84 b Fl(Used)24 b(in)f(section)i(203.)0 4795 y Fn(h)14 b Fm(De\014ne)28 b Fk(static)33 b(class)f(P)m(ath)i Fm(data)27 b(mem)n(b)r(ers)35 b Fl(655)14 b Fn(i)84 b -Fl(Used)23 b(in)h(section)g(933.)0 4896 y Fn(h)14 b Fm(De\014ne)28 +Fl(Used)23 b(in)h(section)g(936.)0 4896 y Fn(h)14 b Fm(De\014ne)28 b Fk(struct)33 b(Line)40 b Fl(593)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(613)f(and)g(614.)0 4997 y Fn(h)14 b Fm(De\014ne)28 b Fk(struct)33 b(Plane)40 b Fl(617)15 @@ -45922,21 +46060,21 @@ 5198 y Fn(h)14 b Fm(F)-7 b(orw)n(ard)26 b(declarations)33 b Fl(33)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(36.)0 5299 y Fn(h)14 b Fm(GCC)28 b(2.95)e(prin)n(t)i(v)n(ersion,)e(cop)n -(yrigh)n(t,)g(and)h(license)g(information)35 b Fl(1507)15 -b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1506.)0 5400 +(yrigh)n(t,)g(and)h(license)g(information)35 b Fl(1512)15 +b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1511.)0 5400 y Fn(h)14 b Fm(GCC)28 b(3.3)f(and)g(DEC)h(prin)n(t)f(v)n(ersion,)f(cop) -n(yrigh)n(t,)g(and)i(license)f(information)35 b Fl(1508)14 -b Fn(i)84 b Fl(Used)24 b(in)f(section)i(1506.)p eop end -%%Page: 508 508 -TeXDict begin 508 507 bop 0 83 a Fm(508)140 b Fl(NAMES)23 -b(OF)g(THE)h(SECTIONS)2306 b(3DLDFPR)n(G)0 263 y Fn(h)14 -b Fm(GCC)28 b(command)f(line)h(option)f(pro)r(cessing)34 -b Fl(1503)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1502.)0 +n(yrigh)n(t,)g(and)i(license)f(information)35 b Fl(1513)14 +b Fn(i)84 b Fl(Used)24 b(in)f(section)i(1511.)p eop end +%%Page: 513 513 +TeXDict begin 513 512 bop 0 83 a Fl(3DLDFPR)n(G)2306 +b(NAMES)23 b(OF)g(THE)h(SECTIONS)141 b Fm(513)0 263 y +Fn(h)14 b Fm(GCC)28 b(command)f(line)h(option)f(pro)r(cessing)34 +b Fl(1508)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1507.)0 364 y Fn(h)14 b Fm(GNU)28 b(F)-7 b(ree)28 b(Do)r(cumen)n(tation)f -(License)35 b Fl(1515)15 b Fn(i)83 b Fl(Cited)25 b(in)e(section)i(1.)0 +(License)35 b Fl(1523)15 b Fn(i)83 b Fl(Cited)25 b(in)e(section)i(1.)0 465 y Fn(h)14 b Fm(GNU)28 b(General)f(Public)h(License)35 -b Fl(1516)15 b Fn(i)83 b Fl(Cited)24 b(in)f(section)i(1.)0 -565 y Fn(h)14 b Fm(Get)28 b(input)36 b Fl(1499)15 b Fn(i)0 +b Fl(1524)15 b Fn(i)83 b Fl(Cited)24 b(in)f(section)i(1.)0 +565 y Fn(h)14 b Fm(Get)28 b(input)36 b Fl(1504)15 b Fn(i)0 666 y(h)f Fm(Global)27 b(constan)n(ts)34 b Fl(19,)24 b(25,)g(26,)g(115,)f(191,)h(274)15 b Fn(i)83 b Fl(Used)24 b(in)g(sections)g(35,)g(118,)g(194,)g(and)g(589.)0 767 @@ -45944,89 +46082,89 @@ b(16,)g(17,)f(39,)h(189,)g(257,)g(586)15 b Fn(i)83 b Fl(Cited)24 b(in)f(section)i(22.)120 b(Used)24 b(in)f(sections)i(35,)e (52,)h(194,)g(260,)g(and)g(589.)0 868 y Fn(h)14 b Fm(Handle)28 -b(in)n(tersection)f(p)r(oin)n(t)35 b Fl(1181)15 b Fn(i)83 -b Fl(Used)24 b(in)f(section)i(1180.)0 969 y Fn(h)14 b +b(in)n(tersection)f(p)r(oin)n(t)35 b Fl(1186)15 b Fn(i)83 +b Fl(Used)24 b(in)f(section)i(1185.)0 969 y Fn(h)14 b Fm(Include)30 b(\014les)35 b Fl(11,)26 b(38,)f(55,)h(121,)g(197,)g -(206,)g(263,)g(592,)g(616,)g(653,)g(936,)g(971,)g(1055,)g(1097,)g -(1230,)h(1276,)f(1290,)g(1399,)h(1407,)f(1425,)g(1491,)166 -1068 y(1498)15 b Fn(i)83 b Fl(Used)27 b(in)f(sections)h(35,)g(52,)g -(118,)g(194,)g(203,)g(260,)g(589,)h(613,)f(650,)g(933,)g(968,)h(1052,)f -(1094,)h(1227,)f(1273,)h(1287,)f(1396,)h(1404,)166 1168 -y(1422,)c(1488,)h(1495,)f(and)g(1512.)0 1269 y Fn(h)14 +(206,)g(263,)g(592,)g(616,)g(653,)g(939,)g(974,)g(1058,)g(1102,)g +(1235,)h(1281,)f(1295,)g(1404,)h(1412,)f(1430,)g(1496,)166 +1068 y(1503)15 b Fn(i)83 b Fl(Used)27 b(in)f(sections)h(35,)g(52,)g +(118,)g(194,)g(203,)g(260,)g(589,)h(613,)f(650,)g(936,)g(971,)h(1055,)f +(1099,)h(1232,)f(1278,)h(1292,)f(1401,)h(1409,)166 1168 +y(1427,)c(1493,)h(1500,)f(and)g(1520.)0 1269 y Fn(h)14 b Fm(Initialize)28 b(co)r(ordinates)e(and)h(limits)36 b Fl(278)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(280,)f(283,)g(and) g(287.)0 1370 y Fn(h)14 b Fm(Initialize)28 b Fk(static)k(Lab)s(el)h Fm(data)27 b(mem)n(b)r(ers)35 b Fl(209)14 b Fn(i)84 b Fl(Used)23 b(in)h(section)g(260.)0 1470 y Fn(h)14 b Fm(Main)35 -b Fl(1509,)24 b(1510,)h(1511)15 b Fn(i)83 b Fl(Used)24 -b(in)f(section)i(1512.)0 1571 y Fn(h)14 b Fm(Ma)5 b(jor)26 -b Fk(Colors)39 b Fl(112)15 b Fn(i)83 b Fl(Cited)25 b(in)e(sections)h -(109)h(and)f(114.)120 b(Used)24 b(in)f(section)i(109.)0 -1672 y Fn(h)14 b Fm(Normalize)27 b(p)r(oin)n(t)35 b Fl(389)15 -b Fn(i)83 b Fl(Used)24 b(in)f(section)i(381.)0 1773 y -Fn(h)14 b Fm(Output)28 b Fk(P)m(ath)42 b Fl(864)14 b -Fn(i)84 b Fl(Used)23 b(in)h(sections)g(859,)g(861,)g(862,)g(and)g(863.) -0 1874 y Fn(h)14 b Fm(Prin)n(t)27 b(v)n(ersion,)f(cop)n(yrigh)n(t,)g -(and)h(license)h(information)34 b Fl(1506)15 b Fn(i)84 -b Fl(Used)23 b(in)h(section)g(1510.)0 1975 y Fn(h)14 -b Fm(Pro)r(cess)26 b(command)h(line)h(options)35 b Fl(1502)15 -b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1509.)0 2075 -y Fn(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(dr)l(aw)14 -b Fm(\()g(\))36 b Fl(1377)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i -(1379.)0 2176 y Fn(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(\014l)t(l)13 b Fm(\()h(\))36 b Fl(1380)15 b Fn(i)83 -b Fl(Used)24 b(in)f(section)i(1382.)0 2277 y Fn(h)14 -b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(\014l)t(ldr)l(aw)14 -b Fm(\()g(\))36 b Fl(1383)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i -(1385.)0 2378 y Fn(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(undr)l(aw)13 b Fm(\()h(\))36 b Fl(1386)15 b Fn(i)83 -b Fl(Used)24 b(in)f(section)i(1388.)0 2479 y Fn(h)14 -b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(un\014l)t(l)12 -b Fm(\()j(\))35 b Fl(1389)15 b Fn(i)83 b Fl(Used)24 b(in)g(section)g -(1391.)0 2579 y Fn(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h -Fi(un\014l)t(ldr)l(aw)14 b Fm(\()g(\))35 b Fl(1392)15 -b Fn(i)84 b Fl(Used)23 b(in)h(section)g(1394.)0 2680 -y Fn(h)14 b Fm(T)n(yp)r(e)28 b(de\014nitions)35 b Fl(12,)24 -b(267,)g(268,)g(270,)g(272)14 b Fn(i)84 b Fl(Used)23 -b(in)h(sections)g(35,)g(36,)g(589,)g(and)g(590.)0 2781 -y Fn(h)14 b Fm(Utilit)n(y)28 b(classes)34 b Fl(13)15 +b Fl(1514,)24 b(1515,)h(1516,)f(1517,)g(1518,)h(1519)15 +b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1520.)0 1571 +y Fn(h)14 b Fm(Ma)5 b(jor)26 b Fk(Colors)39 b Fl(112)15 +b Fn(i)83 b Fl(Cited)25 b(in)e(sections)h(109)h(and)f(114.)120 +b(Used)24 b(in)f(section)i(109.)0 1672 y Fn(h)14 b Fm(Normalize)27 +b(p)r(oin)n(t)35 b Fl(389)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i +(381.)0 1773 y Fn(h)14 b Fm(Output)28 b Fk(P)m(ath)42 +b Fl(864)14 b Fn(i)84 b Fl(Used)23 b(in)h(sections)g(859,)g(861,)g +(862,)g(and)g(863.)0 1874 y Fn(h)14 b Fm(Prin)n(t)27 +b(v)n(ersion,)f(cop)n(yrigh)n(t,)g(and)h(license)h(information)34 +b Fl(1511)15 b Fn(i)84 b Fl(Used)23 b(in)h(section)g(1518.)0 +1975 y Fn(h)14 b Fm(Pro)r(cess)26 b(command)h(line)h(options)35 +b Fl(1507)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(1517.)0 +2075 y Fn(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h +Fi(dr)l(aw)14 b Fm(\()g(\))36 b Fl(1382)15 b Fn(i)83 +b Fl(Used)24 b(in)f(section)i(1384.)0 2176 y Fn(h)14 +b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(\014l)t(l)13 +b Fm(\()h(\))36 b Fl(1385)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i +(1387.)0 2277 y Fn(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h +Fi(\014l)t(ldr)l(aw)14 b Fm(\()g(\))36 b Fl(1388)15 b +Fn(i)83 b Fl(Used)24 b(in)f(section)i(1390.)0 2378 y +Fn(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(undr)l(aw)13 +b Fm(\()h(\))36 b Fl(1391)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i +(1393.)0 2479 y Fn(h)14 b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h +Fi(un\014l)t(l)12 b Fm(\()j(\))35 b Fl(1394)15 b Fn(i)83 +b Fl(Used)24 b(in)g(section)g(1396.)0 2579 y Fn(h)14 +b Fm(Pro)r(cess)26 b(v)n(ectors)g(for)h Fi(un\014l)t(ldr)l(aw)14 +b Fm(\()g(\))35 b Fl(1397)15 b Fn(i)84 b Fl(Used)23 b(in)h(section)g +(1399.)0 2680 y Fn(h)14 b Fm(T)n(yp)r(e)28 b(de\014nitions)35 +b Fl(12,)24 b(267,)g(268,)g(270,)g(272)14 b Fn(i)84 b +Fl(Used)23 b(in)h(sections)g(35,)g(36,)g(589,)g(and)g(590.)0 +2781 y Fn(h)14 b Fm(Utilit)n(y)28 b(classes)34 b Fl(13)15 b Fn(i)83 b Fl(Used)24 b(in)f(sections)i(35)f(and)g(36.)0 2882 y Fn(h)14 b Fm(V)-7 b(ersion)25 b(con)n(trol)g(iden)n(ti\014er)35 b Fl(10,)22 b(37,)h(54,)f(120,)h(196,)g(205,)f(262,)h(591,)g(615,)g -(652,)f(935,)h(970,)g(1054,)g(1096,)g(1229,)g(1275,)g(1289,)g(1398,)g -(1406,)166 2982 y(1424,)28 b(1490,)f(1497)15 b Fn(i)83 +(652,)f(938,)h(973,)g(1057,)g(1101,)g(1234,)g(1280,)g(1294,)g(1403,)g +(1411,)166 2982 y(1429,)28 b(1495,)f(1502)15 b Fn(i)83 b Fl(Used)27 b(in)f(sections)h(35,)g(52,)g(118,)g(194,)g(203,)g(260,)g -(589,)h(613,)f(650,)g(933,)g(968,)h(1052,)f(1094,)h(1227,)f(1273,)h -(1287,)166 3081 y(1396,)c(1404,)h(1422,)f(1488,)g(1495,)g(and)h(1512.)0 -3182 y Fn(h)14 b Ff(circles.h)80 b Fl(1274)15 b Fn(i)0 +(589,)h(613,)f(650,)g(936,)g(971,)h(1055,)f(1099,)h(1232,)f(1278,)h +(1292,)166 3081 y(1401,)c(1409,)h(1427,)f(1493,)g(1500,)g(and)h(1520.)0 +3182 y Fn(h)14 b Ff(circles.h)80 b Fl(1279)15 b Fn(i)0 3283 y(h)f Ff(colors.h)80 b Fl(119)15 b Fn(i)0 3384 y(h)f -Ff(cuboid.h)80 b Fl(1423)15 b Fn(i)0 3484 y(h)f Ff(curves.h)80 -b Fl(969)15 b Fn(i)0 3585 y(h)f Ff(ellipses.h)79 b Fl(1228)15 +Ff(cuboid.h)80 b Fl(1428)15 b Fn(i)0 3484 y(h)f Ff(curves.h)80 +b Fl(972)15 b Fn(i)0 3585 y(h)f Ff(ellipses.h)79 b Fl(1233)15 b Fn(i)0 3686 y(h)f Ff(io.h)82 b Fl(53)14 b Fn(i)0 3787 y(h)g Ff(lines.h)80 b Fl(614)15 b Fn(i)0 3888 y(h)f Ff(loader.h)80 b Fl(6,)23 b(7,)h(8,)f(9)14 b Fn(i)0 3989 y(h)g Ff(parser.h)80 -b Fl(1496)15 b Fn(i)0 4089 y(h)f Ff(paths.h)80 b Fl(934)15 -b Fn(i)0 4190 y(h)f Ff(patterns.h)79 b Fl(1288)15 b Fn(i)0 +b Fl(1501)15 b Fn(i)0 4089 y(h)f Ff(paths.h)80 b Fl(937)15 +b Fn(i)0 4190 y(h)f Ff(patterns.h)79 b Fl(1293)15 b Fn(i)0 4291 y(h)f Ff(pictures.h)79 b Fl(261)15 b Fn(i)0 4392 y(h)f Ff(planes.h)80 b Fl(651)15 b Fn(i)0 4493 y(h)f Ff(points.h)80 b Fl(590)15 b Fn(i)0 4593 y(h)f Ff(polygons.h)79 -b Fl(1053)15 b Fn(i)0 4694 y(h)f Ff(polyhed.h)80 b Fl(1489)15 +b Fl(1056)15 b Fn(i)0 4694 y(h)f Ff(polyhed.h)80 b Fl(1494)15 b Fn(i)0 4795 y(h)f Ff(pspglb.h)80 b Fl(36)14 b Fn(i)0 -4896 y(h)g Ff(rectangs.h)79 b Fl(1095)15 b Fn(i)0 4997 +4896 y(h)g Ff(rectangs.h)79 b Fl(1100)15 b Fn(i)0 4997 y(h)f Ff(shapes.h)80 b Fl(204)15 b Fn(i)0 5098 y(h)f -Ff(solfaced.h)79 b Fl(1405)15 b Fn(i)0 5198 y(h)f Ff(solids.h)80 -b Fl(1397)15 b Fn(i)0 5299 y(h)f Ff(transfor.h)79 b Fl(195)15 +Ff(solfaced.h)79 b Fl(1410)15 b Fn(i)0 5198 y(h)f Ff(solids.h)80 +b Fl(1402)15 b Fn(i)0 5299 y(h)f Ff(transfor.h)79 b Fl(195)15 b Fn(i)0 5400 y(h)f Fk(Line)32 b Fm(global)27 b(constan)n(ts)34 b Fl(610)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(613.)p eop end -%%Page: 509 509 -TeXDict begin 509 508 bop 0 83 a Fl(3DLDFPR)n(G)2306 -b(NAMES)23 b(OF)g(THE)h(SECTIONS)141 b Fm(509)0 263 y -Fn(h)14 b Fk(Plane)33 b Fm(global)26 b(constan)n(ts)34 -b Fl(647)15 b Fn(i)83 b Fl(Used)24 b(in)f(section)i(650.)0 -363 y Fn(h)14 b Fk(extern)33 b Fm(All)28 b Fk(Colors)39 -b Fl(0)14 b Fn(i)83 b Fl(Cited)25 b(in)e(section)i(110.)0 -462 y Fn(h)14 b Fk(extern)33 b Fm(Ma)5 b(jor)26 b Fk(Colors)39 +%%Page: 514 514 +TeXDict begin 514 513 bop 0 83 a Fm(514)140 b Fl(NAMES)23 +b(OF)g(THE)h(SECTIONS)2306 b(3DLDFPR)n(G)0 263 y Fn(h)14 +b Fk(Plane)33 b Fm(global)26 b(constan)n(ts)34 b Fl(647)15 +b Fn(i)83 b Fl(Used)24 b(in)f(section)i(650.)0 363 y +Fn(h)14 b Fk(extern)33 b Fm(All)28 b Fk(Colors)39 b Fl(0)14 +b Fn(i)83 b Fl(Cited)25 b(in)e(section)i(110.)0 462 y +Fn(h)14 b Fk(extern)33 b Fm(Ma)5 b(jor)26 b Fk(Colors)39 b Fl(113)15 b Fn(i)83 b Fl(Cited)24 b(in)g(section)g(110.)121 b(Used)23 b(in)h(section)g(110.)0 562 y Fn(h)14 b Fk(extern)33 b Fm(declaration)26 b(of)i(namespace)e Fk(Pro)5 b(jections)40 @@ -46041,11 +46179,9 @@ Fm(declaration)i Fl(110)14 b Fn(i)84 b Fl(Cited)24 b(in)f(sections)i (110)f(and)g(114.)121 b(Used)23 b(in)h(section)g(119.)p eop end -%%Page: 510 510 -TeXDict begin 510 509 bop eop end -%%Page: 511 511 -TeXDict begin 511 510 bop 1282 264 a Fa(3DLDF:)45 b(The)i(Program)1563 -428 y(V)-11 b(ersion)45 b(1.1.3)1237 577 y(b)l(y)i(Laurence)f(D.)g +%%Page: 515 515 +TeXDict begin 515 514 bop 1282 264 a Fa(3DLDF:)45 b(The)i(Program)1563 +428 y(V)-11 b(ersion)45 b(1.1.4)1237 577 y(b)l(y)i(Laurence)f(D.)g (Finston)1671 726 y Fm(No)n(v)n(em)n(b)r(er)26 b(2003)3388 2312 y(Section)75 b(P)n(age)0 2411 y(Cop)n(yrigh)n(t)26 b(and)h(License)56 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h @@ -46110,4331 +46246,4350 @@ (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(23)165 b(10)0 3781 y(Global)27 b(constan)n(ts)55 b(.)19 +b(23)165 b(11)0 3781 y(Global)27 b(constan)n(ts)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(24)165 b(10)166 3881 y(F)-7 b(or)27 b(compilation)49 +b(24)165 b(11)166 3881 y(F)-7 b(or)27 b(compilation)49 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(25)165 b(10)166 3980 y(F)-7 b(or)27 b(the)h(header)f(\014le)40 +b(25)165 b(11)166 3980 y(F)-7 b(or)27 b(the)h(header)f(\014le)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(27)165 -b(11)0 4080 y(Utilit)n(y)28 b(functions)69 b(.)19 b(.)f(.)h(.)f(.)h(.)f +b(12)0 4080 y(Utilit)n(y)28 b(functions)69 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(28)165 b(11)166 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(28)165 b(12)166 4180 y(Solv)n(e)27 b(quadratic)f(equation)55 b(.)18 b(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -58 b(29)165 b(11)166 4279 y(Dynamic)28 b(allo)r(cation)41 +58 b(29)165 b(12)166 4279 y(Dynamic)28 b(allo)r(cation)41 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(31)165 -b(12)0 4379 y(F)-7 b(orw)n(ard)26 b(declarations)67 b(.)19 +b(13)0 4379 y(F)-7 b(orw)n(ard)26 b(declarations)67 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(33)165 -b(13)0 4478 y(Putting)28 b Fj(pspglb)d Fm(together)59 +b(14)0 4478 y(Putting)28 b Fj(pspglb)d Fm(together)59 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(34)165 b(13)0 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(34)165 b(14)0 4603 y Fk(I/O)95 b(\()p Fj(io.web)p Fk(\))34 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(37)165 b(14)0 4703 y(Include)28 b(\014les)66 b(.)19 +b(37)165 b(15)0 4703 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(38)165 b(14)0 4802 y(Global)27 b(v)-5 b(ariables)37 +f(.)h(.)58 b(38)165 b(15)0 4802 y(Global)27 b(v)-5 b(ariables)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)58 b(39)165 b(14)0 4902 y(I/O)27 b(functions)46 b(.)18 +(.)58 b(39)165 b(15)0 4902 y(I/O)27 b(functions)46 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)58 b(41)165 b(15)166 5001 y(Initialize)28 b(I/O)59 +h(.)58 b(41)165 b(16)166 5001 y(Initialize)28 b(I/O)59 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(42)165 b(15)166 5101 y(W)-7 b(rite)28 b(fo)r(oters)63 +b(42)165 b(16)166 5101 y(W)-7 b(rite)28 b(fo)r(oters)63 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(45)165 b(16)166 5201 y(Begin)27 b(\014gure)60 b(.)19 +b(45)165 b(17)166 5201 y(Begin)27 b(\014gure)60 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(47)165 b(17)166 5300 y(End)27 b(\014gure)35 b(.)19 +b(47)165 b(18)166 5300 y(End)27 b(\014gure)35 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -58 b(49)165 b(18)0 5400 y(Putting)28 b(I/O)e(together)60 +58 b(49)165 b(19)0 5400 y(Putting)28 b(I/O)e(together)60 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(51)165 b(18)p eop end -%%Page: 512 512 -TeXDict begin 512 511 bop 0 83 a Fm(ii)141 b Fl(T)-6 +b(51)165 b(19)p eop end +%%Page: 516 516 +TeXDict begin 516 515 bop 0 83 a Fm(ii)141 b Fl(T)-6 b(ABLE)24 b(OF)f(CONTENTS)2538 b(3DLDFPR)n(G)0 263 y Fk(Color)95 b(\()p Fj(colors.web)p Fk(\))32 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(54)165 -b(19)0 363 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +b(20)0 363 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(55)165 b(19)0 462 y Fk(Color)27 b Fm(class)g(de\014nition)36 +b(55)165 b(20)0 462 y Fk(Color)27 b Fm(class)g(de\014nition)36 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(56)165 b(19)0 562 y(Constructors)26 b(and)h(setting)h(functions)69 +b(56)165 b(20)0 562 y(Constructors)26 b(and)h(setting)h(functions)69 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)58 b(57)165 b(19)166 662 y(Default)28 b(constructor)38 +h(.)58 b(57)165 b(20)166 662 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(58)165 -b(19)166 761 y(Cop)n(y)27 b(constructor)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f +b(20)166 761 y(Cop)n(y)27 b(constructor)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)58 b(60)165 b(20)166 861 y(Name)28 +f(.)h(.)f(.)h(.)f(.)h(.)58 b(60)165 b(21)166 861 y(Name)28 b(and)f Fk(unsigned)k(short)c Fm(argumen)n(ts)34 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(62)165 b(20)332 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(62)165 b(21)332 960 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)58 b(63)165 b(20)332 1060 y(Setting)28 b(function)40 +h(.)58 b(63)165 b(21)332 1060 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(65)165 b(21)166 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(65)165 b(22)166 1160 y(Three)27 b Fk(real)h Fm(argumen)n(ts)g(.)19 b(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)58 b(67)165 b(21)332 1259 y(Constructor)62 +(.)f(.)h(.)58 b(67)165 b(22)332 1259 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(68)165 b(21)332 1359 y(Setting)28 b(function)40 b(.)18 +b(68)165 b(22)332 1359 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(70)165 b(22)0 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(70)165 b(23)0 1459 y(Pseudo-constructor)25 b(for)i(dynamic)g(allo)r(cation)35 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(72)165 b(23)0 1558 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.) +b(72)165 b(24)0 1558 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(73)165 b(24)0 1658 y(Equalit)n(y)65 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f +b(73)165 b(25)0 1658 y(Equalit)n(y)65 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(75)165 b(24)0 1757 y(Inequalit)n(y)50 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.) +b(75)165 b(25)0 1757 y(Inequalit)n(y)50 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(77)165 b(24)0 1857 y(Mo)r(difying)46 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +b(77)165 b(25)0 1857 y(Mo)r(difying)46 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(79)165 b(24)166 1957 y(Set)28 b(name)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h +b(79)165 b(25)166 1957 y(Set)28 b(name)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(80)165 b(24)166 2056 y(Set)28 b(use)f(name)60 b(.)18 +b(80)165 b(25)166 2056 y(Set)28 b(use)f(name)60 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(82)165 b(25)166 2156 y(Mo)r(dify)33 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f +b(82)165 b(26)166 2156 y(Mo)r(dify)33 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(84)165 b(25)166 2256 y(Set)28 b(red)f(part)59 b(.)19 +b(84)165 b(26)166 2256 y(Set)28 b(red)f(part)59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(86)165 b(26)166 2355 y(Set)28 b(green)f(part)63 b(.)19 +b(86)165 b(27)166 2355 y(Set)28 b(green)f(part)63 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(88)165 b(27)166 2455 y(Set)28 b(blue)g(part)64 b(.)18 +b(88)165 b(28)166 2455 y(Set)28 b(blue)g(part)64 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(90)165 b(27)0 2554 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f +b(90)165 b(28)0 2554 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)58 b(92)165 b(28)0 2654 y(Returning)27 b(elemen)n(ts)h(and)f +(.)58 b(92)165 b(29)0 2654 y(Returning)27 b(elemen)n(ts)h(and)f (information)53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)58 b(94)165 b(28)166 2754 y(Is)27 b(on)h(free)f(store) +f(.)h(.)f(.)h(.)58 b(94)165 b(29)166 2754 y(Is)27 b(on)h(free)f(store) 39 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(95)165 b(28)166 2853 y(Get)28 b Fk(Color)f Fm(parts)58 +b(95)165 b(29)166 2853 y(Get)28 b Fk(Color)f Fm(parts)58 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(96)165 b(28)332 2953 y(Get)28 b(red)f(part)40 b(.)19 +b(96)165 b(29)332 2953 y(Get)28 b(red)f(part)40 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(97)165 -b(29)332 3053 y(Get)28 b(green)f(part)44 b(.)19 b(.)f(.)h(.)f(.)h(.)f +b(30)332 3053 y(Get)28 b(green)f(part)44 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)58 b(98)165 b(29)332 3152 y(Get)28 b(blue)g(part)45 +f(.)h(.)f(.)h(.)58 b(98)165 b(30)332 3152 y(Get)28 b(blue)g(part)45 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(99)165 -b(29)166 3252 y(Get)28 b(use)f(name)41 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f +b(30)166 3252 y(Get)28 b(use)f(name)41 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(100)165 b(29)166 3351 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(100)165 b(30)166 3351 y(Get)28 b(name)59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)58 b(102)165 b(29)0 3451 y(Output)28 +f(.)h(.)f(.)h(.)f(.)58 b(102)165 b(30)0 3451 y(Output)28 b(op)r(erator)60 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(103)165 b(29)0 3551 y(De\014ne)28 b +f(.)h(.)f(.)58 b(103)165 b(30)0 3551 y(De\014ne)28 b Fk(Colors)f Fm(in)h(MET)-7 b(APOST)36 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(105)165 b(30)0 3650 y(Initialize)28 b Fk(Colors)51 +b(105)165 b(31)0 3650 y(Initialize)28 b Fk(Colors)51 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(107)165 b(30)0 3750 y(Namespace)27 b Fk(Colors)46 b +b(107)165 b(31)0 3750 y(Namespace)27 b Fk(Colors)46 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(109)165 b(31)0 3850 y(Ma)5 b(jor)26 b Fk(Colors)63 +b(109)165 b(32)0 3850 y(Ma)5 b(jor)26 b Fk(Colors)63 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(111)165 b(32)166 3949 y(In)n(ternal)27 b(\(with)h +f(.)58 b(111)165 b(33)166 3949 y(In)n(ternal)27 b(\(with)h (initialization\))55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(112)165 b(32)166 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(112)165 b(33)166 4049 y(External)60 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(113)165 b(33)0 4148 y(All)28 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(113)165 b(34)0 4148 y(All)28 b Fk(Colors)52 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(114)165 b(33)0 4248 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(114)165 b(34)0 4248 y(Global)27 b(constan)n(ts)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(115)165 b(33)0 4348 y(Putting)28 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(115)165 b(34)0 4348 y(Putting)28 b Fk(Color)f Fm(together)48 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(117)165 b(34)0 4503 y Fk(T)-8 b(ransformations)96 b(\()p +b(117)165 b(35)0 4503 y Fk(T)-8 b(ransformations)96 b(\()p Fj(transform.web)p Fk(\))32 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(120)165 b(35)0 4603 y(Include)28 +(.)h(.)f(.)h(.)f(.)58 b(120)165 b(36)0 4603 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(121)165 b(35)0 4703 y Fk(T)-8 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(121)165 b(36)0 4703 y Fk(T)-8 b(ransform)28 b Fm(class)f(de\014nition)44 b(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(122)165 b(35)0 4802 y(Constructors)29 b(.)19 b(.)f(.)h(.)f(.)h(.)f +58 b(122)165 b(36)0 4802 y(Constructors)29 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(123)165 b(35)166 4902 y(Default)28 b(constructor)38 +b(123)165 b(36)166 4902 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(124)165 -b(35)166 5001 y(Constructor)26 b(with)i(one)g Fk(real)f +b(36)166 5001 y(Constructor)26 b(with)i(one)g Fk(real)f Fm(argumen)n(t)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(126)165 b(36)166 5101 y(Constructor)26 b(with)i(16)f +b(126)165 b(37)166 5101 y(Constructor)26 b(with)i(16)f Fk(real)h Fm(argumen)n(ts)46 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(128)165 b(36)0 5201 y(Assignmen)n(t)36 +(.)h(.)f(.)58 b(128)165 b(37)0 5201 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(130)165 b(37)0 5300 y(Reset)28 b(to)f(iden)n(tit)n +(.)f(.)h(.)f(.)58 b(130)165 b(38)0 5300 y(Reset)28 b(to)f(iden)n(tit)n (y)h(matrix)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(132)165 b(37)0 5400 y(Setting)28 b(v)-5 b(alues)34 +b(132)165 b(38)0 5400 y(Setting)28 b(v)-5 b(alues)34 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)58 b(134)165 b(38)p eop end -%%Page: 513 513 -TeXDict begin 513 512 bop 0 83 a Fl(3DLDFPR)n(G)2515 +(.)f(.)58 b(134)165 b(39)p eop end +%%Page: 517 517 +TeXDict begin 517 516 bop 0 83 a Fl(3DLDFPR)n(G)2515 b(T)-6 b(ABLE)24 b(OF)f(CONTENTS)141 b Fm(iii)0 263 y(Clean)41 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(136)165 b(38)0 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(136)165 b(39)0 363 y(Epsilon)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(138)165 -b(39)0 462 y(T)-7 b(est)28 b(for)f(iden)n(tit)n(y)g(matrix)54 +b(40)0 462 y(T)-7 b(est)28 b(for)f(iden)n(tit)n(y)g(matrix)54 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(139)165 -b(39)166 562 y(Non-const)27 b(v)n(ersion)55 b(.)18 b(.)h(.)f(.)h(.)f(.) +b(40)166 562 y(Non-const)27 b(v)n(ersion)55 b(.)18 b(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(140)165 b(39)166 662 y Fk(const)28 +(.)h(.)f(.)h(.)f(.)58 b(140)165 b(40)166 662 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(142)165 b(39)0 761 y(Querying)38 b(.)18 +h(.)f(.)58 b(142)165 b(40)0 761 y(Querying)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)58 b(144)165 b(40)166 861 y(Get)28 b(elemen)n(t)57 +h(.)f(.)h(.)f(.)58 b(144)165 b(41)166 861 y(Get)28 b(elemen)n(t)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(145)165 b(40)0 960 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f +b(145)165 b(41)0 960 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(147)165 b(40)0 1060 y(A\016ne)28 b(transformations)57 +b(147)165 b(41)0 1060 y(A\016ne)28 b(transformations)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(149)165 -b(41)166 1160 y(Scale)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +b(42)166 1160 y(Scale)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(150)165 -b(41)166 1259 y(Shear)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +b(42)166 1259 y(Shear)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(152)165 -b(42)166 1359 y(Shift)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +b(43)166 1359 y(Shift)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(154)165 -b(43)332 1459 y Fk(real)28 b Fm(argumen)n(ts)61 b(.)18 +b(44)332 1459 y Fk(real)28 b Fm(argumen)n(ts)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(155)165 b(43)332 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(155)165 b(44)332 1558 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 b(.)19 b(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(157)165 b(44)332 1658 y(Shift)29 b(with)f(m)n +h(.)f(.)58 b(157)165 b(45)332 1658 y(Shift)29 b(with)f(m)n (ultiplication)60 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)58 b(158)165 b(44)166 1757 y(Rotation)27 +(.)f(.)h(.)f(.)h(.)f(.)58 b(158)165 b(45)166 1757 y(Rotation)27 b(around)g(the)h(main)f(axes)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(160)165 b(44)166 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(160)165 b(45)166 1857 y(Rotation)27 b(around)g(an)g(arbitrary)f(axis)47 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(165)165 b(46)332 1957 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 +b(165)165 b(47)332 1957 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(166)165 b(46)332 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(166)165 b(47)332 2056 y Fk(P)m(ath)29 b Fm(argumen)n(t)51 b(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(167)165 b(47)0 2156 y(Alignmen)n(t)28 b(with)g(an)f(axis) +h(.)f(.)58 b(167)165 b(48)0 2156 y(Alignmen)n(t)28 b(with)g(an)f(axis) 61 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(168)165 -b(47)0 2256 y(Matrix)27 b(m)n(ultiplication)48 b(.)19 +b(48)0 2256 y(Matrix)27 b(m)n(ultiplication)48 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(169)165 -b(47)166 2355 y(With)29 b(assignmen)n(t)48 b(.)19 b(.)f(.)h(.)f(.)h(.)f +b(48)166 2355 y(With)29 b(assignmen)n(t)48 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)58 b(170)165 b(47)332 2455 y Fk(real)28 +f(.)h(.)f(.)h(.)f(.)58 b(170)165 b(48)332 2455 y Fk(real)28 b Fm(argumen)n(t)52 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(171)165 b(47)332 2554 y Fk(T)-8 b(ransform)28 b Fm(argumen)n(t)f(.)19 +b(171)165 b(48)332 2554 y Fk(T)-8 b(ransform)28 b Fm(argumen)n(t)f(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(173)165 b(47)166 2654 y(Plain)27 b(m)n(ultiplication)66 +(.)h(.)f(.)58 b(173)165 b(48)166 2654 y(Plain)27 b(m)n(ultiplication)66 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(175)165 b(48)332 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(175)165 b(49)332 2754 y Fk(real)28 b Fm(argumen)n(t)52 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(176)165 b(48)332 2853 y Fk(T)-8 b(ransform)28 +h(.)f(.)58 b(176)165 b(49)332 2853 y Fk(T)-8 b(ransform)28 b Fm(argumen)n(t)f(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(178)165 b(48)0 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(178)165 b(49)0 2953 y(Matrix)27 b(in)n(v)n(ersion)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(180)165 b(49)166 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(180)165 b(50)166 3053 y Fk(const)28 b Fm(v)n(ersion)e(\(no)h(assignmen)n(t\))54 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(181)165 b(49)166 3152 y(Non-)p Fk(const)27 b Fm(v)n(ersion)f +58 b(181)165 b(50)166 3152 y(Non-)p Fk(const)27 b Fm(v)n(ersion)f (\(with)j(assignmen)n(t\))51 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)58 b(187)165 b(52)0 3252 y(Global)27 b(v)-5 b(ariables)37 +(.)f(.)58 b(187)165 b(53)0 3252 y(Global)27 b(v)-5 b(ariables)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(189)165 b(52)0 3351 y(Global)27 b(constan)n(ts)55 b(.)19 +b(189)165 b(53)0 3351 y(Global)27 b(constan)n(ts)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(191)165 b(53)0 3451 y(Putting)28 b Fk(T)-8 b(ransform)28 +b(191)165 b(54)0 3451 y(Putting)28 b Fk(T)-8 b(ransform)28 b Fm(together)56 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(193)165 b(53)0 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(193)165 b(54)0 3590 y Fk(Shap)s(e)95 b(\()p Fj(shapes.web)p Fk(\))52 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(196)165 -b(53)0 3689 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +b(55)0 3689 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(197)165 -b(53)0 3789 y Fk(Shap)s(e)28 b Fm(class)e(de\014nition)57 +b(55)0 3789 y Fk(Shap)s(e)28 b Fm(class)e(de\014nition)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(198)165 -b(53)0 3888 y(Static)28 b(data)f(mem)n(b)r(ers)36 b(.)18 +b(55)0 3888 y(Static)28 b(data)f(mem)n(b)r(ers)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(201)165 -b(55)0 3988 y(Putting)28 b Fk(Shap)s(e)f Fm(together)g(.)19 +b(56)0 3988 y(Putting)28 b Fk(Shap)s(e)f Fm(together)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(202)165 b(55)0 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(202)165 b(56)0 4127 y Fk(Picture)32 b(and)h(Lab)s(el)95 b(\()p Fj(pictures.web)p Fk(\))43 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(205)165 b(57)0 4226 y(Include)28 b(\014les)66 b(.)19 +b(205)165 b(58)0 4226 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(206)165 b(57)0 4365 y Fk(Lab)s(el)61 b Fm(.)18 +f(.)58 b(206)165 b(58)0 4365 y Fk(Lab)s(el)61 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(207)165 b(57)0 4464 y Fk(Lab)s(el)27 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(207)165 b(58)0 4464 y Fk(Lab)s(el)27 b Fm(class)g(de\014nition)37 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(208)165 b(57)0 4564 y(Static)28 b(data)f(mem)n(b)r(ers)36 +h(.)f(.)58 b(208)165 b(58)0 4564 y(Static)28 b(data)f(mem)n(b)r(ers)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(209)165 b(57)0 4664 y(Declarations)26 b(for)h Fk(Lab)s(el)h +b(209)165 b(58)0 4664 y(Declarations)26 b(for)h Fk(Lab)s(el)h Fm(functions)51 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(210)165 b(58)0 4763 y Fk(namespace)32 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(210)165 b(59)0 4763 y Fk(namespace)32 b(Pro)5 b(jections)43 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(211)165 b(58)0 4863 y Fk(namespace)32 b(Sorting)47 +b(211)165 b(59)0 4863 y Fk(namespace)32 b(Sorting)47 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(213)165 b(59)0 5001 y Fk(Picture)67 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h +b(213)165 b(60)0 5001 y Fk(Picture)67 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(215)165 b(60)0 5101 y Fk(Picture)28 b Fm(class)f(de\014nition)42 +b(215)165 b(61)0 5101 y Fk(Picture)28 b Fm(class)f(de\014nition)42 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(216)165 -b(60)0 5201 y(Constructors)29 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +b(61)0 5201 y(Constructors)29 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(217)165 -b(60)166 5300 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.) +b(61)166 5300 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(218)165 b(60)166 5400 y(Cop)n(y)27 +(.)f(.)h(.)f(.)58 b(218)165 b(61)166 5400 y(Cop)n(y)27 b(constructor)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(220)165 b(61)p eop end -%%Page: 514 514 -TeXDict begin 514 513 bop 0 83 a Fm(iv)141 b Fl(T)-6 +b(220)165 b(62)p eop end +%%Page: 518 518 +TeXDict begin 518 517 bop 0 83 a Fm(iv)141 b Fl(T)-6 b(ABLE)24 b(OF)f(CONTENTS)2517 b(3DLDFPR)n(G)0 263 y Fm(Destructor)27 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(221)165 b(61)0 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(221)165 b(62)0 363 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(222)165 b(61)0 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(222)165 b(62)0 462 y(Adding)28 b(elemen)n(ts)59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(223)165 b(61)166 562 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(223)165 b(62)166 562 y(Add)28 b Fk(Picture)51 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(224)165 b(61)166 662 y(Add)28 +(.)h(.)f(.)h(.)f(.)58 b(224)165 b(62)166 662 y(Add)28 b Fk(Shap)s(e)64 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(225)165 b(61)166 761 y(Add)28 b Fk(Lab)s(el)45 +(.)f(.)h(.)f(.)58 b(225)165 b(62)166 761 y(Add)28 b Fk(Lab)s(el)45 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(227)165 b(62)0 861 y(Suppress)27 b Fk(Lab)s(els)49 +58 b(227)165 b(63)0 861 y(Suppress)27 b Fk(Lab)s(els)49 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(229)165 b(62)0 960 y(Unsuppress)27 b Fk(Lab)s(els)37 +b(229)165 b(63)0 960 y(Unsuppress)27 b Fk(Lab)s(els)37 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(230)165 b(62)0 1060 y(Kill)27 b Fk(Lab)s(els)h Fm(.)18 +b(230)165 b(63)0 1060 y(Kill)27 b Fk(Lab)s(els)h Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(231)165 b(62)0 1160 y(T)-7 b(ransformations)29 +h(.)f(.)58 b(231)165 b(63)0 1160 y(T)-7 b(ransformations)29 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(233)165 b(63)166 1259 y(A\016ne)28 b(transformations)57 +b(233)165 b(64)166 1259 y(A\016ne)28 b(transformations)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(234)165 b(63)332 1359 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(234)165 b(64)332 1359 y(Scale)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(235)165 b(63)332 1459 y(Shift)36 b(.)18 +f(.)h(.)f(.)58 b(235)165 b(64)332 1459 y(Shift)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(237)165 b(63)498 1558 y Fk(real)28 b Fm(v)n(ersion)58 +58 b(237)165 b(64)498 1558 y Fk(real)28 b Fm(v)n(ersion)58 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(238)165 b(63)498 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(238)165 b(64)498 1658 y Fk(P)m(oin)m(t)28 b Fm(v)n(ersion)k(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(240)165 b(63)332 1757 y(Rotation)27 b(around)g(the)h(main)f(axes)g +58 b(240)165 b(64)332 1757 y(Rotation)27 b(around)g(the)h(main)f(axes)g (.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(241)165 b(63)332 1857 y(Rotation)27 b(around)g(an)g(arbitrary)f(axis) +b(241)165 b(64)332 1857 y(Rotation)27 b(around)g(an)g(arbitrary)f(axis) 47 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(243)165 -b(64)166 1957 y(Set)28 b Fk(transform)h Fm(.)19 b(.)f(.)h(.)f(.)h(.)f +b(65)166 1957 y(Set)28 b Fk(transform)h Fm(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(244)165 b(64)166 2056 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(244)165 b(65)166 2056 y(Multiplying)28 b Fk(transform)52 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(246)165 b(64)0 2156 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f +b(246)165 b(65)0 2156 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(248)165 b(65)0 2256 y(Sho)n(w)27 b Fk(transform)36 +b(248)165 b(66)0 2256 y(Sho)n(w)27 b Fk(transform)36 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(250)165 b(65)0 2355 y(Output)65 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f +b(250)165 b(66)0 2355 y(Output)65 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(252)165 b(66)166 2455 y Fk(F)-8 b(o)s(cus)27 b Fm(argumen)n(t)56 +b(252)165 b(67)166 2455 y Fk(F)-8 b(o)s(cus)27 b Fm(argumen)n(t)56 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(253)165 -b(66)166 2554 y(No)27 b Fk(F)-8 b(o)s(cus)28 b Fm(argumen)n(t)49 +b(67)166 2554 y(No)27 b Fk(F)-8 b(o)s(cus)28 b Fm(argumen)n(t)49 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(254)165 b(66)0 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(254)165 b(67)0 2654 y(Clear)54 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(255)165 b(66)0 2754 y(Reset)28 b Fk(transform)69 b +b(255)165 b(67)0 2754 y(Reset)28 b Fk(transform)69 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(256)165 b(66)0 2853 y(Global)27 b(v)-5 b(ariables)37 +b(256)165 b(67)0 2853 y(Global)27 b(v)-5 b(ariables)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(257)165 b(66)0 2953 y(Putting)28 b Fk(Picture)g Fm(and)f +b(257)165 b(67)0 2953 y(Putting)28 b Fk(Picture)g Fm(and)f Fk(Lab)s(el)h Fm(together)50 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)58 b(259)165 b(66)0 3109 y Fk(P)m(oin)m(t)96 +(.)f(.)h(.)f(.)h(.)f(.)58 b(259)165 b(67)0 3109 y Fk(P)m(oin)m(t)96 b(\()p Fj(points.web)p Fk(\))38 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(262)165 b(68)0 3208 y(Include)28 b(\014les)66 +h(.)f(.)58 b(262)165 b(69)0 3208 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(263)165 b(68)0 3308 y Fk(P)m(oin)m(t)28 +(.)h(.)f(.)58 b(263)165 b(69)0 3308 y Fk(P)m(oin)m(t)28 b Fm(class)f(de\014nition)42 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(264)165 b(68)0 3407 y(T)n(yp)r(e)27 b(de\014nitions)h(and) +h(.)f(.)58 b(264)165 b(69)0 3407 y(T)n(yp)r(e)27 b(de\014nitions)h(and) g(utilit)n(y)g(structures)64 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(266)165 b(70)166 3507 y Fk(p)s(oin)m(t)p +(.)h(.)f(.)h(.)f(.)58 b(266)165 b(71)166 3507 y Fk(p)s(oin)m(t)p 390 3507 29 4 v 34 w(pair)28 b Fm(and)f Fk(b)s(o)s(ol)p 960 3507 V 33 w(p)s(oin)m(t)p 1211 3507 V 34 w(pair)49 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(267)165 b(70)166 3607 y Fk(b)s(o)s(ol)p 354 3607 V +b(267)165 b(71)166 3607 y Fk(b)s(o)s(ol)p 354 3607 V 33 w(p)s(oin)m(t)65 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)58 b(268)165 b(70)166 3706 y Fk(b)s(o)s(ol)p +h(.)f(.)h(.)f(.)58 b(268)165 b(71)166 3706 y Fk(b)s(o)s(ol)p 354 3706 V 33 w(p)s(oin)m(t)p 605 3706 V 34 w(quadruple)70 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)58 b(270)165 b(72)332 3806 y(Default)28 +(.)f(.)h(.)f(.)h(.)f(.)58 b(270)165 b(73)332 3806 y(Default)28 b(Constructor)f(for)g Fk(b)s(o)s(ol)p 1406 3806 V 32 w(p)s(oin)m(t)p 1656 3806 V 34 w(quadruple)57 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(271)165 b(73)166 3906 y Fk(b)s(o)s(ol)p 354 3906 V +b(271)165 b(74)166 3906 y Fk(b)s(o)s(ol)p 354 3906 V 33 w(real)p 543 3906 V 34 w(p)s(oin)m(t)41 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(272)165 -b(73)332 4005 y(Default)28 b(Constructor)f(for)g Fk(b)s(o)s(ol)p +b(74)332 4005 y(Default)28 b(Constructor)f(for)g Fk(b)s(o)s(ol)p 1406 4005 V 32 w(real)p 1594 4005 V 35 w(p)s(oin)m(t)g Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)58 b(273)165 b(74)0 4105 y(Global)27 +f(.)h(.)f(.)h(.)f(.)58 b(273)165 b(75)0 4105 y(Global)27 b(constan)n(ts)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(274)165 b(74)0 4204 y(Constructors)26 +f(.)h(.)f(.)58 b(274)165 b(75)0 4204 y(Constructors)26 b(and)h(setting)h(functions)69 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(276)165 b(74)166 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(276)165 b(75)166 4304 y(Initialize)28 b(co)r(ordinates)e(and)h(limits)55 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(278)165 b(75)166 4404 y(Default)28 b(v)n(ersion)h(.)19 +b(278)165 b(76)166 4404 y(Default)28 b(v)n(ersion)h(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(279)165 b(75)166 4503 y(Three)27 b Fk(real)h Fm(v)-5 +b(279)165 b(76)166 4503 y(Three)27 b Fk(real)h Fm(v)-5 b(alues)62 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(281)165 b(76)332 4603 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f +b(281)165 b(77)332 4603 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)58 b(282)165 b(76)332 4703 y(Setting)28 +f(.)h(.)f(.)h(.)f(.)58 b(282)165 b(77)332 4703 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(284)165 b(76)166 4802 y(Cop)n(y)27 b(constructor)34 +b(284)165 b(77)166 4802 y(Cop)n(y)27 b(constructor)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(286)165 -b(77)332 4902 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h +b(78)332 4902 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(288)165 b(77)0 5001 y(Pseudo-constructor)25 +h(.)f(.)58 b(288)165 b(78)0 5001 y(Pseudo-constructor)25 b(for)i(dynamic)g(allo)r(cation)35 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(290)165 b(78)166 5101 y(Optional)27 b(p)r(oin)n(ter)g +(.)h(.)f(.)58 b(290)165 b(79)166 5101 y(Optional)27 b(p)r(oin)n(ter)g (argumen)n(t)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(291)165 b(78)166 5201 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(291)165 b(79)166 5201 y(Required)27 b Fk(P)m(oin)m(t)h Fm(argumen)n(t)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(293)165 b(78)166 5300 y Fk(real)28 b +(.)h(.)f(.)58 b(293)165 b(79)166 5300 y Fk(real)28 b Fm(argumen)n(ts)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(295)165 b(79)0 5400 y(Destructor)27 b(.)19 b(.)f(.)h(.)f(.)h(.)f +58 b(295)165 b(80)0 5400 y(Destructor)27 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(297)165 b(79)p eop end -%%Page: 515 515 -TeXDict begin 515 514 bop 0 83 a Fl(3DLDFPR)n(G)2540 +b(297)165 b(80)p eop end +%%Page: 519 519 +TeXDict begin 519 518 bop 0 83 a Fl(3DLDFPR)n(G)2540 b(T)-6 b(ABLE)24 b(OF)f(CONTENTS)141 b Fm(v)0 263 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(299)165 b(79)0 363 y(Set)28 b(on)f(free)h(store)g +(.)f(.)h(.)f(.)58 b(299)165 b(80)0 363 y(Set)28 b(on)f(free)h(store)g (.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(301)165 b(80)0 462 y(Clear)54 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +b(301)165 b(81)0 462 y(Clear)54 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(302)165 b(80)0 562 y(Clean)41 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +b(302)165 b(81)0 562 y(Clean)41 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(304)165 b(81)0 662 y(Returning)27 b(elemen)n(ts)h(and)f(information) +b(304)165 b(82)0 662 y(Returning)27 b(elemen)n(ts)h(and)f(information) 53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(306)165 b(81)166 761 y(Is)27 b(iden)n(tit)n(y)46 b(.)19 +b(306)165 b(82)166 761 y(Is)27 b(iden)n(tit)n(y)46 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(307)165 b(81)166 861 y(Epsilon)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.) +b(307)165 b(82)166 861 y(Epsilon)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(308)165 -b(81)166 960 y(Get)28 b Fk(Line)j Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h +b(82)166 960 y(Get)28 b Fk(Line)j Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(309)165 -b(81)166 1060 y(Getting)28 b(co)r(ordinates)f(.)19 b(.)f(.)h(.)f(.)h(.) +b(82)166 1060 y(Getting)28 b(co)r(ordinates)f(.)19 b(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(310)165 b(81)332 1160 y(Get)28 b(all)f(co)r +(.)f(.)h(.)f(.)58 b(310)165 b(82)332 1160 y(Get)28 b(all)f(co)r (ordinates)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(311)165 b(82)498 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(311)165 b(83)498 1259 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(312)165 b(82)498 1359 y Fk(const)28 b Fm(v)n(ersion)38 +b(312)165 b(83)498 1359 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(314)165 b(82)332 1459 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(314)165 b(83)332 1459 y(Get)28 b(co)r(ord)51 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(316)165 b(83)498 1558 y(Non-)p Fk(const)27 +h(.)f(.)58 b(316)165 b(84)498 1558 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(317)165 b(83)498 1658 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(317)165 b(84)498 1658 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(319)165 b(83)332 1757 y(Get)28 b(x)43 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.) +b(319)165 b(84)332 1757 y(Get)28 b(x)43 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(321)165 -b(84)498 1857 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 +b(85)498 1857 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)58 b(322)165 b(84)498 1957 y Fk(const)28 b Fm(v)n(ersion)38 +(.)f(.)58 b(322)165 b(85)498 1957 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(324)165 b(84)332 2056 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(324)165 b(85)332 2056 y(Get)28 b(y)43 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(326)165 b(84)498 2156 y(Non-)p +(.)h(.)f(.)h(.)f(.)58 b(326)165 b(85)498 2156 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(327)165 -b(84)498 2256 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 +b(85)498 2256 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)58 b(329)165 b(85)332 2355 y(Get)28 +(.)f(.)h(.)f(.)h(.)f(.)58 b(329)165 b(86)332 2355 y(Get)28 b(z)50 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(331)165 b(85)498 2455 y(Non-)p Fk(const)27 +h(.)f(.)58 b(331)165 b(86)498 2455 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(332)165 b(85)498 2554 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(332)165 b(86)498 2554 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(334)165 b(85)332 2654 y(Get)28 b(w)69 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.) +b(334)165 b(86)332 2654 y(Get)28 b(w)69 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(336)165 b(85)498 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(336)165 b(86)498 2754 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(337)165 b(86)498 2853 y Fk(const)28 b Fm(v)n(ersion)38 +b(337)165 b(87)498 2853 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(339)165 b(86)166 2953 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(339)165 b(87)166 2953 y(Get)28 b Fk(transform)52 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(341)165 b(86)166 3053 y(Get)28 b(cop)n(y)45 +f(.)h(.)f(.)58 b(341)165 b(87)166 3053 y(Get)28 b(cop)n(y)45 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)58 b(342)165 b(86)166 3152 y(Is)27 b(on)h(free)f(store)39 +(.)f(.)58 b(342)165 b(87)166 3152 y(Is)27 b(on)h(free)f(store)39 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(344)165 b(87)166 3252 y(Slop)r(e)53 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +b(344)165 b(88)166 3252 y(Slop)r(e)53 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(345)165 b(87)166 3351 y(Is)27 b(on)h(segmen)n(t)40 +b(345)165 b(88)166 3351 y(Is)27 b(on)h(segmen)n(t)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(348)165 b(88)332 3451 y(Non-)p Fk(const)32 b Fm(v)n(ersion)63 +b(348)165 b(89)332 3451 y(Non-)p Fk(const)32 b Fm(v)n(ersion)63 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(349)165 b(89)332 3551 y +h(.)f(.)h(.)f(.)h(.)f(.)58 b(349)165 b(90)332 3551 y Fk(const)33 b Fm(v)n(ersion)g(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(352)165 b(91)166 3650 y(Is)27 b(on)h(line)39 +(.)58 b(352)165 b(92)166 3650 y(Is)27 b(on)h(line)39 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)58 b(354)165 b(92)166 3750 y(Is)27 b(on)h Fk(Plane)57 +(.)f(.)58 b(354)165 b(93)166 3750 y(Is)27 b(on)h Fk(Plane)57 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(356)165 b(92)166 3850 y(Is)27 b(in)h(triangle)33 b(.)19 +b(356)165 b(93)166 3850 y(Is)27 b(in)h(triangle)33 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(357)165 b(92)0 3949 y(T)-7 b(ransformations)29 b(.)18 +b(357)165 b(93)0 3949 y(T)-7 b(ransformations)29 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(358)165 b(92)166 4049 y(A\016ne)28 b(transformations)57 +b(358)165 b(93)166 4049 y(A\016ne)28 b(transformations)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(359)165 b(92)332 4148 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(359)165 b(93)332 4148 y(Rotation)27 b(around)g(the)h(main)f(axes)g(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(360)165 b(93)332 4248 +(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(360)165 b(94)332 4248 y(Scale)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(362)165 b(93)332 4348 y(Shear)45 b(.)19 +f(.)h(.)f(.)58 b(362)165 b(94)332 4348 y(Shear)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(364)165 b(93)332 4447 y(Shift)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h +b(364)165 b(94)332 4447 y(Shift)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(366)165 -b(93)498 4547 y Fk(P)m(oin)m(t)28 b Fm(v)n(ersions)40 +b(94)498 4547 y Fk(P)m(oin)m(t)28 b Fm(v)n(ersions)40 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(367)165 b(93)664 4647 y(Three)27 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(367)165 b(94)664 4647 y(Three)27 b Fk(real)h Fm(argumen)n(ts)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(368)165 b(94)664 4746 y Fk(P)m(oin)m(t)28 +f(.)h(.)f(.)58 b(368)165 b(95)664 4746 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)58 b(370)165 b(94)498 4846 y Fk(T)-8 +f(.)h(.)f(.)h(.)f(.)58 b(370)165 b(95)498 4846 y Fk(T)-8 b(ransform)28 b Fm(v)n(ersion)33 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(372)165 -b(94)498 4945 y Fk(Picture)28 b Fm(v)n(ersion)k(.)18 +b(95)498 4945 y Fk(Picture)28 b Fm(v)n(ersion)k(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(373)165 b(94)332 5045 y(Shift)29 +(.)f(.)h(.)f(.)58 b(373)165 b(95)332 5045 y(Shift)29 b(times)62 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(374)165 b(94)498 5145 y(Three)27 b Fk(real)h Fm(argumen)n(ts)g(.)19 +b(374)165 b(95)498 5145 y(Three)27 b Fk(real)h Fm(argumen)n(ts)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(375)165 b(95)498 5244 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 +b(375)165 b(96)498 5244 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)58 b(377)165 b(95)332 5344 y(Alignmen)n(t)28 +h(.)f(.)h(.)f(.)58 b(377)165 b(96)332 5344 y(Alignmen)n(t)28 b(with)g(an)f(axis)61 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(379)165 b(95)p eop +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(379)165 b(96)p eop end -%%Page: 516 516 -TeXDict begin 516 515 bop 0 83 a Fm(vi)141 b Fl(T)-6 +%%Page: 520 520 +TeXDict begin 520 519 bop 0 83 a Fm(vi)141 b Fl(T)-6 b(ABLE)24 b(OF)f(CONTENTS)2517 b(3DLDFPR)n(G)498 263 y Fm(Normalize)27 b(p)r(oin)n(t)39 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(389)165 b(99)332 363 y(Rotation)27 b(around)g(an)g(arbitrary)f(axis) +b(389)123 b(100)332 363 y(Rotation)27 b(around)g(an)g(arbitrary)f(axis) 47 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(390)165 -b(99)498 462 y Fk(P)m(oin)m(t)28 b Fm(v)n(ersions)40 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(390)123 +b(100)498 462 y Fk(P)m(oin)m(t)28 b Fm(v)n(ersions)40 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(391)165 b(99)664 562 y Fk(P)m(oin)m(t)28 -b Fm(argumen)n(ts)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +h(.)f(.)h(.)f(.)h(.)f(.)58 b(391)123 b(100)664 562 y +Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)58 b(392)123 b(100)664 662 y Fk(P)m(ath)29 -b Fm(argumen)n(t)51 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(394)123 b(100)498 761 y -Fk(T)-8 b(ransform)28 b Fm(v)n(ersion)33 b(.)19 b(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(395)123 b(101)498 861 y Fk(Picture)28 b Fm(v)n(ersion)k(.)18 -b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(392)123 b(101)664 +662 y Fk(P)m(ath)29 b Fm(argumen)n(t)51 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(394)123 +b(101)498 761 y Fk(T)-8 b(ransform)28 b Fm(v)n(ersion)33 +b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(396)123 b(102)166 960 y(Pro)5 b(jection)36 -b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)58 b(395)123 b(102)498 861 y Fk(Picture)28 b +Fm(v)n(ersion)k(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(397)123 b(102)332 1060 y Fk(F)-8 b(o)s(cus)27 -b Fm(argumen)n(t)56 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(396)123 b(103)166 +960 y(Pro)5 b(jection)36 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(398)123 b(102)498 1160 y(P)n(arallel)26 b(pro)5 b(jection)34 -b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(400)123 b(104)498 1259 y(P)n(ersp)r(ectiv)n(e)26 -b(pro)5 b(jection)64 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(397)123 b(103)332 1060 +y Fk(F)-8 b(o)s(cus)27 b Fm(argumen)n(t)56 b(.)19 b(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(401)123 b(105)332 1359 y(No)28 -b Fk(F)-8 b(o)s(cus)27 b Fm(argumen)n(t)49 b(.)18 b(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(402)123 b(106)166 1459 y(Applying)28 b(transformations)63 -b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)58 b(398)123 b(103)498 1160 y(P)n(arallel)26 b(pro)5 +b(jection)34 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(400)123 b(105)498 1259 +y(P)n(ersp)r(ectiv)n(e)26 b(pro)5 b(jection)64 b(.)18 +b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 +b(401)123 b(106)332 1359 y(No)28 b Fk(F)-8 b(o)s(cus)27 +b Fm(argumen)n(t)49 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(402)123 +b(107)166 1459 y(Applying)28 b(transformations)63 b(.)19 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)58 b(404)123 b(106)166 1558 y(Set)28 -b Fk(transform)g Fm(to)g(iden)n(tit)n(y)35 b(.)19 b(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(406)123 b(107)0 1658 y(Dra)n(wing)67 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)58 b(404)123 b(107)166 1558 y(Set)28 b Fk(transform)g +Fm(to)g(iden)n(tit)n(y)35 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(406)123 +b(108)0 1658 y(Dra)n(wing)67 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(408)123 b(108)166 1757 y(Dra)n(wdot)58 b(.)18 b(.)h(.)f(.)h(.)f(.)h +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 +b(408)123 b(109)166 1757 y(Dra)n(wdot)58 b(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(409)123 -b(108)332 1857 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.) +b(109)332 1857 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(410)123 b(108)332 1957 y Fk(Picture)28 +(.)h(.)f(.)58 b(410)123 b(109)332 1957 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(412)123 b(109)166 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(412)123 b(110)166 2056 y(Undra)n(wdot)50 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)58 b(414)123 b(109)332 2156 y Fk(Picture)28 +f(.)h(.)f(.)h(.)f(.)58 b(414)123 b(110)332 2156 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(416)123 b(109)166 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(416)123 b(110)166 2256 y(Dra)n(w)53 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(418)123 b(110)332 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(418)123 b(111)332 2355 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(419)123 b(110)332 2455 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst) +58 b(419)123 b(111)332 2455 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst) 62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(420)123 b(110)166 2554 y(Dra)n(w)27 b(arro)n(w)f(.)18 +(.)h(.)f(.)58 b(420)123 b(111)166 2554 y(Dra)n(w)27 b(arro)n(w)f(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(421)123 b(110)332 2654 y(Normal)27 b(v)n(ersion)g(.)19 +b(421)123 b(111)332 2654 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(422)123 b(110)332 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(422)123 b(111)332 2754 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(423)123 b(111)166 2853 y(Undra)n(w)45 b(.)19 +(.)58 b(423)123 b(112)166 2853 y(Undra)n(w)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(424)123 b(111)332 2953 y(Normal)27 b(v)n(ersion)g(.)19 +f(.)58 b(424)123 b(112)332 2953 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(425)123 b(111)332 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(425)123 b(112)332 3053 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(426)123 b(111)166 3152 y(Dra)n(w)27 b(help)40 +(.)58 b(426)123 b(112)166 3152 y(Dra)n(w)27 b(help)40 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(427)123 b(111)332 3252 y(Normal)27 b(v)n(ersion)g(.)19 +(.)58 b(427)123 b(112)332 3252 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(428)123 b(111)332 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(428)123 b(112)332 3351 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(429)123 b(112)0 3451 y(Sho)n(wing)29 b(.)19 b(.)f(.)h(.)f(.)h +(.)58 b(429)123 b(113)0 3451 y(Sho)n(wing)29 b(.)19 b(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(430)123 b(112)166 3551 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.) +(.)58 b(430)123 b(113)166 3551 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(431)123 b(112)166 3650 y(Sho)n(w)27 b(transform)49 +b(431)123 b(113)166 3650 y(Sho)n(w)27 b(transform)49 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(433)123 b(113)0 3750 y(Outputting)47 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f +b(433)123 b(114)0 3750 y(Outputting)47 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(435)123 b(114)166 3850 y(Output)28 b(op)r(erator)60 +b(435)123 b(115)166 3850 y(Output)28 b(op)r(erator)60 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(436)123 -b(114)166 3949 y(Suppress)27 b(output)32 b(.)18 b(.)h(.)f(.)h(.)f(.)h +b(115)166 3949 y(Suppress)27 b(output)32 b(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(438)123 b(114)166 4049 y(Unsuppress)27 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(438)123 b(115)166 4049 y(Unsuppress)27 b(output)61 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(440)123 b(114)166 4148 y(Extract)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +b(440)123 b(115)166 4148 y(Extract)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(442)123 -b(115)166 4248 y(Get)28 b(extremes)56 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f +b(116)166 4248 y(Get)28 b(extremes)56 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(444)123 b(116)166 4348 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(444)123 b(117)166 4348 y(Get)28 b(minim)n(um)g(z)53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(445)123 b(116)166 4447 y(Get)28 b(maxim)n(um)f(z)37 +f(.)h(.)f(.)58 b(445)123 b(117)166 4447 y(Get)28 b(maxim)n(um)f(z)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(447)123 b(117)166 4547 y(Get)28 b(mean)f(z)37 b(.)18 +b(447)123 b(118)166 4547 y(Get)28 b(mean)f(z)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(449)123 b(117)166 4647 y(Set)28 b(extremes)33 b(.)19 +b(449)123 b(118)166 4647 y(Set)28 b(extremes)33 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(451)123 b(117)166 4746 y(Comparison)26 b(classes)47 +b(451)123 b(118)166 4746 y(Comparison)26 b(classes)47 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(453)123 -b(118)332 4846 y(Compare)26 b(minim)n(um)j(z)66 b(.)19 +b(119)332 4846 y(Compare)26 b(minim)n(um)j(z)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(454)123 b(119)332 4945 y(Compare)26 b(maxim)n(um)i(z)50 +(.)h(.)f(.)58 b(454)123 b(120)332 4945 y(Compare)26 b(maxim)n(um)i(z)50 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)58 b(455)123 b(119)332 5045 y(Compare)26 +h(.)f(.)h(.)f(.)58 b(455)123 b(120)332 5045 y(Compare)26 b(mean)i(z)50 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(456)123 -b(120)166 5145 y(Output)65 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +b(121)166 5145 y(Output)65 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(457)123 b(120)0 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(457)123 b(121)0 5244 y(Lab)r(elling)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(459)123 -b(121)166 5344 y(Lab)r(el)47 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +b(122)166 5344 y(Lab)r(el)47 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(460)123 -b(121)p eop end -%%Page: 517 517 -TeXDict begin 517 516 bop 0 83 a Fl(3DLDFPR)n(G)2494 +b(122)p eop end +%%Page: 521 521 +TeXDict begin 521 520 bop 0 83 a Fl(3DLDFPR)n(G)2494 b(T)-6 b(ABLE)24 b(OF)f(CONTENTS)141 b Fm(vii)332 263 y Fk(string)27 b Fm(argumen)n(t)50 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(461)123 b(122)332 363 y Fk(short)28 b Fm(argumen)n(t)35 +b(461)123 b(123)332 363 y Fk(short)28 b Fm(argumen)n(t)35 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(463)123 b(124)166 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(463)123 b(125)166 462 y(Dotlab)r(el)64 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(465)123 b(125)332 562 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(465)123 b(126)332 562 y Fk(string)27 b Fm(argumen)n(t)50 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(466)123 b(126)332 662 y Fk(short)28 b Fm(argumen)n(t)35 +b(466)123 b(127)332 662 y Fk(short)28 b Fm(argumen)n(t)35 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(468)123 b(126)166 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(468)123 b(127)166 761 y(Get)28 b(cop)n(y)f(of)g Fk(Lab)s(el)67 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(471)123 b(127)166 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(471)123 b(128)166 861 y(Output)28 b Fk(Lab)s(els)60 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)58 b(472)123 b(127)0 960 y(Matrix)27 +f(.)h(.)f(.)h(.)f(.)58 b(472)123 b(128)0 960 y(Matrix)27 b(op)r(erations)51 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(473)123 b(127)166 1060 y(Multiplication)28 +h(.)f(.)58 b(473)123 b(128)166 1060 y(Multiplication)28 b(b)n(y)f(a)g Fk(T)-8 b(ransform)29 b Fm(with)f(assignmen)n(t)52 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)58 b(474)123 b(128)0 1160 y(V)-7 b(ector)27 b(op)r(erations)65 +(.)f(.)58 b(474)123 b(129)0 1160 y(V)-7 b(ector)27 b(op)r(erations)65 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(476)123 b(128)166 1259 y(V)-7 b(ector)27 b(addition)60 +b(476)123 b(129)166 1259 y(V)-7 b(ector)27 b(addition)60 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(477)123 b(128)166 1359 y(V)-7 b(ector)27 b(addition)h(with)g +b(477)123 b(129)166 1359 y(V)-7 b(ector)27 b(addition)h(with)g (assignmen)n(t)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(479)123 b(128)166 1459 y(V)-7 b(ector)27 +(.)h(.)f(.)58 b(479)123 b(129)166 1459 y(V)-7 b(ector)27 b(subtraction)k(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(481)123 b(129)166 1558 y(V)-7 b(ector)27 b(subtraction)g(with)h +b(481)123 b(130)166 1558 y(V)-7 b(ector)27 b(subtraction)g(with)h (assignmen)n(t)36 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(483)123 b(129)166 1658 y(V)-7 b(ector-scalar)25 +(.)58 b(483)123 b(130)166 1658 y(V)-7 b(ector-scalar)25 b(m)n(ultipication)j(with)g(assignmen)n(t)61 b(.)19 b(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(485)123 b(129)166 1757 y(V)-7 b(ector-scalar)25 b(m)n(ultipication)57 +b(485)123 b(130)166 1757 y(V)-7 b(ector-scalar)25 b(m)n(ultipication)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(487)123 b(130)332 1857 y(Mem)n(b)r(er)27 +f(.)h(.)f(.)58 b(487)123 b(131)332 1857 y(Mem)n(b)r(er)27 b(v)n(ersion)g(\()p Fk(P)m(oin)m(t)h Fm(\014rst\))53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(488)123 b(130)332 1957 y(Non-mem)n(b)r(er)27 b(v)n(ersion)f(\(scalar) +b(488)123 b(131)332 1957 y(Non-mem)n(b)r(er)27 b(v)n(ersion)f(\(scalar) g(\014rst\))65 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(490)123 b(130)166 2056 y(Unary)27 b(min)n(us)i(.)19 +b(490)123 b(131)166 2056 y(Unary)27 b(min)n(us)i(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(492)123 b(130)166 2156 y(V)-7 b(ector-scalar)25 b(division)i(with)h +b(492)123 b(131)166 2156 y(V)-7 b(ector-scalar)25 b(division)i(with)h (assignmen)n(t)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(494)123 b(131)166 2256 y(V)-7 b(ector-scalar)25 b(division)51 +b(494)123 b(132)166 2256 y(V)-7 b(ector-scalar)25 b(division)51 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(496)123 b(131)166 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(496)123 b(132)166 2355 y(Dot)28 b(pro)r(duct)49 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(498)123 b(132)166 2455 y(Cross)26 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(498)123 b(133)166 2455 y(Cross)26 b(pro)r(duct)j(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(500)123 b(132)166 2554 y(Magnitude)67 b(.)18 +f(.)58 b(500)123 b(133)166 2554 y(Magnitude)67 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(502)123 b(133)166 2654 y(Angle)28 b(b)r(et)n(w)n(een)f(t)n(w)n(o)g(v) +b(502)123 b(134)166 2654 y(Angle)28 b(b)r(et)n(w)n(een)f(t)n(w)n(o)g(v) n(ectors)67 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(504)123 b(134)166 2754 y(Unit)28 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(504)123 b(135)166 2754 y(Unit)28 b(v)n(ector)43 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(506)123 b(135)166 2853 y(With)29 b(assignmen)n(t)48 +f(.)h(.)f(.)58 b(506)123 b(136)166 2853 y(With)29 b(assignmen)n(t)48 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(507)123 -b(135)166 2953 y Fk(const)28 b Fm(\(no)f(assignmen)n(t\))46 +b(136)166 2953 y Fk(const)28 b Fm(\(no)f(assignmen)n(t\))46 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(509)123 b(136)166 3053 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(509)123 b(137)166 3053 y(Mediation)48 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)58 b(511)123 b(136)166 3152 y(Get)28 +h(.)f(.)h(.)f(.)58 b(511)123 b(137)166 3152 y(Get)28 b(normal)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(513)123 b(137)0 3252 y(Comparison)62 +(.)h(.)f(.)58 b(513)123 b(138)0 3252 y(Comparison)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(514)123 b(137)166 3351 y(Equalit)n(y)65 +(.)h(.)f(.)58 b(514)123 b(138)166 3351 y(Equalit)n(y)65 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)58 b(515)123 b(137)332 3451 y(Non-)p Fk(const)27 +(.)f(.)58 b(515)123 b(138)332 3451 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(516)123 -b(137)332 3551 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 +b(138)332 3551 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(523)123 b(140)166 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(523)123 b(141)166 3650 y(Inequalit)n(y)50 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(525)123 b(140)0 3750 +(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(525)123 b(141)0 3750 y(In)n(tersection)31 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(527)123 b(141)166 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(527)123 b(142)166 3850 y(V)-7 b(ector)27 b(v)n(ersion)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(528)123 b(141)166 3949 y(T)-7 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(528)123 b(142)166 3949 y(T)-7 b(race)27 b(v)n(ersion)55 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)58 b(529)123 b(141)0 4049 y Fk(Picture)28 +h(.)f(.)h(.)f(.)58 b(529)123 b(142)0 4049 y Fk(Picture)28 b Fm(functions)41 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(542)123 b(148)166 4148 y(Assignmen)n(t)27 +h(.)f(.)58 b(542)123 b(149)166 4148 y(Assignmen)n(t)27 b(op)r(erator)32 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(543)123 b(148)166 4248 y(Cop)n(y)27 b(constructor)34 +b(543)123 b(149)166 4248 y(Cop)n(y)27 b(constructor)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(544)123 -b(148)166 4348 y(Com)n(bining)27 b Fk(Pictures)63 b Fm(.)19 +b(149)166 4348 y(Com)n(bining)27 b Fk(Pictures)63 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(545)123 b(149)166 4447 +(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(545)123 b(150)166 4447 y(Clear)27 b Fk(Picture)52 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)58 b(546)123 b(149)166 4547 y(Output)65 +h(.)f(.)h(.)f(.)58 b(546)123 b(150)166 4547 y(Output)65 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(547)123 b(150)332 4647 y Fk(F)-8 b(o)s(cus)27 +(.)h(.)f(.)58 b(547)123 b(151)332 4647 y Fk(F)-8 b(o)s(cus)27 b Fm(argumen)n(t)56 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(548)123 b(150)332 4746 y(No)28 b Fk(F)-8 b(o)s(cus)27 +b(548)123 b(151)332 4746 y(No)28 b Fk(F)-8 b(o)s(cus)27 b Fm(argumen)n(t)49 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(554)123 -b(154)0 4902 y Fk(F)-8 b(o)s(cus)55 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f +b(155)0 4902 y Fk(F)-8 b(o)s(cus)55 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(555)123 b(154)0 5001 y Fk(F)-8 b(o)s(cus)27 b Fm(class)g +b(555)123 b(155)0 5001 y Fk(F)-8 b(o)s(cus)27 b Fm(class)g (de\014nition)k(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(556)123 b(154)0 5101 y(Constructors)26 b(and)h(setting)h(functions)69 +b(556)123 b(155)0 5101 y(Constructors)26 b(and)h(setting)h(functions)69 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(557)123 b(154)166 5201 y(Default)28 b(constructor)38 +58 b(557)123 b(155)166 5201 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(558)123 -b(155)166 5300 y Fk(real)28 b Fm(argumen)n(ts)61 b(.)18 +b(156)166 5300 y Fk(real)28 b Fm(argumen)n(ts)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(559)123 -b(155)332 5400 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +b(156)332 5400 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(560)123 b(155)p eop end -%%Page: 518 518 -TeXDict begin 518 517 bop 0 83 a Fm(viii)141 b Fl(T)-6 +(.)h(.)f(.)58 b(560)123 b(156)p eop end +%%Page: 522 522 +TeXDict begin 522 521 bop 0 83 a Fm(viii)141 b Fl(T)-6 b(ABLE)24 b(OF)f(CONTENTS)2471 b(3DLDFPR)n(G)332 263 y Fm(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(562)123 b(157)166 363 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 +b(562)123 b(158)166 363 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(564)123 -b(157)332 462 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +b(158)332 462 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(565)123 b(157)332 562 y(Setting)28 b(function)40 +h(.)f(.)58 b(565)123 b(158)332 562 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(567)123 b(157)0 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(567)123 b(158)0 662 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(569)123 b(157)0 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(569)123 b(158)0 761 y(Reset)28 b(angle)39 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(571)123 -b(158)0 861 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +b(159)0 861 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(573)123 b(159)0 960 y(Returning)27 b(elemen)n(ts)h(and)f(information) +b(573)123 b(160)0 960 y(Returning)27 b(elemen)n(ts)h(and)f(information) 53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(575)123 b(160)166 1060 y(Get)28 b(p)r(osition)47 b(.)19 +b(575)123 b(161)166 1060 y(Get)28 b(p)r(osition)47 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(576)123 b(160)166 1160 y(Get)28 b(direction)59 b(.)18 +b(576)123 b(161)166 1160 y(Get)28 b(direction)59 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(577)123 b(160)166 1259 y(Get)28 b(distance)40 b(.)19 +b(577)123 b(161)166 1259 y(Get)28 b(distance)40 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(578)123 b(160)166 1359 y(Get)28 b(up)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h +b(578)123 b(161)166 1359 y(Get)28 b(up)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(579)123 b(160)166 1459 y(Get)28 b(transform)64 b(.)19 +b(579)123 b(161)166 1459 y(Get)28 b(transform)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(580)123 b(161)166 1558 y(Get)28 b(transform)e(elemen)n(t)50 +b(580)123 b(162)166 1558 y(Get)28 b(transform)e(elemen)n(t)50 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(581)123 b(161)166 1658 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(581)123 b(162)166 1658 y(Get)28 b(p)r(ersp)56 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(583)123 b(162)166 1757 y(Get)28 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(583)123 b(163)166 1757 y(Get)28 b(p)r(ersp)f(elemen)n(t)41 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(584)123 b(162)0 1857 y(Global)27 b(v)-5 b(ariables)37 +58 b(584)123 b(163)0 1857 y(Global)27 b(v)-5 b(ariables)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(586)123 b(162)0 1957 y(Putting)28 b Fk(P)m(oin)m(t)g +b(586)123 b(163)0 1957 y(Putting)28 b Fk(P)m(oin)m(t)g Fm(and)f Fk(F)-8 b(o)s(cus)27 b Fm(together)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(588)123 b(162)0 2084 y Fk(Line)95 b(\()p Fj(lines.web)p +b(588)123 b(163)0 2084 y Fk(Line)95 b(\()p Fj(lines.web)p Fk(\))43 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(591)123 b(164)0 2184 y(Include)28 b(\014les)66 b(.)19 +b(591)123 b(165)0 2184 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(592)123 b(164)0 2284 y Fk(Line)32 b(struct)c +f(.)58 b(592)123 b(165)0 2284 y Fk(Line)32 b(struct)c Fm(de\014nition)44 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(593)123 b(164)0 2383 y(Constructors)29 b(.)19 b(.)f(.)h(.)f(.)h(.)f +b(593)123 b(165)0 2383 y(Constructors)29 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(594)123 b(164)166 2483 y(Default)28 b(constructor)38 +b(594)123 b(165)166 2483 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(595)123 -b(165)166 2582 y(Cop)n(y)27 b(constructor)34 b(.)19 b(.)f(.)h(.)f(.)h +b(166)166 2582 y(Cop)n(y)27 b(constructor)34 b(.)19 b(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(597)123 b(165)0 2682 y(Assignmen)n(t)36 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(597)123 b(166)0 2682 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(599)123 b(165)0 2782 y(Get)28 b Fk(Line)j +(.)f(.)h(.)f(.)58 b(599)123 b(166)0 2782 y(Get)28 b Fk(Line)j Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(601)123 b(166)0 2881 y(Get)28 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(601)123 b(167)0 2881 y(Get)28 b Fk(P)m(ath)55 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(602)123 b(166)0 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(602)123 b(167)0 2981 y(In)n(tersection)31 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(603)123 -b(166)0 3081 y(Get)28 b(distance)40 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.) +b(167)0 3081 y(Get)28 b(distance)40 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(604)123 -b(167)0 3180 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +b(168)0 3180 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(608)123 b(170)0 3280 y(Global)27 b(constan)n(ts)g(for)g +b(608)123 b(171)0 3280 y(Global)27 b(constan)n(ts)g(for)g Fk(Line)52 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(610)123 -b(170)0 3379 y(Putting)28 b Fk(Line)f Fm(together)57 +b(171)0 3379 y(Putting)28 b Fk(Line)f Fm(together)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(612)123 -b(170)0 3507 y Fk(Plane)95 b(\()p Fj(planes.web)p Fk(\))69 +b(171)0 3507 y Fk(Plane)95 b(\()p Fj(planes.web)p Fk(\))69 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(615)123 -b(171)0 3607 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +b(172)0 3607 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(616)123 -b(171)0 3706 y Fk(Plane)32 b(struct)c Fm(de\014nition)j(.)19 +b(172)0 3706 y Fk(Plane)32 b(struct)c Fm(de\014nition)j(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(617)123 b(171)0 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(617)123 b(172)0 3806 y(Constructors)29 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(618)123 b(171)166 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(618)123 b(172)166 3906 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(619)123 b(171)166 4005 y(Cop)n(y)27 b(constructor)34 +f(.)58 b(619)123 b(172)166 4005 y(Cop)n(y)27 b(constructor)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(621)123 -b(172)166 4105 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 +b(173)166 4105 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(623)123 -b(172)0 4204 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +b(174)0 4204 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(625)123 -b(173)0 4304 y(Comparing)26 b Fk(Planes)45 b Fm(.)19 +b(175)0 4304 y(Comparing)26 b Fk(Planes)45 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(627)123 b(174)166 4404 y(Equalit)n(y)65 b(.)18 b(.)h(.)f(.)h(.)f(.)h +b(627)123 b(176)166 4404 y(Equalit)n(y)65 b(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(628)123 -b(174)166 4503 y(Inequalit)n(y)50 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f +b(176)166 4503 y(Inequalit)n(y)50 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(630)123 b(174)0 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(630)123 b(176)0 4603 y(Get)28 b(distance)40 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(632)123 b(175)166 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(632)123 b(177)166 4703 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 b(.)19 b(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(633)123 b(175)166 4802 y(No)27 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(633)123 b(177)166 4802 y(No)27 b(argumen)n(t)64 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(635)123 b(175)166 4902 y Fk(P)m(oin)m(t)28 +h(.)f(.)58 b(635)123 b(177)166 4902 y Fk(P)m(oin)m(t)28 b Fm(is)g(on)f Fk(Plane)61 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(637)123 b(176)0 5001 y(In)n(tersection)31 b(.)18 +58 b(637)123 b(178)0 5001 y(In)n(tersection)31 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(638)123 b(176)166 5101 y(In)n(tersection)27 +h(.)f(.)58 b(638)123 b(178)166 5101 y(In)n(tersection)27 b(with)h(a)f(line)32 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(639)123 b(176)332 5201 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 +b(639)123 b(178)332 5201 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(640)123 b(176)332 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(640)123 b(178)332 5300 y Fk(P)m(ath)29 b Fm(argumen)n(t)51 b(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(642)123 b(177)166 5400 y(In)n(tersection)27 +h(.)f(.)58 b(642)123 b(179)166 5400 y(In)n(tersection)27 b(of)g(t)n(w)n(o)g Fk(Planes)61 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(643)123 -b(177)p eop end -%%Page: 519 519 -TeXDict begin 519 518 bop 0 83 a Fl(3DLDFPR)n(G)2517 +b(179)p eop end +%%Page: 523 523 +TeXDict begin 523 522 bop 0 83 a Fl(3DLDFPR)n(G)2517 b(T)-6 b(ABLE)24 b(OF)f(CONTENTS)141 b Fm(ix)0 263 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(645)123 b(179)0 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(645)123 b(181)0 363 y(Global)27 b(constan)n(ts)g(for)g Fk(Plane)40 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(647)123 b(179)0 462 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(647)123 b(181)0 462 y(Putting)28 b Fk(Plane)f Fm(together)44 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(649)123 b(179)0 618 y Fk(P)m(ath)97 +f(.)h(.)f(.)58 b(649)123 b(181)0 618 y Fk(P)m(ath)97 b(\()p Fj(paths.web)p Fk(\))65 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(652)123 b(181)0 718 y(Include)28 b(\014les)66 +f(.)h(.)f(.)58 b(652)123 b(183)0 718 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(653)123 b(181)0 817 y Fk(P)m(ath)29 b +(.)h(.)f(.)58 b(653)123 b(183)0 817 y Fk(P)m(ath)29 b Fm(class)e(de\014nition)67 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(654)123 b(181)0 917 y(Static)28 b(mem)n(b)r(er)f(v)-5 +f(.)58 b(654)123 b(183)0 917 y(Static)28 b(mem)n(b)r(er)f(v)-5 b(ariable)27 b(de\014nitions)43 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(655)123 b(182)0 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(655)123 b(184)0 1016 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(656)123 b(182)0 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(656)123 b(184)0 1116 y(Constructors)26 b(and)h(setting)h(functions)69 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(658)123 b(183)166 1216 y(Discard)27 b(p)r(oin)n(ts)h(and)f +58 b(658)123 b(185)166 1216 y(Discard)27 b(p)r(oin)n(ts)h(and)f (connectors)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(659)123 b(183)166 1315 y(Default)28 +(.)f(.)h(.)f(.)58 b(659)123 b(185)166 1315 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(660)123 b(184)166 1415 y(Lines)58 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.) +b(660)123 b(186)166 1415 y(Lines)58 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(662)123 b(184)332 1515 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f +b(662)123 b(186)332 1515 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)58 b(663)123 b(184)332 1614 y(Setting)28 +f(.)h(.)f(.)h(.)f(.)58 b(663)123 b(186)332 1614 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(665)123 b(185)166 1714 y Fk(P)m(oin)m(ts)28 b Fm(and)f(one)g(t)n(yp)r +b(665)123 b(187)166 1714 y Fk(P)m(oin)m(ts)28 b Fm(and)f(one)g(t)n(yp)r (e)h(of)g(connector)50 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(667)123 b(186)332 1813 y(Constructor)62 +(.)h(.)f(.)58 b(667)123 b(188)332 1813 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(668)123 -b(186)332 1913 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h +b(188)332 1913 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(670)123 b(187)166 2013 y(V)-7 b(ariable)27 +h(.)f(.)58 b(670)123 b(189)166 2013 y(V)-7 b(ariable)27 b(n)n(um)n(b)r(er)g(of)h Fk(P)m(oin)m(ts)f Fm(and)h(connectors)58 b(.)18 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(672)123 b(188)332 2112 +(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(672)123 b(190)332 2112 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(673)123 b(188)332 2212 y(Setting)28 b(function)40 b(.)18 +b(673)123 b(190)332 2212 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(675)123 b(189)166 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(675)123 b(191)166 2312 y(Cop)n(y)27 b(constructor)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(677)123 b(190)0 2411 y(Pseudo-constructor)25 +f(.)h(.)f(.)58 b(677)123 b(192)0 2411 y(Pseudo-constructor)25 b(for)i(dynamic)g(allo)r(cation)35 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(679)123 b(191)166 2511 y(Optional)27 +(.)h(.)f(.)58 b(679)123 b(193)166 2511 y(Optional)27 b(p)r(oin)n(ter)g(argumen)n(t)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(680)123 -b(191)166 2610 y(Required)27 b Fk(P)m(ath)i Fm(argumen)n(t)g(.)18 +b(193)166 2610 y(Required)27 b Fk(P)m(ath)i Fm(argumen)n(t)g(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(682)123 b(191)0 2710 y(Destructor)27 +(.)f(.)h(.)f(.)58 b(682)123 b(193)0 2710 y(Destructor)27 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(684)123 b(192)0 2810 y(Clear)54 +(.)h(.)f(.)h(.)f(.)58 b(684)123 b(194)0 2810 y(Clear)54 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(686)123 b(193)0 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(686)123 b(195)0 2909 y(Get)28 b(cop)n(y)45 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(688)123 -b(194)0 3009 y(Set)28 b(on)f(free)h(store)g(.)18 b(.)h(.)f(.)h(.)f(.)h +b(196)0 3009 y(Set)28 b(on)f(free)h(store)g(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(690)123 -b(195)0 3109 y(Setting)28 b(dra)n(wing)e(and)i(\014lling)f(data)48 +b(197)0 3109 y(Setting)28 b(dra)n(wing)e(and)i(\014lling)f(data)48 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(691)123 b(195)166 3208 y(Set)28 b Fk(\014ll)p +f(.)h(.)f(.)58 b(691)123 b(197)166 3208 y(Set)28 b Fk(\014ll)p 422 3208 29 4 v 33 w(dra)m(w)p 659 3208 V 36 w(v)-5 b(alue)51 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(692)123 b(195)166 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(692)123 b(197)166 3308 y(Set)28 b(dra)n(w)f(color)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)58 b(694)123 b(195)332 3407 y Fk(Color)27 +f(.)h(.)f(.)h(.)f(.)58 b(694)123 b(197)332 3407 y Fk(Color)27 b Fm(v)n(ersion)67 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(695)123 b(195)332 3507 y Fk(Color)27 b Fm(p)r(oin)n(ter)g(v)n(ersion) +b(695)123 b(197)332 3507 y Fk(Color)27 b Fm(p)r(oin)n(ter)g(v)n(ersion) j(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)58 b(697)123 b(195)166 3607 y(Set)28 +h(.)f(.)h(.)f(.)58 b(697)123 b(197)166 3607 y(Set)28 b(\014ll)g(color)58 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(699)123 b(196)332 3706 y Fk(Color)27 +(.)f(.)h(.)f(.)58 b(699)123 b(198)332 3706 y Fk(Color)27 b Fm(v)n(ersion)67 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(700)123 b(196)332 3806 y Fk(Color)27 b Fm(p)r(oin)n(ter)g(v)n(ersion) +b(700)123 b(198)332 3806 y Fk(Color)27 b Fm(p)r(oin)n(ter)g(v)n(ersion) j(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)58 b(702)123 b(196)166 3906 y(Set)28 +h(.)f(.)h(.)f(.)58 b(702)123 b(198)166 3906 y(Set)28 b(dash)f(pattern)59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(704)123 b(196)166 4005 y(Set)28 b(p)r(en)58 b(.)19 +b(704)123 b(198)166 4005 y(Set)28 b(p)r(en)58 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(706)123 b(197)166 4105 y(Set)28 b(connectors)53 +f(.)58 b(706)123 b(199)166 4105 y(Set)28 b(connectors)53 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(708)123 b(197)0 4204 y(T)-7 b(ransformations)29 b(.)18 +b(708)123 b(199)0 4204 y(T)-7 b(ransformations)29 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(710)123 b(197)166 4304 y(A\016ne)28 b(transformations)57 +b(710)123 b(199)166 4304 y(A\016ne)28 b(transformations)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(711)123 b(197)332 4404 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(711)123 b(199)332 4404 y(Rotation)54 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(712)123 b(197)498 4503 y(Rotation)27 b(around)g(the)h(main)f +f(.)58 b(712)123 b(199)498 4503 y(Rotation)27 b(around)g(the)h(main)f (axes)g(.)19 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(713)123 -b(197)498 4603 y(Rotatation)27 b(around)g(an)g(arbitrary)e(axis)57 +b(199)498 4603 y(Rotatation)27 b(around)g(an)g(arbitrary)e(axis)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(715)123 b(198)664 4703 y Fk(T)-8 +(.)h(.)f(.)h(.)f(.)58 b(715)123 b(200)664 4703 y Fk(T)-8 b(ransform)29 b Fm(v)n(ersion)j(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)58 b(716)123 b(198)664 4802 y +(.)f(.)h(.)f(.)h(.)f(.)58 b(716)123 b(200)664 4802 y Fk(P)m(oin)m(t)28 b Fm(v)n(ersion)k(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(717)123 -b(199)664 4902 y Fk(P)m(ath)29 b Fm(v)n(ersions)65 b(.)19 +b(201)664 4902 y Fk(P)m(ath)29 b Fm(v)n(ersions)65 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(718)123 b(199)830 5001 y Fk(P)m(oin)m(t)28 b +(.)58 b(718)123 b(201)830 5001 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(719)123 b(199)830 5101 y Fk(P)m(ath)29 b Fm(argumen)n(ts)59 +(.)58 b(719)123 b(201)830 5101 y Fk(P)m(ath)29 b Fm(argumen)n(ts)59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(721)123 b(200)332 5201 y(Scale)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.) +b(721)123 b(202)332 5201 y(Scale)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(723)123 b(200)332 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(723)123 b(202)332 5300 y(Shear)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(725)123 b(200)332 5400 y(Shift)36 +(.)h(.)f(.)h(.)f(.)58 b(725)123 b(202)332 5400 y(Shift)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)58 b(727)123 b(201)p eop end -%%Page: 520 520 -TeXDict begin 520 519 bop 0 83 a Fm(x)141 b Fl(T)-6 b(ABLE)23 +(.)f(.)58 b(727)123 b(203)p eop end +%%Page: 524 524 +TeXDict begin 524 523 bop 0 83 a Fm(x)141 b Fl(T)-6 b(ABLE)23 b(OF)h(CONTENTS)2540 b(3DLDFPR)n(G)498 263 y Fk(real)28 b Fm(argumen)n(ts)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(728)123 -b(201)498 363 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 +b(203)498 363 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)58 b(730)123 b(201)332 462 y(Shift)29 +h(.)f(.)h(.)f(.)58 b(730)123 b(203)332 462 y(Shift)29 b(times)62 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(732)123 b(201)498 562 y Fk(real)28 b Fm(argumen)n(ts)61 +b(732)123 b(203)498 562 y Fk(real)28 b Fm(argumen)n(ts)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)58 b(733)123 b(202)498 662 y Fk(P)m(oin)m(t)28 +f(.)h(.)f(.)h(.)f(.)58 b(733)123 b(204)498 662 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(735)123 b(202)166 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(735)123 b(204)166 761 y(Applying)28 b(transformations)63 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(737)123 b(202)332 861 y(Multiplying)28 b(b)n(y)f(a)h +b(737)123 b(204)332 861 y(Multiplying)28 b(b)n(y)f(a)h Fk(T)-8 b(ransform)54 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(738)123 b(202)332 960 y(Applying)28 +(.)f(.)h(.)f(.)58 b(738)123 b(204)332 960 y(Applying)28 b Fk(transform)g Fm(to)f Fk(p)s(oin)m(ts)50 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(740)123 -b(202)166 1060 y(Pro)5 b(jection)36 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.) +b(204)166 1060 y(Pro)5 b(jection)36 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(742)123 b(203)0 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(742)123 b(205)0 1160 y(F)-7 b(unctions)28 b(for)f(lines)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(744)123 b(203)166 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(744)123 b(205)166 1259 y(Alignmen)n(t)28 b(with)g(an)f(axis)61 b(.)19 b(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(745)123 b(203)332 1359 y(F)-7 b(or)27 b(lines)63 +58 b(745)123 b(205)332 1359 y(F)-7 b(or)27 b(lines)63 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(746)123 b(203)498 1459 y(No)28 b(assignmen)n(t)48 b(.)19 +b(746)123 b(205)498 1459 y(No)28 b(assignmen)n(t)48 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(747)123 b(203)498 1558 y(With)29 +(.)h(.)f(.)h(.)f(.)58 b(747)123 b(205)498 1558 y(With)29 b(assignmen)n(t)48 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(749)123 b(204)332 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(749)123 b(206)332 1658 y(F)-7 b(or)27 b(non-lines)67 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(751)123 b(205)0 1757 y(Adding)28 b Fk(P)m(oin)m(ts)g +h(.)f(.)58 b(751)123 b(207)0 1757 y(Adding)28 b Fk(P)m(oin)m(ts)g Fm(to)f Fk(P)m(aths)35 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(753)123 b(205)166 1857 y(With)29 b(assignmen)n(t)48 +b(753)123 b(207)166 1857 y(With)29 b(assignmen)n(t)48 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(754)123 -b(205)166 1957 y(Without)28 b(assignmen)n(t)54 b(.)18 +b(207)166 1957 y(Without)28 b(assignmen)n(t)54 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(756)123 b(205)0 2056 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(756)123 b(207)0 2056 y(Adding)28 b(connectors)e(to)i Fk(P)m(aths)37 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(758)123 b(206)0 2156 y(Concatenating)26 +(.)h(.)f(.)h(.)f(.)58 b(758)123 b(208)0 2156 y(Concatenating)26 b Fk(P)m(aths)41 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(760)123 b(206)166 2256 y(V)-7 b(ersions)27 b(using)g(\\&")52 +b(760)123 b(208)166 2256 y(V)-7 b(ersions)27 b(using)g(\\&")52 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(761)123 -b(206)332 2355 y(With)29 b(assignmen)n(t)48 b(.)19 b(.)f(.)h(.)f(.)h(.) +b(208)332 2355 y(With)29 b(assignmen)n(t)48 b(.)19 b(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)58 b(762)123 b(206)332 2455 y(Without)28 b(assignmen)n(t)54 +(.)f(.)58 b(762)123 b(208)332 2455 y(Without)28 b(assignmen)n(t)54 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)58 b(767)123 b(207)166 2554 y(App)r(ending)28 +f(.)h(.)f(.)h(.)f(.)58 b(767)123 b(209)166 2554 y(App)r(ending)28 b(with)g(a)g(connector)e(argumen)n(t)47 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(769)123 b(208)0 2654 y(Dra)n(wing)26 +f(.)h(.)f(.)58 b(769)123 b(210)0 2654 y(Dra)n(wing)26 b(and)i(\014lling)49 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(772)123 b(208)166 2754 y(Dra)n(w)53 b(.)19 +h(.)f(.)58 b(772)123 b(210)166 2754 y(Dra)n(w)53 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(773)123 b(208)332 2853 y Fk(P)m(ath)29 +f(.)h(.)f(.)58 b(773)123 b(210)332 2853 y Fk(P)m(ath)29 b Fm(v)n(ersions)65 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(774)123 b(209)498 2953 y(Normal)27 b(v)n(ersion)g(.)19 +b(774)123 b(211)498 2953 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(775)123 b(209)498 3053 y Fk(Picture)28 +(.)h(.)f(.)h(.)f(.)58 b(775)123 b(211)498 3053 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)58 b(777)123 b(210)332 3152 y +(.)f(.)h(.)f(.)h(.)f(.)58 b(777)123 b(212)332 3152 y Fk(P)m(oin)m(t)28 b Fm(v)n(ersions)40 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(779)123 b(210)498 3252 y(Normal)27 b(v)n(ersion)g(.)19 +h(.)f(.)58 b(779)123 b(212)498 3252 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(780)123 b(210)498 3351 y Fk(Picture)28 +(.)h(.)f(.)h(.)f(.)58 b(780)123 b(212)498 3351 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)58 b(781)123 b(210)166 3451 y(Dra)n(w)27 +(.)f(.)h(.)f(.)h(.)f(.)58 b(781)123 b(212)166 3451 y(Dra)n(w)27 b(arro)n(w)f(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(782)123 b(210)332 3551 y Fk(P)m(ath)29 b +h(.)f(.)58 b(782)123 b(212)332 3551 y Fk(P)m(ath)29 b Fm(v)n(ersions)65 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(783)123 b(210)498 3650 y(Normal)27 b(v)n(ersion)g(.)19 +b(783)123 b(212)498 3650 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(784)123 b(211)498 3750 y Fk(Picture)28 +(.)h(.)f(.)h(.)f(.)58 b(784)123 b(213)498 3750 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)58 b(786)123 b(211)332 3850 y +(.)f(.)h(.)f(.)h(.)f(.)58 b(786)123 b(213)332 3850 y Fk(P)m(oin)m(t)28 b Fm(v)n(ersions)40 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(788)123 b(211)498 3949 y(Normal)27 b(v)n(ersion)g(.)19 +h(.)f(.)58 b(788)123 b(213)498 3949 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(789)123 b(211)498 4049 y Fk(Picture)28 +(.)h(.)f(.)h(.)f(.)58 b(789)123 b(213)498 4049 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)58 b(790)123 b(212)166 4148 y(Dra)n(w)27 +(.)f(.)h(.)f(.)h(.)f(.)58 b(790)123 b(214)166 4148 y(Dra)n(w)27 b(help)40 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(791)123 b(212)332 4248 y Fk(P)m(ath)29 +f(.)h(.)f(.)58 b(791)123 b(214)332 4248 y Fk(P)m(ath)29 b Fm(v)n(ersions)65 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(792)123 b(212)498 4348 y(Normal)27 b(v)n(ersion)g(.)19 +b(792)123 b(214)498 4348 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(793)123 b(212)498 4447 y Fk(Picture)28 +(.)h(.)f(.)h(.)f(.)58 b(793)123 b(214)498 4447 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)58 b(795)123 b(212)332 4547 y +(.)f(.)h(.)f(.)h(.)f(.)58 b(795)123 b(214)332 4547 y Fk(P)m(oin)m(t)28 b Fm(v)n(ersions)40 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(797)123 b(213)498 4647 y(Normal)27 b(v)n(ersion)g(.)19 +h(.)f(.)58 b(797)123 b(215)498 4647 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(798)123 b(213)498 4746 y Fk(Picture)28 +(.)h(.)f(.)h(.)f(.)58 b(798)123 b(215)498 4746 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)58 b(799)123 b(213)166 4846 y(Fill)43 +(.)f(.)h(.)f(.)h(.)f(.)58 b(799)123 b(215)166 4846 y(Fill)43 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(800)123 b(213)332 4945 +(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(800)123 b(215)332 4945 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(801)123 b(213)332 5045 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 +b(801)123 b(215)332 5045 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(803)123 b(214)166 5145 y(Filldra)n(w)30 +h(.)f(.)58 b(803)123 b(216)166 5145 y(Filldra)n(w)30 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(805)123 b(215)332 5244 y(Normal)27 b(v)n(ersion)g(.)19 +(.)h(.)f(.)58 b(805)123 b(217)332 5244 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(806)123 b(215)332 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(806)123 b(217)332 5344 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(808)123 b(217)p eop end -%%Page: 521 521 -TeXDict begin 521 520 bop 0 83 a Fl(3DLDFPR)n(G)2517 +(.)58 b(808)123 b(219)p eop end +%%Page: 525 525 +TeXDict begin 525 524 bop 0 83 a Fl(3DLDFPR)n(G)2517 b(T)-6 b(ABLE)24 b(OF)f(CONTENTS)141 b Fm(xi)166 263 y(Undra)n(w)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(810)123 b(217)332 363 y +h(.)f(.)h(.)f(.)h(.)f(.)58 b(810)123 b(219)332 363 y Fk(P)m(ath)29 b Fm(v)n(ersions)65 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(811)123 b(217)498 462 y(Normal)27 b(v)n(ersion)g(.)19 +f(.)58 b(811)123 b(219)498 462 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(812)123 b(217)498 562 y Fk(Picture)28 +(.)h(.)f(.)h(.)f(.)58 b(812)123 b(219)498 562 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)58 b(814)123 b(217)332 662 y Fk(P)m(oin)m(t)28 +(.)f(.)h(.)f(.)h(.)f(.)58 b(814)123 b(219)332 662 y Fk(P)m(oin)m(t)28 b Fm(v)n(ersions)40 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(816)123 b(218)498 761 y(Normal)27 b(v)n(ersion)g(.)19 +b(816)123 b(220)498 761 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(817)123 b(218)498 861 y Fk(Picture)28 +(.)h(.)f(.)h(.)f(.)58 b(817)123 b(220)498 861 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)58 b(818)123 b(218)166 960 y(Un\014ll)49 +(.)f(.)h(.)f(.)h(.)f(.)58 b(818)123 b(220)166 960 y(Un\014ll)49 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(819)123 b(218)332 1060 y(Normal)27 +(.)h(.)f(.)h(.)f(.)58 b(819)123 b(220)332 1060 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(820)123 b(218)166 1160 y(Un\014lldra)n(w)36 b(.)19 +b(820)123 b(220)166 1160 y(Un\014lldra)n(w)36 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(822)123 b(219)332 1259 y(Normal)27 b(v)n(ersion)g(.)19 +b(822)123 b(221)332 1259 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(823)123 b(219)332 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(823)123 b(221)332 1359 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(825)123 b(220)0 1459 y(Lab)r(elling)38 b(.)18 +(.)58 b(825)123 b(222)0 1459 y(Lab)r(elling)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)58 b(827)123 b(221)166 1558 y(Lab)r(el)47 +h(.)f(.)h(.)f(.)58 b(827)123 b(223)166 1558 y(Lab)r(el)47 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(828)123 b(221)332 1658 y(Normal)27 +(.)h(.)f(.)h(.)f(.)58 b(828)123 b(223)332 1658 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(829)123 b(221)332 1757 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 +b(829)123 b(223)332 1757 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(831)123 b(222)166 1857 y(Dotlab)r(el)64 +h(.)f(.)58 b(831)123 b(224)166 1857 y(Dotlab)r(el)64 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)58 b(833)123 b(222)332 1957 y(Normal)27 b(v)n(ersion)g(.)19 +(.)f(.)58 b(833)123 b(224)332 1957 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(834)123 b(223)332 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(834)123 b(225)332 2056 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(836)123 b(223)0 2156 y(Outputting)47 b(.)18 b(.)h(.)f(.)h(.)f +(.)58 b(836)123 b(225)0 2156 y(Outputting)47 b(.)18 b(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(838)123 b(223)166 2256 y(Extract)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +b(838)123 b(225)166 2256 y(Extract)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(839)123 -b(223)166 2355 y(Set)28 b(extremes)33 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +b(225)166 2355 y(Set)28 b(extremes)33 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(841)123 b(224)166 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(841)123 b(226)166 2455 y(Get)28 b(extremes)56 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(845)123 b(226)166 2554 y(Get)28 +(.)h(.)f(.)h(.)f(.)58 b(845)123 b(228)166 2554 y(Get)28 b(minim)n(um)g(z)53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(846)123 b(226)166 2654 y(Get)28 b(maxim)n(um)f(z)37 +(.)58 b(846)123 b(228)166 2654 y(Get)28 b(maxim)n(um)f(z)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(848)123 b(227)166 2754 y(Get)28 b(mean)f(z)37 b(.)18 +b(848)123 b(229)166 2754 y(Get)28 b(mean)f(z)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(850)123 b(227)166 2853 y(Suppress)27 b(output)32 b(.)18 +b(850)123 b(229)166 2853 y(Suppress)27 b(output)32 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(852)123 -b(227)166 2953 y(Unsuppress)27 b(output)61 b(.)19 b(.)f(.)h(.)f(.)h(.)f +b(229)166 2953 y(Unsuppress)27 b(output)61 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(854)123 b(228)166 3053 y(Output)65 b(.)19 +f(.)h(.)f(.)58 b(854)123 b(230)166 3053 y(Output)65 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(856)123 b(228)0 3152 y(Sho)n(wing)29 b(.)19 +f(.)58 b(856)123 b(230)0 3152 y(Sho)n(wing)29 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)58 b(865)123 b(234)166 3252 y(Sho)n(w)57 +f(.)h(.)f(.)h(.)f(.)58 b(865)123 b(236)166 3252 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(866)123 b(234)166 3351 y(Sho)n(w)27 +(.)h(.)f(.)h(.)f(.)58 b(866)123 b(236)166 3351 y(Sho)n(w)27 b Fk(Colors)52 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(868)123 b(236)0 3451 y(Returning)27 b(elemen)n(ts)h(and)f +h(.)f(.)58 b(868)123 b(238)0 3451 y(Returning)27 b(elemen)n(ts)h(and)f (information)53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(870)123 b(236)166 3551 y(Is)27 b(on)h(free)f(store)39 +f(.)h(.)f(.)58 b(870)123 b(238)166 3551 y(Is)27 b(on)h(free)f(store)39 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(871)123 b(236)166 3650 y(Is)27 b(planar)52 b(.)18 b(.)h(.)f(.)h(.)f +b(871)123 b(238)166 3650 y(Is)27 b(planar)52 b(.)18 b(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(872)123 b(236)166 3750 y(Is)27 b(linear)38 b(.)19 b(.)f(.)h(.)f(.)h +b(872)123 b(238)166 3750 y(Is)27 b(linear)38 b(.)19 b(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(874)123 b(237)166 3850 y(Get)28 b(line)g(switc)n(h)33 +b(874)123 b(239)166 3850 y(Get)28 b(line)g(switc)n(h)33 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(876)123 b(238)166 3949 y(T)-7 b(est)28 b(for)f(cycles)60 +b(876)123 b(240)166 3949 y(T)-7 b(est)28 b(for)f(cycles)60 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(877)123 b(238)166 4049 y(Size)28 b(\(n)n(um)n(b)r(er)f(of)h(p)r(oin)n +b(877)123 b(240)166 4049 y(Size)28 b(\(n)n(um)n(b)r(er)f(of)h(p)r(oin)n (ts\))59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(878)123 b(238)166 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(878)123 b(240)166 4148 y(Slop)r(e)53 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(879)123 b(239)166 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(879)123 b(241)166 4248 y(Subpath)70 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(881)123 b(239)166 4348 y(Get)28 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(881)123 b(241)166 4348 y(Get)28 b(p)r(oin)n(t)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)58 b(887)123 b(241)166 4447 y(Get)28 -b(last)f(p)r(oin)n(t)32 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(889)123 b(242)166 4547 y(Get)28 b(size)40 -b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +f(.)h(.)f(.)h(.)f(.)58 b(887)123 b(243)332 4447 y(non-)p +Fk(const)27 b Fm(v)n(ersion)43 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(891)123 b(242)166 4647 y(Get)28 b(normal)40 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 +b(888)123 b(243)332 4547 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(892)123 b(242)332 4746 y Fk(P)m(ath)29 b Fm(v)n(ersion)57 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(890)123 +b(244)166 4647 y(Get)28 b(last)f(p)r(oin)n(t)32 b(.)18 +b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 +b(892)123 b(244)166 4746 y(Get)28 b(size)40 b(.)19 b(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 +b(894)123 b(245)166 4846 y(Get)28 b(normal)40 b(.)18 +b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 +b(895)123 b(245)332 4945 y Fk(P)m(ath)29 b Fm(v)n(ersion)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(893)123 -b(243)332 4846 y Fk(P)m(oin)m(t)28 b Fm(v)n(ersion)k(.)18 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(896)123 +b(246)332 5045 y Fk(P)m(oin)m(t)28 b Fm(v)n(ersion)k(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(898)123 b(246)166 -4945 y(Get)28 b(plane)59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(901)123 b(249)166 +5145 y(Get)28 b(plane)59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(899)123 b(246)166 5045 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(902)123 b(249)166 5244 y Fk(P)m(oin)m(t)28 b Fm(lies)g(within)g(triangle)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)58 b(901)123 b(247)0 5145 y(Manipulating)27 +h(.)f(.)h(.)f(.)58 b(904)123 b(250)0 5344 y(Manipulating)27 b Fk(P)m(aths)39 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(904)123 b(250)166 5244 y(Set)28 b(cycle)53 b(.)18 -b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(905)123 b(250)166 5344 y(Rev)n(erse)52 b(.)19 b(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +(.)58 b(907)123 b(253)p eop end +%%Page: 526 526 +TeXDict begin 526 525 bop 0 83 a Fm(xii)141 b Fl(T)-6 +b(ABLE)24 b(OF)f(CONTENTS)2494 b(3DLDFPR)n(G)166 263 +y Fm(Set)28 b(cycle)53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(908)123 b(253)166 363 +y(Rev)n(erse)52 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(910)123 b(254)332 462 +y(With)29 b(assignmen)n(t)48 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(907)123 b(251)p eop end -%%Page: 522 522 -TeXDict begin 522 521 bop 0 83 a Fm(xii)141 b Fl(T)-6 -b(ABLE)24 b(OF)f(CONTENTS)2494 b(3DLDFPR)n(G)332 263 -y Fm(With)29 b(assignmen)n(t)48 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(908)123 b(251)332 363 y(No)28 b(assignmen)n(t)48 b(.)19 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 +b(911)123 b(254)332 562 y(No)28 b(assignmen)n(t)48 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(912)123 b(252)0 -462 y(Equalit)n(y)65 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(915)123 b(255)0 +662 y(Equalit)n(y)65 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(914)123 -b(252)0 562 y(In)n(tersection)31 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(917)123 +b(255)0 761 y(In)n(tersection)31 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(916)123 -b(253)166 662 y(In)n(tersection)27 b(of)g(t)n(w)n(o)g(linear)g +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(919)123 +b(256)166 861 y(In)n(tersection)27 b(of)g(t)n(w)n(o)g(linear)g Fk(P)m(aths)33 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(917)123 b(253)166 761 y(In)n(tersection)27 +(.)f(.)h(.)f(.)58 b(920)123 b(256)166 960 y(In)n(tersection)27 b(of)g(a)g(linear)g Fk(P)m(ath)i Fm(with)f(a)f Fk(Plane)52 b Fm(.)18 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(919)123 b(254)0 861 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(922)123 b(257)0 1060 y(Dra)n(wing)26 b(axes)51 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(920)123 b(254)166 -960 y(Length)28 b(argumen)n(t)e(\014rst)32 b(.)19 b(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(923)123 b(257)166 +1160 y(Length)28 b(argumen)n(t)e(\014rst)32 b(.)19 b(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(921)123 b(255)166 1060 y Fk(Color)27 b Fm(argumen)n(t)g +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)58 b(924)123 b(258)166 1259 y Fk(Color)27 b Fm(argumen)n(t)g (\014rst)56 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(926)123 -b(256)0 1160 y Fk(P)m(aths)29 b Fm(and)e Fk(Lines)61 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(929)123 +b(259)0 1359 y Fk(P)m(aths)29 b Fm(and)e Fk(Lines)61 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(928)123 b(257)166 1259 y(Get)28 b Fk(Line)j Fm(.)18 +b(931)123 b(260)166 1459 y(Get)28 b Fk(Line)j Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(929)123 b(257)166 1359 y(Get)28 b Fk(P)m(ath)55 +58 b(932)123 b(260)166 1558 y(Get)28 b Fk(P)m(ath)55 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(931)123 b(257)0 1459 y(Putting)28 b Fk(P)m(ath)g +f(.)58 b(934)123 b(260)0 1658 y(Putting)28 b Fk(P)m(ath)g Fm(together)39 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(932)123 b(257)0 1577 y Fk(Curv)m(es)96 b(\()p Fj(curves.web)p +b(935)123 b(260)0 1776 y Fk(Curv)m(es)96 b(\()p Fj(curves.web)p Fk(\))55 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(935)123 -b(259)0 1676 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(938)123 +b(262)0 1876 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(936)123 -b(259)0 1795 y Fk(Regular)31 b(closed)g(plane)h(curv)m(e)39 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(939)123 +b(262)0 1994 y Fk(Regular)31 b(closed)g(plane)h(curv)m(e)39 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(937)123 b(259)0 1894 y Fk(Reg)p -170 1894 29 4 v 33 w(Cl)p 299 1894 V 34 w(Plane)p 568 -1894 V 35 w(Curv)m(e)28 b Fm(class)f(de\014nition)40 +(.)h(.)f(.)h(.)f(.)58 b(940)123 b(262)0 2094 y Fk(Reg)p +170 2094 29 4 v 33 w(Cl)p 299 2094 V 34 w(Plane)p 568 +2094 V 35 w(Curv)m(e)28 b Fm(class)f(de\014nition)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(938)123 b(259)0 1994 y(Returning)27 b(elemen)n(ts)h(and)f +b(941)123 b(262)0 2193 y(Returning)27 b(elemen)n(ts)h(and)f (information)53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(939)123 b(259)166 2094 y(Is)27 b(quadratic)63 +f(.)h(.)f(.)58 b(942)123 b(263)166 2293 y(Is)27 b(quadratic)63 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(940)123 b(260)166 2193 y(Is)27 b(cubic)53 b(.)19 b(.)f(.)h(.)f(.)h(.) +b(943)123 b(263)166 2393 y(Is)27 b(cubic)53 b(.)19 b(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(941)123 b(260)166 2293 y(Is)27 b(quartic)68 b(.)19 +b(944)123 b(263)166 2492 y(Is)27 b(quartic)68 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(942)123 b(260)166 2393 y(Get)28 b(co)r(e\016cien)n(ts)68 +b(945)123 b(263)166 2592 y(Get)28 b(co)r(e\016cien)n(ts)68 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(943)123 b(260)0 2492 y(Solv)n(e)59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +b(946)123 b(263)0 2691 y(Solv)n(e)59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)58 b(944)123 b(260)0 2592 y(Lo)r(cation)27 b(of)g(a)h(p)r(oin)n(t)49 +(.)58 b(947)123 b(263)0 2791 y(Lo)r(cation)27 b(of)g(a)h(p)r(oin)n(t)49 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(945)123 b(260)0 2691 y(Angle)28 b(p)r(oin)n(t)i(.)18 +b(948)123 b(263)0 2891 y(Angle)28 b(p)r(oin)n(t)i(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(947)123 b(265)0 2791 y(In)n(tersection)27 +h(.)f(.)58 b(950)123 b(268)0 2990 y(In)n(tersection)27 b(p)r(oin)n(ts)k(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(949)123 b(266)166 2891 y Fk(P)m(oin)m(t)28 b +f(.)58 b(952)123 b(269)166 3090 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(950)123 b(266)498 2990 y(Degenerate)27 b(cases,)f(error)g(handling)63 +b(953)123 b(269)498 3190 y(Degenerate)27 b(cases,)f(error)g(handling)63 b(.)19 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(952)123 b(267)498 -3090 y(P)n(arallel)26 b(and)h(coplanar)f(cases)54 b(.)18 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(955)123 b(270)498 +3289 y(P)n(arallel)26 b(and)h(coplanar)f(cases)54 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(953)123 -b(267)664 3190 y(Coplanar)26 b(case)31 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(956)123 +b(270)664 3389 y(Coplanar)26 b(case)31 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(954)123 b(268)664 3289 y(P)n(arallel)26 b(case)45 b(.)19 +b(957)123 b(271)664 3488 y(P)n(arallel)26 b(case)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(959)123 b(273)498 3389 y(P)n(erp)r(endicular)26 +(.)h(.)f(.)58 b(962)123 b(276)498 3588 y(P)n(erp)r(endicular)26 b(and)i(non-coplanar)d(cases)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(960)123 -b(273)166 3488 y Fk(P)m(ath)29 b Fm(argumen)n(ts)59 b(.)19 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(963)123 +b(276)166 3688 y Fk(P)m(ath)29 b Fm(argumen)n(ts)59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(961)123 -b(273)0 3588 y Fk(Reg)p 170 3588 V 33 w(Cl)p 299 3588 -V 34 w(Plane)p 568 3588 V 35 w(Curv)m(e)28 b Fm(segmen)n(ts)41 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(964)123 +b(276)0 3787 y Fk(Reg)p 170 3787 V 33 w(Cl)p 299 3787 +V 34 w(Plane)p 568 3787 V 35 w(Curv)m(e)28 b Fm(segmen)n(ts)41 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(963)123 b(274)166 3688 y(Segmen)n(t)67 b(.)18 +h(.)f(.)58 b(966)123 b(277)166 3887 y(Segmen)n(t)67 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -58 b(964)123 b(274)166 3787 y(Half)56 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f +58 b(967)123 b(277)166 3987 y(Half)56 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(966)123 b(275)166 3887 y(Quarter)44 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +b(969)123 b(278)166 4086 y(Quarter)44 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(967)123 -b(275)0 3987 y(Putting)28 b Fk(Reg)p 476 3987 V 33 w(Cl)p -605 3987 V 34 w(Plane)p 874 3987 V 34 w(Curv)m(e)h Fm(together)52 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(970)123 +b(278)0 4186 y(Putting)28 b Fk(Reg)p 476 4186 V 33 w(Cl)p +605 4186 V 34 w(Plane)p 874 4186 V 34 w(Curv)m(e)h Fm(together)52 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(968)123 b(276)0 4105 y Fk(P)m(olygon)95 b(\()p Fj(polygons.web)p +b(971)123 b(279)0 4304 y Fk(P)m(olygon)95 b(\()p Fj(polygons.web)p Fk(\))46 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(970)123 b(277)0 -4204 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(973)123 b(280)0 +4404 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(971)123 -b(277)0 4304 y Fk(P)m(olygon)27 b Fm(class)g(de\014nition)56 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(974)123 +b(280)0 4503 y Fk(P)m(olygon)27 b Fm(class)g(de\014nition)56 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(972)123 b(277)0 -4404 y(Returning)27 b(elemen)n(ts)h(and)f(information)53 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(975)123 b(280)0 +4603 y(Returning)27 b(elemen)n(ts)h(and)f(information)53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(973)123 b(277)166 4503 y(Get)28 b(cen)n(ter)33 b(.)19 +b(976)123 b(280)166 4703 y(Get)28 b(cen)n(ter)33 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(974)123 b(277)332 4603 y(non-)p Fk(const)27 b Fm(v)n(ersion)43 +b(977)123 b(281)332 4802 y(non-)p Fk(const)27 b Fm(v)n(ersion)43 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(975)123 b(278)332 4703 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(978)123 b(281)332 4902 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(977)123 b(278)0 4802 y(In)n(tersections)39 +h(.)f(.)58 b(980)123 b(281)0 5001 y(In)n(tersections)39 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(979)123 b(279)166 4902 y(In)n(tersection)27 +(.)h(.)f(.)58 b(982)123 b(282)166 5101 y(In)n(tersection)27 b(with)h(a)f(line)32 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(980)123 b(279)332 5001 y Fk(P)m(oin)m(t)28 b Fm(v)n(ersion)k(.)18 +b(983)123 b(282)332 5201 y Fk(P)m(oin)m(t)28 b Fm(v)n(ersion)k(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(981)123 b(279)498 -5101 y(Degenerate)27 b(cases,)f(error)g(handling)63 b(.)19 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(984)123 b(282)498 +5300 y(Degenerate)27 b(cases,)f(error)g(handling)63 b(.)19 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)58 b(983)123 b(280)498 5201 y(P)n(arallel)26 +h(.)f(.)h(.)f(.)h(.)f(.)58 b(986)123 b(283)498 5400 y(P)n(arallel)26 b(and)h(coplanar)f(cases)54 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)58 b(984)123 b(280)664 5300 y(Coplanar)26 b(case)31 -b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +h(.)f(.)58 b(987)123 b(283)p eop end +%%Page: 527 527 +TeXDict begin 527 526 bop 0 83 a Fl(3DLDFPR)n(G)2471 +b(T)-6 b(ABLE)24 b(OF)f(CONTENTS)141 b Fm(xiii)664 263 +y(Coplanar)26 b(case)31 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)58 b(985)123 b(281)664 5400 y(P)n(arallel)26 -b(case)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(986)123 b(282)p eop end -%%Page: 523 523 -TeXDict begin 523 522 bop 0 83 a Fl(3DLDFPR)n(G)2471 -b(T)-6 b(ABLE)24 b(OF)f(CONTENTS)141 b Fm(xiii)498 263 -y(P)n(erp)r(endicular)26 b(and)i(non-coplanar)d(cases)38 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(988)123 b(284)664 +363 y(P)n(arallel)26 b(case)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(989)123 +b(285)498 462 y(P)n(erp)r(endicular)26 b(and)i(non-coplanar)d(cases)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)58 b(987)123 b(283)498 363 y(End)28 b(of)f(de\014nition) +(.)f(.)h(.)f(.)58 b(990)123 b(286)498 562 y(End)28 b(of)f(de\014nition) 52 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)58 b(989)123 b(284)332 462 y Fk(P)m(ath)29 +(.)h(.)f(.)h(.)f(.)58 b(992)123 b(287)332 662 y Fk(P)m(ath)29 b Fm(v)n(ersion)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(990)123 b(284)166 562 y(In)n(tersection)27 b(with)h(another)e +b(993)123 b(287)166 761 y(In)n(tersection)27 b(with)h(another)e Fk(P)m(olygon)46 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)58 b(992)123 b(284)332 662 y(Coplanar)26 b(case)31 +f(.)58 b(995)123 b(287)332 861 y(Coplanar)26 b(case)31 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(994)123 -b(285)332 761 y(P)n(arallel)26 b(case)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 b(997)123 +b(288)332 960 y(P)n(arallel)26 b(case)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)58 b(995)123 b(285)332 861 y(Non-parallel,)26 +f(.)h(.)f(.)h(.)f(.)58 b(998)123 b(288)332 1060 y(Non-parallel,)26 b(non-coplanar)g(case)60 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)58 b(996)123 b(286)0 960 y(T)-7 b(ransformations)29 +(.)f(.)58 b(999)123 b(289)0 1160 y(T)-7 b(ransformations)29 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)58 -b(997)123 b(287)166 1060 y(Applying)28 b(a)f(transformation)g(.)19 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1000)122 b(290)166 1259 y(Applying)28 b(a)f(transformation)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)58 b(998)123 b(287)166 1160 y(Rotatation)27 -b(around)g(the)g(main)h(axes)36 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)58 b(1000)122 b(288)166 1259 y(Rotate)27 -b(around)g(an)g(arbitrary)f(axis)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)h(.)58 b(1001)122 b(290)166 1359 y(Rotatation)27 b(around)g(the)g +(main)h(axes)36 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1002)122 b(288)332 1359 -y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -58 b(1003)122 b(288)332 1459 y Fk(P)m(ath)29 b Fm(argumen)n(t)51 -b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +h(.)58 b(1003)122 b(291)166 1459 y(Rotate)27 b(around)g(an)g(arbitrary) +f(axis)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1005)122 b(288)166 -1558 y(Scale)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1007)122 b(289)166 -1658 y(Shear)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1009)122 b(289)166 -1757 y(Shift)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1011)122 b(289)332 -1857 y Fk(real)28 b Fm(argumen)n(ts)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +(.)58 b(1005)122 b(291)332 1558 y Fk(P)m(oin)m(t)28 b +Fm(argumen)n(ts)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1006)122 +b(291)332 1658 y Fk(P)m(ath)29 b Fm(argumen)n(t)51 b(.)18 +b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1008)122 b(291)166 1757 +y(Scale)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)58 b(1010)122 b(292)166 1857 +y(Shear)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -58 b(1012)122 b(289)332 1957 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 +f(.)h(.)f(.)h(.)f(.)h(.)58 b(1012)122 b(292)166 1957 +y(Shift)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1014)122 b(292)332 2056 +y Fk(real)28 b Fm(argumen)n(ts)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1015)122 b(292)332 2156 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1014)122 b(290)166 2056 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1017)122 b(293)166 2256 y(Shift)29 b(times)62 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)58 b(1016)122 b(290)498 2156 y Fk(real)28 +f(.)h(.)f(.)h(.)58 b(1019)122 b(293)498 2355 y Fk(real)28 b Fm(argumen)n(ts)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1017)122 -b(290)332 2256 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1020)122 +b(293)332 2455 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1019)122 b(290)0 2383 -y Fk(Reg)p 170 2383 29 4 v 33 w(P)m(olygon)96 b(\()p +h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1022)122 b(293)0 2582 +y Fk(Reg)p 170 2582 29 4 v 33 w(P)m(olygon)96 b(\()p Fj(polygons.web)p Fk(\))56 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1021)122 b(291)0 -2483 y Fk(Reg)p 170 2483 V 33 w(P)m(olygon)28 b Fm(class)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1024)122 b(294)0 +2682 y Fk(Reg)p 170 2682 V 33 w(P)m(olygon)28 b Fm(class)f (de\014nition)65 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1022)122 b(291)0 -2582 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1025)122 b(294)0 +2782 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1023)122 b(291)0 -2682 y(Constructors)26 b(and)h(setting)h(functions)69 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1026)122 b(294)0 +2881 y(Constructors)26 b(and)h(setting)h(functions)69 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1025)122 b(292)166 2782 y(Default)28 b(constructor)38 +b(1028)122 b(295)166 2981 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1026)122 b(292)166 -2881 y(Cen)n(ter,)27 b(sides,)g(diameter,)h(and)f(angles)59 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1029)122 b(295)166 +3081 y(Cen)n(ter,)27 b(sides,)g(diameter,)h(and)f(angles)59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1028)122 b(292)332 2981 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f +b(1031)122 b(295)332 3180 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)58 b(1029)122 b(292)332 3081 y(Setting)28 +f(.)h(.)f(.)h(.)58 b(1032)122 b(295)332 3280 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1032)122 -b(293)0 3180 y(Pseudo-constructor)25 b(for)i(dynamic)g(allo)r(cation)35 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1035)122 +b(296)0 3379 y(Pseudo-constructor)25 b(for)i(dynamic)g(allo)r(cation)35 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1035)122 -b(294)166 3280 y(Optional)27 b(p)r(oin)n(ter)g(argumen)n(t)61 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1038)122 +b(297)166 3479 y(Optional)27 b(p)r(oin)n(ter)g(argumen)n(t)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1036)122 b(294)166 3379 y(Required)27 b -Fk(Reg)p 690 3379 V 34 w(P)m(olygon)g Fm(argumen)n(t)g(.)18 +f(.)h(.)58 b(1039)122 b(297)166 3579 y(Required)27 b +Fk(Reg)p 690 3579 V 34 w(P)m(olygon)g Fm(argumen)n(t)g(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1038)122 -b(294)0 3479 y(Destructor)27 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1041)122 +b(297)0 3678 y(Destructor)27 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1040)122 -b(295)0 3579 y(Returning)27 b(elemen)n(ts)h(and)f(information)53 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1043)122 +b(298)0 3778 y(Returning)27 b(elemen)n(ts)h(and)f(information)53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1041)122 b(295)166 3678 y(Get)28 b(radius)i(.)19 b(.)f(.)h(.)f(.)h(.) +b(1044)122 b(298)166 3878 y(Get)28 b(radius)i(.)19 b(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1042)122 -b(295)0 3778 y(Circles)45 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1045)122 +b(298)0 3977 y(Circles)45 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1043)122 b(295)0 3878 y(Enclosed)27 b(circle)43 b(.)19 +b(1046)122 b(298)0 4077 y(Enclosed)27 b(circle)43 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1044)122 b(295)0 3977 y(Dra)n(w)27 b(enclosed)g(circle)48 +b(1047)122 b(298)0 4176 y(Dra)n(w)27 b(enclosed)g(circle)48 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1045)122 -b(295)332 4077 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1048)122 +b(298)332 4276 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)58 b(1046)122 b(296)332 4176 y Fk(Picture)28 b +(.)h(.)58 b(1049)122 b(299)332 4376 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1047)122 b(296)166 -4276 y(Surrounding)27 b(circle)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1050)122 b(299)166 +4475 y(Surrounding)27 b(circle)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)58 b(1048)122 b(296)0 4376 y(Dra)n(w)27 b(surrounding)f(circle)38 +h(.)58 b(1051)122 b(299)0 4575 y(Dra)n(w)27 b(surrounding)f(circle)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1049)122 b(296)332 -4475 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1052)122 b(299)332 +4675 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1050)122 b(296)332 4575 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 +b(1053)122 b(299)332 4774 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)58 b(1051)122 b(296)0 4675 y(Putting)28 b(p)r(olygons)e(together)43 +h(.)58 b(1054)122 b(299)0 4874 y(Putting)28 b(p)r(olygons)e(together)43 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1052)122 b(296)0 4802 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1055)122 b(299)0 5001 y Fk(Rectangle)95 b(\()p Fj(rectangles.web)p Fk(\))47 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)58 b(1054)122 b(297)0 4902 y(Include)28 b(\014les)66 +(.)h(.)58 b(1057)122 b(300)0 5101 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)58 b(1055)122 b(297)0 5001 y Fk(Rectangle)27 b +(.)h(.)58 b(1058)122 b(300)0 5201 y Fk(Rectangle)27 b Fm(class)g(de\014nition)62 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1056)122 b(297)0 5101 y(Constructors)26 b(and)h(setting)h(functions) +b(1059)122 b(300)0 5300 y(Constructors)26 b(and)h(setting)h(functions) 69 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1057)122 b(297)166 5201 y(Default)28 b(constructor)38 +b(1060)122 b(300)166 5400 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1058)122 b(297)166 -5300 y(Cen)n(ter,)27 b(lengths,)h(and)f(angles)51 b(.)18 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1061)122 b(300)p +eop end +%%Page: 528 528 +TeXDict begin 528 527 bop 0 83 a Fm(xiv)141 b Fl(T)-6 +b(ABLE)23 b(OF)h(CONTENTS)2473 b(3DLDFPR)n(G)166 263 +y Fm(Cen)n(ter,)27 b(lengths,)h(and)f(angles)51 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)58 b(1060)122 b(298)332 5400 y(Constructor)62 b(.)19 +(.)58 b(1063)122 b(301)332 363 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1061)122 -b(298)p eop end -%%Page: 524 524 -TeXDict begin 524 523 bop 0 83 a Fm(xiv)141 b Fl(T)-6 -b(ABLE)23 b(OF)h(CONTENTS)2473 b(3DLDFPR)n(G)332 263 -y Fm(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1063)122 b(299)166 363 y(F)-7 b(our)27 b Fk(P)m(oin)m(ts)41 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1064)122 +b(301)332 462 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)58 b(1066)122 b(302)166 562 y(F)-7 b(our)27 b Fk(P)m(oin)m(ts)41 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1065)122 b(300)332 462 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f +b(1068)122 b(303)332 662 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)58 b(1066)122 b(300)332 562 y(Setting)28 +f(.)h(.)f(.)h(.)58 b(1069)122 b(303)332 761 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1068)122 -b(301)0 662 y(Pseudo-constructor)25 b(for)i(dynamic)g(allo)r(cation)35 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1071)122 +b(304)0 861 y(Pseudo-constructor)25 b(for)i(dynamic)g(allo)r(cation)35 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1070)122 -b(301)166 761 y(Optional)27 b(p)r(oin)n(ter)g(argumen)n(t)61 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1073)122 +b(304)166 960 y(Optional)27 b(p)r(oin)n(ter)g(argumen)n(t)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1071)122 b(301)166 861 y(Required)27 b(Rectangle)g +f(.)h(.)58 b(1074)122 b(304)166 1060 y(Required)27 b(Rectangle)g (argumen)n(t)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)58 b(1073)122 b(301)0 960 y(Destructor)27 +f(.)h(.)f(.)h(.)58 b(1076)122 b(304)0 1160 y(Destructor)27 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)58 b(1075)122 b(302)0 1060 y(Assignmen)n(t)36 +(.)h(.)f(.)h(.)58 b(1078)122 b(305)0 1259 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)58 b(1076)122 b(302)0 1160 y(Returning)27 +(.)f(.)h(.)58 b(1079)122 b(305)0 1359 y(Returning)27 b(Elemen)n(ts)h(and)f(information)33 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1078)122 b(303)166 -1259 y(Returning)27 b Fk(P)m(oin)m(ts)51 b Fm(.)18 b(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)58 b(1079)122 b(303)332 1359 y(Corner)40 -b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1081)122 b(306)166 +1459 y(Is)27 b(rectangular)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)58 b(1082)122 b(306)166 1558 y(Returning)27 +b Fk(P)m(oin)m(ts)51 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1080)122 b(303)332 1459 y(Get)28 b(Mid-p)r(oin)n(t)57 -b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1082)122 b(304)166 -1558 y(Getting)28 b(axes)37 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)58 b(1084)122 b(304)332 1658 y(Get)28 -b Fk(axis)p 661 1658 29 4 v 34 w(h)47 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)58 b(1085)122 b(304)332 1757 y(Get)28 -b Fk(axis)p 661 1757 V 34 w(v)50 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.) +b(1084)122 b(307)332 1658 y(Corner)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1085)122 b(307)332 +1757 y(Get)28 b(Mid-p)r(oin)n(t)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +58 b(1087)122 b(307)166 1857 y(Getting)28 b(axes)37 b(.)19 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)58 b(1087)122 b(304)0 1857 y Fk(Ellipses)57 -b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1089)122 b(308)332 1957 y(Get)28 b Fk(axis)p 661 1957 +29 4 v 34 w(h)47 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)58 b(1089)122 b(305)166 1957 y(Surrounding)27 -b Fk(Ellipse)34 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1090)122 b(305)166 2056 y(Enclosed)27 b Fk(Ellipse)37 -b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1090)122 b(308)332 2056 y(Get)28 b Fk(axis)p 661 2056 +V 34 w(v)50 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1091)122 -b(305)166 2156 y(Dra)n(w)27 b(surrounding)f Fk(Ellipse)32 -b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1092)122 b(308)0 2156 y Fk(Ellipses)57 b Fm(.)18 b(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)58 b(1092)122 b(305)166 2256 y(Dra)n(w)27 -b(enclosed)g Fk(Ellipse)42 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1093)122 b(305)0 2355 y(Putting)28 b Fk(Rectangle)f -Fm(together)32 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1094)122 b(309)166 2256 y(Surrounding)27 b Fk(Ellipse)34 +b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1094)122 b(305)0 -2511 y Fk(Ellipse)93 b(\()p Fj(ellipses.web)p Fk(\))64 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1095)122 b(309)166 +2355 y(Enclosed)27 b Fk(Ellipse)37 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)58 b(1096)122 b(309)166 2455 y(Dra)n(w)27 +b(surrounding)f Fk(Ellipse)32 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1097)122 +b(309)166 2554 y(Dra)n(w)27 b(enclosed)g Fk(Ellipse)42 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1096)122 b(307)0 2610 -y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1097)122 b(307)0 -2710 y Fk(Ellipse)25 b Fm(class)i(de\014nition)32 b(.)18 +(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1098)122 b(309)0 2654 +y(Putting)28 b Fk(Rectangle)f Fm(together)32 b(.)19 b(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1099)122 b(309)0 2810 y Fk(Ellipse)93 b(\()p Fj(ellipses.web)p +Fk(\))64 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1101)122 b(311)0 +2909 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1102)122 b(311)0 +3009 y Fk(Ellipse)25 b Fm(class)i(de\014nition)32 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1098)122 b(307)0 -2810 y(Static)28 b(data)f(mem)n(b)r(ers)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1103)122 b(311)0 +3109 y(Static)28 b(data)f(mem)n(b)r(ers)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)58 b(1099)122 b(307)0 2909 y(Constructors)29 +h(.)f(.)h(.)f(.)h(.)58 b(1104)122 b(312)0 3208 y(Constructors)29 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)58 b(1100)122 b(308)166 3009 y(Default)28 b(constructor)38 +(.)h(.)58 b(1105)122 b(312)166 3308 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1101)122 b(308)166 -3109 y(Cen)n(ter,)27 b(lengths,)h(and)f(angles)g(of)g(rotation)53 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1106)122 b(312)166 +3407 y(Cen)n(ter,)27 b(lengths,)h(and)f(angles)g(of)g(rotation)53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1103)122 -b(308)332 3208 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1108)122 +b(312)332 3507 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)58 b(1104)122 b(308)332 3308 y(Setting)28 b(function)40 +(.)h(.)58 b(1109)122 b(312)332 3607 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1106)122 b(310)166 -3407 y(Pseudo-constructor)25 b(for)i(dynamic)g(allo)r(cation)35 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1111)122 b(314)166 +3706 y(Pseudo-constructor)25 b(for)i(dynamic)g(allo)r(cation)35 b(.)19 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1108)122 b(310)332 3507 +(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1113)122 b(314)332 3806 y(Optional)27 b(p)r(oin)n(ter)g(argumen)n(t)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1109)122 b(310)332 3607 y(Required)27 b Fk(Ellipse)f +b(1114)122 b(314)332 3906 y(Required)27 b Fk(Ellipse)f Fm(argumen)n(t)34 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)58 b(1111)122 b(310)0 3706 y(Destructor)27 +(.)f(.)h(.)58 b(1116)122 b(314)0 4005 y(Destructor)27 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)58 b(1113)122 b(311)0 3806 y(Assignmen)n(t)36 +(.)h(.)f(.)h(.)58 b(1118)122 b(315)0 4105 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)58 b(1114)122 b(311)0 3906 y(Lab)r(elling)38 +(.)f(.)h(.)58 b(1119)122 b(315)0 4204 y(Lab)r(elling)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)58 b(1116)122 b(311)166 4005 y(Lab)r(el)47 +(.)f(.)h(.)f(.)h(.)58 b(1121)122 b(315)166 4304 y(Lab)r(el)47 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)58 b(1117)122 b(311)166 4105 y(Dotlab)r(el)64 +(.)h(.)f(.)h(.)58 b(1122)122 b(315)166 4404 y(Dotlab)r(el)64 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)58 b(1119)122 b(312)0 4204 y(Returning)27 b(elemen)n(ts)h(and)f +(.)58 b(1124)122 b(316)0 4503 y(Returning)27 b(elemen)n(ts)h(and)f (information)53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1120)122 b(312)166 4304 y(Is)27 b(elliptical)58 +f(.)h(.)58 b(1125)122 b(316)166 4603 y(Is)27 b(elliptical)58 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1121)122 b(312)166 4404 y(Is)27 b(quadratic)63 b(.)19 +b(1126)122 b(316)166 4703 y(Is)27 b(quadratic)63 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1123)122 b(314)166 4503 y(Is)27 b(cubic)53 b(.)19 b(.)f(.)h(.)f(.)h +b(1128)122 b(318)166 4802 y(Is)27 b(cubic)53 b(.)19 b(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1124)122 b(314)166 4603 y(Is)27 b(quartic)68 b(.)19 +b(1129)122 b(318)166 4902 y(Is)27 b(quartic)68 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1126)122 b(315)166 4703 y(Solv)n(e)59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.) +b(1131)122 b(319)166 5001 y(Solv)n(e)59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1128)122 b(315)166 4802 y(Get)28 b(co)r(e\016cien)n(ts)68 +b(1133)122 b(319)166 5101 y(Get)28 b(co)r(e\016cien)n(ts)68 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1131)122 -b(317)166 4902 y(Get)28 b(cen)n(ter)33 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1136)122 +b(321)166 5201 y(Get)28 b(cen)n(ter)33 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1133)122 b(317)332 -5001 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 b(.)h(.)f(.)h(.)f(.)h +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1138)122 b(321)332 +5300 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1134)122 b(318)332 5101 y Fk(const)28 b Fm(v)n(ersion)38 +b(1139)122 b(322)332 5400 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1136)122 -b(318)166 5201 y(Get)28 b(fo)r(cus)68 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1141)122 +b(322)p eop end +%%Page: 529 529 +TeXDict begin 529 528 bop 0 83 a Fl(3DLDFPR)n(G)2497 +b(T)-6 b(ABLE)23 b(OF)h(CONTENTS)140 b Fm(xv)166 263 +y(Get)28 b(fo)r(cus)68 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1138)122 b(318)332 -5300 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 b(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1139)122 b(318)332 5400 y Fk(const)28 b Fm(v)n(ersion)38 +h(.)f(.)h(.)f(.)h(.)58 b(1143)122 b(322)332 363 y(Non-)p +Fk(const)27 b Fm(v)n(ersion)g(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1144)122 b(322)332 462 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1141)122 -b(319)p eop end -%%Page: 525 525 -TeXDict begin 525 524 bop 0 83 a Fl(3DLDFPR)n(G)2497 -b(T)-6 b(ABLE)23 b(OF)h(CONTENTS)140 b Fm(xv)166 263 -y(Get)28 b(linear)f(eccen)n(tricit)n(y)65 b(.)18 b(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1143)122 b(320)166 363 y(Get)28 b(n)n(umerical)f(eccen)n(tricit)n(y) -39 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)58 b(1145)122 b(320)166 462 y(Get)28 b(axes)56 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1146)122 +b(323)166 562 y(Get)28 b(linear)f(eccen)n(tricit)n(y)65 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)58 b(1148)122 b(324)166 662 y(Get)28 +b(n)n(umerical)f(eccen)n(tricit)n(y)39 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)58 b(1147)122 b(321)332 562 y(Get)28 b(v)n(ertical)f(axis)64 -b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1148)122 b(321)498 662 -y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1149)122 b(321)498 761 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1150)122 b(324)166 761 y(Get)28 b(axes)56 b(.)18 b(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1152)122 +b(325)332 861 y(Get)28 b(v)n(ertical)f(axis)64 b(.)19 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)58 b(1153)122 b(325)498 960 y +Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1154)122 b(325)498 1060 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)58 b(1151)122 b(321)332 861 y(Get)28 b(horizon)n(tal)e(axis)53 +(.)58 b(1156)122 b(325)332 1160 y(Get)28 b(horizon)n(tal)e(axis)53 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)58 b(1153)122 b(321)498 960 y Fk(const)28 +h(.)f(.)h(.)f(.)h(.)58 b(1158)122 b(325)498 1259 y Fk(const)28 b Fm(v)n(ersion)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1154)122 -b(322)498 1060 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1159)122 +b(326)498 1359 y(Non-)p Fk(const)27 b Fm(v)n(ersion)g(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)58 b(1156)122 b(322)166 1160 y(Angle)28 b(p)r(oin)n(t)i(.)18 +(.)58 b(1161)122 b(326)166 1459 y(Angle)28 b(p)r(oin)n(t)i(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1158)122 b(322)0 1259 y(Equalit)n(y)65 b(.)18 b(.)h(.)f(.)h(.)f(.)h +b(1163)122 b(326)0 1558 y(Equalit)n(y)65 b(.)18 b(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1160)122 b(323)0 1359 y(Lo)r(cation)27 b(of)g(a)h(p)r(oin)n(t)49 +b(1165)122 b(327)0 1658 y(Lo)r(cation)27 b(of)g(a)h(p)r(oin)n(t)49 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1162)122 b(324)0 1459 y(In)n(tersection)27 b(p)r(oin)n(ts)k(.)18 +b(1167)122 b(328)0 1757 y(In)n(tersection)27 b(p)r(oin)n(ts)k(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1164)122 b(325)166 1558 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 +b(1169)122 b(329)166 1857 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1165)122 -b(325)166 1658 y Fk(P)m(ath)29 b Fm(argumen)n(t)51 b(.)18 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1170)122 +b(329)166 1957 y Fk(P)m(ath)29 b Fm(argumen)n(t)51 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1167)122 -b(326)166 1757 y Fk(Ellipse)25 b Fm(argumen)n(t)57 b(.)18 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1172)122 +b(330)166 2056 y Fk(Ellipse)25 b Fm(argumen)n(t)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1169)122 b(326)332 -1857 y(Chec)n(k)27 b(in)n(tersection)g(p)r(oin)n(t)h(lo)r(cations)53 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1174)122 b(330)332 +2156 y(Chec)n(k)27 b(in)n(tersection)g(p)r(oin)n(t)h(lo)r(cations)53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1184)122 -b(344)0 1957 y(T)-7 b(ransformations)29 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.) +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1189)122 +b(348)0 2256 y(T)-7 b(ransformations)29 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1185)122 b(344)166 -2056 y(P)n(erforming)26 b(a)h(transformation)39 b(.)19 +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1190)122 b(348)166 +2355 y(P)n(erforming)26 b(a)h(transformation)39 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1186)122 b(344)332 2156 y(Do)28 b(transform)52 b(.)18 +b(1191)122 b(348)332 2455 y(Do)28 b(transform)52 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1187)122 b(345)332 -2256 y(Op)r(erator)42 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1192)122 b(349)332 +2554 y(Op)r(erator)42 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1189)122 b(347)166 2355 y(Rotation)27 b(around)g(the)h +f(.)h(.)58 b(1194)122 b(351)166 2654 y(Rotation)27 b(around)g(the)h (main)f(axes)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)58 b(1191)122 b(347)166 2455 y(Scale)64 b(.)19 +(.)f(.)h(.)58 b(1196)122 b(351)166 2754 y(Scale)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1193)122 b(347)166 2554 y(Shear)45 b(.)19 +f(.)h(.)58 b(1198)122 b(351)166 2853 y(Shear)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1195)122 b(348)166 2654 y(Shift)36 b(.)18 +f(.)h(.)58 b(1200)122 b(352)166 2953 y(Shift)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)58 b(1197)122 b(348)332 2754 y Fk(real)28 +h(.)f(.)h(.)58 b(1202)122 b(352)332 3053 y Fk(real)28 b Fm(argumen)n(ts)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1198)122 b(348)332 2853 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 +b(1203)122 b(352)332 3152 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1200)122 b(348)166 2953 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1205)122 b(352)166 3252 y(Shift)29 b(times)62 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)58 b(1202)122 b(349)498 3053 y Fk(real)28 +f(.)h(.)f(.)h(.)58 b(1207)122 b(353)498 3351 y Fk(real)28 b Fm(argumen)n(ts)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1203)122 -b(349)332 3152 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1208)122 +b(353)332 3451 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1205)122 b(349)166 3252 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1210)122 b(353)166 3551 y(Rotatation)27 b(around)g(an)g(arbitrary)e(axis)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1207)122 -b(349)332 3351 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1212)122 +b(353)332 3650 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(ts)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1208)122 b(350)332 3451 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1213)122 b(354)332 3750 y Fk(P)m(ath)29 b Fm(argumen)n(ts)59 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1210)122 b(350)0 3551 y(Rectangles)67 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.) +b(1215)122 b(354)0 3850 y(Rectangles)67 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1212)122 b(351)166 3650 y(Surrounding)27 b(rectangle)67 +b(1217)122 b(355)166 3949 y(Surrounding)27 b(rectangle)67 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)58 b(1213)122 b(351)166 3750 +f(.)h(.)f(.)h(.)f(.)h(.)58 b(1218)122 b(355)166 4049 y(Inscrib)r(ed)27 b(rectangle)58 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -58 b(1215)122 b(352)166 3850 y(Dra)n(w)27 b(surrounding)f(rectangle)65 +58 b(1220)122 b(356)166 4148 y(Dra)n(w)27 b(surrounding)f(rectangle)65 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)58 b(1217)122 b(353)166 3949 y(Dra)n(w)27 b(inscrib)r(ed)g +h(.)58 b(1222)122 b(357)166 4248 y(Dra)n(w)27 b(inscrib)r(ed)g (rectangle)50 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1219)122 b(353)0 -4049 y Fk(Rectangle)27 b Fm(functions)60 b(.)19 b(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1224)122 b(357)0 +4348 y Fk(Rectangle)27 b Fm(functions)60 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)58 b(1221)122 b(354)166 4148 y Fk(Ellipses)57 +f(.)h(.)f(.)h(.)58 b(1226)122 b(358)166 4447 y Fk(Ellipses)57 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)58 b(1222)122 b(354)332 4248 y(Surrounding)27 b Fk(Ellipse)34 +h(.)58 b(1227)122 b(358)332 4547 y(Surrounding)27 b Fk(Ellipse)34 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)58 b(1223)122 b(355)332 4348 y(Enclosed)27 +(.)f(.)h(.)f(.)h(.)58 b(1228)122 b(359)332 4647 y(Enclosed)27 b Fk(Ellipse)37 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1224)122 -b(356)332 4447 y(Dra)n(w)27 b(surrounding)f Fk(Ellipse)32 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1229)122 +b(360)332 4746 y(Dra)n(w)27 b(surrounding)f Fk(Ellipse)32 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1225)122 b(356)332 4547 y(Dra)n(w)27 b(enclosed)g Fk(Ellipse)42 +b(1230)122 b(360)332 4846 y(Dra)n(w)27 b(enclosed)g Fk(Ellipse)42 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)58 b(1226)122 b(357)0 4647 y(Putting)28 b +(.)f(.)h(.)58 b(1231)122 b(361)0 4945 y(Putting)28 b Fk(Ellipse)d Fm(together)44 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1227)122 b(357)0 4802 y Fk(Circle)95 b(\()p Fj(circles.web)p +b(1232)122 b(361)0 5101 y Fk(Circle)95 b(\()p Fj(circles.web)p Fk(\))54 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1229)122 -b(358)0 4902 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1234)122 +b(362)0 5201 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1230)122 -b(358)0 5001 y Fk(Circle)27 b Fm(class)g(de\014nition)61 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1235)122 +b(362)0 5300 y Fk(Circle)27 b Fm(class)g(de\014nition)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1231)122 -b(358)0 5101 y(Constructors)26 b(and)h(setting)h(functions)69 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1236)122 +b(362)0 5400 y(Constructors)26 b(and)h(setting)h(functions)69 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1233)122 b(359)166 5201 y(Default)28 b(constructor)38 -b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1234)122 b(359)166 -5300 y(Cen)n(ter,)27 b(diameters)g(and)g(angles)65 b(.)18 -b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1236)122 b(359)332 5400 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f +b(1238)122 b(363)p eop end +%%Page: 530 530 +TeXDict begin 530 529 bop 0 83 a Fm(xvi)141 b Fl(T)-6 +b(ABLE)23 b(OF)h(CONTENTS)2473 b(3DLDFPR)n(G)166 263 +y Fm(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +58 b(1239)122 b(363)166 363 y(Cen)n(ter,)27 b(diameters)g(and)g(angles) +65 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)58 b(1237)122 b(359)p eop end -%%Page: 526 526 -TeXDict begin 526 525 bop 0 83 a Fm(xvi)141 b Fl(T)-6 -b(ABLE)23 b(OF)h(CONTENTS)2473 b(3DLDFPR)n(G)332 263 -y Fm(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)58 b(1241)122 b(363)332 462 y(Constructor)62 b(.)19 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1239)122 b(360)0 363 y(Pseudo-constructor)25 b(for)i(dynamic)g(allo)r -(cation)35 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1242)122 +b(363)332 562 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1241)122 b(360)166 462 y(Optional)27 b(p)r(oin)n(ter)g(argumen)n(t)61 -b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +h(.)58 b(1244)122 b(364)0 662 y(Pseudo-constructor)25 +b(for)i(dynamic)g(allo)r(cation)35 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)58 b(1246)122 b(364)166 761 y(Optional)27 b(p)r(oin)n(ter)g +(argumen)n(t)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1242)122 b(360)166 562 y(Required)27 b Fk(Circle)g -Fm(argumen)n(t)64 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)58 b(1247)122 b(364)166 861 y(Required)27 +b Fk(Circle)g Fm(argumen)n(t)64 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1249)122 +b(365)0 960 y(Destructor)27 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1244)122 b(361)0 662 -y(Destructor)27 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1251)122 +b(365)0 1060 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1252)122 +b(365)166 1160 y Fk(Circle)27 b Fm(argumen)n(t)44 b(.)19 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1253)122 +b(365)166 1259 y Fk(Ellipse)25 b Fm(argumen)n(t)57 b(.)18 +b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1255)122 b(366)0 +1359 y(Returning)27 b(elemen)n(ts)h(and)f(information)53 +b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1246)122 b(361)0 -761 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1247)122 b(361)166 -861 y Fk(Circle)27 b Fm(argumen)n(t)44 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)58 b(1248)122 b(361)166 960 y Fk(Ellipse)25 -b Fm(argumen)n(t)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1250)122 b(362)0 1060 y(Returning)27 b(elemen)n(ts)h(and)f -(information)53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1252)122 b(363)166 1160 y(Is)27 b(circular)51 -b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1253)122 b(363)166 1259 y(Get)28 b(radius)i(.)19 b(.)f(.)h(.)f(.)h(.) +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1257)122 b(367)166 1459 y(Is)27 b(circular)51 b(.)19 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1258)122 b(367)166 1558 y(Get)28 b(radius)i(.)19 b(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1255)122 -b(364)166 1359 y(Get)28 b(diameter)59 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1260)122 +b(368)166 1658 y(Get)28 b(diameter)59 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)58 b(1256)122 b(364)0 1459 y(In)n(tersections) +f(.)h(.)f(.)h(.)f(.)h(.)58 b(1261)122 b(368)0 1757 y(In)n(tersections) 39 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1257)122 b(364)166 1558 y Fk(P)m(oin)m(t)28 +f(.)h(.)58 b(1262)122 b(368)166 1857 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1258)122 b(365)166 1658 y Fk(P)m(ath)29 b Fm(argumen)n(t)51 +b(1263)122 b(369)166 1957 y Fk(P)m(ath)29 b Fm(argumen)n(t)51 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1260)122 -b(365)166 1757 y Fk(Circle)27 b Fm(argumen)n(t)44 b(.)19 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1265)122 +b(369)166 2056 y Fk(Circle)27 b Fm(argumen)n(t)44 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1262)122 -b(366)0 1857 y Fk(Reg)p 170 1857 29 4 v 33 w(P)m(olygon)28 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1267)122 +b(370)0 2156 y Fk(Reg)p 170 2156 29 4 v 33 w(P)m(olygon)28 b Fm(functions)64 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1264)122 b(370)0 1957 y(Enclosed)27 b(circle)43 b(.)19 +b(1269)122 b(374)0 2256 y(Enclosed)27 b(circle)43 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1265)122 b(370)0 2056 y(Dra)n(w)27 b(enclosed)g(circle)48 +b(1270)122 b(374)0 2355 y(Dra)n(w)27 b(enclosed)g(circle)48 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1266)122 -b(370)332 2156 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1271)122 +b(374)332 2455 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)58 b(1267)122 b(371)332 2256 y Fk(Picture)28 b +(.)h(.)58 b(1272)122 b(375)332 2554 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1268)122 b(371)166 -2355 y(Surrounding)27 b(circle)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1273)122 b(375)166 +2654 y(Surrounding)27 b(circle)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)58 b(1269)122 b(371)0 2455 y(Dra)n(w)27 b(surrounding)f(circle)38 +h(.)58 b(1274)122 b(375)0 2754 y(Dra)n(w)27 b(surrounding)f(circle)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1270)122 b(371)332 -2554 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1275)122 b(375)332 +2853 y(Normal)27 b(v)n(ersion)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1271)122 b(372)332 2654 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 +b(1276)122 b(376)332 2953 y Fk(Picture)28 b Fm(argumen)n(t)f(\014rst)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)58 b(1272)122 b(372)0 2754 y(Putting)28 b Fk(Circle)f +h(.)58 b(1277)122 b(376)0 3053 y(Putting)28 b Fk(Circle)f Fm(together)k(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1273)122 -b(372)0 2881 y Fk(P)m(atterns)97 b(\()p Fj(patterns.web)p +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1278)122 +b(376)0 3180 y Fk(P)m(atterns)97 b(\()p Fj(patterns.web)p Fk(\))66 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1275)122 b(373)0 2981 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1280)122 b(377)0 3280 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1276)122 b(373)0 -3081 y(Plane)27 b(tesselations)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1281)122 b(377)0 +3379 y(Plane)27 b(tesselations)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)58 b(1277)122 b(373)166 3180 y(Hexagonal)26 +h(.)f(.)h(.)f(.)h(.)58 b(1282)122 b(377)166 3479 y(Hexagonal)26 b(tesselation)h(1)58 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1278)122 -b(373)0 3280 y(patterns)31 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1283)122 +b(377)0 3579 y(patterns)31 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1280)122 -b(377)166 3379 y(Epicycloid)27 b(pattern)g(1)47 b(.)18 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1285)122 +b(381)166 3678 y(Epicycloid)27 b(pattern)g(1)47 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1281)122 b(377)166 3479 +(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1286)122 b(381)166 3778 y(Epicycloid)27 b(pattern)g(2)47 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1283)122 b(380)166 3579 y(Epicycloid)27 b(pattern)g(3)47 +b(1288)122 b(384)166 3878 y(Epicycloid)27 b(pattern)g(3)47 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1284)122 b(380)0 -3678 y(Putting)28 b(patterns)f(together)61 b(.)19 b(.)f(.)h(.)f(.)h(.)f +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1289)122 b(384)0 +3977 y(Putting)28 b(patterns)f(together)61 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -58 b(1286)122 b(382)0 3806 y Fk(Solid)94 b(\()p Fj(solids.web)p +58 b(1291)122 b(386)0 4105 y Fk(Solid)94 b(\()p Fj(solids.web)p Fk(\))56 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1289)122 b(383)0 3906 y(Include)28 b(\014les)66 b(.)19 +b(1294)122 b(387)0 4204 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -58 b(1290)122 b(383)0 4005 y Fk(Solid)27 b Fm(class)f(de\014nition)60 +58 b(1295)122 b(387)0 4304 y Fk(Solid)27 b Fm(class)f(de\014nition)60 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1291)122 -b(383)0 4105 y(De\014ne)28 b Fk(static)k(const)g(Solid)27 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1296)122 +b(387)0 4404 y(De\014ne)28 b Fk(static)k(const)g(Solid)27 b Fm(data)g(mem)n(b)r(ers)63 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)58 b(1292)122 b(384)0 4204 y(Constructors)29 b(.)19 +(.)58 b(1297)122 b(388)0 4503 y(Constructors)29 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -58 b(1293)122 b(384)166 4304 y(Default)28 b(constructor)38 +58 b(1298)122 b(388)166 4603 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1294)122 b(384)166 -4404 y(Cop)n(y)27 b(constructor)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1299)122 b(388)166 +4703 y(Cop)n(y)27 b(constructor)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1296)122 b(385)0 4503 y(Pseudo-constructor)25 +f(.)h(.)58 b(1301)122 b(389)0 4802 y(Pseudo-constructor)25 b(for)i(dynamic)g(allo)r(cation)35 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)58 b(1298)122 b(386)0 4603 y(Destructor)27 b(.)19 +(.)h(.)58 b(1303)122 b(390)0 4902 y(Destructor)27 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1300)122 b(387)0 4703 y(Assignmen)n(t)36 +f(.)h(.)58 b(1305)122 b(391)0 5001 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)58 b(1302)122 b(387)0 4802 y(Cop)n(ying)31 +(.)f(.)h(.)58 b(1307)122 b(391)0 5101 y(Cop)n(ying)31 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)58 b(1304)122 b(389)0 4902 y(Set)28 +(.)h(.)f(.)h(.)f(.)h(.)58 b(1309)122 b(393)0 5201 y(Set)28 b(on)f(free)h(store)g(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)58 b(1306)122 b(390)0 5001 y(Returning)27 +(.)h(.)f(.)h(.)58 b(1311)122 b(394)0 5300 y(Returning)27 b(elemen)n(ts)h(and)f(information)53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1307)122 b(390)166 -5101 y(Get)28 b(cen)n(ter)33 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1312)122 b(394)166 +5400 y(Get)28 b(cen)n(ter)33 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1308)122 b(390)166 5201 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1313)122 b(394)p eop +end +%%Page: 531 531 +TeXDict begin 531 530 bop 0 83 a Fl(3DLDFPR)n(G)2450 +b(T)-6 b(ABLE)24 b(OF)f(CONTENTS)141 b Fm(xvii)166 263 y(Getting)28 b(Shap)r(es)66 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)58 b(1310)122 b(391)332 5300 y(Get)28 b(Shap)r(e)g(p)r(oin)n -(ter)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1311)122 b(391)332 -5400 y(Get)28 b Fk(Circle)f Fm(p)r(oin)n(ter)51 b(.)19 -b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +(.)h(.)58 b(1315)122 b(395)332 363 y(Get)28 b(Shap)r(e)g(p)r(oin)n(ter) +38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1316)122 b(395)332 462 +y(Get)28 b Fk(Circle)f Fm(p)r(oin)n(ter)51 b(.)19 b(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)58 b(1313)122 b(393)p eop end -%%Page: 527 527 -TeXDict begin 527 526 bop 0 83 a Fl(3DLDFPR)n(G)2450 -b(T)-6 b(ABLE)24 b(OF)f(CONTENTS)141 b Fm(xvii)332 263 -y(Get)28 b Fk(Ellipse)e Fm(p)r(oin)n(ter)63 b(.)18 b(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1315)122 b(393)332 363 y(Get)28 b Fk(P)m(ath)h Fm(p)r(oin)n(ter)58 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1318)122 b(397)332 562 y(Get)28 b Fk(Ellipse)e Fm(p)r(oin)n(ter)63 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)58 b(1317)122 b(394)332 462 y(Get)28 -b Fk(Rectangle)f Fm(p)r(oin)n(ter)52 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)58 b(1320)122 b(397)332 662 y(Get)28 +b Fk(P)m(ath)h Fm(p)r(oin)n(ter)58 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1319)122 -b(394)332 562 y(Get)28 b Fk(Reg)p 664 562 29 4 v 34 w(P)m(olygon)f -Fm(p)r(oin)n(ter)56 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)58 b(1321)122 b(395)166 662 y(Getting)28 -b(Shap)r(e)g(cen)n(ters)67 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1322)122 b(398)332 761 y(Get)28 b Fk(Rectangle)f Fm(p)r(oin)n(ter)52 +b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1323)122 b(395)332 761 y(Get)28 b(Shap)r(e)g(cen)n(ter)35 -b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1324)122 b(396)332 861 -y(Get)28 b(Circle)f(cen)n(ter)42 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1326)122 b(398)332 960 y(Get)28 b(Ellipse)f(cen)n(ter)55 +h(.)58 b(1324)122 b(398)332 861 y(Get)28 b Fk(Reg)p 664 +861 29 4 v 34 w(P)m(olygon)f Fm(p)r(oin)n(ter)56 b(.)18 +b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1326)122 b(399)166 960 y(Getting)28 b(Shap)r(e)g(cen)n(ters)67 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)58 b(1328)122 b(398)332 1060 -y(Get)28 b(Rectangle)f(cen)n(ter)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1330)122 -b(398)332 1160 y(Get)28 b Fk(Reg)p 664 1160 V 34 w(P)m(olygon)f -Fm(cen)n(ter)53 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)58 b(1332)122 b(399)166 1259 y(Is)27 b(on)h(free)f(store)39 +f(.)h(.)f(.)h(.)f(.)h(.)58 b(1328)122 b(399)332 1060 +y(Get)28 b(Shap)r(e)g(cen)n(ter)35 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1329)122 b(400)332 1160 y(Get)28 b(Circle)f(cen)n(ter)42 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1334)122 b(399)0 1359 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h +h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1331)122 b(402)332 1259 +y(Get)28 b(Ellipse)f(cen)n(ter)55 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1333)122 b(402)332 1359 y(Get)28 b(Rectangle)f(cen)n(ter)64 +b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1336)122 b(399)0 1459 y(Clear)54 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f +h(.)f(.)h(.)58 b(1335)122 b(402)332 1459 y(Get)28 b Fk(Reg)p +664 1459 V 34 w(P)m(olygon)f Fm(cen)n(ter)53 b(.)19 b(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1337)122 +b(403)166 1558 y(Is)27 b(on)h(free)f(store)39 b(.)19 +b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1339)122 +b(403)0 1658 y(Sho)n(w)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1341)122 b(403)0 1757 y(Clear)54 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1338)122 b(401)0 1558 y(T)-7 b(ransformations)29 b(.)18 +b(1343)122 b(405)0 1857 y(T)-7 b(ransformations)29 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1340)122 b(401)166 1658 y(Multiplying)28 b(b)n(y)f(a)h +b(1345)122 b(405)166 1957 y(Multiplying)28 b(b)n(y)f(a)h Fk(T)-8 b(ransform)54 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1341)122 b(401)166 1757 +(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1346)122 b(405)166 2056 y(Applying)28 b(a)f(transformation)g(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1343)122 -b(402)166 1857 y(Scale)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1348)122 +b(406)166 2156 y(Scale)64 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1345)122 -b(402)166 1957 y(Shear)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1350)122 +b(406)166 2256 y(Shear)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1347)122 -b(403)166 2056 y(Shift)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1352)122 +b(407)166 2355 y(Shift)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1349)122 -b(403)332 2156 y Fk(real)28 b Fm(argumen)n(ts)61 b(.)18 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1354)122 +b(407)332 2455 y Fk(real)28 b Fm(argumen)n(ts)61 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1350)122 b(403)332 2256 +(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1355)122 b(407)332 2554 y Fk(P)m(oin)m(t)28 b Fm(argumen)n(t)67 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1352)122 b(403)166 2355 y(Rotatation)27 b(around)g(the)g(main)h(axes) +b(1357)122 b(407)166 2654 y(Rotatation)27 b(around)g(the)g(main)h(axes) 36 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1354)122 b(404)166 2455 y(Rotatation)27 b(around)g(an)g(arbitrary)e +b(1359)122 b(408)166 2754 y(Rotatation)27 b(around)g(an)g(arbitrary)e (axis)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1356)122 b(404)0 2554 y(Outputting)47 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.) +b(1361)122 b(408)0 2853 y(Outputting)47 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1358)122 b(404)166 2654 y(Extract)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +b(1363)122 b(408)166 2953 y(Extract)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1359)122 -b(404)166 2754 y(Set)28 b(extremes)33 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1364)122 +b(408)166 3053 y(Set)28 b(extremes)33 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1361)122 b(406)166 2853 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1366)122 b(410)166 3152 y(Get)28 b(extremes)56 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1363)122 b(408)166 2953 y(Get)28 b(minim)n(um)g(z)53 +f(.)h(.)58 b(1368)122 b(412)166 3252 y(Get)28 b(minim)n(um)g(z)53 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1364)122 -b(408)166 3053 y(Get)28 b(maxim)n(um)f(z)37 b(.)18 b(.)h(.)f(.)h(.)f(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1369)122 +b(412)166 3351 y(Get)28 b(maxim)n(um)f(z)37 b(.)18 b(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)58 b(1366)122 b(409)166 3152 y(Get)28 +(.)h(.)f(.)h(.)f(.)h(.)58 b(1371)122 b(413)166 3451 y(Get)28 b(mean)f(z)37 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1368)122 b(409)166 3252 y(Suppress)27 b(output)32 +f(.)h(.)58 b(1373)122 b(413)166 3551 y(Suppress)27 b(output)32 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1370)122 -b(409)166 3351 y(Unsuppress)27 b(output)61 b(.)19 b(.)f(.)h(.)f(.)h(.)f +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1375)122 +b(413)166 3650 y(Unsuppress)27 b(output)61 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1372)122 b(410)166 3451 y(Output)65 b(.)19 +f(.)h(.)58 b(1377)122 b(414)166 3750 y(Output)65 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -58 b(1374)122 b(410)0 3551 y(Dra)n(wing)26 b(and)i(\014lling)49 +58 b(1379)122 b(414)0 3850 y(Dra)n(wing)26 b(and)i(\014lling)49 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1376)122 b(411)166 3650 y(Dra)n(w)53 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h +b(1381)122 b(415)166 3949 y(Dra)n(w)53 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1378)122 b(412)166 3750 y(Fill)43 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.) +b(1383)122 b(416)166 4049 y(Fill)43 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1381)122 b(414)166 3850 y(Filldra)n(w)30 b(.)19 b(.)f(.)h(.)f(.)h(.)f +b(1386)122 b(418)166 4148 y(Filldra)n(w)30 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1384)122 -b(416)166 3949 y(Undra)n(w)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1389)122 +b(420)166 4248 y(Undra)n(w)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1387)122 b(418)166 -4049 y(Un\014ll)49 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1392)122 b(422)166 +4348 y(Un\014ll)49 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1390)122 b(419)166 -4148 y(Un\014lldra)n(w)36 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1395)122 b(423)166 +4447 y(Un\014lldra)n(w)36 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)58 b(1393)122 b(421)0 4248 y(Putting)28 +f(.)h(.)f(.)h(.)f(.)h(.)58 b(1398)122 b(425)0 4547 y(Putting)28 b Fk(Solid)e Fm(together)31 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1395)122 b(422)0 4376 y Fk(Solid)p 214 4376 V 33 w(F)-8 +b(1400)122 b(426)0 4675 y Fk(Solid)p 214 4675 V 33 w(F)-8 b(aced)96 b(\()p Fj(solfaced.web)p Fk(\))28 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)58 b(1398)122 b(423)0 4475 y(Include)28 b(\014les)66 +(.)58 b(1403)122 b(427)0 4774 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)58 b(1399)122 b(423)0 4575 y Fk(Solid)p 214 4575 +(.)h(.)58 b(1404)122 b(427)0 4874 y Fk(Solid)p 214 4874 V 33 w(F)-8 b(aced)29 b Fm(class)d(de\014nition)37 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)58 b(1400)122 b(423)0 4675 y(Putting)28 -b Fk(Solid)p 520 4675 V 33 w(F)-8 b(aced)28 b Fm(together)49 +(.)h(.)f(.)h(.)58 b(1405)122 b(427)0 4973 y(Putting)28 +b Fk(Solid)p 520 4973 V 33 w(F)-8 b(aced)28 b Fm(together)49 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)58 b(1403)122 b(424)0 4802 y Fk(Cub)s(oid)94 +h(.)f(.)h(.)58 b(1408)122 b(428)0 5101 y Fk(Cub)s(oid)94 b(\()p Fj(cuboid.web)p Fk(\))41 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1406)122 b(425)0 4902 y(Include)28 b(\014les)66 b(.)19 +b(1411)122 b(429)0 5201 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -58 b(1407)122 b(425)0 5001 y Fk(Cub)s(oid)27 b Fm(class)f(de\014nition) +58 b(1412)122 b(429)0 5300 y Fk(Cub)s(oid)27 b Fm(class)f(de\014nition) 45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1408)122 -b(425)0 5101 y(Constructors)26 b(and)h(setting)h(functions)69 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1413)122 +b(429)0 5400 y(Constructors)26 b(and)h(setting)h(functions)69 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1409)122 b(426)166 5201 y(Default)28 b(constructor)38 +b(1414)122 b(430)p eop end +%%Page: 532 532 +TeXDict begin 532 531 bop 0 83 a Fm(xviii)141 b Fl(T)-6 +b(ABLE)23 b(OF)h(CONTENTS)2427 b(3DLDFPR)n(G)166 263 +y Fm(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +58 b(1415)122 b(430)166 363 y(Cop)n(y)27 b(constructor)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1410)122 b(426)166 -5300 y(Cop)n(y)27 b(constructor)34 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1417)122 +b(430)166 462 y(Cen)n(ter,)27 b(heigh)n(t,)h(width,)g(depth,)g(and)g +(angles)67 b(.)18 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1412)122 b(426)166 5400 y(Cen)n(ter,)27 -b(heigh)n(t,)h(width,)g(depth,)g(and)g(angles)67 b(.)18 -b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)58 b(1414)122 b(427)p eop end -%%Page: 528 528 -TeXDict begin 528 527 bop 0 83 a Fm(xviii)141 b Fl(T)-6 -b(ABLE)23 b(OF)h(CONTENTS)2427 b(3DLDFPR)n(G)0 263 y -Fm(Pseudo-constructor)25 b(for)i(dynamic)g(allo)r(cation)35 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1419)122 +b(431)0 562 y(Pseudo-constructor)25 b(for)i(dynamic)g(allo)r(cation)35 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1416)122 -b(428)0 363 y(Destructor)27 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1421)122 +b(432)0 662 y(Destructor)27 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1418)122 -b(429)0 462 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1423)122 +b(433)0 761 y(Assignmen)n(t)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1420)122 -b(429)0 562 y(Putting)28 b Fk(Cub)s(oid)e Fm(together)57 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1425)122 +b(433)0 861 y(Putting)28 b Fk(Cub)s(oid)e Fm(together)57 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1422)122 b(429)0 693 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1427)122 b(433)0 980 y Fk(P)m(olyhedra)96 b(\()p Fj(polyhedra.web)p Fk(\))40 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)58 b(1424)122 b(430)0 793 y(Include)28 b(\014les)66 +(.)f(.)h(.)58 b(1429)122 b(434)0 1079 y(Include)28 b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)58 b(1425)122 b(430)0 893 y Fk(P)m(olyhedron)28 +(.)h(.)58 b(1430)122 b(434)0 1179 y Fk(P)m(olyhedron)28 b Fm(class)f(de\014nition)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1426)122 b(430)0 992 y(In)n(tersection)31 b(.)18 b(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1427)122 b(431)0 1124 y Fk(Regular)31 b(Platonic)h(P)m(olyhedra)45 +b(1431)122 b(434)0 1279 y(In)n(tersection)31 b(.)18 b(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 +b(1432)122 b(435)0 1398 y Fk(Regular)31 b(Platonic)h(P)m(olyhedra)45 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)58 b(1429)122 b(432)0 1255 y Fk(T)-8 b(etrahedron)67 +(.)f(.)h(.)58 b(1434)122 b(436)0 1517 y Fk(T)-8 b(etrahedron)67 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -58 b(1430)122 b(432)0 1355 y Fk(T)-8 b(etrahedron)29 +58 b(1435)122 b(436)0 1617 y Fk(T)-8 b(etrahedron)29 b Fm(class)d(de\014nition)43 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1431)122 -b(432)0 1455 y(De\014ne)28 b Fk(static)k(const)g(T)-8 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1436)122 +b(436)0 1716 y(De\014ne)28 b Fk(static)k(const)g(T)-8 b(etrahedron)29 b Fm(data)e(mem)n(b)r(ers)46 b(.)19 b(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1432)122 b(432)0 1554 y(Constructors)26 b(and)h(setting)h(functions) +b(1437)122 b(436)0 1816 y(Constructors)26 b(and)h(setting)h(functions) 69 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1433)122 b(433)166 1654 y(Default)28 b(constructor)38 +b(1438)122 b(437)166 1915 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1434)122 b(433)166 -1754 y(Cen)n(ter,)27 b(diameter)g(of)h(triangle,)f(and)g(angles)48 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1439)122 b(437)166 +2015 y(Cen)n(ter,)27 b(diameter)g(of)h(triangle,)f(and)g(angles)48 b(.)19 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1436)122 b(433)332 -1853 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1441)122 b(437)332 +2115 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1437)122 b(433)332 1953 y(Setting)28 b(function)40 +b(1442)122 b(437)332 2214 y(Setting)28 b(function)40 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1441)122 b(436)0 -2052 y(Get)28 b(net)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1446)122 b(440)0 +2314 y(Get)28 b(net)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1443)122 -b(436)0 2152 y(Dra)n(w)27 b(net)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1448)122 +b(440)0 2414 y(Dra)n(w)27 b(net)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1445)122 b(437)0 2284 y Fk(Do)s(decahedron)65 b Fm(.)19 +b(1450)122 b(441)0 2533 y Fk(Do)s(decahedron)65 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1447)122 b(440)0 2383 y Fk(Do)s(decahedron)28 b Fm(class)f +b(1452)122 b(444)0 2632 y Fk(Do)s(decahedron)28 b Fm(class)f (de\014nition)41 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1448)122 b(440)0 2483 +(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1453)122 b(444)0 2732 y(De\014ne)28 b Fk(static)k(const)g(Do)s(decahedron)c Fm(data)f(mem)n(b)r(ers)45 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1449)122 b(440)0 -2582 y(Constructors)26 b(and)h(setting)h(functions)69 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1454)122 b(444)0 +2832 y(Constructors)26 b(and)h(setting)h(functions)69 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1450)122 b(441)166 2682 y(Default)28 b(constructor)38 +b(1455)122 b(445)166 2931 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1451)122 b(441)166 -2782 y(Cen)n(ter,)27 b(diameter)g(of)h(p)r(en)n(tagon,)f(and)g(angles) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1456)122 b(445)166 +3031 y(Cen)n(ter,)27 b(diameter)g(of)h(p)r(en)n(tagon,)f(and)g(angles) 35 b(.)18 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1453)122 b(441)332 -2881 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1458)122 b(445)332 +3130 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1454)122 b(441)0 2981 y(Get)28 b(net)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f +b(1459)122 b(445)0 3230 y(Get)28 b(net)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1457)122 b(444)0 3081 y(Dra)n(w)27 b(net)36 b(.)18 +b(1462)122 b(448)0 3330 y(Dra)n(w)27 b(net)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)58 b(1459)122 b(446)0 3212 y Fk(Icosahedron)40 +h(.)f(.)h(.)58 b(1464)122 b(450)0 3449 y Fk(Icosahedron)40 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)58 b(1461)122 b(447)0 3312 y Fk(Icosahedron)28 b +h(.)58 b(1466)122 b(451)0 3548 y Fk(Icosahedron)28 b Fm(class)f(de\014nition)57 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1462)122 -b(447)0 3411 y(De\014ne)28 b Fk(static)k(const)g(Icosahedron)c +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1467)122 +b(451)0 3648 y(De\014ne)28 b Fk(static)k(const)g(Icosahedron)c Fm(data)f(mem)n(b)r(ers)61 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1463)122 -b(447)0 3511 y(Constructors)26 b(and)h(setting)h(functions)69 +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1468)122 +b(451)0 3748 y(Constructors)26 b(and)h(setting)h(functions)69 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1464)122 b(447)166 3611 y(Default)28 b(constructor)38 +b(1469)122 b(451)166 3847 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1465)122 b(447)166 -3710 y(Cen)n(ter,)27 b(diameter)g(of)h(triangle,)f(and)g(angles)48 +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1470)122 b(451)166 +3947 y(Cen)n(ter,)27 b(diameter)g(of)h(triangle,)f(and)g(angles)48 b(.)19 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1467)122 b(448)332 -3810 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1472)122 b(452)332 +4046 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1468)122 b(448)0 3909 y(Get)28 b(net)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f +b(1473)122 b(452)0 4146 y(Get)28 b(net)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1470)122 b(450)0 4009 y(Dra)n(w)27 b(net)36 b(.)18 +b(1475)122 b(454)0 4246 y(Dra)n(w)27 b(net)36 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)58 b(1472)122 b(452)0 4141 y Fk(Semi-Regular)30 +h(.)f(.)h(.)58 b(1477)122 b(456)0 4365 y Fk(Semi-Regular)30 b(Arc)m(himedean)i(P)m(olyhedra)61 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)g(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)58 b(1474)122 b(454)0 4272 y Fk(T)-8 b(runcated)33 +(.)58 b(1479)122 b(458)0 4484 y Fk(T)-8 b(runcated)33 b(Octahedron)51 b Fm(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1475)122 -b(454)0 4372 y Fk(T)-8 b(runc)p 251 4372 29 4 v 36 w(Octahedron)28 +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1480)122 +b(458)0 4584 y Fk(T)-8 b(runc)p 251 4584 29 4 v 36 w(Octahedron)28 b Fm(class)f(de\014nition)38 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)58 b(1476)122 b(454)0 4471 y(De\014ne)28 -b Fk(static)k(const)g(T)-8 b(runc)p 1017 4471 V 36 w(Octahedron)28 +(.)h(.)f(.)h(.)f(.)h(.)58 b(1481)122 b(458)0 4683 y(De\014ne)28 +b Fk(static)k(const)g(T)-8 b(runc)p 1017 4683 V 36 w(Octahedron)28 b Fm(data)f(mem)n(b)r(ers)42 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)58 b(1477)122 b(454)0 4571 y(Constructors)26 +h(.)f(.)h(.)f(.)h(.)58 b(1482)122 b(458)0 4783 y(Constructors)26 b(and)h(setting)h(functions)69 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1478)122 b(454)166 4671 +(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1483)122 b(458)166 4882 y(Default)28 b(constructor)38 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1479)122 b(454)166 4770 y(Cen)n(ter,)27 b(diameter)g(of)h(hexagon,)e +b(1484)122 b(458)166 4982 y(Cen)n(ter,)27 b(diameter)g(of)h(hexagon,)e (and)i(angles)f(.)19 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1481)122 -b(455)332 4870 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1486)122 +b(459)332 5082 y(Constructor)62 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)58 b(1482)122 b(455)0 4970 y(Get)28 b(net)55 b(.)19 +(.)h(.)58 b(1487)122 b(459)0 5181 y(Get)28 b(net)55 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)58 b(1484)122 b(457)0 5069 y(Putting)28 +f(.)h(.)f(.)h(.)58 b(1489)122 b(461)0 5281 y(Putting)28 b(p)r(olyhedra)e(together)44 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1487)122 b(459)0 5201 y Fk(P)m(arsing)96 b(\()p Fj(parser.web)p +b(1492)122 b(463)0 5400 y Fk(P)m(arsing)96 b(\()p Fj(parser.web)p Fk(\))32 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1490)122 -b(460)0 5300 y(P)n(arse)49 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1492)122 b(460)0 5400 y(Putting)28 b(the)g(parser)e(together)38 -b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)58 b(1494)122 b(460)p eop end -%%Page: 529 529 -TeXDict begin 529 528 bop 0 83 a Fl(3DLDFPR)n(G)2474 -b(T)-6 b(ABLE)23 b(OF)g(CONTENTS)141 b Fm(xix)0 263 y -Fk(Main)95 b(\()p Fj(main.web)p Fk(\))51 b Fm(.)18 b(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1495)122 +b(464)p eop end +%%Page: 533 533 +TeXDict begin 533 532 bop 0 83 a Fl(3DLDFPR)n(G)2474 +b(T)-6 b(ABLE)23 b(OF)g(CONTENTS)141 b Fm(xix)0 263 y(P)n(arse)49 +b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)58 b(1497)122 b(462)0 363 y(Include)28 -b(\014les)66 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1497)122 b(464)0 +363 y(Putting)28 b(the)g(parser)e(together)38 b(.)18 +b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) +f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +(.)f(.)h(.)f(.)h(.)58 b(1499)122 b(465)0 487 y Fk(Main)95 +b(\()p Fj(main.web)p Fk(\))51 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h +h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) -h(.)f(.)h(.)f(.)h(.)58 b(1498)122 b(462)0 462 y(Get)28 -b(input)60 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)58 b(1499)122 b(462)0 562 y(Actions)28 +h(.)f(.)h(.)58 b(1502)122 b(466)0 587 y(Include)28 b(\014les)66 +b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g +(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)58 b(1503)122 b(466)0 686 y(Get)28 b(input)60 +b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f +(.)h(.)f(.)h(.)58 b(1504)122 b(466)0 786 y(Actions)28 b(in)f(main)44 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)58 b(1500)122 b(463)0 662 y(Pro)r(cess)26 b(command)h(line)h +f(.)h(.)58 b(1505)122 b(467)0 886 y(Pro)r(cess)26 b(command)h(line)h (options)63 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) -f(.)h(.)f(.)h(.)f(.)h(.)58 b(1502)122 b(464)0 761 y(Prin)n(t)27 +f(.)h(.)f(.)h(.)f(.)h(.)58 b(1507)122 b(468)0 985 y(Prin)n(t)27 b(v)n(ersion,)f(cop)n(yrigh)n(t,)g(and)h(license)h(information)67 b(.)19 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)58 b(1506)122 b(467)0 861 y(Main)27 +(.)f(.)h(.)f(.)h(.)58 b(1511)122 b(471)0 1085 y(Main)27 b(itself)70 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)58 b(1509)122 b(468)0 960 y(Putting)28 +(.)h(.)f(.)h(.)f(.)h(.)58 b(1514)122 b(472)0 1185 y(Putting)28 b(Main)f(together)51 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1512)122 b(469)0 1085 y Fk(App)s(endices)58 b Fm(.)18 +b(1520)122 b(474)0 1309 y Fk(App)s(endices)58 b Fm(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.) f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1513)122 b(469)0 1185 y(References)32 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.) +b(1521)122 b(474)0 1409 y(References)32 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 -b(1514)122 b(469)0 1284 y(GNU)28 b(F)-7 b(ree)28 b(Do)r(cumen)n(tation) +b(1522)122 b(474)0 1508 y(GNU)28 b(F)-7 b(ree)28 b(Do)r(cumen)n(tation) f(License)39 b(.)18 b(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)58 b(1515)122 b(470)0 1384 y(GNU)28 b(General)f(Public)h +(.)h(.)f(.)h(.)58 b(1523)122 b(475)0 1608 y(GNU)28 b(General)f(Public)h (License)f(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1516)122 b(475)0 -1483 y(Index)46 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1524)122 b(480)0 +1708 y(Index)46 b(.)19 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.) h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f -(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1517)122 -b(479)p eop end +(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)58 b(1525)122 +b(484)p eop end %%Trailer userdict /end-hook known{end-hook}if diff -Naur 3DLDF-1.1.3/CWEB/3DLDFprg.web 3DLDF-1.1.4/CWEB/3DLDFprg.web --- 3DLDF-1.1.3/CWEB/3DLDFprg.web 2003-12-01 20:51:16.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/3DLDFprg.web 2003-12-10 15:50:41.000000000 +0100 @@ -30,7 +30,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: 3DLDFprg.web,v 1.4 2003/12/01 19:51:16 lfinsto1 Exp $ @> +@q $Id: 3DLDFprg.web,v 1.5 2003/12/10 14:50:41 lfinsto1 Exp $ @> @q 3DLDF.web @> @q LDF 2003.04.15. This file is used for cweaving the @> @@ -143,7 +143,7 @@ To write my \.{.web} files, I wrote a \.{cweb-mode} for Emacs and a number of Emacs-Lisp functions to go with it. It is not currently -included in the 3DLDF distribution (Version 1.1.3), but I may include it in a +included in the 3DLDF distribution (Version 1.1.4), but I may include it in a later version. However, GNU is at work at an official cweb-mode of its own, so you might want to use it instead, if it's available. diff -Naur 3DLDF-1.1.3/CWEB/3DLDFtex.tex 3DLDF-1.1.4/CWEB/3DLDFtex.tex --- 3DLDF-1.1.3/CWEB/3DLDFtex.tex 2003-11-28 14:38:17.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/3DLDFtex.tex 2003-12-10 15:54:46.000000000 +0100 @@ -1,6 +1,6 @@ %%%% 3DLDFtex.tex -%%%% $Id: 3DLDFtex.tex,v 1.1 2003/11/28 13:38:17 lfinsto1 Exp $ +%%%% $Id: 3DLDFtex.tex,v 1.2 2003/12/10 14:54:46 lfinsto1 Exp $ %%%% * Copyright and License.@> @@ -33,7 +33,7 @@ %%%% s246794@stud.uni-goettingen.de -%%%% $Id: 3DLDFtex.tex,v 1.1 2003/11/28 13:38:17 lfinsto1 Exp $ +%%%% $Id: 3DLDFtex.tex,v 1.2 2003/12/10 14:54:46 lfinsto1 Exp $ \input epsf @@ -60,6 +60,12 @@ \voffset=-1in \hoffset=-1in + +%% Uncomment for A3 landscape. +%\special{papersize=420mm, 297mm} %% DIN A3 +%\vsize=297mm +%\hsize=420mm + %\advance\vsize by -1in %\advance\hsize by -1in diff -Naur 3DLDF-1.1.3/CWEB/ChangeLog 3DLDF-1.1.4/CWEB/ChangeLog --- 3DLDF-1.1.3/CWEB/ChangeLog 2003-12-01 21:44:47.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/ChangeLog 2003-12-10 18:34:24.000000000 +0100 @@ -1,3 +1,176 @@ +2003-12-10 Laurence Finston + + * utility.web: LDF 2003.12.10. + Put |static string rcs_id| back in, because I've put my release versions + under version control using RCS. + + * tsthdweb: + LDF 2003.12.10. Merged in changes from my development version: + Commented-out some code which caused a problem. I think it's okay now, but + I'll have to keep an eye on whether rebuilding is handled correctly. + + * transfor.web: LDF 2003.12.10. + Put |static string rcs_id| back in, because I've put my release versions + under version control using RCS. + + * subex2.web, subex1.web: + LDF 2003.12.10. Removed a comment about version control identifiers. + It's not needed here, because this file is not compiled directly. + + * solids.web, solfaced.web, shapes.web: LDF 2003.12.10. + Put |static string rcs_id| back in, because I've put my release versions + under version control using RCS. + + * rectangs.web: LDF 2003.12.10. + Put |static string rcs_id| back in, because I've put my release versions + under version control using RCS. + + Merged in |is_rectangular()| from my development version. + + * pspglb.web: LDF 2003.12.10. + Changed version number of 3DLDF from `1.1.3' to `1.1.4'. + + * polyhed.web, polygons.web, points.web, planes.web, pictures.web, patterns.web: + LDF 2003.12.10. + Put |static string rcs_id| back in, because I've put my release versions + under version control using RCS. + + * paths.web: LDF 2003.12.10. + Put |static string rcs_id| back in, because I've put my release versions + under version control using RCS. + + Merged in changes from development version: + + LDF 2003.11.28. + BUG FIX: Changed |get_point()|, so that |apply_transform()| is + called on the |Point|. This entailed making this function + non-|const|. Added |const| version, too. + This may actually be a bug, rather than a bug + fix, depending on how this function is used elsewhere. However, I + really think |apply_transform()| should be called. + + * parser.web, lines.web, io.web: LDF 2003.12.10. + Put |static string rcs_id| back in, because I've put my release versions + under version control using RCS. + + * examples.web: + LDF 2003.12.10. Added the section |@|. + This puts a |static string| with the RCS version control identifier + into the object file. + + * ellipses.web: LDF 2003.12.10. + Put |static string rcs_id| back in, because I've put my release versions + under version control using RCS. + + * cwebmac.tex: + LDF 2003.12.10. Changed version number of 3DLDF to 1.1.4. + + * curves.web, cuboid.web, colors.web: LDF 2003.12.10. + Put |static string rcs_id| back in, because I've put my release versions + under version control using RCS. + + * circles.web: LDF 2003.12.10. + Added newline at end of file. + + * Makefile.am: + LDF 2003.12.10. Merged in changes from development version. Changed version number + to 1.1.4. + + * 3DLDFtex.tex: + LDF 2003.12.10. Added commented-out code for DIN A3 landscape format. + + * 3DLDFprg.web: + LDF 2003.12.10. Changed version number from 1.1.3 to 1.1.4 in TeX text. + + * 3DLDFprg.mac: LDF 2003.12.10. + Changed definitions of \LOG and \ENDLOG. Added local variables list for + Emacs. + +2003-12-09 Laurence Finston + + * rectangs.web, polyhed.web: + LDF 2003.12.09. Changed calls to |Point::mediate()|, which + is now a member function. + + * points.web: LDF 2003.12.09. + Made |mediate()| a |const| member function in |Point|. + + * circles.web: + LDF 2003.12.09. Changed call to |Point::mediate()| in |Reg_Polygon::in_circle()|. + The former is now a member function. + + * main.web: LDF 2003.12.09. + Added test for big-endianness using `#ifdef WORDS_BIGENDIAN', which is generated + by the test `AC_C_BIGENDIAN' in \filename{configure.ac}. If it's defined, + an error message is printed to standard error, and 3dldf exits with return value + 1. Currently, |MAX_REAL| can only be set properly on 32-bit, little-endian machines. + I've added a ``TO DO'' note to myself to write code for other types of machines. + + * pspglb.web: LDF 2003.12.09. + Added TeX code to the place where I calculate |MAX_REAL|. + +2003-12-08 Laurence Finston + + * pspglb.web: LDF 2003.12.08. + Added a comment. + + * main.web: LDF 2003.12.08. + Added tests for |MAX_REAL|. + + * pspglb.web: LDF 2003.12.08. + Changed the definition of |MAX_REAL|. Previously, it + was calculated using + |.00000003 * FLT_MAX|, which was a kludge. + + |MAX_REAL| now really is the second largest |real| value on any given + platform now, as long as |sizeof(float) == sizeof(unsigned long)| and + |sizeof(double) == sizeof(unsigned long long)|! This is tested in + \filename{main.web}, when |INVALID_REAL == MAX_REAL| is tested. + + * main.web: LDF 2003.12.08. + Improved the error message for the case that + |INVALID_REAL == MAX_REAL|. This accounts for the fact that I've + improved the way |MAX_REAL| is set in \filename{pspglb.web}. + + * pspglb.web: LDF 2003.12.08. + Improved the way |MAX_REAL| is set. |INVALID_REAL - MAX_REAL| is still + not the smallest possible value, though. Added note, that I'll have to + change it for the case that |real| is a synonym for |double|. However, + it's not currently possible to set |real| to |double|. + +2003-12-04 Laurence Finston + + * tsthdweb: LDF 2003.12.04. + Added code for tangling the CWEB file, if the .c and/or .h file doesn't + exist. + + * Makefile.am: LDF 2003.12.04. + Changed the targets for the C++ and header files generated from the + CWEB files. This seems to have solved the problem of `make install' + building the executable 3dldf twice. + + * Makefile.am: LDF 2003.12.04. + Added |3dldf_c_files|. May get rid of it again. + Added it to |CLEANFILES| and |MOSTLYCLEANFILES|. Removed + |$(CLEANFILES)| from |MAINTAINERCLEANFILES|. Now the files are + named either explicitly, or using other variables. I was trying to + fix a bug. The cause turned out to be something else, so I may change + this back sometime. + + Working on the targets for creating the executable `3dldf'. The way it + was before caused `make distclean' to fail. Now, `make install' causes + 3dldf to be built twice. I've had this problem before. About to start + trying to find a solution. `make 3dldf' does not cause 3dldf to be + built twice, though. + +2003-12-03 Laurence Finston + + * Makefile.am: LDF 2003.12.03. + Got rid of the phony `info' and `info-recursive' targets, because I've got + my Texinfo documentation to work properly with `make info'. + + Added Emacs ``Local Variables'' list, that sets mode to `Makefile'. + 2003-12-01 Laurence Finston * Makefile.am: LDF 2003.12.01. diff -Naur 3DLDF-1.1.3/CWEB/Makefile.am 3DLDF-1.1.4/CWEB/Makefile.am --- 3DLDF-1.1.3/CWEB/Makefile.am 2003-12-01 22:03:13.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/Makefile.am 2003-12-10 16:05:16.000000000 +0100 @@ -1,4 +1,4 @@ -#### 3DLDF-1.1.3/CWEB/Makefile.am +#### 3DLDF-1.1.4/CWEB/Makefile.am #### Created by Laurence D. Finston (LDF). # This file is part of 3DLDF, a package for three-dimensional drawing. @@ -29,7 +29,7 @@ # s246794@stud.uni-goettingen.de -# $Id: Makefile.am,v 1.12 2003/12/01 20:25:45 lfinsto1 Exp $ +# $Id: Makefile.am,v 1.16 2003/12/10 15:05:15 lfinsto1 Exp $ bin_PROGRAMS = 3dldf @@ -45,6 +45,7 @@ 3dldf_header_timers := $(3dldf_SOME_CWEBS:.web=.tim) 3dldf_cweb_timers := $(3dldf_SOME_CWEBS:.web=.tmw) main.tmw nodist_3dldf_SOURCES = $(3dldf_SOME_CWEBS:.web=.cxx) main.cxx +3dldf_c_files = $(nodist_3dldf_SOURCES:.cxx=.c) 3dldf_CWEBS := $(3dldf_SOME_CWEBS) main.web loader.web @@ -78,8 +79,7 @@ 3DLDFmp.6* 3DLDFmp.7* 3DLDFmp.8* 3DLDFmp.8* 3DLDFmp.9* \ 3DLDFmp.log 3DLDFmp.mpx - -CLEANFILES = $(3dldf_mpgens) 3DLDFprg.idx 3DLDFprg.log 3DLDFprg.scn \ +CLEANFILES := $(3dldf_c_files) $(3dldf_mpgens) 3DLDFprg.idx 3DLDFprg.log 3DLDFprg.scn \ 3DLDFprg.toc 3DLDFput.mp 3DLDFput.tex \ 3DLDFtex.dvi 3DLDFtex.log 3DLDFtex.ps \ Makefile loader.c \ @@ -91,12 +91,20 @@ # mostlyclean leaves the .cxx, .h, and .tim files, but deletes the object files. # LDF 2003.11.25. -MOSTLYCLEANFILES = $(3dldf_mpgens) 3DLDFprg.idx 3DLDFprg.log 3DLDFprg.scn \ + +MOSTLYCLEANFILES := $(3dldf_c_files) $(3dldf_mpgens) 3DLDFprg.idx 3DLDFprg.log 3DLDFprg.scn \ 3DLDFprg.toc 3DLDFput.mp 3DLDFput.tex \ - 3DLDFtex.dvi 3DLDFtex.log 3DLDFtex.ps - + 3DLDFtex.dvi 3DLDFtex.log 3DLDFtex.ps -MAINTAINERCLEANFILES = $(CLEANFILES) 3DLDFprg.dvi 3DLDFprg.ps +MAINTAINERCLEANFILES := $(3dldf_c_files) $(3dldf_mpgens) 3DLDFprg.idx 3DLDFprg.log 3DLDFprg.scn \ + 3DLDFprg.toc 3DLDFput.mp 3DLDFput.tex \ + 3DLDFtex.dvi 3DLDFtex.log 3DLDFtex.ps \ + Makefile loader.c \ + $(3dldf_headers) $(3dldf_header_timers) \ + $(3dldf_cweb_timers) \ + $(nodist_3dldf_SOURCES) $(3dldf_OBJECTS) \ + config.h loader.h loader.tim stamp-h stamp-h1 \ + 3DLDFprg.dvi 3DLDFprg.ps @@ -104,27 +112,17 @@ dummy: @echo "dummy in CWEB/Makefile.am." -.PHONY : info -info: - @echo "info in CWEB/Makefile.am." - -.PHONY : info-recursive -info-recursive: - @echo "info-recursive in CWEB/Makefile.am." - - 3dldf: loader.tim $(3dldf_OBJECTS) -rm -f -r 3dldf @echo "Linking 3dldf" $(CXXLINK) $(3dldf_OBS_REVERSED) loader.tim: loader.h - - + loader.h: loader.web @echo "ctangling loader.web." $(CTANGLE) loader.web - $(SHELL) $(srcdir)/tsthdweb loader 2 + $(SHELL) $(srcdir)/tsthdweb loader 2 $(CTANGLE) pspglb.o: loader.tim pspglb.tmw @@ -233,7 +231,7 @@ main.tmw: main.web @echo "Retangling main.web" $(CTANGLE) main.web - $(SHELL) $(srcdir)/tsthdweb main 1 + $(SHELL) $(srcdir)/tsthdweb main 1 $(CTANGLE) @@ -259,23 +257,16 @@ %.tmw: %.web -cp -p $*.h $*.hbk - rm -rf $*.h - @echo "Retangling $<" - $(CTANGLE) $< - $(SHELL) $(srcdir)/tsthdweb $* 0 + $(SHELL) $(srcdir)/tsthdweb $* 0 $(CTANGLE) %.tim: @echo "$@ doesn't exist. Touching $@" touch $@ -%.h: - @echo "$@ doesn't exist. ctangling $*.web" - $(CTANGLE) $*.web - -%.cxx: - @echo "$@ doesn't exist. ctangling $*.web" - $(CTANGLE) $*.web - mv $*.c $*.cxx + +$(nodist_3dldf_SOURCES) $(3dldf_headers): + @echo "$@ doesn't exist. Calling tsthdweb $*" + $(SHELL) $(srcdir)/tsthdweb $* 0 $(CTANGLE) ## The "run" target and its prerequisites are for generating the ## PostScript file containing the drawings. LDF 2003.11.11. @@ -287,15 +278,18 @@ @echo "Running dvips on 3DLDFtex.dvi to create 3DLDFtex.ps." dvips -o 3DLDFtex.ps 3DLDFtex -3DLDFtex.dvi : 3DLDFtex.tex 3DLDFtex.bas 3DLDFmp.mp 3DLDFput.mp +3DLDFtex.dvi : 3DLDFtex.tex 3DLDFtex.bas 3DLDFmp.mp @echo "Running TeX on 3DLDFtex.tex to create 3DLDFtex.dvi." tex 3DLDFtex +3DLDFmp.mp: 3DLDFput.mp + @echo "Running Metapost on 3DLDFmp to create EPS files." + mpost 3DLDFmp + 3DLDFput.mp : 3dldf @echo "Running 3dldf to create 3DLDFput.mp." 3dldf - @echo "Running Metapost on 3DLDFmp to create EPS files." - mpost 3DLDFmp + ## The ".ps" target is for generating the _3DLDF User and Reference Manual_ and ## _3DLDF: The Program_ in PostScript format. There's an implicit target @@ -343,3 +337,7 @@ TAGS : 3DLDFprg.web $(3dldf_CWEBS) @echo "Regenerating the tags table for the CWEB files." etags 3DLDFprg.web $(3dldf_CWEBS) + +## Local Variables: +## mode:Makefile +## End: diff -Naur 3DLDF-1.1.3/CWEB/Makefile.in 3DLDF-1.1.4/CWEB/Makefile.in --- 3DLDF-1.1.3/CWEB/Makefile.in 2003-12-01 22:05:18.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/Makefile.in 2003-12-10 18:41:52.000000000 +0100 @@ -14,7 +14,7 @@ @SET_MAKE@ -#### 3DLDF-1.1.3/CWEB/Makefile.am +#### 3DLDF-1.1.4/CWEB/Makefile.am #### Created by Laurence D. Finston (LDF). # This file is part of 3DLDF, a package for three-dimensional drawing. @@ -44,7 +44,7 @@ # lfinsto1@gwdg.de # s246794@stud.uni-goettingen.de -# $Id: Makefile.am,v 1.12 2003/12/01 20:25:45 lfinsto1 Exp $ +# $Id: Makefile.am,v 1.16 2003/12/10 15:05:15 lfinsto1 Exp $ srcdir = @srcdir@ top_srcdir = @top_srcdir@ @@ -155,6 +155,7 @@ 3dldf_header_timers := $(3dldf_SOME_CWEBS:.web=.tim) 3dldf_cweb_timers := $(3dldf_SOME_CWEBS:.web=.tmw) main.tmw nodist_3dldf_SOURCES = $(3dldf_SOME_CWEBS:.web=.cxx) main.cxx +3dldf_c_files = $(nodist_3dldf_SOURCES:.cxx=.c) 3dldf_CWEBS := $(3dldf_SOME_CWEBS) main.web loader.web @@ -187,7 +188,7 @@ 3DLDFmp.log 3DLDFmp.mpx -CLEANFILES = $(3dldf_mpgens) 3DLDFprg.idx 3DLDFprg.log 3DLDFprg.scn \ +CLEANFILES := $(3dldf_c_files) $(3dldf_mpgens) 3DLDFprg.idx 3DLDFprg.log 3DLDFprg.scn \ 3DLDFprg.toc 3DLDFput.mp 3DLDFput.tex \ 3DLDFtex.dvi 3DLDFtex.log 3DLDFtex.ps \ Makefile loader.c \ @@ -197,14 +198,24 @@ config.h loader.h loader.tim stamp-h stamp-h1 + # mostlyclean leaves the .cxx, .h, and .tim files, but deletes the object files. # LDF 2003.11.25. -MOSTLYCLEANFILES = $(3dldf_mpgens) 3DLDFprg.idx 3DLDFprg.log 3DLDFprg.scn \ +MOSTLYCLEANFILES := $(3dldf_c_files) $(3dldf_mpgens) 3DLDFprg.idx 3DLDFprg.log 3DLDFprg.scn \ 3DLDFprg.toc 3DLDFput.mp 3DLDFput.tex \ - 3DLDFtex.dvi 3DLDFtex.log 3DLDFtex.ps + 3DLDFtex.dvi 3DLDFtex.log 3DLDFtex.ps + +MAINTAINERCLEANFILES := $(3dldf_c_files) $(3dldf_mpgens) 3DLDFprg.idx 3DLDFprg.log 3DLDFprg.scn \ + 3DLDFprg.toc 3DLDFput.mp 3DLDFput.tex \ + 3DLDFtex.dvi 3DLDFtex.log 3DLDFtex.ps \ + Makefile loader.c \ + $(3dldf_headers) $(3dldf_header_timers) \ + $(3dldf_cweb_timers) \ + $(nodist_3dldf_SOURCES) $(3dldf_OBJECTS) \ + config.h loader.h loader.tim stamp-h stamp-h1 \ + 3DLDFprg.dvi 3DLDFprg.ps -MAINTAINERCLEANFILES = $(CLEANFILES) 3DLDFprg.dvi 3DLDFprg.ps subdir = CWEB mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h @@ -529,14 +540,6 @@ dummy: @echo "dummy in CWEB/Makefile.am." -.PHONY : info -info: - @echo "info in CWEB/Makefile.am." - -.PHONY : info-recursive -info-recursive: - @echo "info-recursive in CWEB/Makefile.am." - 3dldf: loader.tim $(3dldf_OBJECTS) -rm -f -r 3dldf @echo "Linking 3dldf" @@ -547,7 +550,7 @@ loader.h: loader.web @echo "ctangling loader.web." $(CTANGLE) loader.web - $(SHELL) $(srcdir)/tsthdweb loader 2 + $(SHELL) $(srcdir)/tsthdweb loader 2 $(CTANGLE) pspglb.o: loader.tim pspglb.tmw @@ -655,7 +658,7 @@ main.tmw: main.web @echo "Retangling main.web" $(CTANGLE) main.web - $(SHELL) $(srcdir)/tsthdweb main 1 + $(SHELL) $(srcdir)/tsthdweb main 1 $(CTANGLE) # # tsthdweb is a shell script. Its name stands for "test header and # # CWEB files". It tests whether the files generated by ctangle @@ -676,23 +679,15 @@ %.tmw: %.web -cp -p $*.h $*.hbk - rm -rf $*.h - @echo "Retangling $<" - $(CTANGLE) $< - $(SHELL) $(srcdir)/tsthdweb $* 0 + $(SHELL) $(srcdir)/tsthdweb $* 0 $(CTANGLE) %.tim: @echo "$@ doesn't exist. Touching $@" touch $@ -%.h: - @echo "$@ doesn't exist. ctangling $*.web" - $(CTANGLE) $*.web - -%.cxx: - @echo "$@ doesn't exist. ctangling $*.web" - $(CTANGLE) $*.web - mv $*.c $*.cxx +$(nodist_3dldf_SOURCES) $(3dldf_headers): + @echo "$@ doesn't exist. Calling tsthdweb $*" + $(SHELL) $(srcdir)/tsthdweb $* 0 $(CTANGLE) .PHONY : run run : 3DLDFtex.ps @@ -701,15 +696,17 @@ @echo "Running dvips on 3DLDFtex.dvi to create 3DLDFtex.ps." dvips -o 3DLDFtex.ps 3DLDFtex -3DLDFtex.dvi : 3DLDFtex.tex 3DLDFtex.bas 3DLDFmp.mp 3DLDFput.mp +3DLDFtex.dvi : 3DLDFtex.tex 3DLDFtex.bas 3DLDFmp.mp @echo "Running TeX on 3DLDFtex.tex to create 3DLDFtex.dvi." tex 3DLDFtex +3DLDFmp.mp: 3DLDFput.mp + @echo "Running Metapost on 3DLDFmp to create EPS files." + mpost 3DLDFmp + 3DLDFput.mp : 3dldf @echo "Running 3dldf to create 3DLDFput.mp." 3dldf - @echo "Running Metapost on 3DLDFmp to create EPS files." - mpost 3DLDFmp .PHONY : ps ps: 3DLDFprg.ps diff -Naur 3DLDF-1.1.3/CWEB/circles.web 3DLDF-1.1.4/CWEB/circles.web --- 3DLDF-1.1.3/CWEB/circles.web 2003-12-01 20:12:41.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/circles.web 2003-12-10 16:09:04.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: circles.web,v 1.2 2003/12/01 19:12:40 lfinsto1 Exp $ @> +@q $Id: circles.web,v 1.4 2003/12/10 15:09:04 lfinsto1 Exp $ @> @q * Circle.@> @** Circle\quad ({\tt circles\PERIOD web}).\hfil @@ -71,7 +71,7 @@ @f Circle Shape @= static string rcs_id - = "$Id: circles.web,v 1.2 2003/12/01 19:12:40 lfinsto1 Exp $"; + = "$Id: circles.web,v 1.4 2003/12/10 15:09:04 lfinsto1 Exp $"; @q * Include files.@> @* Include files. @@ -803,6 +803,9 @@ @^\cfunc{Reg\_Polygon}{in\_circle}@> \LOG \initials{LDF 2003.06.13.} Added this function. + +\initials{LDF 2003.12.09.} Changed call to |Point::mediate()| below. +It's now a member function. \ENDLOG @= Circle @@ -824,7 +827,7 @@ << "Returning empty Circle.\n\n" << flush; return c; } - Point mid_pt = mediate(*points[0], *points[1]); + Point mid_pt = points[0]->mediate(*points[1]); mid_pt -= center; real r = mid_pt.magnitude(); c.set(origin, 2 * r); @@ -963,3 +966,5 @@ @@; + + \ No newline at end of file diff -Naur 3DLDF-1.1.3/CWEB/colors.web 3DLDF-1.1.4/CWEB/colors.web --- 3DLDF-1.1.3/CWEB/colors.web 2003-11-28 17:48:46.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/colors.web 2003-12-10 16:22:33.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: colors.web,v 1.1 2003/11/28 13:40:29 lfinsto1 Exp $ @> +@q $Id: colors.web,v 1.2 2003/12/10 15:22:33 lfinsto1 Exp $ @> @q * Color.@> @** Color\quad ({\tt colors\PERIOD web}).\hfil @@ -60,8 +60,15 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @= +static string rcs_id + = "$Id: colors.web,v 1.2 2003/12/10 15:22:33 lfinsto1 Exp $"; @q * Include files.@> @* Include files. diff -Naur 3DLDF-1.1.3/CWEB/config.h.in 3DLDF-1.1.4/CWEB/config.h.in --- 3DLDF-1.1.3/CWEB/config.h.in 2003-12-01 21:51:43.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/config.h.in 2003-12-10 18:44:49.000000000 +0100 @@ -75,6 +75,10 @@ /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME +/* Define to 1 if your processor stores words with the most significant byte + first (like Motorola and SPARC, unlike Intel and VAX). */ +#undef WORDS_BIGENDIAN + /* Define to empty if `const' does not conform to ANSI C. */ #undef const diff -Naur 3DLDF-1.1.3/CWEB/cuboid.web 3DLDF-1.1.4/CWEB/cuboid.web --- 3DLDF-1.1.3/CWEB/cuboid.web 2003-11-28 17:49:48.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/cuboid.web 2003-12-10 16:26:05.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: cuboid.web,v 1.1 2003/11/28 13:41:49 lfinsto1 Exp $ @> +@q $Id: cuboid.web,v 1.2 2003/12/10 15:26:04 lfinsto1 Exp $ @> @q * Cuboid.@> @** Cuboid\quad ({\tt cuboid\PERIOD web}).\hfil @@ -81,10 +81,17 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @f Cuboid Solid @= +static string rcs_id + = "$Id: cuboid.web,v 1.2 2003/12/10 15:26:04 lfinsto1 Exp $"; @q * Include files.@> diff -Naur 3DLDF-1.1.3/CWEB/curves.web 3DLDF-1.1.4/CWEB/curves.web --- 3DLDF-1.1.3/CWEB/curves.web 2003-11-28 17:49:13.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/curves.web 2003-12-10 16:27:57.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: curves.web,v 1.1 2003/11/28 13:42:01 lfinsto1 Exp $ @> +@q $Id: curves.web,v 1.2 2003/12/10 15:27:57 lfinsto1 Exp $ @> @q * Curves.@> @** Curves\quad ({\tt curves\PERIOD web}).\hfil @@ -61,10 +61,17 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @f Curve Path @= +static string rcs_id + = "$Id: curves.web,v 1.2 2003/12/10 15:27:57 lfinsto1 Exp $"; @q * Include files.@> @* Include files. diff -Naur 3DLDF-1.1.3/CWEB/cwebmac.tex 3DLDF-1.1.4/CWEB/cwebmac.tex --- 3DLDF-1.1.3/CWEB/cwebmac.tex 2003-12-01 20:51:51.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/cwebmac.tex 2003-12-10 16:30:20.000000000 +0100 @@ -1,5 +1,5 @@ %%% cwebmac.tex. - + %%%% Copied from the version supplied with the CWEB package, and %%%% modified by Laurence D. Finston (LDF) August 25, 2003. @@ -9,7 +9,7 @@ %%%% If your CWEB package contains a newer version, you can copy it, %%%% and add my changes to your copy (carefully). LDF 2003.08.25. -%% $Id: cwebmac.tex,v 1.3 2003/12/01 19:51:51 lfinsto1 Exp $ +%% $Id: cwebmac.tex,v 1.4 2003/12/10 15:30:20 lfinsto1 Exp $ % standard macros for CWEB listings (in addition to plain.tex) % Version 3.64 --- February 2002 @@ -455,7 +455,7 @@ %% %% Beginning of new material. LDF 2003.08.25. \medskip -\centerline{\titlefont Version 1.1.3}% +\centerline{\titlefont Version 1.1.4}% \medskip \centerline{\titlefont by Laurence D. Finston}% \medskip diff -Naur 3DLDF-1.1.3/CWEB/ellipses.web 3DLDF-1.1.4/CWEB/ellipses.web --- 3DLDF-1.1.3/CWEB/ellipses.web 2003-11-28 17:49:23.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/ellipses.web 2003-12-10 16:32:20.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: ellipses.web,v 1.1 2003/11/28 13:42:29 lfinsto1 Exp $ @> +@q $Id: ellipses.web,v 1.2 2003/12/10 15:32:20 lfinsto1 Exp $ @> @q * Ellipse.@> @** Ellipse\quad ({\tt ellipses\PERIOD web}).\hfil @@ -61,10 +61,17 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @f Ellipse Path @= +static string rcs_id + = "$Id: ellipses.web,v 1.2 2003/12/10 15:32:20 lfinsto1 Exp $"; @q * Include files.@> @* Include files. diff -Naur 3DLDF-1.1.3/CWEB/examples.web 3DLDF-1.1.4/CWEB/examples.web --- 3DLDF-1.1.3/CWEB/examples.web 2003-11-28 17:50:09.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/examples.web 2003-12-10 16:38:11.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: examples.web,v 1.1 2003/11/28 13:43:01 lfinsto1 Exp $ @> +@q $Id: examples.web,v 1.2 2003/12/10 15:38:11 lfinsto1 Exp $ @> @q * Include files.@> @ Include files. @@ -81,6 +81,13 @@ #include "utility.h" #include "parser.h" +@ +\LOG +Added this section. \initials{LDF 2003.12.10.} +\ENDLOG +@= +static string rcs_id + = "$Id: examples.web,v 1.2 2003/12/10 15:38:11 lfinsto1 Exp $"; @q * The examples function.@> @* The examples function. @@ -113,6 +120,7 @@ @ This is what's compiled. @c @@; +@@; @@; diff -Naur 3DLDF-1.1.3/CWEB/io.web 3DLDF-1.1.4/CWEB/io.web --- 3DLDF-1.1.3/CWEB/io.web 2003-11-28 17:48:44.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/io.web 2003-12-10 16:39:40.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: io.web,v 1.1 2003/11/28 13:43:14 lfinsto1 Exp $ @> +@q $Id: io.web,v 1.2 2003/12/10 15:39:40 lfinsto1 Exp $ @> @q * I/O.@> @** I/O\quad ({\tt io\PERIOD web}).\hfil @@ -61,8 +61,16 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @= +static string rcs_id + = "$Id: io.web,v 1.2 2003/12/10 15:39:40 lfinsto1 Exp $"; + @q * Include files.@> @* Include files. diff -Naur 3DLDF-1.1.3/CWEB/lines.web 3DLDF-1.1.4/CWEB/lines.web --- 3DLDF-1.1.3/CWEB/lines.web 2003-11-28 17:49:01.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/lines.web 2003-12-10 16:40:48.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: lines.web,v 1.1 2003/11/28 13:43:46 lfinsto1 Exp $ @> +@q $Id: lines.web,v 1.2 2003/12/10 15:40:48 lfinsto1 Exp $ @> @q * Line.@> @** Line\quad ({\tt lines\PERIOD web}).\hfil @@ -71,8 +71,15 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @= +static string rcs_id + = "$Id: lines.web,v 1.2 2003/12/10 15:40:48 lfinsto1 Exp $"; @q * Include files.@> @* Include files. diff -Naur 3DLDF-1.1.3/CWEB/main.web 3DLDF-1.1.4/CWEB/main.web --- 3DLDF-1.1.3/CWEB/main.web 2003-12-01 20:39:22.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/main.web 2003-12-10 16:44:47.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: main.web,v 1.6 2003/12/01 19:39:22 lfinsto1 Exp $ @> +@q $Id: main.web,v 1.9 2003/12/09 15:33:08 lfinsto1 Exp $ @> @q * Main.@> @** Main\quad ({\tt main\PERIOD web}).\hfil @@ -77,7 +77,7 @@ @= static string rcs_id - = "$Id: main.web,v 1.6 2003/12/01 19:39:22 lfinsto1 Exp $"; + = "$Id: main.web,v 1.9 2003/12/09 15:33:08 lfinsto1 Exp $"; @q * Include files.@> @* Include files. @@ -273,7 +273,7 @@ << endl << "--verbose: Causes status information to be printed " << "to standard output" << endl - << " when 3DLDF is run." << endl + << " when 3dldf is run." << endl << endl << "--version: Prints the version number of 3DLDF" << endl @@ -436,12 +436,81 @@ /* \initials{LDF 2002.12.11.} Kludge. See {\TeX} section above. */@; +@ Error handling. +@= +#if LDF_REAL_FLOAT + if (sizeof(float) != sizeof(unsigned long)) + { + cerr << "sizeof(float) != sizeof(unsigned long)!" << endl; + << "This will probably cause |MAX_REAL| to have a bad value." + << endl << "Continuing, with finger's crossed." << endl << endl; + } +#elif LDF_REAL_DOUBLE + if (sizeof(double) != sizeof(unsigned long long)) + { + cerr << "sizeof(double) != sizeof(unsigned long long)!" << endl; + << "This will probably cause |MAX_REAL| to have a bad value." + << endl << "Proceding with fingers crossed." + << endl << endl << flush; + } +#endif + if (INVALID_REAL == MAX_REAL) { - cerr << "ERROR! In main():\nINVALID_REAL == MAX_REAL.\nExiting."; + cerr << "ERROR! In main():\nINVALID_REAL == MAX_REAL.\n."; + cerr << "You must set MAX_REAL to a smaller value in pspglb.web " + << " and recompile." << endl << "Exiting with return value 1." + << endl << endl << flush; exit(1); } +@ @^system dependencies@> +This tests whether |MAX_REAL| has a reasonable value. This is +system dependent, so it may need to be fiddled with when 3DLDF is ported. +\initials{LDF 2003.12.08.} + +@:!! TO DO@> TO DO: If |LDF_REAL_DOUBLE|, |threshold| must be set +to a smaller value. \initials{LDF 2003.12.08.} +@= + +#ifdef WORDS_BIGENDIAN + { + cerr << "ERROR! In main():\nThis is a big-endian computer.\n" + << "You will have to change the way MAX_REAL is calculated\n" + << "in pspglb.web and recompile. Sorry about this.\n" + << "Exiting with return value 1\n\n" << flush; + exit(1); + } +#endif + + + { + real threshold = 1e35; +#if LDF_REAL_DOUBLE + cerr << "WARNING! In main():" << endl + << "threshold must be set to a smaller value, " + << "because real is a synonym for double." << endl + << "Proceding with fingers crossed." << endl << endl << flush; +#endif + + if ((INVALID_REAL - MAX_REAL) > threshold) + { + cerr << "ERROR! In main():\nINVALID_REAL - MAX_REAL > 1e35.\n." + << "INVALID_REAL == " << INVALID_REAL << endl + << "MAX_REAL == " << MAX_REAL << endl + << "INVALID_REAL - MAX_REAL == " << (INVALID_REAL - MAX_REAL) + << endl + << "This may mean that your computer represents floating point\n" + << "numbers differently from the one 3DLDF was developed on.\n" + << "You'll have to change the way MAX_REAL is set in pspglb.web." + << endl << "Exiting with return value 1." + << endl << endl << flush; + exit(1); + } + +} +@ +@= @; @ diff -Naur 3DLDF-1.1.3/CWEB/parser.web 3DLDF-1.1.4/CWEB/parser.web --- 3DLDF-1.1.3/CWEB/parser.web 2003-11-28 17:50:07.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/parser.web 2003-12-10 16:47:42.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: parser.web,v 1.1 2003/11/28 13:46:54 lfinsto1 Exp $ @> +@q $Id: parser.web,v 1.2 2003/12/10 15:47:41 lfinsto1 Exp $ @> @q * Parsing.@> @** Parsing\quad ({\tt parser\PERIOD web}).\hfil @@ -63,9 +63,15 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @= - +static string rcs_id + = "$Id: parser.web,v 1.2 2003/12/10 15:47:41 lfinsto1 Exp $"; @q * Include files.@> @ Include files. diff -Naur 3DLDF-1.1.3/CWEB/paths.web 3DLDF-1.1.4/CWEB/paths.web --- 3DLDF-1.1.3/CWEB/paths.web 2003-11-28 17:49:05.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/paths.web 2003-12-10 17:10:57.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: paths.web,v 1.2 2003/11/28 15:31:32 lfinsto1 Exp $ @> +@q $Id: paths.web,v 1.3 2003/12/10 16:10:57 lfinsto1 Exp $ @> @q * Path.@> @** Path\quad ({\tt paths\PERIOD web}).\hfil @@ -60,11 +60,17 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @f Path Shape @= - +static string rcs_id + = "$Id: paths.web,v 1.3 2003/12/10 16:10:57 lfinsto1 Exp $"; @q * Include files. @> @* Include files. @@ -3966,27 +3972,68 @@ @q ** Get point.@> @*1 Get point. -@^\cfunc{Path}{get\_point}@> -\initials{LDF 2002.11.05.} Note that |apply_transform()| is not called on the -|Point| that's returned. If it was, |get_point()| couldn't be -|const|. +@q *** non-const version.@> +@*2 non-{\bf const} version. +@^\cfunc{Path}{get\_point}@> \LOG \initials{LDF 2002.11.05.} Made non-|inline|. Changed return value to |const Point&|. + +\initials{LDF 2003.11.28.} +@:BUG FIX@> BUG FIX: Changed, so that |apply_transform()| is +called on the |Point|. This entailed making this function +non-|const|. Added |const| version below. +This may actually be a bug, rather than a bug +fix, depending on how this function is used elsewhere. However, I +really think |apply_transform()| should be called. \ENDLOG @= const Point& -get_point(const unsigned short a) const; +get_point(const unsigned short a); @ @= const Point& +Path::get_point(const unsigned short a) +{ + if (a < points.size()) + { + (points[a])->apply_transform(); + return *points[a]; + } + else + { + cerr << "ERROR! In Path::get_point():\n" + << "Argument is >= size of Path.\n" + << "Returning INVALID_POINT.\n\n" << flush; + return INVALID_POINT; + } +} + +@q *** const version.@> +@*2 {\bf const} version. +@^\cfunc{Path}{get\_point}@> +\LOG +\initials{LDF 2003.11.28.} Added this version. +\ENDLOG + +@= +Point +get_point(const unsigned short a) const; + +@ +@= +Point Path::get_point(const unsigned short a) const { if (a < points.size()) - return *points[a]; + { + Point p = *(points[a]); + p.apply_transform(); + return p; + } else { cerr << "ERROR! In Path::get_point():\n" diff -Naur 3DLDF-1.1.3/CWEB/patterns.web 3DLDF-1.1.4/CWEB/patterns.web --- 3DLDF-1.1.3/CWEB/patterns.web 2003-11-28 17:49:34.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/patterns.web 2003-12-10 17:12:59.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: patterns.web,v 1.1 2003/11/28 13:47:39 lfinsto1 Exp $ @> +@q $Id: patterns.web,v 1.2 2003/12/10 16:12:59 lfinsto1 Exp $ @> @q * Patterns.@> @** Patterns\quad ({\tt patterns\PERIOD web}).\hfil @@ -72,9 +72,17 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @= +static string rcs_id + = "$Id: patterns.web,v 1.2 2003/12/10 16:12:59 lfinsto1 Exp $"; @q * Include files.@> @* Include files. diff -Naur 3DLDF-1.1.3/CWEB/pictures.web 3DLDF-1.1.4/CWEB/pictures.web --- 3DLDF-1.1.3/CWEB/pictures.web 2003-11-28 17:48:52.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/pictures.web 2003-12-10 17:17:07.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: pictures.web,v 1.1 2003/11/28 13:47:46 lfinsto1 Exp $ @> +@q $Id: pictures.web,v 1.2 2003/12/10 16:17:06 lfinsto1 Exp $ @> @q * Picture and Label.@> @** Picture and Label\quad ({\tt pictures\PERIOD web}).\hfil @@ -61,8 +61,15 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @= +static string rcs_id + = "$Id: pictures.web,v 1.2 2003/12/10 16:17:06 lfinsto1 Exp $"; @q * Include files.@> @* Include files. diff -Naur 3DLDF-1.1.3/CWEB/planes.web 3DLDF-1.1.4/CWEB/planes.web --- 3DLDF-1.1.3/CWEB/planes.web 2003-11-28 17:49:03.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/planes.web 2003-12-10 17:18:26.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: planes.web,v 1.1 2003/11/28 13:47:50 lfinsto1 Exp $ @> +@q $Id: planes.web,v 1.2 2003/12/10 16:18:26 lfinsto1 Exp $ @> @q * Plane.@> @** Plane\quad ({\tt planes\PERIOD web}).\hfil @@ -68,9 +68,15 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @= - +static string rcs_id + = "$Id: planes.web,v 1.2 2003/12/10 16:18:26 lfinsto1 Exp $"; @q * Include files.@> @* Include files. diff -Naur 3DLDF-1.1.3/CWEB/points.web 3DLDF-1.1.4/CWEB/points.web --- 3DLDF-1.1.3/CWEB/points.web 2003-11-28 17:48:54.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/points.web 2003-12-10 17:21:48.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: points.web,v 1.1 2003/11/28 13:47:52 lfinsto1 Exp $ @> +@q $Id: points.web,v 1.3 2003/12/10 16:21:48 lfinsto1 Exp $ @> @q * Point.@> @** Point\quad ({\tt points\PERIOD web}).\hfil @@ -71,9 +71,15 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @= - +static string rcs_id + = "$Id: points.web,v 1.3 2003/12/10 16:21:48 lfinsto1 Exp $"; @q * Include files.@> @* Include files. @@ -4491,21 +4497,24 @@ @q ** Mediation.@> @*1 Mediation. -@q LDF 2002.11.06. No CWEB index command is needed for non-class functions.@> -@= -Point mediate(Point p0, Point p1, const real r = .5); +@^\cfunc{Point}{mediate}@> +\LOG +\initials{LDF 2003.12.09.} Changed from a non-member to a |const| +member function. +\ENDLOG +@= +Point +mediate(Point p, const real r = .5) const; @ -@= +@= Point -mediate(Point p0, Point p1, const real r) +Point::mediate(Point p, const real r) const { - p0.apply_transform(); - p1.apply_transform(); - - p0 *= (1 - r); - p1 *= r; - return(p0 + p1); + Point t(*this); + t *= (1 - r); + p *= r; + return(t + p); } @q ** Get normal.@> diff -Naur 3DLDF-1.1.3/CWEB/polygons.web 3DLDF-1.1.4/CWEB/polygons.web --- 3DLDF-1.1.3/CWEB/polygons.web 2003-11-28 17:49:16.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/polygons.web 2003-12-10 17:24:07.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: polygons.web,v 1.1 2003/11/28 13:47:55 lfinsto1 Exp $ @> +@q $Id: polygons.web,v 1.2 2003/12/10 16:24:07 lfinsto1 Exp $ @> @q * Polygon.@> @** Polygon\quad ({\tt polygons\PERIOD web}).\hfil @@ -64,11 +64,17 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @f Polygon Path @= - +static string rcs_id + = "$Id: polygons.web,v 1.2 2003/12/10 16:24:07 lfinsto1 Exp $"; @q * Include files.@> @* Include files. diff -Naur 3DLDF-1.1.3/CWEB/polyhed.web 3DLDF-1.1.4/CWEB/polyhed.web --- 3DLDF-1.1.3/CWEB/polyhed.web 2003-11-28 17:49:51.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/polyhed.web 2003-12-10 17:27:16.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: polyhed.web,v 1.1 2003/11/28 13:47:57 lfinsto1 Exp $ @> +@q $Id: polyhed.web,v 1.3 2003/12/10 16:27:16 lfinsto1 Exp $ @> @q * Polyhedra.@> @** Polyhedra\quad ({\tt polyhedra\PERIOD web}).\hfil @@ -71,9 +71,15 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @= - +static string rcs_id + = "$Id: polyhed.web,v 1.3 2003/12/10 16:27:16 lfinsto1 Exp $"; @q * Include files.@> @* Include files. @@ -312,9 +318,9 @@ pts[7].label(7, ""); #endif - pts[8] = mediate(pts[0], pts[1]); - pts[9] = mediate(pts[1], pts[2]); - pts[10] = mediate(pts[2], pts[0]); + pts[8] = pts[0].mediate(pts[1]); + pts[9] = pts[1].mediate(pts[2]); + pts[10] = pts[2].mediate(pts[0]); #if 0 for (i = 8; i < 11; i++) @@ -380,7 +386,7 @@ @ @= - center = mediate(pts[1], pts[5], distance); + center = pts[1].mediate(pts[5], distance); for (i = 0; i < 4; ++i) reg_polygons[i]->shift(-center); @@ -535,8 +541,8 @@ pts[4] = v[3]->get_point(0); pts[5] = v[3]->get_point(1); - pts[6] = mediate(pts[0], pts[5], .075); - pts[7] = mediate(pts[5], pts[0], .075); + pts[6] = pts[0].mediate(pts[5], .075); + pts[7] = pts[5].mediate(pts[0], .075); pts[8] = pts[6]; pts[9] = pts[7]; @@ -550,8 +556,8 @@ pts[11].rotate(pts[7], pts[9], 110); - pts[10] = mediate(pts[6], pts[10], 1.5); - pts[11] = mediate(pts[7], pts[11], 1.5); + pts[10] = pts[6].mediate(pts[10], 1.5); + pts[11] = pts[7].mediate(pts[11], 1.5); #if 0 for (i = 0; i < 8; i++) @@ -569,8 +575,8 @@ p[0].draw(); - pts[12] = mediate(pts[6], pts[7]); - pts[13] = mediate(pts[10], pts[11]); + pts[12] = pts[6].mediate(pts[7]); + pts[13] = pts[10].mediate(pts[11]); #if 0 pts[12].dotlabel(12); @@ -583,13 +589,13 @@ p[1].draw_help(*Colors::help_color, ""); #endif - pts[14] = mediate(pts[12], pts[13]); + pts[14] = pts[12].mediate(pts[13]); #if 0 pts[14].dotlabel(14); #endif - pts[15] = mediate(pts[6], pts[7], .25); + pts[15] = pts[6].mediate(pts[7], .25); #if 0 pts[15].dotlabel(15); @@ -625,7 +631,7 @@ for (i = 1; i < 16; ++i) { - pts[19] = mediate(pts[17], pts[18], i /16.0); + pts[19] = pts[17].mediate(pts[18], i /16.0); pts[19].drawdot(*Colors::default_color, "pencircle scaled .5mm"); } @@ -643,7 +649,7 @@ p[3].draw(); for (i = 1; i < 16; ++i) { - pts[19] = mediate(pts[20], pts[21], i /16.0); + pts[19] = pts[20].mediate(pts[21], i /16.0); pts[19].drawdot(*Colors::default_color, "pencircle scaled .5mm"); } @@ -656,7 +662,7 @@ p[3].draw(); for (i = 1; i < 16; ++i) { - pts[19] = mediate(pts[20], pts[21], i /16.0); + pts[19] = pts[20].mediate(pts[21], i /16.0); pts[19].drawdot(*Colors::default_color, "pencircle scaled .5mm"); } @@ -670,7 +676,7 @@ p[3].draw(); for (i = 1; i < 16; ++i) { - pts[19] = mediate(pts[20], pts[21], i /16.0); + pts[19] = pts[20].mediate(pts[21], i /16.0); pts[19].drawdot(*Colors::default_color, "pencircle scaled .5mm"); } @@ -692,7 +698,7 @@ p[3].draw(); for (i = 1; i < 16; ++i) { - pts[19] = mediate(pts[20], pts[21], i /16.0); + pts[19] = pts[20].mediate(pts[21], i /16.0); pts[19].drawdot(*Colors::default_color, "pencircle scaled .5mm"); } @@ -708,7 +714,7 @@ p[3].draw(); for (i = 1; i < 16; ++i) { - pts[19] = mediate(pts[20], pts[21], i /16.0); + pts[19] = pts[20].mediate(pts[21], i /16.0); pts[19].drawdot(*Colors::default_color, "pencircle scaled .5mm"); } @@ -909,7 +915,7 @@ Point center_0 = reg_polygons[0]->get_center(); Point center_6 = reg_polygons[6]->get_center(); - center = mediate(center_0, center_6); + center = center_0.mediate(center_6); Transform t = center.shift(-center); @@ -1303,7 +1309,7 @@ - center = mediate(reg_polygons[0]->get_center(), reg_polygons[10]->get_center()); + center = reg_polygons[0]->get_center().mediate(reg_polygons[10]->get_center()); for (i = 0; i < 20; ++i) reg_polygons[i]->shift(-center); @@ -1508,8 +1514,8 @@ pts[2] = v[0]->get_point(2); - pts[3] = mediate(pts[0], pts[1], .1); - pts[4] = mediate(pts[1], pts[0], .1); + pts[3] = pts[0].mediate(pts[1], .1); + pts[4] = pts[1].mediate(pts[0], .1); #if 0 pts[3].dotlabel(2); @@ -1517,8 +1523,8 @@ #endif - pts[5] = mediate(pts[0], pts[3], .1); - pts[6] = mediate(pts[1], pts[4], .1); + pts[5] = pts[0].mediate(pts[3], .1); + pts[6] = pts[1].mediate(pts[4], .1); pts[7] = pts[3]; pts[7].shift(0, 0, 1); @@ -1535,9 +1541,9 @@ pts[6].dotlabel(5); #endif - pts[9] = mediate(pts[5], pts[6], .1); + pts[9] = pts[5].mediate(pts[6], .1); - pts[10] = mediate(pts[6], pts[5], .1); + pts[10] = pts[6].mediate(pts[5], .1); #if 0 pts[9].dotlabel(8); diff -Naur 3DLDF-1.1.3/CWEB/pspglb.web 3DLDF-1.1.4/CWEB/pspglb.web --- 3DLDF-1.1.3/CWEB/pspglb.web 2003-12-01 20:56:32.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/pspglb.web 2003-12-10 17:34:02.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: pspglb.web,v 1.5 2003/12/01 19:56:32 lfinsto1 Exp $ @> +@q $Id: pspglb.web,v 1.10 2003/12/10 16:34:02 lfinsto1 Exp $ @> @q * Global items (pspglb).@> @** Global items\quad ({\tt pspglb\PERIOD web}).\hfil @@ -70,12 +70,13 @@ \ENDLOG @= static string rcs_id - = "$Id: pspglb.web,v 1.5 2003/12/01 19:56:32 lfinsto1 Exp $"; + = "$Id: pspglb.web,v 1.10 2003/12/10 16:34:02 lfinsto1 Exp $"; @q * Include files.@> @* Include files. @= #include "loader.h" +#include @q * Type definitions.@> @* Type definitions. @@ -162,37 +163,83 @@ @= valarray null_coordinates(4); -#ifdef __DECCXX -numeric_limits real_limits; -extern const real INVALID_REAL= real_limits.max(); -extern const real MAX_REAL = INVALID_REAL - .00000003 * INVALID_REAL; -#endif -@ \initials{LDF 2002.12.11.} + +@ |MAX_REAL| is the second largest |real| value on a +little-endian platform where |sizeof(float) == sizeof(unsigned long)| and +|sizeof(double) == sizeof(unsigned long long)|. +The terms +``endianness'', ``big-endian'', and ``little-endian'' refer to the way +in which data is stored in ``words'' in a particular computer +architecture. In a big-endian architecture, the most significant byte +is stored first. \initials{LDF 2003.12.09.} + +@:!! TO DO@> TO DO: Write conditionally compiled code for processors, +where this is not the case! +The endianness of the processor and the value |MAX_REAL| are tested in +\filename{main.web}. If the processor is big-endian, or +|MAX_REAL == INVALID_REAL|, or |INVALID_REAL - MAX_REAL| is greater +than a threshold value (currently |1e35|), 3DLDF will issue an error +message and exit with return value 1. \initials{LDF 2003.12.09.} +\initials{LDF 2003.12.09.} + + +|reinterpret_cast()| is used, because neither |static_cast()| nor +|dynamic_cast()| work. Stroustrup, +{\it The \CPLUSPLUS/ Programming Language}, \S 6.2.7, p.~130, goes +into this. He explicitly mentions that |reinterpret_cast()| +``$\ldots$ generally $\lbrack\ldots\rbrack$ produces a value of a new +type that has the same bit pattern as its argument.'' +\initials{LDF 2003.12.08.} + +The method I'm using now to calculate |MAX_REAL| may fail on systems +that represent floating point numbers differently from the platform +I'm using. LDF 2003.12.08. + + + + @:!! KLUDGE@> !! KLUDGE: Using the macros |FLT_MAX| or |DBL_MAX| because the |numeric_limits| template doesn't seem to be available under GNU/Linux using GCC, at least not on the computer I'm using. +\initials{LDF 2002.12.11.} -\initials{LDF 2002.12.13.} @:!! TO DO@> TO DO: Try to get the binary -representation of a |real| and change the least significant bit in the -part that's not the exponent -@:??@> (the mantissa?). It makes sense that the steps between -a |float| or a |double| and the next largest |float| or |double| -differ depending on the exponent. +\LOG +\initials{LDF 2003.12.08.} +Changed the definition of |MAX_REAL|. Previously, it +was calculated using +|.00000003 * FLT_MAX|, which was a kludge. +\ENDLOG @= -#ifdef __GNUC__ -#if LDF_REAL_FLOAT -extern const real INVALID_REAL= FLT_MAX; -extern const real MAX_REAL = FLT_MAX - .00000003 * FLT_MAX; -#elif LDF_REAL_DOUBLE -extern const real INVALID_REAL= DBL_MAX; -extern const real MAX_REAL = DBL_MAX - .00000003 * DBL_MAX; +#ifdef __DECCXX +numeric_limits real_limits; +extern const real INVALID_REAL= real_limits.max(); #else -extern const real INVALID_REAL= FLT_MAX; -extern const real MAX_REAL = FLT_MAX - .00000003 * FLT_MAX; +#if LDF_REAL_DOUBLE +extern const real INVALID_REAL= DBL_MAX; +#else /* |LDF_REAL_FLOAT|, or not specified. LDF 2003.12.08. */ +extern const real INVALID_REAL = FLT_MAX; #endif #endif + +#if LDF_REAL_DOUBLE +real d = INVALID_REAL; +real *dp = &d; +unsigned long long* ip = reinterpret_cast(dp); +unsigned long long i = (*ip) -= 1; +bitset<8*sizeof(unsigned long long)> b = i; +extern const real MAX_REAL = *(reinterpret_cast(&i)); + +#else /* |LDF_REAL_FLOAT|, or not specified. LDF 2003.12.08. */ +real f = INVALID_REAL; +real *fp = &f; +unsigned long* ip = reinterpret_cast(fp); +unsigned long i = (*ip) -= 1; +bitset<8*sizeof(unsigned long)> b = i; +extern const real MAX_REAL = *(reinterpret_cast(&i)); + +#endif @ \initials{LDF 2003.08.14.} |VERBOSE_GLOBAL| is |false| by default. It is set to |true| by the command line option ``{\tt --verbose}''. @@ -215,12 +262,12 @@ \initials{LDF 2003.08.14.} Added |VERSION_3DLDF| and |COPYRIGHT_3DLDF|. \ENDLOG @= -extern const string VERSION_3DLDF = "1.1.3"; +extern const string VERSION_3DLDF = "1.1.4"; extern const string COPYRIGHT_3DLDF = "Copyright (C) 2003 by Laurence D. Finston."; extern const string DISCLAIMER_3DLDF = "3DLDF comes with ABSOLUTELY NO WARRANTY;\n\ for details see the file COPYING,\n\ which you should have received\n\ -in the distribution of 3DLDF 1.1.3\n\ +in the distribution of 3DLDF 1.1.4\n\ This is free software, and you are welcome\n\ to redistribute it under certain conditions;\n\ for details, again, see the file COPYING.\n\n\ diff -Naur 3DLDF-1.1.3/CWEB/rectangs.web 3DLDF-1.1.4/CWEB/rectangs.web --- 3DLDF-1.1.3/CWEB/rectangs.web 2003-11-28 17:49:20.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/rectangs.web 2003-12-10 17:36:58.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: rectangs.web,v 1.1 2003/11/28 13:48:02 lfinsto1 Exp $ @> +@q $Id: rectangs.web,v 1.3 2003/12/10 16:36:58 lfinsto1 Exp $ @> @q * Rectangle.@> @** Rectangle\quad ({\tt rectangles\PERIOD web}).\hfil @@ -68,11 +68,17 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @f Rectangle Reg_Polygon @= - +static string rcs_id + = "$Id: rectangs.web,v 1.3 2003/12/10 16:36:58 lfinsto1 Exp $"; @q * Include files.@> @* Include files. @@ -256,7 +262,7 @@ line_switch = false; cycle_switch = true; - center = mediate(pt0, pt2); + center = pt0.mediate(pt2); axis_h = (pt1 - pt0).magnitude(); axis_v = (pt2 - pt1).magnitude(); @@ -386,6 +392,50 @@ deriving |Rectangle| from |Path| now, and not from |Reg_Polygon|. \ENDLOG +@q ** Is rectangular.@> +@*1 Is rectangular. +@^\cfunc{Rectangle}{is\_rectangular}@> +|is_rectangular()| tests whether a |Rectangle| is rectangular. +It first tests if the |Rectangle| is planar. Then it +creates vectors from the points on the |Rectangle|, and checks their +angles to one another. If they are within |Point::epsilon()| +(exclusive) of $180^\circ$ in one case, and +$90^\circ$ in the other two, |is_rectangular()| returns 1, +otherwise 0. \initials{LDF 2003.12.02.} + +\LOG +\initials{LDF 2003.11.28.} Added this function. + +\initials{LDF 2003.12.02.} Added test of planarity at beginning of +function. + +\initials{LDF 2003.12.09.} Now using |cross_product()| to test for +parallelity of the sides. @:!! TO DO@> TO DO: Add +|Path::is_parallel()| and a version for |Points|. +\ENDLOG +@= +bool +is_rectangular() const; + +@ +@= +bool +Rectangle::is_rectangular() const +{ + + if (!is_planar()) + return false; + + Point a = (get_point(1) - get_point(0)); + Point b = (get_point(2) - get_point(3)); + Point c = (get_point(3) - get_point(0)); + Point d = (get_point(2) - get_point(1)); + +return (a.cross_product(b) == origin && + c.cross_product(d) == origin && + fabs(fabs(a.angle(d)) - 90) < Point::epsilon()); +} + @q ** Returning |Points|.@> @*1 Returning {\bf Points}. \LOG @@ -460,7 +510,7 @@ p0 = *points[c]; p1 = (c < 3) ? *points[c + 1] : *points[0]; - return mediate(p0, p1); + return p0.mediate(p1); } diff -Naur 3DLDF-1.1.3/CWEB/shapes.web 3DLDF-1.1.4/CWEB/shapes.web --- 3DLDF-1.1.3/CWEB/shapes.web 2003-11-28 17:48:50.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/shapes.web 2003-12-10 17:44:36.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: shapes.web,v 1.1 2003/11/28 13:48:04 lfinsto1 Exp $ @> +@q $Id: shapes.web,v 1.2 2003/12/10 16:44:36 lfinsto1 Exp $ @> @q ** Shape.@> @** Shape\quad ({\tt shapes\PERIOD web}). \hfil @@ -66,9 +66,15 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @= - +static string rcs_id + = "$Id: shapes.web,v 1.2 2003/12/10 16:44:36 lfinsto1 Exp $"; @q * Include files.@> @* Include files. diff -Naur 3DLDF-1.1.3/CWEB/solfaced.web 3DLDF-1.1.4/CWEB/solfaced.web --- 3DLDF-1.1.3/CWEB/solfaced.web 2003-11-28 17:49:46.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/solfaced.web 2003-12-10 17:45:17.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: solfaced.web,v 1.1 2003/11/28 13:48:06 lfinsto1 Exp $ @> +@q $Id: solfaced.web,v 1.2 2003/12/10 16:45:17 lfinsto1 Exp $ @> @q * Solid_Faced.@> @** Solid\_Faced\quad ({\tt solfaced\PERIOD web}).\hfil @@ -62,9 +62,15 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @= - +static string rcs_id + = "$Id: solfaced.web,v 1.2 2003/12/10 16:45:17 lfinsto1 Exp $"; @q * Include files.@> @* Include files. diff -Naur 3DLDF-1.1.3/CWEB/solids.web 3DLDF-1.1.4/CWEB/solids.web --- 3DLDF-1.1.3/CWEB/solids.web 2003-11-28 17:49:38.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/solids.web 2003-12-10 17:46:34.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: solids.web,v 1.1 2003/11/28 13:48:08 lfinsto1 Exp $ @> +@q $Id: solids.web,v 1.2 2003/12/10 16:46:34 lfinsto1 Exp $ @> @q * Solid.@> @** Solid\quad ({\tt solids\PERIOD web}).\hfil @@ -65,10 +65,16 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @= - +static string rcs_id + = "$Id: solids.web,v 1.2 2003/12/10 16:46:34 lfinsto1 Exp $"; @q * Include files.@> @* Include files. diff -Naur 3DLDF-1.1.3/CWEB/transfor.web 3DLDF-1.1.4/CWEB/transfor.web --- 3DLDF-1.1.3/CWEB/transfor.web 2003-11-28 17:48:48.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/transfor.web 2003-12-10 17:52:21.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: transfor.web,v 1.2 2003/11/28 15:47:33 lfinsto1 Exp $ @> +@q $Id: transfor.web,v 1.3 2003/12/10 16:52:21 lfinsto1 Exp $ @> @q * Transformations.@> @** Transformations\quad ({\tt transform\PERIOD web}).\hfil @@ -61,9 +61,15 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @= - +static string rcs_id + = "$Id: transfor.web,v 1.3 2003/12/10 16:52:21 lfinsto1 Exp $"; @q * Include files. @> @* Include files. diff -Naur 3DLDF-1.1.3/CWEB/tsthdweb 3DLDF-1.1.4/CWEB/tsthdweb --- 3DLDF-1.1.3/CWEB/tsthdweb 2003-12-01 21:21:23.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/tsthdweb 2003-12-10 17:56:19.000000000 +0100 @@ -30,7 +30,7 @@ # lfinsto1@gwdg.de # s246794@stud.uni-goettingen.de -# $Id: tsthdweb,v 1.4 2003/12/01 18:38:18 lfinsto1 Exp $ +# $Id: tsthdweb,v 1.6 2003/12/10 16:56:19 lfinsto1 Exp $ ## tsthdweb is a shell script that compares to files with the same ## name and different extensions using diff. It is used for comparing @@ -41,7 +41,7 @@ ## First argument: Filename without extension. - + ## Second Argument: 0 --- C++ and header files. # 1 --- C++ file only (main.web). # 2 --- Header file only (loader.web). @@ -67,6 +67,16 @@ fi file_a=$1.cxx file_b=$1.c + + +## This is just for insurance. I don't think .c will ever fail to exist. +## LDF 2003.12.03. + if test ! -e $file_b + then + echo "$file_b doesn't exist. Ctangling $1.web." + $3 $1.web + fi + if test ! -e $file_a then echo "$file_a doesn't exist. Renaming $file_b to $file_a, " @@ -81,6 +91,15 @@ then file_c=$1.h file_d=$1.hbk + +## This is just for insurance. I don't think .h will ever fail to exist. +## LDF 2003.12.03. + if test ! -e $file_c + then + echo "$file_c doesn't exist. Ctangling $1.web." + $3 $1.web + fi + if test ! -e $file_d then echo "$file_d doesn't exist. Touching $1.tim and exiting tsthdweb." @@ -145,13 +164,14 @@ fi echo "You will have to revert the buffer of $1.web" echo "if you're currently, working on it, because this changes it on disk." -elif test $cxx_changed -eq 0 && test $header_changed -eq 1 - then - echo "Setting timestamp of $1.tmw to that of $1.tim." - touch $1.tmw --reference=$1.tim -elif test $cxx_changed -eq 1 && test $header_changed -eq 0 - then - echo "Setting timestamp of $1.tim to that of $1.tmw." +#### This caused a problem, and I don't think I need it. LDF 2003.12.09. +# elif test $cxx_changed -eq 0 && test $header_changed -eq 1 +# then +# echo "Setting timestamp of $1.tmw to that of $1.tim." +# touch $1.tmw --reference=$1.tim +# elif test $cxx_changed -eq 1 && test $header_changed -eq 0 +# then +# echo "Setting timestamp of $1.tim to that of $1.tmw." fi diff -Naur 3DLDF-1.1.3/CWEB/utility.web 3DLDF-1.1.4/CWEB/utility.web --- 3DLDF-1.1.3/CWEB/utility.web 2003-11-28 17:49:58.000000000 +0100 +++ 3DLDF-1.1.4/CWEB/utility.web 2003-12-10 17:57:28.000000000 +0100 @@ -52,7 +52,7 @@ @q s246794@@stud.uni-goettingen.de @> -@q $Id: utility.web,v 1.1 2003/11/28 13:48:50 lfinsto1 Exp $ @> +@q $Id: utility.web,v 1.2 2003/12/10 16:57:28 lfinsto1 Exp $ @> @q * Utility functions.@> @** Utility functions\quad ({\tt utility\PERIOD web}).\hfil @@ -68,8 +68,16 @@ \initials{LDF 2003.11.12.} Removed the version control identifiers from the CWEB files for the distribution of 3DLDF 1.1. They're still used in my development versions. + +\initials{LDF 2003.12.10.} Put the version control identifiers back +into my release versions for 3DLDF 1.1.4. I've already put some of +them back in, now I'm doing the rest of them. However, the release +versions are now in their own RCS repository. \ENDLOG @= +static string rcs_id + = "$Id: utility.web,v 1.2 2003/12/10 16:57:28 lfinsto1 Exp $"; + @q * Include files.@> @* Include files. diff -Naur 3DLDF-1.1.3/ChangeLog 3DLDF-1.1.4/ChangeLog --- 3DLDF-1.1.3/ChangeLog 2003-12-01 21:43:21.000000000 +0100 +++ 3DLDF-1.1.4/ChangeLog 2003-12-10 18:34:16.000000000 +0100 @@ -1,3 +1,58 @@ +2003-12-10 Laurence Finston + + * NEWS: LDF 2003.12.10. + Added items for version 1.1.4. + + * README: LDF 2003.12.10. + Changed information about downloading. + +2003-12-09 Laurence Finston + + * AUTHORS, INSTALL: LDF 2003.12.09. + Moved the RCS Id. + + * INSTALL: LDF 2003.12.09. + Changed version number from `1.1.3' to `1.1.4'. + + * README: LDF 2003.12.09. + Changed version number from `1.1.3' to `1.1.4'. Revised what I say about + generating an Info version of the _3DLDF User and Reference Manual_. It is + now possible. It is also possible to generate an HTML version. + + * configure.ac: LDF 2003.12.09. + Moved RCS Id. + Changed version number to `1.1.4'. + + * Makefile.am: LDF 2003.12.09. + Moved RCS Id. + + * configure.ac: LDF 2003.12.09. + Added check for endianness using `AC_C_BIGENDIAN'. + +2003-12-04 Laurence Finston + + * README: LDF 2003.12.04. + Added note, that GNU site for downloading not yet available. + + Divided into pages, using Control-L characters. + + Made changes reflecting the fact that \filename{3DLDF.info} can + now be generated. + + Added information about building. + + Added text about reverting buffers using Emacs-Lisp defuns. + + Added information about ChangeLog files and .rcsfreeze.log files. + +2003-12-03 Laurence Finston + + * Makefile.am: LDF 2003.12.03. + Got rid of the phony `info' and `info-recursive' targets, because I've got + my Texinfo documentation to work properly with `make info'. + + Added Emacs ``Local Variables'' list, that sets mode to `Makefile'. + 2003-12-01 Laurence Finston * Makefile.am: LDF 2003.12.01. diff -Naur 3DLDF-1.1.3/DOC/.rcsfreeze.log 3DLDF-1.1.4/DOC/.rcsfreeze.log --- 3DLDF-1.1.3/DOC/.rcsfreeze.log 2003-12-01 21:46:44.000000000 +0100 +++ 3DLDF-1.1.4/DOC/.rcsfreeze.log 2003-12-10 18:38:15.000000000 +0100 @@ -1,3 +1,14 @@ +Version: C_3(C_3), Date: Wed Dec 10 18:38:08 MET 2003 +----------- + Release 1.1.4. +----------- + +Version: C_2(C_2), Date: Tue Dec 9 20:43:18 MET 2003 +----------- + About to merge changes in my development and release directories, before + I make release 1.1.4. +----------- + Version: RELEASE_1_1_3(C_1), Date: Mon Dec 1 21:46:38 MET 2003 ----------- Configuration for 3DLDF 1.1.3. Fixed bugs in 3DLDF-1.1.3/CWEB/Makefile.am diff -Naur 3DLDF-1.1.3/DOC/ChangeLog 3DLDF-1.1.4/DOC/ChangeLog --- 3DLDF-1.1.3/DOC/ChangeLog 2003-12-01 21:46:16.000000000 +0100 +++ 3DLDF-1.1.4/DOC/ChangeLog 2003-12-10 18:34:32.000000000 +0100 @@ -1,3 +1,22 @@ +2003-12-10 Laurence Finston + + * Makefile.am: LDF 2003.12.10. + Changed version number from `1.1.3' to `1.1.4'. + +2003-12-04 Laurence Finston + + * Makefile.am: LDF 2003.12.04. + Removed phony `clean' and `mostlyclean' targets. The targets + automatically generated by Automake now work. + +2003-12-03 Laurence Finston + + * Makefile.am: LDF 2003.12.03. + Got rid of the phony `info' and `info-recursive' targets, because I've got + my Texinfo documentation to work properly with `make info'. + + Added Emacs ``Local Variables'' list, that sets mode to `Makefile'. + 2003-12-01 Laurence Finston * Makefile.am: LDF 2003.12.01. diff -Naur 3DLDF-1.1.3/DOC/Makefile.am 3DLDF-1.1.4/DOC/Makefile.am --- 3DLDF-1.1.3/DOC/Makefile.am 2003-12-01 22:01:30.000000000 +0100 +++ 3DLDF-1.1.4/DOC/Makefile.am 2003-12-10 18:03:03.000000000 +0100 @@ -1,5 +1,5 @@ -## 3DLDF-1.1.3/DOC/Makefile.am - +## 3DLDF-1.1.4/DOC/Makefile.am + # This file is part of 3DLDF, a package for three-dimensional drawing. # Copyright (C) 2003 Laurence D. Finston. @@ -28,7 +28,7 @@ # s246794@stud.uni-goettingen.de -# $Id: Makefile.am,v 1.4 2003/12/01 20:46:02 lfinsto1 Exp $ +# $Id: Makefile.am,v 1.7 2003/12/10 17:03:03 lfinsto1 Exp $ TEXINFODIR := TEXINFO @@ -36,34 +36,10 @@ EXTRA_DIST = .rcsfreeze.log - -# It's not necessary to call `$(MAKE) clean -C $(DOCIR)' and -# `$(MAKE) clean -C $(CWEBDIR)', because `make clean' is called in the -# subdirectories automatically. My commands are simply added, they -# don't override the default `clean' target. However, the latter -# doesn't apparently do any harm. LDF 2003.11.17. -.PHONY: clean -clean : - echo "This is my clean in DOC." - -.PHONY: mostlyclean -mostlyclean : - echo "This is my mostlyclean in DOC." - .PHONY : dummy dummy: echo "distdir = $(distdir)" - -.PHONY: info -info: - @echo "info in DOC/Makefile.am." - -.PHONY: info-recursive -info-recursive: - @echo "info-recursive in DOC/Makefile.am." - - ps : $(MAKE) ps -C $(TEXINFODIR) @@ -73,3 +49,7 @@ TAGS: $(MAKE) TAGS -C $(TEXINFODIR) + +## Local Variables: +## mode:Makefile +## End: diff -Naur 3DLDF-1.1.3/DOC/Makefile.in 3DLDF-1.1.4/DOC/Makefile.in --- 3DLDF-1.1.3/DOC/Makefile.in 2003-12-01 22:05:23.000000000 +0100 +++ 3DLDF-1.1.4/DOC/Makefile.in 2003-12-10 18:41:53.000000000 +0100 @@ -41,7 +41,7 @@ # lfinsto1@gwdg.de # s246794@stud.uni-goettingen.de -# $Id: Makefile.am,v 1.4 2003/12/01 20:46:02 lfinsto1 Exp $ +# $Id: Makefile.am,v 1.7 2003/12/10 17:03:03 lfinsto1 Exp $ srcdir = @srcdir@ top_srcdir = @top_srcdir@ @@ -401,31 +401,10 @@ uninstall-info-am uninstall-info-recursive uninstall-recursive -# It's not necessary to call `$(MAKE) clean -C $(DOCIR)' and -# `$(MAKE) clean -C $(CWEBDIR)', because `make clean' is called in the -# subdirectories automatically. My commands are simply added, they -# don't override the default `clean' target. However, the latter -# doesn't apparently do any harm. LDF 2003.11.17. -.PHONY: clean -clean : - echo "This is my clean in DOC." - -.PHONY: mostlyclean -mostlyclean : - echo "This is my mostlyclean in DOC." - .PHONY : dummy dummy: echo "distdir = $(distdir)" -.PHONY: info -info: - @echo "info in DOC/Makefile.am." - -.PHONY: info-recursive -info-recursive: - @echo "info-recursive in DOC/Makefile.am." - ps : $(MAKE) ps -C $(TEXINFODIR) diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/.rcsfreeze.log 3DLDF-1.1.4/DOC/TEXINFO/.rcsfreeze.log --- 3DLDF-1.1.3/DOC/TEXINFO/.rcsfreeze.log 2003-12-01 21:47:49.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/.rcsfreeze.log 2003-12-10 18:38:28.000000000 +0100 @@ -1,3 +1,14 @@ +Version: C_4(C_4), Date: Wed Dec 10 18:38:24 MET 2003 +----------- + Release 1.1.4. +----------- + +Version: C_3(C_3), Date: Tue Dec 9 20:43:27 MET 2003 +----------- + About to merge changes in my development and release directories, before + I make release 1.1.4. +----------- + Version: RELEASE_1_1_3(C_2), Date: Mon Dec 1 21:47:43 MET 2003 ----------- Configuration for 3DLDF 1.1.3. Fixed bugs in 3DLDF-1.1.3/CWEB/Makefile.am diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info 2003-12-01 21:53:40.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info 2003-12-10 18:44:55.000000000 +0100 @@ -1,1210 +1,353 @@ This is 3DLDF.info, produced by makeinfo version 4.5 from 3DLDF.texi. +This is the 3DLDF User and Reference Manual, edition 1.1.4 for 3DLDF +1.1.4. This manual was last updated on 10 December 2003. 3DLDF is a +GNU package for three-dimensional drawing with MetaPost output. The +author is Laurence D. Finston. + + Copyright (C) 2003 Laurence D. Finston. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, and + no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License". + INFO-DIR-SECTION GNU packages START-INFO-DIR-ENTRY * 3DLDF: (3DLDF). 3D drawing with MetaPost output. END-INFO-DIR-ENTRY - 3DLDF User and Reference Manual 3-dimensional drawing with MetaPost -output. Manual edition 1.1.3 for 3DLDF Version 1.1.3 December 2003 -Author: Laurence D. Finston 1 December 2003, Author: Laurence D. -Finston. - - Copyright 2003 Laurence D. Finston. Permission is granted to copy, -distribute and/or modify this document under the terms of the GNU Free -Documentation License, Version 1.2 or any later version published by -the Free Software Foundation; with no Invariant Sections, no -Front-Cover Texts, and no Back-Cover Texts. A copy of the license is -included in the section entitled "GNU Free Documentation License". - - -File: 3DLDF.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) - -* Menu: - -* Introduction:: -* Contributing to 3DLDF:: -* Using 3DLDF:: -* Intersections:: -* Installing and Running 3DLDF:: -* Typedefs and Utility Structures:: -* Color Reference:: -* Input and Output:: -* Shape Reference:: -* Transform Reference:: -* Label Reference:: -* Picture Reference:: -* Point Reference:: -* Focus Reference:: -* Line Reference:: -* Plane Reference:: -* Path Reference:: -* Polygon Reference:: -* Rectangle Reference:: -* Regular Closed Plane Curve Reference:: -* Ellipse Reference:: -* Circle Reference:: -* Pattern Reference:: -* Solid Reference:: -* Faced Solid Reference:: -* Cuboid Reference:: -* Polyhedron Reference:: -* Utility Functions:: -* Adding a File:: -* Future Plans:: -* Changes:: -* Bibliography:: -* GNU Free Documentation License:: -* Data Type and Variable Index:: -* Function Index:: -* Concept Index:: - - - - - -Introduction - -* Sources of Information:: -* About This Manual:: -* CWEB Documentation:: -* Metafont and MetaPost:: -* Caveats:: -* Ports:: - -About This Manual - -* Manual Conventions:: -* Illustrations:: - -Caveats - -* Accuracy:: -* No Input Routine:: - -Installing and Running 3DLDF - -* Installing 3DLDF:: -* Running 3DLDF:: - -Running 3DLDF - -* Command Line Arguments:: - -Color Reference - -* Color Data Members:: -* Color Constructors and Setting Functions:: -* Color Operators:: -* Modifying Colors:: -* Showing Colors:: -* Querying Colors:: -* Defining and Initializing Colors:: -* Namespace Colors:: - -Input and Output - -* I/O Global Variables:: -* I/O Functions:: - -Shape Reference - -* Shape Data Members:: -* Shape Operators:: -* Copying Shapes:: -* Modifying Shapes:: -* Affine Transformations for Shapes:: -* Applying Transformations to Shapes:: -* Clearing Shapes:: -* Querying Shapes:: -* Showing Shapes:: -* Outputting Shapes:: - -Transform Reference - -* Transform Data Members:: -* Transform Global Variables and Constants:: -* Transform Constructors :: -* Transform Operators:: -* Matrix Inversion:: -* Setting Values Transforms:: -* Querying Transforms:: -* Returning Information for Transforms:: -* Showing Transforms:: -* Affine Transformations for Transforms:: -* Alignment with an Axis for Transforms:: -* Resetting Transforms:: -* Cleaning Transforms:: - -Label Reference - -* Label Data Members:: -* Copying Labels:: -* Outputting Labels:: - -Picture Reference - -* Picture Data Members:: -* Picture Global Variables:: -* Picture Constructors:: -* Picture Operators:: -* Affine Transformations for Pictures:: -* Modifying Pictures:: -* Showing Pictures:: -* Outputting Pictures:: - -Outputting - -* Picture Output Namespaces:: -* Picture Output Functions:: - -Namespaces - -* Namespace Projections:: -* Namespace Sorting:: - -Point Reference - -* Point Data Members:: -* Point Typedefs and Utility Structures:: -* Point Global Constants and Variables:: -* Point Constructors and Setting Functions:: -* Point Destructor:: -* Point Operators:: -* Copying Points:: -* Querying Points:: -* Returning Coordinates:: -* Returning Information for Points:: -* Modifying Points:: -* Affine Transformations for Points:: -* Applying Transformations to Points:: -* Projecting Points:: -* Vector Operations:: -* Points and Lines:: -* Point Intersections:: -* Point Drawing Functions:: -* Labelling Points:: -* Showing Points:: -* Outputting Points:: - -Focus Reference - -* Focus Data Members:: -* Focus Global Variables:: -* Focus Constructors and Setting Functions:: -* Focus Operators:: -* Modifying Focuses:: -* Querying Focuses:: -* Showing Focuses:: - -Line Reference - -* Line Data Members:: -* Line Global Constants:: -* Line Constructors:: -* Line Operators:: -* Get Path:: -* Showing:: - -Plane Reference - -* Planes Data Members:: -* Planes Global Constants:: -* Planes Constructors:: -* Planes Operators:: -* Planes Returning Information:: -* Plane Intersections:: -* Planes Showing:: - -Path Reference - -* Path Data Members:: -* Path Constructors and Setting Functions:: -* Path Destructor:: -* Path Operators:: -* Appending to Paths :: -* Copying Paths:: -* Clearing Paths :: -* Modifying Paths :: -* Affine Transformations for Paths:: -* Aligning Paths with an Axis:: -* Applying Transformations to Paths:: -* Drawing and Filling Paths:: -* Labelling Paths:: -* Showing Paths:: -* Querying Paths:: -* Outputting Paths:: -* Path Intersections:: - -Polygon Reference - -* Polygon Data Members:: -* Polygon Operators:: -* Querying Polygons:: -* Affine Transformations for Polygons:: -* Polygon Intersections:: - -Regular Polygon Reference - -* Regular Polygon Data Members:: -* Regular Polygon Constructors and Setting Functions:: -* Regular Polygon Operators:: -* Querying Regular Polygons:: -* Circles for Regular Polygons:: - -Rectangle Reference - -* Rectangle Data Members:: -* Rectangle Constructors and Setting Functions:: -* Rectangle Operators:: -* Returning Points for Rectangles:: -* Querying Rectangles:: -* Ellipses for Rectangles:: - -Regular Closed Plane Curve Reference - -* Regular Closed Plane Curve Data Members:: -* Querying Regular Closed Plane Curves:: -* Regular Closed Plane Curve Intersections:: -* Regular Closed Plane Curve Segments:: - -Ellipse Reference - -* Ellipse Data Members:: -* Ellipse Constructors and Setting Functions:: -* Performing Transformations on Ellipses:: -* Ellipse Operators:: -* Labeling Ellipses:: -* Affine Transformations for Ellipses:: -* Querying Ellipses:: -* Returning Elements and Information for Ellipses:: -* Solving Ellipses:: -* Rectangles for Ellipses:: - -Circle Reference - -* Circle Data Members:: -* Circle Constructors and Setting Functions:: -* Circle Operators:: -* Querying Circles:: -* Circle Intersections:: - -Pattern Reference - -* Plane Tesselations:: -* Roulettes and Involutes:: - -Roulettes and Involutes - -* Epicycloids:: - -Solid Reference - -* Solid Data Members:: -* Solid Constructors and Setting Functions:: -* Solid Destructor:: -* Solid Operators:: -* Copying Solids:: -* Setting Solid Members:: -* Querying Solids:: -* Returning Elements and Information Solids:: -* Showing Solids:: -* Affine Transformations for Solids:: -* Applying Transformations to Solids:: -* Outputting Solids:: -* Drawing and Filling Solids:: -* Clearing Solids:: - -Returning Elements and Information - -* Getting Shape Centers Solids:: -* Getting Shapes Solids:: - -Faced Solid Reference - -* Solid_Faced Data Members:: - -Cuboid Reference - -* Cuboid Data Members:: -* Cuboid Constructors and Setting Functions:: -* Cuboid Operators:: - -Polyhedron Reference - -* Polyhedron Data Members:: -* Regular Platonic Polyhedra:: -* Semi-Regular Archimedean Polyhedra:: - -Regular Platonic Polyhedra - -* Tetrahedron:: -* Dodecahedron:: -* Icosahedron:: - -Tetrahedron - -* Tetrahedron Data Members:: -* Tetrahedron Constructors and Setting Functions:: -* Tetrahedron Net:: - -Dodecahedron - -* Dodecahedron Data Members:: -* Dodecahedron Constructors and Setting Functions:: -* Dodecahedron Net:: - -Icosahedron - -* Icosahedron Data Members:: -* Icosahedron Constructors and Setting Functions:: -* Icosahedron Net:: - -Semi-Regular Archimedean Polyhedra - -* Truncated Octahedron (Trunc_Octahedron):: - -Truncated Octahedron (Trunc_Octahedron) - -* Trunc_Octahedron Data Members:: -* Trunc_Octahedron Net:: - -Utility Functions - -* Perspective Functions:: - - - - - -File: 3DLDF.info, Node: Introduction, Next: Contributing to 3DLDF, Prev: Top, Up: Top - -Introduction -************ - - 3DLDF is a free software package for three-dimensional drawing -written by Laurence D. Finston, who is also the author of this manual. -It is written in using CWEB and it outputs MetaPost code. - - 3DLDF is a GNU package. It is part of the GNU Project of the Free -Software Foundation and is published under the GNU General Public -License. See the website `http://www.gnu.org' for more information. -3DLDF is available for downloading from `http://ftp.gnu.org/gnu/3DLDF'. -The official 3DLDF website is `http://www.gnu.org/software/3DLDF'. - - Please send bug reports to: - - and - - Two other mailing lists may be of interest to users of 3DLDF: - is for people to ask other users for help and - is for sending announcements to users. To -subscribe, send an email to the appropriate mailing list or lists with -the word "subscribe" as the subject. The author's website is -`http://wwwuser.gwdg.de/~lfinsto1'. - - My primary purpose in writing 3DLDF was to make it possible to use -MetaPost for three-dimensional drawing. I've always enjoyed using -MetaPost, and thought it was a shame that I could only use it for making -two-dimensional drawings. 3DLDF is a front-end that operates on -three-dimensional data, performs the necessary calculations for the -projection onto two dimensions, and writes its output in the form of -MetaPost code. - - While 3DLDF's data types and operations are modelled on those of -Metafont and MetaPost, and while the only form of output 3DLDF currently -produces is MetaPost code, it is nonetheless not in principle tied to -MetaPost. It could be modified to produce PostScript code directly, or -output in other formats. It would also be possible to modify 3DLDF so -that it could be used for creating graphics interactively on a terminal, -by means of an appropriate interface to the computer's graphics -hardware. - - The name "3DLDF" ("3D" plus the author's initials) was chosen -because, while not pretty, it's unlikely to conflict with any of the -other programs called "3D"-something. - -* Menu: - -* Sources of Information:: -* About This Manual:: -* CWEB Documentation:: -* Metafont and MetaPost:: -* Caveats:: -* Ports:: - - -File: 3DLDF.info, Node: Sources of Information, Next: About This Manual, Prev: Introduction, Up: Introduction - -Sources of Information -====================== - - This handbook, and the use of 3DLDF itself, presuppose at least some -familiarity on the part of the reader with Metafont, MetaPost, CWEB, -and . If you are not familiar with any or all of them, I recommend -the following sources of information: - - The manuals for MetaPost and CWEB are available from the -Comprehensive TeX Archive Network (CTAN). See one of the following web -sites for more information: - -Germany - `http://dante.ctan.org', `http://ftp.dante.de' - `http://www.dante.de'. - -United Kingdom - `http://www.cam.ctan.org' - `http://ftp.tex.ac.uk'. - -USA - `http://www.tug.ctan.org' - `http://www.ctan.tug.org'. - - -File: 3DLDF.info, Node: About This Manual, Next: CWEB Documentation, Prev: Sources of Information, Up: Introduction - -About This Manual -================= - - This manual has been created using Texinfo, a documentation system -which is part of the GNU Project, whose main sponsor is the Free -Software Foundation. - - For more information about Texinfo, see: - - For more information about the GNU Project and the Free Software -Foundation, see the following web site: `http://www.gnu.org'. - - Texinfo can be used to generate online and printed documentation from -the same input files. This manual is currently designed for printing -_only_. It contains a large amount of TeX text, including the -illustrations, which would be lost if the input files were used to -generate an online version of this manual in its current form. I plan -to make the changes necessary in order to make it possible to generate -online documentation in the not-too-distant future. - - The edition of this manual is 1.1.3 and it documents version 1.1.3 -of 3DLDF. The edition number of the manual and the version number of -the program are the same (as of 1 December 2003), but may diverge at a -later date. - - Note that "I", "me", etc., in this manual refers to Laurence D. -Finston, so far the sole author of both 3DLDF and this manual. -"Currently" and similar formulations refer to version 1.1.3 of 3DLDF as -of 1 December 2003. - - This manual is intended for both beginning and advanced users of -3DLDF. So, if there's something you don't understand, it's probably -best to skip it and come back to it later. Some of the more difficult -points, or ones that presuppose familiarity with features not yet -described, are in the footnotes. - - I firmly believe that an adequate program with good documentation is -more useful than a great program with poor or no documentation. The -ideal case, of course, is a great program with great documentation. I'm -sorry to say, that this manual is not yet as good as I'd like it to be. -I apologize for the number of typos and other errors. I hope they don't -detract too much from its usefulness. I would have liked to have -proofread and corrected it again before publication, but for reasons -external to 3DLDF, it is necessary for me to publish now. I plan to set -up an errata list on the official 3DLDF website -(http://www.gnu.org/software/3DLDF). - - Unless I've left anything out by mistake, this manual documents all -of the data types, constants and variables, namespaces, and functions -defined in 3DLDF. However, some of the descriptions are terser than I -would like, and I'd like to have more examples and illustrations. There -is also more to be said on a number of topics touched on in this -manual, and some topics I haven't touched on at all. In general, while -I've tried to give complete information on the "what and how", the "why -and wherefore" has sometimes gotten short shrift. I hope to correct -these defects in future editions. - -* Menu: - -* Manual Conventions:: -* Illustrations:: - - -File: 3DLDF.info, Node: Manual Conventions, Next: Illustrations, Prev: About This Manual, Up: About This Manual - -Conventions ------------ - - Data types are formatted like this: `int', `Point', `Path'. -Plurals are formatted in the same way: `ints', `Points', `Paths'. It -is poor typographical practice to typeset a single word using more than -one font, e.g., `int's, `Point's, `Path's. This applies to data types -whose plurals do not end in "s" as well, e.g., the plural of the -`class Polyhedron' is `Polyhedra'. - - When functions are discussed in this manual, I always include a -pair of parentheses to make it clear that the item in question is a -function and not a variable, but I generally do not include the -arguments. For example, if I mention the function `foo()', this -doesn't imply that `foo()' takes no arguments. If it were appropriate, -I would include the argument type: - - foo(int) - -or the argument type and a placeholder name: - - foo(int arg) - -or I would write - - foo(void) - -to indicate that `foo()' takes no arguments. Also, I generally don't -indicate the return type, unless it is relevant. If it is a member -function of a class, I may indicate this, e.g.,, `bar_class::foo()', or -not, depending on whether this information is relevant. This convention -differs from that used in the *Note Function Index::, which is generated -automatically by Texinfo. There, only the name of the function appears, -without parentheses, parameters, or return values. The class type of -member functions may appear in the Function Index, (e.g., -`bar_class::foo'), but only in index entries that have been entered -explicitly by the author; such entries are not generated by Texinfo -automatically. - - Examples are formatted as follows: - - Point p0(1, 2, 3); - Point p1(5, 6, 7.9); - Path pa(p0, p1); - p0.show("p0:"); - -| p0: (1, 2, 3) - - Examples can contain the following symbols: - --| - Indicates output to the terminal when 3DLDF is run. - -=> - Indicates a result of some sort. It may precede a illustration - generated by the code in the example. - -error--> - Indicates that the following text is an error message. - - This manual does not use all of the symbols provided by Texinfo. If -you find a symbol you don't understand in this manual (which shouldn't -happen), see page 103 of the Texinfo manual. - -Symbols: - - The set of the natural numbers - - {0, 1, 2, 3, 4, ...} - - - The set of the integers - - {..., -3, -2, -1, 0, 1, 2, 3, 4, ...} - - - The set of the real numbers. - - -File: 3DLDF.info, Node: Illustrations, Prev: Manual Conventions, Up: About This Manual - -Illustrations -------------- - - The illustrations in this manual have been created using 3DLDF. The -code that generates them is in the Texinfo files themselves, that -contain the text of the manual. Texinfo is based on TeX, so it's -possible to make use of the latter's facility for writing ASCII text to -files using TeX's `\write' command. - - If you have problems including the illustrations, for example, if -your installation doesn't have `dvips', look for the following lines in -`3DLDF.texi': - - \doepsftrue %% One of these two lines should be commented-out. - %\doepsffalse - -Now, remove the `%' from in front of `\doepsffalse' and put one in -front of `\doepsftrue'. This will prevent the illustrations from being -included. This should only be done as a last resort, however, because -it will make it difficult if not impossible to understand this manual. - - The code in an example is not always the complete code used to -create the illustration that follows it, since the latter may be -cluttered with commands that would detract from the clarity of the -example. The actual code used always follows the example in the Texinfo -source file, so the latter may be referred to, if the reader wishes to -see exactly what code was used to generate the illustration. - - You may want to skip the following paragraphs in this section, if -you're reading this manual for the first time. Don't worry if you -don't understand it, it's meaning should become clear after reading the -manual and some experience with using 3DLDF. - - The file `3DLDF.texi' in the directory `3DLDF-1.1.3/DOC/TEXINFO', -the driver file for this manual, contains the following TeX code: - - \newif\ifmakeexamples - \makeexamplestrue %% One of these two lines should be commented-out. - %\makeexamplesfalse - -When `texi2dvi' is run on `3DLDF.texi', `\makeexamplestrue' is not -commented-out, and `\makeexamplesfalse' is, the code for the -illustrations is written to the file `examples.web'. If the EPS files -don't already exist (in the directory `3DLDF-1.1.3/DOC/TEXINFO/EPS'), -the TeX macro `\PEX', which includes them in the Texinfo files, will -signal an error each time it can't find one. Just type `s' at the -command line to tell TeX to keep going. If you want to be sure that -these are indeed the only errors, you can type `' after each -one instead. - - `texi2dvi 3DLDF.texi' also generates the file `extext.tex', which -contains TeX code for including the illustrations by themselves. - - `examples.web' must now be moved to `3DLDF-1.1.3/CWEB/' and -ctangled, `examples.c' must compiled, and 3DLDF must be relinked. -`ctangle examples' also generates the header file `example.h', which is -included in `main.web'. Therefore, if the contents of `examples.h' have -changed since the last time `main.web' was ctangled, `main.web' will -have to be ctangled, and `main.c' recompiled, before `3dldf' is -relinked.(1) - - Running `3dldf' and MetaPost now generates the EPS (Encapsulated -PostScript) files `3DLDFmp.1' through (currently) `3DLDFmp.199' for the -illustrations. They must be moved to `3DLDF-1.1.3/DOC/TEXINFO/EPS'. -Now, when `texi2dvi 3DLDF.texi' is run again, the `dvips' command -`\epsffile' includes the EPS files for the illustrations in the manual. -`3DLDF.texi' includes the line `\input epsf', so that `\epsffile' -works. Of course, `dvips' (or some other program that does the job) -must be used to convert `3DLDF.dvi' to a PostScript file. To see -exactly how this is done, take a look at the `.texi' source files of -this manual.(2) - - In the `3DLDF.texi' belonging to the 3DLDF distribution, -`\makeexamplestrue' will be commented-out, and `makeexamplesfalse' -won't be, because the EPS files for the illustrations are included in -the distribution. - - The version of `examples.web' in `3DLDF-1.1.3/CWEB' merely includes -the files `subex1.web' and `subex2.web'. If you rename -`3DLDF-1.1.3/CWEB/exampman.web' to `examples.web', you can generate the -illustrations. - - ---------- Footnotes ---------- - - (1) `ctangle' creates `.c' from `.web', so the -compiler must compile the files using the `-x c++' option. -Otherwise, it would handle them as if they contained C code. - - (2) If you want to try generating the illustrations yourself, you -can save a little run-time by calling `tex 3DLDF.texi' the first time, -rather than `texi2dvi'. The latter program runs TeX twice, because it -needs two passes in order to generate the contents, indexing, and cross -reference information (and maybe some other things, too). - - -File: 3DLDF.info, Node: CWEB Documentation, Next: Metafont and MetaPost, Prev: About This Manual, Up: Introduction - -CWEB Documentation -================== - - As mentioned above, 3DLDF has been programmed using CWEB, which is a -"literate programming" tool developed by Donald E. Knuth and Silvio -Levy. *Note Sources of Information::, for a reference to the CWEB -manual. Knuth's `TeX--The Program' and `Metafont--The Program' both -include a section "How to read a WEB" (pp. x-xv, in both volumes). - - CWEB files combine source code and documentation. Running `ctangle' -on a CWEB file, for example, `main.web', produces the file `main.c' -containing C or code. Running `cweave main.web' creates a TeX file -with pretty-printed source code and nicely formatted documentation. I -find that using CWEB makes it more natural to document my code as I -write it, and makes the source files easier to read when editing them. -It does have certain consequences with regard to compilation, but these -are taken care of by `make'. *Note Adding a File::, and *Note -Changes::, for more information. - - The CWEB files in the directory `3DLDF-1.1.3/CWEB/' contain the -source code for 3DLDF. The file `3DLDFprg.web' in this directory is -only ever used for cweaving; it is never ctangled and contains no -code for compilation. It does, however, include all of the other CWEB -files, so that `cweave 3DLDFprg.web' generates the TeX file containing -the complete documentation of the source code of 3DLDF. - - The files `3DLDF-1.1.3/CWEB/3DLDFprg.tex', -`3DLDF-1.1.3/CWEB/3DLDFprg.dvi', and `3DLDF-1.1.3/CWEB/3DLDFprg.ps' are -included in the distribution of 3DLDF as a convenience. However, users -may generate them themselves, should there be some reason for doing so, -by entering `make ps' from the command line of a shell from the working -directory `3DLDF-1.1.3/' or `3DLDF-1.1.3/CWEB'. Alternatively, the -user may generate them by hand from the working directory -`3DLDF-1.1.3/CWEB/' in the following way: - - 1. `cweave 3DLDFprg.web' generates `3DLDFprg.tex'. - - 2. `tex 3DLDFprg' or `tex 3DLDFprg.tex' generates `3DLDFprg.dvi'. - - 3. `dvips -o 3DLDFprg.ps 3DLDFprg' (possibly with additional options) - generates `3DLDFprg.ps'. - - 4. `lpr -P<_print queue_> 3DLDFprg.ps' sends `3DLDFprg.ps' to a - printer, on a UNIX or UNIX-like system. - - The individual commands may differ, depending on the system you're -using. - - -File: 3DLDF.info, Node: Metafont and MetaPost, Next: Caveats, Prev: CWEB Documentation, Up: Introduction - -Metafont and MetaPost -===================== - - Metafont is a system created by Donald E. Knuth for generating -fonts, in particular for use with TeX, his well-known typsetting -system.(1) Expressed in a somewhat simplified way, Metafont is a -system for programming curves, which are then digitized and output -in the form of run-time encoded bitmaps. (See Knuth's `The -Metafontbook' for more information). - - John D. Hobby modified Metafont's source code to create -MetaPost, which functions in much the same way, but outputs -encapsulated PostScript (EPS) files instead of bitmaps. MetaPost is -very useful for creating graphics and is a convenient -interface to PostScript. It is also easy both to imbed TeX code in -MetaPost programs, for instance, for typesetting labels, and to -include MetaPost graphics in ordinary TeX files, e.g., by using -`dvips'.(2) Apart from simply printing the PostScript file output by -`dvips', there are many programs that can process ordinary or -encapsulated PostScript files and convert them to other formats. Just -two of the many possibilities are ImageMagick and GIMP, both of which -can be used to create animations from MetaPost graphics. - - However, MetaPost inherited a significant limitation from -Metafont: it's not possible to use it for making three-dimensional -graphics, except in a very limited way. One insuperable problem is the -severe limitation on the magnitude of user-defined numerical variables -in Metafont and MetaPost.(3) This made sense for Metafont's and -MetaPost's original purposes, but they make it impossible to -perform the calculations needed for 3D graphics. - - Another problem is the data types defined in Metafont: Points are -represented as pairs of real values and affine -transformations as sets of 6 real values. This corresponds to the -representation of points and affine transformations in the plane as a -two-element vector on the one hand and a six element matrix on -the other. While it is possible to work around the limitation -imposed by having points be represented by only two values, it is -impracticable in the case of the transformations. - - For these reasons, I decided to write a program that would behave -more or less like Metafont, but with suitable extensions, and the -ability to handle three dimensional data; namely 3DLDF. It stores the -data and performs the transformations and other necessary calculations -and is not subject to the limitations of MetaPost and its data types. -Upon output, it performs a perspective transformation, converting the -3D image into a 2D one. The latter can now be expressed as an ordinary -MetaPost program, so 3DLDF writes its output as MetaPost code to a file. - - In the following, it may be a little unclear why I sometimes refer to -Metafont and sometimes to MetaPost. The reason is that Metafont -inherited much of its functionality from Metafont. Certain operations -in Metafont have no meaning in MetaPost and so have been removed, while -MetaPost's function of interfacing with PostScript has caused other -operations to be added. For example, in MetaPost, `color' is a data -type, but not in Metafont. Unless otherwise stated, when I refer to -Metafont, it can be assumed that what I say applies to MetaPost as well. -However, when I refer to MetaPost, it will generally be in connection -with features specific to MetaPost. - - ---------- Footnotes ---------- - - (1) Knuth, Donald E. _The TeXbook_. Computers and Typesetting; A. -Addison-Wesley Publishing Company. Reading, Massachusetts 1986. - - (2) Rokicki, Tomas. _Dvips: A DVI-to-PostScript Translator_ February -1997. Available from CTAN. *Note Sources of Information::. - - (3) "<...> METAFONT deals only with numbers in a limited range: A -numeric token must be less than 4096, and its value is always rounded -to the nearest multiple of - - 1/65536." Knuth, The METAFONTbook, p. 50. - - -File: 3DLDF.info, Node: Caveats, Next: Ports, Prev: Metafont and MetaPost, Up: Introduction - -Caveats -======= - -* Menu: - -* Accuracy:: -* No Input Routine:: - - -File: 3DLDF.info, Node: Accuracy, Next: No Input Routine, Prev: Caveats, Up: Caveats - -Accuracy --------- - - When 3DLDF is run, it uses the three-dimensional data contained in -the user code to create a two-dimensional projection. Currently, this -can be a perspective projection, or a parallel projection onto one of -the major planes. MetaPost code representing this projection is then -written to the output file. 3DLDF does no "scan conversion",(1) so all -of the curves in the projection are generated by means of the -algorithms MetaPost inherited from Metafont. These algorithms, -however, are designed to find the "most pleasing curve"(2) given one or -more two-dimensional points and connectors; they do not account for -the the fact that the two-dimensional points are projections of -three-dimensional ones. This can lead to unsatisfactory results, -especially where extreme foreshortening occurs. In particular, `curl', -`dir', `tension', and control points should be used cautiously, or -avoided altogether, when specifying connectors. - - 3DLDF operates on the assumption that, given an adequate number -of points, MetaPost will produce an adequate approximation to the -desired curve _in perspective_, since the greater the number of points -given for a curve, the less "choice" MetaPost has for the path through -them. My experience with 3DLDF bears this out. Generally, the -curves look quite good. Where problems arise, it usually helps to -increase the number of points in a curve. - - A more serious problem is the imprecision resulting from the -operation of rotation. Rotations use the trigonometric functions, -which return approximate values. This has the result that points that -should have identical coordinate values, sometimes do not. This has -consequences for the functions that compare points. The more rotations -are applied to points, the greater the divergence between their actual -coordinate values, and the values they should have. So far, I haven't -found a solution for this problem. On the other hand, it hasn't yet -affected the usability of 3DLDF. - - ---------- Footnotes ---------- - - (1) "Scan conversion" is the process of digitizing geometric data. -The ultimate result is a - - 2 by 2 map of pixels, which can be used for printing or representing -the projection on a computer screen. The number of pixels per a given -unit of measurement is the "resolution" of a given output device, e.g., -300 pixels per inch. - - (2) Knuth, `The METAFONTbook', Chapter 14, p. 127. - - -File: 3DLDF.info, Node: No Input Routine, Prev: Accuracy, Up: Caveats - -No Input Routine ----------------- - - 3DLDF does not yet include a routine for reading input files. This -means that user code must be written in , compiled, and linked -with the rest of the program. I admit, this is not ideal, and -writing an input routine for user code is one of the next things I plan -to add to 3DLDF. - - I plan to use Flex and Bison to write the input routine.(1) The -syntax of the input code should be as close as possible to that of -MetaPost, while taking account of the differences between MetaPost and -3DLDF. - - For the present, however, the use of 3DLDF is limited to those who -feel comfortable using and compiling and relinking programs. -Please don't be put off by this! It's not so difficult, and `make' -does most of the work of recompiling and running 3DLDF. *Note -Installing and Running 3DLDF::, for more information. - - ---------- Footnotes ---------- - - (1) Flex is a program for generating text scanners and Bison is a -parser generator. They are available from . - - -File: 3DLDF.info, Node: Ports, Prev: Caveats, Up: Introduction - -Ports -===== - - I originally developed 3DLDF on a DECalpha Personal Workstation with -two processors, under Tru64 Unix 5.1, using the DEC compiler. I then -ported it to a PC Pentium 4 under Linux 2.4, using GCC 2.95.3, and a PC -Pentium II XEON under Linux 2.4, using GCC 3.3. - - The CWEB sources of 3DLDF contain some conditionally compiled code -for managing platform dependencies. Currently, the files `io.web', -`loader.web', `main.web', `points.web', and `pspglb.web' contain -conditionally compiled code, depending on which compiler, or in the -case of GCC, which version of the compiler, is used. The DEC -compiler defines the preprocessor macro `__DECCXX' and GCC defines -`__GNUC__'. In order to distinguish between GCC 2.95.3 and GCC 3.3, -I've added the macros `LDF_GCC_2_95' and `LDF_GCC_3_3' in -`loader.web', which should be defined or undefined, depending on which -compiler you're using. In the distribution, `LDF_GCC_3_3' is defined -and `LDF_GCC_2_95' is undefined, so if you want to use GCC 2.95, you'll -have to change this. - - 3DLDF 1.1.3 now uses Autoconf and Automake, and the `configure' -script generates a `config.h' file, which is now included in -\filenameloader.web. Some of the preprocessor macros defined in -`config.h' are used to conditionally include library header files, but -so far, there is no error handling code for the case that a file can't -be included. I hope to improve the way 3DLDF works together with -Autoconf and Automake in the near future. - - I am mostly concerned with maintaining the Linux version. In most -respects, GCC 3.3 is an improvement over GCC 2.95.3, however -compilation, and especially linking, is significantly slower. -Therefore, I tend to use GCC 2.95.3 most of the time. - - I'm not particularly concerned about maintaining the DEC version, -however, it hasn't cost very much effort so far, so I will probably -continue to do so, as long as I have a DECalpha available. - - I'm also not particularly concerned about porting 3DLDF to Microsoft -DOS or Windows. However, I have made sure that all of the filenames in -the distribution have at most 8 characters, although I find this rather -a nuisance. - - As time permits, and resources are available to me, I will try to -port 3DLDF to other platforms. I would be grateful for any help from -other programmers in doing this. - - -File: 3DLDF.info, Node: Contributing to 3DLDF, Next: Using 3DLDF, Prev: Introduction, Up: Top - -Contributing to 3DLDF -===================== - - So far, I've been the sole author and user of 3DLDF. I would be -very interested in having other programmers contribute to it. I would -be particularly interested in help in making 3DLDF conform as closely -as possible to the GNU Coding Standards. I would be grateful if -someone would write proper Automake and Autoconf files, since I haven't -yet learned how to do so (I'm working on it). - - *Note Introduction::, for information on how to contact the author. -  -File: 3DLDF.info, Node: Using 3DLDF, Next: Intersections, Prev: Contributing to 3DLDF, Up: Top - -Using 3DLDF -*********** - - Since 3DLDF does not yet have an input routine, user code must be -written in (in `main.web', or some other file) and compiled. Then, -3DLDF must be relinked, together with the new file of object code -resulting from the compilation. For now, the important point is that -the text of the examples in this manual represent code. *Note -Installing and Running 3DLDF::, for more information. - +Indirect: +3DLDF.info-1: 891 +3DLDF.info-2: 49349 +3DLDF.info-3: 98223 +3DLDF.info-4: 147834 +3DLDF.info-5: 191157 +3DLDF.info-6: 240632 +3DLDF.info-7: 286566 +3DLDF.info-8: 330973 +3DLDF.info-9: 380375 +3DLDF.info-10: 429106 +3DLDF.info-11: 471365 +3DLDF.info-12: 509440 + +Tag Table: +(Indirect) +Node: Top891 +Node: Introduction8912 +Node: Sources of Information11349 +Node: About This Manual12651 +Node: Manual Conventions15861 +Node: Illustrations18949 +Ref: Illustrations-Footnote-123171 +Ref: Illustrations-Footnote-223367 +Node: CWEB Documentation23709 +Node: Metafont and MetaPost26132 +Ref: Metafont and MetaPost-Footnote-129714 +Ref: Metafont and MetaPost-Footnote-229848 +Ref: Metafont and MetaPost-Footnote-329982 +Node: Caveats30196 +Node: Accuracy30356 +Ref: Accuracy-Footnote-132487 +Ref: Accuracy-Footnote-232815 +Node: No Input Routine32870 +Ref: No Input Routine-Footnote-133858 +Node: Ports33993 +Node: Contributing to 3DLDF36804 +Node: Using 3DLDF37416 +Node: Points37936 +Node: Declaring and Initializing Points38128 +Node: Setting and Assigning to Points42184 +Node: Transforming Points43647 +Ref: Transforming Points-Footnote-144918 +Ref: Transforming Points-Footnote-245406 +Node: Shifting Points45737 +Node: Scaling Points47224 +Node: Shearing Points48204 +Node: Rotating Points49349 +Node: Transforms51929 +Ref: Transforms-Footnote-155640 +Ref: Transforms-Footnote-255927 +Node: Applying Transforms to Points Intro56676 +Node: Inverting Transforms58619 +Node: Drawing and Labeling Points60669 +Node: Drawing Points Intro60886 +Ref: Drawing Points Intro-Footnote-163584 +Ref: Drawing Points Intro-Footnote-263855 +Ref: Drawing Points Intro-Footnote-364149 +Node: Labeling Points Intro64433 +Node: Paths66235 +Ref: Paths-Footnote-168264 +Node: Declaring and Initializing Paths68386 +Ref: Declaring and Initializing Paths-Footnote-171573 +Ref: Declaring and Initializing Paths-Footnote-271999 +Node: Drawing and Filling Paths Intro72054 +Node: Plane Figures75605 +Node: Regular Polygons Getstart76993 +Node: Rectangles Getstart79141 +Node: Ellipses Getstart81591 +Node: Circles Getstart82875 +Node: Solid Figures83917 +Node: Cuboid Getstart84091 +Node: Polyhedron Getstart85394 +Node: Tetrahedron Getstart86652 +Node: Dodecahedron Getstart87138 +Node: Icosahedron Getstart87756 +Node: Pictures88254 +Node: Projections94784 +Ref: Projections-Footnote-196477 +Node: Parallel Projections96569 +Node: The Perspective Projection98223 +Ref: The Perspective Projection-Footnote-1102232 +Ref: The Perspective Projection-Footnote-2102500 +Node: Focuses Getstart103107 +Ref: Focuses Getstart-Footnote-1108286 +Node: Surface Hiding108347 +Node: Intersections116298 +Ref: Intersections-Footnote-1119441 +Node: Installing and Running 3DLDF119688 +Node: Installing 3DLDF119925 +Node: Running 3DLDF121465 +Node: Command Line Arguments126738 +Node: Typedefs and Utility Structures127670 +Node: Global Constants and Variables129931 +Ref: Global Constants and Variables-Footnote-1133293 +Node: Color Reference133345 +Node: Color Data Members133758 +Node: Color Constructors and Setting Functions134802 +Node: Color Operators136855 +Node: Modifying Colors138211 +Node: Showing Colors139197 +Node: Querying Colors139638 +Node: Defining and Initializing Colors140751 +Node: Namespace Colors141356 +Node: Input and Output143075 +Node: I/O Global Variables143266 +Node: I/O Functions144260 +Node: Shape Reference145449 +Node: Shape Data Members146502 +Node: Shape Operators147136 +Node: Copying Shapes147342 +Node: Modifying Shapes147834 +Node: Affine Transformations for Shapes148857 +Node: Applying Transformations to Shapes149495 +Node: Clearing Shapes149975 +Node: Querying Shapes150421 +Node: Showing Shapes150708 +Node: Outputting Shapes151258 +Node: Transform Reference154390 +Node: Transform Data Members155034 +Node: Transform Global Variables and Constants155334 +Node: Transform Constructors156290 +Node: Transform Operators157272 +Node: Matrix Inversion162053 +Node: Setting Values Transforms162774 +Node: Querying Transforms163380 +Node: Returning Information for Transforms164648 +Node: Showing Transforms165989 +Node: Affine Transformations for Transforms167066 +Ref: Affine Transformations for Transforms-Footnote-1173282 +Node: Alignment with an Axis for Transforms173360 +Node: Resetting Transforms175666 +Node: Cleaning Transforms175911 +Node: Label Reference176145 +Node: Label Data Members177553 +Node: Copying Labels179246 +Node: Outputting Labels179997 +Node: Picture Reference180917 +Node: Picture Data Members181327 +Ref: Picture Data Members-Footnote-1183211 +Node: Picture Global Variables183379 +Node: Picture Constructors183678 +Node: Picture Operators184256 +Node: Affine Transformations for Pictures185774 +Node: Modifying Pictures187360 +Node: Showing Pictures188186 +Ref: Showing Pictures-Footnote-1189388 +Node: Outputting Pictures189493 +Node: Picture Output Namespaces189682 +Node: Namespace Projections189904 +Node: Namespace Sorting190601 +Node: Picture Output Functions191157 +Node: Point Reference199743 +Node: Point Data Members200664 +Node: Point Typedefs and Utility Structures206748 +Node: Point Global Constants and Variables209306 +Node: Point Constructors and Setting Functions210230 +Node: Point Destructor213398 +Node: Point Operators213809 +Node: Copying Points218824 +Node: Querying Points219337 +Ref: Querying Points-Footnote-1221465 +Node: Returning Coordinates221721 +Node: Returning Information for Points226760 +Node: Modifying Points227482 +Node: Affine Transformations for Points228618 +Node: Applying Transformations to Points234132 +Node: Projecting Points234507 +Node: Vector Operations235527 +Node: Points and Lines240632 +Node: Point Intersections244577 +Node: Point Drawing Functions246407 +Node: Labelling Points251302 +Node: Showing Points254434 +Node: Outputting Points255780 +Node: Focus Reference258773 +Node: Focus Data Members259297 +Node: Focus Global Variables260989 +Node: Focus Constructors and Setting Functions261991 +Node: Focus Operators263747 +Node: Modifying Focuses264002 +Node: Querying Focuses264285 +Node: Showing Focuses265376 +Node: Line Reference265888 +Node: Line Data Members266537 +Node: Line Global Constants266860 +Node: Line Constructors267114 +Node: Line Operators267766 +Node: Get Path267974 +Node: Showing268291 +Node: Plane Reference269183 +Node: Planes Data Members270168 +Node: Planes Global Constants270667 +Node: Planes Constructors271100 +Node: Planes Operators272916 +Node: Planes Returning Information274177 +Node: Plane Intersections276361 +Node: Planes Showing279816 +Node: Path Reference280786 +Node: Path Data Members281458 +Ref: Path Data Members-Footnote-1286506 +Node: Path Constructors and Setting Functions286566 +Ref: Path Constructors and Setting Functions-Footnote-1292317 +Ref: Path Constructors and Setting Functions-Footnote-2292956 +Ref: Path Constructors and Setting Functions-Footnote-3293016 +Node: Path Destructor293330 +Node: Path Operators294020 +Node: Appending to Paths295765 +Node: Copying Paths296860 +Node: Clearing Paths297437 +Node: Modifying Paths298238 +Node: Affine Transformations for Paths300741 +Node: Aligning Paths with an Axis305389 +Node: Applying Transformations to Paths308508 +Node: Drawing and Filling Paths308932 +Ref: Drawing and Filling Paths-Footnote-1325270 +Ref: Drawing and Filling Paths-Footnote-2325324 +Ref: Drawing and Filling Paths-Footnote-3325426 +Node: Labelling Paths325784 +Node: Showing Paths327235 +Ref: Showing Paths-Footnote-1330827 +Node: Querying Paths330973 +Node: Outputting Paths336918 +Node: Path Intersections339406 +Node: Polygon Reference340848 +Node: Polygon Data Members341497 +Node: Polygon Operators341850 +Node: Querying Polygons342272 +Node: Affine Transformations for Polygons342674 +Node: Polygon Intersections344785 +Ref: Polygon Intersections-Footnote-1349714 +Node: Regular Polygon Reference349807 +Node: Regular Polygon Data Members350832 +Node: Regular Polygon Constructors and Setting Functions351877 +Node: Regular Polygon Operators354126 +Node: Querying Regular Polygons354434 +Node: Circles for Regular Polygons354685 +Node: Rectangle Reference356704 +Node: Rectangle Data Members357723 +Node: Rectangle Constructors and Setting Functions358651 +Node: Rectangle Operators360927 +Node: Returning Points for Rectangles361228 +Node: Querying Rectangles361699 +Node: Ellipses for Rectangles362387 +Node: Regular Closed Plane Curve Reference363994 +Ref: Regular Closed Plane Curve Reference-Footnote-1366365 +Node: Regular Closed Plane Curve Data Members366564 +Node: Querying Regular Closed Plane Curves367012 +Node: Regular Closed Plane Curve Intersections369668 +Node: Regular Closed Plane Curve Segments372086 +Node: Ellipse Reference374419 +Node: Ellipse Data Members375056 +Node: Ellipse Constructors and Setting Functions376788 +Node: Performing Transformations on Ellipses378744 +Node: Ellipse Operators379867 +Node: Labeling Ellipses380375 +Node: Affine Transformations for Ellipses381198 +Node: Querying Ellipses383368 +Node: Returning Elements and Information for Ellipses384616 +Node: Ellipse Intersections388999 +Node: Solving Ellipses394679 +Node: Rectangles for Ellipses396967 +Node: Circle Reference398828 +Node: Circle Data Members399614 +Node: Circle Constructors and Setting Functions399854 +Node: Circle Operators401351 +Node: Querying Circles401887 +Node: Circle Intersections402617 +Node: Pattern Reference403677 +Node: Plane Tesselations404049 +Node: Roulettes and Involutes409594 +Node: Epicycloids410565 +Node: Solid Reference413431 +Node: Solid Data Members414222 +Node: Solid Constructors and Setting Functions416391 +Node: Solid Destructor416890 +Node: Solid Operators417301 +Node: Copying Solids417772 +Node: Setting Solid Members418346 +Node: Querying Solids418759 +Node: Returning Elements and Information Solids419120 +Node: Getting Shape Centers Solids419589 +Node: Getting Shapes Solids421917 +Node: Showing Solids424913 +Node: Affine Transformations for Solids425789 +Node: Applying Transformations to Solids426698 +Node: Outputting Solids427039 +Node: Drawing and Filling Solids429106 +Node: Clearing Solids433895 +Node: Faced Solid Reference434418 +Node: Solid_Faced Data Members434944 +Node: Cuboid Reference435364 +Node: Cuboid Data Members435720 +Node: Cuboid Constructors and Setting Functions436183 +Node: Cuboid Operators437664 +Node: Polyhedron Reference437981 +Node: Polyhedron Data Members438636 +Node: Regular Platonic Polyhedra439494 +Node: Tetrahedron440128 +Node: Tetrahedron Data Members440503 +Node: Tetrahedron Constructors and Setting Functions441180 +Node: Tetrahedron Net442554 +Ref: Tetrahedron Net-Footnote-1445407 +Node: Dodecahedron445479 +Node: Dodecahedron Data Members445895 +Node: Dodecahedron Constructors and Setting Functions446368 +Node: Dodecahedron Net447375 +Node: Icosahedron449296 +Node: Icosahedron Data Members449685 +Node: Icosahedron Constructors and Setting Functions450154 +Node: Icosahedron Net451126 +Node: Semi-Regular Archimedean Polyhedra453023 +Node: Truncated Octahedron453424 +Node: Truncated Octahedron Data Members453992 +Node: Truncated Octahedron Constructors and Setting Functions454684 +Node: Truncated Octahedron Net455715 +Node: Utility Functions456651 +Node: Perspective Functions457992 +Node: Adding a File460115 +Ref: Adding a File-Footnote-1464626 +Ref: Adding a File-Footnote-2464722 +Node: Future Plans464878 +Ref: Future Plans-Footnote-1466770 +Node: Changes466855 +Node: Bibliography468845 +Node: GNU Free Documentation License471365 +Node: Data Type and Variable Index493802 +Node: Function Index509440 +Node: Concept Index536053  -File: 3DLDF.info, Node: Intersections, Next: Installing and Running 3DLDF, Prev: Using 3DLDF, Up: Top - -Intersections -************* - - There are no functions for finding the intersection points of two (or -more) arbitrary `Paths'. This is impossible, so long as 3DLDF outputs -MetaPost code. 3DLDF only "knows" about the `Points' on a `Path'; it -doesn't actually generate the curve or other figure that passes through -the `Points', and consequently doesn't "know" how it does this. - - In addition, an arbitrary `Path' can contain connectors. In 3DLDF, -the connectors are merely `strings' and are written verbatim to the -output file, however, in MetaPost they influence the form of a `Path'. - - 3DLDF can, however, find the intersection points of some -_non-arbitrary_ `Paths'. So far, it can find the intersection point of -the following combinations of `Paths': - - 1. Two linear `Paths', i.e., `Paths' for which `Path::is_linear()' - returns `true' (*note Path Reference; Querying: Querying Paths.). - In addition, the `static Point' member function - `Point::intersection_points()' can be called with four `Point' - arguments. The first and second arguments are treated as the end - points of one line, and the third and fourth arguments as the end - points of the other. - - 2. A line and a `Polygon'. Currently, `Reg_Polygon' and `Rectangle' - are the only classes derived from `Polygon'. - - 3. Two `Polygons'. - - 4. A line and a Regular Closed Plane Curve (`Reg_Cl_Plane_Curve', - *note Regular Closed Plane Curve Reference; Intersections: Regular - Closed Plane Curve Intersections.). Currently, `Ellipse' and - `Circle' are the only classes derived from `Reg_Cl_Plane_Curve'. - - 5. Two `Ellipses'. Since a `Circle' is also an `Ellipse', one or - both of the `Ellipses' may be a `Circle'. *Note Ellipse - Reference; Intersections: Ellipse Intersections. - - Adding more functions for finding the intersections of various -geometric figures is one of my main priorities with respect to -extending 3DLDF. - - There are currently no special functions for finding the -intersection points of a line and a `Circle' or two `Circles'. Since -the `class Circle' is derived from `class Ellipse', -`Circle::intersection_points()' resolves to -`Ellipse::intersection_points()', which, in turn, calls -`Reg_Cl_Plane_Curve::intersection_points()'. This does the trick, but -it's much easier to find the intersections for `Circles' that it is for -`Ellipses'. In particular, the intersections of two coplanar `Circles' -can be found algebraically, whereas I've had to implement a numerical -solution for the case of two coplanar `Ellipses' with different centers -and/or axis orientation. It may also be worthwhile to write a -specialization for finding the intersection points of a `Circle' and an -`Ellipse'. - - The theory of intersections is a fascinating and non-trivial branch -of mathematics.(1) As I learn more about it, I plan to define more -`classes' to represent various curves (two-dimensional ones to start -with) and functions for finding their intersection points. - - ---------- Footnotes ---------- - - (1) The books on computer graphics and the fairly elementary -mathematics books that I own or have referred to don't go into -intersections very deeply. One that does is Fischer, Gerd. `Ebene -Algebraische Kurven', which is a bit over my head. - - -File: 3DLDF.info, Node: Installing and Running 3DLDF, Next: Typedefs and Utility Structures, Prev: Intersections, Up: Top - -Installing and Running 3DLDF -**************************** - -* Menu: - -* Installing 3DLDF:: -* Running 3DLDF:: - - -File: 3DLDF.info, Node: Installing 3DLDF, Next: Running 3DLDF, Prev: Installing and Running 3DLDF, Up: Installing and Running 3DLDF - -Installing 3DLDF -================ - - 3DLDF is available for downloading from -`http://ftp.gnu.org/gnu/3DLDF'. The official 3DLDF website is -`http://www.gnu.org/software/3DLDF'. The "tarball", i.e., the -compressed archive file `3DLDF-1.1.3.tar.gz' unpacks into a directory -called `/3DLDF-1.1.3/'. - - On a typical Unix-like system, entering the following commands at -the command line in a shell will unpack the 3DLDF distribution. Please -note that the form of the commands may differ on your system. - - gunzip 3DLDF-1.1.3.tar.gz - tar xpvf 3DLDF-1.1.3.tar - - The `p' option to `tar' ensures that the files will have the same -permissions as when they were packed. - - The directory `3DLDF-1.1.3/' contains a `configure' script, which -should be called from the command line in the shell, using the absolute -path of `3DLDF-1.1.3/' as the prefix argument. For example, if the -path is `/usr/local/mydir/3DLDF-1.1.3/', `configure' should be invoked -as follows: - - cd 3DLDF-1.1.3 - configure --prefix=/usr/local/mydir/3DLDF-1.1.3/ - - `configure' generates a `Makefile' from the `Makefile.in' in -`3DLDF-1.1.3/', and in each of the subdirectories `3DLDF-1.1.3/CWEB', -`3DLDF-1.1.3/DOC', and `3DLDF-1.1.3/DOC/TEXINFO'. Now, `make install' -causes the 3DLDF to be built. The executable is called `3dldf'. - - See the files `README' and `INSTALL' in the 3DLDF distribution for -more information. - - -File: 3DLDF.info, Node: Running 3DLDF, Prev: Installing 3DLDF, Up: Installing and Running 3DLDF - -Running 3DLDF -============= - - To use 3DLDF, call `make run' from the command line in the shell. -The working directory should be `3DLDF-1.1.3/' or `3DLDF-1.1.3/CWEB'. -Either will work, but the latter may be more convenient, because this -is the location of the CWEB, TeX and MetaPost files that you'll be -editing. Alternatively, call `ldfr', which is merely a shell script -that calls `make run'. This takes care of running `3dldf', MetaPost, -TeX, and `dvips', producing a PostScript file containing your drawings. -You can display the latter on your terminal using Ghostview or some -other PostScript viewer, print it out, and whatever else you like to do -with PostScript files. - - However, you can also perform the actions performed by `make run' by -hand, by writing your own shell scripts, by defining Emacs-Lisp -commands, or in other ways. Even if you choose to use `make run', it's -important to understand what it does. The following explains how to do -this by hand. - - The CWEB source files for 3DLDF are in the subdirectory -`3DLDF-1.1.3/CWEB/'. They must be `ctangled', and the resulting files -must be compiled and linked, in order to create the executable file -`3dldf'. The files and header files generated by `ctangle', the -object files generated by the compiler, and the executable `3dldf' all -reside in `3DLDF-1.1.3/CWEB/'. Therefore, the latter must be your -working directory. - - Since 3DLDF has no input routine as yet, as explained in *Note No -Input Routine::, it is necessary to add code to the function `main()' -in `main.web', and/or in a separate function in another file. In the -latter case, the function containing the user code must be invoked in -`main()'. Look for the line "Your code here!" in \filenamemain.web. - - This is an example of what you could write in `main()'. Feel free -to make it more complicated, if you wish. - - beginfig(1); - default_focus.set(2, 3, -10, 2, 3, 10, 20); - Rectangle R(origin, 5, 3); - Circle C(origin, 3, 90); - C.half(180).filldraw(black, light_gray); - R.filldraw(); - C.half().filldraw(black, light_gray); - Point p = C.get_point(4); - p.shift(0, -.5 * p.get_y()); - p.label("$C$", ""); - Point q = R.get_mid_point(0); - q.shift(0, 0, -.5 * q.get_z()); - q.label("$R$", ""); - current_picture.output(default_focus, PERSP, 1, NO_SORT); - endfig(1); - - 1. Save `main.web', and any other CWEB files you've changed. Since - these files have changed, they must be `ctangled', and the - resulting files must be recompiled. If you've changed any files - other than `main.web', `ctangle' will also generate a header file - for each of these files. If a header file differs from the version - that existed before `ctangle' was run, all of the files that - depend on it must be recompiled. Then `3dldf' must be relinked. - To do this, call `make 3dldf' from the command line. - - If you've made any errors in typing your code, the compiler should - have issued error messages, so go back into the appropriate CWEB - file and correct your errors. Then call `make 3dldf' again. - - 2. Call `CWEB/3dldf' at the command line. It writes a file of - MetaPost code called `3DLDFput.mp'. - - 3. Run MetaPost on the file `3DLDFmp.mp', which inputs `3DLDFput.mp'. - - mpost 3DLDFput - - The result is an Encapsulated PostScript file `3DLDFput.' - for each figure in your drawing. - - 4. The file `3DLDFtex.tex' should contain code for including the - `3DLDFput.' files. This is an example taken from the - `3DLDFtex.tex' included in the distribution. You may change it to - suit your purposes. - - \vbox to \vsize\vskip 2cm - \line\hskip 2cm Figure 1.\hss% - \vfil - \line\hskip 2cm\epsffile3DLDFmp.1 \ No newline at end of file +End Tag Table diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-1 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-1 --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-1 1970-01-01 01:00:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-1 2003-12-10 18:44:55.000000000 +0100 @@ -0,0 +1,1384 @@ +This is 3DLDF.info, produced by makeinfo version 4.5 from 3DLDF.texi. + +This is the 3DLDF User and Reference Manual, edition 1.1.4 for 3DLDF +1.1.4. This manual was last updated on 10 December 2003. 3DLDF is a +GNU package for three-dimensional drawing with MetaPost output. The +author is Laurence D. Finston. + + Copyright (C) 2003 Laurence D. Finston. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, and + no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License". + +INFO-DIR-SECTION GNU packages +START-INFO-DIR-ENTRY +* 3DLDF: (3DLDF). 3D drawing with MetaPost output. +END-INFO-DIR-ENTRY + + +File: 3DLDF.info, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) + +This is the 3DLDF User and Reference Manual, edition 1.1.4 for 3DLDF +1.1.4. This manual was last updated on 10 December 2003. 3DLDF is a +GNU package for three-dimensional drawing with MetaPost output. The +author is Laurence D. Finston. + + Copyright (C) 2003 Laurence D. Finston. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, and + no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License". + + Please note that the figures cannot be shown in the Info or HTML +output formats! + +* Menu: + +* Introduction:: +* Contributing to 3DLDF:: +* Using 3DLDF:: +* Points:: +* Transforming Points:: +* Transforms:: +* Drawing and Labeling Points:: +* Paths:: +* Plane Figures:: +* Solid Figures:: +* Pictures:: +* Intersections:: +* Installing and Running 3DLDF:: +* Typedefs and Utility Structures:: +* Global Constants and Variables:: +* Color Reference:: +* Input and Output:: +* Shape Reference:: +* Transform Reference:: +* Label Reference:: +* Picture Reference:: +* Point Reference:: +* Focus Reference:: +* Line Reference:: +* Plane Reference:: +* Path Reference:: +* Polygon Reference:: +* Regular Polygon Reference:: +* Rectangle Reference:: +* Regular Closed Plane Curve Reference:: +* Ellipse Reference:: +* Circle Reference:: +* Pattern Reference:: +* Solid Reference:: +* Faced Solid Reference:: +* Cuboid Reference:: +* Polyhedron Reference:: +* Utility Functions:: +* Adding a File:: +* Future Plans:: +* Changes:: +* Bibliography:: +* GNU Free Documentation License:: +* Data Type and Variable Index:: +* Function Index:: +* Concept Index:: + +--- The Detailed Node Listing --- + +Introduction + +* Sources of Information:: +* About This Manual:: +* CWEB Documentation:: +* Metafont and MetaPost:: +* Caveats:: +* Ports:: + +About This Manual + +* Manual Conventions:: +* Illustrations:: + +Caveats + +* Accuracy:: +* No Input Routine:: + +Installing and Running 3DLDF + +* Installing 3DLDF:: +* Running 3DLDF:: + +Running 3DLDF + +* Command Line Arguments:: + +Color Reference + +* Color Data Members:: +* Color Constructors and Setting Functions:: +* Color Operators:: +* Modifying Colors:: +* Showing Colors:: +* Querying Colors:: +* Defining and Initializing Colors:: +* Namespace Colors:: + +Input and Output + +* I/O Global Variables:: +* I/O Functions:: + +Shape Reference + +* Shape Data Members:: +* Shape Operators:: +* Copying Shapes:: +* Modifying Shapes:: +* Affine Transformations for Shapes:: +* Applying Transformations to Shapes:: +* Clearing Shapes:: +* Querying Shapes:: +* Showing Shapes:: +* Outputting Shapes:: + +Transform Reference + +* Transform Data Members:: +* Transform Global Variables and Constants:: +* Transform Constructors :: +* Transform Operators:: +* Matrix Inversion:: +* Setting Values Transforms:: +* Querying Transforms:: +* Returning Information for Transforms:: +* Showing Transforms:: +* Affine Transformations for Transforms:: +* Alignment with an Axis for Transforms:: +* Resetting Transforms:: +* Cleaning Transforms:: + +Label Reference + +* Label Data Members:: +* Copying Labels:: +* Outputting Labels:: + +Picture Reference + +* Picture Data Members:: +* Picture Global Variables:: +* Picture Constructors:: +* Picture Operators:: +* Affine Transformations for Pictures:: +* Modifying Pictures:: +* Showing Pictures:: +* Outputting Pictures:: + +Outputting + +* Picture Output Namespaces:: +* Picture Output Functions:: + +Namespaces + +* Namespace Projections:: +* Namespace Sorting:: + +Point Reference + +* Point Data Members:: +* Point Typedefs and Utility Structures:: +* Point Global Constants and Variables:: +* Point Constructors and Setting Functions:: +* Point Destructor:: +* Point Operators:: +* Copying Points:: +* Querying Points:: +* Returning Coordinates:: +* Returning Information for Points:: +* Modifying Points:: +* Affine Transformations for Points:: +* Applying Transformations to Points:: +* Projecting Points:: +* Vector Operations:: +* Points and Lines:: +* Point Intersections:: +* Point Drawing Functions:: +* Labelling Points:: +* Showing Points:: +* Outputting Points:: + +Focus Reference + +* Focus Data Members:: +* Focus Global Variables:: +* Focus Constructors and Setting Functions:: +* Focus Operators:: +* Modifying Focuses:: +* Querying Focuses:: +* Showing Focuses:: + +Line Reference + +* Line Data Members:: +* Line Global Constants:: +* Line Constructors:: +* Line Operators:: +* Get Path:: +* Showing:: + +Plane Reference + +* Planes Data Members:: +* Planes Global Constants:: +* Planes Constructors:: +* Planes Operators:: +* Planes Returning Information:: +* Plane Intersections:: +* Planes Showing:: + +Path Reference + +* Path Data Members:: +* Path Constructors and Setting Functions:: +* Path Destructor:: +* Path Operators:: +* Appending to Paths :: +* Copying Paths:: +* Clearing Paths :: +* Modifying Paths :: +* Affine Transformations for Paths:: +* Aligning Paths with an Axis:: +* Applying Transformations to Paths:: +* Drawing and Filling Paths:: +* Labelling Paths:: +* Showing Paths:: +* Querying Paths:: +* Outputting Paths:: +* Path Intersections:: + +Polygon Reference + +* Polygon Data Members:: +* Polygon Operators:: +* Querying Polygons:: +* Affine Transformations for Polygons:: +* Polygon Intersections:: + +Regular Polygon Reference + +* Regular Polygon Data Members:: +* Regular Polygon Constructors and Setting Functions:: +* Regular Polygon Operators:: +* Querying Regular Polygons:: +* Circles for Regular Polygons:: + +Rectangle Reference + +* Rectangle Data Members:: +* Rectangle Constructors and Setting Functions:: +* Rectangle Operators:: +* Returning Points for Rectangles:: +* Querying Rectangles:: +* Ellipses for Rectangles:: + +Regular Closed Plane Curve Reference + +* Regular Closed Plane Curve Data Members:: +* Querying Regular Closed Plane Curves:: +* Regular Closed Plane Curve Intersections:: +* Regular Closed Plane Curve Segments:: + +Ellipse Reference + +* Ellipse Data Members:: +* Ellipse Constructors and Setting Functions:: +* Performing Transformations on Ellipses:: +* Ellipse Operators:: +* Labeling Ellipses:: +* Affine Transformations for Ellipses:: +* Querying Ellipses:: +* Returning Elements and Information for Ellipses:: +* Solving Ellipses:: +* Rectangles for Ellipses:: + +Circle Reference + +* Circle Data Members:: +* Circle Constructors and Setting Functions:: +* Circle Operators:: +* Querying Circles:: +* Circle Intersections:: + +Pattern Reference + +* Plane Tesselations:: +* Roulettes and Involutes:: + +Roulettes and Involutes + +* Epicycloids:: + +Solid Reference + +* Solid Data Members:: +* Solid Constructors and Setting Functions:: +* Solid Destructor:: +* Solid Operators:: +* Copying Solids:: +* Setting Solid Members:: +* Querying Solids:: +* Returning Elements and Information Solids:: +* Showing Solids:: +* Affine Transformations for Solids:: +* Applying Transformations to Solids:: +* Outputting Solids:: +* Drawing and Filling Solids:: +* Clearing Solids:: + +Returning Elements and Information + +* Getting Shape Centers Solids:: +* Getting Shapes Solids:: + +Faced Solid Reference + +* Solid_Faced Data Members:: + +Cuboid Reference + +* Cuboid Data Members:: +* Cuboid Constructors and Setting Functions:: +* Cuboid Operators:: + +Polyhedron Reference + +* Polyhedron Data Members:: +* Regular Platonic Polyhedra:: +* Semi-Regular Archimedean Polyhedra:: + +Regular Platonic Polyhedra + +* Tetrahedron:: +* Dodecahedron:: +* Icosahedron:: + +Tetrahedron + +* Tetrahedron Data Members:: +* Tetrahedron Constructors and Setting Functions:: +* Tetrahedron Net:: + +Dodecahedron + +* Dodecahedron Data Members:: +* Dodecahedron Constructors and Setting Functions:: +* Dodecahedron Net:: + +Icosahedron + +* Icosahedron Data Members:: +* Icosahedron Constructors and Setting Functions:: +* Icosahedron Net:: + +Semi-Regular Archimedean Polyhedra + +* Truncated Octahedron:: + +Truncated Octahedron + +* Truncated Octahedron Data Members:: +* Truncated Octahedron Net:: + +Utility Functions + +* Perspective Functions:: + + +File: 3DLDF.info, Node: Introduction, Next: Contributing to 3DLDF, Prev: Top, Up: Top + +Introduction +************ + + 3DLDF is a free software package for three-dimensional drawing +written by Laurence D. Finston, who is also the author of this manual. +It is written in C++ using CWEB and it outputs MetaPost code. + + 3DLDF is a GNU package. It is part of the GNU Project of the Free +Software Foundation and is published under the GNU General Public +License. See the website `http://www.gnu.org' for more information. +3DLDF is available for downloading from `http://ftp.gnu.org/gnu/3dldf'. +The official 3DLDF website is `http://www.gnu.org/software/3dldf'. +More information about 3DLDF can be found at the author's website: +`http://wwwuser.gwdg.de/~lfinsto1'. + + Please send bug reports to: + + and + + Two other mailing lists may be of interest to users of 3DLDF: + is for people to ask other users for help and + is for sending announcements to users. To +subscribe, send an email to the appropriate mailing list or lists with +the word "subscribe" as the subject. The author's website is +`http://wwwuser.gwdg.de/~lfinsto1'. + + My primary purpose in writing 3DLDF was to make it possible to use +MetaPost for three-dimensional drawing. I've always enjoyed using +MetaPost, and thought it was a shame that I could only use it for making +two-dimensional drawings. 3DLDF is a front-end that operates on +three-dimensional data, performs the necessary calculations for the +projection onto two dimensions, and writes its output in the form of +MetaPost code. + + While 3DLDF's data types and operations are modelled on those of +Metafont and MetaPost, and while the only form of output 3DLDF currently +produces is MetaPost code, it is nonetheless not in principle tied to +MetaPost. It could be modified to produce PostScript code directly, or +output in other formats. It would also be possible to modify 3DLDF so +that it could be used for creating graphics interactively on a terminal, +by means of an appropriate interface to the computer's graphics +hardware. + + The name "3DLDF" ("3D" plus the author's initials) was chosen +because, while not pretty, it's unlikely to conflict with any of the +other programs called "3D"-something. + +* Menu: + +* Sources of Information:: +* About This Manual:: +* CWEB Documentation:: +* Metafont and MetaPost:: +* Caveats:: +* Ports:: + + +File: 3DLDF.info, Node: Sources of Information, Next: About This Manual, Prev: Introduction, Up: Introduction + +Sources of Information +====================== + + This handbook, and the use of 3DLDF itself, presuppose at least some +familiarity on the part of the reader with Metafont, MetaPost, CWEB, +and C++ . If you are not familiar with any or all of them, I recommend +the following sources of information: + + +Knuth, Donald Ervin. The METAFONTbook. Computers and Typesetting; C. +Addison Wesley Publishing Company, Inc. Reading, Massachusetts 1986. + +Hobby, John D. A User's Manual for MetaPost. AT & T Bell Laboratories. +Murray Hill, NJ. No date. + +Knuth, Donald E. and Silvio Levy. The CWEB System of Structured +Documentation. Version 3.64--February 2002. + +Stroustrup, Bjarne. The C++ Programming Language. Special Edition. +Reading, Massachusetts 2000. Addison-Wesley. ISBN 0-201-70073-5. + + The manuals for MetaPost and CWEB are available from the +Comprehensive TeX Archive Network (CTAN). See one of the following web +sites for more information: + +Germany + `http://dante.ctan.org', `http://ftp.dante.de' + `http://www.dante.de'. + +United Kingdom + `http://www.cam.ctan.org' + `http://ftp.tex.ac.uk'. + +USA + `http://www.tug.ctan.org' + `http://www.ctan.tug.org'. + + +File: 3DLDF.info, Node: About This Manual, Next: CWEB Documentation, Prev: Sources of Information, Up: Introduction + +About This Manual +================= + + This manual has been created using Texinfo, a documentation system +which is part of the GNU Project, whose main sponsor is the Free +Software Foundation. + + For more information about Texinfo, see: + + +Stallmann, Richard M. and Robert J. Chassell. Texinfo. The GNU +Documentation Format. The Free Software Foundation. Boston 1999. + + For more information about the GNU Project and the Free Software +Foundation, see the following web site: `http://www.gnu.org'. + + Texinfo can be used to generate online and printed documentation from +the same input files. This manual is currently designed for printing +_only_. It contains a large amount of TeX text, including the +illustrations, which would be lost if the input files were used to +generate an online version of this manual in its current form. I plan +to make the changes necessary in order to make it possible to generate +online documentation in the not-too-distant future. + + The edition of this manual is 1.1.4 and it documents version 1.1.4 +of 3DLDF. The edition number of the manual and the version number of +the program are the same (as of 10 December 2003), but may diverge at a +later date. + + Note that "I", "me", etc., in this manual refers to Laurence D. +Finston, so far the sole author of both 3DLDF and this manual. +"Currently" and similar formulations refer to version 1.1.4 of 3DLDF as +of 10 December 2003. + + This manual is intended for both beginning and advanced users of +3DLDF. So, if there's something you don't understand, it's probably +best to skip it and come back to it later. Some of the more difficult +points, or ones that presuppose familiarity with features not yet +described, are in the footnotes. + + I firmly believe that an adequate program with good documentation is +more useful than a great program with poor or no documentation. The +ideal case, of course, is a great program with great documentation. I'm +sorry to say, that this manual is not yet as good as I'd like it to be. +I apologize for the number of typos and other errors. I hope they don't +detract too much from its usefulness. I would have liked to have +proofread and corrected it again before publication, but for reasons +external to 3DLDF, it is necessary for me to publish now. I plan to set +up an errata list on the official 3DLDF website +(http://www.gnu.org/software/3dldf), and/or my own website +(http://wwwuser.gwdg.de/~lfinsto1). + + Unless I've left anything out by mistake, this manual documents all +of the data types, constants and variables, namespaces, and functions +defined in 3DLDF. However, some of the descriptions are terser than I +would like, and I'd like to have more examples and illustrations. There +is also more to be said on a number of topics touched on in this +manual, and some topics I haven't touched on at all. In general, while +I've tried to give complete information on the "what and how", the "why +and wherefore" has sometimes gotten short shrift. I hope to correct +these defects in future editions. + +* Menu: + +* Manual Conventions:: +* Illustrations:: + + +File: 3DLDF.info, Node: Manual Conventions, Next: Illustrations, Prev: About This Manual, Up: About This Manual + +Conventions +----------- + + Data types are formatted like this: `int', `Point', `Path'. +Plurals are formatted in the same way: `ints', `Points', `Paths'. It +is poor typographical practice to typeset a single word using more than +one font, e.g., `int's, `Point's, `Path's. This applies to data types +whose plurals do not end in "s" as well, e.g., the plural of the C++ +`class Polyhedron' is `Polyhedra'. + + When C++ functions are discussed in this manual, I always include a +pair of parentheses to make it clear that the item in question is a +function and not a variable, but I generally do not include the +arguments. For example, if I mention the function `foo()', this +doesn't imply that `foo()' takes no arguments. If it were appropriate, +I would include the argument type: + + foo(int) + +or the argument type and a placeholder name: + + foo(int arg) + +or I would write + + foo(void) + +to indicate that `foo()' takes no arguments. Also, I generally don't +indicate the return type, unless it is relevant. If it is a member +function of a class, I may indicate this, e.g.,, `bar_class::foo()', or +not, depending on whether this information is relevant. This convention +differs from that used in the *Note Function Index::, which is generated +automatically by Texinfo. There, only the name of the function appears, +without parentheses, parameters, or return values. The class type of +member functions may appear in the Function Index, (e.g., +`bar_class::foo'), but only in index entries that have been entered +explicitly by the author; such entries are not generated by Texinfo +automatically. + + Examples are formatted as follows: + + Point p0(1, 2, 3); + Point p1(5, 6, 7.9); + Path pa(p0, p1); + p0.show("p0:"); + -| p0: (1, 2, 3) + + The beautiful mathematical typesetting produced by TeX unfortunately +does not appear in the Info and HTML versions of this manual. In +these, the following symbols are used to replace the proper +mathematical symbols. + +^ + Precedes a superscript. For example, read `a^2' as "a squared". + +_ + Precedes a subscript. For example, read `x_1' as "x sub one". + +* + Multiplication. For example, read `x * y' as "x times y". + +sqrt() + The square root function. For example, read `sqrt(x)' as "the + square root of x". + + In addition, examples can contain the following symbols: + +-| + Indicates output to the terminal when 3DLDF is run. + +=> + Indicates a result of some sort. It may precede a illustration + generated by the code in the example. + +error--> + Indicates that the following text is an error message. + + This manual does not use all of the symbols provided by Texinfo. If +you find a symbol you don't understand in this manual (which shouldn't +happen), see page 103 of the Texinfo manual. + + +Symbols: +N + The set of the natural numbers {0, 1, 2, 3, 4, ...} + +I + The set of the integers {..., -3, -2, -1, 0, 1, 2, 3, 4, ...} + +R + The set of the real numbers. + + +File: 3DLDF.info, Node: Illustrations, Prev: Manual Conventions, Up: About This Manual + +Illustrations +------------- + + The illustrations in this manual have been created using 3DLDF. The +code that generates them is in the Texinfo files themselves, that +contain the text of the manual. Texinfo is based on TeX, so it's +possible to make use of the latter's facility for writing ASCII text to +files using TeX's `\write' command. + + Please note that the figures cannot be shown in the Info or HTML +output formats! + + If you have problems including the illustrations in the printed +version, for example, if your installation doesn't have `dvips', look +for the following lines in `3DLDF.texi': + + \doepsftrue %% One of these two lines should be commented-out. + %\doepsffalse + +Now, remove the `%' from in front of `\doepsffalse' and put one in +front of `\doepsftrue'. This will prevent the illustrations from being +included. This should only be done as a last resort, however, because +it will make it difficult if not impossible to understand this manual. + + The C++ code in an example is not always the complete code used to +create the illustration that follows it, since the latter may be +cluttered with commands that would detract from the clarity of the +example. The actual code used always follows the example in the Texinfo +source file, so the latter may be referred to, if the reader wishes to +see exactly what code was used to generate the illustration. + + You may want to skip the following paragraphs in this section, if +you're reading this manual for the first time. Don't worry if you +don't understand it, it's meaning should become clear after reading the +manual and some experience with using 3DLDF. + + The file `3DLDF.texi' in the directory `3DLDF-1.1.4/DOC/TEXINFO', +the driver file for this manual, contains the following TeX code: + + \newif\ifmakeexamples + \makeexamplestrue %% One of these two lines should be commented-out. + %\makeexamplesfalse + +When `texi2dvi' is run on `3DLDF.texi', `\makeexamplestrue' is not +commented-out, and `\makeexamplesfalse' is, the C++ code for the +illustrations is written to the file `examples.web'. If the EPS files +don't already exist (in the directory `3DLDF-1.1.4/DOC/TEXINFO/EPS'), +the TeX macro `\PEX', which includes them in the Texinfo files, will +signal an error each time it can't find one. Just type `s' at the +command line to tell TeX to keep going. If you want to be sure that +these are indeed the only errors, you can type `' after each +one instead. + + `texi2dvi 3DLDF.texi' also generates the file `extext.tex', which +contains TeX code for including the illustrations by themselves. + + `examples.web' must now be moved to `3DLDF-1.1.4/CWEB/' and +ctangled, `examples.c' must compiled, and 3DLDF must be relinked. +`ctangle examples' also generates the header file `example.h', which is +included in `main.web'. Therefore, if the contents of `examples.h' have +changed since the last time `main.web' was ctangled, `main.web' will +have to be ctangled, and `main.c' recompiled, before `3dldf' is +relinked.(1) + + Running `3dldf' and MetaPost now generates the EPS (Encapsulated +PostScript) files `3DLDFmp.1' through (currently) `3DLDFmp.199' for the +illustrations. They must be moved to `3DLDF-1.1.4/DOC/TEXINFO/EPS'. +Now, when `texi2dvi 3DLDF.texi' is run again, the `dvips' command +`\epsffile' includes the EPS files for the illustrations in the manual. +`3DLDF.texi' includes the line `\input epsf', so that `\epsffile' +works. Of course, `dvips' (or some other program that does the job) +must be used to convert `3DLDF.dvi' to a PostScript file. To see +exactly how this is done, take a look at the `.texi' source files of +this manual.(2) + + In the `3DLDF.texi' belonging to the 3DLDF distribution, +`\makeexamplestrue' will be commented-out, and `makeexamplesfalse' +won't be, because the EPS files for the illustrations are included in +the distribution. + + The version of `examples.web' in `3DLDF-1.1.4/CWEB' merely includes +the files `subex1.web' and `subex2.web'. If you rename +`3DLDF-1.1.4/CWEB/exampman.web' to `examples.web', you can generate the +illustrations. + + ---------- Footnotes ---------- + + (1) `ctangle' creates `.c' from `.web', so the +compiler must compile the C++ files using the `-x c++' option. +Otherwise, it would handle them as if they contained C code. + + (2) If you want to try generating the illustrations yourself, you +can save a little run-time by calling `tex 3DLDF.texi' the first time, +rather than `texi2dvi'. The latter program runs TeX twice, because it +needs two passes in order to generate the contents, indexing, and cross +reference information (and maybe some other things, too). + + +File: 3DLDF.info, Node: CWEB Documentation, Next: Metafont and MetaPost, Prev: About This Manual, Up: Introduction + +CWEB Documentation +================== + + As mentioned above, 3DLDF has been programmed using CWEB, which is a +"literate programming" tool developed by Donald E. Knuth and Silvio +Levy. *Note Sources of Information::, for a reference to the CWEB +manual. Knuth's `TeX--The Program' and `Metafont--The Program' both +include a section "How to read a WEB" (pp. x-xv, in both volumes). + + CWEB files combine source code and documentation. Running `ctangle' +on a CWEB file, for example, `main.web', produces the file `main.c' +containing C or C++ code. Running `cweave main.web' creates a TeX +file with pretty-printed source code and nicely formatted +documentation. I find that using CWEB makes it more natural to +document my code as I write it, and makes the source files easier to +read when editing them. It does have certain consequences with regard +to compilation, but these are taken care of by `make'. *Note Adding a +File::, and *Note Changes::, for more information. + + The CWEB files in the directory `3DLDF-1.1.4/CWEB/' contain the +source code for 3DLDF. The file `3DLDFprg.web' in this directory is +only ever used for cweaving; it is never ctangled and contains no C++ +code for compilation. It does, however, include all of the other CWEB +files, so that `cweave 3DLDFprg.web' generates the TeX file containing +the complete documentation of the source code of 3DLDF. + + The files `3DLDF-1.1.4/CWEB/3DLDFprg.tex', +`3DLDF-1.1.4/CWEB/3DLDFprg.dvi', and `3DLDF-1.1.4/CWEB/3DLDFprg.ps' are +included in the distribution of 3DLDF as a convenience. However, users +may generate them themselves, should there be some reason for doing so, +by entering `make ps' from the command line of a shell from the working +directory `3DLDF-1.1.4/' or `3DLDF-1.1.4/CWEB'. Alternatively, the +user may generate them by hand from the working directory +`3DLDF-1.1.4/CWEB/' in the following way: + + 1. `cweave 3DLDFprg.web' generates `3DLDFprg.tex'. + + 2. `tex 3DLDFprg' or `tex 3DLDFprg.tex' generates `3DLDFprg.dvi'. + + 3. `dvips -o 3DLDFprg.ps 3DLDFprg' (possibly with additional options) + generates `3DLDFprg.ps'. + + 4. `lpr -P<_print queue_> 3DLDFprg.ps' sends `3DLDFprg.ps' to a + printer, on a UNIX or UNIX-like system. + + The individual commands may differ, depending on the system you're +using. + + +File: 3DLDF.info, Node: Metafont and MetaPost, Next: Caveats, Prev: CWEB Documentation, Up: Introduction + +Metafont and MetaPost +===================== + + Metafont is a system created by Donald E. Knuth for generating +fonts, in particular for use with TeX, his well-known typsetting +system.(1) Expressed in a somewhat simplified way, Metafont is a +system for programming curves, which are then digitized and output +in the form of run-time encoded bitmaps. (See Knuth's `The +Metafontbook' for more information). + + John D. Hobby modified Metafont's source code to create +MetaPost, which functions in much the same way, but outputs +encapsulated PostScript (EPS) files instead of bitmaps. MetaPost is +very useful for creating graphics and is a convenient +interface to PostScript. It is also easy both to imbed TeX code in +MetaPost programs, for instance, for typesetting labels, and to +include MetaPost graphics in ordinary TeX files, e.g., by using +`dvips'.(2) Apart from simply printing the PostScript file output by +`dvips', there are many programs that can process ordinary or +encapsulated PostScript files and convert them to other formats. Just +two of the many possibilities are ImageMagick and GIMP, both of which +can be used to create animations from MetaPost graphics. + + However, MetaPost inherited a significant limitation from +Metafont: it's not possible to use it for making three-dimensional +graphics, except in a very limited way. One insuperable problem is the +severe limitation on the magnitude of user-defined numerical variables +in Metafont and MetaPost.(3) This made sense for Metafont's and +MetaPost's original purposes, but they make it impossible to +perform the calculations needed for 3D graphics. + + Another problem is the data types defined in Metafont: Points are +represented as pairs of real values and affine +transformations as sets of 6 real values. This corresponds to the +representation of points and affine transformations in the plane as a +two-element vector on the one hand and a six element matrix on +the other. While it is possible to work around the limitation +imposed by having points be represented by only two values, it is +impracticable in the case of the transformations. + + For these reasons, I decided to write a program that would behave +more or less like Metafont, but with suitable extensions, and the +ability to handle three dimensional data; namely 3DLDF. It stores the +data and performs the transformations and other necessary calculations +and is not subject to the limitations of MetaPost and its data types. +Upon output, it performs a perspective transformation, converting the +3D image into a 2D one. The latter can now be expressed as an ordinary +MetaPost program, so 3DLDF writes its output as MetaPost code to a file. + + In the following, it may be a little unclear why I sometimes refer to +Metafont and sometimes to MetaPost. The reason is that Metafont +inherited much of its functionality from Metafont. Certain operations +in Metafont have no meaning in MetaPost and so have been removed, while +MetaPost's function of interfacing with PostScript has caused other +operations to be added. For example, in MetaPost, `color' is a data +type, but not in Metafont. Unless otherwise stated, when I refer to +Metafont, it can be assumed that what I say applies to MetaPost as well. +However, when I refer to MetaPost, it will generally be in connection +with features specific to MetaPost. + + ---------- Footnotes ---------- + + (1) Knuth, Donald E. _The TeXbook_. Computers and Typesetting; A. +Addison-Wesley Publishing Company. Reading, Massachusetts 1986. + + (2) Rokicki, Tomas. _Dvips: A DVI-to-PostScript Translator_ February +1997. Available from CTAN. *Note Sources of Information::. + + (3) "<...> METAFONT deals only with numbers in a limited range: A +numeric token must be less than 4096, and its value is always rounded +to the nearest multiple of 1 / 65536." Knuth, The METAFONTbook, p. 50. + + +File: 3DLDF.info, Node: Caveats, Next: Ports, Prev: Metafont and MetaPost, Up: Introduction + +Caveats +======= + +* Menu: + +* Accuracy:: +* No Input Routine:: + + +File: 3DLDF.info, Node: Accuracy, Next: No Input Routine, Prev: Caveats, Up: Caveats + +Accuracy +-------- + + When 3DLDF is run, it uses the three-dimensional data contained in +the user code to create a two-dimensional projection. Currently, this +can be a perspective projection, or a parallel projection onto one of +the major planes. MetaPost code representing this projection is then +written to the output file. 3DLDF does no "scan conversion",(1) so all +of the curves in the projection are generated by means of the +algorithms MetaPost inherited from Metafont. These algorithms, +however, are designed to find the "most pleasing curve"(2) given one or +more two-dimensional points and connectors; they do not account for +the the fact that the two-dimensional points are projections of +three-dimensional ones. This can lead to unsatisfactory results, +especially where extreme foreshortening occurs. In particular, `curl', +`dir', `tension', and control points should be used cautiously, or +avoided altogether, when specifying connectors. + + 3DLDF operates on the assumption that, given an adequate number +of points, MetaPost will produce an adequate approximation to the +desired curve _in perspective_, since the greater the number of points +given for a curve, the less "choice" MetaPost has for the path through +them. My experience with 3DLDF bears this out. Generally, the +curves look quite good. Where problems arise, it usually helps to +increase the number of points in a curve. + + A more serious problem is the imprecision resulting from the +operation of rotation. Rotations use the trigonometric functions, +which return approximate values. This has the result that points that +should have identical coordinate values, sometimes do not. This has +consequences for the functions that compare points. The more rotations +are applied to points, the greater the divergence between their actual +coordinate values, and the values they should have. So far, I haven't +found a solution for this problem. On the other hand, it hasn't yet +affected the usability of 3DLDF. + + ---------- Footnotes ---------- + + (1) "Scan conversion" is the process of digitizing geometric data. +The ultimate result is a 2 X 2 map of pixels, which can be used for +printing or representing the projection on a computer screen. The +number of pixels per a given unit of measurement is the "resolution" of +a given output device, e.g., 300 pixels per inch. + + (2) Knuth, `The METAFONTbook', Chapter 14, p. 127. + + +File: 3DLDF.info, Node: No Input Routine, Prev: Accuracy, Up: Caveats + +No Input Routine +---------------- + + 3DLDF does not yet include a routine for reading input files. This +means that user code must be written in C++ , compiled, and linked +with the rest of the program. I admit, this is not ideal, and +writing an input routine for user code is one of the next things I plan +to add to 3DLDF. + + I plan to use Flex and Bison to write the input routine.(1) The +syntax of the input code should be as close as possible to that of +MetaPost, while taking account of the differences between MetaPost and +3DLDF. + + For the present, however, the use of 3DLDF is limited to those who +feel comfortable using C++ and compiling and relinking programs. +Please don't be put off by this! It's not so difficult, and `make' +does most of the work of recompiling and running 3DLDF. *Note +Installing and Running 3DLDF::, for more information. + + ---------- Footnotes ---------- + + (1) Flex is a program for generating text scanners and Bison is a +parser generator. They are available from . + + +File: 3DLDF.info, Node: Ports, Prev: Caveats, Up: Introduction + +Ports +===== + + I originally developed 3DLDF on a DECalpha Personal Workstation with +two processors, under Tru64 Unix 5.1, using the DEC C++ compiler. I +then ported it to a PC Pentium 4 under Linux 2.4, using GCC 2.95.3, and +a PC Pentium II XEON under Linux 2.4, using GCC 3.3. I am currently +only maintaining the last version. I do not believe that it's +worthwhile to maintain a version for GCC 2.95. While I would like +3DLDF to run on as many platforms as possible, I would rather spend my +time developing it than porting it. This is something where I would be +grateful for help from other programmers. + + The global constant `MAX_REAL', defined in `pspglb.web', is +initialized using system dependent code. *Note Global Constants and +Variables::. Currently, 3DLDF can only be built correctly on a 32-bit +little-endian architecture. You don't necessarily need to know what +this means; If `MAX_REAL' cannot be set correctly, 3DLDF will exit +with an error message when you try to run it. Intel and VAX are +little-endian, while Motorola and SPARC are big-endian, as is the +DECalpha mentioned above. If your computer is big-endian, you will need +to fix the way `MAX_REAL' is initialized, or get somebody to do it for +you. I plan to fix this soon, so that it will work on other +architectures soon. When I have, I will supply a patch. + + Although I am no longer supporting ports to other systems, I have +left some conditionally compiled code for managing platform +dependencies in the CWEB sources of 3DLDF. This may make it easier for +other people who want to port 3DLDF to other platforms. + + Currently, the files `io.web', `loader.web', `main.web', +`points.web', and `pspglb.web' contain conditionally compiled code, +depending on which compiler, or in the case of GCC, which version of +the compiler, is used. The DEC C++ compiler defines the preprocessor +macro `__DECCXX' and GCC defines `__GNUC__'. In order to distinguish +between GCC 2.95.3 and GCC 3.3, I've added the macros `LDF_GCC_2_95' +and `LDF_GCC_3_3' in `loader.web', which should be defined or +undefined, depending on which compiler you're using. In the +distribution, `LDF_GCC_3_3' is defined and `LDF_GCC_2_95' is +undefined, so if you want to try using GCC 2.95, you'll have to change +this (it's not guaranteed to work). + + 3DLDF 1.1.4 now uses Autoconf and Automake, and the `configure' +script generates a `config.h' file, which is now included in +`loader.web'. Some of the preprocessor macros defined in `config.h' +are used to conditionally include library header files, but so far, +there is no error handling code for the case that a file can't be +included. I hope to improve the way 3DLDF works together with Autoconf +and Automake in the near future. + + +File: 3DLDF.info, Node: Contributing to 3DLDF, Next: Using 3DLDF, Prev: Introduction, Up: Top + +Contributing to 3DLDF +===================== + + So far, I've been the sole author and user of 3DLDF. I would be +very interested in having other programmers contribute to it. I would +be particularly interested in help in making 3DLDF conform as closely +as possible to the GNU Coding Standards. I would be grateful if +someone would write proper Automake and Autoconf files, since I haven't +yet learned how to do so (I'm working on it). + + *Note Introduction::, for information on how to contact the author. + + +File: 3DLDF.info, Node: Using 3DLDF, Next: Points, Prev: Contributing to 3DLDF, Up: Top + +Using 3DLDF +*********** + + Since 3DLDF does not yet have an input routine, user code must be +written in C++ (in `main.web', or some other file) and compiled. +Then, 3DLDF must be relinked, together with the new file of object code +resulting from the compilation. For now, the important point is that +the text of the examples in this manual represent C++ code. *Note +Installing and Running 3DLDF::, for more information. + + +File: 3DLDF.info, Node: Points, Next: Transforming Points, Prev: Using 3DLDF, Up: Top + +Points +****** + +* Menu: + +* Declaring and Initializing Points:: +* Setting and Assigning to Points:: + + +File: 3DLDF.info, Node: Declaring and Initializing Points, Next: Setting and Assigning to Points, Prev: Points, Up: Points + +Declaring and Initializing Points +================================= + + The most basic drawable object in 3DLDF is `class Point'. It is +analogous to `pair' in Metafont. For example, in Metafont one can +define a `pair' using the "z" syntax as follows: + + z0 = (1cm, 1cm); + +There are other ways of defining `pairs' in Metafont (and MetaPost), +but this is the usual way. + + In 3DLDF, a Point is declared and initialized as follows: + + Point pt0(1, 2, 3); + + This simple example demonstrates several differences between Metafont +and 3DLDF. First of all, there is no analog in 3DLDF to Metafont's "z" +syntax. If I want to have `Points' called "`pt0'", "`pt1'", "`pt2'", +etc., then I must declare each of them to be a `Point': + + Point pt0(10, 15, 2); + Point pt1(13, 41, 5.5); + Point pt2(62.9, 7.02, 8); + + Alternatively, I could declare an array of `Points': + + Point pt[3]; + +Now I can refer to `pt[0]', `pt[1]', and `pt[2]'. + +In the Metafont example, the x and y-coordinates of the `pair z0' are +specified using the unit of measurement, in this case, centimeters. +This is currently not possible in 3DLDF. The current unit of +measurement is stored in the static variable `Point::measurement_units', +which is a `string'. Its default value is `"cm"' for "centimeters". +At present, it is best to stick with one unit of measurement for a +drawing. After I've defined an input routine, 3DLDF should handle +units of measurement in the same way that Metafont does. + + Another difference is that the `Points' `pt0', `pt1', and `pt2' have +three coordinates, x, y, and z, whereas `z0' has only two, x and y. +Actually, the difference goes deeper than this. In Metafont, a `pair' +has two parts, `xpart' and `ypart', which can be examined by the user. +In 3DLDF, a `Point' contains the following sets of coordinates: + + world_coordinates + user_coordinates + view_coordinates + projective_coordinates + +These are sets of 3-dimensional "homogeneous" coordinates, which means +that they contain four coordinates: x, y, z, and w. Homogeneous +coordinates are used in the affine and perspective transformations +(*note Transforms::). + + Currently, only `world_coordinates' and `projective_coordinates' are +used in 3DLDF. The `world_coordinates' refer to the position of a +`Point' in 3DLDF's basic, unchanging coordinate system. The +`projective_coordinates' are the coordinates of the two-dimensional +projection of the `Point' onto a plane. This projection is what is +ultimately printed out or displayed on the computer screen. Please +note, that when the coordinates of a `Point' are referred to in this +manual, the `world_coordinates' are meant, unless otherwise stated. + + `Points' can be declared and their values can be set in different +ways. + + Point pt0; + Point pt1(1); + Point pt2(2.3, 52); + Point pt3(4.5, 7, 13.205); + + `pt0' is declared without any arguments, i.e., using the default +constructor, so the values of its x, y, and z-coordinates are all 0. + + `pt1' is declared and initialized with one argument for the +x-coordinate, so its y and z-coordinates are initialized with the +values of `CURR_Y' and `CURR_Z' respectively. The latter are static +constant data members of class `Point', whose values are 0 by default. +They can be reset by the user, who should make sure that they have +sensible values. + + `pt2' is declared and initialized with two arguments for its x and +y-coordinates, so its z-coordinate is initialized to the value of +`CURR_Z'. Finally, `pt3' has an argument for each of its coordinates. + + Please note that `pt0' is constructed using a the default +constructor, whereas the other `Points' are constructed using a +constructor with one required argument (for the x-coordinate), and two +optional arguments (for the y and z-coordinates). The default +constructor always sets all the coordinates to 0, irrespective of the +values of `CURR_Y' and `CURR_Z'. + + +File: 3DLDF.info, Node: Setting and Assigning to Points, Prev: Declaring and Initializing Points, Up: Points + +Setting and Assigning to Points +=============================== + + It is possible to change the value of the coordinates of `Points' by +using the "assignment operator" `=' (`Point::operator=()') or the +function `Point::set()' (with appropriate arguments): + + Point pt0(2, 3.3, 7); + Point pt1; + pt1 = pt0; + pt0.set(34, 99, 107.5); + pt0.show("pt0:"); + -| pt0: (34, 99, 107.5) + pt1.show("pt1:"); + -| pt1: (2, 3.3, 7) + + In this example, `pt0' is initialized with the coordinates `(2, 3.3, +7)', and `pt1' with the coordinates `(0, 0, 0)'. `pt1 = pt0' causes +`pt1' to have the same coordinates as `pt0', then the coordinates of +`pt0' are changed to `(34, 99, 107.5)'. This doesn't affect `pt1', +whose coordinates remain `(2, 3.3, 7)'. + + Another way of declaring and initializing `Points' is by using the +"copy constructor": + + Point pt0(1, 3.5, 19); + Point pt1(pt0); + Point pt2 = pt0; + Point pt3; + pt3 = pt0; + + In this example, `pt1' and `pt2' are both declared and initialized +using the copy constructor; `Point pt2 = pt0' does not invoke the +assignment operator. `pt3', on the other hand, is declared using the +default constructor, and not initialized. In the following line, `pt3 += pt0' does invoke the assignment operator, thus resetting the +coordinate values of `pt3' to those of `pt0'. + + +File: 3DLDF.info, Node: Transforming Points, Next: Transforms, Prev: Points, Up: Top + +Transforming Points +******************* + + `Points' don't always have to remain in the same place. There are +various ways of moving or _transforming_ them: + * Shifting. This is often called "translating", but the operation + in Metafont that performs translation is called `shift', so I call + it "shifting". + + * Scaling. + + * Shearing. + + * Rotating about an axis. + + + `class Point' has several member functions for applying these +"affine transformations"(1) to a `Point'. Most of the arguments to +these functions are of type `real'. As you may know, there is no such +data type in C++ . I have defined `real' using `typedef' to be either +`float' or `double', depending on the value of a preprocessor switch +for conditional compilation.(2) 3DLDF uses many `real' values and I +wanted to be able to change the precision used by making one change (in +the file `pspglb.web') rather than having to examine all the places in +the program where `float' or `double' are used. Unfortunately, setting +`real' to `double' currently doesn't work. + +* Menu: + +* Shifting Points:: +* Scaling Points:: +* Shearing Points:: +* Rotating Points:: + + ---------- Footnotes ---------- + + (1) "Affine transformations" are operations that have the property +that parallelity of lines is maintained. That is, if two lines (each +determined by two points) are parallel before the transformation, they +will also be parallel after the transformation. Affine transformations +are discussed in many books about computer graphics and geometry. For +3DLDF, I've mostly used Jones, `Computer Graphics through Key +Mathematics' and Salomon, `Computer Graphics and Geometric Modeling'. + + (2) I try to avoid the use of preprocessor macros as much as +possible, for the reasons given by Stroustrup in the `The C++ +Programming Language', section 7.8, pp. 160-163, and `Design and +Evolution of C++ ', Chapter 18, pp. 423-426. However, conditional +compilation is one of the tasks that only the preprocessor can perform. + + +File: 3DLDF.info, Node: Shifting Points, Next: Scaling Points, Prev: Transforming Points, Up: Transforming Points + +Shifting +======== + + The function adds its arguments to the corresponding +`world_coordinates' of a `Point'. In the following example, the +function `show()' is used to print the `world_coordinates' of `p0' to +standard output. + + Point p0(0, 0, 0); + p0.shift(1, 2, 3); + p0.show("p0:"); + -| p0: (1, 2, 3) + p0.shift(10); + p0.show("p0:"); + -| p0: (11, 2, 3) + p0.shift(0, 20); + p0.show("p0:"); + -| p0: (11, 22, 3) + p0.shift(0, 0, 30); + p0.show("p0:"); + -| p0: (11, 22, 33) + +`shift' takes three `real' arguments, whereby the second and third are +optional. To shift a `Point' in the direction of the positive or +negative y-axis, and/or the positive or negative z-axis only, then a 0 +argument for the x direction, and possibly one for the y direction must +be used as placeholders, as in the example above. + + `shift()' can be invoked with a `Point' argument instead of `real' +arguments. In this case, the x, y, and z-coordinates of the argument +are used for shifting the `Point': + + Point a(10, 10, 10); + Point b(1, 2, 3); + a.shift(b); + a.show("a:") + -| a: (11, 12, 13) + + Another way of shifting `Points' is to use the binary `+=' operator +(`Point::operator+=()') with a `Point' argument. + + Point a0(1, 1, 1); + Point a1(2, 2, 2); + a0 += a1; + a0.show("a0:"); + -| a0: (3, 3, 3) + + +File: 3DLDF.info, Node: Scaling Points, Next: Shearing Points, Prev: Shifting Points, Up: Transforming Points + +Scaling +======= + + The function `scale()' takes three `real' arguments. The x, y, and +z-coordinates of the `Point' are multiplied by the first, second, and +third arguments respectively. Only the first argument is required; +the default for the others is 1. + + If one wants to perform scaling in either the y-dimension only, or +the y and z-dimensions only, a dummy argument of 1 must be passed for +scaling in the x-dimension. Similarly, if one wants to perform scaling +in the z-dimension only, dummy arguments of 1 must be passed for scaling +in the x and y-dimensions. + + Point p0(1, 2, 3); + p0.scale(2, 3, 4); + p0.show("p0:"); + -| p0: (2, 6, 12) + p0.scale(2); + p0.show("p0:"); + -| p0: (4, 6, 12) + p0.scale(1, 3); + p0.show("p0:"); + -| p0: (4, 18, 12) + p0.scale(1, 1, 3); + p0.show("p0:"); + -| p0: (4, 18, 36) + + +File: 3DLDF.info, Node: Shearing Points, Next: Rotating Points, Prev: Scaling Points, Up: Transforming Points + +Shearing +======== + + Shearing is more complicated than shifting or scaling. The function +`shear()' takes six `real' arguments. If p is a `Point', then +`p.shear(a, b, c, d, e, f)' sets x_p to x_p + ay_p + bz_p, y_p to y_p + +cx_p + dz_p, and z_p to z_p + ex_p + fy_p. In this way, each +coordinate of a `Point' is modified based on the values of the other +two coordinates, whereby the influence of the other coordinates on the +new value is weighted according to the arguments. + + Point p(1, 1, 1); + p.shear(1); + p.show("p:"); + -| p: (2, 1, 1) + p.set(1, 1, 1); + p.shear(1, 1); + p.show("p:"); + -| p: (3, 1, 1) + p.set(1, 1, 1); + p.shear(1, 1, 2, 2, 3, 3); + p.show("p:"); + -| p: (3, 5, 7) + + [next figure] demonstrates the effect of shearing the points of a +rectangle in the x-y plane. + + Point P0; + Point P1(3); + Point P2(3, 3); + Point P3(0, 3); + Rectangle r(p0, p1, p2, p3); + r.draw(); + Rectangle q(r); + q.shear(1.5); + q.draw(black, "evenly"); + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-10 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-10 --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-10 1970-01-01 01:00:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-10 2003-12-10 18:44:55.000000000 +0100 @@ -0,0 +1,1101 @@ +This is 3DLDF.info, produced by makeinfo version 4.5 from 3DLDF.texi. + +This is the 3DLDF User and Reference Manual, edition 1.1.4 for 3DLDF +1.1.4. This manual was last updated on 10 December 2003. 3DLDF is a +GNU package for three-dimensional drawing with MetaPost output. The +author is Laurence D. Finston. + + Copyright (C) 2003 Laurence D. Finston. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, and + no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License". + +INFO-DIR-SECTION GNU packages +START-INFO-DIR-ENTRY +* 3DLDF: (3DLDF). 3D drawing with MetaPost output. +END-INFO-DIR-ENTRY + + +File: 3DLDF.info, Node: Drawing and Filling Solids, Next: Clearing Solids, Prev: Outputting Solids, Up: Solid Reference + +Drawing and Filling +=================== + + - `const' virtual function: void draw ([const vector V = + `Colors::default_color_vector', [const string DDASHED = "", + [const string PPEN = "", [Picture& PICTURE = + `current_picture']]]]) + Draws the `Solid'. + + This function allocates a new `Solid', makes it a copy of `*this', + and puts a pointer to the copy onto `PICTURE.shapes'. The data + members of the `Shapes' belonging to the copy are set + appropriately, so that they can be drawn, when `Picture::output()' + is called. + + The `Colors' used for drawing the various `Paths', `Circles', + `Ellipses', etc., belonging to the `Solid' are passed in V. If + the `Solid' contains more `Shapes' than V contains pointers to + `Color', the `Color' pointed to by the last pointer on V is used + to draw the remaining `Shapes'. + + Currently, a `Solid' can only be drawn with a single dash pattern + (DDASHED), and pen (PPEN). + + - `const' virtual function: void fill ([const vector V = + `Colors::default_color_vector', [Picture& PICTURE = + `current_picture']]) + Fills the `Solid'. + + This function allocates a new `Solid' makes it a copy of `*this', + and puts a pointer to it onto PICTURE.`shapes'. The data members + of the `Shapes' belonging to the copy are set appropriately, so + that they can be filled, when `Picture::output()' is called. + + The `Colors' used for filling the various `Paths', `Circles', + `Ellipses', etc., belonging to the `Solid' are passed in V. If + the `Solid' contains more `Shapes' than V contains pointers to + `Color', the `Color' pointed to by the last pointer on V is used + to fill the remaining `Shapes'. + + - `const' virtual function: void filldraw ([const vector + DRAW_COLORS = Colors::default_color_vector, [const + vector FILL_COLORS = + Colors::background_color_vector, [const string DDASHED = "", + [const string PPEN = "", [Picture& PICTURE = + `current_picture']]]]]) + Filldraws the `Solid'. + + This function allocates a new `Solid', makes it a copy of `*this', + and puts a pointer to it onto `PICTURE.shapes'. The data members + of the `Shapes' belonging to the copy are set appropriately, so + that they can be filldrawn, when `Picture::output()' is called. + + The `Colors' used for drawing and filling the various `Paths', + `Circles', `Ellipses', etc., belonging to the `Solid' are passed + in DRAW_COLORS and FILL_COLORS. If the `Solid' contains more + `Shapes' than DRAW_COLORS contains pointers to `Color', the + `Color' pointed to by the last pointer on DRAW_COLORS is used to + draw the remaining `Shapes'. The same applies to `fill_colors'. + + Currently, a `Solid' can only be filldrawn with a single dash + pattern (DDASHED), and pen (PPEN). + + - `const' virtual function: void undraw ([const string DDASHED = "", + [const string PPEN = "", [Picture& PICTURE = + `current_picture']]]) + Undraws the `Solid'. + + This function allocates a new `Solid', makes it a copy of `*this', + and puts a pointer to it onto PICTURE.`shapes'. The data members + of the `Shapes' belonging to the copy are set appropriately, so + that they can be undrawn, when `Picture::output()' is called. + + A `Solid' can currently only be undrawn using a single dash + pattern (DDASHED), and pen (PPEN). + + - `const' virtual function: void unfill ([Picture& PICTURE = + `current_picture']) + Unfills the `Solid'. + + This function allocates a new `Solid' makes it a copy of `*this', + and puts a pointer to it onto PICTURE.`shapes'. The data members + of the `Shapes' belonging to the copy are set appropriately, so + that they can be unfilled, when `Picture::output()' is called. + + + - `const' virtual function: void unfilldraw ([const string DDASHED = + "", [const string PPEN = "", [Picture& PICTURE = + `current_picture']]]) + - `const' virtual function: void undraw ([const string DDASHED = "", + [const string PPEN = "", [Picture& PICTURE = + `current_picture']]]) + Unfilldraws the `Solid'. + + This function allocates a new `Solid', makes it a copy of `*this', + and puts a pointer to it onto PICTURE.`shapes'. The data members + of the `Shapes' belonging to the copy are set appropriately, so + that they can be unfilldrawn, when `Picture::output()' is called. + + A `Solid' can currently only be unfilldrawn using a single dash + pattern (DDASHED), and pen (PPEN). + + +File: 3DLDF.info, Node: Clearing Solids, Prev: Drawing and Filling Solids, Up: Solid Reference + +Clearing +======== + + - Virtual function: void clear (`void') + Calls `clear()' on all the `Shapes' belonging to the `Solid'. + Used in `Picture::clear()' for deallocating and destroying + `Solids'. + + Currently, .`clear()' always resolves to `Path::clear()', + since none of the other types of `Shape' that a `Solid' can + contain, e.g., `Ellipse', `Circle', etc., overloads + `Path::clear()'. + + +File: 3DLDF.info, Node: Faced Solid Reference, Next: Cuboid Reference, Prev: Solid Reference, Up: Top + +Faced Solid Reference +********************* + + Class `Solid_Faced' is defined in `solfaced.web'. It is derived +from `Solid' using public derivation. + + `Solid_Faced' currently has no member functions. It is intended for +use as a base class. The classes `Cuboid' and `Polyhedron' are derived +from `Solid_Faced'. *Note Cuboid Reference::, and *Note Polyhedron +Reference::. + +* Menu: + +* Solid_Faced Data Members:: + + +File: 3DLDF.info, Node: Solid_Faced Data Members, Prev: Faced Solid Reference, Up: Faced Solid Reference + +Data Members +============ + + - Protected variable: unsigned short faces + The number of faces of the `Solid_Faced'. + + - Protected variable: unsigned short vertices + The number of vertices of the `Solid_Faced'. + + - Protected variable: unsigned short edges + The number of edges of the `Solid_Faced'. + + +File: 3DLDF.info, Node: Cuboid Reference, Next: Polyhedron Reference, Prev: Faced Solid Reference, Up: Top + +Cuboid Reference +**************** + + Class `Cuboid' is defined in `cuboid.web'. It is derived from +`Solid_Faced' using public derivation. + +* Menu: + +* Cuboid Data Members:: +* Cuboid Constructors and Setting Functions:: +* Cuboid Operators:: + + +File: 3DLDF.info, Node: Cuboid Data Members, Next: Cuboid Constructors and Setting Functions, Prev: Cuboid Reference, Up: Cuboid Reference + +Data Members +============ + + - Protected variables: real height + - : real width + - : real depth + The height, width, and depth of the `Cuboid', respectively. + + Please note, that "`height'", "`width'", and "`depth'" are + conventional terms. There are no restrictions on the orientation + of a `Cuboid'. + + +File: 3DLDF.info, Node: Cuboid Constructors and Setting Functions, Next: Cuboid Operators, Prev: Cuboid Data Members, Up: Cuboid Reference + +Constructors and Setting Functions +================================== + + - Default constructor: void Cuboid (`void') + Creates an empty `Cuboid'. + + - Copy constructor: void Cuboid (const Cuboid& C) + Creates a new `Cuboid' and makes it a copy of C. + + - Constructor: void Cuboid (const Point& C, const real H, const real + W, const real D, [const real X = 0, [const real Y = 0, [const + real Z = 0]]]) + Creates a `Cuboid' with `center' at the origin, with `height' == + H, `width' == W, and `depth' == D. If X, Y, or Z is non-zero, the + `Cuboid' is rotated by the amounts indicated around the + corresponding main axes. Finally, the `Cuboid' is shifted such + that `center' comes to lie at C. + + Point P(-3, -2, 12); + Cuboid c(P, 3, 5, 2.93, 35, 10, 60); + + + - Static function: Cuboid* create_new_cuboid ([const Cuboid* C = 0]) + Dynamically allocates a new `Cuboid' on the free store and returns + a pointer to it. If a non-zero argument C is used, the new + `Cuboid' will be a copy of *C. + + - Destructor: void ~Cuboid (`void') + Deallocates the `Rectangles' pointed to by the pointers on + `rectangles' (a `Solid' data member), and calls + `rectangles.clear()'. `Cuboids' consist entirely of `Rectangles', + so nothing must be done to the other vectors. + + +File: 3DLDF.info, Node: Cuboid Operators, Prev: Cuboid Constructors and Setting Functions, Up: Cuboid Reference + +Operators +========= + + - Assignment operator: void operator= (const Cuboid& C) + Makes the `Cuboid' a copy of C. The old contents of `*this' are + deallocated (where necessary) and discarded. + + +File: 3DLDF.info, Node: Polyhedron Reference, Next: Utility Functions, Prev: Cuboid Reference, Up: Top + +Polyhedron Reference +******************** + + Class `Polyhedron' is defined in `polyhed.web'. It is derived from +`Solid_Faced' using public derivation. It is intended for use as a +base class for specific types of polyhedra. Currently, the classes +`Tetrahedron', `Dodecahedron', `Icosahedron', and `Trunc_Octahedron' +(truncated octahedron) are derived from `Polyhedron'. + + There is a great deal of work left to do on the polyhedra. + +* Menu: + +* Polyhedron Data Members:: +* Regular Platonic Polyhedra:: +* Semi-Regular Archimedean Polyhedra:: + + +File: 3DLDF.info, Node: Polyhedron Data Members, Next: Regular Platonic Polyhedra, Prev: Polyhedron Reference, Up: Polyhedron Reference + +Data Members +============ + + - Protected variable: unsigned short number_of_polygon_types + The number of different types of polygon making up the faces of a + `Polyhedron'. The Platonic polyhedra have only one type of face, + while the Archimedean can have more. + + - Protected variable: real face_radius + The radius of the sphere that touches the centers of the polygonal + faces of the polyhedron (_Inkugel_, in German). + + - Protected variable: real edge_radius + The radius of the sphere that touches the centers of the edges of + the polyhedron. + + - Protected variable: real vertex_radius + The radius of the sphere touching the vertices of the polyhedron + (_Umkugel_, in German). + + +File: 3DLDF.info, Node: Regular Platonic Polyhedra, Next: Semi-Regular Archimedean Polyhedra, Prev: Polyhedron Data Members, Up: Polyhedron Reference + +Regular Platonic Polyhedra +========================== + + 3DLDF currently has classes for three of the five regular Platonic +polyhedra: `Tetrahedron', `Dodecahedron', and `Icosahedron'. There is +no need for a special `Cube' class, because cubes can be created using +`Cuboid' with equal width, height, and depth arguments (*note Cuboid +Reference::). `Octahedron' is missing at the moment, but I plan to add +it soon. + +* Menu: + +* Tetrahedron:: +* Dodecahedron:: +* Icosahedron:: + + +File: 3DLDF.info, Node: Tetrahedron, Next: Dodecahedron, Prev: Regular Platonic Polyhedra, Up: Regular Platonic Polyhedra + +Tetrahedron +----------- + + Class `Tetrahedron' is defined in `polyhed.web'. It is derived from +`Polyhedron' using public derivation. + +* Menu: + +* Tetrahedron Data Members:: +* Tetrahedron Constructors and Setting Functions:: +* Tetrahedron Net:: + + +File: 3DLDF.info, Node: Tetrahedron Data Members, Next: Tetrahedron Constructors and Setting Functions, Prev: Tetrahedron, Up: Tetrahedron + +Data Members +............ + + - Protected static `const' variable: real dihedral_angle + The angle in radians between the faces of the `Tetrahedron', namely + 70 degrees 32' . Only the Platonic polyhedra have a single + dihedral angle, so `dihedral_angle' is not a member of + `Polyhedron'. This means that it must be a member of all of the + classes representing Platonic polyhedra. + + - Protected variable: real triangle_radius + The radius of the circle enclosing a triangular face of the + `Tetrahedron'. + + +File: 3DLDF.info, Node: Tetrahedron Constructors and Setting Functions, Next: Tetrahedron Net, Prev: Tetrahedron Data Members, Up: Tetrahedron + +Constructors and Setting Functions +.................................. + + - Default constructor: void Tetrahedron (`void') + Creates an empty `Tetrahedron'. + + - Constructor: void Tetrahedron (const Point& P, const real + DIAMETER_OF_TRIANGLE, [real ANGLE_X = 0, [real ANGLE_Y = 0, + [real ANGLE_Z = 0]]]) + Creates a `Tetrahedron' with its center at the origin. The faces + have enclosing circles of diameter DIAMETER_OF_TRIANGLE. If any + of ANGLE_X, ANGLE_Y, or ANGLE_Z is non-zero, the `Tetrahedron' is + rotated by the amounts specified around the corresponding axes. + Finally, if P is not the origin, the `Tetrahedron' is shifted such + that `center' comes to lie at P. + + The center of a `Tetrahedron' is the intersection of the line + segments connecting the vertices with the centers of the opposite + faces. + + Tetrahedron t(origin, 3); + t.draw(); + + Point P(1, 0, 1); + Tetrahedron t(P, 2.75, 30, 32.5, 20); + t.draw(); + + + - Setting function: void set (const Point& P, const real + DIAMETER_OF_TRIANGLE, [real ANGLE_X = 0, [real ANGLE_Y = 0, + [real ANGLE_Z = 0]]]) + Corresponds to the constructor above. + + +File: 3DLDF.info, Node: Tetrahedron Net, Prev: Tetrahedron Constructors and Setting Functions, Up: Tetrahedron + +Net +... + + - Static function: vector get_net (const real + TRIANGLE_DIAMETER) + Returns the "net" of the `Tetrahedron', i.e., the two-dimensional + pattern of triangles that can be folded into a model of a + tetrahedron.(1) The net lies in the x-z plane. The triangles have + enclosing circles of diameter TRIANGLE_DIAMETER. The center of + the middle triangle is at the origin. + + vector vrp = Tetrahedron::get_net(2); + for (vector::iterator iter = vrp.begin(); + iter != vrp.end(); + ++iter) + { + (**iter).draw(); + } + + This function is used in the non-default constructor. *Note + Polyhedron Reference; Regular Platonic Polyhedra; Tetrahedron; + Constructors and Setting Functions: Tetrahedron Constructors and + Setting Functions. The constructor starts with the net and + rotates three of the triangles about the adjacent vertices of the + middle triangle. Currently, all of the `Polyhedron' constructors + work this way. However, this is not ideal, because rotation uses + the sine and cosine functions, which cause inaccuracies to creep + in. I think there must be a better way of constructing + `Polyhedra', but I haven't found one yet. + + The `Polyhedron' constructors are also especially sensitive to + changes made to `Transform::align_with_axis()'. I have already + had to rewrite them twice, and since + `Transform::align_with_axis()' may need to be changed or rewritten + again, it's possible that the `Polyhedron' constructors will have + to be, too. It has also occurred in the past, that the `Polyhedra' + were constructed correctly on one platform, using a particular + compiler, but not on another platform, using a different compiler. + + - Static function: void draw_net (const real TRIANGLE_DIAMETER, [bool + MAKE_TABS = `true']) + Draws the net for a `Tetrahedron' in the x-y plane. The triangles + have enclosing circles of diameter TRIANGLE_DIAMETER. The origin + is used as the center of the middle triangle. The centers of the + triangles are numbered. If the argument MAKE_TABS is used, tabs + for gluing and/or sewing a cardboard model of the `Tetrahedron' + together will be drawn, too. The dots on the tabs mark where to + stick the needle through, when sewing the model together (I've had + good results with sewing). + + Tetrahedron::draw_net(3, true); + + The net is drawn in the x-y plane, because it currently doesn't + work to draw it in the x-z plane. I haven't gotten around to + fixing this problem yet. + + ---------- Footnotes ---------- + + (1) Albrecht Du"rer invented this method of constructing polyhedra. + + +File: 3DLDF.info, Node: Dodecahedron, Next: Icosahedron, Prev: Tetrahedron, Up: Regular Platonic Polyhedra + +Dodecahedron +------------ + + Class `Dodecahedron' is defined in `polyhed.web'. It is derived +from `Polyhedron' using public derivation. + + Dodecahedra have 12 regular pentagonal faces. + +* Menu: + +* Dodecahedron Data Members:: +* Dodecahedron Constructors and Setting Functions:: +* Dodecahedron Net:: + + +File: 3DLDF.info, Node: Dodecahedron Data Members, Next: Dodecahedron Constructors and Setting Functions, Prev: Dodecahedron, Up: Dodecahedron + +Data Members +............ + + - Protected static `const' variable: real dihedral_angle + The angle between the faces of the `Dodecahedron', namely 116 + degrees 34' = \pi - \arctan(2). + + - Protected variable: real pentagon_radius + The radius of the circle enclosing a pentagonal face of the + `Dodecahedron'. + + +File: 3DLDF.info, Node: Dodecahedron Constructors and Setting Functions, Next: Dodecahedron Net, Prev: Dodecahedron Data Members, Up: Dodecahedron + +Constructors and Setting Functions +.................................. + + - Default constructor: void Dodecahedron (`void') + Creates an empty `Dodecahedron'. + + - Constructor: void Dodecahedron (const Point& P, const real + PENTAGON_DIAMETER, [real ANGLE_X = 0, [real ANGLE_Y = 0, + [real ANGLE_Z = 0]]]) + Creates a `Dodecahedron' with its center at the origin, where the + pentagonal faces have enclosing circles of diameter + PENTAGON_DIAMETER. If any of ANGLE_X, ANGLE_Y, or ANGLE_Z is + non-zero, the `Dodecahedron' is rotated by the amounts specified + around the corresponding axes. Finally, if P is not the origin, + the `Dodecahedron' is shifted such that `center' comes to lie at P. + + Point P(-1, -2, 4); + Dodecahedron d(P, 3, 12.5, 16, 2); + d.draw(); + + d.filldraw(); + + + +File: 3DLDF.info, Node: Dodecahedron Net, Prev: Dodecahedron Constructors and Setting Functions, Up: Dodecahedron + +Net +... + + - Static function: vector get_net (const real + PENTAGON_DIAMETER, [bool DO_HALF = false]) + Returns the "net", i.e., the two-dimensional pattern of pentagons + that can be folded into a model of a dodecahedron. The net lies + in the x-z plane. The pentagons have enclosing circles of diameter + PENTAGON_DIAMETER. The center of the center pentagon of the first + half of the net is at the origin. If the argument DO_HALF is + `true', only the first half of the net is created. This is used + in the non-default constructor. *Note Polyhedron Reference; + Regular Platonic Polyhedra; Dodecahedron; Constructors and Setting + Functions: Dodecahedron Constructors and Setting Functions. + + vector vrp = Dodecahedron::get_net(1); + for(vector::iterator iter = vrp.begin(); + iter != vrp.end(); ++iter) + (**iter).draw(); + + + - Static function: void draw_net (const real PENTAGON_DIAMETER, [bool + PORTRAIT = `true', [bool MAKE_TABS = `true']]) + Draws the net for a `Dodecahedron' in the x-z plane. The pentagons + have enclosing circles of diameter PENTAGON_DIAMETER. The origin + is used as the center of the middle pentagon of the first half of + the net. The centers of the pentagons are numbered. + + If the argument PORTRAIT is `true' (the default), the net is + arranged for printing in portrait format. If it's `false', it's + arranged for printing in landscape format. + + The argument MAKE_TABS currently has no effect. When I get around + to programming this, it will be used for specifying whether tabs + for gluing and/or sewing a cardboard model should be drawn, too. + + Dodecahedron::draw_net(1, false); + + + +File: 3DLDF.info, Node: Icosahedron, Prev: Dodecahedron, Up: Regular Platonic Polyhedra + +Icosahedron +----------- + + Class `Icosahedron' is defined in `polyhed.web'. It is derived from +`Polyhedron' using public derivation. + + Icosahedra have 20 regular triangular faces. + +* Menu: + +* Icosahedron Data Members:: +* Icosahedron Constructors and Setting Functions:: +* Icosahedron Net:: + + +File: 3DLDF.info, Node: Icosahedron Data Members, Next: Icosahedron Constructors and Setting Functions, Prev: Icosahedron, Up: Icosahedron + +Data Members +............ + + - Protected static `const' variable: real dihedral_angle + The angle between the faces of the `Icosahedron', namely 138 + degrees 11' = \pi - \arcsin(2/3). + + - Protected variable: real triangle_radius + The radius of the circle enclosing a triangular face of the + `Icosahedron'. + + +File: 3DLDF.info, Node: Icosahedron Constructors and Setting Functions, Next: Icosahedron Net, Prev: Icosahedron Data Members, Up: Icosahedron + +Constructors and Setting Functions +.................................. + + - Default constructor: void Icosahedron (`void') + Creates an empty `Icosahedron'. + + - Constructor: void Icosahedron (const Point& P, const real + DIAMETER_OF_TRIANGLE, [real ANGLE_X = 0, [real ANGLE_Y = 0, + [real ANGLE_Z = 0]]]) + Creates an `Icosahedron' with its center at the origin, where the + triangular faces have enclosing circles of diameter + DIAMETER_OF_TRIANGLE. If any of ANGLE_X, ANGLE_Y, or ANGLE_Z is + non-zero, the `Icosahedron' is rotated by the amounts specified + around the corresponding axes. Finally, if P is not the origin, + the `Icosahedron' is shifted such that `center' comes to lie at P. + + Icosahedron i(origin, 3, 0, 10); + i.draw(); + + i.filldraw(); + + + +File: 3DLDF.info, Node: Icosahedron Net, Prev: Icosahedron Constructors and Setting Functions, Up: Icosahedron + +Net +... + + - Static function: vector get_net (const real + TRIANGLE_DIAMETER, [bool DO_HALF = `false']) + Returns the "net", i.e., the two-dimensional pattern of triangles + that can be folded into a model of an icosahedron. The net lies + in the x-z plane. The triangles have enclosing circles of diameter + TRIANGLE_DIAMETER. If the argument DO_HALF = `true', only the + first half of the net is created. This is used in the non-default + constructor. *Note Polyhedron Reference; Regular Platonic + Polyhedra; Icosahedron; Constructors and Setting Functions: + Icosahedron Constructors and Setting Functions. + + vector vrp = Icosahedron::get_net(1.5); + for (vector::iterator iter = vrp.begin(); + iter != vrp.end(); ++iter) + (**iter).draw(); + + + - Static function: void draw_net (const real TRIANGLE_DIAMETER, [bool + PORTRAIT = TRUE, [bool MAKE_TABS = `true']]) + Draws the net for an `Icosahedron' in the x-z plane. The triangles + have enclosing circles of diameter TRIANGLE_DIAMETER. If the + argument PORTRAIT is `true' (the default), the net will be + arranged for printing in portrait format. If it's `false', it + will be arranged for printing in landscape format. In portrait + format, the center of the bottom right triangle is at the origin. + In landscape format, the center of the bottom left triangle is at + the origin. The triangles are numbered. + + The argument MAKE_TABS currently has no effect. When I get around + to programming this, it will be used for specifying whether tabs + for gluing and/or sewing a cardboard model should be drawn, too. + + Icosahedron::draw_net(2, false); + + + +File: 3DLDF.info, Node: Semi-Regular Archimedean Polyhedra, Prev: Regular Platonic Polyhedra, Up: Polyhedron Reference + +Semi-Regular Archimedean Polyhedra +================================== + + Once I've added `class Octahedron', the only Platonic polyhedron I +haven't programmed yet, I plan to start adding classes for the +semi-regular Archimedean polyhedra. + +* Menu: + +* Truncated Octahedron:: + + +File: 3DLDF.info, Node: Truncated Octahedron, Next: Truncated Octahedron Data Members, Prev: Semi-Regular Archimedean Polyhedra, Up: Semi-Regular Archimedean Polyhedra + +Truncated Octahedron +-------------------- + + Class `Trunc_Octahedron' is defined in `polyhed.web'. It is derived +from `Polyhedron' using public derivation. + + `Trunc_Octahedron' does not yet have a functioning constructor, so +it cannot be used as yet. + +* Menu: + +* Truncated Octahedron Data Members:: +* Truncated Octahedron Net:: +* Truncated Octahedron Constructors and Setting Functions:: + + +File: 3DLDF.info, Node: Truncated Octahedron Data Members, Next: Truncated Octahedron Constructors and Setting Functions, Prev: Truncated Octahedron, Up: Truncated Octahedron + +Data Members +............ + + - Protected static `const' variable: real angle_hex_square + The angle between the hexagonal and the square faces of the + truncated octahedron, namely 125 degrees 16' . + + - Protected static `const' variable: real angle_hex_hex + The angle between the hexagonal faces of the truncated octahedron, + namely 109 degrees 28' . + + - Protected variable: real hexagon_radius + The radius of the circle enclosing a hexagonal or square face of + the `Trunc_Octahedron'. + + +File: 3DLDF.info, Node: Truncated Octahedron Constructors and Setting Functions, Next: Truncated Octahedron Net, Prev: Truncated Octahedron Data Members, Up: Truncated Octahedron + +Constructors and Setting Functions +.................................. + + - Default constructor: void Trunc_Octahedron (`void') + Creates an empty `Trunc_Octahedron'. + + - Constructor: void Trunc_Octahedron (const Point& P, const real + DIAMETER_OF_HEXAGON, [real ANGLE_X = 0, [real ANGLE_Y = 0, + [real ANGLE_Z = 0]]]) + This function does not yet exist! When it does, it will create a + `Trunc_Octahedron' with its center at the origin, where the + hexagonal and square faces have enclosing circles of diameter + DIAMETER_OF_HEXAGON. If any of ANGLE_X, ANGLE_Y, or ANGLE_Z is + non-zero, the `Trunc_Octahedron' will be rotated by the amounts + specified around the corresponding axes. Finally, if P is not the + origin, the `Trunc_Octahedron' will be shifted such that `center' + comes to lie at P. + + +File: 3DLDF.info, Node: Truncated Octahedron Net, Prev: Truncated Octahedron Constructors and Setting Functions, Up: Truncated Octahedron + +Net +... + + - Static function: vector get_net (const real + HEXAGON_DIAMETER, [bool DO_HALF = `false']) + This function does not yet exist! When it does, it will return + the "net", i.e., the two-dimensional pattern of hexagons and + squares that can be folded into a model of a truncated octahedron. + The net will lie in the x-z plane. The hexagons and squares will + have enclosing circles of diameter HEXAGON_DIAMETER. If the + argument DO_HALF is `true', only the first half of the net will be + created. This will be used in the non-default constructor. *Note + Polyhedron Reference; Regular Platonic Polyhedra; Truncated + Octahedron Constructors and Setting Functions: Truncated + Octahedron Constructors and Setting Functions. + + +File: 3DLDF.info, Node: Utility Functions, Next: Adding a File, Prev: Polyhedron Reference, Up: Top + +Utility Functions +***************** + + - Function: double trunc (double d) + Defined in `pspglb.web'. For some reason, when I compile 3DLDF + using GNU CC on a PC Pentium II XEON under Linux 2.4.4 i686, the + standard library function `trunc()' is not available. Therefore, + I've had to write one. This is a kludge! Someday, I'll have to + try to find a better solution to this problem. + + - Function: pair solve_quadratic (real A, real B, real C) + Defined in `pspglb.web'. This function tries to find the + solutions S_0 and S_1 to the quadratic equation ax^2 + bx + c + according to the formulae S_0 == -b + sqrt(b^2 - 4ac) / 2a) and + S_1 == -b - sqrt( b^2 - 4ac) / 2a. Let `r' stand for the return + value. If S_0 cannot be found, `r.first' will be `INVALID_REAL', + otherwise S_0. If S_1 cannot be found, `r.second' will be + `INVALID_REAL', otherwise S_1. + + (x + 4)(x + 2) = x^2 + 6x + 8 = 0 + + real_pair r = solve_quadratic(1, 6, 8); + => r.first == -2 + => r.second == -4 + + real_pair r = solve_quadratic(1, -2, 4); + => r.first == INVALID_REAL + => r.second == INVALID_REAL + + +* Menu: + +* Perspective Functions:: + + +File: 3DLDF.info, Node: Perspective Functions, Prev: Utility Functions, Up: Utility Functions + +Perspective Functions +===================== + + - Function: void persp_0 (const real FRONT_CORNER_X, const real + FRONT_CORNER_Z, const real SIDE_LFT, const real SIDE_RT, + const real ANGLE_RT, const real F_2_CV, const real GL_2_CV, + [const real HORIZON_LFT = 6, [real HORIZON_RT = 0, [real + GL_LFT = 0, [real GL_RT = 0]]]]) + Defined in `utility.web'. This function is used for the figure in + *Note The Perspective Projection::, illustrating a perspective + projection as it could be done by hand. It draws a rectangle in + the ground plane and the construction lines used for putting it + into perspective. It also labels the vanishing and measuring + points. + + The arguments: + `CONST REAL' FRONT_CORNER_X + The x-coordinate of the front corner of the rectangle. + + `CONST REAL' FRONT_CORNER_Z + The z-coordinate of the front corner of the rectangle. + + `CONST REAL' SIDE_LFT + The length of the left side of the rectangle. + + `CONST REAL' SIDE_RT + The length of the right side of the rectangle. + + `CONST REAL' ANGLE_RT + The angle at which the right side of the rectangle recedes to + the horizon. + + `CONST REAL' F_2_CV + The distance from the focus to the center of vision. + + `CONST REAL' GL_2_CV + The distance of the ground line to the center of vision. + + `CONST REAL' HORIZON_LFT + Default: 6. The length of the horizon line leftwards of the + center of vision. + + `REAL' HORIZON_RT + Default: 0. The length of the horizon line rightwards of the + center of vision. + + `REAL' GL_LFT + Default: 0. The length of the ground line leftwards of the + line from the focus to the center of vision. + + `REAL' GL_RT + Default: 0. The length of the ground line rightwards of the + line from the focus to the center of vision. + + Example: + + persp_0(3, 2, 10, 5, 47.5, 7, 5, 8.5, 9.5, 8.5, 9.5); + + + +File: 3DLDF.info, Node: Adding a File, Next: Future Plans, Prev: Utility Functions, Up: Top + +Adding a File +************* + + Version 1.1.1 was the first version of 3DLDF since it became a GNU +package (the current version is 1.1.4). In previous versions, +recompilation was controlled by an auxilliary program, which I wrote in +C++ using CWEB. However, in the course of making 3DLDF conformant to +the GNU Coding Standards(1), this has been changed. Recompilation is +now controlled by `make', as is customary. The chapter "Compiling" in +previous editions of this manual, is therefore no longer needed. + + Nonetheless, using CWEB still has consequences for the way +recompilation must be handled, and it was fairly tricky getting `make' +to work for 3DLDF. Users who only put code in `main.web' and/or change +code in existing files won't have to worry about this; for others, this +chapter explains how to add files to 3DLDF. + + Let's say you want to add a file `widgets.web' that defines a `class +Widget', and that the latter needs access to `class Rectangle', and is +in turn required by `class Ellipse'. Code must be added to +`3DLDF-1.1.4/CWEB/Makefile' for ctangling `widgets.web', compiling +`widgets.cxx', and linking `widgets.o' with the other object files to +make the executable `3dldf'. + + The best way to do this is to change `3DLDF-1.1.4/CWEB/Makefile.am' +and use Automake to generate a new `Makefile.in'. Then, `configure' +can be used to generate a new `Makefile'. It would be possible to +modify `Makefile' by hand, but I don't recommend it. The following +assumes that the user has access to Automake. If he or she is using a +GNU/Linux system, this is probably true.(2) + + `widgets.web' must be added between `rectangs.web' and +`ellipses.web' in the following variable declaration in +`3DLDF-1.1.4/CWEB/Makefile.am': + + 3dldf_SOME_CWEBS = pspglb.web io.web colors.web transfor.web \ + shapes.web pictures.web points.web \ + lines.web planes.web paths.web curves.web \ + polygons.web rectangs.web ellipses.web \ + circles.web patterns.web solids.web + solfaced.web cuboid.web polyhed.web \ + utility.web parser.web examples.web + + Now, add `widgets.o' between `ellipses.o' and `rectangs.o' in the +following variable declaration: + + 3dldf_OBS_REVERSED = main.o examples.o parser.o utility.o \ + polyhed.o cuboid.o solfaced.o solids.o \ + patterns.o circles.o ellipses.o rectangs.o \ + polygons.o curves.o paths.o \ + planes.o lines.o points.o pictures.o shapes.o + transfor.o colors.o io.o pspglb.o + + `3dldf_OBS_REVERSED' is needed, because 3DLDF fails with a +"Segmentation fault", if the executable is linked using +`$(3dldf_OBJECTS)'. This may cause problems, if `3dldf' isn't built +using the GNU C++ compiler (GCC). + + Now add a target for `widgets.o' between the targets for +`rectangs.o' and `ellipses.o', and add `widgets.tim' after +`rectangs.tim' in the list of prerequisites for `ellipses.o': + + rectangs.o: loader.tim pspglb.tim io.tim colors.tim transfor.tim \ + shapes.tim pictures.tim points.tim lines.tim planes.tim \ + paths.tim curves.tim polygons.tim rectangs.cxx + + ellipses.o: loader.tim pspglb.tim io.tim colors.tim transfor.tim \ + shapes.tim pictures.tim points.tim lines.tim planes.tim \ + paths.tim curves.tim polygons.tim rectangs.tim ellipses.cxx + + This is the result: + rectangs.o: loader.tim pspglb.tim io.tim colors.tim transfor.tim \ + shapes.tim pictures.tim points.tim lines.tim planes.tim \ + paths.tim curves.tim polygons.tim rectangs.cxx + + widgets.o: loader.tim pspglb.tim io.tim colors.tim transfor.tim \ + shapes.tim pictures.tim points.tim lines.tim planes.tim \ + paths.tim curves.tim polygons.tim rectangs.tim \ + widgets.cxx + + ellipses.o: loader.tim pspglb.tim io.tim colors.tim transfor.tim \ + shapes.tim pictures.tim points.tim lines.tim planes.tim \ + paths.tim curves.tim polygons.tim rectangs.tim widgets.tim \ + ellipses.cxx + + In addition, `widgets.tim' must be added to the list of +prerequisites in all of the following targets up to and including +`examples.o'. + + ---------- Footnotes ---------- + + (1) The GNU Coding Standards are available at +`http://www.gnu.org/prep/standards_toc.html'. + + (2) Automake is available for downloading from +`http://ftp.gnu.org/gnu/automake/'. The Automake website is at +`http://www.gnu.org/software/automake/'. + + +File: 3DLDF.info, Node: Future Plans, Next: Changes, Prev: Adding a File, Up: Top + +Future Plans +************ + + 3DLDF is a work-in-progress. In fact, it can never be finished, +because the supply of interesting geometric constructions is +inexhaustible. However, presently 3DLDF still has a number of major +gaps. The following is a list of matters that I plan to address sooner +rather than later: + + * Program an input routine. The lack of one is the most significant + defect in 3DLDF, as mentioned in *Note No Input Routine::. + + * Port to other platforms. + + * Add `class Octahedron' to complete the set of regular Platonic + polyhedra. + + * Improve the polyhedra, by storing the vertices as `Points', rather + than `Reg_Polygons'. Find a better way of generating them, if + possible, without using rotations. + + * Add classes for the Kepler-Poinsot polyhedra, the semi-regular + Archimedean polyhedra, the dual solids, the stellated Archimedean + polyhedra, and the regular compounds.(1) + + * Add more functions for finding the intersections of objects of + various types, starting with the plane figures. In particular, I + believe I've found an algebraic solution for the intersection of + an `Ellipse' and a `Circle' in a plane, but I haven't had a chance + to try implementing it yet. + + * Add constructors with a normal vector argument rather than angles + of rotation about the main axes. + + * Add the classes `Sphere' and `Ellipsoid'. + + * Provide a means for calculating triangle solutions, perhaps using a + `class Triangle'. + + * Provide a means of producing shadows and reflections. + + * Improve the indexes in the manual. + + If you're interesting in contributing to 3DLDF, with respect to one +of these ideas, or if you have others of your own, see *Note +Contributing to 3DLDF::. + + ---------- Footnotes ---------- + + (1) Cundy and Rollet, `Mathematical Models', Chapter 3, "Polyhedra", +pp. 76-160. + + +File: 3DLDF.info, Node: Changes, Next: Bibliography, Prev: Future Plans, Up: Top + +Changes +******* + +Updated 10 December 2003. + + Changes in 3DLDF 1.1.4: + * `MAX_REAL' is now the second largest float value. However, the + calculation is system dependent, and will only work on 32-bit + little-endian architectures. I will start working on porting this + soon. + + * Fixed bug in `tsthdweb', that caused files to be compiled more + often than necessary. It will be necessary to keep an eye on this. + + * Added `Rectangle::is_rectangular()'. + + * Made `mediate()' a member function of `Point'. + + * It is now possible to generate this manual in the Info and HTML + formats. + + 3DLDF 1.1.1 was the first version of 3DLDF since it became a GNU +package (the current version is 1.1.4). It is now conformant to the +GNU Coding Standards, except that a functioning `3DLDF.info' cannot be +generated from `3DLDF.texi'. The distribution now includes a +`configure' script, `Makefile.in' files, and other files generated by +Autoconf and Automake. Recompilation is now handled by `make' rather +than the auxilliary program `3DLDFcpl'. The files `3DLDFcpl.web' and +`3DLDFprc.web' have been removed from the distribution. + + The extension of the C++ files generated by `ctangle' is changed +from `c' to `cxx' before they are compiled. After `ctangle' is run on +a CWEB file, `.c' is compared to the old `.cxx' +using `diff'. Whitespace, comments, and `#line' preprocessor commands +are ignored. The `.c' is only renamed to `.cxx' +and compiled if they differ. This way, changes to the TeX text only in +a CWEB file no longer cause recompilation and relinking. + + The main Texinfo file is now called `3DLDF.texi'. It was formerly +called `3DLDFman.texi'. This is because Automake expects this name. +For this reason, the CWEB file passed as an argument to cweave has been +renamed `3DLDFprg.web'. It was formerly called `3DLDF.web'. + + +File: 3DLDF.info, Node: Bibliography, Next: GNU Free Documentation License, Prev: Changes, Up: Top + +Bibliography +************ + + Cundy, H. Martyn and A.P. Rollet. Mathematical Models. Oxford 1961. +Oxford University Press. + + Unfortunately out of print. + + +Finston, Laurence D. 3DLDF: The Program. Go"ttingen 2003. + +Fischer, Gerd. Ebene algebraische Kurven. Vieweg Studium. Aufbaukurs +Mathematik. Friedr. Vieweg & Sohn Verlagsgesellschaft mbH. +Braunschweig/Wiesbaden 1994. + +Gill, Robert W. Creative Perspective. London 1975. Thames and Hudson +Ltd. ISBN 0-500-27056-2. + +Hobby, John D. A User's Manual for MetaPost. AT & T Bell Laboratories. +Murray Hill, NJ. No date. + +Jones, Huw. Computer Graphics through Key Mathematics. +Springer-Verlag London Limited 2001. ISBN 1-85233-422-3. + +Knuth, Donald Ervin. Metafont: The Program. Computers and +Typesetting; D. Addison Wesley Publishing Company, Inc. Reading, +Massachusetts 1986. ISBN 0-201-13438-1. + +Knuth, Donald Ervin. The METAFONTbook. Computers and Typesetting; C. +Addison Wesley Publishing Company, Inc. Reading, Massachusetts 1986. + +Knuth, Donald Ervin. TeX: The Program. Computers and Typesetting; B. +Addison Wesley Publishing Company, Inc. Reading, Massachusetts 1986. +ISBN 0-201-13437-3. + +Knuth, Donald E. The TeXbook. Computers and Typesetting; A. Addison +Wesley Publishing Company, Inc. Reading, Massachusetts 1986. + +Knuth, Donald E. and Silvio Levy. The CWEB System of Structured +Documentation. Version 3.64--February 2002. + +Salomon, David. Computer Graphics and Geometric Modeling. Berlin 1999. +Springer-Verlag. ISBN: 0-387-98682-0. + +Stallman, Richard M. and Roland McGrath. GNU Make. A Program for +Directing Recompilation. make Version 3.79. Boston 2000. Free +Software Foundation, Inc. ISBN: 1-882114-80-9. + +Stroustrup, Bjarne. The C++ Programming Language. Special Edition. +Reading, Massachusetts 2000. Addison-Wesley. ISBN 0-201-70073-5. + +Stroustrup, Bjarne. The Design and Evolution of C++ . Reading, +Massachusetts 1994. Addison-Wesley Publishing Company. +ISBN 0-201-54330-3. + +Vredeman de Vries, Jan. Perspective. New York 1968. Dover +Publications, Inc. Standard Book Number: 486-21086-4. + + The beautiful perspective constructions in this volume are taken from + the original work, first published by Henricus Hondius in Leiden in 1604 + and 1605. + + +White, Gwen. Perspective. A Guide for Artists, Architects and +Designers. London 1968 and 1982. B T Batsford Ltd. +ISBN 0-7134-3412-0. + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-11 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-11 --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-11 1970-01-01 01:00:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-11 2003-12-10 18:44:55.000000000 +0100 @@ -0,0 +1,702 @@ +This is 3DLDF.info, produced by makeinfo version 4.5 from 3DLDF.texi. + +This is the 3DLDF User and Reference Manual, edition 1.1.4 for 3DLDF +1.1.4. This manual was last updated on 10 December 2003. 3DLDF is a +GNU package for three-dimensional drawing with MetaPost output. The +author is Laurence D. Finston. + + Copyright (C) 2003 Laurence D. Finston. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, and + no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License". + +INFO-DIR-SECTION GNU packages +START-INFO-DIR-ENTRY +* 3DLDF: (3DLDF). 3D drawing with MetaPost output. +END-INFO-DIR-ENTRY + + +File: 3DLDF.info, Node: GNU Free Documentation License, Next: Data Type and Variable Index, Prev: Bibliography, Up: Top + +GNU Free Documentation License +****************************** + + Version 1.2, November 2002 + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + 0. PREAMBLE + + The purpose of this License is to make a manual, textbook, or other + functional and useful document "free" in the sense of freedom: to + assure everyone the effective freedom to copy and redistribute it, + with or without modifying it, either commercially or + noncommercially. Secondarily, this License preserves for the + author and publisher a way to get credit for their work, while not + being considered responsible for modifications made by others. + + This License is a kind of "copyleft", which means that derivative + works of the document must themselves be free in the same sense. + It complements the GNU General Public License, which is a copyleft + license designed for free software. + + We have designed this License in order to use it for manuals for + free software, because free software needs free documentation: a + free program should come with manuals providing the same freedoms + that the software does. But this License is not limited to + software manuals; it can be used for any textual work, regardless + of subject matter or whether it is published as a printed book. + We recommend this License principally for works whose purpose is + instruction or reference. + + 1. APPLICABILITY AND DEFINITIONS + + This License applies to any manual or other work, in any medium, + that contains a notice placed by the copyright holder saying it + can be distributed under the terms of this License. Such a notice + grants a world-wide, royalty-free license, unlimited in duration, + to use that work under the conditions stated herein. The + "Document", below, refers to any such manual or work. Any member + of the public is a licensee, and is addressed as "you". You + accept the license if you copy, modify or distribute the work in a + way requiring permission under copyright law. + + A "Modified Version" of the Document means any work containing the + Document or a portion of it, either copied verbatim, or with + modifications and/or translated into another language. + + A "Secondary Section" is a named appendix or a front-matter section + of the Document that deals exclusively with the relationship of the + publishers or authors of the Document to the Document's overall + subject (or to related matters) and contains nothing that could + fall directly within that overall subject. (Thus, if the Document + is in part a textbook of mathematics, a Secondary Section may not + explain any mathematics.) The relationship could be a matter of + historical connection with the subject or with related matters, or + of legal, commercial, philosophical, ethical or political position + regarding them. + + The "Invariant Sections" are certain Secondary Sections whose + titles are designated, as being those of Invariant Sections, in + the notice that says that the Document is released under this + License. If a section does not fit the above definition of + Secondary then it is not allowed to be designated as Invariant. + The Document may contain zero Invariant Sections. If the Document + does not identify any Invariant Sections then there are none. + + The "Cover Texts" are certain short passages of text that are + listed, as Front-Cover Texts or Back-Cover Texts, in the notice + that says that the Document is released under this License. A + Front-Cover Text may be at most 5 words, and a Back-Cover Text may + be at most 25 words. + + A "Transparent" copy of the Document means a machine-readable copy, + represented in a format whose specification is available to the + general public, that is suitable for revising the document + straightforwardly with generic text editors or (for images + composed of pixels) generic paint programs or (for drawings) some + widely available drawing editor, and that is suitable for input to + text formatters or for automatic translation to a variety of + formats suitable for input to text formatters. A copy made in an + otherwise Transparent file format whose markup, or absence of + markup, has been arranged to thwart or discourage subsequent + modification by readers is not Transparent. An image format is + not Transparent if used for any substantial amount of text. A + copy that is not "Transparent" is called "Opaque". + + Examples of suitable formats for Transparent copies include plain + ASCII without markup, Texinfo input format, LaTeX input format, + SGML or XML using a publicly available DTD, and + standard-conforming simple HTML, PostScript or PDF designed for + human modification. Examples of transparent image formats include + PNG, XCF and JPG. Opaque formats include proprietary formats that + can be read and edited only by proprietary word processors, SGML or + XML for which the DTD and/or processing tools are not generally + available, and the machine-generated HTML, PostScript or PDF + produced by some word processors for output purposes only. + + The "Title Page" means, for a printed book, the title page itself, + plus such following pages as are needed to hold, legibly, the + material this License requires to appear in the title page. For + works in formats which do not have any title page as such, "Title + Page" means the text near the most prominent appearance of the + work's title, preceding the beginning of the body of the text. + + A section "Entitled XYZ" means a named subunit of the Document + whose title either is precisely XYZ or contains XYZ in parentheses + following text that translates XYZ in another language. (Here XYZ + stands for a specific section name mentioned below, such as + "Acknowledgements", "Dedications", "Endorsements", or "History".) + To "Preserve the Title" of such a section when you modify the + Document means that it remains a section "Entitled XYZ" according + to this definition. + + The Document may include Warranty Disclaimers next to the notice + which states that this License applies to the Document. These + Warranty Disclaimers are considered to be included by reference in + this License, but only as regards disclaiming warranties: any other + implication that these Warranty Disclaimers may have is void and + has no effect on the meaning of this License. + + 2. VERBATIM COPYING + + You may copy and distribute the Document in any medium, either + commercially or noncommercially, provided that this License, the + copyright notices, and the license notice saying this License + applies to the Document are reproduced in all copies, and that you + add no other conditions whatsoever to those of this License. You + may not use technical measures to obstruct or control the reading + or further copying of the copies you make or distribute. However, + you may accept compensation in exchange for copies. If you + distribute a large enough number of copies you must also follow + the conditions in section 3. + + You may also lend copies, under the same conditions stated above, + and you may publicly display copies. + + 3. COPYING IN QUANTITY + + If you publish printed copies (or copies in media that commonly + have printed covers) of the Document, numbering more than 100, and + the Document's license notice requires Cover Texts, you must + enclose the copies in covers that carry, clearly and legibly, all + these Cover Texts: Front-Cover Texts on the front cover, and + Back-Cover Texts on the back cover. Both covers must also clearly + and legibly identify you as the publisher of these copies. The + front cover must present the full title with all words of the + title equally prominent and visible. You may add other material + on the covers in addition. Copying with changes limited to the + covers, as long as they preserve the title of the Document and + satisfy these conditions, can be treated as verbatim copying in + other respects. + + If the required texts for either cover are too voluminous to fit + legibly, you should put the first ones listed (as many as fit + reasonably) on the actual cover, and continue the rest onto + adjacent pages. + + If you publish or distribute Opaque copies of the Document + numbering more than 100, you must either include a + machine-readable Transparent copy along with each Opaque copy, or + state in or with each Opaque copy a computer-network location from + which the general network-using public has access to download + using public-standard network protocols a complete Transparent + copy of the Document, free of added material. If you use the + latter option, you must take reasonably prudent steps, when you + begin distribution of Opaque copies in quantity, to ensure that + this Transparent copy will remain thus accessible at the stated + location until at least one year after the last time you + distribute an Opaque copy (directly or through your agents or + retailers) of that edition to the public. + + It is requested, but not required, that you contact the authors of + the Document well before redistributing any large number of + copies, to give them a chance to provide you with an updated + version of the Document. + + 4. MODIFICATIONS + + You may copy and distribute a Modified Version of the Document + under the conditions of sections 2 and 3 above, provided that you + release the Modified Version under precisely this License, with + the Modified Version filling the role of the Document, thus + licensing distribution and modification of the Modified Version to + whoever possesses a copy of it. In addition, you must do these + things in the Modified Version: + + A. Use in the Title Page (and on the covers, if any) a title + distinct from that of the Document, and from those of + previous versions (which should, if there were any, be listed + in the History section of the Document). You may use the + same title as a previous version if the original publisher of + that version gives permission. + + B. List on the Title Page, as authors, one or more persons or + entities responsible for authorship of the modifications in + the Modified Version, together with at least five of the + principal authors of the Document (all of its principal + authors, if it has fewer than five), unless they release you + from this requirement. + + C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. + + D. Preserve all the copyright notices of the Document. + + E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. + + F. Include, immediately after the copyright notices, a license + notice giving the public permission to use the Modified + Version under the terms of this License, in the form shown in + the Addendum below. + + G. Preserve in that license notice the full lists of Invariant + Sections and required Cover Texts given in the Document's + license notice. + + H. Include an unaltered copy of this License. + + I. Preserve the section Entitled "History", Preserve its Title, + and add to it an item stating at least the title, year, new + authors, and publisher of the Modified Version as given on + the Title Page. If there is no section Entitled "History" in + the Document, create one stating the title, year, authors, + and publisher of the Document as given on its Title Page, + then add an item describing the Modified Version as stated in + the previous sentence. + + J. Preserve the network location, if any, given in the Document + for public access to a Transparent copy of the Document, and + likewise the network locations given in the Document for + previous versions it was based on. These may be placed in + the "History" section. You may omit a network location for a + work that was published at least four years before the + Document itself, or if the original publisher of the version + it refers to gives permission. + + K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the + section all the substance and tone of each of the contributor + acknowledgements and/or dedications given therein. + + L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section + titles. + + M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. + + N. Do not retitle any existing section to be Entitled + "Endorsements" or to conflict in title with any Invariant + Section. + + O. Preserve any Warranty Disclaimers. + + If the Modified Version includes new front-matter sections or + appendices that qualify as Secondary Sections and contain no + material copied from the Document, you may at your option + designate some or all of these sections as invariant. To do this, + add their titles to the list of Invariant Sections in the Modified + Version's license notice. These titles must be distinct from any + other section titles. + + You may add a section Entitled "Endorsements", provided it contains + nothing but endorsements of your Modified Version by various + parties--for example, statements of peer review or that the text + has been approved by an organization as the authoritative + definition of a standard. + + You may add a passage of up to five words as a Front-Cover Text, + and a passage of up to 25 words as a Back-Cover Text, to the end + of the list of Cover Texts in the Modified Version. Only one + passage of Front-Cover Text and one of Back-Cover Text may be + added by (or through arrangements made by) any one entity. If the + Document already includes a cover text for the same cover, + previously added by you or by arrangement made by the same entity + you are acting on behalf of, you may not add another; but you may + replace the old one, on explicit permission from the previous + publisher that added the old one. + + The author(s) and publisher(s) of the Document do not by this + License give permission to use their names for publicity for or to + assert or imply endorsement of any Modified Version. + + 5. COMBINING DOCUMENTS + + You may combine the Document with other documents released under + this License, under the terms defined in section 4 above for + modified versions, provided that you include in the combination + all of the Invariant Sections of all of the original documents, + unmodified, and list them all as Invariant Sections of your + combined work in its license notice, and that you preserve all + their Warranty Disclaimers. + + The combined work need only contain one copy of this License, and + multiple identical Invariant Sections may be replaced with a single + copy. If there are multiple Invariant Sections with the same name + but different contents, make the title of each such section unique + by adding at the end of it, in parentheses, the name of the + original author or publisher of that section if known, or else a + unique number. Make the same adjustment to the section titles in + the list of Invariant Sections in the license notice of the + combined work. + + In the combination, you must combine any sections Entitled + "History" in the various original documents, forming one section + Entitled "History"; likewise combine any sections Entitled + "Acknowledgements", and any sections Entitled "Dedications". You + must delete all sections Entitled "Endorsements." + + 6. COLLECTIONS OF DOCUMENTS + + You may make a collection consisting of the Document and other + documents released under this License, and replace the individual + copies of this License in the various documents with a single copy + that is included in the collection, provided that you follow the + rules of this License for verbatim copying of each of the + documents in all other respects. + + You may extract a single document from such a collection, and + distribute it individually under this License, provided you insert + a copy of this License into the extracted document, and follow + this License in all other respects regarding verbatim copying of + that document. + + 7. AGGREGATION WITH INDEPENDENT WORKS + + A compilation of the Document or its derivatives with other + separate and independent documents or works, in or on a volume of + a storage or distribution medium, is called an "aggregate" if the + copyright resulting from the compilation is not used to limit the + legal rights of the compilation's users beyond what the individual + works permit. When the Document is included in an aggregate, this + License does not apply to the other works in the aggregate which + are not themselves derivative works of the Document. + + If the Cover Text requirement of section 3 is applicable to these + copies of the Document, then if the Document is less than one half + of the entire aggregate, the Document's Cover Texts may be placed + on covers that bracket the Document within the aggregate, or the + electronic equivalent of covers if the Document is in electronic + form. Otherwise they must appear on printed covers that bracket + the whole aggregate. + + 8. TRANSLATION + + Translation is considered a kind of modification, so you may + distribute translations of the Document under the terms of section + 4. Replacing Invariant Sections with translations requires special + permission from their copyright holders, but you may include + translations of some or all Invariant Sections in addition to the + original versions of these Invariant Sections. You may include a + translation of this License, and all the license notices in the + Document, and any Warranty Disclaimers, provided that you also + include the original English version of this License and the + original versions of those notices and disclaimers. In case of a + disagreement between the translation and the original version of + this License or a notice or disclaimer, the original version will + prevail. + + If a section in the Document is Entitled "Acknowledgements", + "Dedications", or "History", the requirement (section 4) to + Preserve its Title (section 1) will typically require changing the + actual title. + + 9. TERMINATION + + You may not copy, modify, sublicense, or distribute the Document + except as expressly provided for under this License. Any other + attempt to copy, modify, sublicense or distribute the Document is + void, and will automatically terminate your rights under this + License. However, parties who have received copies, or rights, + from you under this License will not have their licenses + terminated so long as such parties remain in full compliance. + + 10. FUTURE REVISIONS OF THIS LICENSE + + The Free Software Foundation may publish new, revised versions of + the GNU Free Documentation License from time to time. Such new + versions will be similar in spirit to the present version, but may + differ in detail to address new problems or concerns. See + `http://www.gnu.org/copyleft/'. + + Each version of the License is given a distinguishing version + number. If the Document specifies that a particular numbered + version of this License "or any later version" applies to it, you + have the option of following the terms and conditions either of + that specified version or of any later version that has been + published (not as a draft) by the Free Software Foundation. If + the Document does not specify a version number of this License, + you may choose any version ever published (not as a draft) by the + Free Software Foundation. + +ADDENDUM: How to use this License for your documents +---------------------------------------------------- + + To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and license +notices just after the title page: + + Copyright (C) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.2 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover + Texts. A copy of the license is included in the section entitled + ``GNU Free Documentation License''. + + If you have Invariant Sections, Front-Cover Texts and Back-Cover +Texts, replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with + the Front-Cover Texts being LIST, and with the Back-Cover Texts + being LIST. + + If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + + If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, to +permit their use in free software. + + +File: 3DLDF.info, Node: Data Type and Variable Index, Next: Function Index, Prev: GNU Free Documentation License, Up: Top + +Data Type and Variable Index +**************************** + +* Menu: + +* angle: Focus Data Members. +* angle_hex_hex: Truncated Octahedron Data Members. +* angle_hex_square: Truncated Octahedron Data Members. +* arrow: Path Data Members. +* axis: Focus Data Members. +* axis_h <1>: Ellipse Data Members. +* axis_h: Rectangle Data Members. +* axis_v <1>: Ellipse Data Members. +* axis_v: Rectangle Data Members. +* AXON: Namespace Projections. +* background_color: Namespace Colors. +* background_color_vector: Namespace Colors. +* black: Namespace Colors. +* blue: Namespace Colors. +* blue_part: Color Data Members. +* blue_violet: Namespace Colors. +* bool_pair: Typedefs and Utility Structures. +* bool_point: Point Typedefs and Utility Structures. +* bool_point_pair: Point Typedefs and Utility Structures. +* bool_point_quadruple: Point Typedefs and Utility Structures. +* bool_real: Typedefs and Utility Structures. +* bool_real_point: Point Typedefs and Utility Structures. +* center <1>: Solid Data Members. +* center <2>: Regular Closed Plane Curve Data Members. +* center: Polygon Data Members. +* CIRCLE: Solid Data Members. +* Circle <1>: Circle Reference. +* Circle: Plane Figures. +* circles: Solid Data Members. +* Color: Color Reference. +* connectors: Path Data Members. +* Cuboid <1>: Cuboid Reference. +* Cuboid: Cuboid Getstart. +* CURR_Y: Point Data Members. +* CURR_Z: Point Data Members. +* cyan: Namespace Colors. +* cycle_switch: Path Data Members. +* dashed: Path Data Members. +* default_background: Namespace Colors. +* default_color: Namespace Colors. +* default_color_vector: Namespace Colors. +* default_focus: Focus Global Variables. +* DEFAULT_NUMBER_OF_POINTS: Ellipse Data Members. +* depth: Cuboid Data Members. +* dihedral_angle <1>: Icosahedron Data Members. +* dihedral_angle <2>: Dodecahedron Data Members. +* dihedral_angle: Tetrahedron Data Members. +* direction <1>: Line Data Members. +* direction: Focus Data Members. +* distance <1>: Planes Data Members. +* distance: Focus Data Members. +* do_help_lines: Path Data Members. +* do_labels: Picture Data Members. +* DO_LABELS: Label Data Members. +* do_output <1>: Solid Data Members. +* do_output <2>: Path Data Members. +* do_output: Point Data Members. +* Dodecahedron <1>: Dodecahedron. +* Dodecahedron: Dodecahedron Getstart. +* dot: Label Data Members. +* DRAW: Shape Data Members. +* draw_color: Path Data Members. +* DRAWDOT: Shape Data Members. +* drawdot_color: Point Data Members. +* drawdot_value: Point Data Members. +* edge_radius: Polyhedron Data Members. +* edges: Solid_Faced Data Members. +* ELLIPSE: Solid Data Members. +* Ellipse <1>: Ellipse Reference. +* Ellipse: Plane Figures. +* ellipses: Solid Data Members. +* face_radius: Polyhedron Data Members. +* faces: Solid_Faced Data Members. +* FILL: Shape Data Members. +* fill_color: Path Data Members. +* fill_draw_value: Path Data Members. +* FILLDRAW: Shape Data Members. +* Focus: Focus Reference. +* focus: Focuses Getstart. +* focus0: Ellipse Data Members. +* focus1: Ellipse Data Members. +* gray: Namespace Colors. +* green: Namespace Colors. +* green_part: Color Data Members. +* green_yellow: Namespace Colors. +* height: Cuboid Data Members. +* help_color <1>: Path Data Members. +* help_color: Namespace Colors. +* help_color_vector: Namespace Colors. +* help_dash_pattern: Path Data Members. +* hexagon_radius: Truncated Octahedron Data Members. +* Icosahedron <1>: Icosahedron. +* Icosahedron: Icosahedron Getstart. +* IDENTITY_TRANSFORM: Transform Global Variables and Constants. +* in_stream: I/O Global Variables. +* internal_angle: Regular Polygon Data Members. +* INVALID_BOOL_POINT: Point Global Constants and Variables. +* INVALID_BOOL_POINT_PAIR: Point Global Constants and Variables. +* INVALID_BOOL_POINT_QUADRUPLE: Point Global Constants and Variables. +* INVALID_BOOL_REAL_POINT: Point Global Constants and Variables. +* INVALID_LINE: Line Global Constants. +* INVALID_PLANE: Planes Global Constants. +* INVALID_POINT: Point Global Constants and Variables. +* INVALID_REAL: Global Constants and Variables. +* INVALID_REAL_PAIR: Global Constants and Variables. +* INVALID_REAL_SHORT: Global Constants and Variables. +* INVALID_TRANSFORM: Transform Global Variables and Constants. +* ISO: Namespace Projections. +* Label: Label Reference. +* labels: Picture Data Members. +* light_gray: Namespace Colors. +* Line: Line Reference. +* line_switch: Path Data Members. +* linear_eccentricity: Ellipse Data Members. +* magenta: Namespace Colors. +* matrix: Transform Data Members. +* Matrix: Typedefs and Utility Structures. +* MAX_REAL: Global Constants and Variables. +* MAX_REAL_SQRT: Global Constants and Variables. +* MAX_Z: Namespace Sorting. +* MEAN_Z: Namespace Sorting. +* measurement_units: Point Data Members. +* measurement_units (Point): Declaring and Initializing Points. +* MIN_Z: Namespace Sorting. +* name: Color Data Members. +* NO_SORT: Namespace Sorting. +* normal: Planes Data Members. +* null_coordinates: Global Constants and Variables. +* number_of_points: Regular Closed Plane Curve Data Members. +* number_of_polygon_types: Polyhedron Data Members. +* numerical_eccentricity: Ellipse Data Members. +* on_free_store <1>: Solid Data Members. +* on_free_store <2>: Rectangle Data Members. +* on_free_store <3>: Regular Polygon Data Members. +* on_free_store <4>: Path Data Members. +* on_free_store <5>: Point Data Members. +* on_free_store: Color Data Members. +* orange: Namespace Colors. +* orange_red: Namespace Colors. +* origin: Point Global Constants and Variables. +* out_stream <1>: I/O Global Variables. +* out_stream: Pictures. +* PARALLEL_X_Y: Namespace Projections. +* PARALLEL_X_Z: Namespace Projections. +* PARALLEL_Z_Y: Namespace Projections. +* PATH: Solid Data Members. +* Path <1>: Path Reference. +* Path: Paths. +* paths: Solid Data Members. +* pen <1>: Path Data Members. +* pen: Point Data Members. +* pentagon_radius: Dodecahedron Data Members. +* persp: Focus Data Members. +* PERSP: Namespace Projections. +* PI: Global Constants and Variables. +* Picture <1>: Picture Global Variables. +* Picture <2>: Picture Reference. +* Picture: Pictures. +* pink: Namespace Colors. +* Plane: Plane Reference. +* point: Planes Data Members. +* Point <1>: Point Reference. +* Point: Declaring and Initializing Points. +* Point::measurement_units: Declaring and Initializing Points. +* Point::projective_coordinates: Declaring and Initializing Points. +* Point::user_coordinates: Declaring and Initializing Points. +* Point::view_coordinates: Declaring and Initializing Points. +* Point::world_coordinates: Declaring and Initializing Points. +* point_pair: Point Typedefs and Utility Structures. +* points: Path Data Members. +* Polygon <1>: Polygon Reference. +* Polygon: Plane Figures. +* Polyhedron <1>: Polyhedron Reference. +* Polyhedron: Polyhedron Getstart. +* position <1>: Line Data Members. +* position <2>: Focus Data Members. +* position: Label Data Members. +* projective_coordinates: Point Data Members. +* projective_coordinates (Point): Declaring and Initializing Points. +* projective_extremes <1>: Solid Data Members. +* projective_extremes <2>: Path Data Members. +* projective_extremes: Point Data Members. +* pt: Label Data Members. +* purple: Namespace Colors. +* radius <1>: Circle Data Members. +* radius: Regular Polygon Data Members. +* real: Typedefs and Utility Structures. +* real_pair: Typedefs and Utility Structures. +* real_short: Typedefs and Utility Structures. +* real_triple: Typedefs and Utility Structures. +* RECTANGLE: Solid Data Members. +* Rectangle <1>: Rectangle Reference. +* Rectangle: Plane Figures. +* rectangles: Solid Data Members. +* red: Namespace Colors. +* red_part: Color Data Members. +* Reg_Cl_Plane_Curve <1>: Regular Closed Plane Curve Reference. +* Reg_Cl_Plane_Curve: Plane Figures. +* REG_POLYGON: Solid Data Members. +* Reg_Polygon <1>: Regular Polygon Reference. +* Reg_Polygon: Plane Figures. +* reg_polygons: Solid Data Members. +* Shape: Shape Reference. +* shapes: Picture Data Members. +* short: Regular Polygon Data Members. +* Solid: Solid Reference. +* Solid_Faced: Faced Solid Reference. +* Tetrahedron <1>: Tetrahedron. +* Tetrahedron: Tetrahedron Getstart. +* tex_stream: I/O Global Variables. +* text: Label Data Members. +* transform <1>: Focus Data Members. +* transform <2>: Point Data Members. +* transform: Picture Data Members. +* Transform <1>: Transform Reference. +* Transform: Transforms. +* triangle_radius <1>: Icosahedron Data Members. +* triangle_radius: Tetrahedron Data Members. +* Trunc_Octahedron: Truncated Octahedron. +* Truncated Octahedron: Truncated Octahedron. +* UNDRAW: Shape Data Members. +* UNDRAWDOT: Shape Data Members. +* UNFILL: Shape Data Members. +* UNFILLDRAW: Shape Data Members. +* up: Focus Data Members. +* use_name: Color Data Members. +* user_coordinates: Point Data Members. +* user_coordinates (Point): Declaring and Initializing Points. +* user_transform: Transform Global Variables and Constants. +* vertex_radius: Polyhedron Data Members. +* vertices: Solid_Faced Data Members. +* view_coordinates: Point Data Members. +* view_coordinates (Point): Declaring and Initializing Points. +* violet: Namespace Colors. +* violet_red: Namespace Colors. +* white: Namespace Colors. +* width: Cuboid Data Members. +* world_coordinates: Point Data Members. +* world_coordinates (Point): Declaring and Initializing Points. +* yellow: Namespace Colors. +* yellow_green: Namespace Colors. + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-12 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-12 --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-12 1970-01-01 01:00:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-12 2003-12-10 18:44:55.000000000 +0100 @@ -0,0 +1,503 @@ +This is 3DLDF.info, produced by makeinfo version 4.5 from 3DLDF.texi. + +This is the 3DLDF User and Reference Manual, edition 1.1.4 for 3DLDF +1.1.4. This manual was last updated on 10 December 2003. 3DLDF is a +GNU package for three-dimensional drawing with MetaPost output. The +author is Laurence D. Finston. + + Copyright (C) 2003 Laurence D. Finston. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, and + no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License". + +INFO-DIR-SECTION GNU packages +START-INFO-DIR-ENTRY +* 3DLDF: (3DLDF). 3D drawing with MetaPost output. +END-INFO-DIR-ENTRY + + +File: 3DLDF.info, Node: Function Index, Next: Concept Index, Prev: Data Type and Variable Index, Up: Top + +Function Index +************** + +* Menu: + +* align_with_axis <1>: Aligning Paths with an Axis. +* align_with_axis: Alignment with an Axis for Transforms. +* angle: Vector Operations. +* angle_point <1>: Returning Elements and Information for Ellipses. +* angle_point: Querying Regular Closed Plane Curves. +* append: Appending to Paths. +* apply_transform <1>: Applying Transformations to Solids. +* apply_transform <2>: Applying Transformations to Paths. +* apply_transform <3>: Applying Transformations to Points. +* apply_transform: Applying Transformations to Shapes. +* beginfig: I/O Functions. +* bool_point: Point Typedefs and Utility Structures. +* bool_point::operator=: Point Typedefs and Utility Structures. +* bool_point_quadruple: Point Typedefs and Utility Structures. +* bool_point_quadruple::operator=: Point Typedefs and Utility Structures. +* bool_real_point: Point Typedefs and Utility Structures. +* bool_real_point::operator=: Point Typedefs and Utility Structures. +* Circle: Circle Constructors and Setting Functions. +* clean <1>: Modifying Points. +* clean: Cleaning Transforms. +* clear <1>: Clearing Solids. +* clear <2>: Clearing Paths. +* clear <3>: Modifying Points. +* clear <4>: Modifying Pictures. +* clear: Clearing Shapes. +* Color: Color Constructors and Setting Functions. +* corner: Returning Points for Rectangles. +* create_new_circle: Circle Constructors and Setting Functions. +* create_new_color: Color Constructors and Setting Functions. +* create_new_cuboid: Cuboid Constructors and Setting Functions. +* create_new_ellipse: Ellipse Constructors and Setting Functions. +* create_new_path: Path Constructors and Setting Functions. +* create_new_point: Point Constructors and Setting Functions. +* create_new_rectangle: Rectangle Constructors and Setting Functions. +* create_new_reg_polygon: Regular Polygon Constructors and Setting Functions. +* create_new_solid: Solid Constructors and Setting Functions. +* cross_product: Vector Operations. +* Cuboid: Cuboid Constructors and Setting Functions. +* define_color_mp: Defining and Initializing Colors. +* do_transform: Performing Transformations on Ellipses. +* Dodecahedron: Dodecahedron Constructors and Setting Functions. +* dot_product: Vector Operations. +* dotlabel <1>: Labeling Ellipses. +* dotlabel <2>: Labelling Paths. +* dotlabel: Labelling Points. +* draw <1>: Drawing and Filling Solids. +* draw <2>: Drawing and Filling Paths. +* draw: Point Drawing Functions. +* draw_axes: Drawing and Filling Paths. +* draw_help <1>: Drawing and Filling Paths. +* draw_help: Point Drawing Functions. +* draw_in_circle: Circles for Regular Polygons. +* draw_in_ellipse: Ellipses for Rectangles. +* draw_in_rectangle: Rectangles for Ellipses. +* draw_net <1>: Icosahedron Net. +* draw_net <2>: Dodecahedron Net. +* draw_net: Tetrahedron Net. +* draw_out_circle: Circles for Regular Polygons. +* draw_out_ellipse: Ellipses for Rectangles. +* draw_out_rectangle: Rectangles for Ellipses. +* drawarrow <1>: Drawing and Filling Paths. +* drawarrow: Point Drawing Functions. +* drawdot: Point Drawing Functions. +* Ellipse: Ellipse Constructors and Setting Functions. +* endfig: I/O Functions. +* epicycloid_pattern_1: Epicycloids. +* epsilon <1>: Returning Information for Points. +* epsilon: Returning Information for Transforms. +* extract <1>: Outputting Solids. +* extract <2>: Outputting Paths. +* extract <3>: Outputting Points. +* extract: Outputting Shapes. +* fill <1>: Drawing and Filling Solids. +* fill: Drawing and Filling Paths. +* filldraw <1>: Drawing and Filling Solids. +* filldraw: Drawing and Filling Paths. +* Focus: Focus Constructors and Setting Functions. +* get_all_coords: Returning Coordinates. +* get_axis_h <1>: Returning Elements and Information for Ellipses. +* get_axis_h: Querying Rectangles. +* get_axis_v <1>: Returning Elements and Information for Ellipses. +* get_axis_v: Querying Rectangles. +* get_blue_part: Querying Colors. +* get_center <1>: Returning Elements and Information Solids. +* get_center <2>: Returning Elements and Information for Ellipses. +* get_center: Querying Polygons. +* get_circle_center: Getting Shape Centers Solids. +* get_circle_ptr: Getting Shapes Solids. +* get_coefficients <1>: Solving Ellipses. +* get_coefficients: Querying Regular Closed Plane Curves. +* get_coord: Returning Coordinates. +* get_copy <1>: Copying Solids. +* get_copy <2>: Copying Paths. +* get_copy <3>: Copying Points. +* get_copy <4>: Copying Labels. +* get_copy: Copying Shapes. +* get_diameter: Querying Circles. +* get_direction: Querying Focuses. +* get_distance <1>: Planes Returning Information. +* get_distance: Querying Focuses. +* get_element: Querying Transforms. +* get_ellipse_center: Getting Shape Centers Solids. +* get_ellipse_ptr: Getting Shapes Solids. +* get_extremes <1>: Outputting Solids. +* get_extremes <2>: Outputting Paths. +* get_extremes <3>: Outputting Points. +* get_extremes: Outputting Shapes. +* get_focus: Returning Elements and Information for Ellipses. +* get_green_part: Querying Colors. +* get_last_point: Querying Paths. +* get_line <1>: Querying Paths. +* get_line: Points and Lines. +* get_line_switch: Querying Paths. +* get_linear_eccentricity: Returning Elements and Information for Ellipses. +* get_maximum_z <1>: Outputting Solids. +* get_maximum_z <2>: Outputting Paths. +* get_maximum_z <3>: Outputting Points. +* get_maximum_z: Outputting Shapes. +* get_mean_z <1>: Outputting Solids. +* get_mean_z <2>: Outputting Paths. +* get_mean_z <3>: Outputting Points. +* get_mean_z: Outputting Shapes. +* get_minimum_z <1>: Outputting Solids. +* get_minimum_z <2>: Outputting Paths. +* get_minimum_z <3>: Outputting Points. +* get_minimum_z: Outputting Shapes. +* get_name: Querying Colors. +* get_net <1>: Truncated Octahedron Net. +* get_net <2>: Icosahedron Net. +* get_net <3>: Dodecahedron Net. +* get_net: Tetrahedron Net. +* get_normal: Querying Paths. +* get_numerical_eccentricity: Returning Elements and Information for Ellipses. +* get_path: Get Path. +* get_path_ptr: Getting Shapes Solids. +* get_persp: Querying Focuses. +* get_persp_element: Querying Focuses. +* get_plane: Querying Paths. +* get_point: Querying Paths. +* get_position: Querying Focuses. +* get_radius <1>: Querying Circles. +* get_radius: Querying Regular Polygons. +* get_rectangle_center: Getting Shape Centers Solids. +* get_rectangle_ptr: Getting Shapes Solids. +* get_red_part: Querying Colors. +* get_reg_polygon_center: Getting Shape Centers Solids. +* get_reg_polygon_ptr: Getting Shapes Solids. +* get_shape_center: Getting Shape Centers Solids. +* get_shape_ptr: Getting Shapes Solids. +* get_size: Querying Paths. +* get_transform <1>: Querying Focuses. +* get_transform: Querying Points. +* get_transform_element: Querying Focuses. +* get_up: Querying Focuses. +* get_use_name: Querying Colors. +* get_w: Returning Coordinates. +* get_x: Returning Coordinates. +* get_y: Returning Coordinates. +* get_z: Returning Coordinates. +* half: Regular Closed Plane Curve Segments. +* hex_pattern_1: Plane Tesselations. +* Icosahedron: Icosahedron Constructors and Setting Functions. +* in_circle: Circles for Regular Polygons. +* in_ellipse: Ellipses for Rectangles. +* in_rectangle: Rectangles for Ellipses. +* initialize_colors: Defining and Initializing Colors. +* initialize_io: I/O Functions. +* intersection_line: Plane Intersections. +* intersection_point <1>: Path Intersections. +* intersection_point <2>: Plane Intersections. +* intersection_point: Point Intersections. +* intersection_points <1>: Circle Intersections. +* intersection_points <2>: Ellipse Intersections. +* intersection_points <3>: Regular Closed Plane Curve Intersections. +* intersection_points: Polygon Intersections. +* inverse: Matrix Inversion. +* is_circular: Querying Circles. +* is_cubic <1>: Querying Ellipses. +* is_cubic: Querying Regular Closed Plane Curves. +* is_cycle: Querying Paths. +* is_elliptical: Querying Ellipses. +* is_identity <1>: Querying Points. +* is_identity: Querying Transforms. +* is_in_triangle: Querying Points. +* is_linear: Querying Paths. +* is_on_free_store <1>: Querying Solids. +* is_on_free_store <2>: Querying Paths. +* is_on_free_store <3>: Querying Points. +* is_on_free_store <4>: Querying Shapes. +* is_on_free_store: Querying Colors. +* is_on_line: Points and Lines. +* is_on_plane: Querying Points. +* is_on_segment: Points and Lines. +* is_planar: Querying Paths. +* is_quadratic <1>: Querying Ellipses. +* is_quadratic: Querying Regular Closed Plane Curves. +* is_quartic <1>: Querying Ellipses. +* is_quartic: Querying Regular Closed Plane Curves. +* is_rectangular: Querying Rectangles. +* kill_labels: Modifying Pictures. +* label <1>: Labeling Ellipses. +* label <2>: Labelling Paths. +* label: Labelling Points. +* Line: Line Constructors. +* location <1>: Returning Elements and Information for Ellipses. +* location: Querying Regular Closed Plane Curves. +* magnitude: Vector Operations. +* mediate: Points and Lines. +* mid_point: Returning Points for Rectangles. +* modify: Modifying Colors. +* operator!= <1>: Planes Operators. +* operator!= <2>: Point Operators. +* operator!=: Color Operators. +* operator&: Path Operators. +* operator&=: Path Operators. +* operator* <1>: Point Operators. +* operator*: Transform Operators. +* operator*= <1>: Solid Operators. +* operator*= <2>: Ellipse Operators. +* operator*= <3>: Polygon Operators. +* operator*= <4>: Path Operators. +* operator*= <5>: Point Operators. +* operator*= <6>: Picture Operators. +* operator*= <7>: Transform Operators. +* operator*=: Shape Operators. +* operator+ <1>: Path Operators. +* operator+: Point Operators. +* operator+= <1>: Path Operators. +* operator+= <2>: Point Operators. +* operator+=: Picture Operators. +* operator-: Point Operators. +* operator-=: Point Operators. +* operator/: Point Operators. +* operator/=: Point Operators. +* operator<< <1>: Outputting Points. +* operator<<: Color Operators. +* operator= <1>: Cuboid Operators. +* operator= <2>: Solid Operators. +* operator= <3>: Circle Operators. +* operator= <4>: Ellipse Operators. +* operator= <5>: Rectangle Operators. +* operator= <6>: Regular Polygon Operators. +* operator= <7>: Planes Operators. +* operator= <8>: Line Operators. +* operator= <9>: Focus Operators. +* operator= <10>: Point Operators. +* operator= <11>: Picture Operators. +* operator= <12>: Transform Operators. +* operator=: Color Operators. +* operator= (for Points): Setting and Assigning to Points. +* operator== <1>: Planes Operators. +* operator== <2>: Point Operators. +* operator==: Color Operators. +* out_circle: Circles for Regular Polygons. +* out_ellipse: Ellipses for Rectangles. +* out_rectangle: Rectangles for Ellipses. +* output <1>: Outputting Solids. +* output <2>: Outputting Paths. +* output <3>: Outputting Points. +* output <4>: Picture Output Functions. +* output <5>: Outputting Labels. +* output: Outputting Shapes. +* Path: Path Constructors and Setting Functions. +* persp_0: Perspective Functions. +* Picture: Picture Constructors. +* Plane: Planes Constructors. +* Point: Point Constructors and Setting Functions. +* Point::intersection_points: Intersections. +* Point::operator=: Setting and Assigning to Points. +* Point::set: Setting and Assigning to Points. +* project <1>: Outputting Paths. +* project: Projecting Points. +* quarter: Regular Closed Plane Curve Segments. +* real_triple: Typedefs and Utility Structures. +* Rectangle: Rectangle Constructors and Setting Functions. +* Reg_Polygon: Regular Polygon Constructors and Setting Functions. +* reset: Resetting Transforms. +* reset_angle: Modifying Focuses. +* reset_transform <1>: Modifying Points. +* reset_transform: Modifying Pictures. +* reverse: Querying Paths. +* rotate <1>: Affine Transformations for Solids. +* rotate <2>: Affine Transformations for Ellipses. +* rotate <3>: Affine Transformations for Polygons. +* rotate <4>: Affine Transformations for Paths. +* rotate <5>: Affine Transformations for Points. +* rotate <6>: Affine Transformations for Pictures. +* rotate <7>: Affine Transformations for Transforms. +* rotate: Affine Transformations for Shapes. +* scale <1>: Affine Transformations for Solids. +* scale <2>: Affine Transformations for Ellipses. +* scale <3>: Affine Transformations for Polygons. +* scale <4>: Affine Transformations for Paths. +* scale <5>: Affine Transformations for Points. +* scale <6>: Affine Transformations for Pictures. +* scale <7>: Affine Transformations for Transforms. +* scale: Affine Transformations for Shapes. +* segment: Regular Closed Plane Curve Segments. +* set <1>: Tetrahedron Constructors and Setting Functions. +* set <2>: Circle Constructors and Setting Functions. +* set <3>: Ellipse Constructors and Setting Functions. +* set <4>: Rectangle Constructors and Setting Functions. +* set <5>: Regular Polygon Constructors and Setting Functions. +* set <6>: Path Constructors and Setting Functions. +* set <7>: Focus Constructors and Setting Functions. +* set <8>: Point Constructors and Setting Functions. +* set: Color Constructors and Setting Functions. +* set (for Points): Setting and Assigning to Points. +* set_blue_part: Modifying Colors. +* set_connectors: Modifying Paths. +* set_cycle: Querying Paths. +* set_dash_pattern: Modifying Paths. +* set_draw_color: Modifying Paths. +* set_element: Setting Values Transforms. +* set_extremes <1>: Outputting Solids. +* set_extremes <2>: Outputting Paths. +* set_extremes <3>: Outputting Points. +* set_extremes: Outputting Shapes. +* set_fill_color: Modifying Paths. +* set_fill_draw_value: Modifying Paths. +* set_green_part: Modifying Colors. +* set_name: Modifying Colors. +* set_on_free_store <1>: Setting Solid Members. +* set_on_free_store <2>: Modifying Paths. +* set_on_free_store <3>: Modifying Points. +* set_on_free_store: Modifying Shapes. +* set_pen: Modifying Paths. +* set_red_part: Modifying Colors. +* set_transform: Modifying Pictures. +* set_use_name: Modifying Colors. +* shear <1>: Affine Transformations for Solids. +* shear <2>: Affine Transformations for Ellipses. +* shear <3>: Affine Transformations for Polygons. +* shear <4>: Affine Transformations for Paths. +* shear <5>: Affine Transformations for Points. +* shear <6>: Affine Transformations for Transforms. +* shear: Affine Transformations for Shapes. +* shift <1>: Affine Transformations for Solids. +* shift <2>: Affine Transformations for Ellipses. +* shift <3>: Affine Transformations for Polygons. +* shift <4>: Affine Transformations for Paths. +* shift <5>: Affine Transformations for Points. +* shift <6>: Affine Transformations for Pictures. +* shift <7>: Affine Transformations for Transforms. +* shift: Affine Transformations for Shapes. +* shift_times <1>: Affine Transformations for Ellipses. +* shift_times <2>: Affine Transformations for Polygons. +* shift_times <3>: Affine Transformations for Paths. +* shift_times <4>: Affine Transformations for Points. +* shift_times: Affine Transformations for Transforms. +* show <1>: Showing Solids. +* show <2>: Showing Paths. +* show <3>: Planes Showing. +* show <4>: Showing. +* show <5>: Showing Focuses. +* show <6>: Showing Points. +* show <7>: Showing Pictures. +* show <8>: Showing Transforms. +* show <9>: Showing Shapes. +* show: Showing Colors. +* show_colors: Showing Paths. +* show_transform <1>: Showing Points. +* show_transform: Showing Pictures. +* size: Querying Paths. +* slope <1>: Querying Paths. +* slope: Points and Lines. +* Solid: Solid Constructors and Setting Functions. +* solve <1>: Solving Ellipses. +* solve: Querying Regular Closed Plane Curves. +* solve_quadratic: Utility Functions. +* subpath: Querying Paths. +* suppress_labels: Picture Output Functions. +* suppress_output <1>: Outputting Solids. +* suppress_output <2>: Outputting Paths. +* suppress_output <3>: Outputting Points. +* suppress_output: Outputting Shapes. +* Tetrahedron: Tetrahedron Constructors and Setting Functions. +* Transform: Transform Constructors. +* trunc: Utility Functions. +* Trunc_Octahedron: Truncated Octahedron Constructors and Setting Functions. +* undraw <1>: Drawing and Filling Solids. +* undraw <2>: Drawing and Filling Paths. +* undraw: Point Drawing Functions. +* undrawdot: Point Drawing Functions. +* unfill <1>: Drawing and Filling Solids. +* unfill: Drawing and Filling Paths. +* unfilldraw <1>: Drawing and Filling Solids. +* unfilldraw: Drawing and Filling Paths. +* unit_vector: Vector Operations. +* unsuppress_labels: Picture Output Functions. +* unsuppress_output <1>: Outputting Solids. +* unsuppress_output <2>: Outputting Paths. +* unsuppress_output: Outputting Shapes. +* void: Outputting Points. +* write_footers: I/O Functions. +* ~Cuboid: Cuboid Constructors and Setting Functions. +* ~Path: Path Destructor. +* ~Point: Point Destructor. +* ~Solid: Solid Destructor. + + +File: 3DLDF.info, Node: Concept Index, Prev: Function Index, Up: Top + +Concept Index +************* + +* Menu: + +* animation: Focuses Getstart. +* arbitrary Path: Intersections. +* bugs: Rotating Points. +* Comprehensive TeX Archive Network (CTAN): Sources of Information. +* connecting Points: Drawing Points Intro. +* connectors <1>: Intersections. +* connectors: Paths. +* contributing to 3DLDF: Intersections. +* control points: Paths. +* controls: Paths. +* CTAN (Comprehensive TeX Archive Network): Sources of Information. +* curl: Paths. +* drawing and filling: Drawing Points Intro. +* Emacs: I/O Functions. +* Encapsulated PostScript (EPS): Metafont and MetaPost. +* EPS (Encapsulated PostScript): Metafont and MetaPost. +* FDL, GNU Free Documentation License: GNU Free Documentation License. +* figures: Illustrations. +* file, output: Point Drawing Functions. +* function, member: Manual Conventions. +* future plans: Intersections. +* help lines: Point Drawing Functions. +* hidden surface algorithm: Surface Hiding. +* homogeneous coordinates: Transforms. +* identity matrix: Transforms. +* input routine: Declaring and Initializing Points. +* intersection: Intersections. +* intersection points: Intersections. +* intersection theory: Intersections. +* inversion: Inverting Transforms. +* kludge: Utility Functions. +* linear Paths: Path Data Members. +* lines, drawing: Drawing Points Intro. +* local variable lists: I/O Functions. +* matrix inversion: Inverting Transforms. +* matrix operations: Transforms. +* matrix, identity: Transforms. +* measurement units: Declaring and Initializing Points. +* member function: Manual Conventions. +* Metafont: Metafont and MetaPost. +* MetaPost: Metafont and MetaPost. +* non-arbitrary Path: Intersections. +* operations, matrix: Transforms. +* output file <1>: Point Drawing Functions. +* output file <2>: Intersections. +* output file: Pictures. +* output files: Pictures. +* painter's algorithm: Surface Hiding. +* Path connectors: Intersections. +* Path intersections: Intersections. +* paths: Paths. +* pen expression: Point Drawing Functions. +* pens: Drawing Points Intro. +* Points, connecting: Drawing Points Intro. +* raw MetaPost code: Pictures. +* RGB (red-green-blue): Color Data Members. +* surface hiding: Surface Hiding. +* symbols: Manual Conventions. +* system dependencies: Global Constants and Variables. +* tension: Paths. +* theory of intersection: Intersections. +* TO DO <1>: Global Constants and Variables. +* TO DO: Projections. +* units of measurement: Declaring and Initializing Points. + + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-2 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-2 --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-2 1970-01-01 01:00:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-2 2003-12-10 18:44:55.000000000 +0100 @@ -0,0 +1,1359 @@ +This is 3DLDF.info, produced by makeinfo version 4.5 from 3DLDF.texi. + +This is the 3DLDF User and Reference Manual, edition 1.1.4 for 3DLDF +1.1.4. This manual was last updated on 10 December 2003. 3DLDF is a +GNU package for three-dimensional drawing with MetaPost output. The +author is Laurence D. Finston. + + Copyright (C) 2003 Laurence D. Finston. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, and + no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License". + +INFO-DIR-SECTION GNU packages +START-INFO-DIR-ENTRY +* 3DLDF: (3DLDF). 3D drawing with MetaPost output. +END-INFO-DIR-ENTRY + + +File: 3DLDF.info, Node: Rotating Points, Prev: Shearing Points, Up: Transforming Points + +Rotating +======== + + The function `rotate()' rotates a `Point' about one or more of the +main axes. It takes three `real' arguments, specifying the angles of +rotation in degrees about the x, y, and z-axes respectively. Only the +first argument is required, the other two are 0 by default. If +rotation about the y-axis, or the y and z-axes only are required, then 0 +must be used as a placeholder for the first and possibly the second +argument. + + Point p(0, 1); + p.rotate(90); + p.show("p:"); + -| p: (0, 0, -1) + p.rotate(0, 90); + p.show("p:"); + -| p: (1, 0, 0) + p.rotate(0, 0, 90); + p.show("p:"); + -| p: (0, 1, 0) + + The rotations are performed successively about the x, y, and z-axes. +However, rotation is not a commutative operation, so if rotation about +the main axes in a different order is required, then `rotate()' must be +invoked more than once: + + Point A(2, 3, 4); + Point B(A); + A.rotate(30, 60, 90); + A.show("A:"); + -| A: (-4.59808, -0.700962, 2.7141) + B.rotate(0, 0, 90); + B.rotate(0, 60); + B.rotate(30); + B.show("B:"); + -| B: (-4.9641, 1.43301, -1.51795) + + Rotation need not be about the main axes; it can also be performed +about a line defined by two `Points'. The function `rotate()' with two +`Point' arguments and a `real' argument for the angle of rotation (in +degrees) about the axis. The `real' argument is optional, with 180 +degrees + + as the default. + + Point p0 (-1.06066, 0, 1.06066); + Point p1 (1.06066, 0, -1.06066); + p1 *= p0.rotate(0, 30, 30); + p0.show("p0:"); + -| p0: (-1.25477, -0.724444, 0.388228) + p1.show("p1:"); + -| p1: (1.25477, 0.724444, -0.388228) + p0.draw(p1); + Point p2(1.06066, 0, 1.06066); + p2.show("p2:"); + -| p2: (1.06066, 0, 1.06066) + Point p3(p2); + p3.rotate(p1, p0, 45); + p3.show("p3:"); + -| p3 (1.09721, 1.15036, 1.17879) + Point p4(p2); + p4.rotate(p1, p0, 90); + p4.show("p4:"); + -| p4: (0.882625, 2.05122, 0.485242) + Point p5(p2); + p5.rotate(p1, p0, 135); + p5.show("p5:"); + -| p5: (0.542606, 2.17488, -0.613716) + Point p6(p2); + p6.rotate(p1, p0); + p6.show("p6:"); + -| p6: (0.276332, 1.44889, -1.47433) + + I have sometimes gotten erroneous results using `rotate()' for +rotation about two `Points'. It's usually worked to reverse the order +of the `Point' arguments, or to change sign of the angle argument. I +think I've fixed the problem, though. + + +File: 3DLDF.info, Node: Transforms, Next: Drawing and Labeling Points, Prev: Transforming Points, Up: Top + +Transforms +********** + + When `Points' are transformed using `shift()', `shear()', or one of +the other transformation functions, the `world_coordinates' are not +modified directly. Instead, another data member of `class Point' is +used to store the information about the transformation, namely +`transform' of type `class Transform'. A `Transform' object has a +single data element of type `Matrix' and a number of member functions. +A `Matrix' is simply a 4 X 4 array(1) of `reals' defined using `typedef +real Matrix[4][4]'. Such a matrix suffices for performing all of the +transformations (affine and perspective) possible in three-dimensional +space.(2) Any combination of transformations can be represented by a +single transformation matrix. This means that consecutive +transformations of a `Point' can be "saved up" and applied to its +coordinates all at once when needed, rather than updating them for each +transformation. + + `Transforms' work by performing matrix multiplication of `Matrix' +with the homogeneous `world_coordinates' of `Points'. If a set of +homogeneous coordinates \alpha = (x, y, z, w) and + `Matrix M' = + a e i m + b f j n + c g k o + d h l p + then the set of homogeneous coordinates \beta resulting from +multiplying \alpha and M is calculated as follows: + \beta = \alpha\times M = ((xa + yb + zc + wd), (xe + yf + zg + wh), + (xi + yj + zk + wl), (xm + yn + zo + wp)) + Please note that each coordinate of \beta can be influenced by all +of the coordinates of \alpha. + + Operations on matrices are very important in computer graphics +applications and are described in many books about computer graphics +and geometry. For 3DLDF, I've mostly used Huw Jones' `Computer +Graphics through Key Mathematics' and David Salomon's `Computer +Graphics and Geometric Modeling'. + + It is often useful to declare and use `Transform' objects in 3DLDF, +just as it is for `transforms' in Metafont. Transformations can be +stored in `Transforms' and then be used to transform `Points' by means +of `Point::operator*=(const Transform&)'. + + 1. Transform t; + 2. t.shift(0, 1); + 3. Point p(1, 0, 0); + 4. p *= t; + 5. p.show("p:"); + -| p: (1, 1, 0) + + When a `Transform' is declared (line 1), it is initialized to an +"identity matrix". All identity matrices are square, all of the +elements of the main diagonal (upper left to lower right) are 1, and +all of the other elements are 0. So a 4 X 4 identity matrix, as used +in 3DLDF, looks like this: + 1 0 0 0 + 0 1 0 0 + 0 0 1 0 + 0 0 0 1 + If a matrix A is multiplied with an identity matrix I, the result is +identical to A, i.e., A * I = A. This is the salient property of an +identity matrix. + + The same affine transformations are applied in the same way to +`Transforms' as they are to `Points', i.e., the functions `scale()', +`shift()', `shear()', and `rotate()' correspond to the `Point' versions +of these functions, and they take the same arguments: + + Point p; + Transform t; + p.shift(3, 4, 5); + t.shift(3, 4, 5); + => p.transform == t + p.show_transform("p:"); + -| p: + Transform: + 0 0.707 0.707 0 + -0.866 0.354 -0.354 0 + -0.5 -0.612 0.612 0 + 0 0 0 1 + t.show("t:"); + -| t: + 0 0.707 0.707 0 + -0.866 0.354 -0.354 0 + -0.5 -0.612 0.612 0 + 0 0 0 1 + +* Menu: + +* Applying Transforms to Points Intro:: +* Inverting Transforms:: + + ---------- Footnotes ---------- + + (1) It is unfortunate that the terms "array", "matrix", and "vector" +have different meanings in C++ and in normal mathematical usage. +However, in practice, these discrepancies turn out not to cause many +problems. Stroustrup, `The C++ Programming Language', section 22.4, +p. 662. + + (2) In fact, none of the operations for transformations require all +of the elements of a 4 X 4 matrix. In many 3D graphics programs, the +matrix operations are modified to use smaller transformation matrices, +which reduces the storage requirements of the program. This is a bit +tricky, because the affine transformations and the perspective +transformation use different elements of the matrix. I consider that +the risk of something going wrong, possibly producing hard-to-find +bugs, outweighs any benefits from saving memory (which is usually no +longer at a premium, anyway). In addition, there may be some +interesting non-affine transformations that would be worth +implementing. Therefore, I've decided to use full 4 X 4 matrices in +3DLDF. + + +File: 3DLDF.info, Node: Applying Transforms to Points Intro, Next: Inverting Transforms, Prev: Transforms, Up: Transforms + +Applying Transforms to Points +============================= + + A `Transform' t is applied to a `Point' P using the binary `*=' +operation (`Point::operator*=(const Transform&)') which performs matrix +multiplication of `P.transform' by `t'. *Note Point Reference; +Operators: Point Operators. + + Point P(0, 1); + Transform t; + t.rotate(90); + t.show("t:"); + -| t: + 1 0 0 0 + 0 0 -1 0 + 0 1 0 0 + 0 0 0 1 + P *= t; + P.show_transform("P:"); + -| P: + Transform: + 1 0 0 0 + 0 0 -1 0 + 0 1 0 0 + 0 0 0 1 + P.show("P:"); + -| P: (0, 0, -1) + + In the example above, there is no real need to use a `Transform', +since `P.rotate(90)' could have been called directly. As +constructions become more complex, the power of `Transforms' becomes +clear: + + 1. Point p0(0, 0, 0); + 2. Point p1(10, 5, 10); + 3. Point p2(16, 14, 32); + 4. Point p3(25, 50, 99); + 5. Point p4(12, 6, 88); + 6. Transform a; + 7. a.shift(2, 3, 4); + 8. a.scale(1, 3, 1); + 9. p2 *= p3 *= a; + 10. a.rotate(p0, p1, 75); + 11. p4 *= a; + 12. p2.show("p2:"); + -| p2: (18, 51, 36) + 13. p3.show("p3:"); + -| p3: (27, 159, 103) + 14. p4.show("p4:"); + -| p4: (24.4647, -46.2869, 81.5353) + + In this example, a is shifted and scaled, and a is applied to both +in line 9. This works, because the binary operation `operator*=(const +Transform& t)' returns T, making it possible to chain invocations of +`*='. Following this, a is rotated 75 degrees + + about the line through p_0 and p_1. Finally, all three +transformations, which are stored in a, are applied to p_4. + + +File: 3DLDF.info, Node: Inverting Transforms, Prev: Applying Transforms to Points Intro, Up: Transforms + +Inverting Transforms +==================== + + "Inversion" is another operation that can be performed on +`Transforms'. This makes it possible to reverse the effect of a +`Transform', which may represent multiple transformations. + + Point p; + Transform t; + t.shift(1, 2, 3); + t.scale(2, 3, 4); + t.rotate(45, 45, 30); + t.show("t:"); + -| t: + 1.22 0.707 1.41 0 + 0.238 2.59 -1.5 0 + -3.15 1.45 2 0 + -7.74 10.2 4.41 1 + p *= t; + p.show("p:"); + -| p: (-7.74, 10.2, 4.41) + Transform u; + u = t.inverse(); + u.show("u:"); + -| u: + 0.306 0.0265 -0.197 2.85e-09 + 0.177 0.287 0.0906 -1.12e-09 + 0.354 -0.167 0.125 0 + -1 -2 -3 1 + p *= u; + p.show("p:"); + -| p: (0, 0, 0) + u *= t; + u.show("u:"); + -| u: + 1 0 0 0 + 0 1 0 0 + 0 0 1 0 + 0 0 0 1 + + If `inverse()' is called with no argument, or with the argument +`false', it returns a `Transform' representing its inverse, and remains +unchanged. If it is called with the argument `true', it is set to its +inverse. + + Complete reversal of the transformations applied to a `Point', as in +the previous example, probably won't make much sense. However, partial +reversal is a valuable technique. For example, it is used in +`rotate()' for rotation about a line defined by two `Points'. The +following example merely demonstrates the basic principle; an example +that does something useful would be too complicated. + + Transform t; + t.shift(3, 4, 5); + t.rotate(45); + t.scale(2, 2, 2); + Point p; + p *= t; + p.show("p:"); + -| p: (6, 12.7279, 1.41421) + t.inverse(true); + p.rotate(90, 90); + p *= t; + p.show("p:"); + -| p: (3.36396, -5.62132, -2.37868) + + +File: 3DLDF.info, Node: Drawing and Labeling Points, Next: Paths, Prev: Transforms, Up: Top + +Drawing and Labeling Points +*************************** + +* Menu: + +* Drawing Points Intro:: +* Labeling Points Intro:: + + +File: 3DLDF.info, Node: Drawing Points Intro, Next: Labeling Points Intro, Prev: Drawing and Labeling Points, Up: Drawing and Labeling Points + +Drawing Points +============== + + It's all very well to declare `Points', place them at particular +locations, print their locations to standard output, and transform them, +but none of these operations produce any MetaPost output. In order to +do this, the first step is to use "drawing and filling commands". The +drawing and filling commands in 3DLDF are modelled on those in Metafont. + + The following example demonstrates how to draw a dot specifying a +`Color' (*note Color Reference::) and a "pen"(1). + + Point P(0, 1); + P.drawdot(Colors::black, "pencircle scaled 3mm"); + + In `drawdot()', a `Color' argument precedes the `string' argument +for the pen, so "`Colors::black'" must be specified as a placeholder in +the call to `drawdot()'.(2) + + The following example "undraws" a dot at the same location using a +smaller pen. `undraw()' does not take a `Color' argument. + + p.undrawdot("pencircle scaled 2mm"); + +For complete descriptions of `drawdot()' and `undrawdot()', see *Note +Point Reference; Drawing: Point Drawing Functions. + + Drawing and undrawing dots is not very exciting. In order to make a +proper drawing it is necessary to _connect_ the `Points'. The most +basic way of doing this is to use the `Point' member function `draw()' +with a `Point' argument: + + Point p0; + Point p1(2, 2); + p0.draw(p1); + +`p0.draw(p1)' is equivalent in its effect to `p1.draw(p0)'. + + The function `Point::draw()' takes a required `Point&' argument (a +"reference"(3) to a `Point') an optional `Color' argument, and optional +`string' arguments for the dash pattern and the pen. The `string' +arguments, if present, are passed unchanged to the output file. The +empty `string' following the argument `p1' is a placeholder for the +dash pattern argument, which isn't used here. + + p0.draw(p1, Colors::gray, "", "pensquare scaled .5cm rotated 45"); + + The function `Point::undraw()' takes a required `Point&' argument and +optional `string' arguments for the dash pattern and the pen. Unlike +`Point::draw()', a `Color' argument would have no meaning for +`Point::undraw()'. The `string' arguments are passed unchanged to the +output file. + + `undraw()' can be used to "hollow out" the region drawn in [the +previous figure] . Since a dash pattern is used, portions of the +middle of the region are not undrawn. + + p0.undraw(p1, "evenly scaled 6", "pencircle scaled .2cm"); + + For complete descriptions of `draw()' and `undraw()', see *Note +Point Reference; Drawing: Point Drawing Functions. + + ---------- Footnotes ---------- + + (1) Pens are a concept from Metafont. In 3DLDF, there is currently +no type "`Pen'". Pen arguments to functions are simply `strings', and +are written unaltered to `out_stream'. For more information about +Metafont's `pens', see Knuth, `The Metafontbook', Chapter 4. + + (2) `Colors' are declared in the namespace `Colors', so if you have +a "`using'" declaration in the function where you use `drawdot()', you +can write "`black'" instead of "`Colors::black'". For more information +about namespaces, see Stroustrup, `The C++ Programming Language', +Chapter 8. + + (3) "A "reference" is an alternative name for an object. The main +use of references is for specifying arguments and return values for +functions in general and for overloaded operators (Chapter 11) in +particular." Stroustrup, `The C++ Programming Language', section 5.5, +p. 97. + + +File: 3DLDF.info, Node: Labeling Points Intro, Prev: Drawing Points Intro, Up: Drawing and Labeling Points + +Labeling Points +=============== + + The labels in the previous examples were made by using the functions +`Point::label()' and `Point::dotlabel()', which make it possible to +include TeX text in a drawing. + + `label()' and `dotlabel()' take `string' arguments for the text of +the label and the position of the label with respect to the `Point'. +The label text is formatted using TeX, so it can contain math mode +material between dollar signs. Please note that double backslashes +must be used, where a single backslash would suffice in a file of +MetaPost code, for example, for TeX control sequences. Alternatively, +a `short' argument can be used for the label. + + The position argument is optional, with `"top"' as the default. If +the empty `string' `""' is used, the label will centered about the +`Point' itself. This will usually only make sense for `label()', +because it would otherwise interfere with the dot. Valid arguments for +the position are the same as in MetaPost: `"top"', `"bot"' (bottom), +`"lft"' (left), `"rt"' (right), `"ulft"' (upper left), `"urt"' (upper +right), `"llft"' (lower left), and `"lrt"' (lower right). + + Point p0; + Point p1(1); + Point p2(2); + Point p3(p0); + Point p4(p1); + Point p5(p2); + p3 *= p4 *= p5.shift(0, 1); + p0.draw(p1); + p1.draw(p2); + p2.draw(p5); + p5.draw(p4); + p4.draw(p3); + p3.draw(p0); + p0.label($p_0$, ""); + p1.dotlabel(1); + p2.dotlabel("p2", "bot"); + p3.dotlabel("This is $p_3$", "lft"); + p4.label(4); + p5.label("$\\leftarrow p_5$", "rt"); + + For complete descriptions of `Point::label()' and +`Point::dotlabel()', see *Note Points; Labelling: Labelling Points. + + +File: 3DLDF.info, Node: Paths, Next: Plane Figures, Prev: Drawing and Labeling Points, Up: Top + +Paths +***** + + `Points' alone are not enough for making useful drawings. The next +step is to combine them into `Paths', which are similar to Metafont's +paths, except that they are three-dimensional. A `Path' consists of a +number of `Points' and `strings' representing the "connectors". The +latter are not processed by 3DLDF, but are passed unchanged to the +output file. They must be valid connectors for MetaPost, e.g.: + + .. + ... + -- + --- + & + curl{2}.. + {dir 60}.. + {z1 - z2}.. + .. tension 1 and 1.5.. + ..controls z1 and z2.. + + Usually, it will only make sense to use .. or -, and not ..., --, +tension, curl, controls, or any of the other possibilities, in `Paths', +unless you are sure that they will only be viewed with no +foreshortening due to the perspective projection. This can be the +case, when a `Path' lies in a plane parallel to one of the major +planes, and is projected using parallel projection onto that plane. +Otherwise, the result of using these connectors is likely to be +unsatisfactory, because MetaPost performs its calculations based purely +on the two-dimensional values of the points in the perspective +projection. While the `Points' on the `Path' will be projected +correctly, the course of the `Path' between these `Points' is likely to +differ, depending on the values of the `Focus' used (*note Focuses: +Focuses Getstart.), so that different views of the same `Path' may well +be mutually inconsistent. This problem doesn't arise with "-", since +the perspective projection does not "unstraighten" straight lines, but +it does with "..", even without tension, curl, or controls. The +solution is to use enough `Points', since a greater number of `Points' +on a `Path' tends to reduce the number of possible courses through the +`Points'.(1) + +* Menu: + +* Declaring and Initializing Paths:: +* Drawing and Filling Paths Intro:: + + ---------- Footnotes ---------- + + (1) I believe that counter-examples could probably constructed, but +for the most common cases, the principle applies. + + +File: 3DLDF.info, Node: Declaring and Initializing Paths, Next: Drawing and Filling Paths Intro, Prev: Paths, Up: Paths + +Declaring and Initializing Paths +================================ + + There are various ways of declaring and initializing `Paths'. The +simplest is to use the constructor taking two `Point' arguments: + + Point A; + Point B(2, 2); + Path p(A, B); + p.draw(); + + `Paths' created in this way are important, because they are +guaranteed to be linear, as long as no operations are performed on them +that cause them to become non-linear. Linear `Paths' can be used to +find "intersections". *Note Path Intersections::. + + `Paths' can be declared and initialized using a single connector and +an arbitrary number of `Points'. The first argument is a `string' +specifying the connector. It is followed by a `bool', indicating +whether the `Path' is cyclical or not. Then, an arbitrary number of +pointers to `Point' follow. The last argument must be 0.(1) + + Point p[3]; + p[0].shift(1); + p[1].set(1, 2, 2); + p[2].set(1, 0, 2); + Path pa("--", true, &p[0], &p[1], &p[2], 0); + pa.draw(); + + Another constructor must be used for `Paths' with more than one +connector and an arbitrary number of `Points'. The argument list +starts with a pointer to `Point', followed by `string' for the first +connector. Then, pointer to `Point' arguments alternate with `string' +arguments for the connectors. Again, the list of arguments ends in 0. +There is no need for a `bool' to indicate whether the `Path' is cyclical +or not; if it is, the last non-zero argument will be a connector, +otherwise, it will be a pointer to `Point'. + + Point p[8]; + p[0].set(-2); + p[1].set(2); + p[2].set(0, 0, -2); + p[3].set(0, 0, 2); + p[4] = p[0].mediate(p[2]); + p[5] = p[2].mediate(p[1]); + p[6] = p[1].mediate(p[3]); + p[7] = p[3].mediate(p[0]); + p[4] *= p[5] *= p[6] *= p[7].shift(0, 1); + Path pa(&p[0], "..", &p[4], "...", &p[2], + "..", &p[5], "...", &p[1], "..", &p[6], + "...", &p[3], "..", &p[7], "...", 0); + pa.draw(); + + As mentioned above (*note Accuracy::), specifying connectors is +problematic for three-dimensional `Paths', because MetaPost ultimately +calculates the "most pleasing curve" based on the two-dimensional +points in the MetaPost code written by 3DLDF.(2) For this reason, it's +advisable to avoid specifying `curl', `dir', `tension' or control +points in connectors. The more `Points' a (3DLDF) `Path' or other +object contains, the less freedom MetaPost has to determine the +(MetaPost) `path' through them. So a three-dimensional `Path' or other +object in 3DLDF should have enough `Points' to ensure satisfactory +results. The `Path' in [the previous figure] does not really have +enough `Points'. It may require some trial and error to determine what +a sufficient number of `Points' is in a given case. + + `Paths' are very flexible, but not always convenient. 3DLDF +provides a number of classes representing common geometric `Shapes', +which will be described in subsequent sections, and I intend to add +more in the course of time. + + ---------- Footnotes ---------- + + (1) It's easy to forget to use `Point*' arguments, rather than plain +`Point' arguments, and to forget to end the list of arguments with 0. +If plain `Point' arguments are used, compilation fails with GCC. With +the DEC compiler, compilation succeeds, but a memory fault error occurs +at run-time. If the argument list doesn't end in 0, neither compiler +signals an error, but a memory fault error always occurs at run-time. + + (2) Knuth, `The METAFONTbook', Chapter 14, p. 127. + + +File: 3DLDF.info, Node: Drawing and Filling Paths Intro, Prev: Declaring and Initializing Paths, Up: Paths + +Drawing and Filling Paths +========================= + + The easiest way to draw a `Path' is with no arguments. + + Point pt[5]; + pt[0].set(-1, -2); + pt[1].set(0, -3); + pt[2].set(1, 0); + pt[3].set(2, 1); + pt[4].set(-1, 2); + Path pa("..", true, &pt[0], &pt[1], &pt[2], &pt[3], &pt[4], 0); + pa.draw(); + + Since `pa' is closed, it can be filled as well as drawn. The +following example uses `fill()' with a `Color' argument, in order to +avoid having a large splotch of black on the page. Common `Colors' are +declared in the `namespace Colors'. *Note Color Reference::. + + pa.fill(Colors::gray); + + Closed `Paths' can be filled and drawn, using the function +`filldraw()'. This function draws the `Path' using the pen specified, +or MetaPost's `currentpen' by default. A `Color' for drawing the +`Path' can also be specified, otherwise, the default color (currently +`Colors::black') is used. In addition, the `Path' is filled using a +second `Color', which can be specified, or the background_color +(`Colors::background_color'), by default. Filling a `Path' using the +background color causes it to hide objects that lie behind it. *Note +Surface Hiding::, for a description of the surface hiding algorithm, +and examples. Currently, this algorithm is quite primitive and only +works for simple cases. + + Point p0(-3, 0, 1); + Point p1(3, 1, 1); + p0.draw(p1); + pa.filldraw(); + + The following example uses arguments for the `Colors' used for +drawing and filling, and the pen. The empty string argument before the +pen argument is a placeholder for the dash pattern argument. + + pa.filldraw(black, gray, "", + "pensquare xscaled 3mm yscaled 1mm rotated 60"); + + `Paths' can also be "undrawn", "unfilled", and "unfilldrawn", using +the corresponding functions: + + pa.fill(gray); + p0.undraw(p1, "", "pencircle scaled 3mm"); + + pa.fill(gray); + Path q; + q = pa; + q.scale(.5, .5); + q.unfill(); + + The function `unfilldraw()' takes a `Color' argument for drawing the +`Path', which is `*Colors::background_color' by default. This makes it +possible to unfill the `Path' while drawing the outline with a visible +`Color'. On the other hand, it also makes it necessary to specify +`*Colors::background_color' or `Colors::white', if the user wants to +use the dash pattern and/or pen arguments, without drawing the `Path'. + + pa.fill(gray); + q.unfilldraw(white, "", "pensquare xscaled 3mm yscaled 1mm"); + + The following example demonstrates the use of `unfilldraw()' with +`black' as its `Color' argument. Unfortunately, it also demonstrates +one of the limitations of the surface hiding algorith: The line from +`p0' to `p1' is hidden by the filled `Path pa'. Since the portion of +`pa' covered by `Path q' has been unfilled, the line from p_0 to p_1 +should be visible as it passes through `q'. However, from the point of +view of 3DLDF, there is no relationship between `pa' and `q'; nor does +it "know" whether a `Path' has been filled or unfilled. If it's on a +`Picture', it will hide objects lying behind it, unless the surface +hiding algorithm fails for another reason. *Note Surface Hiding::, for +more information. + + p0.draw(p1); + pa.fill(gray); + q.unfilldraw(black, "", "pensquare xscaled 3mm yscaled 1mm"); + + *Note Paths; Drawing and Filling: Drawing and Filling Paths, for more +information, and complete descriptions of the functions. + + +File: 3DLDF.info, Node: Plane Figures, Next: Solid Figures, Prev: Paths, Up: Top + +Plane Figures +************* + + 3DLDF currently includes the following classes representing plane +geometric figures: `Polygon', `Reg_Cl_Plane_Curve' ("Regular Closed +Plane Curve"), `Reg_Polygon' ("Regular Polygon"), `Rectangle', +`Ellipse' and `Circle'. `Polygon' and `Reg_Cl_Plane_Curve' are derived +from `Path', `Reg_Polygon' and `Rectangle' are derived from `Polygon', +and `Ellipse' and `Circle' are derived from `Reg_Cl_Plane_Curve'. +`Polygon' and `Reg_Cl_Plane_Curve' are meant to be used as base classes +only, so objects of these types should normally never be declared. + + Since `Reg_Polygon', `Rectangle', `Ellipse', and `Circle' all +ultimately derive from `Path', they are really just special kinds of +`Path'. In particular, they inherit their drawing and filling +functions from `Path', and their transformation functions take the same +arguments as the `Path' versions. They also have constructors and +setting functions that work in a similar way, with a few minor +differences, to account for their different natures. See *Note Polygon +Reference::, *Note Rectangle Reference::, *Note Ellipse Reference::, +and *Note Circle Reference::, for complete information on these classes. + +* Menu: + +* Regular Polygons Getstart:: +* Rectangles Getstart:: +* Ellipses Getstart:: +* Circles Getstart:: + + +File: 3DLDF.info, Node: Regular Polygons Getstart, Next: Rectangles Getstart, Prev: Plane Figures, Up: Plane Figures + +Regular Polygons +================ + + The following example creates a pentagon in the x-z plane, centered +about the origin, whose enclosing circle has a radius equal to 3cm. + + default_focus.set(2, 3, -10, 2, 3, 10, 10); + Reg_Polygon p(origin, 5, 3); + p.draw(); + + Three additional arguments cause the pentagon to be rotated about +the x, y, and z axes by the amount indicated. In this example, it's +rotated 90 degrees + + about the x-axis, so that it comes to lie in the x-y plane: + + Reg_Polygon p(origin, 5, 3, 90); + p.draw(); + + In this example, it's rotated 36 degrees + + about the y-axis, so that it appears to point in the opposite +direction from the first example: + Reg_Polygon p(origin, 5, 3, 0, 36); + p.draw(); + + In this example, it's rotated 90 degrees + + about the z-axis, so that it lies in the z-y plane: + + Reg_Polygon p(origin, 5, 3, 0, 0, 90); + p.draw(); + + In this example, it's rotated 45 degrees + + about the x, y, and z-axes in that order: + + Reg_Polygon p(origin, 5, 3, 45, 45, 45); + p.draw(); + + `Reg_Polygons' need not be centered about the `origin'. If another +`Point' PT is used as the first argument, the `Reg_Polygon' is first +created with its center at the origin, then the specified rotations, if +any, are performed. Finally, the `Reg_Polygon' is shifted such that +its center comes to lie on PT: + + Point P(-2, 1, 1); + Reg_Polygon hex(P, 6, 4, 60, 30, 30); + hex.draw(); + + In the following example, the `Reg_Polygon' `polygon' is first +declared using the default constructor, which creates an empty +`Reg_Polygon'. Then, the `polygon' is repeatedly changed using the +setting function corresponding to the constructor used in the previous +examples. [next figure] demonstrates that a given `Reg_Polygon' need +not always have the same number of sides. + + Point p(0, -3); + Reg_Polygon polygon; + for (int i = 3; i < 9; ++i) + { + polygon.set(p, i, 3); + polygon.draw(); + p.shift(0, 1); + } + + +File: 3DLDF.info, Node: Rectangles Getstart, Next: Ellipses Getstart, Prev: Regular Polygons Getstart, Up: Plane Figures + +Rectangles +========== + + A `Rectangle' can be constructed in the x-z plane by specifying a +center `Point', the width, and the height: + + Rectangle r(origin, 2, 3); + r.draw(); + + Three additional arguments can be used to specify rotation about the +x, y, and z-axes respectively: + + Rectangle r(origin, 2, 3, 30, 45, 15); + r.draw(); + + If a `Point' P other than the origin is specified as the center of +the `Rectangle', the latter is first created in the x-z plane, centered +about the origin, as above. Then, any rotations specified are +performed. Finally, the `Rectangle' is shifted such that its center +comes to lie at P: + + Point p0(.5, 1, 3); + Rectangle r(p0, 4, 2, 30, 30, 30); + r.draw(); + + This constructor has a corresponding setting function: + + Rectangle r; + for (int i = 0; i < 180; i += 30) + { + r.set(origin, 4, 2, i); + r.draw(); + } + + `Rectangles' can also be specified using four `Points' as arguments, +whereby they must be ordered so that they are contiguous in the +resulting `Rectangle': + + Point pt[4]; + pt[0].shift(-1, -2); + pt[2] = pt[1] = pt[0]; + pt[1].rotate(180); + pt[3] = pt[1]; + pt[2] *= pt[3].rotate(0, 180); + Rectangle r(pt[0], pt[2], pt[3], pt[1]); + r.draw(); + + This constructor checks whether the `Point' arguments are coplanar, +however, it does not check whether they are really the corners of a +valid rectangle; the user, or the code that calls this function, must +ensure that they are. In the following example, `r', although not +rectangular, is a `Rectangle', as far as 3DLDF is concerned: + + pt[0].shift(0, -1); + pt[3].shift(0, 1); + Rectangle q(pt[0], pt[2], pt[3], pt[1]); + q.draw(); + + This constructor is not really intended to be used directly, but +should mostly be called from within other functions, that should ensure +that the arguments produce a rectangular `Rectangle'. There is also no +guarantee that transformations or other functions called on +`Rectangle', `Circle', or other classes representing geometric figures +won't cause them to become non-rectangular, non-circular, or otherwise +irregular. Sometimes, this might even be desirable. I plan to add the +function `Rectangle::is_rectangular()' soon, so that users can test +`Rectangles' for rectangularity. + + +File: 3DLDF.info, Node: Ellipses Getstart, Next: Circles Getstart, Prev: Rectangles Getstart, Up: Plane Figures + +Ellipses +======== + + `Ellipse' has a constructor similar to those for `Reg_Polygon' and +`Rectangle'. The first argument is the center of the `Ellipse', and +the following two specify the lengths of the horizontal and vertical +axes respectively. The `Ellipse' is first created in the x-z plane, +centered about the origin. The horizontal axis lies along the x-axis +and the vertical axis lies along the z-axis. The three subsequent +arguments specify the amounts of rotation about the x, y, and z-axes +respectively and default to 0. Finally, `Ellipse' is shifted such that +its center comes to lie at the `Point' specified in the first argument. + + Point pt(-1, 1, 1); + Ellipse e(pt, 3, 6, 90); + e.draw(); + + As you may expect, this constructor has a corresponding setting +function: + + Ellipse e; + real h_save = 1.5; + real v_save = 2; + real h = h_save; + real v = v_save; + Point p(-1); + for (int i = 0; i < 5; ++i) + { + e.set(p, h, v, 90); + e.draw(); + h_save += .25; + v_save += .25; + h *= sqrt(h_save); + v *= sqrt(v_save); + p.shift(0, 0, 2); + } + + +File: 3DLDF.info, Node: Circles Getstart, Prev: Ellipses Getstart, Up: Plane Figures + +Circles +======= + + `Circles' are constructed just like `Ellipses', except that the +vertical and horizontal axes are per definition the same, so there's +only one argument for the diameter, instead of two for the horizontal +and vertical axes: + + Point P(0, 2, 1); + Circle c(P, 3.5, 90, 90); + c.draw(); + + This constructor, too, has a corresponding setting function: + + Circle c; + Point p(-1, 0, 5); + for (int i = 0; i < 16; ++i) + { + c.set(p, 5, i * 22.5, 0, 0, 64); + c.draw(); + } + + In the preceding example, the last argument to `set()', namely "64", +is for the number of `Points' used for constructing the perimeter of +the `Circle'. The default value is 16, however, if it is used, +foreshortening distorts the most nearly horizontal `Circle'. +Increasing the number of points used improves its appearance. However, +there may be a limit to how much improvement is possible. *Note +Accuracy::. + + +File: 3DLDF.info, Node: Solid Figures, Next: Pictures, Prev: Plane Figures, Up: Top + +Solid Figures +************* + +* Menu: + +* Cuboid Getstart:: +* Polyhedron Getstart:: + + +File: 3DLDF.info, Node: Cuboid Getstart, Next: Polyhedron Getstart, Prev: Solid Figures, Up: Solid Figures + +Cuboids +======= + + A "cuboid" is a solid figure consisting of six rectangular faces +that meet at right angles. A cube is a special form of cuboid, whose +faces are all squares. The constructor for the class `Cuboid' follows +the pattern familiar from the constructors for the plane figures: The +first argument is the center of the `Cuboid', followed by three `real' +arguments for the height, width, and depth, and then three more `real' +arguments for the angles of rotation about the x, y, and z-axes. The +`Cuboid' is first constructed with its center at the origin. Its +width, height, and depth are measured along the x, y, and z-axes +respectively. If rotations are specified, it is rotated about the x, +y, z-axes in that order. Finally, it is shifted such that its center +comes to lie on its `Point' argument, if the latter is not the origin. + + If the width, height, and depth arguments are equal, the `Cuboid' is +a cube: + + Cuboid c0(origin, 3, 3, 3, 0, 30); + c0.draw(); + + In the following example, the `Cuboid' is "filldrawn", so that the +lines dilineating the hidden surfaces of the `Cuboid' are covered. + + Cuboid c1(origin, 3, 4, 5, 0, 30); + c1.filldraw(); + + +File: 3DLDF.info, Node: Polyhedron Getstart, Prev: Cuboid Getstart, Up: Solid Figures + +Polyhedron +========== + + The `class Polyhedron' is meant for use only as a base class; no +objects of type `Polyhedron' should be declared. Instead, there is a +class for each of the different drawable polyhedra. Currently, 3DLDF +defines only three: `Tetrahedron', `Dodecahedron', and `Icosahedron'. +There's no need for a `Cube' class, because cubes can be drawn using +`Cuboid' (*note Cuboid Getstart::). + + Polyhedra have a high priority in my plans for 3DLDF. I intend to +add `Octahedron' soon, which will complete the set of regular Platonic +polyhedra. Then I will begin adding the semi-regular Archimedean +polyhedra, and their duals. + + The constructors for the classes derived from `Polyhedron' follow +the pattern familiar from the classes already described. The +constructors for the classes described below have identical arguments: +First, a `Point' specifying the center, then a `real' for the diameter +of the surrounding circle (_Umkreis_, in German) of one of its +polygonal faces, followed by three `real' arguments for the angles of +rotation about the main axes. + +* Menu: + +* Tetrahedron Getstart:: +* Dodecahedron Getstart:: +* Icosahedron Getstart:: + + +File: 3DLDF.info, Node: Tetrahedron Getstart, Next: Dodecahedron Getstart, Prev: Polyhedron Getstart, Up: Polyhedron Getstart + +Tetrahedron +----------- + + The center of a tetrahedron is the intersection of the lines from a +vertex to the center of the opposite side. At least, in 3DLDF, this is +the `center' of a `Tetrahedron'. I'm not 100 degrees certain that +this is mathematically correct. + + Tetrahedron t(origin, 4); + t.draw(); + t.get_center().dotlabel("$c$"); + + +File: 3DLDF.info, Node: Dodecahedron Getstart, Next: Icosahedron Getstart, Prev: Tetrahedron Getstart, Up: Polyhedron Getstart + +Dodecahedron +------------ + + A dodecahedron has 12 similar regular pentagonal faces. The +following examples show the same `Dodecahedron' using different +projections: + + default_focus.set(2, 5, -10, 2, 5, 10, 10); + Dodecahedron d(origin, 3); + d.draw(); + + Please note that the `Dodecahedron' in [next figure] is drawn, and +not filldrawn! + + In [next figure] , `d' is filldrawn. In this case, the surface +hiding algorithm has worked properly. *Note Surface Hiding::. + + +File: 3DLDF.info, Node: Icosahedron Getstart, Prev: Dodecahedron Getstart, Up: Polyhedron Getstart + +Icosahedron +----------- + + An icosahedron has 20 similar regular triangular faces. The +following examples show the same `Icosahedron' using different +projections: + + default_focus.set(3, 0, -10, 2, 0, 10, 10); + Icosahedron i(origin, 3); + i.draw(); + + In [next figure] , `i' is filldrawn. In this case, the surface +hiding algorithm has worked properly. *Note Surface Hiding::. + + +File: 3DLDF.info, Node: Pictures, Next: Intersections, Prev: Solid Figures, Up: Top + +Pictures +******** + + Applying drawing and filling operations to the drawable objects +described in the previous chapters isn't enough to produce output. +These operations merely modify the `Picture' object that was passed to +them as an argument (`current_picture', by default). + + `Pictures' in 3DLDF are quite different from `pictures' in MetaPost. +When a drawing or filling operation is applied to an object O, a copy +of O, C, is allocated on the free store, a pointer to `Shape' S is +pointed at C, and S is pushed onto the `vector shapes' on the +`Picture' P, which was passed as an argument to the drawing or filling +command. The arguments for the pen, dash pattern, `Color', and any +others, are used to set the corresponding data members of C (not O). + + In order to actually cause MetaPost code to be written to the output +file, it is necessary to invoke P.`output()'. Now, the appropriate +version of `output()' is applied to each of the objects pointed to by a +pointer on P.`shapes'. `output()' is a pure virtual function in +`Shape', so all classes derived from `Shape' must have an `output()' +function. So, if `shapes[0]' points to a `Path', `Path::output()' is +called, if `shapes[1]' points to a `Point', `Point::output()' is +called, and if `shapes[2]' points to an object of a type derived from +`Solid', `Solid::output()' is called. `Point', `Path', and `Solid' are +namely the only classes derived from `Shape' for which a version of +`output()' is defined. All other `Shapes' are derived from one of +these classes. These `output()' functions then write the MetaPost code +to the output file through the output file stream `out_stream'. + + beginfig(1); + default_focus.set(0, 0, -10, 0, 0, 10, 10); + Circle c(origin, 3, 90); + c.draw(); + c.shift(1.5); + c.draw(); + current_picture.output(); + endfig(1); + + The C++ code for [the previous figure] starts with the command +`beginfig(1)' and ends with the command `endfig(1)'. They simply write +"`beginfig( )'" and "`endfig()'" to `out_stream', The optional +`unsigned int' argument to `endfig()' is not written to `out_stream', +it's merely "syntactic sugar" for the user. + + In MetaPost, the `endfig' command causes output and then clears +`currentpicture'. This is not the case in 3DLDF, where +`Picture::output()' and `Picture::clear()' must be invoked explicitly: + + beginfig(1); + Point p0; + Point p1(1, 2, 3); + p0.draw(p1); + current_picture.output(); + endfig(1); + + beginfig(2); + current_picture.clear(); + Circle C(origin, 3); + C.fill(); + current_picture.output(); + endfig(2); + + In [next figure] , two `Pictures' are used within a single figure. + + beginfig(1); + Picture my_picture; + default_focus.set(0, 0, -10, 0, 0, 10, 10); + Circle c(origin, 3, 90); + c.draw(my_picture); + my_picture.output(); + c.shift(1.5); + c.fill(light_gray); + current_picture.output(); + endfig(1); + + Multiple objects, or complex objects made up of sub-objects, can be +stored in a `Picture', so that operations can be applied to them as a +group: + + default_focus.set(7, 5, -10, 7, 5, 10, 10); + Cuboid c0(origin, 5, 5, 5); + c0.shift(0, 0, 3); + c0.draw(); + Circle z0(c0.get_rectangle_center(0), 2.5, 90, 0, 0, 64); + z0.draw(); + Circle z1(z0); + z1.shift(0, 0, -1); + z1.draw(); + int i; + int j = z0.get_size(); + for (i = 0; i < 8; ++i) + z0.get_point(i * j/8).draw(z1.get_point(i * j/8)); + Cuboid c1(c0.get_rectangle_center(4), 5, 3, 3); + c1.shift(0, 2.5); + c1.draw(); + Rectangle r0 = *c1.get_rectangle_ptr(3); + Point p[10]; + for (i = 0; i < 4; ++i) + p[i] = r0.get_point(i); + p[4] = r0.get_mid_point(0); + p[5] = r0.get_mid_point(2); + p[6] = p[4].mediate(p[5], 2/3.0); + Circle z2(p[6], 2, 90, 90, 0, 16); + z2.draw(); + Circle z3 = z2; + z3.shift(3); + z3.draw(); + j = z2.get_size(); + for (i = 0; i < 8; ++i) + z2.get_point(i * j/8).draw(z3.get_point(i * j/8)); + p[7] = c0.get_rectangle_center(2); + p[7].shift(-4); + p[8] = c0.get_rectangle_center(3); + p[8].shift(4); + current_picture.output(); + current_picture.rotate(45, 45); + current_picture.shift(10, 0, 3); + current_picture.output(); + + Let's say the complex object in [the previous figure] represents a +furnace. From the point of view of 3DLDF, however, it's not an object +at all, and the drawing consists of a collection of unrelated +`Cuboids', `Circles', `Rectangles', and `Paths'. If we hadn't put it +into a `Picture', we could still have rotated and shifted it, but only +by applying the operations to each of the sub-objects individually. + + One consequence of the way `Pictures' are output in 3DLDF is, that +the following code will not work: + + beginfig(1); + Point p(1, 2); + Point q(1, 3); + out_stream << "pickup pencircle scaled .5mm;" << endl; + origin.draw(p); + out_stream << "pickup pensquare xscaled .3mm rotated 30;" << endl; + origin.draw(q); + current_picture.output(); + endfig(); + + This is the MetaPost code that results: + + beginfig(1); + pickup pencircle scaled .5mm; + pickup pensquare xscaled .3mm rotated 30; + draw (0.000000cm, -3.000000cm) -- (1.000000cm, -1.000000cm); + draw (0.000000cm, -3.000000cm) -- (1.000000cm, 0.000000cm); + endfig; + + It's perfectly legitimate to write raw MetaPost code to +`out_stream', as in lines 4 and 6 of this example. However, the +`draw()' commands do not cause any output to `out_stream'. The +MetaPost drawing commands are written to `out_stream' when +`current_picture.output()' is called. Therefore, the `pickup' commands +are "bunched up" before the drawing commands. In this example, setting +`currentpen' to `pencircle scaled .5mm' has no effect, because it is +immediately reset to `pensquare xscaled .3mm rotated 30' in the +MetaPost code, before the `draw' commands. It is not possible to +change `currentpen' in this way within a `Picture'. Since the `draw()' +commands in the 3DLDF code didn't specify a PEN argument, `currentpen' +with its final value is used for both of the MetaPost `draw' commands. +For any given invocation of `Picture::output()', there can only be one +value of `currentpen'. All other pens must be passed as arguments to +the drawing commands. + +* Menu: + +* Projections:: +* Focuses Getstart:: +* Surface Hiding:: + + +File: 3DLDF.info, Node: Projections, Next: Focuses Getstart, Prev: Pictures, Up: Pictures + +Projections +=========== + + In order for a 3D graphic program to be useful, it must be able to +make two-dimensional projections of its three-dimensional constructions +so that they can be displayed on computer screens and printed out. +These are some of the possible projections: + +* Parallel projection onto one of the major planes + These projections are trivial, and can be performed by 3DLDF. + They are discussed in the following section. + +* Parallel projection onto another plane + I haven't programmed these projections yet, but they might be + useful, so I probably will, when I get around to it. + +* The perspective projection + This is the projection most people think of, when they think of + 3D-graphics. It is discussed in detail in *Note The Perspective + Projection::. + +* The isometric and axonometric projections + These projections are important for engineering and drafting. I + have not yet implemented them in 3DLDF, but they are on my list of + "Things To Do". + + The function `Picture::output()' takes a `const unsigned short' +argument specifying the projection to be used. The user should +probably avoid using explicit `unsigned shorts', but should use the +constants defined for this purpose in the "namespace" `Projections'.(1) +The constants are `PERSP', `PARALLEL_X_Y', `PARALLEL_X_Z', +`PARALLEL_Z_Y', `AXON', and `ISO'. The latter two should not be used, +because the axonometric and isometric projections have not yet been +implemented. + +* Menu: + +* Parallel Projections:: +* The Perspective Projection:: + + ---------- Footnotes ---------- + + (1) Namespaces are described in Stroustrup, `The C++ Programming +Language', Chapter 8. + + +File: 3DLDF.info, Node: Parallel Projections, Next: The Perspective Projection, Prev: Projections, Up: Projections + +Parallel Projections +-------------------- + + When a `Picture' is projected onto the x-y plane, the x and y-values +from the `world_coordinates' of the `Points' belonging to the objects +on the `Picture' are copied to their `projective_coordinates', which are +used in the MetaPost code written to `out_stream'. If a `Picture' P +contains an object in the x-y plane, or in a plane parallel to the x-y +plane, then the result of `P.output(Projections::PARALLEL_X_Y)' is +more-or-less equivalent to just using MetaPost without 3DLDF. + + Rectangle r(origin, 3, 3, 90); + Circle c(origin, 3, 90); + c *= r.shift(0, 0, 5); + r.draw(); + c.draw(); + current_picture.output(Projections::PARALLEL_X_Y); + + If the objects do not lie in the x-y plane, or a plane parallel to +the x-y plane, then the projection will be distorted: + + current_picture.output(Projections::PARALLEL_X_Y); + + `Picture::output()' can be called with an additional `real' argument +FACTOR for magnifying or shrinking the `Picture'. + + Rectangle r(origin, 4, 4, 90, 60); + Circle c(origin, 4, 90, 60); + c *= r.shift(0, 0, 5); + r.filldraw(black, gray); + c.unfilldraw(black); + current_picture.output(Projections::PARALLEL_X_Y, .5); + current_picture.shift(2.5); + current_picture.output(Projections::PARALLEL_X_Y); + current_picture.shift(1); + current_picture.output(Projections::PARALLEL_X_Y, 2); + + Parallel projection onto the x-z and z-y planes are completely +analogous to parallel projection onto the x-y plane. + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-3 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-3 --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-3 1970-01-01 01:00:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-3 2003-12-10 18:44:55.000000000 +0100 @@ -0,0 +1,1251 @@ +This is 3DLDF.info, produced by makeinfo version 4.5 from 3DLDF.texi. + +This is the 3DLDF User and Reference Manual, edition 1.1.4 for 3DLDF +1.1.4. This manual was last updated on 10 December 2003. 3DLDF is a +GNU package for three-dimensional drawing with MetaPost output. The +author is Laurence D. Finston. + + Copyright (C) 2003 Laurence D. Finston. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, and + no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License". + +INFO-DIR-SECTION GNU packages +START-INFO-DIR-ENTRY +* 3DLDF: (3DLDF). 3D drawing with MetaPost output. +END-INFO-DIR-ENTRY + + +File: 3DLDF.info, Node: The Perspective Projection, Prev: Parallel Projections, Up: Projections + +The Perspective Projection +-------------------------- + + The perspective projection obeys the laws of "linear perspective". +In 3DLDF, it is performed by means of a transformation, whose effect +is, to the best of my knowledge, exactly equivalent to the result of a +perspective projection done by hand using vanishing points and rulers. + + It is very helpful to the artist to understand the laws of linear +perspective, and to know how to make a perspective drawing by hand.(1) +However, it is a very tedious and error-prone procedure (I know, I've +done it). One of my main motivations for writing 3DLDF was so I +wouldn't have to do it anymore. + + [next figure] shows a perspective construction, the way it could be +done by hand. The point of view, or "focus" is located 6cm from the +picture plane, and 4cm above the ground (or x-z) plane at the point (0, +4, -6). The rectangle R lies in the ground plane, with the point r_0 +at (2, 0, 1.5). The right side of R, with length = 2cm lies at an angle +of 40 to the ground line, which corresponds to the intersection line of +the ground plane with the picture plane, and the left side, with length += 5cm, at an angle of 90 degrees - 40 degrees = 50 degrees to the +ground line. + + While it's possible to use 3DLDF to make a perspective construction +in the traditional way, as [the previous figure] shows, the code for +[next figure] + + achieves the same result more efficiently: + + default_focus.set(0, 4, -6, 0, 4, 6, 6); + Rectangle r(origin, 2, 5, 0, 40); + Point p(2, 0, 1.5); + r.shift(p - r.get_point(0)); + r.draw(); + + In [the second-to-last figure] , it was convenient to start with the +corner point r_0; if we needed the center of R, it would have to be +found from the corner points. However, in 3DLDF, `Rectangles' are most +often constructed about the center. Therefore, in [next figure] , R is +first constructed about the origin, with the rotation about the y-axis +passed as an argument to the constructor. It is then shifted such that +`*(R.points[0])', the first (or zeroth, if you will) `Point' on R comes +to lie at (2, 0, 1.5). + + Unlike the other transformations currently used in 3DLDF, the +perspective transformation is non-affine. Affine transformations +maintain parallelity of lines, while the rules of perspective state +that parallel lines, with one exception, appear to recede toward a +"vanishing point".(2) + + In [the second-to-last figure] , the lines from r_0 to r_1 and from +r_3 to r_2 appear to vanish toward the right-hand 40 degrees vanishing +point, while the lines from r_0 to r_3 and from r_1 to r_2 appear to +vanish toward the left-hand 50 degrees vanishing point. The lower the +angle of a vanishing point, the further away it is from the center of +vision, as [next figure] shows: + + In [the previous figure] , the 0.5 degrees vanishing point is nearly +5 and 3/4 meters away from the CV, and a line receding to it will be +very nearly horizontal. However, the distance from the focus to the CV +is only 5cm. As this distance increases, the distance from the CV to a +given vanishing point increases proportionately. If the distance is +30cm, a more reasonable value for a drawing, then the x-coordinate of +VP 10 degrees is 170.138cm, that of VP 5 degrees is 342.902cm, and +that of VP 0.5 degrees is 3437.66cm! This is the reason why +perspective drawings done by hand rarely contain lines receding to the +horizon at low angles. + + This problem doesn't arise when the perspective transformation is +used. In this case, any angle can be calculated as easily as any other: + + default_focus.set(0, 4, -6, 0, 4, 6, 6); + Rectangle r; + Point center(0, 2); + r.set(center, 2, 5, 0, 0, 0.5); + r.draw(); + + r.set(center, 2, 5, 0, 0, 2.5); + r.draw(); + + r.set(center, 2, 5, 0, 0, 5); + r.draw(); + current_picture.output(); + + ---------- Footnotes ---------- + + (1) There are many books on linear perspective for artists. I've +found Gwen White's `Perspective. A Guide for Artists, Architects and +Designers' to be particularly good. Vredeman de Vries, `Perspective' +contains beautiful examples of perspective constructions. + + (2) (I believe the following to be correct, but I'm not entirely +sure.) Let vector v be the line of sight. By definition, the plane of +projection will be a plane p, such that vector v is normal to p. Let +q_0 and q_1 be planes such that q_0 == q_1 or q_0 || q_1, and q_0 is +perpendicular to p. It follows that q_1 is perpendicular to p. Let +l_0 and l_1 be lines, such that l_0 != l_1, l_0 || l_1, l_0 lies within +q_0, l_1 lies within q_1, l_0 is perpendicular to vector v, and l_1 is +perpendicular to vector v. Under these circumstances, the projections +of l_0 and l_1 in p will also be parallel. + + +File: 3DLDF.info, Node: Focuses Getstart, Next: Surface Hiding, Prev: Projections, Up: Pictures + +Focuses +======= + + The perspective transformation requires a focus; as a consequence, +outputting a `Picture' requires an object of class `Focus'. +`Picture::output()' takes an optional pointer-to-`Focus' argument, +which is 0 by default. If the default is used, (or 0 is passed +explicitly), the global variable `default_focus' is used. *Note Focus +Reference; Global Variables: Focus Global Variables. + + A `Focus' can be thought of as the observer of a scene, or a camera. +It contains a `Point position' for its location with respect to +3DLDF's coordinate system, and a `Point direction', specifying the +direction where the observer is looking, or where the camera is +pointed. The `Focus' can be rotated freely about the line PD, where P +stands for `position' and D for `direction', so a `Focus' contains a +third `Point up', to indicate which direction will be "up" on the +projection, when a `Picture' is projected. + + The projection plane q will always be perpendicular to the line PD, +or to put it another way, the line PD, is normal to q. + + Unlike the traditional perspective construction, where the distance +from the focus to the center of vision fixes both the location of the +focus in space, and its distance to the picture plane,(1) these two +parameters can be set independently when the perspective transformation +is used. The distance from a `Focus' to the picture plane is stored in +the data member `distance', of type `real'. + + A `Focus' can be declared using two `Point' arguments for `position' +and `direction', and a `real' argument for `distance', in that order. + + Point pos(0, 5, -10); + Point dir(0, 5, 10); + Focus f(pos, dir, 10); + + Point center(2, 0, 3); + Rectangle r(center, 3, 3); + r.draw(); + current_picture.output(f); + + The "up" direction is calculated by the `Focus' constructor +automatically. An optional argument can be used to specify the angle by +which to rotate the `Focus' about the line PD. + + Point pos(0, 5, -10); + Point dir(0, 5, 10); + Focus f(pos, dir, 10, 30); + Point center(2, 0, 3); + Rectangle r(center, 3, 3); + r.draw(); + current_picture.output(f); + + Alternatively, a `Focus' can be declared using three `real' +arguments each for the x, y, and z-coordinates of `position' and +`direction', respectively, followed by the `real' arguments for +`distance' and the angle of rotation: + + Focus f(3, 5, -5, 0, 3, 0, 10, 10); + Point center(2, 0, 3); + Rectangle r(center, 3, 3); + r.draw(); + current_picture.output(f); + + `Focuses' contain two `Transforms', `transform' and `persp'. A +`Focus' can be located anywhere in 3DLDF's coordinate system. However, +performing the perspective projection is more convenient, if `position' +and `direction' both lie on one of the major axes, and the plane of +projection corresponds to one of the major planes. `transform' is the +transformation which would have this affect on the `Focus', and is +calculated by the `Focus' constructor. When a `Picture' is output +using that `Focus', `transform' is applied to all of the `Shapes' on the +`Picture', maintaining the relationship between the `Focus' and the +`Shapes', while making it easier to calculate the projection. The +`Focus' need never be transformed by `transform'. The actual +perspective transformation is stored in `persp'. + + `Focuses' can be moved by using one of the setting functions, which +take the same arguments as the constructors. Currently, there are no +affine transformation functions for moving `Focuses', but I plan to add +them soon. If 3DLDF is used for making animation, resetting the +`Focus' can be used to simulate camera movements: + + beginfig(1); + Point pos(2, 10, 3); + Point dir(2, -10, 3); + Focus f; + Point center(2, 0, 3); + for (int i = 0; i < 5; ++i) + { + f.set(pos, dir, 10, (15 * i)); + Rectangle r(center, 3, 3); + r.draw(); + current_picture.output(f); + current_picture.clear(); + pos.shift(1, 1, 0); + dir.rotate(0, 0, 10); + } + endfig(1); + + In [the previous figure] , `current_picture' is output 5 times +within a single MetaPost figure. Since the file passed to MetaPost is +called `persp.mp', the file of Encapsulated PostScript (EPS) code +containing [the previous figure] is called `persp.1'. To use this +technique for making an animation, it's necessary to output the +`Picture' into multiple MetaPost figures. + + Point pos(2, 10, 3); + Point dir(2, -10, 3); + Focus f; + Point center(2, 0, 3); + for (int i = 0; i < 5; ++i) + { + f.set(pos, dir, 10, (15 * i)); + Rectangle r(center, 3, 3); + r.draw(); + beginfig(i+1); + current_picture.output(f); + endfig(); + current_picture.clear(); + pos.shift(1, 1, 0); + dir.rotate(0, 0, 10); + } + + Now, running MetaPost on `persp.mp' generates the EPS files +`persp.1', `persp.2', `persp.3', `persp.4', and `persp.5', containing +the five separate drawings of R. + + ---------- Footnotes ---------- + + (1) I believe this to be true, but I'm not 100% certain. + + +File: 3DLDF.info, Node: Surface Hiding, Prev: Focuses Getstart, Up: Pictures + +Surface Hiding +============== + + In [next figure] , `Circle' C lies in front of `Rectangle' R. Since +C is drawn and not filled, R is visible behind C. + + default_focus.set(1, 3, -5, 0, 3, 5, 10); + Point p(0, -2, 5); + Rectangle r(p, 3, 4, 90); + r.draw(); + Point q(2, -2, 3); + Circle c(q, 3, 90); + c.draw(); + current_picture.output(); + + If instead, C is filled or filldrawn, only the parts of R that are +not covered by C should be visible: + + r.draw(); + c.filldraw(); + + What parts of `r' are covered depend on the point of view, i.e., the +position and direction of the `Focus' used for outputting the `Picture': + + default_focus.set(8, 0, -5, 5, 3, 5, 10); + + Determining what objects cover other objects in a program for 3D +graphics is called "surface hiding", and is performed by a "hidden +surface algorithm". 3DLDF currently has a very primitive hidden +surface algorithm that only works for the most simple cases. + + The hidden surface algorithm used in 3DLDF is a "painter's +algorithm", which means that the objects that are furthest away from +the `Focus' are drawn first, followed by the objects that are closer, +which may thereby cover them. In order to make this possible, the +`Shapes' on a `Picture' must be sorted before they are output. They +are sorted according to the z-values in the `projective_coordinates' of +the `Points' belonging to the `Shape'. This may seem strange, since the +projection is two-dimensional and only the x and y-values from +`projective_coordinates' are written to `out_stream'. However, the +perspective transformation also produces a z-coordinate, which +indicates the distance of the `Points' from the `Focus' in the +z-dimension. + + The problem is, that all `Shapes', except `Points' themselves, +consist of multiple `Points', that may have different z-coordinates. +3DLDF currently does not yet have a satisfactory way of dealing with +this situtation. In order to try to cope with it, the user can specify +four different ways of sorting the `Shapes': They can be sorted +according to the maximum z-coordinate, the minimum z-coordinate, the +mean of the maximum and minimum z-coordinate (max + min) / 2, and not +sorted. In the last case, the `Shapes' are output in the order of the +drawing and filling commands in the user code. The z-coordinates +referred to are those in `projective_coordinates', and will have been +calculated for a particular `Focus'. + + The function `Picture::output()' takes a `const unsigned short' +SORT_VALUE argument that specifies which style of sorting should be +used. The namespace `Sorting' contains the following constants which +should be used for SORT_VALUE: `MAX_Z', `MIN_Z', `MEAN_Z', and +`NO_SORT'. The default is `MAX_Z'. + + 3DLDF's primitive hidden surface algorithm _cannot_ work for objects +that intersect. The following examples demonstrate why not: + + using namespace Sorting; + using namespace Colors; + using namespace Projections; + default_focus.set(5, 3, -10, 3, 1, 1, 10, 180); + Rectangle r0(origin, 3, 4, 45); + Rectangle r1(origin, 2, 6, -45); + r0.draw(); + r1.draw(); + current_picture.output(default_focus, PERSP, 1, MAX_Z); + r0.show("r0:"); + -| r0: + fill_draw_value == 0 + (-1.5, -1.41421, -1.41421) -- (1.5, -1.41421, -1.41421) -- + (1.5, 1.41421, 1.41421) -- (-1.5, 1.41421, 1.41421) + -- cycle; + + r0.show("r0:", 'p'); + -| r0: + fill_draw_value == 0 + Perspective coordinates. + (-5.05646, -4.59333, -0.040577) -- (-2.10249, -4.86501, -0.102123) -- + (-1.18226, -1.33752, 0.156559) -- (-3.51276, -1.2796, 0.193084) + -- cycle; + + r1.show("r1:"); + -| r1: + fill_draw_value == 0 + (-1, 2.12132, -2.12132) -- (1, 2.12132, -2.12132) -- + (1, -2.12132, 2.12132) -- (-1, -2.12132, 2.12132) + -- cycle; + + r1.show("r1:", 'p'); + -| r1: + fill_draw_value == 0 + Perspective coordinates. + (-5.09222, -0.995681, -0.133156) -- (-2.98342, -1.03775, -0.181037) -- + (-1.39791, -4.05125, 0.208945) -- (-2.87319, -3.93975, 0.230717) + -- cycle; + + In [the previous figure] , the `Rectangles' r_0 and r_1 intersect +along the x-axis. The z-values of the `world_coordinates' of r_0 are +-1.41421 and 1.41421 (two `Points' each), while those of r_1 are +2.12132 and -2.12132. So r_1 has two `Points' with z-coordinates +greater than the z-coordinate of any `Point' on r_0, and two `Points' +with z-coordinates less than the z-coordinate of any `Point' on r_0. +The `Points' on r_0 and r_1 all have different z-values in their +`projective_coordinates', but r_1 still has a `Point' with a +z-coordinate greater than that of any of the `Points' on r_0, and one +with a z-coordinate less than that of any of the `Points' on r_0. + + In [next figure] , the `Shapes' on `current_picture' are sorted +according to the maximum z-values of the `projective_coordinates' of +the `Points' belonging to the `Shapes'. r_1 is filled and drawn first, +because it has the `Point' with the positive z-coordinate of greatest +magnitude. When subsequently r_0 is drawn, it covers part of the top of +r_1, which lies in front of r_0, and should be visible: + + current_picture.output(default_focus, PERSP, 1, MAX_Z); + + In [next figure] , the `Shapes' on `current_picture' are sorted +according to the minimum z-values of the `projective_coordinates' of +the `Points' belonging to the `Shapes'. `r1' is drawn and filled last, +because it has the `Point' with the negative z-coordinate of greatest +magnitude. It thereby covers the bottom part of `r0', which lies in +front of `r1', and should be visible. + + current_picture.output(default_focus, PERSP, 1, MIN_Z); + + Neither sorting by the mean z-value in the `projective_coordinates', +nor suppressing sorting does any good. In each case, one `Rectangle' +is always drawn and filled last, covering parts of the other that lie +in front of the first. + + 3DLDF's hidden surface algorithm will fail wherever objects +intersect, not just where one extends past the other in both the +positive and negative z-directions. + + Rectangle r(origin, 3, 4, 45); + Circle c(origin, 2, -45); + r.filldraw(); + c.filldraw(black, gray); + current_picture.output(default_focus, PERSP, 1, NO_SORT); + + Even where objects don't intersect, their projections may. In order +to handle these cases properly, it is necessary to break up the +`Shapes' on a `Picture' into smaller `Shapes', until there are none +that intersect or whose projections intersect. Then, any of the three +methods of sorting described above can be used to sort the `Shapes', +and they can be output. + + Before this can be done, 3DLDF must be able to find the +intersections of all of the different kinds of `Shapes'. If 3DLDF +converted solids to polyhedra and curves to sequences of line segments, +this would reduce to the problem of finding the intersections of lines +and planes, however it does not yet do this. + + Even if it did, a fully functional hidden surface algorithm must +compare each `Shape' on a `Picture' with every other `Shape'. +Therefore, for n `Shapes', there will be n! / ((n - r)! r!) (possibly +time-consuming) comparisons. + + Clearly, such a hidden surface algorithm would considerably increase +run-time. + + Currently, all of the `Shapes' on a `Picture' are output, as long as +they lie completely within the boundaries passed as arguments to +`Picture::output()'. *Note Pictures; Outputting: Outputting Pictures. +It would be more efficient to suppress output for them, if they are +completely covered by other objects. This also requires comparisions, +and could be implemented together with a fully-functional hidden surface +algorithm. + + Shadows, reflections, highlights and shading are all effects +requiring comparing each `Shape' with every other `Shape', and could +greatly increase run-time. + + +File: 3DLDF.info, Node: Intersections, Next: Installing and Running 3DLDF, Prev: Pictures, Up: Top + +Intersections +************* + + There are no functions for finding the intersection points of two (or +more) arbitrary `Paths'. This is impossible, so long as 3DLDF outputs +MetaPost code. 3DLDF only "knows" about the `Points' on a `Path'; it +doesn't actually generate the curve or other figure that passes through +the `Points', and consequently doesn't "know" how it does this. + + In addition, an arbitrary `Path' can contain connectors. In 3DLDF, +the connectors are merely `strings' and are written verbatim to the +output file, however, in MetaPost they influence the form of a `Path'. + + 3DLDF can, however, find the intersection points of some +_non-arbitrary_ `Paths'. So far, it can find the intersection point of +the following combinations of `Paths': + + 1. Two linear `Paths', i.e., `Paths' for which `Path::is_linear()' + returns `true' (*note Path Reference; Querying: Querying Paths.). + In addition, the `static Point' member function + `Point::intersection_points()' can be called with four `Point' + arguments. The first and second arguments are treated as the end + points of one line, and the third and fourth arguments as the end + points of the other. + + 2. A line and a `Polygon'. Currently, `Reg_Polygon' and `Rectangle' + are the only classes derived from `Polygon'. + + 3. Two `Polygons'. + + 4. A line and a Regular Closed Plane Curve (`Reg_Cl_Plane_Curve', + *note Regular Closed Plane Curve Reference; Intersections: Regular + Closed Plane Curve Intersections.). Currently, `Ellipse' and + `Circle' are the only classes derived from `Reg_Cl_Plane_Curve'. + + 5. Two `Ellipses'. Since a `Circle' is also an `Ellipse', one or + both of the `Ellipses' may be a `Circle'. *Note Ellipse + Reference; Intersections: Ellipse Intersections. + + Adding more functions for finding the intersections of various +geometric figures is one of my main priorities with respect to +extending 3DLDF. + + There are currently no special functions for finding the +intersection points of a line and a `Circle' or two `Circles'. Since +the `class Circle' is derived from `class Ellipse', +`Circle::intersection_points()' resolves to +`Ellipse::intersection_points()', which, in turn, calls +`Reg_Cl_Plane_Curve::intersection_points()'. This does the trick, but +it's much easier to find the intersections for `Circles' that it is for +`Ellipses'. In particular, the intersections of two coplanar `Circles' +can be found algebraically, whereas I've had to implement a numerical +solution for the case of two coplanar `Ellipses' with different centers +and/or axis orientation. It may also be worthwhile to write a +specialization for finding the intersection points of a `Circle' and an +`Ellipse'. + + The theory of intersections is a fascinating and non-trivial branch +of mathematics.(1) As I learn more about it, I plan to define more +`classes' to represent various curves (two-dimensional ones to start +with) and functions for finding their intersection points. + + ---------- Footnotes ---------- + + (1) The books on computer graphics and the fairly elementary +mathematics books that I own or have referred to don't go into +intersections very deeply. One that does is Fischer, Gerd. `Ebene +Algebraische Kurven', which is a bit over my head. + + +File: 3DLDF.info, Node: Installing and Running 3DLDF, Next: Typedefs and Utility Structures, Prev: Intersections, Up: Top + +Installing and Running 3DLDF +**************************** + +* Menu: + +* Installing 3DLDF:: +* Running 3DLDF:: + + +File: 3DLDF.info, Node: Installing 3DLDF, Next: Running 3DLDF, Prev: Installing and Running 3DLDF, Up: Installing and Running 3DLDF + +Installing 3DLDF +================ + + 3DLDF is available for downloading from +`http://ftp.gnu.org/gnu/3dldf'. The official 3DLDF website is +`http://www.gnu.org/software/3dldf'. The "tarball", i.e., the +compressed archive file `3DLDF-1.1.4.tar.gz' unpacks into a directory +called `/3DLDF-1.1.4/'. + + On a typical Unix-like system, entering the following commands at +the command line in a shell will unpack the 3DLDF distribution. Please +note that the form of the commands may differ on your system. + + gunzip 3DLDF-1.1.4.tar.gz + tar xpvf 3DLDF-1.1.4.tar + + The `p' option to `tar' ensures that the files will have the same +permissions as when they were packed. + + The directory `3DLDF-1.1.4/' contains a `configure' script, which +should be called from the command line in the shell, using the absolute +path of `3DLDF-1.1.4/' as the prefix argument. For example, if the +path is `/usr/local/mydir/3DLDF-1.1.4/', `configure' should be invoked +as follows: + + cd 3DLDF-1.1.4 + configure --prefix=/usr/local/mydir/3DLDF-1.1.4/ + + `configure' generates a `Makefile' from the `Makefile.in' in +`3DLDF-1.1.4/', and in each of the subdirectories `3DLDF-1.1.4/CWEB', +`3DLDF-1.1.4/DOC', and `3DLDF-1.1.4/DOC/TEXINFO'. Now, `make install' +causes the 3DLDF to be built. The executable is called `3dldf'. + + See the files `README' and `INSTALL' in the 3DLDF distribution for +more information. + + +File: 3DLDF.info, Node: Running 3DLDF, Prev: Installing 3DLDF, Up: Installing and Running 3DLDF + +Running 3DLDF +============= + + To use 3DLDF, call `make run' from the command line in the shell. +The working directory should be `3DLDF-1.1.4/' or `3DLDF-1.1.4/CWEB'. +Either will work, but the latter may be more convenient, because this +is the location of the CWEB, TeX and MetaPost files that you'll be +editing. Alternatively, call `ldfr', which is merely a shell script +that calls `make run'. This takes care of running `3dldf', MetaPost, +TeX, and `dvips', producing a PostScript file containing your drawings. +You can display the latter on your terminal using Ghostview or some +other PostScript viewer, print it out, and whatever else you like to do +with PostScript files. + + However, you can also perform the actions performed by `make run' by +hand, by writing your own shell scripts, by defining Emacs-Lisp +commands, or in other ways. Even if you choose to use `make run', it's +important to understand what it does. The following explains how to do +this by hand. + + The CWEB source files for 3DLDF are in the subdirectory +`3DLDF-1.1.4/CWEB/'. They must be `ctangled', and the resulting C++ +files must be compiled and linked, in order to create the executable +file `3dldf'. The C++ files and header files generated by `ctangle', +the object files generated by the compiler, and the executable `3dldf' +all reside in `3DLDF-1.1.4/CWEB/'. Therefore, the latter must be your +working directory. + + Since 3DLDF has no input routine as yet, as explained in *Note No +Input Routine::, it is necessary to add C++ code to the function +`main()' in `main.web', and/or in a separate function in another file. +In the latter case, the function containing the user code must be +invoked in `main()'. Look for the line "Your code here!" in `main.web'. + + This is an example of what you could write in `main()'. Feel free +to make it more complicated, if you wish. + + beginfig(1); + default_focus.set(2, 3, -10, 2, 3, 10, 20); + Rectangle R(origin, 5, 3); + Circle C(origin, 3, 90); + C.half(180).filldraw(black, light_gray); + R.filldraw(); + C.half().filldraw(black, light_gray); + Point p = C.get_point(4); + p.shift(0, -.5 * p.get_y()); + p.label("$C$", ""); + Point q = R.get_mid_point(0); + q.shift(0, 0, -.5 * q.get_z()); + q.label("$R$", ""); + current_picture.output(default_focus, PERSP, 1, NO_SORT); + endfig(1); + + 1. Save `main.web', and any other CWEB files you've changed. Since + these files have changed, they must be `ctangled', and the + resulting C++ files must be recompiled. If you've changed any + files other than `main.web', `ctangle' will also generate a header + file for each of these files. If a header file differs from the + version that existed before `ctangle' was run, all of the C++ + files that depend on it must be recompiled. Then `3dldf' must be + relinked. To do this, call `make 3dldf' from the command line. + + If you've made any errors in typing your code, the compiler should + have issued error messages, so go back into the appropriate CWEB + file and correct your errors. Then call `make 3dldf' again. + + 2. Call `CWEB/3dldf' at the command line. It writes a file of + MetaPost code called `3DLDFput.mp'. + + 3. Run MetaPost on the file `3DLDFmp.mp', which inputs `3DLDFput.mp'. + + mpost 3DLDFput + + The result is an Encapsulated PostScript file `3DLDFput.' + for each figure in your drawing. + + 4. The file `3DLDFtex.tex' should contain code for including the + `3DLDFput.' files. This is an example taken from the + `3DLDFtex.tex' included in the distribution. You may change it to + suit your purposes. + + \vbox to \vsize{\vskip 2cm + \line{\hskip 2cm Figure 1.\hss}% + \vfil + \line{\hskip 2cm\epsffile{3DLDFmp.1}\hss}% + \vss} + + 5. Run TeX on `3DLDFtex.tex' to produce the DVI file, `3DLDFtex.dvi'. + + tex 3DLDFtex + + 6. Run `dvips' on the DVI file to produce the PostScript file, + `3DLDFtex.ps'. + + dvips -o 3DLDFtex.ps 3DLDFtex + + 7. `3DLDFtex.ps' can be viewed using Ghostview, it can be printed + using `lpr' (on a Unix-like system), you can convert it to PDF + with `ps2pdf', or to some other format using the appropriate + program. + + I sincerely hope that it worked. If it didn't, ask your local +computer wizard for help. + + On the computer I'm using, I found that `special' arguments for +setting `landscape' and `papersize' in TeX files for DIN A3 landscape +didn't work. Ghostview cut off the right sides of the drawings. Nor +did it work to call `dvips -t landscape -t a3'. This caused an error +message which said that `landscape' would be ignored. When I called +`dvips' with the `-t landscape' option alone, it worked, and Ghostview +showed the entire drawing. + + Another problem was Adobe Acrobat. It would display the entire DIN +A3 page, but not always in landscape format. I was unable to find a +way of rotating the pages in Acrobat. I finally found out, that if I +included even a single letter of text in a label, Acrobat would display +the document correctly. + +* Menu: + +* Command Line Arguments:: + + +File: 3DLDF.info, Node: Command Line Arguments, Prev: Running 3DLDF, Up: Running 3DLDF + +Command Line Arguments +---------------------- + + `3dldf' can be called with the following "command line arguments". + +`--help' + Prints information about the valid command line options to standard + output and exits with return value 0. + +`--silent' + Suppresses some output to standard output and standard error when + `3dldf' is run + +`--verbose' + Causes status information to be printed to standard output when + `3dldf' is run. + +`--version' + Prints the version number of 3DLDF to standard output and exits + with return value 0. + + Currently, `3dldf' can only handle long options. `-' cannot be +substituted for `--'. However, the names of the options themselves can +be abbreviated, as long as the abbreviation is unambigous. For +example, `3dldf --h' and `3dldf --verb' are valid, but `3dldf --ver' is +not. + + +File: 3DLDF.info, Node: Typedefs and Utility Structures, Next: Global Constants and Variables, Prev: Installing and Running 3DLDF, Up: Top + +Typedefs and Utility Structures +******************************* + + 3DLDF defines a number of data types for various reasons, e.g., for +the sake of convenience, for use in conditional compilation, or as +return values of functions. Some of these data types can be defined +using `typedef', while others are defined as `structs'. + + The typedefs and utility structures described in this chapter are +found in `pspglb.web'. Others, that contain objects of types defined +in 3DLDF, are described in subsequent chapters. + + - typedef: real + Synonymous either with `float' or `double', depending on the + values of the preprocessor variables `LDF_REAL_FLOAT' and + `LDF_REAL_DOUBLE'. The meaning of `real' is determined by means + of conditional compilation. If `real' is `float', 3DLDF will + require less memory than if `real' is `double', but its + calculations will be less precise. + + Please note that it currently does not work to define `real' to be + `double'! + + - typedef: real_pair first second + Synonymous with `pair'. + + - struct: real_triple first second third + All three data elements of `real_triple' are `reals'. It also has + two constructors, described below. There are no other member + functions. + + - Constructor: void real_triple (void) + - Constructor: void real_triple (real A, real B, real C) + The constructor taking no arguments sets `first', `second', and + `third' to 0. The constructor taking three `real' arguments sets + `first' to A, `second' to B, and `third' to C. + + - typedef: Matrix + A `Matrix' is a 4 X 4 array of `real', e.g., `Matrix M;' == `real + M[4][4]'. It is used in `class Transform' for storing + transformation matrices. *Note Transforms::, and *Note Transform + Reference::, for more information. + + - typedef: real_short first second + Synonymous with `pair'. It is the return type + of `Plane::get_distance()'. + + - typedef: bool_pair first second + Synonymous with `pair'. + + - typedef: bool_real first second + Synonymous with `pair'. + + +File: 3DLDF.info, Node: Global Constants and Variables, Next: Color Reference, Prev: Typedefs and Utility Structures, Up: Top + +Global Constants and Variables +****************************** + + The global constants and variables described in this chapter are +found in `pspglb.web'. Others, of types defined in 3DLDF, are +described in subsequent chapters. + + - Constant: real PI + The value of `PI' is calculated as 4.0 * arctan(1.0). I believe + that a preprocessor macro "`PI'" was available when I compiled + 3DLDF using the DEC C++ compiler, and that it wasn't, when I used + GNU CC under Linux, but I'm no longer sure. + + - Variable: valarray null_coordinates + Contains four elements, all 0. Used for resetting the sets of + coordinates belonging to `Points', but only when the DEC C++ + + compiler is used. This doesn't work when GCC is used. + + - Constant: real INVALID_REAL + Actually, `INVALID_REAL' is the largest possible `real' value + (i.e., `float' or `double') on a given machine. So, from the + point of view of the compiler, it's not invalid at all. However, + 3DLDF uses it to indicate failure of some kind. For example, the + return value of a function returning `real' can be compared with + `INVALID_REAL' to check whether the function succeeded or failed. + + An alternative approach would be to use the exception handling + facilities of C++ . I do use these, but only in a couple of + places, so far. + + - Constant: real_pair INVALID_REAL_PAIR + `first' and `second' are both `INVALID_REAL'. + + - Constant: real INVALID_REAL_SHORT + `first' is `INVALID_REAL' and `second' is 0. + + - Constant: real MAX_REAL + The largest `real' value permitted in 3DLDF. It is the second + largest `real' value (i.e., `float' or `double') on a given + machine (`INVALID_REAL' is the largest). + + However, the way it's calculated depends on the system's floating + point representation and the size of certain data types. + Currently, `MAX_REAL' can only be calculated correctly for 32-bit, + little-endian architectures. I plan to fix this soon, so that it + will work on other architectures soon. When I have, I will supply + a patch. *Note Ports::. + + + - Constant: real MAX_REAL_SQRT + The square root of `MAX_REAL'. Used in `Point::magnitude()' + (*note Vector Operations::). The magnitude of a `Point' is found + by using the formula \sqrtx^2 + y^2 + z^2. x, y, and z are all + tested against `MAX_REAL_SQRT' to ensure that x^2, y^2, and z^2 + will all be less than or equal to `MAX_REAL' before trying to + calculate them. + + Metafont implements an operation called "Pythagorean addition", + notated as "`++'"which can be used to calculate distances without + first squaring and then taking square roots:(1) a++b == \sqrt(a^2 + + b^2) and a++b++c == \sqrt(a^2 + b^2 + c^2). This makes it + possible to calculate distances for greater values of a, b, and c, + that would otherwise cause floating point errors. Metafont also + implements the inverse operation "Pythagorean subtraction", + notated as "`+-+'": a+-+b == \sqrt(a^2 - b^2). Unfortunately, + 3DLDF implements neither Pythagorean addition nor subtraction as + yet, but it's on my list of "things to do". + + ---------- Footnotes ---------- + + (1) Knuth, Donald E. `The Metafontbook', p. 66. + + +File: 3DLDF.info, Node: Color Reference, Next: Input and Output, Prev: Global Constants and Variables, Up: Top + +Color Reference +*************** + + Class `Color' is defined in `colors.web'. + +* Menu: + +* Color Data Members:: +* Color Constructors and Setting Functions:: +* Color Operators:: +* Modifying Colors:: +* Showing Colors:: +* Querying Colors:: +* Defining and Initializing Colors:: +* Namespace Colors:: + + +File: 3DLDF.info, Node: Color Data Members, Next: Color Constructors and Setting Functions, Prev: Color Reference, Up: Color Reference + +Data Members +============ + + - Variable: string name + The name of the `Color'. + + - Variable: bool use_name + If `true', `name' is written to `out_stream' when the `Color' is + used for drawing or filling. Otherwise, the RGB (red-green-blue) + values are written to `out_stream'. + + - Variable: bool on_free_store + `true', if the `Color' has been created by `create_new_color()', + which allocates memory for the `Color' on the free store. + Otherwise `false'. `Colors' should only ever be dynamically + allocated by using `create_new_color()' (*note Color + Reference;;Constructors and Setting Functions: Color Constructors + and Setting Functions.). + + - Variable: real red_part + - Variable: real green_part + - Variable: real blue_part + The RGB (red-green-blue) values of the `Color'. A `real' value r + is valid for these variables if and only if 0 <= r <= 1. + + +File: 3DLDF.info, Node: Color Constructors and Setting Functions, Next: Color Operators, Prev: Color Data Members, Up: Color Reference + +Constructors and Setting Functions +================================== + + - Default constructor: void Color (void) + Creates a `Color' and initializes its `red_part', `green_part', + and `blue_part' to 0. `use_name' and `on_free_store' are set to + `false'. + + - Copy constructor: void Color (const Color& C, [const string N = "", + [const bool U = `true']]) + Creates a `Color' and makes it a copy of C. If N is not the empty + string and U is `true', `use_name' is set to `true'. Otherwise, + its set to `false'. + + - Constructor: void Color (const string N, const unsigned short R, + const unsigned short G, const unsigned short B, [const bool U + = `true']) + Creates a `Color' with name N. Its `red_part', `green_part', and + `blue_part' are set to r/255.0, g/255.0, and b/255.0, respectively. + `use_name' is set to U. + + - Setting function: void set (const string N, const unsigned short R, + const unsigned short G, const unsigned short B, [const bool U + = `false']) + Corresponds to the constructor above, except that U is `false' by + default. + + - Constructor: void Color (const real R, const real G, const real B) + Creates an unnamed `Color' using the `real' values R, G, and B for + its `red_part', `green_part', and `blue_part', respectively. + + - Setting function: void set (const real R, const real G, const real B) + Corresponds to the constructor above. + + - Inline static function: Color* create_new_color (void) + Pseudo-constructor for dynamic allocation of `Colors'. It creates + a `Color' on the free store and allocate memory for it using + `new(Color)'. It returns a pointer to the new `Color'. + + This function is used in the drawing and filling functions for + `Path' and `Solid'. `Point::drawdot()' should be changed to use + it too, but I haven't gotten around to doing this yet. + + +File: 3DLDF.info, Node: Color Operators, Next: Modifying Colors, Prev: Color Constructors and Setting Functions, Up: Color Reference + +Operators +========= + + - Assignment operator: void operator= (const Color& C) + Sets `name' to the empty `string', `use_name' to `false', and + `red_part', `green_part', and `blue_part' to C.`red_part', + C.`green_part', and C.`blue_part', respectively. + + - `const' operator: bool operator== (const Color& C) + Equality operator. Returns `true', if the `red_parts', + `green_parts', and `blue_parts' of `*this' and C are equal, + otherwise `false'. The `names' and `use_names' are not compared. + + - `const' operator: bool operator!= (const Color& C) + Inequality operator. Returns `false', if the `red_parts', + `green_parts', and `blue_parts' of `*this' and C are equal, + otherwise `true'. The `names' and `use_names' are not compared. + + - Non-member function: ostream& operator<< (ostream& O, const Color& C) + Output operator. Writes the MetaPost code for the `Color' to + `out_stream' when a `Picture' is output. This occurs when the + `Color' has been used as an argument to drawing or filling + functions. + + If `use_name' is `true', `name' is written to `out_stream'. + Otherwise, "(`red_part', `green_part', `blue_part')" is written to + `out_stream'. + + +File: 3DLDF.info, Node: Modifying Colors, Next: Showing Colors, Prev: Color Operators, Up: Color Reference + +Modifying +========= + + - Function: void set_name (const string S) + Sets `name' to S. `use_name' is not reset. + + - Function: void set_use_name (const bool B) + Sets `use_name' to B. + + - Function: void modify (const real R, [const real G = 0, [const real + B = 0]]) + Adds R, G, and B to `red_part', `green_part', and `blue_part', + respectively. Following the addition, if `red_part', + `green_part', and/or `blue_part' is greater than 1, it is reduced + to 1. If it is less than 0, it is increased to 0. + + - Function: void set_red_part (const real Q) + - Function: void set_green_part (const real Q) + - Function: void set_blue_part (const real Q) + Let p stand for `red_part', `green_part', or `blue_part', + depending upon which function is used. If 0 <= q <= 1, p is set + to q. If q < 0, p is set to 0. If q > 1, p is set to 1. + + +File: 3DLDF.info, Node: Showing Colors, Next: Querying Colors, Prev: Modifying Colors, Up: Color Reference + +Showing +======= + + - `const' function: void show ([string TEXT = ""]) + Prints information about the `Color' to standard output. If TEXT + is not the empty `string', prints TEXT on a line of its own. + Otherwise, it prints "Color:". Then it prints `name', `use_name', + `red_part', `green_part', and `blue_part'. + + +File: 3DLDF.info, Node: Querying Colors, Next: Defining and Initializing Colors, Prev: Showing Colors, Up: Color Reference + +Querying +======== + + - Inline `const' function: bool is_on_free_store (void) + Returns `on_free_store'. This will only be true, if the `Color' + was created by `create_new_color()' (*note Color Reference; + Constructors and Setting Functions: Color Constructors and Setting + Functions.). + + - Inline `const' function: real get_red_part ([bool DECIMAL = `false']) + - Inline `const' function: real get_green_part ([bool DECIMAL = + `false']) + - Inline `const' function: real get_blue_part ([bool DECIMAL = + `false']) + These functions return the `red_part', `green_part', or + `blue_part' of the `Color', respectively. If DECIMAL is `false' + (the default), the actual `real' value of the "part" is returned. + Otherwise, the corresponding whole number n such that 0 <= n <= 255 + is returned. + + - `const' function: bool get_use_name (void) + Returns `use_name'. + + - Inline `const' function: string get_name (void) + Returns `name'. + + +File: 3DLDF.info, Node: Defining and Initializing Colors, Next: Namespace Colors, Prev: Querying Colors, Up: Color Reference + +Defining and Initializing Colors +================================ + + - `const' function: void define_color_mp () + Writes MetaPost code to `out_stream', in order to define objects of + type `color' within MetaPost, and set their `redparts', + `greenparts', and `blueparts'. + + - Static function: void initialize_colors (void) + Calls `define_color_mp()' (described above) for the `Colors' that + are defined in `namespace Colors' (*note Namespace Colors::). + + +File: 3DLDF.info, Node: Namespace Colors, Prev: Defining and Initializing Colors, Up: Color Reference + +Namespace Colors. +================= + + - Constant: const Color red + - Constant: const Color green + - Constant: const Color blue + - Constant: const Color cyan + - Constant: const Color yellow + - Constant: const Color magenta + - Constant: const Color orange_red + - Constant: const Color violet_red + - Constant: const Color pink + - Constant: const Color green_yellow + - Constant: const Color orange + - Constant: const Color violet + - Constant: const Color purple + - Constant: const Color blue_violet + - Constant: const Color yellow_green + - Constant: const Color black + - Constant: const Color white + - Constant: const Color gray + - Constant: const Color light_gray + These constant `Colors' can be used in drawing and filling + commands. + + - Constant: const Color default_background + The default background color. Equal to `white' per default. + + - Pointer: const Color* background_color + Points to `default_background' by default. + + - Pointer: const Color* default_color + Points to `black' by default. + + - Pointer: const Color* help_color + Points to `green' by default. + + The following vectors of pointers to `Color' can be used in the +drawing and filling functions for `Solid' (*note Solid Reference; +Drawing and Filling: Drawing and Filling Solids.). + + - Vector: const vector default_color_vector + Contains one pointer, namely `default_color'. + + - Vector: const vector help_color_vector + Contains one pointer, namely `help_color'. + + - Vector: const vector background_color_vector + Contains one pointer, namely `background_color'. + + +File: 3DLDF.info, Node: Input and Output, Next: Shape Reference, Prev: Color Reference, Up: Top + +Input and Output +**************** + +* Menu: + +* I/O Global Variables:: +* I/O Functions:: + + +File: 3DLDF.info, Node: I/O Global Variables, Next: I/O Functions, Prev: Input and Output, Up: Input and Output + +Global Variables +================ + + - Variable: ifstream in_stream + Intended for inputting files of input code. However, 3DLDF does + not currently have a routine for reading input code. `in_stream' + is currently attached to the file `ldfinput.ldf' by + `initialize_io()' (*note I/O Functions::). `in_stream' is read in + character-by-character in `main()', however this serves no useful + purpose as yet. + + - Variable: ofstream out_stream + Used for writing the file of MetaPost code, which is 3DLDF's + output. Currently attached to the file `subpersp.mp' by + `initialize_io()' (*note I/O Functions::). + + - Variable: ofstream tex_stream + TeX code can be written to a file through `tex_stream', if + desired. 3DLDF makes no use of it itself. Currently attached to + `subpersp.tex' by `initialize_io()' (*note I/O Functions::). + + +File: 3DLDF.info, Node: I/O Functions, Prev: I/O Global Variables, Up: Input and Output + +I/O Functions +============= + + - Function: void initialize_io (string IN_STREAM_NAME, string + OUT_STREAM_NAME, string TEX_STREAM_NAME, char* PROGRAM_NAME) + Opens files with names specified by the first three arguments, and + attaches them to the file streams `in_stream', `out_stream', and + `tex_stream', respectively. Comments are written at the beginning + of the files, containing their names, a datestamp, and the name of + the program used to generate them. + + - Function: void write_footers (void) + Writes code at the end of the files attached to `in_stream', + `out_stream', and `tex_stream', before the streams are closed. + Currently, they write comments containing local variable lists for + use in Emacs. + + - Inline function: void beginfig (unsigned short I) + Writes "`beginfig(I)'" to `out_stream'. + + - Inline function: void endfig ([unsigned short I = 0]) + Writes "`endfig()'" to `out_stream'. The argument I is "syntactic + sugar"; it's ignored by `endfig()', but may help the user keep + track of what figure is being ended. + + +File: 3DLDF.info, Node: Shape Reference, Next: Transform Reference, Prev: Input and Output, Up: Top + +Shape Reference +*************** + + Class `Shape' is defined in `shapes.web'. + + `Shape' is an "abstract class", which means that all of its member +functions are pure virtual functions, and that it's only used as a base +class, i.e., no objects of type `Shape' may be declared. + + All of the "drawable" types in 3DLDF, `Point', `Path', `Ellipse', +etc., are derived from `Shape'. + + Deriving all of the drawable types from `Shape' makes it possible to +handle objects of different types in the same way. This is especially +important in the `Picture' functions, where objects of various types +(but all derived from `Shape') are accessed through pointers to +`Shape'. *Note Picture Reference::. + +* Menu: + +* Shape Data Members:: +* Shape Operators:: +* Copying Shapes:: +* Modifying Shapes:: +* Affine Transformations for Shapes:: +* Applying Transformations to Shapes:: +* Clearing Shapes:: +* Querying Shapes:: +* Showing Shapes:: +* Outputting Shapes:: + + +File: 3DLDF.info, Node: Shape Data Members, Next: Shape Operators, Prev: Shape Reference, Up: Shape Reference + +Data Members +============ + + - Protected static constants: signed short DRAWDOT + - : signed short DRAW + - : signed short FILL + - : signed short FILLDRAW + - : signed short UNDRAWDOT + - : signed short UNDRAW + - : signed short UNFILL + - : signed short UNFILLDRAW + Values used in the `output()' functions of the classes derived from + `Shape'. For example, in `Path', if the data member + `fill_draw_value' = `DRAW', then the MetaPost command `draw' is + written to `out_stream' when that `Path' is output. + + +File: 3DLDF.info, Node: Shape Operators, Next: Copying Shapes, Prev: Shape Data Members, Up: Shape Reference + +Operators +========= + + - Pure virtual function: Transform operator*= (const Transform& T) + + +File: 3DLDF.info, Node: Copying Shapes, Next: Modifying Shapes, Prev: Shape Operators, Up: Shape Reference + +Copying +======= + + - `const' pure virtual function: Shape* get_copy (void) + Copies an object, allocating memory on the free store for the copy, + and returns a pointer to `Shape' for accessing the copy. + + Used in the drawing and filling functions for copying the `Shape', + and putting a pointer to the copy onto the `vector shapes' + of the `Picture'. + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-4 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-4 --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-4 1970-01-01 01:00:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-4 2003-12-10 18:44:55.000000000 +0100 @@ -0,0 +1,1211 @@ +This is 3DLDF.info, produced by makeinfo version 4.5 from 3DLDF.texi. + +This is the 3DLDF User and Reference Manual, edition 1.1.4 for 3DLDF +1.1.4. This manual was last updated on 10 December 2003. 3DLDF is a +GNU package for three-dimensional drawing with MetaPost output. The +author is Laurence D. Finston. + + Copyright (C) 2003 Laurence D. Finston. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, and + no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License". + +INFO-DIR-SECTION GNU packages +START-INFO-DIR-ENTRY +* 3DLDF: (3DLDF). 3D drawing with MetaPost output. +END-INFO-DIR-ENTRY + + +File: 3DLDF.info, Node: Modifying Shapes, Next: Affine Transformations for Shapes, Prev: Copying Shapes, Up: Shape Reference + +Modifying +========= + + - Pure virtual function: bool set_on_free_store (bool B = `true') + Sets the data member `on_free_store' to B. All classes derived + from `Shape' must therefore also have a data member + `on_free_store'. + + This function was intended for use with a `create_new' + template function, however, I was unable to get it to work. I + _was_ able to get a template function to work when a program was + generated from a single compilation unit, so I suspect the problem + has something to do with linkage when there are several + compilation units. However, I haven't bothered to try to solve + this problem yet. Therefore, each class that needs one has a + function for creating a new object of that class, and allocating + memory for it on the free store, e.g., + `Point::create_new_point()', `Path::create_new_path()', etc. + + +File: 3DLDF.info, Node: Affine Transformations for Shapes, Next: Applying Transformations to Shapes, Prev: Modifying Shapes, Up: Shape Reference + +Affine Transformations +====================== + + - Pure virtual functions: Transform rotate (const real X, const real + Y, const real Z) + - : Transform scale (real X, real Y, real Z) + - : Transform shear (real XY, real XZ, real YX, real YZ, real ZX, real + ZY) + - : Transform shift (real X, real Y, real Z) + - : Transform rotate (const Point& P0, const Point& P1, const real R) + *Note Point Reference; Affine Transformations: Affine + Transformations for Points. + + +File: 3DLDF.info, Node: Applying Transformations to Shapes, Next: Clearing Shapes, Prev: Affine Transformations for Shapes, Up: Shape Reference + +Applying Transformations +======================== + + - Pure virtual function: void apply_transform (void) + Applies the `Transform' stored in the `transform' data member of + the `Points' belonging to the `Shape' to their + `world_coordinates'. The `transforms' are subsequently reset to + the identity `Transform'. + + +File: 3DLDF.info, Node: Clearing Shapes, Next: Querying Shapes, Prev: Applying Transformations to Shapes, Up: Shape Reference + +Clearing +======== + + - Pure virtual function: void clear (void) + The precise definition of this function will depend on the nature + of the derived class. In general, it will call the destructor on + dynamically allocated objects belonging to the `Shape', and + deallocate the memory they occupied. + + +File: 3DLDF.info, Node: Querying Shapes, Next: Showing Shapes, Prev: Clearing Shapes, Up: Shape Reference + +Querying +======== + + - `const' pure virtual function: bool is_on_free_store (void) + Returns `true' if the object was allocated on the free store, + otherwise `false'. + + +File: 3DLDF.info, Node: Showing Shapes, Next: Outputting Shapes, Prev: Querying Shapes, Up: Shape Reference + +Showing +======= + + - `const' pure virtual function: void show ([string TEXT = "", [char + COORDS = 'w', [const bool DO_PERSP = `true', [const bool + DO_APPLY = `true', [Focus* F = 0, [const unsigned short PROJ + = 0, [const real FACTOR = 1]]]]]]]) + Prints information about an object to standard output. See the + descriptions of `show()' for the classes derived from `Shape' for + more information. + + +File: 3DLDF.info, Node: Outputting Shapes, Prev: Showing Shapes, Up: Shape Reference + +Outputting +========== + + - Pure virtual function: void output (void) + Called by `Picture::output()' for writing MetaPost code to + `out_stream' for a `Shape' pointed to by a pointer on the + `vector shapes' belonging to the `Picture'. Such a + `Shape' will have been created by a drawing or filling function. + + - Pure virtual function: vector extract (const Focus& F, const + unsigned short PROJ, real FACTOR) + Called in `Picture::output()'. It determines whether a `Shape' + can be output. If it can, and an `output()' function for the type + of the `Shape' exists, a `vector' containing a pointer to + the `Shape' is returned. + + On the other hand, it is possible to define a type derived from + `Shape', without an `output()' function of its own, and not + derived from a type that has one. It may then consist of one or + more objects of types that do have `output()' functions. In this + case, the `vector' returned by `extract()' will contain + pointers to all of these subsidiary `Shapes', and + `Picture::output()' will treat them as independent objects. In + particular, if any one of them cannot be projected using the + arguments passed to `Picture::output()', this will have no effect + on whether the others are outputted or not. + + Currently, there are no `Shapes' without an `output()' function, + either belonging to the class, or inherited. However, it's useful + to be able to define `Shapes' in this way, so that they can be + tested without having to define an `output()' function first. + + - Pure virtual function: bool set_extremes (void) + Sets the values of `projective_extremes' for the `Shape'. This is + needed in `Picture::output()' for determining the order in which + objects are output. + + - `const' pure virtual functions: real get_minimum_z (void) + - : real get_maximum_z (void) + - : real get_mean_z (void) + These functions return the minimum, maximum, and mean z-value + respectively of the projected `Points' belonging to the `Shape', + i.e., from `projective_extremes'. The values for the `Shapes' on + the `Picture' are used for determining the order in which they are + output + + - `const' pure virtual function: const valarray get_extremes + (void) + Returns `projective_extremes'. + + - Pure virtual function: void suppress_output (void) + Sets `do_output' to `false'. This function is called in + `Picture::output()', if a `Shape' on a `Picture' cannot be output + using the arguments passed to `Picture::output()'. + + - Pure virtual function: void unsuppress_output (void) + Sets `do_output' to `true'. Called in `Picture::output()' after + `output()' is called on the `Shapes'. This way, output of + `Shapes' that couldn't be output when `Picture::output()' was + called with a particular set of arguments won't necessarily be + suppressed when `Picture::output()' is called again with different + arguments. + + f + + +File: 3DLDF.info, Node: Transform Reference, Next: Label Reference, Prev: Shape Reference, Up: Top + +Transform Reference +******************* + + Class `Transform' is defined in `transfor.web'. `Point' is a +`friend' of `Transform'. + +* Menu: + +* Transform Data Members:: +* Transform Global Variables and Constants:: +* Transform Constructors :: +* Transform Operators:: +* Matrix Inversion:: +* Setting Values Transforms:: +* Querying Transforms:: +* Returning Information for Transforms:: +* Showing Transforms:: +* Affine Transformations for Transforms:: +* Alignment with an Axis for Transforms:: +* Resetting Transforms:: +* Cleaning Transforms:: + + +File: 3DLDF.info, Node: Transform Data Members, Next: Transform Global Variables and Constants, Prev: Transform Reference, Up: Transform Reference + +Data Members +============ + + - Private variable: Matrix matrix + A 4 X 4 + + matrix of `real' representing the actual transformation matrix. + + +File: 3DLDF.info, Node: Transform Global Variables and Constants, Next: Transform Constructors, Prev: Transform Data Members, Up: Transform Reference + +Global Variables and Constants +============================== + + - Variable: Transform user_transform + Currently has no function. It is intended to be used for + transforming the coordinates of `Points' between the world + coordinate system (WCS) and a user coordinate system (UCS), when + routines for managing user coordinate systems are implemented. + + - Constant: `const' Transform INVALID_TRANSFORM + Every member of `matrix' in `INVALID_TRANSFORM' is equal to + `INVALID_REAL'. + + - Constant: `const' Transform IDENTITY_TRANSFORM + Homogeneous coordinates and `Transforms' are unchanged by + multiplication with `IDENTITY_TRANSFORM'. `matrix' is an identity + matrix: + 1 0 0 0 + 0 1 0 0 + 0 0 1 0 + 0 0 0 1 + *Note Transforms::. + + +File: 3DLDF.info, Node: Transform Constructors, Next: Transform Operators, Prev: Transform Global Variables and Constants, Up: Transform Reference + +Constructors +============ + + - Default constructor: void Transform (void) + Creates a `Transform' containing the identity matrix. + + - Constructor: void Transform (real R) + Creates a `Transform' and sets all of the elements of MATRIX to R. + Currently, this constructor is never used, but who knows? Maybe + someday it will be useful for something. + + - Constructor: void Transform (real R0_0, real R0_1, real R2, real + R0_2, real R0_3, real R1_0, REAL R1_1, real R1_2, REAL R1_3, + real R2_0, real R2_1, real R2_2, real R2_3, real R3_0, real + R3_1, real R3_2, real R3_3) + Each of the sixteen `real' arguments is assigned to the + corresponding element of MATRIX: `matrix[0][0] = r0_0', + `matrix[0][1] = r0_1', etc. Useful for specifying a + transformation matrix completely. + + +File: 3DLDF.info, Node: Transform Operators, Next: Matrix Inversion, Prev: Transform Constructors, Up: Transform Reference + +Operators +========= + + - Assignment operator: Transform operator= (const Transform& T) + Sets *THIS to T and returns T. Returning *THIS would, of course, + have exactly the same effect. + + - Operator: real operator*= (real R) + Multiplication with assignment by a scalar. This operator + multiplies each element E of `matrix' by the scalar R. The return + value is `r'. This makes it possible to chain invocations of this + function: For a_x, b_x, c_x, ..., p_x in R , x in N + + Transform T0(a_0, b_0, c_0, d_0, + e_0, f_0, g_0, h_0, + i_0, j_0, k_0 l_0, + m_0, n_0, o_0, p_0); + Transform T1(a_1, b_1, c_1, d_1, + e_1, f_1, g_1, h_1, + i_1, j_1, k_1 l_1, + m_1, n_1, o_1, p_1); + Transform T2(a_2, b_2, c_2, d_2, + e_2, f_2, g_2, h_2, + i_2, j_2, k_2 l_2, + m_2, n_2, o_2, p_2); + real r = 5; + + Let M_0, M_1, and M_2 stand for `T0.matrix', `T1.matrix', and + `T2.matrix' respectively: + + M_0 = + a_0 b_0 c_0 d_0 + e_0 f_0 g_0 h_0 + i_0 j_0 k_0 l_0 + m_0 m_0 o_0 p_0 + + M_1 = + a_1 b_1 c_1 d_1 + e_1 f_1 g_1 h_1 + i_1 j_1 k_1 l_1 + m_1 m_1 o_1 p_1 + + M_2 = + a_2 b_2 c_2 d_2 + e_2 f_2 g_2 h_2 + i_2 j_2 k_2 l_2 + m_2 m_2 o_2 p_2 + + T0 *= T1 *= T2 *= r; + + Now, + M_0 = + 5a_0 5b_0 5c_0 5d_0 + 5e_0 5f_0 5g_0 5h_0 + 5i_0 5j_0 5k_0 5l_0 + 5m_0 5m_0 5o_0 5p_0 + + M_1 = + 5a_1 5b_1 5c_1 5d_1 + 5e_1 5f_1 5g_1 5h_1 + 5i_1 5j_1 5k_1 5l_1 + 5m_1 5m_1 5o_1 5p_1 + + M_2 = + 5a_2 5b_2 5c_2 5d_2 + 5e_2 5f_2 5g_2 5h_2 + 5i_2 5j_2 5k_2 5l_2 + 5m_2 5m_2 5o_2 5p_2 + + This function is not currently used anywhere, but it may turn out + to be useful for something. + + - `const' operator: Transform operator* (const real R) + Multiplication of a `Transform' by a scalar without assignment. + The return value is a `Transform' A. If `this.matrix' has elements + E_T, then `A.matrix' has elements E_A such that E_A = r * E_T + + for all E. + + - Operator: Transform operator*= (const Transform& T) + Performs matrix multiplication on `matrix' and `t.matrix'. The + result is assigned to `matrix'. T is returned, _not_ `*this'! + This makes it possible to chain invocations of this function: + + Transform a; + a.shift(1, 1, 1); + Transform b; + b.rotate(0, 90); + Transform c; + c.shear(5, 4); + Transform d; + d.scale(3, 4, 5); + + Let a_m, b_m, and c_m stand for `a.matrix', `b.matrix', + `c.matrix', and `d.matrix' respectively: + a_m = + 1 0 0 0 + 0 1 0 0 + 0 0 1 0 + 1 1 1 1 + + b_m = + 0.5 0.5 0.707 0 + 0.146 0.854 -0.5 0 + -0.854 0.146 0.5 0 + 0 0 0 1 + + c_m = + 1 12 14 0 + 10 1 15 0 + 11 13 1 0 + 0 0 0 1 + + d_m = + 3 0 0 0 + 0 4 0 0 + 0 0 5 0 + 0 0 0 1 + `a *= b *= c *= d;' + `a', `b', and `c' are transformed by `d', which remains unchanged. + + Now, + a_m = + 3 0 0 0 + 0 4 0 0 + 0 0 5 0 + 3 4 5 1 + + b_m = + 1.5 2 3.54 0 + -0.439 3.41 -2.5 0 + -2.56 0.586 2.5 0 + 0 0 0 1 + + c_m = + 3 48 70 0 + 30 4 75 0 + 33 52 5 0 + 0 0 0 1 + d_m is unchanged. + + + - `const' operator: Transform operator* (const Transform T) + Multiplication of a `Transform' by another `Transform' without + assignment. The return value is a `Transform' whose `matrix' + contains values that are the result of the matrix multiplication of + `matrix' and `t.matrix'. + + +File: 3DLDF.info, Node: Matrix Inversion, Next: Setting Values Transforms, Prev: Transform Operators, Up: Transform Reference + +Matrix Inversion +================ + + - `const' function: Transform inverse (void) + - Function: Transform inverse ([bool ASSIGN = `false']) + Returns a `Transform' `T' with a `T.matrix' that is the inverse of + `matrix'. If ASSIGN==`true', then `matrix' is set to its inverse. + + In the `const' version, `matrix' remains unchanged. The second + should only ever be called with `true' as its ASSIGN argument. If + you're tempted call `inverse(false)', you might as well just leave + out the argument, which issues a warning message, and calls the + `const' version. + + +File: 3DLDF.info, Node: Setting Values Transforms, Next: Querying Transforms, Prev: Matrix Inversion, Up: Transform Reference + +Setting Values +============== + + - Function: void set_element (const unsigned short ROW, const unsigned + short COL, real R) + Sets the element of `matrix' indicated by the arguments to R. + + Transform t; + t.set_element(0, 2, -3.45569); + t.show("t:"); + -| t: + 1 0 -3.46 0 + 0 1 0 0 + 0 0 1 0 + 0 0 0 1 + + +File: 3DLDF.info, Node: Querying Transforms, Next: Returning Information for Transforms, Prev: Setting Values Transforms, Up: Transform Reference + +Querying +======== + + - Function: bool is_identity (void) + Returns `true' if `*this' is the identity `Transform', otherwise + `false'. This function has both a `const' and a non-`const' + version. In the non-`const' version, `clean()' is called on + `*this' before comparing the elements of `matrix' with 1 (for the + main diagonal) and 0 (for the other elements). In the `const' + version, `*this' is copied, `clean()' is called on the copy, and + the elements of the copy's `matrix' are compared with 0 and 1. + + - `const' function: real get_element (const unsigned short ROW, const + unsigned short COL) + Returns the value stored in the element of `matrix' indicated by + the arguments. + + Transform t; + t.shift(1, 2, 3); + t.scale(2.5, -1.2, 4); + t.rotate(30, 15, 60); + t.show("t:"); + -| t: + 1.21 2.09 0.647 0 + 0.822 -0.654 0.58 0 + -2.18 0.224 3.35 0 + -3.69 1.45 11.8 1 + cout << t.get_element(2, 1); + -| 0.224 + + +File: 3DLDF.info, Node: Returning Information for Transforms, Next: Showing Transforms, Prev: Querying Transforms, Up: Transform Reference + +Returning Information +===================== + + - Inline function: real epsilon (void) + Returns the smallest `real' value which a `Transform' should + contain. This value is used for comparing `Transforms' and in the + function `clean()' (*note Transform Reference; Cleaning: Cleaning + Transforms.). It is currently 0.00001. + + The value of `epsilon()' should be smaller when `real' is `double' + than when `real' is `float'. Currently, it doesn't work to have + `real' be `double'. + + Rotation causes a significant loss of precision to due to the use + of the `sin()' and `cos()' functions. Therefore, neither + `Transform::epsilon()' nor `Point::epsilon()' (*note Point + Reference; Returning Information: Returning Information for + Points.) can be as small as I'd like them to be. If they are two + small, the operations that test for equality of `Transforms' and + `Points' will return `false' for objects that should be equal. + + Another problem is how to determine what value `epsilon()' should + return. A good value on one computer may not be good on another, + especially if one has a 32-bit, and the other a 64-bit processor. + + +File: 3DLDF.info, Node: Showing Transforms, Next: Affine Transformations for Transforms, Prev: Returning Information for Transforms, Up: Transform Reference + +Showing +======= + + - `const' function: void show ([string TEXT = ""]) + If the optional argument TEXT is used, and is not the empty + `string' (""), TEXT is printed on a line of its own to the + standard output first. Otherwise, `"Transform:"' is printed on a + line of its own to the standard output. Then, the elements of + `matrix' are printed to standard output. + + Transform t; + t.show("t:"); + -| t: + 1 0 0 0 + 0 1 0 0 + 0 0 1 0 + 0 0 0 1 + t.scale(1, 2, 3); + t.shift(1, 1, 1); + t.rotate(90, 90, 90); + t.show("t:"); + -| t: + 0 0 1 0 + 0 2 0 0 + -3 0 0 0 + -1 1 1 1 + + + +File: 3DLDF.info, Node: Affine Transformations for Transforms, Next: Alignment with an Axis for Transforms, Prev: Showing Transforms, Up: Transform Reference + +Affine Transformations +====================== + + The affine transformation functions use their arguments to create a +new `Transform' `t' (local to the function) representing the +appropriate transformation. Then, `*this' is multiplied by `t' and `t' +is returned. Returning `t' instead of `*this' makes it possible to put +the affine transformation function at the end of a chain of invocations +of `Transform::operator*=()': + + Transform t0, t1, t2, t3; + ... + t0 *= t1 *= t2 *= t3.scale(2, 3.5, 9); + + `t0', `t1', and `t2' are all multiplied by the `Transform' with + `matrix' = + 2 0 0 0 + 0 3.5 0 0 + 0 0 9 0 + 0 0 0 1 + representing the scaling operation, _not_ `t3', which may represent +a combination of transformations. + + - Function: Transform scale (real X, [real Y = 1, [real Z = 1]]) + Creates a `Transform t' representing the scaling operation locally, + multiplies `*this' by `t', and returns `t'. A `Transform' + representing scaling only, when applied to a `Point p', will cause + its x-coordinate to be multiplied by X, its y-coordinate to be + multiplied by Y, and its z-coordinate to be multiplied by Z. + + `Transform t;' + `t.scale(X, Y, Z);' + + => `t.matrix' = + x 0 0 0 + 0 y 0 0 + 0 0 z 0 + 0 0 0 1 + + Transform t; + t.scale(12.5, 20, 1.3); + t.show("t:"); + -| t: + 12.5 0 0 0 + 0 20 0 0 + 0 0 1.3 0 + 0 0 0 1 + + - Function: Transform shear (real XY, [real XZ = 0, [real YX = 0, + [real YZ = 0, [real ZX = 0, [real ZY = 0]]]]]) + Creates a `Transform t' representing the shearing operation + locally, multiplies `*this' by `t', and returns `t'. + + When applied to a `Point', shearing causes each coordinate to be + modified according to the values of the other coordinates and the + arguments to `shear': + + Point p(x,y,z); + Transform t; + t.shear(a, b, c, d, e, f); + p *= t; + + => p = ((x + ay + bz), (y + cx + dz), (z + ex + fy)) + + Transform t; + t.shear(2, 3, 4, 5, 6, 7); + t.show("t:"); + -| t: + 1 4 6 0 + 2 1 7 0 + 3 5 1 0 + 0 0 0 1 + + + - Function: Transform shift (real X, [real Y = 0, [real Z = 0]]) + - Function: Transform shift (const Point& P) + These functions create a `Transform t' representing the shifting + operation locally, multiplies `*this' by `t', and returns `t'. + + The version with the argument `const Point&' P passes the updated + x, y, and z-coordinates of P (from `world_coordinates') to the + version with three `real' arguments. + + When a `Transform' representing a single shifting operation only + is applied to a `Point', the X, Y, and Z arguments are added to + the corresponding coordinates of the `Point': + + Point p(x,y,z); + Transform t; + t.shift(a, b, c); + p *= t; + + => p = (x + a, y + b, z + c) + + - Function: Transform shift_times (real X, [real Y = 1, [real Z = 1]]) + Multiplies the corresponding elements of `matrix' by the `real' + arguments, i.e., `matrix[3][0]' is multiplied by X, `matrix[3][1]' + is multiplied by Y, and `matrix[3][2]' is multiplied by Z. + Returns `*this'. + + Ordinary shifting is additive, so a special function is needed to + multiply the elements of `matrix' responsible for shifting. The + effect of `shift_times()' is to modify a `Transform' representing + a shifting operation such that the direction of the shift is + maintained, while changing the distance. + + If the `Transform' represents other operations in addition to + shifting, e.g., scaling and/or shearing, the effect of + `shift_times()' may be unpredictable.(1) + + Transform t; + t.shift(1, 2, 3); + + => `t.matrix' = + 1 0 0 0 + 0 1 0 0 + 0 0 1 0 + 1 2 3 1 + + t.shift_times(2, 2, 2); + + => `t.matrix' = + 1 0 0 0 + 0 1 0 0 + 0 0 1 0 + 2 4 6 1 + + Rectangle r[4]; + r[0].set(origin, 1, 1, 90); + r[3] = r[2] = r[1] = r[0]; + Transform t; + t.shift(1.5, 1.5); + r[0] *= t; + r[0].draw(); + t.shift_times(1.5, 1.5); + r[1] *= t; + r[1].draw(); + t.shift_times(1.5, 1.5); + r[2] *= t; + r[2].draw(); + t.shift_times(1.5, 1.5); + r[3] *= t; + r[3].draw(); + + Cuboid c(origin, 1, 1, 1); + c.draw(); + Transform t; + t.rotate(30, 30, 30); + t.shift(1, 0, 1); + c *= t; + c.draw(); + t.shift_times(1.5, 0, 1.5); + c *= t; + c.draw(); + t.shift_times(1.5, 0, 1.5); + c *= t; + c.draw(); + t.shift_times(1.5, 0, 1.5); + c *= t; + c.draw(); + t.shift_times(1.5, 0, 1.5); + c *= t; + c.draw(); + + + - Function: Transform rotate (real X, [real Y = 0, [real Z = 0]]) + Rotation around the main axes. Creates a `Transform t' + representing the rotation, multiplies `*this' by `t', and returns + `t'. + + - Function: Transform rotate (Point P0, Point P1, [const real ANGLE = + 180]) + Rotation around an arbitrary axis. The `Point' arguments represent + the end points of the axis, and ANGLE is the angle of rotation. + Since 180 degrees rotation is needed so often, 180 is the default + for ANGLE. + + - Function: Transform rotate (const Path& P, [const real ANGLE = 180]) + Rotation around an arbitrary axis. `Path' argument. The `Path' P + must be linear, i.e., `p.is_linear()' must return `true'. *Note + Path Reference; Querying: Querying Paths. + + ---------- Footnotes ---------- + + (1) For a person, not in the sense of the program behaving +unpredictably. + + +File: 3DLDF.info, Node: Alignment with an Axis for Transforms, Next: Resetting Transforms, Prev: Affine Transformations for Transforms, Up: Transform Reference + +Alignment with an Axis +====================== + + - Function: Transform align_with_axis (Point P0, Point P1, [char AXIS + = 'z']) + Returns the `Transform' that would align the line through P0 and + P1 with the major axis denoted by the AXIS argument. The default + is the z-axis. This function is used in the functions that find + intersections. + + Point P0(1, 1, 1); + Point P1(2, 3, 4); + P0.draw(P1); + P0.dotlabel("$P_0$"); + P1.dotlabel("$P_1$"); + Transform t; + t.align_with_axis(P0, P1, 'z'); + P0 *= P1 *= t; + t.show("t:"); + -| t: + 0.949 -0.169 0.267 0 + 0 0.845 0.535 0 + -0.316 -0.507 0.802 0 + -0.632 -0.169 -1.6 1 + P0.show("P0:"); + -| P0: (0, 0, 0) + P1.show("P1:"); + -| P1: (0, 0, 3.74) + + The following example shows how `align_with_axis()' can be used for + putting plane figures into a major plane. + + default_focus.set(2, 3, -10, 2, 3, 10, 10); + Circle c(origin, 3, 75, 25, 6); + c.shift(2, 3); + c.draw(); + Point n = c.get_normal(); + n.shift(c.get_center()); + Transform t; + t.align_with_axis(c.get_center(), n, 'y'); + t.show("t:"); + -| t: + 0.686 0.379 -0.621 0 + 0.543 0.3 0.784 0 + 0.483 -0.875 0 0 + -3 -1.66 -1.11 1 + n *= c *= t; + c.draw(); + c.show("c:"); + -| c: + fill_draw_value == 0 + (1.31, 0, -0.728) .. (1.49, 0, -0.171) .. + (1.44, 0, 0.413) .. (1.17, 0, 0.933) .. + (0.728, 0, 1.31) .. (0.171, 0, 1.49) .. + (-0.413, 0, 1.44) .. (-0.933, 0, 1.17) .. + (-1.31, 0, 0.728) .. (-1.49, 0, 0.171) .. + (-1.44, 0, -0.413) .. (-1.17, 0, -0.933) .. + (-0.728, 0, -1.31) .. (-0.171, 0, -1.49) .. + (0.413, 0, -1.44) .. (0.933, 0, -1.17) .. cycle; + n.show("n:"); + -| n: (0, 1, 0) + + + +File: 3DLDF.info, Node: Resetting Transforms, Next: Cleaning Transforms, Prev: Alignment with an Axis for Transforms, Up: Transform Reference + +Resetting +========= + + - Function: void reset (void) + Resets MATRIX to the identity matrix. + + +File: 3DLDF.info, Node: Cleaning Transforms, Prev: Resetting Transforms, Up: Transform Reference + +Cleaning +======== + + - Function: void clean (void) + Sets elements in MATRIX whose absolute values are < `epsilon()' to + 0. + + +File: 3DLDF.info, Node: Label Reference, Next: Picture Reference, Prev: Transform Reference, Up: Top + +Label Reference +*************** + + Class `Label' is defined in `pictures.web'. `Point' and `Picture' +are `friends' of `Label'. + + Labels can be included in drawings by using the `label()' and +`dotlabel()' functions, which are currently defined for the classes +`Point' and `Path', and the classes derived from them. *Note Point +Reference; Labelling: Labelling Points, and *Note Path Reference; +Labelling: Labelling Paths. They are currently not defined for +`Solid', and its derived classes. I plan to add them for `Solid' soon. + + Users will normally never need to declare objects of type `Label', +access its data members or call its member functions directly. + + When `label()' or `dotlabel()' is invoked, one or more `Labels' is +allocated dynamically and pointers to the new `Labels' are placed onto +the `vector labels' of a `Picture': `current_picture', by +default. There are no explicitly defined constructors for `Label', nor +is it intended that `Labels' ever be created in any way other than +through `label()' or `dotlabel()'. When a `Picture' is copied, the +`Labels' are copied, too, and when a `Picture' is cleared (using +`Picture::clear()') or destroyed, the `Labels' are deallocated and +destroyed. + +* Menu: + +* Label Data Members:: +* Copying Labels:: +* Outputting Labels:: + + +File: 3DLDF.info, Node: Label Data Members, Next: Copying Labels, Prev: Label Reference, Up: Label Reference + +Data Members +============ + + - Private variable: Point* pt + A pointer to the `Point' representing the location of the `Label'. + + - Private variable: bool dot + `true' if the label should be dotted, otherwise `false'. + + `dot' will be `false', if the label was generated by a call to + `label()' with the "`dot'" argument `false' (the default), `true', + if the label was generated by a call to `dotlabel()', or to + `label()' with the "`dot'" argument `true'. + + - Private variable: string text + The text of the label. TEXT is always put between "`btex'" and + "`etex'" in the MetaPost code, so that TeX will be used to format + the labels. In particular, this means that TeX's math mode can be + used. However, double backslashes must be used instead of single + backslashes, in order that single backslashes be written to + `out_stream'. + + Point P(1, 1, 2); + origin.drawarrow(P); + P.label("$\\vec{P}$"); + + + - Private variable: string position + The position of the text with respect to `*pt'. Valid values are + as in MetaPost: "top", "bot" (bottom), "lft" (left), "rt" (right), + "ulft" (upper left), "llft" (lower left), "urt" (upper right), + "lrt" (lower right). + + - Public static variable: bool DO_LABELS + Enables or disables creation of `Labels'. If `true', `label' and + `dotlabel()' cause `Labels' to be created and put onto a + `Picture'. If `false', they are not. Note that it is also + possible to suppress output of existing `Labels' when outputting a + `Picture'. + + +File: 3DLDF.info, Node: Copying Labels, Next: Outputting Labels, Prev: Label Data Members, Up: Label Reference + +Copying +======= + + - `const' Function: Label* get_copy (void) + Creates a copy of the `Label' and returns a pointer to the copy. + Called in `Picture::operator=()' and `Picture::operator+=()' where + `Pictures' are copied. Users should never need to call this + function directly. *Note Picture Reference; Operators: Picture + Operators. + + This function dynamically allocates a new `Label' and a new + `Point' within the `Label', and copies the `strings' from `*this' + to the new `Label'. The standard library functions for `strings' + take care of the allocation for the `string' members of `Label'. + + +File: 3DLDF.info, Node: Outputting Labels, Prev: Copying Labels, Up: Label Reference + +Outputting +========== + + - Function: void output (const Focus& F, const unsigned short PROJ, + real FACTOR, const Transform& T) + Writes MetaPost code for the labels to `out_stream'. It is called + in `Picture::output()' (*note Picture Reference; Outputting: + Outputting Pictures.). Users should never need to call this + function directly. + + When `Picture::output()' is invoked, the MetaPost code for + `Labels' is written to `out_stream' after the code for the drawing + and filling commands. This prevents the `Labels' from being + covered up. However, they can still be covered by other `Labels', + or by `Shapes' or `Labels' from subsequent invocations of + `Picture::output()' within the same figure (*note I/O Functions::, + for descriptions of `beginfig() and `endfig()''). + + +File: 3DLDF.info, Node: Picture Reference, Next: Point Reference, Prev: Label Reference, Up: Top + +Picture Reference +***************** + + Class `Picture' is defined in `pictures.web'. + +* Menu: + +* Picture Data Members:: +* Picture Global Variables:: +* Picture Constructors:: +* Picture Operators:: +* Affine Transformations for Pictures:: +* Modifying Pictures:: +* Showing Pictures:: +* Outputting Pictures:: + + +File: 3DLDF.info, Node: Picture Data Members, Next: Picture Global Variables, Prev: Picture Reference, Up: Picture Reference + +Data Members +============ + + - Private variable: Transform transform + Applied to the `Shapes' on the `Picture' when the latter is + output. It is initialized as the identity `Transform', and can be + modified by the transformation functions, by + `Picture::operator*=(const Transform&)' (*note Picture Reference; + Operators: Picture Operators.), and by `Picture::set_transform()' + (*note Picture Reference; Modifying: Modifying Pictures.). + + - Private variable: vector shapes + Contains pointers to the `Shapes' on the `Picture'. When a + drawing or filling function is invoked for a `Shape', a copy is + dynamically allocated and a pointer to the copy is placed onto + `shapes'. + + - Private variable: vector labels + Contains pointers to the `Labels' on the `Picture'. When a + `Point' is labelled, either directly or through a call to + `label()' or `dotlabel()' for another type of `Shape'(1), a + `Label' is dynamically allocated, the `Point' is copied to + `*Label::pt', and a pointer to the `Label' is placed onto `labels'. + + - Private variable: bool do_labels + Used for enabling or disabling output of `Labels' when outputting a + `Picture'. The default value is `true'. It is set to `false' by + using `suppress_labels()' and can be reset to `true' by using + `unsuppress_labels()'. *Note Picture Reference; Output Functions: + Picture Output Functions. + + Often, when a `Picture' is copied, transformed, and output again in + a single figure, it's undesirable to have the `Labels' output again + in their new positions. To avoid this, use `suppress_labels()' + after outputting the `Picture' the first time. + + ---------- Footnotes ---------- + + (1) `label()' and `dotlabel()' are currently only defined for +`Point' and `Path' (and the latter's derived classes), i.e., not for +`Solid' and its derived classes. + + +File: 3DLDF.info, Node: Picture Global Variables, Next: Picture Constructors, Prev: Picture Data Members, Up: Picture Reference + +Global Variables +================ + + - Variable: Variable Picture current_picture + The `Picture' used as the default by the drawing and filling + functions. + + +File: 3DLDF.info, Node: Picture Constructors, Next: Picture Operators, Prev: Picture Global Variables, Up: Picture Reference + +Constructors +============ + + - Default constructor: void Picture (void) + Creates an empty `Picture'. + + - Copy constructor: void Picture (const Picture& P) + Creates a copy of `Picture' P. + + Circle c(origin, 3); + c.draw(); + current_picture.output(Projections::PARALLEL_X_Z); + Picture new_picture(current_picture); + new_picture.shift(2); + new_picture.output(Projections::PARALLEL_X_Z); + + + +File: 3DLDF.info, Node: Picture Operators, Next: Affine Transformations for Pictures, Prev: Picture Constructors, Up: Picture Reference + +Operators +========= + + - Assignment operator: void operator= (const Picture& P) + Makes `*this' a copy of P, destroying the old contents of `*this'. + + - Operator: void operator+= (const Picture& P) + Adds the contents of P to `*this'. P remains unchanged. + + - Operator: void operator+= (Shape* S) + Puts S onto `shapes'. Note that the pointer S itself is put onto + `shapes', so any allocation and copying must be performed first. + This is a low-level function that users normally won't need to use + directly. + + - Operator: void operator+= (Label* LABEL) + Puts LABEL onto `labels'. Note that the pointer LABEL itself is + put onto `labels', so any allocation and copying must be performed + first. This is a low-level function that users normally won't + need to invoke directly. + + - Operator: Transform operator*= (const Transform& T) + Multiplies `transform' by T. This has the effect of transforming + all of the `Shapes' on `shapes' and all of the `Points' of the + `Labels' on `labels' by T upon output. + + Transform t; + t.rotate(0, 0, 180); + t.shift(3); + Reg_Polygon pl(origin, 5, 3, 90); + pl.draw(); + pl.label(); + current_picture.output(Projections::PARALLEL_X_Y); + current_picture *= t; + current_picture.output(Projections::PARALLEL_X_Y); + + + +File: 3DLDF.info, Node: Affine Transformations for Pictures, Next: Modifying Pictures, Prev: Picture Operators, Up: Picture Reference + +Affine Transformations +====================== + + The functions in this section all operate on the `transform' data +member of the `Picture' and return a `Transform' representing the +transformation--_not_ `transform'. + + - Function: Transform scale (real X, [real Y = 1, [real Z = 1]]) + Performs `transform.scale(X, Y, Z)' and returns the result. This + has the effect of scaling all of the elements of `shapes' and + `labels'. + + - Function: Transform shift (real x, [real Y = 0, [real Z = 0]]) + Performs `transform.shift(X, Y, Z)' and returns the result. This + has the effect of shifting all of the `Shapes' and `Labels' on the + `Picture'. + + - Function: Transform shift (const Point& P) + Performs `transform.shift(P)' and returns the result. This has + the effect of shifting all of the `Shapes' and `Labels' on the + `Picture' by the x, y, and z-coordinates of P. + + - Function: Transform rotate (const real X, [const real Y = 0, [const + real Z = 0]]) + Performs `transform.rotate(X, Y, Z)' and returns the result. This + has the effect of rotating all of the elements of `shapes' and + `labels'. + + - Function: Transform rotate (const Point& P0, const Point& P1, [const + real ANGLE = 180]); + Performs `transform.rotate(P0, P1, ANGLE)' and returns the result. + This has the effect of rotating all of the elements of `shapes' + and `labels' about the line from p_0 to p_1. + + +File: 3DLDF.info, Node: Modifying Pictures, Next: Showing Pictures, Prev: Affine Transformations for Pictures, Up: Picture Reference + +Modifying +========= + + - Function: void clear (void) + Destroys the `Shapes' and `Labels' on the `Picture' and removes + all the `Shape' pointers from `shapes' and the `Label' pointers + from `labels'. All dynamically allocated objects are deallocated, + namely the `Shapes', the `Labels', and the `Points' belonging to + the `Labels'. `transform' is reset to the identity `Transform'. + + - Function: void reset_transform (void) + Resets `transform' to the identity `Transform'. + + - Function: Transform set_transform (const Transform& T) + Sets `transform' to `t' and returns `t'. + + - Function: void kill_labels (void) + Removes the `Labels' from the `Picture'. + + +File: 3DLDF.info, Node: Showing Pictures, Next: Outputting Pictures, Prev: Modifying Pictures, Up: Picture Reference + +Showing +======= + + - Function: void show ([string TEXT = "", [bool STOP = `false']]) + Prints information about the `Picture' to standard output. + + `show()' first prints the string `"Showing Picture:"' to standard + output, followed by TEXT, if the latter is not the empty string + (`""')(1). Then it calls `transform.show()', prints the size of + `shapes' and `labels', and the value of `do_labels'. Then it calls + `show()' on each of the `Shapes' on `shapes'. Since `show()' is a + `virtual' function in `class Shape', the appropriate `show()' is + called for each `Shape', i.e., `Point::show()' for a `Point', + `Path::show()' for a `Path', etc. If STOP is `true', execution + stops and the user is requested to type to continue. + Finally, the string `"Done showing picture."' is printed to + standard output. + + - Function: void show_transform ([string TEXT = "Transform from + Picture:"]) + Calls `transform.show()', passing TEXT as the argument to the + latter function. + + ---------- Footnotes ---------- + + (1) Actually, it's printed to standard output even if it is the +empty string, you just don't see it. + + +File: 3DLDF.info, Node: Outputting Pictures, Prev: Showing Pictures, Up: Picture Reference + +Outputting +========== + +* Menu: + +* Picture Output Namespaces:: +* Picture Output Functions:: + + +File: 3DLDF.info, Node: Picture Output Namespaces, Next: Picture Output Functions, Prev: Outputting Pictures, Up: Outputting Pictures + +Namespaces +---------- + +* Menu: + +* Namespace Projections:: +* Namespace Sorting:: + + +File: 3DLDF.info, Node: Namespace Projections, Next: Namespace Sorting, Prev: Picture Output Namespaces, Up: Picture Output Namespaces + +Namespace Projections +..................... + + The namespace `Projections' is defined in `pictures.web'. + + - Constant: const unsigned short PERSP + - Constant: const unsigned short PARALLEL_X_Y + - Constant: const unsigned short PARALLEL_X_Z + - Constant: const unsigned short PARALLEL_Z_Y + - Constant: const unsigned short AXON + - Constant: const unsigned short ISO + These constants can be used for the PROJECTION argument in + `Picture::output()', described in *Note Picture Reference; + Outputting; Functions: Picture Output Functions, below. + + +File: 3DLDF.info, Node: Namespace Sorting, Prev: Namespace Projections, Up: Picture Output Namespaces + +Namespace Sorting +................. + + The namespace `Sorting' is defined in `pictures.web'. + + - Constant: const unsigned short NO_SORT + - Constant: const unsigned short MAX_Z + - Constant: const unsigned short MIN_Z + - Constant: const unsigned short MEAN_Z + These constants can be used for the SORT_VALUE argument in + `Picture::output()', described in *Note Picture Reference; + Outputting; Functions: Picture Output Functions, below. + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-5 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-5 --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-5 1970-01-01 01:00:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-5 2003-12-10 18:44:55.000000000 +0100 @@ -0,0 +1,1202 @@ +This is 3DLDF.info, produced by makeinfo version 4.5 from 3DLDF.texi. + +This is the 3DLDF User and Reference Manual, edition 1.1.4 for 3DLDF +1.1.4. This manual was last updated on 10 December 2003. 3DLDF is a +GNU package for three-dimensional drawing with MetaPost output. The +author is Laurence D. Finston. + + Copyright (C) 2003 Laurence D. Finston. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, and + no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License". + +INFO-DIR-SECTION GNU packages +START-INFO-DIR-ENTRY +* 3DLDF: (3DLDF). 3D drawing with MetaPost output. +END-INFO-DIR-ENTRY + + +File: 3DLDF.info, Node: Picture Output Functions, Prev: Picture Output Namespaces, Up: Outputting Pictures + +Output Functions +---------------- + + - Function: void output (const Focus& F, [const unsigned short + PROJECTION = `Projections::PERSP', [real FACTOR = 1, [const + unsigned short SORT_VALUE = `Sorting::MAX_Z', [const bool + DO_WARNINGS = `true', [const real MIN_X_PROJ = -40, [const + real MAX_X_PROJ = 40, [const real MIN_Y_PROJ = -40, [const + real MAX_Y_PROJ = 40, [const real MIN_Z_PROJ = -40, [const + real MAX_Z_PROJ = 40]]]]]]]]]]) + - Function: void output ([const unsigned short PROJECTION = + `Projections::PERSP', [real FACTOR = 1, [const unsigned short + SORT_VALUE = `Sorting::MAX_Z', [const bool DO_WARNINGS = + `true', [const real MIN_X_PROJ = -40, [const real MAX_X_PROJ + = 40, [const real MIN_Y_PROJ = -40, [const real MAX_Y_PROJ = + 40, [const real MIN_Z_PROJ = -40, [const real MAX_Z_PROJ = + 40]]]]]]]]]]) + These functions create a two-dimensional projection of the objects + on the `Picture' and write MetaPost code to `out_stream' for + drawing it. + + The arguments: + + `const Focus&' F + The `Focus' used for projection, also known as the center of + projection, or the camera. This argument is used in the + first version only. The second version, without a `const + Focus&' F argument, merely calls the first version and passes + it the global variable `default_focus' as its first argument, + so `default_focus' is effectively the default for F. + Defining two versions in this way makes it possible to call + `output()' with `projection' as its first (and possibly only) + argument. If instead, F were an optional argument with + `default_focus' as its default, this wouldn't have been + possible. It also wouldn't be possible to have F have a + default in the first version, and to retain the second + version, because the compiler wouldn't be able to resolve a + call to `output()' with no arguments. + + `const unsigned short' PROJECTION + Default: `Projections::PERSP'. The type of projection. + Valid values are `const unsigned shorts' defined in + `namespace Projections' (*note Namespace Projections::): + `PERSP' for the perspective projection, + `PARALLEL_X_Y' for parallel projection onto the x-y plane, + `PARALLEL_X_Z' for parallel projection onto the x-z plane, and + `PARALLEL_Z_Y' for parallel projection onto the z-y plane. + %% !! TO DO: I plan to add isometric and axionometric + projections soon. + + `real' FACTOR + Default: 1. Passed from `output()' to `extract()' and from + there to `project()'. The `world_coordinates' of the + `Points' that are projected are multiplied by FACTOR, which + enlarges or shrinks the projected image without altering the + `Picture' itself. FACTOR is probably most useful for + parallel projections, where the `Focus' F isn't used; with a + perspective projection, the parameters of the `Focus' can be + used to influence the size of the projected image. + + `const unsigned short' SORT_VALUE + Default: `Sorting::MAX_Z'. The value used should be one of + the constants defined in `namespace Sorting', *Note Namespace + Sorting::, above. If `MAX_Z' (the default) is used, the + `Shapes' on the `Picture' are sorted according to the maximum + z-value of the `projective_extremes' of the `Points' + belonging to the `Shape'. If `MIN_Z' is used, they are + sorted according to the minimum z-value, and if `MEAN_Z' is + used, they are sorted according to the mean of the maximum + and minimum z-values. If `NO_SORT' is used, the `Shapes' are + output in the order in which they were put onto the `Picture'. + + The surface hiding algorithm implemented in 3DLDF is quite + primitive, and doesn't always work right. For `Shapes' that + intersect, it _can't_ work right. I plan to work on + improving the surface hiding algorithm soon. This is not a + trivial problem. To solve it properly, each `Shape' on a + `Picture' must be tested for intersection with every other + `Shape' on the `Picture'. If two or more `Shapes' intersect, + they must be broken up into smaller objects until there are + no more intersections. I don't expect to have a proper + solution soon, but I expect that I will be able to make some + improvements. *Note Surface Hiding::. + + `const bool' DO_WARNINGS + Default: `true'. If `true', `output()' issues warnings to + `stderr' (standard error output) if a `Shape' cannot be + output because it lies outside the limits set by the + following arguments. Sometimes, a user may only want to + project a portion of a `Picture', in which case such warnings + would not be helpful. In this case, DO_WARNINGS should be + `false'. + + `const real' MIN_X_PROJ + Default: -40. The minimum x-coordinate of the projection of a + `Shape' such that the `Shape' can be output. If + `projective_coordinates[0]' of any `Point' on a `Shape' is + less than MIN_X_PROJ, the `Shape' will not be projected at + all. + + `const real' MAX_X_PROJ + Default: 40. The maximum x-coordinate of the projection of a + `Shape' such that the `Shape' can be output. If + `projective_coordinates[0]' of any `Point' on a `Shape' is + greater than MAX_X_PROJ, the `Shape' will not be projected at + all. + + `const real' MIN_Y_PROJ + Default: -40. The minimum y-coordinate of the projection of a + `Shape' such that the `Shape' can be output. If + `projective_coordinates[1]' of any `Point' on a `Shape' is + less than MIN_Y_PROJ, the `Shape' will not be projected at + all. + + `const real' MAX_Y_PROJ + Default: 40. The maximum y-coordinate of the projection of a + `Shape' such that the `Shape' can be output. If + `projective_coordinates[1]' of any `Point' on a `Shape' is + greater than MAX_Y_PROJ, the `Shape' will not be projected at + all. + + `const real' MIN_Z_PROJ + Default: -40. The minimum z-coordinate of the projection of a + `Shape' such that the `Shape' can be output. If + `projective_coordinates[2]' of any `Point' on a `Shape' is + less than MIN_Z_PROJ, the `Shape' will not be projected at + all. + + `const real' MAX_Z_PROJ + Default: 40. The maximum z-coordinate of the projection of a + `Shape' such that the `Shape' can be output. If + `projective_coordinates[2]' of any `Point' on a `Shape' is + greater than MAX_Z_PROJ, the `Shape' will not be projected at + all. + + - Function: void suppress_labels (void) + Suppresses output of the `Labels' on a `Picture' when `output()' + is called. This can be useful when a `Picture' is output, + transformed, and output again, one or more times, in a single + figure. Usually, it will not be desirable to have the `Labels' + output more than once. + + In [next figure] , `current_picture' is output three times, but the + `Labels' on it are only output once. + + Ellipse e(origin, 3, 5); + e.label(); + e.draw(); + Point pt0(-3); + Point pt1(3); + pt0.draw(pt1); + Point pt2(0, 0, -4); + Point pt3(0, 0, 4); + pt2.draw(pt3); + pt0.dotlabel("0", "lft"); + pt1.dotlabel("1", "rt"); + pt2.dotlabel("2", "bot"); + pt3.dotlabel("3"); + current_picture.output(Projections::PARALLEL_X_Z); + current_picture.rotate(0, 60); + current_picture.suppress_labels(); + current_picture.output(Projections::PARALLEL_X_Z); + current_picture.rotate(0, 60); + current_picture.output(Projections::PARALLEL_X_Z); + + + - Inline function: void unsuppress_labels (void) + Sets `do_labels' to `true'. If a `Picture' contains `Labels', + `unsuppress_labels()' ensures that they will be output, when + `Picture::output()' is called, so long as there is no intervening + call to `suppress_labels()' or `kill_labels()'. + + +File: 3DLDF.info, Node: Point Reference, Next: Focus Reference, Prev: Picture Reference, Up: Top + +Point Reference +*************** + + Class `Point' is defined in `points.web'. It is derived from +`Shape' using `protected' derivation. The function `Transform +Transform::align_with_axis(Point, Point, char)' is a `friend' of +`Point'. + +* Menu: + +* Point Data Members:: +* Point Typedefs and Utility Structures:: +* Point Global Constants and Variables:: +* Point Constructors and Setting Functions:: +* Point Destructor:: +* Point Operators:: +* Copying Points:: +* Querying Points:: +* Returning Coordinates:: +* Returning Information for Points:: +* Modifying Points:: +* Affine Transformations for Points:: +* Applying Transformations to Points:: +* Projecting Points:: +* Vector Operations:: +* Points and Lines:: +* Point Intersections:: +* Point Drawing Functions:: +* Labelling Points:: +* Showing Points:: +* Outputting Points:: + + +File: 3DLDF.info, Node: Point Data Members, Next: Point Typedefs and Utility Structures, Prev: Point Reference, Up: Point Reference + +Data Members +============ + + - Private variable: valarray world_coordinates + The set of four homogeneous coordinates x, y, z, and w that + represent the position of the `Point' within 3DLDF's global + coordinate system. + + - Private variable: valarray projective_coordinates + The set of four homogeneous coordinates x, y, z, and w that + represent the position of the _projection_ of the `Point' onto a + two-dimensional plane for output. The x and y values are used in + the MetaPost code written to `out_stream'. The z value is used in + the hidden surface algorithm (which is currently rather primitive + and doesn't work very well. *note Surface Hiding::). The w value + can be != 1 , depending on the projection used; the perspective + projection is non-affine, so w can take on other values. + + - Private variable: valarray user_coordinates + A set of four homogeneous coordinates x, y, z, and w. + + `user_coordinates' currently has no function. It is intended for + use in user-defined coordinate systems. For example, a coordinate + system could be defined with respect to a plane surface that isn't + parallel to one of the major planes. Such a coordinate system + would be convenient for drawing on the plane. A `Transform' would + make it possible to convert between `user_coordinates' and + `world_coordinates'. + + - Private variable: valarray view_coordinates + A set of four homogeneous coordinates x, y, z, and w. + + `view_coordinates' currently has no function. It may be useful for + displaying multiple views in an interactive graphical user + interface, or for some other purpose. + + - Private variable: Transform transform + Contains the product of the transformations applied to the `Point'. + When `apply_transform()' is called for the `Point', directly or + indirectly, the `world_coordinates' are updated and `transform' is + reset to the identity `Transform'. *Note Point Reference; + Applying Transformations: Applying Transformations to Points. + + - Private variable: bool on_free_store + Indicates whether a `Point' has been dynamically allocated on the + free store or not. `Points' should only ever be dynamically + allocated by `create_new_point()', which sets `on_free_store' to + `true'. + + - Private variable: signed short drawdot_value + Used to tell `Point::output()' what MetaPost drawing command + (`drawdot()' or `undrawdot()') to write to `out_stream' when + outputting a `Point'. + + When `drawdot()' or `undrawdot()' is called on a `Point', the + `Point' is copied and put onto the `Picture', which was passed to + `drawdot()' or `undrawdot()' as an argument (`current_picture' by + default). `drawdot_value' is either set to `Shape::DRAWDOT' or + `Shape::UNDRAWDOT' on the copy; `this->drawdot' is not set. + + - Private variable: const Color* drawdot_color + Used to tell `Point::output()' what string to write to `out_stream' + for the color when outputting a `Point'. + + - Private variable: string pen + Used to tell `Point::output()' what string to write to `out_stream' + for the pen when outputting a `Point'. + + - Protected variable: valarray projective_extremes + A set of 6 `real' values indicating the maximum and minumum x, y, + and z-coordinates of the `Point'. Used for determining whether a + `Point' is projectable with the parameters of a particular + invocation of `Picture::output()'. *Note Picture Reference; + Outputting: Outputting Pictures. + + Obviously, the maxima and minima will always be the same for a + `Point', namely the x, y, and z-coordinates. However, + `set_extremes()' and `get_extremes()', the functions that access + `projective_extremes', are pure virtual functions in `class Shape', + so the `Point' versions must be consistent with the versions for + other types derived from `Shape'. + + - Protected variable: bool do_output + `true' by default. Set to `false' by `suppress_output()', which + is called on a `Shape' by `Picture::output()', if the `Shape' is + not projectable. *Note Picture Reference; Outputting: Outputting + Pictures. + + - Public static variable: string measurement_units + The unit of measurement for all distances within a `Picture', + `"cm"' (for centimeters) by default. The x and y-coordinates of + the projected `Points' are always followed by `measurement_units' + when they're written to `out_stream'. Unlike Metafont, units of + measurement cannot be indicated for individual coordinates. Nor + can `measurement_unit' be changed within a `Picture'. + + When I write an input routine, I plan to make it behave the way + Metafont does, however, 3DLDF will probably also convert all of + the input values to a standard unit, as Metafont does. + + - Public static variable: real CURR_Y + - Public static variable: real CURR_Z + Default values for the y and z-coordinate of `Points', when the + x-coordinate, or the x and y-coordinates only are specified. Both + are 0 by default. + + These values only used in the constructor and setting function + taking one required `real' value (for the x-coordinate), and two + optional `real' values (for the y and z-coordinates). They are + not used when a `Point' is declared using the default constructor + with no arguments. In this case, the x, y, and z-coordinates will + all be 0. *Note Point Reference; Constructors and Setting + Functions: Point Constructors and Setting Functions. + + Point A(1); + A.show("A:"); + -| A: (1, 0, 0); + CURR_Y = 5; + A.set(2); + A.show("A:"); + -| A: (2, 5, 0); + CURR_Z = 12; + Point B(3); + B.show("B:"); + -| B: (3, 5, 12); + Point C; + C.show("C:"); + -| C: (0, 0, 0); + + +File: 3DLDF.info, Node: Point Typedefs and Utility Structures, Next: Point Global Constants and Variables, Prev: Point Data Members, Up: Point Reference + +Typedefs and Utility Structures +=============================== + + - typedef: point_pair first second + Synonymous with `pair'. + + - struct: bool_point b pt + `b' is a `bool' and `pt' is a `Point'. `bool_point' also contains + two constructors and an assignment operator, described below. + + - Default constructor: void bool_point (void) + Creates a `bool_point' and sets `b' to `false' and `pt' to + `INVALID_POINT'. + + - Default constructor: void bool_point (bool BB, const Point& PPT) + Creates a `bool_point' and sets `b' to BB and `pt' to PPT. + + - Assignment operator: void bool_point::operator= (const bool_point& + BP) + Sets `b' to BP.`b' and `pt' to BP.`pt'. + + - typedef: bool_point_pair first second + Synonymous with `pair '. + + - struct: bool_point_quadruple first second third fourth + This structure contains four `bool_points'. It also has two + constructors and an assignment operator, described below. + + - Default constructor: void bool_point_quadruple (void) + Creates a `bool_point_quadruple', and sets `first', `second', + `third', and `fourth' all to `INVALID_BOOL_POINT'. + + - Constructor: void bool_point_quadruple (bool_point A, bool_point B, + bool_point C, bool_point D) + Creates a `bool_point_quadruple' and sets `first' to A, `second' + to B, `third' to C, and `fourth' to D. + + - Assignment operator: void bool_point_quadruple::operator= (const + bool_point_quadruple& ARG) + Makes `*this' a copy of ARG. + + - struct: bool_real_point b r pt + `b' is a `bool', `r' is a `real', and `pt' is a `Point'. + `bool_real_point' also contains three constructors and an + assignment operator, described below. + + - Default constructor: void bool_real_point (void) + Creates a `bool_real_point' and sets `b' to `false', `r' to + `INVALID_REAL' and `pt' to `INVALID_POINT'. + + - Copy constructor: void bool_real_point (const bool_real_point& BRP) + Creates a `bool_real_point' and sets `b' to BRP.`b', `r' to + BRP.`r', and `pt' to BRP.`pt'. + + - Constructor: void bool_real_point (const bool& BB, const real& RR, + const Point& PPT) + Creates a `bool_real_point' and sets `b' to BB, `r' to RR, and + `pt' to PPT. + + - Assignment operator: void bool_real_point::operator= (const + bool_real_point& BRP) + Makes `*this' a copy of BRP. + + +File: 3DLDF.info, Node: Point Global Constants and Variables, Next: Point Constructors and Setting Functions, Prev: Point Typedefs and Utility Structures, Up: Point Reference + +Global Constants and Variables +============================== + + - Constant: Point INVALID_POINT + The x, y, and z-values in `world_coordinates' are all + `INVALID_REAL'. + + - Constant: Point origin + The x, y, and z-values in `world_coordinates' are all 0. + + - Constant: bool_point INVALID_BOOL_POINT + `b' is `false' and `pt' is `INVALID_POINT'. + + - Constant: bool_point_pair INVALID_BOOL_POINT_PAIR + `first' and `second' are both `INVALID_BOOL_POINT'. + + - Constant: bool_real_point INVALID_BOOL_REAL_POINT + `b' is `false', `r' is `INVALID_REAL', and `pt' is `INVALID_POINT'. + + - Constant: bool_point_quadruple INVALID_BOOL_POINT_QUADRUPLE + `first', `second', `third', and `fourth' are all + `INVALID_BOOL_POINT'. + + +File: 3DLDF.info, Node: Point Constructors and Setting Functions, Next: Point Destructor, Prev: Point Global Constants and Variables, Up: Point Reference + +Constructors and Setting Functions +================================== + + - Default constructor: void Point (void) + Creates a `Point' and initializes its x, y, and z-coordinates to 0. + + - Constructor: void Point (const real X, [const real Y = `CURR_Y', + [const real Z = `CURR_Z']]) + Creates a `Point' and initializes its x, y, and z-coordinates to + the values of the arguments X, Y, and Z. The arguments Y and Z + are optional. If they are not specified, the values of `CURR_Y' + and `CURR_Z' are used. They are 0 by default, but can be changed + by the user. This can be convenient, if all of the `Points' being + drawn in a particular section of a program have the same z or y + and z values. + + - Setting function: void set (const real X, [const real Y = `CURR_Y', + [const real Z = `CURR_Z']]) + Corresponds to the constructor above, but is used for resetting + the coordinates of an existing `Point'. + + - Copy constructor: void Point (const Point& P) + Creates a `Point' and copies the values for its x, y, and + z-coordinates from P. + + - Setting function: void set (const Point& P) + Corresponds to the copy constructor above, but is used for + resetting the coordinates of an existing `Point'. This function + exists purely as a convenience; the operator `operator=()' (*note + Point Reference; Operators: Point Operators.) performs exactly the + same function. + + - Static function: Point* create_new_point ([const Point* P = 0]) + - Static function: Point* create_new_point (const Point& P) + - Static function: Point* create_new_point (const real X, [const real + Y = 0, [const real Z = 0]]) + Pseudo-constructors for dynamic allocation of `Points'. These + functions create a `Point' on the free store and allocate memory + for it using `new(Point)'. They return a pointer to the new + `Point'. One use is in the constructors for `classes' of objects + that can contain a variable number of `Points', such as `Path' and + `Polygon'. Another use is in the drawing and filling functions, + where objects are copied and the copies put onto a `Picture'. + + Programmers who dynamically allocate `Points' must ensure that they + are deallocated properly using `delete'! + + In the first version, the optional argument P can be a pointer to + `Point'. If an argument is present, the x, y, and z-coordinates + of the new `Point' are copied from `*p' (after they've been + updated, if necessary). Otherwise, they are all set to 0. + + In the second version, P is a reference to a `Point', and the x, + y, and z-coordinates of the new `Point' are copied from P. + + In the third version, at least one `real' value is passed as an + argument. The coordinates of the new `Point' are set using the + values of the arguments X, Y, and Z. Please note, that if Z or Y + and Z are not specified, the corresponding coordinates are set to + 0, not `CURR_Y' or `CURR_Z'. + + +File: 3DLDF.info, Node: Point Destructor, Next: Point Operators, Prev: Point Constructors and Setting Functions, Up: Point Reference + +Destructor +========== + + - `virtual' Destructor: void ~Point (`void') + This function currently has an empty definition, but its existence + prevents GCC 3.3 from issuing the following warning: "`class + Point' has virtual functions but non-virtual destructor". + + +File: 3DLDF.info, Node: Point Operators, Next: Copying Points, Prev: Point Destructor, Up: Point Reference + +Operators +========= + + - Assignment operator: void operator= (const Point& P) + Makes `*this' a copy of P. + + - Operator: Transform operator*= (const Transform& T) + Multiplies `transform' by T. By multiplying a `Point' + successively by one or more `Transforms', the effect of the + transformations is "saved up" in `transform'. Only when an + operation that needs updated values for the `world_coordinates' is + called on a `Point', or the `Point' is passed as an argument to + such an operation, is the transformation stored in `transform' + applied to `world_coordinates' by `apply_transform()', which + subsequently, resets `transform' to the identity `Transform'. + *Note Point Reference; Applying Transformations: Applying + Transformations to Points. + + - `const' operator: Point operator+ (Point P) + Returns a `Point' with `world_coordinates' that are the sums of + the corresponding `world_coordinates' of `*this' and P, after + they've been updated. `*this' remains unchanged; as in many other + functions with `Point' arguments, P is passed by value, because + `apply_transform()' must be called on it, in order to update its + `world_coordinates'. If P were a `const Point&', it would have to + copied within the function anyway, because `apply_transform()' is + a non-`const' operation. + + Point p0(-2, -6, -28); + Point p1(3, 14, 92); + Point p2(p0 + p1); + p2.show("p2:"); + -| p2: (1, 8, 64) + + + - Operator: void operator+= (Point P) + Adds the updated `world_coordinates' of P to those of `*this'. + Equivalent in effect to `shift(P)' In fact, this function merely + calls `p.apply_transform()' and `Point::shift(real, real, real)' + with P's x, y, and z coordinates (from `world_coordinates') as its + arguments. *Note Point Reference; Affine Transformations: Affine + Transformations for Points. + + - `const' operator: Point operator- (Point P) + Returns a `Point' with `world_coordinates' representing the + difference between the updated values of `this->world_coordinates' + and P`.world_coordinates'. + + - Operator: void operator-= (Point P) + Subtracts the updated values of P`.world_coordinates' from those + of `this->world_coordinates'. + + - Operator: real operator*= (const real R) + Multiplies the updated x, y, and z coordinates + (`world_coordinates') of the `Point' by R and returns R. This + makes it possible to chain invocations of this function. + + If `P' is a `Point' then `P *= R' is equivalent in its effect to + `P.scale(R, R, R)', except that `P.world_coordinates' is modified + directly and immediately, without changing `P.transform'. This is + possible, because this function calls `apply_transform()' to + update the `world_coordinates' before multiplying them `r', so + `transform' is the identity `Transform'. + + Point P(1, 2, 3); + P *= 7; + P.show("P:"); + -| P: (7, 14, 21); + Point Q(1.5, 2.7, 13.82); + Q *= P *= -1.28; + P.show("P:"); + -| P: (-8.96, -17.92, -26.88) + Q.show("Q:"); + -| Q: (-1.92, -3.456, -17.6896) + + - `const' operator: Point operator* (const real R) + Returns a `Point' with x, y, and z coordinates + (`world_coordinates') equal to the updated x, y, and z coordinates + of `*this' multiplied by R. + + - Non-member operator: Point operator* (const real R, const Point& P) + Equivalent to `Point::operator*(const real R)' (see above), but + with R placed first. + Point p0(10, 11, 12); + real r = 2.5; + Point p1 = r * p0; + p1.show(); + -|Point: + -|(25, 27.5, 30) + + + - `const' operator: Point operator- (void) + Unary minus (prefix). Returns a `Point' with x, y, and z + coordinates (`world_coordinates') equal to the the x, y, and + z-coordinates (`world_coordinates') of `*this' multiplied by -1. + + - Operator: void operator/= (const real R) + Divides the updated x, y, and z coordinates (`world_coordinates') + of the `Point' by R. + + - `const' operator: Point operator/ (const real R) + Returns a `Point' with x, y, and z coordinates + (`world_coordinates') equal to the updated x, y, and z coordinates + of `*this' divided by R. + + - Operator: bool operator== (Point P) + - `const' operator: bool operator== (const Point& P) + Equality comparison for `Points'. These functions return `true' + if the updated values of the `world_coordinates' of the two + `Points' differ by less than the value returned by + `Point::epsilon()', otherwise `false'. *Note Point Reference; + Returning Information: Returning Information for Points. + + - `const' operator: bool operator!= (const Point& P) + Inequality comparison for `Points'. Returns `false' if `*this == + P', otherwise `true'. + + +File: 3DLDF.info, Node: Copying Points, Next: Querying Points, Prev: Point Operators, Up: Point Reference + +Copying +======= + + - `const' function: Shape* get_copy (void) + Creates a copy of the `Point', and allocates memory for it on the + free store using `create_new_point()'. It returns a pointer to + `Shape' that points to the new `Point'. This function is used in + the drawing commands for putting `Points' onto `Pictures'. *Note + Point Reference; Drawing: Point Drawing Functions. + + +File: 3DLDF.info, Node: Querying Points, Next: Returning Coordinates, Prev: Copying Points, Up: Point Reference + +Querying +======== + + - `inline' function: bool is_identity (void) + Returns `true' if `transform' is the identity `Transform'. + + - `const' inline function: Transform get_transform (void) + Returns `transform'. + + - `const' inline function: bool is_on_free_store (void) + Returns `true' if memory for the `Point' has been dynamically + allocated on the free store, i.e., if the `Point' has been created + using `create_new_point()'. + + - `const' function: bool is_on_plane (const Plane& P) + Returns `true', if the `Point' lies on the `Plane' P, otherwise + `false'. + + Planes are conceived of as having infinite extension, so while the + `Point' C in [next figure] does not lie within the `Rectangle' r, + it does lie on q, so `C.is_on_plane(q)' returns `true'.(1) + + Point P(1, 1, 1); + Rectangle r(P, 4, 4, 20, 45, 35); + Plane q = r.get_plane(); + Point A(2, 0, 2); + Point B(2, 1.64143, 2); + Point C(0.355028, 2.2185, 6.48628); + cout << A.is_on_plane(q); + -| 0 + cout << B.is_on_plane(q); + -| 1 + cout << "C.is_on_plane(q)"; + -| 1 + + + - `const' function: bool is_in_triangle (const Point& P0, const Point& + P1, const Point& P2, [bool VERBOSE = `false', [bool + TEST_POINTS = `true']]) + Returns `true', if `*this' lies within the triangle determined by + the three `Point' arguments, otherwise `false'. + + If the code calling `is_in_triangle()' has ensured that p_0, p_1, + and p_2 determine a plane, i.e., that they are not colinear, and + that `*this' lies in that plane, then `false' can be passed to + `is_in_triangle()' as its TEST_POINTS argument. + + If the VERBOSE argument is `true', information resulting from the + execution of the function are printed to standard output or + standard error. + + This function is needed for determining whether a line intersects + with a polygon. + + ---------- Footnotes ---------- + + (1) It's unlikely that `Points' will lie on a `Plane', unless the +user constructs the case specially. In [next figure] , the coordinates +for B and C were found by using `Plane::intersection_point()'. *Note +Planes; Intersections: Plane Intersections. + + +File: 3DLDF.info, Node: Returning Coordinates, Next: Returning Information for Points, Prev: Querying Points, Up: Point Reference + +Returning Coordinates +===================== + + The functions in this section return either a single coordinate or a +set of coordinates. Each has a `const' and a non-`const' version. + + The arguments are the same, with one exception: + +`CHAR' C + Only in `get_coord()'. Indicates which coordinate should be + returned. Valid values are `'x'', `'X'', `'y'', `'Y'', `'z'', + `'Z'', `'w'', and `'W''. + +`CHAR COORDS' + Indicates the set of coordinates which should be returned or from + which the coordinate to be returned should be chosen from. Valid + values are `'w'' for `world_coordinates' (the default), `'p'' for + `projective_coordinates', `'u'' for `user_coordinates', and `'v'' + for `view_coordinates'. + +`CONST BOOL' DO_PERSP + Only relevant if `projective_coordinates', or one of its elements + is to be returned. If `true', the default, then `project()' is + called, thereby generating values for `projective_coordinates'. + If DO_PERSP is `false', then `projective_coordinates', or one of + its elements, is returned unchanged, which may sometimes be useful. + +`CONST BOOL' DO_APPLY + If `true' (the default), `apply_transform()' is called, thereby + updating the `world_coordinates'. Otherwise, it's not, so that + the values stored in `world_coordinates' remain unchanged. Note + that if COORDS is `'p'' and DO_PERSP is `true', + `apply_transform()' will be called in `project()' whether + `do_apply' is `true' or `false'. If for some reason, one wanted + get `projective_coordinates', or one of its values, based on the + projection of `world_coordinates' without first updating them, one + would have to call `reset_transform()' before calling one of these + functions. It would probably be a good idea to save `transform' + before doing so. + +`FOCUS*' F + Indicates what `Focus' is to be used for projection. Only + relevant if `coords' is `'p'', i.e., `projective_coordinates', or + one of its elements, is to be returned. The default is 0, in + which case F points to the global variable `default_focus'. + +`CONST UNSIGNED SHORT' PROJ + Indicates what form of projection is to be used. Only relevant if + `coords' is `'p'', i.e., `projective_coordinates', or one of its + elements, is to be returned. The default is `Projections::PERSP', + which causes the perspective projection to be applied. + +`REAL' FACTOR + Passed to `project()'. The values of the x and y coordinates in + `projective_coordinates' are multiplied by FACTOR. Only relevant + if `coords' is `'p'', i.e., `projective_coordinates', or one of + its elements, is to be returned. The default is 1. + + - Function: valarray get_all_coords ([char COORDS = 'w', [const + bool DO_PERSP = true, [const bool DO_APPLY = true, [Focus* F + = 0, [const unsigned short PROJ = Projections::PERSP, [real + factor = 1]]]]]]) + Returns one of the sets of coordinates; `world_coordinates' by + default. Returns a complete set of coordinates: `'w'' for + `world_coordinates', `'p'' for `projective_coordinates', `'u'' for + `user_coordinates', or`'v'' for `view_coordinates'. + + - Function: real get_coord (char C, [char COORDS = 'w', [const bool + DO_PERSP = true, [const bool DO_APPLY = true, [Focus* F = 0, + [const unsigned short PROJ = `Projections::PERSP', [real + FACTOR = 1]]]]]]) + Returns one `coordinate', x, y, z, or w, from the set of + coordinates indicated (or `world_coordinates', by default). + + - Function: real get_x ([char COORDS = 'w', [const bool DO_PERSP = + true, [const bool DO_APPLY = true, [Focus* F = 0, [const + unsigned short PROJ = Projections::PERSP, [real FACTOR = + 1]]]]]]) + Returns the x-coordinate from the set of coordinates indicated (or + `world_coordinates', by default). + + - Function: real get_y ([char COORDS = 'w', [const bool DO_PERSP = + true, [const bool DO_APPLY = true, [Focus* F = 0, [const + unsigned short PROJ = Projections::PERSP, [real FACTOR = + 1]]]]]]) + Returns the y-coordinate from the set of coordinates indicated (or + `world_coordinates', by default). + + - Function: real get_z ([char COORDS = 'w', [const bool DO_PERSP = + true, [const bool DO_APPLY = true, [Focus* F = 0, [const + unsigned short PROJ = Projections::PERSP, [real FACTOR = + 1]]]]]]) + Returns the z-coordinate from the set of coordinates indicated (or + `world_coordinates', by default). + + - Function: real get_w ([char COORDS = 'w', [const bool DO_PERSP = + true, [const bool DO_APPLY = true, [Focus* F = 0, [const + unsigned short PROJ = Projections::PERSP, [real FACTOR = + 1]]]]]]) + Returns the w-coordinate from the set of coordinates indicated (or + `world_coordinates', by default). + + +File: 3DLDF.info, Node: Returning Information for Points, Next: Modifying Points, Prev: Returning Coordinates, Up: Point Reference + +Returning Information +===================== + + - Inline static function: real epsilon (void) + Returns the absolute value of the `real' number of smallest + magnitude that should be used as a coordinate value in a `Point'. + This value is also used for testing the equality of `Points': + + Let e be the value returned by `epsilon()', P and Q be `Points', + and P_x, Q_x, P_y, Q_y, P_z, and Q_z the updated x, y, and + z-coordinates of P and Q, respectively. If and only if ||P_x| - + |Q_x|| < e$, $||P_y| - |Q_y|| < e, and ||P_z| - |Q_z|| < e, then P + == Q. + + +File: 3DLDF.info, Node: Modifying Points, Next: Affine Transformations for Points, Prev: Returning Information for Points, Up: Point Reference + +Modifying +========= + + - `inline' virtual function: bool set_on_free_store ([bool B = true]) + This function was intended to be used in the template function + `create_new()', which I haven't been able to get to work yet. + Otherwise, there is currently no need for it. + + - Function: void clear (void) + Sets all of the coordinates in all of the sets of coordinates + (i.e., `world_coordinates', `user_coordinates', + `view_coordinates', and `projective_coordinates') to 0 and resets + `transform' + + - Function: void clean ([int FACTOR = 1]) + Calls `apply_transform()' and sets the values of + `world_coordinates' to 0, whose absolute values are less than + `epsilon()' * FACTOR . + + - Function: void reset_transform (void) + Sets `Transform' to the identity `Transform'. Performed in + `apply_transform()', after the latter updates `world_coordinates'. + *Note Point Reference; Applying Transformations: Applying + Transformations to Points. + + +File: 3DLDF.info, Node: Affine Transformations for Points, Next: Applying Transformations to Points, Prev: Modifying Points, Up: Point Reference + +Affine Transformations +====================== + + - Function: Transform rotate (const real X, [const real Y = 0, [const + real Z = 0]]) + - Function: Transform rotate (const Point& P0, const Point& P1, [const + real ANGLE = 180]) + - Function: Transform rotate (const Path& P, [const real ANGLE = 180]) + Each of these functions calls the corresponding version of + `Transform::rotate()', and returns its return value, namely, a + `Transform' representing the rotation only. + + In the first version, taking three `real' arguments, the `Point' + is rotated X degrees around the x-axis, Y degrees around the + y-axis, and Z degrees around the z-axis in that order. + + Point p0(1, 0, 2); + p0.rotate(90); + p0.show("p0:") + -| p0: (1, 2, 0) + Point p1(-1, 1, 1); + p1.rotate(-90, 90, 90); + p1.show("pt1:"); + -| p1: (1, -1, -1) + + Please note that rotations are not commutative operations. Nor + are they commutative with other transformations. So, if you want + to rotate a `Point' about the x, y and z-axes in that order, you + can do so with a single invocation of `rotate()', as in the + previous example. However, if you want to rotate a `Point' first + about the y-axis and then about the x-axis, you must invoke + `rotate()' twice. + + Point pt0(1, 1, 1); + pt0.rotate(0, 45); + pt0.rotate(45); + pt0.show("pt0:"); + -| pt0: (0, 1.70711, 0.292893) + + In the version taking two `Point' arguments P0 and P1, and a + `real' argument ANGLE, the `Point' is rotated `angle' degrees + around the axis determined by P0 and P1, 180 degrees by default. + + Point P(2, 0, 0); + Point A; + Point B(2, 2, 2); + P.rotate(A, B, 180); + + + - Function: Transform scale (real X, [real Y = 1, [real Z = 1]]) + Calls `transform.scale(X, Y, Z)' and returns its return value, + namely, a `Transform' representing the scaling operation only. + + Scaling causes the x-coordinate of the `Point' to be multiplied by + X, the y-coordinate of the `Point' to be multiplied by Y, and the + z-coordinate of the `Point' to be multiplied by Z. + + Point p0(1, 0, 3); + p0.scale(4); + p0.show("p0:"); + -| p0: (4, 0, 3) + Point p1(-2, -1, -2); + p1.scale(-2, -3, -4); + p1.show("p1:"); + -| p1: (4, 3, 8) + + + - Function: Transform shear (real XY, [real XZ = 0, [real YX = 0, + [real YZ = 0, [real ZX = 0, [real ZY = 0]]]]]) + Calls `transform.shear()' with the same arguments and returns its + return value, namely, a `Transform' representing the shearing + operation only. + + Shearing modifies each coordinate of a `Point' proportionately to + the values of the other two coordinates. Let x_0, y_0, and z_0 + stand for the coordinates of a `Point' P before `P.shear('\alpha, + \beta, \gamma, \delta, \epsilon, \zeta `)', and x_1, y_1, and z_1 + for its coordinates afterwards. + + x_1 == x_0 + \alpha y + \beta z + y_1 == y_0 + \gamma x + \delta z + z_1 == z_0 + \epsilon x + \zeta y + + [next figure] demonstrates the effect of shearing the four + `Points' of a 3 * 3 + + `Rectangle' (i.e., a square) r in the x-y plane using only an XY + argument, making it non-rectangular. + + Point P0; + Point P1(3); + Point P2(3, 3); + Point P3(0, 3); + Rectangle r(p0, p1, p2, p3); + r.draw(); + r.shear(1.5); + r.draw(black, "evenly"); + + + - Function: Transform shift (real X, [real Y = 0, [real Z = 0]]) + - Function: Transform shift (const Point& P) + Each of these functions calls the corresponding version of + `Transform::shift()' on `transform', and returns its return value, + namely, a `Transform' representing the shifting operation only. + + The `Point' is shifted X units in the direction of the positive + x-axis, Y units in the direction of the positive y-axis, and Z + units in the direction of the positive z-axis. + + p0(1, 2, 3); + p0.shift(2, 3, 5); + p0.show("p0:"); + -| p0: (3, 5, 8) + + + - Function: Transform shift_times (real X, [real Y = 1, [real Z = 1]]) + - Function: Transform shift_times (const Point& P) + Each of these functions calls the corresponding version of + `Transform::shift_times()' on `transform' and returns its return + value, namely the new value of `transform'. + + `shift_times()' makes it possible to increase the magnitude of a + shift applied to a `Point', while maintaining its direction. + Please note that `shift_times()' will only have an effect if it's + called after a call to `shift()' and before `transform' is reset. + This is performed by `reset_transform()', which is called in + `apply_transform()', and can also be called directly. *Note + Transform Reference; Resetting: Resetting Transforms, and *Note + Point Reference; Applying Transformations: Applying + Transformations to Points. + + Point P; + P.drawdot(); + P.shift(1, 1, 1); + P.drawdot(); + P.shift_times(2, 2, 2); + P.drawdot(); + P.shift_times(2, 2, 2); + P.drawdot(); + P.shift_times(2, 2, 2); + P.drawdot(); + + + +File: 3DLDF.info, Node: Applying Transformations to Points, Next: Projecting Points, Prev: Affine Transformations for Points, Up: Point Reference + +Applying Transformations +======================== + + - Function: void apply_transform (void) + Updates `world_coordinates' by multiplying it by `transform', + which is subsequently reset to the identity `Transform'. + + +File: 3DLDF.info, Node: Projecting Points, Next: Vector Operations, Prev: Applying Transformations to Points, Up: Point Reference + +Projecting +========== + + - Function: bool project (const Focus& F, [const unsigned short PROJ = + Projections::PERSP, [real FACTOR = 1]]) + - Function: bool project ([const unsigned short& PROJ = + Projections::PERSP, [real FACTOR = 1]]) + These functions calculate `projective_coordinates'. PROJ + indicates which projection is to be performed. If it is + `Projections::PERSP', then F indicates which `Focus' is to be used + (in the first version), or the global variable `default_focus' is + used (in the second). If `Projections::PARALLEL_X_Y', + `Projections::PARALLEL_X_Z', or `Projections::PARALLEL_Z_Y' is + used, F is ignored, since these projections don't use a `Focus'. + Currently, no other projections are defined. The x and y + coordinates in `projective_coordinates' are multiplied by FACTOR + with the default being 1. + + +File: 3DLDF.info, Node: Vector Operations, Next: Points and Lines, Prev: Projecting Points, Up: Point Reference + +Vector Operations +================= + + Mathematically speaking, vectors and points are not the same. +However, they can both be represented as triples of real numbers (in a +three-dimensional Cartesian space). It is sometimes convenient to treat +points as though they were vectors, and vice versa. In particular, it +is convenient to use the same data type, namely `class Point', to +represent both points and vectors in 3DLDF. + + - `const' function: real dot_product (Point P) + Returns the dot or scalar product of `*this' and P. + + If P and Q are `Points', + P \dot Q = x_P * x_Q + y_P * y_Q + z_P * z_Q = |P||Q| * cos(\theta) + where |P| and |Q| are the magnitudes of P and Q, respectively, + and \theta is the angle between P and Q. + + Since + \theta = arccos(P \dot Q / |P||Q|), + the dot product can be used for finding the angle between two + vectors. + + Point P(1, -1, -1); + Point Q(3, 2, 5); + cout << P.angle(Q); + -| 112.002 + cout << P.dot_product(Q); + -| -4 + real P_Q_angle = (180.0 / PI) + * acos(P.dot_product(Q) + / (P.magnitude() * Q.magnitude())); + cout << P_Q_angle; + -| 112.002 + + If the angle \theta between two vectors P and Q is 90 degrees , + then \cos(\theta) is 0, so P \dot Q will also be 0. Therefore, + `dot_product()' can be used as a test for the orthogonality of + vectors. + + Point P(2); + Point Q(P); + Point Q0(P0); + Q0 *= Q.rotate(0, 0, 90); + P *= Q.rotate(0, 45, 45); + P *= Q.rotate(45); + cout << P.angle(Q); + -| 90 + cout << P.dot_product(Q); + -| 0 + + + - `const' function: Point cross_product (Point P) + Returns the cross or vector product of `*this' and P. + + If P and Q are `Points', + + P * Q = ((y_P * z_Q - z_P * y_Q), (z_P * x_Q - x_P * z_Q), + (x_P * y_Q - y_P * x_Q)) = |P||Q| * sin(\theta) * n, + + where |P| and |Q| are the magnitudes of P and Q, respectively, + \theta is the angle between P and Q, and n is a unit vector + perpendicular to both P and Q in the direction of a right-hand + screw from P towards Q. Therefore, `cross_product()' can be used + to find the normals to planes. + + Point P(2, 2, 2); + Point Q(-2, 2, 2); + Point n = P.cross_product(Q); + n.show("n:"); + -| n: (0, -8, 8) + real theta = (PI / 180.0) * P.angle(Q); + cout << theta; + -| 1.23096 + real n_mag = P.magnitude() * Q.magnitude() * sin(theta); + cout << n_mag; + -| 11.3137 + n /= n_mag; + cout << n.magnitude(); + -| 1 + + If \theta = 0 degrees or 180 degrees, \sin(\theta) will be 0, and + P * Q will be (0, 0, 0). The cross product thus provides a test + for parallel vectors. + + Point P(1, 2, 1); + Point Q(P); + Point R; + R *= Q.shift(-3, -1, 1); + Point s(Q - R); + Point n = P.cross_product(s); + n.show("n:"); + -| n: (0, 0, 0) + + + - `const' function: real magnitude (void) + Returns the magnitude of the `Point'. This is its distance from + `origin' and is equal to sqrt(x^2 + y^2 + z^2). + + Point P(13, 15.7, 22); + cout << P.magnitude(); + -| 29.9915 + + - `const' function: real angle (Point P) + Returns the angle in degrees between two `Points'. + + Point P(3.75, -1.25, 6.25); + Point Q(-5, 2.5, 6.25); + real angle = P.angle(Q); + cout << angle; + -| 73.9084 + Point n = origin.get_normal(P, Q); + n.show("n:"); + -| n: (0.393377, 0.91788, -0.0524503) + + + - Function: Point unit_vector (const bool ASSIGN, [const bool SILENT = + FALSE]) + - `const' function: Point unit_vector (void) + These functions return a `Point' with the x, y, and z-coordinates + of `world_coordinates' divided by the magnitude of the `Point'. + The magnitude of the resulting `Point' is thus 1. The first + version assigns the result to `*this' and should only ever be + called with ASSIGN = `true'. Calling it with the argument `false' + is equivalent to calling the `const' version, with no assignment. + If `unit_vector()' is called with ASSIGN and SILENT both `false', + it issues a warning message is issued and the `const' version is + called. If SILENT is `true', the message is suppressed. + + Point P(21, 45.677, 91); + Point Q = P.unit_vector(); + Q.show("Q:"); + -| Q: (0.201994, 0.439357, 0.875308) + P.rotate(30, 25, 10); + P.show("P:"); + P: (-19.3213, 82.9627, 59.6009) + cout << P.magnitude(); + -| 103.963 + P.unit_vector(true); + P.show("P:"); + -| P: (-0.185847, 0.797999, 0.573287) + cout << P.magnitude(); + -| 1 + + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-6 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-6 --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-6 1970-01-01 01:00:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-6 2003-12-10 18:44:55.000000000 +0100 @@ -0,0 +1,1251 @@ +This is 3DLDF.info, produced by makeinfo version 4.5 from 3DLDF.texi. + +This is the 3DLDF User and Reference Manual, edition 1.1.4 for 3DLDF +1.1.4. This manual was last updated on 10 December 2003. 3DLDF is a +GNU package for three-dimensional drawing with MetaPost output. The +author is Laurence D. Finston. + + Copyright (C) 2003 Laurence D. Finston. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, and + no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License". + +INFO-DIR-SECTION GNU packages +START-INFO-DIR-ENTRY +* 3DLDF: (3DLDF). 3D drawing with MetaPost output. +END-INFO-DIR-ENTRY + + +File: 3DLDF.info, Node: Points and Lines, Next: Point Intersections, Prev: Vector Operations, Up: Point Reference + +Points and Lines +================ + + - `const' function: Line get_line (const Point& P) + Returns the `Line' L corresponding to the line from `*this' to P. + L.`position' will be `*this', and L.`direction' will be P - + `*this'. *Note Line Reference::. + + - `const' function: real slope (Point P, [char M = 'x', [char N = + 'y']]) + Returns a `real' number representing the slope of the _trace_ of + the line defined by `*this' and P on the plane indicated by the + arguments M and N. + + Point p0(3, 4, 5); + Point p1(2, 7, 12); + real r = p0.slope(p1, 'x', 'y'); + => r == -3 + r = p0.slope(p1, 'x', 'z'); + => r == -7 + r = p0.slope(p1, 'z', 'y'); + => r == 0.428571 + + - Function: bool_real is_on_segment (Point P0, Point P1) + - `const' function: bool_real is_on_segment (const Point& P0, const + Point& P1) + These functions return a `bool_real', where the `bool' part is + `true', if the `Point' lies on the line segment between P0 and P1, + otherwise `false'. If the `Point' lies on the line segment, the + `real' part is a value r such that 0 <= r <= 1 indicating how far + the `Point' is along the way from P0 to P1. For example, if the + `Point' is half of the way from P0 to P1, r will be .5. If the + `Point' does not lie on the line segment, but on the _line_ + passing through P0 and P1, r will be <0 or >1. + + If the `Point' doesn't lie on the line passing through P0 and P1, + r will be `INVALID_REAL'. + + Point p0(-1, -2, 1); + Point p1(3, 2, 5); + Point p2(p0.mediate(p1, .75)); + Point p3(p0.mediate(p1, 1.5)); + Point p4(p2); + p4.shift(-2, 1, -1); + bool_real br = p2.is_on_segment(p0, p1); + cout << br.first; + -| 1 + cout << br.second; + -| 0.75 + bool_real br = p3.is_on_segment(p0, p1); + cout << br.first; + -| 0 + cout << br.second; + -| 1.5 + bool_real br = p4.is_on_segment(p0, p1); + cout << br.first; + -| 0 + cout << br.second; + -| 3.40282e+38 + cout << (br.second == INVALID_REAL) + -| 1 + + + - `const' function: bool_real is_on_line (const Point& P0, const + Point& P1) + Returns a `bool_real' where the `bool' part is `true', if the + `Point' lies on the line passing through P0 and P1, otherwise + `false'. If the `Point' lies on the line, the `real' part is a + value r indicating how how far the `Point' is along the way from + P0 to P1, otherwise `INVALID_REAL'. The following values of r are + possible for a call to `P.is_on_line(A, B)', where the `Point' P + lies on the line AB: + + P == A ---> r== 0. + + P == B ---> r== 1. + + P lies on the opposite side of A from B ---> r < 0. + + P lies between A and B ---> 0 < r < 1. + + P lies on the opposite side of A from B ---> r > 1 + + Point A(-1, -2); + Point B(2, 3); + Point C(B.mediate(A, 1.25)); + bool_real br = C.is_on_line(A, B); + Point D(A.mediate(B)); + br = D.is_on_line(A, B); + Point E(A.mediate(B, 1.25)); + br = E.is_on_line(A, B); + Point F(D); + F.shift(-1, 1); + br = F.is_on_line(A, B); + + + - `const' function: Point mediate (Point P, [const real R = .5]) + Returns a `Point' R of the way from `*this' to P. + + Point p0(-1, 0, -1); + Point p1(10, 0, 10); + Point p2(5, 5, 5); + Point p3 = p0.mediate(p1, 1.5); + p3.show("p3:"); + -| p3: (15.5, 0, 15.5) + Point p4 = p0.mediate(p2, 1/3.0); + p4.show("p4:"); + -| p4: (1, 1.66667, 1) + + + +File: 3DLDF.info, Node: Point Intersections, Next: Point Drawing Functions, Prev: Points and Lines, Up: Point Reference + +Intersections +============= + + - Static function: bool_point intersection_point (Point P0, Point P1, + Point Q0, Point Q1) + - Static function: bool_point intersection_point (Point P0, Point P1, + Point Q0, Point Q1, const bool TRACE) + These functions find the intersection point, if any, of the lines + determined by P0 and P1 on the one hand, and Q0 and Q1 on the + other. + + Let `bp' be the `bool_point' returned by `intersection_point()'. + If an intersection point is found, the corresponding `Point' will + be stored in `bp.pt', otherwise, `bp.pt' will be set to + `INVALID_POINT'. If the intersection point lies on both of the + line segments, `bp.b' will be `true', otherwise, `false'. + + The two versions use different methods of finding the intersection + point. The first uses a vector calculation, the second looks for + the intersections of the traces of the lines on the major planes. + If the TRACE argument is used, the second version will be called, + whether TRACE is `true' or `false'. Ordinarily, there should be + no need to use the trace version. + + Point A(-1, -1); + Point B(1, 1); + Point C(-1, 1); + Point D(1, -1); + bool_point bp = Point::intersection_point(A, B, C, D); + bp.pt.dotlabel("$i$"); + cout << "bp.b == " << bp.b << endl << flush; + -| bp.b == 1 + + Point A(.5, .5); + Point B(1.5, 1.5); + Point C(-1, 1); + Point D(1, -1); + bool_point bp = Point::intersection_point(A, B, C, D, true); + bp.pt.dotlabel("$i$"); + cout << "bp.b == " << bp.b << endl << flush; + -| bp.b == 0 + + + +File: 3DLDF.info, Node: Point Drawing Functions, Next: Labelling Points, Prev: Point Intersections, Up: Point Reference + +Drawing +======= + + There are two versions for each of the drawing functions. The second +one has the `Picture' argument PICTURE at the beginning of the argument +list, rather than at the end. This is convenient when passing a +`picture' argument. Where PICTURE is optional, the default is always +`current_picture'. + + - `const' function: void drawdot ([const Color& DDRAWDOT_COLOR = + `*Colors::default_color', [const string PPEN = "", [Picture& + PICTURE = `current_picture']]]) + - `const' function: void drawdot ([Picture& PICTURE = + `current_picture', [const Color& DDRAWDOT_COLOR = + `*Colors::default_color', [const string PPEN = "", ]]]) + Draws a dot on PICTURE. If PPEN is specified, a "pen expression" + is included in the `drawdot' command written to `out_stream'. + Otherwise, MetaPost's `currentpen' is used. If DDRAWDOT_COLOR is + specified, the dot will be drawn using that `Color'. Otherwise, + the `Color' currently pointed to by the pointer + `Colors::default_color' will be used. This will normally be + `Colors::black'. See *Note Color Reference::, for more information + about `Colors' and the `namespace Colors'. + + Please note that the "dot" will always be parallel to the plane of + projection. Even where it appears to be a surface, as in [next + figure] , it is never put into perspective, but will always have + the same size and shape. + + Point P(1, 1); + P.drawdot(gray, "pensquare scaled 1cm"); + + + - Function: void undrawdot ([string PEN = "", [Picture& PICTURE = + `current_picture']]) + - Function: void undrawdot ([Picture& PICTURE = `current_picture', + [string PEN = ""]]) + Undraws a dot on PICTURE. If PPEN is specified, a "pen + expression" is included in the `undrawdot' command written to + `out_stream'. Otherwise, MetaPost's `currentpen' is used. + + Point P(1, 1); + P.drawdot(gray, "pensquare scaled 1cm"); + P.undrawdot("pencircle scaled .5cm"); + + + - Function: void draw (const Point& P, [const Color& DDRAW_COLOR = + `*Colors::default_color', [string DDASHED = "", [string PPEN + = "", [Picture& PICTURE = `current_picture', [bool AARROW = + `false']]]]]) + - Function: void draw (Picture& PICTURE = `current_picture', const + Point& P, [const Color& DDRAW_COLOR = + `*Colors::default_color', [string DDASHED = "", [string PPEN + = "", [bool AARROW = `false']]]]) + Draws a line from `*this' to P. Returns the `Path *this -- p1'. + *Note Path Reference; Drawing and Filling: Drawing and Filling + Paths, for more information. + + Point P(-1, -1, -1); + Point Q(2, 3, 5); + P.draw(Q, Colors::gray, "", "pensquare scaled .5cm"); + + + - Function: void undraw (const Point& P, [string DDASHED = "", [string + PPEN = "", [Picture& PICTURE = `current_picture']]]) + - Function: void undraw (Picture& PICTURE, const Point& P, [string + DDASHED = "", [string PPEN = ""]]) + Undraws a line from `*this' to P. Returns the `Path *this -- p1'. + *Note Path Reference; Drawing and Filling: Drawing and Filling + Paths, for more information. + + Point P(-1, -1, -1); + Point Q(2, 3, 5); + P.draw(Q, Colors::gray, "", "pensquare scaled .5cm"); + P.undraw(Q, "evenly scaled 6", "pencircle scaled .3cm"); + + + - Function: Path draw_help (const Point& P, [const Color& DDRAW_COLOR + = *Colors::help_color, [string DDASHED = "", [string PPEN = + "", [Picture& PICTURE = current_picture]]]]) + - Function: Path draw_help (Picture& PICTURE, const Point& P, [const + Color& DDRAW_COLOR = *Colors::help_color, [string DDASHED = + "", [string PPEN = ""]]]) + Draws a "help line" from `*this to P', but only if the `static + Path' data member `do_help_lines' is `true'. *Note Path + Reference; Data Members: Path Data Members. + + "Help lines" are lines that are used when constructing a drawing, + but that should not be printed in the final version. + + - Function: Path drawarrow (const Point& P, [const Color& DDRAW_COLOR + = `*Colors::default_color', [string DDASHED = "", [string + PPEN = "", [Picture& PICTURE = `current_picture']]]]) + - Function: Path drawarrow (Picture& PICTURE, const Point& P, [const + Color& DDRAW_COLOR = `*Colors::default_color', [string + DDASHED = "", [string PPEN = ""]]]) + Draws an arrow from `*this' to P and returns the `Path' `*this -- + p'. The second version is convenient for passing a `Picture' + argument without having to specify all of the other arguments. + + Point P(-3, -2, 1); + Point Q(3, 3, 5); + P.drawarrow(Q); + + + +File: 3DLDF.info, Node: Labelling Points, Next: Showing Points, Prev: Point Drawing Functions, Up: Point Reference + +Labelling +========= + + Labels make it possible to include TeX text within a drawing. +Labels are implemented by means of `class Label'. The functions +`label()' and `dotlabel()', described in this section, create objects +of type `Label', and add them to the `Picture', which was passed to +them as an argument (`current_picture', by default). *Note Label +Reference::, for more information. + + - `const' function: void label (const string TEXT_STR, [const string + POSITION_STR = "top", [const bool DOT = `false', [Picture& + PICTURE = `current_picture']]]) + - `const' function: void label (const short TEXT_SHORT, [const string + POSITION_STR = "top", [const bool DOT = `false', [Picture& + PICTURE = `current_picture']]]) + These functions cause a `Point' to be labelled in the drawing. + The first argument is the text of the label. It can either be a + `string', in the first version, or a `short', in the second. It + will often be the name of the `Point' in the C++ code, for + example, `"p0"'. It is not possible to automate this kind of + labelling, because it is not possible to access the names of + variables through the variables themselves in C++ . + + TEXT_STR is always placed between "`btex''' and "`etex'" in the + MetaPost `label' command written to `out_stream'. This makes it + possible to include math mode material in the text of labels, as + in the following example. + + Point p0(2, 3); + p0.label("$p_0$"); + + If backslashes are needed in the text of the label, then TEXT_STR + must contain double backslashes, so that single backslashes will + be written to `out_stream'. + + Point P; + Point Q(2, 2); + Point R(P.mediate(Q)); + R.label("$\\overrightarrow{PQ}$", "ulft"); + + The POSITION argument indicates where the text of the label should + be located relative to the `Point'. The valid values are the + strings used in MetaPost for this purpose, i.e., `top', `bot', + `lft', `rt', `llft' (lower left), `lrt' (lower right), `ulft' + (upper left), and `urt' (upper right). The default is `top'. + 3DLDF does not catch the error if an invalid `position' argument + is used; the `string' is written to the output file and an error + will occur when MetaPost is run. + + The DOT argument is used to determine whether the label should be + dotted or not. The default is `false'. The function `dotlabel()' + calls `label()', passing `true' as the latter's DOT argument. + + - `const' function: void dotlabel ([const string TEXT_STR, [const + string POSITION_STR = "top", [Picture& PICTURE = + `current_picture']]]) + - `const' function: void dotlabel (const short TEXT_SHORT, [const + string POSITION_STR = "top", [Picture& PICTURE = + current_picture]]) + These functions are like `label()' except that they always + produces a dot. + + Point p0(2, 3); + p0.dotlabel("$p_0$"); + + + +File: 3DLDF.info, Node: Showing Points, Next: Outputting Points, Prev: Labelling Points, Up: Point Reference + +Showing +======= + + - `const' function: void show ([string TEXT = "", [char COORDS = 'w', + [const bool DO_PERSP = true, [const bool DO_APPLY = true, + [Focus* F = 0, [const unsigned short PROJ = + Projections::persp, [const real FACTOR = 1]]]]]]]) + Prints TEXT followed by the values of a set of coordinates to + standard output (`stdout'). The other arguments are similar to + those used in the functions described in *Note Returning + Coordinates::. + + Point P(1, 3, 5); + P.rotate(15, 67, 98); + P.show("P:"); + -| P: (-3.68621, -3.89112, 2.50421) + + - Function: void show_transform ([string TEXT = ""]) + Prints TEXT to standard output (`stdout'), or `"transform:"', if + TEXT is the empty `string' (the default), and then calls + `transform.show()'. + + Point A(-1, 1, 1); + Point B(13, 12, 6); + Point Q(31, 17.31, 6); + Q.rotate(A, B, 32); + Q.show_transform("Q.transform:"); + -| Q.transform: + Transform: + 0.935 0.212 -0.284 0 + -0.0749 0.902 0.426 0 + 0.346 -0.377 0.859 0 + -0.336 0.687 -0.569 1 + + +File: 3DLDF.info, Node: Outputting Points, Prev: Showing Points, Up: Point Reference + +Outputting +========== + + - Non-member function: ostream& operator<< (ostream& O, Point& P) + Used in `Path::output()' for writing the x and y values of the + `projective_coordinates' of `Points' to `out_stream'. *Note Path + Reference; Outputting: Outputting Paths. This is a low-level + function that ordinary users should never have to invoke directly. + + - Function: void output (void) + Writes the MetaPost code for drawing or undrawing a `Point' to + `out_stream'. Called by `Picture::output()', when a `Shape' on + the `Picture' is a `Point'. *Note Picture Reference; Outputting: + Outputting Pictures. + + - Virtual function: void suppress_output (void) + Sets `do_output' to `false', which causes a `Point' not to be + output. This function is called in `Picture::output()', when a + `Point' cannot be projected. *Note Picture Reference; Outputting: + Outputting Pictures. + + - Virtual function: virtual void unsuppress_output (void) + Resets `do_output' to `true', so that a `Point' can potentially be + output, if `Picture::output()' is called again for the `Picture' + the `Point' is on. This function is called in `Picture::output()'. + *Note Picture Reference; Outputting: Outputting Pictures. + + - Function: `vector' extract (const Focus& F, const unsigned + short PROJ, real FACTOR) + Attempts to project the `Point' using the arguments passed to + `Picture::output()', which calls this function. If `extract()' + succeeds, it returns a `vector' containing only the + `Point'. Otherwise, it returns an empty `vector'. + + - Virtual function: bool set_extremes (void) + Sets "extreme" values for x, y, and z in `projective_coordinates'. + This is, of course, trivial for `Points', because they only have + one x, y and z-coordinate. So the maxima and minima for each + coordinate are always the same. + + - Virtual inline `const' function: `valarray ' get_extremes + (void) + Returns `projective_extremes'. + + - Virtual `const' function: real get_minimum_z (void) + - Virtual `const' function: real get_maximum_z (void) + - Virtual `const' function: real get_mean_z (void) + These functions return the minimum, maximum, and mean z-value of + the `Point'. `get_minimum_z()' returns `projective_extremes[4]', + `get_maximum_z()' returns `projective_extremes[5]', and + `get_mean_z()' returns `(projective_extremes[4] + + projective_extremes[5]) / 2'. However, since a `Point' has only + one z-coordinate (from `world_coordinates'), these values will all + be the same. + + These functions are pure virtual functions in `Shape', and are + called on `Points' through pointers to `Shape'. Therefore, they + must be consistent with the versions for other types derived from + `Shape'. *Note Shape Reference; Outputting: Outputting Shapes. + + +File: 3DLDF.info, Node: Focus Reference, Next: Line Reference, Prev: Point Reference, Up: Top + +Focus Reference +*************** + + Class `Focus' is defined in `points.web'. `Focuses' are used when +creating a perspective projection. They represent the center of +projection and can be thought of like a camera viewing the scene. + +* Menu: + +* Focus Data Members:: +* Focus Global Variables:: +* Focus Constructors and Setting Functions:: +* Focus Operators:: +* Modifying Focuses:: +* Querying Focuses:: +* Showing Focuses:: + + +File: 3DLDF.info, Node: Focus Data Members, Next: Focus Global Variables, Prev: Focus Reference, Up: Focus Reference + +Data Members +============ + + - Private variable: Point position + The location of the `Focus' in the world coordinate system. + + - Private variable: Point direction + The direction of view from `position' into the scene. + + - Private variable: Point up + The direction that will be at the top of the projected drawing. + + - Private variable: real distance + The distance of the `Focus' from the plane of projection. + + - Private variable: real angle + Used for determining the `up' direction. + + - Private variable: char axis + The main axis onto which the `Focus' is transformed in order to + perform the perspective projection, z by default. + + It will normally not matter which axis is used, but it might be + advantageous to use a particular axis in some special situations. + + - Private variable: Transform transform + The `Transform', which will be applied to the `Shapes' on the + `Picture', when the latter is output. The effect of this is + equivalent to transforming the `Focus', so that it lies on a major + axis. + + Focus f(5, 5, -10, 2, 4, 10, 10, 180); + => + + `f.transform' == + 0.989 -0.00733 -0.148 0 + 0 0.999 -0.0494 0 + 0.148 0.0488 0.988 0 + -3.4 -4.47 0.865 1 + + - Private variable: Transform persp + The `Transform' representing the perspective transformation for a + particular `Focus'. Let d stand for `distance', then + `persp' == + 1 0 0 0 + 0 1 0 0 + 0 0 0 1/d + 0 0 0 1 + + +File: 3DLDF.info, Node: Focus Global Variables, Next: Focus Constructors and Setting Functions, Prev: Focus Data Members, Up: Focus Reference + +Global Variables +================ + + - Variable: Focus default_focus + Effectively, the default `Focus' in `Picture::output()'. *Note + Picture Reference; Outputting; Functions: Picture Output Functions. + It's not really the default, but the version of `output()' that + doesn't take a `Focus' argument calls another version that does + take one, passing `default_focus' to the latter as its `Focus' + argument. + + It's necessary to do this in such a roundabout way, because + `Picture::output()' must be declared before `class Focus' is + completely defined and `default_focus' is declared. + + The declaration `Focus& f = default_focus;' makes `f' a reference + to `default_focus', i.e., it makes `f' another name for + `default_focus'. This may be convenient, if you don't feel like + typing `default_focus'. + + +File: 3DLDF.info, Node: Focus Constructors and Setting Functions, Next: Focus Operators, Prev: Focus Global Variables, Up: Focus Reference + +Constructors and Setting Functions +================================== + + - Default constructor: void Focus (void) + Creates an empty `Focus' + + - Constructor: void Focus (const real POS_X, const real POS_Y, const + real POS_Z, const real DIR_X, const real DIR_Y, const real + DIR_Z, const real DIST, [const real ANG = 0, [char AX = 'z']]) + Constructs a `Focus' using the first three `real' arguments as the + x, y, and z-coordinates of `position', and the fourth through the + sixth argument as the x, y, and z-coordinates of `direction'. DIST + specifies the distance of the `Focus' from the plane of + projection, ANG the angle of rotation, which affects which + direction is considered to be "up", and AX the major axis to which + the `Focus' is aligned. + + - Setting function: void set (const real POS_X, const real POS_Y, + const real POS_Z, const real DIR_X, const real DIR_Y, const + real DIR_Z, const real DIST, [const real ANG = 0, [char AX = + 'z']]) + Resets an existing `Focus'. Corresponds to the constructor above. + + - Constructor: void Focus (const Point& POS, const Point& DIR, const + real DIST, [const real ANG = 0, [char AX = 'z']]) + Constructs a `Focus' using `Point' arguments for `position' and + `direction'. Otherwise, the arguments of this constructor + correspond to those of the one above. + + - Setting function: void set (const Point& POS, const Point& DIR, + const real DIST, [const real ANG = 0, [char AX = 'z']]) + Resets an existing `Focus'. Corresponds to the constructor above. + + +File: 3DLDF.info, Node: Focus Operators, Next: Modifying Focuses, Prev: Focus Constructors and Setting Functions, Up: Focus Reference + +Operators +========= + + - Assignment operator: const Focus& operator= (const Focus& F) + Sets the `Focus' to F. + + +File: 3DLDF.info, Node: Modifying Focuses, Next: Querying Focuses, Prev: Focus Operators, Up: Focus Reference + +Modifying +========= + + - Function: void reset_angle (const real ANG) + Resets the value of `angle' and recalculates the `Transforms' + `transform' and `persp'. + + +File: 3DLDF.info, Node: Querying Focuses, Next: Showing Focuses, Prev: Modifying Focuses, Up: Focus Reference + +Querying +======== + + - Inline `const' function: const Point& get_position (void) + Returns `position'. + + - Inline `const' function: const Point& get_direction (void) + Returns `direction'. + + - Inline `const' function: const real& get_distance (void) + Returns `distance'. + + - Inline `const' function: const Point& get_up (void) + Returns `up'. + + - Inline `const' function: const Transform& get_transform (void) + Returns `transform'. + + - Inline `const' function: const real& get_transform_element (const + unsigned int ROW, const unsigned int COLUMN) + Returns an element of `transform', given two `unsigned ints' for + the row and the column. + + - Inline `const' function: const Transform& get_persp (void) + Returns `persp'. + + - Inline `const' function: const real& get_persp_element (const + unsigned int ROW, const unsigned int COLUMN) + Returns an element of `persp', given two `unsigned ints' for the + row and the column. + + +File: 3DLDF.info, Node: Showing Focuses, Prev: Querying Focuses, Up: Focus Reference + +Showing +======= + + - `const' function: void show ([const string text_str = "Focus:", + [const bool show_transforms = false]]) + Prints TEXT_STR to standard output (`stdout'), then calls + `Point::show()' on `position', `direction', and `up'. Then the + values of `distance', `axis', and `angle' are printed to `stdout'. + If SHOW_TRANSFORMS is `true', `transform' and `persp' are shown + as well. + + +File: 3DLDF.info, Node: Line Reference, Next: Plane Reference, Prev: Focus Reference, Up: Top + +Line Reference +************** + + The `struct Line' is defined in `lines.web'. `Lines' are not +`Shapes'. They are used for performing vector operations. A `Line' is +defined by a `Point' representing a position vector and a `Point' +representing a direction vector. + + See also the descriptions of `Point::get_line()' in *Note Points and +Lines::, and `Path::get_line()' in *Note Path Reference; Querying: +Querying Paths. + +* Menu: + +* Line Data Members:: +* Line Global Constants:: +* Line Constructors:: +* Line Operators:: +* Get Path:: +* Showing:: + + +File: 3DLDF.info, Node: Line Data Members, Next: Line Global Constants, Prev: Line Reference, Up: Line Reference + +Data Members +============ + + - Public variable: Point position + Represents the position vector of the `Line'. + + - Public variable: Point direction + Represents the direction vector of the `Line'. + + +File: 3DLDF.info, Node: Line Global Constants, Next: Line Constructors, Prev: Line Data Members, Up: Line Reference + +Global Constants +================ + + - Constant: const Line INVALID_LINE + `position' and `direction' are both `INVALID_POINT'. + + +File: 3DLDF.info, Node: Line Constructors, Next: Line Operators, Prev: Line Global Constants, Up: Line Reference + +Constructors +============ + + - Default constructor: void Line (const Point& POS = `origin', const + Point& DIR = `origin') + Creates a `Line', setting `position' to POS, and `direction' to + DIR. If this function is called with no arguments, it creates a + `Line' at the `origin' with no direction. + + Point p(2, 1, 2); + Point d(-3, 3, 3.5); + Line L0(p, d); + Line L1 = p.get_line(d); + + + - Copy constructor: void Line (const Line& L) + Creates a `Line', making it a copy of L. + + +File: 3DLDF.info, Node: Line Operators, Next: Get Path, Prev: Line Constructors, Up: Line Reference + +Operators +========= + + - Assignment operator: void operator= (const Line& L) + Sets `*this' to L. + + +File: 3DLDF.info, Node: Get Path, Next: Showing, Prev: Line Operators, Up: Line Reference + +Get Path +======== + + - `const' function: Path get_path (void) + Returns a linear `Path' with two `Points' on the `Line'. The + first `Point' will be `position', and the second will be `position + + direction'. + + +File: 3DLDF.info, Node: Showing, Prev: Get Path, Up: Line Reference + +Showing +======= + + - Function: void show ([string TEXT = ""]) + If TEXT is not the empty `string' (the default), it is printed on + a line of its own to standard output. Otherwise, `Line:' is + printed. Following this, `Point::show()' is called on `position' + and `direction'. + + Point p(1, -2, 3); + Point d(-12.3, 21, 36.002); + Line L0(p, d); + L0.show("L0:"); + -| L0: + position: (1, -2, 3) + direction: (-12.3, 21, 36.002) + Line L1 = p.get_line(d); + L1.show("L1:"); + -| L1: + position: (1, -2, 3) + direction: (-13.3, 23, 33.002) + Path q = L1.get_path(); + q.show("q:"); + -| q: + fill_draw_value == 0 + (1, -2, 3) -- (-12.3, 21, 36.002); + + +File: 3DLDF.info, Node: Plane Reference, Next: Path Reference, Prev: Line Reference, Up: Top + +Plane Reference +*************** + + The `struct Plane' is defined in `planes.web'. `Planes' are not +`Shapes'. They are used for performing vector operations. A `Plane' +is defined by a `Point' representing a point on the plane, a `Point' +representing the normal to the plane, and the distance of the plane from +the origin. + + The most common use of `Planes' is to represent the plane in which +an existing plane figure lies. Therefore, they most likely to be +created by using `Path::get_plane()'. *Note Path Reference; Querying: +Querying Paths. However, `class Plane' does have constructors for +creating `Planes' directly, if desired. *Note Planes Reference; +Constructors: Planes Constructors. + +* Menu: + +* Planes Data Members:: +* Planes Global Constants:: +* Planes Constructors:: +* Planes Operators:: +* Planes Returning Information:: +* Plane Intersections:: +* Planes Showing:: + + +File: 3DLDF.info, Node: Planes Data Members, Next: Planes Global Constants, Prev: Plane Reference, Up: Plane Reference + +Data Members +============ + + Because the main purpose of `Plane' is to provide information about +`Shapes', its data members are all `public'. + + - Public variable: Point point + Represents a point on the plane. + + - Public variable: Point normal + Represents the normal to the plane. + + - Public variable: real distance + The distance of the plane from the origin. + + +File: 3DLDF.info, Node: Planes Global Constants, Next: Planes Constructors, Prev: Planes Data Members, Up: Plane Reference + +Global Constants +================ + + - Constant: const Plane INVALID_PLANE + A `Plane' with `point' == `normal', and `distance' == + `INVALID_REAL'. + + `INVALID_PLANE' is returned from `Path::get_plane()', if the + `Path' is not planar. *Note Path Reference; Querying: Querying + Paths. + + +File: 3DLDF.info, Node: Planes Constructors, Next: Planes Operators, Prev: Planes Global Constants, Up: Plane Reference + +Constructors +============ + + - Default constructor: void Plane (void) + Creates a degenerate `Plane' with `point' == `normal' == `origin', + and `distance' == 0. + + `Planes' constructed using this constructor will probably be set + using the assignment operator or `Path::get_plane()' immediately, + or very soon after being declared. *Note Planes Reference; + Operators: Planes Operators, and *Note Paths Reference; Querying: + Querying Paths. + + - Copy constructor: void Plane (const Plane& p) + Creates a new `Plane', making it a copy of P. + + - Constructor: void Plane (const Point& P, const Point& N) + If P is not equal to N, this constructor creates a `Plane' and + sets `point' to P. `normal' is set to N, and made a unit vector. + `distance' is calculated according to the following formula: Let n + stand for `normal', p for `point', and d for `distance': d = -p + \dot n. If d = 0, `origin' lies in the `Plane'. If d > 0, + `origin' lies on the side of the `Plane' that `normal' points to, + considered to be "outside". If d<0, `origin' lies on the side of + the `Plane' that `normal' does not point to, considered to be + "inside". + + However, if P == N, `point' and `normal' are both set to + `INVALID_POINT', and `distance' is set to `INVALID_REAL', i.e., + `*this' will be equal to `INVALID_PLANE' (*note Planes Reference; + Global Constants: Planes Global Constants.). + + Point P(1, 1, 1); + Point N(0, 1); + N.rotate(-35, 30, 20); + N.show("N:"); + -| N: (-0.549659, 0.671664, 0.496732) + Plane q(P, N); + cout << q.distance; + -| -0.618736 + + + +File: 3DLDF.info, Node: Planes Operators, Next: Planes Returning Information, Prev: Planes Constructors, Up: Plane Reference + +Operators +========= + + - Assignment operator: const Plane& operator= (const Plane& P) + Sets `point' to P.`point', `normal' to P.`normal', and `distance' + to P.`distance'. The return value is P, so that invocations of + this function can be chained. + + Point pt(2, 2.3, 6); + Point norm(-1, 12, -36); + Plane A(pt, norm); + Plane B; + Plane C; + B = C = A; + A.show("A:"); + -| A: + normal: (-0.0263432, 0.316118, -0.948354) + point: (2, 2.3, 6) + distance == 5.01574 + cout << (A == B && A == C && B == C); + -| 1 + + - `const' operator: bool operator== (const Plane& P) + Equality operator. Compares `*this' and P, and returns `true', if + `point' == P.`point', `normal' == P.`normal', and `distance' == + P.`distance', otherwise `false'. + + - `const' operator: bool operator!= (const Plane& P) + Inequality operator. Compares `*this' and P and returns `true', + if `point' != P.`point', or `normal' != P.`normal', or + `distance' != P.`distance'. Otherwise, it returns `false'. + + +File: 3DLDF.info, Node: Planes Returning Information, Next: Plane Intersections, Prev: Planes Operators, Up: Plane Reference + +Returning Information +===================== + + - `const' function: real_short get_distance (const Point& P) + - `const' function: real_short get_distance (void) + The version of this function taking a `Point' argument returns a + `real_short' R, whose `real' part (R.`first') represents the + distance of P from the `Plane'. This value is always positive. + R.`second' can take on three values: + + 0 + If the `Point' lies in the `Plane'. + + 1 + If it lies on the side of the `Plane' pointed at by the + normal to the `Plane', considered to be the "outside". + + -1 + If it lies on the side of the `Plane' _not_ pointed at by the + normal to the `Plane', considered to be the "inside". + + The version taking no argument returns the absolute of the data + member `distance' and its sign, i.e., the distance of `origin' to + the `Plane', and which side of the `Plane' it lies on. + + It would have been possible to use `origin' as the default for an + optional `Point' argument, but I've chosen to overload this + function, because of problems that may arise, when I implement + `user_coordinates' and `view_coordinates' (*note Point Reference; + Data Members: Point Data Members.). + + Point N(0, 1); + N.rotate(-10, 20, 20); + Point P(1, 1, 1); + Plane q(P, N); + Point A(4, -2, 4); + Point B(-1, 3, 2); + Point C = q.intersection_point(A, B).pt; + real_short bp; + + bp = q.get_distance(); + cout << bp.first; + -| 0.675646 + cout << bp.second + -| -1 + + bp = q.get_distance(A) + cout << bp.first; + -| 3.40368 + cout << bp.second; + -| -1 + + bp = q.get_distance(B) + cout << bp.first; + -| 2.75865 + cout << bp.second; + -| 1 + + bp = q.get_distance(C) + cout << bp.first; + -| 0 + cout << bp.second; + -| 0 + + + +File: 3DLDF.info, Node: Plane Intersections, Next: Planes Showing, Prev: Planes Returning Information, Up: Plane Reference + +Intersections +============= + + - `const' function: bool_point intersection_point (const Point& P0, + const Point& P1) + - `const' function: bool_point intersection_point (const Path& P) + These functions find the intersection point of the `Plane' and a + line. In the first version, the line is defined by the two + `Point' arguments. In the second version, the `Path' P must be + linear, i.e., P.`is_linear()' must be `true'. + + Both versions of `intersection_point()' return a `bool_point' BP, + where BP.`pt' is the intersection point, or `INVALID_POINT', if + there is none. If an intersection point is found, BP.`b' will be + `true', otherwise `false'. Returning a `bool_point' makes it + possible to test for success without comparing the `Point' + returned against `INVALID_POINT'. + + Point center(2, 2, 3.5); + Reg_Polygon h(center, 6, 4, 80, 30, 10); + Plane q = h.get_plane(); + Point P0 = center.mediate(h.get_point(2)); + P0.shift(5 * (N - center)); + Point P1(P0); + P1.rotate(h.get_point(1), h.get_point(4)); + P1 = 3 * (P1 - P0); + P1.shift(P0); + P1.shift(3, -.5, -2); + bool_point bp = q.intersection_point(P0, P1); + Point i_P = bp.pt; + Point P4 = h.get_point(3).mediate(h.get_point(0), .75); + P4.shift(N - center); + Point P5(P4); + P5.rotate(h.get_point(3), h.get_point(0)); + P4.shift(-1, 2); + Path theta(P4, P5); + bp = q.intersection_point(theta); + Point i_theta = bp.pt; + draw_axes(); + + + - `const' function: Line intersection_line (const Plane& P) + Returns a `Line' L. representing the line of intersection of two + `Planes'. *Note Line Reference::. + + In [next figure] , `intersection_line()' is used to find the line + of intersection of the `Planes' derived from the `Rectangles' r_0 + and r_1 using `get_plane()' (*note Paths Reference; Querying: + Querying Paths.). Please note that there is no guarantee that + L.`position' will be in a convenient place for your drawing. A + bit of fiddling was needed to find the `Points' P_2 and P_3. I + plan to add functions for finding the intersection lines of plane + figures, but haven't done so yet. + + Rectangle r0(origin, 5, 5, 10, 15, 6); + Rectangle r1(origin, 5, 5, 90, 50, 10); + r1 *= r0.rotate(30, 30, 30); + r1 *= r0.shift(1, -1, 3); + Plane q0 = r0.get_plane(); + Plane q1 = r1.get_plane(); + Line l = q0.intersection_line(q1); + l.show("l:"); + -| l: + position: (0, 11.2193, 20.0759) + direction: (0.0466595, -0.570146, -0.796753) + Point P0(l.direction); + P0.shift(l.position); + P0.show("P0:"); + -| P0: (0.0466595, 10.6491, 19.2791) + Point P1(-l.direction); + P1.shift(l.position); + Point P2(P0 - P1); + P2 *= 12.5; + P2.shift(P0); + cout << P2.is_on_plane(q0); + -| 1 + cout << P2.is_on_plane(q1); + -| 1 + Point P3(P0 - P1); + P3 *= 7; + P3.shift(P0); + cout << P3.is_on_plane(q0); + -| 1 + cout << P3.is_on_plane(q1); + -| 1 + + + +File: 3DLDF.info, Node: Planes Showing, Prev: Plane Intersections, Up: Plane Reference + +Showing +======= + + - `const' function: void show ([string TEXT = ""]) + Prints information about the `Plane' to standard output. If TEXT + is not the empty `string', it is printed to the standard output. + Otherwise, `Plane:' is printed. Following this, if the `Plane' is + equal to `INVALID_PLANE' (*note Planes Reference; Global + Constants: Planes Global Constants.), a message to this effect is + printed to standard output. Otherwise, `normal' and `point' are + shown using `Point::show()' (*note Point Reference; Showing: + Showing Points.). Finally, `distance' is printed. + + Point A(1, 3, 2.5); + Rectangle r0(A, 5, 5, 10, 15, 6); + Plane p = r0.get_plane(); + -| p: + normal: (-0.0582432, 0.984111, -0.167731) + point: (-0.722481, 2.38245, -0.525176) + distance == -2.47476 + + + +File: 3DLDF.info, Node: Path Reference, Next: Polygon Reference, Prev: Plane Reference, Up: Top + +Path Reference +************** + + Class `Path' is defined in `paths.web'. It is derived from `Shape' +using `protected' derivation. + +* Menu: + +* Path Data Members:: +* Path Constructors and Setting Functions:: +* Path Destructor:: +* Path Operators:: +* Appending to Paths :: +* Copying Paths:: +* Clearing Paths :: +* Modifying Paths :: +* Affine Transformations for Paths:: +* Aligning Paths with an Axis:: +* Applying Transformations to Paths:: +* Drawing and Filling Paths:: +* Labelling Paths:: +* Showing Paths:: +* Querying Paths:: +* Outputting Paths:: +* Path Intersections:: + + +File: 3DLDF.info, Node: Path Data Members, Next: Path Constructors and Setting Functions, Prev: Path Reference, Up: Path Reference + +Data Members +============ + + - Protected variable: bool line_switch + `true' if the `Path' was created using the constructor `Path(const + Point& p0, const Point& p1)', directly or indirectly. *Note Path + Reference; Constructors and Setting Functions: Path Constructors + and Setting Functions. + + Point p0; + Point p1(1, 1); + Point p2(2, 3); + Path q0(p0, p1); + cout << q0.get_line_switch(); + -| 1 + Path q1; + q1 = q0; + cout << q1.get_line_switch(); + -| 1 + Path q2 = p0.draw(p1); + cout << q2.get_line_switch(); + -| 1 + Path q3("..", false, &p1, &p2, &p0, 0); + cout << q3.get_line_switch(); + -| 0 + + Some `Path' functions only work on _linear `Paths'_, so it's + necessary to be able to distinguish them from non-linear ones. + The function `is_linear()' should be enough to ensure that all of + these functions work, so I plan to make `line_switch' obsolete + soon. However, at the moment, it's still needed. *Note Path + Reference; Querying: Querying Paths. + + - Protected variable: bool cycle_switch + `true' if the `Path' is cyclical, otherwise `false'. + + - Protected variable: bool on_free_store + `true' if the `Path' was dynamically allocated on the free store. + Otherwise `false'. Set to `true' only in `create_new_path()', + which should be the only way `Paths' are ever dynamically + allocated. *Note Path Reference; Constructors and Setting + Functions: Path Constructors and Setting Functions. + + - Protected variable: bool do_output + Used in `Picture::output()'. Set to `false' if the `Path' isn't + projectable using the arguments passed to `Picture::output()'. + *Note Picture Reference; Outputting: Outputting Pictures. + + - Protected variable: signed short fill_draw_value + Set in the drawing and filling functions, and used in + `Path::output()', to determine what MetaPost code to write to + `out_stream'. *Note Path Reference; Drawing and Filling: Drawing + and Filling Paths, and *Note Path Reference; Outputting: + Outputting Paths. + + - Protected variable: const Color* draw_color + Pointer to the `Color' used if the `Path' is drawn. + + - Protected variable: const Color* fill_color + Pointer to the `Color' used if the `Path' is filled. + + - Protected variable: string dashed + String written to `out_stream' for the "dash pattern" in a + MetaPost `draw' or `undraw' command. If and only if `dashed' is + not the empty string, "`dashed' <_dash pattern_>" is written to + `out_stream'. + + Dash patterns have no meaning inside 3DLDF; `dashed', if + non-empty, is written unchanged to `out_stream'. I may change this + in the future. + + - Protected variable: string pen + String written to `out_stream' for the `pen' to be used in a + MetaPost `draw', `undraw', `filldraw', or `unfilldraw' command. + If and only if `pen' is not the empty string, "`withpen' <...>" is + written to `out_stream'. + + Pens have no meaning inside 3DLDF; `pen', if non-empty, is + written unchanged to `out_stream'. I may change this in the + future. + + - Protected variable: bool arrow + Indicates whether an arrow should be drawn when outputting a + `Path'. Set to `true' on a `Path' created on the free store and + put onto a `Picture' by `drawarrow()'. + + - Protected variable: valarray projective_extremes + Contains the maxima and minima of the x, y, and z-coordinates of + the _projections_ of `Points' on a `Path' using a particular + `Focus'. Set in `set_extremes()' and used in `Picture::output()' + for surface hiding. + + - Protected variable: vector points + Pointers to the `Points' on the `Path'. + + - Protected variable: vector connectors + The connectors between the `Points' on the `Path'. Connectors are + simply `strings' in 3DLDF, they are written unchanged to + `out_stream'. + + - Public static variable: const Color* help_color + Pointer to a `const Color', which becomes the default for + `draw_help()'. *Note Path Reference; Drawing and Filling: Drawing + and Filling Paths. + + Please note that `help_color' is a pointer to a `const Color', not + a `const' pointer to a `Color' or a `const' pointer to a `const + Color'! It's easy to get confused by the syntax for these types + of pointers.(1) + + - Public static variable: string help_dash_pattern + The default dash pattern for `draw_help()'. + + - Public static variable: bool do_help_lines + `true' if help lines should be output, otherwise `false'. If + `false', a call to `draw_help()' does not cause a copy of the + `Path' to be created and put onto a `Picture'. *Note Path + Reference; Drawing and Filling: Drawing and Filling Paths. + + ---------- Footnotes ---------- + + (1) Stroustrup, `The C++ Programming Language', p. 96. + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-7 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-7 --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-7 1970-01-01 01:00:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-7 2003-12-10 18:44:55.000000000 +0100 @@ -0,0 +1,1086 @@ +This is 3DLDF.info, produced by makeinfo version 4.5 from 3DLDF.texi. + +This is the 3DLDF User and Reference Manual, edition 1.1.4 for 3DLDF +1.1.4. This manual was last updated on 10 December 2003. 3DLDF is a +GNU package for three-dimensional drawing with MetaPost output. The +author is Laurence D. Finston. + + Copyright (C) 2003 Laurence D. Finston. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, and + no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License". + +INFO-DIR-SECTION GNU packages +START-INFO-DIR-ENTRY +* 3DLDF: (3DLDF). 3D drawing with MetaPost output. +END-INFO-DIR-ENTRY + + +File: 3DLDF.info, Node: Path Constructors and Setting Functions, Next: Path Destructor, Prev: Path Data Members, Up: Path Reference + +Constructors and Setting Functions +================================== + + - Default constructor: void Path (void) + Creates an empty `Path' with no `Points' and no connectors. + + - Constructor: void Path (const Point& P0, const Point& P1) + Creates a line (more precisely, a line segment) between P0 and P1. + The single connector between the two `Points' is set to `"--"' + and the data member `line_switch' (of type `bool') is set to + `true'. There are certain operations on `Paths' that are only + applicable to lines, so it's necessary to store the information + that a `Path' is a line.(1) + + Point A(-2, -2.5, -1); + Point B(3, 2, 2.5) + Path p(A, B); + p.show("p:"); + -| p: + (-2, -2.5, -1) -- (3, 2, 2.5); + + + - Setting function: void set (const Point& P0, const Point& P1) + Corresponds to the constructor above. + + Point P0(1, 2, 3); + Point P1(3.5, -12, 75); + Path q; + q.set(P0, P1); + q.show("q:"); + -| q: + (1, 2, 3) -- (3.5, -12, 75); + + + - Constructor: void Path (string CONNECTOR, bool CYCLE, Point* P, + [...], 0) + For `Paths' with an arbitrary number of `Points' and one type of + connector. + + CONNECTOR is passed unchanged to `out_file', so it must be a valid + connector in MetaPost. + + CYCLE indicates whether the `Path' is a cycle or not. + `cycle_switch' is set to CYCLE. *Note Path Reference; Data + Members: Path Data Members. The filling and unfilling functions + only work for `Paths' that are cycles. *Note Path Reference; + Drawing and Filling: Drawing and Filling Paths. If a `Path' is a + cycle, it is up to the user to make sure that it has sensible + `Point' and connector values; 3DLDF doesn't check them. If they + are not sensible, for instance, if the `Path' crosses itself, and + you try to fill it, this will cause an error in MetaPost. It is + possible that a `Path' will be "sensible" in some projections and + not in others, although I have not tested this. + + P is a pointer to the first `Point' that should go onto the `Path'. + The ellipsis points (`...') represent an arbitrary number of + pointers to `Points' that should go onto the `Path'. The final + argument must be `0', which is interpreted by the C++ compiler as + the null pointer.(2) + + It is admittedly a bit awkward to have to type "`&p0'" rather than + "`p0'", and I have frequently forgotten to do it, which causes a + compiler error, but all of the arguments must be pointers in order + to be able to use 0 to indicate the end of the argument list. + Convenience in typing function calls is not a high priority in + 3DLDF, because once I've written an input routine, these function + calls should be generated automatically. It will be more + important to define a convenient syntax for the input routine. + + Point P0; + Point P1(2); + Point P2(2,2); + Point P3(0,2); + Path p("..", true, &P0, &P1, &P2, &P3, 0); + p.draw(); + + + - Setting function: void set (string CONNECTOR, bool CYCLE, Point* P, + [...], 0) + Corresponds to the constructor above. + + Point P[4]; + P[0].set(2, 1, 3); + P[3] = P[2] = P[1] = P[0]; + P[3] *= P[2] *= P[1].rotate(3, 12, 18); + P[3] *= P[2].shift(-2, -1, 3); + P[3].shear(1.5, .5, 3.5); + Path q("...", false, &P[0], &P[1], &P[2], &P[3], 0); + q.show("q:"); + -| q: + (2, 1, 3) ... (0.92139, 1.51449, 3.29505) ... + (-1.07861, 0.514487, 6.29505) ... (2.84065, -3.26065, 6.29505); + + + - Constructor: void Path (Point* FIRST_POINT_PTR, char* S, Point* P, + [...], 0) + Constructor for `Paths' with an arbitrary number of `Points' and + connectors. The first, required, argument is a pointer to a + `Point', followed by pointers to `char' alternating with pointers + to `Points'.(3) The last argument must be 0, i.e., the null + pointer. + + There is no need to indicate by means of an argument whether the + `Path' is a cycle or not: If it is, the last argument before the 0 + will be a `char*' (pointer to `char'), if not, it will be a + `Point*'. The data member `cycle_switch' (of type `bool') will be + set to `true' or `false' accordingly. + + Point A; + Point B(2, 0); + Point C(3, 2); + Point D(1, 3); + Path p(&A, "..", &B, "..", &C, "--", &D, "...", 0); + + + - Setting function: void set (Point *FIRST_POINT_PTR, string S, Point + *P, [...], 0) + Corresponds to the constructor above. + + - Copy constructor: void Path (const Path& P) + Creates a new `Path', making it a copy of P. + + - Static function: Path* create_new_path ([const Path* P = 0]) + - Static function: Path* create_new_path (const Path& P) + Pseudo-constructors for dynamic allocation of `Paths'. `Paths' + should never be dynamically allocated, except by means of + `create_new_path()'. Sets `on_free_store' to `true'. *Note Path + Reference; Data Members: Path Data Members. + + In the first version, if P is 0, the new `Path' will be empty. + Otherwise, it will be a copy of *P. In the second version, the + new `Path' will be a copy of P. + + `create_new_path()' is used in the drawing and filling functions + for copying a `Path' and putting the copy onto a `Picture'. *Note + Path Reference; Drawing and Filling: Drawing and Filling Paths. + + ---------- Footnotes ---------- + + (1) It isn't sufficient to check whether a `Path' consists of only +two `Points' to determine whether it is a line or not, since a +connector with "`curl'" could cause it to be non-linear. On the other +hand, `Paths' containing only colinear `Points' and the connector +`"--"' are perfectly legitimate lines. I'm in the process of changing +all of the code that tests for linearity by checking the value of +`line_switch', so that it uses `is_linear()' instead. When I've done +this, it may be possible to eliminate `line_switch'. *Note Path +Reference; Data Members: Path Data Members, and *Note Path Reference; +Querying: Querying Paths. + + (2) Stroustrup, `The C++ Programming Language', p. 88. + + (3) Where possible, I prefer to use the C++ data type `string' +rather than `char*', however it was necessary to use `char*' here +because 0 is not a valid `string', even though `string' may be +implemented as `char*', and 0 must be a valid argument, since it is +needed to indicate the end of the argument list. + + +File: 3DLDF.info, Node: Path Destructor, Next: Path Operators, Prev: Path Constructors and Setting Functions, Up: Path Reference + +Destructor +========== + + - `virtual' Destructor: void ~Path (`void') + All of the `Points' on a `Path' are created by + `create_new_point()', which allocates them dynamically on the free + store. Therefore, the destructor calls `delete()' on all of the + pointers on `points'. Following this, it calls `points.clear()' + and `connectors.clear()'. `draw_color' and `fill_color' may or + may not have been allocated on the free store, so `~Path()' checks + this first, and deletes them, if they were. Then, it sets them to + 0. + + +File: 3DLDF.info, Node: Path Operators, Next: Appending to Paths, Prev: Path Destructor, Up: Path Reference + +Operators +========= + + - Virtual function: Transform operator*= (const Transform& T) + Calls `Point::operator*=(T)' on each of the `Points' on the `Path'. + *Note Point Reference; Operators: Point Operators. This has the + effect of transforming the entire `Path' by T. Please note that + `Path' does not have a `transform' data member of its own. + + - Function: void operator+= (const Point& PT) + Copies PT and pushes a pointer to the copy onto `points'. The + last connector in the `Path' will be used to connect the new + `Point' and the previous one. + + Point A(1, 2, 3); + Point B(3, 4, 5); + Path q; + q += A; + q += B; + q.show("q:"); + -| q: + (1, 2, 3) -- (3, 4, 5); + + + - `const' function: Path operator+ (const Point& PT) + Copies the `Path' and PT, and pushes a pointer to the copy of PT + onto `points' in the new `Path'. The last connector in the new + `Path' will be used to connect the new `Point' and the previous + one. The `Path' remains unchanged. + + - Function: void operator&= (const Path& PA) + Concatenates two `Paths'. The result is assigned to `*this'. + Neither `*this' nor PA may be cyclical, i.e., `cycle_switch' must + be `false' for both `Paths'. + + - `const' function: Path operator& (const Path& PA) + Returns a `Path' representing the concatenation of `*this' and PA. + `*this' remains unchanged. Neither `*this' nor PA may be + cyclical, i.e., `cycle_switch' must be `false' for both `Paths'. + + - Function: void operator+= (const string S) + Pushes S onto `connectors'. + + +File: 3DLDF.info, Node: Appending to Paths, Next: Copying Paths, Prev: Path Operators, Up: Path Reference + +Appending +========= + + - Function: Path append (const Path& PA, [string CONNECTOR = "--", + [bool ASSIGN = `true']]) + Appends PA to `*this' using CONNECTOR to join them and returns the + resulting `Path'. If ASSIGN == `true', then the return value is + assigned to `*this', otherwise, `*this' remains unchanged. + + If necessary, a `const' version could be added, for `const Paths'. + + Point A(-2, 2); + Point B(-2, -2); + Point C(2, -2); + Point D(2, 2); + Path q("--", false, &A, &B, &C, &D, 0); + Point E(1, 2); + Point F(0, 4); + Point G(-.5, 3); + Path r("..", false, &E, &F, &G, 0); + q.append(r, "..", true); + q += ".."; + q += "--"; + q.set_cycle(); + q.show("q:"); + -| q: + (-2, 2, 0) -- (-2, -2, 0) -- + (2, -2, 0) -- (2, 2, 0) .. + (1, 2, 0) .. (0, 4, 0) .. + (-0.5, 3, 0) -- cycle; + + + +File: 3DLDF.info, Node: Copying Paths, Next: Clearing Paths, Prev: Appending to Paths, Up: Path Reference + +Copying +======= + + - `const' virtual function: Shape* get_copy (void) + Creates a copy of the `Path' using `create_new_path()', which + returns a pointer to `Path'. `get_copy()' then casts this pointer + to a pointer to `Shape' and returns it. + + This function is used when copying `Pictures' and in + `Solid::output()', where objects of types derived from `Shape' + must be handled in the same way, without their actual types being + known. + + +File: 3DLDF.info, Node: Clearing Paths, Next: Modifying Paths, Prev: Copying Paths, Up: Path Reference + +Clearing +======== + + - Virtual function: void clear (void) + Does the same thing the destructor `~Path()' does: Calls + `delete()' on the pointers to `Points' on `points', clears + `points' and `connectors', deletes `draw_color' and `fill_color', + if they point to `Colors' that were allocated on the free store, + and sets them to 0. + + `clear()' is a pure virtual function in `class Shape', so `Path' + must be have a `clear()' function. It is needed, because it is + sometimes called through a pointer to `Shape', so that `~Path()' + cannot be accessed. At least, so far I haven't found a way to + call a destructor through the virtual function facility. + + +File: 3DLDF.info, Node: Modifying Paths, Next: Affine Transformations for Paths, Prev: Clearing Paths, Up: Path Reference + +Modifying +========= + + - Inline virtual function: bool set_on_free_store ([bool B = `true']) + Sets `on_free_store' to B. This function is never used, but it's + a pure virtual function in `class Shape', so every class derived + from `Shape' must have one. It was intended for use in the + template function `create_new()', but I haven't been able to get + the latter to work. + + - Virtual function: void set_fill_draw_value (const signed short S) + Sets `fill_draw_value' to S, which should be one of `Shape::DRAW', + `Shape::FILL', `Shape::FILLDRAW', `Shape::UNDRAW', + `Shape::UNFILL', or `Shape::UNFILLDRAW'. + + - Virtual function: void set_draw_color (const Color& C) + - Virtual function: void set_draw_color (const Color * C) + Sets `draw_color' (a pointer to a `const Color') to &C or C, + depending on whether the version with a reference argument or the + version with a pointer argument is used. + + `set_draw_color()' is used in the `Solid' drawing and filling + functions, because `Path::draw_color' is `protected', and the + `Solid' cannot access it directly. *Note Solid Reference; Drawing + and Filling: Drawing and Filling Solids. + + - Virtual function: void set_fill_color (const Color& C) + - Virtual function: void set_fill_color (const Color* C) + Sets `fill_color' (a pointer to a `const Color') to &C or C, + depending on whether the version with a reference argument or the + version with a pointer argument is used. + + `set_fill_color()' is used in the `Solid' drawing and filling + functions, because `Path::fill_color' is `protected', and the + `Solid' cannot access it directly. *Note Solid Reference; Drawing + and Filling: Drawing and Filling Solids. + + - Virtual function: void set_dash_pattern ([const string S = ""]) + Sets `dashed' to S. + + - Virtual function: void set_pen ([const string S = ""]) + Sets `pen' to S. + + - Virtual function: void set_connectors ([const string S = ".."]) + Clears `connectors' and then pushes S onto it, making S the only + connector. Additional connectors can be added by using + `Path::operator+=(const string)'. *Note Path Reference; + Operators: Path Operators. + + I plan to add a version of this function taking a vector of + `strings' as its argument, to make it possible to set several + connectors at one time. + + +File: 3DLDF.info, Node: Affine Transformations for Paths, Next: Aligning Paths with an Axis, Prev: Modifying Paths, Up: Path Reference + +Affine Transformations +====================== + + - Virtual function: Transform rotate (const real X, [const real Y = 0, + [const real Z = 0]]) + Creates a `Transform t' locally and calls `t.rotate(X, Y, Z)'. + `t' is then applied to all of the `Points' on `points'. The + return value is `t'. + + - Function: Transform scale (real X, [real y = 1, [real z = 1]]) + Creates a `Transform t' locally and calls `t.scale(X, Y, Z)'. `t' + is then applied to all of the `Points' on `points'. The return + value is `t'. + + The `Points' on the `Path' are scaled according to the arguments: + + Point pt[8]; + pt[0] = (-1, -1); + for (int i = 1; i < 8; ++i) + { + pt[i] = pt[0]; + pt[i].rotate(0, 0, i * 45); + } + Path p("--", true, &pt[0], &pt[1], &pt[2], &pt[3], + &pt[4], &pt[5], &pt[6], + &pt[7], 0); + p.draw(); + p.scale(2, 2); + p.draw(); + + + - Function: Transform shear (real XY, [real XZ = 0, [real YX = 0, + [real YZ = 0, [real ZX = 0, [real ZY = 0]]]]]) + Creates a `Transform t' locally and calls `t.shear(XY, XZ, YX, YZ, + ZX, ZY)'. `t' is then applied to all of the `Points' on `points'. + The return value is `t'. + + Point p0; + Point p1(1); + Point p2(1, 1); + Point p3(0, 1); + Path q("--", true, &p0, &p1, &p2, &p3, 0); + q.rotate(0, 45); + q.shift(1); + q.filldraw(black, light_gray); + q.shear(1.5, 2, 2.5, 3, 3.5, 5); + q.filldraw(black, light_gray); + + + - Function: Transform shift (real X, [real Y = 0, [real Z = 0]]) + Creates a `Transform t' locally and calls `t.shift(X, Y, Z)'. `t' + is then applied to all of the `Points' on `points'. The return + value is `t'. + + Shifts each of the `Points' on the `Path' according to the + arguments. + + default_focus.set(5, 10, -10, 0, 10, 10, 10); + Point pt[6]; + pt[0].set(-2, -2); + pt[1].set(0, -3); + pt[2].set(2, -2); + pt[3].set(2, 2); + pt[4].set(0, 3); + pt[5].set(-2, 2); + Path p("--", true, &pt[0], &pt[1], &pt[2], + &pt[3], &pt[4], &pt[5], 0); + p.draw(); + p.shift(3, 3, 3); + p.draw(); + + + - Function: Transform shift (const Point& P) + Creates a `Transform t' locally and calls `t.shift(P)'. `t' is + then applied to all of the `Points' on `points'. The return value + is `t'. + + This version of `shift()' uses the x, y, and z-coordinates of the + `Point' P to shift the `Path'. + + default_focus.set(5, 10, -10, 0, 10, 10, 10); + Point pt[6]; + pt[0].set(-2, -2); + pt[1].set(0, -3); + pt[2].set(2, -2); + pt[3].set(2, 2); + pt[4].set(0, 3); + pt[5].set(-2, 2); + Path p("--", true, &pt[0], &pt[1], &pt[2], + &pt[3], &pt[4], &pt[5], 0); + p.draw(); + Point s(1, 1, 1); + p.shift(s); + p.draw(); + + + - Virtual function: void shift_times (real X, [real Y = 1, [real Z = + 1]]) + - Virtual function: void shift_times (const Point& @var{p}) + Each of these functions calls the corresponding version of + `Point::shift_times()' on all of the `Points' on `points'. *Note + Point Reference; Affine Transformations: Affine Transformations + for Points. The return value is `void', because there is no + guarantee that all of the `Points' on a `Path' will have identical + `transform' members (although it's likely). + + Please note that `shift_times()' will only have an effect on the + `Points' on a `Path' if it's called _after_ a call to `shift()' + and _before_ an operation is applied that causes + `Point::apply_transform()' to be called. + + - Virtual function: Transform rotate (const Point& P0, const Point& + P1, [const real ANGLE = 180]) + Creates a `Transform t' locally and calls `t.rotate(P0, P1, + ANGLE)'. `t' is then applied to all of the `Points' on `points'. + The return value is `t'. + + - Function: Transform rotate (const Path& P, [const real ANGLE = 180]) + If `p.is_linear()' returns `true', this function creates a + `Transform' T locally and calls `T.rotate(P, ANGLE)'. `t' is then + applied to all of the `Points' on `points'. The return value is + `t'. Otherwise, it issues an error message and returns + `INVALID_TRANSFORM'. + + +File: 3DLDF.info, Node: Aligning Paths with an Axis, Next: Applying Transformations to Paths, Prev: Affine Transformations for Paths, Up: Path Reference + +Aligning with an Axis +===================== + + - `const' function: Transform align_with_axis ([const char AXIS = 'z']) + - Function: Transform align_with_axis (bool ASSIGN, [const char AXIS = + 'z']) + - Function: Transform align_with_axis (const Point& P0, const Point& + P1, const char AXIS) + These functions return the `Transform' which, if applied to the + `Path', would align it with the major axis indicated by the AXIS + argument. + + The first and second versions can only be called for `Paths' where + `line_switch' is `true'. The first version is `const', so the + `Path' remains unchanged. The second version should only be + called with `ASSIGN = true', so that the `Transform' is applied to + the `Path', actually aligning it with the axis indicated. If the + second version is called with `ASSIGN = false', a warning message + is issued to the standard error output (`stderr'), since one might + as well use the first version in this case, but it won't do any + harm. The third version creates a `Transform' T locally that + would align the line from P0 to P1 with the axis indicated, and + applies T to the `Path'. + + Point A(2, 3, 2); + Point B(-1, 1, 3); + Path p(A, B); + Transform t = p.align_with_axis(true, 'z'); + t.show("t:"); + -| t: + -0.316 0.507 -0.802 0 + 0 -0.845 -0.535 0 + -0.949 -0.169 0.267 0 + 2.53 1.86 2.67 1 + p *= t; + p.show("p:"); + -| p: + (2.53, 1.86, 2.67) -- (-1.02, 1.23, 3.67); + + Point C(1); + C *= t.inverse(); + + Path q; + q += ".."; + q += C; + + for (int i = 0; i < 15; ++i) + { + C.rotate(A, B, 360.0/16); + q += C; + } + q.set_cycle(true); + q.show("q:"); + -| q: + (1.68, 3, 1.05) .. (1.9, 2.68, 1.06) .. + (2.13, 2.4, 1.21) .. (2.35, 2.22, 1.48) .. + (2.51, 2.15, 1.83) .. (2.59, 2.22, 2.21) .. + (2.58, 2.4, 2.55) .. (2.49, 2.68, 2.81) .. + (2.32, 3, 2.95) .. (2.1, 3.32, 2.94) .. + (1.87, 3.6, 2.79) .. (1.65, 3.78, 2.52) .. + (1.49, 3.85, 2.17) .. (1.41, 3.78, 1.79) .. + (1.42, 3.6, 1.45) .. (1.51, 3.32, 1.19) .. cycle; + q.align_with_axis(A, B, 'z'); + q.show("q:"); + -| q: + (1, 0, 0) .. (0.924, 0.383, 0) .. + (0.707, 0.707, 0) .. (0.383, 0.924, 0) .. + (0, 1, 0) .. (-0.383, 0.924, 0) .. + (-0.707, 0.707, 0) .. (-0.924, 0.383, 0) .. + (-1, 0, 0) .. (-0.924, -0.383, 0) .. + (-0.707, -0.707, 0) .. (-0.383, -0.924, 0) .. + (0, -1, 0) .. (0.383, -0.924, 0) .. + (0.707, -0.707, 0) .. (0.924, -0.383, 0) .. cycle; + + + +File: 3DLDF.info, Node: Applying Transformations to Paths, Next: Drawing and Filling Paths, Prev: Aligning Paths with an Axis, Up: Path Reference + +Applying Transformations +======================== + + - Virtual function: void apply_transform (void) + Calls `Point::apply_transform()' on all of the `Points' on + `points'. *Note Point Reference; Applying Transformations: + Applying Transformations to Points. + + +File: 3DLDF.info, Node: Drawing and Filling Paths, Next: Labelling Paths, Prev: Applying Transformations to Paths, Up: Path Reference + +Drawing and Filling +=================== + + - `const' virtual function: void draw ([const Color& DDRAW_COLOR = + `*Colors::default_color', [const string DDASHED = "", [const + string PPEN = "", [Picture& PICTURE = `current_picture']]]]) + - `const' Virtual function: void draw (Picture& PICTURE, [const Color& + DDRAW_COLOR = *Colors::default_color, [string DDASHED = "", + [string PPEN = ""]]]) + Allocates a copy of the `Path' on the free store, puts a pointer to + the copy on PICTURE.`shapes', sets its `fill_draw_value' to + `DRAW', and the values of its `draw_color', `dashed', and `pen' + according to the arguments. + + The second version is convenient for passing a `Picture' argument + without having to specify all of the other arguments. + + All of the arguments to `draw()' are optional, so it can be invoked + as follows: + + Point A; + Point B(2); + Point C(3, 3); + Point D(1, 2); + Point E(-1, 1); + Path p("..", true, &A, &B, &C, &D, &E, 0); + p.draw(); + + The arguments: + + DDRAW_COLOR + Used to specify a color for the `Path'. DDRAW_COLOR is a + reference to a `Color'. Colors are described in *Note Color + Reference::. + + The most basic `Colors' are predefined in 3DLDF (in the + `namespace Colors'), and users may create new `Colors' and + specify their red-green-blue values. + + The `Path p' could be drawn in red by calling + `p.draw(Colors::red)'. This manual isn't intended to be + printed in color, so there's no figure to demonstrate this. + However, gray values can be printed on non-color printers. + + using namespace Colors; + p.draw(gray, "", "pencircle scaled .25mm"); + + DDASHED + A `string' representing a "dash pattern", as defined in + MetaPost(1). Dash patterns have no meaning in 3DLDF, they + are simply `strings' that are written unchanged to + `out_stream'. + + p.draw(black, "evenly"); + + PPEN + A `string' representing a "pen", as defined in Metafont and + MetaPost(2). Pens have no meaning in 3DLDF, they are simply + `strings' that are written unchanged to `out_stream'. + + p.draw(black, "", "pensquare xscaled 3mm + yscaled .25mm scaled .5mm"); + + PICTURE + Indicates the `Picture' on which the `Path' should be drawn. + + The two versions of `draw()' differ in the position of the + PICTURE argument: In the first version, it's the last + argument, while in the second version, it's the first + argument. If a PICTURE argument is used, it's often more + convenient to use the second version. + + The following example puts `Path p' onto `temp_picture'. It + also demonstrates how the labels are put onto `temp_picture', + and how `temp_picture' is output. In the previous examples, + the commands for making the labels and outputting + `current_picture' were left out in order to reduce clutter. + *Note Point Reference; Labelling: Labelling Points, and *Note + Picture Reference; Outputting; Output Functions: Picture + Output Functions. + + Picture temp_picture; + p.draw(temp_picture); + A.dotlabel("A", "bot", temp_picture); + B.dotlabel("B", "bot", temp_picture); + C.dotlabel("C", "top", temp_picture); + D.dotlabel("D", "top", temp_picture); + E.dotlabel("E", "lft", temp_picture); + temp_picture.output(Projections::PARALLEL_X_Y); + + + - `const' function: void draw_help ([const Color& DDRAW_COLOR = + *help_color, [string DDASHED = help_dash_pattern, [string + PPEN = "", [Picture& PICTURE = `current_picture']]]]) + - `const' function: void draw_help (Picture& PICTURE, [const Color& + DDRAW_COLOR = `*help_color', [string DDASHED = + `help_dash_pattern', [string PPEN = ""]]]) + This functions are for drawing help lines. They are like + `draw()', except that `draw_help()' returns immediately, if + `do_help_lines' (a static data member in `Path') is `false'. + Also, the defaults for DDRAW_COLOR and DDASHED differ from those + for `draw()'. + + - `const' virtual function: void drawarrow ([const Color& DDRAW_COLOR + = `*Colors::default_color', [string DDASHED = "", [string + PPEN = "", [Picture& PICTURE = `current_picture']]]]) + - `const' virtual function: void drawarrow (Picture& PICTURE, [const + Color& DDRAW_COLOR = `*Colors::default_color', [string + DDASHED = "", [string PPEN = ""]]]) + Like `draw()', except that the MetaPost command `drawarrow' is + written to `out_stream' when `picture' is output. The second + version is convenient for passing a `Picture' argument without + having to specify all of the other arguments. + + Point m; + Point n(2, 2); + m.dotlabel("$m$", "bot"); + n.dotlabel("$n$"); + m.drawarrow(n); + + + - Non-member function: void draw_axes ([real DIST = 2.5, [string POS_X + = "bot", [string POS_Y = "lft", [string POS_Z = "bot", [const + Color& DDRAW_COLOR = `*Colors::default_color', [const string + DDASHED = "", [const string PPEN = "", [const Point& SHIFT_X + = `origin', [const Point& SHIFT_Y = `origin', [const Point& + SHIFT_Z = `origin', [Picture& PICTURE = + `current_picture']]]]]]]]]]]) + - Non-member function: void draw_axes (const Color& DDRAW_COLOR, [real + DIST = 2.5, [string POS_X = "bot", [string POS_Y = "lft", + [string POS_Z = "bot", [const string DDASHED = "", [const + string PPEN = "", [const Point& SHIFT_X = `origin', [const + Point& SHIFT_Y = `origin', [const Point& SHIFT_Z = `origin', + [Picture& PICTURE = `current_picture']]]]]]]]]]) + These functions draw lines centered on the origin, and ending in + arrows in the directions of the positive x, y, and z-axes, and + labels them with the appropriate letters. `draw_axes()' is used in + many of the figures in this handbook. It can be helpful in + determining whether a `Focus' has a good "`up'" direction. *Note + Focus Reference; Data Members: Focus Data Members. + + In the first version, all of the arguments are optional. In the + second version, DDRAW_COLOR is required and has been moved to the + front of the argument list. This version is often convenient, + when a `Color' other than the default is desired. + + The arguments: + DIST + The length of the lines drawn. The default is 2.5. The + value 0 can be used as a dummy argument, if the default for + DIST is desired, but other arguments must be specified. + + + POS_X + POS_Y + POS_Z + The position arguments for the labelling commands for each of + the axes. The defaults are `"bot"' for the x and z-axes, and + `"lft"' for the y-axis. The usual `strings' for the position + of labels can be used, namely: `"top"', `"bot"', `"lft"', + `"rt"', `"ulft"', `"urt"', `"llft"', `"lrt"', and `""'. If + `""' is used, that axis is not drawn. This can be useful for + parallel projections onto one of the major planes(3). In + addition, `"d"' can be used to indicate that the default + should be used for that label. This can be useful if one + needs a placeholder, but doesn't remember what the default is + for that label. + + draw_axes(0, "bot", "rt", ""); + current_picture.output(Projections::PARALLEL_X_Y); + + In addition, the arguments SHIFT_X, SHIFT_Y, and SHIFT_Z can + be used to adjust the positions of the labels further (see + below). + + DDRAW_COLOR + DDASHED + PPEN + Arguments for the `drawarrow()' command, described above, in + this section. + + SHIFT_X + SHIFT_Y + SHIFT_Z + Offsets for the labels. These arguments make it possible to + adjust the positions of the labels. The defaults are + `origin', so no shifting takes place, if they are used. In + [next figure] , `draw_axes' is called without any arguments, + so the defaults are used. + + draw_axes(); + + In [next figure] , the `Point P' is used to shift the labels. + Please note that placeholders must be used for the first + arguments. + + Point P(.5, .5, .5); + draw_axes(0, "d", "d", "d", black, "", "", P, -P, P); + + Please note that the `Points' used for placing the labels are + three-dimensional `Points', whether the SHIFT_X, SHIFT_Y, + and/or SHIFT_Z arguments are used or not. It is not + currently possible to adjust the positions of the labels on + the two-dimensional projection itself. This would probably + be more useful, but would require changing the way + `Picture::output()' functions. + + PICTURE + The `Picture', onto which the `Paths' and `Labels' are put. + + - `const' function: void fill ([const Color& FFILL_COLOR = + `*Colors::default_color', [Picture& PICTURE = + `current_picture']]) + - Function: void fill (Picture& PICTURE, [const Color& FFILL_COLOR = + `*Colors::default_color']) + Allocates a copy of the `Path' on the free store, puts a pointer to + it onto PICTURE.`shapes', sets its `fill_draw_value' to `FILL', and + its `fill_color' to `*FFILL_COLOR'. + + The second version is convenient for passing a `Picture' argument + without having to specify all of the other arguments. + + The arguments are similar to those of `draw()', except that the + `Color' argument is called FFILL_COLOR instead of DDRAW_COLOR. + + p.fill(gray); + + + - `const' function: void filldraw ([const Color& DDRAW_COLOR = + `*Colors::default_color', [const Color& FFILL_COLOR = + `*Colors::background_color', [string DDASHED = "", [string + PPEN = "", [Picture& PICTURE = `current_picture']]]]]) + - `const' function: void filldraw (Picture& PICTURE, [const Color& + DDRAW_COLOR = `*Colors::default_color', [const Color& + FFILL_COLOR = `*Colors::background_color', [string DDASHED = + "", [string PPEN = ""]]]]) + Allocates a copy of the `Path' on the free store, puts a pointer to + the copy onto PICTURE.`shapes', sets its `fill_draw_value' to + `FILLDRAW', its `draw_color' and `fill_color' to `*DDRAW_COLOR' + and `*FFILL_COLOR', respectively, its `dashed' to DDASHED, and its + `pen' to PPEN. + + The second version is convenient for passing a `Picture' argument + without having to specify all of the other arguments. + + The arguments are similar to those of `draw()' and `fill()', + except that both DDRAW_COLOR and FFILL_COLOR are used. + + 3DLDF's `filldraw()' differs from Metafont's and MetaPost's + `filldraw' commands: In Metafont and MetaPost, `filldrawing' is + equivalent to filling a `path' and then drawing its border using + the `pen'. Metafont does not have colors. While MetaPost does, + its `filldraw' command does not foresee the use of different + colors for drawing and filling. + + p.filldraw(black, gray, "", "pencircle scaled 2mm"); + + It can often be useful to draw the outline of a `Path', but to have + it hide objects that lie behind it. This is why the default for + FFILL_COLOR is `*Colors::background_color'. + + default_focus.set(3, 0, -10, 3, 10, 10, 10); + Point p[8]; + p[0] = p[1] = p[2] = p[3] = p[4] + = p[5] = p[6] = p[7].set(-1,-1, 5); + p[1] *= p[2] *= p[3] *= p[4] *= p[5] + *= p[6] *= p[7].rotate(0, 0, 45); + p[2] *= p[3] *= p[4] + *= p[5] *= p[6] *= p[7].rotate(0, 0, 45); + p[3] *= p[4] *= p[5] *= p[6] + *= p[7].rotate(0, 0, 45); + p[4] *= p[5] *= p[6] *= p[7].rotate(0, 0, 45); + p[5] *= p[6] *= p[7].rotate(0, 0, 45); + p[6] *= p[7].rotate(0, 0, 45); + p[7].rotate(0, 0, 45); + Path r0("..", true, &p[0], &p[1], &p[2], + &p[3], &p[4], &p[5], &p[6], &p[7], 0); + r0.filldraw(black, light_gray); + r0.scale(2, .5); + r0.shift(0, 0, -2.5); + r0.filldraw(black, gray); + r0.scale(.25, 3); + r0.shift(0, 0, -2.5); + r0.filldraw(); + + + - Function: void undraw ([string DDASHED = "", [string PPEN = "", + [Picture& PICTURE = `current_picture']]]) + - Function: void undraw (Picture& PICTURE, [string DDASHED = "", + [string PPEN = ""]]) + Allocates a copy of the `Path' on the free store, puts a pointer to + it on PICTURE.`shapes', sets its `fill_draw_value' to `UNDRAW', and + the values of its `dashed' and `pen' according to the arguments. + + The second version is convenient for passing a `Picture' argument + without having to specify all of the other arguments. + + This function "undraws" a `Path'. This is equivalent to drawing + the `Path' using the background color + (`*Colors::background_color'). + + Undrawing is useful for removing a portion of a `Path'. + + Point P0(1, 1); + Point P1(2, 1); + Point P2(2, 3); + Point P3(-1, 1); + Path p("--", false, &origin, &P0, &P1, &P2, &P3, 0); + p.draw(black, "", "pencircle scaled 3mm"); + p.undraw("", "pencircle scaled 1mm"); + + + - Function: void unfill ([Picture& PICTURE = `current_picture']) + Allocates a copy of the `Path' on the free store, puts a pointer to + it on PICTURE.`shapes' and sets its `fill_draw_value' to `UNFILL' + + This function is useful for removing a portion of a filled region. + + Point pt[4]; + pt[0].set(-2, -2); + pt[1].set(2, -2); + pt[2].set(2, 2); + pt[3].set(-2, 2); + Path p("--", true, &pt[0], &pt[1], &pt[2], &pt[3], 0); + p.draw(); + p.dotlabel(); + p.filldraw(black, gray); + p.scale(.5, .5); + p.unfill(); + + + - Function: void unfilldraw ([const Color& DDRAW_COLOR = + `*Colors::background_color', [string DDASHED = "", [string + PPEN = "", [Picture& PICTURE = current_picture]]]]) + - Function: void unfilldraw (Picture& PICTURE, [const Color& + DDRAW_COLOR = `*Colors::background_color', [string DDASHED = + "", [string PPEN = ""]]]) + Allocates a copy of the `Path' on the free store, puts a pointer to + it on PICTURE.`shapes', sets its `fill_draw_value' to + `UNFILLDRAW', and the values of its `draw_color', `dashed', and + `pen' according to the arguments. While the default for + DDRAW_COLOR is `*Colors::background_color', any other `Color' can + be used, so that `unfilldraw()' can unfill a `Path' and draw an + outline around it. + + The second version is convenient for passing a `Picture' argument + without having to specify all of the other arguments. + + This function is similar to `unfill()' (*note Path Reference; + Drawing and Filling: Drawing and Filling Paths.), except that the + outline of the `Path' will be "undrawn" using the pen specified + with the PPEN argument, or MetaPost's `currentpen', if no PPEN + argument is specified. In addition, the `Path' will be drawn + using the `Color' specified in the DDRAW_COLOR argument. Since + the default is `*Colors::background_color', the `Path' will be + "undrawn" unless a different `Color' is specified. + + Point pt[6]; + pt[0].set(-2, -2); + pt[1].set(0, -3); + pt[2].set(2, -2); + pt[3].set(2, 2); + pt[4].set(0, 3); + pt[5].set(-2, 2); + Path p("--", true, &pt[0], &pt[1], &pt[2], + &pt[3], &pt[4], &pt[5], 0); + p.fill(gray); + p.scale(.5, .5); + p.unfilldraw(black, "", "pensquare xscaled 3mm"); + + + ---------- Footnotes ---------- + + (1) Hobby, `A User's Manual for MetaPost', p. 32. + + (2) Knuth, `The METAFONTbook', Chapter 4, p. 21ff. Hobby, `A User's +Manual for MetaPost', p. 32. + + (3) The usual interpretation of `""' as a position argument to a +labelling command would be to put it directly onto `*(Label.pt)', which +in this case would put it onto the arrowhead. Since this will probably +never be desirable, I've decided to use `""' to suppress drawing axes. +Formerly, `draw_axes()' used three additional arguments for this +purpose. + + +File: 3DLDF.info, Node: Labelling Paths, Next: Showing Paths, Prev: Drawing and Filling Paths, Up: Path Reference + +Labelling +========= + + - `const' function: void label ([unsigned int I = 0, [string + POSITION_STRING = "top", [short TEXT_SHORT = 0, [bool DOT = + `false', [Picture& PICTURE = `current_picture']]]]]) + - `const' function: void label (Picture& PICTURE, [unsigned int I = 0, + [string POSITION_STRING = "top", [short TEXT_SHORT = 0, [bool + DOT = `false']]]]) + Calls `Point::label()' on all of the `Points' on `points'. They + are numbered consecutively starting with I. The other arguments + are used for all of the `Points', so it's not possible to specify + different positions for the labels for different `Points'. DOT + will normally not be specified, unless a PICTURE argument is used + in the first version. `dotlabel()' calls `label()' with DOT = + `true'. + + The second version is convenient for passing a `Picture' argument + without having to specify all of the other arguments. + + - `const' function: void dotlabel ([unsigned int I = 0, [string + POSITION_STRING = "top", [short TEXT_SHORT = 0, Picture& + PICTURE = `current_picture']]]) + - `const' function: void dotlabel (Picture& PICTURE, [unsigned int I = + 0, [string POSITION_STRING = "top", [short TEXT_SHORT = 0]]]) + Like `label()', except that the `Points' are dotted. + + +File: 3DLDF.info, Node: Showing Paths, Next: Querying Paths, Prev: Labelling Paths, Up: Path Reference + +Showing +======= + + - `const' function: void show ([string TEXT = "", [char COORDS = 'w', + [const bool DO_PERSP = `true', [const bool DO_APPLY = `true', + [Focus* F = 0, [const unsigned short PROJ = + `Projections::PERSP', [const real FACTOR = 1]]]]]]]) + Prints information about the `Path' to standard output (`stdout'). + TEXT is simply printed out, unless it's the empty string, in + which case `"Path:"' is printed out. COORDS indicates which set + of coordinates should be shown. Valid values are `'w'' for the + `world_coordinates', `'p'' for the `projective_coordinates', `'u'' + for the `user_coordinates', and `'v'' for the `view_coordinates', + whereby the latter two are currently not in use (*note Point + Reference; Data Members: Point Data Members.). If DO_APPLY is + `true', `apply_transform()' is called on each `Point', updating + its `world_coordinates' and resetting its `transform'. Otherwise, + it's not. The arguments DO_PERSP, F, PROJ, and FACTOR are only + relevant when showing `projective_coordinates'. If `do_persp' is + `true', the `Points' are projected using the values of F, PROJ, + and FACTOR (*note Path Reference; Outputting: Outputting Paths.). + Otherwise, the values currently stored in `projective_coordinates' + are shown. The `Points' and connectors are printed out + alternately to standard output, followed by the word "cycle", if + `cycle_switch = true'.(1) + + default_focus.set(0, 3, -10, 0, 3, 10, 10); + Reg_Polygon r(origin, 5, 3, 45); + r.fill(gray); + Point p[10]; + for (int i = 0; i < 5; ++i) + p[i] = r.get_point(i); + p[5] = Point::intersection_point(p[4], p[0], p[2], p[1]).pt; + p[6] = Point::intersection_point(p[0], p[1], p[2], p[3]).pt; + p[7] = Point::intersection_point(p[1], p[2], p[4], p[3]).pt; + p[8] = Point::intersection_point(p[2], p[3], p[0], p[4]).pt; + p[9] = Point::intersection_point(p[3], p[4], p[0], p[1]).pt; + Path q("--", true, &p[0], &p[5], &p[1], &p[6], &p[2], &p[7], + &p[3], &p[8], &p[4], &p[9], 0); + q.draw(); + q.show("q:"); + -| q: + fill_draw_value == 0 + (0, 1.06066, 1.06066) + -- (-2.30826, 2.24651, 2.24651) + -- (-1.42658, 0.327762, 0.327762) + -- (-3.73485, -0.858092, -0.858092) + -- (-0.881678, -0.858092, -0.858092) + -- (4.92996e-07, -2.77684, -2.77684) + -- (0.881678, -0.858092, -0.858092) + -- (3.73485, -0.858092, -0.858092) + -- (1.42658, 0.327762, 0.327762) + -- (2.30826, 2.24651, 2.24651) -- cycle; + q.show("q:", 'p'); + -| q: + fill_draw_value == 0 + Projective coordinates. + (0, -1.75337, 0.0958948) + -- (-1.88483, -0.615265, 0.183441) + -- (-1.38131, -2.58743, 0.031736) + -- (-4.08541, -4.22023, -0.0938636) + -- (-0.964435, -4.22023, -0.0938636) + -- (0, -7.99767, -0.384436) + -- (0.964436, -4.22023, -0.0938636) + -- (4.08541, -4.22023, -0.0938636) + -- (1.38131, -2.58743, 0.031736) + -- (1.88483, -0.615266, 0.183441) -- cycle; + + + - Function: void show_colors ([bool = `false']) + Shows the values of `draw_color' and `fill_color'. These will + normally be 0, unless the `Path' is on a `Picture'. + + ---------- Footnotes ---------- + + (1) The following example shows only one `Point' per line. In +actual use, two `Points' are shown, but this causes overfull boxes in +Texinfo. + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-8 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-8 --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-8 1970-01-01 01:00:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-8 2003-12-10 18:44:55.000000000 +0100 @@ -0,0 +1,1234 @@ +This is 3DLDF.info, produced by makeinfo version 4.5 from 3DLDF.texi. + +This is the 3DLDF User and Reference Manual, edition 1.1.4 for 3DLDF +1.1.4. This manual was last updated on 10 December 2003. 3DLDF is a +GNU package for three-dimensional drawing with MetaPost output. The +author is Laurence D. Finston. + + Copyright (C) 2003 Laurence D. Finston. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, and + no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License". + +INFO-DIR-SECTION GNU packages +START-INFO-DIR-ENTRY +* 3DLDF: (3DLDF). 3D drawing with MetaPost output. +END-INFO-DIR-ENTRY + + +File: 3DLDF.info, Node: Querying Paths, Next: Outputting Paths, Prev: Showing Paths, Up: Path Reference + +Querying +======== + + - `const' inline function: bool is_on_free_store (void) + Returns `true', if the `Path' was dynamically allocated on the + free store, otherwise `false'. + + - `const' virtual function: bool is_planar ([const bool VERBOSE = + `false', [string TEXT = ""]]) + Uses `get_normal()' to determine whether the `Path' is planar or + not. Returns `true', if it is, otherwise `false'. If VERBOSE is + `true', TEXT is written to standard output, or "Path:", if TEXT is + the empty string, followed by a message saying whether the `Path' + is planar or not. + + - `const' function: bool is_linear ([const bool VERBOSE = `false', + [string TEXT = ""]]) + Returns `true', if `line_switch' is `true'. Otherwise, + `is_linear()' uses `get_normal()' to determine whether the `Path' + is linear. If it is, `is_linear()' returns `true', otherwise + `false'. + + - Inline `const' function: bool is_cycle (void) + Returns `true' if the `Path' is cyclical, i.e., `cycle_switch = + true', otherwise `false'. Only cyclical `Paths' are fillable. + + - Inline function: int size (void) + Returns the number of `Points' on `points', i.e., `points.size()'. + + - Inline `const' function: bool get_line_switch (void) + Returns the value of `line_switch'. `line_switch' is only true, + if the `Path' was created, directly or indirectly, using the + constructor taking two `Point' arguments only. *Note Path + Reference; Constructors and Setting Functions: Path Constructors + and Setting Functions. + + - Function: real slope ([char A = 'x', [char B = 'y']]) + Returns the slope of the `Path' in the plane indicated by the + arguments, if `is_linear()' returns `true'. Otherwise, `slope()' + issues an error message and returns `INVALID_REAL'. + + - `const' function: Path subpath (size_t START, size_t END, [const + bool CYCLE = false, [const string CONNECTOR = ""]]) + Returns a new `Path' using `points[START]' through `points[END - + 1]'. If CYCLE is `true', then the new `Path' will be a cycle, + whether `*this' is or not. One optional connector argument can be + used. If it is, it will be the only connector. Otherwise, the + appropriate connectors from `*this' are used. + + START must be < END. It is not possible to have START > END, even + if `*this' is a cycle. + + - `const' function: const Point& get_point (const unsigned short A) + Returns the `Point' `*points[A]', if A < `points.size()' and the + `Path' is non-empty, otherwise `INVALID_POINT'. + + - `const' function: const Point& get_last_point (void) + Returns the `Point' pointed to by the last pointer on `points'. + Equivalent to `get_point(get_size() - 1)', but more convenient to + type. Returns `INVALID_POINT', if the `Path' is empty. + + - `const' inline virtual function: size_t get_size (void) + Returns `points.size()'. + + - `const' function: Line get_line (void) + Returns a `Line' corresponding to the `Path', if the latter is + linear. Otherwise, `INVALID_LINE' is returned. *Note Line + Reference::. + + - `const' virtual function: Point get_normal (void) + Returns a `Point' representing a unit vector in the direction of + the normal to the plane of the `Path', or `INVALID_POINT', if the + `Path' is non-planar. + + Point P(1, 1, 1); + Rectangle r(P, 4, 4, 30, 30, 30); + Point N = r.get_normal(); + + In 3DLDF, plane figures generally have constructors taking a + |Point| argument for the center, a variable number of |real| + arguments for the dimensions, and three |real| arguments for the + rotation about the major axes. The object is first created in the + x-z plane, and the `Points' are generated to be traversed in the + counter-clockwise direction, when seen from a `Point' with a + positive y-coordinate. If no rotation is specified, the normal + will point in the direction of the positive y-axis. If non-zero + arguments are used for rotation, the normal will be rotated + accordingly. This direction considered to be "outside". However, + according to Huw Jones, `Computer Graphics Through Key + Mathematics', p. 197, "outside" is considered to be the side of a + plane, where the `Points' are meant to be traversed in the + clockwise direction. I hope that no problems arise from this + discrepancy! + + - `const' virtual function: Plane get_plane (void) + Creates and returns a `Plane' P corresponding to the `Path', if + the latter is planar, otherwise `INVALID_PLANE'. If the `Path' is + planar, P.`point' will be the `Point' pointed to by + `this->points[0]'. *Note Plane Reference::. + + Point P(1, 1, 1); + Rectangle r(P, 4, 4, 45, 20, 15); + Plane q = r.get_plane(); + q.show("q:"); + -| q: + normal: (0.0505914, 0.745607, -0.664463) + point: (0.0178869, -0.727258, -1.01297) + distance == -0.131735 + + + - Function: void set_cycle ([const bool C = `true']) + Sets `cycle_switch' to C. + + - Function: Path reverse (bool ASSIGN) + - `const' function: Path reverse (void) + These functions return a `Path' with the same `Points' and + connectors as `*this', but in reversed order. `reverse()' can + only be applied to non-cyclical `Paths'. If `*this' is a cycle, + `reverse()' issues an error message and returns `*this' unreversed. + + If the first version is called with ASSIGN = `true', `*this' + itself is reversed. If `*this' should remain unchanged, the + `const' version without an argument should be called. If, on the + other hand, the first version is called with ASSIGN = `false', a + warning message is issued, but the reversed `Path' is returned + just the same, leaving `*this' unchanged. + + + +File: 3DLDF.info, Node: Outputting Paths, Next: Path Intersections, Prev: Querying Paths, Up: Path Reference + +Outputting +========== + + - Function: bool project (const Focus& F, const unsigned short PROJ, + real FACTOR) + Calls `Point::project(F, PROJ, FACTOR)' on the `Points' on the + `Path'. If `Point::project()' fails (i.e., returns `false'), for + any of the `Points', this function returns `false'. Otherwise, it + returns `true'. + + - Function: vector extract (const Focus& F, const unsigned + short PROJ, real FACTOR) + Checks that the `Points' on `points' can be projected using the + values for F, PROJ, and FACTOR. If they can, a `vector' + containing only `this' is returned. Called in `Picture::output()'. + + - Virtual function: bool set_extremes (void) + Sets the appropriate elements in `projective_extremes' to the + minimum and maximum values of the x, y, and z-coordinates of the + `Points' on the `Path'. Used in `Picture::output()' for + determining whether a `Path' can be output using the arguments + passed to `Picture::output()'. + + - Inline `const' virtual function: const valarray get_extremes + (void) + Returns `projective_extremes'. Used in `Picture::output()'. + + - `const' virtual function: real get_minimum_z (void) + - `const' virtual function: real get_mean_z (void) + - `const' virtual function: real get_maximum_z (void) + These functions return the minimum, mean, or maximum value, + respectively, of the z-coordinates of the `Points' on the `Path'. + Used in the surface hiding algorithm in `Picture::output()'. + + - Virtual function: void suppress_output (void) + Called in `Picture::output()'. Sets `do_output' to `false', if + the `Path' cannot be output using the arguments passed to + `Picture::output()'. + + - Virtual function: void unsuppress_output (void) + Called in `Picture::output()'. Resets `do_output' to `true' after + `output()' is called on the `Shapes' on `shapes' in a `Picture', + so that the `Path' can be output if `Picture::output()' is called + again, with arguments that allow the `Path' to be output. + + - Virtual function: void output (void) + Called in `Picture::output()'. Writes the MetaPost code to + `out_stream' for drawing, filling, filldrawing, undrawing, + unfilling, or unfilldrawing the `Path', if the latter was + projectable using the arguments passed to `Picture::output()'. + + +File: 3DLDF.info, Node: Path Intersections, Prev: Outputting Paths, Up: Path Reference + +Intersections +============= + + - Function: bool_point intersection_point (const Path& P, const bool + TRACE) + Finds the intersection point, if any, of two linear `Paths'. Let + `bp' be the `bool_point' returned by this function. `bp.pt' will + contains the intersection point, if it exists. If not, it will + contain `INVALID_POINT'. If the intersection point exists and + lies on both of the line segments represented by the `Path' and + `p', `bp.b' will be `true', otherwise, `false'. + + This function calls `Point::intersection_points()', passing the + first and last `Points' on `*this' and P as its arguments. If the + TRACE argument is `false', the version of + `Point::intersection_points()' that finds the intersection point by + means of a vector calculation is used. If it's `true', the version + that finds the intersection point of the traces of the lines on the + major planes is used. *Note Point Reference; Intersections: Point + Intersections. + + Point A(-1, -1, -1); + Point B(1, 1, 1); + Path p0(A, B); + Point C(-2, 1, 1); + Point D(1.75, 0.25, 0.25); + Path p1(C, D); + bool_point bp = p0.intersection_point(p1); + bp.pt.dotlabel("$i$"); + bp.pt.show("bp.pt:"); + -| bp.pt: (0.5, 0.5, 0.5) + + + +File: 3DLDF.info, Node: Polygon Reference, Next: Regular Polygon Reference, Prev: Path Reference, Up: Top + +Polygon Reference +***************** + + Class `Polygon' is defined in `polygons.web', and is derived from +`Path', using public derivation. + + `Polygon' is mainly intended for use as a base class for more +specialized kinds of polygons. Currently, the classes `Reg_Polygon' +(regular polygon) and `Rectangle' are defined. *Note Regular Polygon +Reference::, and *Note Rectangle Reference::. + +* Menu: + +* Polygon Data Members:: +* Polygon Operators:: +* Querying Polygons:: +* Affine Transformations for Polygons:: +* Polygon Intersections:: + + +File: 3DLDF.info, Node: Polygon Data Members, Next: Polygon Operators, Prev: Polygon Reference, Up: Polygon Reference + +Data Members +============ + + - Private variable: Point center + The center of the `Polygon', if it has one. However, a `Polygon' + need not have a `center'. If it doesn't, `center' should be set + to `INVALID_POINT'. + + +File: 3DLDF.info, Node: Polygon Operators, Next: Querying Polygons, Prev: Polygon Data Members, Up: Polygon Reference + +Operators +========= + + - Virtual operator: Transform operator*= (const Transform& T) + Multiplies a `Polygon' by the `Transform' T. Similar to + `Path::operator*=(const Transform& t)', except that `center' is + transformed as well. *Note Path Reference; Operators: Path + Operators. + + +File: 3DLDF.info, Node: Querying Polygons, Next: Affine Transformations for Polygons, Prev: Polygon Operators, Up: Polygon Reference + +Querying +======== + + - Virtual function: const Point& get_center (void) + - `const' function: Point get_center (void) + These functions return `center'. If the `Polygon' doesn't contain + any `Points', a warning is issued, and `INVALID_POINT' is returned. + + +File: 3DLDF.info, Node: Affine Transformations for Polygons, Next: Polygon Intersections, Prev: Querying Polygons, Up: Polygon Reference + +Affine Transformations +====================== + + - Virtual function: Transform rotate (const real X, [const real Y = 0, + [const real Z = 0]]) + - Virtual function: Transform rotate (const Point& P0, const Point& + P1, [const real ANGLE = 180]) + - Virtual function: Transform rotate (const Path& P, [const real ANGLE + = 180]) + - Virtual function: Transform scale (real X, [real Y = 1, [real Z = + 1]]) + - Virtual function: Transform shear (real XY, [real XZ = 0, [real YX = + 0, [real YZ = 0, [real ZX = 0, [real ZY = 0]]]]]) + - Virtual function: Transform shift (real X, [real Y = 0, [real Z = + 0]]) + - Virtual function: Transform shift (const Point& P) + - Virtual function: void shift_times (real X, [real Y = 1, [real Z = + 1]]) + - Virtual function: void shift_times (const Point& P) + The affine transformation functions for `Polygon' differ from the + `Path' versions only in that `center' is transformed as well. + *Note Path Reference; Affine Transformations: Affine + Transformations for Paths. + + Please note, that the classes currently derived from `Polygon', + namely `Reg_Polygon' and `Rectangle', currently inherit these + functions from `Polygon'. The problem with this is, that they have + data members, which are not recalculated when a `Reg_Polygon' or + `Rectangle' is transformed. I plan to do something about this + soon! It will also be necessary to add the function + `Reg_Polygon::is_reg_polygonal()', in order to test whether + operations on a `Reg_Polygon' have caused it to become irregular + and/or non-polygonal. Similarly, the function + `Rectangle::is_rectangular()' must be added, to test whether + operations on a `Rectangle' has caused it to become + non-rectangular. *Note Regular Polygon Reference; Data Members: + Regular Polygon Data Members, and *Note Rectangle Reference; Data + Members: Rectangle Data Members. + + +File: 3DLDF.info, Node: Polygon Intersections, Prev: Affine Transformations for Polygons, Up: Polygon Reference + +Intersections +============= + + - `const' function: bool_point_pair intersection_points (const Point& + P0, const Point& P1) + - `const' function: bool_point_pair intersection_points (const Path& P) + These functions find the intersections of the `Polygon' and a line. + In the first version, the `Point' arguments are the end points of + the line. The argument to the second version must be a linear + `Path'. + + A line and a regular polygon or rectangle(1) can intersect at two + points at most. Let `b' be a `bool_point_pair' returned by + `intersection_points()'. If no intersection points are found, + `b.first.pt' and `b.second.pt' will be `INVALID_POINT', and + `b.first.b' and `b.second.b' will be `false'. If a single + intersection point is found, the corresponding `Point' will be + stored in `b.first.pt'. If the `Point' is on the line segment + p_0p_1 , `b.first.b' will be `true', otherwise `false'. If a + second intersection point is found, it will be stored in + `b.second.pt', and `b.second.b' is set analogously to `b.first.b'. + + When the `Point' arguments and the `Reg_Polygon' are coplanar, as + in [next figure] , two intersection points are possible. In this + case, only intersection points of the line with an edge of the + `Reg_Polygon' are returned in the `bool_point_pair'. + + Point A(1, 1, 1); + Reg_Polygon r(origin, 5, 3); + Transform t; + t.rotate(15, 12, 11); + t.shift(A); + Point P(-2, 0, -1); + Point Q(2, 0, 1); + P *= Q *= r *= t; + bool_point_pair bpp = r.intersection_points(P, Q); + bpp.first.pt.dotlabel("$f$", "rt"); + bpp.second.pt.dotlabel("$s$"); + + In [next figure] , the lines BC and PQ + + are not coplanar with the `Reg_Polygon' r. In each case, only one + intersection point is possible, and it can be either an + intersection with an edge of the `Reg_Polygon', or lie within its + perimeter. + + Point B(r.get_point(3).mediate(r.get_point(4))); + Point C(B); + B.shift(0, 2, .5); + C.shift(0, -2, -.5); + Point P(-1, -2, -1); + Point Q(0, 2, 1); + B *= C *= P *= Q *= r *= t; + bool_point_pair bpp = r.intersection_points(B, C); + bpp.first.pt.dotlabel("$i_0$", "rt"); + bpp = r.intersection_points(P, Q); + bpp.first.pt.dotlabel("$i_1$", "rt"); + + In [next figure] , the intersection point of r with the line PQ + + does not lie on the line _segment_ PQ. + + bpp = r.intersection_points(P, Q); + bpp.first.pt.dotlabel("$i$", "rt"); + cout << "bpp.first.b == " << bpp.first.b << endl << flush; + -| bpp.first.b == 0 + + + - `const' function: vector intersection_points (const Polygon& + R) + Finds the intersection points of two `Polygons'. Let v be the + `vector' returned by `intersection_points()'. If the + `Polygons' are coplanar, v will contain the intersection points of + the edges of the `Polygons', as in [next figure] . + + Rectangle r(origin, 4, 4); + Reg_Polygon rp(origin, 5, 5, 0, 36); + rp.shift(0, 0, .25); + vector v = r.intersection_points(rp); + + If the `Polygons' lie in parallel planes, there can be no + intersection points. If they lie in non-parallel, non-coplanar + planes, `intersection_points()' first finds the intersection line + of the two planes. Then it finds the intersection points of this + line with the two `Polygons', if they exist. There can no more + than four intersection points, in this case. v[0] and v[1] will + be the intersection points of the line with `*this', while v[2] and + v[3] will be the intersection points of the line with R. If one + or more of the intersection points doesn't exist, the corresponding + member of v will contain `INVALID_POINT' as a placeholder. + + Point A(1, 1, 1); + Rectangle r(A, 4, 4); + Reg_Polygon p(A, 5, 5); + p.rotate(90, 30); + p.shift(2, 0, 3); + vector v = r.intersection_points(p); + + In [next figure] , the `Rectangle' r and the `Reg_Polygon' p don't + overlap at all, nor does the intersection line of the two planes + intersect with p. However, it does intersect with p at the + labelled `Points'. + + Point A(1, 1, 1); + Rectangle r(A, 4, 4); + Reg_Polygon p(A, 5, 5); + p.rotate(90, 30); + p.shift(4, 3, 3); + vector v = r.intersection_points(p); + int i = 0; + for (vector::iterator iter = v.begin(); + iter != v.end(); ++iter) + iter->dotlabel(i++, "bot"); + + + ---------- Footnotes ---------- + + (1) `Reg_Polygon' and `Rectangle' are currently the only classes +derived from `Polygon'. + + +File: 3DLDF.info, Node: Regular Polygon Reference, Next: Rectangle Reference, Prev: Polygon Reference, Up: Top + +Regular Polygon Reference +************************* + + Class `Reg_Polygon' is defined in `polygons.web', and is derived +from `Polygon', using public derivation. + + As noted above in *Note Polygon Reference; Affine Transformations: +Affine Transformations for Polygons, `class Reg_Polygon', like `class +Rectangle', currently inherits its transformation functions and +`operator*=(const Transform&)' from `Polygon'. Consequently, the data +members of a `Reg_Polygon', except for `center', are not recalculated +when it's transformed. I plan to change this soon! It will also be +necessary to add the function `Reg_Polygon::is_reg_polygonal()', in +order to test whether a `Reg_Polygon' is still regular and polygonal. + +* Menu: + +* Regular Polygon Data Members:: +* Regular Polygon Constructors and Setting Functions:: +* Regular Polygon Operators:: +* Querying Regular Polygons:: +* Circles for Regular Polygons:: + + +File: 3DLDF.info, Node: Regular Polygon Data Members, Next: Regular Polygon Constructors and Setting Functions, Prev: Regular Polygon Reference, Up: Regular Polygon Reference + +Data Members +============ + + - Private variable: real internal_angle + The angle at the center of the `Reg_Polygon' of the triangle formed + by the center and two adjacent corners. If n is the number of + sides of a `Reg_Polygon', `internal_angle' will be 360.0/n, so + `internal_angle' will be 120 for a regular triangle, 90 for a + square, 72 for a pentagon, etc. + + - Private variable: real radius + The radius of the surrounding circle for a `Reg_Polygon' (Umkreis). + + - Private variable: unsigned short sides + The number of sides of a `Reg_Polygon'. + + - Private variable: bool on_free_store + `true', if the `Reg_Polygon' was dynamically allocated on the free + store, otherwise `false'. Dynamic allocation of `Reg_Polygons' + should only be performed by `create_new_reg_polygon()', which sets + `on_free_store' to `true'. + + +File: 3DLDF.info, Node: Regular Polygon Constructors and Setting Functions, Next: Regular Polygon Operators, Prev: Regular Polygon Data Members, Up: Regular Polygon Reference + +Constructors and Setting Functions +================================== + + - Default constructor: void Reg_Polygon (void) + Creates an empty `Reg_Polygon'. + + - Constructor: void Reg_Polygon (const Point& CCENTER, const unsigned + short SSIDES, const real DDIAMETER, [const real ANGLE_X = 0, + [const real ANGLE_Y = 0, [const real ANGLE_Z = 0]]]) + Creates a `Reg_Polygon' in the x-z plane, centered at the origin, + with the number of sides specified by SSIDES and with `radius' = + DDIAMETER / 2. + + The `Reg_Polygon' is rotated about the x, y, and z-axes in that + order by the angles given by ANGLE_X, ANGLE_Y, and ANGLE_Z, + respectively, if any one of them is non-zero. Finally, the + `Reg_Polygon' is shifted such that its center is located at + CCENTER. + + Reg_Polygon r(origin, 3, 2.75, 10, 15, 12.5); + r.draw(); + + + - Setting function: void set (const Point& CCENTER, const unsigned + short SSIDES, const real DDIAMETER, [const real ANGLE_X = 0, + [const real ANGLE_Y = 0, [const real ANGLE_Z = 0]]]) + Corresponds to the constructor above. + + A `Reg_Polygon' can theoretically have any number of sides, however + I haven't tested it for unreasonably large values. The following + example demonstrates that `set()' can be used to change a + `Reg_Polygon'. + + Reg_Polygon r; + real j = .5; + for (int i = 3; i <= 16; ++i) + { + r.set(origin, i, j); + r.draw(); + j += .5; + } + + + - Static function: Reg_Polygon* create_new_reg_polygon ([const + Reg_Polygon* R = 0]) + - Static function: Reg_Polygon* create_new_reg_polygon (const + Reg_Polygon& R) + Pseudo-constructors for dynamic allocation. In the first version, + R is an optional pointer argument. If R is non-zero, the new + `Reg_Polygon' will be a copy of *R. Otherwise, it will be empty. + + In the second version, R is a required reference argument, and the + new `Reg_Polygon' will be a copy of R. + + +File: 3DLDF.info, Node: Regular Polygon Operators, Next: Querying Regular Polygons, Prev: Regular Polygon Constructors and Setting Functions, Up: Regular Polygon Reference + +Operators +========= + + - Operator: const Reg_Polygon& operator= (const Reg_Polygon& P) + Makes the `Reg_Polygon' a copy of P. + + +File: 3DLDF.info, Node: Querying Regular Polygons, Next: Circles for Regular Polygons, Prev: Regular Polygon Operators, Up: Regular Polygon Reference + +Querying +======== + + - `const' inline function: real get_radius (void) + Returns `radius'. + + +File: 3DLDF.info, Node: Circles for Regular Polygons, Prev: Querying Regular Polygons, Up: Regular Polygon Reference + +Circles +======= + + - `const' function: Circle in_circle (void) + Returns the enclosed `Circle' of the `Reg_Polygon'. + + Point P(0, -1, 1); + Reg_Polygon h(P, 6, 4, 15, 12, 11.5); + h.filldraw(black, gray); + Circle c = h.in_circle(); + c.unfilldraw(black); + + + - `const' function: Circle draw_in_circle ([const Color& DDRAW_COLOR = + `*Colors::default_color', [const string DDASHED = "", [const + string] PPEN = "", [Picture& PICTURE = `current_picture']]]) + - `const' function: Circle draw_in_circle ([Picture& PICTURE = + `current_picture', [const Color& DDRAW_COLOR = + `*Colors::default_color', [const string DDASHED = "", [const + string] PPEN = ""]]]) + Draws and returns the enclosed `Circle' of the `Reg_Polygon'. + + Point P(0, 1, 1); + Reg_Polygon h(P, 7, 4, 80, 2, 5); + h.draw(black, "evenly"); + h.draw_in_circle(); + + + - `const' function: Circle out_circle (void) + Returns the surrounding `Circle' of the `Reg_Polygon'. + + Point P(0, -1, 1); + Reg_Polygon h(P, 6, 4, 15, 12, 11.5); + Circle c = h.out_circle(); + c.filldraw(black, gray); + h.unfilldraw(black); + + + - `const' function: Circle draw_out_circle ([const Color& DDRAW_COLOR + = `*Colors::default_color', [const string DDASHED = "", + [const string] PPEN = "", [Picture& PICTURE = + `current_picture']]]) + - `const' function: Circle draw_out_circle ([Picture& PICTURE = + `current_picture', [const Color& DDRAW_COLOR = + `*Colors::default_color', [const string DDASHED = "", [const + string] PPEN = ""]]]) + Draws and returns the surrounding `Circle' of the `Reg_Polygon'. + + Point P(0, 1, 1); + Reg_Polygon h(P, 7, 4, 80, 2, 5); + h.draw(black, "evenly"); + h.draw_out_circle(); + + + +File: 3DLDF.info, Node: Rectangle Reference, Next: Regular Closed Plane Curve Reference, Prev: Regular Polygon Reference, Up: Top + +Rectangle Reference +******************* + + Class `Rectangle' is defined in `rectangs.web', and is derived from +`Polygon', using public derivation. + + As noted above in *Note Polygon Reference; Affine Transformations: +Affine Transformations for Polygons, `class Rectangle', like `class +Reg_Polygon', currently inherits its transformation functions and +`operator*=(const Transform&)' from `Polygon'. Consequently, the data +members of a `Rectangle', except for `center', are not recalculated +when it's transformed. I plan to change this soon! It will also be +necessary to add the function `Rectangle::is_rectangular()', in order +to test whether a `Rectangle' is still rectangular. + +* Menu: + +* Rectangle Data Members:: +* Rectangle Constructors and Setting Functions:: +* Rectangle Operators:: +* Returning Points for Rectangles:: +* Querying Rectangles:: +* Ellipses for Rectangles:: + + +File: 3DLDF.info, Node: Rectangle Data Members, Next: Rectangle Constructors and Setting Functions, Prev: Rectangle Reference, Up: Rectangle Reference + +Data Members +============ + + - Private variables: real axis_h + - : real axis_v + The lengths of the horizontal and vertical axes, respectively, of + the `Rectangle'. Actually, they are merely the horizontal and + vertical axes by convention, since there are no restrictions on + the orientation of an `Rectangle'. + + Please note that `axis_h' and `axis_v' are currently not + recalculated, when a `Rectangle' is transformed. I plan to do + something about this soon. + + - Private variable: bool on_free_store + `true', if the `Rectangle' was dynamically allocated on the free + store, otherwise `false'. Dynamic allocation of `Rectangles' + should only be performed by `create_new_rectangle()', which sets + `on_free_store' to `true'. + + +File: 3DLDF.info, Node: Rectangle Constructors and Setting Functions, Next: Rectangle Operators, Prev: Rectangle Data Members, Up: Rectangle Reference + +Constructors and Setting Functions +================================== + + - Default constructor: void Rectangle (void) + Creates an empty `Rectangle'. + + - Constructor: void Rectangle (const Point& CCENTER, const real + AAXIS_H, const real AAXIS_V, [const real ANGLE_X = 0, [const + real ANGLE_Y = 0, [const real ANGLE_Z = 0]]]) + Creates a `Rectangle' in the x-z plane, centered at the origin, + with width == AAXIS_H (in the + or - x direction), and height == + AAXIS_V (in the + or - z direction). If one or more of the + arguments ANGLE_X, ANGLE_Y, or ANGLE_Z are used, it is rotated by + those amounts around the appropriate axes. Finally, the + `Rectangle' is shifted such that its center lies at CCENTER. + + Point C(-1, -1, 1); + Rectangle r(C, 3, 4, 30, 30, 30); + + + - Setting function: void set (const Point& CCENTER, const real + AAXIS_H, const real AAXIS_V, [const real ANGLE_X = 0, [const + real ANGLE_Y = 0, [const real ANGLE_Z = 0]]]) + Corresponds to the constructor described above. + + - Constructor: void Rectangle (const Point& P0, const Point& P1, const + Point& P2, const Point& P3) + Creates `Rectangle' using four `Point' arguments. The order of + the arguments must correspond with a path around the `Rectangle'. + + This function does not currently check that the arguments yield a + valid `Rectangle', therefore all code using it must ensure that + they do. + + - Setting function: void set (const Point& PT0, const Point& PT1, + const Point& PT2, const Point& PT3) + Corresponds to the constructor above. + + - Static functions: Rectangle* create_new_rectangle ([const Rectangle* + @var{r} = 0]) + - : Rectangle* create_new_rectangle (const Rectangle& R) + Pseudo-constructors for dynamic allocation. + + In the first version, R is an optional pointer argument. If R is + non-zero, the new `Rectangle' will be a copy of *R. Otherwise, it + will be empty. + + In the second version, R is a required reference argument, and the + new `Rectangle' will be a copy of R. + + +File: 3DLDF.info, Node: Rectangle Operators, Next: Returning Points for Rectangles, Prev: Rectangle Constructors and Setting Functions, Up: Rectangle Reference + +Operators +========= + + - Assignment Operator: const Rectangle& operator= (const Rectangle& R) + Makes the `Rectangle' a copy of R. + + +File: 3DLDF.info, Node: Returning Points for Rectangles, Next: Querying Rectangles, Prev: Rectangle Operators, Up: Rectangle Reference + +Returning Points +================ + + - Function: Point corner (unsigned short C) + Returns the corner `Point' indicated by the argument C, which must + be between 0 and 3. + + - `const' function: Point mid_point (unsigned short M) + Returns the mid-point of one of the sides. The argument C must be + between 0 and 3. + + +File: 3DLDF.info, Node: Querying Rectangles, Next: Ellipses for Rectangles, Prev: Returning Points for Rectangles, Up: Rectangle Reference + +Querying +======== + + - `const' functions: real get_axis_h (void) + - : real get_axis_v (void) + These functions return `axis_h' and `axis_v', respectively. + + Please note, that `axis_h' and `axis_v' are currently not + recalculated, when a `Rectangle' is transformed. I plan to do + something about this soon. + + - `const' function: bool is_rectangular (void) + Returns `true', if the `Rectangle' is rectangular, otherwise + `false'. Transformations, such as shearing, can cause + `Rectangles' to become non-rectangular. + + +File: 3DLDF.info, Node: Ellipses for Rectangles, Prev: Querying Rectangles, Up: Rectangle Reference + +Ellipses +======== + + - `const' function: Ellipse out_ellipse (`void') + Returns the smallest `Ellipse' that surrounds the `Rectangle'. + + Point P(-1, -1, 3); + Rectangle r(P, 3, 4, 60, 30, 15); + Ellipse e = r.out_ellipse(); + e.filldraw(black, gray); + r.unfilldraw(black); + + + - `const' function: Ellipse in_ellipse (`void') + Returns the `Ellipse' enclosed by the `Rectangle'. + + Point P(-1, -1, 3); + Rectangle r(P, 3, 4, 60, 30, 15); + Ellipse e = r.in_ellipse(); + r.filldraw(black, gray); + e.unfilldraw(black); + + + - `const' function: Ellipse draw_out_ellipse ([const Color& + ddraw_color = `*Colors::default_color', [string ddashed = "", + [string ppen = "", [Picture& picture = `current_picture']]]]) + Draws the smallest `Ellipse' that surrounds the `Rectangle'. The + arguments are like those of `Path::draw()' (*note Path Reference; + Drawing and Filling: Drawing and Filling Paths.). The return + value is the surrounding `Ellipse'. + + - `const' function: Ellipse draw_in_ellipse ([const Color& ddraw_color + = `*Colors::default_color', [string ddashed = "", [string + ppen = "", [Picture& picture = `current_picture']]]]) + Draws the `Ellipse' enclosed by the `Rectangle'. The arguments + are like those of `Path::draw()' (*note Path Reference; Drawing + and Filling: Drawing and Filling Paths.). The return value is the + enclosed `Ellipse'. + + +File: 3DLDF.info, Node: Regular Closed Plane Curve Reference, Next: Ellipse Reference, Prev: Rectangle Reference, Up: Top + +Regular Closed Plane Curve Reference +************************************ + + Class `Reg_Cl_Plane_Curve' is defined in `curves.web'. It is +derived from `Path' using `public' derivation. + + `Reg_Cl_Plane_Curve' is not called "`Regular_Closed_Plane_Curve'" +because the longer name causes too many "Overfull boxes"(1) in the +CWEAVE output of the program code. *Note CWEB Documentation::. + + `Reg_Cl_Plane_Curve' is meant to be used as a base class; no +objects should be declared of type `Reg_Cl_Plane_Curve'. Currently, +`class Ellipses' is derived from `Reg_Cl_Plane_Curve' and `class +Circle' is derived from `Ellipse'. + + At present, I have no fixed definition of what constitutes +"regularity" as far as `Reg_Cl_Plane_Curves' are concerned. Ellipses +and circles are "regular" in the sense that they have axes of symmetry. +There must be an equation for a `Reg_Cl_Plane_Curve', such as x^2 + +y^2 = r^2 for a circle. A derived class should have a `solve()' +function that uses this equation. +`Reg_Cl_Plane_Curve::intersection_points()' in turn uses `solve()' to +find the intersection points of a line with the `Reg_Cl_Plane_Curve'. +This way, the derived classes don't need their own functions for +finding their intersections with a line. However, such functions can +be added, if desired. + + It is assumed that classes derived from `Reg_Cl_Plane_Curve' are +fillable, which implies that they must be closed `Paths'. +`Reg_Cl_Plane_Curves' inherit their drawing and filling functions from +`Path'. + + The constructors and setting functions of classes derived from +`Reg_Cl_Plane_Curve' must ensure that the resulting geometric figures +are planar, convex, and that the number of `Points' they contain is a +multiple of 4. The latter assumption is of importance in +`intersection_points()', `segment()', `half()', and `quarter()'. *Note +Regular Closed Plane Curve Reference; Intersections: Regular Closed +Plane Curve Intersections, and *Note Regular Closed Plane Curve +Reference; Segments: Regular Closed Plane Curve Segments. + +* Menu: + +* Regular Closed Plane Curve Data Members:: +* Querying Regular Closed Plane Curves:: +* Regular Closed Plane Curve Intersections:: +* Regular Closed Plane Curve Segments:: + + ---------- Footnotes ---------- + + (1) If you don't know what "overfull boxes" are, don't worry about +it. It has to do with TeX's line and page breaking algorithms. If you +want to know more, see Knuth, Donald E., `The TeXbook'. + + +File: 3DLDF.info, Node: Regular Closed Plane Curve Data Members, Next: Querying Regular Closed Plane Curves, Prev: Regular Closed Plane Curve Reference, Up: Regular Closed Plane Curve Reference + +Data Members +============ + + - Protected variable: Point center + The center of the `Reg_Cl_Plane_Curve', if it has one. + + - Protected variable: unsigned short number_of_points + The number of `Points' on `points' in a `Reg_Cl_Plane_Curve'. + + +File: 3DLDF.info, Node: Querying Regular Closed Plane Curves, Next: Regular Closed Plane Curve Intersections, Prev: Regular Closed Plane Curve Data Members, Up: Regular Closed Plane Curve Reference + +Querying +======== + + - `const' inline virtual functions: bool is_quadratic (void) + - : bool is_cubic (void) + - : bool is_quartic (void) + These functions all return `false'. They are intended to be + overloaded by member functions of derived classes. + + - `const' inline virtual function: real_triple get_coefficients (real + SLOPE, real V_INTERCEPT) + Returns a `real_triple' with all three values == `INVALID_REAL'. + Intended to be overloaded by member functions of derived classes. + + - `const' inline virtual function: pair solve (char + AXIS_UNKNOWN, real KNOWN) + Returns a `pair' with `first' = `second' = + `INVALID_REAL'. Intended to be overloaded by member functions of + derived classes. + + - `const' virtual function: signed short location (Point REF_PT, Point + P) + Returns a `signed short' indicating the location of P with respect + to the `Reg_Cl_Plane_Curve', which must be planar. The + `Reg_Cl_Plane_Curve' constructors should ensure that + `Reg_Cl_Plane_Curves' are, but there is no guarantee that they will + not have been manipulated into a non-planar state, by shearing, for + example. + + The argument REF_PT is used within the function for shifting a + copy of the `Reg_Cl_Plane_Curve' to a convenient position. It + need not be the |center| of the `Reg_Cl_Plane_Curve', however, + classes derived from `Reg_Cl_Plane_Curve' will probably have their + own versions of `location()', which will pass `center' as the + REF_PT argument to this function. `Reg_Cl_Plane_Curves' need not + have a meaningful |center|. + + `location()' returns the following values: + -1 + P and `*this' are coplanar, and P lies outside the perimeter + of `*this'. + + 0 + P and `*this' are coplanar, and P lies on the perimeter of + `*this'. + + 1 + P and `*this' are coplanar, and P lies inside the perimeter + of `*this'. + + -2 + P and `*this' are not coplanar. + + -3 + Something has gone terribly wrong. + + -4 + The normal to `*this' has 0 magnitude, i.e., the |Points| on + `*this' are colinear. + + -5 + An error occurred in putting `*this' in one of the major + planes. + + - Virtual function: Point angle_point (real ANGLE) + Returns `INVALID_POINT'. Intended to be overloaded by member + functions of derived classes. + + +File: 3DLDF.info, Node: Regular Closed Plane Curve Intersections, Next: Regular Closed Plane Curve Segments, Prev: Querying Regular Closed Plane Curves, Up: Regular Closed Plane Curve Reference + +Intersections +============= + + - `const' function: bool_point_pair intersection_points (Point REF_PT, + Point P0, Point P1) + - `const' function: bool_point_pair intersection_points (const Point& + REF_PT, const Path& P) + The version of this function taking `Point' arguments finds the + intersection points, if any, of the `Reg_Cl_Plane_Curve' and the + line p that passes through the `Points' p_0 and p_1. In the other + version, the `Path' argument must be a linear `Path', and its + first and last `Points' are passed to the first version of this + function as P0 and P1, respectively. + + Let C be the `Reg_Cl_Plane_Curve'. C and p can intersect at at + most two intersection points i_1 and i_2. Let `bpp' be the return + value of this function. The intersection points need not be on + the _line segment_ between `pt0' and `pt1'. `bpp.first.pt' will + be set to the first intersection point if it exists, or + `INVALID_POINT' if it doesn't. If the first intersection point + exists and is on the line segment between `pt0' and `pt1' + + In [next figure] , the line AB is normal to the `Ellipse' e, or, + to put it another way, AB is perpendicular to the plane of e. + The intersection point i_0 lies within the perimeter of e. + + The line DE is skew to the plane of e, and intersects e at i_1, + on the perimeter of e. + + Point p0(2, 2, 3); + Ellipse e(p0, 3, 4, 30, -60, -5.2); + Point p1 = p0.mediate(e.get_point(11), .5); + Point A = e.get_normal(); + A *= 2.5; + A.shift(p1); + Point B = A.mediate(p1, 2); + bool_point_pair bpp = e.intersection_points(A, B); + Point C(0, 2, 0); + Point D(0, -3.5, 0); + C *= D.rotate(2, 0, -5); + C *= D.shift(e.get_point(4)); + bpp = e.intersection_points(C, D); + + In [next figure] , q and e are coplanar. In this case, only the + intersections of q with the perimeter of e are returned by + `intersection_points()'. + + A = p0.mediate(e.get_point(3), 1.5); + B = p0.mediate(e.get_point(11), 1.5); + Path q(A, B); + bpp = e.intersection_points(q); + + + +File: 3DLDF.info, Node: Regular Closed Plane Curve Segments, Prev: Regular Closed Plane Curve Intersections, Up: Regular Closed Plane Curve Reference + +Segments +======== + + - `const' function: Path segment (unsigned int FACTOR, [real ANGLE = + 0, [bool CLOSED = `true']]) + Returns a `Path' representing a segment of the + `Reg_Cl_Plane_Curve'. FACTOR must be >1 and <= + `number_of_points'. If it is not, an error message is issued and + an empty `Path' is returned. + + If ANGLE is non-zero, the segment `Path' is rotated by ANGLE about + a line from `center' in the direction of the normal to the plane + of the `Reg_Cl_Plane_Curve'. Please note, that a + `Reg_Cl_Plane_Curve' must have a meaningful `center', in order for + rotation to work. If the absolute value of ANGLE >360, a warning + is issued, and `fmod(ANGLE, 360)' is used. + + If CLOSED is `true', the `Path' will be a cycle, with the ends of + the curved segment joined using the connector `--'. The curved + segment is joined to the line using `&' on each side. + + Circle c(origin, 4, 30, 30, 30); + Path p = c.segment(3, 130); + p.show("p:"); + -| p: + points.size() == 8 + connectors.size() == 8(-0.00662541, -0.888379, -1.79185) .. + (0.741088, -0.673392, -1.73128) .. + (1.37598, -0.355887, -1.40714) .. + (1.80139, 0.0157987, -0.868767) .. + (1.95255, 0.385079, -0.198137) .. (1.80646, 0.695735, 0.502658) & + (1.80646, 0.695735, 0.502658) -- + (-0.00662541, -0.888379, -1.79185) & cycle; + + + - `const' inline function: Path half ([real ANGLE = 0, [bool CLOSED = + true]]) + Returns a `Path' using half of the `Points' on the + `Reg_Cl_Plane_Curve'. The effect of the arguments ANGLE and + CLOSED is similar to that in `segment()', above. + + Ellipse e(origin, 3, 5, 20, 15, 12.5); + Path p = e.half(0, false); + + + - `const' inline function: Path quarter ([real ANGLE = 0, [bool CLOSED + = `true']]) + Returns a `Path' using a quarter of the `Points' on the + `Reg_Cl_Plane_Curve'. The effect of the arguments ANGLE and + CLOSED is similar to that in `segment()', above. + + Ellipse e(origin, 3, 5, 60, 5, 2.5); + Path p = e.quarter(180, false); + + + +File: 3DLDF.info, Node: Ellipse Reference, Next: Circle Reference, Prev: Regular Closed Plane Curve Reference, Up: Top + +Ellipse Reference +***************** + + Class `Ellipse' is defined in `ellipses.web'. It is derived from +`Reg_Cl_Plane_Curve' using public derivation. + +* Menu: + +* Ellipse Data Members:: +* Ellipse Constructors and Setting Functions:: +* Performing Transformations on Ellipses:: +* Ellipse Operators:: +* Labeling Ellipses:: +* Affine Transformations for Ellipses:: +* Querying Ellipses:: +* Returning Elements and Information for Ellipses:: +* Ellipse Intersections:: +* Solving Ellipses:: +* Rectangles for Ellipses:: + + +File: 3DLDF.info, Node: Ellipse Data Members, Next: Ellipse Constructors and Setting Functions, Prev: Ellipse Reference, Up: Ellipse Reference + +Data Members +============ + + - Protected variables: Point focus0 + - : Point focus1 + The foci of the `Ellipse'. They are located on the major axis of + the `Ellipse' at a distance of `linear_eccentricity' from + `center', on opposite sides of the minor axis. + + - Protected variable: real linear_eccentricity + The linear eccentricity of the `Ellipse' e, such that e = \sqrta^2 + - b^2, where a and b are half the lengths of the major and minor + axes, respectively. Let h stand for `axis_h' and v for `axis_v'. + If h>v, then a = h/2 and b = v/2. If v>h, then a =v/2 and b = + h/2. If h = v, then the `Ellipse' is circular (but not an object + of type `Circle'!), and a = b = v/2 = h/2. + + The linear eccentricity is the distance along the major axis of the + `Ellipse' from `center' to `focus0' and `focus1'. + + - Protected variable: real numerical_eccentricity + The numerical eccentricity \epsilon of the `Ellipse', such that + \epsilon = e/a < 1, where e is the linear eccentricity of the + `Ellipse', and a is half the length of the major axis of the + `Ellipse'. + + - Protected variables: real axis_h + - : real axis_v + The horizontal and vertical axes, respectively, of the `Ellipse'. + + Actually, they are only or vertical horizontal by convention, + since there are no restrictions on the orientation of an `Ellipse'. + + - Protected static variable: unsigned short DEFAULT_NUMBER_OF_POINTS + The number of `Points' on an `Ellipse', unless another number is + specified when an `Ellipse' constructor is invoked. + + +File: 3DLDF.info, Node: Ellipse Constructors and Setting Functions, Next: Performing Transformations on Ellipses, Prev: Ellipse Data Members, Up: Ellipse Reference + +Constructors and Setting Functions +================================== + + - Default constructor: void Ellipse (void) + Creates an empty `Ellipse'. + + - Constructor: void Ellipse (const Point& CCENTER, const real AAXIS_H, + const real AAXIS_V, [const real ANGLE_X = 0, [const real + ANGLE_Y = 0, [const real ANGLE_Z = 0, [const unsigned short + NNUMBER_OF_POINTS = DEFAULT_NUMBER_OF_POINTS]]]]) + Creates an `Ellipse' in the x-z plane, centered at the origin, with + its horizontal axis == AAXIS_H and its vertical axis == AAXIS_V. + If any of the arguments ANGLE_X, ANGLE_Y, or ANGLE_Z is non-zero, + the `Ellipse' is rotated about the x, y, and z-axis in that order, + by the amounts indicated by the corresponding arguments. Finally, + the `Ellipse' is shifted such that its center comes to lie at + CCENTER. + + Ellipse e(origin, 6, 4); + e.draw(); + + Point P(1, 1, 1); + Ellipse e(P, 6, 4, 15, 12, 11); + e.draw(); + + + - Setting function: void set (const Point& CCENTER, const real + AAXIS_H, const real AAXIS_V, [const real ANGLE_X = 0, [const + real ANGLE_Y = 0, [const real ANGLE_Z = 0, [const unsigned + short NNUMBER_OF_POINTS = DEFAULT_NUMBER_OF_POINTS]]]]) + Corresponds to the constructor above. + + - Static function: Ellipse* create_new_ellipse ([const Ellipse* E = 0]) + - Static function: Ellipse* create_new_ellipse (const Ellipse& E) + Pseudo-constructors for dynamic allocation. + + In the first version, E is an optional pointer argument. If E is + non-zero, the new `Ellipse' will be a copy of *E. Otherwise, it + will be empty. + + In the second version, E is a required reference argument, and the + new `Ellipse' will be a copy of E. + + +File: 3DLDF.info, Node: Performing Transformations on Ellipses, Next: Ellipse Operators, Prev: Ellipse Constructors and Setting Functions, Up: Ellipse Reference + +Performing Transformations +========================== + + - Virtual function: Transform do_transform (const Transform& T, [bool + CHECK = `false']) + Performs a transformation on an `Ellipse'. The `Points' on the + `Ellipse' are multiplied by T. Then, if CHECK is `true', + `is_elliptical()' is called on the `Ellipse'. If the + transformation has caused it to become non-elliptical, `axis_h' + and `axis_v' are set to `INVALID_REAL', and a warning is issued to + `stderr'. `center', `focus0', and `focus1' are not set to + `INVALID_POINT'. They may may no longer really be the center and + foci of the (non-elliptical) `Ellipse', but they may have some use + for the programmer and/or user. + + If CHECK is `true', and the transformation does not cause `*this' + to become non-elliptical, `axis_h', `axis_v', + `linear_eccentricity', `numerical_eccentricity', `focus0', and + `focus1' are recalculated. + + + +File: 3DLDF.info, Node: Ellipse Operators, Next: Labeling Ellipses, Prev: Performing Transformations on Ellipses, Up: Ellipse Reference + +Operators +========= + + - Assignment operator: Ellipse& operator= (const Ellipse& E) + Makes the `Ellipse' a copy of E. + + - Virtual function: Transform operator*= (const Transform& T) + Calls `do_transform(t, true)', and returns the latter's return + value. *Note Ellipse Reference; Performing Transformations: + Performing Transformations on Ellipses. + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-9 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-9 --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.info-9 1970-01-01 01:00:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.info-9 2003-12-10 18:44:55.000000000 +0100 @@ -0,0 +1,1238 @@ +This is 3DLDF.info, produced by makeinfo version 4.5 from 3DLDF.texi. + +This is the 3DLDF User and Reference Manual, edition 1.1.4 for 3DLDF +1.1.4. This manual was last updated on 10 December 2003. 3DLDF is a +GNU package for three-dimensional drawing with MetaPost output. The +author is Laurence D. Finston. + + Copyright (C) 2003 Laurence D. Finston. + + Permission is granted to copy, distribute and/or modify this + document under the terms of the GNU Free Documentation License, + Version 1.2 or any later version published by the Free Software + Foundation; with no Invariant Sections, no Front-Cover Texts, and + no Back-Cover Texts. A copy of the license is included in the + section entitled "GNU Free Documentation License". + +INFO-DIR-SECTION GNU packages +START-INFO-DIR-ENTRY +* 3DLDF: (3DLDF). 3D drawing with MetaPost output. +END-INFO-DIR-ENTRY + + +File: 3DLDF.info, Node: Labeling Ellipses, Next: Affine Transformations for Ellipses, Prev: Ellipse Operators, Up: Ellipse Reference + +Labeling +======== + + - `const' function: void label ([const string POS = "top", [const bool + DOT = `false', [Picture& PICTURE = `current_picture']]]) + Labels the `Points' on `points', using lowercase letters. POS is + used to position all of the labels. It is currently not possible + to have different positions for the labels. + + Ellipse e(origin, 6, 4); + e.draw(); + e.label(); + + + - Inline `const' function: void dotlabel ([string POS = "top", + [Picture& PICTURE = `current_picture']]) + Like `label()', except that the `Points' are dotted. + + Ellipse e(origin, 6, 4); + e.draw(); + e.dotlabel(); + + + +File: 3DLDF.info, Node: Affine Transformations for Ellipses, Next: Querying Ellipses, Prev: Labeling Ellipses, Up: Ellipse Reference + +Affine Transformations +====================== + + - Virtual function: Transform rotate (const real X, [const real Y = 0, + [const real Z = 0]]) + - Virtual function: Transform rotate (const Point& P0, const Point& + P1, [const real ANGLE = 180]) + - Virtual function: Transform rotate (const Path& P, [const real ANGLE + = 180]) + - Virtual function: Transform scale (real X, [real Y = 1, [real Z = + 1]]) + - Virtual function: Transform shear (real XY, [real XZ = 0, [real YX = + 0, [real YZ = 0, [real ZX = 0, [real ZY = 0]]]]]) + - Virtual function: Transform shift (real X, [real Y = 0, [real Z = + 0]]) + - Virtual function: Transform shift (const Point& P) + - Virtual function: void shift_times (real X, [real Y = 1, [real Z = + 1]]) + - Virtual function: void shift_times (const Point& P) + These create a `Transform' T locally, and call `do_transform(t)'. + *Note Ellipse Reference; Performing Transformations: Performing + Transformations on Ellipses. + + Rotating and shifting an `Ellipse' neither change the size of an + `Ellipse', nor cause it to become non-elliptical. However, + scaling and shearing can have these effects. For this reason, in + `scale()' and `shear()', `do_transform()' is called with `true' as + its CHECK argument, while it is `false' in `rotate()', `shift()', + and `shift_times()'. + + If scaling or shearing is performed on an `Ellipse', and it is + still elliptical after the transformation, `focus0', `focus1', + `axis_h', `axis_v', `linear_eccentricity', and + `numerical_eccentricity' are all recalculated. If the `Ellipse' + is non-elliptical after the transformation, `axis_h', `axis_v', + `linear_eccentricity', and `numerical_eccentricity' are all set to + `INVALID_REAL'. `center', `focus0', and `focus1' are not set to + `INVALID_POINT'. Although they are no longer the center and foci + of an elliptical `Ellipse', they may still have some use for the + user or programmer. + + +File: 3DLDF.info, Node: Querying Ellipses, Next: Returning Elements and Information for Ellipses, Prev: Affine Transformations for Ellipses, Up: Ellipse Reference + +Querying +======== + + - `const' function: bool is_elliptical (void) + Returns `true' if the `Ellipse' is elliptical, otherwise `false'. + + Certain transformations, such as shearing and scaling, can cause + `Ellipses' to become non-elliptical. + + - Inline `const' function: bool is_quadratic (`void') + Returns `true', because the equation for an ellipse in the x-y + plane with its center at the origin is the quadratic equation + x^2/a^2 + y^2/b^2 = 1 where a is half the horizontal axis and b is + half the vertical axis. + + Ellipse e(origin, 5, 2, 90); + e.draw(); + Point P(e.angle_point(-35)); + cout << ((P.get_x() * P.get_x()) + / (e.get_axis_h()/2 * e.get_axis_h()/2)) + + ((P.get_y() * P.get_y()) + / (e.get_axis_v()/2 * e.get_axis_v()/2)); + -| 1 + + + - `const' virtual functions: bool is_cubic (`void') + - : bool is_quartic (`void') + These functions both return `false', because the equation of an + ellipse is neither a cubic nor a quartic function. + + +File: 3DLDF.info, Node: Returning Elements and Information for Ellipses, Next: Ellipse Intersections, Prev: Querying Ellipses, Up: Ellipse Reference + +Returning Elements and Information +================================== + + - Virtual function: Point& get_center (`void') + - `const' virtual function: Point get_center (`void') + These functions return `center'. + + - Function: const Point& get_focus (const unsigned short S) + - `const' function: Point get_focus (const unsigned short S) + These functions return `focus0' or `focus1', depending on the + value of S, which must be 0 or 1. If S is not 0 or 1, + `get_focus()' returns `INVALID_POINT'. + + - `const' function: real get_linear_eccentricity (void) + Returns `linear_eccentricity'. + + - `const' function: real get_numerical_eccentricity (void) + Returns `numerical_eccentricity'. + + - Function: real get_axis_v (`void') + - `const' function: real get_axis_v (`void') + Calculates and returns the value of `axis_h'. + + `get_axis_v()' first checks if the `Ellipse' is still elliptical, + using `is_elliptical()' (*note Ellipse Reference; Querying: + Querying Ellipses.). Operations such as `scale()' and `shear()' + can cause an `Ellipse' to become non-elliptical. If this is the + case, this function returns `INVALID_REAL'. + + If the `Ellipse' is still elliptical, `axis_v' is recalculated and + returned. In the non-`const' version, `axis_v' is also reset to + the new value. + + - Function: real get_axis_h (`void') + - `const' function: real get_axis_h (`void') + Calculates and returns the value of `axis_h'. + + `get_axis_h()' first checks if the `Ellipse' is still elliptical, + using `is_elliptical()' (*note Ellipse Reference; Querying: + Querying Ellipses.). Operations such as `scale()' and `shear()' + can cause an `Ellipse' to become non-elliptical. If this is the + case, this function returns `INVALID_REAL'. + + If the `Ellipse' is still elliptical, `axis_h' is recalculated and + returned. In the non-`const' version, `axis_h' is also reset to + the new value. + + - `const' virtual function: signed short location (Point P) + Returns a value l indicating the location of the `Point' argument + p with respect to the `Ellipse'. + + Let e stand for the `Ellipse'. The return values are as follows: + + 0 + p lies on the perimeter of e. + + 1 + p lies in the plane of e, within its perimeter. + + -1 + p lies in the plane of e, outside its perimeter. + + -2 + p and e do not lie in the same plane. + + -3 + e is not elliptical, possibly due to having been transformed. + + Ellipse e(origin, 3, 5, 45, 15, 3); + e.shift(2, 1, 1); + Point A = e.get_point(7); + cout << e.location(A); + -| 0 + Point B = center.mediate(e.get_point(2)); + cout << e.location(B); + -| 1 + Point C = center.mediate(e.get_point(2), 1.5); + cout << e.location(C); + -| -1 + Point D = A; + D.shift(-2, 0, 4); + e.location(D); + -| WARNING! In Ellipse::location(): + Point doesn't lie in plane of Ellipse. + Returning -2. + e.scale(1.5, 0, 1.5); + e.location(A); + -| WARNING! In Ellipse::do_transform(const Transform&): + This transformation has made *this non-elliptical! + + ERROR! In Ellipse::location(): + Ellipse is non-elliptical. Returning -3. + + + - `const' function: Point angle_point (real ANGLE) + Returns a point on the `Ellipse' given an angle. A `Point' P is + set to the zeroth `Point' on the `Ellipse' and rotated about the + line from the center of the `Ellipse' in the direction of the + normal to the plane of the `Ellipse'. Then, the intersection of + the ray from the center through P and the perimeter of the + `Ellipse' is returned. + + Ellipse e(origin, 6, 4); + Point P = e.angle_point(135); + current_picture.output(Projections::PARALLEL_X_Z); + + [next figure] demonstrates, that the rotation is unfortunately + not always in the direction one would prefer. I don't have a + solution to this problem yet. + + Ellipse e(origin, 6, 4, 90); + Point P = e.angle_point(135); + Point Q = e.angle_point(-135); + + + +File: 3DLDF.info, Node: Ellipse Intersections, Next: Solving Ellipses, Prev: Returning Elements and Information for Ellipses, Up: Ellipse Reference + +Intersections +============= + + - `const' virtual function: bool_point_pair intersection_points (const + Point& P0, const Point& P1) + - `const' virtual function: bool_point_pair intersection_points (const + Path& P) + These functions return the intersection points of a line with an + `Ellipse'. In the first version, the line is specified by the two + `Point' arguments. In the second version, `P.is_linear()' must + return `true', otherwise, `intersection_points()' issues an error + message and returns `INVALID_BOOL_POINT_PAIR'. + + If the line and the `Ellipse' are coplanar, there can be at most + two intersection points. Otherwise, there can be at most one. + + Ellipse e(origin, 5, 7, 30, 30, 30); + e.shift(3, 0, 3); + Point p0 = e.get_center().mediate(e.get_point(3)); + Point normal = e.get_normal(); + Point A = normal; + A *= 2.5; + A.shift(p0); + Point B = normal; + B *= -2.5; + B.shift(p0); + bool_point_pair bpp = e.intersection_points(A, B); + bpp.first.pt.dotlabel("$i_0$", "rt"); + Point C = e.get_point(15).mediate(e.get_point(11), 1.25); + Point D = e.get_point(11).mediate(e.get_point(15), 1.5); + Path q = C.draw(D); + bpp = e.intersection_points(q); + bpp.first.pt.dotlabel("$i_1$", "llft"); + bpp.second.pt.dotlabel("$i_2$", "ulft"); + + + - `const' virtual function: bool_point_quadruple intersection_points + (Ellipse E, [const bool VERBOSE = false]) + Returns the intersection points of two `Ellipses'. Two `Ellipses' + can intersect at at most four points. + + Let BPQ be the `bool_point_quadruple' returned by + `intersection_points()'. If one or more intersection points are + found, the corresponding `Points' are stored in the `pt' elements + of the four `bool_points' belonging to BPQ, otherwise + `INVALID_POINT'. If a `Point' is found, the `b' element of the + `bool_point' will be `true', otherwise `false'. + + If the VERBOSE argument is `true', `intersection_points()' will + print information about the intersection points to standard output. + + In [next figure] , the `Ellipses' e and f both lie in the x-z + plane, are centered at the origin, and intersect at four points. + + Ellipse e(origin, 5, 2); + Ellipse f(origin, 2, 5); + bool_point_quadruple bpq = e.intersection_points(f); + bpq.first.pt.dotlabel(1, "llft"); + bpq.second.pt.dotlabel(2, "urt"); + bpq.third.pt.dotlabel(3, "ulft"); + bpq.fourth.pt.dotlabel(4, "lrt"); + + In [next figure] , e and f are coplanar, but don't lie in a major + plane, have different centers, and only intersect at two points. + + Ellipse e(origin, 4, 2); + Ellipse f(origin, 2, 5); + f.shift(0, 0, 1); + f.rotate(0, 15); + f.shift(1, 0, 1); + e *= f.shift(-.25, 1, -1); + e *= f.rotate(10, -12.5, 3); + bool_point_quadruple bpq = e.intersection_points(f, true); + bpq.first.pt.dotlabel(1, "urt"); + bpq.second.pt.dotlabel(2, "ulft"); + + If the planes of the `Ellipses' are parallel, there are, of course, + no intersection points. If the `Ellipses' are non-coplanar, and + their planes are not parallel to each other, + `intersection_points()' first finds the line of intersection of the + planes of the `Ellipses'. It then returns the `Points' of + intersection of this line with the `Ellipses', if they exist. If + the VERBOSE argument is `true', information about the `Points' is + printed to standard output. + + In [next figure] , the two `Ellipses' lie in skew planes. The + plane of f intersects with e at the `Points' labelled "1" and "2", + while the plane of e intersects with f at the `Points' labelled + "3" and "4". + + Ellipse e(origin, 5, 3); + Ellipse f(origin, 2, 5); + f.rotate(0, 0, 30); + f.rotate(0, 10); + f.rotate(45); + f.shift(1.5, 1); + bool_point_quadruple bpq = e.intersection_points(f, true); + bpq.first.pt.dotlabel(1); + bpq.second.pt.dotlabel(2); + bpq.third.pt.dotlabel(3, "rt"); + bpq.fourth.pt.dotlabel(4, "urt"); + -| First point lies on the perimeter of *this. + First point lies inside e. + Second point lies on the perimeter of *this. + Second point lies outside e. + Third point lies outside *this. + Third point lies on the perimeter of e. + Fourth point lies inside *this. + Fourth point lies on the perimeter of e. + + In [next figure] , the two `Ellipses' lie in skew planes. The + plane of f intersects with e at the `Points' labelled "1" and "2". + The plane of e does not intersect with f, so `bpq.third.pt' and + `bpq.fourth.pt' are `INVALID_POINT'. + + Ellipse e(origin, 5, 3); + Ellipse f(origin, 2, 5, 45); + f.shift(0, 2.5, 3); + bool_point_quadruple bpq = e.intersection_points(f, true); + bpq.first.pt.dotlabel(1); + bpq.second.pt.dotlabel(2); + -| First point lies on the perimeter of *this. + First point lies outside e. + Second point lies on the perimeter of *this. + Second point lies outside e. + Third intersection point is INVALID_POINT. + Fourth intersection point is INVALID_POINT. + + + +File: 3DLDF.info, Node: Solving Ellipses, Next: Rectangles for Ellipses, Prev: Ellipse Intersections, Up: Ellipse Reference + +Solving +======= + + - `const' function: real_pair solve (char AXIS_UNKNOWN, real KNOWN) + Returns two possible values for either the horizontal or vertical + coordinate. This function assumes that the `Ellipse' lies in a + major plane with `center' at the origin. Code that calls it must + ensure that these conditions are fulfilled. + + `solve()' is called in + `Reg_Cl_Plane_Curve::intersection_points(Point, Point, Point)' and + `Reg_Cl_Plane_Curve::location()', and resolves to this function, + when these functions are called on an `Ellipse'. However, + `Ellipse::location()' overloads `Reg_Cl_Plane_Curve::location()', + so the latter won't normally be called on an `Ellipse'. *Note + Regular Closed Plane Curve Reference; Intersections: Regular + Closed Plane Curve Intersections, and *Note Regular Closed Plane + Curve Reference; Querying: Querying Regular Closed Plane Curves. + + + - `const' function: real_triple get_coefficients (real SLOPE, real + V_INTERCEPT) + Let x and y stand for the x and y-coordinates of a point on an + ellipse in the x-y plane, a for half of the horizontal axis + (`axis_h' / 2), and b for half of the vertical axis (`axis_v' / 2). + + Further, let y = mx + i be the equation of a line in the x-y + plane, where m is the slope and i the y-intercept. + + This function returns the coefficients of the quadratic equation + that results from replacing y with mx + i in the equation for the + ellipse + + x^2/a^2 + y^2/b^2 = 1 + + namely + x^2/a^2 + (mx + i)^2/b^2 - 1 = 0 + == (b^2x + a^2m^2)x^2 + 2a^2imx + (a^2i^2 - a^2b^2) = 0. + The coefficients are returned in the `real_triple' in the order + one would expect: `r.first' is the coefficient of x^2, `r.second' + of x and `r.third' of the constant term (x^0 == 1). + + `get_coefficients()' is called in + `Reg_Cl_Plane_Curve::intersection_points(Point, Point, Point)', and + resolves to this function, when the latter is called on an + `Ellipse'. *Note Regular Closed Plane Curve Reference; + Intersections: Regular Closed Plane Curve Intersections. + + +File: 3DLDF.info, Node: Rectangles for Ellipses, Prev: Solving Ellipses, Up: Ellipse Reference + +Rectangles +========== + + - `const' function: Rectangle out_rectangle (`void') + Returns the `Rectangle' that surrounds the `Ellipse'. + + Ellipse e(origin, 3, 4, 45, 30, 17); + e.shift(1, -1, 2); + Rectangle r = e.out_rectangle(); + r.filldraw(black, gray); + e.unfilldraw(black); + + + - `const' function: Rectangle in_rectangle (`void') + Returns the `Rectangle' enclosed within the `Ellipse'. + + Rectangle r = e.in_rectangle(); + e.filldraw(black, gray); + r.unfilldraw(black); + + + - `const' function: Rectangle draw_out_rectangle ([const Color& + DDRAW_COLOR = `*Colors::default_color', [string DDASHED = "", + [string PPEN = "", [Picture& PICTURE = `current_picture']]]]) + Draws the `Rectangle' that surrounds the `Ellipse'. The arguments + are like those of `Path::draw()'. The return value is the + surrounding `Rectangle'. *Note Path Reference; Drawing and + Filling: Drawing and Filling Paths. + + Ellipse e(origin, 2.5, 5, 10, 12, 15.5); + e.shift(-1, 1, 1); + e.draw_out_rectangle(black, "evenly", "pencircle scaled .3mm"); + + + - `const' function: Rectangle draw_in_rectangle ([const Color& + DDRAW_COLOR = `*Colors::default_color', [string DDASHED = "", + [string PPEN = "", [Picture& PICTURE = `current_picture']]]]) + Draws the `Rectangle' enclosed within the `Ellipse'. The arguments + are like those of `Path::draw()'. The return value is the + enclosed `Rectangle'. *Note Path Reference; Drawing and Filling: + Drawing and Filling Paths. + + Ellipse e(origin, 3.5, 6, 10, 12, 15.5); + e.shift(-1, 1, 1); + e.draw_in_rectangle(black, "evenly", "pencircle scaled .3mm"); + + + +File: 3DLDF.info, Node: Circle Reference, Next: Pattern Reference, Prev: Ellipse Reference, Up: Top + +Circle Reference +**************** + + Class `Circle' is defined in `circles.web'. It is derived from +`Ellipse', using public derivation. + + Since `Circle' is just a special kind of `Ellipse', there is often +no need to define special functions for `Circles'. + + Currently, `Circle' inherits the transformation functions and +`operator*=(const Transform&)' from `Ellipse'. Consequently, the data +member `radius', described below, is not recalculated, when +transformations are performed on a `Circle'. I plan to change this +soon! + +* Menu: + +* Circle Data Members:: +* Circle Constructors and Setting Functions:: +* Circle Operators:: +* Querying Circles:: +* Circle Intersections:: + + +File: 3DLDF.info, Node: Circle Data Members, Next: Circle Constructors and Setting Functions, Prev: Circle Reference, Up: Circle Reference + +Data Members +============ + + - Private variable: real radius + The radius of the `Circle'. + + +File: 3DLDF.info, Node: Circle Constructors and Setting Functions, Next: Circle Operators, Prev: Circle Data Members, Up: Circle Reference + +Constructors and Setting Functions +================================== + + - Default constructor: `void' Circle (`void') + Creates an empty `Circle'. + + - Constructor: `void' Circle (const Point& CCENTER, const real + DDIAMETER, [const real ANGLE_X = 0, [const real ANGLE_Y = 0, + [const real ANGLE_Z = 0, [const unsigned short + NNUMBER_OF_POINTS = `DEFAULT_NUMBER_OF_POINTS']]]]) + Creates a `Circle' with `radius' == DDIAMETER/2 in the x-z plane + and centered at the origin with NNUMBER_OF_POINTS `Points'. If + any of the arguments ANGLE_X, ANGLE_Y, or ANGLE_Z is `!= 0', the + `Circle' is rotated around the major axes by the angles indicated + by the arguments. Finally, the `Circle' is shifted such that + `center' comes to lie at CCENTER. + + - Setting function: void set (const Point& CCENTER, const real + DDIAMETER, [const real ANGLE_X = 0, [const real ANGLE_Y = 0, + [const real ANGLE_Z = 0]]]) + Corresponds to the constructor above. + + - Static functions: Circle* create_new_circle ([const Circle* P = 0]) + - : Circle* create_new_circle (const Circle& P) + Pseudo-constructors for dynamic allocation. In the first version, + if P is a pointer to a `Circle', the new `Circle' will be a copy + of *P. In the second version, the new `Circle' will be a copy of + P. + + +File: 3DLDF.info, Node: Circle Operators, Next: Querying Circles, Prev: Circle Constructors and Setting Functions, Up: Circle Reference + +Operators +========= + + - Assignment operator: Circle& operator= (const Circle& C) + Makes the `Circle' a copy of C. + + - Assignment operator: Circle& operator= (const Ellipse& E) + Makes the `Circle' a copy of E, if E is circular. `radius' is set + to E.`axis_v' / 2 and `*this' is returned. + + If E is not circular, this function issues an error message and + returns `*this'. + + +File: 3DLDF.info, Node: Querying Circles, Next: Circle Intersections, Prev: Circle Operators, Up: Circle Reference + +Querying +======== + + - `const' function: bool is_circular (void) + Returns `true' if the `Circle' is circular, otherwise `false'. + + Certain transformations, such as shearing and scaling, can cause + `Circles' to become non-circular. + + Circle c(origin, 3, 90); + cout << c.is_circular(); + -| 1 + + Circle d = c; + d.shift(2.5); + d.scale(2, 3); + cout << d.is_circular(); + -| 0 + + + - Inline function: real get_radius (`void') + Returns `radius'. + + - Inline function: real get_diameter (`void') + Returns 2 * `radius'. + + +File: 3DLDF.info, Node: Circle Intersections, Prev: Querying Circles, Up: Circle Reference + +Intersections +============= + + - Virtual `const' function: bool_point_quadruple intersection_points + (const Circle& C, [const bool VERBOSE = `false']) + Returns the intersection points of two `Circles'. + + If the `Circles' are coplanar, they can intersect at at most two + points. There is an easy algebraic solution for this, so in this + case, this function is faster than + `Ellipse::intersection_points(Ellipse, bool)', which uses an + iterative procedure to find the points. + + If the `Circles' are non-coplanar, the intersection points of each + `Circle' with the plane of the other `Circle' are returned, so a + maximum of four `Points' can be found. + + Circle t(origin, 5, 90); + Circle c(origin, 3, 90); + c.shift(3); + c.rotate(0, 0, 45); + bool_point_quadruple bpq = t.intersection_points(c); + bpq.first.pt.dotlabel("$f$"); + bpq.second.pt.dotlabel("$s$"); + + + +File: 3DLDF.info, Node: Pattern Reference, Next: Solid Reference, Prev: Circle Reference, Up: Top + +Pattern Reference +***************** + + There is no currently no class "`Pattern'". If it turns out to be +useful for this purpose, I will define a `Pattern' class, and perhaps +additional derived classes. + +* Menu: + +* Plane Tesselations:: +* Roulettes and Involutes:: + + +File: 3DLDF.info, Node: Plane Tesselations, Next: Roulettes and Involutes, Prev: Pattern Reference, Up: Pattern Reference + +Plane Tesselations +================== + + 3DLDF can be used to make perspective projections of plane +tesselations and other two-dimensional patterns. These can be used for +drawing tiled floors and other architectural items, among other things. +While patterns can be generated by using the basic facilities of C++ +and 3DLDF without any specially defined functions, it can be useful to +define such functions. + + 3DLDF currently contains only one function for drawing patterns +based on a plane tessellation. I plan to add more soon. + + - Function: unsigned int hex_pattern_1 ([real DIAMETER_OUTER = 5, + [real DIAMETER_MIDDLE = 0, [real DIAMETER_INNER = 0, + [unsigned short FIRST_ROW = 5, [unsigned short DOUBLE_ROWS = + 10, [unsigned short ROW_SHIFT = 2, [Color DRAW_COLOR_OUTER = + `*Colors::default_color', [Color FILL_COLOR_OUTER = + `*Colors::background_color', [Color DRAW_COLOR_MIDDLE = + `*Colors::default_color', [Color FILL_COLOR_MIDDLE = + `*Colors::background_color', [Color DRAW_COLOR_INNER = + `*Colors::default_color', [Color FILL_COLOR_INNER = + `*Colors::background_color', [string PEN_OUTER = "pencircle + scaled .5mm", [string PEN_MIDDLE = "pencircle scaled .3mm", + [string PEN_INNER = "pencircle scaled .3mm", [Picture& + PICTURE = `current_picture', [unsigned int MAX_HEXAGONS = + 1000]]]]]]]]]]]]]]]]]) + Draws a pattern consisting of hexagons forming a tesselation of + the x-z plane, with additional hexagons within them. + + The arguments: + `real' DIAMETER_OUTER + Default: 5. The diameter of the outer hexagon in each set + of three hexagons. The outer hexagons form a tessellation of + the plane. + + `real' DIAMETER_MIDDLE + Default: 0. The diameter of the middle hexagon in a set of + three hexagons. + + `real' DIAMETER_INNER + Default: 0. The diameter of the inner hexagon in a set of + three hexagons. + + `unsigned short' FIRST_ROW + Default: 5. The number of sets of hexagons in the first + single row. The second single row will have FIRST_ROW + 1 + sets of hexagons. + + `unsigned short' DOUBLE_ROWS + Default: 10. The number of double rows drawn. + + `unsigned short' ROW_SHIFT + Default: 2. For ROW_SHIFT != 0, the number of sets of + hexagons in each (single) row is increased by 2 every + ROW_SHIFT rows. If ROW_SHIFT == 0, the number sets of + hexagons remains constant. The rows remain centered around + the z-axis. + + `Color' DRAW_COLOR_OUTER + Default: `*Colors::default_color'. The `Color' used for + drawing the outer hexagons. + + `Color' FILL_COLOR_OUTER + Default: `*Colors::background_color'. The `Color' used for + filling the outer hexagons. + + `Color' DRAW_COLOR_MIDDLE + Default: `*Colors::default_color'. The `Color' used for + drawing the middle hexagon. + + `Color' fill_color_middle + Default: `*Colors::background_color'. The `Color' used for + filling the middle hexagons. + + `Color' DRAW_COLOR_INNER + Default: `*Colors::default_color'. The `Color' used for + drawing the inner hexagons. + + `Color' FILL_COLOR_INNER + Default: `*Colors::background_color'. The `Color' used for + filling the inner hexagons. + + `string' PEN_OUTER + Default: `"pencircle scaled .5mm"'. The pen used for drawing + the outer hexagons. + + `string' PEN_MIDDLE + Default: `"pencircle scaled .3mm"'. The pen used for + drawing the middle hexagons. + + `string' pen_inner + Default: `"pencircle scaled .3mm"'. The pen used for + drawing the inner hexagons. + + `Picture&' PICTURE + Default: `current_picture'. The `Picture' onto which the + pattern is put. + + `unsigned int' MAX_HEXAGONS + Default: 1000. The maximum number of hexagons that will be + drawn. + + + Draws a pattern in the x-z plane consisting of hexagons. The outer + hexagons form a tessellation. The middle and inner hexagons fit + within the outer hexagons. The hexagons are drawn in double rows. + The tessellation can be repeated by copying a double row and + shifting the copy to lie directly behind the first double row. If + the `Picture' with the pattern is projected with the `Focus' in + front of the pattern, looking in the direction of the back of the + pattern, the first row of hexagons will appear larger than the rows + behind it. Therefore, in order for the perspective projection of + the pattern to fill a rectangular area on the plane of projection, + it will generally be necessary to increase the number of sets of + hexagons in each double row. On the other hand, if the same + number of sets of hexagons were used in the front double row, as + will be needed for the back double row, many of them would + probably be unprojectable. + + The return value of this function is the number of hexagons drawn. + + default_focus.set(0, 10, -10, 0, 10, 25, 10); + hex_pattern_1(1, 0, 0, 5, 5); + + default_focus.set(-5, 5, -10, 0, 10, 25, 10); + hex_pattern_1(2, 1.5, 1, 2, 5, 2, black, gray, black, + light_gray, black); + + + +File: 3DLDF.info, Node: Roulettes and Involutes, Prev: Plane Tesselations, Up: Pattern Reference + +Roulettes and Involutes +======================= + + "A "roulette" is the curve generated by a point which is carried by + a curve which rolls on a fixed curve. [...] The locus of a point + carried by a circle rolling on a straight line is a "trochoid". If + the point is inside the circle the trochoid has inflexions; if it + is outside the circle, but rigidly attached to it, the trochoid + has loops. [...] In the particular case when the point is on the + circumference of the rolling circle the roulette is a "cycloid". + When the circle rolls on the outside of another circle the + corresponding curves are the "epitrochoids" and "epicycloids"; if + it rolls on the inside, they are the "hypotrochoids" and + "hypocycloids"." + H. Martyn Cundy and A. P. Rollett, _Mathematical Models_, p. 46. + +* Menu: + +* Epicycloids:: + + +File: 3DLDF.info, Node: Epicycloids, Prev: Roulettes and Involutes, Up: Roulettes and Involutes + +Epicycloids +----------- + + - Function: unsigned int epicycloid_pattern_1 (real DIAMETER_INNER, + real DIAMETER_OUTER_START, real DIAMETER_OUTER_END, real + STEP, int ARC_DIVISIONS, unsigned int OFFSETS, [vector COLORS = `Colors::default_color_vector']) + Draws a pattern consisting of epicycloids. The outer circle rolls + around the circumference of the inner circle and a `Point' on the + outer circle traces an epicycloid. + + If OFFSETS is greater than 1, the outer circle is rotated OFFSET + times around the center of the inner circle by 360 / offsets + (starting from the outer circle's original position). From each + of these new positions, an epicycloid is drawn. + + While DIAMETER_OUTER_START is greater than or equal to + DIAMETER_OUTER_END, the diameter of the outer circle is reduced by + STEP, and another set of epicycloids is traced, as described + above. Each time the diameter of the outer circle is reduced, a + new `Color' is taken from COLORS for the drawing commands. If + there are more iterations than `Colors', the last `Color' on + COLORS is used for the remaining iterations. + + The arguments: + `real' DIAMETER_INNER + The diameter of the inner circle. + + `real' DIAMETER_OUTER_START + The diameter of the outer circle for the first iteration. It + must be greater than or equal to DIAMETER_OUTER_END. + + `real' DIAMETER_OUTER_END + The diameter of the outer circle for the last iteration. It + must be less than or equal to DIAMETER_OUTER_START. + + `real' STEP + The amount by which the diameter of the outer circle is + _reduced_ upon each iteration. + + `int' ARC_DIVISIONS + The number of divisions of the circle used for calculating + `Points' on the epicycloid. For instance, if ARC_DIVISIONS + is 90, then the `Path' for each epicycloid will only have 4 + `Points', since 360 / 90 = 4. + + `unsigned int' OFFSETS + The number of epicycloids drawn upon each iteration. Each + one is rotated by 360 / OFFSETS around the center of the + inner circle. OFFSETS must be greater than or equal to 1. + + `vector' COLORS + Default: `Colors::default_color_vector'. The `Colors' pointed + to by the pointers on this vector are used for drawing the + epicycloids. One `Color' is used for each iteration. + + + Example: + epicycloid_pattern_1(5, 3, 3, 1, 72); + current_picture.output(Projections::PARALLEL_X_Z); + + Example: + default_focus.set(2, 5, -10, 2, 5, 10, 10); + epicycloid_pattern_1(5, 3, 3, 1, 36); + current_picture.output(); + + + +File: 3DLDF.info, Node: Solid Reference, Next: Faced Solid Reference, Prev: Pattern Reference, Up: Top + +Solid Reference +*************** + + Class `Solid' is defined in `solids.web'. It's derived from `Shape' +using public derivation. It is intended to be used as a base class for +more specialized classes representing solid figures, e.g., cuboids, +polyhedra, solids of rotation, etc. + +* Menu: + +* Solid Data Members:: +* Solid Constructors and Setting Functions:: +* Solid Destructor:: +* Solid Operators:: +* Copying Solids:: +* Setting Solid Members:: +* Querying Solids:: +* Returning Elements and Information Solids:: +* Showing Solids:: +* Affine Transformations for Solids:: +* Applying Transformations to Solids:: +* Outputting Solids:: +* Drawing and Filling Solids:: +* Clearing Solids:: + + +File: 3DLDF.info, Node: Solid Data Members, Next: Solid Constructors and Setting Functions, Prev: Solid Reference, Up: Solid Reference + +Data Members +============ + + - Protected variable: bool on_free_store + `true', if the `Solid' was dynamically allocated on the free + store, otherwise `false'. `Solids' should only be allocated on + the free store by `create_new_solid()' (*note Solid Reference; + Constructors and Setting Functions: Solid Constructors and Setting + Functions.), or analogous functions for derived classes. + + - Protected variable: Point center + The center of the `Solid'. An object of a type derived from + `Solid' need not have a meaningful `center'. However, many do, so + it's convenient to be able to access it using the member functions + of `Solid'. + + - Protected variable: bool do_output + Set to `false' in `Picture::output()', if the `Solid' cannot be + projected using the arguments of that particular invocation of + `output()'. Reset to `true' at the end of `Picture::output()', so + that the `Solid' will be tested for projectability again, if + `output()' is called on the `Picture' again. + + - Protected variables: vector paths + - : vector circles + - : vector ellipses + - : vector reg_polygons + - : vector rectangles + Vectors of pointers to the `Paths', `Circles', `Ellipses', + `Reg_Polygons', and `Rectangles', respectively, belonging to the + `Solid', if any exist. + + - Protected variable: valarray projective_extremes + The maximum and minimum values for the x, y, and z-coordinates of + the `Points' belonging to the `Solid'. Used in + `Picture::output()' for testing whether a `Solid' is projectable + using a particular set of arguments. + + - Public static `const' variables: unsigned short CIRCLE + - : unsigned short ELLIPSE + - : unsigned short PATH + - : unsigned short RECTANGLE + - : unsigned short REG_POLYGON + Used as arguments in the functions `get_shape_ptr()' and + `get_shape_center()' (*note Returning Elements and Information: + Returning Elements and Information Solids.). + + +File: 3DLDF.info, Node: Solid Constructors and Setting Functions, Next: Solid Destructor, Prev: Solid Data Members, Up: Solid Reference + +Constructors and Setting Functions +================================== + + - Default constructor: `void' Solid (`void') + Creates an empty `Solid'. + + - Copy constructor: `void' Solid (const Solid& S) + Creates a new `Solid' and makes it a copy of S. + + - Static function: Solid* create_new_solid (`void') + Pseudo-constructor for dynamic allocation. + + +File: 3DLDF.info, Node: Solid Destructor, Next: Solid Operators, Prev: Solid Constructors and Setting Functions, Up: Solid Reference + +Destructor +========== + + - `virtual' Destructor: void ~Solid (`void') + This function currently has an empty definition, but its existence + prevents GCC 3.3 from issuing the following warning: "`class + Solid' has virtual functions but non-virtual destructor". + + +File: 3DLDF.info, Node: Solid Operators, Next: Copying Solids, Prev: Solid Destructor, Up: Solid Reference + +Operators +========= + + - Virtual function: const Solid& operator= (const Solid& S) + Assignment operator. Makes `*this' a copy of S, discarding the + old contents of `*this'. + + - Virtual function: Transform operator*= (const Transform& T) + Multiplication by a `Transform'. All of the `Shapes' that make up + the `Solid' are transformed by T. + + +File: 3DLDF.info, Node: Copying Solids, Next: Setting Solid Members, Prev: Solid Operators, Up: Solid Reference + +Copying +======= + + - `const' virtual function: Shape* get_copy (`void') + Dynamically allocates a new `Solid' on the free store, using + `create_new_solid()', and makes it a copy of `*this'. Then, a + pointer to `Shape' is pointed at the copy and returned. Used for + putting `Solids' onto `Picture::shapes' in the drawing and filling + functions for `Solid'. *Note Solid Reference; Drawing and + Filling: Drawing and Filling Solids. + + +File: 3DLDF.info, Node: Setting Solid Members, Next: Querying Solids, Prev: Copying Solids, Up: Solid Reference + +Setting Members +=============== + + - Inline virtual function: bool set_on_free_store ([bool B = `true']) + Sets `on_free_store' to B. This function is currently never used. + It was intended for use in a "`create_new()'" template function, + which I haven't been able to get to work. + + +File: 3DLDF.info, Node: Querying Solids, Next: Returning Elements and Information Solids, Prev: Setting Solid Members, Up: Solid Reference + +Querying +======== + + - `const' virtual function: bool is_on_free_store (`void') + Returns the value of `on_free_store'; `true', if the `Solid' was + dynamically allocated on the free store, otherwise `false'. + + +File: 3DLDF.info, Node: Returning Elements and Information Solids, Next: Showing Solids, Prev: Querying Solids, Up: Solid Reference + +Returning Elements and Information +================================== + + - `const' virtual function: const Point& get_center (void) + Returns `center'. If the `Solid' doesn't have a meaningful + center, the return value will probably be `INVALID_POINT'. + +* Menu: + +* Getting Shape Centers Solids:: +* Getting Shapes Solids:: + + +File: 3DLDF.info, Node: Getting Shape Centers Solids, Next: Getting Shapes Solids, Prev: Returning Elements and Information Solids, Up: Returning Elements and Information Solids + +Getting Shape Centers +--------------------- + + - `const' virtual function: const Point& get_shape_center (const + unsigned short SHAPE_TYPE, const unsigned short S) + Returns the `center' of a `Shape' belonging to the `Solid'. + Currently, the object can be a `Circle', `Ellipse', `Rectangle', + or `Reg_Polygon', and it is accessed through a pointer on one of + the following vectors of pointers to `Shape': `circles', + `ellipses', `rectangles', or `reg_polygons'. The type of object + is specified using the SHAPE_TYPE argument. The following `public + static const' data members of `Solid' can (and probably should) be + passed as the SHAPE_TYPE argument: `CIRCLE', `ELLIPSE', + `RECTANGLE', and `REG_POLYGON'. + + The argument S is used to index the vector. + + This function is called within the more specialized functions in + this section, namely: `get_circle_center()', + `get_ellipse_center()', ``get_rectangle_center()'', and + `get_reg_polygon_center()'. I don't expect it to be needed in user + code very often. + + Dodecahedron d(origin, 3); + d.filldraw(); + Point C = d.get_shape_center(Solid::REG_POLYGON, 1); + C.dotlabel("C"); + + Note that this function will have to be changed, if new vectors of + `Shape' pointers are added to `class Solid'! + + - `const' virtual functions: const Point& get_circle_center (const + unsigned short S) + - : const Point& get_ellipse_center (const unsigned short S) + - : const Point& get_rectangle_center (const unsigned short S) + - : const Point& get_reg_polygon_center (const unsigned short S) + These functions all return the center of the `Shape' pointed to by + a pointer on one of the vectors of `Shapes' belonging to the + `Solid'. The argument S indicates which element on the vector is + to be accessed. For example, `get_rectangle_center(2)' returns + the center of the `Rectangle' pointed to by `rectangles[2]'. + + Cuboid c(origin, 3, 4, 5, 0, 30); + c.draw(); + for (int i = 0; i < 6; ++i) + c.get_rectangle_center(i).label(i, ""); + + + +File: 3DLDF.info, Node: Getting Shapes Solids, Prev: Getting Shape Centers Solids, Up: Returning Elements and Information Solids + +Getting Shapes +-------------- + + The functions in this section all return `const' pointers to +`Shape', or one of its derived classes. Therefore, they must be invoked +in such a way, that the `const' qualifier is not discarded. See the +description of `get_reg_polygon_ptr()' below, for an example. + + - `const' virtual function: Shape* get_shape_ptr (const unsigned short + shape_type, const unsigned short s) + Copies one of the objects belonging to the `Solid', and returns a + pointer to `Shape' that points to the copy. The object is found + by dereferencing one of the pointers on one of the vectors of + pointers belonging to the `Solid'. Currently, these vectors are + `circles', `ellipses', `paths', `rectangles', and `reg_polygons'. + The argument SHAPE_TYPE specifies the vector, and the argument S + specifies which element of the vector should be accessed. The + following `public static const' data members of `Solid' can (and + probably should) be passed as the SHAPE_TYPE argument: `CIRCLE', + `ELLIPSE', `PATH', `RECTANGLE', and `REG_POLYGON'. + + This function was originally intended to be called within the more + specialized functions in this section, namely: `get_circle_ptr()', + `get_ellipse_ptr()', `get_path_ptr()', `get_rectangle_ptr', and + `get_reg_polygon_ptr'. However, these functions no longer use + `get_shape_ptr()', so this function is probably no longer needed. + + Icosahedron I(origin, 3); + I.filldraw(); + Reg_Polygon* t = + static_cast(I.get_shape_ptr(Solid::REG_POLYGON, 9)); + t->fill(gray); + + + - `const' virtual functions: const Reg_Polygon* get_circle_ptr (const + unsigned short S) + - : const Reg_Polygon* get_ellipse_ptr (const unsigned short S) + - : const Reg_Polygon* get_path_ptr (const unsigned short S) + - : const Reg_Polygon* get_rectangle_ptr (const unsigned short S) + - : const Reg_Polygon* get_reg_polygon_ptr (const unsigned short S) + Each of these functions returns a pointer from one of the vectors + of `Shape' pointers belonging to the `Solid'. The argument S + specifies which element of the appropriate vector should be + returned. For example, `get_reg_polygon_ptr(2)' returns the + `Reg_Polygon*' in `reg_polygons[2]'. + + Since these functions return `const' pointers, they must be invoked + in such a way, that the `const' qualifier is not discarded, as + noted at the beginning of this section. The following example + demonstrates two ways of invoking `get_reg_polygon_ptr()': + + Dodecahedron d(origin, 3); + d.draw(); + const Reg_Polygon* ptr = d.get_reg_polygon_ptr(0); + ptr->draw(black, "evenly scaled 4", "pencircle scaled 1mm"); + Reg_Polygon A = *d.get_reg_polygon_ptr(5); + A.fill(gray); + + + +File: 3DLDF.info, Node: Showing Solids, Next: Affine Transformations for Solids, Prev: Returning Elements and Information Solids, Up: Solid Reference + +Showing +======= + + - `const' virtual function: `void' show ([string TEXT = "", [char + COORDS = 'w', [const bool DO_PERSP = `true', [const bool + DO_APPLY = `true', [Focus* f = 0, [const unsigned short PROJ + = `Projections::PERSP', [const real FACTOR = 1]]]]]]]) + Prints TEXT and the value of `on_free_store' to the standard + output (`stdout'), and then calls `show()' on the objects pointed + to by the pointers on `paths', `circles', `ellipses', + `reg_polygons', and `rectangles', unless the vectors are empty. + The arguments are passed to `Path::show()', `Ellipse::show()', + etc. If a vector is empty, a message to this effect is printed to + the standard output. + + +File: 3DLDF.info, Node: Affine Transformations for Solids, Next: Applying Transformations to Solids, Prev: Showing Solids, Up: Solid Reference + +Affine Transformations +====================== + + - Virtual functions: Transform scale (real X, [real Y = 0, [real Z = + 0]]) + `Solid'. + + - : Transform shear (real XY, [real XZ = 0, [real YX = 0, [real YZ = + 0, [real ZX = 0, [real ZY = 0]]]]]) + - : Transform shift (real X, [real Y = 0, [real Z = 0]]) + - : Transform shift (const Point& PT) + - : Transform rotate (const real X, [const real Y = 0, [const real Z = + 0]]) + - : Transform rotate (const Point& P0, const Point& P1, [const real + ANGLE = 180]) + These functions perform the corresponding transformations on all + of the `Shapes' belonging to the `Solid'. *Note Transform + Reference; Affine Transformations: Affine Transformations for + Transforms. + + +File: 3DLDF.info, Node: Applying Transformations to Solids, Next: Outputting Solids, Prev: Affine Transformations for Solids, Up: Solid Reference + +Applying Transformations +======================== + + - Virtual function: void apply_transform (`void') + Calls `apply_transform()' on all of the `Shapes' belonging to the + `Solid'. + + +File: 3DLDF.info, Node: Outputting Solids, Next: Drawing and Filling Solids, Prev: Applying Transformations to Solids, Up: Solid Reference + +Outputting +========== + + The functions in this section are are called, directly or +indirectly, by `Picture::output()'. *Note Picture Reference; +Outputting: Outputting Pictures. + + - Virtual function: void output (`void') + Writes the MetaPost code for drawing, filling, filldrawing, + undrawing, unfilling, or unfilldrawing the `Solid' to `out_stream'. + + - Virtual function: void suppress_output (`void') + Used in `Picture::output()'. Sets `do_output' to `false', if the + `Solid' cannot be projected using a particular set of arguments to + `Picture::output()'. + + - Virtual function: void unsuppress_output (`void') + Used in `Picture::output()'. Resets `do_output' to `true', so + that the `Solid' will be tested for projectability again, if the + `Picture' it's on is output again. + + - Virtual function: vector extract (const Focus& F, const + unsigned short PROJ, real FACTOR) + Tests whether all of the `Shapes' belonging to the `Solid' are + projectable, using the arguments passed to `output()'. If it is, + this function returns a vector of pointers to `Shape' containing a + single pointer to the `Solid'. If not, an empty vector is + returned. + + - Virtual function: bool set_extremes (`void') + Sets `projective_extremes' to contain the maximum and minimum + values for the x, y, and z-coordinates of the `Points' on the + `Shape'. Used for determining projectability of a `Solid' using a + particular set of arguments. + + - `const' inline virtual function: const valarray get_extremes + (`void') + Returns `projective_extremes'. + + - `const' virtual functions: real get_minimum_z (`void') + - : real get_maximum_z (`void') + - : real get_mean_z (`void') + Returns the minimum, maximum, or mean z-value, respectively, of the + `Points' belonging to the `Solid'. Used for surface hiding. + *Note Surface Hiding::. + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.ps 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.ps --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.ps 2003-12-01 21:53:28.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.ps 2003-12-10 18:45:28.000000000 +0100 @@ -1,7 +1,7 @@ %!PS-Adobe-2.0 %%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software %%Title: 3DLDF.dvi -%%Pages: 292 +%%Pages: 294 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: CMBX12 CMR10 CMSY10 CMR12 CMBXTI10 CMTI10 CMR7 CMTT10 @@ -12,7 +12,7 @@ %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -o 3DLDF.ps 3DLDF.dvi %DVIPSParameters: dpi=600, compressed -%DVIPSSource: TeX output 2003.12.01:2153 +%DVIPSSource: TeX output 2003.12.10:1845 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S @@ -1179,316 +1179,312 @@ E5E71E1E40051448CAAAED470B4E2C60902B9C5E9EDA79963864F42CC2783349 6A7EE67171FE3009D8703DB31286122C63913DE4A0E9F7984757B8E3E7D866E0 767393FC672863B591AD8D9774171469444CF64F8FEEA84FD21F52C554C527C8 -36F4680E33DB5FEAA2CE709004F62D280FF5F9FD8DED04744A75D68B2983E9D1 -5F1FC74D9CFF7F2E173BDD6574E7830AEC77F312B541CBE2D9553346C2F713F1 -98874CF6D39F36F3C433D5FA8A1A18C15A0CB98DEBE2287A5680F8E0AAA5BA85 -24AECBCD4F0D898EE67A60483DF703031FF14F582BA137CC297DFABB23B47DA2 -EB68B2F2C303226DC5EAC418D5E3166995C731D85B970A1BAC377A6066636254 -F45D96B9E1F7732AB0729C8DD75136B12AF12A7DB18032DC34D933A232B6B87B -4DE659011DF6A9662F41F92406BA64B662E39B31F32A26E6383E35E94459E748 -12C322B30A4AC64D8234CBABEEA1DC74742E49A668B4C69E329FE276C1B683C1 -8589520592FBF9D0812DE9AADE3608657DD4A7CA1A46FA31657882EE1C594039 -72D9C8C7559A992A53B40565F7A1101895CA9E367770F6014B4BB3F52E021A5A -FCE0DA5526CC5D1E864837C1438462DC2618C3ECCCFAB88A7E8EC0E8C326C61C -2675B83558D1D18FDC42FC8B3ECC4E7505BCF9A55EF32698A7B6C2B0105286A6 -ED39C8AAB99CBCE39C869CF614FC72716846ABE66F44330822D178B150B589BE -9F663F46D2CFE83EEB49BCCC09827EFCF1AC1FEFCE8DF24290B91FA9CC3CED01 -58D12737CC79B89A18FBE543A54112328FEBD75CE597F476869F9DA151D58F89 -F47876D65A99E06A5DC0D0950B62E73E87166DC3A090F61489B4B6F7D234460C -F063CA5354C136B1031D17E53DEB371FEF7E4ACF6A62C0C1030A30BE6AFEEB1B -F2E28DBA228D284AEBF07AA396AB5BCA3B420B2830950FB215AC9CD3295B08BD -B15CC57817FAC8B3529DBC1827181DA315451C2455550984818A3138B45977F3 -840A2AE23A2E03501DCF7B8C63609582BB74163DE26BC6DCD19A32FBCB27926A -CFC3BA51A50909936618D3ED36D8D7E094A3F379DE1632A8EDF1643A584AEBCB -C4CDA1B4F7DAAC8AA4CBFAF74C4670115796ED50DC468EF03ACC197B170DB87A -29EA0A4594F487DF95FC45116F7A3AA6F421A8E98ABC28542FA384062671A2D3 -C3A29D85AEF65D9DBCAC5B7BCB1145420F690CD8B2EA5EBC9A6927A81F9C310C -DE00BDC420291C00C4A970A1067BE8FD2B32FB59E367E73C6E9A2A69DA7C8B5B -6E2C443A40919061FBBDD001E72A4DD604F962286B5EDF6EF56FC8C178E13D1D -30E09D451E6C91451DC3BC4201136B85EFDC5C17E84964E23C98377E71657D4E -13A00D7883818960D3CC95BE34689CC892EFF030DF44756F558B420D5D7DACA2 -D5A5345839C0AEEA2FF454988A15047A8B74F9A88A46175ED3ADF57D18173925 -E881CD2B5F73F7DE4C26F4733618B1197406129CC741CAF535757359EC30AE7A -9866BA4F09E7F6E6A6CF7F5D3DF09752B1F2B3C4F0595A67B511644C71C9FE13 -6040A3EB92853A7180FF80AF24BD4890E087A9D02AF1838C806C064C80457E72 -E4D2F68B808C7E8B65D863F311E0815A12A114C90A70FE27C4450B4ADA89B36E -E0C0BB7DDBCB55393640673488CEFADAA49BB0DC2E029DBFADF4460A1EBCF7B3 -3DE5008AD76B47DCDDB83E22DC1459EF0FB20978B84DA3BCDF393F35DB700947 -5B0FAEF736E93EE38026D92FCE127CDA768A31656C36150C77BCEAFE761327B2 -DB6FA323364E72C7B04BC113A0A2032DF08489F1D8A171C7BF0F180A97FA49C2 -BD26CE274769B030B27CA97BDEFCE239F700841CE02B9DF77BE0B4C9B76DA2FD -E18D9A0EDFA1284F9305198CEF3BF1BB6833DC273F9149B4A2380F229104889C -5CC59108A691DC2C15F4A75AF46A636E8147BF75ED629781758737B60A1A7DE8 -9FE3080CA07A6FA74E0140D9ECC40B4323EB584AC760C1163AE51D1339B16CC9 -B4626F882CD3F5922EF39605035467DE96053434483F6C853AFF1EBA8DD8010F -0907FCC56DA2B3B0B200B6BEBC5881875FD6660E2622DAFD0CCD8A62D41E2FC0 -3FA0172CDFC3CE0944D205E5E33ABB8B564732A26EE9E436F2B385D55F1C7B70 -A85CC18D8995A6451B1818DC42A1BCD2DF01AF3FD9C7C893EE41E1ABD28DA0BF -4E94C9563FDD783046C23B68607ED13E7D71B2BEA876394A5EB43347BB50B89D -45E2A360C33905FFEB7ED816B32A1C1EE1D61E3CE71F191F5C530129DE3697EC -F09D8E85B6928BCB0852B9F403DC33D807B9B15A9C34F3C7870FCF906313CD28 -B53C79D10EA97285C1CE81E2AB28548450799113BAE5318902ABABFF555E63F1 -31AAC481A649D8CDCE0B63E9C915D9BAFC9969CA8677CE7D2DBB4811CBBBC3AA -5C2839419C6D30924511480B37612ABCE9BEE9F3684602A1594175FA386EF284 -5860B7DA0DE902BE0B8B5B9529861FC2D3064394375FFBB2D827901E14C7040B -23A6D7DEBDD74C5E8FB9E99ADCEB67BFEFFF5D0A38CC626F1D674F08906928B9 -B20322E294108970490015C5CB4D9342FB9867B66CC157065FA50097F0354DD3 -2421745EEDB278C036DC64B064818328636F33ABC67ACF398F5BA3BD2354709A -6071E0EC43069460E4E299696DADE52E8ABE9781DA4DB2C8068A15EB6A47F9EB -C69A320662855E7DBAFD1FA1A74E65A3F6C43AF98D663DF35CB234E52B4C9B40 -12885A41543CF581C20ABB514D6F8D1A114E20173F328559D6CE9ECC8741F0D6 -813292976DCA23BBB3386B7D493F653F65BF354CFDA67F70E288EAB7A3031738 -D681B054032DF2A825FFDEDCF81B5F5D211F31D4903FC3BC0C0B6C768261A9EB -79602B5A3BB8D0002D4310DD502F02C977618730E70E4301756FD7EB8F82179B -D02C33BF46AB37BEDDC4BEB68F1CE8FDCF892D31739F175F7FFA21BCF918DA59 -3E8CEA37DD8AD2BEC4140F144A08E71E1117D3EA8EA8257116D349124EBB8963 -A7B01D5FD193C5C8663976347FCACBE0B636C92D8FCD378BA314F93EF989BBFB -A53674005E5B4B0817BA921828BB6A1A72CB121DEBEFCB9BD84E5583AD2A0E90 -E7E625458863CB64615D002B0A7DFBE0C0A95A7CC5A56C43E8C2AF36C7204EB9 -A238DD4944661E2FC17E7E021ECE9D8F0626A1C5F4669C943BD2A7DF7192AD7F -8DE013CEADB4CCB94777A6AFBA76418A65E9443B276C64BE6829950A1E075752 -B6905631093A99163924EF7A59031036BD0FA06E25D0A79BF35E2F23CD573CB7 -9B6AB1F0004E9CB85DE5F8DB172636ADDE72290D432D1BA9B4CF6F47066FC4B3 -D2B13351E0D69F58A023CE7D6ACAE1EB32B7F597CD35A740445694DB96F48411 -038C34EF35092C3BD15CB6CCC712F003A65CBBE933F1BC503AF14EDC698DBDEF -D4118C8DC454A48AAA1C3F902ED27E16CE05DE838CAD24FF9543498E5EADBFCA -4B618CA3D97E0CCA2B2E4D73FFD5444CE0A86B0E79E9E4EDE9BA48B99B3EC6B6 -6ADE328CA023A8260DE29931B87BC9DD193B23CB73F030F05FBBA59CEB42903A -C0A7A75D6CAAFEA96D6D9D8F71920DC4EE15C376242C200587C35857E27D125A -B3249228BF6D8E0B37E6AA4C8D4C990FE7D872B52F3849D1FC0192CA906455FB -74AC3F4F270FB533BF30FBEC8AEF0B9CE929F25C4A6FE70509CA26F8E5B29E68 -2CF3A7E743666C7B2FD0FD9BB5AC2B464D05E4E83E3D70527288D131FD3C9A05 -65608FEFDB4BACD9266292CCB094A1328D5A20908FBB44451835563910D83920 -A77402940897797758DFDBCBE56E9CC0666BFB74EEB95FFE648EDD54C46BC4F9 -870D5546DB1A7BFA475CA41491932A5A8341ED06402ADA6B780404CCC1E1DE5E -4C03EDDEA60A75D6C4BDA6D8F9B710C217A349F3953B997CA3C008773E318255 -FF36EF6C0E02366ABAF325ED3775147029CBD39B20EC514C97E7646DDFEA0940 -4A5366E39F3E640C1106E6F45D050701C9A569743B01EF4849AA3376197B6A7F -66D8C40B8D7468597EA17A88CD32BD80C92BE9A22B6EFCF1A77944F9B1C0877A -2AECC7436C3C97D008547C8C64E75D4F173A5FD14F7351E538D87CA063446EB0 -059049FB9788731720082EF33C8086B7DBD2283433324E10E63E1A69B5138EAD -CE94ACCA0201A1B0E0DCA18CE2CE971D69CD1E957E50D001944FB00DA458D63B -2FDBEBAF3F9F48E969667E2F9B0633B2604887A3D79DC572117AA0997D457576 -26044F8F91F9851774E582232D41C3F075FE4B0862E10C250345E83B5F74D10A -979DC2BF8791641D6A27F0370E419256B651B91032980BEA4F03B8D0D1E98007 -6459B3C866F4B77AF5F938D58E8F1B967EE752266F03B658A865B70C787AE3B0 -74B9893C8F103C5E1556609CC79AE89321A7842CD63115DB92524911E4085BF3 -1F88A6AFF948B1573DDC1DEC309250BE74BA58B8F306B49BFB6B32DCBD99BDAE -86C86BA037A39053E25C2DF704D11B6C62861C42E66B2E9380E560173B94D853 -DA8DF710D80E933EEDABF0B288A9AA8D2E9869994B1CEF6029481257996085D4 -B942268022CDB511DABEEABB23487BA5FAFA8301CCCA209976C65EEE46426F10 -6459168C79F3885B9B419519213A982EFDA1081D4D2B3984CEBCAC00231367BC -AB56F60C38FFD68F70B0433375064F40B58A5EFD84156A991B60B7B836840B11 -2BA1AF86E06EFDC381BD4CE4E48CB38BF781D7604F5DBB27146C47CB38DD675C -346603CB29A891421B3994CBC2F9D6874EEA5A22DDD7A1D3C96B32A89E8FBDF0 -26574F7281257A5441FA8167A193273022A4A3D6A04E1E0A5060C53569DE83AE -ABCA84E06DF21296F7166BE342F653F548979CBEE8FF1EE3B69682809F007FBD -62E831B820DC6E5F0C8376403D043EC4540370224A0370563CBEBACFA13FA135 -4385AC5ACAD78235A72611733858774345CA78F6D245AEEE2FD07B7800311B30 -4DE6BB68F11CD085159B18CA7588746E7A0885DB2789023571B5D6C335027E37 -E3374EA3F29AEB1310BCEA3C3EDFC551D50356CE13DF155AEAA364AB6F02CF91 -7422B3B2436AE5D93003B57366CC91E6FC34A856AA08B078B437FE5815CA07D2 -A6D8183E71881FAB7759222AF11C0D5D17744ED099CDFE8DB42949D515D1FEAF -4F53454EBAC2743837BEDE1DD1FF0160A9FF6340C5AE7D9A855F877EBD5DBDD8 -FB25512655F4FF1FF2EC1D821B7F8151FBCF68CAC81B1D26B91BA0D44F259E5F -E58EC327A21FBECC5BE023B7F54DC9645405F48B45F7C35EE8E555307E2F12AA -92DF76B9BC78DE9120842531D4A10DEDEF3D91BA68D49A1292D13515B9DD3FD6 -A53B4DF84641EB88FD134E88636320788FD8653EC2295B570009D0C108498CAE -79CA48E818E45E6DFF7347DD477926EB6A2AE2138C017909AF9F6D86B1A82651 -1FB99E2C9EB38FCCD50E6E069FCEF79770142E314411E08EAF4914A90040F55E -27A6AF1B9FD6CD55AA679AC827220D81D41E2162203EAF282F6852981685EFFE -EDBAF472A53D2D641F9212CFB36FA5CA895954F12C9E6F3A93F575E9D9856826 -6FAF8BFACC66159292F44DD85338C5DFF5A40F0AC35A73A628623FD1E6756DE6 -4EB99A458DB43A4FDD833A68AFD1DC95B874F420A5D368BB3DBCA2ACFF7DDF35 -D9C00D5F38557B5B18F04068DADDA109B0313A47C02F5BDB81B1389A4CC4A06C -7B0C65339B44877C7BC609622D4293EEC34A1E1EF3852F03685AF47B44E2C467 -099C6D9B67E6FBB4336BEAD8641FF226543740099CA6BD2B3FE88B82F1709ADD -1C6FA031D6B683E01B14B72C04E34AD0C5FD516D919A6015466AF8BC66585E66 -F4D7E434DDF8F524D1116156BE0EED7D9A3D86014398BE12FB47ED0F03CDE412 -ABF02998CD129E3C92B3F95A5D2C7B621E7C48DD0E98EAE33805BF66254AD631 -DEF0D9D0BA0DF1AFBA753558E1795D7AFE248E44751B2B7E57B134B33E75BDA8 -8AD9DD82AF734F2CBDEA60CE4EED9A70AAFAFF92EADAC6903DBD9E8A54F08995 -131C9D19385F9D96D0B951A1CB53992A390617F2A89F22534BE75AA6A0E729AE -64D2F440149AAF5FC75DE9D5B0B44B787DBDC7356E33E2B6071A5250EFE6678E -6019B0F3EE399D48758982328CEF255DDC8FD1F5BDBF8ABD88C4045BAF836BA8 -AC5907674046EBBF133D6CEB5B0527D9216788009528970508C0D3016FDA1B5B -10CC313F3AFFF5E5DE2F5F4C82876A7BCCE0DE4002940E6C9301E5307D447E40 -1F75619A9241C49C296BA75F74012D2BFE31FE380E06FFDBC88B3BC979A8F84C -BBB674F086E81B7E2B4A36EF94B07DF8822063D609DE8CD3A00D14391937D3A3 -3085824CF5BA2230EB61E82CC9E4CAD0BAAF0D48040587E54408408BBB559EF7 -CE55365E89AD81E9731C09445F3DAF98EDCBE6F3C1CA521071E9E49817A41A3E -07AE042D8D4D4CCFE4056964A14BB3602F0EBFBB132A79879CD743C49752A703 -3F401F932EC6A3D0023B8633AC15610C7AC73C154AA6D1D365A5AAEF0D466141 -C72D4B9E84DDCD1E4D5598900CE22BBB62812A6AB559A6CD5B184D2D1D1A1CFC -E7E791DEDB15EDAC9D0FDC224FEBD713CDBB086DF47A8CF9080994B9E8DC73EF -4904A0B5C315E8F3F08114C5B4E06A5A837A7748751C93C2F8B6B47B3C0BF5C2 -B5495A3EE9F2E1864DD2C90CD2CEFDBE4645002D91FA1756A5450FC417850F7E -92F4719EB1C4BD4FB65E17FDF05443300B79D8F996DD678EFF0842E2A1E552B5 -32E01F58BE88B2B12B3771B8C4EF06A7A800A340B8FBA644D91EF6719E5ED672 -44011D4A879E1CC3F9719EA689C4289EFA9E9D1E350D17E5B631C96F59824663 -07F76866FC250A993978AA2F3990F1641C1552A59AEE9C827E8B28545CCB934D -FA23AE4F943EA837FA5C56E58BAF92428F41574D69EE2B7762F9D6F579CE83D9 -072756C1F7671161EE5B206322FEEA6FC832C682ABE3F2424E3E2210F6FD91F5 -131FF5D64676822FC99318C401F3ADDA76062B2C9B6123C370FACE85A6741AD1 -28BDC42F4C8DD16EEEB006CF16139AC7EB9EB9EB65B36CDFB986683C12896950 -1A8F9233BBAAA51999E95407C7BECDC4945BEE23C8D1E7B4C4D9EB2A0EDAC231 -79DBB86A5BA96BABC0A8F1B38399D4AFE15EC9BF767B314B21D25F0DE2AD2EAE -A4182983C8254F93B714434FD96D7C48E76A6DADC2D711B2A71B96D50B4A777F -FA2E56389185B37ACDB34634D4346D6D973270F3848C2625F5034C6BBE5D65FF -7AB99259B44181BB8ED1656609B49AF4AE4A2CAE695ACDFE6E0867BE460AA1B8 -F4CEC56FB2ED4C3448B31FE9600B017589F2FC203B58EFF8E805C8E1748B2181 -D4CCD86A9279FC91B4966E62C28AD8B3F021E834D0140A4CF310226DCC5A0E41 -22FE7C62719E9412821221E9D7D94B15C9FB66FDEADE8FBEAF29EC9A144B130C -D4024A99AA23D9FFFB9E86BAC329F1DA15FE56ACF83ED90E4863DD9C09D07942 -828D8432EE3147FAB59778DA955D1C678A47D541041A54F9BF27E3DABE35529E -F1399B47681C2CFD877546DB318272BE8AF37FAEC4DEADC77EAF8A1881135016 -25B74EF73C3A9ECA5DBBE7345548E46B7AE625EA861337F04E22E22A3302DC7B -EE11A5F1ED7EDFEF8494F1F701D1082D3A189C9D1F8291BFC361F83A6760D248 -60589E52668BECEFA2607C5BD747CA6A7025AA955DF4E8A3E62A46EF15274EF4 -B03CAE7779C40A0E4802D0C4C6D4F36E00B8FB3EC45642FB54765D8C82E63EB2 -89AF85948E1EF38FA8705F5022D17D5D6F547F97003076CB030908ED7CC3EC75 -C6B5BFC3244755AADE9658702AC3A9FA44BA248BD0516956EAF5144B6FA9B53B -CB3F65A896AF4FE7D3CC0AFDDDC1AB288BC6063806A2B2ADC4120E6CA156F74C -AAB288CF62D5D64862057430F301D3DD901E38842451B186232052F765D40F8A -4B5136D8D6FD53835143427056BE2360176D63142ABCFF6D08B36953AED65B8A -9206E63DEFBEDEF6F8DB5739F5545FE1EB608D71AE3F72A3DD260570471FC754 -0F0CE3406B1017AE54EE7494E189643310ED7E0300DE59B370BE9B4CB177FDAD -5B15C19F39E1D54CECF0EA25A13493A9F1C2B88109997FBCB6AA4A99909A00D9 -24BA848867CD52A0FFC9B1991755B734F102E0CCF3513D1998207A17E7BE213C -EBF5C78E329B5ADBF8E9DC2434BFE201463E556715CEBBBE943E725BE63E4F03 -B00EE363DBE261AABF22E8B587203B879C25A82756F27B304BC1A28A49B27B3F -946D5BF1F7BF05E46F510F273DC0C06DE969999D52D8ADAE892E034109C2EA4A -6058E32DB6B589D37B58F1C364970DC42CE9933EC9C6C7A7546C74F76638422E -955EBFC0A84105EEE37FE9A86BD5EEF9F645ED227973F2AA8ED57A598FBEDFC2 -DEA990B2F3E696D2179AC8A1224D82B53B4C93E3CA65BB5C4BE58149880ED2EE -5CF59B9722E9ADC5871F11111F25A26B2A7BD49BE3618BE01910B83DBCBD0382 -63E0588429F23E09CBECBF571D552C0B61AFE3072C3E814D26FA4CF2FFA65541 -91D62BF2326231D3C3C4BDC178270145B81FA7A7FBFD5700AD01BC8AF9F40AFE -8C8B6F025D29EEB6862531B20F82A94F51722B12C889A64324899B65E0BC43FC -06034BE2DF1825A2FEC147F05850809E8A2D0020DB479FDA4F45C2F5E82BB0E0 -E789898B50C501AFE20022CD3FA349F36B13C2FBFC46EE835D0117C9CF8D71EB -3CDF5B3A38FEA5BCA06F7C4A36A83EA638D2F915152952DB6BD9F286D099A573 -26F2EB128751FC007E0D14D12D99335ACECBD45833A672F2FE32543FF36BC561 -30459FE42C98B1CC551591D7CB4106B16177A3F8EE533EDE7CB67612FAB0C6A9 -107F657C7F2784451D9FE0007C68E73D0FB80AD136E5929B433544DEF8EA5053 -F257909E0C11E7544437E9F5D5A226DB0B111EE512580BB437C81E92E7BB2939 -740518D80874E9BBC97727B0A2FF473AF3DE2979A68189E002F7B6998362572B -57C296B7B05D63C93ACD7AD34A9458AB183D5DB75C4CCA746D844D9AA1C3D26E -57DA63BB5C9B6047E02292EC61A6EC4112EEFA73275AFD879CE949A563C21F98 -F535B2820031472F0F828BA2DF402E02B7602E922FFB5AC1A3449E61D8F3411A -BC090FDC1780A48648164D87C6AF0AFBDB97B959A99F8322C22DC60096C985CD -BA3B30140E630C9EF0573CD144C3479C1A4DDD832DE03A9DC74FDA107D9AC15C -964633D34D69AD8361C00AF5C6A7B96144DD3C1FA750C1A8DD8F3189326D07AF -1DACAA7E5C7A124A36233E14479A874914A0AD0DF30611D00FD6CF4BFC9714B3 -F8107B7991603A23FECFE9B99F344912D264A772DD98EF5F61C0E95FC25F5CF2 -E872074B02D4611BD4FCFAE914C8D1E122C42FAC0C5510EA86F3026C4AAE6E61 -5D2EB623EADBC7D989695527B4885EE1A26A0EAB635DC0C41C9699FDC076E746 -9DE94342118F8A5AC0062B857E70B07AE8065E337335AE5AE14AE9CABB55D226 -D489BE28B1A7E8482FD9122137F67E774A088C90AA01F99033F85A771A40077F -A8CBB24DC97A6CBD7C126573A0F48138A69E99785493E30C8F80E1D21566CBD7 -42F38DABFA0DCC2A6A0E93BC80C3299EAFBB133C429EC33A2D4D3B1AF3E6598D -3EDAF90C68394F0EA40D347AA612E0B76BC36D78EDBEE29350687AC221410D8C -78B3705C722BC7AC8C7CF13C8C490ED4B3FC52B687328078CB26EB39E082C172 -DE21CB6C0A504FA077BBF78727089A2D6AA1ECB23322BBA085FE2DD877F49AD1 -F8811DD016F8891D0D43BF9CDADBFF7A6C03E374C572D54F98BDC4EA8C2EC864 -03BC697E16AF0A82407037CAF32179D4054B1245326E579DCF09A09DB0852EBA -45C4F82B737255F3A6CD32C6433E32FAD93CCCC754FDB495CAEB952D7D751437 -E3D0BC80C0C1FA7AC45ABC0564BB8718C21613FC71B374C0C459C6D0C675034D -F6FB618F4B3582AB09E72889E9C440B18F4AD5EC757F2340A6094E933E9D0A84 -2A4109972DB9DCE3EC85A9FEC1F2358A84D28C5D150CB3782D33766E47583109 -AC466CFF4B3D2DB3FDEFA882159479E15B9B7CA36B90497FF70118648167DD55 -30825788AE581D9A30639324202AA837694EA43EB2BB81C97770FF925FE7A698 -EF2466EEC299EDBBA2C0CD982FF54583CFB9E02CCFDA370024AB9D0867560FA0 -2ACDC9D866FDCBB780AA5F0BB8BDC8092445E51E0572CEE21936C72455E714B3 -83276D034E006B265FD80DAE65E43DD9F8C29470DC6A9953EF961C3E2C9D870B -AF0755923E244894518845BF18D5F24F70206ACF922E581157461C398D66AABC -CC1674DC2F4749416225DA2FA6EA31D977B017A54422DFA9314497E5B05D95E3 -1686385D95D4CC4B292CF0A918C20CFB7595D74EFEF1CB7DAD3D71D9B2DF1DD3 -6624484E8B9E1D157F6E67E16639EE5FEB7DE0E39179F5660167AFFACB465B6C -CC15C01AA10C73465F8658DD5D12E820227992686C6D68E8DC5AB7698C98763A -5C1EDB8107BF82F5B89B0B94E33F67762E0932DDDC1365C048542DA38E45F416 -10484726E4DE2FC0F562EF49E5F211DC22C5778F5478EF112F9CE4C41E19B209 -76FCF8831E4CD5A577D81CF0C9856048521FBF73E31FB9DE321DC77A22BDE423 -D58524268AED679E0EBF800E4E477C44805659F04F642D41EB2C698B9E311153 -D73BE562A2B7D395054DB6D303C8FD78D3B42D4A3A4E74B6A51AB5A63A167C73 -A3A1EA645D3AB42834910C2874FD9FA3754732E962F9D8F5780498FC5DB2C65D -4C480C03EDE622A5AB4A2183BFFF8CDEF553C344E509F9C325FF25B45A2DDA57 -797BC26EE4C194345714EB7174F8EFDB3DF353F9B598171B43D99735CB9D9F16 -D79EA9CD7EBB88F02EE3FDD4BAB1BB97BCDDCAA3BE5C1ED8E2753C404764260F -3EDA879150E42ACE7029D0A7D6548BC56009CD776D35B0769A6F23C85488CA54 -B8F915900342CE518B2C060C18C647777A294C0FC5D6A5B37A8E7D59FCC67955 -EDE5590D1925027E7939EF335E3C26ADB224BAD360E9B6AF3562FF2229CB76CD -BD24DB01AB4ABCFB6878ECD0342CABECA76B264B7160A487A5B99375C3CBD8C3 -2FBC5BC6FF5332BBECBFA70F99B652C6DC7F76932874D6A5F89AF09465C4AC8C -C083442E7ADDD6FA7B68DE1D777F00EB4D74B6F890721FD4DAC8B874AD2F766B -9A131AFC35E43453A86A735DB8A342D58528ACF7334ED144CD25FAD95B4D42C2 -69FE79740A35BE20B0B968FDC65DF30FB59A889E5764138A0BB12D2126769767 -D911962BBC9CDEFC01C6FF566EEA3123331DD81BFE2AD3D52AFCBEEEAB86D0C8 -1D3F3470CCD4AA6199DA68D3865A5F5F2F05F2E8A17E4038104FB32438185075 -B4EED0CDD3D316925E1D3E86DAEC71F34999042E0F5EFF154F4E579E68DDCE0A -3604D6DB72F7420116DCF67836AEDD801660CD0AB7CAEC4DE467FC80A1ED3005 -08D697F442E05253CDF3388685F7B575A05B609E31924D2177207B9778E3591F -009161BEFFB83FE64834130E124E3957035ABB0C768D3987E760C8B992231F0D -5F2C4BFFFA8771DD631F0B36F0846B7244169339C185CA4936761F00F5AFF201 -2FC4A02EE6D8FD0C977190F40FC65ED94A2ED03FB3C8B9254749BB4A704F151A -45298C1C7C8C8836DA8D94DDE30B07365F43A36B7B85730E5546EAEC1CF2BEA3 -8812A5405079DDB0C520E5EDBC3982B72987F3C22671741EAEE624599354F5AA -57711518E04D846B376C2B1D4771326C4FCDBE9BCE2DC6975D9941354FD80E26 -EF4761FAE8C74146A49610A9A39318850B76284120C7450FC2B6B4DED8D02FED -AA2227834C28E36A20DACDDFB2D332A96D59616D5F26B4021A3E428159EFD1BA -E5B2FACEAD42E9DB9EB65ED854F53CA88FAA9F09E28F2D190034DCFE31928981 -CF8C8A55EE45404BF286C45D70612B11D4671D35BEFB2FEFE79505EBBF790A36 -23939DCFBDD11114CD9ACDD0A7D87BA03EBADD2515D0A7711553A502BFDB254C -4AB9D76BD52C10F3BB6DA3D3F66DE870F45FDD5B6931F8F92628063413BCA4A0 -814FE2AE8B94DD1187601232EEA96BE8C3ECC000955F01D27A2A9C24307CE34F -B725E188F1B93C1F566468D3F7AE39E9E7CA79696F74FBCA7DE44A15B23CBBF2 -02FB1B4381BA01FCEA65A6FA1D9F4886EF4570538023F930E728D892F516339F -77B4B24C488DA811186BEDC7E2C43C8A4B0CA61A29449112BE7714C6CFDBABA7 -11FCC2ED2E33130D0E99552A10611F68D23244147CF439BBF8C0ED3FE8AC5522 -FC268071BA9AA589734A6596CD631566382873D48155913DE8E20059AB168CD9 -4FF92F673C2CC2B6C97A6E7549EBE9AA876931D1198BFA811E45B27B58BB3011 -780554DA7093811C414AD96C47AE5D6931CC6FEC698F6A88B1EA9925D787D8C1 -ADCE1646A046481526C13FD42F681AC782ECA16CAE0EAA0B070FEECE650EA3B1 -3B7D8966E12CBF7CB3A7EC6550AE4828D5156BFF50E1445C26DEB8E764660B01 -94C51DCD1DC24BEEAD882AE46658027A8200E6714BF1B8EBE19F742BD62469F7 -1C2F2E65C18ADACB5CA2AD2F9084AB861A45DB66EBA2EA65A05B017E1F12D8A3 -825EDA3CDFBC2B4B31E6643C43DD4300B6A61EB0C3861DAAFC22F5ADF078B414 -C99314A08D1E8BAF2234A5CAED5C452E43222A4F186904A67F43ADF286E8C128 -B948073A9C2AC2FF7E5E6150034145EFE766EE2009DFCBF1BEA6032A3CCB0030 -3B802E9F4448C81E1D147529E4B4C374B5FEC2C03907AEEDD0C2174CA55F2A5F -9E8C9244B6D98A0D1AF85E4084A1B5F1D6A64D5D2FEAA72AF5FF8C51EB3AEDB5 -4965D9BEC1B03BC4F27C1B8FEDB0C4C17380365F355A07D5D6C883B52F3D3760 -098C911F3CE436AB6DA9677BBB7195FCBD878DFA36D16815D2C64C76E6358F04 -9C1AA011589B42637685A662CD6EB2A77F3155E424AED00C7DD44E829859BDC2 -C957A4E89AA77CC3D3D0F32F69BE4ADDC0C5C4FD1F163F977E6A0CA140B0B611 -B8F3BACAB4BD058899DF48EFA41EB06DC6F84E708B7A0F2628F3AB65AFAC62C1 -CA6F43AD238CFE74B4F94C40E8ABC2988B8F2C06700AEF29947E33ECF6B2C9FC -83C5D5CDF8CC0B32051E9CB7E468EA7C574A057BEEEEBBFC5F8C19914AD4F78A -A7FF2D1BE9E3EE8880C65CA429299EC9425CB5A48738D4F3C2419AFA5012B063 -CD33A321F6DEEB2BF733CD51D8CEBB9F1D241C49A4A39E61A41A264216E142CD -1683E1AD7185F12A757DB99327FEB17EDD8ADC34D66C0CDF42655DECCBD79E77 -C34C27AE1359D7B95B4CB0927FB5CDFD84123678D338FD7BE54F861EEE929630 -29F48D4BED7A0AC79DCC4C8859CFB8D8E869DE2F5C7D280BECAED52DB160661A -CFC70E44E50DB60BA71909A772420E935C6B9FF493F7C8662BF2186E7648CDA8 -69015008E2AB989A9C7439EFB95573F0913C21209EF63155B619171DFA4F02F1 -547C2C49629E1930D0B7271D153AFD40EC2B52CA0DEAC962FE1E3D1243C3FF7B -D71E9C6A1B9FEDC6F12438548EA5C52D520E93788F1F1BEAF8454ACBC4564B8C -3426E06871D07D2D398288CBFF67227C2288C8B97DD5FA72BFCCDF2E6E52FB6B -AF03FC2AC160134B91CDDFE3953D1A4399BD4848A98ADE2D297C59DF87192ACB -D85E14E3A857F9FC883C9C70C0BE2050D9C1BE4BF0AF8B78238BA99867199319 -51AEF6CF3430C79D25360E905EA8E35267337AA3A4444FD3C6E0BBB24B0DDDEA -3C86A62CF11D0EA03BD22EF4302E2EE7B631761DF33A7E5B46F90905D6762BAC -CCAC51DA8D567ABBE009461F725F897B217070A1D232D0C99BD0417522167CEC -79E21B67F507B60A470555325516779B6DEBFD5ABBA3CBEB46BB05BDA09E1C50 -3452DAEC78D5580EDF4A7A62DA9AB7496DE4493744CA500E1D3DD339D30AD6A8 -9FD8BC7A211B469A1A94435153DA3D83ED1B9F15D58C19D4BBCBF91F4CEF544D -59118399D5B3C7F8EA0DD6574AC41F09FB90FFB88B950E919A7BBFF4D99ABC9C -2B7E277EC12D188413E09AC56D394DC575BB12A2E829A3EDC3458A092C97E93C -CAB496AA5B517839F0EDC58EBDCF4774F1B243803FB67F661E66D03EA726DE3E -289159FCF6A27DA9A5C65913C068A2D0A4FD7AA4B24B508AC693BD52DC49482B -AFD4ED55C1976E475E452D7E4CBC424AFAA58C1AF64590A52B45E371A2BBC681 -C8C7E69D30FFC32345C93F4850678C50AF300465A45AB6010899971B82E551CE -59617591994CF23C11B9E5A88E27 +36F4680E33DB5FEAA2CE709004F62D29DD23D1689A0A3CE27B1DC2ED2FECBE39 +F701C2F61B32421169F7A274A3919FE34B9A7CC295C1EC90C9698B7668C23FF3 +003EBF10493C29FCC25A11D7FD5B6D7B32AA55A3361951FF93E4641383BE8994 +1D08FFA138272F5A86DBD16150946577EEBD684939EFF98B85A8B72EE0BA7FAC +776C630FDB72679D81AA594107736FD59B95BB4781A8A03D8ACE5826E1E02804 +36B41B0F4947EE0860D073F61D90A5304667CCC2F0B03422F9853277F5186BC8 +597D453711895836AEDF43AF01B9D752A15FF66944BED5A3E11C5474EB5E2756 +A3D706B953290FC17976ABCB466EBD150A603B8ED4FE72145081636445696652 +DE038D080999AA2A25D88699408519CCA3A6B6AD9432B97697E4DB309F2EDADF +12D782FF84E5831AFE284D865AE67BEA7E5A9EFB367E0E821AABF5CB5EC15790 +FC3447B762EF74FA69AF83C775F88F29A376090FE55BE8C4EDE8A0BD07AD7804 +351D3647578C384DEBD7B946F0FDB8ED356FE6C6C958A257E5E7557DD14B6FA1 +138D30A9A32D815D3F52A15F7A99C01A3DDDB259AD1857DA9C947A5EDA7A8C70 +CD33152A11476742D92D8A7FE51538926ECDF00F53E99347D25344B37E794407 +6DC734D08FFE4F513E4E79F57FE99FD5F4716B1A8E15F615E37AA72946778643 +258193EB199CA9316CF6303577BD0BC83EC3060A24B7B49F9393A54E8FB8CC60 +A070294FDB4D607E24CD68F86A874BB26BE622C104776256ECDBC654828719C6 +3D1FA2A705A5F2812ADE144B189E62AC522B0A9907857CD70A3E923206A9F70B +AC305EF9475C3528D1B26920D9DBE02690BF7A035DCA6A2EFC3752D605A5B845 +0C16431E10D6FA2DA88516CDBC10F43D7314584F3941DC07F62FB24777489AE1 +944CB617D58B898FD8F804E70D735F744607C6F79527D70BA87B3E6E55EB4A95 +2DF07A2F4D8FF9D8E97775FB713C459AFC3F04004B4D2ACF24A68206E9BBE95B +BC31761982DE347B2CAD54ED2DC0F91453A2ABD1A6230F81C8FD2FB480B480A6 +77944025DD0C3A2246FA4D52620E2ECB92AF3FC223393F133A3CE885ED7AF492 +D0E30F13D13CCAABB46DF1334088E03D988553A37BCA89BFE6ECDB9816E3CD9B +9584A62C0BE7655E3CA47DCC88408DA02C0BE94288398F80169F452904B88D95 +105D5FE1E97F0B4D2FF0A840B32CD2E4ADE8E37836D013B7A59E5B458B441AA0 +E6F5F6C8D344F656DE2E0E008EB5071C11726AACDC113C285D65A3C70BE7119A +676C360A48B34C1265D514717BEBF236B4F6F682CF0EDE802273D4D35828046E +B56572CCFEAA3D6930E1D1689EF8A5CAAC3E503428B5A3E481AE39B381BB47D2 +A246A419344873147447D065076F278B65E9EED5908C6004B3921C35CEB7B3FC +5CBA29857AA7C6BFEFDE95A3AA440037B5E3FD0F03D4335216D53D1E119D1916 +E6096916ACD0A8350BB60BD897CDA8AFE14A1CE2DF08C0B46AE29D3D8CED0B86 +B1CB1B2E1E0A2D3B475830F0BB7F54209EB7781A34C7B07DA244C87E0EE9ADB1 +6A0FF08ED3C752CBCE55713DC108B1BCE2CF3ED91BF1448CE4FE28F3276F0D61 +378EAF2637514C46E26437B56BCC2DC7EB011DF411FE30645F96754A5A99D7D2 +B5DB6E3027D3BB899D4E3F3D9B387D5A76EAC5CB63FD9B6FB394A7BB15F3DC3F +ABD725E4F6EC8F16D03CCF854D69117B7DF89F039DC1090387E9CC8C01127E39 +4886C2EE3912800240CA303B459987CADC6F4A8B1248442B54A2E0F7299D4FCA +1CB1587214EB4E7AD5520138281AF8F7214257AC217C4BEE04ADB1C9E4033A05 +9E5C303D95E1835DFADD8E5E0E42B23FD3F2873ED9A086403BA7F30DF2720F87 +335935B06D457C66CAC3F58E6A7BA0A794FC3E7BB13994A9122D668FB233FFFA +7D17C652B5FBB28D73D03140BCEF3E8094BE35F88A1927E9374DB24270D6778F +D10E136D71C019306E97B3CD0BE0AA49BA6E5E132C7FF9C638754472A537DF40 +FE328C684D992E54DD201E1432B9B18869A2F72D15F2CD7FF0C496A79D446B8A +B839A117ED1FC3D5694F3D3E77DC2D2F53E42F9CE5B283F8EDC95CA63193718D +7E80E441A0459D571BD8275EFFE81E5BDCC30643FC102BEC34D751A7E750D026 +98E0C1D366CD4129F6C5C31427650B09CB4C6F3A1A5A8FB61A4AE13BC15B343A +10B26598677DA57B0B9BC09B3ADF34AACD943DABA9898EB84D652536B69A6A5C +C48A9E397D27FF4CEC00A24726428EED523C46B48AD3A2CF18CB35381E1A65D5 +C22157730030DE8ED9579FB2002545567B6B38ECEBE7EFAC0F379568662847ED +5352F07DC78A4074C64510ADDF4AC905860BB31AEE01042E3F08B8CD570AD184 +2486B4B5CE78ABF3F8263921431297F00D196AEE56AABDC4102A0DBE1978C1ED +26E2D36223ABFAA60480435DF183CDF6525F761ABD94084834BC85F9AB2187DD +7D196C2DC8165D362590193D4AB6FAF508DBC7EC69DA6C4A00D770E07495C5F0 +0E1EBC29D5027A9A520E2F0CB03CF2D450C640C2BEB4F55C4BA962957B9A9668 +FD84EA60E409A0D5330E982DF6EFE2B3FF6094FCBEA107F2964122BAE5E87411 +6D0C6D0912910FF5FA617FAB046F34D64636EF77470C2FFC069E69F13F9AB20B +8A6808B21D43DCF8236F753EACC4848C8EF764D80C099FB51DE0782B4EB2477F +06F8A7E8743061F37150D0A6EE363745F063E07B16ECE181CFA022D2B76A5394 +BD9EB9AB2B3E91FEEF505640A923E536293E363C4CCA9C6570EB314BAE92418B +51F572F3071FBC705B8B9ABBCDAF5B2E7961DF687F9C42409A0A85F438A9EA3A +39EC68B8DA429774E21204A4E737ED938A60069EB92531C48A951398F3EAE1B7 +6A28302C4D0F21EB73E2520B6E32BD84460BFFBAE44C304B7CE82AD0BDDD54CC +84FB88BE073228FE771E6BF13AFF207694CBBF720DBBA432282E76461B83799D +87EC8ED1EA11F427A8604D4E864251DC129DB4EC4F6FBC75B144BC7702E57F15 +1A9BE888DC13257973578DEE194AD4CD44144A1656562AD2B83CC7758A9DFB91 +57ABFC6A9089E8CB83CC07B7547F0EE0030351828989BE35D43EA7DF5A22F07C +1A2A44A699C15BE3D99639E42545DD1AB2FF784F47A09E131CC357D0CF39CA39 +AF9D41587C394906AAD47FB1E19D6C8A6DBD5BFDDD821FB369120E5B0E1046F7 +5D2B090C7730003050E2B06F759CD98E8BEDECB38ECF94BE4A470028F28AF10F +B06ABAAF76DB0C0106CABA49E51379B9FED47454414D4ACDEE183A14068D9EA3 +4CECBBA3CE5439373B77C555F403EC084C98F248E3DC30AA2299B30CC54B4C1E +A94899F39550C89CB109D9DF0F8A3CAC9054172F8A0AEEF50613D695FAA90BCF +BCB437ECCE8E56B024AAD15CD47FAC48D76CEE978E1A0572BE64CE0C4A2DB543 +162BDF24F16F4D5B8612758D51718BCCCCD5DB1B1C6051E74BEEC7E99D2AA138 +756535123676F25F38869E8C90D7DC3783C59CEEAE3E1CD240F5C0EA69630E95 +23DBCF6013EE085EB454DDC91F2A8DD59CAA7B4F154A417AD507D718066D4AEA +364657198C3590DD61D985385ECE0D801DCA2C4A9A20F4C3FC34D073740F3EA4 +51C894A983C6E43E30E8AF3BF4590ABBFAC060F00BFBC9D4B4CDDB378AA19076 +B64A795713CE73F9CAD17EA01D7B6428FF966A22F3155E10B55249C22EDA1A76 +56DA751B7213C1C1ADAD2D96A9EC0A91195FB828D37DD3A0F05E2FF365EE6FBE +0997766B829DE57F44DD47BDF9B369D18F652914D41A691BDAC00CB945E7B1C8 +A5A03B3D3DB665C4803F8225249E0A9F10BBE76066AB2186CE508F964A64A6E6 +D9BC2FCCA42E5FA41CCEBB1D861507B4026E775431D8704655491CF84E27AA0A +C93D7003E2526C0D838F4371993C7267C06AD1D135CEFC99EE0FFFAF52E49499 +D7B6460EFF62DC8317C4700C71951F27FDFC04120AD0E6C592B4A802B3792E27 +ABD4BA3E8FB9D1F6B88EA26A2EB3EA1F6E22BF8295ACED9782451024D089ECE3 +EAE387024CCB68ACA0F01D39D6754878011253B91DF28720433247845E0F6647 +DE355A333D918AADDD532F802C664CCC98265C6F8365DE5548C69031A68948BD +FEF08DFDB9FAE108846DD8D073227EF018CED6E13357EDDC94F13C7327EBFD7D +C2526F053F45D167585E85BF8B7DC3D9DA7362D5E5B1BF606FEDFE05F47420DA +F020B71D7DFE1EDC43FADF58B4C232674AF6D8A19F7CF03D39C90D9BC5AE6D04 +2A542200C7FD9FAC2AE09093B1C14D036350EFCA877C3CBB06F500104121022A +F625BD576399F54A7126D5EF6BF2E54FC3489ADED0B303C8B0F65B5F2C1D00E1 +34A636E66E145B7F60B34C498049752639F745A276D5E20EC4ADB4843ADD7667 +6104C41E38E2BF8AA72CD6EB106602ECC3749F5E865761AC832237D3AB5663E4 +E78F4A00A0BE19B123C768C47545954727819DB452033D8EB168F67FA2DBA666 +7293AF84A541F850A5F92ED7D3A8066B76A8B45AEF807CBA47BC37849AB85C0C +D589E32C5F441836C78895275637590A044C2C4C3F54BF1ED8877F442BB4FA69 +12F73E4FF27F6CAA77982D0BA9749CC9B1F1E57696F30702AF287415C13A7D56 +DC28F45CF7FDEB4A885CE9C33682B3922C20EB520EFAAE24FA87A31AA8DDA972 +7967531C1439E4EB94F4AD355389BBDF77DBAFD50D30BA68AAE72F445BA6F5F8 +D4D564376A6BE06D51649B875333F2E3814935E0633186B118B64D4EE73A6FCA +93B082C066C37871139DE51228677DB58ED83EA05F4ED8B4EE06E580C566940E +D158AFD3CC41DFBB54EC33273AA008F5DCFF5C9FB605C7A131155FF67A32A288 +2B5FEF88E87CFC4B2E04A6178F77BB4B3E6AB09C06968AFBD174E556F54D4AA5 +8C6E4636CAE217A62C4FDA2843E7BB08A724AA580EEE7B00DB5270DE4F4FE282 +F9E3B9167CCCBC9A3592EE44F28FADA58E32BC01F64B3C4146AC7FC54F9D2E69 +E5BDCC4DDF41F833DF97D39A0D2FFA25B0490DBDE8D69C87C034D58FC91616E4 +BEAE05C83A914D3D347F20DC8D7D36ECA4BAF717D2AA1A8A6ABB29FF395E5E75 +B6A6755B41F372B394E6E638B40D36D128AD44DFC8317EC410B84C289AE982AF +BF11750459CB37E6591DE93CDFFB8A628281CD5440C7CC82DBDDB97622185C06 +C20BC891AAE36F03B24E9C01EBC60D8C733209D41FDD95972928E482D0AA3898 +1CF5CBDB8D8E0EB6A531AD88D4D3A41068CA1E9D6A264D7D34E85C86A4F8DC6B +22CE8C91DEDEE23D1E1A4DEAA39956DDF207BD9D006BD5D9E356A056606533CD +E0ECB3D00326392C76ED1AAC271BF742E97A118B98DE19972D4546EA2A857FD4 +234CBA92F422292CA2A563730AD403385CF17AFD451AAA7BE6933343C026EE1D +C8FA160A4D8FF16E87DEA9C3AAC98532305C8D24CAC91AEFF11C33027B75B30B +179EC9ADCAEB8D7E0DE2DF920A51464F76F142C5417B76D00A22513C889F5176 +743682D34B08D5C9944AA09EC1BBADF9DEA1707FC53ED4D4C42878970D3D8B82 +7AA90ED7D90BFFEDCD48A2714355E1D6A24E0FBDF6BC6E79F0B4C79519DBE79A +2BFEF712AFC029F7AB55CAE278E5F15A13017D72142147F81C67CC96EF88C4FD +48180A5DC048EF8C72388B10D5A816028E6D869F2DA6F3AB93495C46E3424D21 +3DA8E90C49A346387AA9F7C824B7EC9635728E7E32E7F46128E0F116F88EC074 +4AFFBBD6E6E557D6B89A923D9E2D958A4A0608EC94D4EAD20F61E6BDCDF93881 +0B6129265B5B9D764EB2B6FF12A467697A1CF75F3902D6E90111211C2CFF2EEF +F96F7271C556151E59991305BE9E222C6861F5C6310B040E0216F934B5F16981 +3A73F8F251B5FC25CE2508CD365E6C68E9547B8D034DFB5508E788213A9B015E +3858221765A8449E40C833A47D56D2D0236190713C8DBF78A67BA1C13B56D833 +144F947F0CAB537ACC6DA508331577DA9B8A193DE1606B5009D769F66350C1F9 +444D5C6ABD4209E041A703497456262BFA6B479B0B3330A02D96E3FE4C2030E4 +B05EEEE0654816215C53C9EAE4E0D901E4CB6CD4A7EA3D61F32E8F54FF156F07 +7568392BC63163B049701CE2DEDB976970A86D260F4457C82085664D76F2BB4D +ECAEAE9CBD2EAE2D54E82BDD5FEBE587F5E9C48B83FB0653E773F950A45A85CE +59C3DCED45A77CA2B965817E945652B5BC640F9D81F90F4564068A1CD052D443 +2F93171CAB74CB6F8A92C47897A1846826E6670693CCC1ABA802D546439EE2F2 +B819545872FBF9F8BE75BCA9C7FDB7B55EF2C7ACDA6D844AE40A5CE833F72CBF +4A34EB70101F978DA8FE6CAE680386D78E29D2B1542C72113126A257ACE9F829 +7EC852D6D90A714AA1C7D82F681E269338C1E8F8C78D2D92E20F01A8D37A84D4 +EF079A4328EC4EB6A5B525D214B3C26630549B2B853C93996EE9EDAEB91BA563 +AFBE50A028D401E633127087BA75FC097C4E56CE44403344145E00E33439274A +A81301F80A4DB9A5937D04C3481CF1E8D1B27C1A805278498D2BFEF0C3478B0C +4598692B3B0CB7AB5F977FAD7FA86921CA7363301ADA9E4E2638C042436310DE +BF5D4F2E86D332B42AC22A10AE95CB98E8A78FACAC779ABA463F90E45E87F4E5 +8A9F2280A0619119BC8D95AD659E388AF6C288ADFCD590237FA3813DEA90533D +DDE419982E353C44A0F07FEF566516A1646BE939070EDD0BBE3BB9C98388B926 +A0A13440C09CC4E62EC442987B9C67024C6DA358E81728661F79E5DB3583ACB8 +ED16DA626D24D8499F61B6E5008327B52985372336B386761EC83BBCC2D27A04 +4E3E37CC3F39B8B845F602E4B6C3DDD736676E57E70911301AC6C3F693A931B4 +BFE45F22CB384AC47EEBA8088EE4C1B7418BA3BD0EDBB46ACE68CEA903A64451 +85A57E484C1118C719CFC73AED8B0F5755808204FD0397F3239FE0D0EA5ECD0C +5278078A972479F4BAE12D932A90DF5A2F1CEAF2749CF5D48A4F84DC4451EB08 +4B755EBAAF8E2201AE61535D78444ED63043D36338A5C55331343B83693476FB +6D26DC46ABD2797A02A8885D7BE004A9F022F1DAD273A276E250A674F0AA934B +5824E03E8891D85019B66FCFB9D7A0735A2536BC3661B5B208CBACC6FCE12CFB +E0FF0E3711756EFD0FC3EC79C947F4886AD05C93B86BD5BA38E9D98AEC7ADE36 +B7771A3538E9D5964CDFEA3B9E36B7D639E332267D34CD0980EFFE6B40492E24 +E83A020261FBC64DDEDF8B05FDAEE04B57F964F2BB8B8B718C5972ED827D186F +FF9C88B7B1D01DBBD443BDEB35C13873B7FA54182844947BFCD9FB6A8BD4BDB8 +D8D03598DFF64AF8F69B487B45E467550DDD4051861542AB067F0847FD52BB33 +D9F2D133C844C135D74237F327B97F7B0787690507880436E4F76A99529C6FE1 +AFC5D0B51FEE39069B7EF50D7921A5D5B61B58F38C5E9BF98C2768154754E87C +96B69A39B832BC15832379C6D26A9AEEA63EAABBDE7C82748EAD33242BBD1D9A +4DDD90E4F943BC554007F235A0EAB1913ECC1ABAAFDCC965976AA5239F3DB251 +10AD2119E40C08A306DF41D13C87697998FECFB31A62BDC075D9AC3EEDA6102A +5302C9F55FD2B5A846C2D1236185536533A921E89D9447F4E153C5B998806826 +3DE4097A10651B883E17C7AEB0138E7F0DC33454293E6FCD438AD511B9153225 +91F412BE0773605025A34CB1A88E1D66717F066ACA2740B8004D1F8694784BAA +5E7708862CAABEA94FB5F95C892CF992571EC8DF2731C5BE8CEF8529D5072207 +073F31DCA96505044406F79739540639CAF292A4829D5EB40228D877B115B9C4 +F6C8A1681333B02AD8182F42171D73FE8A07B328422B30E2C3B08EC5B1C1EE99 +ECBFAE27300970B661DF574EB1224C22CE5ACB520849D6ACE46117469B252540 +1280C7AE3B91CD0988C013FC54E072D8954FD0A205DB9F16A352138854646F20 +0641C603839A06E280C4101224256589592A57EB53D3E1C3B712BB5CE70BC88D +E3F6CEBEE37594DFC98A717C5E42E75083CAD43F5A3A3CF495AC07390552B2A4 +45833440402D27626FF5E102374CAC15C0797BAA394923969748CD55B4D67290 +111E702C93C57D590F04930ACF39A397BB56C0AF886848DD2E11D71A1E4CA49C +410CB1CE1CB4AC9F23635621D49A18F7452BAFFB84DE5803ACC5989929E44F08 +2635F228BC7AD81D474A279DA431F3FE9AE677C582E65AF0FFF1227D4BA0B4F2 +E224C6E1889DFC1EF8EFF1D3F3875A1B548AEC2E3B0FE775BA2D5CD08819A8AE +0DC4A8657D9879BCEFD3B532242DC13C59889C66C29EF5219F5D9A14B99B8ED7 +B1D4F68401E41040B146AEC54980EA12B9A14BD78E7651C29DF026BB0A3EDF9B +E349BB9C720115A2589F137D95B919501215EAE36CF995F850C0B9A2A86A31F3 +FE4DF4A4592D2D9149B75ADA613E372587AB22CCDB41B65E2745A95430763B3F +9AAEC22D1F1A55621F6DFBBBF8FB370092D183BAD5BE422A5AF906CAEE70643B +AFD2559C8573B35C7247EAF789A0F5C30D4139B982C2E3244D27E5F9C8432F31 +3BDD4E59B50BA046779977BAAE9E1D62F611F464B30B603FAA98C6657B127008 +01A4E0DD2CF7913583D0340FC57C43123E674B2D29D32039185F949AD08FCC9F +EA6D4F4E7FCEB381588FC932A8DBEF4B3D14568E24D72F484EC1838044411BAC +56996E25B259747FB7E4CDE434CBE632BA00916309D7F28CF362DFF0AB22B531 +302D784473BD93231A15F313196D5799E8B1C204D3FD9B1D7FCBCF7F03085FEC +09E13ADA54B82887A398CA7D30F9A09A66FDD404EA4EEC236B80D0FACABB1883 +FC7B81AB30076C84546CC904A93FB60A157D8FF6AB9B05E97ED6BD42B4877159 +190A50331186DF05D4945DAE5D6D70F6F46E0045F644FE09FFAA9D73CE66E490 +149CE5D8C2AF1696E0E2A091BF569ADEE917B838B0BAEA551D761FC146ED10CC +CD0FBF17B522014A671C6FD8CF48F1C4BEEF71DCA067AE4E5423AE945523CC3C +9C7C7CDB62F446211ED662F84526D99E8EEF9EFD2684632569750D8490253E68 +A14A068514735E0C2B615B57F1DB2831A52E3C543A0B31BF55B59D6F5D2CC8B0 +71332E1BACE52C789AAAC71D98AD5C0DE46B5035795A0C56976889DD43090155 +0E39BE4C33F23DC6466AE7561987B7EDF921879D436CD1566E8A7CD541B83DDF +CFACEF51AF54F29D84991705A2827D7047818BA8462373631450F22CF2456EAA +5C9BE6C3EFB6290C0AF3B6420EBA03D7ECD7CFA9E4B1428961DF0565C48AD776 +C131411788ED7B16F7A632CF29FD1EEF868AEA810921DAFDC58EFB5F74A9C551 +4F8B7F36B7CE6301FA6E3C1E396CEE6A8878BA320DE761AA95B0FA946C6A669E +B08D1190FCAFCC45C306F1D7986F0658D3A07BA7BC4B4874AFC4179B56E23CB2 +DE4151648C1D4DE5856611299433AAA77D789EA3B055AB934DA58D3D60E70F98 +84DB4107927596D3A1EB435CBE1EBD9B49C861CAA75AF2CE3BB7636C3A015AC8 +4D80B7E255E34DA3DAE1A4AA457FC20A31420240563C06EE97DB5790AE21AE7B +D1E389AA2355257F14C7C69B291FD1720C39FD0FF489E6333464AA42A7E71D9B +025C5F13877F3953919E673B4F309C6B52C81B1FA437B5EE816E13E0390EC71C +F93698A904260CDC17E9AD5CB607FFF6BC4BA464F7F11C0418CDFE8CEF16AFB7 +0B6FDF4143196132FB24143DF7E50224BDB39222A8522D1DA84694A223F7CE16 +33DBFD32C04647665DF4694ACE6B5B5B76919A463F0ED165172568B04AB4E41A +8F9746D40B9A1083866BA3D44B3A8BBA2B53776AD25CBC06E081B6E529B4AA70 +11269B651680DF19B67FADE4021973EEFD079B3BA3D667A978930537F557558A +DB701ACA9EA01366885DC640F772F21767D9E66F88E4FE3C25EF5EF44669C62D +31DBE9731098748D95ABCFC7646C3F3CBF75F9983A2E20B1F460C838060E62F6 +06C0BA497F0115041E5AE6AD176CC30CF0FCFE582DCFF4D665B3A1010CC6171D +1510560AB58E47791D65C7E7318E81FDFEC4B421C9B21BF66DBABFB43E8A0C69 +81B5B7B925490CFB25B118A5B8C9A895B88EF8E8F66010D60DAAEC487A1CF835 +69DA7217C2F67D14EB44413CC00016FE697B29A8500AACA779F0B192FA496BD5 +97A7946A7796479384902709C7ABC188E0FAB2701171785B188BF894005C4802 +DA92FD42755BAAA4D3D7B0BEE2ACDEF67F333B601C48BF9807D1F1421E8A1D94 +1BC90680CC64186EC04C608539FA9B2E1B9E49D8EE84E5924EAE8BC3DBCEECB9 +99959F05340C6A7A9AFE24C2F1CBF3B68CBD2FF3909713CAD064EF59F94C40CE +AAEF2B48179DA2A30ED4AB793975E95462ABA13BEF1AD7D9BC13E3CA17681FBF +621381F320FE03559776C4297732B855AE81BCC6977C9373565F586EB2E07A3A +61542F72128DBAD85F50291E515AC812E80D180D088D50689F31FC763DD038B1 +DBDC5B74CD90F1CC500ADA01F427ECC2634C181091E20D08C4F87941B0EFD005 +316EEEE388A51B45B295931C1A096861735992CE35ED552A4BBAC154AECBBD2C +CCD450F67B7CEE3B03A901E628E65997CD3E129F8D410150632F1B364E24E2C1 +19EA9D47E5E2F22E066C4FA4AB9813AEE4D3B66926700CB4119A73778964860B +1FD017BDE1AD0C186521BC2E3A8FD0EE3DA1113CC5A830DCEA48478A3CE3BD0C +E53EEBEE9E50827F1AB4C40948A812BA2C978D23B5E8F5F3338C4F9ED81F2E6F +A9203DBB321689407A0E5107ABB1A7131DB6D3476961E9155E254E2BEA98C9CC +E241D5095C40AAF3387B360517EF2192BA3F046C1A214AAAC8CF1C94347C4BC8 +789AD4B5407657620A7C1A8EB8AB4D2A576DE05C20087A055C0C3607848118DB +05AE84DA355CFA2ABF6C4A31DC42CC9C818A33EFBFEAE6F32AAEA58FC7230ED2 +367E647A1C9EFCBE83B96119D54CC719A92AF92BBD378D66CD8F3E5377C84DD7 +8549452B4EAE29F8153993C9C63FC3D3E866D451AF147F73318E54C83238E105 +D47B18A840BB15D374581126CB994B07C94BABBBDC8E36C6206B86DDB264C0A3 +7989C777AE8FBB8669073275C6C30FE1E9163D0193499E1021560B06896B7CC9 +285FC8235488519C8087CF36EB65C7D7D466BEEEE299FC106D70D6A9E2E43EDE +19F588D1B87DCAE61C94D992E7FA69003DD39053B03647680EBC3CA21AD148C1 +A087034ADFB201516247F93E659A03A68CB01B5FCC16450F3CCD147F9187ED42 +3A21C5CA5433DAF789D254732FA37CB1C2FAD420A2C9C9D84509FCC13B97D9E6 +40BC542E116AFBF0A2AFB405F219E7F70E1352C4C7BF9B7D3B22D392310C929B +3F911EF181C7578E39E600006DBE260783C7BF2D5A6195DCB1E2DDA6A085EABB +A2F8CE1B4B2398D2C52446DA997E0D60A6FB5B9616C9B0B95E899A270D385DDC +6CEF836C232A3DC6A7394FBED85DA39D87C3231ECE39C21DBC1E3A23A05CD399 +7B728B3F6CF9049A7BCCEE58CD4D7160E56394F8A92593F94B84A7B320976C08 +97D252C439AA8D1DDCE62059D74BDCDB71B3EF014A838F617FF2B52BB145FFD6 +8C933FDE23D3F4D3E6A4BBED2857789B62C869531D651FFE0E40F6C3C0600B07 +5050BDF0353E3277FD64A53D86939D1263210D79D28434DFF34CA5C6BF98AC13 +688E6F58FBC5085A3A54D5F964714E267129B1BDFAA24085D64D2A9B01AE40D6 +D343D1A44D74271FF0A216AF419AE5879EF4DAE67EABFD29BFB7FFBBF168C49F +415747C26A954F8D081F68C38A24AFC6154A9B49678FA868BC94B84C4A4998F6 +B6DFBB7388D4800F197676678DAE7AF836047DE9BAAA203B355027CF1D58133C +11779C7C26DD51AFFB755D8B0C75D34C4E058959B0254F57078BCB28826C2032 +38DFAFA1F496F8D92B4D778430C896527A8ED7387C0CAF89C7742316B3857066 +DFF7C843FAF22E8232C7A8802809755D10222E928D4FB59FC37F1FB4544F7FAD +EB1B470638165883A7CC858F520F383ED3819343522714121258DB49BABDD7AF +DC280C20B36CF0EC93E1437011C542FD9CC2CCA6AA19E55403B9FE5B6B92EB25 +C0EA4EFE66A9BF05741F189506CD1975A6B4FDDD2E0C4DE9F1D8CC2236A3837C +67243DB4B6808B89335294A765F27C2FD9B5B48C7F3D900F239D9DBBFB977644 +80FDA23A1C4FA711E18DD2AB3DF4E3A76A09D532B9E426141D5F074A6A3589ED +0AED4A4258ECEA3F7B38318B54295B301F5D4F61DBF943AF4177976ECECA3A74 +C4647D1086CD63D8497B830634F5047E18F38EAC7D151078F908389408CDBB41 +A98126A6558F56269F4090D00BFB1ABBA52F68885515D01018892D85FEF18CE9 +2D828DE2AB29FA0D9F7F644BFB27C086BE7513DEB01232E9A614F9FA119BE888 +B4B90CAA3711B4D10ADF909513FFFE733B2BB748B9C9B41DBA57B3CBB05EFA49 +0B69B1394555FD27A3D779B0FA0D005C70D09FAD59D85627E9AB461C6B1942E5 +D8AD4D657AE2446C478BFCA0D7594482CE8256C33CF71D8BD306772A67C3ACA6 +0ABB1668CF4FBC6A8641072D3BAC5624FD55DA43E6BF23E6701F6217BAEB35A0 +E2C3876045BC1B8321481B8435239376B829C40BA391DD9EC0AB7E921DE9E614 +F88C6F4E1617E44EFB2AE7AFC77F20F54EE5E276D28A3B302949716AC0CD14BD +16CDBE6A4D9830637FF2D82CFC1020F54D858C85B21EA3A9DA3CFAC31A17CC70 +9D200A76DA197AACF43B723C08AAC605655E537AAF2F0345E00C5924E58D206E +77316291121B051EC27F68907D20A3B0578F57D2B6B3F201BD723069A04FB0C5 +2A336682C3FF51B91B8F719AFE4EE77E1F07ADDC64066214DFAB9A2F26095462 +612A2AED14325668360343227504F96B543636F5C72CAD04597A91A7196B9E93 +49C56203BD40D15393BDC018F4EF82D4429A7EDD69C79912D518A7395F8EBA19 +258F41680E784BA13772DAAD273A7AA086A7CA9C56B8F7BB43048F8FCAB9FE23 +4BFD44D055BE720C9CB9C919B2EF800356A74FD7DFEF6D92CDE293AE1FB2938F +B0F4FB38CA691410BB484A26FB87803046353C9B1F0B1594A0264EDCEB51DD62 +A77A31F94CD252E4769FC29064CBAF1E30F3069C34FA9DDD07A100CF8282275D +15C8F6B6E41125121C7E3EA44DB98CF614F9B3F5F904AAA152E2821E067141DA +FD13911D99DB254907C4613DD5C0460464FD78BB4EC35F278C6B4167F42EADE6 +43C3982BA03E3D4880995AF95B8022E8E9D0D98E6E8BE8A67021AEC97E8D15CF +91B2E2FF69FBC526DFE4509D86AE6E464B3EEF650390CC03FEC92A24A24F75C9 +438273C495F7E881A6DD3E84E35BE27CF6541E4C61FD044AE9A71F41226DB07B +2ED449CB8E03DBF93BAE3FF63B3A2CADF6FB3205B27DC738E19CCFA9F1DC3797 +B71A72EB2DB59D0B2A04B86CC1530107187F7F9C79291D1C8198E8BADA3B625F +642DB30C4AE2ABDF87F75E624DB1EF8941BD497F45B31B0F6A970244F7FE5222 +B91ABCC905F587978D239B2F36FC4789670D40E1321F351049A9EA17B056FE62 +1B7AA25C6B8D5B0DA83051178E936C575A025C68263C4BD489E78050C5ACE416 +760878B5AF2E71AEF831500B557A5833196A151C4D0B1B043A271BB07423C9A3 +13B1637328AB71BF2F68D78BC3EA9C4C5B31DE84B55A76C1D10B88710BA0FFD1 +87D001CB47D49027F6E10C5D1DF9991B381659AB0D322A4184263DA7E79F1463 +8384E299D48E3B410B823494E992E1BA044FF58EE04FA729D685A26E2402977C +F193B1255978280E0698A1A62A0A0BCF47A9AB67A493AF6076EFBB27627FA5DD +C5860F538C3F7E6DD8E9394A6A801136591CFF168ACB0250AB3F7780FC472300 +E5BC346A3CA6A85ECEA14910F3CDB8172A5DACBD4ECC18658FA0BA44D48E2300 +6059E1BF347B66BA0732A5D9B7E67A9670404E3BAD8707689FD0F504ADFDC012 +E16362 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -1606,98 +1602,87 @@ DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A 71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C -515DB70A8D4F6146FE068DC1E5DE8BC57037035485513F9536881EEBFBC47A32 -CEC9B92B352922519DBDB79176CD65BF9BF7DB1D9D5A0E7837B6943ECE40219D -5FAC26F19B015B3E19F13821D7F2E30796852C3B6F9004AC230FAA0422A4B856 -BDF7832EEDC5147FBED02C02215C59050FC06B8F5073ECD57B338B09C15D09A2 -1F2C15EC107220B119BA73F86B13BE9F46A1DCE09951A0E7EEEB7D3BAA7B7EE1 -79ED1EAB01D99F8380A7991394F9EB02069638DE7C405E211407F1C3CAA5DD26 -FE70869899E9877B93204029BC00D7EDEE94160561C022504EF6D926BA776719 -82CD0A386EFBC93AF67AE7014E5627F3997A138461D62D0786F8303F80A5EE99 -BB32D8F959F5C631066BF2AF74AA4A66FF89F0916FA3DD52DFB1D319F2F09661 -C7AFCF0BE6366EE5E05DF54D15948731131ECE9FC96BBC1721C050BE2E173796 -88EBB29DF34F5C87424BC43F5C2EB698DA2001073730F4BE1615832D17DCCD92 -8D1D5A2954FA8F46A864D8F0D6B5B506235510FAFFB7F45D099044CA3AF1EB0F -03C384842FBE3A2CA017025C1E9DFD1D215097557B912EA2CB88177267749ABF -5E44F9D2233E060BB3A2FB6057BB528D30BED3AD41B04ABE06B2BEF9CF20C42C -0FA54D60C9F027ECB130D37B037406CCCE10585A401485C7B0851A3DB8DBC812 -54C497423F76DFB70AAA3DA05DBFEBB17879728394D8D5DD32E24C74D56D1E55 -7BA5ADC96341D06A383316403E0546D9918E4236B4434A4D07DE74BF6EB7CC41 -3AC95B95C3A150C137E78E83E85C5FCB50C1925E38CBD61D2C33E6EE2C6623CB -244D6D72133127185DF1DD8C1B2FF3D3AB57FB7CA2D12C1A657E6B904B6C055C -B6293EC4CC6A60F0F77CC8638B3109BAFC4D33C1158FF39DD34F1574F3860D3A -A104F00BFADEF50A2473526887063BE22F2E035602781298FCC6F2BAF6A25B7D -458B9CE3A1E514B23656EA353E5317729DDCE6743A69C1BA398ED832137BAE05 -5EE874258CA6E350E8F8425E9FC8F5EDA7E76B404BB944F10B86B357CDEDB179 -3226523B5000AC600EA7D36C09076805D7EA2262BFAE3C4E17A7E652AA2DEEEA -FD132C7A8E90FDEC0E05A0EFAD6FE87450A0FBE5EC0D2B487FAEE9146FF77A74 -67F14A66FA03A1395B163C0D56CFE835B64DA446E4D85DFC8304E47344283090 -CA250FFF2F6333196E3B15A7BBF063F6C7B2A4A45BBB8D6FA3A8934A8BF10EF0 -60AF96558A117A15016A225C2869EE3789C18C7028C1C3DB6B845D807AA46D31 -8E438A88C108D33479476209FD1ADDB3B8901DE7ABD57707136D89EAAC85AA64 -4017AF497DFE710081331B16F4385A317F02FEBAF4CE67394E0DC9D74BE71BCA -888A4828963D5FE07BD8EE85CD89EBDF0CAEF9467DC93AEEFEE8FC61FE32E075 -5C3DA0F5754024B8DA7017A4ABCCBA45B693A7DCECE044001287088681F81FF3 -DF8102E57CF7C6604AE11990CF1DBA8CC9983FAC207289173C46831A1BC7B13D -9BA16BF6C6DFDB4D60966A55099F213BE962E6F89617B726EB1258F6567A4CEE -65838BB6A7B8C33739CB7BA7B0EF2DBFCBD5A1C263B6E3EEC3E8F748D8C55445 -2B5078BC27EC6B111F117D0E778D90DA519EAECD012511CCC5E0A6DBC95AD400 -95AAB0E63005C6C535C889F2F3A49B8B8E2C9CC467856CFFBABB18DF05CA1E49 -BCC87306CC2B8FB02CCE273E8AC952067D7B3EF5EC44AB641D6404B85050BCF7 -78A2D7B1666C17CA3FE0FAAD7FE2568BF8D273039EF8B00E6A2ED7875DD5954F -5E745456D79E182CB8DAB8E0A4B3EB78917A22DB7601B230EC24478DF552474A -D984413CB9DBF0ADAF5C9B4F864AC65B783EAE6095B27AF5172C4E0EC3CE9EF4 -9412201D588D75EBCFD6B456148BB41EF855E7E66926519308F71A3C1AF9A3C2 -AE6320D7995EA6DAF98349CAF4F8DA6B5F443799BC55D805601ECC6290DD284B -A4775522AF33DBA2AC4A3DC4544AD9635A7CFE08633E254BBC7B63D9D2C94FEB -9980B25F651D420AC95B957F2C3A6FAF4B8F4D88A45199553D565A287D546504 -416115748CD6EE34D81E41F0AAD32DE837FC2814934C0E91DB08E290AA924DF1 -2CF0340C82DE8A6480A93C2228D7607339E6B4A5FE203D778581C60AA87C6655 -45B11D9B52A061021647CAB09BF76AE915D313CF68AE8C22A462CA9C733D440A -AEEF78525D76AD3FF749061E5FEB963BFC1DD12F6825C01A55F5BEF5EC5F4A7A -6853E7DFD2FA57AB373940F02B538274A4E45904C6DA8A46B6EE23369A0F2A7A -CA936F2BD2AB0212AE42090515FCB97C7A5C7E5B14BAF0CEFC3BD85479592513 -C477865B0515C832CAE62DF58989ADCAEA1AF3F20A19048D5A470C256A5D1BBE -DDB35879FF5524ADEDC659C9B2A466C3C250C015C54E0D098E4F4E0886E243C6 -F87EE78DBAEF84AB9250302943982354B7E2BD34C15B079BDF81EB823C1640A6 -A1F7B662D2FDE236370A89BF5170AD78B73628EE128CA3ADAE5836DE65B9D6BE -1B4B32FE2ACD3A06071B1B7DDD45DA495102E82DE58E25AA098E4D3400AD8886 -30BD9E59C4A445EEA3F9209285BF0047215B404EF26A812070B593B3294F91FD -064BDAF57062EABC0C9805D37CC72EAD75B46130A0BF105D4A994A56255CE35F -CCA4DF6DF98F3D33C479C10F46898811AAF0DE59AB07E2C527E2B9ABADB16ED7 -0558D4C31457770B613F99C64F583C48C6690E811A24DE094EB338AE4D7BB6CC -CFE012EF048C81AD0EDABD73B5C88FBEBF8380142756C4856D67413186D10954 -F183C610899B6031CFF05EC62CCF744076533D9C55E3A014220C6996199F80F9 -2BF56D69C962B69D15A6FADA19A14D92966C2FC1F2A6CFCA3822C1D794F6782B -3EB8715AB03F43628C3EBCCEC4B5F7257A75678AB0F3AE52D2182E10FB411B1F -760CD07D34631D8553E34460EA4B560DDBE3688F11672DA0048EE2B4F0843188 -EC46EF9C53E7FFAD4B3682D469A6C753D5246CD0F5CB2DDBF2108FEE4F584972 -B1A8132217D172188150F60A239799803B1B999C7A63F426AE14DF4FDFA30ED0 -CA71302A1214915FE944EBDA395AEB8BA3B3921E11E1A7ACF29E77EDAE620A77 -4F051B77729D6DFB272667DE7FAD29222525EA3C86232CE07B54EFD8A0A44C8B -D3A1D1A2AE4A59C20EBB50DB0BB6A30136609274954A3DD60CC522FDA4B08C14 -7809CD8DF9774E9B4CD8054882810BDD99D7B27DB39793671EFCD4B47EEECCDA -20F06E8579271C37194189299062319E209268D70F41BE0212417D20B84DEF1A -5B37ABA3EA855C476967FEADA00DA0CA1FECD68BC3201CA7E06B19E92DA18A4B -6684B548AAD94EA04DA5C811F93CD4C08231625EF784DA095A7BFEC435F4872B -7117F52EE83C9B9C05F6081115A0CCFD46D9C9BD4F701EE3621DD9F635CB781F -3786BD4DBAF589BBDF7909637F64E22129BFB8CE3D4FDBBABCAE3922C9B500C8 -F91549C7BA96C4241CC27151D7320DAC313F3E7A01B09CA04C0C156B8157980B -F4CD783601556D3A554D20BD303F436B50994D249E1E1BDD614AAB3970D5A6CE -0513DE3ADF42429C9A5EC8FB9856560EE511FE87864339A5FA0C7271460E67F8 -277EE6669503449DE719AA5FFB05D8899D5048CFC752F57BCEEF2BA2A7019885 -15A9D994467AC3025A80A85DB3AC90EF318BA7020AA7370725685175F5F9507D -EAB1A7A5834BD40AA563F2960E1D000DA50830671A2830F2B4A8203D851B536E -DFA89E0A818E9821EE96BB7395D2D57B5254126A5FAEA6CE8D8BDCAD1010B792 -758E2BEC89044805647FEA06FD2228D5D4A5E5A830E914E556636DBE11BEBD9E -95676AF319E90578E6C1B74EDCBFB28D40DECCE1A665BB711E55CE01455D4374 -D8BD71DFDFD7B513D3B370BE74A4A28CDE9867BC00E5B7B7EC636D22A1CA6854 -9D7D72B05F250EB36559697906CFC77539365EAC5242C4DC4B21173F17EB862A -DA6E4CA4BBE83EBAF502BAE1662101EB246132C12AA3F42FDAD2F18A14CA0EFE -5AB3E07C52C130B2B57C90D2452D9FCF4FF750FB8B26C540C1BCF8C70E738381 -6ACA5ED357FDB68FDF24C73619FAF9E0D2E37993DBBA3FFA82FBED8BD9F9EB3F -0145870CB80B4429E582595AB561BCBB6DC15BD9C8AE52E820C9181767D287F4 -3B1184376B25F395FAF8F3AF375E +515DB70A8D4F6146FE068DC1E5DE8BC5703701F77F50FBBE021F4761B08ACA96 +DB5561981607A8BBEAB3F49FD8F059018A95D2C836A793C947AEE5EAB45815FF +7A18A4A453C1E8C10EC5E6020462A92A0AEE570E81752D6F6E82A1A002E55B6D +14234E5F0E23B2A08F456B184592BE28EB3F1854910775E38E2239C9EDD65D23 +E8583DB2BE7FBC149C86AFA33F8B048DCE0E8DF315FD88A5E4EFD9920B849044 +C41E99457788A3392DB8C5D5C9322D263DE89A6452D2E3BF0817842D6C968E88 +EEA0EA52CAEDDBE7F423B5A4C08B1A3FC3F28146CDDF4CF592860F904AB80768 +043E3AA13276A385EB0769AAF3462FDDAC3D8AC5D8B85331CA4D81EB1C698FFE +1A8F55C61EF004CD1BB76BB6BF651F231E692D46C00EB883A62D709FD04A0BA9 +F0D5426D3445542F334BAB13E88AB4E91BE50180066B15502E3FC68B6C22D4B0 +4912031F6209861EDA4A187BEE8BA9229E084AD765A9A16BDE7C0B4C7BA902A9 +A779D5B833D446021A981B5219E52BB4AFC73933894F52E36458F7B4C0CF8BD0 +0EB55C14AEB18614D71963A4FAE2CB7D31D59EE92529E25481CBEBF269F170DF +BDEB60A3328604EDA623751DC16211F2638EAC1F6FF566B414695D758012D522 +0345D097999D351229B549944EFC8E71640C5AC97E3EBC15668F422A83D04D30 +90CCB76029A301AA9BD932FF50AB2D60C9416075E1090EFF11D304327E02BE1B +3B225D61CDE6237075FE04EC798A8E0CBB64A802FF39B95BFA35F20CD451D4C2 +0E69DA03A595E1B9B7574A93FB7FA553CA469155503BFFF5DE708283F8E8821D +01974520B2DC0E278F666CFAB0FC222DB8E267DDC4FA12879806D85B6329AD41 +40F60CEFB00520E781500B32225595E54CE3F73DD5032E0682F61CAD517735C8 +AEF25A54FE696165820CAB37768EB74666589BEFD657F6E2BFFE0B492DDD6B04 +E272406B48C097EEE6FB008EE037192B61CC966DE5588A22899CB180F9539541 +5181558CA786CB69210379C2EB6770ACDD3A18FD0AED11201905867227FA367C +9D11964A1B60F551E218A25781645934DED03207DAD16E36685C09558B497D02 +DF771A9C25BFE2BCF0C36986FCA7D9DC89E963FB92005C40F4F3E144250505CE +7481543D066AE1AA192EE4804080BD1D1001DD1F3743E875F0D720963747C4D6 +D1C57341C24B5B11EA65D5C8FF05BE773520CCE989E4FAAE2BF0D72714018393 +80E2DCE4BCC8A32709559D843B643FAA73365DA08A4BAA71207B557983F93706 +ED2689D0212DEBEC0E79EC1A89BE9214C9F30A95CCE79912FC3F5B49D2BD2A09 +19FE1E0E21EA8D775173A7AEA548545D0CBF41D0AE4672E938CAAB1BD7E423EE +461079FC8460317DE79218380EC6BA74460E097BD9898DC15E6A50BDFDEFA79B +4A6A98DD4B11519B240ABD78F6F3573758BC87CC5CC8067782AFA8DB1C23C859 +FB05909106D3BB56115F79625C3B6E2A8D6EA4BF674A24BC8FC047CFAE5B957C +2FAD8BAFF8B2FEDD1CA43745A240174247F7970C4A9A8DF368F2F608E5BEC562 +6C072D861A6F7DE6E69B719D9C2679AB67D695F506B2CA22EB7413533971E875 +EF31549A2D7BAE4B53A4A7D4CDC251B5667B5A37C4C61FC70B4BA3F565350E2A +B658BF14013156187ACBD003763186D884201282B3FA5ADEA251D9BC77FC3EF2 +38C47C58102C8FF5D69356C83F2436CF6F7F54613EB61FA3DF3A1AA249463F43 +55BC44226FE0035DA710E68E2D594AE472E6F04A277E954D56F441C78B520AD8 +28B098C06EF6435AF9CA555C8FFF9EB6A4598393F48D79C290588DB843AB0A05 +3980FC021FE2F10F37EBF83DF178110E1C78CF6CF174ED4B7866591E9B3BC1A1 +7223701122F3950CE5F8B6DD5AAE0DE992898AF6B53509B19B578DE1FC218D9C +F1FBC0134C4463E906207F174E34C94CF98DA6A4A3E479776B777BF968E23DBD +8607CDF68F16FB935B698736D1E62C7A0891CF98DCD74FDAF11E5A0ABC8BDF2D +EC14A1B8C8B3BED976337E241BE76A2001DF3751C6FBEABBB00606F54089578B +D03D4300C217DE0B3DD790537FD3989D1A603E121418AC1E214D6C93905E6993 +187FD36880C4C22D4A2DB412C828E02F0CAA54BF9A3397F39F680406475F0C49 +502605D0145EEE555F1D9AC49B95B13068FA83F9ABE6AFDA43B9A52B9FD8A95F +4E2AEF40862259367782A6E014653C6F6694ED961DF954896E15B9F78B7103F1 +F10F1F0CD01C8EBD6BCEED33D6B69CB7DBCA0EA4D63368EE1DFD446238CDBFA9 +5CF116658B160045612C3360CAE3C7CDB2B4C22C2131DB04F68CE377B970B0AC +57193A25F1FBEEC3BBE001B1523231D8B2EBDDDC12D95E38A9A52A01B55E262D +4F5101426F629071345CBE9B8A7D23CDA51640FBC88E825E906A3A8B7953E4D0 +FE282CBF62EA440969A2C2F7DE5385B0901370BEC057A9F6FBF1A02C2045FCEB +2B7C3F8CC8A1083AB79D7676C8D97FC7C87CE0F730A77A5A6854FC61E6C91A3E +AD370C3E3A5C0F551EAC89CF53380B0760916E3805D8561B0067140866FA8E9B +D0DAF1414AD0C34C86006F95D17E9A091E63A607ADCDCE344E6B492ED332E49E +B8458910E17CC10DD47F9F14A500502E1CE9F5554F320FE027B7A75DC4182A6C +51CA1DEB9ADF4E97CFB396E4B348FECA33A1B449EFC1F41CBA9922B40B21BE49 +66DCD9C674DF1435660DFD1DDFF60D0E2FB0148BD5919083EA3C2F1AE6660E63 +0754DF936CB1A31795C009FF792B93AA87804637C50786FA1A6D75D9699F405C +6714BB20B435C18A630077F5D9865DA30956DD9645E39BCE58D2C20E47E9ED00 +FB1CC631EDF7FA1C94551F1146F906B9451BD43B5A3B8E219E4FD8B702957EB3 +D15263968FD47A348EDC7C8E7A5DF9285A6296CCA10FCC1C9195085A580AED5A +C0099298D20A9659A81999C01577E3238D5FAB6C7E86C1F8C793929ACC98465F +5129DD9E1F6635EB366EB6EA10ECBB94E228AF3C2FFC9FCD0714A34852108B19 +20983A9EDAF53DFCBA4D793F17D43B698D650CEFB55E11A0F469147CB991541D +DEECABA914B89177F630E4E29EC4EB03FBE3FED256B329F2BC7C6ABA950A43C3 +6487A6808203E0D5774A86F0036F8E844C309145D73AD9C998FBFC8C16F09ED3 +E8E26E7AD13BFDB2493CD36A53E8CB5C11944FE4254CE0851DFD55BA364B39AA +BDAF06B05D9CE01A3B44BA0DAA452ACA7AD22904BFC08F0DCAABB712374F0083 +89D7506E7F5625E04AB5A24906AE861F13D33B91D90B4BDD09413426682BCD82 +E30BDAA56174FCCDF736BB3D098AC5F76EC49F8C762D14C7C02119F5BA4AED75 +17C489A0B1CADE39E58874A233E1DAB22299ABBF6D12BB4FB727F8517DA8053B +43CE32895E05F6BA557A6E872D5F35B7F11CA7B2883900CF66AE82AA9B110A6F +3D21FA311B7444A42523AC29D33349442192EBF1B85EE472D3F9FA8CF2F6A314 +ECFA97338AF953D194E47C5A55D437F45BB51477982BD8D24E71567D4720E7EE +F25EC6FCB12F8326C39B70241310A60549AA1E30300DC2D508FB4D5770AFD1C4 +E70797C25DBA4361D4AA899308BE16C3E20C7CCC9F5B79089AC88728683444BE +9D55597B7221BC69ECC7E4D0863C7F2F3410C53E7D05F891BC4A0EA265032351 +803C981398142D055DBD8488CCBEF4D41F70790138 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -1736,6 +1721,7 @@ dup 65 /parenrightbt put dup 66 /parenleftex put dup 67 /parenrightex put +dup 113 /radicalBig put readonly def /FontBBox{-24 -2960 1454 772}readonly def /UniqueID 5000774 def @@ -1765,44 +1751,48 @@ 680924D8D5B73EF04EAD7F45977CA8AD73D4DD45DE1966A3B8251C0386164C35 5880DD2609C80E96D1AB861C9259748E98F6711D4E241A269ED51FF328344664 3AF9F18DCE671611DB2F5D3EA77EE734D2BED623F973E6840B8DAD1E2C3C2666 -DD4DD1C1C32F82156385E55FA0C948E3754B7B4883DDABFB805256B7D497F4F3 -14DA4D6ECC626F3A86FB04773B13C9C07CCDA5113D1DE8188AB6B05FBE434889 -881026DC6B0E2C4DBB02CA1DB324F8703D3BC687662CD2FCD08DC597EAED88A7 -D20B041F1F30D77E5C560D67693104871596793AB8B7152BAEFF35F6FAA50703 -B7EC148A5ECCC773EC9370F05371D4DDE4C52702925A3D28ADE37CCDE0D5FEDE -07A24BFBA84B04509B112EAD996CCE88B082B9CC0F57884F47886965CF504511 -B4FAA6D38FCADDDE4B023E09EEE74C26B324785CCC20D841776C59604B5D9A93 -88294B80E13C882F2FCE2783D4DF4FB54542F465A18625C20C784C47C81C7FDA -A5900B621CF823D9C4F145C1DB9364EAC7FB6FC1B9371EF6929D082D80146B94 -99C7E406735C062A2AD7E61EBBCCB2A8E245E10FFC0FEE6BDA2EBBD7C63F0119 -393E13E24CEE874B31548E9BCDC5257FDFA7CA4CEDF97B5AE98ED81575C8FAD5 -F0FFEAE31C95B74411B965743BD1486DD9615DC046E11C2C7AE113E61367B6B6 -84B0A6B8DE9145DE535857AC92D4D21A3619AAA53DF63B7285C3727496AD149F -E0D3B4A0E09F776814801160913F9C5993B3609854A5480FCC9D26A947D49C79 -F6FC3831D8F203BD064E559EB7375746A88330C6510ED2FDCFC5B8B691794D44 -7AC3ACB11B2130F453B366D205D398A40D753118C71DA84CD9B2AF09BC505C54 -B490BAF815DD85F08FA5F0C5C9345CF13EB6E01EA8E745FE118160003BBEF98F -D9B08AF0A74194EBE064A21D215B665C7AD4792BD1820F5EE103A002CA9FFACD -70F98A0C5A9B412367EC10CC6B91669C07CA8C6D7653CFBAC0437B7EB607FDCF -3EBA31758C0ADDD6B7478EB6D3EEEEAE7157143F254CFD735140FADE00592AC3 -3BF777438C503891419B658807D158789AEBCD76C1DFBF09E1E1B0CD30CAD06E -83E18FCFA0A83C7E423960BDAA0685C7C221A0CB2D60F17E800BCC173C3D7484 -D4484E863CA2AD0F123EDB5D9F165E812C60BFCB4082B7B4E4A1DD31FD9C5060 -9B1B6DE53D3FDE05D69D7ED9BD99A6ACD208267719444C76AA9E4A742D6E2F4B -3F035A6E7C9599ADDF3883CDF08A37D17829CB3085DFDD4E9E76A31C49C1FB7E -019973B5338BC6BFCC2A27D70A72AA39874F28EA5A8A83E2C0B678491851451B -ECEA1C9A129F6E0228E2799075161E6832FD8A5079A889A88C5CE800460CA155 -BCC6C3E70AF02D5E25C7F02695CEFA95BE3FBA6F1E7511E39C20915B43B8DE61 -C2C513202102D58B172BED6BC968309F39FB61CEAEDB537868AD7F3ED130029D -83E58881E6C96BCCD45702366870445C3D866CA9078D16ABFA41FA801D787AA5 -31AEBB8A94C9D7DB7B6689A71FCCF342C1FE6F76623AD92C7B564A374C10D881 -2753FEEC2BB4AB4CB470B72D8648EEEBAA099AB8DF7A062A3232F70BD59E12B5 -2F4F9BB877A2F3177EDD91A5666D2A62557E77034AA379111AAD7F6B8858537D -3809A63EEA22F182E86C714C57DA18990F1F4E170AB5EE61F65280062D5FBF1F -30C830FE459C2CD21EF554626CBCE7A546DFA4DB9EED2C21A861396413A0DBAD -425E596D93400BDE4C76E19DEFFC37F832F6ADD7122AA461131679913FCC4543 -95C91C951F5BD3CA3A5DA47ED8193B2D6340E5E9470EA75BF74A989327F97025 -538730DFEFDBA33D23CD5605DDA45B77F42EC049F10DBC6B8323AEE33103 +DD4DD1C1CBB3090A024F78BE318AC24F80AB0BB79A391182750B7F1518FC30F5 +782FE06BB6EF077EE32B65CD76F56FD9660C4CF93BA6C014201BD0D928F0AF5E +4476800044D54836E4F05A2597848E947F40AD6294DAD0FB498999ABBE871232 +BC187EF83469B245509FA6F1A3F2367192EFD50B838319CBBCA77016437926D5 +EAB66667354640F986591E5A26A3311EC049938A6FF85CA0D6E0D2DD19A5B208 +86EA8E093AAFE1BD44973947A1A116321CA245473DB9BFB7024A9EADD2CFECB5 +72E8534033A1BDF7586E00EF69727F2627DEF9F6944CD05525FF54DF548F70F9 +FBB8C6DC16E385739F67390AAFDBCFCD7E36F4067921EB26198D6EF4D032B375 +86C70ABA7460F5EE01D8CEE3B745C9F9BFE49104070F20C39DE30819BD6775E6 +B29487A78B403BFBB4B995A7681D2BC13A83C13CC87640009CF4D69B9E5246D0 +5437594753C7F1976478F34401782438ADF8DBE6141BBFA9AAEB0BAE302EC57D +A8B38FCE9921BAE1642D6DA7273CB8C6B05F219920BA9A4464A0CBB80DFF3DF4 +E113CF2A3F863578D6A89868C2E4566B4DFC7C5C4E6D9CE066F31E15A2203C59 +7DBC135AF88B037D4041E9E671AD94CFC46DD381C39E6D8150D910F0D12B735B +D1E6E1342126DDCFE260C0E51D56A7D7708FB672A8CB7A98E2D1BF4935C95AB5 +ACC88CF058F599230B2AFB162AA603441B24014C6354646415BC1A1A761B160B +31BD2CB8293F441049F856EF8138A2494715A4B8848948339B0970B764637A33 +D7F95A6DBBA7D1D082997F11189D77F7611167FC8E2A02B20A680E43843776BC +5BA14A6DECB7BF9EEA25F1EA159797AA493A88B5C54CF8744BD9A01D4A522A22 +3672F9C15319E7DAC52D700C6BB2408B6D457B370E21B9DAFED0ADC956BC2F54 +38F2FF9190583759489957CE98F728367B9177B0377AC2F5829193384809E717 +6C892285AF0247C444592013C0F139844E4145564E2F3ED0B4B9482F41645EC2 +E276775838BD803E7F85D15EE658DA01BBD4FAE1999212F2CECDBD8E390E5041 +CEF351D588661912A801B7D74B78DF9A1BC16C16BEC0F2E751A1D3FA68E77FA7 +928CAD21B5A249DE75C1DB63560EDBBFB5F73439DB4E8A8E5105D9EB7DB4B50D +25D4BB7F601D5A062F20F1FC82E8E15F44ACD279E3E7F9DA6B5E9123D2D32597 +7114D1327186FEEDF343113F2CD24E9B14CAE88400BF123C604813F46598A798 +D1D632F355CA61FF9B48D73337D0E5596FE33C7656FA8E0D9D2DC5938A4F0474 +60D82680A0E36195751A91F5F7EBDADADCD1CD9077FCBAC8C982590390412B8D +994C5191ED8FD3F2488EC6DD145130D8B7208597F94EF054C4440DF628DA9EEB +19805905FD6157D9295A2DD599E9DC1B887C1B9B1C193DF7B71DB2EDEA999A94 +4D8E507B2631A6B766ECEAAE91073BE346659EB026F0D3FFC8141EDD387E4981 +8F03BEE40AFA112B6DEAA56758007D2B0D5843837E832ED015FF8B844BFE0D87 +8CCAD01EF8DA1C1866336388072B9AB90962113DA002B06FC3C7A0ABF8D4319B +E2D01E010D97F70AD08935394779DB290057F9CC9FF79AB898EA5B8247050FA2 +A76B64AC45F9A7F558E5C5321736EDE0DDF3350FB634F4F5D8AB9AF42B153B07 +D7D0AA7E0AC549F44010DE14774EB6745077D029529ECA52FB95D280D92B8EFB +33BEB2A7CD64AFE31BD39CF04E7BC697F677472A6AAC850140E47A6E7AD7ADB2 +FE38B133D091CB6C8336E252E55EF14579B28F3838E52E036ABDE6F9066836DC +9F5EB549E92E8CAB1D3BACECECC7CD052D76CA5A2640F794657E81A4854DC289 +12155991C1E6F21CEB2BC6B928BB52E3883255CD334EE1D1CF080E68577B2893 +033A91195A68B6ED0D 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -3445,413 +3435,407 @@ 24B75DEA8A648B7F34F5711DB0E843C914E25663C510185BC37BDB7593C1C259 21D8DDAD33982C336BF272BAB2F48E68217403FE9F54877B243614A87E64784D 2796EE4179FBF96123D1BEE3EF89D682B427BA4F12A1318A57F18BE5DD903815 -26191BA3C6AD9EC21F3BFF3858C49B86E5AA31914985968F5DB84434464C2077 -B8D1C3C6D50F0898095BC162B7693FF6B8AA294C79FA756312ED6607BB9DC3BA -BEA2B92D915217EF6DA7D76822C6323B0D59E01B090AEB9626FB167788037087 -7DB5C0A138676BA8D52CDE3253A7048478AE11EDD444135F1EC8F291A0CC4293 -FA4B940C55F9D6B30DB4C2515D540F87044C815B7E58CF3076DE09B08BE04FBB -0EE0DEA7B7C72E00C55B83E707BD9DF7CD30D200ADFD7A10050EA922DDBB5365 -D1BDBC69A166AEACDF4FB944F5E0170C35435F5FB7863601F748545912075915 -F989697E6E7F0D98C784A863628160E4379C5A42ECD293C679E3CB2E75510A70 -5F201A186B6AE8DF456FF51327F5AD7E643391DEA7EB891A7733F2F18BCC9786 -8564339DC0C697740EA5056A65D8B0102F3FBC2D9AEA0076C1956F4E18BD43E7 -532F7B2E1325103AF648B96E03D52ED4C130D685F57C0DBF9ED7C07E3F9313FD -4843A203279E4FC1D1896FE020E20539CFCED8BDBE69C6AF96568160C56472C6 -2C6AFE0D0FB49FD2D77A14E151F23418D0671D0C7A9A4984325C0BA3A9BC3D0E -F25A1E523FBDE64A6978A7A1643F8398CC2A66523EE770D370F73F8C76551699 -D61CE3F9F620AEB492BD228DF45DEF195A45A6A6971C0065D000AED7573B1530 -C362D820C0008C2F4EDF6ADF02EFA80AB11B59D6E0935B9AB8900893B1D106C2 -595D74B94C6B2BE8D0F2A929D9A31EB70BACFB96E0A5F246B825D210DD292EA9 -B2164DCDDF515315D2334431A4C49DFBD010F7EC62E7E7B1DB4ED17CEF8F3603 -61EF4BF7D0773EA6581AC418214FD3A9550DF0AD84C78B5AA5839EE132B421F6 -BF5E708A9B40109E6F0600DCF8B4234C02E1833AB7CBBF7BAD42FEFD4314BD84 -60CC6429795FAA27ABBAFFCCB7208CED353AB67F978D3350C2767C187D8253F1 -E58B9DDC6A35AE7A7603E4CE3C7B670B8C8E636E4B50561C2D7735C62E4E4669 -205F16DFE56D78EC963CD6AE4E1404F83A8BACAF085AE965D72D1FF146F14EC0 -8110CB4C5FE176ACB15623C46ED84D244CD2CF78E05CBCDA2C607C154BE95FAE -717C6DACD1C50F8CD1D44BC074B0F987C8D3925BCCFAABEBF4F5A388A776C387 -FF5A47034ABED4E284E4F2C4E02582D7FDB07E312BDAD765E86AA792FE4D09FD -9E3EEE01CCA910286BF2D9C23F649C8F612C9E84710CA84E500FCE6931562F48 -837F25558DA81EFD378671453FE386DFC83560F79471DFEC9B1CAD1A812B72AD -3653B6BB5478A36548FA6137CF0A7DF18A941C3D32ACC34DCBE561EBBFBF8286 -5D6728546AEC6B6E078D10684D22A4096F3B4FC9B0260B10AB51F893B7022951 -3902BAC38E78F68819507A96D14DE9F7513152D46E1E99E25ADD205B1A821E6F -EF5833E8814C8E79F4818EB738A629A7D2596A16464AD767CFEF91EFA0F024A7 -C59C3A825EB66E20D482DBDD4AA4F66D742F3D7A6413C6A482FA5680EF20EE2D -72AA6E200DB190324B7CACC854E542A949161087DE13FF9CC9B573CDC37BE3B4 -3419D1AB3D64FAA7462CC13879272A7D340BD7B88EF9D84925D2757F8A367D7C -A7735CA35B1F71CDC925F601992B931DE0E70D46967585328A14AE36DEF12275 -E52FE4ED58BA55E7AA79134C4F06B36BBA85F772CA0B6219EF950AA51BCC3A63 -B504696819E88416BE3A862FB29E5C41AB522806401F0441F7791AF0172E8CC7 -00704B7A1EE11592191D5E921916F4EA8EA10CE4BE398CC69B68593728AD03E2 -9E66948F09A55D8D99A866995DC66D36C486CB4F77E0937A3C64CDC988F94687 -0431401F1F5755E90CA1781D34172CFB2E4150788AD0AF49C79CBC51092871AD -79F9080A0CFF4C2279664379ABB81586F55FE0857BAFA5DB7A2995961CB4ACE1 -8A9623AB35D7BC56E098D44A588744625B4291EFE0DE517C39B01BFAA4282F89 -70D013994C24695B509AD6801918DBAC12303DF22FEFF6B4BA0F70ECC5BA5839 -36009F8D38DE740F1F2E693143B53FE0B54CC07847773826F5A37CE5FCB0B26C -BD57B9B7FE35838912271CC16A1074047F915CA894C41A1C1DA596CC486F25E7 -0EA5FA4FBF5EE4C0BC4D6DB8823C61DDA224D3CD47395D33A63AAA5E55609FB3 -88E2B4A07B703CFDE114C1A944C44FDB4767C37C14D8084F8F3EF7CBB2AABFF1 -F5229DC70FA74006602AF82933242EA4B87042BEB38FDAFC983A30852C200324 -DAD11AEA2501245E29C1FB6A6E90F9A256D9E775FEDD0589EDFACDA29E6A9011 -BF9F4A3C843C47802A88E9AADCF85EA453A451EF30ED7977BBDC76A0BC57362C -0C54F56E5D3F5DAE13B8F0F542F9D97E81DEEF05D746BB51D37E01D53FB0EA95 -163C67CB40C0FC182C20CBDB790406F39DF1DDD4EFF61AD8ABEE37BFCB5F59CB -0BE42A98E6C802A3AAE07D67211983C3D1EAF9105A50F379A842DCF296E172CB -BC0392A733811979C313F82A0971C5CEF412612091F78D6BBB2137B0E0D437DA -A3F76BD8A4F0B20505157F99CA4A710D5E5B9E7968161B08400C094025F1A36B -E6077EAEB1E6F00A86D830D1BE4BE78D80B845D254B09D4B6E0F295C024DDBB6 -5366CB67241158922AD45931B685F4DE06146D750F315855FC71B95E8D5E5224 -38A54F39258AF20C6972A0AD203E47FBA4F43B1B840BA188CB48C0B8A942207C -7461CA2E6EA1C6D0D0F77D35A0216EC0252CA28C0756ACA9E693DAD010164D8D -423F93A8FD93A1D09E087F25D8F6947CA8A4F137C373502CC2A9C46F485B3FBC -C89396FD6293C58A25ECC19C4F37FB5A4CB760119001814EC146EEA928546914 -D300B7FD4A712317E633AF470B5F746844401ED73B4A14B1724B275969407B5E -B1A4085CC5D5B5FCA6FF06F9A772A4C50D3B7A6FC09FF446E5728734C9D7BC44 -FCCAF51DD01F8DF20D84E9B4BF4BB91B7184353E12741207DB2D879C0EABA4AD -B6F9E5953F267111F799ADD246D94EA8AF1E1ECE4E11BA9E4E1D03710EBF935A -238F1AA45AD902A54B198643DC86762D2B4DF6E895F3B270BE8136226AD8F90C -903026287A731011A8A30769D69958FB308076F252534D5BE0BED297BFA96B24 -D6E195955F07A16794E1B5C7A59630D213DD08D5946A8F6674B78B675A8F35B0 -09583A28D4CAA47F78645129F8FA1DB766BDA502C204CDCFA533D63263DF8FB0 -FED374917AD9D345806E31EE0AA0CB4228F436AB7EC3D90FBB02DDC35986C97A -A9561D4434C60938B59201A7B95FC5A6AA7046B126B9BA43A0CEDCA95DC34C54 -1C7FFA9DEE0777594E029D580FFCDF2CCB1FBDE81E486C22C5FA44B101AD6A8F -E1A51B89929826865B8F01042634409EE4FF154F245FCE7F54062E95B2404841 -2230DE39398FD975734DBB0F6D4C75BEF1028CF641A99E9002E75E9C29A85972 -FF31A316D40A1A180A43D537FF58809A17D783838E737915AF6E832CA7AD1887 -0F0B8ABB67BBAA6DC2ABE3F763297B1C5DAF985A00E7BAC7CAA87F141B388F17 -FB96DA6601534C58EE00CB798C3AE0AA7FD6C87D658B9CFB94B330ABB880B686 -3274F2F16CA2D51AABAB281A9237ED2F8ACA35604499EA9834EB7E41CA58DE4D -C7E9FB868F246385D95FB8A7EE972942F882CBFC99C1DD05C5E7410037752D62 -BB09B4DD84772D3DD2803A3AD1A554447E53EF3D8721528920FF8AD8671C57C0 -C30CA5F526AA64BF7484C0FD2F9CC34E091B523BBF84CBD4DCD8FACEAD7FCB1A -50C88E52FCE51B147E8BF73EB56C17F36B823CF6BCBBF59FBE30BCCFFF838686 -F3C0152DADC3EC3DE2E4330D7045081BFD07E3BF3DF485749406FAE4196518F8 -F61F53F430D775C3114348D312C5028BF9487E533A964886A267A49BD6F293AE -64054A845F02B794A43E5DA09BA4D9A2A9B6EF409BCE7952BD04B6B22C16E6BD -7A0726C38DD541B412263C2C89E18739EAA1D8D1700FB018BD9B526E15AAFAFA -E872BD8F6DC5D7DE46B520035F2080CE77831CC46453A20BA81A9E8199817AEF -6630206DC2FC37DBC59A89B723818E4E4C90DCBD0698444B8FE264D9669B8BB7 -0E9900DA1DE9DC993898345D4FD7A0E1CF3E82C9D91B8990590D8D3184F79B92 -98ACAE3A72F943217293A23F8D4EA0B2A3D62164736A8E50981ACA7FB1A6B849 -C8AB00F88769EC49051A97985D9919E32967559F26328C8F370E0D6EC3459044 -FFF297AE8E856B79D76744DB3C3A648D30B42B9C2EAAB2D677962A69C76C711B -0D9EFC670DB969CF72AF25FC8429D11D81FEBF77578942C24534E0BD8FF7AF45 -759EB6AF2EA26D26CD95531B6C5E17DF78D79DC7A2FEA8B7A57A44BCC7AF3326 -F06ED28D4EF3C6D5D40474B3B71F6FDE681F9D7BC8EE351EFC6BC727C5EA1129 -9EEAEAFEDCD848E616A460891EBCE3C2A4D37523229967295FE457B698963B38 -1BFDA6D253C18C3E5EE5C6D5F6E3B3F2D97FF1D2C6167B54A3350A22231A6BB8 -B9BEFE3DB104335F6EAAE0F53BD6482DAFD6B3B9EADBFB8D5845A460E9D781F8 -496EE22A0F84B47A9619D6561804B9368A340B0E38B48C2073027D6CE01F7C71 -C43D76FF0C561DF035FDBB3B39C44395573AA9A271ECF12002FB3CFDB10AF192 -25C97BFC0A5214775E4027D53DC65B845CC9A3BDAAFA89E9B1064CFF1F0A4898 -EE0CFD4F6F7B7B801DE0BDA7DB64DDC8EAB80D81794DF13ED28BDE3B606B33E8 -3C4B6E8750838F03F297F8DDE9AFE0DBEA9259F73A2D257BCCC89495658AB446 -9C474637021080426073B541BCE513605D91F40A436C8DFAD9F79FB49CC5EC40 -0D8347D8D6ED6A90B394F46477F45C7C2160EF51271C93DFDEB81B9249A40DA6 -D3EA4A126795ABC444775F8EFF44B75EEEF9F3B2097CAF1888B1AA59B5DF9CD3 -6C118F7978302C83F31FACAFF3969E2757296C6E676448A255C0818DDD7D57C6 -99027506563335B158C23179601A7F69607DAA4BDAA21FCA3117EFB021F6C5D5 -3EB22A3ED271D2BF9A74C3169E5884B45BFD07F9DFAE3C1CFAF1EF363EF99335 -4EB903015EB3B9915D0B34752042EAADFC7E43F2A6B98E6997B472343FF34A66 -23654D4D30736B6EA8A8399C29AA9EFCD35495CCF705BD560054F5A326E07F22 -55778FAF6AEB152A891398C84DEE2B3FF8F0F5C7BA7025AD1E58475CA890A4F6 -3CE4B5A78D0F20B9233F42ED568D6E7C21B018E8C34A4DE71C7909AE00420F15 -3FA5C27B95853C3C5C63DF2002E0B828DCC2D75A289BC2560FD413C1FEEB27C8 -3F03D5CB1AEF11FBD9A023C399FC491FEF73D9A79F495029AFF641CF17917D18 -58E9DFFF468FE7F3E9E52FF17AC03845E5492311042350247005B3222056E942 -CCF1B233778A929BDCA2B43C7999DCAE992C6ED5BC35824DF64BD3701540FA73 -1CC04A6BDEADC9A61DA02FB55BC3C3F4C56D259B02249574317BAACA10C88689 -070C327EEA527128942E35AD622DE4116A5799B0341DE3EC1003687884D94D93 -44097410E54FE94549B07582F4C9A79FCC461FC59807EE9E413C0037BE96163C -F731DF9814FA137D9ED6E239FF8229D86549C2AC20797D5D2B3836059A6502A3 -DA805DE805A21ABAB0C6B7A5C4A05A7272F50E52831C10DB4BB4F4432D32D581 -835BEF39F0CABF674E5B4546F76298A4142E9869F9AB8FAF3DD539401EE69A51 -D2EC7E3373C56B514F19FEB80066C13FC9DEEC4B3BA2F7678F1D068B5591E1C5 -B798C1E347FB3A618C623446D1E3D21F2397BD08FACFA2B10E5D8B4B0651E564 -FFA5C15309AEB3B0B2A497C7163D4FE644FE65F9F4FD2ADD3A1E10A97CDFE2DF -C3A78FC680F88152D98FBC9C106448D880A91FB9F668EF78A56C17CB5C6FAC2B -D95285A538180AB573B2897589DDB41A361BD8596F656D5460699EC68AF4F2BE -21B7E1072D8D934A7AD13599FF650CEEAE93372E2F8A570A2FEE65A6143DD595 -31D8DACB139FE527402DFA3A0344F10C0644B46927C6B6EE1FCD239D6F2B455C -AC844654954DB720B8C53A0B5088E1941E165CBFC7F168D8BC567E0122E31936 -418080EFCBEBF0CAF083DC66278E48F2073647076869CE347DDAA7D459D41ECA -28C69CBCD6088E4F9DC25C77E3EE08A1D8B8949617D10920863BF60329527171 -05F2081DCD9FCFFFF092D853EAB8F9B6AA580BAB6E03205F09BFA0AAA165ACDA -A1E462A4323CF47E023F53A4CD25E2D3490B6A6F5CEF5EDBBF09172E9F6AB4FB -0B3770F5D3B3449F6BBE4E22B5D2EA8E9AFBDAABC0F3F2B3F93AACB0D2FD4C03 -4500EED63E9CF872E684BFEDE8B5F34DA4FC2614953C2798E00267CC2CD05D0E -2C5C6486445B8C1CB79F3F63D627D83B37759C114F18D4FC972BF6CBEE5B1D88 -3807806A489CEFE11EF9CFC8B275A74F0780C3C5D589C71684D30BD54705AE2B -13CE83B5E1E139403B49488C5707F9585E6796E4C03CED05D9E5A46FBAE92CFF -501218B3E7875E0C5F62F21A1342CA798B2AAAAA78254B5EEF248251CFD2D7E9 -FC299CFF0B1C81EA0CDCA106E2D6A22A40B4ADEC2005D71359796BA1E6FBBC55 -549B9641AD6A6AF977C5234B66789E946E138754F15C9A05E67D7340D73F76CC -B5E0D01A685DFE166A0B58358D8D05A407DC9EFFF2F85F8501215DA2930E13B9 -01EC0C99DCB05ADDE6858682EF990A03DC1B732539F21426BD619D7A51909A56 -FDCA7B2B708F51E60DC0FBC290120F8E8416FA83BE81A855ECFD1351454436B9 -61F8E2BED45B05BFA4E078A7358F9ED8B0F3E90F73321A042D2B35C3923E3DE6 -EAF52FA739A0E3056FAB8541DD6A9135E0FB9683132106BB962D28F8E1AA7EF7 -FE0595A99D6342E6819F630BC70FDC924A9CEC1517DDE63D2327A03B4CEFBEB4 -B6D9C496113F3230714984C416F17D922D30B61526A9C268FC3365ADAD79E48E -A300B5C343475BB886EF9AFA8B9AFB4E4F6752CC2AC3C80312717D6BF318CC92 -8F00F381DA8F0DA997FA1372086B2075C1108F8DF6739750F9612D9860379FB7 -7201D330B35AD0BCFFEBC4165577F7069A2727CB5B65C70F4A09C5CF4FF1A672 -4A971FEF57F675835771D4460090B090D5DC38F60B82E5B4E989B9CF4280A284 -981644EBBD2A8464E85DC4FA03CFDAA7191BEB61128598F05DC3C8D27F989AA0 -746E083FD1E138EF570915A8E1FF7162DF4A3DFFBD9938B035C70B931A118170 -DE9288CB3BA13E58AB8C608367BF2EA7D6A8411FC972E8DE695D3562719813EA -872FDF2AD9DF81F1FF68F7E9CAFFEE563F64D8FCB7AB662BE6F5CC974ED4013B -C0EF2B526FB5CA4486724C38A8A01D179ED91BC28506D6E447F93B4D59215E7F -C27B5B91E351B1D643580755DBDD7E9526825220CAC7662E0AA834C75C977D9A -5952527CDD7BFE720EF80BA9EDE8D790B33771AECEC33A9AD7FEF60F40F7A1D0 -8D85CADE4903B1F6EA97DE82E617436C5442CD1214621B3AB18CEC6E95858DF1 -10E37C58ED580AF3EA61655E6906D08E6D4C12C0053AF55FB82885B54538687A -5A6E6D0156D8C780BFC3E7A29622E22744B5A0A121766AB804820C83634C70BD -84AF605095EFC19DFE930CD84A327D72A7F2472D768251CAB92F2F228A2F49F1 -F3D35FDD2793745F6BA1363ADB9FD9FF9D234EBDF9AD5429D41C44484180F1F2 -C01129301862299E29FF82F2CCD7D972BD6F52D58843FE2349847A71324648A7 -0BBC74DD559AF56F6A56BBA51AE3BE91D5BBC933A13EC8D1331F669C3DC83AE1 -F221D60669813F10755FEC0230814386CFEC6A783BD594F0D5876DDB462E5DEB -9E698B73288921F72CA704EA00D92E670182A81FEA5C64364B83B5B8CA2C3C94 -92CE5CB4CC50434F58C4E08FB9B1238685E798D11BB4EC1A1639E9C3BA1CBAB0 -4621A137F3BBC36C3ADF1D2D0B1088DF148D9FCA7E2748DC32F3A4C275057EFC -8A4EB9F55F9EAD958D485435DF61DFD03F15837ACFEB9F95BCD8F2978F36CFF6 -B0BF7EBED6EAEC22719188AF00A60785533BF92F2A38F3D4B458EB182458A36A -3710C5EE96ADC82886806EA525F7A384EB1FCB8152030B4794CA2DD90AC20D70 -10F750D4C09E53F317C260FA19877E756F18FF7D2F19BD71921C7F3C4F0DF200 -0DA0460612E3EBEF24B6A458EC121AEB7AAD991B62F78023846988F68AC28059 -3F3554F46FC4B7371F9026B831F4BB931B6D9D8E0FD115E7AA0B38A4B984CDA8 -346906D91B0F279276082F35B3A30D7A5A30BE3C87206023E92365BF3418AA03 -B47D84F9EE33339BB17AD9C3ED86ECD4A3FE0C7C95ABC98FAE5C080FBFC1FDEC -EF8F98743BC86E158177BFA962F4780CBF8C66D1844DE88D6EEB380D66F43A6C -C0783583D237D3245220F22DF609CDAD018C84CC64FDFCDE3FCCFC04053A9663 -6465C595FD72F4B6E986FE5B73AB442BAA8B1CF36E47EFC55A152C7DA1A226CA -5A3BAD606AA5F1B4A21AE7931D13248D73DC3EE7F86E27E207812D5F6442F485 -E7B17AFFD553E0A4E3A2B7CAD6D1B8F32100C376FB3F6A70F2DE29C80922AE37 -C21E535755D05354B6379DBF60408742DB390140746A783F663B0B45CBBBC4AF -4CE13102470D6F0D554215D3E1758312A37C2BC1DACB83F933896D88991A9A36 -5D7822A646315D9E05AB30123619F3700A73B21B98D40D8029C36F713302CAB9 -B381601B9B9F4C3D5056E04D78CC1F247B771FBFF99C162F2F228A2F4EF97383 -18B59AC71922F98EFFA56F86C4703FB91F347117BC356FA025B49F38460E6FA2 -6DC054E78FD869A2BABBC7D5C4017E8796AA3E6D04F0E1B4C60FCE4543C96DCD -875DE916DFB4BFCF69D3D97C4960C9C4004ED2C70D9A15702A7732519EC52732 -C9E12EDD5BC8AC4719B1EDE333A2B38D5FB4C6C812ED1A564083094258F16914 -5A4F6F7962643DE8FDB869D1678B71C719E1417C81588E70783597E183809095 -87260C485453458B61AC65967F7905C4DE369AD87E91E6B5359D620C517AB136 -DFBCE432097018FFE35E463E236F5A98E4230D0944EE6E18BE5EAF4361F40F6E -24722ACC0F0089BCF809ADA0575EBBB914091A0E31144814B9FAB55648AA6C1D -26EB7FE0EEE245ACC54A41A3B95EB12270509DCB559929DB72AE6CA6CAEBBE62 -8462987DE3DBE416C1D861EE831B513A4A6FF7C509C97811685E19488D16EAE9 -A3E6D8D3BB9DA9F898C831428AD225783C1793D1C80FFDBE5FB5AB42D3A306AE -061010B7F448D9795053C2FDA59BB3BBDF7EE2BA416D1CDB83FF34618CC4E2DD -B90472D28B3BE844F9A95064773C4E2953ACA410BCD3FCA942842E6BD7433340 -75C8DB98F13B4EE65E8C6F7D3EE48F3AB46014CA3F942893B1E3B3A2CCB915F1 -F3376BDCF0D0F54D2E066E6B85AB05736C5AEA210C39F780A64EDD2940A1437C -28EE0AB96C24E033BF4DF26D018E0E92BDE686CA2149DB9DAF734C3A44515D74 -0D27EC2D09D37DDE02D8623BC486F29BD068F58BAB1EF6A428994A17B173862C -E582F5D6D355C38043A709640E8B7CB4C48F92B1900775D6AFB3FE9CE656D05B -B1C6F97D0C00B30EE43DBEF0E9B9FA5345BB274ADF2D3903432BF1234446A1D9 -567664171CE8F23647F2CC950212E7371868589A961E10884EC0159DF3A7EF40 -E5C335400A630792502F92C5F9237B7FF997982B687B7FB2185AE29A83C3BF2C -B296D0BCB6777A1130C0C2C9E36F591A552B08BCE4F828706B3B12DAC9D2CDA9 -8721369F3E663AB1ACEAE8E690ACB7E3ECF31A05CC46FAC2FC3DCD70D404787B -5D1524B6D93DD117857042848BC513D8899BCE19620B43D68C90CB5DC34F807B -16E7D535AEEA494962B9958AE18DB4988363B143F3700C3F70FB5AE182E4B17A -726A8696F9CC37F7566C3DDE734992948EA8B4D0EB6CF61FF3796CA2769D5FAC -927DA82C93758E7E4C61F5C53C2A645D6105625EF682BE0FE14B2D0AAC0A4275 -667757D0BE33366A4C36A51E766715AACC1DB36893D25E3B06F30AF305693360 -74FA05E57189DAE6D4456BB2C154CD5AC1D1329B96E93AF26B218B94022128C3 -FFA8DDDD5597D49A9FA8256F8E2E8274303BD26C68EC09D230DE9422E086AA4D -78E7AE3E5CA855E7B5669D4E4DBEE2F254D71F76F0A89379845DD979DCF6A73A -CA8891D4BF6811F25BB1CCA96AD978276767729BB09D7A5CA3E1D76DFFE370A0 -6CFC8F06554BD511A22F6FB2BD2EBAE829AB862371BF217C6DD6A9D9F1EB971D -BFFC78540A3059E58774EF07284F1839B25059195A41BE20CD90ACD115EA72ED -CF25EB8025F092FF217B842562FF2353D6A24C42FD275B653BC0B7140925EF0A -059C39A9E0039615E2995A421F6626B598D48539FD7A35978947E9CD48C41B78 -1AA1C1B74D318B764E041867C3454EC38884FA467C27299448D897E9095CBA4B -F11731B09348F87218785CBB33F84F622B61CAC2B09045B76BBEF745BE125714 -F281158A132493BEEB7FD89D6775B94259556196A84B4F0C6CA98C36405149A7 -82C6AB0AB3727E3631273F8C22B7A47FB62864E30AA2DA14A28D561E5BAB80DB -E77E325E45012BA4946268CFFE27548C2A1B363B9E368082254137BD79110754 -48069DB27B922FA4F4DC74998238777512AC639C27AE2CA96C8B5E5D92300361 -BFA232D09FD400359D909C19D6D436BE287EB778422EE4300D171FD707AAA67C -07D7786285C68FB3A6F0FADEE1C3735C77E2CBFFA59CCB7E05EEAE260F026F0F -2900D498A4BF16E7C1F2F76C0E0D46FCE59EF524D3697DFCF0149A0D50FFC98D -95514A63F2C926B327D5A6499FD0A818C256BD68571AF1C8BAB066471BCAC38F -BF8D2DB1D220C57A8CA791A16FACEE17D6B617CDF2CBC51A43A01D6AFAA70BFE -125738D2564E80DD4CF209255BE3ED17778FF71027978994C7B7A5DC58062A57 -64A4907EA366592F495D38BCFE1D1130A11CD3CC240DF739A35932912684501E -406EBC35C6003CB0E7B339DD36EC3D20BA0AAE423B2483F17A2ECA311D8A333F -CEC531C363C042650FE815086B9C7B2C5C6E4A61B07706AD2899B3AC0F3F14C3 -CEC20502022D9C5DBB73391E6DE36A9E1590E098BD36F4B4B6C0F584CFFE3EF2 -294430DE3201DBD0419D85E6EBFFDD9984347E1935CF548303C1774C2FD44D02 -750B580B798E696F0193AA8C280265618C7DAE8C90962D83E5A799799C76FF2D -D11E673A1355880882907FC61C909A10CA3E054100A56321063EDE2591E320EB -34E91A9D43DB5322B3CD58D8D27D9175365E146DE108581E824C7F4BD25F9D38 -63B7CE47002CA44D671E35773BB6F560C08E59506379125B9D402181FBB67E90 -791CE3BD64B3BA6E0A2260616B6B31107DA6BFF9767F7B2D55613A851CD693B9 -AE33BD12D6E5E8021DBB39AFAA81BA42887FA1D9E76BABFF568E3EFDC0EEE2DD -3E6983B1522E5C1E8D3E66A3519A9DEF442C9715D15BACBB0D6FAA481851B086 -6647334EEEA5E65ED963EDC96CC31346897C2BDC521130B9B5D7F30484CE7F21 -80C5E12689B5AF920DBAE849526C839430A19F5B5D8802B01091046DE1DB7669 -398244B97443502C264237C69A84BCC7FB0A8B81AE4A037510A77F4166DE8A5A -D9C05A62F255523972C40227757066751F26CDDF921FF883E1AC0B5EED30B3C4 -6922FC2E5D146E36BDEDD40B2A2C65B24345B1C9F3BB2F1A0473BD2B2BA9C81A -58EB9EDEDE50FDD4CE2BDDDE25F7E35C777A651E8B21083140B3E37DDC4C9BC7 -667497C2D552688BAD7349AA69838AB7CAFD2D6EF733CF2113BB2CE0EE933518 -0A59CCAAB9E1F8420236B686F0623DED986A862471DC3498C7265E2D1A194BC4 -A1E448C5916C3C4500E0685B5B7F9099080D889B5B2B698719DE8705C00D1620 -DA487C4FE9363F6CF3A9E871CFEE022B19CAB37EC3BB59315655D1E3C0075866 -7ECFC000E1F771A1022EE7323DAE398FB42FBCC1B2157FF123C0645E1A798BF3 -57881E3F5FBD5346F686939B84DC890D016A82613A6085D0466B995B1EF8E790 -3F41A46509F64C3171A420FBBC49644BED786FEF1AD816781AE46C0505475C13 -2C08466381D168E7EFA976D4CA88830FFCEFD098374298582DE26E6D2A0203F4 -99C16188C8E8761E5D3F1468DCEB5C97D33DED8EFA06BB7D92C8FD101EB41393 -BC7C9EBF2CBBAC64E089F78B3487BC826E773B301E2A1FF580A6CB395407EC69 -B03085308E1C9ABA0A065D9D72B2108781D83987E7C3A667D18DC3BF33D44602 -58AFBF58D3A83FA0101ACAE0A602A9FD852DF1FC3A7E23A07C6E1BB524B28CCA -BC82CBCF146B7775C01EB5402CB27D33E4F5B233C358F5DF838E65D33FAB23AE -9C6D7416A8E99DDBE3A55E8BDFC1C68E2B10D14EA762C71F9E3B9F85DDBFFFC6 -F11E998509AC54603B092C5624E30331683048719FF81CA7A0544A86A773A286 -D2EB9DAC431807F88915D7E38560C6FBFCF673284259C29495C31C07991CC02A -AF93B7FA51ACD844595C6B91862D6FD70FE834C61C07277D7791D3A32D1BAFE5 -8F9CF7D91B74A6F3BA77CB4E91112A046583FB676D3C6FC2CF707B9258279FD6 -B437FFC7388D13F47A822283EE6B23E8D40C62A3472E31A3B6D7510926730E17 -F58491F3F4C273DDB6EEEC415CC589E4439908388B6207021DC4E43B9D543833 -14998A202609F548D98C59653DF4A73B6103081804EF76F4C3CBADF3F06FABA0 -28F3D8F13C1DC83D34A67F33979415AF72783CDB5EE2EDAEF408565392E4202D -BC1636C98955EFB92E2C2A9CCEE3943ACBFAADA516B4D71B9DA7D1A1786988A5 -BAB550471A1416953CE1EEE13D5ECF569DEEE5D01B1796C45456688824C4B0B8 -05C8CA06BC93480D1773711E8607F90D27850058A19B408FF46EC2B1355AF49B -68702B69C311D54D26F1AFA2C2A71D4B5E42CFA4F658BA576B66A5119D6A9587 -8F4EF9B0B3EDB5687715D666B1FF3C2E9D9B261B6DE619688E07BDFD855644B7 -758A8ED92939221C5216BF1A884B4839534E922C82BA0ABCC269BEB048EF1865 -EAB54305E0DDA579FB410C4F969D5B103FA995A6FF32A426B42CD66175372EFC -09C2DEABA931222BF95FFF23CF751C812B4CDCF5C920B5293E6F150C8BC629C6 -5F0081B79A6131DC40807FC51F92EEFD05E3F0EC9F651EAE67C1E8E451AEAA6F -16A35E6F8490F6CE931FDDA5500EF6E2B307115E03B6123B4AA9AAF748FE741D -1E622C8D353CAEF3960240297ABE92EA546AC82D9AE930309B7453E49E4B8584 -EB6F293F737875282F4855CD8B1172F2969C765075E764DB962EF4C9AE14DED0 -A2C71A1759140368582F32F0E689577A37F2EA7C94B5B4793340CA2C6DFE3A1B -3176428AC6C6BB7B0CBB166B4E8745D71EBF187D8EA4C8CBE7BC52942E85FC9B -CC8E48C1390067F571DF698072FDA23E36AACC454BA1414E84D6E66839BAE5A4 -5D348C094E1EA8235079737377D1C5B4A0EC9645EF66FBD7DAA2E2885D09A430 -E35148D7AA5CE5F5A9A224BE77469EB9988BF3D992D013DFBB7C6FDAB6596859 -53CE804D9F996E6623FC9C42EE456C13AED4D40F6A27234030E3FEDD5ED1D0BB -B426D3C8DCB7CCFC1DAA43D3F13A86F566E3E745AC44FAF9221E46F5D0389D3B -8F8807424209E809675753C742D26A7249A429D7D15F798D47B225A2FAED87BF -43C649C20A46189EEFA8862BC68A6476805831AA0F5FCFE83F139D9B0A3F3157 -3DF91FDFDEE6BC80BCB69548BF339230D9FEBEF9311AC8A9C33A12D7FAB190D5 -F64AC182597A0D6B923F7EC1D120FBDCBA4EDF62391F4B5777FF5AC7EFE246F4 -E6497657D7A469B8639628B5180436072945E75CD1B6C0F584E0C9CC0E41C555 -6F07BB85D9B44914F31B2A7A5751CD832B683487B9EC7895B5CD651978FB3C15 -06AAC0280B888524AEBEB4FBE9EB0B75634FE96AC342604690688D2B3F08870C -BEAA6A57B6AA7F33F8DF94F3741460B9362B1923BB771CAB8A1F2D21C4FEE80A -58D9634DB6F0397F481B4956621C9A2FA3F6D1350DBB5F59048DA3FFE0732C51 -EAC9AF6EC7C93850B8BBC21E7EC61D9524BFE03C76C4DF9C001CF712E09973C7 -E30D2237A7A6C9C21585FE7D62154332F99C30EA9AD610C127B08E065717EB43 -97B8CE7C467E89670036846B9EEE4C54AD145C82051302BB05FB427EC0226254 -695165737BC25DAF38CEF587351A60EFA0BD8CED0E8B7E1B44CAECEDB932D6BD -19CFF4E619CBE485EA9CBB3461D3B0537929BFFFF55C182C92E23919E7A273A3 -A25DC2CF810618A43AD7408EBC19A62218ED0110F21A33C1D05F886626FF01F0 -E8D6C909696D459ADD3A6F2995D696E8BF8D998CCF43EAF4B8B9BF0B88F3E73F -D387299898A274A9D7FC412379E6108B34B0BD793B491B0705900E9BE7EA6C9B -CE412297732F9759CA128D1A0148B43F78314682D11FDDAF603D01CA62B66D83 -AE401981FE7B92A52A32109D5D71246C6F4558353429642E3C12EF8560709AFF -E3FE76743E3E25864C82E5AFCFAC5943083179E3F2392755749CB31C7405E779 -48C7DD6572482BD9772E90E4533C72A9A83683B7751CA92EB680BDFF76361672 -0B9181659A00E842DE2BFD7FAD6AEC21B84D27E29FC564AB1D60A63FE2A0ECB8 -7F37951896ECDA450740BC43A3C857E346C6AF9B9D6759BDCFC2BA9115E444E7 -57655460F92588B2A6754ABA8F080973C693FE2F68A438C14CC9A7E3DE4B3835 -7CADE8EE0941ECFF0CFEC148BCD7F0DC988E2D78E345610AD77456537855FBCF -2E8A29E3A344B1C1017E847B60892E76A9EF29A5182A8EDEDCF79996FDC6823E -AECBB79D2EECA1456E894C00E0CA34EA7AFB7CC5C3E0B7C242004A124C4786B2 -DE71373088C5A583F333544EAF51AD0CB4535AAD299EBD2A7B5534B213AD7F3F -17D62C0CFBB3B2BB93B00386832ACFDB2A918B326F4F4F4626C5B27B519A7D60 -96B6B7E84BB20AD9FB9BEC2C3CED969C689363EC53A8E68752B9BCE9D8A902B9 -22D3123E62CA0306BED5C045951E0F915B22FC1BC27D3E83C332DF036131CBEB -0F6F5342690DF236314C84D259E5AC720576CE6ABF35517CC12AD60B6960B9D8 -02C584A540388DB167BAC7CD296BE30E64BFFA3A227F77B8D2E72DD7656DA23E -DDB31DC1422FB1738F321D268A21D144DD41E64B2AC7FA437512D00ABE56907D -E7409AC07B820E390AD65AF6156757066586FE20BB4822F92A2309245AA4E9E2 -0DA582B0AF2F18E682F9FDB5AB2B9382EE45050CC60F119C2D4160A78790925E -C0A5D6A61E953C19AC127F4F816FB5318FB07B16FFA199520A32591A9866D882 -73807625D155A7063846727C5BA1210587D3E6FFF841FA14248B8FE721C57E8E -121BDCFF8EA0163FF1271AB616CAFF3DC1B567A60E4AFBCF0D8C8CA55A484342 -5DAD753EB50749669B1053626E3A892E9425A0744615FC49D357F9A46907BCF9 -F3762B6A0F355D49B6F6D19844E5C209FE369B3DEF68D9ED1C263140DEC58942 -9B7D367F74DA9E1A2427CE78968FD42C84AAAFF11F1DC14ABCED2839842C12F0 -AACEDD9C86309A05595225FBCE3DCA034679D092B022CA565F03D5859287F50A -820942F17C977A0662A809EB3B3BE41F395A4D013EEBAE28F049DAD33FBD6C55 -2A340DD9C0760621A9F4AC2CD79792DB719271966A07CF24AA1882C269117371 -087FEB7E850602DF52A379270069F874050663A361DE6647668D7872C183A1AA -BC94DB9B7FC95278579D325C9D4EE414B9C2E58A7FBAAADE8744157521FA6A29 -08A9148E4CD6298142179676B2F50126DA86282F6090D8B1BE70733330D9D729 -6AFA740B25A44308DDA85AFC9392FC2E0BF5F46A9C1701B9DFFF85BB58F4BB0C -ADF9F5F3F7D41B1E8CF8060DF0364146FAE04DAAD968659A7726BC550E033A9D -BAF918546F58D2F0BED91A4BEA81DFDF9DC3F521ABA2FB2503499482E213123F -B041C07A0AD0EA292B3265A955635087F2B2FC988B47632AF1A4C6B80441B721 -47BA983B4E1E97D0382FB0DC6758F3A5AD32EA74553BDBFF06B145A1B1192AD1 -0CA75728BFB11CA2DD042EAB377DD840EAEF3630EDE8505B731178E69B880552 -FFCE44520D3B3ADC92571BF3471F0C3B34DCEE2C06F1F3A2A76139B11C6C625D -48F507F74E2314F6FF9C16D206F2C54AD49110F7FF34FEA7AF3530A60CC38DE9 -E62BEC5B306DE2E61426DD41AE4C07C309ABC581634167B14DE576DAC3EDC95E -89BE6FF9160D0811B540219B55770A2A0C55A17780FB3F408082BA44C8CB227D -4C660ACF9E6EED92650E0082FA3D7A21007D2747C1015785C64B161BCF6515DB -E975B83998E1FAA959B909C9C6B6A0B77521F32CD0321C47118B3A19FEF8F6F5 -4D3FAB80421E6D816AEB836E9132B71938CC55ACA265499927333F196CDF427E -D09CD139986A3BCF333D6BAA61AD26664C891B32C85E61B17524694348F5EF55 -4664CFFC1BEC35B2A4AFE71A2ED03D4B2E40A319F0E87394DEAF7D11CBA1B6A5 -C832E234A8F4D354B8BC7D0C75C3AD77D0BD04E07ECFD6CC9FF9CBD35D41C0F7 -1EAEFC6DCA254A9279D3427D143ECCB6E508E3F384426327637BBD645E36F515 -1BB3D210264967C80AC9903C216AE3EC862B3862C4A8398D18E01A3D05F7D174 -F0DF7B8DE19FE046B5D61757B22BFBB0350929E37F95F3E5CFD6F64CB945E783 -921E1D61129E43D3869BF80563D16077A2B4071C24F48465B49B8200951360AB -194B21FC1E6D99F1EC4F846F21A74E602B1F85925C83FDA72866C2EEBC8DA86E -02683CBD6BC724099CCC9DBD7662B046428A73EF038E8949B48847FBD049E858 -03E88E3147474B59B53B7BF36F7AC55CD4AF10792C7B0E42C300904B17D6F55F -453D5431270D1E9EAF41FF335F125B3040E1986F335AB07B292B80E59313B7B8 -06E3760551C6B848B26A1BB2467B33EAA902BAA87DC6D68C7BE799F1AD4508D5 -384D9223D763F83D08FD00135A44DDF5ADCCBCE423C6C49A6CED16C0BAFF1F32 -3FA9A935E09F0B8EC953955008A0DCC42748DE85A02BE00666AE3A6DF64D4FEA -9CFDCA4FA405B978D35F2EC32AE7EB5106E8DDA1C0D88A9EF7DF370755E04E85 -8AD445E576E6EAA33B83B14CAA31090B46C1BC7A69DE0B9B56B2883939E6FA4B -C924F6A5897FC9AAEA592C55CA72D6A6340278FA29D7A82559F32E0E9C3F4A0F -FCCD0CE0FA5E864AE85A06990E619FC0D3DF8DF2B19173F66ED0F04797B1C056 -F1DE8932160860FF577BA853D20566127B477E5313E541CF43A0FF344A1E2D38 -A2C23FED30328026A9110C10F03A12B24043545631F17A19E87D4514D661C65D -7F2786DE165C1E8373156B20B8B18E9AF47633604E7B08D8D6AE7B250200F99A -D8BF51908C9DFCB44999FFA8A727F69B178BF1C2AF353ACCAE41A5789F7FFF52 -F1FB3040394C14AE5410AC8E3BB021C438A1FD72238AA3441C37C0659E7E365A -CDAD8C1DFABC1E3B2272D0F7C20048842023B04F299EFE32EBB7092B7F35799E -AF7A328B5FEA96B83FAB5A8487266590219F976B2221CD207E4B7361AFF953CA -15348BC9B61926B4B5A2F384CDAC7B272F7512DAADBDE1706B0C47E077947122 -F5A7ADF635991A3E171372B5494844DBF1880649EB3E0EAEE242959CD4555299 -BF4BB51558CED4B1351AC5A0D7FED549DC9AFB438B9473333B95D8A6946AF3F3 -49B83A4F102DE59814D4AF233E8D196CC32C0C4060622DC33992047A2C998D77 -99F4C84A980923992525D7B3CA1960B1B99A489804224430D1302B6BFC2A5963 -2F552A3A3BB0A0B6E173114CDF130238A2BD232CE8BF5445D4B4858E74539999 -6EE314FFB560C683CD8029C51031FFF1E00A82CC8F1926C5919341DBB85FC62D -8A8B639FB1D399962127021AFA4ADBE92FF6BB5DB5F2F60D1655BDA34B635BB7 -5EEF5904140F6FB9CCD9AC44444BE532F627B487E9C486C9BA036CCB3A617FD9 -197E398DFBF19CCB15647767FF21D9E45CB4A131CEF92C1417BC3FD64BAB1E77 -85654D729A926BFBB0245F587D97BCA3BC058375C5C0C245A2A068635F586A32 -57EEBAD41389AECA092568F325BE5F0E1049D524A99A64CAD496969E3AB91593 -CF78C615C214ED55D5CDAA93BB37D20C5C4350FC120CEA25C94CB17AA969C1A6 -56048A8DE68849FA9E25E7DD56CD319DC501E29918963BE4497257FF0D51118F -5A568D9D5040A64E3D33936DE33007BAEC74C279338FF7845F8828E460CC373F -2ADF19EA0A8FADEE297645F0D3B985D95FDF5C92201EFFBE3AC623C4E2ACD47F -F195C4655EDABFD69B1E9C6506AC60A4D07BEEEDC561C70513C3FE5D357E527B -7A6AA6129F36A052AF11A279C8B315F8EB3C039EE808B48370BD9E7AE4071E72 -B4C5D2F39D8B1FDD5731CDB6C9350B9530FE56C01A47E92CBEB1AF8EA6FFAE88 -57FC5DC89CDB423D4050F857EE0A26C4CA573E350A33002481D48EFE32AFFFF2 -3F39D960F207AF675A9DF6F38DF87F8475C5CAF0939447BF5304305FA062825C -ECC3C1936E6045D53BD7852C4EE759789AD68A2ADAE066BC7C8A0D2779BB085A -0526213260FD93ECE8E171006824B066D63DCCDC183664CC1362CFF7390C960E -190B78D1FB110A4EC412DCADED104BBC09AE9D05166AA038ECB71B7E19F668 +261919C6C24454E652A8EE1835C79E7F020745D97E8B02D00A5A0C55D2E203B2 +9700C5B49CE6C2BA3FFC71FBF71B6FC07BE51E2D7B4F03A32F378384A0048C28 +56678D93C2D6B40C8A4735D90F9A89F8FCE00D2A293F25DA434D9F76B8C430C8 +A4AA7F3685B27BE9496A9ECE956867064911DD00911EA779D39BE988F0D7E280 +66779E0ABEBC1EFE003E27DE90E4D532539F950D090C20224EB4EA99DA79D9FD +70ECDF80358DE212F763B7D785BC3B773EE1BB62556EC6364E455EAE3675A6AD +2558ADCDDFC587C975A88A7C6BEB0A90FF7390C55A9D188E43BD930BE70DF8DC +39FF249D6095BCA09E1A875277C3FC5EDBDC08EC9F24AB595E912E8B0BD37D8E +92BC43F4906825BC5F2FEFED5DE35E6D3A3759BE4A426FF9BFBABC9E94F1424F +0B33FC0AAEADCA06EDEA7C637794D14CFFB305F68E7FA065B5AF368F46FF8B75 +0B7D29533E79039BAF886B40A0AF19A81F8B1B01C723BBCA8EF0609EBA9074EB +6623FD116166AECA1B65E60334EFE16A266813E340BFD7B6BEE75B6AE4C21AB8 +05905F219E1EC73EDB25F4204ABBEE992898DB0819F21246809593EA7A5FB536 +17945BD87EF19AB13A4D99B1B69E192AB2D539429106BC5ACA9E5765ADF5F970 +99E92D36871EB7CEBE545D7785FF7870C55FFD323C98086221447A7C2EB53CCE +01D96CB241E4CA8379CA32EA8B78ED224D3F802E3D836882F8F9F122D4DCFB82 +2537EA1DC2BEB4D092277689BE53B4C2BD8641398027D6F6F565D46FBD465B7A +EA3E00DC9917C0DCEFAC93BECBAB112F978553D19721EDE9CC8FD7AA0CFEFA9D +1E6BA915340C19857A1DCBC69A84F3519C0E81E58A09F710F22B7F6735C8B2C7 +68A99C1D6C415BF5141FEF475C875F48D72F8DB27464CFBBDD689E9BD6BAE2D0 +8C9867D2037F40020762E53CB422596704671A9E46053E147F2C8AC51D4505A6 +3D0BA063A1A8D2CEEDEADFF5CFF3B72A1EC5788C13DCD8F66989E368EFD6A89E +6126C3BC9DFA00475145010E12E3051A3AA84BBF334A8C36810D96D983BA0E71 +98F43D93FFED20F9ECD5489ABB4272A273A8A476BD0082742D401EF1C2B2F61F +1C8B536BF55D39BF90DD1536C286A060ACD6EB87FD27B88A543D3EAE48778DD5 +3B5C92CF58D9B561ECE78E23C7AB88776175EA28F8071C08A44BAFF643A1A766 +720B77D1E9315A0F6FFE9E325238531E7945B847043870B51DECB9E288C24053 +6FFC2BB864C4EB92FA851D259DB172080BB68E80AA9E0329E62BF359CFE5F67E +270EC0B5B8151E952E7A4330F75BAE5FA78C70CD6125E16B8F45AF8CC4BAB71C +A015A559DF05A364D6ED0E217E464CBF67ABD62996B2E0B6D2FCB713D0E0A8CA +2EBA10324BD3198FDBC6770EFA2B7F499432377565DCC9B248E2DEFA749CDE32 +7F5332262120628DC3F6AE3159CD8991966B16F6754CA5758F489B93D8693E68 +E7A9DB275ABD29B830AA8F4F5440766DFC6D1901528D4F3AEB4B38150BC37D7B +3DC96D79EA816F7A34A9F2DF2651CD43ADD0CF99E016773CF00EE01D5FD61C50 +695262947AC80EA6D920E3108BE85B483D7B07D1AA147339BCFCCFAFB31D02B2 +B8BC9E7F381A189899A34903901681EDD1E2E0C585CBA026D23430D9A3D5998C +7D76FFD99A96B307FB668C1204B5EE7CC50B20D6C7A798526CA9CE331356CB77 +68D986D35134BBC25FA1AFBEC693D4860C14AE944687492F48837F2541A062CC +203B7C868B02B362C11456997894C9EB4E3F648FA4D6CC6450661439161F966F +BAD1CD2E38E6FA1B339A5086F346CEF83FC550B98D074CA85319CF762D8EC333 +716A9648CAE1C9F5448E70644124F3146EBCF0552165E05F0EE58F6F99C0B75E +1BD79B2A071FF90E5DC878D1B3110980ADC92F589579993A343757EADC57AD36 +BD1DBC73673DD08137ACE3DD42A351BB295D2AB2F5D20BE3EB133861222642F4 +E2E79250E91B57ACB81832A4771F9542415C962A910A80C2DC5ECDA27D2FB0AE +A968BDF6D4F85C63CEEDE4940261B7ED607E4D75C2D64501168CC693F35E84A4 +FBEADEB7216CEF2E7BDCE1B3E10B35D8751908767697FC61F3EC68203FCA3AC5 +D3B450D844D5286E7BB7139CAA8A017ABFBCA99C48D956E0BDF4918D30FF6362 +D2086133D5A9C52B14C45EB4BBB47FF452E02D72D4D838010B81DC12E5A5D46B +072EFBBCAB5E64B0C24CE260AB8435FD5C18A2E1D653F6D01E89FE6A588B7F2C +2AD9926CC7944C5EB1FF4C91B78874BC360F8E4BA5003418E8CA8D03CDDD4DA3 +789536D97602675BC2E68F4D5DA6D8F027904EDA4DC9F7079321B317476CE362 +072C55498384B7C4266E02B05D350D8C1839824282D11BA31B87E4FDE0BD0AE9 +41F919C3D3EC889AC21F75712E4BEBA4252BCAE1E742C2434894AF4663CD44D7 +1FD4D8A5D99F3E29FFB0EA07849EDF847D2C69EF2B9B81ABD146DF5F41769C2C +B48F7F4E4D3119F851C1144508C143AA97B5F97B290A0152A75C4F5A2AF76D73 +57EF89AC6A523E6A019E14A4510A2F1DEF3E8176F920CBD5EEBB47D7855FC090 +FB58A87114B9E5086E5E60B77C59CAD4091CFAB063F4E02A31EBBC88DEFCDF29 +4576270D3FF5DF806489F516ECC3046A17D15FEA03AC8EBD75431832BB93025D +E3705C706C9B377E616DA98AB9635E15A19921F53808ABD8589798B7C9E9DCFE +B7D90E52242376A12EA4C9CAA2AA27839756CEB001B52B1051BBFC5E27FA0668 +2858D567215DA138A521C977E31C7D694D6C9C67C4C10A71CF9EB702974C1FD5 +5F744BE858662487704D41ED233895A506F9251F88ABC9212EBB1F3AEF63ADE6 +A552E14C6D903DC1F205A631FC705E96CDC47B2636766ED774BA2A0E1A39547B +189E14BB50C3BBA53482C9730ABECD622796AFB8068B7DFCF8065115F450080F +47D8616B7D5D85AD0F523EA0E79F4B1A456A7EC8169F0EA53CB7B0EF768C9940 +D03381FAFDD233D47F522ECE174FDC05DA045EE33D0A233B5A1003E012D2C0EC +37E26EDB4EDC35E7A6E34C3AA6DA08795C89B7C96FF7F81C2F9435CB9822DBFF +5B67A9A6A9E2D3B72D2313A8F7BECE68582EB27F1B114142E42778116B7254A0 +FAC318E052598A844EA5A2C10C537A03BFDE583785C6EA375A14E5CFB03F0A47 +042309B3512B855B9767642129B20CEAEA06423DCF904F9C1ED922659B29226C +95B5B0D377FE68F068AAC60D01A2942D1D74D4A8638782221ECD4A04C12C0AD2 +B7211C3C632582C968605C86913254B1D33A3314D61EE285383EFDA4FF8F5178 +FC2D6E678072DD337F3E35C69668AECF46EDE6617837FAC8B12CF36A62857C44 +15D438740E6061E240702C2F735923063C1A9413E06B8194445623023124A2F9 +D261B91496C6B3D11751977C4D5AD1CF36B8B0057FBF018F6BD25C20CA05E42F +44BC4F60EC11F5B5DB560D24661429ED1AEE0DD16476ABB6B72CFCCEAD96D23A +7A3930535CED244DDDE3C13E324ED2B50DAD53234D594EC63A3EEAC72E8E2560 +095957F6C5ADB748C4E0634C994D00BCD5998057CD3FBC3264BC39C1257E6B2B +2D34AECC0D7582D4D178F3892FB95DB3C2E728E527ACFCE31A97D7D9004C2DAE +D59D2FC87390DFDE10F2BC4E6F081C6BE4BCCBA3EB13E5804814D5ADA89EB331 +7293C860C00BD9298CDAC0A62C2626AC8CF5ACC3A16B2E069136EE9BBFA5BB93 +85C5A2436AB21E810A989CED79DD63C6BCF9A76BA0D43B067ABCE2F9CA7D9C4E +59A27F4B400248C62D9CD46496EB6310418B66B4C8CA7A9CDDADCAF5F1A54B32 +E504235EF6BA0B78EEFF302DB7F8A7AE64EE973D3D2646D982387BE736DF76AE +F21772274606ED701F2129C8C4F3A327F38FC933B32CDD986660CD87CEE796BE +86EA9F6AF3FAA9D43119EE4DE17B579ADFACE716CD8329CE42686A450EA50E36 +A0376033DDEE9D9EE5C537E15585A946D3A69399A39A9D69BF861FFCF31F01C0 +399A757D4563BC2CD4AF91118D792E834ED481E02C30080093A6D94FDEDCF064 +6DC7B13BE269DAD77794E21025F3F12D6DC4B701031A612AA010C91749FB236E +0CB6AAB3C643ADDC4338FD1D107107F5F0D50A615211193387523A1ED286636B +E8ACE5966B34F71EC838B163BFB8ECFB5DE1A2C608A23A1D2B8685C596562945 +2556CD2B2561A5DC1AFE9B38DF974E54CF5C669B22A775DB6716A85FDD733BAD +94BBEC590A48B884FE0A623FA88CC423E3105DC433E90B94CC061AC96B816D15 +0E1DE070C5565CA7D91052C9211AEEB061BCE15B8FE3C5C0CE5CE48F2E0E8DD9 +460CC73073D6977D6C9FE3F07E82C117CDF41939697D5DCFCFBF4C48B2C7FEC1 +F75F50F271C1A5D9FCDA1EBAB376741BF681350B00CB0C407CEAACD90E1AB288 +CEEBCC736BC65F4ED6E6CD3CD656EEE298235C734413AA251D288494CCD8D5AC +AF96BD4690C3AD944F2D68A054689298C20D785879130DDA529E4810F5AB2CC5 +89DEDB22AD9266EDF344855E646E7E63D0000C8014D4C0B4751CA9CFABC93775 +196A178EE74B7A33C16365C33C7A2726AFDAC402B19325E423C0F836785F018C +D7C38B54FFA52C12C909EDAD1AB394984DF19CF9A12D0D6429D076A9048B1A08 +3A6E3BBD69F0DA9D83FDF999AFB86327D2B6509D040E08A26CE506A1051DA2B0 +FA979F63FB70ABD022C585E78D720B96CD1A83E54863E32BB08959ADB0B83BF2 +C33DA086DB79EAB391FE53E87530AD41164096CFE12A231F65881BC8B8E1727D +4FDF0AC049982D27E77CC3F25189DD3A0899E4BE771475231132C6D9E9A6503A +6D10A96E3B71BD2E04B7761A0AF75222860A6659081F7D08EA67D33074B1870A +ED85E6D6DD2F86269CF875EFFAC389A93BCC3114F3833DA33C6C1593BAB0C668 +2B73AFEA123EC1AAB8722E94DBBD2B2D01F50675BEEAE15AD83516AB2B41184D +672F0B2A66471B0C40DE675D6B070C5A938016FC5B4EA9B0470750E58B5C6C66 +1BA3BD8600995CA875F90141EBB1E3274B8493CFF8A3EC6C09BB05496968C485 +E960B59042EAD95838FBB5040DE8D2B82CA4189A7A1F463FA66A3F6640F1E5B9 +06979D2083065BD4F4B6EB9A8D05D859DC1201E75E90F088F4524CBB076AE463 +2D4C63E4B2A64728F47BE4CD499E1BCD5934F9A2061C39EB81B2D5B6B5EBECFB +BCD69BBF0EE2EE850502AB3AA95BCBDCAA561A7A1EC113AACBAC8938C2E516CD +CD22ED2C867C49D860D6BA57B30C95B4E3BDCCC3EA8BEAEFC6A2540DFFF5A379 +36E4DBC3E7D8DA52F653F9EA46FA0AE264F740CC6B98BEB703A6023F692226F1 +6D5325051442CE83199964C06F3D7CB13922904A4ACA84C88B59FB8A6F29D539 +F83573040AAB5C3A5FA4D201988E12AF3560C881A1B28E4251A61AD42C123ED9 +2DC56F6EE9BA67DEEAEF36907587474BDE857A4DCCC5937A9E2FEF9F4843BD62 +EBF9150792D816EC5DE5B8DC009059E180B39A3667D336C887B9F81175116FE0 +4FF0F42F803B0957240F0E769AE652C993A4767C204BCC712995696171FEF32E +129792DD22BB92B0AF990452DD039338AF6BEAA692E2B83157BA27E286EFFEEA +6C31B9B00BAB49538095F16B61DBDEED6A3784CCFD01BF31C5489AFB5A6B779F +A55F8EF741317A3CFA2B87076A58F035FFE9B58C515C31B73B3198BB460E57CC +4B269F9B7E4C3D073F9A93E367DABF460E08DD49CAF63E15D16CE3C9A0A33536 +EE7952033BBC372B3E128DD9289A26125CE11648909132BB4E9B767C916D93A0 +F16B10AD41C65A1B9F2CAFE89D2F25308CEE8F5C0451851FCC13C3EA0242A160 +2BDD3ED266C65DEA4100E31733796B32AC42355589F7D8FD79DA0E71FB4A9E25 +10A52FD399E8BDE14EEABDFB0E3872D0C0DD9B52FBC031D82090F71AF43E909D +540F8DF04128949AA1BC6D0BEEB6A93752CE78467737DA8FF76F6C06BC2CBF54 +B427E79A6AE05900E7E6D8D0A6295F6828ADDCB27A8E47EE108CBF3DD0B2544A +6B4733D62CD18D78954D34B75BDBCD797913A0A7B381DE897D19EFE1D421A503 +CF388505A0C9CC846ED9A99E051CB21001B16F98E9A292BD1E27424D34CC9552 +0556A7BFF87BE59EA8ED410A1084EC2FC118CA6B8EDFCE7C0FF525782658D2D1 +2DD27C3E4AEAC0062B81C9270AC5A0984E1FD7CCB7265EE80317BE27BBDB2FB0 +E22A166E528D2A30A70861B703FAAAF58D44556137AC93869244FC7D5080AC2E +793F88D1DDE0A0B416D2EACF16739D55D081F8BD1B4A1047EDAF047E2074FEED +C82E8B9D1EA8DC11D3DA1F9100F0C1E4FF1513CC65D017908C8F812BA6CC2B21 +8696A73E7D9EC4B76F9FE6B141C795AB6F56ED61296EC0EF79C6EC2CD4C084AB +1F5DDA1C0CE74C5424F585869D21D63A9B8D7E8A05B5EB04EBD61C0A007C8EA7 +D215DF9D412752AD3A2D737E60E1865C59C999BD4C786190A9FC26633ED7A2DA +C5A7DCACA7A834F7CFE694635673AA18270779D62C499F6C13CCB20F4A31401C +6D42C45E33ECE036A6C1294A14CCE5CAF62B83750DD08D71507F941648D3189C +37A3AB92676FFA1DC0D3869AF52F1DA929DF1CD0426B0BAECD911B4AC8103040 +5F7A8182D4B5E6950364A4C0F2858CCA875B5F4A8A541BCAF19F2A6DEDA586BA +A578F94A795E4DCAF24A72A9088665CB13E3007CF2AAF33986810B1445023065 +EDE05E4325E7C2DFBC8109BEC81005A7D90FCD6B7EDC28A11CF41F5BE17054E3 +F1A5CA9094974DAE841F95A1C4E6CBDD7FF707E90A074A82A5B09C45C379A8ED +44490CFFAF6908D2B485A71C8DA7765D0445054F3B9DD98C9E50A2D5A44E017F +2E8CE3B659BA8B727C3BF71CC99BC69AF2EDE83F7DE257D2A3F1F923F462F13D +E71F069D98EA8F09E0EED5A9FEDA1F5DF9688B123422CAFB28218DE80D99FF98 +380E297DFB834E29AAB6F1437B6E601430D85E0686933229DCD2C11338288062 +97DD31ABB036B93015972047EF9AA081569803016002FC1D62AC780BCE7CA4C4 +44CCE53F8CEB48AD3979D29107EEEB94F6AED71D1DF2FD2CCCB57075E137B35F +0D0E4FE348C4005AEAA2E30D802C47476747FB3D0C36011CDDF714B3F4F3356F +0DB4475FF70318447B80505F4855F80C7FFB87F66F2E4B0573698835358C1DFF +D2C05B5D93E12432006551B5B129092338287DEBEDC013EB642A488D71BF0961 +8E9001412DF8B5193588EFA49CF06F989FD0BC7EB2E073B73976AE4B5735F32D +C9BFF540790ABC1556F7A038E99EF2CDF6353A47865AA9DC9DE8F4D76F2E7BD1 +BC45E768D538C30D10AE851350ACB5A0C11FA69DFC58ECCE56930888CFD17FC3 +F1EF5505D54DB169CA0EB4170C07A2CB88668870C87EFA70E6E72E6BC2F0EE93 +998DC292F66C0F7A7DFD4C337AC51814E392E87B9D24440FC913F2127BC160E0 +3E5014FAED0D06297ECE1340D14FDFAF733CE8E8A8719222F5058F1F5AB60F4E +8185E98EE103786A4591B16575B85BC27D232871FAD1786F16E1B728E1D630AA +D5E57151E69B3209DC75031CEB60B26508123003FB764784A13A33B76EF0D5D8 +7062561C7FDA8DCB7793D6E77B39B6E3A1C400EFA668D8EB90C5ACB66B7B5527 +4E6352E40F65EAF44E7B0A3FA1F6F2C78D9A8A89033309AF73217B7D16253DE2 +8A300EB7341E34E42B976BD7FED878BD9744A9F3EA9280F73BAE9AC877B5C106 +BEA35411009BF6BF3896955E05C9E51D379ABDBF712265B6D8962C1700A7A3A3 +BDDB0C91634C633917DE77C9FC663B2E77998540E7ACF9BBDCCEEAA0C89A20D3 +353130F5919E28951F4855969BFADA146D485B9B10E4A08836E63ACD9BB74F68 +7F7954D4C1752E21BAE6C13459C89F54F9B7F826D027A8CF4D339454FA1C724F +66E86172A20BD891EC531E8700165CB5C507F5BB7CB46A803D935BC089B8344E +B935B83B0E0FF4623D926C5A550AC638668B799E78C46CCCFA40356014715CC3 +F9C3D71B258B9E4BEB323D595AC759182E186395A9073FA4751409F4090F507E +FDC559B6D90C6C49697080A3545DFDC685B29A72C8D5AEBBE573CD247600F3C4 +9D4A8838FE24AD60A4FDA8C8BE0135AEE86E73E5B571E2B510531EE127196C1E +913988025DA0C8BB7F60716A7F91345D4979753CD9EE49578DFF711A818E045D +C4526AC6422D5C34DB0720069511B061BAB4BD8100AAC99493E76135F08A070D +26660E8D4142C04013F91951040E80F6A88EDCCCA413CD07AA8A93F3A17EA95C +9B5E45970A034155848440CB8F7F7F5BBB1D74DDD271523414D461E5AFC2D621 +24785678244D8FD980A5B3ABF198C2D75DF23729BEDC969AA8E829CBD7001123 +D0B99572EF3638B0FF7B85DAC2A65AE837A8F5F1B6010946C3AE6026F2E7BEBF +78384A3D5BA4409776F189BA4CEF70DDFEF1E41CA4030E27D32D120269027D45 +388CC761D0C8B25A106CC74CC0EDDBB7E3B6BD1D9274264C18A1F1185D687A58 +DE067E3E1A26DE89129991A9EF2F1360E183CB1155B41DA1ED22062C03F5ABD1 +4B8660E59607429827753ECEAEC7702B1FA62D2F2C889D5778AB164E1D5A7DC8 +2CCD472754DA70EE589A492D6DB104077190443F9F9FEED4094448A538DD566D +E82EA61CDB13DC7BD39721EA5C340B6D869B7EAF6FDD95E5C99FC36C576B86AF +053A36D69C1DB9F97956E1E71E0FF6AB60D6D089809508B84619A30813161935 +854AFD05BF710941B93E2A9FC5D79E2413ED4E63A8E464C56830C524B3B94A0A +78EBC4B13793BC9E2CBBD16DAED9A98EA77007343EC92F658B2A127F10559784 +FB84DCE9B4B59C99F2D698920CE87D12004B651B6E92FC39C91BAB64EC31EDDA +9A84BC22432C702FA7A7472908F5D3D7F90B6E5AADF703C4B09C31863E1C5CBE +5BB2AC1B90705D7BCA6E7242656903E33F957FA9AA5301D033176C49F1081E47 +51BC901A890A3A9115880EB40C8B3FA9D9A630DD5B1BD40B6960DF7827993735 +DA25D186D4362F34DEF4AD51DF94465F3F8DDE1813E916D40548BFB8890B7DA7 +B98CAC4674D497A916300E35CC10708614103D55E78BBE7C7F935150D016FC22 +101B1D6D16F9C7E1BAF4C21CD6F64EA653E3EFC919ABEA9616AE182677C0E204 +B4872AB01DFB20FA585BD4418252535D051E6E4D7A032D55E3185CB624659CD9 +1BB046C3DADDEA2D158C8798417EDE1ED874140277E8AB0D3386C8B2094C2AE7 +81DB047F1BAF3C13CF46D46B42D5D41116CC96ACA48539A9199BD7D93DD46367 +63C37970FBC3DA56EAE5838780F12E1256E18C56ED191E579B37EB877EBEBC1C +E80A953B339F192D0B3EB66A893092EEB10AB3CC308625F34B5C33D79BD6C41C +075F06EBCCC1E706ED2CC5B17040B547A673B8C0FB32AEA47D0C6E5535E75709 +4BB9431F3FF5DB2E03EEE7D13FD4CE942C903409C309BA783E06B74466454D16 +78AEE1DA2325E99CA2D80416803028EC221B03E540ABC0CA14CB64E1682E8FB4 +5F503FF56AD30D74862C16D588D6FE9D0D7CB2BCA438E61311A72A479A6F324E +B2CFEC45080B039CCE08848A0FDEDEA33B571EDBA160BA8AA157775EE7385950 +4617798DA59681433B91EA2816C61FA7AF9DA14483D94D572593795CA8C08159 +15B16C3B77BAF4140AC1B9E4233DC07DC05E1EEC61E0A967A905CDED64615760 +C595778FCDD8ECCA3D62BF768F2C6E404A219AF8DC18D003536D9CD3ACA22728 +188D5C04D4F256DDD0E019856482D09E7FBB339478E5DEB7B5A81A5D73F41EF6 +18D7067F27007F51680615FC35C66CF8893FD0F98245989232A09AEAB41BB157 +030DE2ED7D9BA0EAB3025E267A07681D91FFDE0ADD93FD0397767B42572E637E +476BE7301A9B7EB4EC5FF94D11634C1E2B24C800F0F3504E2A904E354557DCB6 +A70F02DB6A531941A16DA25767919CE16C2557602287F949558E328C889052C6 +846B1AD91B1F3288D0B28947781E27D23DEE0257A16A250C699AB639A24A6BCE +E81E189D77F72AFDB506A20B531864096A6D658E14A58E18B2ED59546F43D9B3 +1B81136B80B06D6F38B5C34462F071716F98EAE7FEC46AAE9B0BB85A956DAC1E +1E44FB8C8FDE439B5095073529F5517AE5C0983F6476DC22BB8497A57E999F74 +7A951BACD4DE8A2D57B0916A0C14621F6F060D6D705B1520BEA4784C39041C93 +CE64F90C26ACE8ED5B5888CAEF95C00CF9AE1AB340BA7F25C3DCB6428EC879A7 +ADCA31EB6386E624E47491F0EAA9976423541A2DBF35AE3414DB0E0761E2ED8A +89DA96B5368CF8891AC1976DB76370F5E86627444F1BE227EF7892F32B75D394 +FA8C976525593E687AA8C302D797DFF1A9F1A7490FF01942C35DBF2614A91538 +3FA58A229CD0046FE51BF54AC2CC1193FE7E3FABDF96FBCE32AB6AC05EDB9C0B +3F709BE893C0136B3463EB330102B6B1AEDC63C3110AD9AD98BB22E9B9DC66D8 +AC4B32A785D3DC8F400AF77469447361FC477E72C653F79D7EA3404744F4F8B2 +99B095C1442B51221736B2CF68201B5BE279C26C83DBCD990B017C3A99B5111A +E53590EA1C6AC918AC355D6434E54C9F47608BF3F6664ADC67EE04705D260F0B +CE3FF3D7138D494B45BDD6E3A994B519D23A51CF458117B43A9DCFA6AB623DF1 +A830FD44CE1B64D2D90056795396A1522CC5110045CDDBB1238162C0B273D27F +3AF344055E3053B1C53F9FC0A94C15A026557C79CE54F3DA017642174DD2AA06 +89802848BD74FE735C2C8885B0AAFFD0840DC9DA795826CAC4BF3BB14458E3D2 +7084EC20C35DA2C12F76C68823F5DD48D67B068CDF43DE1BC5AEB576E9BF2CF4 +E4607FF132348F8789C0EA1F3382C8E9BD6677F7D1DC0442B25592C7CD6DFCA8 +E177F99060A4E3D9F3D42F01763CD0FBB3C83E3429A3BCC0167130EA16E2A99D +D141DF2D08D97E7ED789FFA2DD1569CE9A5079E93C0A1B66EFABB6E47DAEACE2 +61626FD3DA88B62E3158A98904EE4D03BB20D207353C5C4B92C47884037253F3 +3783991F9E77311E5EF44A7BB0141162132A6FFC0828AA3DEABE0D26F6B92AC6 +9F38EA83DD45749E0B21F9AA4D410210A35E4F2319331D17978BCE767CCA64D6 +553FF604F760CE145940AC6CCA6649AF533119A80E348B1FF204DC8E9A164D9F +65B8C984AA48F465F437685715F57F0B67B746BF584BD5C16157EE0B001DC867 +3F974F4D7CE856D7A86EEC11EF444F7893C229BBFAAF74DF129307F87DF9815E +47F2CE148E9C7832B98B02E77C521DBF2BF3A9985C94553AF043E7C3F3B2200C +7BD32DEE592C0BCA7D867888CEAAE65FBB43813D0CC6A59CCE00C54A3E58CD1C +E9AFC4989D135A4849023A166F169AC05A8A326622F5CBB68CBDE129AD73F676 +8E277643632AEB10444855E14516106891C9A05F879D558406EA85687A4CA3AA +D3D5A95B0BB8B48780B1A5C3CB04D0C4217A5893C7B41802615059CA1E965A35 +0A056B8548DC56D0F121C4FE763D98E4C223C6FFAFC1CB58D98EE5C18C258CC3 +D2F24AE5DCE64ECFBC544CCB09691099B39C144BAE91499A6532B85B97635E1C +61971D3355A3839C9B58AD168DA82F8E9185F83D15E46434D49A2FFD716E7519 +9AF5BA9B60ED5B23F24D86BCB3B276264B228EFCA902B72A69C36F6A427899DC +A727E3EEBA0B95AD449C4C246781A7FD38254FF02C87468F86E45DAB0A004B3D +0B4CCE6EC48ED58C039732463A80F7BC79593F89C5334BFEF6DE9E0D63AFA1C0 +F9EEABCB9ED97B464BF3308357BBE5E5C4EA29C7D23F5347FD3CD0DBB681AC79 +DDBAA92904BC14D685051927C1A6B9EFA5A5D56B8E2D3BF9972E97830679A6BA +08910A3C5E43001DE6971647C64F6CDB091AB66743F96E0B477F46967934AB45 +E5F80C9A43A2BC5208ED9E4FA018803A22C11F37B96E9B2666C3D03212ABBEE5 +F41CADC2A66650F3F295674BA68E25E74A1F98DE81F981879EDCFB3326D20AE1 +2292CE9791393FD221E5BE91E2B65FB64C215216EC3C6455523CD533F5C04DF3 +F7D5481FB75B6AA6B1C5B90317E63E4FFF49C7FD24C9CF261EBB55E50508753B +F66A51ACDE0A168E5FDD23AFB19AD3A5F9B7CAD5B25F8DA1578DA381020B2265 +E019369B4F9F09672FA6BBE4399AAE4BAEEFF32BA1B5201E6FC0FB8B8023FDC2 +CB2E60E74916E6DA114C4CD8F6D1F40C663E32F9E36A6920629D01DCDFD789C7 +379A904AFEC7136082ED34DD262E982EF4629C8D03FE3A8BC122ABD833E8BFBB +B750207D035B980D68B936EC4BBD68679768E8360AE0A2ED6883AE719FF9C4D2 +8F12894CB9D17F0765F9F3B58AA4D214D87ECA579AF7F7820BF6CAF77C0C774F +2E1B6A125C7A7C6D7F96566B2C4E2D9A4E9784EDE069D2A1E74EED4F405871A6 +E304C9CE4E1A3CD6D0F3510494DE8E62553D37C6E7613ADAFBBF70A25BB5527B +7707760009FB3385D5AE0199F8D348E18BD6556449A51ECD953ABB49DFD253D6 +F914EE7D84F5D0774806487B5A6955D1A437ACC4EC10285BDC24860DF4B57C54 +28C23D8528D9AE11A7B3A66319B968B039CD62E94C809E68EF84EB8E20CEAF75 +1D2FC6AED8979E170513ED6DB334BE3A018D0FC5281BC6C2101770E8420CFCC4 +D2FFB085C7498B8F6827E8C364FA330AAECA11BDC8E6CA36B4CFCE0B7BA5F80F +2CF26E342A535F985734DD547839B75EBDE07B438FE023A79C163D2F86BC3808 +6CC60F8DBCE3FA08ED1702E331FDEA5BFCED274F3A7D0EE79CAF7AE517EB7229 +CD1E6EF67AD5CC5512DB8E76FAEF422CE5F7A0360794BDD05BDA2B79D6932FE1 +0260A9EE356213B9B1D05C09A7A346D281A7B6C62E18DEF6D63FE5DD3A12D268 +FADB926349A42F24F285C1F1608B0F01DFD52170A9DF2EEBE381963C705F053C +B12F748742CC25021F8AFC0B27B425CD594FFC01B7064ED24BCFAC257D6367B0 +75D3B8241275900084A708FCA1D2E4A4F518ABCB3BD2FF143D62210CAAF872A0 +8DF7583226FEBD145CAC9CCA7964A197EF723F50FB9D6A7D4E8EC2709E6C18F9 +AB7DBB3077C921764706E14D58B5F1B93CF25B5D5F6EED7A6381FA075677C635 +A63ACD21C79C8E33F265BC6D4C9C63F5D743832461D0083A50E048552D9AA5A2 +6340D7615E9B6ADB8667C293FB1134548CD4276D55DD5321544142E6D255B86A +BDF1780F95BA9F3CB82A13D755B1CF53F2A0848D1D092C3E502D395DDCEF6D09 +D2B5082C1879DFDA346BEFB57AFA23543693843D247E8C8D5571E6FF5BB397CD +5BE61C0B76E3B2C1669C851D1C691B9F0F8C122EB8D21C3CF6668D49F332EB98 +3A22546849DBE767857234B6A002E06A1DCC11CF695223C8857A1D6178D2EA37 +9DBF6FAA9DFFFF7473B115997F291DB5895450D5E419B91CA404B2B5FBA8AD05 +CEECF4216BB011EF7C8F0EC9C0F213C7351DE18961BFBCABE96AB02594D2AEDF +2E071895F86705B416C8F5C02FB0085AB9BB1501602476706140C012F19DE3F1 +3D749D67994F0D5D419CD83352F40E1DD5DF41436369AEC4DBA2930DD6DCF40E +044E7261AE10FEB7B6B87F9CF667ABD201AE8B3D257D71044EE6AC0B80270639 +6185BD2FC9AE3B05CF7928D86950825D064671225E177090CDF48272260C0704 +F97727A27AC03C828C3ECBB959202EFB996A3A2FE79271F19192C57F6B896265 +C73D592E6F3BB14F7EDE3ABD00930B78AF1E29AA92CF5865B03FB7C1B6C72FAB +FEC5C81059C0166DFB3F744D0258407366451DF95AA0CE0FA8317E9B282A8B87 +0773B38433BA70065B59827B0DBE300A7166FA928F15FD7517754F05A99C211B +B8DA526D3E2988E0D82E4094ECBB3A82F663AA062F69A241C153D6A1EDCEFC98 +6A2A42696F6E46D846EF7A0610AB3565FCF4D18809A2BF0DFDEBC41D647463D2 +C4B4DDC49C91070C9AC48D7FD3CA05F958A2C5375F8A1138F0D55BE6F1DB1236 +D0209DAAA6D0055CC3608D845E0D39241DEBCDF03542ECA2FA574C3949EEB664 +352D9FC4709B1F4435B5580DCCEB4635DB68F15829280B25537781B9EB3E953A +C3C148B006926DED2B72F3F13ECE3B50F07939EAE227A32BA0F8090EFC95F668 +4756A75428F0CDB05DE7532A2FFF9257CB6ED355838CF0EA0AFFF09D9673E6E4 +0ABB9EFA944E4C027CEA648C34D68220B2A23E6ED701E0E9B3B8FD51CA35F436 +EDEC465ACD8D3B4D06C073E8507C670452E24E32848593897B19BCB807E2D45D +F286B157D3357932E0FC824C947A1FE5885A21A80A68CAC39B6410252D3A1366 +B836713DB0250BD8ACEFFF27BDC15E809A275E628F6F0E6744B0CE5A9CEE6482 +C04F5ED1DEDE9A8D14E71A2CF98B6F85D731F96C9C0EAD3C25EDDC554E75AF72 +C4995AE9F84E3853A19ED2046134DA80471D59FD7D6F262B7E36EF94DA1644DD +DC2C7A40048D26B67062F68CEF7A33E755A14C266473FFAA3C63D6947E2C8754 +38FE94AB4E0E9479DC6109399919A1A31D22FF6B388280DF903DC40D9A607A01 +07E8149803AF5A2692E039AE00B0FD20D38DD6AA18B19BF79A31F27AEB927FBB +638345710A6E7A7C5B90CFCD28ACC704D2C779E016E8AADC072C57411BAC0393 +8246998B7DB6FD0D8B35CD0271755A573B5EFC9A2415A7CF7DD763BA62BA53DE +F836160725C03B2707F92830310EDCE7F0188DD61C8FAD49C50731B8567DA7BB +163B3AA57E7EDE9BE26765BB8560FA23F40F1229652988C3D909D2962289B86A +B645BC7F6085F5913D35A9CC2007EA28376BF16255F55F0412EA086B22F44803 +6A863372E53619AEA6F0FBBE15B512E1D25E2195FF3152D0EEF35EABB4968004 +50BB971AF2C24D590AB935FF3631C1D353E0CC05F31F1A98E9C2EFC3D65F6491 +A29329465A7D0EE70D8C3A3BCA60C2E772820FF0A55D89D797EC5AE88E0D9463 +58BF39F1E9EB7E860E5E5955CDDD204E1F2B64B705D89B6C7CC10EA22F5A1FBD +F5432A4F94EA45E9A1FE539E072F63A6F3FEDF09ABF39E43C7DCFAA45E86BC1E +4F21F37300F1DA96F8F9E7BFF6633B8CB9CD8D47487C8BCA1E532D9A9015F8BD +B9DCB46E91CBF4125B0DB17E9D47C01B2A5CFF7E4C4F2D567E303D97150E54D2 +35D31D09FFE2536905314CC3E4A9C6A39EDE83131CFFF9A875A58FA99A13AAF5 +BB170D5AD01BABEFFA69B5B9F09FA46876E019B7E2672E5F1C33AC7BF11B40DC +87B564B7823BFF8C80039685DD8247382DD51379C53591AD063A8A242AE227B1 +EFD411FE269257798110513983B557DE2B6B89B510230E2014DC6D1D0716DD7B +3FD173C8F12DBD0AA4F77AF12D4D97C4EF7F1CABCE2BB85B6DA84F52C19AA3F9 +2B18ECBCCE25E1333FB1C31A6E42AE697A262E9F798B79FC2182F5BE67261EC7 +338B0A2F5308A80183DCF6D21340777DCEFCB00B7B863871F4A3B09807E2CD98 +252B839F7E78545C6A578148CC6BC3C95A2096A2F43F5FF29B0F3B3D22053833 +B525F9E7B7325BEFDF80B3C6ABFBF67367D7E9BDABC66081BA7EA881F5EFE609 +85FC6560E03C59C0B2DF256B61E0ECF7A4A6C28F8FE46AA0BBD219D771860A1E +24797ADC2662AB93E170EE215F278BE073CF5092019CFFF33FDD9ADB6D8630F8 +93B6DB2D7EA2FEE7577EC317021CF67A075AC6668A72104325755C3C5E478365 +0D898985081FAE45D4A8F5A56935FAB8AA807526A0F5DCC3475DCC9F99DBD7BC +C8B2B479069246772CDBE8422344CA48C6C691990A4A24887E99368AE29A8887 +9B68199DFEA872CBAAD3546EAF46B91EB5F34DABAA8B2B3C4FAFDBCCE82A6096 +81F7A6685B0CB5F9EC47976B008B6D39BB74E81DE18D50AC13CE90D3EEC70625 +3AA975D734AFE69626B8AFD2F92FACEBD3DC87937D30DC37B27950AAF9585B4B +31620AE5D280C029373E653D5995D1BEA234FD4FAF209ED4B55543801AA31749 +7A47D1A9F790A1B287A1CBB0E18F2C2717AA54F6026649207DFFD2664225613C +9E1D21FBD8299CDBF9CB57BE139CDB79979F0D929AFD44BB2D1AF3E0062603AE +B3E8242FB91E8AF57C0526B5E6E85A51757EF78DDD738B1FF2DB25B0AADF75AB +0734CF24198BDD9BF5F3AA167D38EE53133346DB275BACB72275F66A8908ED67 +2EB4B2F922060837AB66B5C9D6EF9C72E8841C2F534C547109D5D2F334B2AEF2 +81F989BA72338716D5706425D6902CD02456D40CED8B0702964CE480A50A61A8 +94CDAB2901A73C92FBE032D4AB1AB766751231B1B0A8EA80F4F4345222821622 +C5338940C770EBDFCF4072062866D61EA7757C9E02FC9C001246AE93EDD52754 +D0F27F46C9DD705F3156EBF7401B9725BCE4699DE53368910D36849DB56BA9BC +C79310F6FB393A59BC13EDEC9D977BF4647FE5A2661BC9638473811882B4B956 +0BF34948718A9CEB9C829217A7DACA158FA7B6AEB6735D2EAFDF52C50B2A87F4 +74C13A4108CD94C66004C8E88B2069FC807D9DD1C3A4400984D8450E8FF02AA9 +7DA0DBCD9CFCF7FD90BBB124BF9BBD2CFFC59BF040075C653DAC5DF946F6AF0F +A0C82EDDB86EB789DE5FCA8DD4A059BBB3EAC3D74699F239771E26F4204EDA45 +0C44771F275D57903074B0BA9F77849277BF1537ECB3CC71E52376C1F355E173 +1F55B5BC54883FA13B0735477E244CF2A941F197D14F583604BF4C58B7E8FD90 +6DA02919C0204BA271EE9411925ADCA7F73A6EEEE5AA79E4909A3A3ED5BD0045 +710988252A768A73F7CB14500FAB56AE992E41389025D1CAA9DDF731DF8E0593 +5ED1C1C860393313CF6F7C511076786D6EFAD9FE313ECFAD6DE63CD9D1F1316E +525DD264C3EFC7E1AD2BF907305B114BC5AE3378B3A5D04CE7002FA85BF208B8 +A53DB52B8FAD88B9C25B90E08AFFC6B1632D65E68D2E2F54F66EDA86C78739E7 +17CD59507C3BCDFC3F3E572D4017C1EC6D444A6A3671A7EA69630A2AF3937318 +333DF4F95A38A9BCB52ED61F35C9329B95A7670E666C5BF94FB75F94AF2D4D46 +BCC700D55C07820F4DCD6E9E50C613093876B3F0B71C59535453878EBCB4F7FD +AEFA23C7655A0022FE2AD863E786441B086125E0F100F9BBA48B6E3B1056099E +68F93B7D55094632D7EFA64E4B060F0855D1937CAA63CCA4B59498863E4BF37B +DA3EB72AF94FBAB5533E4A517F38E054AEEEE78A862687A9DD708922D28DF0D0 +C3BD4D07F3664F8CEDF6C149244C5922DB1BE78C8264AD35064EC812270B7309 +CD8403DC91462306BCFBF75B2CC3023FD9A14628FB5F236ADCF9AEFE2FE97341 +D940A5110810FBE20AF16CD738227B045BCE9FAB7998F70EF7B308CB1152C913 +6F23BA9E34084D89B8825C401D672C20C3066A5F5E91C5453BFCCB65E2016420 +E464B92BD6762D0D038C07849118DC5191296D13FA409E52F33B40DAF128A6EA +E922D4DD1A2445ECE01C8D33841FD042863E8C8F5A254774BB6C0847414CF02C +7C4B85FDDB04374AE82C774803DF3735F424B014C98669D008A7C6E0D2D7BD59 +AA88AD986C22063F8A7311BF4079806B599BE4460DAEAD26EE5846BAE08B86E5 +C6637CAA08B4EE1E6BCD95937D045EF2EC0574543D704619D9DBAA15D4A00055 +55B96A30C866C8F1AB3DE4A7B8D14D3B3A12850E73571364F9C109FE585847C7 +AE756EAE99C5B1920D15CF79132181F3AE6507A5D0995E66777F8BA174E09A8F +EC39900F54340D0FD263F5753FC890CC8DA09AC2EAD083D548A7A37BDE0BBB8A +6A114D3A71FC56E498EEF7639B36F160EB16AD6D32FC6E3037A9AE2CDF0E8A2C +8C9037341160F640C030A7EE3908A157E465CD49E131FAE774988F472FC3E28E +F56EF49E18A464649A1293D4D5A6E0F31CB2F73D377E01A7511CB91959D63865 +350AE4342FAA167CC7B0C5B5EA748030461176613765DDFDB54120579C482B7B +D4AE4BC90C5E2AA24DF09ED3725CB070A698A1905FBA371B0E3A25085E72DCFD +FDCE1F0AC5F171E4E7C246EEA7E2CB453F9CD666AC646652946C49C5BCD0A7A0 +E86CAE7712AF25B88EB4BDECB22869224FB528323AF29E07B866F9A13D93EE61 +523038D89ECEA2C9AB5CEFF8015E90C03510409A762A9388E34C81881B6595A7 +45C0C18F63D4A5932281B9E43CC57C8F343C41767E10395B192AFE0D1688C308 +DFC1A6C13FD8320134D54E9AAB8A0582291E0C833D2707912403DBCCB29CD988 +1FDC31F2CBD04C3F40046C49D995EE0EF4EC17A8730276B5573D8861E7BE6DA6 +64068414EE8FE0CEBC557C36D2DE96D6675F358185A413B1128BA056D3969360 +B8AFBB4777BC194AF894D058B4689FC0F0E475A0382B7C811151CB77B170045E +6C42162D479E3049DA28D3B7EB0904DE41A78602231D0536A9CBC1B7E7BB1EDC +7FE56DC687BEEC2F4E6F2E10B9 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -3913,334 +3897,337 @@ B08D373B69E5076CE4300137B8805EBCC0AAB89BBB312A77835795E3C069322D 42C893A30AD739E2BDD299679B158F7493764F2321E3965141B5ED1C6F4765ED F46D391A646B30C90002B1C461AEE79E5F094CACCA656CEA3DB921CC5205F328 -A2C69F817061D6C60B121EEE844CA5008F23DF08DB76DC2FCCC7DC69B44C0011 -56AEA698DF335A6AAA41521E27A829BDD46020CAA697F254257C2DD023CA0379 -277074AD2B5055326FE6E20349FD84B9C5DE09EA7BD7C41B3DD0BC2B7637C7F1 -8BFF84A24CBEC28E457FB6BB16E8EEB22D40931B4E50CC2B99144F60938976FC -90100E6D251F19F193C6BF3F86155FB0427C9960927C3A274D706AED4B630748 -9471F873478A230EE78049D8F73D6C931F6CE6ABD75DEE21EEC04EB9964C4DB5 -60C91707DC3C03D49464DC3B1CD1903B9B4CA6C79B28D7987E6F461AAE01A6C4 -71D64EE03C9FC5232CD41E02986C7F278B79E9FC830246A69ABADA87915663C4 -C01FFFA581C97A89F3884D592587AC3EC3777A75809CE201FB37DF4F59B411C4 -B02FDA61DCBEAA2DC32AED9F309AC6590F105F3FD0B642C73A660EDFB736ED0F -33A55D71AC870680A36A3DBD1F02F0B662844C4055ADF17B57ED5E26FC7A26DA -860D388E5DBDAFE117829F9FD98A4F02C0AE08F7526FB9D2C815DC1BD3034E1D -CF306E633435D1C7BC20512FC855196A1E71C904CD7DDBA11D71619DD5FA7ADF -D00E6E0E7632467BBE4B11CE850B0F4B3FC0FF6C98CD5C9CEEBDD43B526660C6 -22553AD2B525F667D41E9FC2015108D7B8AFAB57D09697E2C55D8299D51B9E7F -00465B58792EB48742BD074088C8D8753B7B7F0C099C7E37071B048BE82F9C01 -9EF67211492466BB7E942F41B1C48340044B4B184D69F3A780515C15422C43B0 -990F94B0BBD8632320C5FF0C10D400DC656E075FBAD21E987AF87D3749960824 -9B947362C34B030DD4B99BFD48A48B53BAA705CD633B858320979C094DF8B44D -42F53021114DCA5B61BAA913A21A9F46DFB2D537182CCBA6593EF86E7BD0BA9E -0EDA13E2019081C7987558A7998FC2762C21B5F87E4523FAEBA588A20A04B29C -7EF59487293D691D422E4BABEF1E7412C6E6DE11048F5D5D903090C01AED5A84 -613CAEBCDE8C0F9064BECC08647FE5371666FA1E3F3838544B91CEE5372A1886 -3582676EFD0C9E6389340698D6517EC8572C7F793CBD8098D010F56BFEC9923A -F685A184BD4F2EB8D9B70BAFE10E0CDCD2EBDCFEFA06E6F98F5B674228C7B383 -ED3BE9F2F3944FF8C2602190805E5C0D8E3440EB1556123224CCF41386320614 -8CC55B21D61BED5E47A656B1E5B6627FF3CE78B6381274B4D0FBBD90C49921E0 -A101E00524B117C614DE213384B58F7860A5A49DAF6E8384D744B4E8B02B85ED -A4C7B9A3BB01BD077B25424740B85DE99B3C51BBD4F393945ABAF29F5C3F04C8 -7CF0E2F01F834AB6594005ECDB2AF743E1A8FE1ED1B154DFD2C5F1DA0DEC533B -605381A4B3693D4491D72FD6C4E56689514712A04CFFA1822747293FBBB39887 -0FC22B7B41CBB1AA8AEA1F0BFDAD678D9EE4A0E8722870CFDE2FEB2F904BBA00 -663F9BF1588D5C0CA12089C6D9B0E0D4DA127F8BFF3857853CA2B6B3CD940DBF -9C1156DC6FBF93BB092FC401E28F54A704C37DD73F2DD81919293A7EB8263FEA -4FE3AF0DB6CC37A3C730DF1BA6442B16B2FEC96D05384E205991BD630D2DE638 -20F359FA6DD87EBA1C68D68AB3EAFA6B2F0903808F3E6B34ADE16C241BDA7295 -AD92C28B976BBDC70976BE540C2A640BAEE70A0B78294611206FEEF69EE44FB5 -617EC881935DFC64836AA6838CF5E264DE04A597B419D943BA472A029457AFDA -E62D8A8339DD6FBBDD724851E7C6E264A06E47270B51586077AD3A77C6A10AAF -8C44080972A9CA51CFB75A217AF50D8EDB602F10E083817E77BC5B74284DA9F1 -0F771B9EB2270043A60EADFE734B830196C90A769347F2067FD2782CA77D7B05 -077B3E7E946E5DECAF2841CEAF5E67710B0AB03AF02425F990CFA7F7359EAC8D -82A99C82795D9B923C715A2941766B366D6B8A403568036DD345F1C290CC8CF0 -46BD85636C9B3F0F6ECB29F3DC963C799913CEE9BB5D0C3FD2040B6D5C51B448 -E81682E20CA585CA838829CBACCE7C05D1AD0389C3FAEC55C5ED4FE752443BA5 -1DE3E43A53420339F4217304D88753D57C095579FAC7795F649884E28A5552EE -D4FA3DE481F44408231108FA24DAB10BADBE0C743A9A335B7BC1300FDA3DC7F2 -797588AB6319941C4970EA5A1EE1F96BF8B5912C8A577B0BEDBC849E6DFF18F0 -491356658FF740E80CB6FA4B7F3C1660ED0D336D61F230595DE93BA37AB68968 -6ED154BF0AA2807CC9FF4307BBD614A156CA49579E21A8962ED83F1E6ADEFA5A -D978A71460947ADB7551ED137517DBEDE4C3AFE54948264D73B1055E7E615EED -4397F179429E5A3D1E93630A359AED12BA24ABFA156B808CC13CB734C49E3012 -D5A99D8BFE0F64E6CD13FF2B53B18EAB354385E1996845FABB5CAA72BA1543E5 -543A8DD29DEF643F705D96F15DF1EDDEDA307883D54729D39D0B58AEEA069F96 -7F89A062F8123739F2834EB07D4E082CAE802AC0849DE8FEAA7BA4510FF09DAC -86247E59378682CE84C5D8B55967F6DD540B6967F10DE34D9FA8869560C29BF7 -7E3C2BB24BF4294A49A5217FDF4A8F7349D5C613DB954CF8F5A9C6E304CD4561 -BD7AD618F9BC1B61ED27C4890A46D77E07049949A419D60256D5F449E34F1002 -5A701004E5443661E5C1597DA7710CBF1EEE40480E5FCDF7B95741E721053567 -C25B996D1C61B8C82D7E99A5CA3A0A9213F6D7444885B7A3F827FAA5BF4D5CF5 -49F1424059A5BB64292EC45F9F50B30BD6473D190966D1B21C1417D7A8F1C2F5 -000CABB0A1CCE4FC0AC20463CFFAD1A03EF9B04AF86D5773CF9887A719219B0B -75318F054585977CDA366D647B2E5465F4F0225124D61C6F39899C41DCA1FE67 -0BA8B23BB66ABEC3CB86FECD46F7D030C996F3E465BB78C68792CB4A4D4BD368 -CB4220146D16D3A46352397C49384AAADCF2E913366AC21E495A32AA3D0CE5AE -C4343AF072DC2C2854AC9612B16C613E04B8C93E25F2E6B8A0DE2EAF154E6167 -B484B18F44AE4E4892EC22E30F6D1522732C594842EA14892715DE947A0051A8 -33F15540D36F362CF1D679978A271CB909D6817E69DFB5EA7B4ECC05F8D3B799 -637A6267971FDE3BA68AF294EC3696F2A050AF84C8CA9934DADACAAC5670E332 -2728D924EFFCD2B16457D1CDA5EC06A69A04F4FEFD83FCF04D77530E8E42DAF3 -04386C5C90DF1E92CD7990FB4543BA14D204EA6285B22E251333F407F6AAD2BF -AD9C45EFECCB494D535E6EAEF0C8FB1A9EB183D188DA2F721ABAAC435904A813 -D3924EB8F7E3038A45775033063473B0313E87F8EB245F7D72DD7ABE317D4CC1 -5024C31311FFF826AD584CF576E0BBC69E3C84D2EA866775013FBF16C6BE8423 -67CDF67D68478E433E1ABF3B0262CE60F71EB65A32F344F45341B119BBC9F82A -912C651D9AD6C50EBF1DDFFDC776EBE1F097696F38E9DE5B81A8EC654C643174 -69D48C5B68EE19EC68DDCDCC2198F3141B8803A175DBAF4C9D9AB5EC66FAA054 -384D91EB41849FFF43DE6BBB23560C53E4B1CF449A3EC55B0976C0AD482219A1 -2CE98B3C6E2B7BB061764A5528ADD702ECF0B863050B793C93B6DB04B730DAD1 -5F6967A283E6A49B6B0ADD8EC5530B09CFDF9D834776024BDA650062458F2C7D -3431F86B16EB6E04660562B2050EB3E7E66A05DA723C195056160E76FBCC0F3F -630980339CFAFFF25F3C75A1197749586870DB40FAE82BE45C419BFBD46496E1 -C18B81C4729EF24EDAC17A0FA318818A858E33AFA229C86CA389307FD1D5CBE0 -B9AB4BC7C3559B1A4989891F02F0D54BDA68D6ED7461178D1DD720C9740BA369 -D7EB55CA5B29BBD9223E8B9A3F2A8CD8C8F4D8BC5C5C5D242AF630EF3BE855F9 -9CDAFD40F54318C16B27EE92AEBAD2A87C5768F7A352737FEA7C317F05650E66 -B75B6140DF9AFF10F9F961F3A49DFE37064805B6A1F279A9F76E4C889BDC2BD1 -932A23C32DDD99E5C965501BDA3AE6629E70E734BEC9E7679C1626053DD4CE3C -A16EC55B08425181346BC36BADB468621DCA1A815FFE95208AC103EC8E39A36C -7CB33E1FA29A87C3353A1FEBB4E26B3E7BC280038BBEA052219DB276BD8F5518 -1854882E29B632C926FD7AEEB7239FBFB5DB6CCEDE45A16D8800B8BDEF2C3961 -089102CF0183C706786258B30035B5EF84D681FCAF0E1FEAB27A271E625FB958 -878610C099895F30D7D2667D111C732543ACC97D89F73EC6B48A4800077AEEA1 -F13EC4780A53AF791D2E895CCC77BBB39077B001EA6DC03D3688D305ACE59989 -998D6D2C4780422CF6F122A44F7875331E4FB158C063F4CE462EC656916275F7 -E374077C52BA4769E5A777F1CFEF894A359894FCF055088B5A9C603CE9D18CC4 -0578B55CB66DAFCFB0CBEC07B7C9778564E7112A2C3A409989262083D0093D06 -8330913B7B2491322BAC2CCEC5B261334D0F03B8F40097E303DB9C778F3D2BD4 -11FB9187FF7D272E102B0AF5EE04899F1C4EE3A2B88444EA0388224A0B5E36F1 -548FF07DD0568AB9146758B77E0AEE10EDBB07CFF52F15A8A4BED31C1780A07B -7243763E1D134103522046FC5828ACCE8FDE3041096AC386B0FDE91B3DCBA330 -5D469B85CCA7B98E93FBBC7A34CD27FCAB4501E30BA645E05135FD53C9DF80BE -399532863C148744C299C477C0EC0E06456CFD1B274FBA23AC0BF5A0E4EF615E -566D7FF657DAD26FB7890BE273D314E5C73002393B428DDE96085C3767AEFDCD -A2DEE54763ECD3E967DD09A3988955C2F5A428232F9B204551AC5F68F5830D02 -6DD9695A297FCBB3E2D1E9ED0E19608D1DC585DCE22B64C8CF185A90E2E183A5 -861DE19B328185EAF844094CA575B8AED30F6E8A87B4C1D0EEFDF09A581AB772 -61D9FAF15767FE319F495F774EA2E397F848C2E0A3605204BD596B77D63AB518 -5F1DC638654CC2C0EC2D91EFCB7947C20639D1EDFF0C31255E843FB1DD24CD8C -EB011D26BCA3458CBC78A814AB7BEB24C1C2D6518944FF7357D3AB7AA160915A -EBD116C9036BDBF855837D92F21ACCB807A76E2EEFA9B5AEBEA0DBB60FD5F105 -3EB619CBE5CFCD28415C994D0C945E674353BC2436EE09DC899EE0DA113CE92E -88144024194B1251AFA4A2036233D091CB2633B8D0504325317A8DE884B87E90 -64CC62E9A8668FF77C23B572819B0583F1DAEB649EC1461A84911FFA2344DC9E -D0533B49A0848F1F060F9E2F3B58A932105E4C76F4D83A30A7E460159CB6FF40 -3CFEE147DC23B85C902B87341AD1BB52646BF9AF0FDE89A3814EFE66155557F3 -566544F4DC1BA1DDDDF3EA6312FD1F8FE2D45DF9872FCFD20462800B45C27A5D -9EB6A5E86632F36F53771F888D53A561D0D3A78F1C38FC6B57E60AE17F9BDC7C -4A1EBEC8F54E99130FA4426C0CE6EE10731E823068E2A65D365A6313DC98D47E -26A0090742E34CC4626A535A23B1619F23DCEA9C338DDE921AD15C37C50A2E88 -5EB21517854D9730DA9D029DC27C729643DE4A186889C3293674F1670AE6D2B2 -57B43617B609B4E75725A6B95A845559E6F01ED5BCE0E4C0AC5F8BEB4883D68C -D6680B181A532CFB9FE2DF8A3CF16F5EFDC9639D2F94B808B28324E96FC1B4BC -88B10433806892A7108808F65990DF3F675D65D5B8365E66D7F6DF10AC1A752B -9789D2DB3C0E85BB1D4120E3A8F4B8A1E4D6E2843F47CB78381217DDCD0694EF -B27E42423336B51249D21FBFF31CC47D90880ADC3B91418E7FCC1584EE8F6DBC -3ECDB41CE7E815232C545B51FDA5173F359F28E0C5C4567506FA48ECE8EC0D53 -E774BE22E0EA67EBF1F7CA5CA6DF008F24C417693942EF3792453D2F1D4CD1D7 -76275C6BAC9003AAC1E3AFD4860ACF190E4DB4CCD102BAE578C889AA3DA6AB58 -62449460905E6160B17C2D66EB16CCCCCDE9735279AC19483D29E1828EAEC046 -7D4958018DFBAA54B3ED8E6F474456BE671AC57CFCE2E6979CE09D3A9F2F9CF0 -7D2ADC66063FE0E2C677AE10E6705D60A2323275839B62B73FAB0EC63F719F22 -A3AD13C631AC49DFD8DEF17ED033321B2BD9972DBF784D91288D0CF4175EFFDB -9C02EDC4A92379F32192E53359549873EAC41B8A6C9359CCCD5491F1680CB7BF -A5EB5645647B78B05718B266F57914F7325EEE836FC83AE4A3476A45AEC45A0D -A142603665DDFABF5B1BFDB65E6941167588806A11269BFA515E02D17DCEEAA5 -1298D0D2D096D80121ECF5A3C305AAE2A0C5CB3AB442BED2AB2DA9C0731D36A4 -298A917250A413E89A0C1B29377A33979A95395FF1DFD085FD4145C9A2D2499D -85B230CBC95D87B652F3B2A0456FE672E78AA1087A579C54DD5182F0C756539E -249E18DD5E2C5AE534EDD472847D8E559042DB8741FD96CB411B75102E79EC42 -29D8D3D871068801E53E3584F28E4796827A8630B1F96CF6BE5899BA63088569 -86D388064803BCB71A3F6CC4E8C8701EE6FE2DF90D1A7C4D5D98186918402307 -A5E77A614AB7C201CC89D9A0DC697651E003D2292043B4B7D03B72CA5D0B6D08 -0674C41824C019FFEC734998D276D1D3839220B2E21DB772B0021BD8ECD4EA66 -D73C43170720E853BE0356CCD25EC64F2FFEC7BEED25DF0BB28FA02CA8C2A5B8 -DE16B1A713FC6939427319C09E9C136F645C47C102C24400F43F6EF7451814A2 -04127AE8DC0A69DB368A80AD250A35D7BE2D29B0A817B0F4E878474916B953C4 -3942E7C5A8FD2F531B4EE532D4E5AA62FFFA0B41EAC252B51EEC48B9ED692B5E -57482C061C749B1F453D5484F5B3AFC26F462301DAEE1904DA33123502B45C3F -ECAD088552707951E83EDD197771BF339E1547B1E978E646ADB584F69B574033 -9B3B6478572E5FF8FC6137FF0F092ED84AB25450AB81902C393ABCBC16DB520B -B225F7F48CF686E788A025A60A69E860AF973E30691B8DF62696168B2FE29C07 -B62A1C64027DB8B9AC5EA5F8331BF178FCDE864F04409B0C0192E48B2727D62E -436B37314C52D737E6313DCF45C0707D0C142EB49DB3416FA9025DB21FC65CD3 -F259616C4203C6187B1A81EDBD0309154593B8FD2058B67C71563C5EE45BA5F5 -39354FC7B330C93F19265E0C9F0E5BC9406B542A7B3AA071B9940B2669460B86 -095CB877DE351BB5F1E2BB1D4DC7F14FBA4653B3066FF4FE3F5DF8E06F9B50B2 -F292A04440DB21DAE8CBE75957CFE48C46ADAE7692F092C495BF5BB9D58235A8 -EE66F26A3F0A2336B72F187D5AFB0EBDE19E1AF7F2E71995EB8ACABAB9FC7BC0 -66C1E6014B0AE3E7DFB19EC640A43348F46C33F6F569547160FF586332B6AE5B -C1E3C0E71B39AF17A776E7CAF0915C0B1C2D9DE3688B4D1C11748A042E4CF4D0 -38D8C09E16E05E3120263EDBE967841936C66DAB5628A8F6F15D600215FA22DE -C63EB3826F805D7BDE17F57982F54583221237BB6372E1F17686AD48556F8133 -46A5AE79C38E132B65F81ED8C5BA5A0506CFA4935320F952C50A7D4F67BAD78B -22CAE32FE4920D859E74CBD325B57211B8EFFF4549835B63C9F45FB3F2328885 -1B9BE6ACAD73C968923D9435A1791CB1A43C6426DC7A6B6E1BE004A39A3FF48D -942CED9F738EFBA938F8A4050C0757DBA50125D04B927FB8DB705447CB5EE2EE -9CA0211C86B3AA6DE4046762150F5640EF88394050AD30638F6CD92DF38D02CA -35D70DE892484601E16E094A0011DA8A2FF6DA082D655D87515EBE6DDDECD7BC -26B0FED73DC0F91B75B08270368F85CC0490AEC515FF411DFABF8E6EEADFF8C6 -53E3CA453538DB85B474F370C04277B6AE8929D6F0C2A18BF35976B0FD864EB9 -68F1DF8A8CFB90A5EC8C1B69DFABC23BF2E25DDC2C2D799819342293C2BFD570 -0A3145E7BA76B79872E3388147BD89C4A7205CE63D017CACEB746805C3051A4C -51BD67BF5CC4565E85E1287AFE30078F85E34AC6A88C94D4D5A0221C3894E62D -AA6E2618FDBF185572918B82D0271E57C2A3A73EDE1DEFBF12A623D27AC2EF39 -C6055B2FA7C33D559FA4AA4E90D7D8F3B3A50D50F8C1B825835D924EFB8B3704 -2FFC79A9E83612642892CCCEB6276388D8BDB8C593E006078A617762CDB1CAFE -FCF6A6C12EC441872DA9AED5B781A24EF54F67884936C75D231E32545201FE82 -C46666F7F7605AC523DEFC01B67A15E408B3D4439B4008389A351DD1E50DE02D -D24677B4F5C95AEFCBFDE1624ED0BF18A0362566DFFEC5B3BC1EC3BFC042B07F -AA20DC8A585FB531F6DB118907B2F0A20AD41099AD2B995D087A9324AE65D9B3 -715DD496F6E9FDF1A8DB511F2B8597CF2033574C3789CE41C516B58B8F7A0B70 -89A82BBB8DE71039922C86668A3F9AEEDD74A6D181FDD1FEE1E1A96E73DCC27C -308A85F05DADD2F73F475374E163A275B463A431736A755FD309B5A6055597D5 -15A9E0800E9AC3EA0260218F39030D8EA6EF98014522B9BBB53ABD1726C11305 -80D925AB34F0026E7D412C36867E73AFC1ABA936E0626F70057D3DA384FBB421 -CD219CB7233E3B9A9B74A97C78CDB28FDA66958A59AFA6911ADB99898950A699 -85E4DE555BBC8CC1F2C6CA9A4E0092E692D269BF64181DB287718278BD0A4FCA -1F2B88200F858F559908C9BD11A67329E846BE6F848495343E0110F901805C02 -B81CEF6BD347A010B3D366892E550B30C668F77C5EC97BA57C2C4B263B0BEE81 -6EBC72B91DE76591B26E4228EE51CE41B45B926AF8D8D4CA17134A00AD501A84 -51415C1BA42F412D58E7DEE3014605E5063B4F795F3C5ADD3075E74436B03AA1 -1C505C4CC9BB41F17755C8A19D337E9CCF2185C00BF08950E669905EA57AF8A0 -D817BE97131425D2562641E578D08A738A1BAEE3AF574AC901548A7C26076BF8 -022A0359178293E3829E1EB36886345C939E3CEC3D7E4E23084B242FC61D8117 -CF28E6EB3320727725570156F287E55F17C8A85B7E2C6E846D56618271B7D25C -BE9A09A148C232649AAD174CF56D95C5C398564C14E41077CADE3C0198099282 -5EEADB4B660B024BC6E63D403847332F2A2ED2A3FFD76C0B1ED56CD89B650D7D -504809D2F0EF108FE79DDB4DBA0D0EECD29FEE6A538FB4B9C81D01EC4906FE46 -5B827634EEBCDFBA81CB806AC665DEA7F1D17E37322CCC6F47222213E222D125 -0010DBD9291BCFAAB02646119D5F2906F960F1E84E4469F9D368C06551539296 -C4D6CAA8CB6772475F2056CCA358E46549BB7CC84B62A6B1CA8D3F9187210C40 -0A96A78DAE2F8DAAA4F8FA3B6ED8496D49BB63804E8DBCEDADE6F1418D5275BE -20792960E2A8757104C484C92283EFB5475E74908A5447D75960285C2E940E39 -41EF02ACB339876E307E83BEC872FE694F3774FFBD3206682671243F3BDDC380 -895FAFC337CC4EC6638C8F320B32B8B1C54DB9155B3CF99184B4A4A259FB62A5 -1BF907C951F897DC79B2F07BF32D6B00DADD730F0BA9FC64429D95828B161AA4 -E09EEA0F2D297E6D4F875450663034481B9A07A4A8B0336A5A3805DEA0E6761A -330EC49F508ED7CFFFAA07832592BE3A72E10541C56CFF7B5A2EA82AC436AB2F -E44B789962ED0887BF11543E99A94883FB4971A1C4C5075ABF36DB86792BD97A -49CB1ABCEC7A67EF925F8D14EB267968383794734C1F5DC9A8461FBB06638417 -79C26EF3184EE06C1395418045B8CED00BB2AF2123F25ADB2DEFE7B61EAC1F02 -5DE001B4AD612745337F1A9469F4A6C95A235D12909CD8C4DCFE87C1572408D7 -E9C18038B6E463993E53553A7025F24663BC68C13AC8499027B9ACE5B450C68D -B21C2FF816EBEAD9105E9508F1459F80292E0F31DBF8F6B06DF63E2B516FB730 -034685FE5351894E284D1617C7639F529CD642FCEE4CB4B6836BCE3CF907031B -9750CD4D9C7E3933835452E9036CC432E8CB154CF5295522D2F4A340942B8675 -254C2BEEB67B9EF246A4B1EB47739A0CB2C1B30853F421D7950C0EB4E446BD00 -CBA909080CFFEA65505667F52BBFF1FD6315DD73C82548941EA1EBD52141F94F -7696254793172FA1767469B4AC10974735C526BE4228085F5C0CFD9724E363F4 -07794389D3894C46275B165AA567F8D9E268E3BAC07F00F396F1A18211BB9AFC -314F9DC062371EBF77E16D3B57A5EAB2F43E68891DE1F33C7C3C65D17DF70DE5 -36582C060639809A9EC3B656B457E7C6142CB47C8B1F771C6F7E02DFEF0911DE -E3E248CFC9DFFBDB1D29633CC2E736EB542B5E28F9F1D3779A5CA1D8F782C230 -CBDA7B814739C53A0806C727E862FDAB12A9971A9127C4B08364CA762E8BF138 -FF46FCD1FAF380B162E3D0FA6CA34A01E613544D56C74771BC375F0A80C7A496 -2BB07F7B705C74765B865F490815743BDCFDF6D829A73EE8A723750B88A786F8 -66410BF59E08538B64CC5393E81647983CB8DE3A3D07E5175DBA10068C51DE0B -8446293B5F11844BAC0E15257865964BBE764FF70CB1466E1868EA3EE08247B0 -42E40784EEE34881E5FE025785CBC6FE6C4A596A1E5536C9EF998E5AD55CB582 -F49B1778AB00C7A0B03F02BD5BEF43BF33475E16E2B786689CB7E187A2EAFD90 -7A1E3595BC5D66ACD42169810D9C06EE7C2A117C30DC680590F9C18C23A095B2 -8D4693B973A382BAD0F56CAF3DA7830EA7FA6427077DCCF46FF3B74FC2E7D3F7 -6CEDF9884F5BF23DBD97269475EE0DB66C576D02026928457FBDEDFE99CA6538 -42A929ADCBCCFAC695329145AB8148B3188CFD9AC2E22655ECD1673E524EBE27 -822B08B0F1B63DA11DC661AE217F40733F86AA73DA369D95BF3E2E0FE5A5F5FE -68A3AFF423160BC814148249EF3F8B1A79163D50AF6E6D40B4965B33B64CF4CC -F109B63E06D87161935E811CF2DFE010AD9B513076AD8B16B7F2980E9011AD4C -308533E93B68E49935E364D0D244DD0EE6308A2CC6D31B6217415D632EC75517 -0FD63BD3137ABA01B88459868E5D177302E0F60DDFA1981551D96CA844867092 -3BA043EEAE067DC5DEA9056EBE374B434885627CFC7F12787894C05B9A08E390 -DEA5D494FDEE65AE91F60779A084119981DF1F51A6591A72EA11844A7DC8A466 -E5DD19005B35E524EE47E661201B49C5159F8AC7024535070A48FCBDB223A58F -A36629639934D7D9F05A83C542D46974589E204472108C2A86750A08E5BC8A61 -6757887C4FA518CB5914772FDF186346471C34BB0A1F54895727EEF457E0EFC2 -A2792BFA75FA2901B98A04494EC9B7BEB6C84FD24697E6AEFCAFBB081DF479CC -F6F10FC1FE5CD1CFEA78F8676F29E720E8AFD0AC8A4D07E375EBFB7A2B22E9FA -47FBE17DCA2BFDC6B897F4CA46A5A1FC2F1979BE30ECF50CE76B05614F9745C5 -7BE7A1D52FA1FB2341F58B3301EB5CFBD99E1AC780B0B5A7052BB9B549E3F2C6 -B7349FD97F126A088E330BE352710D0F39C3ED6A2CA3C5464094E143CC4D9899 -A7BC3CA52ABBF572FF246A6CC24EDB5DE4160B1CDBE68ADF8059A3769D67E957 -55FD9B5EEEE0A2CF1C1B2B875BEE07DA580771FB9FF39CFB1D02F0338EB2CFA5 -A68C46FD860E7D1A9A333F3F3187F88E061C4FD12D5D6399CF858C2342E4A37C -E2EC2867FEFA77B6E0CEED42FB4A89976361E7DCAC26E6E3E9F5C18E5D52F934 -FC0410D12655CBD18B01A6B40B8CCB4776392FCBD4CFE2136D1DFA26635D48A4 -33DEF3E4053A7F38EB30FE083BD151D571B697E5AAA55228E26505BDA705835E -C0DAFB94216D515AE1CA338E9EBA9807D31CE51B10BBEAB5772442D68D30AF1A -C0517C617178CAF3214406DCC3F6A265CF1FE48F80D717E9AF77466EBC813563 -4F900E68C926D3527F46E291D6323A206F06D91746304F25965C32BD77B192E2 -2D56ED60E0CFAF45193F2B1AD8982563A97B0742753CE669FD93C2D26586B498 -74B094C3741D030963A09ECDE91F257D2AD4110930A58617E7291614E5F108A9 -FED63D2AB693DBD81666E61E06244EDC9EB1D5BD301C6F47951FCA2E1FC95AFC -5EA316A12BAE74EB7B518B316D78F4F5643406B0BD7A95B0AFC83E3E1241629B -6C19CB09836D4B5D544D6E9BC8A6F7873E6A1D5901CA9EEEBA1F20962797B881 -6F49C6B1064AADD129409A78FE169157C47C15FD57DED502F7735020D558E6AE -B7288B377F5FDADA67B756AF1E5CD3E42CDCFCC1A711BB3E9EA0883C56871195 -479BFE5397919C9D5A502983172B9FF93FCFC6F75ED42119D0398E25DDA9346C -3686E3CFFA8C3384F228CC38F08ABCAB718AEF90BC835DF8DAB51A3DD2D5436B -3B0D31C911E3A9C554B6407CF22BFF929E2F46106D755E4F662B3AA0C73F5244 -440A20C919D28E567A2B4E1F4AE489A952F74BFB96DBDD3A1110FD140270B42D -01E0C2FC19DF8C1B8EB44E131B5E84EAFF60AC410C9A444BD918C7B66A1663EB -BF7DEABF4DCA64E5A2A3C64C162F99E87F6CE180DB558885D1861B9CB1C119DF -52A01DC9B89A8B62C2971A2D88574B7D64F329CE3FDD388EFAF312AEAA07EEFC -F0D096F3EDFC563EF3E0906280494DC997C9709658E826F0DBD63B7FA48E0E1E -E4CD87143F482F68E6FFF795AB140C688A806AFAB02C7671848AC049CF83D0B7 -D88619AEAB83C9154145E1FAAF9CC8182311CE47F0E7644DCE056A140B9F043C -D2F9B22DE4349A69BBC1B7771C9E7D8F3C365FE69052741834E652219664FF72 -91567E794B2D885F3CF09E458B5ED1957B62C706314FDD9513BF07B4CEE26797 -1BECD6864B39946BE6DB2A01270EC57D8F6A9FD5CFFF01CE2D37ECA57926D30D -AA3DCEEF92DED8811E3A218A1C5CA3A4D7D1C6226D2ECD8AC078AD4E554AC260 -8E335D0DCFD311CF0F70A527CA8136A88F87FEB7775164FEDBD51B2337E56C8D -3133DBEA0CD7B9DCF71F2CE229C87DFBB74F8094A275765A9522EA9FDE654445 -5EC368F5A8B79CFA46EA62F3A09334F2725029E2C3D1AE3C4378EA0F18ACC1CD -8CCF9ACA9F74E8FFBD758610945371242F98B57B626C898267EE40B4415F3A41 -2A390E91885892C177F504204664992C5DFAC69B5A2FE92C67CDAB241AE2D74E -0EA991D45069F343D8CF106DDE80B1FB79603CF2245AD223DE5A9B3EF5EDAC1A -04FEE0886C841FCFDAC7049A21C3A6FD30F68F8DF4C95FB8FC589975825C7A71 -8BF592A8DD7C0BF523743BCD622450B6C784C19BFAD68960E0CE132503BF6BFB -3175E34C0A08F16D65D6F64131C91F547C6982F25EB38A2A8F553FA92F83C4D9 -0FAA90A9ED486322AEAA7371F2B3246954AF0183BC7C29FCE23970490F4ECC0A -F0CD344E39F51CD264E7DCD3CF62484D7819606FA1D8FF8DAB83A624CFCB0C60 -43E2068C4D8B44B844AEA41A20A45B0538DC0A8F80F3C1309837CEBBBE8B2280 -102FA484CA6C88D6BDD7B26F001AC6B2A20BE20597D2CB049C67A09E19424A3B -64A8044F5A6EB877037E4F03546EA537C88B30371F048E3BF8C5DD7A0D1565D6 -84990642B2391980DE98CE60C49D3F73AA14D4EB74F7531D31DF0CA27F1727F3 -F8A533651C49777C7070981C1594EFB6EB7FEA378AC70CAE482563EDCF6EAE2E -9735A70B1AF90BCEB9E1E4809E55499720C379677DF88E2A828A0E1E22365E52 -F77D101E40929BC4DAE99F83E0DBB358C6D2B5706D4E89255CBB057406F9191F -9EEFC65E820B429E28E2E5FDD67B774B44CF08547957B960CF1C65AB09F8F1EF -01601A80A09FFF6A2566BB1C84208545E4EFAD1162245FF032880779C4299A7E -F9B0C9280448FFC0EE04EDA521D421DCE8ABE131FD75EA1E73183B5EA6559A19 -2EDD83ACA4AB808D4FF9945CD0D3B9E8BC19838E2DA62B7D05716F2E2F7B134C -E630962C7D6388D3C2E4D90F13C30D2389866588D85F5D1E1153EDE7E5B79AF7 -29527E8BC7CC3F8524620FE3A9D693E4CB526A3F7E537A60534619B457E08E12 -F887AC2CBD70E8D581D7B38B85B58AF2A00BFE39E43148A97D3A263269ADE095 -55BC42091B9FF8CDDB8D0E71A0E1EDB5639D9C7EB5B1392F75BFF8D3391F62DE -52164E799FB8E9B183FB7E2CF4AB359E252A4389D121F651C668543A4952179D -FCC83C0A3868942493E1F1E78E11CD2B835A4EAE258D66E50B62E9C7C771B3E1 -B827E25C7023D6C077A1EF97783AD903C21468466CEA28DA7F2F2F02F41F5769 -6BC29F3A0E7797BB01D4BB024ED1A4865731C1B3C7BDA45BEAFB5F5410C6A2C8 -ADBBB62F1DDD0602E8B3C9CE6F0A252C9081EB6C387495BA798999EDA43CE0C7 -AA78E8258A9B6D73A97E0189EF1FA956A1FC0DABBA39D65007E0930EEB3622C5 -619398FCF6B8B3203770EE434A89809BE22A5DF4CA585F43BA4F30C072950F42 -9B36A39C3883960120CB35C35219F4F3888C9579D8DE07F33C3EE6234C3004DC -77C4F75C47EEB0FC0381A2B2ED4EA37A6027B916BE534F9AC0B43322BD72BC91 -7368D9544EC5FA024493A76D9A1662257A3FF0BF3306E56BF0386B976E816F7D -ED1E97DF34017D280896C0B45DF36A3EC09447FC20E727CE6095E00EEF6AF3D8 -75B226B46B5A7E928FC15E9345370DBBE10C441A93DD39DECBC1BB26F8A90BA4 -DEEFF1E1749FD4AB82BD6ADB0E5F1AA285DF5C16DAD1ED4357C4DD7118E06807 -FE48BA3B2AD739286F41CDD689F1F5DECB6083B9F121E27C94FACEAF9DCF4A7F -9FDE141FCA1F017CEA0FC1946E252FAD5E1B54E5AC8F2483678823AE8870FBE9 -CEE5EFB5209AF917D4A5E6C95879C3C5E4A2F89E391FD410E257B042D7B63617 -9B44773BF4F0E6A01F1389B484942C4943D5C32295CB06015E96E380D3119A24 -A8299CA65933E216D9FD1C2204E8190A18364E7BE9C53B7EB5AB68F84E1249E3 -446865C027592E4EB5DF7CFC50DCBF445EF9FB14B54EB3E1111F3E3D6BC71772 -1050E578F77AFBB88D9A1F879716A586293FDABCE6F97F87C59DC64304B74C06 -7B0090C4ED3304BE85F473F28979DC193FD0D24B86DC9E07EDB9C9C49FBEB68E -F4703060DDC499F916F6A001019ACA11D62D580B5562 +A2C69F817061D6C60B121EEE844CA5008F23DF08D8CAC0CF5D1CFD7F9DF706A9 +37D3BBAC537D925BFC944543FFA49CE9DF9300AE07EB528C6A0C1EE12873D93D +D3156C894AD42C4E91D3526B38A226DF9AADD15BF1B50F0CE7715657A635B99A +13088F8F09BCB2BA1F8AFF25C2AECA11D6166551FD6EAAC433FF711222B5481F +89BA79EACDB317386933D4178F9B3F3C3B2DBFA3FC7B67072A3E0C76DD51EDE6 +83098347D1487DA73A9BC7316DA6D5AF397DA6BF815B90F93EFB9E0D7CA96C38 +223EAE046950501DEBDECF54A08F76AD70B7E01133DC3E31C0149ADBA2E7B261 +77A68CA9E583B7836EEBE249E2D4D8FBC3FCE454FCE3B4C2FF40D4C3D7937393 +8211492AD6BB2A0F33E14217724ABC33DEDFE67EDE5F36FC095CBF593D183A25 +8FE1375F631D0B09159F5505AB9E1DD3CFEA7B47D80E376404235DBFB924A86D +5211635B42145C6DC3F7863309D6311EF08261106811F2A3B4E3D447EB417E06 +E7EF7768577F30DBA130B09E3B1A19B080F7F46995E446791CE58C2895F66FEA +02A69342556289E9FACD49F19FFE660EB445C44C3172C12E5AE1123372A58C25 +13C9599E6161FF054BA39A5D59148916143D2B7AAAC2DAC545F4B73D8A6109E8 +E9EF34DDB3F27F2304E883EBC79EEE64BEBB6A53F726FBBD9D75D73AA34DE98B +3980FCD23DEE9561C220C10152EC2A6794A82A5793FB1BA417B266BE7065B37E +207FFF402E942BA1F1FB5C7123B14FC642EE9A23964CF22335709A2AA64704BA +D7C8211E3A55CB5BCC706F07A2D4D2D405BC53B257BAF18F9AA24463EE0655AB +8B79604B8752185FD830BEE6E12654A8C373043388E7CAD2F3C297F8C30E79D5 +BBBACB68822E0EC7826C754C0D40AFF3996BD27BC35A9AC31831CBEA3AA979AD +09F2A0B23E5571C1902F0CBC0E8240018725AC349F84412FEBE699448AAC68B2 +B13F59B4DEDB4F1E15162442315A4E0F1E171266A170B13D9224B40FFABEFFDC +38AA7CF2C0C8D60DB8D673AA932B5F6F888B1A5C4416D6DF5497B9456BA0C46F +884C202413516B92B8164D9FC6472520FCD909E8B4965B24B5117797D4D4D074 +85EA6E1FA56353A2CD797356CC72150975317950B88A91F920E5591D5EE3208A +1E02270C8EA68D020D181EB8F72A8442A63705AF100CF541C4D651C6DB611A62 +0BB88BA5990BCDC3904951A18568C7A7E1997F298B8DDE602535DE914E7BAFEB +EC3347FFFEEAA600032EF4CA826AB3862011929B1BD0D34041F186C90D8FEA8A +8EFCC80BE90A8350BD1A82C8361E79CBFB4178E915E68BE2C815097EB1AC8F5C +4C9B1E2EB28C92B8B2D162523AE6C0588CC53FF1F4BB2221E6E9E1912EF71FA0 +97DAA28E9B2DCD6F00E6FC4B9085AD079FF5EF2AC233C3EB6A94AFDDA717324C +132F065BA9102CA181BAC5A99A3AEFE6C6C40369993CA04B02DF6C0600F0C2DE +80FAF0042870ADEA367A8F21416213457EDEC23435685FF5C6BBC404BAFFA8C9 +733E7AAEC4EE331BB8DE5DC374426149C4AE86747C463C6B6EC699215FDA2938 +BA6D27707B0F5B7438E14CA8AB9C90550A1F12D0205A0731A5C57A721F7706B6 +AD5CA796B38E74EE631D269E3E2F402BFE8D8C85F9A272BACFD0192A269FF5EE +6439B06F1EE32FDAFC8BE1F6BC74F5C27D2DE2FD1F609ADD61843831C7636E6F +B3D6441A2DE0106A16208D984405FC3F773B663EC9EB8849839C348BC12283D7 +72EA1D42C031F5048279FADE79EE62DD0570B1F16A120ADC4BFE2EDB8CAF145D +AE7C6CDFB63180D3C70A496120E606264F97BCBF8A4F798C670DC8F28C55BDFD +DA4B7F09493C56B07956DA91D6309CA5C08FE35DF007B5E6F16603D43AADC488 +F699052706230A84299C9AC065892F67E65E2CB52CF1AA17EF81BCBB4DB5A00D +306AAF425FBBE669AFF7DBAC1F9BA504464BF4F28A013921185D987B4F4BE7A5 +B81E093CC8E12F326078E6084F93F66018FB2F217536E947509D31211670E177 +3D4DDE1F699B44EEB176D68CE7A2A6776F93A53B1557BE6C7701F83C9D1AF927 +8F8D9A42631F4BCD398B8F8AC441883AE1707D2B66FDF453CC54938D39F499B4 +3AED3945970238BB632BFDA641E87C4B522BFD5F05B634D2D7ADC4FF875911BC +FF7A564AD1024B7CCE8955740BB900691B08A1A099117B4D88A73C6393616BC4 +A03AEF2EAC0469B9FFA0F68969DC66A54A61DF63FFBBD6073F1DFBCA4991DC02 +0FEAE7DE2EA0368E2EEB7B41AE6B16806BE6BCA186D3BEA1806C291D812DA0D2 +544C3312D1BEE47CCC237812C46B2B46B402FD4FC5B1F3C8568F4FCC3243C5BF +ADD73B707BB8E2501BEC2DD2F8FC63C682BA82E49A224A54E13512748089A8D8 +D3600DDB50CDAEDE4B8B799C727D6410B4150819D4D3A63CD2F44A41D97D6803 +EE41645215D2F753805BEBB63662EB52C9EF1DA780E33470985AAE73A03C97B4 +05B2C8E1B1E7182D84AE97D29F19C38E1BADCE6CE158E186D765652EAE384D80 +B6A2568C79E2ADA65A513E8B323C66D99EC48CBE854CBBA87952A7DE5E35E01D +7CB84514553CE17A6725124AF08092AF36307534CC511DD805749762DEBD9EAE +B10C5C94A0BB5714ECB66130C70E155C509AE55A91010DEFC2B2BBB5BCD8A003 +457999463757064F63A56B69608AEF9520E035E5736CA6924C73CB00704553FE +55849948C35821D96D3440A7E51AA6AA87C79901C0606E6DB845334A586A05EB +2D0B3473C0380509FE05D85A81951B806F7FD5638A60FB59D07CCF51C05BBBA6 +E07A0AC7AFAB6E0FB3A9E69791587ED26E661412EDF3AB6198D11AFEFE541D05 +1547B6ED6EDD15209CE7CADAB720AC104528F785BA2D36F642D0DF37F8002BCB +CF493D916BF12F6BD61C29B944FDCF2CC743154FD4322DB77B9924959AFB2ECB +A92314A065AD7CB3280D22A291D4518A026FCA83ADE0C221579DEA92E186354B +EC706098202270BFAB6072DF8A72209262FF7299D549715EB5E6F4E63FFEA093 +96E7782D84AB55FD73D2F78FE8DFB60424922AE9ECF337986169D93A50EC11D8 +A9069A995ADD378A6C3A1220FA4A8F8D926903AC252CCE42004F81C262890F0B +C3780A17FC28F8463E71E2A82D1CB1EA9A1BE2010C303F64DD541D9E95535A4D +41CB45505642220110F1C9269A64F2481026DFE890C3AF1ADC0D6F54D8F49A40 +3248127FB89F50728B12030333EFDA11B13596B57F1CA3639E714B67355C6ED2 +2931EE55EF29422BC005E2556C6ACBA226EB6219EFE10376C2D3E5D3E0413DC3 +3655FF0149A4EEA26B89DC615CC5E9480731443C695413AABA079FFBD92AB662 +C5EE2F64CBDB748E326343CA3723FCE4E50E5169A687091FF5B858E36CDE800E +AAD8CD6005B92EE6E47985D3752C4DED179340249BACE4E358DBB531152A70C3 +078A7883F0D83B7390420252FC0E571C4FC7373FA706F77B67B1AA573B1F210A +2A455DF3AC32352496C7DAA12D9F482AC18615DA9470EBB1B6E803A8C2FE7C30 +9E5C9A4103987B63EB30B849AB0402644EF01E4AE0456265C500CA9F90D2D374 +E3B1DB01C82B10ECFF25F982D9227591ABA1B690F21B01A8C7CF0BC3B99F63AB +12A4EE92761F219C2C938040D2CA96B8201507A927C94749A715F67A1CF9C1EF +AD7EB8BC8B6E10631ED0C634757321FFB18BC262462A51CE73B5C243DC3901B7 +9C1531418A1A7B9000785D717B1B28ECFF67B9D8B4CE5DB3ECC8BE5DFE2D14EC +F7A435647ABE15F0BE3B50C3212FAFABC957BE5B73135C675E7449F1C7EE5741 +C865D7448D36C3FF1CFF57E1FA23D707A71F2F972C6BE38DC489A5362417721A +B452BC1C12663188CD7AB8B9A292E7912E303C82CED99F790C5AD5B7BBFC142C +736A2AE99388D77E69CEB3BDCA9398466CC63A0FC9DB1B78715DA310C0EAD3C3 +FF5A05D095DEA3EFE3EBE86087E0873EFBDAC0F45FEFBEBBEA25D6018D3F68C1 +5C671F489A8266F32B7876A5082C149FF59B28FA6FE39C601F3F5CA5EE52A376 +0CCAE3308BE728D92060B5433FAA967202AE94157955EF990A81F5BEB2DEA69A +6D91D98F996A9678FD391DA420DBC82B596552C77A06A3709CE629FD5D3EC176 +92067A8CE5BD178D7B6CE12822F5C91296874D962BEA3B9C661626DAB343CB06 +3E6E9CFE5B16CD150175E8C774849DCFFB48EE5C5BDFE1D0126541C53281E62D +C74C566008FCA340A53677C5E2AB1A81244AB19028D9A6F4AD53363B840FF729 +05912B62F9A776009575F08922EB70F8AF5573B6C23F5F78214C0E33483318D9 +EA75AE3D3EA1BCEE445B991A03EBADC694976B6867AE0716B70FC6EC13F41F9E +D9BD79DE7519A230022E3C1B955E80C408D65C6C1F72455782C927A681933FDA +2BC52903921995CBFE6DAC447A17E068DF7341904D32B2A8F324D08DA80CAED8 +F33ED125601C6CE92B6D80F6334486755FC111782982633960E879DA9371D2C0 +F6AF412A6A12ACFCC50C7E62F970B77AC6CC47CC998CB56C9E83FC627184D812 +070432716F2F052E631BC397E3616D9D4BA1EB37DCCE3CFCC0C27BD180670F20 +39CE8D49CB539A9C859B40725ED3F79C409E153BE0140D5806CD217FD4D1A5C7 +B86C4ED864A6FFAFF9652E2B49AD41471D753BB267F9522216E449C49853B243 +B339FAF9A3456DFC1D1047207C073CEB1FB35C95DBB484E0BBE4FB878073F408 +6B3D3A962A70E90FC408453F3241038B8DB47C2CE6C98A4937B0D2E9B83345FC +0A69A311F2F2E6047700744D38F5039EB139F934F32486FF8B37FFFB5EB6D438 +3CF5C6EC00851AAD86074CE3E487AA2C91498883E60C2913D8D2243B78E3E12D +4F7F3108A75B83E3C7ECE61BF01FAF2ACAAC8B132799C4D4E75E191AEA78E13C +4383E4ACE9CA18B242CC67DBEED562D6D71194A7DD5C5D6DC85F0759D8F70E72 +FDBED16C4FE46CE454E89C99C0F7EB7FF22A813980958D09CF490E00D5FE0DEF +8E2B3B34EBC519582F43706DD3C0184A480AFDF7D77EE5D78FE796C65E1EDDAC +E49C2C23F9EA4FE554BA6228914FD22A8F27CA1EA1C483357782B856DF0C920C +D6037D2CDC76CEC6D23D4CA06B45EE837ED350A6C8EEE55AADABB87B421F9918 +62AF64C55D844A04C366C6D97A01FCADE1AE9567E64692C3604EA80070483417 +95DD9F2EE99A3EFAEC80D420CCF0F79A4D5B7DD66A8A890E56521D36EEDFCFAB +2DDE6489E442C69A27E13A83F8CCF0913B00A9480407ADB344C148168F346F1E +DA1D43E4F11950E533869AE55AD7EBF1BAD75BA599063F67138B2842868D98DE +B1C2F8E6FEB8AD6A71E1B891FDEB36BEE96A96EDC63D5E49D00D1F64AF89D345 +B1AC123A0A0ACE6640AA358CF4660FEC08A3210ED89418D51AADFBCE65DB4596 +BA2F5BD762F173E18A9DF14030636C88724829F2CA1073D3373991ABCEFBC002 +EDA14EB6568B0A61F6D24E301DC5ED1B734A4A53C74B3443D19678A5354CC4D6 +0C8CD2629462378FA68223A3750A4A9B016780D23A26378AB30E08F8FBEFB070 +56C68EDD6453C9869326FC6FE892A6E4E720A70BCC894AE4A99B4A442B9FBBD7 +B7F6BF434B8CCA773834CC1B7EAAC418051BCF2119B5D867E9D9163BF6CE6ED9 +AF879097A9AA5366A94DF4B83D26731F3B68D1207509FC66F31FFC6BDC2FC3F0 +FD1A5A71ADBF013F435B00A850E8A3375021CB88C07451A63C46B2C8B964B3A2 +1115A300954D73C4309A7DB0F97EAE4759D4854D85331AA9D9552DDC179F5A82 +508E970A50D13F6327EECF4AC9BFF01F6BC007E59DCA5F51E2BFC03B64B5B049 +773E6C28BA23D6292CD2C4D8703504DDC504601324115D0CE69449DD3D6F63AB +602402EB18808EB354134C1CE2F87DBBEC1910D6F26190F1C7E95FFD0B2BE932 +5FB3E889752DA17D7E9759925DCEB21C46A7403DCF99630276CCE00A3DEF99E4 +F4A3B9954C8352F9A40F3FDF62E0D584699DE95A380A7829A49C6EB0F4F22784 +79883C085E52087ADF74B3AFC1216E278820CA81855985C2B904C7E41CEC2A3E +B7C12F082BAF9D2EE6BE04F91FEC103B01D65D5BA5C157631C09FB892BAE6B44 +52EA505603F257D4A1AF78DE9987E16DA996FA67CFD4801F9B8CFB922C1CB385 +8CC2EB75AB3320D9A2C8FB9EFD045946A8554A2AEB664D1326AC7FE2F027D8AC +087396AAB400E79B9D355A747D1C181A9DC417288865EDFBC102A1E09A454AFC +72E12566394A35D71B1CD007741E29D12903CF3C29BC0EF19FDC434CECC31D37 +7009FC44494234A0BDF4C854C866E3A0A2F3A1F7FDB3CFB1765F3A02A3D4CDEB +70C47F02FE071D8F38C66C1EEA91D4DF66BE2A5C1E2B2CBCD0F458BE3E5B3AB0 +951B8DDC03373B9409F1D91F62C8D47DBB66AEF8C116E27CFA8DED030A1A0582 +7CC2BD3143EABF2A12B345AB11748FCE98E4C6CB3E1E092E4F779D00BE2D14AB +2D5423CC875F42E350D4994AF9EF7B2BE24458C1B98F2BA698D83766FA58E044 +0330DB86A17730A858F162475D915EE7FEE800AFC756DB61F7B5A1DB4261A14D +E90B39466BBFB6CAB68BACE4B9A886ADE570CC789106D174E971791B9CB6D4AB +9DE48B75FBC21A3BBD68CD21B662804B78B9E735B2906AFD87C5C66D009BFC23 +E9BFE538AEEBFB5769C3A97969095B0E906244D80685EE6B8CA10D3111578073 +2E575DBCE5E48F72818A07BBCC1D0E14761DD86DC168C6515909A775CE751E1D +08A64B01C8F77F318DC9C4504E8A536B4C6E3578EF11611243B23451952856FA +DD5CD897F1F178811C9DC2CA8715DB712AC528E1A404F2A6F6765F03B0DF7543 +884922CF8EE13E60B29F27E6C3290CBC5D6CEF17829C6DA81E15B13AD8965D6A +656219BDE467E26CBA6C540F4A170C1865FB09B6E67655FF31C1EB5715F9C973 +7F726290ED973199E306C08B714389A1A8CCD01A29D86440DEA05C1C27F620C6 +1D2E4187FA92D2BBC2B5F90EB75FA268F62FF4ED1CCBE61B37C4A67F125CF387 +E157911C257B1FA839CB9B7765D99812B232D16626A252F344B784C5F7D1ACB1 +99CF0ABA487FD35407E8E788D314B5F321C07CF2CE3D92B079C1DF07BB7423AC +B212EE939B08DA3392426BBD3C039A06E88DB46344CA3E222A711D5C89A25695 +DC3DBE9A6099EA247FD4D053615DDACD8F3281D8AF57479E4C09230363377A9E +61A2C39FFBE37B148C974A93F26D8FE55849829608523E96391EA62414742B9E +E3CE6883653A00A9583CCD2CB41CFE5A240653F7B2591619D041AD9F39639269 +3A6F4596981B3363AA6EB26C699836F3171A62BDCC3A6E0B91DC95572D3E9A6A +702F6EB11B9EBA7C05115CAB40E3C738C87DE9B3807B479915817EA26BF009B2 +731457C733D1DEB6D523F0AFCA780B1769B7C49714D59BA3F2A30BB779BF2D4A +7015D8CABE18C10CB820C526B27F04FF9403BD0D4C1C43BDDE79E7272A1E2DEA +DF8C47D68319CE09E593687747C5944D3633CF1DC7139C1C5DCB6AE10130181B +8A0B05466E7ACDBCA7D411F32DE6137EF995CFB035C9352362BB67FD643845EF +195B89CEF5BFC8F14FEF137009192A4789DDC47FC965A816702493753046C5ED +B883AC9CD137EE69B243FA4B220FB33C04AAB0C9890DF92E3339171BE165A6EB +F86ACC39E36CBC371104E4A1892248A622938A1CEBE784DAFBCC2551D0890499 +ED56CA1CEB5FE7EECD0846A57295C4BA2B8BA536C995FD04E834F4587AD8CB8F +4AB1ECFD14C61FB89E5B377C99AB8D9AB7EE1391251B96DD8F40953990CB3F01 +6F95EA7CAB6AC46B76DB89DCB8E06816659446D72267924A228BE6D8C576B412 +9724443C471C5834FC1AC35CE52CF034C73888B44897CBFC3180D40D9B5D7060 +1068AFA273BE8AA9F9DFE49FC326B8211D2B3CAE7EFB6FF7ABF3BDE460D889BF +47417AC5B339FE09FCC63FF832966A2365A018A470A297FBC857F3ADB6FC00C0 +4C7BBF575CA1C440202707E0851519F16D4BA492365FAC9C0517B7D1125B39B0 +D342798ED5CCF7912443730A636B3FD4348E188360C796557F9BFF42E5F00353 +3243B1F383BA62BA1114D022B698983B5E14E60E3D2284971F4FADA19D3C3A72 +25B71F729CEFDA79F3D41B4B16E59555F05561D4E5B67D8D7B82FB0B51BB762C +487FC272AF0209F083B2B50437264DBB37A791B71DD26C5380904D0623CB1D16 +E8DF9DBDB5A4A7696FF6B8059E9258D90684DA3BFC2C4A7EC76FC072F137B1C9 +7376D9CA39AF038F57FE0F871D58E155E7D85C976B0C0DD2369B5AA7F67C9B77 +D3FCC20F673269CBDC5B3311035C5724AE59D01C6B2B7C79D7C13D904A9611E7 +60F2E705B0DEA737D12B28B874ABCE5FCE142CC028D851A00D7EA89AE5788385 +A27CED97A4DF1D3505479995C8BC2C25E4FDE168D3D5780B13E3D4B67499E7BE +1626AFE11BE61F065A17726DDC755CB51FDA57482445B61639C592A656684AE4 +E9AF2488642955364195A53791E6876A3D4B48EB01886EF6D5E85842BC3F4F94 +BF13B11D82EB4570D8C80363B3AF212003AD9E5CFDECF11BB15AD79473443B79 +E7A4C38D63A48B779E565C853A03FFC444D5FEA5CC5034AD9D06636AA53EEEEB +0249CBDF3309C7D65148F0178F3CD4ABBAAAA430003B070546D3CE063C638793 +27BFA18E6887C7275DD7FDB7F3D6283578C68765AAC0DE8F760852E00CAAF783 +4ACAFBF17321423B208F5A1054E04C6DC3841DA675C19131FEF172CB32599C46 +8CBD7B6D5B2D8922875C89FAFE2F30F606E5F92AAFEFE693964018F3103CA008 +D53819FF7C2698A46FCECCC669F654805F86EAC6A90CA4698B80C3264C6FCDA1 +2B01AA60692390E319C89CF29A27925C9CB5649F3BFF86210DCD2560B44615F2 +5A69F51743402FE3F9D09F4673AA1B9BA36020301DA595B7B628F901F94C7477 +F6774FBD8946145D5BC5C569211D1CD79A9E8ACC32E9CCFB501C558ABA3594C1 +C51C10DC70C83AC7013631632DAAC272ABE30DB85954283B8241816E01C4ABE9 +D4C708EC54CE5387555256913334E1228D2974C27ECF8D507E7E45BB71AD9625 +5ECFEAEA5D5088908715C292DC3946AB3E7BB7CCB54CB96FE45E6AA7BD0056BA +8BBBF641B93CAE8233702E9FD086F9552C322EE087499D5D337A0DF9C22AF831 +7B20E453BF353559FD3BEA747ACB82E637207F7848F8916C8F8414A311DF4553 +034922EE210C77CD19000F7CC479129AF973B04845DE075CA52F304296ECC238 +039D7B6948F5E32433B6049279E917607AC3A6015C8D77B53D458CDBF9E75FE7 +148DC7CB03CD553A4CFD270B11027E15ABF45526975E69787D82A6AFBB029A3D +207B902D5F6E75DA15B6B4B8571549B5007801FA211C4415C26F79769EF454F1 +922AABD1E773550D77C12BD060387C6862225521E46C59AB3D149B7643C7AC77 +7C55EF1D6791099330D7B38D440595FBD78C7CFFC3ED02A409BA3F25010212A9 +8813ACB8CB4219DA805A425E4FBE2A86E383B994BCE422EF6DBD511C38E0D456 +4EB1C8EE20BB2457D46D0887352F2ECC39C2B956073C30F7D20CE15A0C50631A +59C12D7AF12B12B1513EE4C90E6E0D0C6FE77E2F41096D95DBB59F9AD739045B +7B092FF7BBE660CB3B865BF7D03D52F68CB0750F7EDFCF821955C823A2AB642A +C60AB32F810A4409F0D15CCCE5760672CF18F9245CF40D78401D3E3E9BA50198 +275D6D1D60E36EB23F7FA0D9DE6BDA6DCF77C272C8B327F6B4DBCF21C8D4C525 +AB0AD5B5D96209E693AC55393AE5E54DA517AC696117F83B6029CF83F6AE73EF +84824D4485B526B53713471ED04D2B297FB2497E9827E01592ADCD7CD50B0B44 +F758F9FB7A48563961FD49E43AE0E43FAB464BF97E5639C376E6909073DF43EF +F72647CD6C09FA7FFF84B529C1A5EA7B0C5278B2AF46B8C19AC9EE23F365CA45 +8D4CABC3B2D9B669449A5CC4EE077B2AFB0038DE59473C75A7103B5BFBE02E56 +3FF1E40CFB845E1B1528F5FE3D21EC50D3B227F4530ECC06E97ABBC0E42F2E69 +D08BB92742B70F9DFF6B8BB7571417C73A047C1877EEBE2F345F2D1AFD1E8D05 +1A87F874FCAD620CAA58D6D57AD2C73264E9B43FD5D1B788BDB0B88CEA4DBD49 +C87517C1A90DD32759DD423208A13CC39E18008DE8A95B3415FD6FF25FEF21B9 +5BE980C914EE8DAB4B3C6CFCC9FB7F53A68BE481056100E1F710D5D5D4D6FC3E +E6C9E9A35F54287A48BD8836B9BE9149F998C25EF549073B1DF4A1E87090EE45 +238F0DFFAC08FEE2870E3D1A8E702A329A5A124B46A0A23478930B64497DAE77 +BFB08C1E4CD69F082225B821F45730A7925AB82CC894532F5992ED6229D2B424 +01DD5698CDC43CD9378554698A196FCE02EF55093326C4F3879E7C6BB009AB84 +5AD896BBB1E5CFD5A6EE8C692B3FAF235F6D4AE24A05FE145B0982C3B2A6E98E +1D28925087E86BBCB4DAA49E0B59188E2C2E5C16E09B557798E642D561A5AA90 +97746BA8E204C90D980D35B9A2A08656B82FDB0BD6ED1C8178F6DA6077BBD99C +BA48E6F7C65908A49671F72226213D0946E12EEEE8B0F2CFE50AA1004D178F3F +14B1EEE6E6D83ACF8D152D183E5F610FCC57F458B83A892FB5625FFC7E3E51B4 +6BF33D97BBCAECEC7197EF5216FAE2E326285E2A05973D431B25F2387335B73E +DDA21E2B032FF6A7E6FCD3D3B09490093FCA5E8AF152B13F6944A6E3BF5EF97E +3EDF42B0F2B4E6BEC1E582CAD34E1E87C6059F74251849358828B8C4D9DFA119 +8368EA9571AC4BDFE57695735F39D7F3B9236B8F516522C99E1D935E0B639650 +98FFF1F16AF7DB40030A408DD22861EBB81CC9972626E02490171F1BFA11008D +0394D7C4E3D7D6D09AA97FA192006816C109961655331F47CD8AB09115D77101 +0D58B0536CC665504AF334F614D4BB107EBBC3590D090CA63327FD786E00C086 +DDBEBF26EA5A49ADC637BA339FDD353705BD819368DC5F9CA61EDF694953F891 +9C100B301CB8002BB44EDC88BEEEDD60534001CD5392DB2804F276E5325EBACF +FC28C343FDA8CC8BE068A72D2BD2BCB80BB6A7044F06587BC59438A3A1E82EB5 +820E4B782946168645BC036EF1348FBB29B4DF0E408E048330215167DDEC5F14 +9F0A205A9CD05F94DA968016F9C3C6BB05BFA8EE8991A205466DB5BB723EDB94 +DCD1EDA7DA312BE93B09197542452AADF44E7003F5A9152DEC9EAF5BCFA17D5F +9C73136CE97661A839956691FD3AB7C843747DF5B197D6FA5E56CC2FAEBCB047 +B1D72C258AF557F75DE3161B2179AC79B0E558E532F8EE521D149B61292BE12C +534E0DAF4A994AD5C33AAF5022B61E52802E05B405C2B6E0E92A4A1C6E486ED1 +7EA8B1CA43BA5282C2E785D7DFD0D381C7B04E89DE15C48421953C1287EF4BE6 +CAECFEA923349511B5A816121A2126558160236D273947FFE1FC539A16650DC4 +987FD0C6549EE9C8494DE7134679C9310A6DCE4354B6725EACBB7B3AA48A6513 +4FE53F855902B14EC02F1CD7FFBD9681445E0AB1E9E4F36A7E2D5716A475A69D +DE31A3DCAB5BDF20A0C589C831AE77CE89FF0C7C0D0FF05627868BDFA147D08A +7169CD65320B4C5C5498F8B8C5907F6A97FE425226174490D9B9C87334A8E359 +3EC2F2B817E9239609AC9A8073AD97FD299682AF443BFB3938B844C05D48DB89 +87261063E3DBE38649C1493A223167D06DF723C7886C8B3DA80F1AC2F2A5F47C +93A99385CFE0256EE7F83EC517DDFB689585A84A537BDA2B15AF5CFA4D92B89B +679D761B16226B901FE77057092A8480B858B7B570EC97AAE11A2C042943F12F +920C85E12807B7674F99B7E6B491C92318528F9E7ADECEE597F68DD345539B65 +F6BF3B4EF172052507ED4E5E6A6B9F9F5F55130F8DFAD7E37E6503E610A4FF57 +7DE88B8BB3CD9AC56FA26EE23C07790CEBFCE331F2A9BDEC39A7E5F5D39CC7A3 +048016E0CAE77D68F327A51A80F06BF10AF00DE7553B55151DA14AEFB3286D3A +249F61CFECC65895A813A657CE25A571B7C5E796A8E0713217F315AFD01B4411 +BFDEEDCCE0827C401F980E738431631C6CAEF0CD8DD0251DF9AC8DA17FF6E4A7 +435F57CF30D48D1016BB08C0EE302729A358569DEA4CB39A56584A89730F50DA +1EC05D6450CF3863E66FDF674A636FA195D52EF6D4384427DB71FC060A77442D +B73B3464086B0CEA32D758E3C78BF41A0D7F57E66B57AFE22F16032C75C786D7 +C62B632376BF18DE08D2C471E0FD5F7F2DBDB58155C887EE7B366CDC1A8061F1 +DC0FC77F9273F362A6E6DD66D4AC3430C02B7827477747DE8D117C754E3B3433 +1961C10898CD128BBB2C50DF48D23195A35FCF52109F29384E5AB0A85E0B3743 +6356FFA747F7AA1008BC34A9A284DACE942C45F4A0470EC20498C04A393F76BA +35F592A7A60DCB0803750E819761A49B851148B0BB1CE85BF9F585A222DE2214 +56E5FAA11C885390A825DB6708B4FEBFD253088B035AF8191448192D0C506AD1 +8E04626B2AC6DF4E1D2C8C575B5BA1EAF3D56C596B6F96D13C497B4D667279DA +790B73BADB077CE3C91103D44F5E3BB1FC3A329C42C29F2C3967528DAF6E2A9D +907DB07819D34414010FA65520D1603CA74E8C12C157BDD5685685E1C8C6024C +123164DC0D4041487718B73479A5BAB0FE120D2919B33DB9D5DD9F6D882ABE28 +0E960A1A34D61B50408DF6BF9BC9F8CCEF87C2CA0629BAE8AFE988C4B1D0E2D0 +D458CC8319F207CBC2C6830B598D77F285BCBA529E95ADCB2A82FF09E1FD38FC +62395878A018C1D193B9BE830C5E6694FDB8FDB8BDCDEA0F3B7C49531FAA9183 +0B21E9C4BD460EB1946A9E95F89A96A951D1B239C49943CEEC3C9EB63D41E00B +F0410F311AD37587E15A700BE228B08893E7A0A9B732AFBF82C724B316E0A793 +9A5793908A481450383FD4061E17C8BCC3C0131041BA17C77BF78755C3C8E8AD +04E04F33CFB1AF6C88F6E936BFF9C4746E38FC9D9FF6A73275BE468AC0B29F2D +BD588B47E63497E80522742CF8E39019ED01295C937D06E5D149ECD01C1FAAAB +3A05891165172CE18983B00261294D2AABCA7C7975C04BC67076871D65BD8CCD +7B2C518FE9D6EEA643C0464DBE5997DDCBFAAD5F00CA7C5B52DE09754D3D617B +F3BF837CE62342FC76737A21CE1D830C441E9BA1B4846B1D39363ADCAE2D9349 +E26ABABCEBC75920F9B03CEC982541D55050313B9BD2824C2EBDC546842805EB +ABD2CCF90B02BECF016DC2D07A38CC7FC7D7E9C8821DF1B79CCF0CB70B5265F3 +7D9018F027A0AF9E2BD3F441531039903AAD03E4DECCC7D09CFF0717718FE63C +6ADE97A1CD2AC2A6354E233CC03C92199C2D4F1299083189B6B2F322AF2A1E6B +93F69BA1F8D9C1D37DE666B9C3AFB842B36B81DA0BE10343D05281BA34FEBFD3 +8AA05A5A50D2FB47D7ABEF706671A939A101366BF1BBDD1C76CE41FF5E9885F0 +55E52A61825B6849F42891296A30A17AD963AD2C9D3C35B13214A7334CF1D825 +973803487884DB5E0DE6FD318F502DD35FE018DA0A3F5E36DC9DE130CD06FD32 +451E79B82E61BF3450C4B532C2D8DCA8C0E61798D2B5370539A417C43E5210B4 +160BC5757DCCFF994912E7EC5DB9A53E23F21EAAF48779A7452C0924BDEDB5B7 +A1EA5E9F2E6B5FE2C35CDD7E9938BDC233AFD2577635C78CA070A7C014DD2A1B +152959EB0B68A8061667999255A4C840557802182EDD9D44C81A55F232881651 +E11AC24B4C48A47C78F1DD0A91AE8D50C7C390D2D1BED69A4F3543BD636B0EB8 +2AF367E0855664B9FC26F5788B6A1F0A81D69E25CB59D02A77CC404BB8C5EC2B +D91C78953CBF59C96F2F9B63253F70F66B10EC331BD6AA8A17D0917C0436456B +F9A9AC7183BB7CEA3B22E6669C22DD81D64B6A4DA7FE21409BFBD6C0E9603C65 +752DA7F2116F023362C355B4BA1313B1275D5B26996B4446A287F66AF1C71678 +1C84192D64B5199011D8AEE0EF2D73823E2F5780C7C842F1DE0ADFF72BC77C1B +9AE1515F5A52E9E450B7502611D8B181FEF0585827C82E8D70D65B3BE19E77AD +786AFE3C80BB7D4E8418FFA82F878BB6EE085D99FACD2FEECA7F59AD5212C7F6 +4596CF189027D00FB42E43119FF13C891C2710E1972527DB3456E5B6091832B4 +5A39656398FC64670E548AC388E7481D4B61BEBB504DE99C5A91419BA68B09B0 +14AD03AC3B8097A8E2EF1970C6AECC352147D125727111BAD22F2D2FF350FDCB +1D0A241598B807812A84A28943E87C9BA9EE670A64BC563CB630B83AD1FA9B03 +AD1255BAE8F914DA664A83A23D3804319BD7868E1D32E83BF0C6BA49FB02005D +1072D94B9EA3D9A7172B60A3F5670E0C2BA451807B025FBA71BE4C033B57087F +4A0B49B8B473A295BAA89B1FFE8EBD259E3D69007708EEE6DF6DBECDDFE4976F +461731E40B3C48B4C0129C6C1D099A5A8EC6D5EF3675DC3DE602DDEF7DB32EE3 +BBBEB8D00905A79CF559D513E542C5A9A98167DA642B2452788CBB3444556413 +3FE494EB77699D418C0CB39EB60C7751E0C042EDD0A5A429B54E4C616E87F2C3 +0AAB4BD5BAA0A55CE60E56CF8DE95C7A0F1EE9F9ED735D3640CD2AB17CAFAC82 +718F770FAF6EB69FB58B85C7D2043E64F24E9E8FE489F6F0ED133435624411C9 +C6C3196D486C59D7DBE5BACB9A2EAFF98A173C95293E167F0797D9E7BDD0BCB3 +E32ECF61EFA4A40E8B21FCDE4F0864EDCF4F7EDF96D2FDFB67CEA5F9F57471F5 +1A5414FF786F7C286B15DA56A129016255B54D6233CFAD9D06D334860FB794D9 +2F50A02A7D808859F730C3D8F927B9E5138C1B88800771CAABA0C0548C4D2D9D +4C8CC7BD3E3F2E4635264A3BA41ED8C952E7FD0391F2004D944C3373F853516C +6BE5888F7BD1FE37E14CA540BAB4A7BDC901E06D54AA8C1B077B5BA6EEBC8180 +99C9B430C4FE073D59C2C4216EFDF97C7A96A50A72BA8DBE28108C787F42E1D5 +2AFEF03FEFBE10BCA0BB53D8072E1B5B5CED5E3BEB1FC0ADD6A2A53ADB733DE5 +60119B6442AC2208F9BD5AC293783F6251F5849A78ACB6155A90831D5D726488 +0391EE6873DB55BBBE0E1594C712AD0382343C289AE4E7E768481328BCFFA1FA +2687F54D20462936B4DB38C58EE300 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -4835,317 +4822,309 @@ 0E73843FC6619DE017C8473A6D1B2BE5142DEBA285B98FA1CC5E64D2ADB981E6 472971848451A245DDF6AA3B8225E9AC8E4630B0FF32D679EC27ACAD85C6394E A6F71023B660EE883D8B676837E9EBA4E42BA8F365433A900F1DC3A9F0E88A26 -30F7B5CE2041568C18D8F66D36C31B003C916EC1494C3FCACCADBDCCE2286BA6 -E45CAF7F45495C98D56FFB74D457DE124DB3721D2D086ACD758AD2A5F7A11467 -607911B26E5074E389380974E14954483E10B344D1184CBAC835E251249D8472 -E56A5FAB84BB6E4AEA6E370D6EF65CCD99C7552A00BD905BF325286F59D91E16 -608B8DB964F8A15E5AAA077949DF2273D8594DA00F942F5C04D66CB835CEC7A5 -001FFA2B340F0A2C53F9BB8B9DF315DEAD2D65214D02B27A3EB50150E4DF8029 -6959F4815FCB94FE9903B962B7E2E64AD2659E565C3028116259F1B279332A80 -B9B603FCC72240F361520CA01B642CEECEDA81983F59A7C58A0AF5C34B2D4A89 -B2B1C0D50A9A7FBC7857A517BD0D17FC6378A9DFE7EE7648D34BBBB9FF3AF380 -BB86998ADA77904F47B12B7FA7274FFFBF5636748D9777F5321F7CC6A6EA325E -CBC26BA85505179B22BA52F653A22B33581BEF42FF9B8C6F2A986A51873773AE -CC8F233BC656950F662D3004F10400DE96E81A899E634F8B490545EF785C1BB2 -220C687AF21917BE3145896AE6E2DE04530185263D22B547AFD7480CA137DED7 -B0E9DFF6C74661BFA0DE969DD3F188E44BB0F1455E202671AD0517FFF61613DF -B10513605E32D291468C4F2F37CF72C248BED2AC62CF1831B23BDDF2C69A786E -F06ECEA768C9A0CFB947E64E0425713DC8DBAF8DF86009D130C240E5F1B2822A -3CA4E79E82E7080C9C3B09CBC305D8E8EC073A2A4D4907073260F2AC84998A1D -6AF8E3A111A85FB6CC6959277D2EA48A0F9807B4B70DCF41235EC93EB87AA06E -03AE0D2EF1AF8F136A83156E6061A0115D648C85B54D4AE40374B16C5D23F49F -C4BADD2EE224240344CEF86A6513AA16F7E04A669C1399E7DB30FD69D1AE370D -7B28B8557CAA115BD06E809433627A20B068BB012B5FFD813CB8DF867F100E08 -E3C60C7BA43D6BCF38FD3520A7B3D05DCA25B9EF2B4ACE151EF0B96B48DD950C -F4C45B489A4AE3FBFBDD10958A4CB5F73B055C10CB7821123111F7D034A9784B -257F55DB8E76392CA916D39A1A037103DD02EAA48DF8F4238227EBA5336AA8E6 -3B70DE766E9A6E0AA4FD3B5794DD7BF09693B133755A404EF01B370A95419D95 -97C7587DA5DC29F0F8441FC93E2DE1AC5CD8D54186BAED0994184EA4278A6251 -EB21E269974929624EA910F865DFD7D114A611C2B070B0D0605D1E8286E44073 -4F51284E14DA2DBB189CC57DD69ADD20E706D2439ADBCD449C93F19C64750ED4 -02A916899791800DDF1D00FBCC7DADCBC7417239C480BDC97DB59EE76D8BB0F2 -073CDAEBA79768A07C42D787B9909D0B796DDEBB3615075C88B6C26A1CA8464E -2F340CD4913746E31311650BBDB97F47A78B448230B7D3392FD4ECBDEBEBF50A -25DDA7F6296F6F4337F8906B4ECAA228ABFFD00D968917720AF19AF3B7911938 -439179E133EC3558CB62B1D7C88DBC5503571E8421F11236FE80BCEF24DC6CFE -CCFAA1EE0A083DF522D25450A9B5CCA1A06978FFF2905DB8A6412B6ADF703A0C -07255D2DF266AE99DFB2D4FA982F0E750FA23E68B499155BB21B42499DC57FBF -2FBDFBADD46161B88CAAB7CF10C48D8D51E64506152C5010A0F7E1753DE06BCC -584A6BF03F40AA619B40E7BE147F81F028E0EA0E9B10DC5FBEC837531BD0FE78 -6ABB0FE816BAAC8E588BA48FFEA3F82E9F4756A34E3AC6F9693824EB34C34702 -15DADA9C716912007A48B01E5AF498B72B16BEF63C28933002DDAA73F6EC8C55 -60330A02438F98AB623CD72CE486C77FCA8D9CF11CC1F9BFFF049851E1057B1B -E57536FF886AFCD18530EE6B5530CCE7F35E0D830B803C1C8FDC000FC01E93D0 -31B4A2F60995D17F90502D4A1434653BE263768CEB74E91010E3EA6DFB25D586 -BC1F544B5B3BEFC75E49125C5093E90099534B462291DAA885702345F4CB8F38 -67DA660733FADFA94922E2A6F2A765097DDD2B10132008FD9A615FA7055D8F99 -784CEB7C8BB7264A425BDEDB275240088FE443C4D4729B6845759810582EF22F -CFDF9A52D7BA190904B1BC0D2B6992D001EC5DB0625BE7B4AEEF5415D29834AD -11BE3F501677F5FF206A22E5963CE866AA0AB254247C5CD93BB9953B375AE9B7 -C40DA320E7AA7F5BD8170A44C96A5D453E6C9663245CB883111EB42E9B944FF0 -8FC4FE7CD12F439E6B8ADCF34C7CABA07C42BCA2624D5F0A10CD4A67AA95F9EB -956E03B07CE063A914CCA11560F63CB3B435A61F5916C48ECB83445749D423B5 -CF5756FCFF1AFAF057C6666F8142A689FA0E5ED33766D4CD72CB5B8DE9FA5165 -00B9BC2C8A9F6B0AC02417C980A235F1B453CBD2E0B0C5235A8D68AFC13E676B -FB631B11ECF1E95C31F7558B86E56DC1CAA5EDEF2176E994A1C5D5EF0EF76F00 -44C741112FFCA21A3A2F302310F8011BBC42EDFE6EC4EBB565679F9ED7C97F9D -E02328AD9D93D0A802C730DC77D21773686C225FA620CD328B1AB6863A068BA7 -3D858C2AF2DAFE1DA0A9EC70E1161C74B200FC40826C7EEE2230F36385809368 -2920EA08396787EB85B446927CB5DCA46AF91F49915061F84A8D5762026C9C22 -FC6D5D3A1ED8174D551A840AC478B24FDF0EA7B94E526E0309C3A6295D7655D5 -D1590E95687F5FE1244A1F3050E4C3E5B74697555DB6ADC15AA485776A5C1096 -6B304EFA26FBF2CE65BEC8B485A632057E53C3126F66F6B9ED155638850B81C1 -6E19E4148A7FBD7AE5DDB2CEB3B9CA7C3D641796CC4B822BA46A9C8C3BDD7743 -DCDACC408A38978C1E6F9037459C406E9EEADBC2A85E6E97F0CCF314D6161C07 -C2A22382342CD6DEF2624730BF1865932DECD7C968F3E0DEF3CDE268B1BED6CF -4BCEF3BF53645F4C08DAE558D97070C42E8B5CE0389B7E8D9486E4F51274FCDB -257CE4A58CA065D6264F42B3C8353A68F6170CA5E73EAB51E26C5261B3A9FD77 -8B8D58C4D6434FD187E3A1097B74F902C6C4D42BF31CD2F41F6D7CC20E5716F1 -6DC66EE3E2F3CA42C681F724B6C3555330FDBD3AABCF8B0BACB4FE3402352C84 -1E5DEAD888FAC0C7BBDD5FB8AF006E27C4C9A3860F464592F49D9C5A64F62DA2 -F13A975804341A43D975C787397E9BD4D570AC60ABCECD790574027D7C081BB8 -DF95934DC5A7A899CB06EA3082AF49629CA107240FDA1D3BF04542B00B7E494E -07CD20E05BC2ECE0F7DA1C54CFC8D6CC5BFCFE28635D7687EE1F38D6CF46D1A6 -A2E31A2C77A85765C3B8AE36B9311A39691C66C3278B7605EFE9FFB1891AB590 -EF57640F6F14C9ACC50CF37AE941C6BD7CFFC9626A6F4B5ADA5C02F0427F2887 -C207D3E41B28449BC9A1F7FEB38C356C23E62F5D5DCDF8296D4437221C6F115E -93281D18FA17831BA1996547308F5F6C4E84EFDB0D8C973EB519BD6EE6AF5B6E -715F8E6F8DB080BD02DD606DFEE35C5FFAA253E3E4049005939F63DE3A34671C -8B4B7B195BA38E153C19FDB8325E33C346D7B7722CE7568BEE84000EBA930C95 -9121C5D571376EF9167735C0D0AA640946323800C08A8D63A3175E03A40BDAA4 -4CBB5E6E63E3CB77C8C12AC1D60A2174FCBCB4D2CB0EC740FBC89C3FC88BC2E1 -D4F529E606919DC6FFAAD5800ECB99A0EBCD8D44299A81AB7CEA0D50459BD06F -9ECCB5633CC78D6A329F3A0A8E6DB8EF36B509FC7552B7674170599CDBC5955A -85851C8828651063AC636D47C182D5C9EB9FA0B3ED23A92C79F1ACC8AE2DF5CD -D5E1E625C9863F2BF3E996703C168A830E12D4BC6A2DF24CCA7BCE1F5F800339 -8287435B98A93F93163A165C05BFE8A8379A5E147D1C1DD073A889293100EC1D -D17EAAE27FCBA9068C0281560DC9026C242B6044DCD39CD573197AAC2C0B1D42 -503B532AE14F1BDA462008C744E7E5B7909A15D778A24AAA69C41A4D5FC428E3 -12A82B3762A74C12AB1FB6AF5267F5C668557FF825699B9028A23EECAFE2413D -D9FE58C77FE45FD356CCCD1AD4F73CABE389F0573A13BA54C87FBBEDED86F3BB -E8AF9D0AF6A54BA8AF04D105BFE8ED4A5A7B30B2CAB2DA0C4A743BA465E58E9A -08D51B01A906607D6404F86A46604A63F0B18B35F3320FF041E622D6C6F9BCD0 -95D5172131FECA3E3C974DDAE6FF323751533AC06C3143FF3E4C6F423ED0D82A -2CF46E879424AF93B772CDF2515111BB22115EDC6F108D4D581162DFDFF74EA4 -7933133B1C93FCEF9F61F5328E25D68A9CA73B09B36C1AC73ACDFC98BB2129B7 -2E6C06134B61E4C84FC54C893CEE3A6C7CD420671EA62A908F038C10C85E9768 -96CB7C51784006C6D47A95FD5B396736AE7BBD7CB5A2BD6D734B61F3D2658C50 -6DCF091F5DCED860E061CF99732A40B7DB3E4456E03707A842646C7F6EA123ED -81372C587EF6B0A581FBD05B6CD2AB489DD69ACE9C4BA918B80360DFE954C8AA -FCD82B27F454BE0631BD9EB114921CC6A667A58EF3C2B213ADC0416BFCCECE99 -D0F119D6D7625E5654832AAD2F503B04B466078EC9B9E24BBF41DDCEF8168D61 -B087D6B9125031E3BEF83C9773F3DDEE18580C153C1CA2E77A6E3290AB3284D4 -BD44D79E5E9877F71A1F493BCFAD6800EFA5191C533471B96D0B79E3864113B2 -72FA1C1BA190311D86997DE6A32454152F2E48EF40876BB3E4A0D884C7369457 -1563665D2C8928DBD34EF5FBE6D8349D3D899B93A032EB93763E065396EFAC8D -94A351B8BA3B9295C7B2340C8193D498F308ADC3F596F49FE8B9D83354EF96D7 -A2938A0702ED31D16B1BB1836A975C51E4B2E09C32D625B9CFB9A68804828C9C -2E8A480B4CF6FDFC83949D6AFD8C38A1B112ABC7A74EA9616788A135DFE5DB65 -5FA50DACA8395E06E48F7AB5ABD935DE86A387090B7764A71FAF2D77646BB6E2 -E0BA295EC030F17C40F2FED2F1205B8CCC4D015FF9B440069FC9529D7163F5AA -F818FF5B9EFDAD04F31B94790797BDAFFE7B9873923F751D12BDA6C1DA014FAD -8F227C9A4CC7D7C41B465109E9465973EB10847E8EC16157195FD46CB796E7BD -2F0DA4CFD778C9DCA1163EC957D2CEF1E075776318CFA09650A45F02FCFAE2D9 -92CD4D93038A4CA0EEFDBB7EE40843A7BC08A5534386110DE2B312512B78DA87 -C036D9A432F4545FE1097A34EA9D08C84F7338E293F486C8AB95787280D7B015 -E48DC95E4CB40A05F3DB3959820E53FAEB912B926CD0F4A49BEE0EFAC00E7DF8 -56FB46C708398E41953BFA999DA55DF8FBCFBA61F5C86707B28259862ED1B147 -825297052C2189342A965413E29363A301D477BB4B34CB4859CA90373DB6B1E8 -D945F257A43ABBCD0CD2BD75D131C8B54CF64E637D21EFB5BC15AAD7C6B3D441 -D62747531F90F26805C2E23CA7086E926356E79403654BA0D609DF096DDA8C47 -62CFE6BC4DDFBDB60C7D9F107D080DCF90857C95F234E4137A72A048DB47C68D -15F52CD3AB9B24418E3FB079DEC12260C872285E0D643F4C56D82548B1B9AB42 -8E3D27E3D80DAD0369FCE391D1E9C4CE098F9AEBBE88F68A3BBF90AC38BF0201 -41607E993420277879A7C10E48FB4E9EAF516C086D2DA671D9082D425EBFBD29 -BCF7742BE244D3390BDF37271174BA03DA10607880738107AA2158C3CD166AE7 -6E9CD8C1FEEF9C51CF5033C0FA48D99621AF9696D9C5E36D367D92D70C98546B -5C0506D424DC573FE06B6BB6B7F59C23B4DC23C551004309B3D69E30334E29A0 -CC9F4D2C25B419B1F8EE19BE3E84E4524163EBCC8E555092A5049B65CD6C2DF2 -35E9489C6A4E62948A944FF4C14F3A6E5DA2C674DA9E10AC83D15047A17D1F2B -047FBFFB422A14364061BC9C62AC98AA6542AAFBB568B5A292FB2B6F76B484FE -4828001E2D53D613723263A7E611B0115ECD9110C999B9096FC472713F9C3E54 -022C6CAA9FD63B859020C2A0AE9FA3269ADAB545923865E73FCEC48F1F0915E3 -B6AD5225E84034D0A50EBC0A810E38F6E862E293ED3554452E3B8B21B7903315 -0B90D59EAEEAC927CA1D3969D0A6F7B6BA4FE08F509503B190E2976C31B95BE4 -29179CA422DBC233EC123F2CAEFA9C8ED022BA82BCC88BF9F8BEC4F695272F03 -2EBE1ED63BFD284D6C3D0192CD38F46AD2FE73E5334E358324CCF39227B706BF -55C7F1F6B7E5A4C697A0B60526F40D89ED71343EBB210C872FF229AF3F65BA7F -0D3922674F9013ED2ED36C83E620A4BC2B1035AE45F91C1BCA158DCEBF73354B -946186A437F3365584474A187F60334B86C4A0D73F088D00430514BF5F7B810A -96B217BBA948DC9E26062879DF5AF760A83AB78C457D28376DA3E476934C164E -F95C3B05A3004C683CA8340B5682B733B70D8A09A98E0BA101BCA84B65028306 -1F4CB0754E09D77BD62F4EDD91DA927BD8BAE78E503FB35614B79BBD60C27799 -E1B1A1A1569ACD0EC6B63FE68EF6640D864DDF5CC5CA24A59C3CE9C51A2BEAF7 -A68F49AA2B918EA0A56051CC7E5430FE6918B73D8563EF2845301A7C3A91D30F -2795E47C598A4F9B4F883F17B9ADC700778319F2846AE2170BA61FD1734F2CBE -D2E679D3B108C85E2216001675808F9E36F108194C12EA119518A84A3157ACA8 -D0C63957B6BA86BB452E6490E07F33F8A55EC8CDFAD48C186C446FE3BE7C2091 -C6179FDE1A2D3994190DD50BCE056D0C8510D46E4D9A7FFA5EE249CF53A1708A -426D023395B4ACC1663A51CB0F10F83A5617F3F9E97749881F096B9CE9F85F71 -25D26D9649C945EE036A7EF1F117FDBABE0A72111C0A765115F77C858F61F86B -31C05877E37286DBB0CB3CF24FC4F574036E359423FB84A25C99B5A0B3C09681 -D198EB2A23C5AB87939B286C5370E9BD57624D5CB34D3B36C453F9F58DD4E391 -27F40EA797DA4FF085DA6980C98AE30775CEC053DF115E0F2361D827F7825FE7 -9A2AEEF90C1CE1B93CE039C6DEB6B8B24FAFA16ADB41ADD5FA2C0F0F2B74372B -6DF07A523E497A60383921E6F6F275F62E33A2D0BB404F0B6A2AF75AAF82DB18 -DCF34B2171D750DB81C430172C9EB8EFE9F75670043B9A07A28D55B91FBDEF72 -256DCB1F49183952937C84EBCC24C08A9B603B077C5918F002AE8D304E3A7AFD -F3EA737BF4C72CC4D4A34516DC872CE250A439A6A5D6F8E851CE3050F72DCFC3 -567C1D32AEF6DE2628738FA8FD6BF4978308AB26F2CE4F990BA5D14AD00CF674 -8101372A92CEB20CA0494EE5DF611362701423DAFCB945433434CBC90A41FC51 -EA33A932F0446186EFCAB4D48D481C8D048F2F37AFA12AAE5E3B944F76EA36F8 -47C7C7F48A26B37A2ECDB67D567BCCDB755F59A2C96C8AA7607C54C2C160955B -8705896A823C504BB3C6B5E7B0E58F325DC6CE3BDEB9384F3188B47434603025 -6266F9C56E133B56D07CB68726A93F6BBB1D07951C30588BEF16775804B202B1 -0DC3AC4749CE69D58EF3CEA36DF1C9F66FFED5B09F5FD3697208EDC293AD69C8 -4E452000140BCAB596C7CFFEC968DDBD2CC64B1317247C226A19420831CADE1E -1BE43E48D2D73729C4FE59EB107F4937C57797131A9037D7FC678E5585BEBC9F -CCBF1D4A33D410200A262D20F32A7E28F9336E4A685F68A8FE11594ABC1DCE2E -12B23FFCA7029463D880527E987A6ECF3487284D3F6E7159D2BD7059588DD82B -2A558F8092E7F4BEEB61A1E654142404148DBC7F84B161352D0F5811CDD81663 -AA2F0FD6011D615129B90A36FAEEC6C364CB2FC5D2955FB23F605CD2C0B435B6 -38726A0224DA636B2EDA30D68CCA1DA287C47DEE18FA8E452DC54852FA94920D -96FEB275A90893C5025B1B15D43E26CB0C66C11CB05D31D7458F1FB7B23E304A -AE7BA7A63A263806521E36C7162A86CD4FF5CE29A6BA57B7F079649A5AB8C130 -AD97AC25BC4CB34AD8EAA334E2DE4F5F8ED45319AE8BDA6C45A6DA778962627E -CB39F53A5618D10297DA309ACDF35C26273FE74D67054A29CE988F9283BF99E9 -281981CC58DFDA28588B1AC32E50F2B3D7C70C64B54E46D96A57CD83850DCBED -3DD38D156CB4FD36249B59204C40D7098F6342AA88A551D73A704C5A210364A1 -10A6C3B8E9B99C1BB67BF0B889FBD98CDA59F5D8E98D4E9F15B890912CE16EA6 -F03BF7B841366EA51D7C5FD3305A5972AF179D4F70292FE2FE791BC84B867489 -4F63FCFE4DA17F11DA69B0143EFD69DBE9878B2481693FAECE9AECA0D542FBBA -435E647904E7D8A3DE2294B9A804DB77F1947322A0E316789AB07A238983D3ED -DC20085A144D1BD7726A140D7E16DF4EFEAD38BBC6C05ABF2D42D1CAEA5DE73B -690DA7E8719CBB3715D4FA742705647551F9ED9C4B5BFE8D44CCC26C1D52CEF4 -04831FAA43D57C1C2E5AC79947586A3A8CB6AC8012C365A67A3727C2C6F9094F -7DF31CAE501A5533B9293C9073A505CC3D4B4644EA4316D6A279A10D1D21CBB0 -8020D26091DC5C4D5933CFC028FCF3493C29A43C19A013188130943D20021E46 -41F4EC20EA6EE9FAAD07BDC73799EF4AEEE0349A0602589852887F03C3BCE7C9 -71C12F745EB11468200DCCF637ED1702803CF00F81233E5B72988A81EB092538 -6AE1CDD83A2C7CD5BAF38B282AF66AB85EFF43D2224BBB7C3B06D6B650FC0039 -C2EC6F974486A67D7DC343AF9EE7F61429E032F8E8B8915FEF476434A908B9EA -6923B5794E0B370716AC7C83913ABB564A5FFF198FB09C9966A4D400865F7319 -EF8392179E55128C8F57FBC9C00F51B619B4DF27CEF17942F0CD3AE32B23E004 -5F5BFCDE70391DDF4AA0C6425FAE8AB25992A9272C39227F5C7C38822FA25141 -CA6C5925573027293E819BBD152B271937FF406DF9B059E627128C97D011E5D6 -177257AFDAFB6B57D01D48FDCE6CB257C02D3E6C7B99E6692C72F9BA0387260D -82A9181B0935B56A6181362CEA2474B4254A818A1B886E7DCC61DF376A82F2A9 -AC5F83048A9165D439D1400AC54116F55E5D798D140CF4C1D52E07CE060ED2C4 -5C9E3AB5D0F5D5DCA4BFFB778A00BACC7C73AB0B11E0FB2E0087AB724F9CD093 -DBB9D8D9B979FEA5776458DCADE196AEA4E5C318CA0D336B942C8ABAB8956B60 -5DE101DC31E0146D6F5AD7CDC696B62192053FB1B8285F9BD76AD162FBE06C65 -F0E47FCABE266446CE25771AC43FFD2F4CBC5A5CB4E834B46A06408CF30D8811 -A578934E4CA43ED3B2AAC1F7966A3566B2E0219914DE9DF88220D9815319ED48 -185431739BC49B786C29E1E428E8CDEA09A04628F1C49F9515FBC4CD0860F472 -8763EF77428D6E7CAF75E5B4D153217B1BF36AC672AC5D8AA661F85CE8CE27BB -47BB8659741FD6949971B832661FB5715A44635A33C3A895EC5E77DD46704A4D -443FE9264D14552EC8109EF0710E1C06434409435F033311F5016A48DD3AAA3A -D6357F093BDC20D10C3D1CE9930D2910D722B407318992DF448B019A8B8F207A -5F8AA561D5BF5DBE154538B0D374626CDBB2CB3139A89DEDFE71EA3671235782 -0268D9CB5F66911277BD0DB8DF5EB456CEC595CE6111596432573640822006E3 -7F4EFD3865BE92CEF9096B56B57A9C6B138A2271CBD15E10F49F2253191F1980 -39B2906607883683ED7F97B1224C7E5AA3DA3883F1213FD2002818FF284E8F5F -A73D6E5700324C298257F8499E4314D24A08EC83B6556A54368F58E85B9D5DF4 -728B8BF3CB93A1B034B807F3D87CFC6F5820EEE2541893AEDDB46CE16EF78C71 -0563BCCDCA4C6E85EA91A7C3203916959795F5D9C790DEB147A928F658E61930 -CCB30FCE39606AE0E074D2706586C0870950F13CBE78DD08DB0EED57661E19AD -77CCD6EBDF388E6F5A5A8D84FB3CAA07196A9BAF6B12BF06724FDF63206D45A0 -00F4E00F380AF1040BB818BAF7C9E23F120747F9E699EA88FBDA8C14D93CB41F -B449980AE11040E4A33E25557085945F6885208E52B14166BEE7B7A456E60466 -4CAC77FF7C5D2F7DB1D639CBD217892A714E89B77FD9D5B62031FB88EB7867C2 -FE49088991B6BD46BC81D57BE6BB3A1D5A3BE628F5E77FA31CF0417F99E32134 -EFFAABCA668C1FCA654DF00B7BA502052C05A5259B236E2E26DCFB7CA655626A -EC28FA7DC3B70A2A7DD52623A5EB9D5BF3B8BC325B6D2A3137348C64BD6EDEA8 -EE33A80A94346AEEB969DF4F9801A019D5C8B2195AC7F3ECEF88C5A348555E76 -5F4C998F95D9EB2E6E81EED8EBC702675802164D30F4845BA14422DF2705D9C3 -054BE9A38D29972A502C3A10BE2E361ECDE9BD6719BE33FE947F50DBC541C197 -E6F71A8CA4442D22AD15AD06436E44516FB22CF663CD1512CDD32E38D5840265 -03E42AC6EE987DEA266179F988B055963E88D7AE13BC7287D99ACB0A6A04881C -840A571D48EE85663D770774AF62AA087204EF807DED1DA429E6DB692F322F06 -21586F4C19A23FF4CE7119DD92166372063E5AF99E007BAC63E7E5956175B799 -3BF79923B6A2EB4D276FFD15648E5B0E38306B58BD4F05FF880D4DA11E09398F -D9AD6A99B2571B1D75DE74872298A7B4C5E78EFC017575C4AC8CB3357A09F85A -2A961AF5C04FA84CD4202D520B4501FF1A0DDEF8A5FC6E8B5F18D840D679826B -16FE3023A5BDDEBB727B205EDF858677075C47C75B55D4CEB2F0911AD1800230 -AB5903F035F3DD1316F1B807143A3A15F2CA94B940FE83EE0BA59A05737B3A3C -4D95233B004352F6E44E1DAD3B9DB3B4FDDE31E5B053C026BCB6CDE6FE734B42 -40AD1EEE359D067D8B34488FD58E97C3F31D94BCBD170684E1528D6DA9A7AAEB -1F231E09C44E5B1DE3D346C55F40A6FD2D8A9E88234AF661D428BA755B3652E6 -46437EB2E8B06A4299D4A40D43291A9EB5C0F0BE7F420A2BF550DE52CEFBD26D -14F8CE66A35D4AE4C6864A4AD25DA25CBD95D3D109355041450AEE3D304994D8 -7D2BBA3FFB121EDBF7A7C98A7C97828810251482D17FB9DCB293FAA4D9FEAF4C -FD1556ECF67ADAECB6A031F39E13EA3D4D38C232E952A108D328644FB9E0FBFF -6D9C6BF3985898C70932F8357D863EB999D53FAE7917F09978CE362AA79EF6B6 -2E441439598A4710486F7222521E8597EEDEC4B4B9775F71A1AF1FDFCE929DA1 -01B16BEEF173011A11ECB41AF2C0CD539593EE3F54995B0DBDCA662918465E2C -839194B928E0EBDEF7E2628689A73077F12CF549F815766504F7A2E327B1F5A5 -AEE4CA5DFF79483A7C173477D6176E27ACF46379E5535380DBA1BC3364D65E56 -6D954D01637A33322B79F6397478CFCC4BC1E1E7FEAC962C6C420063C888A049 -9771D77E1CDC23E20C04A1D96A73319F72B4FA0FA4BC5F59C8931FE9E1F7AD03 -A2C1F2084D44D3843CC4659D6FB2F9A9B07E159E09425C07F60A3054D5BFF7F4 -0F6579537AD162711474DB91B18FB1EB5BD05F4955BED189EBC6115F9B862F70 -38A182AEA2E9CE958BEDAB0601E3C3792991B3DD0D56865E40582D9F90ADDD93 -D6199F032022CFF0537BBE0737C513EFCAE87E1E7C6527333938853E36C99E3D -433C56476349971FC52B721953AD8346A7512694516BDC783107A5779C850AB8 -D41D48A575C47C5CE4DDD9A919156FC165C0A7781FCDC25B3798034776BA7F83 -6566D4B83680E603F246779E0EE30222D6588D3F01611B62B6AF132F2C894A4B -3B3D39E023674598E57C50F90072948DF38092CE424B16F24503423059F62C7E -08860996330B7B87748A24F54EFE5152CDAE3157CF00699E90E5339B4904C0FC -394F5C7D0B1974E16C02C72E7D4526F5D438A079A5DA4104947AEBAB4581A4DE -793C18B433A358B2E814AE13641091D47C8EF6582C378980B5287D9B6A2240B1 -9DFB1C43746E07355648E25A51585ABF92D1039CE0E6B40D3B0FFEBA87D672D9 -72CFE343F6871D15D68F0B00DCBDB253CAF87983AD748C344632DB499CAFCA1E -01DD93E9A59153C4BE4CA7803D7D997513FB5549C2077F75596723813E7A25C9 -EF50358D40AC3692FC255487C41D33FAA898A6A8714144913C4DA85F1FCEC613 -3925CE993049360AD6B0A5B3AECC447601033775A3146F5CB5630BEDE858BA5E -B63A34037E42FCF7D85589EDB308D4FE16265C80632101D9EA7182F82729226A -5B2DF3DD2C88CA07FB1350EBE856528A84342BA6657B6A922E5D54C2D2050816 -95FB7EE8CEE2E0ADAA33D7DC0FC0F6E31520F80F1509D264AFBFE990AFD50596 -B6D7027EBD03B51FBD56FFE1B946E6851BD8F83E848640B7C653A5D1F3607D4C -DCEDDFF237BE6D20F46CC5F025A5A92E19D07929FDC2537F37E5E777484D7F88 -A70E95C88281FCB153941466569545741433848D123B1A1D113CE841B1E8132B -91C6E9E1538BE21F227402156EA2D7FAE73B7F15793009F9B7075C3D9D57872E -51E01DF817C3EABBBEC3CF1F6C99B83472530E7745A9486EE5DBA5439C47291E -D37E851A46A65C22654ACA3DBA896097138830DA85296554DF3C9E5C483104DA -0305240ECD588C8DCF64EC0BBD9FF45C4D44B3DDF5C54AE729DD261606F937FE -744957660A342831C71C93FA6DD9C452129F96F9920E51E886E994DD807B2447 -0A85971D6912F7EB9D92E98DA205A318925E589440BB6BD1E1CC9425C59A87CA -D284CF06A5256DD4DC0A12D80308BB153E18749CB25840F9FA151C488210040C -833FB5D1C3B71E203B7265AEF299929457B7726ED38D51F5010E190C7BA42B4E -B40049C83B543FBC3CD9422F392EA94C9BADB119C68E4415298CF91C504AB855 -FCEF9DA17B7B880E49F7F286E04AF3E1944E6644607761F9F120AFB106B0129B -211ED5414BC934F830953D2E76FECA4F39EFC0F3FCDFF01D63C1CCE01254BE80 -B7499E7A75505792A1BC490EE15E701DDFACAE3E45300058F106C069E9367163 -1B34E662B96FD845519C3950B3B6BA73FCCA0E8C9B1ACF959BB3DCFF5B241D77 -5FBA78A36D0116B776B98B1FD771E35D628D0761776C1C3DB351FA42B95D7D3B -383DA5A7F83F734060F46C7568B254ADD97A00CC6D264B94B2A9DD8882B96C6A -A8951687FAD123A2FCDA9FFB177FE228A99643158821C968B3383C318185425B -2288D62CB2F95FC3BE715744B35CA5C28801647F9ADF3C4778990E89BE62E6EC -AB4F6CEDE1408C4160360F7C3CF3BA4F650B7BCB651F3839A833AFD0B3E3C273 -1810912F1D15655175FCD99ACC7E6BC440A13106281ECE127F33A61AEE985D1D -E7F250E945078991A4698E817EF32CD91ED61E58ABD1338EA74E4F19171A8B8F -F710D6275C5E76203305261E39665142FF454A86BEE9E60FF4E56DD349E11651 -DCCD645334923E3732BD1BDE79E6936C7B9809C1C7CDB95B114606A8B1DA28A4 -A840A3781896C8310CBFC121377BCF9AA8FC08AAD6C2C507E783CB4833E4D230 -A251F504C4F0C98EAD24B2C82B07C70E3A54D6972C2045FC019551CCF6444E09 -06240A685BB9D35A0C6295AAE7AE91E57E63B0991FA5D863810D29C4EF442579 -34649A7F223F22A3D18F767928F29769896A16F152926E6AC6D830B5956968AA -D0D146D93CCEE3A28B74453645B20D49D7342488FD189BAA579BA8BC8E8072CF -BA358CB575BBB34A2881993D19271EA6EE078CFA9E0B5A51657922FA9453E8D7 -A85DF60249EEC6792ACBEB66448B27A14FAFE99C8F0C74CE8F62B0A9FA92F129 -CDB440523467FD970E1FB88D05604F2155502C07E61E80BE8E6EDC19A16990CA -19591E691A52A4DE99A367BC78DF946D12A12654571BA4C58BBD28EB8CEDBF7D -500C06AC78390252B03611E3B36A991EBE9A0ADB7272358F4DDF9F4E239ABE7A -8F1EB40A95218A8316CE7EAEDD2DA0F0DB15050AF9C12B2A09E46D157ED34FB9 -40379A578219145C9F32FA827D0CFF41D34FDD7758D56CC3E86D6031BF52457E -4A86601D1BC619BACBBEE8014154B43DE797046318CD4E6DD26A2952453BA6E2 -62D25B7AFA5CB88E54FE01C6D836B4F19B9CC8325D9A15E0911CD51132299CEB -ACE626ACD2A3B8AEE47E1E77F4CAD9DA6D3D03E695CB11512DCD9419C3AD981E -04128EF99BD2AB4B4CBA8A15C2E87CACF3F98BE473549C9ABDBF2DC5372594A4 -C612810BAC2FA2FF740285F8FD7AA8FA124A3A626027E37FEC580763F1AB9143 -93E3BEB48E8CBC91A79360A3E6A8372BC374464DFF4940A42817FDDCEA2DC9C8 -31CB6932DB8E79EEB5C08DC1C7D5048C05B1E557B8D23D5EACC6EB20842DB532 -3FC9E81FAB7A6F4AAE325E39088CE91D0D8D +30F5D8CADBB3C1E3238EB07CFA0721C8370278CF356E3C0928DCB2FF192C55FD +32A12B22535E518EED14BD541187436BE7A4BBA4B7AE83DFD043D5E332B6230D +7ED3C4DFA4ADEF53E2EDB4E7A81933F3D283B228572E03197E402CC609FBD0C5 +35D0847A11866EE335A4DE822D635ECD9A93F570E44B0C1A7095B55948645CDC +60223365F28F6722FF4286711B9B82030D3E8D27197C4EA8A9AEE96A85C810E2 +285943B16D382014423567AAFFEC1352BD2528BA782A91B3507FC1C2FF4D1427 +1991C3B2BF005617B983E0A700BD85160F585ED331597F97ABD6DC42C591618D +DA43D86E295E01EC0DB69ADF6143BF3AFC3D215DE8058D8637EBFF12FF179456 +7F12AF1AAEAA6AA52968FF191658FF6122D1D292545B29FA6F13C2813453CC2A +C0B1A401EFC3984688D5B465F9A656D3CDA1AD46F9D5FE8B47A9B4413E16A5F9 +525909350D75DEFCBB79CD437CBCA503E020BE46475BAFCA0AFB35582D1A852A +126BD74F0D44175858FACCAE40F206621F9D6AA40B88EE28C7836A0F7E146C4D +21AB5C7EDD81EDF07DC93C6EF8801DAE81E89BA89CDFF7C21A2A5B9224D61A56 +08923F35B5534244B41B19957B9156165DA724EF728DA571F66CCFE22199086E +796094BC896AFBF60F17FBA74274A175DEE4C9207F85AB02B561905B7EC73D83 +9207A9437AE2DDB64F3C5C3522D6D37BAEE83DC5ACF9BF84FF71A54E582B8413 +D6BDD9F3D03F8661F3F0F13D8BBBE12FF180138A0EF0BBF0A08C58A87AE1249D +BE9A1EC3EDC99E4FFF45868C769765019239D61E14F8A3C26EF6196C6D00A94A +94F48D67D6FBF08939A4CC356CAF859E048EFAE504FA11EA468BDA328AF7BCCF +10A94A4CF9795112E8C29E1FAB3840644BDE801EFA10A01B1E5C224F07DD2E4F +D47F4598FE0B50E4896D19A4D1BFC564C3682A15218F741FABBB2F02DEFF24EF +E5C79690AF3AD090E6D6652D2024E6E5116C444AE62267AC2A0E9D019080B5D8 +A77ECADB84806768E3582687A5CDF468161DF1F1C980C211BB31D5C9274651AC +58B6C65EF2188FBA70EED3DBB02C7D782BAE9333FF3B4FBECD25BD2330755E0D +AD839D7804FE1819604BF7B2BA4214E44199BC59D0FCCF3423AD9F9EA388DDA2 +B6D420B03F0F90FFC1C67D5FE1A6FCA8FCDAB46A69C259348AAF17D3BF2E3A49 +B78A84FA40512194A0EABCDD1DD989586D933BEF65671BA0D7A5E53EC8D7541A +AAD92D32973DC54E26E1D118E19C69103FCB3AB16331DD34F207CDD4DDD21D18 +CFBFCAF733FF0191C15E89C392CF603CA192C3636CC2FC4CCEBFECE2C58A4778 +6E1AB37B147FA5497888F8F2D1B2708EA963BB33315BC4E98B21EE59FD180ADD +B5F0E13C5DAE33D223449A0166E470E0CAF70D36DB46E9A9A43D161D847BB5E5 +CC409021686D2B35E8E7782D7449120B78804840FCF62CA138BED422203C47F9 +E9A82922D43AF49A65FBA83DA191CEC0D55C0FB58AEC9C6A6CF5B9F1FCF7828C +18808134BF588061538219833811FA613A7622321CF141433676DDCD31AA5383 +6478684C3014CB0C64F6784E2EE52B0FF6CAF2EFCF4667BA67073D4BA3D068BF +AF16A56E4405C3302312B5B922BBFE544162DE9C85E425BC65E4606759DC5D82 +9FA33CC3097E38671A74CD2FB1F0082B10D2C4D08D25CAD627A104DD6B2DEA75 +763E040B4B95C7DB5E393BE8E8BA04D1C48177018BB4428DD2D9E02C0754FBC3 +B41DE7DBD134D9BB9FB6A45AE2604ADB6149762CAF0C31666349DE5395549F89 +7F1322EA9F85FFFABA13540A201D5D1B388ED0F6007186C0C33A51C48456FB4C +2E0C67A9E1DC63E8CF1C38F5A72A7421C2DAD617BF7BFCA9BDB4E1B3A5EBE94E +FE1F19F15251C18EC1F8D1BED2FAB67A45C631B1060771248513D17E19BCC0DE +A0E8667919BFCA768E276EAF46362D7D240158D0730AE9880D77A177C7BC9BAF +2CEA33891B7F3BA92F017929CDF3BD1EE395AAAFF863A91C658EA309D6A08B49 +2ED5C19B3D48A921149812F8D9026F41D7EDDB6311D4CBB8CD19A8CA03871894 +714E8EEC51CED69636DA6ABA83A61B2E5BF70699759B9F9423531A53BFD5A709 +2B0B3E516C8332CDA60FD106744B6CABBB7D0F03409E17E56A29B29A700A7094 +1C1956DADC168772FCA15DFA7C99B6275CD3BA0063AEB56312D25621B66369E8 +1F3C8723F26E95A3A865EA36B8DFC05A14F2C3F7B75668D1365EA92DDEF584F4 +1F54B3D0F00FF18A75C2666FB2CCB7D0E2806ABCE1B42BDCAC1CF02E3EFC4BA6 +53E520A3D8C159E29328D54FD8B8772D41A4465845F002A7B402595EE86332C6 +572AEBD536A7CB23F8ED8C028063439C051F8CF2C5A7C8AA64D8A7DFBCC55853 +CA124CB6E308245D32B123000E0A4B9C79E843535363488ED1533CE4E8C5B90B +E4E8C6004889A2ACCB766B2BEA5EA1A5D5D2C4DE5B2B534043FC7DE7136C97E3 +2B1E5FCE252FEC356B897DF022F487A7EB774D74362DA6ACE34BCCC0D3B62FAA +823793A78C29C3A59E6626A196F80860826177D55B423145B187B04CFE1893D3 +9E10BF93CD6AE119F7B990F831F115F2881729726DECAC7FDDE3E4B1C72DE027 +344602F273B05AFAA3E0D8FA5E154B5C3489185811C552499C55FDB646EC019C +A29D7F97566DAE587C43E22A1435AAB60729890E9A9E0B3E8539E69B85DA778A +A9B6E1F80F6ED77762FC9F3F363A48B3849FBB219C868902335712C4ECBA7D15 +C17D2D639C7A42E7FF3BC62CBB15BBB88DF20C4565321BCF1C3356AA003F5B87 +96FC4357C72C4B4AC6F6027067D77F83B2027965462A33A78B85B75A144E756F +C5158213D0A33B2BA083791326F7EECFA2FB75A96472832C6326A4A6B9EBC3CF +CC6D567240ADF197F38999C133EA3E763AB7AFFE62B7DE621CA73BB512C2A2F7 +2EC685585E641B1C48E4A234AA7A86AB718BA098B1D5AD32D1E08C7B6ECDA2CF +30C31B45380C6D7A839C1F6BF07D2C2E1D105CCD63E7382076FCAF9E74D22A0C +84C55EED6D686D72841F0DAE3F3F2CBB298573338649C40FF6B37962CD857EA1 +624E595C0D25C9381466C9B77C49BB891E975222BF128CBF95DC64CAD6B8E0C4 +1B23B4D7E8AA08E180C32B657607FBA90107BC03AC0AE1C97987B15E3B39C325 +412A003D9AA81F827A9E712CEE7E56EE81B842CBF86645A4E4C433A9D703CFC3 +264420F480B7232BBA37DDC6D3F81FB0A24A44EF41620F2A8EBF5D9049961EDF +012F970D465468392F46E7D7C7E867F284473AE46C3E961E1988B560EB89A1CE +B6D7BE56E454FE254F1D63D65502E2BBDF795905AAA6F609624397DD2B370CF8 +994B080C8CEFBCB7DE668AC3E14326709E5C0AD13D19E97C69744AE61B288CED +AC758AD71DEB215D05C0824828AD2CA09F8D47ECE84817CC6F2D6F5179D58E74 +0A0620A4C268682F20F439A2CD8ACFAA91B6EB36260B29BF1998CF69FFD4DC54 +144B5DFA3F111051780488AB80D32A24407D80831C03C9A8862EA2A3C53A615A +D58219359A2015B1A1CE1FDBE333BB3A88B7AC6DC28DC98734011A81DA36D5D5 +E7BCDB7AE4B667B9ABDD850E743A353C7BF71490BF1C45554B016083BEE17E94 +CC4274F1564323CE5275F215F451A2E5F64F0D7CF985F9F17FA0AD39AA854E85 +1BADA7AF3C7330E3A51A92BEACC62C655C37307A1A64C2247935E5CBF91BFFD4 +293D373D803540F84318521BD8300AAB91B810E33612EAE04D8AC51518A2786A +8F9D10829B5598C0EEEE99CFFCA9F5F64A74BD1376524CC55683571840CF9381 +1B33BC46AB0AAA5981186F9D363FA571FAD7321406B1C6B3656A1CD6AD025E80 +10D49F084EC9E1DC73621C088672D0035B88AD08DC69F33ABA13EBB87BF2184B +719C338F9AB92D51ED9E344622607FF80F43DCF709A4DD9EEBAE5B09E6A0CE39 +A3254CC71796672B2DFAC426B1D0A4303CB1F1383BF6AD9C251583811C7A3210 +61F3EC7D5946992DD085882803E1754D2D3AE4882C4CD29603BE6688BC033BD2 +4408DB9F3E3FD127BAB99CA7E99E83A0850F482BBDED0C1D9309F447339D191A +01A7537BF5FD6DFDC26E58DA537F3F4C5456004D9E5B7C6DFD783168139F9B54 +20F88E2914DE1C2E8561B07A9AD94EDF34D5EBF0450FCE640909CA6F3A7B8330 +E93CA7900A74DD12FF9B0A73CDE781353D92EE2BECB4E6ABE388A7C376B0A8C7 +6AACC074A6CF549629D3E36835242196C0D83D6B17C708DCC7980876B8879403 +C98E3496135E1F10175B5EC34838130B47D7B82929F12423F58816B1077B526E +7B631101DFA144971C57372D14CD90EF3DE078B51B14441795B21631F60512A2 +79AE86A05BB762DDBCA83E3443D99EE44B84C7241362DA1C92F97A621219AD1D +765F16FD9F0DEFB1C91C2327824B907E3C0C4536BE8957429FFEFE8E27AD52F6 +8A30FB40F1CF522844DC2D33913EA73341F6245928D63BC4BCFEC8F7CC53F09F +14D7BF37FD76CDE0863C5E3BC34F1E497B20C3F12E829241C085205A43C4DCB4 +A5C94AF80738753A3B53B05C68A12C7D12F043C4677CD94F028AD27CD69050D9 +A1FC92A566BB125B4984784C88A8E5C6EC05FC19F246BF23311E86CACF0C10B0 +868986949A2505987C9B1249597D4C22386A5AE5ACD26EC89179630A049DF285 +EB843A94694E08384FEF75D3B28134A82795101AF663F0C3FA90405EFAB153CA +C78AD5763939CE2A9CA8C71549A0EFC6EBCC32B09C3EDB0A2808C0B8E12AA024 +2A1AEE3DEF4E2E778F36CB8D60DBC4095E9D5039CC4F3A534DADED0E4A206E9F +B65A4F642F65CCBAC9A1327F1539B53EE96A1E2555483C24FA767654C8456ECD +E536350AEA41FA3E08DCA1EEDB029069A77B29BBC0833331C36A654A96C462D6 +6E6227E8FD1E3A8B06F2A9FB4F820BDAF22C9C2E37A3A196E965FE5809B97BC1 +3EC4568F72274210771EA926ECEA3E15E3D5B71B96B87B7F6F613D9DC4685394 +89D525AC5AB4C01D936C6730016D0FB4ADF17835E03E72FE04A012E8910B1DAD +C22AC45D7324D963586FE36BC8C9A579CD9C8711FD4CF03E7397F7AF42085E7B +B9FAD28F8DDA11FD4BB8DB6DEAC855CC644C4E8C6B487FFFA2A5E8F4D1D63D2F +7007D3C1AAA0648FBE2BD5F5B3256A3DA5181A96F008E6E6911BD92D47D9CA20 +50DDE10E5AD53466DE31E579DB6074D401C5EBD9DFDF756BBC2239AEA9148490 +F308F098807C135AB823C9F10D15C5FC3885B36C01FED7AD59A258AC6B3E9309 +0D66120E948A1DE98F06EA085A83C5F7ACFD1C2B43ED0EB793CBA4CCCC411BCD +DF72F8553BFC0898B900E16E840F80A05BEE10B4147A966BFC7169E5BCEB7C81 +B121CF2ABEDCFAB98A95C51AD238953EA5BF7D0BED3578962D89C08DA73BD830 +CB98F0961530FAF31353928709F3215EE685ACF9BD5C65934227CF5885F78CA1 +D526241D4249AB65CA2C508C10A585AE27C01BFEFC5C04A3162EE47C3F3215EA +D987DAC603AAE360B2B79011B82EC4EDA22910358BB12B1B632084BF4C3943C5 +557B6E452587C5EB1B362CD673CBC4EBC04DB0B7D0B6085677B888DD1E2233CA +442258E5A00D0A2B0D564DA7045C6AB430479AC4C0EFCA3948692BE5E85106BC +06C5D639E533BC67FF705C1CE35688EFE6C81642236FAE825A7B4E3C9E1622D8 +C8CECBFEAD22D2996F7BD78526FE006CCEA6A42D81F731A834BF14A9CFEE88C4 +DC77CD22768C57FCAC787EE2CA44A92A035757EC107496E5801A9F9C0AA3778D +EE947BDA884DC06951BD6DB5E706CA45C83D7BA0E38530107986579EA1E6D2F0 +326A148711594B57E9407B00205CCE741EB3771D044A78241CA8A8E9EFDF85CA +4E6A6E9327656C95CE436F8107AC8396E6165B70475041AE11266C46253BA3EA +535197399C7B86C8A57ADF2697C4F47551DED194AADE6AF4C219FB27CDF5B7CE +F2FEA043C7D6D0098494482A6B9261E443A2F69FCF01B5DB83880C65760DF680 +4250A9FDC98E1369D143361B34EC5A9FBEC5D691D5B2A1B2B72E041582E364C8 +BC01EDFD8249C173ED22A5CAFC05955537808129928E705ACCFB0C57A13228E9 +9D2193451749B92237CB2FD33828E0D9DBC9BBEE5F6CC754289DD44F9086A8E6 +9F3A94D98F59D56BFD360FBCA75AC0FFE484B328D053EC072DBBD77C671B2AFA +6FEC1D798737538E44422C98E54CE3F737E7FF4A22D6881144DBB4F032CD97BD +54EA9AECE8B6F7A237A9D7B2C21EDB6B3F9B4A95AFB21E1F476C8DF59199DA58 +96E9196F45EAC7E577A7E45FDE9DA8442BADBC2E765F2227E53513F64B85B8CB +109C59849B549758C0F8B897C63C795A2B995C7873CAC71A9B5CA3F4F9F3F19B +0CF59725AE49A89D8A0825B5271FC46AAEE53A3188556C0DA7C8043097BEDD4D +E54330032BC2B28B53F1B2EDA7F1639E0595C4750089F4A830AF4AECD03DC65A +53E15CEF4B62921A05783D0456C9CC243C2A44782E8271D8829FF86BC082F176 +1C9933555293F8CDFF78C77263EF8BEA36500888037E508D6D67127825AA4F95 +89F898404A1DA121DDBA0A5981FFDF19C2C58ED6A7964B4717379E87772A6047 +94EB590AE9E1472E97952BF87DB188902D52531E4EBC5451602AC4A9C067597A +9D0E1BA8C41ACAB79B6B69BA8B39EB3141109384D11255112E4E6200AC8780F3 +A184A810CB22F1F4A4F9A89138AA50C278BFB45C49C0B54DA11A91A448E20040 +7A659267DE7BE38E67EEB2835162AE5FD6B2E79802949226DBB61FE94D4DE0E9 +6D9339E40338A768645172930FB078D58A8EA3AF8A45D0900018F9AE02AC4291 +DFAE7E0FF8D74F3CCA7FF08A6B2BA9333BEA1B7489118D8B8E8AB0AB7E6525DC +B9A99657F9871E39DBB7688525DF72D1F11D40F2E2B6C3B1305CA97202E3044D +0A47C745FB863F71B427A558C392DAA1297DA660585A8CE0E958AF04EB893C31 +07FEE1D20583EAFF1EE84EB4716216B23C254934DA673DC443D9B6B1FDE4DF13 +1B6A5868F8EEA74E9AB3CFD045081FDE6EFDC815F3C2F9B5ECFCD22EC020BC2A +4EDC593E6CE03374FA63CAC5769107AC3D7E369BA75851FB551F7FBE9C5ECF22 +977883BDA79BDE926A2B3A8A0FF7B2205DFA9D4D87DA77485CF7F9A37FB2E2D2 +249E71FEA55758EB6B1E97BA3EE4E9972C4379EF128EE8DC0114480B68601E8E +1200A5E88ADDA7078D550DC86A446E4C12952E1DFF72EA1ED7EEB4F12022D474 +DCC191AB9E935C3D9D9C3A66F38CCEEF11C6FD63BF6DC522C23F7674273B4A0D +540951DDDAA4FC34629C709A04477FB0D5E3C02E6528365A229125A5050B29CC +F040B526414B6E862A31FF92A18BE513DB6FE4982ABB2A4386A72B23A1AAAECE +C4B3DBB5D9B6D15F770E0DA4FCE2B90908252B96A0DE91639F2218CD7E74F5D2 +86C41D9FEE5C91BE4F4C842CE6F65680D4AD3B03B2C402D8653723124676A3CA +1AC46BD0AF5D83C34FAF4F6E10A4B0BC2351B00442150D44A229B896FFE907B3 +4B6E37B38604AF3042F3085F7FAF757F269BA46DAD6052B7D960E6CC0364D825 +857FBC3E3D033016D300B303BD0724CB45F1FA7869694175EDC3B77482FA4CA1 +7218A7CF17415615308ADC0C82EFE151697299344F6D98A62CB8CAEC660C9D4F +5F723A5B190939CBD3AE7D50158557E08467966E1B191F9E49099817C3E492F5 +4058F1AF1612CE7A630F94D05B71EEA469A8DB1DDE48EBC2F5C9191C2DC9C4F4 +FD0926BF89AC4007664EA1B1C63D82FD7AC349050F1C294B069CD4F2CD701849 +D83BA473E3B80979415DEF32FE0F3AE6F985BEA618867F0E0775EFE48565455C +FC85D85599D82510D1C4607A830A536D53D5A5F6E8923CDEB81E388F6C6823EB +02BF26BD4A5D8D04D1BB0DCC21D85D26780C141EBAF08972FFA67BEC355A9CFF +B7894DD502727A77CF432A2B1070E9AC4333053784C1C239A6170F0107CD9350 +A87BD8D2092AA99801866972BD1EEE55F1E463B2AA6526A03E713690AB2951E0 +0033E591FAA939A2D02E46FD5DCBB9D6B1278B18073882453B0A1CF940858A24 +57F69364D2FBB2A25E27B6DEF2B45BB16F41D9B5CE266A6CF6979DA47862770D +01825B465D835FA8EE6A1E1A06ACDFD8BE88DCF598F085263529B9B9CB7605DD +E552E6067E24C7334B1F654A270A7B31DABD5F8DD25357C1087D0F22309DE652 +D989A441801D5FB9D6CED440F21FFDB84EAE9D98FFFAD895E999576128D28572 +B64AA04DE8F943A11670E3B9AC396DD42C4BBC5AC3EDAC4921ABA08BB460683C +2C4813D2E02FAB6B530088CDA4A57CF0C8BA3D4829B3A4345E47530C11B45048 +024EC76321B46E510F17AFE57D61B513EBD29642F51135B1F3041C6865291895 +C4C9DF1F30E19F9BA76764EBEAC3198608C7FF8B1571F80181490D5219027495 +04C35583EF18B75ED076F29EFA3ED9F9B21A5EA4F94A63399389BE52F4A6BB73 +670846342343F7BF47C5EFB1F9101A735F1BADA960ABD93AC88F6D4E77912185 +729E5659C67B8B7CD689A8B75545F693157038BAB6A7E278E306F197A9257227 +41F579BD761242E4621AAEBEDBDD53C1D2B57CFD0FCBDB6FD700638B3C4CDE3E +24CE83FEC085514CC8D10B1ECD747D48169BA1AF6C8782B54D7B844843339C3E +356EBE312B04A3461023915F433164066C256A1147BD3E528D5662EAC6DEFF9B +0754ED3BD405652514EE2D42EB573BA3898528893AF0CA8CC6D0D682981E0715 +D07131C0C4039F7A6BD82BEAF1C00170F049B684EC35CB51BFCAB63F207D7BEF +6A959B285E37A36440D74A2F3FF0551F14CC61140838EE33E599A79B9EB54A05 +A4D9B1C28DD75477257A143D24252FE7EA1CE26821E2E51C909586D6EDCF71AB +FF697C49C05A9772E43363CC7682F73D13B2FF9A7C0DB5E650C791E4C55C5CD4 +B0DA9462793709ECC4DA4FD0CC2AF4922E142530697AD12E58633F7B2559A616 +FC6C7CC20199CB8962FABC89EC163853E928D38E27E1AB3BFD2A7DF6D05C075B +431810C503455FC54C014A8B9852AD9548ECCBB1F85522688236911357451BE1 +583373025B97024E3BFDCBACF9AB00006301AF34EA05E287CC3B016BC99EE23C +B7D5F232A6E7AD775720A6680D5287A8BE30EABB0DC4D16B6276014C7F5EA52B +7B454DD66BEFF549E79B35D716F1FFB762EFAFE30DB1C4AE2811578424A8722E +F84FD6B3F2AC707C003CECBD3ECCBDEE9BC6B27D4CB416D5AF7C7985D9C704A6 +4D27BBA6B8945065372C89A1B5D8812AD0DBDB9F9396C651D775F4832E2D77F0 +9F4CDBAE608661750B4083B99DAF90C7AC8655B6BEE44154FB3485377C417BC2 +3EEEC893440213B74C0FDDC8D6F117F8019084A88B94EF184C3D7FA82378C5D1 +1BBCD3430E888DB06C42096E952CA9C81634D0D8CBE2DC19C3FA0490A8F76885 +FD5D05F6CA47F30932B9B6765BACCEB53801E49AD6FCE0DD2753D893AAE20977 +C6E3FFECF3DABFFE869BC6D037AE60F6CFCD5AAFA1ED20FA34ED5F4342139AB2 +4AF0B75F0357CDF2C69C4FFA3C1FE266169A38FFCA08C74C21F7CE2A17609050 +9E9D7C4EAE252402DBBECFA256609F7A7986313FC499C25E0E6FF035C13A8E12 +2441B233FCCC8E0B38C42ED92422BEAAAE48B03D307BCC0BDD56E583FB252FED +761B44D52D4D1C7C10993D381F8ED3A37F36C7DFAB4AB08AAF64E0F1439BA3F1 +68CDBD623C1C9DFB927B1A64F7DACE51176839DD6527E093EC36794DB72CBDD0 +EBB5DBD9C345BC2B8EB752D67E4239040DC52C06F98ECEAA0B363040D0287D5F +5D12E495CA12EBDB722AAD7A20A56DE86E68D76E3D8ED938AB70B120E8484742 +7F22C76F10581FC6C79E1F92D252F3A7ADFF6CE96498EBEECBE122024706333C +B2149718C19B06856C9E0AA8FD88D75934607C78B867F9B018D2190EBA30E445 +52634AC4ED833A034C6901819E5CDC3E29568AD378A56B961FB36FD47588B40E +8BC7F2A84AF69552143337A3C10B77F9F18E55BA7337D15AC919AB72EC95D4F8 +D04627854D360D70F24B49488F0739C04ACB2CDB1199D67385D25FE5B8D7ACA2 +48CA7A8100FB7182A10D6694B3F954F601827DD756289DC321164D5C6D7BD73C +ACCF98A6202C6C61A7E691888862B87EC504AC06212EA4F675A096E2E2A41259 +A3CF0B957A1EF1FEDB5CF6AB6C80486BCC91473BF0C1B8F64294E4B269D6796A +BC4F860EF727B4D5ACA59BBD71889518DE03C1C368461AE8B8E3F07D13D8F7FD +5DCB0483B8E45C917EEDFB115F7BAA6A9D79E18AE49C0610BEAFFC06F1B5E65F +EDB0A98B7B8A83613A15FCAD472FE56B98C3F8398FA221B89B950819AE68B7D2 +798E10859854DDA819112702BBB1E04CA9ED40FD56B918C1F56CBEAFF6663967 +E4DD3B35D0E96CFBFD3D87B5C6D7E5EF286FDE0F0C4A698DA019D59D199F8968 +9D44BC1711D9429EE53C68614D27507A10E9390219E6B957B6E9863AF4ABCAF8 +BB8BCBCE40545011DE622E9BAC30A64D3EF95DD966D2CBD2008233A30624AF58 +1191892046C746E1E303678400CB1EECCAA99FD26A31175054D7881411A5A96E +1104D67B6D14F54175D513CFF9215A8A8FC4A3AE2496229E54DC47FCF91D6C41 +87AA95039CD171650E2CB96B356E37BBE7A263222007EBFC8F1E40D5CD9AF456 +717818A08803C44E0465CF77E20EE8B2BDB49D092D488654DD88FF9707074BC5 +066575B221EFD5A100E9F91ABA4B243ADD2D8C0C00D6A9F49BFF124966C40687 +01A88390B7F71010BBA38A5D0102624A5EA457AC76621E184120C23DEB43CCE5 +C0B52641641052F160A14BD27F74C1AD374ADABAE2B691CB6AA980A969FF6CE5 +1184DF521D9ED62E2A97EFB0BE4AD2236208ACC77EEA8DB0CA798FE06E9A42A2 +0D4B161769FCB958D7A0133AAA8B18F04A073ED94A81796CF2D3C998210B87BC +62DBF7B85C8D36DD630C6027B24227D29B7987F0577DFF3F906548DF7472D43B +838EB4CFCB6FC9D3CAA5FE7E13676FD7B06CB9745B1F69DAC640287006A1AADF +0BDC6493071612FCAFD6E168F07F2F674ED603CC972E31B3B755B94BB4F109F4 +5815AA93E92B55666E4789B7E1A8A1104A46274BE923DF8D3F7C448DDD3FE738 +7DC1B642BFA20730928078AF5D372A2E67EBCF15CA4622F04F74E1325D4F7182 +F42171A908D9EC320CE2C2315031C0AA4082F753FA02DCFE0F93C85AB53DEE3A +556DD9F38531D880A4C0E22551C90FF6360BD1F589EF9FCF4D95096E9469DCAA +84A5D1DF2DD6DD85EF63B56B65158DF91E3BBD8A81FE5F21D19933980D17550E +9D1B1DEEB23F9BAE87087BC939E9D80469FD554E74C7BCCCE577F38FF90D3C83 +72799CA31EA1145B40C3FDD22F4ABFCA96DD6561F90DC4E969B1B9E1ACBB2A41 +CB9A00691DA6ABFA99FE4E41BFCAC3FB630C4CD38540F9197D5302534302E3B8 +6BC3CA2A882F0C4407E13184824BDE156FDF03600A5433D6B3E309B0508AA7C5 +AD149D23C6DEC070826400C8274CD75BF238AF2A8BF59C0594D1CDFB92183298 +B5ACE7D4701461E827692E032369876D94882E1A9E0E873D57F1FB0B5EBC7704 +779E6B903633A8F5DA5DE4D8CC4184EBB2EEDCDFEDB1CC1BAEBE2939E71A3501 +1CAA4F61E5EAF49C0C7D31DEA3A7323040525265900FB423CD20CB681FC9BC5B +58E5FBD421D97CADB2FB39E0FBA60D21EB696DBDA117840B95C8A3843D6965CE +098A092A834E4588B05932566CEEC134928E3112E1182B7F647626529812C6AE +B7134933853C98A7D0FEE1EA47EDED913225F9E74A325ACB4D41F94555A9A188 +D3F165C645860885183BCB9E4BF33B70D936B0ED9731A6E7C82B11EA7BC6C29F +A2E67F43CD8FF7013F3CD55C7FB4E0BD2C3C105C9C65928B25EEE04D26224473 +B599A19B6D16ACDEFBEE38C970E27206F8565F9E81F5A112317DA5DC73660C30 +7878858268382FF6C39A0D14B399DB4B5FCB18CD1C789E34F1782C07E6CE4C24 +411A59BC89DE458EEDD62B62690BECB78EE635022F52562DE8B73C6370C13723 +0D6C20F8E08F7FA430D58A7BD50924BE0C40F420BC1B5FFDD4CE45A6B631EE5A +317C3AE3370651D6304DF3A07C373EEB5EBBF43D9ABC4495164C720F296AC5AC +4087AAEC40D40F3F89EE6216A835ECE0B45304B0A3F97D977D80CA668E536775 +27752F76462622DEAD4B065DE51ECF04D37761E5D640F39F52071FB1869F9CE3 +F240BC85CDF9B47EFF845DC1C5087B11B1FB1989554D8FE5E2B22849768346F7 +88AE1790C1F7C86961DF9E79E62F3F199D5BA290F4C30544FB02BF8635DD194B +5862BD7C1695E4B0F49C696E44A7F8E13B8E75F12566B3562EBEAEC3AF59850D +105085171900EE1A59B8BFD9BFB39DAD46C9D30829640FF653785179763579AC +7FF218633977678E35F85FDAE2669D551B9768596A3BCFD58FBA52CE5318B51D +8430934A19CF3B6D4BF7048BF329E5EA33D13175F9D09811DBC064A503973328 +B6322FA332054F2C7AF8B56F7EA91E40096E4286C6E48795B22A5CE7CDBE0443 +2E25691EBBC085F80451485581721F5101B2D729E1312A8F25ABF0670A163771 +4C6448653AEF9D36C4F8B8C5C4E682F91E6BC9E265141226F8694A1D46B448AD +A63030CADF73BDB4B03F80F175DED03E53A4E7C2B90F7F872D1D8E3342289730 +13A58431AEA1C979F2E139ED14DC471A2EAAAFAF856C988A6CB53471366A1251 +74AB36A782D88E670DD0A9E7D99412C6CCB8DEC5E3077E0485A48942CB3DB352 +ED58ACC51BD915087751B2D041E00643C8C861E3D87DB6AD2FBB588FC45A04ED +31769FB3E0A08F01BA077093A672BE047418C6FE02BA9E6501FBFE9C6A63991E +163F90B8A24C86B2D8B55C23208CF15ED9367C3ACEA321C424E5367E12F20BFD +086373F7E885FA95625702AD80516876E6BAE5589F0DFBA27A0BC52DC3CD7EE0 +5EBCD14C547875DA29DA7136FB1FA114FC031529EDA055B9CE1AF331A58BD46E +EFB91675CB0908220F9090F235F877237025167A416B160087147E3F248050AB +577BD5C0A72838D471A706104CC9F03835BB2F85B63CEDD2BF34A3C24339CAAE +C5C3C7C3D2FE89E1CFB7F0983E66BE0C45EE8F76AFCE70CAF40C822F9032EE78 +6AA58E3342D772A238049D813B6A2EC244CBFBE67D3166E7019299CF23583566 +4BE1534221E33620BC30BFE542B698B4A6D1C77785BA94D314ECCA4453AAA971 +E5B8DF69394591E74AFA8E7D68E25E6EF29C86E6C05BF56E86132F1FC2D05260 +020D87AA291A9983894AFD508F2B0260552F1AD15FF263F7B8C10407FB758F63 +2CFB6818EF9A6118CD4707D0BE6B1F81626C1FF9C0A17BE1EB395BF79245C4B7 +E750301F54A7304C43748FD12A96743B89B58E39D6B05A7550422836BFF4558D +2A52C44BB1797C3DA1F277BD22B8A168B53DA4EF909D835FA7ED7E5E5D0B7592 +8AA822E728FC76D57DAE7FD69ED4F66D440BACD1066DAB0D3A17F296494AFF4E +34423D9BA501983206054876CCC1777F36264DC861964BF99AF02AD681E8AFF4 +74FA2B91D715404254D593C035AEDC492EA4E1D13F4626B815B6F491478E05B7 +96B77B8FE4FF79CED9F7F5E3BD16D218EA9A28939853E6DEC594E4AD03FC0466 +B545030CE3938CABE1A5EC699452F416A384A061153A0C559C25EF4A2372BE9A +C8A449472724E2BB678F12596F144A247450B7FAEA48BB1926A754E94B626749 +B3EEAAFC16A291914C16C2DA9E50F507290C650464E1E1B72184B3E3EB6BF828 +C001F403DCB5D21133492E1F6E36C60B102CF8C16BE37225170B20EDBAACD7E4 +2B05432376 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -5206,108 +5185,120 @@ EA9EFDD478132047DAC28DD4FFE419F94CF5FCDE732E53FD332ADBED32F76B2E 69531BCE0D461BA3F41A528DB0CCEFF9663FEB3EC9CE0F760604F835699D7C08 CADBF7AA3DCCE9E813D66BC62C6E452FA02FE7E5F4FAAA527B4567AA4FACE790 -87910AC2498C0999866614C90AF7DFD65A59B9183FD8AC5DB9AA81E8E9055D15 -9EE4095B305AB9DE2CD55BB4B397AC3963F7864F0126410DCD5B24FE8A68B929 -F7636B2056F0CB8F8F1E0C1ED58E481AF33D1C780620CFBD7DC7CF1EA987F3E6 -E937F3C6D1B95F81F4B499BFDC76911B5DECAB6BDA21A6D151E26B5443F4EDFE -334B1AF6A185E16765D085D726FD7335C84821DCB94EA8AF220CFBAECE29033F -E3241CA3BB66C74F28C85AA8F4D520BFC2C2C54C9B1CF5D3ED18C118DAF7BE48 -33B1472F0AB0CE776AFFA46B949126985F68C8C420189903CA2BA35298B951A3 -A84F920A9AEA62B9039C55077D979B75ED0EDEBCE59E00497BA60E8A0F1D1F7E -3C0FDCC054A5B854F6F645C2CE16857F490A215FD83D9030E410D5F409113FB7 -2BBDD73F136EFC5212D7C6DF3E2420CAEA1773D2A44CF0E6356D3BADC48C1C1D -31F8B0C73E039F9B8F854DB788346D12FEE06E19A58EB8A6EAA21538E9A42B2C -6E62698C3C29DEDD2735972EBCFA8D29E792CCC4CC1756B69608AFCCB3FA4E60 -20B29D6DD32EB7DDA48515E51E85E47231EC250AC000838B509D7B7C1EE7A8A4 -F5B77D436859FF66352A4E3545EFB2A4C75D0873700E69729EEFBE7796B3C607 -4EBFBF2A8CE248A36EFF36B2FD08722F3B95DC7AB899B4FA0A6819847B55578D -615027DDB1639A37A7F926EF6B6D75A47175EF75FF0FED87A581EC0744372407 -D506ACD11889656C2856216EF4088BFCB72ECBCB6C6FBB3C8214028544C4FE1A -4115A4D885209A807B1D229B4E9A5B2B8AC479CF2D86DC49B8FB1B8FBE34CB76 -2042D3429BAA5DC0D9BB203757A029CA725148BCC3B0AB9D629D7C74282C0A2B -707E0562A90D10A030E3F1782124F4ED1622B0B617A708877682065A05C22D25 -315E6F328FB47F522A22696921983ABF3DA56FC0FBDABDD5D7A0573DADC7FE1C -F014C43FB724AEC11703E679B7E7ED91B86F68076B563868E66971B1BB68F4A7 -64C75F03621AF9E9E29486E1E613909AE763400176F3AD008CB7EB0F01B1078A -CF1D08E82B1EB2237C7C922ECBAAD0FBE8823C2541707EB8D21D234CFC1FF8AE -4AF22A123EDB4EFBF8FC798F2B3824A4171E2B2BCB8BF901C8C06DC291C8B0E9 -FD7074729750A6440FB70003C44A17D9A048CF3D7C84BF1FA62DABDC3E59964E -0F8453A00171EFB3DCBB32DD5EA6B40C22E4EEB278E7F43215A17D1A2938B320 -7CAB285867DF0A5AB8165AD181DE1734C91D9E6542F44DAC9A783C3FB215EB79 -886422B6FED11F6DFF0175ADDEDDDFA4D16DC330810D7AFAAD00832539986F04 -9F9A2702434756DA2445C316897FC0837C6FC2C1ABEEC370A3857087EF8702F0 -581CCEA60822847BA2A2CE47D7615A3EEB2B37F9630DEC0D491914D27905FB31 -B1FFFA4A97176434C12DE00DEAB760B3781E3AB0F39B36E24B1112A69F72CF76 -3F8037236776074E08E14C89BB3095D0B137F54214F51DAC8B0B73137A66D855 -05B6E543296EF829121C3F6DD08B0F8D5E5DFCB095AFB870DE58B044C8F3FF50 -53CB9365F172A060E22ABFBDA8E1C6468CE2EE0337399DC45FE3D8BFB865CD8D -DE977A4CEFB7B84A85D9AFD2CB659C7F27629334003C4ED82539B6300E3666EC -779359D8B47B7FCF7E8A1FF7846A8C4442ABCA6391614BC4967D2AE8AAC523D9 -824E0942FE6DFAFB63BE5488DC77AAB0230D71C69DD36606414550D85433C6E0 -0243680B41E8EC9AE676C1F86689901311E97E711A8125AAEB50787A95807864 -BFE5F227F7A30851229BFD3B39CE14BA05B12E584F4C7F558A998283E75915F2 -78607D9DB9ADD2E1C29AB4364D7B4DC58860E53F2612B0AAEF585C6899E9A6AB -0D880321DB04EF83A21BF1792A17FEFDED1C153A6D18CE1E0A55B6BFE5C280C1 -C5120D96453F87D261FC5C90664CA680EB5281DF78794A13B606258BF324C7BD -875A5A2FB57EBF6AC4A0039EA5CBBE981B4F1B718EDC1135E813379A03630B4A -1D018CB5488AAF757C27CBE5BDD47E55B058E6F3B0B027F2BC5DA897D5074A47 -D11FBA2B8714CF832F932D9B883E5F47CED480FAF8ED8115BFB0C2DE9653C65A -28844BEF51EB40E8FDBD35061A73922EFA368F08867DCF5C90C9FD65A0CD7E9D -6985D4FBDF3C364DF985E6D0AC767CFCB76265E538E5AC6F6BBD745D857A66A6 -B65A55420ACCB8360D3EF3FFF41657D9794928FCDB881C5F0F7162E808C2BA1C -FA452D065CF79B3C8181ED2DAC3BC3B99B1DE66911E7E2117F24A95C28C2A984 -2D95400EE1BFBAC89C4E07CE640FF97A9C5E7E381217DD89EEFD1C311DB8DC3C -591586F6A6DBA564D5766CAFA58F8198EBB44AF660C90F32A1F6EA617CD0A38E -795891A97C1941B9CC85E4635206C4E1776940B3F3C5B91CFBA189594CD0A79B -9D86FDEAC0DABDC4A0DE041490ED03CCC8E4D11592A9E45E00089AFB929415B2 -03CC3EE454366E6E4930039464F9C32F85E395EA948B8054233BF7548B95E26C -2A0A30BA753CA42E2EB6C8B1765B17EBEE8F7A739C122450A5356E411AD68C8E -FCF55900742F1FE54F8B9D211924BF1A584C7F7700B142ACC0FD1F120128245A -0619AB0B359DE3F7D7C347AF0906E064807ABC999FD1A1CF3BDDADC93AD919D9 -B22CABEEAF825404378AE53132092668E4A43140EABBF633CB6961132A910419 -62A26805444FB9E31279780770542F7044DB70E1A4C291B1921703E9EEC00DF5 -D0F86E58579D4A87FC2055DB86B75F455B75F24323D4BE2F0F4108D243236B09 -E1E91E45155898C6FF5AD148F59DCF12482ECB4E16830EBED6F410677A57CF61 -CB974BAF3AA34BD9AAFDB29B074CB4DD946E9E4F7849F429494E9238E09D3D91 -FB8B82A2C97696BA09E495EA14E94596C8E1F557260C59B14AA8CED1FD111153 -C1B0AB9D36277128AD1CE18FAB04AF37A2E1CCAFF95C02CF8368B1A1E4C3361D -F7780224DB8AAAC62C2C434C1464576B622A03D0DF8F9DD77EC45941C59AA09F -7F76F6D61A0038B8494DEEAEF1F0B788A13A9F37861FEC493CAC8BEE30E70358 -0BA2788CBDAC0552AC23F752815B644EC9A7891B3758347F7AA3DBC8430103BA -0ED8E1C6F8086BE73A67972E0F9BAA29972764962F7C6F156EA5C86781BBFD41 -986F046BA54480FFFADF7F5D6C797DA8E3C36439ACB6E17DC94F7392F96417AA -59A981663CE42C6A8644BBA5E593A6FCE8948D9C1CF7DF9E51B2E99FB8F61750 -C7CC6F83A47A77821103C0DEA503C7FD0397C783B0308A72E040A45B7A585A1E -99DD9A12987799F308312855B6E2F56A6158C1C214F56CFDE2D9A221BC1C0E05 -0CDC48F108BBBACE8FEB677CBFB78F31C0C4DCAFB6323FF31AB6716FBAD85C6D -95B65144F813B77166208764B5BC5600EEDD9B376F7A0106DF57E733E4794F5D -03BFD9CDBDE0F0BB01386B16A2951A8A7D2B0DF722FC0DC49A874323DCACCBA3 -A5C6E9E6643E113D3E197718B49F33708AF2FB5FAA7DA90BC39088C932F9EABD -4A92DCE3A3B2D394EC2467CA2B5FF1D1F3B77B5ACE11E92D1F832B1A7624A710 -7BB0C5FE2EBD2DDA59A83D235AFFEE0FACE4B67919725A29A5F85336222093FA -CB74BD22C136EAD6B70D3C0A63B5929E4FB624CFFC89AA8ACBC223C819DD8999 -09A8FC25E005F9170FDE092A5114348296FF695DF8099167A9FA8F1201D6947B -73F03C4B84F1E7DD4C132B87EAE0228A61A280366D3D15D99D1B7030A2790EE5 -4E254619984E9F2EC982D6F9815A6F526FD8F2DDD5A698514842EB84934A091A -1108D003D07B47AE61D30648D064891FB3690E5EE67C13069899150BA53F2422 -8A607D11B95DFBF8625301EFEC777DF876F3CFDAD682416D66C6F37E7435E05A -EC18003E1935E9ED34BBF6F42EB99E0305B872E3DDF020088F5728B6FB7EF891 -0E833A2BEA09AAE2FE3165ECB1F51126AD17F2FDF11D9E6A162D25DA783081DD -586B7DB2058C059193F100C2C4E454C407865721B84879F81ADE34598791CE90 -8F1C2514191E317B9CD207B7EC7C7E77C354C94C46B702E5062DF261CD5A574E -3410FA4B97F201DA5F143AE56A154BB6B8E13D2432E3029912902C408B84E86A -5F915BCE70EC5A2DB3A97A3BCB00E00CB87B7A5005ED0B5005F2192599F5A4F7 -0D0FB4B86D516AF87BE6800AFE7B3D44702649BC9156460E8C9812AC7873EE4D -F96B234F50F5FF9A8F131A457077DAA1C64F8FAE6CA3DB95F0847AAB4D78B766 -BE06A678F4A8BDF0A429E94682C938567CEEA70D51C7596995D1363DE9DB67DA -8C992DA9618E8F959A9BF9648900B59219E189D18F6AAA230B6A51FA35A2BE64 -4DAED84B46CEB391AFEC127B680C80F200ECA6177CE351C57BB26FDE93145FF7 -937A03F5B0C1BFD8649D1CCA17DCA98495E641CD7C479E5275A2F94478E3EFC5 -95D7419C3F7DF2125C7EC711584F3826E4EB53570250C14A4EECA469E94F29DC -54616A83A30871AA5CA1BCE8ACE34EC5ADE36B255B8F7DC15EE21D8178E011D1 -B26A9C5B52AA0B4621E343D529D769994CE64D73ACB88471FD43C6BF0A9AE902 -133EB110730F1235938DD26E132893DF0CBCF058DF2D4765AE1C200BD5D365AE -4949E1CE8BFB7376D8547D5E95D2EF3AE0ED87121262124138C535C2 +87910AC2498C0999866614C90AF7DFD65A59B9183FD8AC5DB9AA81E8E903C074 +A7F1F5899B593E673776A944F57715131B4D0E7343BD0B993D7A255428F46751 +F0BF38A3C3AB55F0D041C1E40CC42258E96BE95AC8516977E72815BFC4F7F319 +6078A21903F347264C5E2CEA5292B303A4FF1532BDF9348C0B9193A7734BF203 +9D367401ECC6EB430F313A9B74E277A3F786E6DDE1D3A6A3A2EC415DA3A24FD2 +F0CEE7E24CE2B4CCCDBED8464E8A9439A0CD29FC57FD8F6E4826DF7CAA260807 +3BA6849670ABF96A00104D7E3A6F4B6070A15B971C23896F6FA0186CA77F4C22 +993CA7BD681E5E71DF7196B44192C0C332A06C2C9BF2605CC9ED398CDF3B7169 +A6CA3AD1E47A3B138FF6917476F50234836A8A044E7A1458661868882A6982CA +4B2D828144DFD8574945AEB49775F3E75F75F8F455BC06EDDE4A984646B34F73 +FCD1D300AD982AC5532B6C6F92697F5A905D8FAB31F1EBE024CF32F9336E95FE +C25D7A7448823836C11DB5EE4BD939431D97B82A36DB55D31583AE5167163AFC +4A6885F6969748014F28DCA8EC1D37FD523B906F6EBC27782A0F72104C0DF775 +4EFA8155E7F86D176AF903A8F6124BD70921A93C56EFD4E9FCBC41143A3F6CCC +2A08D0783D4C635F68E2CD0BBE30201601B23143F7CC5879F2E25819090DF5FB +B1EC7C1985F61E64C5C27F21A72ADD80C98F241F03A8BB15A8AC2B2056C0AA47 +CCC5893B2A3DD694FCB98ABCB27F18BD2692ACBA90856F76B62325BD4B9F0683 +E60BCFF0F5DF2F32BA870FEBF0AB4A316C931E526C6A55AE67EE64EA4B121300 +B3CCE1B5A84FB5AA9B97BB99C6AC95D280552E7D7E76323E719B5A050B25C8CF +BB0A53679AA07FBB3CC68CD5C467A168D197B3CE22CB7CE0F808E374617A636F +3048C05A0F597C5ECA545A4FE62B5D51A5D2231CABCA629FFC8F476A875D1467 +CD836570DC70802E138FD35B3D9C55E3D94AE86DD2DFD96D52EE48D730AB5EE5 +C7B3797CD650ACB216A06FA98A9D3C01804271CEFEC7814FC63BC1CC33FF965E +63424E2DD789A81BF4C641E2745F0F28A8D5DA7C9DBFAC8B866B548DBBBB1104 +F3DD28CC15BCD3BC7027194F933E10CD718C13F6BF5EEE2D9EF12E756E0F6084 +6BA709FD09FB04900B136CC3B9F418A3503E912CED377EC3E798174802FFB5D3 +1B141B735674AB663A8DFCAB7195D14B6E605C8513A2FBFA9CCDB7A67B958DB6 +35B9A29C9A5337A30B0AB1B00862765CB512EEDFBB84A84079FF778E725E3798 +FE14D535CCA919110D8D83B3A5AEB3653F0BE400D7D8E06C1FEBEB27012AA960 +AA2F246BFD4FAFA817173966B17380D7D8303C39E46E73A91776CCA9930708DE +07E67CA9B767EE6833E61540661EDF9B77758DB96EC3CD1C763018EA3288F7AC +2DC88D15408A749D56814F1ACC389A5958E028AE024E3236F8F25FCD075B0DAC +AC2E213AECF32F10C504B7EC9C72AA1A3225CDAF6402271A91812C6A8780FE1D +C4F79307DA6AB8C8E7C810F120A04263B2761F549E966667FFA536298F1CFD40 +4E7E024F9638DD4FE973CC798E71C9EB65C3C4ABF508248FEB7C9B13B3DB9493 +146E74C6C6F340F59CC2E17FEFBAE25F407D4B26FFCBB06B992B8104A58057C8 +6EBB1C437A7B6FD94831E454145FCA5CB18338EC9F0B1515186D5B8B1CC057EC +9C429A6E41D563F00A605D0D25D3228F1A59DD0418540BE596A98A837A8A6642 +141EEF0F022C1F70040C9D603FA009CB18DF4D7CCFF5B186A80DAB14CB3BA1DA +D8A7AF185C3CE7E6A23F3E3CEE9F70B07E76BC49445DE49ADF2D1E38FA0D7353 +4578DF9BFF74763009E85CFF2D8591B77C8D9EF069131894EEEB141F73500657 +2EF9050894C49630EEA1583CC1F6F4AF4CB9FD7C953A94240EA54C5623DCE734 +EF770CA10BED2129AB6FEE9561221B224823E66FC0F81B503FB65408FE9A6808 +EA36B20AC00560F12F52C82479331D8AF66CB54243C8390859F5C487FB4032F9 +8EB23C4CD6B6F1BB9418D899F52C470276C35662435D5CCAEAACB9708A28E809 +58578FBAADC216C6A1C846CDF03449C53D6654FF9C28938F70FCA3DA0D6BADBD +A24C9C0EAFA8D6FCE9B1198F65F5F769E434BA601BAD66B1A060C4228A4A356F +82B4C774BBDD43ACEB4CC1C8A43F52EFC32FA14286CA5054B1CC6C6EE762A11C +7168D4EA52791407B362917A72DA6EEA8F0592F552B3BB94DD3E56142CEB3569 +EED07BE4980A1B91903B449FBDB933884F34F57C55CFBC4E05813E6A89839929 +F85B18EED6D2FB34A93A9461AFD347C1E2D3EE65F34128054EB1967727CC7945 +A47E724014C471CCC24121F7328F536AF81F6688D6FBD72DDE72DB2A9B238381 +776AA029479B9241FEE52EFB835BF7C06EE868EA0AC9177C83FAE9D56A7D70F7 +2D312BB3F5A93545B5C503374CB7085EFDE9846B236EE665221FD110CCB9A848 +DE404A90FE51EA461B0CBA686FDC22A95FB8438A5B968401837A6DAF01AB3A5B +5F56ADDCE5CAAAE09CB4005C8AEFCDAC0F0B58680910DAB68F22520F57F3FE35 +F7E1E20F55EBDA2AD863461D8B934D35250AABEDE87E87551E080BC056EFEC61 +557C9668392F82A6332235AA2140FCA3EF54F88E433016FBAF8748D7A15199C3 +782438EFC0C7001883C8CA26F6AC763FAAB41717A572B7A6338E435F41B91CEE +DB3C417A21646673D3D116D995921820B1510DA922EA119DE2D6B11D672D99A1 +61D602DD87E70701BA4E235D4C2AF52F5AC828BED1C42E59B707B6C9ECED1B4F +AC8D48E413A92E12315B163B2BCFADE84C1F346B9E8559D99187CDB8E6A6BE90 +1F2E54D96C82A21BD8DFCBE1924D676C2E5C749B24FFF46525D1A4F403708B89 +2BDD4F0FD1CF4122C4072C29BBA9E864B878D12E2258879B910266A6C01586D9 +06247C435BE6E95CD6E30FE76ACEC9017CDCED7CBD180C70DF12E2018120274D +2F98B32D532431151CF14EF984487EC925E6021180E9CA4E78D18059EF9B7240 +6F566C130057643AD996821A345F8E7FB37636E2EB706BF8D07C054FBC163D45 +440E842381FFE4040947AC4B0F043313ECBC2BE1DD98A462FF76FFC662608FC7 +F323E4CF0F39312C0D85A150BC22C1969C701859B46F54FB5130CE9353E7BCDE +50DF50349F242C5A5ED46CF5F1E8F3C2378F368619C83D51E52630150AA869F8 +4DFA4143DC271516A60FC33278A13F9C7BA4D889A6A79AAA4ED9E0EA6BBBA3DC +23BB810852B1558A960C4FB5B201099EE0EE2593D0AF12EF51570DE7FC4B26D9 +402874BFD9E9F619314293F18BB4AD4B5504022E39D97BDD7BE112CB539FA591 +36A045A9B0EFD4952AEDEF007055E91B2D5DC476698258EB031E16540C00EC3A +43096D2C878F7CF3EFBD60543064C972583F8164D86DAE87521478FC1AE663EE +FBFF42F0D47356B4AAF19112F95A453D39240B3A46A32064CE73764C44F5D06D +3100E446A63DB25739D9EF77C66FB01B0B4FBC7336B9FD3418D0AF47EE516BD3 +19226C55F0541E4FE29CCA8BD92D87808AB01E64D7A081DAA6074C9F32D1C15E +9BE7D02CF3A9A1B9269FB510F6D68B31BFF95ECB32F8A5BDD88DABE2624F922A +52CBC9D32FFA3E132817DA3CBE8D07F13B8C2D872CD96A7AF14FC2067B521C95 +8E42256ABCDF226CFA7EE8811ABCF81905A47F2B033EC4E2E1777D9D915713D7 +8131D3E0A4319993FECA31C801DEFA8452E7BFE4BDC21807D17494C9AF91AEFE +70D76C2EB7A60672CE4CF5E598E0229CF5EAF2509EC3EF57C291F4E7EE9437F5 +F29C42CA8F69F519083C8DD8F6E45FD21BE5C587B66495462635B67F52FD244F +8D47D0B64C6F7DF9710EE959C76D702BEF56A24925A11D9F745C62D0A4402290 +DDE40DCE3B543599FFDF9A512C02E6E2D8A2B571835FA1D9C8B5D08224790DE0 +DC72DA8B5A005573BE79A7B93E6EB2FEF3F7854C149CB30C305B39A5AA5C61C7 +D03514386FD32B0074C7AFDF4F4EB7A3512C6751B725CC67B3ABEA186F645944 +72E4006958F27B247AB1D3CF84A431354F14997765BCC57248163EB952F30D96 +A26EA41FD2AF444191E3F72E6C69483FFA194627F7AED38E147188B960E36A79 +DCCDEBDC39DFB0FB276824ECB4A7CA11B8A37D8BAEBA7072C80240D4E5A89674 +64BD4E78E488B9FB5FF63151E130DB303B4F962F640703ED265D1C56FD751C88 +A52BA278849BA663F12024E7B5A3A990FB95C58D97BDE49E2FCD05A3ED49140E +0269BDE3EA3FE9FF287F0BC4356A0535234C5DC2175A5FAD8C4EE9583C4A8F45 +E50D785681BCC65302A19D7574AD634BF36843549157DD4AE032FD4DB82A8722 +5E4B886AE40DF81B75BB8B0AD56AC79395696437BAB9FEFCCF32E14B82FE99A1 +54C2565CBF419DA72C565175FECB21C13664308B4C75C798D0EF852623426C93 +1E586AB03828D26A7C638EA4B684AAAF4CBB1D6DA52C1530971927F97BEAD9AC +5D18FD975BF9286C2EA690BA9B857C3C284F4EAC8F6F2E8F841DD9DB2480BC24 +CBD722EDD851CC4D794566BE6AC1EC034B1323B20E16CD4DADEFC17E22B1B994 +5C54BB3CA2B536A5EDE5BC04308497CF0FF25B9D14CF6D6C64F21B39D55A61D8 +91A0BB1DF5E889A5CFDE2E656D99DE2AF179FE253CA5DCC3E6596C20A49D64B9 +35E8CA5369F077EA655334758AC49800C4624FE6E76AF2FB98162C78F31BB1B8 +BBC1471E65C4D276F7449AE64987763E6368374961B92FB5C5EBDD5737C6057D +92C419163063F11732CFC5A3B2D6295058BA83E970722B26DB442CC206EF7915 +B1C5C6E7F75165862671294AF0CC9D663532F2A5A48067B9555AD744DBEC78B2 +654BEF05B31B4E1111D330C464C26AF21B49F866EF91236C93E4DA6DE83E2AB1 +C979411DA546A3CD26D31BB8A13FD7FAC839F651B2CDB48854363DC132A46DB3 +F4306BAC1E3E560224C1CC12ABC5949D62471290C2AAEB4F3E2F73D0F42F9300 +5924D84610EBCCD32D4D81B4860C80EE02384B931B69289780CBB3C4C3CD3439 +227E9DF624CE403672BFFE161E40E69A037DC83B60F7B686B4CC2BE12ED1223F +F0D91BD11136242A8F5A7AB641D388ADF82CC7CBFEE6A5057478F5A2068952F0 +AA11AB27BAEDFDDAA17B4B1D789645F6AD2BB8465AA7B8083042ECEC2C061C38 +5EBE42F3330C7A8F0CF7B21B65B216FB4C1ADAA409469431AAE90053EE 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -5535,495 +5526,485 @@ F4D058444E7D7D91788DEA997CBE0545902E67194B7BA3CD0BF454FCA60B9A20 3E6BB526D2D5B5321EE18DD2A0B15E53BCB8E3E01067B30ED2DD2CB9B06D3122 A737435305D42DE9C6B614926BFD44DF10D14402EBEDFF0B144B1C9BD22D7379 -5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA77428025D4059BA -2988AC2E3D7246BAAAFB89745F0E38580546045527C8779A254DB08DCC6FB9B9 -0E172209FBE3857AF495A7F2B34BC893D942C145C2204CFCD6A5C69FEFC25B60 -E412CB2BEAE7F7FAD03AF46344F6A7D483BBB1E896BF16B0F4C363799DF23CE2 -E8127996DE841B6F9D8A9E56BD799B6A938582988AF87151BB8D3AEA85C49857 -DD862B5E10D9F33D57795D656FB616BC9B8397B3612131A2B0F472656700958F -739A548F7C3A348698AF9F6F9821D7A9FD4131781ACBF7EAB885A3AC254DBF94 -02FA697941A0F97F048861788BEACC20DE829764413CA58F9D045A6B38BCD6E6 -E4827247EDF1171F64E3B041A69B244308DC07F66643FCD7D5FD37F36EC4CB5F -957D4ADAF91850A3B1A765E0E580EDC77556593D1B2E1C22685268469298688A -45C474C9D0472D019CE1E83F25182D084AD85A49C502E8D679C227DA8E32045F -8055D1622C478F8FDA342685F858DE3F53F1CEA0D70BF54A4B35884FD75D8B36 -E54B9393BDC9E020D16B0C20E943CF4E22C0380840DC7628B70C3CE570EE2060 -34708F5531EA5E286384292A5BD0E04ABD1165CDDF8C0ED8899A82F64D2C2DD9 -90C50E0FD6180D25ED5EF2746914E41E859EDE14FE652EBC40BA85F56F625947 -805E6854520522135276AA0AB3956E65553012A51DBA92C0BE18D9A974109FCC -24F2F7EADBEADF14359BB85A0516BF482639761B7C4134B68E863A71DC8C76A8 -F7DA8AD952F9428B6B492FD55D800C3FF266774D9807C268FE482333BC9B70FB -C55DE4418DC3AB396B4150C4774E01A035DC2EF956FC2A0BD0BFCFDADDCFA8E8 -299D6610014F4A73D5641A82528DD45935EAF72CFBB6C95CE320FD5EBE8A9F7A -2BFF5C3A5EEDBAE186F86B95AC394FEA62EC3A756E5DA7AFF8145444A7D632BF -F8F6B211BD2D7E4A5A56B235C3912249F53683F9A12AC5E8AEE324000781157E -739C254AD437934D7B83ACDC2D5D7E6779EB15BECAA10B662A8B8A1CC0D6CA60 -FEC9AE92613561A80ECB2AEEA335B5BDE2EE3FFFDA3D144DE40B82F93664F07A -7265281680C3153A10DC16C13A3715BAAEE70345F509661D04FE872F66420B6A -FD94B36FB9565C4BEF9EDC71B0CFF58437FC06ECA3B15B875AC3690F0D2E596A -55C05FBA3B348B097C1453F27CD6AFD2CA38D3A6002A0ABC3655AC52EC9207D5 -6B74AF8B9931BEC0C18E2F1BFD273293AB3593D553A0194D694C4E7036D98DD4 -CF5A800D9E729515FF910E63CB3E1060D7F7562F79FE18D45CA52FCE85DA9039 -5C414211F00A20DEA60B26994B05D9F5DF57D97EF5086824B4A074C78BF7F845 -9C92908BA9F903BEB71D0F70249D69B1A75759225143C842566C031A2D15FF07 -2EAB20883AFF604886616903D8B95293F48C1A821C5F2096E88C7CC13EDFFEE6 -B0992152E4D6625C612511EE6254D9154E1B7EEB4C64CA40BC6C5BBB3584D7AB -06A2D217BC95F8514FF2FFF8F1D31069E6DD6C215ED4AEA0FBB275161353D2BB -9148067B9C1C0DAEF86F43E907E2BFDBA15788EB4851AFA5900FDBEAC07D24F7 -DB75D206E628CB5404CC2ADD5DD382CF5D3C94B8158DC564A99D1787D4B56CAF -A9A049A7B75C11314AADC2B3A7FAB4FA50B5003CB00C047859620779EB1A3B33 -CD4A3C1434ECA0BA50B00D0A32601BB682BE23F76F7DE7F8813CC93E2B7E2146 -85896069F74557B7428D8CDA1408721E5AD006666D509704436AA85AF3A66D99 -986ADBCFA6716F3E2E23AB25E1B7BFE898E445D1C7FC1AA1A8AF3BBB9951E7E9 -B7C907360D942C322449DC85B000BF2B44368E119FF2A341619E0D0F326C631E -C2B311158CC36140E0FD3738996E4A135C411731AEAB743688648B1CC9F2B602 -FE3B7AF0DE0A481E3F35BCD5D7D67D25A443BD481A88E6D4D4289916DE9D1205 -B428E994BB79C2427EAE17902B22AF6BB40FCA5E96DCA8A2DE972EC2CFA961C9 -79786DEB2F9755E7BEB4C8C0A5E6406791F1EA57D6AEA4866A9AA238763E61DA -89ABB5D00F3847FDBA613B673BD13BBE0A3763813309F3AEEBD1B01CC43405C3 -664BF8B0FCF2F88DB691CC914A38D798E823638B45D84B537B37916B4C63865A -69BA4C2C86405F8B84A3FDF7896B4489125B18E11404EEB92299F3DF22236B8C -F5B892D68B4B0CAA99BDEC0943A535FB49C099E317052CFD2540E002CF25B849 -9BD46A44397EF0C10D7BCE4AD3F1FE9B8DEC50EAA2D78A101F31921FDD7462DE -279820AB44884FBDF5F471A251E6751B416A34198C28D407D9A21DFF8BE1ED85 -4042B450199AF7D52F95DABCF4923D5C7E78D15A7E8C0D8B6A5451E34CF1352E -3E5D8BDA277C80199C74EFC15A6FD68CFC593EEFD3C85300E66F8869AE69FD37 -07F79FAC5FFB0763771E85D648B0EB1EF92C51FBE47EB0B9CF0CAE08F2B833F0 -9C5EBA4BA12F1F8664D2488FA1A11390C2A1104A4572BE32C29F91BAE787DA37 -2D5248936DA70632CBEA6167531CD3C621B0278CB114F2D9039665A444B0F539 -51E4B57D28907E83C234FB46578AD5416CD545CC9228CC2BEDBCDFC1FB8467DD -9E257646EE719A122471FC0F62679DF06A19228EA164081AF2E0B301E0764109 -7FB21710530A95784F52972C21B0517BC869829130638AF9E7F5B69074E0F72F -8622DA68416A37EF07EF20D9983AFDC93889C37F42D0ABC643CF61A41219BA5B -1246CA2E8D7DCE1642E078E4B0BDCC5FC08855E006CC3ADB9399E7D56A2373FE -A140DBD6AC814B8151DD0C20E6FF6CB2EA0063EB31B06411AD9E6DC74976C145 -5D92392BF2F610F3B3C4E9B4F9E12AC113224F3473F3FBA777CEB6CF5E403A82 -833F7592E2F7163EDED19CD1ADB1050CF8F0649458F9220CBB5E5E83CE58DD85 -3D5D62198AF60EE5EBA88F6904FBA00D5D6075209E4E07C58F8C1919F54B37FE -1290A9C6C7DAD4E6DA6CD9E99ADBF20E9D94DE20AC0BA5B87BF5C1C6777042EF -E8FCC732C434A6CC41676D274E27A08D517B13F3DFADB6DA3A3E1BF8DBD45B88 -4479EA814106826D64B386B5F843374CC243149A6E2861004411DD697802CFA6 -067CE1B972186BC92841B55BD893074AFF5D03B8EB776E3497077A1FDA1CACB4 -922FA9125028E1EDB4F866D2729CF561663BA940930E6CFE88FFAA4524F4BAB4 -5CA8DD30587C7137F70B79468A3CD861518CD8B44659CC9D838DF9F2DEB389A7 -9182E0153B6AB4F8DD1CAECFC9B8C1ADEF814EE9D3B85CEE391DB54388956478 -FD5366A80DA093EBF1AE129BB49C13EF8092909A545C59479676CF2652D0AAF5 -48538C2C682C515034DFD393792A30138929503E0B6910164D9B318614943A57 -C0E2AB33712AF4707D38B56FC9853D1179FD254A26EF5E9655662F4FF3C90732 -30E4AF1236E8D133049AA1AA5C7D42543B3502430AD3F3E51A7D7AC2475D274F -7994B13A0074497479B0F3763A615AA586BD0D45FB38EFA41F38C1B199874AFB -B6ABC390DC0E0A7BB5DF4453E159B2702C98402CDD80514342E6CBF273914FC7 -A5FBF447F3B1BB7B211F48CA62C490542A6B45D7994FF2880A35073AA789F0B9 -101E76C3FF56871EB0074DE016F0050C74969815C7E56542446C5D509E5139D8 -D72C04AA4C7EAD0BE56E77C829F89A8299E37184A2D50D2A70EF90A5C7012B99 -20B26BFECFEC2C4B09984A122ACB4763D3A47ABE199CD14D2C99FDFB24F7760A -F21287063ED549A8704469D1941A7B681412637038E4FA5E6F2BEBC2F7F1D255 -32E8ACF9404285D653EDF9D4833F3F4CB89E7F774E5AE688C6D4231F5F32DB7B -7DE001933D43C2C31890BBA93B868939202AA2604DF0B0918DD33801638F896E -AC494E1BD88644A3AF8F37025F73C0C8F8845FF2AD0CF2E979BEC68FFC54DAB5 -D62FA9B3F72073FAED73EEDFD4F8FE809B8B98B3AB47DC374BA8E225A9E13CCC -68E5987F1D61608C4AAEEAED33B8FBBC7065412E650AB60436F5F36DD5A4FE8A -4C8FA33A7BCBF36EDFBC081E13886097033EAE4F1A24E2487440F19703F65C26 -5666060187A90D9E62A2D12656FCC8C247A70E430CCAFF1D34E0ABEDF8A9A0D9 -4DA80868F6F84FDF9DD7DCA18BCE0FBE00D4D2ADE2212CA4E087036044016C53 -BCE417083861FA3628EBB48777A23FD6C5B6563C625FE6965FABF5E8F2859949 -C50C0A1C26D1A47F8CEC5BE800A4D64502FD7AE97B15075544E59BFE206C2AA6 -DEC650C1EA7BEECBD93B33A2D77BBDA081C922397B5B73E0C7F54365745E66A3 -FFB49C420BE639252B01F54C85F28AB49BE0EF1F2FDAEF5753350059309CF795 -37B6F6A3549D51C6A2EEAAC72687C64EA383619D9364B82AD9BEE51F71184BAF -EFE9CE7C077D8FF853019063629C5304083DE5F70517789205E7230594E03791 -58E7282E169B6030E6706D17E0F7262E42C861A23A6172188046A714A4582AB4 -1950D9C45051FBF057630686DBDF3F331622EB04984E46298C163B441A2C92A3 -A1D5C253735ED86B1AA34D50DB4163A528DF26A8F569C3B088C12A74B07CD705 -16A6F90E1032C093CE9DD5324CF4FC3137521ABE1F89D6665925FE586EA1D063 -9293658FA7D0D8803663B4F36DD747F0102C8F563C1D74AF645E3AEE35B7DE72 -5ED14DA7B52134F5A29E14D32FC26C6CE6389EEE26ACFEF50E4E12F408BD53F9 -73E4957A66130345B91A278CB0A1F91CF1E1944FBF31D08C7D6C273D6D8C430A -8F81E63B1136E5FA7BE766BA636AF680CE367E563DFA6D12E0FB26FC1DBB1C27 -9E4B998D5C050BF4B576AF5E1D738E019926222BB2C707EEB2ED93E57D4EF08B -92691D2D099C5BC411A8587CA604B0628148C6F84B5ED739272829C4BB781AD4 -964676F18BFD5E95C646A927202E80EE6C66B56A2119F232D868BCD00DD7F296 -A7D681B3B785CF3645C19B59DD739BBE8B276ADC1BE764C47731D1F0608B2887 -2CFFE1E71A4C07D5BA093D36F59D6C506DC27EB213653069BC9590F0DC76EB08 -21670F2E0662445656EFB186BFE473576E4C185817AA718A11C676629C13BBE0 -E6372ADFEAC1726AA3ACAAAFA798BFE183FCCF18A031E95CB55EF593CB4EB04F -01FB4D1BF0A8208F18F033C3409E13B9372112001E62294B30F1146AF43B8C26 -8D272C016AA74E3F783AD378E3E1E7D0BA5D1BFD33AA45C15156CBF865275412 -2834DDD8C076F9972194969CF401C8DDE4790B7A9B872DD963E3C0FC0549CC6D -7C79E0649ACF9CAE6B858DFF770A9B97EFD7AFE187489ED0BB559B3E2CE0AB35 -501294D1A5B1D4ED9E6BA8CD8CC7FF7FC72290556D4A5C6912F267C2DDC0FD4D -872DB925588CE954FEF0A9963BCA0D46E9CB55FCD7356369CFF9185A143DF6CE -C633E2E094A7D6324A13007FF13A3F1F04EE83B9D8EEE3515050DF812E47D643 -99B7749411E8AA78EAF53938D58A7C3D36719A53DC02EF5759DA9FA4C424EF50 -C29B2507ED58510EC71BC32AE07555A8220340220C8D435B72EBC57A9EE278B7 -171BFBD75CE3ED3185DEBF4946551D5791C6C2ADE95DC61ADBC6B3668DE404E0 -DE1BEC47D34FEC9CB6EF0A676D72595A5C797739443935A1C0F3BBB9BC147491 -86676B7C73CBF17DC0A5D9DBD20F763333F26E773B71C9BFE6C6DEF761EB453A -439A0682B0202946F94319FB032BB45A9B7F93B7C142910556513DAA6E9E1ED0 -706078F99BF530F0230443BA53DA58D5B92BD2FBEE6578AE26DEDE2B077EEBB9 -A4AF05BE6E8535A57EF046F661EB94620526526E0C6A8353563D9BC79F2043AF -18F46D0AD00D62A6175F8474A4FBE1DFD6FB8A07C5A04A8F988A71C2B5D264E7 -D2ECA9650930539BE3C154C1E26F153E5CD4E383668B66A47C6C0289A1D649AD -4530330291F36817ADFC64EBFC9D74F72B2CDE6C49FDAE5E7C1A0AC40077D464 -48125FABAF92D304015A23DE44F13FA0751A7774DF07896A823C504BB3C6E077 -F3D427980295530B247D05E75A41D2D7FB6D4533A6494A1089A7C2FEA20AE70E -DD2A86BA5BD09766C866F5721C4E3FFE1F08BDDC09867F5666944D21C4922BD4 -D63246818E7174415A69DAF985B9E4AA95DDE110224DA63335CBD36B37D0B3F1 -7DAC513F8580CC696FD21BA4BC4D3620EDC0CFC6A159A19E04FB3753D56D04B2 -12F09F4E4F5E1507A342FCB57634D5A3900288C83FA636F0D76C33E49FF8131E -A0C9B5105367629FB72E1D3332B25E0A0C08BE859FE40AE649833361F40A91AD -CAD6F1A969B9816DBB161D5E9D58A51C1CC1FB36F4A6C32EAC5699CD0D5FE30B -85674DD8681C4706EF0CAB45B785D787E82F03953BE78651E97627938E48E249 -8EEBCF9FE2154612FC0B6C4FE34DE55CF22B0DF54C53315147EACA69646AB3CD -9277F0E43114541C659FFFCD3CEBE586143319DF947D0E78974ACE8AF5705859 -54DA54AE4768BE5F6B8342575A1A5322DC38057C23130372754959F47D882F97 -0DCACBB1215EF85ED378E1ACEB4CA9B8B48D4838B40771D152FD046A9D3B035C -5FD66C108B2C6C1E571556BA6B6B18CB4B7B76A7D774FA4FA46840E9BAC417C1 -68780C4B3EBC6E7ADF6207BF8C3BAC0CA6DECBB9242FC9B9393A47293F95D727 -06241ACDB746132AC66D853B99E85334BD4077BE60706BAAD6A07D22D7DF4A92 -25F0AB7190DBBB1F86D8CE10C0F193C480765B09F3516800B171E076C44DF2EA -A55BA07E74564DAAA2816D61B90AF8F53567E3EF1E6C48E6C669F09938D67723 -0A1B01540744E07A72116BA3AEDF50CAADCAB85AFD468AC8172836DF0F3BE3C4 -0C9EF4DB825F8139B4815B48524BA9020264349D029EC5B62121EE316CEBCCE5 -EC6A542CCB1FC65A82AD645CA1A120D674A9B054DA43ADCA66E026CC2117D22F -53D11A3ED13636EE157E5CAA16A88CE5B80C9741F807F2306487540ECB6AF9EA -4D182537563D342E0AA6522EB6A0D0B9E11C314EEF1C3AEA5DCE917BEC0782AE -61A24C89C1A1B19F3D469BF41BFEBDB5F983FE6A8E4D18D972FECBC8DF4437D7 -19C4A597CBDCB37063A173A956EBECB8045DFED4B389DEC45BB276EA2FFEC124 -82265FFD5363599F1A58945E6ADB7F2881C95C5AEF27BCEFC4040EA0B7DD1120 -68F116A9BAD8B5463197AC1F1882F8EE0CE54BCD586AD0913E6DF02000EAB334 -FB16733FD51B1BAD17E24C3A8EF9876B62075098FAD4C282AF94B5BDAB9080BF -997BAB81A384871560D969437ABCED943481647028C2A30463475ACB11B09EFA -C7CDAFCC00C2E8FE1EB176C0D23A1666524E5FC9A1931EBD590BC06C4F9A399D -C0334483E2C0F46231047516C846386CD49163838E388CEB85B2CD5E34398603 -9C04A95ADF5A50A2506D4170595532E18E77A2E08E4DB1B14418806F9256EF62 -04943135E7595F087D541136A09EA265176C909ECA656E51D106D5716695A9E0 -07687EA7DCCC992A9A56E1910F399D2E55B53EAD3D2BDB7CA4FF2342053216DE -0E25487F416E0AC476B36F2E29392319771745B33D98C26AE75EACE0CD9E3E99 -6C8FE09CAB8F0B97F3C69984FA530F5BD467D980598ACBDFFA5587A0FB170E87 -DD72BCA1E789B9B0DE400D5520EBC5948B2537BB5E8DDEE52A2854A0286419E0 -9722E8C10EB8539AF589D639250032610476BAE69EB8CA9DA323CD6205C5FC41 -1DDCEB15425E8ACE6CD67150F718F4444C3CD75609854657CEDFE3645FFD46B1 -7819B0C500872B816FA83352225BEC45C0E25F9E6732180EE75FF9447895E1A5 -22132CF292ADCA531F518324C5F729B5D3CCE2FF4670C2F4C648A076B71FF576 -284D112156C72AE92D4CE1AF263F7B633F4BD9A7E83F3A2FB916B846EE4F88C7 -1C9942F261F70AFB02EF9DE00B92711383C3D042427071545A4A9A42E9BE01DC -EE694AC72EC049FF97CE57AE54282CCA0C110134CC2A536E4460D4F879BC4C20 -8AD3ED02BD46B54876505A8252D14954E17F75892329F8E60A677A702D060711 -674F8CCB963389AD31D3DEDB786FE7886D2A3964C9850214D20D5472B1191B72 -518923E9528989A483DC1C83D3DB41423DD003680EFED45C3827BCA0A721E269 -7C5B9C8AE7EFB2FC0EA6CC8019B832E3AC08ADA6365EF155376E68C3EA840D48 -AEF03EA4C39B34A7F8CEB9CB58ACA3C970B2D05B90C08ED91B35948E505BD0E3 -55465EE1B2577F357D354383055259FE4F9B24DE507CAF09E63B484F3B97CBA8 -A8C464E7BE0FB268B06142D0ABD47E199346858AFFFC21D1FDB9E92E1C76A7E4 -8E6B3459B61573639C91F8BD3237822FE7518A9DE6B052CCCAAB5648CB953BB5 -4DB3B10DBC7F5F7981C18AFC07BBAB1E4EE212DC7EDEA1C5FA5852F341F1B92B -2FFA14B91C18345D7E5A3056725067BDF82B4D267FAAE6964C0C66FE34C3200D -00D1D6DA2E128C225F70E59CB745D1DCAD05159022C231DDC9DD0448273BFD07 -FC3D2B1FCE1A268A88C737EC08AD1E74AE9F1C35E5CDD05A1D368D2D3266B8B2 -041ACED6DB72FE237D8AEEAB9097306E15CB07D35020BA71B72FD3AD179FEDC6 -51127448F570F0C42950BAE23E3703737FFC2747B77B5361036B9BFAE4D086D2 -89618A720A8FE4673F17E5CED03C7E5DC5FF5109D29D3A8DA16E9CA89B0A6430 -33F65DA2E0F3CB256ABECE6F4C12B0C354B87BE180B29FC8FDD2518EBD2F2252 -9ADE33F13C50725BF91D3B8673145C2FE7796FF44F7B27433CBA4104F6116E9A -1526CCC026966B42F132DE2A66C2D056084A0A9998B55B13E471493094A13B89 -EDDC3C4ACDE9A20AB491FCFD22C391F3576072584BA6032D15121B1DC74CC430 -C7857B97988A489839EAC6BE8C0073D337A4A4EA75FA5BB9F8E0E2B48B3CE03F -D8162AB675CD17A0F7BE0E584101514AE2E534B114F24C7D309C6515E8893A7B -86CF7EE551F9D452D4C1C34D81CFADF053D048C8B480ADC56477BABF23764C39 -097FDB67EBA14A1A4287657CDDFA5A67FB4A7028382E3577F4925C02945A853A -433542F9557376FA5D9DF95731FF7E2F223C593F8586BCBE71901DFEB777E10F -93B857DF3135864A52BF0A9E2A38F065A4B6C26265C347BF35D29B4D11CC849A -A7275BF9171D6165ECD861F34DBE8CA800945FFCE7A6C25E8C016F5BCCD1DCF7 -BE19EDB8441DAF6A877A5BF0606D3E05B33970F75DBE0576EEC49E3FE180BFA5 -473BBAB151602F8BC3F29C5DE8F5DBE0A0E7EF5330A1EF8DC4AAE7F63B50A52A -8BEC561ADDF8C8C8B78F7459F2DC64B829285A06A986532D41929D19DE277881 -DA953A059D544D511C3143DCB2DD1F83F25D794728AE6A2C5ABC5935C54CBA8E -E4D3C58CFD734E9ED42AE36A55AA3A77D2B767C051FA2080346B073B6950BA6C -EED1A76036F900E3D3462AE4DAE2E24D7FE227B29406D37EDEE12406408A44F5 -A29567BBEAC6F33B0BC036A0B6FB4EB9D04290A41BB4D31DB6AE383E1B54EB1B -38D0003EB093496E01A2B72C2227087B1A1B649D780E0A7F9560D985771962A0 -EBB2063297B0B57896AE0693F8E3471C587616D471D26F2BB98C3444655EA3D0 -65C42BAF64347EC3FB1071C8E59D3AC3C6E006D85F825210287256B15343CC71 -57B76F102F81A35B84CFC8CA32AE28BE78CD485211C81287343A8A92AB08C5AF -269351A6DE0C0C84D91B94C233E75ADFADFCCBA594210FB5002E7927B0A94350 -8B7F5CCB72F517A511F2EFD9F0D2D2D2E6BD465354977B0490B26451430E81E7 -5EF2CDE4C5120F13687832D298E46B245865E0B9BCEB0464009BAF139093723F -73DDF970BABDE8150E24E7FD1D9828DB5ECAC738306752180B4F84336687EC03 -BB4D7B2CB594A213E78BF8DAAF126B7147CF0F7C0EB62F0321227FF4F01442A9 -FF9395FDE49E4A38484DCE80255C650DD76751141883C4DD5CDB50E945F58174 -A1D0EFF5050EE926984642647C8811F8184B1822EA238147DB0F1CEC6174C6F6 -DC6F797C80FA75AF54679199EEDDE021F29472196B09125D1F86ED0D9025FBD2 -718B7072D6218B083679DD680CB37787BCA575A99A65AAC5E090FF92668E3C50 -D3A445F0DAF0B2CC3C805A727AE7CA89CFB7FF3F0F3AAEC26440EB0DBC2ED1E4 -20CFCDAE3CD30F6A7536D52E7A4383A8CA4EF6F001DF5084D0941371D6DD930F -393FA65D30F0CE9E93908E5939154160D35747FB7A21DF779FC7676773E25AF1 -7484B7D55A4EC58CDF3E2992F9DF885CCB034B68395191C3CD1AFBC7FA0382B5 -6D0815911618EF20991372B7591E4B6BA3E634D560936494D240D5AB8153EA44 -8C8DC1F2CF6FCB625140537A50721368B0BB2A2ACC819BF5D3377BC04FF554FB -0B811C6E1085DE61E6D97AEF0CCE6423E609864F543878EEF87F704FEF706B58 -118C799C5B4EA660A2D80C9FB08471318E0B8EDED2226244F4555D68B673C688 -91F9A29EA7A5086D9E91ECE210150C6B7E6CE99CD0D1A270F5934F6A44D579B3 -CD6CFBA6E7FA277F0EDE3413F8C104B46EC6B0CF2B310E1E06DFE7A1C2677B41 -D7E1DD5F78E9A37B513C4F52BB1A169F1C7EFE15BB9591FD9E40878026D5315C -1252CE150FAFB4C40270ECE12AEFA71D01F4D93898E96A5A20B1B6CE98C0AC53 -8323CCE90A0FE1AF11BFB69B0432AAA4D77408C9FAF3AF861B4D5326EA418D46 -8E9E8D04F512DA6972B73B39A28A1724473BC2B71048FC4A9056CCBC61029A4B -E04FFB0B462F69A7BB49F73F2AD2C52154A92AACA17E9727E6BC5BBCDBF8B22D -5BECFC3EC7BF64FFC0378A4A927661279150B2E4F2E5F0CFA1C9BC55219F576E -20724504376761D1207457AA051C36A8B8CEC0614156B5094F4F4F755B3E5968 -06D3873D41B92A1C551D0400162CEA0FC5789E48871C6CA9E65E32FCC8E13CB2 -BD72D393CA9CFAE7BD3EF3BB5CCE7A39D97DE54FDCD1F2209B6C93976D8CB065 -17DC3EBB4925E54AD59FC9895DCA3056D23D470C25F9C9C36B8106EC93177AD6 -42131E4811AF252443D9F116D55568BB7BAD05822B50B7476F1720430E68AEBF -FC51F20F55910B5BC6A02E854C2671C4BD73EB6C66602B8F1A18F27B206069E2 -73CA0CE8AB64211CCE98A122A21B94CC2DE07BD7A2194076FBC5576D83AEC2C0 -06C7C06C2894D827D10150302A91B87C97FCE7DF09EDAAA126C1887A5ADFF291 -37DB8EEAEB1EF1E2E7FF248030A16362DAD7332CDAFD0FED5E510AE68F1DF090 -A4AB220E6231DFF1D443F0862FBBA988DCC06524ACFFAB50F9EEB0628426BD54 -68E89AB33D4549ADE279694448F05C0F4CC0015F014211C617428688CAADAFBA -61ECAE6187CB8460EB9FDAE0C12FC56CEAA06F8B7B2D261709A560F7419F762B -6B2A0C5D99D481223B5328ED5A708A1D34C782EE9AFA8A97DC6C9BE4B15AF47F -0ACD4570354A2DD0142FBE06D639C5963B9211F23CCEC147BE38EC10F3CA6F5D -1F10891B924F205C4DCD0475958A7766D908438CC96977B634A5C5BC100ADB15 -40A0F7BECCE4713FE5FA1FD0451457CFCFEB469CD7B839CD6B09B9B08954B63D -B230775178DE5FB7E5AEAB17FDE58A51F78FE843FB35889A3E39692950333897 -60B12D5BE451865881C41DD22A0765E3FA5C85F69AA78F97F684B9D9C71B6368 -1B57DAA7D1FEF54AE5E3075F1DDBA4A959BF86F7ACB2D1452E5E2DE36D877746 -3D486FFF366C84A4700F29FF696E8DF3021DF08734590D2174C596A95BBF2B6B -D7E6B9C83479F245626DDDAF9DF2142F27E0B71D9C372FBF2D58FCAD037D0022 -65DF1270BA29DC421A048B7DCD3B60D90A20DD06E681A0999CAFDA7D75750E4E -D9110F3617CC7CEE2D0CC603011076E51F872A6A362997F4FEA78195A304F68A -2925EF9E384715F42D6DB37D6E8DCF670014105B6DBCF3E9C11A8DCC6E6A2C6F -1992D5248B31CA8CF2807FB3F709B8BCD951FF5D7B21333D0226F144AF16972D -C557E4A4B362B5AB88760B999376EF4EA1D4AD4C182CC0CA68CF5FC751F54FAF -6F7E0E0564A034FF2F5275D75DE3DB58A61B67B14B08C8EB537446D913AEFF23 -AAEE3C6543F2859C30C030A029C127CA959B67B7F040C43A6E2A67B59B2F1F40 -0F0F629CC7DB7FD0E0CE4A11BC3CE9F64C96F72875F735E65737908B4E79856E -7C28DB8459F1620A6ABBDBFA22F76460D75DF78570C5EB5FAC1CDC55A8641539 -4E0521E764E6D11F0363435D775B35B3E4EB7116DDC5B77A90251A5F4EFBC471 -E8FAD7FF1596B5C11C7F64CB9C6269E5A7760548040EF48791B81DDF6C4EA854 -4E1F56B6DC3DDB8674B0C46DA85295DC7F7D8E5A7868466341A1A0943AE23BC1 -507612F97A051495008E7F0FB284E6F50FC435DBDE300CE81FE6BEA25E3B80D0 -74FD8E44A9FC00948625F60DBC7D58A9223EFBE27F851A6E74C34967F74061BC -4A1A1629B897F3DEF583720AB1B6B94BF00937404C030BFF5823F5DA1CE8BF43 -EF097DAEEB30B162B6DBB183CA1E2436F971B00AC4D4304C9EDB07473ED252E3 -6F5362611839A2AC72B710B0B105EE97D1459C45EA23FE2A15BFCAECDF3EEFDE -CB49999F3F638115572C6D30758B0EADA58FB57F6E6CF2FEAEAD74FD644836E6 -E8A043E5AC590BA0E81A4624162C3BC62B02C40153A9FFF2AA1B3FF47DC49A1F -1CA9B0E0AB04D121C2884C69C1B6A13ECED5D38C3B565F758B5BC6BD4321CED7 -7A4C89560E311075DF082CFF98E7206EA61AA90E51501E9FBAB60EFB6A5EC3A0 -FBCCD71AED6DADA9E04D0A5E029CC8823AE2181338A4C296D6D6241A56671D6C -328CC4244447EF30EC646281AFB193E1347364E5586E6FFEAE064183AE6C4A6E -D8E496530F32522202E4E23576580F21EEB09E86BC00C26941760B90D58FECEF -9395A1E8FA85BE0A25F121360D8B4F111933F1D860CADF8BF692AFC1044B7CAF -6F9325CF8D6F2F6DFCFF736F379A21B9693B0D72942D1734D97603EDE114A42E -B4DD3FA32E577FF3B2C85A16D99680A87B2AF2DB260C962F9C3059829514BD5B -E27727A54E754E7FA70B0087BA27214B69D1861F86B22CC7F76A56E00D0F8B50 -A85375D5FAF17BCD004B03EC273215A84E1C04F01C3A06289A3566AFC76837AD -58AF94626CAF4E3FC443B0F3DC1E246D1CF0BE530B06BF3F8628B02CEB4F2022 -C8AF6AA842C3E61B51C441EC126400FC1AA93542A653346D1C64249CAB243077 -0A4DFB8ED685C5D8EAF9CFF2E78B897C7E99454662AC8C8B2F8E0079FB2119EF -B5A9A9820EDF8E1AC4477DD850B44167A76B9F9AA448B57B31CFA3C747275829 -6F9AD3B6383B6EFFC8D28FFF6A5FC175B10BC0022A6390BAC03DF5D0FE264A3C -A3FB3B94A385165902B5B5BF3E0EBDAC082197AB82EA3EDEDC13A949CC2F0756 -4FAA52BF4FCC7EEA9CFBBB5ECB32DF883FD40B28F37C1CED4DF4500BF2BF2097 -D49EC378502CD4936FA719F84552E51235FE345F977B55523D199D86F9332943 -158F2DDA144823167DEE969829240F8111751CE5426394F66D08E6BCC8376D39 -E20DFC3664B337E4A1A21FA4BC6668E14F949157D014A1E497D615AABBF1E2FB -CAB9640C7943366A8CD7127E9DF7E3440F16096ABFE72069A878765ECCD6D58A -28E12D5FBC9A6A9E3DB670AF29F9D4B229CCF78643181FA79C4E3B9BB5970132 -5FDB2326C44DA2D8A86FA87697F72003FF1D138564A34A70169ABEF156318CC2 -92232EE031BF38193B8002B16334B2EE23B264D1D79931935AF75C1088290386 -983E92864D0A569AFD244DC00DC9C8108050477E6596125EE281D4B259580E8F -3BC56225550BEE5080CC573B33B64AEC95B6B76D59D0DB199D2CF85A746DD6CF -F1179080AAD7DCD25FAA742ABA9E8CA919BDA8F4086B01D39A4059053A1E3389 -59C61F675FB012FCD134DC06BE2849C535933170C82BF670DA2D4A164C7C273E -B188BBB7C6A74E4B4DDDDC5D539B8D8B221D131018C50E5604A82B38598449BE -E6090D2DE21BEC79BABEC811A9658447DC37DEE03CC00C7B05800E9E47A8BC64 -2B24CB078170A99C86BBF9764CAAFCE21C818B1DC8FAFF28E32DB00C1A0258C1 -F7DD9F6F0642484829FF7124051E5D6E0D284059B815F262D1A343A83D2FBEB0 -FD479F96B60C966A30DDF487C00C257CE707333432507425A24583ADF4DE6084 -4B36FFE488677C1416B2836E5EB7525AE548C0A2BB25532DA60096B1C0A69133 -B89F6E30647258E335BD113F555267B91DA2EB63F976CE5B91E04CD5CEDA5DEC -38AD196D856C72D2D716F67A8C1F0ECFA12E3645229FD66D87A0224B9F7BF923 -A142B160454CA49F4A90F3EE8173344A825C3D2614105E6A27DA65D2A004C11A -1A8B44DC9820C05334567D6860D7EE4EDCA368AF8265EB143BAB61AD381C34C2 -E66E46E82A4EEEC27462E2718A5A2250FDCC5A5B3A294F4169EBC080633C3B3D -5D606B32A5C4A68429D5F279BF56C93082A903EB0AA82ECCB7706E1DC6501D7A -7F9A1C4A328319209547C4C191AD29637A5D112873040503465F2A9A851B02D3 -61D118BD3D927848275960E4307175537529C3B964C65BAE2AF08D69480C781B -7BDC370A37145D95D7B19D632E93D96E16378D905261DF6117BCF69A65ED567A -A3887F9821B235364829007217A7F4144B21F4AE4A86E39BBC8ACDB7722E1EAB -347CEEB8DAAAA063DD258C9F18D4C70A303D17FB25C3E57A088CECC1F37AE4B5 -07CF155EE05B8519507BB9E520F8091AB157BFB24AB3B662241DBA2C91887BB5 -DC2D0A61AF4C419B513E212A23C43BED1B967BA84182B763B122BF0F089C41DC -537BF9F2ABF89258E648C6F3F99CE23C1A78B2F0F5A34D224E21F44D797476DA -1E89E0E5ADBAA25688A34B1688794897EFE191B55FAA6279F9B42351E3B83BBA -6EE00A2E6ADCEB365FDB9286395581892A6FD87127B3CC72F2AC9463411AD68C -E3C6FC354059946BC0068439941C34670E0484EF25F33766A7D611085D5A7801 -DB9657E60E5B5A7EE2E09D896925779E00B9885F30D332F5D041E54A17BC8444 -B3410F63C5D2840BB143FAE497946E66553D2F85AB35CA3E439F6822FEE6B449 -1702BFF8AB36DC48F9DA6519FDA3F4939C52D24D39C56477293C8C460DC67A09 -A5059BF0C68D283C67AD3150A3791EC5DA8091C8960CEFF253EDC5DE06B6FFF1 -970F1C0E8FB384514BDE893ABF939792D396581300D079CAE9C9FED0484FD056 -D3EAF7B50DB157C8FD8AD47AFE1AC786FE846CA144502450284B115DAA36D01B -8765209244D562B5D8D422E1A53681E49DEED6FFF9804856CD407FDA8613F038 -9A0C04E7CDC77B6FED11B45387EDD1CFE092E8A5FA4F339CD8327EC592CD0864 -97B25271F0F54D2190F7F69A46B235E8262DF63978B8DF265EF1A47C1FF772F7 -D0B919683A762225D4A56ACC8E0CDF0381D0F7599C1CEA99E7EF5AC457E37E23 -FBE89D7EA0E6BCA7D73B68EC4F142C4799E6F8264B9770608004CBF829ABC3D5 -ECB0EA38F12DDAD4FC4325CCABC42FADA67E7B8110D06AC9107471C5F4F8F212 -25D2AE05AF675A9DF7FEF919B2D62A634CB06766F4516A41CE1006C32980E2DE -B99C033A9D224B199437357527A77B85F69D76ADAB0D4761E0CD78EC6F5AD4D7 -E323260F2B99BE2C3E72EC440C13FBDF518F0AB1E63A5CFA1700A20F3C65BF78 -F7F7F0941D224048FE18FC08D1D9BC93E9C8DF7CDB0ACF1594D2FF6F753E409D -FEE97D35DD98395BD1B9D3FFE304C075D86ACF8E142671814B731F49A7BDC226 -E14D66B446693F3B2913A3CE424C3CC195F62C5C299B1AED0167B321EDAAD29F -E207ED78DB35DAB852EB8A787FD1E6AE2ABEBCC84AA1B8476BE6C4EBC32586E1 -BFF46F12D50352D25897D4DA3F7533DF06603376F2AEEE32DA0E906514C32C7D -B8C4B564ACBD082B1BB66BC0016063E26212668FD56BFCF96AFC4E47286BADC1 -0F27A6CFC6DCB85E77EBF86D4A58FD6C2487E1909B34D6E0782F42F0FE5EEA0E -B161C822793EEE13C65E8C25821DD6476EBDABA3167FC00617EA90D8E356754D -2FC8F0183C5FAE7204C0590476CC7D222B4FBC5DE7B677DF4CF23CFE9F72F371 -DC7CD888FED9715F3139856DCB030700DBA8E5223871F328F83AD21B032D209A -CC1D01240F91E81E84F14DF02F245E673D8B6F723AD275024FE3E531FEB7AC5F -52BA7509988E85A6A698286271FA70C65A36218B80873B9D56E91264AEF3F9AC -9313C083ECED57CDF651894797C14874BCD3B1418E54D3F6B80CE12E8BEF5EA3 -9B5AE16BBE96D549A6BFE01F626AD7DF71AA0043954F185A8F141E106C4B9AEC -49ECB211E42AD7970F5E960271AF7009729C11E45A4C39EEF229E0C2FD4B8023 -5F38F8D9595ACCEE0A24749BDDA55A3C5A743F66A6974EE203C04C0FAA287BBA -571CBF1111734FC7B1308E44136786A7198701680C3980E23FF09FE51A6C9FFE -D5A0541ADC9B6B6D8C15A880C009CD178E85AAF85B83DC28053EAF167A964D24 -D1832DC747475383A3B4486D31984CAD52B4A4D793E67D4BF92F6A71A49CD172 -D803038BDC466E9D627BB08C268E47BAFC8CC2242C5F1F6A1A814F601B45ECF0 -40F557070544F7CD70A846D08D59D60C2914E01EA0F4EFED5C6401A12D477CA2 -4C1F07D44A5FF1527AD4FBB02C4271D41650940942627191D5ACDB6227240854 -280321158ECB0E8174ECF1BF73840D27209A83962D4A87333E6D9804DFE11D8B -F969A361CD315E176EF1C1D2436061E270C7D8BC3B09DA1BA5EFF9C4ECC58EDE -31D6E4E63B36348D07A42F45B919B59F55E5A5F1CF9669FAEC607892F3BBE4FE -CCDE9F8244285AA4739EA3DE6B1FDB388471F1180E1B6F4AF69ADB68A2215ECF -2F0E059C41418FFC67415F8B72B16C25D259C9C7274E025C4E4F664A5BD48925 -FC3A3EF14C99BBDD20E34F77699A7EB639550026267F2D31D5FDBC53684706A0 -3D84422234B8FE3160B6354B4F9A718160D0050D5AB619E67270D2B630C3638E -B2CAD410D8791633DB922CD538B8A6C2C8BC6E8F79511747A657FC1A6FB480A5 -CF54F681D2C2B6F443B6AE1C211D5467948C7E76F3962084E2775E1B59B23DCF -434E83574658619F64C59679A4AC2796AB2F4FE305CBC1D1D6D4F876EDCFF88E -5A37E2F3A1A7FB2C7C252918760B844EC7683B703827CA40F1FAE7FF7A5228D5 -8D374D17D2896D9DD2CA7073B17E377D948689641DDD6667EA8552E51EAA7CFC -F113E150D72444210427121ED9D22322CC5BDEA8822363DD51424A79A295C414 -18170FA788B6FEA2AC0532DFA18948383E02155B430284388EF64E304DCA180E -B6416D62F4AA57AAF7AD57AEC52B5CAE290882E37DDF4E79E9CD14A1848C886E -72536C48AE04CF45FB23ADD21C1BF78909871B2EB0F2F111E90F76CF4CD6223F -3ADBDD4F03792BB16A5703BEE7A961574039EB60366B2F6F20A1F1F2B2A6E1B7 -59EB9C83B6F77947652C9C791AA14E22C59E97BDA9EF6F1A19CFDE047C706961 -338ADE8F339CBFA4013CE486DA8F356CCAD0F595EC52AAD854E992EE393212BD -3A7BAEC6B0B311BC08F833B39A6D7EEE655E10F33A40568D8FE7374940590ACA -C786FF4CB8FEDDE4D21355831A69102289F1B0A1564330DF76B3DA632D121A98 -4EA255D9CF8FF013EC80BEF4807D90EEBFA0CB897BB11344C45CB6EBDCAEB9DD -0FD011F7F04A92B150CD7601C79F988DD053AE5492818F8053A45E69715130A1 -3AED869271C2AE5483DD2D23424CE02D51F39DAE39B880C9BC0AFC38AD569639 -C75C5916742D25010632D9907BF8DB125AF6AD3708AAD9864BB95AFC83191697 -7C9C39D460F897CFAEE19C9197B0612D5ECAFD208F3CBF023A7BD4A01AA45235 -EDAF7F18851D7A1DC4B29E1C99B5F5D2DF75FEEF09FB795A0B6FEE0731402BAE -11E9AC3045754658579BD19BC88DAE5755BA2F10D292EC93F2F0BD3DD8B14D3F -9CC694B0DAA7FDCDF5BEC2B6406DFDB5CEC4267FD6C58D435D009829977A178F -DE31DF24F608F80555FD941E93D0CF6F65896360B0D732B8932F34572B00579B -864C7235761B55D2503B40B37616CFABAD1B55DF51112AEEC6D3C7E7E88E4A59 -F0A24735C1CE5D27965F3F3F5E76406A989CE0194957734A4AC751D8E1B8C975 -7C53D965F6B4CE46B2E97971CBD7F84D6B7E4D57C197CEF1D46DD3BEF074A2D9 -6488BED781E2CF1BD9DBD35DE922447A335BA4609E4EE0C5B7F3DAEEC976B012 -8EAC49EA0EDBFDC29B4DE876FE853444E58D3509B4D3BF4DA8BE3D8651931600 -5639EC591F42DE03EEF5AFF1B777C6EBC0F35E598A946599780B327AA08505A9 -1BCA7260B58D230922A0D00267066BA90769FF0FFF117DE6D1AA8C8352B48EC7 -E91B7B26683F5EC42705570539AEB82C62B7901EE02D11A4C85D9E94D0FA2A9D -25154C6E1DCFCA7F63F059B1DB81F452E30935C8AEBAC73437DD55427932050F -B4CBDFEEB79AE2805777FCCFA9C2D56F51E62869A02ED1242DEFCBDFFE27C9E6 -824A5DFD5198AF198915EB7A9687B2B10A95AE6A43B398FD5E3C07210246071A -84FB8198E4561AC49B0996280C9DEE90F53FFCF54201C2102DBFF3F985EF81CE -E59FA48620AE2590518D34B54639E1F6EE978941BC58842B710CC3209C373153 -BA02D05BD7D81C12A420B5DCA1CF312E0A3EE828F9D1A9A8831E680E3911BC8C -CAF65042D9DA179E71913D8D95D45B9EE45CA31EE702E4063A4698C91F3BDE26 -51062B8A1818171C43E4D5EF157F8F9C681FC44AF6B6D3FB478B164097750915 -C4FC1AFFFEE56582CDDDAB8B33D4E28A5F92DCAE86A6A552BFDC80DD5ED4CB90 -0A7113CE4AD169A7BA10E7AF39F3B3A7D8AAD83A1DA7111D822A5C5CC0C80130 -542B4CF3F2BD5AC6B30A747865FF0E05601FB02FA98E32E59F71A18774EA8B94 -7C249A1CE21F5E77443FEA2B9959FAB11225CE5F663F6C2F48EA46B9B9D6DC8B -4A5FCEA99E451AD657EF8E128852F98AA3CFCC17FEC2118D2AA26124093A59B6 -4A012D95442C53BC9EFA5EBC8D06BD4C3520F8D75E106214C5BE4E526136DCF5 -6891B7C101B247F6A3932069558580A072AE59BF238D6975E749A33B145B8093 -1D58C4340CA61A0C54458FBC55508E289DB0145434BE019299FBB0E74F94F39B -690A6E2386B512C860E280CE25DC243ADC0A59C5F77C636710241641362F5038 -3FC9682D16309EEE623472E089458BE03546B85F3E7D132E5B17A05FB5338F2B -33096F38242F284DD63B729385C64F714988DB57EB57F4CFEBFE79D0480CF913 -D04B2714EB042979761AACB24C4C2495E823A92C79D35F3A0BC8CA0741855609 -DBAADDA0E47181AC4403DDBA6A9E5B0207851D51EEC2BAF368F89CAE19F5BB1D -899897CF090B97963FAA0E30FA753F2E8E513207C051C3C80DFAC97F06B2E71B -B13E8D288B4DFC95C72A95FF417B0403ED28E754D3CCE7A72EFAD66DCFBE5829 -21DB0BF84FC5EDFFD42A9160AF556BE43811D108F79B74B4702A06CD6FAE8275 -27BE57A281B70525A229D8C10136B0B47493A11F5ABE81598352A969CE0E5497 -939773A3F168FE12DB04958DF1674163AA7F5115F213C5FE88A2206FD1753C7E -72B9A43ABA238CE549258B7DDC7E945D0A70B7849DD9A586FED32DCF2F007D02 -208BA74D171D7BD525191E88B7FE14D5FEEEB38FB6FE0E18E7F50782FB983236 -432806AE1E48C9F1273A31B053DE99ABEB95A5890400406146B0F029FBEF4968 -FC45163A5229EF6009FB5D8EFA536AF5B6D853C295932B4E3D3CC174E871C457 -F4D5EC17B0B0C51A7425C632D5307C7040D65CC819EEEF266930A08C98932960 -409801A0155523C435F211EA6238D7C7F8E3F2259B2EA10723C03A5E406E89A4 -150BBA7EE0F424EBF43DD0FBE7999539CA12737C018F0E87FF11D8CA7EF13931 -8003ABD445D40F72CBD39E35AB5F8B21BCBA13AFA918EAAA8D00910491E644B2 -83CE53CD39AD6A34602C396AE2A5C9378AB5E8533A006A9F38F7A802F8F52238 -DC206A92D30F5FA06511043EA7B8C937CF7BE1B395621C71D83A0131F9FEB34F -56A2900386EEB11F8A9849F95B76714527E2BAA1057883B619DAE0AEB70F5CDF -8298078DA14ACFCB4446296722FD3E87D6C1A3DDE9BD16523A4B3DEDA4F605F9 -6E77C9C6BDE4CB2E8827538BD7EA2C3404403D43F42AB2590DFE8F5557893DC0 -A2B4CB3638550DE30A21426025E4A4BBCF99EF67AA9A3346B28D6B8D14495FBF -BC37BA0CF97152B42796D5C83CDC979EE96B35E46ACF4AF41F89442492E7D8F3 -3FC7F81A41195B1C39146D9EC849412E559E22BECCD064FDFCB225E0ACA14546 -5E806B018DA21A5561FB1BFA896475177347BECAFA5B01BE0B8603C5A145FE30 -91E9CE6AB7C30113031D6F02CB665C1F7437BD382DC24729099508D2A552ECA6 -34B0DABC65BF5E91542991AA8965A7D648AEAC6AA66BAD17DE1362DA340998E6 -A4B879E5C219E367942222C16F0039684D01B7BED4B708A26A02FDBDA72F8A40 -D3497EB0C8956847A95D727E92A2C8E1DD4D7E55A9507C05C93F59EDD4093CEF -AB9786CF6E19534CA1950453153C5F2D5AB955F1B2721B58C4365FF1AFCFE731 -84BBF060B969A65B859BBD262D5D4F6A1D54DDD26C08609DF3D5FAA1B7A0F962 -AB7586AC559A7979BF6A35E695088A26A6C735A16DD87EE5C15676B0177B72BF -5018A287F227FBFA1BE9869C48A2B52B9016B98D1BA9645FCBFC6B7315F133B9 -6B709115AE85993CC7BD28C334B011326F6BFC23AE8C36A66074D2DD048D2870 -BAE5A06969BA524821DF30AE39A4FF3C9C7E6525786FA9670C091A7A40A71B99 -451DB071F7A6B369D01A5D54EEC7D7AD2CB0649364EBC3C8D32F4E7CBF8C778F -261C25D478C2E38A45CAE8BA8AFB1EDF1215E48271EDBC678C480617A263913E -6D3A1EE7E6E71255243161728368B135FF7EDDF550EF1B4FF066007477FBFEDA -00D037015EEC3B850ADCD96C553112C4B5CC1DFBA58A9C94C27717F83F8299F6 -28409FE40C21A948CA30B994032C0DCBCDCE8291210F7C29966FAC151BC580EA -49AAF13F8796E057C0B70F737BE4E31CD3EF23A3396E1989305CC15D14C1BD3D -2FD39C25E2A08E85750BF5911DC8B113816189E7F2B59B37C8CBC60890324130 -3C8483FC71AA203097B8C88A3D5C62DA276C823012F50DDEE1AF5426A490467E -AEE58894FE5557E459004CDA64E8620DE9905CDB3564DE5934C5EB979F5647C6 -C131FAD069C5D7F2880D997270A70034E105DAABB5FC1AD0D2A140E2D1AEB31B -D67F9B2E6F4CA4FA9EC7B475C2EE40BE6B45813A142037D5898227F3685D96AD -D8BFEED167AD99217F441E27D92DAA6C06E3A8D19D06139425C3FDACDC3C7987 -60554CD6BF2DAC51BDD3EC94B72242082E8BA940335925A40D33A5C19BCD55F2 -ED8FE297A1053A46EF2FA1BEF2EC3E40D01A3A746A6FFADB12AA1999BEC5111C -C9AABE7EA424CE8FF260A77814E354C2AA78428D8BF90D551BC247E5216DF2FC -1010A78A30CB47879C3BEAA16173E7A41AD4AB262EEA797AE07A715EA4F12191 -EB5E67B7946759D86A2CCA31798E2ED1DEB94C49754AD2B37E5CEC66F4AEC146 -47317B763B391403F4FD5EFFF958291DC7928C7D4173E2F845DD6922D0A7D989 -0140BA1983838C5F01EA39BB2FBB91D431188811D21F4CDC145289BACAB8C78B -101D26AA7DD4E62D979D100BF4CAC447A546929A5D0DE4AB45D2A62D63A3055D -56B82F820899E6E0B549CAC21C2D5CC6B53D591A8AE8AC1B8D39BCE5834DD27C -4DAC8D6B37DAAA2493B3FCC8419869CE54EAECECF9446C3242E6B73689183AC1 -4D3CA2C0A10254CE16276C7D692B8D48E2C1DDCA1F57F351076A1757695DF358 -20F98D5FD44555520AB33CF0A6724B3291E82EFBD1DC37E15529D1F9D967DA16 -C611494E6472C72046C5BA2727D4CBA1690ACACF4A3AADF8685A6EA431BDF5E7 -944548F3360A4A8D211FFCA9845D6DC851991CE1BA9EDDE445EFB32A716D08F3 -DE90C9BDD390A3958E0AD63C92D7E44AD27714D2B6B4BA394E8F53CB41F57B4E -A08B9FC768479210827931E42A74600B8F65CC1CB1AD05AD39C21A933BE4C022 -EF403C87CDE8913587D74A9A6613F6E0D798B7D5AAD17C1D24E1E7C3A6217F90 -B29344D9C5BBBED21A4F4270AB0E6FE3D1A8B6C509E17F727A0F19697D152765 -8D05B0B4299EDC2CE4486C797406252457CAEC0D494446002EA294D8506EEF3D -EE082ADA2179B4BC35BD4B1B59C2FE7CDB7A905DF6D1C6E70925ECA455088460 -98F65C63653CF8307892D6558747AD380A346D75DCA45BA2CADB2421F52024A2 -19483548626E +5262FEEAFE31C8A721C2D46AA00C10681BA9970D09F1EA4FA1566B96E221864A +45A24ADAEC63F61C9FD18376D39E0FDDE3FB4FBCDD6A7B66068A99D31CF54CD7 +DF2262DA91CCC72889CAA62B1D6F2155CC8E940A2C35D8CD3EC75326188E2D30 +1090F31AB50F30AC77D2C445BAF7323389406C44641B3A72C26BCDA442504D03 +6C22A3BA1A69E5F87EA400501A3B3231E46F96AC3A6C0E4A4F6F21E0B2BEEF53 +E016F34D7003351FD12436520926C632218410359AF9FF167750D3CE0DAC3B91 +B310C457402E05C316F400246C8C38B98CC8030F71104BC4FA0505B5EFA4F5C5 +9E4FA27C3E790D698690336254D7E34451E692AE23BF5FFBACBDF33E25359BD2 +B0E7A0686602568BC87422F32486CB50776C7EAAE7F1BF78B228CA3254510653 +3D6368A4985C5FF5A48AEF16E1AB71D7CE2C6649F2CF4B2879D4FA042239B504 +F988D2FBE87C3BC784E55B8EE36F1BB5EF14FD5836CA448E139EF8FE221E827D +0608A6B90E08CBF44A30669AF4E20CD5C0C8051E5F86062204AF362DA690B74C +B952C9F4799FB2535E47AC019175950A1F3A0D0937016148222B545B1E00A91B +39D2121462F51F736802C523BCFBA894EC11C3353F9BCDF0892C00EB583A4D62 +247118996064991B816F9F490FA73861FA614FEC7FC23A5D45310527B6559781 +F1C805F0EC931D0C60E70FD5AC55F22E6379D369303F63A0E7069237118DA0A6 +5BB55FC6EA1797BC51C1D053401ACD4E9B5E724F4AEB149C38DB0E2BFEE811A9 +A94A7405422CDC911CDD97EC4976E27F766A9E3F84387C04C6367509157E4D91 +09A1F6DDB59AB9096FC43A6F9773ED9CE3DA6B56D10AEF99FD277F8666E72028 +807AEC6C26E5A142496CD41A80EC051E875DF9F547BEF060B969B197AF97608B +F7A3740B3153621A680DAEAB0454706C65581255CA9B40078FA6D352737F0165 +D834359ABCFDF5C212F8AE9FD50BEE9683E7D5969D183C058E8BDA78F61B61AC +98746B3A1750093A40C17EBD4AEF36BB2DFA1C9AC2A12834DE4623CCC76BF5A7 +92B2B2E368D1DF3471D83495B19154836569D2A30F9CB05C0EC499EA5D3184CD +BAE8D2A2CF80C6359275B3894B4DAD7F92501BA9A6BD215256CF9F35C2BDD40A +D1D949000633FF0B5FC7674BBED71294AD28FF25710E968E85C3FE71046BF0C1 +71EF48F8024C28959FBE6E896BD1AFE579764616672C724959FD66C8398ABB5D +6C02C5619866453708E3FDCAC2754E9C333C1123A5F746DC5B2CA9D430263645 +A88C743EBEF8C82DA0236FB73D3DCDFF874A1A5928406838A81E40F34816EBEA +0D7A89406A6F492E5E5E6C8C4D85A2B9A83B6A4304B05AB541041AE014C845B4 +283CE3F75DA22CB7CD78C67A1F067C79B209BDBA6705D80FBF08CD0FEB9D3293 +D9955BF6730BD59495A1F81B708292B509537089D8AC34A06DAE5E8BBB9B0A0D +F09BA6723DEA964F06C0E1A6541656470E251F5AFC6677043DE7C6D85B60D3EB +B8A4415DBFDE3F29D5FAA0B5CE4BE9559595265FA8BC24A172FBAF9B1AD0A4E1 +1CADABC2B71A43098146DBFDF7E126069259EB490CAAB07D5C9D9082C3B65382 +1A91C42F7A93E6FB7E45E3C181F4D4D2E90E303950EFEA65B8BDA15CE232334A +61C0D91EEA5E7EF7A6136CA47F39774462F7ED6507AE3BA10BD57E0AD52F4351 +60FB006B33C7F5805557395A2243F6930BD2094833C3764F9EA1D1774C322152 +1E97440E01FF86BB119C76F040BE412C69D56508E5BB260B68BBF98CDF79BA73 +96EA9D87E0EC33C015C5587DEFA8FF11DF35AD0B9FD908FAC71F93AF0C68D76E +E82B595A3EB15A7F5273826850479F5171200FE28B00C0EDBE8CCF81C0AB5048 +E632E5FC0FEA94982C19CCEA7E7089A0E9E31AAD39CF22CDDEFBFA6DC82BE658 +81A8EAEEF47EEC61CDBDC5ED288119A8DC601840163945E665797C4F9E0A56FF +4F02F67AE5C122707292AAD871FFA4F6C27254E74E603F1103D17B7B72B7DB7B +ECFFEFA7D27954EC39433DD13AA2FA3C6C1E9385FFA112231A8881E582C62206 +15286DFB06E52EF44A105C5BE6037BF65A8F87B2CF9D7D5EEE8FB34C074FE797 +E183C4A44880A20A647C4DB6C1EDF7E46E98845F8DE21B4BEEE4776D558A9B7E +B06F52A66CA8162696B1EBF3261F753131A0143012A7EBDBBA909271C90EAC1C +442248F789A888D236C74E40B61B2560712203934A4511261236C3442D3DFE2F +65188BFA5EF7AD9983D8D273D071F9EF3E55AC84B7A26C3A416DC50F072CB11D +BF6C66C4C6029D4EC968D37A334FFAD4E13A672C99716B2ED7DEB025E1F8248F +274AD0B39A7C7C86496F96A591CF5ED65EB42159CAA2ECC73D721148321BF7F1 +F660F34724FA05B07CB107C3024F05B8D677886304728BBF1387B5570C596216 +106E1075A01F3809D2645640FD5056A4406D15DAA9637FCE4F64A54BA3038D91 +9F752D8A3232CF836257A1CC641438F2180054BDB1F357583C4843CF158577FD +362CFE9F18E259A709F78BDCDF13BF6897E77BC74E82834A256F2209A07F9656 +1FCCBE6184CD4960AAD86D2B40EB67CEDB39CCBC8D76B8DAD588410A3C24E8BB +30418A3EB30CDA1D5DE1F9F74FA3CE6C5B8B39237D5DBE5C57181C34F35C902B +229EFF584AC9034E218EBE961BE27C00789E7E965B4B3FD50F2F004A1B4D59A4 +D4670F2B45B03AF35C06A776068B0AD5F87318093FA717090F8652BD715156FD +232ECCE95ED1B0B92991B7B3CC947066AC9A2FE513B29854F4B5C1A7861EDB99 +8BF402E04C4A0B55C2BE1164CB071CC0987FA87CF49245DC1F4D74114816514A +718EB02B9372F0FE8DD6A55921C746A6D77C8A62EF4739BB312D5E9FA9050B47 +036FDE2E7CD4920C476752C74DC9034C0531993D260928956CB8AC0F97925141 +33759725A0FC267121C706596F7F58011F9CF994DCDEE52B3E8AF20E98C9849E +9E00734D072ED6447BE0C2B33822D4D84A51DD70EE98F9AA075E706B07B1BEF7 +A28C5CEA43F6EC46F89B19A1DAA765B68852C18B6F127FD37630FEA2CA609207 +403C87F4925702010EF8AA6D177C5D687C287DC50F7C9D6D76ADF459AE3E5867 +183C1612DD917455F1B860E634F6256DDC36E7603CDE92419B4494F7D730B152 +EAC35436851D22AA5C4ED5CDCE253B8017B3E0C58DA78E2236827385BE69693F +23CDDFDED12F0FC68FD3682FABE9ECF6F788198108177BB2FD800D1D03E27846 +86E4EA120F037AAD520AA0BCDB7DBC24FF49568CB2A3F74BEB50EA043F375938 +F8174CAAF855E0D35F4556EBB7A5386AE0A08CF8D5239A168117EA9A577B6114 +25F31C016BDFE493D3AFDFDAB881C229474E25D54606851EDB2E3902C1061F8B +A79F0F7DCED40BC93CF7DE1A86658526AAB297D33543B8BB0044A7079329A1AD +E0F1B978B659E870F6D61BA86A1E34A300368BE746974A6B3C7A9CF0B9B49653 +D7E51357EE377BE7C329D3D9A1F203479C13C8106AC2A3C1B2207F9EFB7F6997 +E874BA89443C5F36AEDBB2949A5A0303EBD6BD1556065C153B6D6514FCF5D145 +B519C84B635DC20E4A72063C98A6354C06867266E07BC5F8F48F15CACF2DCB8F +5CD4F6FD2A513808EFE30835D0386362E8BBB0ACFAA38A8CB90CFF2E61C77A75 +AE6909BBF628938300A1AAD2C57C83DECB136D6FC990C95F74352CF354A47DD7 +95C1C3479984BFF628513EB9486607431F297E1BF572F68D229D49258C5BAA84 +D83393870A3055AAD09F1B84D3C85295955C81CF7CA3364EA2EC2B7E11249A29 +16238C6FD69A4068A053B5B816CC992853C1759CE868BA106FE62261DE9C3214 +33672EAD5BF33D55FD69B11DA82F1EB03DC2A44D0DBC5B22A4C49FDF3BF55059 +64878A74A13E0CE9C3F8455AB11720A94AABBDD224E5DC180B309BFA9AE4E853 +EE525318C8647FE46A4FE16499EE833AB4299BCBEB01A00AB2FF651B38C33200 +6BC626EE0577834DB58E27CA57EBE05772C502CE31EC487915CA3441B624500E +D49D9AB311D291B89DA6C4983A5B1EC311258DC3A2BB1DE4241DE809D23087E4 +6753648A543C58AC539BECF337351220C493722E3C6276DF38E764FF28DBAAA7 +FC7858A73624335550B7CE62FB1C5F362634B27E9D2EC32B7B6B6D4A5765F980 +3D1FAA3DFCDFCEF8DE725B06CFBB5C45D50D94BC9E4C0C54F032844EF416F852 +7CB90B35C4AD8FADFB3D818981AE4EA63DF628AF7C699C01B1D724C288A22342 +DD81244DFD975384302E48743A4BD21CCECA7F6226C90745C65BF20673AC1C0F +17D3513EC000C696EB90F11F3A2C627BD8E84345078F7B2B75452DBE9C658626 +FBF4047AF3F9E6E32C72A0C7F88F2ECFF5EE1A3EC5D0892D050B8085F348EAE8 +761715991D5318C6C05A5CFB438EFC19C50E6272EC09AE55DC440CA6CD3D05CC +ADA26D398E99A2B3A01E179D71DC98AE5B38BF08BD8D25F8E9D67D321E7F9A6D +CC1ADCE49F68DD226C2600A08AF48BE73EB659AA2791624DF33C241EDB9C1872 +AD16858608125369F23A8818D0A4D20E7355BDA5EC48B51192A4345FD1B665C9 +7BFA8C9489F9BE01DC5AFC98234D7852A826152212FA3196528DB5238E79FB7A +21BA777953F6327AC09552834E1A40971B491A016E1B59320322B4E8DCBC1F46 +23DFBF8385007490F4E282BEA80A51624FE91B67445C88B46B029A3B50537232 +39C3C1B3DE3D468DBCF7ADBAEC41F27AD505CC31CEC4712D0C777AE82E45AE0C +DFFA5C4D7142E4D6071391A355D913A674FE6673F89761EB1BDEADB17FC89EC0 +C008FC589C485ACB21409764DCCCA76F72F89E8C9AF06BD63CC4EEBE6115A8A0 +527A2F60813149A9F64F9835585BAEAD7144A8B50E9D3734C541874C40FBA1F5 +6E7878EEC7C430C117BF29DAAD30DAFCC88029D450F0581B4C668C8748813D2B +A0D6EBD1D82EB37A89D62ACD024EE08DA679DB12874453AE96A6B49E6C5AEAC0 +64F47D1E61D99179162D02E0B6E424CE114201E056732F4E5971A33872C6A9ED +75ABB81D4063EBEB74102D997CB366466D76378CF060D5FF17DE315E42DD4293 +AB3DCC9695A7706672A098B1414F02A94128F2EF819803A4C82109B98CFAD75F +A2A5B34B87A662F2DFE5AE3339EA44196378AAFB2FF666C931905778BE16407A +5BCD72D3C6132705FC219BD30A9A0FDBB3D4D7A4B07B1BA9B964FD1CFF61029A +3216D6CCC38E57E2C555746D55DF17FCF6A91C30675CF795F7E342CE6DB54272 +3BA17F3794D017E2524BB251E3FDF89EC7FCCE87864FC69B11CE4C3F60357551 +88C07BFF0067A2E0AD7E596F9E0D4AEA603841378ADF1D51D1FB37F0684E4841 +570106772955F37E34CC37ECDBF29EA4A93AB67100E37795EF49E11870CC4D96 +D7A903982739791E5B2EBEA49A7B8EE422DD7D8604B8CA20540EF8C23F010F5A +9B1E5A4AABC9492EFB3D321CFB44F76FAF65499972B49F3F967B55F3612A214E +10511B79F6FCECF30390DD89E4D8858DB084F46F3D8971A84FD1BE5C497F3974 +C22A0A2C2E3212FEDBE6CC1C97A80ED138EB305A0549B7B4538B67B1474D932B +4E88F421EFE7CAF93EA0418DB2D7A8170CB97075AC2D91D0F5901B78A549F8A5 +CB3E1C9B1549A05FFFD053958A3C4BDF89873814118E19DFDFD999C179B0A65B +2DA3A42EC18DDBB2CB714A1CE017E621B5DF8363312DC01637837426122355D7 +EBF144D48B6E006DC790CAF656BF4E32FAA4FA5764E889FF7824A4B8170EE3B7 +57B78A05506ACBBE5333F8A9ABA23E161A000D5AC18D683C523C694A40E765BF +910715C9AB0E75AA7F5C547FFE9AA8D55D5856DD4697CC8C06A31A3A980CF7E6 +027BD4F22780D9FCE1BEA7566980FF380BC7A83721927B3E7BC47A4F843F753A +E13F5177C1E9DC124C36DB4605D5A82D2E853A16AB04F701BA2EB901DB5752DF +57907046BB2EA957CA219A214B6E7D64D38ADA0641EEB1FF3598AAB0273A6077 +75E83CC9524EE1AD487BA0EB4D484B0CEF47E769FD08D6418C12D37465316B5B +B0C2B2C8113782482A1A415C65FAF5C61B1A241CAB8CE48598A7E80FC9E73E29 +F35FE7B1238B53279DA5A5D54D0E3F4390EA790D0307DE67290C56C1FA2291EB +BF3BEB072DCE497F2FD3E8AA67173E158018300F129A14688FAF9DE6B7B82556 +06B74A47E078BC5062D74AC7CD3449C00283F0E06B1A04932F0B2E25FC49F061 +367875A50DE704515FE6B54BF1F57A8BB731EA68E14FF91ED696ACE2F3585441 +AFC9D37EA678BE7C4B95181A58BCA7C9831A7729D88A656511EA08FE0D4C8E1D +B9FCFF42B5E8B359873E7C86E0B58F597379226434860E303E2D6077B8F0F879 +5A2461431AA6B41275E006585DBE2BFCA6618C587E944A671F07A27170D74264 +D98E4F01FF424152ECC8F5769E25E0C2E5157C7196E513268489EBA62E8C5C71 +B19C2D3306F8CC96A5AFE1D5DB9A2656C252A5870F5EF3B88AA8C4E2766F4DCC +DBE88451D86312C7E24327B76356694CB4418379BA693BB196EB44CB3CD06624 +776B53D9E3BE8384E4A9FCE9C590EA05EE25AE4A9704BF5240689D18362A4677 +69A4F167A61A99A7BF2191AEE018B093F966D54525BEDD5FA1AA9C9910F20AF7 +BCD5FD111342B0C47FE04EB3DF62C8E9F0FA8A47C7C713B45BA174776976CEF4 +B757122479DE2D306EE6C88A8175050ACB7EFCFEAE35036691D9CC78E0BFF8C4 +BCF7B42D0E99C2DDCA237F6E06271862754FFCB6E17A4A98D9093CE8B1EFF55B +015E512DE877F89326C2EF00C1F862025182B70874908FE6D77F8C133FF76934 +6E8179AEA892212C6EFA944CBB2989FBA794B488903E7A25D80A251B13567D74 +58641927527DD2FF8BF0944DAD5A343F49CB8ABB8A1914B10F4A77EC86C7FE30 +A032C939D517F6F7B0120A744001D7B1841B4BB586D7CB36F5B79190B5F69DBA +EAAD5362A19C2ACD83ECAD08078BECF94124FE48348C7376C12B2AE8FDDF02FD +F5D61CA8E7F8FF6948057DD6DBE3E4D12B56E6DB27DEF535CB44D0D32218A7E1 +1A95A915B9D4C44E075458B810DFCAF1DAE7E45DAD0A8B087A45967C006123D4 +759BD3734B080545EAFDD2159D60E0AFD8C27349EF8C901737A1079DC2E63287 +4542B76004B34713751E6EC7C6238F63478FB7DEFD5C82B708C4B2815A3DB030 +B7C34986FB7502F69DF8F6162AD76C1C20A4BA562F39AD2EFF9F59DA17A66DFB +D5E7D0FDA789775CC46BFD0A3BEE0FD363825EEA27379BE736886DE4701C8FA9 +E566D4806568F58FEEDEA9FE7D11117735E2780FE9268DC9F2F6B5934BE2A0FB +EC94C297B277A79FC926AD4D39FC43C85962B6EB7F38787626FAD1D5967C2343 +A3BA1C1526F30F0B5E94631E4D7832E05F2B9370E4CB6C164169F856E2E773DA +38BCCB2AF4711DA8D52B2B84720CFC31374FD1B7F0951B5BCF41D13FF820C709 +00EB4EEBE43375E429EE92038E39FF236B97A6BA260761FA10173770893CFC3F +812A8ED2B2AD08DECA3A9BE86E3FDC81005428670505BB0583265513970DF1FE +41857938F7F8FF8EF1D07A9079F1C39202C975DB7DCFEB98010EA984631FBA64 +2DD6CBD667D3C24CB8CA2A9B0A617C12CC6A77D122EDCDCD40CE16680969C016 +991455358AA666ED2F03756AD28E4DBD27AC78B4071C26EC4FBF6D118B6B9B1F +A9B4AD0AA52D00BC162D1312E9C9DCB65B5F8078E920C972D993B62F71F268C2 +A066FD6931ECA8B67B66AA2A2365882C564DE1A18BA8BCF33F070212C3641D4A +4F74CE6F2C5DB4228BE87011707540857002DB67BDC075F091329827511EF595 +06031557600BDEE03BF4B962E922A01085F493BB792588BDF422DDEB9B59DAAB +F4BD901FB004A34687AA0A6B1259621D43339444571EB6BDF9FB7EACF72AE39B +B8EA37D68D74CD1AC6AACAAB6D10E6DDCBA31E80EFA3F0FA92FA6A0742F5912E +7C63677C13E39B02590FF672C2EE0BF062D0F520083E2B1699AB55212C987E79 +39D5315502AD8AE9371C366DCCEC64A0508C8B0DB6D1E682AC510F54B113B8F6 +0B9C5837AAE1D5900FE8AF5360E5F65028C1A61C1A994D36933A44929F1C45F6 +614AA908F0C23BA19B1DA431FB00613415E109FA0366A2B74ED6332A29E7CDD3 +9ED826818AB3D7257F836BAA9696025CE76862A38CC7DBDB1BC9F0708DAC6FBA +32445142D4517DD88B6C16561083A604E9C2006618109D1FC600181B82D06B6B +D178438E6AC900A7AC827B45334DBC3A970D0D56EF4BAB43085D243343835979 +511D85B644CBFBE097B3D2044052FAEF88C18BB17ADAB1D1C445E245B6ECC7C5 +AD2B05FA75936F6B77A1DE904F87DB6599B1C5EC7500B12D0E2C25F6A9498789 +CB9006B91443F89A7602BD7891D73FA915ADCC5C8F9DF9645F890967FD43B56C +0E234DAE65CCBDD0CE557193E4EDA79CDBD7A4E445963A15BD91EAF5A9D62CEE +A59F140BCAF625F57653318473537B9C61D94344C9DDECF31D1908F34219BEFE +4BF0B616EC32A7111D19A82EA52C4B45DFDFA1E22E868C4437AEF1359CC26076 +6D8B7BEDB65604ECBC69945497D920BEB5CB913187E6FFFF85CBA6501D3E9121 +F6E4F4B97AFCC4C72A8FF8BCA7A6A9DC62ED6C13E34CB6775A1B4D137420678C +52B04DA9126557A598567AE92201CF36F5B3F1746677477D52B3ED386CEC980E +8A454D94F2FD714480B88D63FBAF0466FC4172BF519E1B7E1C6BEB4A780059FF +692F6B3101A35A44D227C2772B567F60DA5D8E03A610F2788728B3B253F50881 +14E03A86B2F42CBB1F55224E502F6A30CD9FBDFEAC33669E1DDD63CABC8DFAF3 +87FA8F7A5E690A5FD07EFE14E8D112C52B7D72CD9025395D1FB40A20A92709AA +2AA3DCF7DD65141A60F0AE35BC2CA8143E543AEC3EB6DF70C174A9AC9999B834 +3694CA6779214767AE09E79EA4885ECBC89AA1F547568F02A9E6B740D1541C15 +E1D84B7F32883FA7BCBFC9CB004543097B36C5DF36A1B340C4A2D9D81F9E3E86 +4CEEB32AD23A38B1AE8FEE58F254064B3E171C015EC1860B9139F8539428242E +93F1091ADF67551556284694A12BA6DDE4520D9932A7D63FD5F2A326C8BDD280 +09A2906EA8DF3B9E0F9797E8C2DE9AC6143622198F4B6F7AB17FFF5E00A80FAD +DB740AA2EF2B913780B398B680C3AE17BDBD506EF0FD3423E23FFED624161E8A +5AE45844EABC5C2595E1D82A7061534C974E1997C000E8A36A1720430E2DF59F +E9E9416C2EA645BF7A66C423A1B2C0656A7122C45F0AEEF004383748DD0C684B +8B867311300F9E0E197400299F28B29AB878F4EA17EB70D1EE910ACEA0B6F817 +BAB0A0EA129FBA7864F00F3925AEA5C9F7D6C3255FE565B20B822AFD21E2FB65 +A0B55E64C88E99DC139C0C8ADB0228D5590D1590FCB830BA65BEAE1802A697CD +242895AFA2B5ABDBD00A7DB433DF733A5D3BA56A47BBAB7DCB7F6846F114B8E0 +97052CBF9AF96E00EC0ADB32A0BC27190DF29D6A8C198BD00561CB97F313C38D +B4F54E37AE27E293895AD945ECD01500B44DCB11E499F58D4E1F26CEE504AE4D +FE8B20BEC085AA8B4D453C6535E75071D5C46937E5F15DA4E35954C68EF5D5EB +765002604DB9A30CCC6B92B27DD3B7EA10CF52E8023DC79A574699FC5C12A3DE +0D059D9D949EB2EEB324D89493C79619044B1E08C04FD52BBD1B38E9DA415634 +7E785AC1D05120421737C8BABCFC4ED445E23384DC65A9281C298E9D4D970FFD +23C385B451B83AE649CB14AC34A498FD2FB2C3DB1836FA34F9C93DD26AED8D74 +13506CB2BD9890E15733167815B8611D370ED63199DF806017EFB2673DB8B619 +18552C5F703E3DBFAE26044774917B8A051C248D573548D917FD079FD17A07D8 +8527B12D8BA2635BE53EC43D2A8461F2352571F18A65AC8AC1809D058BFCEA57 +4FAACAE1053951C59F513A0BD8C6CBAAD6BE865DE23FF36A19B19C16012FA9EF +D0627C6CC526798ADEB89776816ECD9E6DCC96A7CF898BBCFD4943F5F7A8E67D +E8FC035FA506F88069DB331A1D7CCC38023D8CC2F21767F2B7F0B60038C2D9B9 +9F715C5BB72587B6C65543ECE474AA7366ED2CBAA5E849C414C83C534F22B6A4 +C03602075C25F40B3B59C2422C1D08FF82F926242F0FB542B2511476C8DF64D8 +186F5B27EF9A3724784D390F0078172188B058C80FF5EF6DB6F38AF1C970A979 +B9D509B1647890B7F4BFE1AEEB362284713EBEB9E59CDE1B94CFF798D089A3DE +C3200FAB71047A5C057EBFB13A14EF445ECFD8770B7432E5CCE976800413E4AA +A70842F3FB3BF22EE94999D7CC7B4904CD824F4872D1CCC5CCC645BA9FD93396 +EFC69C87AC144F5763EAB08AB69D222737AFBB5EA82D69EABF7430AF88C70FAB +811A7901D577D361123A4BE7AF45A178BCF2DAC2B206E0D3FF4B4B48AE3A2D12 +5BFE248D53B5B3DC5FFFA433E8BE84442008D6BC567C0909AAF8975EFEAF7190 +7FD66EA369BDB01AFC47CE66B6510CBC4F8F239884ABF767BF6BD9D55A3250D8 +E45D5C921AFE7BCCFAE64A0D994E8F383C7A84CE362F5134099BF7CBB95AAE8A +B2598EC02E1A96B5D70FB6567E4D3EAE36FA21D70AB0000D287F7E8490D6DC7A +7E364D25C2F9739D3DC01FF093E4AAC5FC9D085F312D6661D3F4ACE886AB6228 +954AF11C8EF0D921DE986085DF9838FB0471D4395F25BEDE7E77F8B34229450C +C94485A4A3A8FDFD29B5F4571F99CF454B402E8901E530799AC795F720A69367 +8432B54EBEE5CE00C952D5AE15EE8774FB7F8EF2AA863475158A19744F9F5BF5 +8116F41564AFB0FE6E5C4F85498BE527630568FBA0489438BD5C62F0B7C8BBA4 +4892E81A24A8F27F6032BFB0901CB88DBC34ED22C61C85E2A167D25DC36D15FE +672EEE5F298123D2761370B621364DDFA586A026BD263D562733571357E62E74 +1EC9E00A0FE1AB2500E1F46B6292CE91DF50C223DF104CC52A5BFFDC1AAF5281 +7A7141B1DB4F5E648A0F47CAF5E425F37035DE4F1E02C93A5AD376D3F4C49C90 +BFF90F366D74C00C6E1D1FD0ABCDB5A5C839F5F4BD0CB4E4F1444EA6199A5F17 +444B8DF635AF966F4D666C8870667EF198C8F0384741BC226AC5D20D95CE3799 +16190975734E3EE0BBFF927E1DB47B7AA2AB94F431E7D79FD094A01A7A6DB6A8 +5EAF45750C700C1C17DB3CE8AB7DBCF94DAE7236836075A20044DB08CE23D144 +A12E816A31F18B8E1D818223C65CA778D6F8C494A361B09C22B64CD144519049 +1DA855CF7874A5CBFB17976747174F065BC0E3AF9BF66A84613AFF93507F0681 +56DF322E64AA76191CC3777C5B1142CC80CD6559453F3F47052D6C907D6E88F6 +72668FB00A43FE9CA8A753DABE3580CA9D6676BA184F11ADE1492A82DFAFB5D2 +43D146403C0928901A004F54129C8A0536E5B63C20B2537E1D2895B175CE6895 +08C61224489FFB002FF9026788DA9DDD981EC0B7A5BB580ADD00450CD23AA70E +505E649FA16553781A2FA00742877A73DD9926AE7F461174FD84CB9E68442498 +DE4E9E24E8B2A829A69718F95AC9E35EEA99E1B0F8E79B643705986FAB9FC399 +638F9E822DA867B9B41EDDF9BF934F947548D28DA23BDF83740811F4B09DEBE3 +6ED1D8B69F3CA9BF102F40B1C3EFCE2635C9B319DE4B60F7AD8574F024EA6A03 +6491E12AAB3A1736BA36D184EAF59E68E5E8073B63AAA8D4BF9A10368F1ADAC3 +2D9DD8BEB1BEF77F236BB6FD3B8D570CE3F5927FBA07B33707C305BF9FBC5D5D +597297FFD54087D409F0BBB17F584BE750DA462B15301E671297DE8C9E12F280 +69B9EDBDA690FC4547FEB24B77C6560232B027A981EEBEEA3063D7DD8DEFB081 +96F099FAED34B61376733645321C0ADBA219D0C8603AFA2E80E015E071B479A3 +8A6B799F93A604CBF3969333D2FEC2C387461FFC94CC7413CA2228D6C1636892 +44BBA2A5947A77A7F14F6FE9E9A662EA7CA3BB2F56209722FAD46779D1C9A639 +6CC527E23076B6D9E02F092CB8C2887CEADC5B41BD21A494CE6FC71F8DCC0F4E +988CEA01A9E9A200B0853898B8E1579D96FAC5A944217E39750086846174F953 +5FBAF399B15BD62EFC31254061AED78F7BB809F8C618453E8E5A145DB842537D +63D62D939D638667AFCD8E3476BBAA0435EAA69AAAE694A84987FED1DA3E0877 +FE61A6B3D34027C9452E3C2EFA2E01765640D278E4AB90C5095B384FCF289389 +F6BCDCBD6D2BB80DF8448498F4C8AA90DB7F636677A0DEC67BFF0A40035F15BD +25DB85DCF022FE1F377887D1707790DF9E3A1EF78A646CA16FFA12409B3E8240 +A1B5C3ACA3E3302A3F0603C06473180CE9024EF16BE1D0C13E79F5CEC0E940BB +45FE282523EE464E0583EC4D332F783EAAD8E35D5E2A58A0C23861F84975B4E5 +D71857F33B4E52C68EEB5EC150FDB1A9E940E15DAA0D1D3521229EB4A7549104 +EC9A94EAEB2C85ECA74692B3598A02B45B6BFD136AA322EA2BBD037B78BA94B3 +628057E79F8BB57065109E33398EA1F02AFD367A9726A43B4C3394827135D6BD +EB81E781C07D8EB17558517DD8F257E78E4D2F7E73B95F9246B3971F59ACC160 +0F56425BF7120059FD3E546B12764901179E1E37C1CEB78C2625D0267002511B +9B12E6AB735642625259ADEE5162929912E2CDB59C8F8402CE10243E66CB4B46 +62E7B528EA97A89D4ACF5718C274A0FA9B8412E7E7C789314C3218EC464AB4D8 +39AE684026AFF7B811072C61647B5D6EE40162D00894B63EF926D563A6D28C9F +43924152B3A4FF0BBAC6A83B8D577B7BE96510D4AF7832D170EEE9F2026FA2E1 +D978D767CD4613B6B5D2C6255AC18B24149DF1D12DC5CD362C2E5A65E247AF90 +814BC13E1F7FA3A193F4BD2BA0DD229A3902AAF30C7BDC02708482161D16AFAF +64D8C1ED596B05AA8DA267D65EF035EB4F9308A98FE46E3DC731F725A1BE8C9A +0C3E5BE85E1E2FD715F6F32D7B10ED13C41E66C90F96E0A459CD2EF05ACC3F6C +7A10E8CDB2FB09B149BDA138131AC0575E4A6F0F29CEE59A42FCF516B180F015 +C7E7B5DAC384D7A5F98ACF8DE0D7B4BE7C27774C3D20B001152E16E44CAE7694 +51E57498AC89DE35CA101E8B8EB2B5E2CA39ED38E860D0692BA5EA09C7C257D7 +4DBA7221896E435B6B3C72B2346B68C565C8E019A9CA963A0654FFACE4533C8C +A7440B9A85BBECBA9E33AF86D92DB132DE84A5321583F3B870CEE217ECA7A6F0 +84027FDD5054D5C357EF20D3B822374E50A6E0B075E03FB8C129EAD1E2C8EC8F +7B1E2C155A1789A25AE5FF2A25A8C73933EAD157838219AD2D89BE470416C69E +44675379B9BB252393E3E944B014BE2DD54D3F002CF8636BC098B06B8EB8726C +CFDDCB183D69A72122AD26525B35E46FC0C58C9F145DD17FD48318C7AD2AB073 +3C751A46A669B976343001F627C660EE3C93E9AEAE793FE09EAFDC68FB073D30 +F15528BA1CCF75ADF3C95FBB36B1DEE7D32E2249DB80B59617E9931D47CA5024 +BECED1021B1C1547DBB92D723C65B30207D90FCE7A497563F2BFF50E2F1CBD65 +99BA9EE65E5FF949EEB6E41F9B54AA4841F398124BBECE03B906E412E2723C61 +5CD616C0AF980C691C7F58E2A3227AF723F21BC0DDDF2BC2CC846BA61A338760 +D7FA64438C7C59C116EA07475C5E8236CB85C3E41F723F746B099F26F2B8E06A +E104D7382EB42105B69FB80C6D20C3A8EFB61E3CA47AA80DB84E2F45B612A976 +E3D149F058DCC226F8FFFFBDB9713D6B5287EE1150A2CADCC97EED7ABCDB4B8C +D6583FD86C4100514692291CAA4BAC96A1411D1C0B0FB7458448DACFD3CEDD16 +4CEE1F3EBE6DD26B6B97F2C068961FB2957D061C0D3407522588FC276355D77D +AA12E324BA0F6257F271F2CBEBF7E8D212E074D6D7C418D507B7079DD570AFD4 +830D8A6D4AE53F71AE618E367DBBFD4FF7E349A49AAC17FCE54343AACF4C39B3 +71C2E822197FEFFEA0EC1BBEC22F3ECAD22E612C1F2331D7BC2D8F374E073954 +C8D8007FF7D103124EDDC8FB0DCB225CE6838D7325E719172ABD96C2CBE6EB34 +7DE6700A9D0830AFA4F7FC31CD89B2C9E65F648DFCB8EC679B7191955706DC17 +A3CAF9735FE6B9DE16116910DB14352B172FB84E59B604F71413542C92255813 +F9894E073591B2879DE0FBD36CC1D8554C6BBF53F39B8775AE11361EEDB09579 +136CAA966C0365FDC344EB3933DB9DDBDE742C1A216B7720101F49F392155537 +7BEEE7CDCB5C6309C0E3DC3EBA6A1F5ACA62347E7EF9E2061FCEF5AF364F9989 +08B3047E9DA97302765876149F31505187610937308954E8B57D83C735B68612 +E1137132B1250EE6A145581C233B89846148B9DC5CD08E83A49A1371A3F81ACF +D14B2A038C5C5ACC6AFAD9E3CC3458ED2D579B2A66B0EC7D9BF66A844578AD74 +2E4116BC8479DA81DBF7EC1AEEB843AF6B0FF82D836746DE0F9B2CFD2A2B81C9 +271F29D41B35B83C3E6A24A08C97BAE5D105DEA0003A7625CB01469EF301099F +D0AD0BBB7E7FD558BB3D1BCE906BB333377D5471E61133B240DCEB0D320CD09C +985057F06CB0286DDBF544A41D4DD128FA369CC99FE651C8314347127E4A012E +9174B5279AC49112C66995A0A653229FB0086498281F8D647DE4B2F36C53D13B +97D47A8B4CDF71DA0CD3827A3E5061D8A8FEDBB79E7385FA5728ED988C478434 +4E098FF09365381FBBBEF17F930BF7226C7C246D4791FFA35F645D5DE3D428E3 +10B25154D31C16C645C41DC34E18F58FE10C2AAC53EC6CAF832028DA031C0974 +D1BFE133D6810275F690BCF18CD56C29AF10DE60A6B809B85079309F469021CF +08952728606642C68A69EF3BF50CEBADE8B37D758265A9FBC86E03A179D0DB5F +06E123688996E82DD4C5130B3A6509186B935E431C5B1C8E70EF03457B65AC8B +0024B3377149A7D8FD3BC7CBD669E97903A244B725CD97DCB3BA54A2CA6CB2E2 +B2E9FF7110BFA616FE996190BC33BF4EF853A4D0B9C2F619D89458D249779FBC +B8F9DD46D652E0F841AC64A7C123C41FA553F48D4C96F3B9DFE6E42AF064E979 +7EA33AD0724CC0F04540BD31A9D38838CBC1EE5E1335BA3C05B166C606CA1E98 +374D9EBEED64B0707E89E1407D2680D458059DF056261C365F332157F7868AC2 +FF76CA0C74FB4408E4AF7667F33DC3A1269C1D102EB4A2E6BE487E028C732E08 +EB830BA9332C6AF4D43EA31BCAA37E5B7D6635280E13FDE27B0F90C147531347 +26C87AC163E6BAF3D685A343389C66874BDD1B970405E2BFF5072450C4A93BF3 +EEB858DC9D2DA0AF7794F524603F5DC2C78D32ED1490DEBA757BCAC55EDA1151 +6A6F82C1AA6383D72B5656D3D5537D5666A8847D54CB0216ABE717E3A11B046F +CD96B760CEFD26D37AE00B7EB574AE7FF3F81D024879ED671CF7C9BB1E5232EE +6BBE5FDC7CB4000057CD4A7254C8CC376EB9BDF77F5F5F4A6D5E41DB8E83C247 +08440DC796FC040A781B34388C22BBFB1D8057351000959ECE8D23A70FCA4F9C +12DE21AC49F397B64CA45E24A8A5F0390BEB15A9F750D3833A7FD0792DE4A4CA +2E680BAD87EE6223B6044222B6500705CA8F65D47645B8CE1402AAB3659F206B +49AAA2B09BAF2F95B7860987BAC68634603E065C90B180ACB86BEE25305E39A5 +2C8B92A2856D4FAACD2EE0D10BE8B32A74B815738D846D58B3FDE52A81B89820 +E68BEE1A2530F5CF512BD8C9A81AE11A9BBBA1296E8263CCCFA5662E92A970DE +CACD7709CF62B57685B04254609CA95855D3C80797052E5470D0861888C878CC +A6C1BBF186BB53E8BC4817AEE9CB4F82C0F1B946ABBB8EADB3A2E5A384FCE817 +CBCDF03557999CE72DC8167C438F06E85500AA97ADDDC511974CC11852C1F277 +7C8D81580DEDD31508D07ECB19639FB2707E7A5885E5433C1A0DD93A7C83CDC7 +10DC1BC11F6283274ADCAA52158EA74D95D651025F458D4EB103457FEFF2F722 +95EC60F9B336C20202AC5C4D7B2CC11C2E8F054B28AC757601A6EED24CC8EE46 +1D3A69FBFEC720B412AD7235A540C43594310C0FBBB003586DAC6C26AE2F698E +7B881A8DDC75FFE396537CF49CAF35C99DF6579EA7A4B9C15A7433721A41B2BC +4C23732B4FC53C7E72636CA7080DE986D1059419B7CCFF3031C986DED3F5BBA1 +AD2ADA2B53FC46FCC999C6D0F4D2C540E62C3D13D3569141202B2BB6517D927B +59592BB7D958C5EC0708D705C694244ACCB6701C8C22E3048B11EF253BE0ABC9 +EE2ED56D846D273185E659F31E8BB945F5E71DCA2BF5EFC5E8D8E14D71453EA5 +621A5EDE930C6E181B87442EA60DFB7947442E4929A98A1C37BF9868C2CA57BE +CCDC412C81A11791D3CAC508034B37B0B92011B1319FB43D90FE28D0B83B8AE5 +C15A243F773181D9008B66B22CEA61BEF47622F637D8F33E122EBEBF7B754C47 +00F9223ECB1CF8F0DD1AF9D80114CBDEB0F66C7F27E375D4B32CC1314211E81F +1B7224B5DDFAD975B74A6A082C2BB72DAC0FB1C3E6F4A26943A50AA82FB205D4 +92207BBACD31A982CFA24B98C5143CED6F034E935C3012BD629183D7D6EDAB67 +54964561E6A79280446DF768C733AD11C858C346FB387F28CBE79D5BE28CDF4E +91CB4574F4808FDE525735649920B2388F67792A02196F140D36B6086468F663 +331C0F20E05BBAB77A606B316A1D3CD0785AF5A643484883A09E76171E2E494C +AF38DE9E2C14089BE1C2D26D31D104302311AC4F6E44CC46A0F99C453CE7F7B1 +88CC4ADBDB15E55A1C413185252BDABB106A63E84470631DF3207342C55CB402 +08AB1027E7873FD0AFA2323FACE3D57DB2E77E380BE5E5B86F23244E3793B5EA +10BDD9F1EEF59A2B475BEA5FACC1538A65FDC8B19808DCBDE7A368F3CF85DDE5 +00627DF67A30721384BD2E6D65FBF5C14B128255164683B34ECD9E093595687D +F57AD205C635153E7B1D3FB6EFA8EA14C19481348356C5CE556F07138FAE9C5E +C3BA524D1216C6D66938D6FAEB31D26B9D2FEDA15E692CC95E86BC6E7A2DEFD1 +6E38DC372DB3DCA851F283B80EBF8D4A9FCBED470C3828BB3A893FB61977B8B0 +CB0AC44C9FD9E693DFE6F5A061A2A434C658A00FA6584BDC22DC8D0A725DD926 +609A0EC57AA587522B0D090A572CF4EFEFAEE8D6615FDE877707DCB590336893 +51FD8B402662EDFEE4D6745127EE9ED2C693271BC1C8FBDF33EDDF1EAD019364 +94C03BCF9CADA7AF7DA6FA3737FD55CB916541C476C3699277C0BB80084FB47A +082F10479431654AB69620296071F6424CCAED8541AF84CBBE170D86B81FE256 +B40C8D59B7206E50F14B5AC497FAE6CC868ABB2CB68DA5B808A43AEF9075D67F +F1335A9F354DCA00012831F5258C441952A822BF0977AD04C3FA961866B966D1 +A18C498D2725F274C4E70236C9943A7A03C37D69EC0FF0F50DFD9020F4496EF9 +4B60FF5350D237DA8C1298B8941367683FE072F9928C9ED9FFEB6517956B987F +F788AAE0627D274BC4DD2BCCBEEF79A84D449BC4604D6FAD1DF913D495FE67A1 +13A26E6AF5083E11A6A917760319F4F37C923022AB00D474F15CB390F4894E13 +5B8F3599CE5F054408012C354AC6AC1126D31AE720D4491587001B3896081592 +027883A36976F7EE9495AFFEE7AE1A313ED982A05B0CA650A1CC229BA43AF927 +3FC7DB824B651DD475E0367295D13FBD1DE2F7ADADDF89CC9555FC2183C46C37 +3814F0820D4E2BE1EF9805D0B31075EC60708AB9F247DC1EA9691E9FCF385CCD +67B2A33A101075021BD2794E600F932CD5E39CFAF20B0D0B32A34A9A27957C2D +7CC4487AD3FB9AABF5B601A5EE2DCF72AD7532F52A05738871D87FA8312FFBF1 +3761199788C9711EAAF7E046E8FE4DBF20F1FAE72A34D85D9088432CA69C5962 +4A3E530E6C463678D34371AB235226C3119B23AF3BAF8C63D8C78EAE0A63FE24 +4312EB2B5F1DA5B88F17538E4E411223BE2D1870E9E736A39C9A26F801C9368A +844237B88ED5B7990942711CBF19948C2D3256FA85D627D30327A5A5AD091A83 +2B30E8CEEF597ED886D9494E6052D0A968AD941E43B3AC8828E89970F16503F0 +43FF90DB5E344E38A48A21DB042942EC20A068550893363E41F583A7B8484305 +50D2D55BA7F9362FACB2450AA1BB2817CF593FA33D00B2DCF8864220E3775A94 +F074AB3F49E4E1925177D5D9691B917F45E0355272D46FF82D8B81D6CDB72FC0 +41DF30FF083A1A741826DC03031E2C3BAFD36ECF5B0AB24C23A68147E8AFB95B +D518428AC0315D2D4AC67FF4A6891E7A9B86F26A23DC723402A76655349A70BB +51BA3349B0D45E5A4165F27E7606897E234B16ADED58DC45478658D609E2177A +B06D0996A840D86E06739308AD88FD44E838C53960EDDBE9ACEEAE5EA79BF2F6 +9D929FA6991ED272DACC819CF2272E3CDD4AB9B0891D33F9A3CE6E5A57389B0D +16131CE4EF50C5F433ACFA5E5571620CD4F19759D414D38D7CFA658D19AE470C +07A56A5F158F22203999556871EC0FC171F1C3F012EA9C3B17B2DE3632D262EA +37012D194E667FFEC17212F4B4B518EC5CA471406A80623DD8FE533868D5326C +DE782D92AF01D204C70D9C7B06D7AEE1F7C2819405887E3B06A88DF57A4B41A9 +AD911D1613ED703AE5C407F35E6CD2C85E837BB692C00FF8ED34270E82572997 +47ADBA7BE4CA6EE9A548AE41CD783910A60D0D4DC4563A5752E7CE6E9A874226 +39EA59C125FF73386F53083DF08B31155ADDCDCE6484FAE0F3F42EE50BD96232 +FDC13521705E0B453CF6C9F63DC2BABEB5808DC8DF009B187401FD5F45E3D571 +60864DD221E6EB9254E8BBDA0FFBE8D45AFCA10F28F878D5C3350D9E5FCB683F +55591CF83FD06A31013CDF332002B69FE22B6F5DD65B927EEBB19DBE1992D1FE +950DC65DA5FA70483072F9D2276E57BEEAED35A203C836D70331B3A06E74868F +BAF176285C826B02DBE2CAF6F9EE9AC3BF43863D51C6FB50A7F11F514B7ED063 +60D6AC6A50FBF5974E99C5ACE33CE4E3F32E12A93C76D9D8E0C6166D43BC5365 +138F125FB09A0279F741FC618E694C9CB6A851B0BCA9AA3747510C3E7B081797 +A9A948ACA8B2CA293E82D2DCA64E8035F6D7557CFB6F6C320B066FCDB6D1CA88 +8CB85845B0628CE934BBAE5042F8A524CCB582CF74BD0D022E2D25F574A4D992 +8D081E282818D50C0C6450EADAFA28E06165021C501169903AFC5F39F8486BFB +84FC181E34C4A115AD5EF956EAC6F10AD3BF3FC1391EEC5C562E03DE42307D31 +ED295EAE804E6993542F72FE041FDBB58FB9190BCBC713540E7FC50677A0E67D +3AF7DCECBE6DBAA1149F1CC2703D402B01204B99401F23D97E6973DB38926F36 +DDEA519E9D509C3C23D9D4A58B1889BD7152DA7C2E67B2261C07AF767A972C80 +D75DCF18F2DA0E1342B5CFD4515F6768C37ED99D3E0817CF011D07FE4B873859 +4788519D99BF15767D2A53BCB70CEB4954E478F0D6D9C465EDD8359C3E004BB6 +2B670D03227FC7558153D7E80E0EF6EFB72001573402BEEC4687E1CF801913D4 +E1D9DBDB335E1CC21EEFB55B8B70FDC77CA350BE82C1F95E757CBD754B444B28 +E6E28377DB248C8E614602D2D22B0B0520D2C4D8551969189F17B9C413A77CAE +6FC93346365341E87C33D2A0C9136197B28958A250B5338C2EC24BD2913A07C3 +F9B67B4A5D3F929491CA0B5822388B0F5B3FADD3AA151B06491F96785BF8BE8D +6DF444F46FBD50A260D183DBB7E305915148DE4B78F50A2F5B4C5E2DBDBCFE1A +B29F9BE7A137366164664F38693FD6EE2F5A5C1FDC53C9B6E37BB7C0BB790FB5 +76D4DB5DC4FD16386C1D3C50D3725E0FBC065D7AFC0A567FFDD9B74CDF6CF5EE +690BA8C0998D545F048058017866B77B96EF0E014FDE508C190B0D15C65D5709 +0C6D8DF06E81EC0DD780D7CE5C432B950733DD505B6B6A64EC4A1E90587F3855 +D385C3405085277A3C65E66A46A3E10837B4BA5BCF905D8D37EB7FC0C0B14544 +15FB10582590DC92A070C1A35DD7C01BDEEA017470BA675BCE3311898AC3976A +8F4DFA97A33A30BC26A862522C352D91C4C0E10AA9BB24C85D00DBA13D4089CE +4C19C3CA376B3162BE95BB503690415D24BDDD0D61F001CF5094EDF5DBB2E849 +25DD6F5262B4D872AEC255A236DA0B2BE8A87D7073DC679CDCF5147D903A6FA0 +312AAE351CCE7912B84A675AC58322B6652491D80A43701BDF5DF998A9EF68AA +7416AF7301596B15470369F2BB156FB720442361B7A65B2A366A5F83C78AD212 +714AA0EBFE9B79F845C1C4778633B393EC0F8CBA925ED1D28FBC297474AB6859 +AFE43ECCD9D42193A041A6E10433ABEA58A1DEF1B109D67A3D7AD43185FDC187 +4376F42AD2FCD1DCB17A5DC55468F75369273DFEDD0E6CEAF5B138BEE5295905 +0C017BCC62DA905A68BC66E304F27FB46D7C8683E667E5D943D55BDB85A37D67 +0D0C53CA3A651AFD0E1F2E38A92D7B3B4F3331F0FC761533C99DFB7C07126A98 +E32C6F0535D25A168081FA799EAE2E1FC93F1E9876C15BA0DB46EEDFF59540C0 +4A073D81D013310F08F018F26CFBF21B4765B056A265D0C5574A575E68474CE0 +8ABDACA1DBC045B656F35CC080E860B008055F92826435659955B8DD61908AA4 +BE65947752181B5BC46A05BB812BD43CB058196642F3058464099230F445B08F +C3308495FBD672F240B3F9FFC648EDDC778FFE4D59B4A04F9CAB8949CFDB854A +858820C18A976F7575417F98497D36E97E2C7C6D6C0494D7FB2CBE69E68DB53F +2D78C94275F27C614A1967309378A7AC7E5026A6E5FA27F8683C20C8386D3B12 +D8E0B09F0CE8F9AEB419C1EDD3A26BB7FA0CD75D86D005D07DD84871A0074AF0 +FD90024BB48D2D4CFAC53BBD457C5C48B336D27B126D4C117D08D6D9EB0EFDEB +429514F351E79776E6E5F1E47421306A3B59EE77A1A29D51A2BA46F5DE81F4CD +0C10797E0E2A8277B4DB367D6373C5E2DC53912366A12DE87B34E651A064465A +72B4960D52C9E415D28E5DCF88ADF7AF895E8763D1FBA4FD14A6534E4B0C3920 +756E4D02859766CD80BCC7DC49F577A5A1716165D81F4E3DA09CA9F4F0587D9B +C18E6941A3919A4AB0834247AC3E33798CB9936A2802B7CF6228298386EAB61A +3B99A2231D1FE72BF9BB31BD74F6633F4840A254782F96CE73D6AE795C2C2D1C +91CA1409BA5E060D29294F924244235627D8C038B9DC1B4CEC5D05F511EC6289 +D992656C302733BD92FF32C422F083605315FD8E72F13184DE2042F60251CBAB +91FEDC8628B9432AA060DE8711D769572B9C3A0FBD9B4F7C421F634403C5E154 +17C01FED66C5326DA11848F3DB893793DF079529A8B08E1290F96E2BB195232F +0053F24A0C972963A975A9769628C3DB20817F622EF0506C0915BB4A1FC8B906 +E503556460C080CF1F55E4FC54F2CFFB1AA8B28124150311446A8A9FBFDF25B8 +9E7DBE58C3F8B7070F630F1EC8410EA0DC6EA6DB64E0E9CA5DACE1AFB995CCDF +3DA9D9D6A7F5842C371A66AE9FE8C6188A43402067206F77FCBB436A12C6D852 +CBF7C1C3340C86BF72C949C5C99B7C7D33C1D49763416947459CEA57041B2B09 +27562AC20F84AD955A694E9D583C4337F99C4DA1EDB1667D5BD64E13792C3F05 +6F8CDC63D63569D5A6DFCD885CF409B4340BA6AF828FC368C9037F0B307F9DEE +2F5D46B48DB231FDB3EB60C8C66D89522CC71B7DE41535487929672B7C8C4EA3 +F7B386C43683C258F11A29031EA8AD764746AF8B40A5119938FEF5367B4231B5 +4A55A446EDE1A838B20DAA8E5986EC0443C1B917FDF27748913A217E2B7DC73B +F6D13D8C1C85B3F6F320E0AD6F010DA489052980E6964830A3FBA6A9E4CFE466 +CE08B007BFA2D01259AC3B 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -6820,16 +6801,16 @@ 99.6264 /CMTT10 rf /Fd 133[51 60 60 83 60 64 45 45 47 60 64 57 64 95 32 60 35 32 64 57 35 53 64 51 64 56 6[70 87 87 118 87 88 80 64 86 86 78 86 90 109 69 2[43 90 90 -72 75 88 83 81 87 3[89 2[32 8[57 57 57 1[38 2[57 1[45 -1[89 4[35 18[95 1[64 12[{ TeXf7b6d320Encoding ReEncodeFont }62 +72 75 88 83 81 87 3[89 2[32 8[57 57 57 1[38 2[57 3[89 +4[35 18[95 1[64 12[{ TeXf7b6d320Encoding ReEncodeFont }61 99.6264 /CMBX10 rf /Fe 139[44 44 44 44 44 44 44 44 44 2[44 44 2[44 44 44 1[44 10[44 2[44 44 3[44 1[44 2[44 3[44 44 2[44 18[44 46[{ TeX09fbbfacEncoding ReEncodeFont }25 83.022 /CMTT10 rf /Ff 207[28 48[{ TeX0ef0afcaEncoding ReEncodeFont }1 41.5109 /CMR5 rf /Fg 222[83 83 14[65 1[42 12[65 1[65{ TeXbbad153fEncoding ReEncodeFont }6 83.022 /CMSY10 rf -/Fh 188[73 73 73 73 14[73 73 14[66 66 32[{}8 83.022 /CMEX10 -rf /Fi 207[19 33[34 14[{ TeXbbad153fEncoding ReEncodeFont }2 +/Fh 142[83 45[73 73 73 73 14[73 73 14[66 66 32[{}9 83.022 +/CMEX10 rf /Fi 207[19 33[34 14[{ TeXbbad153fEncoding ReEncodeFont }2 58.1154 /CMSY7 rf /Fj 129[42 3[39 1[47 4[39 37 37 42 1[50 73 25 2[29 48 1[41 39 43 36 16[63 66 53 1[67 1[57 4[65 53 61 69 59 63 62 5[23 23 27[49 11[39 18[{ @@ -6858,13 +6839,13 @@ 21 2[21 38 21 2[58 79 58 58 55 43 57 60 52 60 58 70 48 60 39 28 58 60 50 52 59 55 54 58 3[60 1[21 21 38 38 38 38 38 38 38 38 38 38 1[21 26 21 2[30 30 21 1[64 2[38 -21 8[34 9[64 1[43 45 11[{ TeXf7b6d320Encoding ReEncodeFont }82 +19[64 1[43 45 11[{ TeXf7b6d320Encoding ReEncodeFont }80 74.7198 /CMR9 rf /Fs 129[39 3[39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 -39 39 4[39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 -2[39 39 39 39 39 39 39 39 39 2[39 39 39 39 39 6[39 39 -39 39 39 39 39 39 39 39 39 39 39 39 3[39 39 33[{ - TeX09fbbfacEncoding ReEncodeFont }74 74.7198 /CMTT9 +39 39 2[39 1[39 39 39 39 39 39 39 39 39 39 39 39 39 39 +39 2[39 39 39 39 39 39 39 39 39 2[39 39 39 39 39 6[39 +39 39 39 39 39 39 39 39 39 39 39 39 39 3[39 39 33[{ + TeX09fbbfacEncoding ReEncodeFont }75 74.7198 /CMTT9 rf /Ft 131[91 1[40 48 48 66 48 51 35 36 36 48 51 45 51 76 25 48 28 25 51 45 28 40 51 40 51 45 8[68 3[66 51 2[62 71 1[83 1[71 1[33 1[71 1[62 1[66 16[45 45 45 2[30 2[45 @@ -6879,17 +6860,17 @@ rf /Fx 134[65 1[89 65 68 48 48 50 1[68 61 68 102 34 1[37 34 68 61 37 56 68 55 68 60 11[94 85 68 92 1[84 92 96 116 74 2[46 96 96 77 81 94 89 1[93 6[34 61 61 2[61 1[61 -61 61 61 1[34 4[48 48 40[{ TeXf7b6d320Encoding ReEncodeFont }50 -109.091 /CMBX12 rf /Fy 138[51 35 36 39 1[51 45 51 4[25 -51 1[28 42 51 40 51 44 3[25 1[25 3[94 17[60 1[66 65 53[51 -12[{ TeXf7b6d320Encoding ReEncodeFont }22 90.9091 /CMB10 -rf /Fz 129[48 48 48 48 48 48 48 48 48 48 48 48 48 48 -48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 1[48 -1[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 -48 1[48 48 48 48 48 48 48 48 48 48 48 1[48 48 48 48 48 +61 61 61 1[34 46[{ TeXf7b6d320Encoding ReEncodeFont }48 +109.091 /CMBX12 rf /Fy 138[51 35 36 39 1[51 45 51 76 +1[48 1[25 51 1[28 42 51 40 51 44 3[25 1[25 3[94 17[60 +1[66 65 53[51 12[{ TeXf7b6d320Encoding ReEncodeFont }24 +90.9091 /CMB10 rf /Fz 129[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 -48 48 48 48 48 48 48 33[{ TeX09fbbfacEncoding ReEncodeFont }90 -90.9091 /CMTT10 rf /FA 139[26 1[26 2[33 37 1[19 2[19 +48 48 48 1[48 1[48 48 48 48 48 48 48 48 48 48 48 48 48 +48 48 48 48 48 1[48 48 48 48 48 48 48 48 48 48 48 1[48 +48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 +48 48 48 48 48 48 48 48 48 48 48 33[{ TeX09fbbfacEncoding ReEncodeFont } +90 90.9091 /CMTT10 rf /FA 139[26 1[26 2[33 37 1[19 2[19 3[30 37 2[33 39[33 33 33 33 33 33 33 33 33 33 4[51 43[{ TeXf7b6d320Encoding ReEncodeFont }20 58.1154 /CMR7 rf /FB 131[83 1[37 44 44 60 44 46 32 33 33 1[46 42 46 69 @@ -6911,9 +6892,9 @@ 54 49 30 43 54 43 54 49 10[73 73 70 54 72 1[66 76 73 1[61 2[35 1[77 64 66 75 70 69 73 7[49 49 49 49 49 49 49 49 49 49 48[{ TeXf7b6d320Encoding ReEncodeFont }49 -99.6264 /CMR12 rf /FG 143[76 5[25 35 35 45 45 4[56 42[0 -3[61 8[91 7[91 12[71 2[71 1[45 1[91 6[71 2[45 71 25 71{ - TeXbbad153fEncoding ReEncodeFont }20 90.9091 /CMSY10 +99.6264 /CMR12 rf /FG 149[25 35 35 45 45 4[56 42[0 3[61 +8[91 7[91 12[71 2[71 1[45 1[91 6[71 3[71 25 71{ + TeXbbad153fEncoding ReEncodeFont }18 90.9091 /CMSY10 rf /FH 133[60 71 71 97 71 75 52 53 55 1[75 67 75 112 37 1[41 37 75 67 41 61 75 60 75 65 7[102 1[139 102 103 94 75 100 101 92 101 105 128 81 105 1[50 105 106 85 88 @@ -6924,8 +6905,8 @@ 40 51 45 25 1[45 25 45 25 56 68 68 93 68 68 66 51 67 71 62 71 68 83 57 71 47 33 68 71 59 62 69 66 64 68 1[43 1[71 1[25 25 45 45 45 45 45 45 45 45 45 45 45 25 30 25 -71 45 35 35 25 71 1[45 1[45 25 18[76 51 51 53 5[68 5[{ - TeXf7b6d320Encoding ReEncodeFont }92 90.9091 /CMR10 +71 1[35 35 25 71 76 2[45 25 18[76 51 51 53 11[{ + TeXf7b6d320Encoding ReEncodeFont }90 90.9091 /CMR10 rf /FJ 138[108 1[76 79 3[108 1[54 5[59 88 108 86 1[94 11[149 2[144 4[184 116 5[122 1[148 16[97 51[{ TeXf7b6d320Encoding ReEncodeFont }17 172.154 /CMBX12 @@ -6947,25 +6928,31 @@ TeXDict begin 1 0 bop 150 1318 a FJ(3DLDF)65 b(User)h(and)e(Reference)i (Man)-5 b(ual)p 150 1385 3600 34 v 1917 1481 a FI(3-dimensional)31 b(dra)m(wing)f(with)g(MetaP)m(ost)j(output.)1921 1589 -y(Man)m(ual)e(edition)g(1.1.3)h(for)e(3DLDF)i(V)-8 b(ersion)31 -b(1.1.3)3145 1697 y(Decem)m(b)s(er)g(2003)150 5091 y +y(Man)m(ual)e(edition)g(1.1.4)h(for)e(3DLDF)i(V)-8 b(ersion)31 +b(1.1.4)3145 1697 y(Decem)m(b)s(er)g(2003)150 5091 y FH(Laurence)45 b(D.)g(Finston)p 150 5141 3600 17 v eop end %%Page: 2 2 -TeXDict begin 2 1 bop 150 4792 a FI(Cop)m(yrigh)m(t)602 -4789 y(c)577 4792 y FG(\015)30 b FI(2003)i(Laurence)f(D.)g(Finston.)150 -4902 y(P)m(ermission)h(is)f(gran)m(ted)i(to)f(cop)m(y)-8 -b(,)33 b(distribute)e(and/or)h(mo)s(dify)f(this)g(do)s(cumen)m(t)g -(under)g(the)g(terms)h(of)150 5011 y(the)22 b(GNU)h(F)-8 -b(ree)23 b(Do)s(cumen)m(tation)h(License,)h(V)-8 b(ersion)23 -b(1.2)g(or)f(an)m(y)g(later)i(v)m(ersion)e(published)e(b)m(y)i(the)h(F) --8 b(ree)150 5121 y(Soft)m(w)m(are)27 b(F)-8 b(oundation;)28 -b(with)e(no)g(In)m(v)-5 b(arian)m(t)27 b(Sections,)h(no)d(F)-8 -b(ron)m(t-Co)m(v)m(er)29 b(T)-8 b(exts,)28 b(and)d(no)h(Bac)m(k-Co)m(v) -m(er)150 5230 y(T)-8 b(exts.)44 b(A)31 b(cop)m(y)h(of)g(the)f(license)h -(is)g(included)e(in)h(the)g(section)i(en)m(titled)f(\\GNU)h(F)-8 -b(ree)32 b(Do)s(cumen)m(tation)150 5340 y(License".)p -eop end +TeXDict begin 2 1 bop 150 4413 a FI(This)23 b(is)i(the)f(3DLDF)i(User)e +(and)g(Reference)h(Man)m(ual,)h(edition)f(1.1.4)h(for)e(3DLDF)i(1.1.4.) +40 b(This)24 b(man)m(ual)150 4523 y(w)m(as)35 b(last)g(up)s(dated)f(on) +g(10)h(Decem)m(b)s(er)h(2003.)55 b(3DLDF)36 b(is)e(a)h(GNU)g(pac)m(k)-5 +b(age)37 b(for)d(three-dimensional)150 4633 y(dra)m(wing)c(with)g +(MetaP)m(ost)j(output.)40 b(The)30 b(author)h(is)f(Laurence)g(D.)h +(Finston.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 +4767 y FG(\015)f FI(2003)i(Laurence)f(D.)g(Finston.)390 +4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8 +b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f +(under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8 +b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26 +b(1.2)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43 +b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8 +b(oundation;)53 b(with)44 b(no)g(In)m(v)-5 b(arian)m(t)46 +b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)31 +b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8 +b(exts.)41 b(A)29 b(cop)m(y)h(of)f(the)g(license)h(is)f(included)390 +5340 y(in)h(the)h(section)g(en)m(titled)h(\\GNU)f(F)-8 +b(ree)32 b(Do)s(cumen)m(tation)g(License".)p eop end %%Page: -1 3 TeXDict begin -1 2 bop 3723 -116 a FF(i)150 299 y FE(Short)53 b(Con)l(ten)l(ts)150 540 y FF(1)146 b(In)m(tro)s(duction)12 @@ -7016,85 +7003,85 @@ 61 b FF(85)150 2798 y(17)97 b(T)-8 b(ransform)33 b(Reference)h FD(.)19 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)64 b FF(88)150 -2939 y(18)97 b(Lab)s(el)33 b(Reference)41 b FD(.)19 b(.)h(.)f(.)h(.)f -(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.) -h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)71 b FF(99)150 3080 y(19)97 -b(Picture)34 b(Reference)43 b FD(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g -(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.) -f(.)h(.)73 b FF(102)150 3221 y(20)97 b(P)m(oin)m(t)34 +2939 y(18)97 b(Lab)s(el)33 b(Reference)15 b FD(.)21 b(.)e(.)h(.)f(.)h +(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.) +g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)48 b FF(100)150 3080 +y(19)97 b(Picture)34 b(Reference)43 b FD(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h +(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.) +f(.)h(.)f(.)h(.)73 b FF(103)150 3221 y(20)97 b(P)m(oin)m(t)34 b(Reference)19 b FD(.)i(.)e(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f (.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.) -52 b FF(110)150 3362 y(21)97 b(F)-8 b(o)s(cus)33 b(Reference)12 +52 b FF(111)150 3362 y(21)97 b(F)-8 b(o)s(cus)33 b(Reference)12 b FD(.)21 b(.)e(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g (.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)45 -b FF(141)150 3504 y(22)97 b(Line)33 b(Reference)43 b +b FF(142)150 3504 y(22)97 b(Line)33 b(Reference)43 b FD(.)19 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h (.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)73 -b FF(144)150 3645 y(23)97 b(Plane)33 b(Reference)14 b +b FF(145)150 3645 y(23)97 b(Plane)33 b(Reference)14 b FD(.)21 b(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h (.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)46 -b FF(147)150 3786 y(24)97 b(P)m(ath)33 b(Reference)g +b FF(148)150 3786 y(24)97 b(P)m(ath)33 b(Reference)g FD(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f (.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)64 -b FF(155)150 3927 y(25)97 b(P)m(olygon)33 b(Reference)25 +b FF(156)150 3927 y(25)97 b(P)m(olygon)33 b(Reference)25 b FD(.)c(.)f(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.) f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)57 b -FF(189)150 4068 y(26)97 b(Regular)33 b(P)m(olygon)g(Reference)e +FF(190)150 4068 y(26)97 b(Regular)33 b(P)m(olygon)g(Reference)e FD(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f -(.)h(.)f(.)g(.)h(.)f(.)h(.)62 b FF(195)150 4209 y(27)97 +(.)h(.)f(.)g(.)h(.)f(.)h(.)62 b FF(196)150 4209 y(27)97 b(Rectangle)33 b(Reference)18 b FD(.)j(.)f(.)f(.)h(.)f(.)h(.)f(.)g(.)h (.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.) -h(.)50 b FF(201)150 4350 y(28)97 b(Regular)33 b(Closed)g(Plane)h(Curv)m +h(.)50 b FF(202)150 4350 y(28)97 b(Regular)33 b(Closed)g(Plane)h(Curv)m (e)g(Reference)e FD(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h -(.)f(.)h(.)62 b FF(205)150 4491 y(29)97 b(Ellipse)34 +(.)f(.)h(.)62 b FF(207)150 4491 y(29)97 b(Ellipse)34 b(Reference)23 b FD(.)e(.)f(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h (.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)55 -b FF(211)150 4633 y(30)97 b(Circle)34 b(Reference)42 +b FF(213)150 4633 y(30)97 b(Circle)34 b(Reference)42 b FD(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h (.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)73 -b FF(227)150 4774 y(31)97 b(P)m(attern)33 b(Reference)j +b FF(229)150 4774 y(31)97 b(P)m(attern)33 b(Reference)j FD(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f (.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)67 -b FF(230)150 4915 y(32)97 b(Solid)33 b(Reference)d FD(.)19 +b FF(232)150 4915 y(32)97 b(Solid)33 b(Reference)d FD(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g (.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)60 -b FF(236)150 5056 y(33)97 b(F)-8 b(aced)33 b(Solid)g(Reference)14 +b FF(238)150 5056 y(33)97 b(F)-8 b(aced)33 b(Solid)g(Reference)14 b FD(.)21 b(.)e(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f -(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)46 b FF(245)150 +(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)46 b FF(247)150 5197 y(34)97 b(Cub)s(oid)33 b(Reference)42 b FD(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f -(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)73 b FF(246)150 +(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)73 b FF(248)150 5338 y(35)97 b(P)m(olyhedron)34 b(Reference)17 b FD(.)k(.)f(.)f(.)g(.)h (.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.) -h(.)f(.)g(.)h(.)49 b FF(248)p eop end +h(.)f(.)g(.)h(.)49 b FF(250)p eop end %%Page: -2 4 TeXDict begin -2 3 bop 3696 -116 a FF(ii)150 83 y(36)97 b(Utilit)m(y)34 b(F)-8 b(unctions)24 b FD(.)c(.)f(.)h(.)f(.)g(.)h(.)f (.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.) -f(.)h(.)f(.)g(.)h(.)56 b FF(259)150 224 y(37)97 b(Adding)33 +f(.)h(.)f(.)g(.)h(.)56 b FF(261)150 224 y(37)97 b(Adding)33 b(a)f(File)g FD(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f (.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.) -h(.)63 b FF(261)150 365 y(38)97 b(F)-8 b(uture)33 b(Plans)18 +h(.)63 b FF(263)150 365 y(38)97 b(F)-8 b(uture)33 b(Plans)18 b FD(.)i(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.) h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)50 -b FF(263)150 506 y(39)97 b(Changes)20 b FD(.)h(.)e(.)h(.)f(.)h(.)f(.)g +b FF(265)150 506 y(39)97 b(Changes)20 b FD(.)h(.)e(.)h(.)f(.)h(.)f(.)g (.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.) -f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)52 b FF(264)150 +f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)52 b FF(266)150 648 y(Bibliograph)m(y)24 b FD(.)c(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f (.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.) -h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)56 b FF(265)150 789 y(A)122 +h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)56 b FF(267)150 789 y(A)122 b(GNU)32 b(F)-8 b(ree)33 b(Do)s(cumen)m(tation)g(License)d FD(.)20 b(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f -(.)g(.)61 b FF(267)150 930 y(Data)32 b(T)m(yp)s(e)i(and)e(V)-8 +(.)g(.)61 b FF(269)150 930 y(Data)32 b(T)m(yp)s(e)i(and)e(V)-8 b(ariable)33 b(Index)18 b FD(.)j(.)e(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.) h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)50 -b FF(274)150 1071 y(F)-8 b(unction)33 b(Index)k FD(.)20 +b FF(276)150 1071 y(F)-8 b(unction)33 b(Index)k FD(.)20 b(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f (.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)68 -b FF(277)150 1212 y(Concept)34 b(Index)16 b FD(.)21 b(.)e(.)h(.)f(.)h +b FF(279)150 1212 y(Concept)34 b(Index)16 b FD(.)21 b(.)e(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.) h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)49 b -FF(280)p eop end +FF(282)p eop end %%Page: -3 5 TeXDict begin -3 4 bop 3674 -116 a FI(iii)150 299 y FE(T)-13 b(able)53 b(of)h(Con)l(ten)l(ts)150 641 y FH(1)135 b(In)l(tro)t @@ -7380,730 +7367,736 @@ g(.)g(.)55 b FI(97)449 2791 y(17.12)93 b(Resetting)15 b FC(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b FI(98)449 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b FI(99)449 2901 y(17.13)93 b(Cleaning)28 b FC(.)15 b(.)g(.)h(.)f(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g -(.)57 b FI(98)150 3143 y FH(18)135 b(Lab)t(el)45 b(Reference)35 -b FD(.)19 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h -(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)78 b FH(99)449 3280 -y FI(18.1)92 b(Data)32 b(Mem)m(b)s(ers)17 b FC(.)e(.)h(.)f(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)46 -b FI(99)449 3390 y(18.2)92 b(Cop)m(ying)17 b FC(.)e(.)g(.)g(.)g(.)g(.)h -(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g -(.)g(.)g(.)g(.)46 b FI(100)449 3499 y(18.3)92 b(Outputting)21 +(.)57 b FI(99)150 3143 y FH(18)135 b(Lab)t(el)45 b(Reference)32 +b FD(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f +(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)75 b FH(100)449 3280 y +FI(18.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 +b FI(100)449 3390 y(18.2)92 b(Cop)m(ying)17 b FC(.)e(.)g(.)g(.)g(.)g(.) +h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) +g(.)g(.)g(.)g(.)46 b FI(101)449 3499 y(18.3)92 b(Outputting)21 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)50 b FI(100)150 3742 +h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)50 b FI(101)150 3742 y FH(19)135 b(Picture)45 b(Reference)40 b FD(.)20 b(.)f(.)g(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)83 -b FH(102)449 3879 y FI(19.1)92 b(Data)32 b(Mem)m(b)s(ers)16 +b FH(103)449 3879 y FI(19.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)46 b FI(102)449 3988 y(19.2)92 b(Global)32 +(.)g(.)g(.)g(.)g(.)46 b FI(103)449 3988 y(19.2)92 b(Global)32 b(V)-8 b(ariables)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b FI(102)449 4098 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b FI(103)449 4098 y(19.3)92 b(Constructors)11 b FC(.)k(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 -b FI(102)449 4208 y(19.4)92 b(Op)s(erators)25 b FC(.)15 +b FI(103)449 4208 y(19.4)92 b(Op)s(erators)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(103)449 4317 y(19.5)92 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(104)449 4317 y(19.5)92 b(A\016ne)31 b(T)-8 b(ransformations)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(104)449 4427 y(19.6)92 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(105)449 4427 y(19.6)92 b(Mo)s(difying)22 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)52 -b FI(104)449 4536 y(19.7)92 b(Sho)m(wing)15 b FC(.)h(.)f(.)g(.)g(.)g(.) +b FI(105)449 4536 y(19.7)92 b(Sho)m(wing)15 b FC(.)h(.)f(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)45 b FI(105)449 4646 y(19.8)92 b(Outputting)21 +g(.)g(.)g(.)g(.)45 b FI(106)449 4646 y(19.8)92 b(Outputting)21 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)50 b FI(105)748 4755 +h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)50 b FI(106)748 4755 y(19.8.1)93 b(Namespaces)15 b FC(.)h(.)f(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)45 b FI(105)1047 4865 y(19.8.1.1)94 +(.)g(.)g(.)g(.)g(.)g(.)45 b FI(106)1047 4865 y(19.8.1.1)94 b(Namespace)31 b(Pro)5 b(jections)17 b FC(.)g(.)e(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)47 b FI(105)1047 4975 y(19.8.1.2)94 +(.)g(.)g(.)g(.)g(.)g(.)g(.)47 b FI(106)1047 4975 y(19.8.1.2)94 b(Namespace)31 b(Sorting)12 b FC(.)j(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)41 b FI(105)748 5084 +g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)41 b FI(106)748 5084 y(19.8.2)93 b(Output)29 b(F)-8 b(unctions)30 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)59 b FI(106)p eop +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)59 b FI(107)p eop end %%Page: -6 8 TeXDict begin -6 7 bop 3677 -116 a FI(vi)150 83 y FH(20)135 b(P)l(oin)l(t)46 b(Reference)36 b FD(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f (.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)78 -b FH(110)449 220 y FI(20.1)92 b(Data)32 b(Mem)m(b)s(ers)16 +b FH(111)449 220 y FI(20.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)46 b FI(110)449 330 y(20.2)92 b(T)m(yp)s(edefs)30 +(.)g(.)g(.)g(.)g(.)46 b FI(111)449 330 y(20.2)92 b(T)m(yp)s(edefs)30 b(and)g(Utilit)m(y)i(Structures)21 b FC(.)14 b(.)h(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)50 -b FI(112)449 439 y(20.3)92 b(Global)32 b(Constan)m(ts)f(and)f(V)-8 +b FI(113)449 439 y(20.3)92 b(Global)32 b(Constan)m(ts)f(and)f(V)-8 b(ariables)23 b FC(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 b FI(113)449 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)53 b FI(114)449 549 y(20.4)92 b(Constructors)30 b(and)g(Setting)h(F)-8 b(unctions)10 b FC(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b FI(113)449 658 y(20.5)92 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b FI(114)449 658 y(20.5)92 b(Destructor)12 b FC(.)k(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42 -b FI(114)449 768 y(20.6)92 b(Op)s(erators)25 b FC(.)15 +b FI(115)449 768 y(20.6)92 b(Op)s(erators)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(115)449 878 y(20.7)92 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(116)449 878 y(20.7)92 b(Cop)m(ying)17 b FC(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)46 -b FI(117)449 987 y(20.8)92 b(Querying)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g +b FI(118)449 987 y(20.8)92 b(Querying)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)49 b FI(117)449 1097 y(20.9)92 b(Returning)30 +(.)g(.)g(.)49 b FI(118)449 1097 y(20.9)92 b(Returning)30 b(Co)s(ordinates)e FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g -(.)g(.)57 b FI(118)449 1206 y(20.10)93 b(Returning)30 +(.)g(.)57 b FI(119)449 1206 y(20.10)93 b(Returning)30 b(Information)9 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)39 b FI(120)449 1316 y(20.11)93 b(Mo)s(difying)21 +g(.)39 b FI(121)449 1316 y(20.11)93 b(Mo)s(difying)21 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)50 b FI(120)449 1425 +h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)50 b FI(121)449 1425 y(20.12)93 b(A\016ne)30 b(T)-8 b(ransformations)24 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 -b FI(120)449 1535 y(20.13)93 b(Applying)30 b(T)-8 b(ransformations)24 +b FI(121)449 1535 y(20.13)93 b(Applying)30 b(T)-8 b(ransformations)24 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b FI(125)449 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b FI(126)449 1645 y(20.14)93 b(Pro)5 b(jecting)16 b FC(.)g(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 -b FI(125)449 1754 y(20.15)93 b(V)-8 b(ector)32 b(Op)s(erations)10 +b FI(126)449 1754 y(20.15)93 b(V)-8 b(ector)32 b(Op)s(erations)10 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)40 b FI(125)449 1864 y(20.16)93 b(P)m(oin)m(ts)31 +g(.)40 b FI(126)449 1864 y(20.16)93 b(P)m(oin)m(ts)31 b(and)f(Lines)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)49 b FI(130)449 1973 y(20.17)93 +g(.)g(.)g(.)g(.)g(.)g(.)49 b FI(131)449 1973 y(20.17)93 b(In)m(tersections)15 b FC(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b FI(133)449 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b FI(134)449 2083 y(20.18)93 b(Dra)m(wing)12 b FC(.)k(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -42 b FI(134)449 2193 y(20.19)93 b(Lab)s(elling)17 b FC(.)f(.)f(.)g(.)g +42 b FI(135)449 2193 y(20.19)93 b(Lab)s(elling)17 b FC(.)f(.)f(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)47 b FI(137)449 2302 y(20.20)93 b(Sho)m(wing)14 +(.)g(.)g(.)g(.)47 b FI(138)449 2302 y(20.20)93 b(Sho)m(wing)14 b FC(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b FI(139)449 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b FI(140)449 2412 y(20.21)93 b(Outputting)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 -b FI(139)150 2654 y FH(21)135 b(F)-11 b(o)t(cus)44 b(Reference)27 +b FI(140)150 2654 y FH(21)135 b(F)-11 b(o)t(cus)44 b(Reference)27 b FD(.)20 b(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g -(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)71 b FH(141)449 2791 y +(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)71 b FH(142)449 2791 y FI(21.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 -b FI(141)449 2901 y(21.2)92 b(Global)32 b(V)-8 b(ariables)25 +b FI(142)449 2901 y(21.2)92 b(Global)32 b(V)-8 b(ariables)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)54 b FI(141)449 3010 y(21.3)92 b(Constructors)30 +g(.)g(.)g(.)54 b FI(142)449 3010 y(21.3)92 b(Constructors)30 b(and)g(Setting)h(F)-8 b(unctions)10 b FC(.)16 b(.)f(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 -b FI(142)449 3120 y(21.4)92 b(Op)s(erators)25 b FC(.)15 +b FI(143)449 3120 y(21.4)92 b(Op)s(erators)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(142)449 3230 y(21.5)92 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(143)449 3230 y(21.5)92 b(Mo)s(difying)22 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)52 -b FI(142)449 3339 y(21.6)92 b(Querying)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g +b FI(143)449 3339 y(21.6)92 b(Querying)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)49 b FI(143)449 3449 y(21.7)92 b(Sho)m(wing)15 +(.)g(.)g(.)49 b FI(144)449 3449 y(21.7)92 b(Sho)m(wing)15 b FC(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b FI(143)150 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b FI(144)150 3691 y FH(22)135 b(Line)45 b(Reference)36 b FD(.)19 b(.)g(.)h(.)f(.)h (.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.) -g(.)h(.)78 b FH(144)449 3828 y FI(22.1)92 b(Data)32 b(Mem)m(b)s(ers)16 +g(.)h(.)78 b FH(145)449 3828 y FI(22.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)46 b FI(144)449 3938 y(22.2)92 b(Global)32 +(.)g(.)g(.)g(.)g(.)46 b FI(145)449 3938 y(22.2)92 b(Global)32 b(Constan)m(ts)d FC(.)15 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)59 b FI(144)449 4047 y(22.3)92 +g(.)g(.)g(.)g(.)g(.)g(.)59 b FI(145)449 4047 y(22.3)92 b(Constructors)11 b FC(.)k(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b FI(144)449 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b FI(145)449 4157 y(22.4)92 b(Op)s(erators)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -55 b FI(145)449 4266 y(22.5)92 b(Get)32 b(P)m(ath)18 +55 b FI(146)449 4266 y(22.5)92 b(Get)32 b(P)m(ath)18 b FC(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 b FI(145)449 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 b FI(146)449 4376 y(22.6)92 b(Sho)m(wing)15 b FC(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)45 b FI(145)p eop end +(.)45 b FI(146)p eop end %%Page: -7 9 TeXDict begin -7 8 bop 3652 -116 a FI(vii)150 83 y FH(23)135 b(Plane)46 b(Reference)27 b FD(.)20 b(.)g(.)f(.)h(.)f(.)h(.)f(.)g(.)h (.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)71 -b FH(147)449 220 y FI(23.1)92 b(Data)32 b(Mem)m(b)s(ers)16 +b FH(148)449 220 y FI(23.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)46 b FI(147)449 330 y(23.2)92 b(Global)32 +(.)g(.)g(.)g(.)g(.)46 b FI(148)449 330 y(23.2)92 b(Global)32 b(Constan)m(ts)d FC(.)15 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)59 b FI(147)449 439 y(23.3)92 +g(.)g(.)g(.)g(.)g(.)g(.)59 b FI(148)449 439 y(23.3)92 b(Constructors)11 b FC(.)k(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b FI(147)449 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)41 b FI(148)449 549 y(23.4)92 b(Op)s(erators)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 -b FI(148)449 658 y(23.5)92 b(Returning)30 b(Information)10 +b FI(149)449 658 y(23.5)92 b(Returning)30 b(Information)10 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 -b FI(149)449 768 y(23.6)92 b(In)m(tersections)16 b FC(.)h(.)e(.)g(.)g +b FI(150)449 768 y(23.6)92 b(In)m(tersections)16 b FC(.)h(.)e(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)46 b FI(150)449 878 y(23.7)92 b(Sho)m(wing)15 +(.)g(.)46 b FI(151)449 878 y(23.7)92 b(Sho)m(wing)15 b FC(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b FI(153)150 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b FI(154)150 1120 y FH(24)135 b(P)l(ath)45 b(Reference)21 b FD(.)g(.)f(.)f(.)g(.)h (.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.) -h(.)f(.)65 b FH(155)449 1257 y FI(24.1)92 b(Data)32 b(Mem)m(b)s(ers)16 +h(.)f(.)65 b FH(156)449 1257 y FI(24.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)46 b FI(155)449 1367 y(24.2)92 b(Constructors)30 +(.)g(.)g(.)g(.)g(.)46 b FI(156)449 1367 y(24.2)92 b(Constructors)30 b(and)g(Setting)h(F)-8 b(unctions)10 b FC(.)16 b(.)f(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 -b FI(157)449 1476 y(24.3)92 b(Destructor)12 b FC(.)k(.)f(.)g(.)g(.)g(.) +b FI(158)449 1476 y(24.3)92 b(Destructor)12 b FC(.)k(.)f(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)42 b FI(161)449 1586 y(24.4)92 b(Op)s(erators)25 +g(.)g(.)42 b FI(162)449 1586 y(24.4)92 b(Op)s(erators)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(161)449 1695 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(162)449 1695 y(24.5)92 b(App)s(ending)27 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)58 -b FI(162)449 1805 y(24.6)92 b(Cop)m(ying)17 b FC(.)e(.)g(.)g(.)g(.)g(.) +b FI(163)449 1805 y(24.6)92 b(Cop)m(ying)17 b FC(.)e(.)g(.)g(.)g(.)g(.) h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) -g(.)g(.)g(.)g(.)46 b FI(163)449 1914 y(24.7)92 b(Clearing)14 +g(.)g(.)g(.)g(.)46 b FI(164)449 1914 y(24.7)92 b(Clearing)14 b FC(.)i(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b FI(163)449 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b FI(164)449 2024 y(24.8)92 b(Mo)s(difying)22 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -52 b FI(163)449 2134 y(24.9)92 b(A\016ne)31 b(T)-8 b(ransformations)25 +52 b FI(164)449 2134 y(24.9)92 b(A\016ne)31 b(T)-8 b(ransformations)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 -b FI(164)449 2243 y(24.10)93 b(Aligning)31 b(with)f(an)g(Axis)21 +b FI(165)449 2243 y(24.10)93 b(Aligning)31 b(with)f(an)g(Axis)21 b FC(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)51 -b FI(168)449 2353 y(24.11)93 b(Applying)30 b(T)-8 b(ransformations)24 +b FI(169)449 2353 y(24.11)93 b(Applying)30 b(T)-8 b(ransformations)24 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b FI(170)449 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b FI(171)449 2462 y(24.12)93 b(Dra)m(wing)31 b(and)f(Filling)17 b FC(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47 -b FI(170)449 2572 y(24.13)93 b(Lab)s(elling)17 b FC(.)f(.)f(.)g(.)g(.)g +b FI(171)449 2572 y(24.13)93 b(Lab)s(elling)17 b FC(.)f(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)47 b FI(181)449 2682 y(24.14)93 b(Sho)m(wing)14 +(.)g(.)g(.)47 b FI(182)449 2682 y(24.14)93 b(Sho)m(wing)14 b FC(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b FI(182)449 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)44 b FI(183)449 2791 y(24.15)93 b(Querying)18 b FC(.)c(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 -b FI(184)449 2901 y(24.16)93 b(Outputting)19 b FC(.)c(.)g(.)g(.)g(.)g +b FI(185)449 2901 y(24.16)93 b(Outputting)19 b FC(.)c(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)49 b FI(186)449 3010 y(24.17)93 b(In)m(tersections)15 +(.)49 b FI(187)449 3010 y(24.17)93 b(In)m(tersections)15 b FC(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)45 b FI(187)150 3253 y FH(25)135 +(.)g(.)g(.)g(.)g(.)g(.)45 b FI(188)150 3253 y FH(25)135 b(P)l(olygon)46 b(Reference)18 b FD(.)j(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)g (.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)62 -b FH(189)449 3390 y FI(25.1)92 b(Data)32 b(Mem)m(b)s(ers)16 +b FH(190)449 3390 y FI(25.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)46 b FI(189)449 3499 y(25.2)92 b(Op)s(erators)25 +(.)g(.)g(.)g(.)g(.)46 b FI(190)449 3499 y(25.2)92 b(Op)s(erators)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(189)449 3609 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(190)449 3609 y(25.3)92 b(Querying)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 -b FI(189)449 3719 y(25.4)92 b(A\016ne)31 b(T)-8 b(ransformations)25 +b FI(190)449 3719 y(25.4)92 b(A\016ne)31 b(T)-8 b(ransformations)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 -b FI(189)449 3828 y(25.5)92 b(In)m(tersections)16 b FC(.)h(.)e(.)g(.)g +b FI(190)449 3828 y(25.5)92 b(In)m(tersections)16 b FC(.)h(.)e(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)46 b FI(190)150 4071 y FH(26)135 b(Regular)46 +(.)g(.)46 b FI(191)150 4071 y FH(26)135 b(Regular)46 b(P)l(olygon)g(Reference)15 b FD(.)21 b(.)e(.)h(.)f(.)g(.)h(.)f(.)h(.)f -(.)h(.)f(.)g(.)h(.)59 b FH(195)449 4208 y FI(26.1)92 +(.)h(.)f(.)g(.)h(.)59 b FH(196)449 4208 y FI(26.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 b -FI(195)449 4317 y(26.2)92 b(Constructors)30 b(and)g(Setting)h(F)-8 +FI(196)449 4317 y(26.2)92 b(Constructors)30 b(and)g(Setting)h(F)-8 b(unctions)10 b FC(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b FI(195)449 4427 y(26.3)92 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b FI(196)449 4427 y(26.3)92 b(Op)s(erators)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 -b FI(197)449 4536 y(26.4)92 b(Querying)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g +b FI(198)449 4536 y(26.4)92 b(Querying)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)49 b FI(197)449 4646 y(26.5)92 b(Circles)26 +(.)g(.)g(.)49 b FI(198)449 4646 y(26.5)92 b(Circles)26 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b -FI(197)p eop end +FI(198)p eop end %%Page: -8 10 TeXDict begin -8 9 bop 3626 -116 a FI(viii)150 83 y FH(27)135 b(Rectangle)47 b(Reference)27 b FD(.)21 b(.)e(.)h(.)f(.)h(.)f(.)g(.)h -(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)71 b FH(201)449 +(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)71 b FH(202)449 220 y FI(27.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 -b FI(201)449 330 y(27.2)92 b(Constructors)30 b(and)g(Setting)h(F)-8 +b FI(202)449 330 y(27.2)92 b(Constructors)30 b(and)g(Setting)h(F)-8 b(unctions)10 b FC(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b FI(201)449 439 y(27.3)92 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b FI(202)449 439 y(27.3)92 b(Op)s(erators)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 -b FI(202)449 549 y(27.4)92 b(Returning)30 b(P)m(oin)m(ts)13 +b FI(203)449 549 y(27.4)92 b(Returning)30 b(P)m(oin)m(ts)13 b FC(.)j(.)f(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)43 b FI(202)449 658 y(27.5)92 b(Querying)19 +(.)g(.)g(.)43 b FI(203)449 658 y(27.5)92 b(Querying)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 b FI(203)449 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 b FI(204)449 768 y(27.6)92 b(Ellipses)9 b FC(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)39 b FI(203)150 1010 y FH(28)135 b(Regular)46 +(.)g(.)39 b FI(204)150 1010 y FH(28)135 b(Regular)46 b(Closed)g(Plane)f(Curv)l(e)h(Reference)12 b FD(.)20 -b(.)f(.)56 b FH(205)449 1147 y FI(28.1)92 b(Data)32 b(Mem)m(b)s(ers)16 +b(.)f(.)56 b FH(207)449 1147 y FI(28.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)46 b FI(205)449 1257 y(28.2)92 b(Querying)19 +(.)g(.)g(.)g(.)g(.)46 b FI(207)449 1257 y(28.2)92 b(Querying)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 b FI(205)449 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 b FI(207)449 1367 y(28.3)92 b(In)m(tersections)16 b FC(.)h(.)e(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 -b FI(206)449 1476 y(28.4)92 b(Segmen)m(ts)16 b FC(.)h(.)e(.)g(.)g(.)g +b FI(208)449 1476 y(28.4)92 b(Segmen)m(ts)16 b FC(.)h(.)e(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)46 b FI(208)150 1719 y FH(29)135 b(Ellipse)46 +(.)g(.)g(.)g(.)46 b FI(210)150 1719 y FH(29)135 b(Ellipse)46 b(Reference)29 b FD(.)21 b(.)e(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h -(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)73 b FH(211)449 +(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)73 b FH(213)449 1856 y FI(29.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 -b FI(211)449 1965 y(29.2)92 b(Constructors)30 b(and)g(Setting)h(F)-8 +b FI(213)449 1965 y(29.2)92 b(Constructors)30 b(and)g(Setting)h(F)-8 b(unctions)10 b FC(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b FI(211)449 2075 y(29.3)92 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b FI(213)449 2075 y(29.3)92 b(P)m(erforming)31 b(T)-8 b(ransformations)8 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)38 b FI(213)449 2184 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)38 b FI(215)449 2184 y(29.4)92 b(Op)s(erators)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 -b FI(213)449 2294 y(29.5)92 b(Lab)s(eling)10 b FC(.)15 +b FI(215)449 2294 y(29.5)92 b(Lab)s(eling)10 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)39 b FI(213)449 2403 +g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)39 b FI(215)449 2403 y(29.6)92 b(A\016ne)31 b(T)-8 b(ransformations)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 -b FI(215)449 2513 y(29.7)92 b(Querying)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g +b FI(217)449 2513 y(29.7)92 b(Querying)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)49 b FI(215)449 2623 y(29.8)92 b(Returning)30 +(.)g(.)g(.)49 b FI(217)449 2623 y(29.8)92 b(Returning)30 b(Elemen)m(ts)h(and)f(Information)c FC(.)15 b(.)h(.)f(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b FI(216)449 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b FI(218)449 2732 y(29.9)92 b(In)m(tersections)16 b FC(.)h(.)e(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 -b FI(219)449 2842 y(29.10)93 b(Solving)13 b FC(.)i(.)g(.)g(.)g(.)g(.)g +b FI(221)449 2842 y(29.10)93 b(Solving)13 b FC(.)i(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)43 b FI(224)449 2951 y(29.11)93 b(Rectangles)10 +(.)g(.)g(.)g(.)43 b FI(226)449 2951 y(29.11)93 b(Rectangles)10 b FC(.)17 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)39 b FI(225)150 3194 +g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)39 b FI(227)150 3194 y FH(30)135 b(Circle)46 b(Reference)18 b FD(.)j(.)e(.)h(.)f(.)h(.)f(.)h (.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)63 -b FH(227)449 3331 y FI(30.1)92 b(Data)32 b(Mem)m(b)s(ers)16 +b FH(229)449 3331 y FI(30.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)46 b FI(227)449 3440 y(30.2)92 b(Constructors)30 +(.)g(.)g(.)g(.)g(.)46 b FI(229)449 3440 y(30.2)92 b(Constructors)30 b(and)g(Setting)h(F)-8 b(unctions)10 b FC(.)16 b(.)f(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 -b FI(227)449 3550 y(30.3)92 b(Op)s(erators)25 b FC(.)15 +b FI(229)449 3550 y(30.3)92 b(Op)s(erators)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(227)449 3660 y(30.4)92 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(229)449 3660 y(30.4)92 b(Querying)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 -b FI(228)449 3769 y(30.5)92 b(In)m(tersections)16 b FC(.)h(.)e(.)g(.)g +b FI(230)449 3769 y(30.5)92 b(In)m(tersections)16 b FC(.)h(.)e(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.) f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)46 b FI(229)150 4012 y FH(31)135 b(P)l(attern)46 +(.)g(.)46 b FI(231)150 4012 y FH(31)135 b(P)l(attern)46 b(Reference)32 b FD(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h -(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)74 b FH(230)449 +(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)74 b FH(232)449 4149 y FI(31.1)92 b(Plane)31 b(T)-8 b(esselations)11 b FC(.)17 b(.)e(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.) -g(.)g(.)40 b FI(230)449 4258 y(31.2)92 b(Roulettes)32 +g(.)g(.)40 b FI(232)449 4258 y(31.2)92 b(Roulettes)32 b(and)e(In)m(v)m(olutes)11 b FC(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)41 b FI(232)748 4368 y(31.2.1)93 b(Epicycloids)8 +g(.)g(.)g(.)g(.)41 b FI(234)748 4368 y(31.2.1)93 b(Epicycloids)8 b FC(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -38 b FI(233)p eop end +38 b FI(235)p eop end %%Page: -9 11 TeXDict begin -9 10 bop 3677 -116 a FI(ix)150 83 y FH(32)135 b(Solid)45 b(Reference)16 b FD(.)21 b(.)e(.)g(.)h(.)f(.)h(.)f(.)h(.)f (.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)60 -b FH(236)449 220 y FI(32.1)92 b(Data)32 b(Mem)m(b)s(ers)16 +b FH(238)449 220 y FI(32.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)46 b FI(236)449 330 y(32.2)92 b(Constructors)30 +(.)g(.)g(.)g(.)g(.)46 b FI(238)449 330 y(32.2)92 b(Constructors)30 b(and)g(Setting)h(F)-8 b(unctions)10 b FC(.)16 b(.)f(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 -b FI(236)449 439 y(32.3)92 b(Destructor)12 b FC(.)k(.)f(.)g(.)g(.)g(.)g +b FI(238)449 439 y(32.3)92 b(Destructor)12 b FC(.)k(.)f(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)42 b FI(237)449 549 y(32.4)92 b(Op)s(erators)25 +(.)g(.)42 b FI(239)449 549 y(32.4)92 b(Op)s(erators)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(237)449 658 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 b FI(239)449 658 y(32.5)92 b(Cop)m(ying)17 b FC(.)e(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)46 -b FI(237)449 768 y(32.6)92 b(Setting)32 b(Mem)m(b)s(ers)15 +b FI(239)449 768 y(32.6)92 b(Setting)32 b(Mem)m(b)s(ers)15 b FC(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)45 b FI(237)449 878 y(32.7)92 b(Querying)19 +(.)g(.)g(.)45 b FI(239)449 878 y(32.7)92 b(Querying)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 b FI(237)449 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 b FI(239)449 987 y(32.8)92 b(Returning)30 b(Elemen)m(ts)h(and)f(Information)c FC(.)15 b(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)56 b FI(238)748 1097 y(Getting)32 b(Shap)s(e)d(Cen)m(ters)f +(.)g(.)56 b FI(240)748 1097 y(Getting)32 b(Shap)s(e)d(Cen)m(ters)f FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)57 -b FI(238)748 1206 y(Getting)32 b(Shap)s(es)23 b FC(.)15 +b FI(240)748 1206 y(Getting)32 b(Shap)s(es)23 b FC(.)15 b(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)55 b FI(239)449 1316 y(32.9)92 b(Sho)m(wing)15 b +g(.)55 b FI(241)449 1316 y(32.9)92 b(Sho)m(wing)15 b FC(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b FI(241)449 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)45 b FI(243)449 1425 y(32.10)93 b(A\016ne)30 b(T)-8 b(ransformations)24 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 -b FI(241)449 1535 y(32.11)93 b(Applying)30 b(T)-8 b(ransformations)24 +b FI(243)449 1535 y(32.11)93 b(Applying)30 b(T)-8 b(ransformations)24 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b FI(241)449 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)54 b FI(243)449 1645 y(32.12)93 b(Outputting)19 b FC(.)c(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h (.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 -b FI(241)449 1754 y(32.13)93 b(Dra)m(wing)31 b(and)f(Filling)17 +b FI(243)449 1754 y(32.13)93 b(Dra)m(wing)31 b(and)f(Filling)17 b FC(.)f(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)47 -b FI(242)449 1864 y(32.14)93 b(Clearing)13 b FC(.)i(.)g(.)g(.)g(.)g(.)g +b FI(244)449 1864 y(32.14)93 b(Clearing)13 b FC(.)i(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)h(.)42 b FI(244)150 2106 y FH(33)135 b(F)-11 b(aced)44 +(.)g(.)h(.)42 b FI(246)150 2106 y FH(33)135 b(F)-11 b(aced)44 b(Solid)i(Reference)13 b FD(.)21 b(.)e(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g -(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)57 b FH(245)449 2243 +(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)57 b FH(247)449 2243 y FI(33.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 -b FI(245)150 2486 y FH(34)135 b(Cub)t(oid)44 b(Reference)e +b FI(247)150 2486 y FH(34)135 b(Cub)t(oid)44 b(Reference)e FD(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h -(.)f(.)h(.)f(.)g(.)h(.)84 b FH(246)449 2623 y FI(34.1)92 +(.)f(.)h(.)f(.)g(.)h(.)84 b FH(248)449 2623 y FI(34.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 b -FI(246)449 2732 y(34.2)92 b(Constructors)30 b(and)g(Setting)h(F)-8 +FI(248)449 2732 y(34.2)92 b(Constructors)30 b(and)g(Setting)h(F)-8 b(unctions)10 b FC(.)16 b(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b FI(246)449 2842 y(34.3)92 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b FI(248)449 2842 y(34.3)92 b(Op)s(erators)25 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)55 -b FI(247)150 3084 y FH(35)135 b(P)l(olyhedron)45 b(Reference)13 +b FI(249)150 3084 y FH(35)135 b(P)l(olyhedron)45 b(Reference)13 b FD(.)21 b(.)e(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f -(.)h(.)f(.)57 b FH(248)449 3221 y FI(35.1)92 b(Data)32 +(.)h(.)f(.)57 b FH(250)449 3221 y FI(35.1)92 b(Data)32 b(Mem)m(b)s(ers)16 b FC(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 b FI(248)449 3331 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)46 b FI(250)449 3331 y(35.2)92 b(Regular)31 b(Platonic)h(P)m(olyhedra)18 b FC(.)e(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 b FI(248)748 +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)48 b FI(250)748 3440 y(35.2.1)93 b(T)-8 b(etrahedron)10 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b FI(248)1047 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)40 b FI(250)1047 3550 y(35.2.1.1)94 b(Data)32 b(Mem)m(b)s(ers)12 b FC(.)j(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42 -b FI(248)1047 3660 y(35.2.1.2)94 b(Constructors)29 b(and)h(Setting)h(F) --8 b(unctions)29 b FC(.)15 b(.)57 b FI(248)1047 3769 +b FI(250)1047 3660 y(35.2.1.2)94 b(Constructors)29 b(and)h(Setting)h(F) +-8 b(unctions)29 b FC(.)15 b(.)57 b FI(250)1047 3769 y(35.2.1.3)94 b(Net)19 b FC(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)49 b FI(250)748 3879 y(35.2.2)93 b(Do)s(decahedron)14 +g(.)g(.)g(.)49 b FI(252)748 3879 y(35.2.2)93 b(Do)s(decahedron)14 b FC(.)h(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)43 -b FI(252)1047 3988 y(35.2.2.1)94 b(Data)32 b(Mem)m(b)s(ers)12 +b FI(254)1047 3988 y(35.2.2.1)94 b(Data)32 b(Mem)m(b)s(ers)12 b FC(.)j(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)42 b FI(252)1047 4098 y(35.2.2.2)94 +g(.)g(.)g(.)g(.)g(.)42 b FI(254)1047 4098 y(35.2.2.2)94 b(Constructors)29 b(and)h(Setting)h(F)-8 b(unctions)29 -b FC(.)15 b(.)57 b FI(252)1047 4208 y(35.2.2.3)94 b(Net)19 +b FC(.)15 b(.)57 b FI(254)1047 4208 y(35.2.2.3)94 b(Net)19 b FC(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 -b FI(253)748 4317 y(35.2.3)93 b(Icosahedron)18 b FC(.)d(.)g(.)g(.)g(.)g +b FI(255)748 4317 y(35.2.3)93 b(Icosahedron)18 b FC(.)d(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)47 b FI(254)1047 +g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.)g(.)g(.)47 b FI(256)1047 4427 y(35.2.3.1)94 b(Data)32 b(Mem)m(b)s(ers)12 b FC(.)j(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42 -b FI(254)1047 4536 y(35.2.3.2)94 b(Constructors)29 b(and)h(Setting)h(F) --8 b(unctions)29 b FC(.)15 b(.)57 b FI(254)1047 4646 +b FI(256)1047 4536 y(35.2.3.2)94 b(Constructors)29 b(and)h(Setting)h(F) +-8 b(unctions)29 b FC(.)15 b(.)57 b FI(256)1047 4646 y(35.2.3.3)94 b(Net)19 b FC(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -g(.)g(.)g(.)49 b FI(255)449 4755 y(35.3)92 b(Semi-Regular)32 +g(.)g(.)g(.)49 b FI(257)449 4755 y(35.3)92 b(Semi-Regular)32 b(Arc)m(himedean)e(P)m(olyhedra)d FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)h(.)f -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b FI(257)748 4865 -y(35.3.1)93 b(T)-8 b(runcated)30 b(Octahedron)g(\(T)-8 -b(runc)p 2280 4865 28 4 v 40 w(Octahedron\))28 b FC(.)15 -b(.)g(.)58 b FI(257)1047 4975 y(35.3.1.1)94 b(Data)32 -b(Mem)m(b)s(ers)12 b FC(.)j(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)42 b FI(257)1047 -5084 y(35.3.1.2)94 b(Constructors)29 b(and)h(Setting)h(F)-8 -b(unctions)29 b FC(.)15 b(.)57 b FI(257)1047 5194 y(35.3.1.3)94 -b(Net)19 b FC(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) -49 b FI(258)p eop end +(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b FI(259)748 4865 +y(35.3.1)93 b(T)-8 b(runcated)30 b(Octahedron)18 b FC(.)d(.)g(.)g(.)g +(.)g(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)48 b FI(259)1047 4975 y(35.3.1.1)94 b(Data)32 b(Mem)m(b)s(ers)12 +b FC(.)j(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)42 b FI(259)1047 5084 y(35.3.1.2)94 +b(Constructors)29 b(and)h(Setting)h(F)-8 b(unctions)29 +b FC(.)15 b(.)57 b FI(259)1047 5194 y(35.3.1.3)94 b(Net)19 +b FC(.)c(.)h(.)f(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)49 +b FI(260)p eop end %%Page: -10 12 TeXDict begin -10 11 bop 3702 -116 a FI(x)150 83 y FH(36)135 b(Utilit)l(y)47 b(F)-11 b(unctions)34 b FD(.)19 b(.)h(.)f(.)h(.)f(.)h (.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)79 -b FH(259)449 220 y FI(36.1)92 b(P)m(ersp)s(ectiv)m(e)32 +b FH(261)449 220 y FI(36.1)92 b(P)m(ersp)s(ectiv)m(e)32 b(F)-8 b(unctions)28 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.) g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g -(.)g(.)g(.)h(.)56 b FI(259)150 462 y FH(37)135 b(Adding)44 +(.)g(.)g(.)h(.)56 b FI(261)150 462 y FH(37)135 b(Adding)44 b(a)h(File)39 b FD(.)19 b(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h (.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)82 -b FH(261)150 732 y(38)135 b(F)-11 b(uture)44 b(Plans)31 +b FH(263)150 732 y(38)135 b(F)-11 b(uture)44 b(Plans)31 b FD(.)19 b(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h -(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)74 b FH(263)150 +(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)74 b FH(265)150 1002 y(39)135 b(Changes)38 b FD(.)20 b(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f (.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.) -f(.)g(.)h(.)f(.)82 b FH(264)150 1272 y(Bibliograph)l(y)11 +f(.)g(.)h(.)f(.)82 b FH(266)150 1272 y(Bibliograph)l(y)11 b FD(.)20 b(.)g(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h (.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)55 -b FH(265)150 1542 y(App)t(endix)44 b(A)99 b(GNU)46 b(F)-11 +b FH(267)150 1542 y(App)t(endix)44 b(A)99 b(GNU)46 b(F)-11 b(ree)44 b(Do)t(cumen)l(tation)j(License)454 1675 y FD(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h (.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.) -f(.)h(.)f(.)79 b FH(267)748 1812 y FI(A.0.1)92 b(ADDENDUM:)33 +f(.)h(.)f(.)79 b FH(269)748 1812 y FI(A.0.1)92 b(ADDENDUM:)33 b(Ho)m(w)e(to)g(use)f(this)g(License)h(for)g(y)m(our)930 1921 y(do)s(cumen)m(ts)26 b FC(.)15 b(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g (.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)h(.)f(.) -g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b FI(273)150 +g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)g(.)56 b FI(275)150 2164 y FH(Data)46 b(T)l(yp)t(e)e(and)h(V)-11 b(ariable)46 b(Index)19 b FD(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f -(.)63 b FH(274)150 2433 y(F)-11 b(unction)44 b(Index)36 +(.)63 b FH(276)150 2433 y(F)-11 b(unction)44 b(Index)36 b FD(.)19 b(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h (.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)80 -b FH(277)150 2703 y(Concept)45 b(Index)18 b FD(.)i(.)f(.)h(.)f(.)g(.)h +b FH(279)150 2703 y(Concept)45 b(Index)18 b FD(.)i(.)f(.)h(.)f(.)g(.)h (.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)h(.)f(.) -h(.)f(.)g(.)h(.)f(.)h(.)62 b FH(280)p eop end +h(.)f(.)g(.)h(.)f(.)h(.)62 b FH(282)p eop end %%Page: 1 13 TeXDict begin 1 12 bop 150 -116 a FI(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(1)150 299 y FE(1)80 b(In)l(tro)t(duction) -150 578 y FI(3DLDF)39 b(is)e(a)h(free)f(soft)m(w)m(are)i(pac)m(k)-5 +150 544 y FI(3DLDF)39 b(is)e(a)h(free)f(soft)m(w)m(are)i(pac)m(k)-5 b(age)40 b(for)d(three-dimensional)h(dra)m(wing)f(written)h(b)m(y)f -(Laurence)g(D.)150 687 y(Finston,)e(who)e(is)g(also)i(the)e(author)g -(of)h(this)f(man)m(ual.)51 b(It)33 b(is)h(written)f(in)g -FB(C)2785 679 y FA(+)-8 b(+)2950 687 y FI(using)33 b(CWEB)h(and)e(it) -150 797 y(outputs)e(MetaP)m(ost)j(co)s(de.)275 946 y(3DLDF)61 +(Laurence)g(D.)150 654 y(Finston,)g(who)e(is)g(also)h(the)f(author)g +(of)h(this)f(man)m(ual.)55 b(It)35 b(is)h(written)f(in)g +FB(C)2812 646 y FA(+)-8 b(+)2945 654 y FI(using)34 b(CWEB)i(and)e(it) +150 763 y(outputs)c(MetaP)m(ost)j(co)s(de.)275 901 y(3DLDF)61 b(is)g(a)g(GNU)g(pac)m(k)-5 b(age.)132 b(It)61 b(is)f(part)h(of)f(the)h (GNU)g(Pro)5 b(ject)61 b(of)g(the)f(F)-8 b(ree)62 b(Soft-)150 -1056 y(w)m(are)67 b(F)-8 b(oundation)66 b(and)g(is)g(published)e(under) +1011 y(w)m(are)67 b(F)-8 b(oundation)66 b(and)g(is)g(published)e(under) h(the)h(GNU)h(General)g(Public)e(License.)149 b(See)150 -1165 y(the)70 b(w)m(ebsite)h Fz(http://www.gnu.org)64 +1120 y(the)70 b(w)m(ebsite)h Fz(http://www.gnu.org)64 b FI(for)70 b(more)g(information.)159 b(3DLDF)71 b(is)f(a)m(v)-5 -b(ailable)72 b(for)150 1275 y(do)m(wnloading)60 b(from)g -Fz(http://ftp.gnu.org/gnu/3D)o(LDF)o FI(.)124 b(The)60 -b(o\016cial)h(3DLDF)h(w)m(ebsite)f(is)150 1385 y Fz -(http://www.gnu.org/softw)o(are/)o(3DLD)o(F)p FI(.)275 -1534 y(Please)31 b(send)f(bug)f(rep)s(orts)h(to:)390 -1683 y Fz(bug-3DLDF@gnu.org)c FI(and)275 1833 y(Tw)m(o)c(other)g -(mailing)h(lists)f(ma)m(y)h(b)s(e)e(of)h(in)m(terest)h(to)g(users)e(of) -h(3DLDF:)i Fz(help-3DLDF@gnu.org)17 b FI(is)22 b(for)150 -1942 y(p)s(eople)31 b(to)h(ask)f(other)g(users)f(for)h(help)f(and)h -Fz(info-3DLDF@gnu.org)26 b FI(is)31 b(for)g(sending)f(announcemen)m(ts) -150 2052 y(to)h(users.)40 b(T)-8 b(o)31 b(subscrib)s(e,)e(send)h(an)g +b(ailable)72 b(for)150 1230 y(do)m(wnloading)60 b(from)g +Fz(http://ftp.gnu.org/gnu/3d)o(ldf)o FI(.)124 b(The)60 +b(o\016cial)h(3DLDF)h(w)m(ebsite)f(is)150 1340 y Fz +(http://www.gnu.org/softw)o(are/)o(3dld)o(f)p FI(.)39 +b(More)33 b(information)f(ab)s(out)f(3DLDF)i(can)g(b)s(e)e(found)f(at) +150 1449 y(the)h(author's)f(w)m(ebsite:)41 b Fz +(http://wwwuser.gwdg.de/~lf)o(inst)o(o1)p FI(.)275 1587 +y(Please)31 b(send)f(bug)f(rep)s(orts)h(to:)390 1726 +y Fz(bug-3DLDF@gnu.org)c FI(and)275 1864 y(Tw)m(o)c(other)g(mailing)h +(lists)f(ma)m(y)h(b)s(e)e(of)h(in)m(terest)h(to)g(users)e(of)h(3DLDF:)i +Fz(help-3DLDF@gnu.org)17 b FI(is)22 b(for)150 1973 y(p)s(eople)31 +b(to)h(ask)f(other)g(users)f(for)h(help)f(and)h Fz(info-3DLDF@gnu.org) +26 b FI(is)31 b(for)g(sending)f(announcemen)m(ts)150 +2083 y(to)h(users.)40 b(T)-8 b(o)31 b(subscrib)s(e,)e(send)h(an)g (email)i(to)f(the)f(appropriate)h(mailing)g(list)g(or)g(lists)g(with)f -(the)g(w)m(ord)150 2162 y Fz(")p FI(subscrib)s(e)p Fz(")c +(the)g(w)m(ord)150 2193 y Fz(")p FI(subscrib)s(e)p Fz(")c FI(as)i(the)g(sub)5 b(ject.)39 b(The)27 b(author's)h(w)m(ebsite)h(is)e Fz(http://wwwuser.gwdg.de/~lf)o(inst)o(o1)p FI(.)275 -2311 y(My)40 b(primary)e(purp)s(ose)g(in)i(writing)g(3DLDF)h(w)m(as)f +2331 y(My)40 b(primary)e(purp)s(ose)g(in)i(writing)g(3DLDF)h(w)m(as)f (to)h(mak)m(e)f(it)h(p)s(ossible)e(to)h(use)g(MetaP)m(ost)i(for)150 -2421 y(three-dimensional)j(dra)m(wing.)84 b(I'v)m(e)45 +2440 y(three-dimensional)j(dra)m(wing.)84 b(I'v)m(e)45 b(alw)m(a)m(ys)h(enjo)m(y)m(ed)g(using)e(MetaP)m(ost,)51 -b(and)44 b(though)m(t)h(it)h(w)m(as)f(a)150 2530 y(shame)37 +b(and)44 b(though)m(t)h(it)h(w)m(as)f(a)150 2550 y(shame)37 b(that)g(I)f(could)h(only)g(use)g(it)g(for)f(making)h(t)m(w)m (o-dimensional)i(dra)m(wings.)59 b(3DLDF)39 b(is)d(a)i(fron)m(t-)150 -2640 y(end)f(that)h(op)s(erates)f(on)g(three-dimensional)h(data,)i(p)s +2659 y(end)f(that)h(op)s(erates)f(on)g(three-dimensional)h(data,)i(p)s (erforms)c(the)i(necessary)f(calculations)j(for)d(the)150 -2749 y(pro)5 b(jection)31 b(on)m(to)h(t)m(w)m(o)f(dimensions,)f(and)g +2769 y(pro)5 b(jection)31 b(on)m(to)h(t)m(w)m(o)f(dimensions,)f(and)g (writes)g(its)h(output)f(in)g(the)h(form)f(of)g(MetaP)m(ost)j(co)s(de.) -275 2899 y(While)26 b(3DLDF's)i(data)e(t)m(yp)s(es)g(and)g(op)s +275 2907 y(While)26 b(3DLDF's)i(data)e(t)m(yp)s(es)g(and)g(op)s (erations)g(are)g(mo)s(delled)g(on)g(those)h(of)f(Metafon)m(t)i(and)d -(Meta-)150 3008 y(P)m(ost,)31 b(and)e(while)h(the)g(only)g(form)f(of)h +(Meta-)150 3017 y(P)m(ost,)31 b(and)e(while)h(the)g(only)g(form)f(of)h (output)f(3DLDF)i(curren)m(tly)f(pro)s(duces)e(is)i(MetaP)m(ost)i(co)s -(de,)f(it)f(is)150 3118 y(nonetheless)j(not)g(in)f(principle)g(tied)h +(de,)f(it)f(is)150 3126 y(nonetheless)j(not)g(in)f(principle)g(tied)h (to)g(MetaP)m(ost.)50 b(It)32 b(could)h(b)s(e)f(mo)s(di\014ed)f(to)i -(pro)s(duce)e(P)m(ostScript)150 3228 y(co)s(de)k(directly)-8 +(pro)s(duce)e(P)m(ostScript)150 3236 y(co)s(de)k(directly)-8 b(,)38 b(or)d(output)g(in)f(other)i(formats.)55 b(It)35 b(w)m(ould)g(also)h(b)s(e)e(p)s(ossible)h(to)h(mo)s(dify)e(3DLDF)j(so) -150 3337 y(that)42 b(it)h(could)f(b)s(e)f(used)g(for)h(creating)h +150 3346 y(that)42 b(it)h(could)f(b)s(e)f(used)g(for)h(creating)h (graphics)f(in)m(teractiv)m(ely)j(on)d(a)g(terminal,)j(b)m(y)d(means)g -(of)g(an)150 3447 y(appropriate)30 b(in)m(terface)i(to)f(the)g -(computer's)f(graphics)h(hardw)m(are.)275 3596 y(The)39 +(of)g(an)150 3455 y(appropriate)30 b(in)m(terface)i(to)f(the)g +(computer's)f(graphics)h(hardw)m(are.)275 3593 y(The)39 b(name)h(\\3DLDF")j(\(\\3D")f(plus)d(the)i(author's)f(initials\))h(w)m -(as)g(c)m(hosen)g(b)s(ecause,)i(while)d(not)150 3706 +(as)g(c)m(hosen)g(b)s(ecause,)i(while)d(not)150 3703 y(prett)m(y)-8 b(,)32 b(it's)f(unlik)m(ely)g(to)g(con\015ict)g(with)f (an)m(y)h(of)f(the)h(other)f(programs)g(called)i(\\3D"-something.)150 -4000 y FH(1.1)68 b(Sources)45 b(of)g(Information)150 -4259 y FI(This)34 b(handb)s(o)s(ok,)g(and)g(the)h(use)f(of)h(3DLDF)h +3969 y FH(1.1)68 b(Sources)45 b(of)g(Information)150 +4217 y FI(This)34 b(handb)s(o)s(ok,)g(and)g(the)h(use)f(of)h(3DLDF)h (itself,)g(presupp)s(ose)d(at)i(least)h(some)f(familiarit)m(y)h(on)f -(the)150 4369 y(part)26 b(of)h(the)f(reader)h(with)f(Metafon)m(t,)j -(MetaP)m(ost,)h(CWEB,)d(and)f FB(C)2493 4361 y FA(+)-8 -b(+)2617 4369 y FI(.)39 b(If)26 b(y)m(ou)h(are)g(not)f(familiar)h(with) -150 4478 y(an)m(y)k(or)f(all)h(of)g(them,)f(I)h(recommend)f(the)g -(follo)m(wing)i(sources)e(of)h(information:)150 4693 +(the)150 4327 y(part)28 b(of)h(the)f(reader)g(with)g(Metafon)m(t,)j +(MetaP)m(ost,)g(CWEB,)e(and)f FB(C)2509 4319 y FA(+)-8 +b(+)2607 4327 y FI(.)40 b(If)28 b(y)m(ou)g(are)h(not)f(familiar)h(with) +150 4436 y(an)m(y)i(or)f(all)h(of)g(them,)f(I)h(recommend)f(the)g +(follo)m(wing)i(sources)e(of)h(information:)150 4628 y(Kn)m(uth,)41 b(Donald)e(Ervin.)67 b FC(The)41 b(MET)-7 b(AF)n(ONTb)i(o)g(ok)p FI(.)66 b(Computers)39 b(and)f(T)m(yp)s -(esetting;)45 b(C.)39 b(Addison)150 4802 y(W)-8 b(esley)32 -b(Publishing)d(Compan)m(y)-8 b(.)41 b(Reading,)31 b(Massac)m(h)m -(usetts)i(1986.)150 5016 y(Hobb)m(y)-8 b(,)39 b(John)d(D.)i -FC(A)g(User's)h(Manual)g(for)g(MetaPost)p FI(.)61 b(A)-8 -b(T&T)37 b(Bell)h(Lab)s(oratories.)61 b(Murra)m(y)37 -b(Hill,)150 5126 y(NJ.)30 b(No)h(date.)150 5340 y(Kn)m(uth,)f(Donald)h -(E.)f(and)g(Silvio)h(Levy)-8 b(.)41 b FC(The)33 b Fy(CWEB)e -FC(System)j(of)e(Structur)-5 b(e)g(d)34 b(Do)-5 b(cumentation)p -FI(.)p eop end +(esetting;)45 b(C.)39 b(Addison)150 4738 y(W)-8 b(esley)32 +b(Publishing)d(Compan)m(y)-8 b(,)31 b(Inc.)40 b(Reading,)32 +b(Massac)m(h)m(usetts)g(1986.)150 4929 y(Hobb)m(y)-8 +b(,)34 b(John)e(D.)i FC(A)g(User's)h(Manual)g(for)h(MetaPost)p +FI(.)48 b(A)-8 b(T)33 b(&)g(T)f(Bell)i(Lab)s(oratories.)49 +b(Murra)m(y)33 b(Hill,)150 5039 y(NJ.)d(No)h(date.)150 +5230 y(Kn)m(uth,)48 b(Donald)e(E.)f(and)g(Silvio)h(Levy)-8 +b(.)86 b FC(The)47 b Fy(CWEB)e FC(System)i(of)f(Structur)-5 +b(e)g(d)48 b(Do)-5 b(cumentation)p FI(.)150 5340 y(V)d(ersion)31 +b(3.64|F)-8 b(ebruary)32 b(2002.)p eop end %%Page: 2 14 TeXDict begin 2 13 bop 150 -116 a FI(Chapter)30 b(1:)41 -b(In)m(tro)s(duction)2592 b(2)150 299 y(V)-8 b(ersion)31 -b(3.64|F)-8 b(ebruary)32 b(2002.)150 482 y(Stroustrup,)37 -b(Bjarne.)60 b FC(The)39 b FB(C)1244 474 y FA(+)-8 b(+)1381 -482 y FC(Pr)j(o)g(gr)g(amming)41 b(L)-5 b(anguage)p FI(.)61 -b(Sp)s(ecial)37 b(Edition.)60 b(Addison-W)-8 b(esley)g(.)150 -591 y(Reading,)31 b(Massac)m(h)m(usetts)i(2000.)275 725 -y(The)47 b(man)m(uals)h(for)f(MetaP)m(ost)k(and)c(CWEB)h(are)g(a)m(v)-5 -b(ailable)50 b(from)d(the)h(Comprehensiv)m(e)g(T)3632 -745 y(E)3682 725 y(X)150 835 y(Arc)m(hiv)m(e)32 b(Net)m(w)m(ork)f(\(CT) --8 b(AN\).)32 b(See)e(one)h(of)g(the)f(follo)m(wing)i(w)m(eb)e(sites)h -(for)g(more)f(information:)150 993 y(German)m(y)116 b -Fz(http://dante.ctan.org)p FI(,)25 b Fz(http://ftp.dante.de)630 -1103 y(http://www.dante.de)p FI(.)150 1261 y(United)31 -b(Kingdom)630 1370 y Fz(http://www.cam.ctan.org)630 1480 -y(http://ftp.tex.ac.uk)p FI(.)150 1638 y(USA)293 b Fz -(http://www.tug.ctan.org)630 1748 y(http://www.ctan.tug.org)p -FI(.)150 2004 y FH(1.2)68 b(Ab)t(out)44 b(This)h(Man)l(ual)150 -2247 y FI(This)30 b(man)m(ual)i(has)f(b)s(een)f(created)i(using)f(T)-8 +b(In)m(tro)s(duction)2592 b(2)150 299 y(Stroustrup,)42 +b(Bjarne.)74 b FC(The)43 b FB(C)1267 291 y FA(+)-8 b(+)1407 +299 y FC(Pr)j(o)g(gr)g(amming)45 b(L)-5 b(anguage)p FI(.)74 +b(Sp)s(ecial)42 b(Edition.)73 b(Reading,)45 b(Mas-)150 +408 y(sac)m(h)m(usetts)32 b(2000.)42 b(Addison-W)-8 b(esley)g(.)43 +b(ISBN)30 b(0-201-70073-5.)275 588 y(The)47 b(man)m(uals)h(for)f(MetaP) +m(ost)k(and)c(CWEB)h(are)g(a)m(v)-5 b(ailable)50 b(from)d(the)h +(Comprehensiv)m(e)g(T)3632 608 y(E)3682 588 y(X)150 698 +y(Arc)m(hiv)m(e)32 b(Net)m(w)m(ork)f(\(CT)-8 b(AN\).)32 +b(See)e(one)h(of)g(the)f(follo)m(wing)i(w)m(eb)e(sites)h(for)g(more)f +(information:)150 854 y(German)m(y)116 b Fz(http://dante.ctan.org)p +FI(,)25 b Fz(http://ftp.dante.de)630 964 y(http://www.dante.de)p +FI(.)150 1120 y(United)31 b(Kingdom)630 1230 y Fz +(http://www.cam.ctan.org)630 1339 y(http://ftp.tex.ac.uk)p +FI(.)150 1496 y(USA)293 b Fz(http://www.tug.ctan.org)630 +1605 y(http://www.ctan.tug.org)p FI(.)150 1858 y FH(1.2)68 +b(Ab)t(out)44 b(This)h(Man)l(ual)150 2101 y FI(This)30 +b(man)m(ual)i(has)f(b)s(een)f(created)i(using)f(T)-8 b(exinfo,)32 b(a)f(do)s(cumen)m(tation)h(system)f(whic)m(h)g(is)g(part) -g(of)h(the)150 2357 y(GNU)f(Pro)5 b(ject,)31 b(whose)g(main)f(sp)s +g(of)h(the)150 2210 y(GNU)f(Pro)5 b(ject,)31 b(whose)g(main)f(sp)s (onsor)f(is)h(the)h(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 -b(oundation.)275 2491 y(F)g(or)31 b(more)f(information)h(ab)s(out)f(T) --8 b(exinfo,)31 b(see:)386 2649 y(Stallmann,)i(Ric)m(hard)f(M.)g(and)f -(Rob)s(ert)h(J.)g(Chassell.)45 b FC(T)-7 b(exinfo.)46 -b(The)35 b(GNU)e(Do)-5 b(cumen-)386 2759 y(tation)34 -b(F)-7 b(ormat)p FI(.)43 b(The)30 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F) --8 b(oundation.)41 b(Boston)31 b(1999.)275 2917 y(F)-8 -b(or)38 b(more)g(information)g(ab)s(out)f(the)h(GNU)g(Pro)5 -b(ject)39 b(and)e(the)g(F)-8 b(ree)39 b(Soft)m(w)m(are)g(F)-8 -b(oundation,)40 b(see)150 3026 y(the)31 b(follo)m(wing)g(w)m(eb)g -(site:)41 b Fz(http://www.gnu.org)p FI(.)275 3160 y(T)-8 -b(exinfo)29 b(can)g(b)s(e)g(used)f(to)i(generate)h(online)e(and)g(prin) -m(ted)f(do)s(cumen)m(tation)i(from)f(the)g(same)h(input)150 -3270 y(\014les.)39 b(This)25 b(man)m(ual)g(is)h(curren)m(tly)f -(designed)g(for)g(prin)m(ting)g FC(only)p FI(.)40 b(It)26 -b(con)m(tains)g(a)g(large)h(amoun)m(t)e(of)h(T)3632 3290 -y(E)3682 3270 y(X)150 3380 y(text,)j(including)f(the)g(illustrations,)h -(whic)m(h)e(w)m(ould)h(b)s(e)f(lost)h(if)g(the)g(input)e(\014les)i(w)m -(ere)g(used)f(to)h(generate)150 3489 y(an)j(online)h(v)m(ersion)g(of)f -(this)g(man)m(ual)h(in)f(its)h(curren)m(t)f(form.)43 -b(I)31 b(plan)g(to)h(mak)m(e)h(the)e(c)m(hanges)i(necessary)150 -3599 y(in)27 b(order)f(to)i(mak)m(e)g(it)f(p)s(ossible)g(to)h(generate) -g(online)g(do)s(cumen)m(tation)f(in)g(the)g(not-to)s(o-distan)m(t)j -(future.)275 3733 y(The)23 b(edition)i(of)f(this)h(man)m(ual)f(is)g -(1.1.3)i(and)e(it)h(do)s(cumen)m(ts)f(v)m(ersion)g(1.1.3)i(of)f(3DLDF.) -h(The)d(edition)150 3842 y(n)m(um)m(b)s(er)c(of)i(the)g(man)m(ual)g -(and)f(the)h(v)m(ersion)g(n)m(um)m(b)s(er)f(of)g(the)h(program)g(are)g -(the)g(same)g(\(as)g(of)g(1)g(Decem)m(b)s(er)150 3952 -y(2003\),)33 b(but)c(ma)m(y)i(div)m(erge)h(at)f(a)g(later)g(date.)275 -4086 y(Note)i(that)g(\\I",)g(\\me",)h(etc.,)g(in)e(this)g(man)m(ual)h -(refers)f(to)h(Laurence)f(D.)h(Finston,)g(so)g(far)f(the)g(sole)150 -4195 y(author)41 b(of)g(b)s(oth)f(3DLDF)j(and)d(this)h(man)m(ual.)74 -b(\\Curren)m(tly")41 b(and)f(similar)i(form)m(ulations)f(refer)g(to)150 -4305 y(v)m(ersion)31 b(1.1.3)h(of)f(3DLDF)g(as)g(of)g(1)f(Decem)m(b)s -(er)h(2003.)275 4439 y(This)26 b(man)m(ual)h(is)g(in)m(tended)g(for)g -(b)s(oth)f(b)s(eginning)h(and)f(adv)-5 b(anced)27 b(users)g(of)g -(3DLDF.)i(So,)f(if)f(there's)150 4548 y(something)38 -b(y)m(ou)f(don't)g(understand,)h(it's)g(probably)e(b)s(est)h(to)h(skip) -f(it)g(and)g(come)h(bac)m(k)g(to)g(it)g(later.)150 4658 -y(Some)29 b(of)h(the)f(more)h(di\016cult)f(p)s(oin)m(ts,)h(or)f(ones)g -(that)h(presupp)s(ose)e(familiarit)m(y)j(with)e(features)g(not)h(y)m -(et)150 4768 y(describ)s(ed,)g(are)g(in)g(the)h(fo)s(otnotes.)275 -4902 y(I)c(\014rmly)f(b)s(eliev)m(e)j(that)e(an)h(adequate)g(program)f -(with)g(go)s(o)s(d)g(do)s(cumen)m(tation)i(is)e(more)h(useful)e(than) -150 5011 y(a)43 b(great)h(program)e(with)h(p)s(o)s(or)e(or)i(no)g(do)s -(cumen)m(tation.)78 b(The)42 b(ideal)i(case,)j(of)c(course,)j(is)d(a)g -(great)150 5121 y(program)33 b(with)h(great)g(do)s(cumen)m(tation.)52 -b(I'm)33 b(sorry)g(to)i(sa)m(y)-8 b(,)35 b(that)g(this)e(man)m(ual)h -(is)g(not)f(y)m(et)i(as)f(go)s(o)s(d)150 5230 y(as)41 -b(I'd)f(lik)m(e)h(it)g(to)g(b)s(e.)71 b(I)40 b(ap)s(ologize)i(for)e -(the)h(n)m(um)m(b)s(er)e(of)i(t)m(yp)s(os)f(and)g(other)h(errors.)70 -b(I)40 b(hop)s(e)g(they)150 5340 y(don't)k(detract)h(to)s(o)f(m)m(uc)m -(h)g(from)g(its)g(usefulness.)80 b(I)43 b(w)m(ould)h(ha)m(v)m(e)h(lik)m -(ed)g(to)f(ha)m(v)m(e)h(pro)s(ofread)f(and)p eop end +b(oundation.)275 2343 y(F)g(or)31 b(more)f(information)h(ab)s(out)f(T) +-8 b(exinfo,)31 b(see:)150 2523 y(Stallmann,)26 b(Ric)m(hard)f(M.)g +(and)f(Rob)s(ert)g(J.)h(Chassell.)39 b FC(T)-7 b(exinfo.)40 +b(The)28 b(GNU)f(Do)-5 b(cumentation)29 b(F)-7 b(ormat)p +FI(.)150 2632 y(The)30 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 +b(oundation.)41 b(Boston)32 b(1999.)275 2812 y(F)-8 b(or)38 +b(more)g(information)g(ab)s(out)f(the)h(GNU)g(Pro)5 b(ject)39 +b(and)e(the)g(F)-8 b(ree)39 b(Soft)m(w)m(are)g(F)-8 b(oundation,)40 +b(see)150 2922 y(the)31 b(follo)m(wing)g(w)m(eb)g(site:)41 +b Fz(http://www.gnu.org)p FI(.)275 3055 y(T)-8 b(exinfo)29 +b(can)g(b)s(e)g(used)f(to)i(generate)h(online)e(and)g(prin)m(ted)f(do)s +(cumen)m(tation)i(from)f(the)g(same)h(input)150 3164 +y(\014les.)39 b(This)25 b(man)m(ual)g(is)h(curren)m(tly)f(designed)g +(for)g(prin)m(ting)g FC(only)p FI(.)40 b(It)26 b(con)m(tains)g(a)g +(large)h(amoun)m(t)e(of)h(T)3632 3184 y(E)3682 3164 y(X)150 +3274 y(text,)j(including)f(the)g(illustrations,)h(whic)m(h)e(w)m(ould)h +(b)s(e)f(lost)h(if)g(the)g(input)e(\014les)i(w)m(ere)g(used)f(to)h +(generate)150 3383 y(an)j(online)h(v)m(ersion)g(of)f(this)g(man)m(ual)h +(in)f(its)h(curren)m(t)f(form.)43 b(I)31 b(plan)g(to)h(mak)m(e)h(the)e +(c)m(hanges)i(necessary)150 3493 y(in)27 b(order)f(to)i(mak)m(e)g(it)f +(p)s(ossible)g(to)h(generate)g(online)g(do)s(cumen)m(tation)f(in)g(the) +g(not-to)s(o-distan)m(t)j(future.)275 3626 y(The)44 b(edition)j(of)e +(this)g(man)m(ual)h(is)g(1.1.4)h(and)e(it)h(do)s(cumen)m(ts)f(v)m +(ersion)h(1.1.4)h(of)e(3DLDF.)i(The)150 3736 y(edition)33 +b(n)m(um)m(b)s(er)e(of)h(the)h(man)m(ual)g(and)e(the)i(v)m(ersion)g(n)m +(um)m(b)s(er)e(of)h(the)h(program)f(are)h(the)f(same)h(\(as)g(of)150 +3845 y(10)e(Decem)m(b)s(er)g(2003\),)i(but)d(ma)m(y)h(div)m(erge)g(at)g +(a)g(later)g(date.)275 3978 y(Note)i(that)g(\\I",)g(\\me",)h(etc.,)g +(in)e(this)g(man)m(ual)h(refers)f(to)h(Laurence)f(D.)h(Finston,)g(so)g +(far)f(the)g(sole)150 4088 y(author)41 b(of)g(b)s(oth)f(3DLDF)j(and)d +(this)h(man)m(ual.)74 b(\\Curren)m(tly")41 b(and)f(similar)i(form)m +(ulations)f(refer)g(to)150 4197 y(v)m(ersion)31 b(1.1.4)h(of)f(3DLDF)g +(as)g(of)g(10)g(Decem)m(b)s(er)g(2003.)275 4330 y(This)26 +b(man)m(ual)h(is)g(in)m(tended)g(for)g(b)s(oth)f(b)s(eginning)h(and)f +(adv)-5 b(anced)27 b(users)g(of)g(3DLDF.)i(So,)f(if)f(there's)150 +4440 y(something)38 b(y)m(ou)f(don't)g(understand,)h(it's)g(probably)e +(b)s(est)h(to)h(skip)f(it)g(and)g(come)h(bac)m(k)g(to)g(it)g(later.)150 +4549 y(Some)29 b(of)h(the)f(more)h(di\016cult)f(p)s(oin)m(ts,)h(or)f +(ones)g(that)h(presupp)s(ose)e(familiarit)m(y)j(with)e(features)g(not)h +(y)m(et)150 4659 y(describ)s(ed,)g(are)g(in)g(the)h(fo)s(otnotes.)275 +4792 y(I)44 b(\014rmly)g(b)s(eliev)m(e)i(that)f(an)g(adequate)h +(program)e(with)h(go)s(o)s(d)f(do)s(cumen)m(tation)i(is)f(more)g +(useful)150 4902 y(than)f(a)g(great)h(program)f(with)f(p)s(o)s(or)g(or) +h(no)f(do)s(cumen)m(tation.)82 b(The)44 b(ideal)g(case,)49 +b(of)44 b(course,)k(is)c(a)150 5011 y(great)52 b(program)e(with)g +(great)i(do)s(cumen)m(tation.)103 b(I'm)50 b(sorry)g(to)h(sa)m(y)-8 +b(,)57 b(that)52 b(this)e(man)m(ual)h(is)g(not)150 5121 +y(y)m(et)43 b(as)f(go)s(o)s(d)g(as)h(I'd)e(lik)m(e)i(it)g(to)g(b)s(e.) +75 b(I)41 b(ap)s(ologize)k(for)c(the)i(n)m(um)m(b)s(er)d(of)i(t)m(yp)s +(os)h(and)e(other)h(errors.)150 5230 y(I)49 b(hop)s(e)f(they)h(don't)g +(detract)h(to)s(o)f(m)m(uc)m(h)g(from)g(its)g(usefulness.)95 +b(I)49 b(w)m(ould)f(ha)m(v)m(e)i(lik)m(ed)g(to)g(ha)m(v)m(e)150 +5340 y(pro)s(ofread)38 b(and)g(corrected)h(it)g(again)h(b)s(efore)e +(publication,)j(but)d(for)g(reasons)h(external)g(to)g(3DLDF,)p +eop end %%Page: 3 15 TeXDict begin 3 14 bop 150 -116 a FI(Chapter)30 b(1:)41 -b(In)m(tro)s(duction)2592 b(3)150 299 y(corrected)39 -b(it)g(again)g(b)s(efore)e(publication,)k(but)c(for)h(reasons)g -(external)h(to)f(3DLDF,)i(it)f(is)f(necessary)150 408 -y(for)44 b(me)h(to)h(publish)d(no)m(w.)83 b(I)45 b(plan)f(to)h(set)g -(up)f(an)h(errata)g(list)g(on)g(the)g(o\016cial)h(3DLDF)g(w)m(ebsite) -150 518 y(\()p Fz(http://www.gnu.org/softwar)o(e/3)o(DLDF)o +b(In)m(tro)s(duction)2592 b(3)150 299 y(it)48 b(is)f(necessary)h(for)f +(me)g(to)h(publish)e(no)m(w.)91 b(I)47 b(plan)g(to)h(set)g(up)f(an)g +(errata)h(list)g(on)f(the)g(o\016cial)150 408 y(3DLDF)82 +b(w)m(ebsite)f(\()p Fz(http://www.gnu.org/softwa)o(re/)o(3dld)o(f)p +FI(\),)87 b(and/or)80 b(m)m(y)h(o)m(wn)f(w)m(ebsite)150 +518 y(\()p Fz(http://wwwuser.gwdg.de/~lf)o(ins)o(to1)p FI(\).)275 658 y(Unless)33 b(I'v)m(e)i(left)f(an)m(ything)h(out)f(b)m (y)f(mistak)m(e,)k(this)c(man)m(ual)h(do)s(cumen)m(ts)g(all)g(of)g(the) g(data)h(t)m(yp)s(es,)150 768 y(constan)m(ts)24 b(and)d(v)-5 @@ -8130,16 +8123,16 @@ Fz(int)p FI(s,)e Fz(Point)p FI(s,)f Fz(Path)p FI(s.)39 b(This)30 b(applies)h(to)g(data)g(t)m(yp)s(es)f(whose)g(plurals)g(do) 150 2129 y(not)h(end)e(in)h(\\s")h(as)g(w)m(ell,)h(e.g.,)g(the)e -(plural)g(of)h(the)f FB(C)2003 2121 y FA(+)-8 b(+)2162 -2129 y Fz(class)29 b(Polyhedron)e FI(is)k Fz(Polyhedra)p -FI(.)275 2269 y(When)25 b FB(C)599 2261 y FA(+)-8 b(+)747 -2269 y FI(functions)25 b(are)h(discussed)f(in)g(this)g(man)m(ual,)i(I)f -(alw)m(a)m(ys)h(include)e(a)h(pair)f(of)h(paren)m(theses)150 -2378 y(to)32 b(mak)m(e)h(it)g(clear)f(that)h(the)f(item)g(in)f -(question)h(is)g(a)g(function)g(and)f(not)h(a)g(v)-5 -b(ariable,)33 b(but)e(I)h(generally)150 2488 y(do)h(not)h(include)g -(the)f(argumen)m(ts.)51 b(F)-8 b(or)34 b(example,)h(if)f(I)f(men)m -(tion)i(the)e(function)h Fz(foo\(\))p FI(,)f(this)g(do)s(esn't)150 +(plural)g(of)h(the)f FB(C)2003 2121 y FA(+)-8 b(+)2131 +2129 y Fz(class)29 b(Polyhedron)f FI(is)i Fz(Polyhedra)p +FI(.)275 2269 y(When)d FB(C)601 2261 y FA(+)-8 b(+)726 +2269 y FI(functions)27 b(are)g(discussed)g(in)g(this)g(man)m(ual,)h(I)g +(alw)m(a)m(ys)g(include)f(a)h(pair)f(of)h(paren)m(theses)150 +2378 y(to)k(mak)m(e)h(it)g(clear)f(that)h(the)f(item)g(in)f(question)h +(is)g(a)g(function)g(and)f(not)h(a)g(v)-5 b(ariable,)33 +b(but)e(I)h(generally)150 2488 y(do)h(not)h(include)g(the)f(argumen)m +(ts.)51 b(F)-8 b(or)34 b(example,)h(if)f(I)f(men)m(tion)i(the)e +(function)h Fz(foo\(\))p FI(,)f(this)g(do)s(esn't)150 2598 y(imply)27 b(that)h Fz(foo\(\))e FI(tak)m(es)j(no)e(argumen)m(ts.) 40 b(If)27 b(it)h(w)m(ere)f(appropriate,)i(I)e(w)m(ould)g(include)g (the)g(argumen)m(t)150 2707 y(t)m(yp)s(e:)390 2847 y @@ -8154,7 +8147,7 @@ 3766 y(class::foo\(\))p FI(,)26 b(or)k(not,)g(dep)s(ending)e(on)h (whether)f(this)i(information)f(is)h(relev)-5 b(an)m(t.)41 b(This)29 b(con)m(v)m(en)m(tion)150 3876 y(di\013ers)j(from)g(that)h -(used)e(in)h(the)g([F)-8 b(unction)34 b(Index],)e(page)h(277,)h(whic)m +(used)e(in)h(the)g([F)-8 b(unction)34 b(Index],)e(page)h(279,)h(whic)m (h)e(is)h(generated)g(automatically)150 3985 y(b)m(y)24 b(T)-8 b(exinfo.)39 b(There,)25 b(only)f(the)g(name)g(of)g(the)g (function)f(app)s(ears,)i(without)f(paren)m(theses,)h(parameters,)150 @@ -8177,172 +8170,174 @@ (duction)2602 b(4)150 293 y FG(\))630 299 y FI(Indicates)32 b(a)h(result)e(of)i(some)f(sort.)45 b(It)32 b(ma)m(y)h(precede)f(a)g (illustration)h(generated)g(b)m(y)f(the)630 408 y(co)s(de)f(in)f(the)g -(example.)p 171 513 217 5 v 171 593 5 81 v 194 574 a -Fw(erro)m(r)p 383 593 V 171 598 217 5 v 630 571 a FI(Indicates)h(that)g +(example.)p 171 512 217 5 v 171 592 5 81 v 194 572 a +Fw(erro)m(r)p 383 592 V 171 597 217 5 v 630 569 a FI(Indicates)h(that)g (the)f(follo)m(wing)i(text)g(is)e(an)g(error)g(message.)275 -734 y(This)h(man)m(ual)h(do)s(es)f(not)i(use)e(all)i(of)f(the)g(sym)m +731 y(This)h(man)m(ual)h(do)s(es)f(not)i(use)e(all)i(of)f(the)g(sym)m (b)s(ols)g(pro)m(vided)f(b)m(y)h(T)-8 b(exinfo.)46 b(If)31 -b(y)m(ou)i(\014nd)d(a)i(sym)m(b)s(ol)150 844 y(y)m(ou)27 +b(y)m(ou)i(\014nd)d(a)i(sym)m(b)s(ol)150 840 y(y)m(ou)27 b(don't)g(understand)f(in)g(this)h(man)m(ual)h(\(whic)m(h)f(shouldn't)f (happ)s(en\),)g(see)i(page)g(103)g(of)f(the)h(T)-8 b(exinfo)150 -953 y(man)m(ual.)150 1196 y(Sym)m(b)s(ols:)150 1359 y +950 y(man)m(ual.)150 1188 y(Sym)m(b)s(ols:)150 1350 y Fv(N)420 b FI(The)30 b(set)h(of)f(the)h(natural)f(n)m(um)m(b)s(ers)f FG(f)p FI(0)p Fu(;)15 b FI(1)p Fu(;)g FI(2)p Fu(;)g FI(3)p -Fu(;)g FI(4)p Fu(;)g(:)g(:)g(:)6 b FG(g)p FI(.)150 1521 +Fu(;)g FI(4)p Fu(;)g(:)g(:)g(:)6 b FG(g)p FI(.)150 1511 y Fv(Z)425 b FI(The)30 b(set)h(of)f(the)h(in)m(tegers)h FG(f)p Fu(:)15 b(:)g(:)h(;)f FG(\000)p FI(3)p Fu(;)g FG(\000)p FI(2)p Fu(;)g FG(\000)p FI(1)p Fu(;)g FI(0)p Fu(;)g FI(1)p Fu(;)g FI(2)p Fu(;)g FI(3)p Fu(;)g FI(4)p -Fu(;)h(:)f(:)g(:)7 b FG(g)p FI(.)150 1683 y Fv(R)420 +Fu(;)h(:)f(:)g(:)7 b FG(g)p FI(.)150 1672 y Fv(R)420 b FI(The)30 b(set)h(of)f(the)h(real)g(n)m(um)m(b)s(ers.)150 -1913 y Fx(1.2.2)63 b(Illustrations)150 2160 y FI(The)31 +1899 y Fx(1.2.2)63 b(Illustrations)150 2144 y FI(The)31 b(illustrations)g(in)g(this)g(man)m(ual)g(ha)m(v)m(e)i(b)s(een)d (created)i(using)e(3DLDF.)j(The)e(co)s(de)g(that)h(generates)150 -2269 y(them)39 b(is)h(in)f(the)h(T)-8 b(exinfo)40 b(\014les)f(themselv) +2254 y(them)39 b(is)h(in)f(the)h(T)-8 b(exinfo)40 b(\014les)f(themselv) m(es,)44 b(that)c(con)m(tain)h(the)e(text)i(of)f(the)f(man)m(ual.)69 -b(T)-8 b(exinfo)40 b(is)150 2379 y(based)31 b(on)f(T)581 -2399 y(E)631 2379 y(X,)i(so)f(it's)h(p)s(ossible)e(to)i(mak)m(e)g(use)e +b(T)-8 b(exinfo)40 b(is)150 2363 y(based)31 b(on)f(T)581 +2383 y(E)631 2363 y(X,)i(so)f(it's)h(p)s(ossible)e(to)i(mak)m(e)g(use)e (of)h(the)h(latter's)g(facilit)m(y)h(for)e(writing)g(ASCI)s(I)e(text)j -(to)150 2489 y(\014les)e(using)g(T)621 2508 y(E)671 2489 -y(X's)h Fz(\\write)d FI(command.)275 2626 y(If)e(y)m(ou)i(ha)m(v)m(e)h -(problems)d(including)h(the)g(illustrations,)j(for)d(example,)h(if)g(y) -m(our)f(installation)i(do)s(esn't)150 2735 y(ha)m(v)m(e)j -Fz(dvips)p FI(,)d(lo)s(ok)i(for)f(the)g(follo)m(wing)i(lines)f(in)f(`)p -Fz(3DLDF.texi)p FI(':)390 2873 y Fz(\\doepsftrue)188 -b(\045\045)47 b(One)g(of)g(these)g(two)f(lines)h(should)f(be)h -(commented-out.)390 2982 y(\045\\doepsffalse)150 3120 -y FI(No)m(w,)27 b(remo)m(v)m(e)g(the)f(`)p Fz(\045)p +(to)150 2473 y(\014les)e(using)g(T)621 2492 y(E)671 2473 +y(X's)h Fz(\\write)d FI(command.)275 2609 y(Please)j(note)g(that)g(the) +g(\014gures)e(cannot)i(b)s(e)f(sho)m(wn)g(in)g(the)g(Info)g(or)h(HTML)f +(output)g(formats!)275 2745 y(If)35 b(y)m(ou)h(ha)m(v)m(e)i(problems)d +(including)g(the)i(illustrations)f(in)g(the)g(prin)m(ted)g(v)m(ersion,) +i(for)e(example,)i(if)150 2854 y(y)m(our)30 b(installation)j(do)s +(esn't)d(ha)m(v)m(e)h Fz(dvips)p FI(,)f(lo)s(ok)g(for)h(the)f(follo)m +(wing)i(lines)f(in)f(`)p Fz(3DLDF.texi)p FI(':)390 2990 +y Fz(\\doepsftrue)188 b(\045\045)47 b(One)g(of)g(these)g(two)f(lines)h +(should)f(be)h(commented-out.)390 3100 y(\045\\doepsffalse)150 +3236 y FI(No)m(w,)27 b(remo)m(v)m(e)g(the)f(`)p Fz(\045)p FI(')g(from)f(in)g(fron)m(t)h(of)f(`)p Fz(\\doepsffalse)p FI(')e(and)i(put)g(one)h(in)f(fron)m(t)h(of)f(`)p Fz(\\doepsftrue)p -FI('.)150 3229 y(This)30 b(will)i(prev)m(en)m(t)f(the)h(illustrations)g +FI('.)150 3345 y(This)30 b(will)i(prev)m(en)m(t)f(the)h(illustrations)g (from)e(b)s(eing)h(included.)42 b(This)31 b(should)f(only)h(b)s(e)f -(done)h(as)h(a)f(last)150 3339 y(resort,)26 b(ho)m(w)m(ev)m(er,)h(b)s +(done)h(as)h(a)f(last)150 3455 y(resort,)26 b(ho)m(w)m(ev)m(er,)h(b)s (ecause)d(it)g(will)h(mak)m(e)g(it)f(di\016cult)g(if)g(not)h(imp)s -(ossible)e(to)i(understand)d(this)i(man)m(ual.)275 3476 -y(The)32 b FB(C)528 3468 y FA(+)-8 b(+)691 3476 y FI(co)s(de)33 -b(in)f(an)g(example)i(is)e(not)h(alw)m(a)m(ys)i(the)d(complete)i(co)s -(de)f(used)f(to)i(create)g(the)f(illus-)150 3586 y(tration)28 -b(that)f(follo)m(ws)h(it,)g(since)g(the)f(latter)h(ma)m(y)f(b)s(e)f -(cluttered)i(with)e(commands)h(that)g(w)m(ould)g(detract)150 -3695 y(from)35 b(the)g(clarit)m(y)i(of)f(the)f(example.)56 +(ossible)e(to)i(understand)d(this)i(man)m(ual.)275 3591 +y(The)i FB(C)522 3583 y FA(+)-8 b(+)648 3591 y FI(co)s(de)27 +b(in)g(an)h(example)g(is)f(not)h(alw)m(a)m(ys)h(the)e(complete)i(co)s +(de)f(used)e(to)j(create)g(the)e(illustra-)150 3700 y(tion)36 +b(that)f(follo)m(ws)i(it,)g(since)e(the)g(latter)i(ma)m(y)f(b)s(e)e +(cluttered)i(with)f(commands)f(that)i(w)m(ould)f(detract)150 +3810 y(from)g(the)g(clarit)m(y)i(of)f(the)f(example.)56 b(The)35 b(actual)h(co)s(de)g(used)e(alw)m(a)m(ys)j(follo)m(ws)f(the)g -(example)g(in)f(the)150 3805 y(T)-8 b(exinfo)27 b(source)h(\014le,)g +(example)g(in)f(the)150 3920 y(T)-8 b(exinfo)27 b(source)h(\014le,)g (so)f(the)g(latter)h(ma)m(y)g(b)s(e)e(referred)h(to,)h(if)f(the)h -(reader)e(wishes)h(to)h(see)f(exactly)i(what)150 3914 +(reader)e(wishes)h(to)h(see)f(exactly)i(what)150 4029 y(co)s(de)i(w)m(as)f(used)g(to)h(generate)h(the)e(illustration.)275 -4052 y(Y)-8 b(ou)39 b(ma)m(y)g(w)m(an)m(t)h(to)f(skip)f(the)h(follo)m +4165 y(Y)-8 b(ou)39 b(ma)m(y)g(w)m(an)m(t)h(to)f(skip)f(the)h(follo)m (wing)h(paragraphs)e(in)h(this)f(section,)k(if)d(y)m(ou're)g(reading)g -(this)150 4161 y(man)m(ual)j(for)f(the)h(\014rst)f(time.)75 +(this)150 4275 y(man)m(ual)j(for)f(the)h(\014rst)f(time.)75 b(Don't)42 b(w)m(orry)f(if)h(y)m(ou)g(don't)f(understand)f(it,)45 -b(it's)d(meaning)g(should)150 4271 y(b)s(ecome)31 b(clear)g(after)g +b(it's)d(meaning)g(should)150 4384 y(b)s(ecome)31 b(clear)g(after)g (reading)g(the)f(man)m(ual)h(and)f(some)g(exp)s(erience)h(with)f(using) -g(3DLDF.)275 4408 y(The)35 b(\014le)h(`)p Fz(3DLDF.texi)p -FI(')d(in)j(the)g(directory)g(`)p Fz(3DLDF-1.1.3/DOC/TEXINFO)p -FI(',)c(the)k(driv)m(er)f(\014le)h(for)150 4518 y(this)30 +g(3DLDF.)275 4520 y(The)35 b(\014le)h(`)p Fz(3DLDF.texi)p +FI(')d(in)j(the)g(directory)g(`)p Fz(3DLDF-1.1.4/DOC/TEXINFO)p +FI(',)c(the)k(driv)m(er)f(\014le)h(for)150 4630 y(this)30 b(man)m(ual,)h(con)m(tains)h(the)e(follo)m(wing)i(T)1621 -4537 y(E)1671 4518 y(X)f(co)s(de:)390 4655 y Fz -(\\newif\\ifmakeexamples)390 4764 y(\\makeexamplestrue)234 +4649 y(E)1671 4630 y(X)f(co)s(de:)390 4766 y Fz +(\\newif\\ifmakeexamples)390 4875 y(\\makeexamplestrue)234 b(\045\045)47 b(One)g(of)g(these)g(two)g(lines)f(should)g(be)h -(commented-out.)390 4874 y(\045\\makeexamplesfalse)150 -5011 y FI(When)54 b Fz(texi2dvi)e FI(is)i(run)f(on)h(`)p -Fz(3DLDF.texi)p FI(',)59 b Fz(\\makeexamplestrue)49 b -FI(is)55 b(not)f(commen)m(ted-out,)150 5121 y(and)74 -b Fz(\\makeexamplesfalse)69 b FI(is,)86 b(the)75 b FB(C)1741 -5113 y FA(+)-8 b(+)1988 5121 y FI(co)s(de)75 b(for)f(the)h -(illustrations)g(is)g(written)f(to)150 5230 y(the)c(\014le)f(`)p -Fz(examples.web)p FI('.)155 b(If)69 b(the)g(EPS)g(\014les)g(don't)g -(already)h(exist)g(\(in)g(the)f(directory)150 5340 y(`)p -Fz(3DLDF-1.1.3/DOC/TEXINFO/E)o(PS)p FI('\),)54 b(the)g(T)1840 -5360 y(E)1890 5340 y(X)g(macro)g Fz(\\PEX)p FI(,)k(whic)m(h)c(includes) -f(them)g(in)h(the)p eop end +(commented-out.)390 4985 y(\045\\makeexamplesfalse)150 +5121 y FI(When)71 b Fz(texi2dvi)e FI(is)i(run)f(on)h(`)p +Fz(3DLDF.texi)p FI(',)79 b Fz(\\makeexamplestrue)67 b +FI(is)k(not)h(commen)m(ted-)150 5230 y(out,)85 b(and)73 +b Fz(\\makeexamplesfalse)68 b FI(is,)85 b(the)73 b FB(C)1977 +5222 y FA(+)-8 b(+)2148 5230 y FI(co)s(de)74 b(for)f(the)h +(illustrations)g(is)g(written)150 5340 y(to)60 b(the)g(\014le)f(`)p +Fz(examples.web)p FI('.)125 b(If)59 b(the)g(EPS)g(\014les)g(don't)g +(already)h(exist)h(\(in)e(the)g(directory)p eop end %%Page: 5 17 TeXDict begin 5 16 bop 150 -116 a FI(Chapter)30 b(1:)41 -b(In)m(tro)s(duction)2592 b(5)150 299 y(T)-8 b(exinfo)30 -b(\014les,)g(will)g(signal)h(an)f(error)f(eac)m(h)i(time)f(it)h(can't)f -(\014nd)f(one.)41 b(Just)29 b(t)m(yp)s(e)h(`)p Fz(s)p -FI(')g(at)g(the)g(command)150 408 y(line)f(to)h(tell)g(T)636 -428 y(E)686 408 y(X)f(to)h(k)m(eep)f(going.)42 b(If)28 -b(y)m(ou)h(w)m(an)m(t)h(to)g(b)s(e)e(sure)g(that)i(these)f(are)h -(indeed)e(the)h(only)g(errors,)150 518 y(y)m(ou)i(can)f(t)m(yp)s(e)h(`) -p Fz()p FI(')e(after)h(eac)m(h)i(one)f(instead.)275 -664 y Fz(texi2dvi)d(3DLDF.texi)22 b FI(also)27 b(generates)g(the)f -(\014le)f(`)p Fz(extext.tex)p FI(',)g(whic)m(h)g(con)m(tains)i(T)3293 -683 y(E)3343 664 y(X)e(co)s(de)h(for)150 773 y(including)k(the)h -(illustrations)g(b)m(y)f(themselv)m(es.)275 919 y(`)p -Fz(examples.web)p FI(')85 b(m)m(ust)i(no)m(w)h(b)s(e)f(mo)m(v)m(ed)i -(to)g(`)p Fz(3DLDF-1.1.3/CWEB/)p FI(')83 b(and)k(ctangled,)150 -1028 y(`)p Fz(examples.c)p FI(')50 b(m)m(ust)i(compiled,)58 +b(In)m(tro)s(duction)2592 b(5)150 299 y(`)p Fz +(3DLDF-1.1.4/DOC/TEXINFO/E)o(PS)p FI('\),)54 b(the)g(T)1840 +318 y(E)1890 299 y(X)g(macro)g Fz(\\PEX)p FI(,)k(whic)m(h)c(includes)f +(them)g(in)h(the)150 408 y(T)-8 b(exinfo)30 b(\014les,)g(will)g(signal) +h(an)f(error)f(eac)m(h)i(time)f(it)h(can't)f(\014nd)f(one.)41 +b(Just)29 b(t)m(yp)s(e)h(`)p Fz(s)p FI(')g(at)g(the)g(command)150 +518 y(line)f(to)h(tell)g(T)636 538 y(E)686 518 y(X)f(to)h(k)m(eep)f +(going.)42 b(If)28 b(y)m(ou)h(w)m(an)m(t)h(to)g(b)s(e)e(sure)g(that)i +(these)f(are)h(indeed)e(the)h(only)g(errors,)150 628 +y(y)m(ou)i(can)f(t)m(yp)s(e)h(`)p Fz()p FI(')e(after)h(eac)m(h) +i(one)f(instead.)275 764 y Fz(texi2dvi)d(3DLDF.texi)22 +b FI(also)27 b(generates)g(the)f(\014le)f(`)p Fz(extext.tex)p +FI(',)g(whic)m(h)g(con)m(tains)i(T)3293 783 y(E)3343 +764 y(X)e(co)s(de)h(for)150 873 y(including)k(the)h(illustrations)g(b)m +(y)f(themselv)m(es.)275 1009 y(`)p Fz(examples.web)p +FI(')85 b(m)m(ust)i(no)m(w)h(b)s(e)f(mo)m(v)m(ed)i(to)g(`)p +Fz(3DLDF-1.1.4/CWEB/)p FI(')83 b(and)k(ctangled,)150 +1119 y(`)p Fz(examples.c)p FI(')50 b(m)m(ust)i(compiled,)58 b(and)51 b(3DLDF)j(m)m(ust)d(b)s(e)h(relink)m(ed.)106 -b Fz(ctangle)28 b(examples)50 b FI(also)150 1138 y(generates)h(the)f +b Fz(ctangle)28 b(examples)50 b FI(also)150 1228 y(generates)h(the)f (header)f(\014le)h(`)p Fz(example.h)p FI(',)i(whic)m(h)d(is)h(included) f(in)g(`)p Fz(main.web)p FI('.)97 b(Therefore,)54 b(if)150 -1248 y(the)40 b(con)m(ten)m(ts)h(of)e(`)p Fz(examples.h)p +1338 y(the)40 b(con)m(ten)m(ts)h(of)e(`)p Fz(examples.h)p FI(')e(ha)m(v)m(e)k(c)m(hanged)f(since)f(the)h(last)g(time)g(`)p -Fz(main.web)p FI(')e(w)m(as)h(ctangled,)150 1357 y(`)p +Fz(main.web)p FI(')e(w)m(as)h(ctangled,)150 1448 y(`)p Fz(main.web)p FI(')29 b(will)h(ha)m(v)m(e)i(to)f(b)s(e)f(ctangled,)i (and)d(`)p Fz(main.c)p FI(')h(recompiled,)h(b)s(efore)f(`)p -Fz(3dldf)p FI(')f(is)i(relink)m(ed.)3669 1324 y FA(1)275 -1503 y FI(Running)k Fz(3dldf)h FI(and)h(MetaP)m(ost)j(no)m(w)d +Fz(3dldf)p FI(')f(is)i(relink)m(ed.)3669 1415 y FA(1)275 +1584 y FI(Running)k Fz(3dldf)h FI(and)h(MetaP)m(ost)j(no)m(w)d (generates)i(the)f(EPS)e(\(Encapsulated)i(P)m(ostScript\))g(\014les)150 -1612 y(`)p Fz(3DLDFmp.1)p FI(')29 b(through)i(\(curren)m(tly\))g(`)p +1693 y(`)p Fz(3DLDFmp.1)p FI(')29 b(through)i(\(curren)m(tly\))g(`)p Fz(3DLDFmp.199)p FI(')e(for)i(the)g(illustrations.)44 -b(They)30 b(m)m(ust)h(b)s(e)g(mo)m(v)m(ed)150 1722 y(to)k(`)p -Fz(3DLDF-1.1.3/DOC/TEXINFO/EP)o(S)p FI('.)47 b(No)m(w,)36 +b(They)30 b(m)m(ust)h(b)s(e)g(mo)m(v)m(ed)150 1803 y(to)k(`)p +Fz(3DLDF-1.1.4/DOC/TEXINFO/EP)o(S)p FI('.)47 b(No)m(w,)36 b(when)e Fz(texi2dvi)28 b(3DLDF.texi)k FI(is)i(run)f(again,)k(the)150 -1831 y Fz(dvips)k FI(command)g(`)p Fz(\\epsffile)p FI(')f(includes)i +1912 y Fz(dvips)k FI(command)g(`)p Fz(\\epsffile)p FI(')f(includes)i (the)g(EPS)f(\014les)h(for)g(the)g(illustrations)h(in)e(the)h(man)m -(ual.)150 1941 y(`)p Fz(3DLDF.texi)p FI(')25 b(includes)h(the)i(line)f +(ual.)150 2022 y(`)p Fz(3DLDF.texi)p FI(')25 b(includes)h(the)i(line)f (`)p Fz(\\input)i(epsf)p FI(',)e(so)g(that)h(`)p Fz(\\epsffile)p FI(')d(w)m(orks.)40 b(Of)26 b(course,)i Fz(dvips)150 -2051 y FI(\(or)45 b(some)h(other)f(program)g(that)h(do)s(es)e(the)i +2132 y FI(\(or)45 b(some)h(other)f(program)g(that)h(do)s(es)e(the)i (job\))f(m)m(ust)g(b)s(e)f(used)g(to)i(con)m(v)m(ert)h(`)p -Fz(3DLDF.dvi)p FI(')c(to)j(a)150 2160 y(P)m(ostScript)36 +Fz(3DLDF.dvi)p FI(')c(to)j(a)150 2241 y(P)m(ostScript)36 b(\014le.)54 b(T)-8 b(o)36 b(see)f(exactly)i(ho)m(w)e(this)g(is)g (done,)h(tak)m(e)h(a)e(lo)s(ok)h(at)f(the)h(`)p Fz(.texi)p -FI(')e(source)h(\014les)g(of)150 2270 y(this)30 b(man)m(ual.)642 -2237 y FA(2)275 2415 y FI(In)g(the)i(`)p Fz(3DLDF.texi)p +FI(')e(source)h(\014les)g(of)150 2351 y(this)30 b(man)m(ual.)642 +2318 y FA(2)275 2487 y FI(In)g(the)i(`)p Fz(3DLDF.texi)p FI(')d(b)s(elonging)i(to)h(the)g(3DLDF)g(distribution,)f -Fz(\\makeexamplestrue)c FI(will)32 b(b)s(e)150 2525 y(commen)m +Fz(\\makeexamplestrue)c FI(will)32 b(b)s(e)150 2596 y(commen)m (ted-out,)j(and)e Fz(makeexamplesfalse)28 b FI(w)m(on't)33 b(b)s(e,)h(b)s(ecause)e(the)h(EPS)g(\014les)f(for)h(the)g(illustra-)150 -2634 y(tions)e(are)f(included)g(in)g(the)h(distribution.)275 -2780 y(The)65 b(v)m(ersion)h(of)g(`)p Fz(examples.web)p -FI(')d(in)j(`)p Fz(3DLDF-1.1.3/CWEB)p FI(')61 b(merely)67 -b(includes)e(the)h(\014les)150 2890 y(`)p Fz(subex1.web)p +2706 y(tions)e(are)f(included)g(in)g(the)h(distribution.)275 +2842 y(The)65 b(v)m(ersion)h(of)g(`)p Fz(examples.web)p +FI(')d(in)j(`)p Fz(3DLDF-1.1.4/CWEB)p FI(')61 b(merely)67 +b(includes)e(the)h(\014les)150 2952 y(`)p Fz(subex1.web)p FI(')44 b(and)i(`)p Fz(subex2.web)p FI('.)87 b(If)46 -b(y)m(ou)h(rename)f(`)p Fz(3DLDF-1.1.3/CWEB/exampman.)o(web)p -FI(')40 b(to)150 2999 y(`)p Fz(examples.web)p FI(',)28 +b(y)m(ou)h(rename)f(`)p Fz(3DLDF-1.1.4/CWEB/exampman.)o(web)p +FI(')40 b(to)150 3061 y(`)p Fz(examples.web)p FI(',)28 b(y)m(ou)i(can)h(generate)h(the)f(illustrations.)150 -3284 y FH(1.3)68 b(CWEB)45 b(Do)t(cumen)l(tation)150 -3539 y FI(As)f(men)m(tioned)h(ab)s(o)m(v)m(e,)k(3DLDF)c(has)f(b)s(een)f +3322 y FH(1.3)68 b(CWEB)45 b(Do)t(cumen)l(tation)150 +3568 y FI(As)f(men)m(tioned)h(ab)s(o)m(v)m(e,)k(3DLDF)c(has)f(b)s(een)f (programmed)h(using)f(CWEB,)i(whic)m(h)f(is)g(a)g(\\literate)150 -3649 y(programming")24 b(to)s(ol)g(dev)m(elop)s(ed)f(b)m(y)h(Donald)g +3678 y(programming")24 b(to)s(ol)g(dev)m(elop)s(ed)f(b)m(y)h(Donald)g (E.)f(Kn)m(uth)f(and)h(Silvio)h(Levy)-8 b(.)39 b(See)23 -b(Section)i(1.1)f([Sources)150 3759 y(of)j(Information],)h(page)g(1,)g +b(Section)i(1.1)f([Sources)150 3787 y(of)j(Information],)h(page)g(1,)g (for)e(a)i(reference)f(to)g(the)g(CWEB)h(man)m(ual.)39 -b(Kn)m(uth's)26 b Ft(T)3012 3778 y(E)3062 3759 y(X|The)h(Program)150 -3868 y FI(and)33 b Ft(Metafon)m(t|The)j(Program)e FI(b)s(oth)f(include) +b(Kn)m(uth's)26 b Ft(T)3012 3807 y(E)3062 3787 y(X|The)h(Program)150 +3897 y FI(and)33 b Ft(Metafon)m(t|The)j(Program)e FI(b)s(oth)f(include) h(a)h(section)g(\\Ho)m(w)g(to)g(read)f(a)g(WEB")h(\(pp.)f(x{xv,)h(in) -150 3978 y(b)s(oth)30 b(v)m(olumes\).)275 4123 y(CWEB)36 +150 4006 y(b)s(oth)30 b(v)m(olumes\).)275 4142 y(CWEB)36 b(\014les)h(com)m(bine)g(source)f(co)s(de)h(and)f(do)s(cumen)m(tation.) -59 b(Running)35 b Fz(ctangle)g FI(on)h(a)h(CWEB)150 4233 -y(\014le,)25 b(for)e(example,)j(`)p Fz(main.web)p FI(',)d(pro)s(duces)f -(the)i(\014le)g(`)p Fz(main.c)p FI(')e(con)m(taining)j(C)e(or)g -FB(C)3023 4225 y FA(+)-8 b(+)3168 4233 y FI(co)s(de.)38 -b(Running)150 4342 y Fz(cweave)29 b(main.web)i FI(creates)k(a)e(T)1318 -4362 y(E)1368 4342 y(X)h(\014le)f(with)g(prett)m(y-prin)m(ted)h(source) -g(co)s(de)f(and)g(nicely)h(formatted)150 4452 y(do)s(cumen)m(tation.)77 +59 b(Running)35 b Fz(ctangle)g FI(on)h(a)h(CWEB)150 4252 +y(\014le,)27 b(for)e(example,)i(`)p Fz(main.web)p FI(',)e(pro)s(duces)f +(the)i(\014le)f(`)p Fz(main.c)p FI(')g(con)m(taining)h(C)f(or)h +FB(C)3044 4244 y FA(+)-8 b(+)3167 4252 y FI(co)s(de.)39 +b(Running)150 4361 y Fz(cweave)29 b(main.web)i FI(creates)k(a)e(T)1318 +4381 y(E)1368 4361 y(X)h(\014le)f(with)g(prett)m(y-prin)m(ted)h(source) +g(co)s(de)f(and)g(nicely)h(formatted)150 4471 y(do)s(cumen)m(tation.)77 b(I)42 b(\014nd)e(that)j(using)f(CWEB)g(mak)m(es)h(it)g(more)f(natural) -h(to)f(do)s(cumen)m(t)g(m)m(y)h(co)s(de)150 4562 y(as)38 +h(to)f(do)s(cumen)m(t)g(m)m(y)h(co)s(de)150 4581 y(as)38 b(I)g(write)h(it,)i(and)d(mak)m(es)h(the)f(source)h(\014les)f(easier)h (to)g(read)f(when)f(editing)i(them.)64 b(It)39 b(do)s(es)f(ha)m(v)m(e) -150 4671 y(certain)46 b(consequences)f(with)f(regard)h(to)g +150 4690 y(certain)46 b(consequences)f(with)f(regard)h(to)g (compilation,)50 b(but)44 b(these)h(are)g(tak)m(en)h(care)f(of)g(b)m(y) g Fz(make)p FI(.)p 150 4789 1200 4 v 199 4856 a FA(1)275 -4888 y Fs(ctangle)32 b Fr(creates)f(`)p Fs(<)p Fq(filename)9 -b Fs(>.c)p Fr(')34 b(from)e(`)p Fs(<)p Fq(filename)p -Fs(>.web)p Fr(',)k(so)31 b(the)f(compiler)i(m)n(ust)e(compile)i(the)e -FB(C)3462 4880 y FA(+)-8 b(+)3622 4888 y Fr(\014les)275 +4888 y Fs(ctangle)34 b Fr(creates)g(`)p Fs(<)p Fq(filename)9 +b Fs(>.c)p Fr(')37 b(from)d(`)p Fs(<)p Fq(filename)p +Fs(>.web)p Fr(',)39 b(so)34 b(the)f(compiler)h(m)n(ust)f(compile)h(the) +f FB(C)3491 4880 y FA(+)-8 b(+)3622 4888 y Fr(\014les)275 4975 y(using)25 b(the)h(`)p Fs(-x)g(c++)p Fr(')h(option.)35 b(Otherwise,)26 b(it)g(w)n(ould)g(handle)f(them)h(as)g(if)g(they)f(con) n(tained)h(C)g(co)r(de.)199 5047 y FA(2)275 5078 y Fr(If)33 @@ -8359,33 +8354,33 @@ %%Page: 6 18 TeXDict begin 6 17 bop 150 -116 a FI(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(6)150 299 y(See)35 b(Chapter)g(37)h -([Adding)e(a)i(File],)h(page)f(261,)i(and)c(Chapter)h(39)h([Changes],)g -(page)g(264,)i(for)d(more)150 408 y(information.)275 +([Adding)e(a)i(File],)h(page)f(263,)i(and)c(Chapter)h(39)h([Changes],)g +(page)g(266,)i(for)d(more)150 408 y(information.)275 550 y(The)45 b(CWEB)i(\014les)f(in)g(the)g(directory)h(`)p -Fz(3DLDF-1.1.3/CWEB/)p FI(')42 b(con)m(tain)48 b(the)e(source)h(co)s +Fz(3DLDF-1.1.4/CWEB/)p FI(')42 b(con)m(tain)48 b(the)e(source)h(co)s (de)f(for)150 659 y(3DLDF.)f(The)f(\014le)f(`)p Fz(3DLDFprg.web)p FI(')e(in)j(this)f(directory)i(is)e(only)h(ev)m(er)h(used)e(for)g(cw)m -(ea)m(ving;)53 b(it)44 b(is)150 769 y(nev)m(er)32 b(ctangled)g(and)f -(con)m(tains)i(no)e FB(C)1485 761 y FA(+)-8 b(+)1645 -769 y FI(co)s(de)32 b(for)f(compilation.)45 b(It)32 b(do)s(es,)f(ho)m -(w)m(ev)m(er,)i(include)f(all)g(of)150 879 y(the)d(other)g(CWEB)h +(ea)m(ving;)53 b(it)44 b(is)150 769 y(nev)m(er)34 b(ctangled)g(and)f +(con)m(tains)h(no)f FB(C)1494 761 y FA(+)-8 b(+)1625 +769 y FI(co)s(de)34 b(for)f(compilation.)51 b(It)33 b(do)s(es,)h(ho)m +(w)m(ev)m(er,)i(include)d(all)h(of)150 879 y(the)29 b(other)g(CWEB)h (\014les,)f(so)g(that)h Fz(cweave)f(3DLDFprg.web)c FI(generates)31 b(the)e(T)2891 898 y(E)2941 879 y(X)g(\014le)g(con)m(taining)i(the)150 988 y(complete)h(do)s(cumen)m(tation)f(of)g(the)f(source)h(co)s(de)f (of)h(3DLDF.)275 1129 y(The)24 b(\014les)g(`)p Fz -(3DLDF-1.1.3/CWEB/3DLDFprg.t)o(ex)p FI(',)c(`)p Fz -(3DLDF-1.1.3/CWEB/3DLDFprg)o(.dvi)o FI(',)h(and)150 1239 -y(`)p Fz(3DLDF-1.1.3/CWEB/3DLDFprg)o(.ps)p FI(')28 b(are)34 +(3DLDF-1.1.4/CWEB/3DLDFprg.t)o(ex)p FI(',)c(`)p Fz +(3DLDF-1.1.4/CWEB/3DLDFprg)o(.dvi)o FI(',)h(and)150 1239 +y(`)p Fz(3DLDF-1.1.4/CWEB/3DLDFprg)o(.ps)p FI(')28 b(are)34 b(included)g(in)g(the)g(distribution)f(of)i(3DLDF)g(as)g(a)f(con)m(v)m (e-)150 1349 y(nience.)68 b(Ho)m(w)m(ev)m(er,)43 b(users)c(ma)m(y)g (generate)i(them)e(themselv)m(es,)k(should)38 b(there)i(b)s(e)e(some)i (reason)f(for)150 1458 y(doing)f(so,)h(b)m(y)f(en)m(tering)g Fz(make)30 b(ps)36 b FI(from)i(the)f(command)h(line)f(of)h(a)g(shell)g (from)f(the)h(w)m(orking)g(direc-)150 1568 y(tory)g(`)p -Fz(3DLDF-1.1.3/)p FI(')c(or)k(`)p Fz(3DLDF-1.1.3/CWEB)p +Fz(3DLDF-1.1.4/)p FI(')c(or)k(`)p Fz(3DLDF-1.1.4/CWEB)p FI('.)58 b(Alternativ)m(ely)-8 b(,)42 b(the)c(user)f(ma)m(y)h(generate) h(them)150 1677 y(b)m(y)30 b(hand)g(from)f(the)i(w)m(orking)g -(directory)g(`)p Fz(3DLDF-1.1.3/CWEB/)p FI(')26 b(in)k(the)g(follo)m +(directory)g(`)p Fz(3DLDF-1.1.4/CWEB/)p FI(')26 b(in)k(the)g(follo)m (wing)i(w)m(a)m(y:)199 1819 y(1.)61 b Fz(cweave)29 b(3DLDFprg.web)e FI(generates)k(`)p Fz(3DLDFprg.tex)p FI('.)199 1957 y(2.)61 b Fz(tex)29 b(3DLDFprg)g FI(or)h Fz(tex)f(3DLDFprg.tex)e @@ -8453,83 +8448,83 @@ g(for)f(Metafon)m(t's)j(and)e(MetaP)m(ost's)i(original)g(purp)s(oses,) 150 408 y(but)30 b(they)g(mak)m(e)i(it)e(imp)s(ossible)g(to)i(p)s (erform)c(the)j(calculations)h(needed)f(for)f(3D)h(graphics.)275 -542 y(Another)f(problem)g(is)h(the)g(data)g(t)m(yp)s(es)g(de\014ned)f +552 y(Another)f(problem)g(is)h(the)g(data)g(t)m(yp)s(es)g(de\014ned)f (in)g(Metafon)m(t:)44 b(P)m(oin)m(ts)32 b(are)f(represen)m(ted)f(as)h -(pairs)150 651 y(of)k(real)h(v)-5 b(alues)35 b(and)f(a\016ne)h +(pairs)150 661 y(of)k(real)h(v)-5 b(alues)35 b(and)f(a\016ne)h (transformations)h(as)f(sets)g(of)g(6)h(real)f(v)-5 b(alues.)55 -b(This)34 b(corresp)s(onds)g(to)i(the)150 761 y(represen)m(tation)30 +b(This)34 b(corresp)s(onds)g(to)i(the)150 771 y(represen)m(tation)30 b(of)g(p)s(oin)m(ts)f(and)f(a\016ne)i(transformations)f(in)g(the)g (plane)h(as)f(a)h(t)m(w)m(o-elemen)m(t)i(v)m(ector)f(on)150 -871 y(the)26 b(one)f(hand)f(and)h(a)h(six)f(elemen)m(t)i(matrix)f(on)f +881 y(the)26 b(one)f(hand)f(and)h(a)h(six)f(elemen)m(t)i(matrix)f(on)f (the)g(other.)40 b(While)26 b(it)g(is)f(p)s(ossible)g(to)h(w)m(ork)f -(around)g(the)150 980 y(limitation)33 b(imp)s(osed)e(b)m(y)g(ha)m(ving) +(around)g(the)150 990 y(limitation)33 b(imp)s(osed)e(b)m(y)g(ha)m(ving) h(p)s(oin)m(ts)f(b)s(e)g(represen)m(ted)g(b)m(y)h(only)f(t)m(w)m(o)i(v) --5 b(alues,)32 b(it)g(is)f(impracticable)150 1090 y(in)f(the)h(case)g -(of)g(the)f(transformations.)275 1223 y(F)-8 b(or)41 +-5 b(alues,)32 b(it)g(is)f(impracticable)150 1100 y(in)f(the)h(case)g +(of)g(the)f(transformations.)275 1243 y(F)-8 b(or)41 b(these)f(reasons,)k(I)c(decided)g(to)h(write)f(a)h(program)f(that)h(w) m(ould)f(b)s(eha)m(v)m(e)h(more)g(or)f(less)h(lik)m(e)150 -1333 y(Metafon)m(t,)d(but)c(with)g(suitable)h(extensions,)h(and)e(the)h +1353 y(Metafon)m(t,)d(but)c(with)g(suitable)h(extensions,)h(and)e(the)h (abilit)m(y)h(to)f(handle)g(three)f(dimensional)h(data;)150 -1442 y(namely)g(3DLDF.)h(It)f(stores)g(the)g(data)h(and)e(p)s(erforms)f +1462 y(namely)g(3DLDF.)h(It)f(stores)g(the)g(data)h(and)e(p)s(erforms)f (the)i(transformations)g(and)f(other)h(necessary)150 -1552 y(calculations)40 b(and)d(is)h(not)g(sub)5 b(ject)37 +1572 y(calculations)40 b(and)d(is)h(not)g(sub)5 b(ject)37 b(to)i(the)f(limitations)h(of)f(MetaP)m(ost)i(and)d(its)i(data)f(t)m -(yp)s(es.)63 b(Up)s(on)150 1661 y(output,)34 b(it)f(p)s(erforms)f(a)h +(yp)s(es.)63 b(Up)s(on)150 1682 y(output,)34 b(it)f(p)s(erforms)f(a)h (p)s(ersp)s(ectiv)m(e)g(transformation,)i(con)m(v)m(erting)g(the)e(3D)h -(image)g(in)m(to)g(a)f(2D)h(one.)150 1771 y(The)g(latter)j(can)e(no)m +(image)g(in)m(to)g(a)f(2D)h(one.)150 1791 y(The)g(latter)j(can)e(no)m (w)g(b)s(e)f(expressed)h(as)g(an)g(ordinary)f(MetaP)m(ost)k(program,)e -(so)f(3DLDF)h(writes)g(its)150 1880 y(output)30 b(as)h(MetaP)m(ost)h -(co)s(de)f(to)g(a)g(\014le.)275 2014 y(In)44 b(the)g(follo)m(wing,)50 +(so)f(3DLDF)h(writes)g(its)150 1901 y(output)30 b(as)h(MetaP)m(ost)h +(co)s(de)f(to)g(a)g(\014le.)275 2044 y(In)44 b(the)g(follo)m(wing,)50 b(it)c(ma)m(y)f(b)s(e)f(a)h(little)i(unclear)d(wh)m(y)h(I)f(sometimes)i -(refer)e(to)i(Metafon)m(t)h(and)150 2123 y(sometimes)38 +(refer)e(to)i(Metafon)m(t)h(and)150 2154 y(sometimes)38 b(to)g(MetaP)m(ost.)63 b(The)36 b(reason)i(is)f(that)g(Metafon)m(t)i (inherited)e(m)m(uc)m(h)g(of)g(its)g(functionalit)m(y)150 -2233 y(from)30 b(Metafon)m(t.)44 b(Certain)31 b(op)s(erations)g(in)g +2263 y(from)30 b(Metafon)m(t.)44 b(Certain)31 b(op)s(erations)g(in)g (Metafon)m(t)h(ha)m(v)m(e)g(no)f(meaning)g(in)f(MetaP)m(ost)k(and)c(so) -h(ha)m(v)m(e)150 2343 y(b)s(een)36 b(remo)m(v)m(ed,)i(while)f(MetaP)m +h(ha)m(v)m(e)150 2373 y(b)s(een)36 b(remo)m(v)m(ed,)i(while)f(MetaP)m (ost's)i(function)d(of)g(in)m(terfacing)i(with)e(P)m(ostScript)g(has)g -(caused)h(other)150 2452 y(op)s(erations)45 b(to)h(b)s(e)e(added.)83 +(caused)h(other)150 2483 y(op)s(erations)45 b(to)h(b)s(e)e(added.)83 b(F)-8 b(or)46 b(example,)j(in)44 b(MetaP)m(ost,)51 b Fz(color)44 b FI(is)h(a)g(data)g(t)m(yp)s(e,)k(but)44 -b(not)h(in)150 2562 y(Metafon)m(t.)f(Unless)30 b(otherwise)i(stated,)f +b(not)h(in)150 2592 y(Metafon)m(t.)f(Unless)30 b(otherwise)i(stated,)f (when)f(I)h(refer)f(to)h(Metafon)m(t,)i(it)f(can)f(b)s(e)f(assumed)g -(that)h(what)150 2671 y(I)h(sa)m(y)h(applies)f(to)h(MetaP)m(ost)h(as)e +(that)h(what)150 2702 y(I)h(sa)m(y)h(applies)f(to)h(MetaP)m(ost)h(as)e (w)m(ell.)47 b(Ho)m(w)m(ev)m(er,)35 b(when)c(I)h(refer)f(to)i(MetaP)m -(ost,)i(it)e(will)f(generally)i(b)s(e)150 2781 y(in)c(connection)i +(ost,)i(it)e(will)f(generally)i(b)s(e)150 2811 y(in)c(connection)i (with)e(features)g(sp)s(eci\014c)h(to)g(MetaP)m(ost.)150 -3035 y FH(1.5)68 b(Ca)l(v)l(eats)150 3365 y Fx(1.5.1)63 -b(Accuracy)150 3608 y FI(When)24 b(3DLDF)i(is)f(run,)g(it)g(uses)f(the) +3091 y FH(1.5)68 b(Ca)l(v)l(eats)150 3443 y Fx(1.5.1)63 +b(Accuracy)150 3696 y FI(When)24 b(3DLDF)i(is)f(run,)g(it)g(uses)f(the) h(three-dimensional)g(data)g(con)m(tained)h(in)e(the)h(user)f(co)s(de)h -(to)g(create)150 3717 y(a)30 b(t)m(w)m(o-dimensional)i(pro)5 +(to)g(create)150 3805 y(a)30 b(t)m(w)m(o-dimensional)i(pro)5 b(jection.)41 b(Curren)m(tly)-8 b(,)30 b(this)g(can)h(b)s(e)e(a)h(p)s (ersp)s(ectiv)m(e)g(pro)5 b(jection,)31 b(or)f(a)h(parallel)150 -3827 y(pro)5 b(jection)27 b(on)m(to)g(one)f(of)g(the)g(ma)5 +3915 y(pro)5 b(jection)27 b(on)m(to)g(one)f(of)g(the)g(ma)5 b(jor)26 b(planes.)40 b(MetaP)m(ost)28 b(co)s(de)e(represen)m(ting)h -(this)f(pro)5 b(jection)26 b(is)g(then)150 3936 y(written)39 +(this)f(pro)5 b(jection)26 b(is)g(then)150 4024 y(written)39 b(to)h(the)f(output)f(\014le.)67 b(3DLDF)40 b(do)s(es)e(no)h -Ft(scan)g(con)m(v)m(ersion)p FI(,)2610 3903 y FA(6)2690 -3936 y FI(so)g(all)h(of)f(the)g(curv)m(es)g(in)g(the)150 -4046 y(pro)5 b(jection)39 b(are)g(generated)h(b)m(y)e(means)h(of)g(the) +Ft(scan)g(con)m(v)m(ersion)p FI(,)2610 3991 y FA(6)2690 +4024 y FI(so)g(all)h(of)f(the)g(curv)m(es)g(in)g(the)150 +4134 y(pro)5 b(jection)39 b(are)g(generated)h(b)m(y)e(means)h(of)g(the) g(algorithms)g(MetaP)m(ost)i(inherited)d(from)h(Metafon)m(t.)150 -4156 y(These)e(algorithms,)j(ho)m(w)m(ev)m(er,)g(are)d(designed)g(to)h -(\014nd)d(the)i(\\most)h(pleasing)g(curv)m(e")3177 4123 -y FA(7)3252 4156 y FI(giv)m(en)g(one)f(or)150 4265 y(more)42 +4244 y(These)e(algorithms,)j(ho)m(w)m(ev)m(er,)g(are)d(designed)g(to)h +(\014nd)d(the)i(\\most)h(pleasing)g(curv)m(e")3177 4211 +y FA(7)3252 4244 y FI(giv)m(en)g(one)f(or)150 4353 y(more)42 b(t)m(w)m(o-dimensional)h(p)s(oin)m(ts)e(and)g(connectors;)48 b(they)41 b(do)g(not)h(accoun)m(t)h(for)e(the)h(the)f(fact)h(that)150 -4375 y(the)h(t)m(w)m(o-dimensional)h(p)s(oin)m(ts)e(are)h(pro)5 +4463 y(the)h(t)m(w)m(o-dimensional)h(p)s(oin)m(ts)e(are)h(pro)5 b(jections)43 b(of)g(three-dimensional)g(ones.)77 b(This)41 -b(can)i(lead)g(to)150 4484 y(unsatisfactory)24 b(results,)h(esp)s +b(can)i(lead)g(to)150 4572 y(unsatisfactory)24 b(results,)h(esp)s (ecially)f(where)f(extreme)h(foreshortening)f(o)s(ccurs.)39 -b(In)22 b(particular,)j(`)p Fz(curl)p FI(',)p 150 4575 -1200 4 v 199 4643 a FA(5)275 4674 y Fr(\\[)p Fn(:)13 +b(In)22 b(particular,)j(`)p Fz(curl)p FI(',)p 150 4686 +1200 4 v 199 4753 a FA(5)275 4785 y Fr(\\[)p Fn(:)13 b(:)h(:)p Fr(])22 b(MET)-6 b(AF)n(ONT)21 b(deals)h(only)f(with)h(n)n (um)n(b)r(ers)f(in)g(a)h(limited)g(range:)33 b(A)21 b(n)n(umeric)g(tok) -n(en)f(m)n(ust)h(b)r(e)h(less)g(than)f(4096,)275 4761 -y(and)k(its)h(v)l(alue)f(is)h(alw)n(a)n(ys)h(rounded)e(to)h(the)f -(nearest)h(m)n(ultiple)g(of)2306 4731 y FA(1)p 2240 4745 -166 4 v 2240 4787 a(65536)2416 4761 y Fr(.")35 b(Kn)n(uth,)24 -b Fo(The)k(MET)-6 b(AF)n(ONTb)l(o)l(ok)p Fr(,)26 b(p.)g(50.)199 -4944 y FA(6)275 4975 y Fm(Scan)e(con)n(v)n(ersion)g Fr(is)h(the)g(pro)r +n(en)f(m)n(ust)h(b)r(e)h(less)g(than)f(4096,)275 4872 +y(and)i(its)g(v)l(alue)g(is)h(alw)n(a)n(ys)h(rounded)d(to)i(the)f +(nearest)h(m)n(ultiple)f(of)2282 4842 y FA(1)p 2216 4856 +166 4 v 2216 4898 a(65536)2391 4872 y Fr(.")34 b(Kn)n(uth,)23 +b Fo(The)i(MET)-6 b(AF)n(ONTb)l(o)l(ok)p Fr(,)25 b(p.)f(50.)199 +4944 y FA(6)275 4975 y Fm(Scan)g(con)n(v)n(ersion)g Fr(is)h(the)g(pro)r (cess)g(of)g(digitizing)h(geometric)g(data.)34 b(The)25 b(ultimate)g(result)g(is)g(a)g(2)15 b Fl(\002)f Fr(2)25 b(map)f(of)h(pixels,)275 5063 y(whic)n(h)32 b(can)h(b)r(e)g(used)f(for) @@ -8576,10 +8571,10 @@ g(3DLDF.)150 2012 y Fx(1.5.2)63 b(No)41 b(Input)g(Routine)150 2259 y FI(3DLDF)36 b(do)s(es)e(not)h(y)m(et)h(include)e(a)h(routine)g (for)f(reading)h(input)e(\014les.)53 b(This)34 b(means)h(that)g(user)f -(co)s(de)150 2369 y(m)m(ust)e(b)s(e)f(written)g(in)h -FB(C)993 2361 y FA(+)-8 b(+)1122 2369 y FI(,)33 b(compiled,)f(and)f -(link)m(ed)i(with)e(the)h(rest)g(of)g(the)f(program.)45 -b(I)31 b(admit,)i(this)150 2479 y(is)g(not)g(ideal,)i(and)d(writing)h +(co)s(de)150 2369 y(m)m(ust)f(b)s(e)g(written)h(in)f +FB(C)1000 2361 y FA(+)-8 b(+)1097 2369 y FI(,)35 b(compiled,)g(and)e +(link)m(ed)g(with)g(the)h(rest)f(of)h(the)g(program.)49 +b(I)33 b(admit,)i(this)150 2479 y(is)e(not)g(ideal,)i(and)d(writing)h (an)g(input)f(routine)h(for)f(user)h(co)s(de)g(is)g(one)g(of)g(the)g (next)g(things)g(I)g(plan)f(to)150 2588 y(add)e(to)h(3DLDF.)275 2726 y(I)g(plan)g(to)h(use)g(Flex)g(and)f(Bison)h(to)g(write)g(the)g @@ -8589,109 +8584,121 @@ m(t)f(of)g(the)g(di\013erences)150 2946 y(b)s(et)m(w)m(een)e(MetaP)m (ost)i(and)d(3DLDF.)275 3084 y(F)-8 b(or)39 b(the)g(presen)m(t,)i(ho)m (w)m(ev)m(er,)h(the)d(use)f(of)h(3DLDF)h(is)f(limited)g(to)h(those)f -(who)f(feel)i(comfortable)150 3193 y(using)e FB(C)460 -3185 y FA(+)-8 b(+)635 3193 y FI(and)38 b(compiling)h(and)f(relinking)h -(programs.)65 b(Please)40 b(don't)e(b)s(e)g(put)g(o\013)h(b)m(y)f -(this!)66 b(It's)150 3303 y(not)35 b(so)g(di\016cult,)g(and)f +(who)f(feel)i(comfortable)150 3193 y(using)g FB(C)462 +3185 y FA(+)-8 b(+)601 3193 y FI(and)40 b(compiling)h(and)f(relinking)h +(programs.)72 b(Please)42 b(don't)e(b)s(e)g(put)g(o\013)h(b)m(y)g +(this!)72 b(It's)150 3303 y(not)35 b(so)g(di\016cult,)g(and)f Fz(make)g FI(do)s(es)g(most)h(of)f(the)h(w)m(ork)g(of)f(recompiling)i (and)e(running)e(3DLDF.)37 b(See)150 3412 y(Chapter)30 b(11)h([Installing)g(and)f(Running)f(3DLDF],)j(page)f(73,)h(for)e(more) h(information.)150 3679 y FH(1.6)68 b(P)l(orts)150 3926 y FI(I)34 b(originally)i(dev)m(elop)s(ed)e(3DLDF)i(on)e(a)g(DECalpha)h (P)m(ersonal)g(W)-8 b(orkstation)36 b(with)e(t)m(w)m(o)h(pro)s -(cessors,)150 4036 y(under)30 b(T)-8 b(ru64)32 b(Unix)g(5.1,)h(using)e -(the)h(DEC)g FB(C)1763 4028 y FA(+)-8 b(+)1924 4036 y -FI(compiler.)45 b(I)32 b(then)f(p)s(orted)g(it)i(to)f(a)g(PC)f(P)m(en)m -(tium)i(4)150 4146 y(under)h(Lin)m(ux)h(2.4,)k(using)c(GCC)g(2.95.3,)40 +(cessors,)150 4036 y(under)d(T)-8 b(ru64)33 b(Unix)g(5.1,)j(using)d +(the)g(DEC)h FB(C)1775 4028 y FA(+)-8 b(+)1906 4036 y +FI(compiler.)50 b(I)33 b(then)g(p)s(orted)g(it)h(to)g(a)g(PC)f(P)m(en)m +(tium)h(4)150 4146 y(under)g(Lin)m(ux)h(2.4,)k(using)c(GCC)g(2.95.3,)40 b(and)35 b(a)h(PC)f(P)m(en)m(tium)h(I)s(I)f(XEON)h(under)e(Lin)m(ux)h -(2.4,)j(using)150 4255 y(GCC)30 b(3.3.)275 4393 y(The)47 -b(CWEB)i(sources)f(of)h(3DLDF)h(con)m(tain)g(some)e(conditionally)i -(compiled)f(co)s(de)g(for)f(man-)150 4503 y(aging)i(platform)f(dep)s -(endencies.)95 b(Curren)m(tly)-8 b(,)53 b(the)c(\014les)g(`)p -Fz(io.web)p FI(',)j(`)p Fz(loader.web)p FI(',)f(`)p Fz(main.web)p -FI(',)150 4612 y(`)p Fz(points.web)p FI(',)29 b(and)i(`)p -Fz(pspglb.web)p FI(')d(con)m(tain)33 b(conditionally)f(compiled)g(co)s -(de,)g(dep)s(ending)d(on)i(whic)m(h)150 4722 y(compiler,)26 -b(or)e(in)g(the)g(case)h(of)f(GCC,)g(whic)m(h)f(v)m(ersion)i(of)f(the)g -(compiler,)i(is)e(used.)38 b(The)24 b(DEC)f FB(C)3412 -4714 y FA(+)-8 b(+)3558 4722 y FI(com-)150 4832 y(piler)33 -b(de\014nes)f(the)i(prepro)s(cessor)e(macro)i(`)p Fz(__DECCXX)p -FI(')d(and)i(GCC)f(de\014nes)h(`)p Fz(__GNUC__)p FI('.)47 -b(In)33 b(order)f(to)150 4941 y(distinguish)e(b)s(et)m(w)m(een)h(GCC)g -(2.95.3)i(and)d(GCC)g(3.3,)i(I'v)m(e)g(added)e(the)h(macros)g(`)p -Fz(LDF_GCC_2_95)p FI(')d(and)150 5051 y(`)p Fz(LDF_GCC_3_3)p -FI(')e(in)h(`)p Fz(loader.web)p FI(',)g(whic)m(h)h(should)f(b)s(e)g -(de\014ned)g(or)h(unde\014ned,)f(dep)s(ending)f(on)i(whic)m(h)p -150 5154 1200 4 v 199 5221 a FA(8)275 5253 y Fr(Flex)d(is)g(a)h -(program)f(for)h(generating)g(text)f(scanners)g(and)g(Bison)h(is)f(a)h -(parser)f(generator.)36 b(They)24 b(are)i(a)n(v)l(ailable)g(from)275 -5340 y Fs(http://www.gnu.org)p Fr(.)p eop end +(2.4,)j(using)150 4255 y(GCC)k(3.3.)79 b(I)43 b(am)g(curren)m(tly)g +(only)g(main)m(taining)h(the)f(last)g(v)m(ersion.)79 +b(I)42 b(do)h(not)g(b)s(eliev)m(e)h(that)f(it's)150 4365 +y(w)m(orth)m(while)35 b(to)h(main)m(tain)g(a)f(v)m(ersion)h(for)e(GCC)h +(2.95.)56 b(While)36 b(I)e(w)m(ould)h(lik)m(e)h(3DLDF)h(to)e(run)f(on)h +(as)150 4474 y(man)m(y)i(platforms)f(as)h(p)s(ossible,)g(I)g(w)m(ould)f +(rather)g(sp)s(end)f(m)m(y)h(time)h(dev)m(eloping)h(it)f(than)f(p)s +(orting)g(it.)150 4584 y(This)30 b(is)g(something)h(where)f(I)g(w)m +(ould)g(b)s(e)g(grateful)h(for)f(help)g(from)g(other)g(programmers.)275 +4722 y(The)20 b(global)i(constan)m(t)g Fz(MAX_REAL)p +FI(,)f(de\014ned)f(in)g(`)p Fz(pspglb.web)p FI(',)h(is)g(initialized)h +(using)f(system)g(dep)s(en-)150 4832 y(den)m(t)33 b(co)s(de.)49 +b(See)33 b(Chapter)g(13)h([Global)g(Constan)m(ts)g(and)e(V)-8 +b(ariables],)36 b(page)d(78.)50 b(Curren)m(tly)-8 b(,)33 +b(3DLDF)150 4941 y(can)26 b(only)g(b)s(e)f(built)h(correctly)h(on)f(a)g +(32-bit)h(little-endian)g(arc)m(hitecture.)41 b(Y)-8 +b(ou)27 b(don't)e(necessarily)i(need)150 5051 y(to)37 +b(kno)m(w)g(what)f(this)h(means;)j(If)c Fz(MAX_REAL)e +FI(cannot)j(b)s(e)f(set)h(correctly)-8 b(,)40 b(3DLDF)e(will)f(exit)h +(with)e(an)p 150 5154 1200 4 v 199 5221 a FA(8)275 5253 +y Fr(Flex)25 b(is)g(a)h(program)f(for)h(generating)g(text)f(scanners)g +(and)g(Bison)h(is)f(a)h(parser)f(generator.)36 b(They)24 +b(are)i(a)n(v)l(ailable)g(from)275 5340 y Fs(http://www.gnu.org)p +Fr(.)p eop end %%Page: 9 21 TeXDict begin 9 20 bop 150 -116 a FI(Chapter)30 b(1:)41 -b(In)m(tro)s(duction)2592 b(9)150 299 y(compiler)30 b(y)m(ou're)g -(using.)40 b(In)29 b(the)h(distribution,)f(`)p Fz(LDF_GCC_3_3)p -FI(')e(is)j(de\014ned)e(and)h(`)p Fz(LDF_GCC_2_95)p FI(')e(is)150 -408 y(unde\014ned,)h(so)j(if)f(y)m(ou)h(w)m(an)m(t)g(to)g(use)f(GCC)g -(2.95,)j(y)m(ou'll)e(ha)m(v)m(e)h(to)f(c)m(hange)g(this.)275 -543 y(3DLDF)k(1.1.3)h(no)m(w)e(uses)g(Auto)s(conf)h(and)e(Automak)m(e,) -k(and)d(the)g(`)p Fz(configure)p FI(')e(script)j(generates)150 -653 y(a)d(`)p Fz(config.h)p FI(')e(\014le,)i(whic)m(h)g(is)g(no)m(w)f -(included)g(in)h Fz(\\)p FI(\014lenameloader.w)m(eb.)45 -b(Some)32 b(of)g(the)g(prepro)s(cessor)150 762 y(macros)i(de\014ned)e -(in)h(`)p Fz(config.h)p FI(')e(are)j(used)e(to)i(conditionally)h -(include)e(library)g(header)g(\014les,)h(but)f(so)150 -872 y(far,)40 b(there)f(is)f(no)g(error)g(handling)f(co)s(de)i(for)f -(the)g(case)h(that)g(a)f(\014le)h(can't)g(b)s(e)e(included.)64 -b(I)38 b(hop)s(e)f(to)150 981 y(impro)m(v)m(e)31 b(the)g(w)m(a)m(y)g -(3DLDF)h(w)m(orks)e(together)i(with)e(Auto)s(conf)h(and)e(Automak)m(e)j -(in)e(the)h(near)f(future.)275 1116 y(I)41 b(am)h(mostly)g(concerned)f -(with)h(main)m(taining)g(the)g(Lin)m(ux)f(v)m(ersion.)75 -b(In)41 b(most)h(resp)s(ects,)i(GCC)150 1225 y(3.3)e(is)f(an)f(impro)m -(v)m(emen)m(t)i(o)m(v)m(er)g(GCC)f(2.95.3,)46 b(ho)m(w)m(ev)m(er)c -(compilation,)j(and)40 b(esp)s(ecially)i(linking,)i(is)150 -1335 y(signi\014can)m(tly)32 b(slo)m(w)m(er.)41 b(Therefore,)31 -b(I)f(tend)g(to)h(use)f(GCC)g(2.95.3)j(most)d(of)h(the)g(time.)275 -1469 y(I'm)i(not)i(particularly)g(concerned)f(ab)s(out)g(main)m -(taining)h(the)g(DEC)f(v)m(ersion,)i(ho)m(w)m(ev)m(er,)g(it)f(hasn't) -150 1579 y(cost)44 b(v)m(ery)g(m)m(uc)m(h)f(e\013ort)h(so)f(far,)k(so)c -(I)g(will)h(probably)e(con)m(tin)m(ue)j(to)f(do)f(so,)k(as)c(long)h(as) -f(I)g(ha)m(v)m(e)i(a)150 1689 y(DECalpha)30 b(a)m(v)-5 -b(ailable.)275 1823 y(I'm)21 b(also)i(not)g(particularly)f(concerned)h -(ab)s(out)e(p)s(orting)h(3DLDF)i(to)e(Microsoft)i(DOS)e(or)g(Windo)m -(ws.)150 1933 y(Ho)m(w)m(ev)m(er,)46 b(I)41 b(ha)m(v)m(e)h(made)g(sure) -e(that)i(all)g(of)f(the)h(\014lenames)f(in)g(the)g(distribution)g(ha)m -(v)m(e)h(at)g(most)g(8)150 2042 y(c)m(haracters,)32 b(although)f(I)f -(\014nd)f(this)h(rather)g(a)h(n)m(uisance.)275 2177 y(As)i(time)i(p)s -(ermits,)f(and)f(resources)h(are)h(a)m(v)-5 b(ailable)36 -b(to)e(me,)h(I)f(will)g(try)g(to)h(p)s(ort)e(3DLDF)i(to)g(other)150 -2286 y(platforms.)41 b(I)30 b(w)m(ould)g(b)s(e)g(grateful)h(for)f(an)m -(y)h(help)f(from)g(other)g(programmers)g(in)g(doing)g(this.)150 -2544 y FH(1.7)68 b(Con)l(tributing)46 b(to)f(3DLDF)150 -2788 y FI(So)32 b(far,)g(I'v)m(e)h(b)s(een)e(the)h(sole)h(author)f(and) -f(user)g(of)h(3DLDF.)i(I)e(w)m(ould)f(b)s(e)h(v)m(ery)g(in)m(terested)h -(in)e(ha)m(ving)150 2897 y(other)36 b(programmers)e(con)m(tribute)i(to) -g(it.)57 b(I)35 b(w)m(ould)g(b)s(e)f(particularly)i(in)m(terested)h(in) -e(help)g(in)g(making)150 3007 y(3DLDF)27 b(conform)f(as)g(closely)h(as) -f(p)s(ossible)f(to)i(the)f(GNU)g(Co)s(ding)f(Standards.)38 -b(I)26 b(w)m(ould)f(b)s(e)g(grateful)i(if)150 3117 y(someone)k(w)m -(ould)e(write)h(prop)s(er)f(Automak)m(e)i(and)f(Auto)s(conf)g(\014les,) -g(since)g(I)g(ha)m(v)m(en't)h(y)m(et)g(learned)f(ho)m(w)150 -3226 y(to)h(do)f(so)h(\(I'm)f(w)m(orking)h(on)f(it\).)275 -3361 y(See)g(Chapter)g(1)h([In)m(tro)s(duction],)f(page)i(1,)f(for)f -(information)g(on)h(ho)m(w)f(to)h(con)m(tact)i(the)d(author.)150 -3643 y FE(Using)f(3DLDF)150 3877 y FI(Since)35 b(3DLDF)i(do)s(es)e(not) -h(y)m(et)h(ha)m(v)m(e)f(an)g(input)e(routine,)j(user)e(co)s(de)h(m)m -(ust)f(b)s(e)g(written)g(in)g FB(C)3470 3869 y FA(+)-8 -b(+)3639 3877 y FI(\(in)150 3987 y(`)p Fz(main.web)p -FI(',)39 b(or)f(some)h(other)g(\014le\))f(and)g(compiled.)65 -b(Then,)40 b(3DLDF)g(m)m(ust)e(b)s(e)g(relink)m(ed,)i(together)150 -4096 y(with)d(the)g(new)f(\014le)h(of)g(ob)5 b(ject)37 -b(co)s(de)g(resulting)g(from)g(the)g(compilation.)61 +b(In)m(tro)s(duction)2592 b(9)150 299 y(error)40 b(message)i(when)d(y)m +(ou)i(try)g(to)g(run)e(it.)72 b(In)m(tel)41 b(and)f(V)-10 +b(AX)41 b(are)g(little-endian,)k(while)c(Motorola)150 +408 y(and)g(SP)-8 b(AR)m(C)41 b(are)g(big-endian,)k(as)c(is)h(the)f +(DECalpha)g(men)m(tioned)h(ab)s(o)m(v)m(e.)75 b(If)41 +b(y)m(our)g(computer)g(is)150 518 y(big-endian,)35 b(y)m(ou)f(will)h +(need)e(to)i(\014x)e(the)h(w)m(a)m(y)h Fz(MAX_REAL)d +FI(is)i(initialized,)i(or)e(get)h(someb)s(o)s(dy)e(to)i(do)e(it)150 +628 y(for)h(y)m(ou.)55 b(I)34 b(plan)g(to)i(\014x)e(this)g(so)s(on,)i +(so)f(that)g(it)h(will)f(w)m(ork)g(on)f(other)h(arc)m(hitectures)h(so)s +(on.)54 b(When)34 b(I)150 737 y(ha)m(v)m(e,)e(I)e(will)h(supply)e(a)h +(patc)m(h.)275 872 y(Although)22 b(I)f(am)h(no)g(longer)h(supp)s +(orting)d(p)s(orts)h(to)i(other)f(systems,)i(I)d(ha)m(v)m(e)i(left)g +(some)f(conditionally)150 981 y(compiled)31 b(co)s(de)g(for)g(managing) +g(platform)g(dep)s(endencies)f(in)g(the)h(CWEB)g(sources)f(of)h(3DLDF.) +i(This)150 1091 y(ma)m(y)e(mak)m(e)g(it)g(easier)h(for)e(other)g(p)s +(eople)h(who)f(w)m(an)m(t)h(to)g(p)s(ort)f(3DLDF)h(to)h(other)e +(platforms.)275 1225 y(Curren)m(tly)-8 b(,)24 b(the)g(\014les)g(`)p +Fz(io.web)p FI(',)g(`)p Fz(loader.web)p FI(',)f(`)p Fz(main.web)p +FI(',)g(`)p Fz(points.web)p FI(',)g(and)g(`)p Fz(pspglb.web)p +FI(')150 1335 y(con)m(tain)32 b(conditionally)g(compiled)f(co)s(de,)g +(dep)s(ending)e(on)i(whic)m(h)f(compiler,)h(or)g(in)f(the)h(case)g(of)g +(GCC,)150 1445 y(whic)m(h)38 b(v)m(ersion)g(of)h(the)f(compiler,)j(is)d +(used.)63 b(The)38 b(DEC)g FB(C)2273 1437 y FA(+)-8 b(+)2409 +1445 y FI(compiler)38 b(de\014nes)g(the)g(prepro)s(cessor)150 +1554 y(macro)24 b(`)p Fz(__DECCXX)p FI(')d(and)i(GCC)g(de\014nes)f(`)p +Fz(__GNUC__)p FI('.)37 b(In)22 b(order)h(to)h(distinguish)e(b)s(et)m(w) +m(een)i(GCC)f(2.95.3)150 1664 y(and)31 b(GCC)h(3.3,)h(I'v)m(e)g(added)e +(the)h(macros)g(`)p Fz(LDF_GCC_2_95)p FI(')d(and)i(`)p +Fz(LDF_GCC_3_3)p FI(')e(in)j(`)p Fz(loader.web)p FI(',)150 +1773 y(whic)m(h)k(should)f(b)s(e)g(de\014ned)g(or)h(unde\014ned,)f(dep) +s(ending)g(on)h(whic)m(h)f(compiler)i(y)m(ou're)f(using.)57 +b(In)36 b(the)150 1883 y(distribution,)e(`)p Fz(LDF_GCC_3_3)p +FI(')d(is)i(de\014ned)f(and)h(`)p Fz(LDF_GCC_2_95)p FI(')e(is)i +(unde\014ned,)f(so)i(if)f(y)m(ou)h(w)m(an)m(t)g(to)150 +1993 y(try)c(using)g(GCC)g(2.95,)i(y)m(ou'll)g(ha)m(v)m(e)f(to)g(c)m +(hange)h(this)e(\(it's)i(not)e(guaran)m(teed)i(to)f(w)m(ork\).)275 +2127 y(3DLDF)k(1.1.4)h(no)m(w)e(uses)g(Auto)s(conf)h(and)e(Automak)m +(e,)k(and)d(the)g(`)p Fz(configure)p FI(')e(script)j(generates)150 +2237 y(a)29 b(`)p Fz(config.h)p FI(')e(\014le,)j(whic)m(h)e(is)h(no)m +(w)g(included)f(in)g(`)p Fz(loader.web)p FI('.)38 b(Some)29 +b(of)g(the)g(prepro)s(cessor)e(macros)150 2346 y(de\014ned)e(in)i(`)p +Fz(config.h)p FI(')e(are)i(used)f(to)h(conditionally)h(include)f +(library)f(header)h(\014les,)g(but)f(so)h(far,)h(there)150 +2456 y(is)33 b(no)g(error)f(handling)h(co)s(de)g(for)g(the)g(case)h +(that)g(a)f(\014le)g(can't)h(b)s(e)e(included.)48 b(I)33 +b(hop)s(e)f(to)i(impro)m(v)m(e)g(the)150 2565 y(w)m(a)m(y)d(3DLDF)h(w)m +(orks)e(together)i(with)e(Auto)s(conf)h(and)f(Automak)m(e)h(in)g(the)f +(near)g(future.)150 2823 y FH(1.7)68 b(Con)l(tributing)46 +b(to)f(3DLDF)150 3067 y FI(So)32 b(far,)g(I'v)m(e)h(b)s(een)e(the)h +(sole)h(author)f(and)f(user)g(of)h(3DLDF.)i(I)e(w)m(ould)f(b)s(e)h(v)m +(ery)g(in)m(terested)h(in)e(ha)m(ving)150 3176 y(other)36 +b(programmers)e(con)m(tribute)i(to)g(it.)57 b(I)35 b(w)m(ould)g(b)s(e)f +(particularly)i(in)m(terested)h(in)e(help)g(in)g(making)150 +3286 y(3DLDF)27 b(conform)f(as)g(closely)h(as)f(p)s(ossible)f(to)i(the) +f(GNU)g(Co)s(ding)f(Standards.)38 b(I)26 b(w)m(ould)f(b)s(e)g(grateful) +i(if)150 3396 y(someone)k(w)m(ould)e(write)h(prop)s(er)f(Automak)m(e)i +(and)f(Auto)s(conf)g(\014les,)g(since)g(I)g(ha)m(v)m(en't)h(y)m(et)g +(learned)f(ho)m(w)150 3505 y(to)h(do)f(so)h(\(I'm)f(w)m(orking)h(on)f +(it\).)275 3640 y(See)g(Chapter)g(1)h([In)m(tro)s(duction],)f(page)i +(1,)f(for)f(information)g(on)h(ho)m(w)f(to)h(con)m(tact)i(the)d +(author.)150 3922 y FE(Using)f(3DLDF)150 4156 y FI(Since)38 +b(3DLDF)h(do)s(es)e(not)h(y)m(et)h(ha)m(v)m(e)f(an)g(input)f(routine,)i +(user)e(co)s(de)h(m)m(ust)f(b)s(e)g(written)h(in)f FB(C)3503 +4148 y FA(+)-8 b(+)3639 4156 y FI(\(in)150 4266 y(`)p +Fz(main.web)p FI(',)39 b(or)f(some)h(other)g(\014le\))f(and)g +(compiled.)65 b(Then,)40 b(3DLDF)g(m)m(ust)e(b)s(e)g(relink)m(ed,)i +(together)150 4375 y(with)d(the)g(new)f(\014le)h(of)g(ob)5 +b(ject)37 b(co)s(de)g(resulting)g(from)g(the)g(compilation.)61 b(F)-8 b(or)38 b(no)m(w,)h(the)e(imp)s(ortan)m(t)150 -4206 y(p)s(oin)m(t)31 b(is)f(that)i(the)f(text)g(of)g(the)g(examples)g -(in)g(this)f(man)m(ual)h(represen)m(t)g FB(C)2738 4198 -y FA(+)-8 b(+)2897 4206 y FI(co)s(de.)42 b(See)31 b(Chapter)f(11)150 -4315 y([Installing)h(and)f(Running)f(3DLDF],)j(page)f(73,)h(for)e(more) +4485 y(p)s(oin)m(t)32 b(is)h(that)g(the)f(text)i(of)e(the)h(examples)g +(in)f(this)g(man)m(ual)h(represen)m(t)f FB(C)2758 4477 +y FA(+)-8 b(+)2889 4485 y FI(co)s(de.)47 b(See)32 b(Chapter)g(11)150 +4594 y([Installing)f(and)f(Running)f(3DLDF],)j(page)f(73,)h(for)e(more) h(information.)p eop end %%Page: 10 22 TeXDict begin 10 21 bop 150 -116 a FI(Chapter)30 b(2:)41 @@ -8863,10 +8870,10 @@ 1472 y FI(to)150 1581 y(a)36 b Fz(Point)p FI(.)54 b(Most)36 b(of)g(the)f(argumen)m(ts)h(to)g(these)g(functions)f(are)g(of)h(t)m(yp) s(e)f Fz(real)p FI(.)55 b(As)35 b(y)m(ou)h(ma)m(y)g(kno)m(w,)150 -1691 y(there)c(is)g(no)g(suc)m(h)f(data)i(t)m(yp)s(e)e(in)h -FB(C)1397 1683 y FA(+)-8 b(+)1527 1691 y FI(.)45 b(I)31 -b(ha)m(v)m(e)i(de\014ned)e Fz(real)f FI(using)i Fz(typedef)d -FI(to)k(b)s(e)e(either)h Fz(float)150 1800 y FI(or)k +1691 y(there)e(is)f(no)h(suc)m(h)f(data)h(t)m(yp)s(e)f(in)h +FB(C)1409 1683 y FA(+)-8 b(+)1507 1691 y FI(.)49 b(I)34 +b(ha)m(v)m(e)g(de\014ned)f Fz(real)f FI(using)h Fz(typedef)e +FI(to)k(b)s(e)d(either)i Fz(float)150 1800 y FI(or)i Fz(double)p FI(,)g(dep)s(ending)f(on)h(the)h(v)-5 b(alue)36 b(of)h(a)f(prepro)s(cessor)g(switc)m(h)g(for)g(conditional)i (compilation.)3711 1767 y FA(2)150 1910 y FI(3DLDF)g(uses)f(man)m(y)g @@ -8878,19 +8885,18 @@ Fz(float)e FI(or)h Fz(double)f FI(are)i(used.)59 b(Unfortunately)-8 b(,)39 b(setting)f Fz(real)d FI(to)j Fz(double)150 2239 y FI(curren)m(tly)30 b(do)s(esn't)h(w)m(ork.)150 2504 -y FH(3.1)68 b(Shifting)150 2751 y FI(The)44 b(function)h -Fz(shift\(\))d FI(adds)i(its)i(argumen)m(ts)f(to)g(the)g(corresp)s -(onding)f Fz(world_coordinates)c FI(of)150 2861 y(a)48 -b Fz(Point)p FI(.)90 b(In)47 b(the)h(follo)m(wing)h(example,)j(the)c -(function)f Fz(show\(\))f FI(is)h(used)g(to)h(prin)m(t)f(the)h -Fz(world_)150 2970 y(coordinates)27 b FI(of)k Fz(p0)f -FI(to)h(standard)e(output.)390 3108 y Fz(Point)46 b(p0\(0,)h(0,)g(0\);) -390 3218 y(p0.shift\(1,)e(2,)i(3\);)390 3327 y(p0.show\("p0:"\);)410 -3441 y FG(a)533 3437 y Fz(p0:)g(\(1,)g(2,)g(3\))390 3546 -y(p0.shift\(10\);)390 3656 y(p0.show\("p0:"\);)410 3769 -y FG(a)533 3765 y Fz(p0:)g(\(11,)g(2,)g(3\))390 3875 -y(p0.shift\(0,)e(20\);)390 3985 y(p0.show\("p0:"\);)410 -4098 y FG(a)533 4094 y Fz(p0:)i(\(11,)g(22,)g(3\))390 +y FH(3.1)68 b(Shifting)150 2751 y FI(The)31 b(function)g(adds)g(its)g +(argumen)m(ts)h(to)g(the)g(corresp)s(onding)e Fz(world_coordinates)d +FI(of)32 b(a)f Fz(Point)p FI(.)43 b(In)150 2861 y(the)32 +b(follo)m(wing)h(example,)g(the)f(function)f Fz(show\(\))f +FI(is)i(used)e(to)j(prin)m(t)e(the)h Fz(world_coordinates)27 +b FI(of)32 b Fz(p0)150 2970 y FI(to)f(standard)f(output.)390 +3108 y Fz(Point)46 b(p0\(0,)h(0,)g(0\);)390 3218 y(p0.shift\(1,)e(2,)i +(3\);)390 3327 y(p0.show\("p0:"\);)410 3441 y FG(a)533 +3437 y Fz(p0:)g(\(1,)g(2,)g(3\))390 3546 y(p0.shift\(10\);)390 +3656 y(p0.show\("p0:"\);)410 3769 y FG(a)533 3765 y Fz(p0:)g(\(11,)g +(2,)g(3\))390 3875 y(p0.shift\(0,)e(20\);)390 3985 y(p0.show\("p0:"\);) +410 4098 y FG(a)533 4094 y Fz(p0:)i(\(11,)g(22,)g(3\))390 4204 y(p0.shift\(0,)e(0,)i(30\);)390 4313 y(p0.show\("p0:"\);)410 4427 y FG(a)533 4423 y Fz(p0:)g(\(11,)g(22,)g(33\))p 150 4528 1200 4 v 199 4595 a FA(1)275 4627 y Fm(A\016ne)35 @@ -8908,11 +8914,11 @@ r(deling)p Fr(.)199 5047 y FA(2)275 5078 y Fr(I)c(try)g(to)h(a)n(v)n (oid)g(the)f(use)h(of)h(prepro)r(cessor)g(macros)g(as)f(m)n(uc)n(h)f (as)h(p)r(ossible,)i(for)e(the)g(reasons)h(giv)n(en)e(b)n(y)g -(Stroustrup)g(in)275 5166 y(the)i Fm(The)g FB(C)628 5158 -y FA(+)-8 b(+)777 5166 y Fm(Programming)28 b(Language)p -Fr(,)e Fl(x)q Fr(7.8,)h(pp.)e(160{163,)j(and)d Fm(Design)h(and)g(Ev)n -(olution)f(of)i FB(C)3307 5158 y FA(+)-8 b(+)3430 5166 -y Fr(,)26 b(Chapter)275 5253 y(18,)33 b(pp.)d(423{426.)53 +(Stroustrup)g(in)275 5166 y(the)28 b Fm(The)h FB(C)635 +5158 y FA(+)-8 b(+)762 5166 y Fm(Programming)31 b(Language)p +Fr(,)g Fl(x)p Fr(7.8,)g(pp.)e(160{163,)j(and)d Fm(Design)g(and)g(Ev)n +(olution)g(of)h FB(C)3328 5158 y FA(+)-8 b(+)3426 5166 +y Fr(,)30 b(Chapter)275 5253 y(18,)j(pp.)d(423{426.)53 b(Ho)n(w)n(ev)n(er,)33 b(conditional)f(compilation)g(is)f(one)g(of)h (the)f(tasks)g(that)f(only)h(the)g(prepro)r(cessor)h(can)275 5340 y(p)r(erform.)p eop end @@ -8989,8 +8995,8 @@ (a)g Fz(Point)e FI(is)150 957 y(mo)s(di\014ed)h(based)g(on)h(the)g(v)-5 b(alues)39 b(of)g(the)g(other)g(t)m(w)m(o)h(co)s(ordinates,)i(whereb)m (y)c(the)i(in\015uence)e(of)h(the)150 1066 y(other)31 -b(co)s(ordinates)g(on)f(the)h(new)e(v)-5 b(alue)31 b(is)g(\\w)m(eigh)m -(ted")h(according)g(to)f(the)f(argumen)m(ts.)390 1286 +b(co)s(ordinates)g(on)f(the)h(new)e(v)-5 b(alue)31 b(is)g(w)m(eigh)m +(ted)g(according)h(to)f(the)f(argumen)m(ts.)390 1286 y Fz(Point)46 b(p\(1,)h(1,)g(1\);)390 1396 y(p.shear\(1\);)390 1505 y(p.show\("p:"\);)410 1619 y FG(a)533 1615 y Fz(p:)g(\(2,)g(1,)g (1\))390 1725 y(p.set\(1,)f(1,)h(1\);)390 1834 y(p.shear\(1,)e(1\);)390 @@ -9284,46 +9290,46 @@ %%Page: 18 30 TeXDict begin 18 29 bop 150 -116 a FI(Chapter)30 b(4:)41 b(T)-8 b(ransforms)2597 b(18)150 299 y FE(4)80 b(T)-13 -b(ransforms)150 527 y FI(When)38 b Fz(Points)f FI(are)i(transformed)f +b(ransforms)150 529 y FI(When)38 b Fz(Points)f FI(are)i(transformed)f (using)g Fz(shift\(\))p FI(,)h Fz(shear\(\))p FI(,)f(or)h(one)g(of)f -(the)h(other)g(transforma-)150 636 y(tion)g(functions,)h(the)e +(the)h(other)g(transforma-)150 639 y(tion)g(functions,)h(the)e Fz(world_coordinates)33 b FI(are)39 b(not)f(mo)s(di\014ed)f(directly)-8 -b(.)66 b(Instead,)40 b(another)e(data)150 746 y(mem)m(b)s(er)28 +b(.)66 b(Instead,)40 b(another)e(data)150 748 y(mem)m(b)s(er)28 b(of)h Fz(class)g(Point)e FI(is)i(used)f(to)h(store)h(the)f (information)g(ab)s(out)f(the)h(transformation,)h(namely)150 -855 y Fz(transform)37 b FI(of)j(t)m(yp)s(e)f Fz(class)29 +858 y Fz(transform)37 b FI(of)j(t)m(yp)s(e)f Fz(class)29 b(Transform)p FI(.)66 b(A)39 b Fz(Transform)e FI(ob)5 b(ject)40 b(has)g(a)g(single)g(data)g(elemen)m(t)h(of)150 -965 y(t)m(yp)s(e)e Fz(Matrix)f FI(and)g(a)i(n)m(um)m(b)s(er)e(of)h(mem) +967 y(t)m(yp)s(e)e Fz(Matrix)f FI(and)g(a)i(n)m(um)m(b)s(er)e(of)h(mem) m(b)s(er)f(functions.)67 b(A)39 b Fz(Matrix)f FI(is)h(simply)f(a)i(4)26 -b FG(\002)g FI(4)40 b(arra)m(y)3600 932 y FA(1)3677 965 -y FI(of)150 1075 y Fz(reals)24 b FI(de\014ned)h(using)g +b FG(\002)g FI(4)40 b(arra)m(y)3600 934 y FA(1)3677 967 +y FI(of)150 1077 y Fz(reals)24 b FI(de\014ned)h(using)g Fz(typedef)j(real)h(Matrix[4][4])p FI(.)36 b(Suc)m(h)25 b(a)h(matrix)g(su\016ces)f(for)h(p)s(erforming)e(all)150 -1184 y(of)35 b(the)h(transformations)f(\(a\016ne)h(and)e(p)s(ersp)s +1186 y(of)35 b(the)h(transformations)f(\(a\016ne)h(and)e(p)s(ersp)s (ectiv)m(e\))i(p)s(ossible)f(in)g(three-dimensional)h(space.)3493 -1151 y FA(2)3586 1184 y FI(An)m(y)150 1294 y(com)m(bination)28 +1153 y FA(2)3586 1186 y FI(An)m(y)150 1296 y(com)m(bination)28 b(of)g(transformations)f(can)g(b)s(e)g(represen)m(ted)g(b)m(y)g(a)h -(single)f(transformation)h(matrix.)40 b(This)150 1403 +(single)f(transformation)h(matrix.)40 b(This)150 1406 y(means)c(that)h(consecutiv)m(e)h(transformations)e(of)g(a)h Fz(Point)d FI(can)j(b)s(e)e(\\sa)m(v)m(ed)j(up")d(and)h(applied)g(to)h -(its)150 1513 y(co)s(ordinates)31 b(all)g(at)g(once)h(when)d(needed,)h +(its)150 1515 y(co)s(ordinates)31 b(all)g(at)g(once)h(when)d(needed,)h (rather)g(than)h(up)s(dating)e(them)h(for)g(eac)m(h)i(transformation.) -275 1646 y Fz(Transforms)24 b FI(w)m(ork)j(b)m(y)f(p)s(erforming)g +275 1649 y Fz(Transforms)24 b FI(w)m(ork)j(b)m(y)f(p)s(erforming)g (matrix)h(m)m(ultiplication)i(of)e Fz(Matrix)f FI(with)g(the)h -(homogeneous)150 1756 y Fz(world_coordinates)f FI(of)k +(homogeneous)150 1759 y Fz(world_coordinates)f FI(of)k Fz(Points)p FI(.)39 b(If)30 b(a)h(set)g(of)f(homogeneous)h(co)s (ordinates)g Fu(\013)26 b FI(=)f(\()p Fu(x;)15 b(y)s(;)g(z)t(;)g(w)r -FI(\))33 b(and)1342 2108 y Fz(Matrix)28 b Fu(M)36 b FI(=)1878 -1890 y Fh(0)1878 2036 y(B)1878 2086 y(B)1878 2139 y(@)1965 -1944 y Fu(a)97 b(e)107 b(i)101 b(m)1970 2054 y(b)95 b(f)104 -b(j)113 b(n)1970 2163 y(c)99 b(g)g(k)112 b(o)1966 2273 -y(d)92 b(h)103 b(l)121 b(p)2486 1890 y Fh(1)2486 2036 -y(C)2486 2086 y(C)2486 2139 y(A)150 2456 y FI(then)23 +FI(\))33 b(and)1342 2115 y Fz(Matrix)28 b Fu(M)36 b FI(=)1878 +1897 y Fh(0)1878 2043 y(B)1878 2093 y(B)1878 2146 y(@)1965 +1951 y Fu(a)97 b(e)107 b(i)101 b(m)1970 2060 y(b)95 b(f)104 +b(j)113 b(n)1970 2170 y(c)99 b(g)g(k)112 b(o)1966 2280 +y(d)92 b(h)103 b(l)121 b(p)2486 1897 y Fh(1)2486 2043 +y(C)2486 2093 y(C)2486 2146 y(A)150 2467 y FI(then)23 b(the)h(set)h(of)e(homogeneous)i(co)s(ordinates)f Fu(\014)29 b FI(resulting)24 b(from)f(m)m(ultiplying)h Fu(\013)g -FI(and)g Fu(M)33 b FI(is)24 b(calculated)150 2566 y(as)31 -b(follo)m(ws:)150 2763 y Fu(\014)f FI(=)25 b Fu(\013)6 +FI(and)g Fu(M)33 b FI(is)24 b(calculated)150 2577 y(as)31 +b(follo)m(ws:)150 2778 y Fu(\014)f FI(=)25 b Fu(\013)6 b FG(\002)g Fu(M)36 b FI(=)24 b(\(\()p Fu(xa)6 b FI(+)g Fu(y)s(b)g FI(+)g Fu(z)t(c)g FI(+)g Fu(w)r(d)p FI(\))p Fu(;)15 b FI(\()p Fu(xe)6 b FI(+)g Fu(y)s(f)16 b FI(+)6 @@ -9331,151 +9337,153 @@ Fu(xi)6 b FI(+)g Fu(y)s(j)11 b FI(+)6 b Fu(z)t(k)j FI(+)d Fu(w)r(l)r FI(\))p Fu(;)15 b FI(\()p Fu(xm)6 b FI(+)g Fu(y)s(n)g FI(+)g Fu(z)t(o)g FI(+)g Fu(w)r(p)p FI(\)\))150 -2961 y(Please)32 b(note)f(that)g(eac)m(h)g(co)s(ordinate)g(of)g +2980 y(Please)32 b(note)f(that)g(eac)m(h)g(co)s(ordinate)g(of)g Fu(\014)k FI(can)c(b)s(e)f(in\015uenced)f(b)m(y)h(all)i(of)e(the)h(co)s -(ordinates)g(of)f Fu(\013)p FI(.)275 3094 y(Op)s(erations)35 +(ordinates)g(of)f Fu(\013)p FI(.)275 3114 y(Op)s(erations)35 b(on)h(matrices)h(are)g(v)m(ery)f(imp)s(ortan)m(t)g(in)g(computer)g -(graphics)g(applications)h(and)f(are)150 3204 y(describ)s(ed)29 +(graphics)g(applications)h(and)f(are)150 3224 y(describ)s(ed)29 b(in)h(man)m(y)h(b)s(o)s(oks)e(ab)s(out)h(computer)h(graphics)f(and)g (geometry)-8 b(.)42 b(F)-8 b(or)31 b(3DLDF,)h(I'v)m(e)f(mostly)150 -3314 y(used)22 b(Hu)m(w)h(Jones')h Ft(Computer)e(Graphics)h(through)f +3333 y(used)22 b(Hu)m(w)h(Jones')h Ft(Computer)e(Graphics)h(through)f (Key)i(Mathematics)k FI(and)23 b(Da)m(vid)h(Salomon's)g -Ft(Com-)150 3423 y(puter)30 b(Graphics)g(and)g(Geometric)i(Mo)s(deling) -p FI(.)275 3556 y(It)44 b(is)h(often)g(useful)e(to)j(declare)f(and)f +Ft(Com-)150 3443 y(puter)30 b(Graphics)g(and)g(Geometric)i(Mo)s(deling) +p FI(.)275 3577 y(It)44 b(is)h(often)g(useful)e(to)j(declare)f(and)f (use)g Fz(Transform)e FI(ob)5 b(jects)45 b(in)g(3DLDF,)h(just)e(as)h -(it)g(is)f(for)150 3666 y Fz(transforms)29 b FI(in)i(Metafon)m(t.)47 +(it)g(is)f(for)150 3686 y Fz(transforms)29 b FI(in)i(Metafon)m(t.)47 b(T)-8 b(ransformations)32 b(can)g(b)s(e)f(stored)h(in)f -Fz(Transforms)e FI(and)i(then)h(b)s(e)f(used)150 3776 +Fz(Transforms)e FI(and)i(then)h(b)s(e)f(used)150 3796 y(to)g(transform)f Fz(Points)e FI(b)m(y)j(means)f(of)h Fz(Point::operator*=\(const)24 b(Transform&\))p FI(.)390 -3909 y(1.)48 b Fz(Transform)e(t;)390 4018 y FI(2.)i Fz(t.shift\(0,)d -(1\);)390 4128 y FI(3.)j Fz(Point)f(p\(1,)f(0,)i(0\);)390 -4238 y FI(4.)g Fz(p)g(*=)f(t;)390 4347 y FI(5.)h Fz(p.show\("p:"\);)p -150 4440 1200 4 v 199 4508 a FA(1)275 4540 y Fr(It)27 -b(is)h(unfortunate)g(that)f(the)g(terms)h(\\arra)n(y",)i(\\matrix",)g -(and)d(\\v)n(ector")h(ha)n(v)n(e)g(di\013eren)n(t)f(meanings)h(in)g -FB(C)3473 4532 y FA(+)-8 b(+)3626 4540 y Fr(and)275 4627 -y(in)30 b(normal)i(mathematical)g(usage.)52 b(Ho)n(w)n(ev)n(er,)32 -b(in)f(practice,)i(these)e(discrepancies)h(turn)e(out)h(not)g(to)g -(cause)h(man)n(y)275 4714 y(problems.)j(Stroustrup,)25 -b Fm(The)h FB(C)1262 4706 y FA(+)-8 b(+)1411 4714 y Fm(Programming)27 -b(Language)p Fr(,)g Fl(x)p Fr(22.4,)h(p.)d(662.)199 4785 -y FA(2)275 4817 y Fr(In)d(fact,)j(none)e(of)i(the)e(op)r(erations)h -(for)h(transformations)g(require)e(all)i(of)f(the)f(elemen)n(ts)h(of)g -(a)g(4)13 b Fl(\002)f Fr(4)24 b(matrix.)34 b(In)23 b(man)n(y)275 -4904 y(3D)f(graphics)g(programs,)j(the)c(matrix)h(op)r(erations)i(are)e -(mo)r(di\014ed)g(to)g(use)g(smaller)i(transformation)g(matrices,)g -(whic)n(h)275 4991 y(reduces)f(the)g(storage)i(requiremen)n(ts)e(of)i -(the)e(program.)35 b(This)24 b(is)g(a)g(bit)f(tric)n(ky)-6 -b(,)23 b(b)r(ecause)h(the)f(a\016ne)h(transformations)275 -5078 y(and)d(the)g(p)r(ersp)r(ectiv)n(e)h(transformation)i(use)e -(di\013eren)n(t)f(elemen)n(ts)h(of)h(the)e(matrix.)33 -b(I)22 b(consider)g(that)g(the)f(risk)h(of)h(some-)275 -5166 y(thing)30 b(going)i(wrong,)h(p)r(ossibly)e(pro)r(ducing)g -(hard-to-\014nd)e(bugs,)j(out)n(w)n(eighs)g(an)n(y)e(b)r(ene\014ts)g -(from)i(sa)n(ving)f(memory)275 5253 y(\(whic)n(h)24 b(is)i(usually)f -(no)g(longer)h(at)f(a)h(premium,)f(an)n(yw)n(a)n(y\).)34 -b(Therefore,)27 b(I'v)n(e)d(decided)h(to)g(use)g(full)h(4)16 -b Fl(\002)g Fr(4)25 b(matrices)h(in)275 5340 y(3DLDF.)p +3929 y(1.)48 b Fz(Transform)e(t;)390 4039 y FI(2.)i Fz(t.shift\(0,)d +(1\);)390 4149 y FI(3.)j Fz(Point)f(p\(1,)f(0,)i(0\);)390 +4258 y FI(4.)g Fz(p)g(*=)f(t;)p 150 4353 1200 4 v 199 +4421 a FA(1)275 4452 y Fr(It)29 b(is)h(unfortunate)f(that)g(the)g +(terms)h(\\arra)n(y",)i(\\matrix",)g(and)d(\\v)n(ector")h(ha)n(v)n(e)f +(di\013eren)n(t)g(meanings)h(in)g FB(C)3499 4444 y FA(+)-8 +b(+)3626 4452 y Fr(and)275 4540 y(in)30 b(normal)i(mathematical)g +(usage.)52 b(Ho)n(w)n(ev)n(er,)32 b(in)f(practice,)i(these)e +(discrepancies)h(turn)e(out)h(not)g(to)g(cause)h(man)n(y)275 +4627 y(problems.)j(Stroustrup,)25 b Fm(The)h FB(C)1262 +4619 y FA(+)-8 b(+)1385 4627 y Fm(Programming)27 b(Language)p +Fr(,)g Fl(x)f Fr(22.4,)i(p.)d(662.)199 4698 y FA(2)275 +4730 y Fr(In)32 b(fact,)37 b(none)c(of)i(the)e(op)r(erations)i(for)f +(transformations)h(require)f(all)g(of)h(the)e(elemen)n(ts)h(of)g(a)g(4) +23 b Fl(\002)f Fr(4)33 b(matrix.)59 b(In)275 4817 y(man)n(y)22 +b(3D)h(graphics)g(programs,)i(the)e(matrix)g(op)r(erations)h(are)g(mo)r +(di\014ed)e(to)h(use)g(smaller)i(transformation)f(matrices,)275 +4904 y(whic)n(h)30 b(reduces)g(the)g(storage)h(requiremen)n(ts)f(of)h +(the)f(program.)48 b(This)31 b(is)g(a)f(bit)g(tric)n(ky)-6 +b(,)31 b(b)r(ecause)f(the)g(a\016ne)g(trans-)275 4991 +y(formations)e(and)e(the)g(p)r(ersp)r(ectiv)n(e)g(transformation)i(use) +f(di\013eren)n(t)f(elemen)n(ts)g(of)h(the)f(matrix.)37 +b(I)26 b(consider)h(that)f(the)275 5078 y(risk)c(of)h(something)g +(going)h(wrong,)g(p)r(ossibly)f(pro)r(ducing)f(hard-to-\014nd)e(bugs,)k +(out)n(w)n(eighs)f(an)n(y)f(b)r(ene\014ts)f(from)j(sa)n(ving)275 +5166 y(memory)g(\(whic)n(h)g(is)h(usually)g(no)f(longer)h(at)g(a)g +(premium,)f(an)n(yw)n(a)n(y\).)34 b(In)23 b(addition,)j(there)e(ma)n(y) +g(b)r(e)g(some)h(in)n(teresting)275 5253 y(non-a\016ne)h +(transformations)i(that)f(w)n(ould)g(b)r(e)f(w)n(orth)h(implemen)n +(ting.)38 b(Therefore,)29 b(I'v)n(e)d(decided)h(to)g(use)g(full)g(4)18 +b Fl(\002)g Fr(4)275 5340 y(matrices)26 b(in)g(3DLDF.)p eop end %%Page: 19 31 TeXDict begin 19 30 bop 150 -116 a FI(Chapter)30 b(4:)41 -b(T)-8 b(ransforms)2597 b(19)410 303 y FG(a)533 299 y -Fz(p:)47 b(\(1,)g(1,)g(0\))275 438 y FI(When)24 b(a)h -Fz(Transform)d FI(is)j(declared)g(\(line)h(1\),)h(it)e(is)g -(initialized)h(to)g(an)f Ft(iden)m(tit)m(y)h(matrix)p -FI(.)39 b(All)25 b(iden)m(tit)m(y)150 547 y(matrices)30 +b(T)-8 b(ransforms)2597 b(19)390 299 y(5.)48 b Fz(p.show\("p:"\);)410 +412 y FG(a)533 408 y Fz(p:)f(\(1,)g(1,)g(0\))275 547 +y FI(When)24 b(a)h Fz(Transform)d FI(is)j(declared)g(\(line)h(1\),)h +(it)e(is)g(initialized)h(to)g(an)f Ft(iden)m(tit)m(y)h(matrix)p +FI(.)39 b(All)25 b(iden)m(tit)m(y)150 657 y(matrices)30 b(are)g(square,)g(all)g(of)f(the)h(elemen)m(ts)g(of)g(the)f(main)g (diagonal)i(\(upp)s(er)d(left)i(to)g(lo)m(w)m(er)g(righ)m(t\))h(are)150 -657 y(1,)g(and)e(all)i(of)f(the)g(other)g(elemen)m(ts)h(are)f(0.)41 +766 y(1,)g(and)e(all)i(of)f(the)g(other)g(elemen)m(ts)h(are)f(0.)41 b(So)30 b(a)g(4)19 b FG(\002)g FI(4)30 b(iden)m(tit)m(y)i(matrix,)e(as) -g(used)f(in)h(3DLDF,)h(lo)s(oks)150 766 y(lik)m(e)h(this:)1635 -796 y Fh(0)1635 942 y(B)1635 992 y(B)1635 1045 y(@)1723 -850 y FI(1)91 b(0)g(0)h(0)1723 960 y(0)f(1)g(0)h(0)1723 -1069 y(0)f(0)g(1)h(0)1723 1179 y(0)f(0)g(0)h(1)2192 796 -y Fh(1)2192 942 y(C)2192 992 y(C)2192 1045 y(A)150 1339 -y FI(If)42 b(a)g(matrix)g Fu(A)h FI(is)f(m)m(ultiplied)g(with)g(an)g -(iden)m(tit)m(y)i(matrix)e Fu(I)7 b FI(,)45 b(the)d(result)g(is)h(iden) -m(tical)g(to)g Fu(A)p FI(,)j(i.e.,)150 1448 y Fu(A)20 +g(used)f(in)h(3DLDF,)h(lo)s(oks)150 876 y(lik)m(e)h(this:)1635 +906 y Fh(0)1635 1052 y(B)1635 1101 y(B)1635 1155 y(@)1723 +960 y FI(1)91 b(0)g(0)h(0)1723 1069 y(0)f(1)g(0)h(0)1723 +1179 y(0)f(0)g(1)h(0)1723 1289 y(0)f(0)g(0)h(1)2192 906 +y Fh(1)2192 1052 y(C)2192 1101 y(C)2192 1155 y(A)150 +1448 y FI(If)42 b(a)g(matrix)g Fu(A)h FI(is)f(m)m(ultiplied)g(with)g +(an)g(iden)m(tit)m(y)i(matrix)e Fu(I)7 b FI(,)45 b(the)d(result)g(is)h +(iden)m(tical)g(to)g Fu(A)p FI(,)j(i.e.,)150 1558 y Fu(A)20 b FG(\002)g Fu(I)33 b FI(=)25 b Fu(A)p FI(.)40 b(This)30 b(is)g(the)h(salien)m(t)h(prop)s(ert)m(y)e(of)g(an)g(iden)m(tit)m(y)i -(matrix.)275 1587 y(The)27 b(same)h(a\016ne)f(transformations)h(are)g +(matrix.)275 1697 y(The)27 b(same)h(a\016ne)f(transformations)h(are)g (applied)g(in)f(the)h(same)g(w)m(a)m(y)h(to)f Fz(Transforms)d -FI(as)j(they)g(are)150 1697 y(to)g Fz(Points)p FI(,)f(i.e.,)i(the)f +FI(as)j(they)g(are)150 1806 y(to)g Fz(Points)p FI(,)f(i.e.,)i(the)f (functions)f Fz(scale\(\))p FI(,)f Fz(shift\(\))p FI(,)h Fz(shear\(\))p FI(,)f(and)h Fz(rotate\(\))e FI(corresp)s(ond)h(to)j -(the)150 1806 y Fz(Point)g FI(v)m(ersions)i(of)f(these)h(functions,)f +(the)150 1916 y Fz(Point)g FI(v)m(ersions)i(of)f(these)h(functions,)f (and)g(they)g(tak)m(e)i(the)f(same)g(argumen)m(ts:)390 -1945 y Fz(Point)46 b(p;)390 2055 y(Transform)f(t;)390 -2164 y(p.shift\(3,)g(4,)i(5\);)390 2274 y(t.shift\(3,)e(4,)i(5\);)392 -2377 y FG(\))533 2383 y Fz(p.transform)1118 2387 y FG(\021)1249 -2383 y Fz(t)390 2493 y(p.show_transform\("p:"\);)410 -2606 y FG(a)533 2602 y Fz(p:)533 2712 y(Transform:)820 -2822 y(0)142 b(0.707)g(0.707)333 b(0)581 2931 y(-0.866)141 -b(0.354)95 b(-0.354)332 b(0)676 3041 y(-0.5)95 b(-0.612)141 -b(0.612)333 b(0)820 3150 y(0)g(0)h(0)g(1)390 3260 y(t.show\("t:"\);)410 -3374 y FG(a)533 3370 y Fz(t:)820 3479 y(0)142 b(0.707)g(0.707)333 -b(0)581 3589 y(-0.866)141 b(0.354)95 b(-0.354)332 b(0)676 -3698 y(-0.5)95 b(-0.612)141 b(0.612)333 b(0)820 3808 -y(0)g(0)h(0)g(1)150 4186 y FH(4.1)68 b(Applying)45 b(T)-11 -b(ransforms)44 b(to)i(P)l(oin)l(ts)150 4434 y FI(A)94 +2055 y Fz(Point)46 b(p;)390 2164 y(Transform)f(t;)390 +2274 y(p.shift\(3,)g(4,)i(5\);)390 2383 y(t.shift\(3,)e(4,)i(5\);)392 +2487 y FG(\))533 2493 y Fz(p.transform)1118 2497 y FG(\021)1249 +2493 y Fz(t)390 2602 y(p.show_transform\("p:"\);)410 +2716 y FG(a)533 2712 y Fz(p:)533 2822 y(Transform:)820 +2931 y(0)142 b(0.707)g(0.707)333 b(0)581 3041 y(-0.866)141 +b(0.354)95 b(-0.354)332 b(0)676 3150 y(-0.5)95 b(-0.612)141 +b(0.612)333 b(0)820 3260 y(0)g(0)h(0)g(1)390 3370 y(t.show\("t:"\);)410 +3483 y FG(a)533 3479 y Fz(t:)820 3589 y(0)142 b(0.707)g(0.707)333 +b(0)581 3698 y(-0.866)141 b(0.354)95 b(-0.354)332 b(0)676 +3808 y(-0.5)95 b(-0.612)141 b(0.612)333 b(0)820 3918 +y(0)g(0)h(0)g(1)150 4295 y FH(4.1)68 b(Applying)45 b(T)-11 +b(ransforms)44 b(to)i(P)l(oin)l(ts)150 4544 y FI(A)94 b Fz(Transform)e Fu(t)i FI(is)g(applied)g(to)h(a)g Fz(Point)d Fu(P)107 b FI(using)94 b(the)g(binary)g Fz(*=)f FI(op)s(eration)150 -4544 y(\()p Fz(Point::operator*=\(const)24 b(Transform&\))p +4653 y(\()p Fz(Point::operator*=\(const)24 b(Transform&\))p FI(\))117 b(whic)m(h)j(p)s(erforms)e(matrix)i(m)m(ultiplication)150 -4653 y(of)31 b Fz(P.transform)c FI(b)m(y)j Fz(t)p FI(.)40 +4763 y(of)31 b Fz(P.transform)c FI(b)m(y)j Fz(t)p FI(.)40 b(See)31 b(Section)g(20.6)h([P)m(oin)m(t)g(Reference;)g(Op)s(erators],) -e(page)h(115.)390 4792 y Fz(Point)46 b(P\(0,)h(1\);)390 -4902 y(Transform)e(t;)390 5011 y(t.rotate\(90\);)390 -5121 y(t.show\("t:"\);)410 5234 y FG(a)533 5230 y Fz(t:)533 -5340 y(1)334 b(0)g(0)g(0)p eop end +e(page)h(116.)390 4902 y Fz(Point)46 b(P\(0,)h(1\);)390 +5011 y(Transform)e(t;)390 5121 y(t.rotate\(90\);)390 +5230 y(t.show\("t:"\);)410 5344 y FG(a)533 5340 y Fz(t:)p +eop end %%Page: 20 32 TeXDict begin 20 31 bop 150 -116 a FI(Chapter)30 b(4:)41 -b(T)-8 b(ransforms)2597 b(20)533 299 y Fz(0)334 b(0)286 -b(-1)334 b(0)533 408 y(0)g(1)g(0)g(0)533 518 y(0)g(0)g(0)g(1)390 -628 y(P)47 b(*=)h(t;)390 737 y(P.show_transform\("P:"\);)410 -851 y FG(a)533 847 y Fz(P:)390 956 y(Transform:)533 1066 -y(1)334 b(0)g(0)g(0)533 1176 y(0)g(0)286 b(-1)334 b(0)533 -1285 y(0)g(1)g(0)g(0)533 1395 y(0)g(0)g(0)g(1)390 1504 -y(P.show\("P:"\);)410 1618 y FG(a)533 1614 y Fz(P:)47 -b(\(0,)g(0,)g(-1\))275 1795 y FI(In)36 b(the)i(example)g(ab)s(o)m(v)m -(e,)j(there)c(is)h(no)f(real)h(need)f(to)i(use)e(a)h -Fz(Transform)p FI(,)e(since)i Fz(P.rotate\(90\))150 1904 -y FI(could)44 b(ha)m(v)m(e)i(b)s(een)d(called)i(directly)-8 -b(.)83 b(As)44 b(constructions)h(b)s(ecome)g(more)f(complex,)k(the)d(p) -s(o)m(w)m(er)f(of)150 2014 y Fz(Transforms)28 b FI(b)s(ecomes)i(clear:) -390 2195 y(1.)48 b Fz(Point)f(p0\(0,)f(0,)h(0\);)390 -2304 y FI(2.)h Fz(Point)f(p1\(10,)f(5,)h(10\);)390 2414 -y FI(3.)h Fz(Point)f(p2\(16,)f(14,)h(32\);)390 2523 y -FI(4.)h Fz(Point)f(p3\(25,)f(50,)h(99\);)390 2633 y FI(5.)h -Fz(Point)f(p4\(12,)f(6,)h(88\);)390 2743 y FI(6.)h Fz(Transform)e(a;) -390 2852 y FI(7.)i Fz(a.shift\(2,)d(3,)j(4\);)390 2962 -y FI(8.)g Fz(a.scale\(1,)d(3,)j(1\);)390 3071 y FI(9.)g -Fz(p2)g(*=)f(p3)g(*=)g(a;)390 3181 y FI(10.)i Fz(a.rotate\(p0,)44 -b(p1,)j(75\);)390 3290 y FI(11.)i Fz(p4)e(*=)g(a;)390 -3400 y FI(12.)i Fz(p2.show\("p2:"\);)553 3514 y FG(a)676 -3510 y Fz(p2:)e(\(18,)g(51,)g(36\))390 3619 y FI(13.)i -Fz(p3.show\("p3:"\);)553 3733 y FG(a)676 3729 y Fz(p3:)e(\(27,)g(159,)g -(103\))390 3838 y FI(14.)i Fz(p4.show\("p4:"\);)553 3952 -y FG(a)676 3948 y Fz(p4:)e(\(24.4647,)f(-46.2869,)f(81.5353\))275 -4129 y FI(In)36 b(this)h(example,)j($a$)f(is)e(shifted)g(and)f(scaled,) -k(and)d($a$)i(is)e(applied)g(to)h(b)s(oth)e(in)h(line)h(9.)62 -b(This)150 4238 y(w)m(orks,)32 b(b)s(ecause)f(the)h(binary)e(op)s -(eration)i Fz(operator*=\(const)26 b(Transform&)i(t\))i -FI(returns)g Ft(t)p FI(,)j(making)150 4348 y(it)41 b(p)s(ossible)f(to)h -(c)m(hain)g(in)m(v)m(o)s(cations)h(of)e Fz(*=)p FI(.)70 -b(F)-8 b(ollo)m(wing)43 b(this,)g($a$)f(is)e(rotated)i(75)3093 -4315 y Fi(\016)3172 4348 y FI(ab)s(out)e(the)h(line)150 -4458 y(through)33 b($p)p 599 4458 28 4 v 40 w(0$)i(and)f($p)p -1041 4458 V 40 w(1$.)52 b(Finally)-8 b(,)37 b(all)e(three)f -(transformations,)i(whic)m(h)e(are)g(stored)g(in)g($a$,)j(are)150 -4567 y(applied)30 b(to)h($p)p 681 4567 V 40 w(4$.)150 -4940 y FH(4.2)68 b(In)l(v)l(erting)46 b(T)-11 b(ransforms)150 -5230 y Ft(In)m(v)m(ersion)23 b FI(is)f(another)h(op)s(eration)g(that)g -(can)g(b)s(e)f(p)s(erformed)f(on)i Fz(Transforms)p FI(.)35 -b(This)22 b(mak)m(es)h(it)g(p)s(ossible)150 5340 y(to)31 -b(rev)m(erse)g(the)g(e\013ect)h(of)e(a)h Fz(Transform)p -FI(,)d(whic)m(h)i(ma)m(y)h(represen)m(t)g(m)m(ultiple)g +b(T)-8 b(ransforms)2597 b(20)533 299 y Fz(1)334 b(0)g(0)g(0)533 +408 y(0)g(0)286 b(-1)334 b(0)533 518 y(0)g(1)g(0)g(0)533 +628 y(0)g(0)g(0)g(1)390 737 y(P)47 b(*=)h(t;)390 847 +y(P.show_transform\("P:"\);)410 960 y FG(a)533 956 y +Fz(P:)390 1066 y(Transform:)533 1176 y(1)334 b(0)g(0)g(0)533 +1285 y(0)g(0)286 b(-1)334 b(0)533 1395 y(0)g(1)g(0)g(0)533 +1504 y(0)g(0)g(0)g(1)390 1614 y(P.show\("P:"\);)410 1728 +y FG(a)533 1724 y Fz(P:)47 b(\(0,)g(0,)g(-1\))275 1904 +y FI(In)36 b(the)i(example)g(ab)s(o)m(v)m(e,)j(there)c(is)h(no)f(real)h +(need)f(to)i(use)e(a)h Fz(Transform)p FI(,)e(since)i +Fz(P.rotate\(90\))150 2014 y FI(could)44 b(ha)m(v)m(e)i(b)s(een)d +(called)i(directly)-8 b(.)83 b(As)44 b(constructions)h(b)s(ecome)g +(more)f(complex,)k(the)d(p)s(o)m(w)m(er)f(of)150 2123 +y Fz(Transforms)28 b FI(b)s(ecomes)i(clear:)390 2304 +y(1.)48 b Fz(Point)f(p0\(0,)f(0,)h(0\);)390 2414 y FI(2.)h +Fz(Point)f(p1\(10,)f(5,)h(10\);)390 2523 y FI(3.)h Fz(Point)f(p2\(16,)f +(14,)h(32\);)390 2633 y FI(4.)h Fz(Point)f(p3\(25,)f(50,)h(99\);)390 +2743 y FI(5.)h Fz(Point)f(p4\(12,)f(6,)h(88\);)390 2852 +y FI(6.)h Fz(Transform)e(a;)390 2962 y FI(7.)i Fz(a.shift\(2,)d(3,)j +(4\);)390 3071 y FI(8.)g Fz(a.scale\(1,)d(3,)j(1\);)390 +3181 y FI(9.)g Fz(p2)g(*=)f(p3)g(*=)g(a;)390 3290 y FI(10.)i +Fz(a.rotate\(p0,)44 b(p1,)j(75\);)390 3400 y FI(11.)i +Fz(p4)e(*=)g(a;)390 3510 y FI(12.)i Fz(p2.show\("p2:"\);)553 +3623 y FG(a)676 3619 y Fz(p2:)e(\(18,)g(51,)g(36\))390 +3729 y FI(13.)i Fz(p3.show\("p3:"\);)553 3842 y FG(a)676 +3838 y Fz(p3:)e(\(27,)g(159,)g(103\))390 3948 y FI(14.)i +Fz(p4.show\("p4:"\);)553 4062 y FG(a)676 4058 y Fz(p4:)e(\(24.4647,)f +(-46.2869,)f(81.5353\))275 4238 y FI(In)30 b(this)i(example,)h +Fu(a)f FI(is)f(shifted)h(and)f(scaled,)i(and)e Fu(a)h +FI(is)f(applied)h(to)g(b)s(oth)f(in)h(line)g(9.)45 b(This)31 +b(w)m(orks,)150 4348 y(b)s(ecause)g(the)g(binary)g(op)s(eration)g +Fz(operator*=\(const)26 b(Transform&)h(t\))k FI(returns)f +Ft(t)p FI(,)h(making)h(it)f(p)s(os-)150 4458 y(sible)h(to)h(c)m(hain)f +(in)m(v)m(o)s(cations)i(of)e Fz(*=)p FI(.)45 b(F)-8 b(ollo)m(wing)34 +b(this,)f Fu(a)f FI(is)g(rotated)h(75)2658 4425 y Fi(\016)2729 +4458 y FI(ab)s(out)e(the)h(line)h(through)e Fu(p)3713 +4472 y FA(0)150 4567 y FI(and)f Fu(p)373 4581 y FA(1)410 +4567 y FI(.)40 b(Finally)-8 b(,)32 b(all)g(three)e(transformations,)h +(whic)m(h)f(are)h(stored)f(in)g Fu(a)p FI(,)h(are)g(applied)f(to)h +Fu(p)3364 4581 y FA(4)3401 4567 y FI(.)150 4940 y FH(4.2)68 +b(In)l(v)l(erting)46 b(T)-11 b(ransforms)150 5230 y Ft(In)m(v)m(ersion) +23 b FI(is)f(another)h(op)s(eration)g(that)g(can)g(b)s(e)f(p)s +(erformed)f(on)i Fz(Transforms)p FI(.)35 b(This)22 b(mak)m(es)h(it)g(p) +s(ossible)150 5340 y(to)31 b(rev)m(erse)g(the)g(e\013ect)h(of)e(a)h +Fz(Transform)p FI(,)d(whic)m(h)i(ma)m(y)h(represen)m(t)g(m)m(ultiple)g (transformations.)p eop end %%Page: 21 33 TeXDict begin 21 32 bop 150 -116 a FI(Chapter)30 b(4:)41 @@ -9640,7 +9648,7 @@ @endspecial 1771 3728 a FI(Figure)31 b(4.)150 3865 y(F)-8 b(or)33 b(complete)g(descriptions)f(of)g Fz(drawdot\(\))e FI(and)h Fz(undrawdot\(\))p FI(,)f(see)i(Section)h(20.18)h([P)m(oin)m -(t)g(Refer-)150 3975 y(ence;)d(Dra)m(wing],)h(page)f(134.)275 +(t)g(Refer-)150 3975 y(ence;)d(Dra)m(wing],)h(page)f(135.)275 4111 y(Dra)m(wing)f(and)f(undra)m(wing)f(dots)h(is)h(not)f(v)m(ery)h (exciting.)42 b(In)29 b(order)g(to)h(mak)m(e)g(a)g(prop)s(er)e(dra)m (wing)h(it)150 4221 y(is)k(necessary)g(to)h FC(c)-5 b(onne)g(ct)42 @@ -9665,8 +9673,8 @@ b(can)h(write)h(\\)p Fs(black)p Fr(")h(instead)e(of)h(\\)p Fs(Colors::black)p Fr(".)55 b(F)-6 b(or)31 b(more)g(information)i(ab)r (out)275 5340 y(namespaces,)27 b(see)f(Stroustrup,)f -Fm(The)h FB(C)1463 5332 y FA(+)-8 b(+)1612 5340 y Fm(Programming)27 -b(Language)p Fr(,)g(Chapter)f(8.)p eop end +Fm(The)h FB(C)1463 5332 y FA(+)-8 b(+)1586 5340 y Fm(Programming)28 +b(Language)p Fr(,)f(Chapter)f(8.)p eop end %%Page: 24 36 TeXDict begin 24 35 bop 150 -116 a FI(Chapter)30 b(5:)41 b(Dra)m(wing)31 b(and)f(Lab)s(eling)g(P)m(oin)m(ts)1882 @@ -9839,7 +9847,7 @@ b(Dra)m(wing)31 b(and)f(Lab)s(eling)g(P)m(oin)m(ts)1882 b(25)275 299 y(F)-8 b(or)32 b(complete)h(descriptions)e(of)h Fz(draw\(\))e FI(and)h Fz(undraw\(\))p FI(,)f(see)i(Section)g(20.18)i -([P)m(oin)m(t)f(Reference;)150 408 y(Dra)m(wing],)f(page)f(134.)150 +([P)m(oin)m(t)f(Reference;)150 408 y(Dra)m(wing],)f(page)f(135.)150 709 y FH(5.2)68 b(Lab)t(eling)46 b(P)l(oin)l(ts)150 970 y FI(The)25 b(lab)s(els)g(in)g(the)g(previous)g(examples)g(w)m(ere)h (made)f(b)m(y)g(using)f(the)i(functions)e Fz(Point::label\(\))e @@ -9855,26 +9863,26 @@ b(Please)30 b(note)f(that)h(double)e(bac)m(kslashes)150 1560 y(m)m(ust)d(b)s(e)f(used,)i(where)e(a)h(single)h(bac)m(kslash)g(w) m(ould)e(su\016ce)h(in)g(a)g(\014le)g(of)g(MetaP)m(ost)j(co)s(de,)e -(for)f(example,)150 1670 y(for)30 b Fz(\\)p FI(T)-8 b(eX)31 -b(con)m(trol)h(sequences.)41 b(Alternativ)m(ely)-8 b(,)33 -b(a)e Fz(short)e FI(argumen)m(t)i(can)f(b)s(e)g(used)g(for)g(the)g(lab) -s(el.)275 1821 y(The)i(p)s(osition)h(argumen)m(t)h(is)f(optional,)i -(with)d Fz("top")g FI(as)h(the)g(default.)49 b(If)33 -b(the)g(empt)m(y)g Fz(string)f("")150 1931 y FI(is)k(used,)h(the)f(lab) -s(el)g(will)g(cen)m(tered)h(ab)s(out)f(the)g Fz(Point)e -FI(itself.)58 b(This)35 b(will)h(usually)g(only)g(mak)m(e)h(sense)150 -2041 y(for)g Fz(label\(\))p FI(,)h(b)s(ecause)f(it)h(w)m(ould)g -(otherwise)g(in)m(terfere)g(with)f(the)h(dot.)62 b(V)-8 -b(alid)39 b(argumen)m(ts)e(for)h(the)150 2150 y(p)s(osition)33 -b(are)h(the)g(same)f(as)h(in)f(MetaP)m(ost:)49 b Fz("top")p -FI(,)33 b Fz("bot")e FI(\(b)s(ottom\),)36 b Fz("lft")c -FI(\(left\),)j Fz("rt")d FI(\(righ)m(t\),)150 2260 y -Fz("ulft")d FI(\(upp)s(er)f(left\),)k Fz("urt")d FI(\(upp)s(er)g(righ)m -(t\),)i Fz("llft")e FI(\(lo)m(w)m(er)j(left\),)g(and)d -Fz("lrt")g FI(\(lo)m(w)m(er)j(righ)m(t\).)390 2411 y -Fz(Point)46 b(p0;)390 2521 y(Point)g(p1\(1\);)390 2631 -y(Point)g(p2\(2\);)390 2740 y(Point)g(p3\(p0\);)390 2850 -y(Point)g(p4\(p1\);)390 2959 y(Point)g(p5\(p2\);)390 +(for)f(example,)150 1670 y(for)30 b(T)340 1689 y(E)390 +1670 y(X)h(con)m(trol)g(sequences.)41 b(Alternativ)m(ely)-8 +b(,)34 b(a)d Fz(short)e FI(argumen)m(t)h(can)h(b)s(e)f(used)f(for)h +(the)h(lab)s(el.)275 1821 y(The)h(p)s(osition)h(argumen)m(t)h(is)f +(optional,)i(with)d Fz("top")g FI(as)h(the)g(default.)49 +b(If)33 b(the)g(empt)m(y)g Fz(string)f("")150 1931 y +FI(is)k(used,)h(the)f(lab)s(el)g(will)g(cen)m(tered)h(ab)s(out)f(the)g +Fz(Point)e FI(itself.)58 b(This)35 b(will)h(usually)g(only)g(mak)m(e)h +(sense)150 2041 y(for)g Fz(label\(\))p FI(,)h(b)s(ecause)f(it)h(w)m +(ould)g(otherwise)g(in)m(terfere)g(with)f(the)h(dot.)62 +b(V)-8 b(alid)39 b(argumen)m(ts)e(for)h(the)150 2150 +y(p)s(osition)33 b(are)h(the)g(same)f(as)h(in)f(MetaP)m(ost:)49 +b Fz("top")p FI(,)33 b Fz("bot")e FI(\(b)s(ottom\),)36 +b Fz("lft")c FI(\(left\),)j Fz("rt")d FI(\(righ)m(t\),)150 +2260 y Fz("ulft")d FI(\(upp)s(er)f(left\),)k Fz("urt")d +FI(\(upp)s(er)g(righ)m(t\),)i Fz("llft")e FI(\(lo)m(w)m(er)j(left\),)g +(and)d Fz("lrt")g FI(\(lo)m(w)m(er)j(righ)m(t\).)390 +2411 y Fz(Point)46 b(p0;)390 2521 y(Point)g(p1\(1\);)390 +2631 y(Point)g(p2\(2\);)390 2740 y(Point)g(p3\(p0\);)390 +2850 y(Point)g(p4\(p1\);)390 2959 y(Point)g(p5\(p2\);)390 3069 y(p3)h(*=)g(p4)h(*=)f(p5.shift\(0,)d(1\);)390 3178 y(p0.draw\(p1\);)390 3288 y(p1.draw\(p2\);)390 3398 y(p2.draw\(p5\);) 390 3507 y(p5.draw\(p4\);)390 3617 y(p4.draw\(p3\);)390 @@ -9958,7 +9966,7 @@ b(26)275 299 y(F)-8 b(or)95 b(complete)h(descriptions)e(of)h Fz(Point::label\(\))90 b FI(and)k Fz(Point::dotlabel\(\))p FI(,)106 b(see)150 408 y(Section)31 b(20.19)i([P)m(oin)m(ts;)f(Lab)s -(elling],)f(page)g(137.)p eop end +(elling],)f(page)g(138.)p eop end %%Page: 27 39 TeXDict begin 27 38 bop 150 -116 a FI(Chapter)30 b(6:)h(P)m(aths)2828 b(27)150 299 y FE(6)80 b(P)l(aths)150 619 y Fz(Points)24 @@ -10065,7 +10073,7 @@ (them)f(that)h(cause)h(them)e(to)h(b)s(ecome)g(non-linear.)40 b(Linear)150 1367 y Fz(Paths)29 b FI(can)i(b)s(e)e(used)h(to)h(\014nd)e Ft(in)m(tersections)p FI(.)42 b(See)31 b(Section)g(24.17)h([P)m(ath)g -(In)m(tersections],)g(page)f(188.)275 1506 y Fz(Paths)d +(In)m(tersections],)g(page)f(189.)275 1506 y Fz(Paths)d FI(can)h(b)s(e)g(declared)h(and)f(initialized)j(using)d(a)h(single)g (connector)h(and)d(an)i(arbitrary)f(n)m(um)m(b)s(er)150 1616 y(of)38 b Fz(Points)p FI(.)61 b(The)37 b(\014rst)g(argumen)m(t)h @@ -10190,11 +10198,11 @@ TeXDict begin 29 40 bop 150 -116 a FI(Chapter)30 b(6:)41 b(P)m(aths)2818 b(29)390 299 y Fz(p[0].set\(-2\);)390 408 y(p[1].set\(2\);)390 518 y(p[2].set\(0,)45 b(0,)i(-2\);)390 -628 y(p[3].set\(0,)e(0,)i(2\);)390 737 y(p[4])g(=)g(mediate\(p[0],)d -(p[2]\);)390 847 y(p[5])j(=)g(mediate\(p[2],)d(p[1]\);)390 -956 y(p[6])j(=)g(mediate\(p[1],)d(p[3]\);)390 1066 y(p[7])j(=)g -(mediate\(p[3],)d(p[0]\);)390 1176 y(p[4])j(*=)g(p[5])f(*=)i(p[6])e(*=) -h(p[7].shift\(0,)e(1\);)390 1285 y(Path)i(pa\(&p[0],)e("..",)h(&p[4],)g +628 y(p[3].set\(0,)e(0,)i(2\);)390 737 y(p[4])g(=)g +(p[0].mediate\(p[2]\);)390 847 y(p[5])g(=)g(p[2].mediate\(p[1]\);)390 +956 y(p[6])g(=)g(p[1].mediate\(p[3]\);)390 1066 y(p[7])g(=)g +(p[3].mediate\(p[0]\);)390 1176 y(p[4])g(*=)g(p[5])f(*=)i(p[6])e(*=)h +(p[7].shift\(0,)e(1\);)390 1285 y(Path)i(pa\(&p[0],)e("..",)h(&p[4],)g ("...",)g(&p[2],)772 1395 y("..",)g(&p[5],)g("...",)g(&p[1],)g("..",)h (&p[6],)772 1504 y("...",)f(&p[3],)g("..",)g(&p[7],)g("...",)h(0\);)390 1614 y(pa.draw\(\);)1154 3310 y @beginspecial -292 @llx @@ -10974,7 +10982,7 @@ %%EndDocument @endspecial 1748 3325 a FI(Figure)31 b(19.)275 3460 y(See)40 b(Section)i(24.12)h([P)m(aths;)j(Dra)m(wing)c(and)e(Filling],) -45 b(page)d(170,)i(for)d(more)g(information,)j(and)150 +45 b(page)d(171,)i(for)d(more)g(information,)j(and)150 3569 y(complete)32 b(descriptions)e(of)h(the)f(functions.)p eop end %%Page: 35 47 @@ -11008,9 +11016,9 @@ y(w)m(a)m(y)-8 b(,)39 b(with)d(a)g(few)g(minor)f(di\013erences,)j(to)f (accoun)m(t)g(for)f(their)g(di\013eren)m(t)g(natures.)58 b(See)36 b(Chapter)f(25)150 1892 y([P)m(olygon)42 b(Reference],)j(page) -c(189,)k(Chapter)40 b(27)i([Rectangle)h(Reference],)i(page)c(201,)k -(Chapter)40 b(29)150 2002 y([Ellipse)g(Reference],)i(page)e(211,)i(and) -d(Chapter)f(30)i([Circle)g(Reference],)i(page)e(227,)j(for)38 +c(190,)k(Chapter)40 b(27)i([Rectangle)h(Reference],)i(page)c(202,)k +(Chapter)40 b(29)150 2002 y([Ellipse)g(Reference],)i(page)e(213,)i(and) +d(Chapter)f(30)i([Circle)g(Reference],)i(page)e(229,)j(for)38 b(complete)150 2112 y(information)31 b(on)f(these)h(classes.)150 2381 y FH(7.1)68 b(Regular)46 b(P)l(olygons)150 2630 y FI(The)24 b(follo)m(wing)i(example)f(creates)h(a)f(p)s(en)m(tagon)h @@ -15319,9 +15327,9 @@ %%EndDocument @endspecial 1748 4855 a FI(Figure)31 b(50.)275 5011 -y(The)36 b FB(C)532 5003 y FA(+)-8 b(+)705 5011 y FI(co)s(de)38 -b(for)f(Fig.)i(50)f(starts)g(with)f(the)h(command)f Fz(beginfig\(1\))d -FI(and)j(ends)g(with)g(the)150 5121 y(command)44 b Fz(endfig\(1\))p +y(The)39 b FB(C)535 5003 y FA(+)-8 b(+)673 5011 y FI(co)s(de)40 +b(for)g(Fig.)i(50)f(starts)f(with)g(the)g(command)g Fz(beginfig\(1\))d +FI(and)j(ends)f(with)h(the)150 5121 y(command)k Fz(endfig\(1\))p FI(.)79 b(They)44 b(simply)g(write)g(\\)p Fz(beginfig\()p FG(h)p FC(ar)-5 b(g)8 b FG(i)p Fz(\))p FI(")44 b(and)f(\\)p Fz(endfig\(\))p FI(")g(to)i Fz(out_)150 5230 y(stream)p @@ -15431,8 +15439,8 @@ 1724 y(for)h(\(i)g(=)h(0;)f(i)g(<)h(4;)f(++i\))485 1833 y(p[i])g(=)h(r0.get_point\(i\);)390 1943 y(p[4])f(=)g (r0.get_mid_point\(0\);)390 2052 y(p[5])g(=)g(r0.get_mid_point\(2\);) -390 2162 y(p[6])g(=)g(mediate\(p[4],)d(p[5],)j(2/3.0\);)390 -2271 y(Circle)f(z2\(p[6],)g(2,)h(90,)g(90,)g(0,)g(16\);)390 +390 2162 y(p[6])g(=)g(p[4].mediate\(p[5],)c(2/3.0\);)390 +2271 y(Circle)j(z2\(p[6],)g(2,)h(90,)g(90,)g(0,)g(16\);)390 2381 y(z2.draw\(\);)390 2491 y(Circle)f(z3)h(=)h(z2;)390 2600 y(z3.shift\(3\);)390 2710 y(z3.draw\(\);)390 2819 y(j)f(=)h(z2.get_size\(\);)390 2929 y(for)f(\(i)g(=)h(0;)f(i)g(<)h(8;)f @@ -16286,8 +16294,8 @@ i(the)e(ob)5 b(jects)38 b(on)f(the)h Fz(Picture)d FI(are)j(copied)g(to) g(their)p 150 5241 1200 4 v 199 5308 a FA(1)275 5340 y Fr(Namespaces)26 b(are)g(describ)r(ed)g(in)g(Stroustrup,)f -Fm(The)h FB(C)1890 5332 y FA(+)-8 b(+)2039 5340 y Fm(Programming)27 -b(Language)p Fr(,)g(Chapter)f(8.)p eop end +Fm(The)h FB(C)1890 5332 y FA(+)-8 b(+)2013 5340 y Fm(Programming)28 +b(Language)p Fr(,)f(Chapter)f(8.)p eop end %%Page: 58 70 TeXDict begin 58 69 bop 150 -116 a FI(Chapter)30 b(9:)41 b(Pictures)2719 b(58)150 299 y Fz(projective_coordinates)p @@ -16670,18 +16678,18 @@ (could)g(b)s(e)g(done)g(b)m(y)g(hand.)41 b(The)31 b(p)s(oin)m(t)150 4551 y(of)e(view,)h(or)f Ft(fo)s(cus)j FI(is)d(lo)s(cated)h(6cm)f(from) g(the)g(picture)g(plane,)g(and)f(4cm)i(ab)s(o)m(v)m(e)g(the)f(ground)f -(\(or)h(x-z\))150 4660 y(plane)g(at)h(the)f(p)s(oin)m(t)g(\(0,)h(4,)g -(-6\).)42 b(The)28 b(rectangle)j Fu(R)f FI(lies)f(in)g(the)g(ground)f -(plane,)i(with)f(the)g(p)s(oin)m(t)g Fu(r)3603 4674 y -FA(0)3669 4660 y FI(at)150 4770 y(\(2,)g(0,)h(1.5\).)41 -b(The)27 b(righ)m(t)i(side)f(of)g Fu(R)q FI(,)h(with)e(length)i(=)c -(2cm)j(lies)h(at)g(an)e(angle)i(of)g(40)f(to)h(the)f(ground)f(line,)150 -4879 y(whic)m(h)k(corresp)s(onds)f(to)j(the)e(in)m(tersection)j(line)e -(of)f(the)h(ground)e(plane)i(with)f(the)h(picture)f(plane,)i(and)150 -4989 y(the)e(left)g(side,)f(with)g(length)h(=)25 b(5cm)q(,)30 -b(at)h(an)g(angle)g(of)f(90)2139 4956 y Fi(\016)2199 -4989 y FG(\000)20 b FI(40)2380 4956 y Fi(\016)2444 4989 -y FI(=)25 b(50)2630 4956 y Fi(\016)2699 4989 y FI(to)31 +(\(or)h(x-z\))150 4660 y(plane)35 b(at)g(the)g(p)s(oin)m(t)f(\(0,)j(4,) +f(-6\).)55 b(The)34 b(rectangle)i Fu(R)f FI(lies)h(in)e(the)h(ground)e +(plane,)j(with)e(the)h(p)s(oin)m(t)g Fu(r)3713 4674 y +FA(0)150 4770 y FI(at)d(\(2,)g(0,)h(1.5\).)44 b(The)31 +b(righ)m(t)h(side)f(of)h Fu(R)q FI(,)f(with)g(length)h(=)f(2)15 +b(cm)32 b(lies)g(at)g(an)f(angle)h(of)f(40)i(to)f(the)f(ground)150 +4879 y(line,)g(whic)m(h)f(corresp)s(onds)e(to)j(the)f(in)m(tersection)i +(line)f(of)f(the)g(ground)f(plane)h(with)g(the)h(picture)f(plane,)150 +4989 y(and)g(the)g(left)h(side,)g(with)f(length)h(=)f(5)15 +b(cm,)31 b(at)g(an)g(angle)g(of)f(90)2336 4956 y Fi(\016)2396 +4989 y FG(\000)20 b FI(40)2577 4956 y Fi(\016)2641 4989 +y FI(=)25 b(50)2827 4956 y Fi(\016)2896 4989 y FI(to)31 b(the)g(ground)e(line.)p 150 5066 1200 4 v 199 5134 a FA(2)275 5166 y Fr(There)d(are)h(man)n(y)e(b)r(o)r(oks)h(on)h(linear)f (p)r(ersp)r(ectiv)n(e)h(for)f(artists.)37 b(I'v)n(e)26 @@ -17259,22 +17267,22 @@ e(0)p Fu(:)p FI(5)1011 3076 y Fi(\016)1085 3109 y FI(v)-5 b(anishing)35 b(p)s(oin)m(t)f(is)h(nearly)g(5)2164 3073 y FA(3)p 2165 3088 34 4 v 2165 3140 a(4)2243 3109 y FI(meters)g(a)m(w)m -(a)m(y)i(from)d(the)h(CV,)g(and)f(a)i(line)150 3218 y(receding)24 -b(to)g(it)h(will)f(b)s(e)f(v)m(ery)h(nearly)f(horizon)m(tal.)41 -b(Ho)m(w)m(ev)m(er,)27 b(the)d(distance)g(from)f(the)h(fo)s(cus)f(to)h -(the)g(CV)150 3328 y(is)i(only)g(5cm.)40 b(As)25 b(this)h(distance)h -(increases,)g(the)f(distance)h(from)e(the)h(CV)g(to)g(a)h(giv)m(en)f(v) --5 b(anishing)26 b(p)s(oin)m(t)150 3437 y(increases)34 -b(prop)s(ortionately)-8 b(.)52 b(If)33 b(the)h(distance)g(is)g(30cm,)i -(a)e(more)g(reasonable)g(v)-5 b(alue)34 b(for)g(a)g(dra)m(wing,)150 -3547 y(then)29 b(the)h(x-co)s(ordinate)g(of)g(VP)f(10)1388 -3514 y Fi(\016)1456 3547 y FI(is)h(170.138cm,)j(that)d(of)f(VP)g(5)2518 -3514 y Fi(\016)2586 3547 y FI(is)h(342.902cm,)j(and)28 -b(that)i(of)g(VP)150 3657 y(0)p Fu(:)p FI(5)265 3624 -y Fi(\016)330 3657 y FI(is)25 b(3437.66cm!)42 b(This)25 -b(is)g(the)h(reason)g(wh)m(y)e(p)s(ersp)s(ectiv)m(e)i(dra)m(wings)f -(done)g(b)m(y)h(hand)e(rarely)i(con)m(tain)150 3766 y(lines)31 -b(receding)f(to)i(the)e(horizon)h(at)g(lo)m(w)g(angles.)275 +(a)m(y)i(from)d(the)h(CV,)g(and)f(a)i(line)150 3218 y(receding)e(to)h +(it)g(will)f(b)s(e)f(v)m(ery)i(nearly)f(horizon)m(tal.)53 +b(Ho)m(w)m(ev)m(er,)37 b(the)d(distance)h(from)e(the)i(fo)s(cus)e(to)i +(the)150 3328 y(CV)29 b(is)h(only)g(5)16 b(cm.)40 b(As)30 +b(this)f(distance)i(increases,)f(the)g(distance)h(from)e(the)h(CV)f(to) +i(a)f(giv)m(en)g(v)-5 b(anishing)150 3437 y(p)s(oin)m(t)41 +b(increases)i(prop)s(ortionately)-8 b(.)75 b(If)41 b(the)g(distance)h +(is)g(30)16 b(cm,)45 b(a)c(more)h(reasonable)g(v)-5 b(alue)42 +b(for)g(a)150 3547 y(dra)m(wing,)34 b(then)f(the)g(x-co)s(ordinate)h +(of)f(VP)g(10)1781 3514 y Fi(\016)1853 3547 y FI(is)g(170.138)19 +b(cm,)34 b(that)f(of)h(VP)f(5)2950 3514 y Fi(\016)3021 +3547 y FI(is)g(342.902)18 b(cm,)35 b(and)150 3657 y(that)e(of)g(VP)g(0) +p Fu(:)p FI(5)733 3624 y Fi(\016)805 3657 y FI(is)f(3437.66)19 +b(cm!)47 b(This)32 b(is)h(the)g(reason)g(wh)m(y)f(p)s(ersp)s(ectiv)m(e) +h(dra)m(wings)f(done)g(b)m(y)h(hand)150 3766 y(rarely)e(con)m(tain)g +(lines)g(receding)g(to)g(the)f(horizon)h(at)g(lo)m(w)g(angles.)275 3901 y(This)k(problem)h(do)s(esn't)g(arise)h(when)e(the)i(p)s(ersp)s (ectiv)m(e)f(transformation)h(is)f(used.)58 b(In)35 b(this)i(case,)150 4010 y(an)m(y)31 b(angle)g(can)g(b)s(e)e(calculated)k(as)d(easily)i(as) @@ -17317,7 +17325,7 @@ b(Pictures)2719 b(62)390 299 y Fz(r.draw\(\);)390 518 y(r.set\(center,)44 b(2,)j(5,)h(0,)f(0,)g(5\);)390 628 y(r.draw\(\);)390 737 y(current_picture.output\(\))o(;)-262 -1692 y @beginspecial -71 @llx -124 @lly 460 @urx -16 +1690 y @beginspecial -71 @llx -124 @lly 460 @urx -16 @ury 5310 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.59 %!PS @@ -17377,65 +17385,66 @@ %%EOF %%EndDocument - @endspecial 1748 1802 a FI(Figure)31 b(59.)150 2061 -y FH(9.2)68 b(F)-11 b(o)t(cuses)150 2306 y FI(The)34 + @endspecial 1748 1799 a FI(Figure)31 b(59.)150 2051 +y FH(9.2)68 b(F)-11 b(o)t(cuses)150 2294 y FI(The)34 b(p)s(ersp)s(ectiv)m(e)h(transformation)g(requires)g(a)g(fo)s(cus;)i (as)e(a)g(consequence,)i(outputting)e(a)g Fz(Picture)150 -2416 y FI(requires)c(an)h(ob)5 b(ject)33 b(of)f(class)h +2403 y FI(requires)c(an)h(ob)5 b(ject)33 b(of)f(class)h Fz(Focus)p FI(.)44 b Fz(Picture::output\(\))27 b FI(tak)m(es)33 -b(an)f(optional)h(p)s(oin)m(ter-to-)p Fz(Focus)150 2525 +b(an)f(optional)h(p)s(oin)m(ter-to-)p Fz(Focus)150 2513 y FI(argumen)m(t,)28 b(whic)m(h)f(is)g(0)g(b)m(y)g(default.)40 b(If)26 b(the)h(default)g(is)g(used,)g(\(or)g(0)h(is)e(passed)h -(explicitly\),)j(the)d(global)150 2635 y(v)-5 b(ariable)45 +(explicitly\),)j(the)d(global)150 2623 y(v)-5 b(ariable)45 b Fz(default_focus)c FI(is)j(used.)81 b(See)45 b(Section)g(21.2)h([F)-8 b(o)s(cus)45 b(Reference;)52 b(Global)45 b(V)-8 b(ariables],)150 -2744 y(page)31 b(142.)275 2880 y(A)44 b Fz(Focus)f FI(can)h(b)s(e)g +2732 y(page)31 b(143.)275 2865 y(A)44 b Fz(Focus)f FI(can)h(b)s(e)g (though)m(t)h(of)f(as)g(the)h(observ)m(er)f(of)h(a)f(scene,)49 b(or)44 b(a)g(camera.)84 b(It)44 b(con)m(tains)i(a)150 -2989 y Fz(Point)29 b(position)h FI(for)i(its)g(lo)s(cation)i(with)d +2975 y Fz(Point)29 b(position)h FI(for)i(its)g(lo)s(cation)i(with)d (resp)s(ect)h(to)h(3DLDF's)h(co)s(ordinate)f(system,)g(and)e(a)h -Fz(Point)150 3099 y(direction)p FI(,)g(sp)s(ecifying)h(the)g(direction) +Fz(Point)150 3084 y(direction)p FI(,)g(sp)s(ecifying)h(the)g(direction) h(where)f(the)g(observ)m(er)g(is)h(lo)s(oking,)g(or)g(where)e(the)i -(camera)g(is)150 3208 y(p)s(oin)m(ted.)40 b(The)27 b +(camera)g(is)150 3194 y(p)s(oin)m(ted.)40 b(The)27 b Fz(Focus)f FI(can)i(b)s(e)f(rotated)i(freely)f(ab)s(out)g(the)f(line) -2389 3155 y FG(\000)-41 b(\000)e(!)2389 3208 y Fu(P)13 +2389 3140 y FG(\000)-41 b(\000)e(!)2389 3194 y Fu(P)13 b(D)s FI(,)29 b(where)e Fu(P)41 b FI(stands)27 b(for)g -Fz(position)150 3318 y FI(and)36 b Fu(D)j FI(for)e Fz(direction)p +Fz(position)150 3303 y FI(and)36 b Fu(D)j FI(for)e Fz(direction)p FI(,)f(so)h(a)g Fz(Focus)e FI(con)m(tains)j(a)f(third)f Fz(Point)29 b(up)p FI(,)38 b(to)f(indicate)h(whic)m(h)e(direction)150 -3428 y(will)31 b(b)s(e)e(\\up")i(on)f(the)h(pro)5 b(jection,)31 +3413 y(will)31 b(b)s(e)e(\\up")i(on)f(the)h(pro)5 b(jection,)31 b(when)e(a)i Fz(Picture)d FI(is)j(pro)5 b(jected.)275 -3563 y(The)23 b(pro)5 b(jection)24 b(plane)g Fu(q)j FI(will)d(alw)m(a)m -(ys)h(b)s(e)e(p)s(erp)s(endicular)f(to)2425 3509 y FG(\000)-42 -b(\000)f(!)2425 3563 y Fu(P)13 b(D)r FI(,)26 b(or)d(to)i(put)e(it)h -(another)g(w)m(a)m(y)-8 b(,)3601 3509 y FG(\000)-42 b(\000)g(!)3601 -3563 y Fu(P)13 b(D)150 3672 y FI(is)26 b(normal)h(to)g -Fu(q)s FI(.)39 b(Unlik)m(e)27 b(the)g(traditional)h(p)s(ersp)s(ectiv)m -(e)e(construction,)i(where)e(the)h(distance)g(from)f(the)150 -3782 y(fo)s(cus)33 b(to)h(the)f(cen)m(ter)h(of)f(vision)h(\014xes)f(b)s -(oth)f(the)i(lo)s(cation)g(of)g(the)f(fo)s(cus)g(in)f(space,)j(and)e -(its)g(distance)150 3892 y(to)d(the)f(picture)g(plane,)959 -3859 y FA(4)1026 3892 y FI(these)h(t)m(w)m(o)g(parameters)g(can)f(b)s -(e)g(set)g(indep)s(enden)m(tly)f(when)g(the)i(p)s(ersp)s(ectiv)m(e)150 -4001 y(transformation)c(is)f(used.)38 b(The)25 b(distance)h(from)f(a)h -Fz(Focus)e FI(to)i(the)f(picture)g(plane)h(is)f(stored)h(in)f(the)g -(data)150 4111 y(mem)m(b)s(er)30 b Fz(distance)p FI(,)e(of)j(t)m(yp)s -(e)f Fz(real)p FI(.)275 4246 y(A)e Fz(Focus)g FI(can)g(b)s(e)g -(declared)i(using)e(t)m(w)m(o)i Fz(Point)d FI(argumen)m(ts)i(for)f -Fz(position)f FI(and)h Fz(direction)p FI(,)f(and)150 -4356 y(a)k Fz(real)e FI(argumen)m(t)i(for)f Fz(distance)p -FI(,)e(in)i(that)h(order.)390 4491 y Fz(Point)46 b(pos\(0,)g(5,)i -(-10\);)390 4601 y(Point)e(dir\(0,)g(5,)i(10\);)390 4710 -y(Focus)e(f\(pos,)g(dir,)h(10\);)390 4929 y(Point)f(center\(2,)g(0,)h -(3\);)390 5039 y(Rectangle)e(r\(center,)h(3,)h(3\);)390 -5149 y(r.draw\(\);)p 150 5241 1200 4 v 199 5308 a FA(4)275 -5340 y Fr(I)25 b(b)r(eliev)n(e)h(this)g(to)f(b)r(e)h(true,)g(but)e(I'm) -i(not)g(100\045)g(certain.)p eop end +3546 y(The)34 b(pro)5 b(jection)37 b(plane)e Fu(q)j FI(will)e(alw)m(a)m +(ys)h(b)s(e)e(p)s(erp)s(endicular)e(to)2529 3492 y FG(\000)-42 +b(\000)g(!)2529 3546 y Fu(P)13 b(D)s FI(,)37 b(or)e(to)h(put)f(it)h +(another)f(w)m(a)m(y)-8 b(,)150 3601 y FG(\000)-42 b(\000)g(!)150 +3655 y Fu(P)13 b(D)33 b FI(is)d(normal)h(to)g Fu(q)s +FI(.)275 3788 y(Unlik)m(e)26 b(the)g(traditional)i(p)s(ersp)s(ectiv)m +(e)e(construction,)h(where)f(the)g(distance)g(from)g(the)g(fo)s(cus)f +(to)i(the)150 3898 y(cen)m(ter)j(of)f(vision)g(\014xes)f(b)s(oth)g(the) +h(lo)s(cation)h(of)f(the)g(fo)s(cus)g(in)f(space,)i(and)e(its)h +(distance)h(to)f(the)g(picture)150 4007 y(plane,)387 +3974 y FA(4)450 4007 y FI(these)d(t)m(w)m(o)g(parameters)f(can)g(b)s(e) +g(set)g(indep)s(enden)m(tly)f(when)g(the)h(p)s(ersp)s(ectiv)m(e)g +(transformation)150 4117 y(is)41 b(used.)72 b(The)41 +b(distance)h(from)e(a)i Fz(Focus)e FI(to)i(the)f(picture)g(plane)g(is)g +(stored)h(in)e(the)i(data)g(mem)m(b)s(er)150 4226 y Fz(distance)p +FI(,)28 b(of)j(t)m(yp)s(e)f Fz(real)p FI(.)275 4359 y(A)e +Fz(Focus)g FI(can)g(b)s(e)g(declared)i(using)e(t)m(w)m(o)i +Fz(Point)d FI(argumen)m(ts)i(for)f Fz(position)f FI(and)h +Fz(direction)p FI(,)f(and)150 4469 y(a)k Fz(real)e FI(argumen)m(t)i +(for)f Fz(distance)p FI(,)e(in)i(that)h(order.)390 4602 +y Fz(Point)46 b(pos\(0,)g(5,)i(-10\);)390 4711 y(Point)e(dir\(0,)g(5,)i +(10\);)390 4821 y(Focus)e(f\(pos,)g(dir,)h(10\);)390 +5040 y(Point)f(center\(2,)g(0,)h(3\);)390 5149 y(Rectangle)e +(r\(center,)h(3,)h(3\);)p 150 5241 1200 4 v 199 5308 +a FA(4)275 5340 y Fr(I)25 b(b)r(eliev)n(e)h(this)g(to)f(b)r(e)h(true,)g +(but)e(I'm)i(not)g(100)p Fs(\\)p Fr(\045)h(certain.)p +eop end %%Page: 63 75 TeXDict begin 63 74 bop 150 -116 a FI(Chapter)30 b(9:)41 -b(Pictures)2719 b(63)390 299 y Fz(current_picture.output\(f)o(\);)1108 -1924 y @beginspecial -93 @llx -235 @lly 109 @urx -46 -@ury 2020 @rwi @setspecial +b(Pictures)2719 b(63)390 299 y Fz(r.draw\(\);)390 408 +y(current_picture.output\(f)o(\);)1108 2034 y @beginspecial +-93 @llx -235 @lly 109 @urx -46 @ury 2020 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.60 %!PS %%BoundingBox: -93 -235 109 -46 @@ -17498,18 +17507,18 @@ %%EOF %%EndDocument - @endspecial 1748 2034 a FI(Figure)31 b(60.)275 2165 + @endspecial 1748 2144 a FI(Figure)31 b(60.)275 2275 y(The)j(\\up")h(direction)h(is)f(calculated)i(b)m(y)e(the)g Fz(Focus)f FI(constructor)h(automatically)-8 b(.)58 b(An)35 -b(optional)150 2275 y(argumen)m(t)c(can)f(b)s(e)g(used)g(to)h(sp)s +b(optional)150 2384 y(argumen)m(t)c(can)f(b)s(e)g(used)g(to)h(sp)s (ecify)f(the)g(angle)i(b)m(y)e(whic)m(h)g(to)h(rotate)h(the)f -Fz(Focus)e FI(ab)s(out)3312 2221 y FG(\000)-42 b(\000)g(!)3312 -2275 y Fu(P)13 b(D)s FI(.)390 2405 y Fz(Point)46 b(pos\(0,)g(5,)i -(-10\);)390 2515 y(Point)e(dir\(0,)g(5,)i(10\);)390 2625 -y(Focus)e(f\(pos,)g(dir,)h(10,)g(30\);)390 2734 y(Point)f(center\(2,)g -(0,)h(3\);)390 2844 y(Rectangle)e(r\(center,)h(3,)h(3\);)390 -2953 y(r.draw\(\);)390 3063 y(current_picture.output\(f)o(\);)1158 -4530 y @beginspecial -155 @llx -206 @lly 35 @urx -36 +Fz(Focus)e FI(ab)s(out)3312 2330 y FG(\000)-42 b(\000)g(!)3312 +2384 y Fu(P)13 b(D)s FI(.)390 2515 y Fz(Point)46 b(pos\(0,)g(5,)i +(-10\);)390 2625 y(Point)e(dir\(0,)g(5,)i(10\);)390 2734 +y(Focus)e(f\(pos,)g(dir,)h(10,)g(30\);)390 2844 y(Point)f(center\(2,)g +(0,)h(3\);)390 2953 y(Rectangle)e(r\(center,)h(3,)h(3\);)390 +3063 y(r.draw\(\);)390 3173 y(current_picture.output\(f)o(\);)1158 +4640 y @beginspecial -155 @llx -206 @lly 35 @urx -36 @ury 1900 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.61 %!PS @@ -17569,21 +17578,21 @@ %%EOF %%EndDocument - @endspecial 1748 4640 a FI(Figure)31 b(61.)275 4771 + @endspecial 1748 4749 a FI(Figure)31 b(61.)275 4880 y(Alternativ)m(ely)-8 b(,)29 b(a)d Fz(Focus)f FI(can)h(b)s(e)f (declared)h(using)f(three)h Fz(real)e FI(argumen)m(ts)i(eac)m(h)h(for)f -(the)g(x,)g(y)-8 b(,)28 b(and)150 4880 y(z-co)s(ordinates)f(of)f +(the)g(x,)g(y)-8 b(,)28 b(and)150 4990 y(z-co)s(ordinates)f(of)f Fz(position)d FI(and)i Fz(direction)p FI(,)f(resp)s(ectiv)m(ely)-8 b(,)29 b(follo)m(w)m(ed)e(b)m(y)e(the)h Fz(real)e FI(argumen)m(ts)i -(for)150 4990 y Fz(distance)i FI(and)i(the)g(angle)i(of)e(rotation:)390 -5121 y Fz(Focus)46 b(f\(3,)h(5,)g(-5,)g(0,)g(3,)g(0,)h(10,)f(10\);)390 -5230 y(Point)f(center\(2,)g(0,)h(3\);)390 5340 y(Rectangle)e -(r\(center,)h(3,)h(3\);)p eop end +(for)150 5099 y Fz(distance)i FI(and)i(the)g(angle)i(of)e(rotation:)390 +5230 y Fz(Focus)46 b(f\(3,)h(5,)g(-5,)g(0,)g(3,)g(0,)h(10,)f(10\);)390 +5340 y(Point)f(center\(2,)g(0,)h(3\);)p eop end %%Page: 64 76 TeXDict begin 64 75 bop 150 -116 a FI(Chapter)30 b(9:)41 -b(Pictures)2719 b(64)390 299 y Fz(r.draw\(\);)390 408 -y(current_picture.output\(f)o(\);)696 2202 y @beginspecial --174 @llx -4 @lly 127 @urx 205 @ury 3010 @rwi @setspecial +b(Pictures)2719 b(64)390 299 y Fz(Rectangle)45 b(r\(center,)h(3,)h +(3\);)390 408 y(r.draw\(\);)390 518 y(current_picture.output\(f)o(\);) +696 2312 y @beginspecial -174 @llx -4 @lly 127 @urx 205 +@ury 3010 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.62 %!PS %%BoundingBox: -174 -4 127 205 @@ -17642,50 +17651,50 @@ %%EOF %%EndDocument - @endspecial 1748 2312 a FI(Figure)31 b(62.)275 2445 + @endspecial 1748 2422 a FI(Figure)31 b(62.)275 2554 y Fz(Focuses)d FI(con)m(tain)k(t)m(w)m(o)f Fz(Transforms)p FI(,)d Fz(transform)g FI(and)i Fz(persp)p FI(.)39 b(A)30 b Fz(Focus)f FI(can)i(b)s(e)f(lo)s(cated)h(an)m(y-)150 -2554 y(where)36 b(in)g(3DLDF's)i(co)s(ordinate)f(system.)59 +2664 y(where)36 b(in)g(3DLDF's)i(co)s(ordinate)f(system.)59 b(Ho)m(w)m(ev)m(er,)40 b(p)s(erforming)35 b(the)h(p)s(ersp)s(ectiv)m(e) -h(pro)5 b(jection)37 b(is)150 2664 y(more)f(con)m(v)m(enien)m(t,)j(if)d +h(pro)5 b(jection)37 b(is)150 2773 y(more)f(con)m(v)m(enien)m(t,)j(if)d Fz(position)e FI(and)h Fz(direction)e FI(b)s(oth)i(lie)h(on)g(one)g(of) -g(the)g(ma)5 b(jor)36 b(axes,)i(and)d(the)150 2773 y(plane)e(of)g(pro)5 +g(the)g(ma)5 b(jor)36 b(axes,)i(and)d(the)150 2883 y(plane)e(of)g(pro)5 b(jection)33 b(corresp)s(onds)e(to)j(one)f(of)g(the)g(ma)5 b(jor)32 b(planes.)48 b Fz(transform)30 b FI(is)j(the)g(transforma-)150 -2883 y(tion)28 b(whic)m(h)f(w)m(ould)g(ha)m(v)m(e)h(this)f(a\013ect)i +2993 y(tion)28 b(whic)m(h)f(w)m(ould)g(ha)m(v)m(e)h(this)f(a\013ect)i (on)e(the)h Fz(Focus)p FI(,)f(and)f(is)i(calculated)h(b)m(y)e(the)g -Fz(Focus)f FI(constructor.)150 2993 y(When)k(a)g Fz(Picture)f +Fz(Focus)f FI(constructor.)150 3102 y(When)k(a)g Fz(Picture)f FI(is)h(output)g(using)f(that)i Fz(Focus)p FI(,)e Fz(transform)f FI(is)i(applied)g(to)h(all)g(of)f(the)h Fz(Shapes)d FI(on)150 -3102 y(the)c Fz(Picture)p FI(,)f(main)m(taining)h(the)g(relationship)g +3212 y(the)c Fz(Picture)p FI(,)f(main)m(taining)h(the)g(relationship)g (b)s(et)m(w)m(een)g(the)f Fz(Focus)f FI(and)h(the)h Fz(Shapes)p -FI(,)f(while)h(making)150 3212 y(it)32 b(easier)h(to)f(calculate)i(the) +FI(,)f(while)h(making)150 3321 y(it)32 b(easier)h(to)f(calculate)i(the) e(pro)5 b(jection.)45 b(The)31 b Fz(Focus)f FI(need)h(nev)m(er)h(b)s(e) -f(transformed)g(b)m(y)g Fz(transform)p FI(.)150 3321 +f(transformed)g(b)m(y)g Fz(transform)p FI(.)150 3431 y(The)f(actual)i(p)s(ersp)s(ectiv)m(e)e(transformation)h(is)f(stored)h -(in)f Fz(persp)p FI(.)275 3454 y Fz(Focuses)j FI(can)j(b)s(e)e(mo)m(v)m +(in)f Fz(persp)p FI(.)275 3564 y Fz(Focuses)j FI(can)j(b)s(e)e(mo)m(v)m (ed)j(b)m(y)e(using)g(one)g(of)h(the)f(setting)i(functions,)f(whic)m(h) -f(tak)m(e)i(the)f(same)g(ar-)150 3564 y(gumen)m(ts)j(as)g(the)g +f(tak)m(e)i(the)f(same)g(ar-)150 3673 y(gumen)m(ts)j(as)g(the)g (constructors.)67 b(Curren)m(tly)-8 b(,)41 b(there)e(are)g(no)g -(a\016ne)g(transformation)g(functions)f(for)150 3673 +(a\016ne)g(transformation)g(functions)f(for)150 3783 y(mo)m(ving)e Fz(Focuses)p FI(,)g(but)e(I)i(plan)f(to)h(add)f(them)h (so)s(on.)56 b(If)35 b(3DLDF)i(is)f(used)e(for)i(making)g(animation,) -150 3783 y(resetting)31 b(the)g Fz(Focus)e FI(can)i(b)s(e)e(used)h(to)h -(sim)m(ulate)h(camera)f(mo)m(v)m(emen)m(ts:)390 3915 -y Fz(beginfig\(1\);)390 4025 y(Point)46 b(pos\(2,)g(10,)h(3\);)390 -4134 y(Point)f(dir\(2,)g(-10,)h(3\);)390 4244 y(Focus)f(f;)390 -4354 y(Point)g(center\(2,)g(0,)h(3\);)390 4463 y(for)g(\(int)g(i)g(=)g -(0;)h(i)f(<)h(5;)f(++i\))485 4573 y({)581 4682 y(f.set\(pos,)e(dir,)i -(10,)f(\(15)h(*)h(i\)\);)581 4792 y(Rectangle)d(r\(center,)g(3,)j(3\);) -581 4902 y(r.draw\(\);)581 5011 y(current_picture.output\(f)o(\);)581 -5121 y(current_picture.clear\(\);)581 5230 y(pos.shift\(1,)c(1,)k(0\);) -581 5340 y(dir.rotate\(0,)c(0,)j(10\);)p eop end +150 3892 y(resetting)31 b(the)g Fz(Focus)e FI(can)i(b)s(e)e(used)h(to)h +(sim)m(ulate)h(camera)f(mo)m(v)m(emen)m(ts:)390 4025 +y Fz(beginfig\(1\);)390 4134 y(Point)46 b(pos\(2,)g(10,)h(3\);)390 +4244 y(Point)f(dir\(2,)g(-10,)h(3\);)390 4354 y(Focus)f(f;)390 +4463 y(Point)g(center\(2,)g(0,)h(3\);)390 4573 y(for)g(\(int)g(i)g(=)g +(0;)h(i)f(<)h(5;)f(++i\))485 4682 y({)581 4792 y(f.set\(pos,)e(dir,)i +(10,)f(\(15)h(*)h(i\)\);)581 4902 y(Rectangle)d(r\(center,)g(3,)j(3\);) +581 5011 y(r.draw\(\);)581 5121 y(current_picture.output\(f)o(\);)581 +5230 y(current_picture.clear\(\);)581 5340 y(pos.shift\(1,)c(1,)k(0\);) +p eop end %%Page: 65 77 TeXDict begin 65 76 bop 150 -116 a FI(Chapter)30 b(9:)41 -b(Pictures)2719 b(65)485 299 y Fz(})390 408 y(endfig\(1\);)1083 -2477 y @beginspecial -143 @llx -68 @lly 65 @urx 163 @ury -2080 @rwi @setspecial +b(Pictures)2719 b(65)581 299 y Fz(dir.rotate\(0,)44 b(0,)j(10\);)485 +408 y(})390 518 y(endfig\(1\);)1083 2559 y @beginspecial +-143 @llx -68 @lly 65 @urx 163 @ury 2080 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.63 %!PS %%BoundingBox: -143 -68 65 163 @@ -17742,24 +17751,24 @@ %%EOF %%EndDocument - @endspecial 1748 2587 a FI(Figure)31 b(63.)275 2810 + @endspecial 1748 2669 a FI(Figure)31 b(63.)275 2865 y(In)i(Fig.)i(63,)i Fz(current_picture)30 b FI(is)k(output)g(5)g(times) h(within)e(a)i(single)g(MetaP)m(ost)h(\014gure.)52 b(Since)150 -2920 y(the)30 b(\014le)g(passed)f(to)h(MetaP)m(ost)j(is)c(called)i(`)p +2975 y(the)30 b(\014le)g(passed)f(to)h(MetaP)m(ost)j(is)c(called)i(`)p Fz(persp.mp)p FI(',)e(the)g(\014le)h(of)g(Encapsulated)g(P)m(ostScript) -g(\(EPS\))150 3029 y(co)s(de)d(con)m(taining)i(Fig.)f(63)g(is)f(called) +g(\(EPS\))150 3084 y(co)s(de)d(con)m(taining)i(Fig.)f(63)g(is)f(called) h(`)p Fz(persp.1)p FI('.)38 b(T)-8 b(o)28 b(use)e(this)h(tec)m(hnique)h -(for)f(making)g(an)g(animation,)150 3139 y(it's)k(necessary)g(to)g +(for)f(making)g(an)g(animation,)150 3194 y(it's)k(necessary)g(to)g (output)f(the)g Fz(Picture)f FI(in)m(to)i(m)m(ultiple)g(MetaP)m(ost)i -(\014gures.)390 3363 y Fz(Point)46 b(pos\(2,)g(10,)h(3\);)390 -3472 y(Point)f(dir\(2,)g(-10,)h(3\);)390 3582 y(Focus)f(f;)390 -3692 y(Point)g(center\(2,)g(0,)h(3\);)390 3801 y(for)g(\(int)g(i)g(=)g -(0;)h(i)f(<)h(5;)f(++i\))485 3911 y({)581 4020 y(f.set\(pos,)e(dir,)i -(10,)f(\(15)h(*)h(i\)\);)581 4130 y(Rectangle)d(r\(center,)g(3,)j(3\);) -581 4240 y(r.draw\(\);)581 4349 y(beginfig\(i+1\);)581 -4459 y(current_picture.output\(f)o(\);)581 4568 y(endfig\(\);)581 -4678 y(current_picture.clear\(\);)581 4787 y(pos.shift\(1,)c(1,)k(0\);) -581 4897 y(dir.rotate\(0,)c(0,)j(10\);)485 5007 y(})275 +(\014gures.)390 3390 y Fz(Point)46 b(pos\(2,)g(10,)h(3\);)390 +3500 y(Point)f(dir\(2,)g(-10,)h(3\);)390 3609 y(Focus)f(f;)390 +3719 y(Point)g(center\(2,)g(0,)h(3\);)390 3829 y(for)g(\(int)g(i)g(=)g +(0;)h(i)f(<)h(5;)f(++i\))485 3938 y({)581 4048 y(f.set\(pos,)e(dir,)i +(10,)f(\(15)h(*)h(i\)\);)581 4157 y(Rectangle)d(r\(center,)g(3,)j(3\);) +581 4267 y(r.draw\(\);)581 4376 y(beginfig\(i+1\);)581 +4486 y(current_picture.output\(f)o(\);)581 4596 y(endfig\(\);)581 +4705 y(current_picture.clear\(\);)581 4815 y(pos.shift\(1,)c(1,)k(0\);) +581 4924 y(dir.rotate\(0,)c(0,)j(10\);)485 5034 y(})275 5230 y FI(No)m(w,)d(running)39 b(MetaP)m(ost)44 b(on)d(`)p Fz(persp.mp)p FI(')e(generates)j(the)g(EPS)e(\014les)h(`)p Fz(persp.1)p FI(',)h(`)p Fz(persp.2)p FI(',)150 5340 @@ -18024,12 +18033,12 @@ Fz(Shapes)p FI(:)67 b(They)44 b(can)h(b)s(e)f(sorted)h(according)h(to)f (the)g(maxi-)150 518 y(m)m(um)37 b(z-co)s(ordinate,)k(the)d(minim)m(um) f(z-co)s(ordinate,)42 b(the)c(mean)f(of)h(the)g(maxim)m(um)g(and)f -(minim)m(um)150 628 y(z-co)s(ordinate)e(\(\(max)24 b(+)e(min)o(\))p -Fu(=)p FI(2\),)37 b(and)c(not)h(sorted.)51 b(In)33 b(the)g(last)i -(case,)h(the)e Fz(Shapes)e FI(are)i(output)f(in)150 737 -y(the)c(order)e(of)i(the)f(dra)m(wing)h(and)e(\014lling)i(commands)f -(in)g(the)g(user)g(co)s(de.)40 b(The)28 b(z-co)s(ordinates)i(referred) -150 847 y(to)38 b(are)f(those)h(in)e Fz(projective_coordinates)p +(minim)m(um)150 628 y(z-co)s(ordinate)i(\(max)26 b(+)f(min\))p +Fu(=)p FI(2,)41 b(and)c(not)h(sorted.)64 b(In)37 b(the)h(last)h(case,)i +(the)d Fz(Shapes)e FI(are)j(output)e(in)150 737 y(the)29 +b(order)e(of)i(the)f(dra)m(wing)h(and)e(\014lling)i(commands)f(in)g +(the)g(user)g(co)s(de.)40 b(The)28 b(z-co)s(ordinates)i(referred)150 +847 y(to)38 b(are)f(those)h(in)e Fz(projective_coordinates)p FI(,)d(and)k(will)g(ha)m(v)m(e)h(b)s(een)e(calculated)j(for)e(a)h (particular)150 956 y Fz(Focus)p FI(.)275 1103 y(The)33 b(function)g Fz(Picture::output\(\))c FI(tak)m(es)35 @@ -18690,7 +18699,7 @@ FI(are)j(output,)h(as)e(long)h(as)g(they)f(lie)h(completely)h(within) 150 4266 y(the)39 b(b)s(oundaries)e(passed)i(as)g(argumen)m(ts)g(to)h Fz(Picture::output\(\))p FI(.)61 b(See)39 b(Section)h(19.8)g -([Pictures;)150 4376 y(Outputting],)k(page)d(105.)74 +([Pictures;)150 4376 y(Outputting],)k(page)d(106.)74 b(It)42 b(w)m(ould)e(b)s(e)h(more)g(e\016cien)m(t)i(to)e(suppress)e (output)i(for)g(them,)j(if)d(they)150 4486 y(are)g(completely)h(co)m(v) m(ered)g(b)m(y)e(other)h(ob)5 b(jects.)72 b(This)39 b(also)j(requires)e @@ -18726,7 +18735,7 @@ b(linear)g Fz(Paths)p FI(,)h(i.e.,)i Fz(Paths)c FI(for)g(whic)m(h)h Fz(Path::is_linear\(\))35 b FI(returns)j Fz(true)h FI(\(see)h(Sec-)330 1704 y(tion)47 b(24.15)h([P)m(ath)f(Reference;)55 b(Querying],)50 -b(page)d(184\).)89 b(In)46 b(addition,)k(the)d Fz(static)28 +b(page)d(185\).)89 b(In)46 b(addition,)k(the)d Fz(static)28 b(Point)330 1813 y FI(mem)m(b)s(er)k(function)h Fz (Point::intersection_poin)o(ts\(\))26 b FI(can)34 b(b)s(e)e(called)i (with)f(four)f Fz(Point)g FI(ar-)330 1923 y(gumen)m(ts.)40 @@ -18741,7 +18750,7 @@ 2545 y(4.)61 b(A)45 b(line)h(and)e(a)i(Regular)f(Closed)g(Plane)h(Curv) m(e)e(\()p Fz(Reg_Cl_Plane_Curve)p FI(,)h(see)g(Section)h(28.3)330 2655 y([Regular)31 b(Closed)g(Plane)g(Curv)m(e)f(Reference;)i(In)m -(tersections],)h(page)e(206\).)43 b(Curren)m(tly)-8 b(,)31 +(tersections],)h(page)e(208\).)43 b(Curren)m(tly)-8 b(,)31 b Fz(Ellipse)330 2765 y FI(and)f Fz(Circle)e FI(are)j(the)g(only)f (classes)i(deriv)m(ed)e(from)g Fz(Reg_Cl_Plane_Curve)p FI(.)199 2899 y(5.)61 b(Tw)m(o)32 b Fz(Ellipses)p FI(.)41 @@ -18749,7 +18758,7 @@ FI(,)e(one)h(or)h(b)s(oth)e(of)i(the)f Fz(Ellipses)e FI(ma)m(y)330 3009 y(b)s(e)h(a)g Fz(Circle)p FI(.)40 b(See)30 b(Section)h(29.9)h([Ellipse)f(Reference;)h(In)m(tersections],) -g(page)f(219.)275 3168 y(Adding)26 b(more)i(functions)f(for)h +g(page)f(221.)275 3168 y(Adding)26 b(more)i(functions)f(for)h (\014nding)e(the)i(in)m(tersections)h(of)e(v)-5 b(arious)28 b(geometric)i(\014gures)c(is)i(one)g(of)150 3278 y(m)m(y)j(main)f (priorities)h(with)f(resp)s(ect)g(to)h(extending)g(3DLDF.)275 @@ -18796,37 +18805,37 @@ 299 y FE(11)80 b(Installing)52 b(and)i(Running)e(3DLDF)150 652 y FH(11.1)68 b(Installing)47 b(3DLDF)150 896 y FI(3DLDF)39 b(is)f(a)m(v)-5 b(ailable)41 b(for)c(do)m(wnloading)i(from)e -Fz(http://ftp.gnu.org/gnu/3D)o(LDF)p FI(.)57 b(The)37 +Fz(http://ftp.gnu.org/gnu/3d)o(ldf)p FI(.)57 b(The)37 b(o\016cial)150 1005 y(3DLDF)k(w)m(ebsite)g(is)f Fz -(http://www.gnu.org/softw)o(are)o(/3DL)o(DF)p FI(.)63 +(http://www.gnu.org/softw)o(are)o(/3dl)o(df)p FI(.)63 b(The)39 b(\\tarball",)44 b(i.e.,)g(the)c(com-)150 1115 -y(pressed)22 b(arc)m(hiv)m(e)j(\014le)e(`)p Fz(3DLDF-1.1.3.tar.gz)p +y(pressed)22 b(arc)m(hiv)m(e)j(\014le)e(`)p Fz(3DLDF-1.1.4.tar.gz)p FI(')18 b(unpac)m(ks)23 b(in)m(to)h(a)f(directory)h(called)g(`)p -Fz(/3DLDF-1.1.3/)p FI('.)275 1249 y(On)35 b(a)h(t)m(ypical)i(Unix-lik)m +Fz(/3DLDF-1.1.4/)p FI('.)275 1249 y(On)35 b(a)h(t)m(ypical)i(Unix-lik)m (e)f(system,)h(en)m(tering)f(the)f(follo)m(wing)i(commands)e(at)h(the)f (command)g(line)150 1358 y(in)28 b(a)i(shell)f(will)g(unpac)m(k)f(the)h (3DLDF)i(distribution.)39 b(Please)30 b(note)g(that)f(the)g(form)f(of)h (the)g(commands)150 1468 y(ma)m(y)i(di\013er)f(on)g(y)m(our)h(system.) -390 1602 y Fz(gunzip)46 b(3DLDF-1.1.3.tar.gz)390 1711 -y(tar)h(xpvf)g(3DLDF-1.1.3.tar)275 1845 y FI(The)27 b(`)p +390 1602 y Fz(gunzip)46 b(3DLDF-1.1.4.tar.gz)390 1711 +y(tar)h(xpvf)g(3DLDF-1.1.4.tar)275 1845 y FI(The)27 b(`)p Fz(p)p FI(')h(option)g(to)h Fz(tar)e FI(ensures)g(that)h(the)g(\014les) g(will)g(ha)m(v)m(e)h(the)f(same)g(p)s(ermissions)f(as)h(when)f(they) 150 1955 y(w)m(ere)k(pac)m(k)m(ed.)275 2089 y(The)26 -b(directory)h(`)p Fz(3DLDF-1.1.3/)p FI(')e(con)m(tains)j(a)f +b(directory)h(`)p Fz(3DLDF-1.1.4/)p FI(')e(con)m(tains)j(a)f Fz(configure)d FI(script,)k(whic)m(h)f(should)f(b)s(e)g(called)i(from) 150 2198 y(the)41 b(command)f(line)h(in)g(the)f(shell,)k(using)c(the)h -(absolute)g(path)g(of)g(`)p Fz(3DLDF-1.1.3/)p FI(')c(as)k(the)g +(absolute)g(path)g(of)g(`)p Fz(3DLDF-1.1.4/)p FI(')c(as)k(the)g (pre\014x)150 2308 y(argumen)m(t.)84 b(F)-8 b(or)46 b(example,)j(if)44 -b(the)h(path)g(is)f(`)p Fz(/usr/local/mydir/3DLDF-1.1.)o(3/)p +b(the)h(path)g(is)f(`)p Fz(/usr/local/mydir/3DLDF-1.1.)o(4/)p FI(',)e Fz(configure)150 2418 y FI(should)29 b(b)s(e)h(in)m(v)m(ok)m -(ed)i(as)f(follo)m(ws:)390 2552 y Fz(cd)47 b(3DLDF-1.1.3)390 -2661 y(configure)e(--prefix=/usr/local/mydir)o(/3DL)o(DF-1)o(.1.)o(3/) +(ed)i(as)f(follo)m(ws:)390 2552 y Fz(cd)47 b(3DLDF-1.1.4)390 +2661 y(configure)e(--prefix=/usr/local/mydir)o(/3DL)o(DF-1)o(.1.)o(4/) 275 2795 y(configure)71 b FI(generates)k(a)f(`)p Fz(Makefile)p FI(')d(from)i(the)h(`)p Fz(Makefile.in)p FI(')d(in)j(`)p -Fz(3DLDF-1.1.3/)p FI(',)150 2905 y(and)81 b(in)g(eac)m(h)i(of)e(the)h -(sub)s(directories)f(`)p Fz(3DLDF-1.1.3/CWEB)p FI(',)91 -b(`)p Fz(3DLDF-1.1.3/DOC)p FI(',)g(and)150 3014 y(`)p -Fz(3DLDF-1.1.3/DOC/TEXINFO)p FI('.)71 b(No)m(w,)46 b +Fz(3DLDF-1.1.4/)p FI(',)150 2905 y(and)81 b(in)g(eac)m(h)i(of)e(the)h +(sub)s(directories)f(`)p Fz(3DLDF-1.1.4/CWEB)p FI(',)91 +b(`)p Fz(3DLDF-1.1.4/DOC)p FI(',)g(and)150 3014 y(`)p +Fz(3DLDF-1.1.4/DOC/TEXINFO)p FI('.)71 b(No)m(w,)46 b Fz(make)29 b(install)40 b FI(causes)j(the)g(3DLDF)g(to)g(b)s(e)f (built.)76 b(The)150 3124 y(executable)32 b(is)e(called)i(`)p Fz(3dldf)p FI('.)275 3258 y(See)e(the)h(\014les)f(`)p @@ -18835,8 +18844,8 @@ FH(11.2)68 b(Running)45 b(3DLDF)150 3757 y FI(T)-8 b(o)33 b(use)g(3DLDF,)i(call)f Fz(make)29 b(run)j FI(from)h(the)g(command)g (line)g(in)g(the)g(shell.)49 b(The)32 b(w)m(orking)h(directory)150 -3867 y(should)28 b(b)s(e)g(`)p Fz(3DLDF-1.1.3/)p FI(')e(or)j(`)p -Fz(3DLDF-1.1.3/CWEB)p FI('.)36 b(Either)29 b(will)g(w)m(ork,)h(but)e +3867 y(should)28 b(b)s(e)g(`)p Fz(3DLDF-1.1.4/)p FI(')e(or)j(`)p +Fz(3DLDF-1.1.4/CWEB)p FI('.)36 b(Either)29 b(will)g(w)m(ork,)h(but)e (the)h(latter)h(ma)m(y)g(b)s(e)150 3976 y(more)k(con)m(v)m(enien)m(t,)k (b)s(ecause)c(this)g(is)g(the)g(lo)s(cation)i(of)e(the)g(CWEB,)h(T)2650 3996 y(E)2700 3976 y(X)f(and)g(MetaP)m(ost)i(\014les)e(that)150 @@ -18859,14 +18868,14 @@ Fz(make)e(run)p FI(,)h(it's)h(imp)s(ortan)m(t)g(to)g(understand)e(what) i(it)g(do)s(es.)41 b(The)31 b(follo)m(wing)h(explains)150 4987 y(ho)m(w)e(to)i(do)e(this)g(b)m(y)g(hand.)275 5121 -y(The)c(CWEB)i(source)g(\014les)f(for)g(3DLDF)i(are)f(in)f(the)h(sub)s -(directory)e(`)p Fz(3DLDF-1.1.3/CWEB/)p FI('.)35 b(They)150 -5230 y(m)m(ust)48 b(b)s(e)g Fz(ctangled)p FI(,)j(and)d(the)h(resulting) -g FB(C)1822 5222 y FA(+)-8 b(+)2016 5230 y FI(\014les)49 -b(m)m(ust)f(b)s(e)g(compiled)h(and)f(link)m(ed,)53 b(in)c(or-)150 -5340 y(der)42 b(to)h(create)h(the)f(executable)h(\014le)e(`)p -Fz(3dldf)p FI('.)76 b(The)42 b FB(C)2162 5332 y FA(+)-8 -b(+)2345 5340 y FI(\014les)42 b(and)g(header)g(\014les)h(generated)g(b) +y(The)51 b(CWEB)h(source)g(\014les)g(for)f(3DLDF)i(are)g(in)e(the)h +(sub)s(directory)f(`)p Fz(3DLDF-1.1.4/CWEB/)p FI('.)150 +5230 y(They)45 b(m)m(ust)g(b)s(e)g Fz(ctangled)p FI(,)i(and)e(the)h +(resulting)f FB(C)2052 5222 y FA(+)-8 b(+)2195 5230 y +FI(\014les)46 b(m)m(ust)f(b)s(e)g(compiled)h(and)f(link)m(ed,)k(in)150 +5340 y(order)40 b(to)g(create)i(the)e(executable)i(\014le)e(`)p +Fz(3dldf)p FI('.)68 b(The)40 b FB(C)2219 5332 y FA(+)-8 +b(+)2357 5340 y FI(\014les)40 b(and)f(header)h(\014les)g(generated)h(b) m(y)p eop end %%Page: 74 86 TeXDict begin 74 85 bop 150 -116 a FI(Chapter)30 b(11:)41 @@ -18874,22 +18883,22 @@ 299 y Fz(ctangle)p FI(,)33 b(the)i(ob)5 b(ject)35 b(\014les)f (generated)h(b)m(y)f(the)g(compiler,)i(and)e(the)g(executable)i(`)p Fz(3dldf)p FI(')d(all)i(reside)150 408 y(in)30 b(`)p -Fz(3DLDF-1.1.3/CWEB/)p FI('.)37 b(Therefore,)30 b(the)h(latter)g(m)m +Fz(3DLDF-1.1.4/CWEB/)p FI('.)37 b(Therefore,)30 b(the)h(latter)g(m)m (ust)f(b)s(e)g(y)m(our)h(w)m(orking)f(directory)-8 b(.)275 572 y(Since)30 b(3DLDF)i(has)e(no)h(input)e(routine)i(as)g(y)m(et,)h (as)f(explained)f(in)h(Section)g(1.5.2)h([No)g(Input)d(Rou-)150 -682 y(tine],)g(page)e(8,)h(it)g(is)f(necessary)g(to)g(add)g -FB(C)1606 674 y FA(+)-8 b(+)1757 682 y FI(co)s(de)27 -b(to)h(the)f(function)f Fz(main\(\))f FI(in)i(`)p Fz(main.web)p -FI(',)f(and/or)150 791 y(in)34 b(a)h(separate)h(function)e(in)g +682 y(tine],)h(page)f(8,)h(it)f(is)g(necessary)g(to)g(add)f +FB(C)1619 674 y FA(+)-8 b(+)1745 682 y FI(co)s(de)29 +b(to)g(the)g(function)f Fz(main\(\))f FI(in)i(`)p Fz(main.web)p +FI(',)e(and/or)150 791 y(in)34 b(a)h(separate)h(function)e(in)g (another)h(\014le.)53 b(In)34 b(the)h(latter)h(case,)h(the)e(function)f -(con)m(taining)i(the)f(user)150 901 y(co)s(de)24 b(m)m(ust)g(b)s(e)f -(in)m(v)m(ok)m(ed)i(in)f Fz(main\(\))p FI(.)37 b(Lo)s(ok)24 -b(for)f(the)h(line)h(\\Y)-8 b(our)24 b(co)s(de)g(here!")39 -b(in)23 b Fz(\\)p FI(\014lenamemain.w)m(eb.)275 1064 -y(This)44 b(is)g(an)h(example)g(of)g(what)g(y)m(ou)g(could)g(write)g -(in)f Fz(main\(\))p FI(.)83 b(F)-8 b(eel)46 b(free)f(to)h(mak)m(e)f(it) -h(more)150 1174 y(complicated,)32 b(if)f(y)m(ou)f(wish.)390 +(con)m(taining)i(the)f(user)150 901 y(co)s(de)c(m)m(ust)f(b)s(e)g(in)m +(v)m(ok)m(ed)h(in)f Fz(main\(\))p FI(.)39 b(Lo)s(ok)31 +b(for)f(the)h(line)f(\\Y)-8 b(our)31 b(co)s(de)g(here!")41 +b(in)30 b(`)p Fz(main.web)p FI('.)275 1064 y(This)44 +b(is)g(an)h(example)g(of)g(what)g(y)m(ou)g(could)g(write)g(in)f +Fz(main\(\))p FI(.)83 b(F)-8 b(eel)46 b(free)f(to)h(mak)m(e)f(it)h +(more)150 1174 y(complicated,)32 b(if)f(y)m(ou)f(wish.)390 1337 y Fz(beginfig\(1\);)390 1447 y(default_focus.set\(2,)42 b(3,)47 b(-10,)g(2,)g(3,)g(10,)g(20\);)390 1556 y(Rectangle)e (R\(origin,)h(5,)h(3\);)390 1666 y(Circle)f(C\(origin,)f(3,)j(90\);)390 @@ -18986,10 +18995,10 @@ @endspecial 1748 4848 a FI(Figure)31 b(72.)199 5011 y(1.)61 b(Sa)m(v)m(e)41 b(`)p Fz(main.web)p FI(',)g(and)f(an)m(y)g (other)g(CWEB)h(\014les)e(y)m(ou'v)m(e)j(c)m(hanged.)70 -b(Since)40 b(these)h(\014les)f(ha)m(v)m(e)330 5121 y(c)m(hanged,)34 -b(they)f(m)m(ust)f(b)s(e)g Fz(ctangled)p FI(,)f(and)h(the)h(resulting)f -FB(C)2487 5113 y FA(+)-8 b(+)2650 5121 y FI(\014les)32 -b(m)m(ust)h(b)s(e)f(recompiled.)47 b(If)330 5230 y(y)m(ou'v)m(e)38 +b(Since)40 b(these)h(\014les)f(ha)m(v)m(e)330 5121 y(c)m(hanged,)d +(they)d(m)m(ust)h(b)s(e)f Fz(ctangled)p FI(,)f(and)h(the)h(resulting)g +FB(C)2505 5113 y FA(+)-8 b(+)2637 5121 y FI(\014les)35 +b(m)m(ust)g(b)s(e)e(recompiled.)54 b(If)330 5230 y(y)m(ou'v)m(e)38 b(c)m(hanged)f(an)m(y)g(\014les)f(other)h(than)f(`)p Fz(main.web)p FI(',)g Fz(ctangle)e FI(will)j(also)g(generate)h(a)f (header)330 5340 y(\014le)d(for)h(eac)m(h)g(of)g(these)g(\014les.)52 @@ -18998,9 +19007,9 @@ %%Page: 75 87 TeXDict begin 75 86 bop 150 -116 a FI(Chapter)30 b(11:)41 b(Installing)31 b(and)f(Running)f(3DLDF)1751 b(75)330 -299 y Fz(ctangle)35 b FI(w)m(as)i(run,)g(all)h(of)f(the)g -FB(C)1552 291 y FA(+)-8 b(+)1723 299 y FI(\014les)37 -b(that)g(dep)s(end)e(on)i(it)g(m)m(ust)f(b)s(e)h(recompiled.)60 +299 y Fz(ctangle)37 b FI(w)m(as)i(run,)h(all)g(of)f(the)g +FB(C)1565 291 y FA(+)-8 b(+)1702 299 y FI(\014les)38 +b(that)i(dep)s(end)d(on)i(it)g(m)m(ust)g(b)s(e)f(recompiled.)67 b(Then)330 408 y(`)p Fz(3dldf)p FI(')29 b(m)m(ust)i(b)s(e)e(relink)m (ed.)41 b(T)-8 b(o)31 b(do)g(this,)f(call)i Fz(make)d(3dldf)g FI(from)h(the)g(command)h(line.)330 545 y(If)j(y)m(ou'v)m(e)i(made)e @@ -19137,22 +19146,23 @@ Fz(real)f FI(argumen)m(ts)h(sets)h Fz(first)e FI(to)i Ft(a)p FI(,)g Fz(second)d FI(to)j Ft(b)p FI(,)f(and)f Fz(third)g FI(to)390 3183 y Ft(c)p FI(.)3399 3367 y([t)m(yp)s(edef)7 -b(])-3599 b Fd(Matrix)390 3477 y FI(A)37 b Fz(Matrix)f -FI(is)h(a)g(4)26 b FG(\002)e FI(4)38 b(arra)m(y)f(of)h -Fz(real)p FI(,)g(e.g.,)i Fz(Matrix)29 b(M;)36 b FG(\021)h -Fz(real)29 b(M[4][4])p FI(.)59 b(It)38 b(is)f(used)f(in)390 -3587 y Fz(class)29 b(Transform)k FI(for)j(storing)g(transformation)h -(matrices.)58 b(See)37 b(Chapter)e(4)h([T)-8 b(ransforms],)390 -3696 y(page)31 b(18,)h(and)d(See)i(Chapter)f(17)h([T)-8 -b(ransform)30 b(Reference],)h(page)g(88,)h(for)e(more)h(information.) -3399 3880 y([t)m(yp)s(edef)7 b(])-3599 b Fd(real)p 346 -3880 V 50 w(short)45 b Fy(\014rst)30 b(second)390 3990 -y FI(Synon)m(ymous)e(with)h Fz(pair)p -FI(.)39 b(It)29 b(is)h(the)f(return)f(t)m(yp)s(e)i(of)f -Fz(Plane::get_)390 4100 y(distance\(\))p FI(.)3399 4284 -y([t)m(yp)s(edef)7 b(])-3599 b Fd(b)s(o)s(ol)p 374 4284 -V 51 w(pair)45 b Fy(\014rst)30 b(second)390 4394 y FI(Synon)m(ymous)f -(with)h Fz(pair)p FI(.)3399 4578 y([t)m(yp)s(edef)7 +b(])-3599 b Fd(Matrix)390 3477 y FI(A)36 b Fz(Matrix)f +FI(is)h(a)g(4)25 b FG(\002)e FI(4)37 b(arra)m(y)f(of)h +Fz(real)p FI(,)f(e.g.,)j Fz(Matrix)29 b(M;)2505 3481 +y FG(\021)2621 3477 y Fz(real)h(M[4][4])p FI(.)56 b(It)36 +b(is)g(used)f(in)390 3587 y Fz(class)29 b(Transform)k +FI(for)j(storing)g(transformation)h(matrices.)58 b(See)37 +b(Chapter)e(4)h([T)-8 b(ransforms],)390 3696 y(page)31 +b(18,)h(and)d(See)i(Chapter)f(17)h([T)-8 b(ransform)30 +b(Reference],)h(page)g(88,)h(for)e(more)h(information.)3399 +3880 y([t)m(yp)s(edef)7 b(])-3599 b Fd(real)p 346 3880 +V 50 w(short)45 b Fy(\014rst)30 b(second)390 3990 y FI(Synon)m(ymous)e +(with)h Fz(pair)p FI(.)39 b(It)29 +b(is)h(the)f(return)f(t)m(yp)s(e)i(of)f Fz(Plane::get_)390 +4100 y(distance\(\))p FI(.)3399 4284 y([t)m(yp)s(edef)7 +b(])-3599 b Fd(b)s(o)s(ol)p 374 4284 V 51 w(pair)45 b +Fy(\014rst)30 b(second)390 4394 y FI(Synon)m(ymous)f(with)h +Fz(pair)p FI(.)3399 4578 y([t)m(yp)s(edef)7 b(])-3599 b Fd(b)s(o)s(ol)p 374 4578 V 51 w(real)44 b Fy(\014rst)31 b(second)390 4687 y FI(Synon)m(ymous)e(with)h Fz(pair)p FI(.)p eop end @@ -19160,115 +19170,114 @@ TeXDict begin 78 89 bop 150 -116 a FI(Chapter)30 b(13:)41 b(Global)32 b(Constan)m(ts)f(and)e(V)-8 b(ariables)1738 b(78)150 299 y FE(13)80 b(Global)53 b(Constan)l(ts)e(and)j(V)-13 -b(ariables)150 531 y FI(The)39 b(global)i(constan)m(ts)g(and)e(v)-5 +b(ariables)150 512 y FI(The)39 b(global)i(constan)m(ts)g(and)e(v)-5 b(ariables)40 b(describ)s(ed)f(in)g(this)h(c)m(hapter)g(are)g(found)f -(in)g(`)p Fz(pspglb.web)p FI('.)150 640 y(Others,)30 +(in)g(`)p Fz(pspglb.web)p FI('.)150 622 y(Others,)30 b(of)h(t)m(yp)s(es)f(de\014ned)f(in)h(3DLDF,)i(are)f(describ)s(ed)e(in) -h(subsequen)m(t)g(c)m(hapters.)3338 823 y([Constan)m(t])-3599 -b Fc(real)39 b Fd(PI)390 933 y FI(The)33 b(v)-5 b(alue)33 -b(of)g Fz(PI)g FI(\(\005\))h(is)f(calculated)i(as)e(4)p -Fu(:)p FI(0)23 b FG(\002)f FI(arctan)q(\(1)p Fu(:)p FI(0\).)51 -b(I)32 b(b)s(eliev)m(e)j(that)e(a)h(prepro)s(cessor)390 -1042 y(macro)39 b(\\)p Fz(PI)p FI(")f(w)m(as)g(a)m(v)-5 -b(ailable)40 b(when)d(I)h(compiled)h(3DLDF)g(using)e(the)i(DEC)e -FB(C)3212 1034 y FA(+)-8 b(+)3386 1042 y FI(compiler,)390 -1152 y(and)30 b(that)h(it)g(w)m(asn't,)g(when)e(I)h(used)g(GNU)h(CC)e -(under)g(Lin)m(ux,)h(but)g(I'm)g(no)g(longer)h(sure.)3371 -1335 y([V)-8 b(ariable])-3598 b Fc(valarray)41 b()f -Fd(n)m(ull)p 1156 1335 35 5 v 49 w(co)s(ordinates)390 -1444 y FI(Con)m(tains)f(four)e(elemen)m(ts,)42 b(all)d(0.)65 -b(Used)38 b(for)h(resetting)g(the)f(sets)h(of)g(co)s(ordinates)g(b)s -(elonging)390 1554 y(to)33 b Fz(Points)p FI(,)f(but)g(only)h(when)f -(the)h(DEC)f FB(C)1911 1546 y FA(+)-8 b(+)2075 1554 y -FI(compiler)33 b(is)g(used.)47 b(This)32 b(do)s(esn't)g(w)m(ork)h(when) -390 1663 y(GCC)d(is)g(used.)3338 1846 y([Constan)m(t])-3599 -b Fc(real)39 b Fd(INV)-13 b(ALID)p 899 1846 V 51 w(REAL)390 -1956 y FI(Actually)-8 b(,)32 b Fz(INVALID_REAL)27 b FI(is)j(the)g +h(subsequen)m(t)g(c)m(hapters.)3338 793 y([Constan)m(t])-3599 +b Fc(real)39 b Fd(PI)390 903 y FI(The)33 b(v)-5 b(alue)35 +b(of)f Fz(PI)f FI(\()p Fu(\031)s FI(\))i(is)f(calculated)h(as)g(4)p +Fu(:)p FI(0)23 b FG(\002)g FI(arctan\(1)p Fu(:)p FI(0\).)53 +b(I)34 b(b)s(eliev)m(e)h(that)g(a)f(prepro)s(cessor)390 +1013 y(macro)27 b(\\)p Fz(PI)p FI(")g(w)m(as)g(a)m(v)-5 +b(ailable)29 b(when)d(I)g(compiled)h(3DLDF)h(using)f(the)f(DEC)h +FB(C)3088 1005 y FA(+)-8 b(+)3212 1013 y FI(compiler,)29 +b(and)390 1122 y(that)i(it)g(w)m(asn't,)g(when)e(I)h(used)g(GNU)h(CC)f +(under)f(Lin)m(ux,)h(but)f(I'm)h(no)h(longer)g(sure.)3371 +1294 y([V)-8 b(ariable])-3598 b Fc(valarray)41 b()f +Fd(n)m(ull)p 1156 1294 35 5 v 49 w(co)s(ordinates)390 +1404 y FI(Con)m(tains)31 b(four)f(elemen)m(ts,)i(all)f(0.)42 +b(Used)30 b(for)g(resetting)i(the)f(sets)g(of)f(co)s(ordinates)h(b)s +(elonging)g(to)390 1513 y Fz(Points)p FI(,)26 b(but)g(only)g(when)g +(the)g(DEC)h FB(C)1761 1505 y FA(+)-8 b(+)1885 1513 y +FI(compiler)27 b(is)g(used.)38 b(This)26 b(do)s(esn't)g(w)m(ork)h(when) +e(GCC)390 1623 y(is)30 b(used.)3338 1795 y([Constan)m(t])-3599 +b Fc(real)39 b Fd(INV)-13 b(ALID)p 899 1795 V 51 w(REAL)390 +1904 y FI(Actually)-8 b(,)32 b Fz(INVALID_REAL)27 b FI(is)j(the)g (largest)h(p)s(ossible)f Fz(real)f FI(v)-5 b(alue)30 b(\(i.e.,)i Fz(float)c FI(or)i Fz(double)p FI(\))f(on)390 -2065 y(a)36 b(giv)m(en)g(mac)m(hine.)56 b(So,)36 b(from)f(the)g(p)s +2014 y(a)36 b(giv)m(en)g(mac)m(hine.)56 b(So,)36 b(from)f(the)g(p)s (oin)m(t)g(of)h(view)f(of)g(the)h(compiler,)h(it's)f(not)f(in)m(v)-5 -b(alid)36 b(at)g(all.)390 2175 y(Ho)m(w)m(ev)m(er,)41 +b(alid)36 b(at)g(all.)390 2123 y(Ho)m(w)m(ev)m(er,)41 b(3DLDF)d(uses)e(it)h(to)h(indicate)g(failure)e(of)h(some)g(kind.)59 -b(F)-8 b(or)38 b(example,)h(the)e(return)390 2285 y(v)-5 +b(F)-8 b(or)38 b(example,)h(the)e(return)390 2233 y(v)-5 b(alue)42 b(of)f(a)g(function)g(returning)f Fz(real)g FI(can)h(b)s(e)g(compared)g(with)g Fz(INVALID_REAL)d -FI(to)j(c)m(hec)m(k)390 2394 y(whether)30 b(the)g(function)g(succeeded) -h(or)f(failed.)390 2528 y(An)h(alternativ)m(e)j(approac)m(h)e(w)m(ould) -g(b)s(e)f(to)h(use)f(the)h(exception)h(handling)e(facilities)j(of)d -FB(C)3518 2520 y FA(+)-8 b(+)3648 2528 y FI(.)44 b(I)390 -2638 y(do)30 b(use)g(these,)h(but)f(only)h(in)f(a)g(couple)h(of)g -(places,)g(so)g(far.)3338 2821 y([Constan)m(t])-3599 -b Fc(real_pair)41 b Fd(INV)-13 b(ALID)p 1161 2821 V 50 -w(REAL)p 1528 2821 V 50 w(P)j(AIR)390 2930 y Fz(first)29 +FI(to)j(c)m(hec)m(k)390 2343 y(whether)30 b(the)g(function)g(succeeded) +h(or)f(failed.)390 2473 y(An)j(alternativ)m(e)j(approac)m(h)e(w)m(ould) +g(b)s(e)f(to)i(use)e(the)h(exception)h(handling)e(facilities)j(of)e +FB(C)3544 2465 y FA(+)-8 b(+)3641 2473 y FI(.)51 b(I)390 +2582 y(do)30 b(use)g(these,)h(but)f(only)h(in)f(a)g(couple)h(of)g +(places,)g(so)g(far.)3338 2754 y([Constan)m(t])-3599 +b Fc(real_pair)41 b Fd(INV)-13 b(ALID)p 1161 2754 V 50 +w(REAL)p 1528 2754 V 50 w(P)j(AIR)390 2864 y Fz(first)29 b FI(and)h Fz(second)e FI(are)j(b)s(oth)f Fz(INVALID_REAL)p -FI(.)3338 3113 y([Constan)m(t])-3599 b Fc(real)39 b Fd(INV)-13 -b(ALID)p 899 3113 V 51 w(REAL)p 1267 3113 V 50 w(SHOR)j(T)390 -3223 y Fz(first)29 b FI(is)h Fz(INVALID_REAL)d FI(and)j -Fz(second)f FI(is)h(0.)3338 3405 y([Constan)m(t])-3599 -b Fc(real)39 b Fd(MAX)p 688 3405 V 50 w(REAL)390 3515 -y FI(The)34 b(largest)h Fz(real)e FI(v)-5 b(alue)35 b(p)s(ermitted)e -(in)h(3DLDF.)i(Theoretically)-8 b(,)37 b(it)e(should)e(b)s(e)h(the)g -(second)390 3625 y(largest)28 b Fz(real)e FI(v)-5 b(alue)27 -b(\(i.e.,)j Fz(float)25 b FI(or)i Fz(double)p FI(\))f(on)g(a)i(giv)m -(en)g(mac)m(hine.)40 b(Ho)m(w)m(ev)m(er,)30 b(it's)d(tric)m(ky)h(to)390 -3734 y(\014nd)k(this,)j(b)s(ecause)f(of)g(the)g(w)m(a)m(y)h(\015oating) -g(p)s(oin)m(t)f(n)m(um)m(b)s(ers)e(are)i(represen)m(ted)g(in)g(a)g -(computer.)390 3844 y(There)k(ma)m(y)i(b)s(e)e(an)h(ob)m(vious)g(w)m(a) -m(y)h(of)f(\014nding)f(it,)j(but)e(I)f(don't)h(kno)m(w)g(it.)67 -b(Let)39 b Fu(R)h FI(stand)e(for)390 3953 y(the)k(largest)g -Fz(real)f FI(v)-5 b(alue)42 b(on)f(a)h(giv)m(en)g(mac)m(hine.)75 -b(Curren)m(tly)-8 b(,)44 b Fz(MAX_REAL)c FI(is)h(de\014ned)f(to)j(b)s -(e)390 4063 y Fu(R)24 b FG(\000)g Fu(:)p FI(00000003)j -FG(\003)d Fu(R)q FI(.)56 b(Ob)m(viously)-8 b(,)38 b(this)d(is)h(a)g -(kludge,)h(but)d(it)j(hasn't)e(caused)h(an)m(y)f(problems,)390 -4173 y(y)m(et.)3338 4355 y([Constan)m(t])-3599 b Fc(real)39 -b Fd(MAX)p 688 4355 V 50 w(REAL)p 1055 4355 V 50 w(SQR)-10 -b(T)390 4465 y FI(The)20 b(square)h(ro)s(ot)g(of)f Fz(MAX_REAL)p -FI(.)36 b(Used)20 b(in)g Fz(Point::magnitude\(\))c FI(\(see)22 -b(Section)f(20.15)i([V)-8 b(ector)390 4575 y(Op)s(erations],)42 -b(page)e(126\).)69 b(The)39 b(magnitude)g(of)h(a)g Fz(Point)e -FI(is)h(found)f(b)m(y)h(using)g(the)h(form)m(ula)390 -4615 y FG(p)p 466 4615 481 4 v 69 x Fu(x)518 4658 y FA(2)575 -4684 y FI(+)20 b Fu(y)714 4658 y FA(2)771 4684 y FI(+)g -Fu(z)908 4658 y FA(2)946 4684 y FI(.)52 b Fu(x)p FI(,)35 -b Fu(y)s FI(,)g(and)e Fu(z)39 b FI(are)34 b(all)h(tested)g(against)g -Fz(MAX_REAL_SQRT)c FI(to)k(ensure)e(that)i Fu(x)3688 -4651 y FA(2)3725 4684 y FI(,)390 4794 y Fu(y)438 4761 -y FA(2)475 4794 y FI(,)30 b(and)g Fu(z)753 4761 y FA(2)820 -4794 y FI(will)g(all)h(b)s(e)e(less)h(than)g(or)g(equal)g(to)h +FI(.)3338 3036 y([Constan)m(t])-3599 b Fc(real)39 b Fd(INV)-13 +b(ALID)p 899 3036 V 51 w(REAL)p 1267 3036 V 50 w(SHOR)j(T)390 +3145 y Fz(first)29 b FI(is)h Fz(INVALID_REAL)d FI(and)j +Fz(second)f FI(is)h(0.)3338 3317 y([Constan)m(t])-3599 +b Fc(real)39 b Fd(MAX)p 688 3317 V 50 w(REAL)390 3427 +y FI(The)28 b(largest)i Fz(real)d FI(v)-5 b(alue)29 b(p)s(ermitted)f +(in)g(3DLDF.)i(It)f(is)f(the)h(second)f(largest)i Fz(real)d +FI(v)-5 b(alue)29 b(\(i.e.,)390 3536 y Fz(float)g FI(or)h +Fz(double)p FI(\))f(on)i(a)f(giv)m(en)i(mac)m(hine)f(\()p +Fz(INVALID_REAL)c FI(is)k(the)f(largest\).)390 3666 y(Ho)m(w)m(ev)m +(er,)38 b(the)c(w)m(a)m(y)i(it's)f(calculated)h(dep)s(ends)d(on)h(the)h +(system's)f(\015oating)i(p)s(oin)m(t)e(represen)m(ta-)390 +3776 y(tion)g(and)e(the)i(size)g(of)g(certain)g(data)g(t)m(yp)s(es.)49 +b(Curren)m(tly)-8 b(,)34 b Fz(MAX_REAL)d FI(can)j(only)f(b)s(e)g +(calculated)390 3886 y(correctly)g(for)e(32-bit,)h(little-endian)h(arc) +m(hitectures.)45 b(I)31 b(plan)g(to)h(\014x)e(this)h(so)s(on,)h(so)f +(that)h(it)g(will)390 3995 y(w)m(ork)26 b(on)g(other)h(arc)m +(hitectures)g(so)s(on.)39 b(When)26 b(I)g(ha)m(v)m(e,)j(I)d(will)g +(supply)f(a)i(patc)m(h.)39 b(See)27 b(Section)g(1.6)390 +4105 y([P)m(orts],)32 b(page)f(8.)3338 4277 y([Constan)m(t])-3599 +b Fc(real)39 b Fd(MAX)p 688 4277 V 50 w(REAL)p 1055 4277 +V 50 w(SQR)-10 b(T)390 4386 y FI(The)20 b(square)h(ro)s(ot)g(of)f +Fz(MAX_REAL)p FI(.)36 b(Used)20 b(in)g Fz(Point::magnitude\(\))c +FI(\(see)22 b(Section)f(20.15)i([V)-8 b(ector)390 4496 +y(Op)s(erations],)42 b(page)e(127\).)69 b(The)39 b(magnitude)g(of)h(a)g +Fz(Point)e FI(is)h(found)f(b)m(y)h(using)g(the)h(form)m(ula)390 +4534 y Fh(q)p 473 4534 481 4 v 98 x Fu(x)525 4606 y FA(2)582 +4632 y FI(+)20 b Fu(y)721 4606 y FA(2)779 4632 y FI(+)g +Fu(z)916 4606 y FA(2)953 4632 y FI(.)50 b Fu(x)p FI(,)35 +b Fu(y)s FI(,)f(and)f Fu(z)38 b FI(are)c(all)h(tested)f(against)h +Fz(MAX_REAL_SQRT)30 b FI(to)k(ensure)f(that)i Fu(x)3688 +4599 y FA(2)3725 4632 y FI(,)390 4760 y Fu(y)438 4727 +y FA(2)475 4760 y FI(,)30 b(and)g Fu(z)753 4727 y FA(2)820 +4760 y FI(will)g(all)h(b)s(e)e(less)h(than)g(or)g(equal)g(to)h Fz(MAX_REAL)c FI(b)s(efore)j(trying)g(to)g(calculate)j(them.)390 -4928 y(Metafon)m(t)23 b(implemen)m(ts)e(an)g(op)s(eration)g(called)h +4890 y(Metafon)m(t)23 b(implemen)m(ts)e(an)g(op)s(eration)g(called)h Ft(Pythagorean)g(addition)p FI(,)h(notated)f(as)f(\\)p -Fz(++)p FI("whic)m(h)390 5037 y(can)g(b)s(e)f(used)g(to)i(calculate)h -(distances)f(without)f(\014rst)f(squaring)g(and)g(then)h(taking)h -(square)e(ro)s(ots:)3712 5004 y FA(1)390 5147 y Fu(a)r -FI(+)r(+)p Fu(b)26 b FG(\021)745 5073 y(p)p 820 5073 -273 4 v 820 5147 a Fu(a)868 5121 y FA(2)926 5147 y FI(+)20 -b Fu(b)1056 5121 y FA(2)1114 5147 y FI(and)h Fu(a)r FI(+)r(+)p -Fu(b)r FI(+)r(+)p Fu(c)26 b FG(\021)1822 5073 y(p)p 1898 -5073 461 4 v 74 x Fu(a)1946 5121 y FA(2)2004 5147 y FI(+)20 -b Fu(b)2134 5121 y FA(2)2191 5147 y FI(+)g Fu(c)2321 -5121 y FA(2)2359 5147 y FI(.)37 b(This)21 b(mak)m(es)h(it)g(p)s -(ossible)f(to)i(calculate)p 150 5241 1200 4 v 199 5308 -a FA(1)275 5340 y Fr(Kn)n(uth,)h(Donald)i(E.)g Fm(The)g(Metafon)n(tb)r -(o)r(ok)p Fr(,)h(p.)f(66.)p eop end +Fz(++)p FI("whic)m(h)390 5000 y(can)45 b(b)s(e)f(used)f(to)j(calculate) +g(distances)f(without)g(\014rst)f(squaring)g(and)g(then)g(taking)h +(square)390 5131 y(ro)s(ots:)615 5098 y FA(1)786 5131 +y Fu(a)p FI(++)o Fu(b)29 b FG(\021)1142 5033 y Fh(q)p +1225 5033 273 4 v 98 x Fu(a)1273 5105 y FA(2)1331 5131 +y FI(+)19 b Fu(b)1460 5105 y FA(2)1530 5131 y FI(and)32 +b Fu(a)p FI(++)o Fu(b)p FI(++)p Fu(c)d FG(\021)2246 5033 +y Fh(q)p 2329 5033 461 4 v 98 x Fu(a)2377 5105 y FA(2)2434 +5131 y FI(+)20 b Fu(b)2564 5105 y FA(2)2622 5131 y FI(+)g +Fu(c)2752 5105 y FA(2)2789 5131 y FI(.)47 b(This)31 b(mak)m(es)j(it)e +(p)s(ossible)p 150 5241 1200 4 v 199 5308 a FA(1)275 +5340 y Fr(Kn)n(uth,)24 b(Donald)i(E.)g Fm(The)g(Metafon)n(tb)r(o)r(ok)p +Fr(,)h(p.)f(66.)p eop end %%Page: 79 91 TeXDict begin 79 90 bop 150 -116 a FI(Chapter)30 b(13:)41 b(Global)32 b(Constan)m(ts)f(and)e(V)-8 b(ariables)1738 -b(79)390 299 y(distances)33 b(for)g(greater)g(v)-5 b(alues)33 -b(of)g Fu(a)p FI(,)g Fu(b)p FI(,)h(and)e Fu(c)p FI(,)i(that)f(w)m(ould) -f(otherwise)h(cause)g(\015oating)h(p)s(oin)m(t)390 408 -y(errors.)81 b(Metafon)m(t)46 b(also)e(implemen)m(ts)h(the)f(in)m(v)m -(erse)g(op)s(eration)h Ft(Pythagorean)f(subtraction)p -FI(,)390 518 y(notated)31 b(as)g(\\)p Fz(+-+)p FI(":)41 -b Fu(a)21 b FI(+)f FG(\000)g FI(+)g Fu(b)25 b FG(\021)1637 -444 y(p)p 1713 444 273 4 v 74 x Fu(a)1761 492 y FA(2)1818 -518 y FG(\000)20 b Fu(b)1948 492 y FA(2)1986 518 y FI(.)41 -b(Unfortunately)-8 b(,)31 b(3DLDF)h(implemen)m(ts)f(neither)390 -628 y(Pythagorean)g(addition)g(nor)f(subtraction)g(as)h(y)m(et,)h(but)d -(it's)i(on)g(m)m(y)f(list)h(of)g(\\things)f(to)i(do".)p -eop end +b(79)390 299 y(to)38 b(calculate)j(distances)d(for)f(greater)i(v)-5 +b(alues)39 b(of)e Fu(a)p FI(,)j Fu(b)p FI(,)g(and)d Fu(c)p +FI(,)j(that)f(w)m(ould)e(otherwise)h(cause)390 408 y(\015oating)g(p)s +(oin)m(t)f(errors.)61 b(Metafon)m(t)39 b(also)f(implemen)m(ts)g(the)f +(in)m(v)m(erse)h(op)s(eration)g Ft(Pythagorean)390 540 +y(subtraction)p FI(,)47 b(notated)d(as)f(\\)p Fz(+-+)p +FI(":)264 b Fu(a)p FI(+)p FG(\000)o FI(+)p Fu(b)47 b +FG(\021)2368 442 y Fh(q)p 2451 442 273 4 v 98 x Fu(a)2499 +514 y FA(2)2556 540 y FG(\000)20 b Fu(b)2686 514 y FA(2)2723 +540 y FI(.)79 b(Unfortunately)-8 b(,)47 b(3DLDF)390 660 +y(implemen)m(ts)33 b(neither)g(Pythagorean)g(addition)g(nor)f +(subtraction)h(as)g(y)m(et,)h(but)e(it's)h(on)g(m)m(y)f(list)390 +770 y(of)f(\\things)f(to)h(do".)p eop end %%Page: 80 92 TeXDict begin 80 91 bop 150 -116 a FI(Chapter)30 b(14:)41 b(Color)31 b(Reference)2369 b(80)150 299 y FE(14)80 b(Color)53 @@ -19544,7 +19553,7 @@ Fz(Color)e FI(can)i(b)s(e)f(used)f(in)h(the)h(dra)m(wing)f(and)g (\014lling)g(functions)150 4095 y(for)30 b Fz(Solid)f FI(\(see)i(Section)h(32.13)g([Solid)e(Reference;)i(Dra)m(wing)f(and)f -(Filling],)i(page)f(242\).)3442 4279 y([V)-8 b(ector])-3598 +(Filling],)i(page)f(244\).)3442 4279 y([V)-8 b(ector])-3598 b Fc(const)40 b(vector)g()g Fd(default)p 1915 4279 V 48 w(color)p 2207 4279 V 51 w(v)m(ector)390 4389 y FI(Con)m(tains)31 b(one)f(p)s(oin)m(ter,)h(namely)g @@ -19643,7 +19652,7 @@ b(jects)34 b(of)f(v)-5 b(arious)32 b(t)m(yp)s(es)h(\(but)g(all)g(deriv) m(ed)g(from)f Fz(Shape)p FI(\))g(are)h(accessed)h(through)e(p)s(oin)m (ters)150 1590 y(to)f Fz(Shape)p FI(.)39 b(See)31 b(Chapter)f(19)h -([Picture)g(Reference],)h(page)f(102)150 1845 y FH(16.1)68 +([Picture)g(Reference],)h(page)f(103.)150 1845 y FH(16.1)68 b(Data)46 b(Mem)l(b)t(ers)2664 2089 y FI([Protected)32 b(static)g(constan)m(ts])-3599 b Fc(signed)40 b(short)g Fd(DRA)-13 b(WDOT)150 2198 y Fc(signed)40 b(short)g Fd(DRA)-13 @@ -19716,7 +19725,7 @@ Fw(\()p Fz(const)29 b(Point&)g Fp(p0)p Fz(,)h(const)f(Point&)f Fp(p1)p Fz(,)i(const)f(real)g Fp(r)11 b Fw(\))390 2202 y FI(See)31 b(Section)g(20.12)h([P)m(oin)m(t)g(Reference;)f(A\016ne)g -(T)-8 b(ransformations],)30 b(page)i(121.)150 2442 y +(T)-8 b(ransformations],)30 b(page)i(122.)150 2442 y FH(16.6)68 b(Applying)45 b(T)-11 b(ransformations)2859 2680 y FI([Pure)30 b(virtual)h(function])-3600 b Fc(void)39 b Fd(apply)p 681 2680 35 5 v 50 w(transform)46 b Fw(\()p @@ -19853,12 +19862,12 @@ Fz(friend)d FI(of)j Fz(Transform)p FI(.)150 806 y FH(17.1)68 b(Data)46 b(Mem)l(b)t(ers)3071 1053 y FI([Priv)-5 b(ate)32 b(v)-5 b(ariable])-3599 b Fc(Matrix)40 b Fd(matrix)390 -1163 y FI(4)21 b FG(\002)f FI(4)30 b(matrix)h(of)g Fz(real)e -FI(represen)m(ting)h(the)h(actual)h(transformation)e(matrix.)150 -1428 y FH(17.2)68 b(Global)46 b(V)-11 b(ariables)46 b(and)e(Constan)l -(ts)3371 1675 y FI([V)-8 b(ariable])-3598 b Fc(Transform)41 -b Fd(user)p 876 1675 35 5 v 50 w(transform)390 1784 y -FI(Curren)m(tly)28 b(has)g(no)g(function.)40 b(It)28 +1163 y FI(A)30 b(4)21 b FG(\002)f FI(4)31 b(matrix)g(of)f +Fz(real)f FI(represen)m(ting)i(the)f(actual)i(transformation)f(matrix.) +150 1428 y FH(17.2)68 b(Global)46 b(V)-11 b(ariables)46 +b(and)e(Constan)l(ts)3371 1675 y FI([V)-8 b(ariable])-3598 +b Fc(Transform)41 b Fd(user)p 876 1675 35 5 v 50 w(transform)390 +1784 y FI(Curren)m(tly)28 b(has)g(no)g(function.)40 b(It)28 b(is)g(in)m(tended)h(to)g(b)s(e)e(used)h(for)g(transforming)g(the)g(co) s(ordinates)390 1894 y(of)f Fz(Points)f FI(b)s(et)m(w)m(een)i(the)f(w)m (orld)g(co)s(ordinate)h(system)f(\(W)m(CS\))h(and)f(a)g(user)g(co)s @@ -19977,7 +19986,7 @@ Fu(m)2021 3868 y FA(2)2150 3854 y Fu(o)2194 3868 y FA(2)2328 3854 y Fu(p)2374 3868 y FA(2)2429 3471 y Fh(1)2429 3617 y(C)2429 3667 y(C)2429 3720 y(A)630 4025 y Fz(T0)47 b(*=)g(T1)h(*=)f -(T2)g(*=)g(r;)390 4239 y FI(No)m(w,)493 4674 y Fu(M)581 +(T2)g(*=)g(r;)390 4156 y FI(No)m(w,)493 4674 y Fu(M)581 4688 y FA(0)644 4674 y FI(=)740 4455 y Fh(0)740 4601 y(B)740 4651 y(B)740 4704 y(@)844 4509 y FI(5)p Fu(a)937 4523 y FA(0)1102 4509 y FI(5)p Fu(b)1186 4523 y FA(0)1339 @@ -20028,79 +20037,79 @@ b(T)-8 b(ransform)30 b(Reference)2176 b(90)390 299 y(This)36 b(function)g(is)h(not)f(curren)m(tly)h(used)f(an)m(ywhere,)i(but)e(it)h (ma)m(y)g(turn)e(out)i(to)g(b)s(e)f(useful)g(for)390 -408 y(something.)3094 584 y([)p Fz(const)29 b FI(op)s(erator])-3599 +408 y(something.)3094 591 y([)p Fz(const)29 b FI(op)s(erator])-3599 b Fc(Transform)41 b Fd(op)s(erator*)k Fw(\()p Fz(const)29 -b(real)h Fp(r)11 b Fw(\))390 693 y FI(Multiplication)37 +b(real)h Fp(r)11 b Fw(\))390 701 y FI(Multiplication)37 b(of)e(a)g Fz(Transform)e FI(b)m(y)i(a)g(scalar)h(without)f(assignmen)m -(t.)55 b(The)35 b(return)e(v)-5 b(alue)36 b(is)390 803 +(t.)55 b(The)35 b(return)e(v)-5 b(alue)36 b(is)390 810 y(a)f Fz(Transform)d Fu(A)p FI(.)54 b(If)34 b Fz(this.matrix)e -FI(has)i(elemen)m(ts)i Fu(E)2345 817 y Fk(T)2398 803 +FI(has)i(elemen)m(ts)i Fu(E)2345 824 y Fk(T)2398 810 y FI(,)g(then)e Fz(A.matrix)e FI(has)j(elemen)m(ts)h -Fu(E)3696 817 y Fk(A)390 912 y FI(suc)m(h)30 b(that)h -Fu(E)859 926 y Fk(A)938 912 y FI(=)25 b Fu(r)e FG(\002)d -Fu(E)1256 926 y Fk(T)1339 912 y FI(for)30 b(all)h Fu(E)5 -b FI(.)3338 1088 y([Op)s(erator])-3600 b Fc(Transform)41 +Fu(E)3696 824 y Fk(A)390 920 y FI(suc)m(h)30 b(that)h +Fu(E)859 934 y Fk(A)938 920 y FI(=)25 b Fu(r)e FG(\002)d +Fu(E)1256 934 y Fk(T)1339 920 y FI(for)30 b(all)h Fu(E)5 +b FI(.)3338 1103 y([Op)s(erator])-3600 b Fc(Transform)41 b Fd(op)s(erator*=)k Fw(\()p Fz(const)30 b(Transform&)d -Fp(t)11 b Fw(\))390 1197 y FI(P)m(erforms)34 b(matrix)h(m)m +Fp(t)11 b Fw(\))390 1212 y FI(P)m(erforms)34 b(matrix)h(m)m (ultiplication)i(on)e Fz(matrix)e FI(and)h Fz(t.matrix)p -FI(.)51 b(The)34 b(result)h(is)f(assigned)h(to)390 1307 +FI(.)51 b(The)34 b(result)h(is)f(assigned)h(to)390 1322 y Fz(matrix)p FI(.)k Ft(t)32 b FI(is)e(returned,)f FC(not)39 b Fz(*this)p FI(!)g(This)29 b(mak)m(es)i(it)f(p)s(ossible)f(to)i(c)m -(hain)f(in)m(v)m(o)s(cations)i(of)e(this)390 1416 y(function:)630 -1548 y Fz(Transform)45 b(a;)630 1657 y(a.shift\(1,)g(1,)i(1\);)630 -1767 y(Transform)e(b;)630 1876 y(b.rotate\(0,)g(90\);)630 -1986 y(Transform)g(c;)630 2096 y(c.shear\(5,)g(4\);)630 -2205 y(Transform)g(d;)630 2315 y(d.scale\(3,)g(4,)i(5\);)390 -2446 y FI(Let)31 b Fu(a)601 2460 y Fk(m)664 2446 y FI(,)f -Fu(b)758 2460 y Fk(m)821 2446 y FI(,)h(and)f Fu(c)1093 -2460 y Fk(m)1186 2446 y FI(stand)g(for)g Fz(a.matrix)p +(hain)f(in)m(v)m(o)s(cations)i(of)e(this)390 1431 y(function:)630 +1565 y Fz(Transform)45 b(a;)630 1675 y(a.shift\(1,)g(1,)i(1\);)630 +1784 y(Transform)e(b;)630 1894 y(b.rotate\(0,)g(90\);)630 +2004 y(Transform)g(c;)630 2113 y(c.shear\(5,)g(4\);)630 +2223 y(Transform)g(d;)630 2332 y(d.scale\(3,)g(4,)i(5\);)390 +2466 y FI(Let)31 b Fu(a)601 2480 y Fk(m)664 2466 y FI(,)f +Fu(b)758 2480 y Fk(m)821 2466 y FI(,)h(and)f Fu(c)1093 +2480 y Fk(m)1186 2466 y FI(stand)g(for)g Fz(a.matrix)p FI(,)f Fz(b.matrix)p FI(,)f Fz(c.matrix)p FI(,)g(and)i -Fz(d.matrix)e FI(resp)s(ec-)390 2556 y(tiv)m(ely:)593 -2903 y Fu(a)641 2917 y Fk(m)729 2903 y FI(=)825 2684 -y Fh(0)825 2830 y(B)825 2880 y(B)825 2933 y(@)913 2738 -y FI(1)91 b(0)h(0)f(0)913 2848 y(0)g(1)h(0)f(0)913 2957 -y(0)g(0)h(1)f(0)913 3067 y(1)g(1)h(1)f(1)1383 2684 y -Fh(1)1383 2830 y(C)1383 2880 y(C)1383 2933 y(A)1898 2903 -y Fu(b)1937 2917 y Fk(m)2025 2903 y FI(=)2121 2684 y -Fh(0)2121 2830 y(B)2121 2880 y(B)2121 2933 y(@)2290 2738 +Fz(d.matrix)e FI(resp)s(ec-)390 2576 y(tiv)m(ely:)593 +2933 y Fu(a)641 2947 y Fk(m)729 2933 y FI(=)825 2714 +y Fh(0)825 2860 y(B)825 2910 y(B)825 2963 y(@)913 2768 +y FI(1)91 b(0)h(0)f(0)913 2878 y(0)g(1)h(0)f(0)913 2987 +y(0)g(0)h(1)f(0)913 3097 y(1)g(1)h(1)f(1)1383 2714 y +Fh(1)1383 2860 y(C)1383 2910 y(C)1383 2963 y(A)1898 2933 +y Fu(b)1937 2947 y Fk(m)2025 2933 y FI(=)2121 2714 y +Fh(0)2121 2860 y(B)2121 2910 y(B)2121 2963 y(@)2290 2768 y FI(0)p Fu(:)p FI(5)218 b(0)p Fu(:)p FI(5)138 b(0)p -Fu(:)p FI(707)93 b(0)2245 2848 y(0)p Fu(:)p FI(146)128 +Fu(:)p FI(707)93 b(0)2245 2878 y(0)p Fu(:)p FI(146)128 b(0)p Fu(:)p FI(854)103 b FG(\000)p FI(0)p Fu(:)p FI(5)f(0)2209 -2957 y FG(\000)p FI(0)p Fu(:)p FI(854)93 b(0)p Fu(:)p -FI(146)138 b(0)p Fu(:)p FI(5)g(0)2325 3067 y(0)289 b(0)253 -b(0)172 b(1)3235 2684 y Fh(1)3235 2830 y(C)3235 2880 -y(C)3235 2933 y(A)768 3419 y Fu(c)807 3433 y Fk(m)896 -3419 y FI(=)992 3200 y Fh(0)992 3346 y(B)992 3396 y(B)992 -3449 y(@)1102 3254 y FI(1)114 b(12)92 b(14)g(0)1079 3364 -y(10)115 b(1)f(15)92 b(0)1079 3474 y(11)g(13)115 b(1)f(0)1102 -3583 y(0)137 b(0)g(0)114 b(1)1686 3200 y Fh(1)1686 3346 -y(C)1686 3396 y(C)1686 3449 y(A)2376 3419 y Fu(d)2423 -3433 y Fk(m)2502 3200 y Fh(0)2502 3346 y(B)2502 3396 -y(B)2502 3449 y(@)2590 3254 y FI(3)91 b(0)g(0)h(0)2590 -3364 y(0)f(4)g(0)h(0)2590 3474 y(0)f(0)g(5)h(0)2590 3583 -y(0)f(0)g(0)h(1)3059 3200 y Fh(1)3059 3346 y(C)3059 3396 -y(C)3059 3449 y(A)390 3780 y Fz(a)30 b(*=)g(b)g(*=)g(c)g(*=)f(d;)390 -3890 y(a)p FI(,)h Fz(b)p FI(,)h(and)e Fz(c)h FI(are)h(transformed)f(b)m +2987 y FG(\000)p FI(0)p Fu(:)p FI(854)93 b(0)p Fu(:)p +FI(146)138 b(0)p Fu(:)p FI(5)g(0)2325 3097 y(0)289 b(0)253 +b(0)172 b(1)3235 2714 y Fh(1)3235 2860 y(C)3235 2910 +y(C)3235 2963 y(A)733 3459 y Fu(c)772 3473 y Fk(m)860 +3459 y FI(=)956 3240 y Fh(0)956 3386 y(B)956 3436 y(B)956 +3489 y(@)1067 3294 y FI(1)114 b(12)92 b(14)g(0)1044 3404 +y(10)115 b(1)f(15)92 b(0)1044 3514 y(11)g(13)114 b(1)h(0)1067 +3623 y(0)137 b(0)f(0)115 b(1)1650 3240 y Fh(1)1650 3386 +y(C)1650 3436 y(C)1650 3489 y(A)2306 3459 y Fu(d)2353 +3473 y Fk(m)2441 3459 y FI(=)2537 3240 y Fh(0)2537 3386 +y(B)2537 3436 y(B)2537 3489 y(@)2625 3294 y FI(3)91 b(0)h(0)f(0)2625 +3404 y(0)g(4)h(0)f(0)2625 3514 y(0)g(0)h(5)f(0)2625 3623 +y(0)g(0)h(0)f(1)3095 3240 y Fh(1)3095 3386 y(C)3095 3436 +y(C)3095 3489 y(A)390 3832 y Fz(a)30 b(*=)g(b)g(*=)g(c)g(*=)f(d;)390 +3942 y(a)p FI(,)h Fz(b)p FI(,)h(and)e Fz(c)h FI(are)h(transformed)f(b)m (y)g Fz(d)p FI(,)g(whic)m(h)g(remains)h(unc)m(hanged.)390 -4108 y(No)m(w,)600 4455 y Fu(a)648 4469 y Fk(m)736 4455 -y FI(=)832 4236 y Fh(0)832 4383 y(B)832 4432 y(B)832 -4486 y(@)920 4291 y FI(3)91 b(0)g(0)h(0)920 4400 y(0)f(4)g(0)h(0)920 -4510 y(0)f(0)g(5)h(0)920 4620 y(3)f(4)g(5)h(1)1389 4236 -y Fh(1)1389 4383 y(C)1389 4432 y(C)1389 4486 y(A)1912 -4455 y Fu(b)1951 4469 y Fk(m)2039 4455 y FI(=)2135 4236 -y Fh(0)2135 4383 y(B)2135 4432 y(B)2135 4486 y(@)2304 -4291 y FI(1)p Fu(:)p FI(5)253 b(2)185 b(3)p Fu(:)p FI(54)105 -b(0)2223 4400 y FG(\000)p FI(0)p Fu(:)p FI(439)115 b(3)p +4076 y(No)m(w,)600 4433 y Fu(a)648 4447 y Fk(m)736 4433 +y FI(=)832 4214 y Fh(0)832 4360 y(B)832 4410 y(B)832 +4463 y(@)920 4268 y FI(3)91 b(0)g(0)h(0)920 4378 y(0)f(4)g(0)h(0)920 +4487 y(0)f(0)g(5)h(0)920 4597 y(3)f(4)g(5)h(1)1389 4214 +y Fh(1)1389 4360 y(C)1389 4410 y(C)1389 4463 y(A)1912 +4433 y Fu(b)1951 4447 y Fk(m)2039 4433 y FI(=)2135 4214 +y Fh(0)2135 4360 y(B)2135 4410 y(B)2135 4463 y(@)2304 +4268 y FI(1)p Fu(:)p FI(5)253 b(2)185 b(3)p Fu(:)p FI(54)105 +b(0)2223 4378 y FG(\000)p FI(0)p Fu(:)p FI(439)115 b(3)p Fu(:)p FI(41)g FG(\000)p FI(2)p Fu(:)p FI(5)92 b(0)2245 -4510 y FG(\000)p FI(2)p Fu(:)p FI(56)115 b(0)p Fu(:)p -FI(586)129 b(2)p Fu(:)p FI(5)e(0)2339 4620 y(0)288 b(0)243 -b(0)162 b(1)3228 4236 y Fh(1)3228 4383 y(C)3228 4432 -y(C)3228 4486 y(A)1455 4971 y Fu(c)1494 4985 y Fk(m)1583 -4971 y FI(=)1679 4753 y Fh(0)1679 4899 y(B)1679 4949 -y(B)1679 5002 y(@)1789 4807 y FI(3)114 b(48)92 b(70)g(0)1766 -4917 y(30)115 b(4)f(75)92 b(0)1766 5026 y(33)g(52)115 -b(5)f(0)1789 5136 y(0)137 b(0)g(0)114 b(1)2372 4753 y -Fh(1)2372 4899 y(C)2372 4949 y(C)2372 5002 y(A)390 5340 +4487 y FG(\000)p FI(2)p Fu(:)p FI(56)115 b(0)p Fu(:)p +FI(586)129 b(2)p Fu(:)p FI(5)e(0)2339 4597 y(0)288 b(0)243 +b(0)162 b(1)3228 4214 y Fh(1)3228 4360 y(C)3228 4410 +y(C)3228 4463 y(A)1455 4959 y Fu(c)1494 4973 y Fk(m)1583 +4959 y FI(=)1679 4740 y Fh(0)1679 4886 y(B)1679 4936 +y(B)1679 4989 y(@)1789 4794 y FI(3)114 b(48)92 b(70)g(0)1766 +4904 y(30)115 b(4)f(75)92 b(0)1766 5014 y(33)g(52)115 +b(5)f(0)1789 5123 y(0)137 b(0)g(0)114 b(1)2372 4740 y +Fh(1)2372 4886 y(C)2372 4936 y(C)2372 4989 y(A)390 5340 y Fu(d)437 5354 y Fk(m)531 5340 y FI(is)30 b(unc)m(hanged.)p eop end %%Page: 91 103 @@ -20183,7 +20192,7 @@ b(is)g(used)390 2004 y(for)h(comparing)h Fz(Transforms)d FI(and)i(in)g(the)h(function)f Fz(clean\(\))e FI(\(see)k(Section)f (17.13)i([T)-8 b(ransform)390 2113 y(Reference;)31 b(Cleaning],)h(page) -f(98\).)42 b(It)30 b(is)h(curren)m(tly)f(0.00001.)390 +f(99\).)42 b(It)30 b(is)h(curren)m(tly)f(0.00001.)390 2247 y(The)j(v)-5 b(alue)35 b(of)f Fz(epsilon\(\))d FI(should)i(b)s(e)h (smaller)g(when)f Fz(real)g FI(is)h Fz(double)e FI(than)i(when)f Fz(real)g FI(is)390 2357 y Fz(float)p FI(.)39 b(Curren)m(tly)-8 @@ -20194,7 +20203,7 @@ 2600 y Fz(cos\(\))30 b FI(functions.)43 b(Therefore,)32 b(neither)f Fz(Transform::epsilon\(\))26 b FI(nor)k Fz (Point::epsilon\(\))390 2710 y FI(\(see)23 b(Section)h(20.10)g([P)m -(oin)m(t)g(Reference;)i(Returning)c(Information],)j(page)e(120\))h(can) +(oin)m(t)g(Reference;)i(Returning)c(Information],)j(page)e(121\))h(can) f(b)s(e)f(as)g(small)390 2819 y(as)32 b(I'd)f(lik)m(e)i(them)f(to)g(b)s (e.)45 b(If)31 b(they)h(are)g(t)m(w)m(o)h(small,)g(the)f(op)s(erations) g(that)g(test)h(for)e(equalit)m(y)j(of)390 2929 y Fz(Transforms)28 @@ -20279,101 +20288,107 @@ %%Page: 94 106 TeXDict begin 94 105 bop 150 -116 a FI(Chapter)30 b(17:)41 b(T)-8 b(ransform)30 b(Reference)2176 b(94)3350 299 y([F)-8 -b(unction])-3599 b Fc(Transform)41 b Fd(shear\(real)i -Fp(xy)p Fz(,)30 b Fy([)p Fz(real)g Fp(xz)40 b Fz(=)30 -b(0,)g Fy([)p Fz(real)f Fp(yx)41 b Fz(=)30 b(0,)f Fy([)p -Fz(real)h Fp(yz)40 b Fz(=)30 b(0,)565 408 y Fy([)p Fz(real)g -Fp(zx)40 b Fz(=)30 b(0,)g Fy([)p Fz(real)g Fp(zy)40 b -Fz(=)30 b(0)p Fy(]]]]])p Fw(\))390 518 y FI(Creates)j(a)g +b(unction])-3599 b Fc(Transform)41 b Fd(shear)k Fw(\()p +Fz(real)29 b Fp(xy)p Fz(,)h Fy([)p Fz(real)f Fp(xz)41 +b Fz(=)30 b(0,)f Fy([)p Fz(real)h Fp(yx)40 b Fz(=)30 +b(0,)g Fy([)p Fz(real)g Fp(yz)40 b Fz(=)30 b(0,)565 408 +y Fy([)p Fz(real)g Fp(zx)40 b Fz(=)30 b(0,)g Fy([)p Fz(real)g +Fp(zy)40 b Fz(=)30 b(0)p Fy(]]]]])p Fw(\))390 518 y FI(Creates)j(a)g Fz(Transform)28 b(t)k FI(represen)m(ting)h(the)f(shearing)h(op)s (eration)g(lo)s(cally)-8 b(,)35 b(m)m(ultiplies)e Fz(*this)390 628 y FI(b)m(y)d Fz(t)p FI(,)h(and)e(returns)g Fz(t)p -FI(.)390 767 y(When)j(applied)g(to)g(a)h Fz(Point)p FI(,)e(shearing)h +FI(.)390 769 y(When)j(applied)g(to)g(a)h Fz(Point)p FI(,)e(shearing)h (causes)h(eac)m(h)g(co)s(ordinate)g(to)g(b)s(e)e(mo)s(di\014ed)g -(according)390 877 y(to)g(the)g(v)-5 b(alues)30 b(of)h(the)f(other)h +(according)390 879 y(to)g(the)g(v)-5 b(alues)30 b(of)h(the)f(other)h (co)s(ordinates)g(and)f(the)h(argumen)m(ts)f(to)h Fz(shear)p -FI(:)630 1016 y Fz(Point)46 b(p\(x,y,z\);)630 1126 y(Transform)f(t;)630 -1235 y(t.shear\(a,)g(b,)i(c,)g(d,)h(e,)f(f\);)630 1345 -y(p)g(*=)h(t;)630 1478 y FG(\))751 1484 y Fu(p)55 b FI(=)h(\(\()p +FI(:)630 1020 y Fz(Point)46 b(p\(x,y,z\);)630 1130 y(Transform)f(t;)630 +1240 y(t.shear\(a,)g(b,)i(c,)g(d,)h(e,)f(f\);)630 1349 +y(p)g(*=)h(t;)630 1594 y FG(\))751 1600 y Fu(p)55 b FI(=)h(\(\()p Fu(x)51 b FI(+)f Fu(ay)k FI(+)c Fu(bz)t FI(\))p Fu(;)c FI(\()p Fu(y)54 b FI(+)c Fu(cx)h FI(+)f Fu(dz)t FI(\))p Fu(;)d FI(\()p Fu(z)55 b FI(+)50 b Fu(ex)h FI(+)f Fu(f)10 -b(y)s FI(\)\))630 1843 y Fz(Transform)45 b(t;)630 1953 -y(t.shear\(2,)g(3,)i(4,)g(5,)h(6,)f(7\);)630 2062 y(t.show\("t:"\);)650 -2176 y FG(a)773 2172 y Fz(t:)916 2281 y(1)334 b(4)g(6)g(0)916 -2391 y(2)g(1)g(7)g(0)916 2501 y(3)g(5)g(1)g(0)916 2610 -y(0)g(0)g(0)g(1)3350 2804 y FI([F)-8 b(unction])-3599 +b(y)s FI(\)\))630 2185 y Fz(Transform)45 b(t;)630 2294 +y(t.shear\(2,)g(3,)i(4,)g(5,)h(6,)f(7\);)630 2404 y(t.show\("t:"\);)650 +2517 y FG(a)773 2513 y Fz(t:)916 2623 y(1)334 b(4)g(6)g(0)916 +2733 y(2)g(1)g(7)g(0)916 2842 y(3)g(5)g(1)g(0)916 2952 +y(0)g(0)g(0)g(1)3350 3150 y FI([F)-8 b(unction])-3599 b Fc(Transform)41 b Fd(shift)k Fw(\()p Fz(real)29 b Fp(x)p Fz(,)h Fy([)p Fz(real)g Fp(y)40 b Fz(=)30 b(0,)g Fy([)p Fz(real)g Fp(z)40 b Fz(=)30 b(0)p Fy(]])p Fw(\))3350 -2914 y FI([F)-8 b(unction])-3599 b Fc(Transform)41 b +3260 y FI([F)-8 b(unction])-3599 b Fc(Transform)41 b Fd(shift)k Fw(\()p Fz(const)29 b(Point&)g Fp(p)11 b Fw(\))390 -3024 y FI(These)24 b(functions)f(create)i(a)f Fz(Transform)k(t)c +3370 y FI(These)24 b(functions)f(create)i(a)f Fz(Transform)k(t)c FI(represen)m(ting)g(the)g(shifting)f(op)s(eration)h(lo)s(cally)-8 -b(,)28 b(m)m(ul-)390 3133 y(tiplies)j Fz(*this)e FI(b)m(y)h -Fz(t)p FI(,)h(and)e(returns)h Fz(t)p FI(.)390 3273 y(The)44 +b(,)28 b(m)m(ul-)390 3479 y(tiplies)j Fz(*this)e FI(b)m(y)h +Fz(t)p FI(,)h(and)e(returns)h Fz(t)p FI(.)390 3621 y(The)44 b(v)m(ersion)h(with)f(the)h(argumen)m(t)g Fz(const)29 b(Point&)43 b Ft(p)j FI(passes)f(the)f(up)s(dated)g(x,)k(y)-8 -b(,)48 b(and)c(z-)390 3382 y(co)s(ordinates)e(of)f Ft(p)i +b(,)48 b(and)c(z-)390 3730 y(co)s(ordinates)e(of)f Ft(p)i FI(\(from)e Fz(world_coordinates)p FI(\))c(to)42 b(the)f(v)m(ersion)h -(with)e(three)i Fz(real)e FI(argu-)390 3492 y(men)m(ts.)390 -3631 y(When)24 b(a)h Fz(Transform)d FI(represen)m(ting)j(a)g(single)g +(with)e(three)i Fz(real)e FI(argu-)390 3840 y(men)m(ts.)390 +3981 y(When)24 b(a)h Fz(Transform)d FI(represen)m(ting)j(a)g(single)g (shifting)f(op)s(eration)h(only)g(is)g(applied)f(to)h(a)g -Fz(Point)p FI(,)390 3741 y(the)31 b Ft(x)p FI(,)f Ft(y)p +Fz(Point)p FI(,)390 4091 y(the)31 b Ft(x)p FI(,)f Ft(y)p FI(,)h(and)e Ft(z)36 b FI(argumen)m(ts)31 b(are)g(added)e(to)i(the)g (corresp)s(onding)e(co)s(ordinates)i(of)g(the)f Fz(Point)p -FI(:)630 3880 y Fz(Point)46 b(p\(x,y,z\);)630 3990 y(Transform)f(t;)630 -4100 y(t.shift\(a,)g(b,)i(c\);)630 4209 y(p)g(*=)h(t;)630 -4343 y FG(\))751 4349 y Fu(p)55 b FI(=)h(\()p Fu(x)51 +FI(:)630 4233 y Fz(Point)46 b(p\(x,y,z\);)630 4342 y(Transform)f(t;)630 +4452 y(t.shift\(a,)g(b,)i(c\);)630 4561 y(p)g(*=)h(t;)630 +4807 y FG(\))751 4813 y Fu(p)55 b FI(=)h(\()p Fu(x)51 b FI(+)f Fu(a;)c(y)53 b FI(+)d Fu(b;)c(z)55 b FI(+)50 -b Fu(c)p FI(\))3350 4543 y([F)-8 b(unction])-3599 b Fc(Transform)41 -b Fd(shift)p 888 4543 35 5 v 50 w(times)k Fw(\()p Fz(real)29 +b Fu(c)p FI(\))3350 5011 y([F)-8 b(unction])-3599 b Fc(Transform)41 +b Fd(shift)p 888 5011 35 5 v 50 w(times)k Fw(\()p Fz(real)29 b Fp(x)p Fz(,)h Fy([)p Fz(real)g Fp(y)40 b Fz(=)30 b(1,)g Fy([)p Fz(real)g Fp(z)40 b Fz(=)30 b(1)p Fy(]])p Fw(\))390 -4653 y FI(Multiplies)82 b(the)g(corresp)s(onding)e(elemen)m(ts)j(of)e +5121 y FI(Multiplies)82 b(the)g(corresp)s(onding)e(elemen)m(ts)j(of)e Fz(matrix)f FI(b)m(y)h(the)g Fz(real)f FI(argumen)m(ts,)390 -4762 y(i.e.,)67 b Fz(matrix[3][0])55 b FI(is)j(m)m(ultiplied)h(b)m(y)g +5230 y(i.e.,)67 b Fz(matrix[3][0])55 b FI(is)j(m)m(ultiplied)h(b)m(y)g Ft(x)p FI(,)65 b Fz(matrix[3][1])55 b FI(is)k(m)m(ultiplied)g(b)m(y)f -Ft(y)p FI(,)66 b(and)390 4872 y Fz(matrix[3][2])27 b +Ft(y)p FI(,)66 b(and)390 5340 y Fz(matrix[3][2])27 b FI(is)j(m)m(ultiplied)h(b)m(y)g Ft(z)p FI(.)41 b(Returns)29 -b Fz(*this)p FI(.)390 5011 y(Ordinary)42 b(shifting)i(is)f(additiv)m -(e,)49 b(so)43 b(a)h(sp)s(ecial)h(function)e(is)g(needed)h(to)g(m)m -(ultiply)g(the)g(ele-)390 5121 y(men)m(ts)34 b(of)g Fz(matrix)e -FI(resp)s(onsible)g(for)i(shifting.)50 b(The)34 b(e\013ect)h(of)f -Fz(shift_times\(\))c FI(is)j(to)i(mo)s(dify)390 5230 -y(a)f Fz(Transform)c FI(represen)m(ting)k(a)g(shifting)f(op)s(eration)h -(suc)m(h)f(that)h(the)f(direction)h(of)f(the)h(shift)f(is)390 -5340 y(main)m(tained,)e(while)g(c)m(hanging)g(the)g(distance.)p -eop end +b Fz(*this)p FI(.)p eop end %%Page: 95 107 TeXDict begin 95 106 bop 150 -116 a FI(Chapter)30 b(17:)41 -b(T)-8 b(ransform)30 b(Reference)2176 b(95)390 299 y(If)44 -b(the)g Fz(Transform)d FI(represen)m(ts)j(other)g(op)s(erations)h(in)e -(addition)i(to)f(shifting,)k(e.g.,)h(scaling)390 408 -y(and/or)30 b(shearing,)h(the)f(e\013ect)i(of)f Fz(shift_times\(\))c -FI(ma)m(y)k(b)s(e)e(unpredictable.)3115 375 y FA(1)630 -538 y Fz(Transform)45 b(t;)630 648 y(t.shift\(1,)g(2,)i(3\);)630 -937 y FG(\))751 943 y Fz(t)p Fu(:)p Fz(matrix)24 b FI(=)1232 -724 y Fh(0)1232 870 y(B)1232 920 y(B)1232 973 y(@)1320 -778 y FI(1)91 b(0)g(0)h(0)1320 888 y(0)f(1)g(0)h(0)1320 -998 y(0)f(0)g(1)h(0)1320 1107 y(1)f(2)g(3)h(1)1789 724 -y Fh(1)1789 870 y(C)1789 920 y(C)1789 973 y(A)630 1283 -y Fz(t.shift_times\(2,)43 b(2,)48 b(2\);)630 1572 y FG(\))751 -1578 y Fz(t)p Fu(:)p Fz(matrix)24 b FI(=)1232 1359 y -Fh(0)1232 1505 y(B)1232 1555 y(B)1232 1608 y(@)1320 1414 -y FI(1)91 b(0)g(0)h(0)1320 1523 y(0)f(1)g(0)h(0)1320 -1633 y(0)f(0)g(1)h(0)1320 1742 y(2)f(4)g(6)h(1)1789 1359 -y Fh(1)1789 1505 y(C)1789 1555 y(C)1789 1608 y(A)630 -1918 y Fz(Rectangle)45 b(r[4];)630 2028 y(r[0].set\(origin,)e(1,)48 -b(1,)f(90\);)630 2137 y(r[3])g(=)g(r[2])g(=)g(r[1])g(=)g(r[0];)630 -2247 y(Transform)e(t;)630 2357 y(t.shift\(1.5,)f(1.5\);)630 -2466 y(r[0])j(*=)g(t;)630 2576 y(r[0].draw\(\);)630 2685 -y(t.shift_times\(1.5,)c(1.5\);)630 2795 y(r[1])k(*=)g(t;)630 -2905 y(r[1].draw\(\);)630 3014 y(t.shift_times\(1.5,)c(1.5\);)630 -3124 y(r[2])k(*=)g(t;)630 3233 y(r[2].draw\(\);)630 3343 -y(t.shift_times\(1.5,)c(1.5\);)630 3453 y(r[3])k(*=)g(t;)630 -3562 y(r[3].draw\(\);)1225 5054 y @beginspecial 6 @llx -6 @lly 180 @urx 180 @ury 1740 @rwi @setspecial +b(T)-8 b(ransform)30 b(Reference)2176 b(95)390 299 y(Ordinary)42 +b(shifting)i(is)f(additiv)m(e,)49 b(so)43 b(a)h(sp)s(ecial)h(function)e +(is)g(needed)h(to)g(m)m(ultiply)g(the)g(ele-)390 408 +y(men)m(ts)34 b(of)g Fz(matrix)e FI(resp)s(onsible)g(for)i(shifting.)50 +b(The)34 b(e\013ect)h(of)f Fz(shift_times\(\))c FI(is)j(to)i(mo)s(dify) +390 518 y(a)f Fz(Transform)c FI(represen)m(ting)k(a)g(shifting)f(op)s +(eration)h(suc)m(h)f(that)h(the)f(direction)h(of)f(the)h(shift)f(is)390 +628 y(main)m(tained,)e(while)g(c)m(hanging)g(the)g(distance.)390 +859 y(If)44 b(the)g Fz(Transform)d FI(represen)m(ts)j(other)g(op)s +(erations)h(in)e(addition)i(to)f(shifting,)k(e.g.,)h(scaling)390 +968 y(and/or)30 b(shearing,)h(the)f(e\013ect)i(of)f Fz(shift_times\(\)) +c FI(ma)m(y)k(b)s(e)e(unpredictable.)3115 935 y FA(1)630 +1200 y Fz(Transform)45 b(t;)630 1309 y(t.shift\(1,)g(2,)i(3\);)630 +1753 y FG(\))751 1759 y Fz(t)p Fu(:)p Fz(matrix)24 b +FI(=)1232 1540 y Fh(0)1232 1686 y(B)1232 1736 y(B)1232 +1789 y(@)1320 1594 y FI(1)91 b(0)g(0)h(0)1320 1704 y(0)f(1)g(0)h(0)1320 +1813 y(0)f(0)g(1)h(0)1320 1923 y(1)f(2)g(3)h(1)1789 1540 +y Fh(1)1789 1686 y(C)1789 1736 y(C)1789 1789 y(A)630 +2311 y Fz(t.shift_times\(2,)43 b(2,)48 b(2\);)630 2754 +y FG(\))751 2760 y Fz(t)p Fu(:)p Fz(matrix)24 b FI(=)1232 +2542 y Fh(0)1232 2688 y(B)1232 2738 y(B)1232 2791 y(@)1320 +2596 y FI(1)91 b(0)g(0)h(0)1320 2705 y(0)f(1)g(0)h(0)1320 +2815 y(0)f(0)g(1)h(0)1320 2925 y(2)f(4)g(6)h(1)1789 2542 +y Fh(1)1789 2688 y(C)1789 2738 y(C)1789 2791 y(A)630 +3313 y Fz(Rectangle)45 b(r[4];)630 3422 y(r[0].set\(origin,)e(1,)48 +b(1,)f(90\);)630 3532 y(r[3])g(=)g(r[2])g(=)g(r[1])g(=)g(r[0];)630 +3642 y(Transform)e(t;)630 3751 y(t.shift\(1.5,)f(1.5\);)630 +3861 y(r[0])j(*=)g(t;)630 3970 y(r[0].draw\(\);)630 4080 +y(t.shift_times\(1.5,)c(1.5\);)630 4189 y(r[1])k(*=)g(t;)630 +4299 y(r[1].draw\(\);)630 4409 y(t.shift_times\(1.5,)c(1.5\);)630 +4518 y(r[2])k(*=)g(t;)630 4628 y(r[2].draw\(\);)630 4737 +y(t.shift_times\(1.5,)c(1.5\);)630 4847 y(r[3])k(*=)g(t;)630 +4957 y(r[3].draw\(\);)p 150 5241 1200 4 v 199 5308 a +FA(1)275 5340 y Fr(F)-6 b(or)25 b(a)h(p)r(erson,)h(not)e(in)h(the)f +(sense)h(of)h(the)e(program)h(b)r(eha)n(ving)g(unpredictably)-6 +b(.)p eop end +%%Page: 96 108 +TeXDict begin 96 107 bop 150 -116 a FI(Chapter)30 b(17:)41 +b(T)-8 b(ransform)30 b(Reference)2176 b(96)1225 1450 +y @beginspecial 6 @llx 6 @lly 180 @urx 180 @ury 1740 +@rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.73 %!PS %%BoundingBox: 6 6 180 180 @@ -20432,24 +20447,22 @@ %%EOF %%EndDocument - @endspecial 1748 5164 a FI(Figure)31 b(73.)p 150 5241 -1200 4 v 199 5308 a FA(1)275 5340 y Fr(F)-6 b(or)25 b(a)h(p)r(erson,)h -(not)e(in)h(the)f(sense)h(of)h(the)e(program)h(b)r(eha)n(ving)g -(unpredictably)-6 b(.)p eop end -%%Page: 96 108 -TeXDict begin 96 107 bop 150 -116 a FI(Chapter)30 b(17:)41 -b(T)-8 b(ransform)30 b(Reference)2176 b(96)630 299 y -Fz(Cuboid)46 b(c\(origin,)f(1,)j(1,)f(1\);)630 408 y(c.draw\(\);)630 -518 y(Transform)e(t;)630 628 y(t.rotate\(30,)f(30,)j(30\);)630 -737 y(t.shift\(1,)e(0,)i(1\);)630 847 y(c)g(*=)h(t;)630 -956 y(c.draw\(\);)630 1066 y(t.shift_times\(1.5,)43 b(0,)k(1.5\);)630 -1176 y(c)g(*=)h(t;)630 1285 y(c.draw\(\);)630 1395 y -(t.shift_times\(1.5,)43 b(0,)k(1.5\);)630 1504 y(c)g(*=)h(t;)630 -1614 y(c.draw\(\);)630 1724 y(t.shift_times\(1.5,)43 -b(0,)k(1.5\);)630 1833 y(c)g(*=)h(t;)630 1943 y(c.draw\(\);)630 -2052 y(t.shift_times\(1.5,)43 b(0,)k(1.5\);)630 2162 -y(c)g(*=)h(t;)630 2271 y(c.draw\(\);)1421 3959 y @beginspecial --97 @llx -127 @lly 30 @urx 63 @ury 1270 @rwi @setspecial + @endspecial 1748 1560 a(Figure)31 b(73.)630 3367 y Fz(Cuboid)46 +b(c\(origin,)f(1,)j(1,)f(1\);)630 3477 y(c.draw\(\);)630 +3587 y(Transform)e(t;)630 3696 y(t.rotate\(30,)f(30,)j(30\);)630 +3806 y(t.shift\(1,)e(0,)i(1\);)630 3915 y(c)g(*=)h(t;)630 +4025 y(c.draw\(\);)630 4134 y(t.shift_times\(1.5,)43 +b(0,)k(1.5\);)630 4244 y(c)g(*=)h(t;)630 4354 y(c.draw\(\);)630 +4463 y(t.shift_times\(1.5,)43 b(0,)k(1.5\);)630 4573 +y(c)g(*=)h(t;)630 4682 y(c.draw\(\);)630 4792 y(t.shift_times\(1.5,)43 +b(0,)k(1.5\);)630 4902 y(c)g(*=)h(t;)630 5011 y(c.draw\(\);)630 +5121 y(t.shift_times\(1.5,)43 b(0,)k(1.5\);)630 5230 +y(c)g(*=)h(t;)630 5340 y(c.draw\(\);)p eop end +%%Page: 97 109 +TeXDict begin 97 108 bop 150 -116 a FI(Chapter)30 b(17:)41 +b(T)-8 b(ransform)30 b(Reference)2176 b(97)1421 1583 +y @beginspecial -97 @llx -127 @lly 30 @urx 63 @ury 1270 +@rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.74 %!PS %%BoundingBox: -97 -127 30 63 @@ -20650,89 +20663,89 @@ %%EOF %%EndDocument - @endspecial 1748 4069 a FI(Figure)31 b(74.)3350 4368 -y([F)-8 b(unction])-3599 b Fc(Transform)41 b Fd(rotate)j -Fw(\()p Fz(real)30 b Fp(x)p Fz(,)f Fy([)p Fz(real)h Fp(y)41 -b Fz(=)30 b(0,)f Fy([)p Fz(real)h Fp(z)41 b Fz(=)30 b(0)p -Fy(]])p Fw(\))390 4477 y FI(Rotation)40 b(around)d(the)i(main)f(axes.) + @endspecial 1748 1693 a(Figure)31 b(74.)3350 1886 y([F)-8 +b(unction])-3599 b Fc(Transform)41 b Fd(rotate)j Fw(\()p +Fz(real)30 b Fp(x)p Fz(,)f Fy([)p Fz(real)h Fp(y)41 b +Fz(=)30 b(0,)f Fy([)p Fz(real)h Fp(z)41 b Fz(=)30 b(0)p +Fy(]])p Fw(\))390 1996 y FI(Rotation)40 b(around)d(the)i(main)f(axes.) 65 b(Creates)40 b(a)e Fz(Transform)28 b(t)38 b FI(represen)m(ting)h -(the)f(rotation,)390 4587 y(m)m(ultiplies)31 b Fz(*this)e +(the)f(rotation,)390 2105 y(m)m(ultiplies)31 b Fz(*this)e FI(b)m(y)h Fz(t)p FI(,)h(and)e(returns)h Fz(t)p FI(.)3350 -4886 y([F)-8 b(unction])-3599 b Fc(Transform)41 b Fd(rotate)j +2299 y([F)-8 b(unction])-3599 b Fc(Transform)41 b Fd(rotate)j Fw(\()p Fz(Point)29 b Fp(p0)p Fz(,)h(Point)f Fp(p1)p Fz(,)g Fy([)p Fz(const)h(real)f Fp(angle)39 b Fz(=)30 -b(180)p Fy(])p Fw(\))390 4996 y FI(Rotation)g(around)d(an)g(arbitrary)h +b(180)p Fy(])p Fw(\))390 2408 y FI(Rotation)g(around)d(an)g(arbitrary)h (axis.)40 b(The)28 b Fz(Point)e FI(argumen)m(ts)j(represen)m(t)f(the)g -(end)f(p)s(oin)m(ts)h(of)390 5105 y(the)35 b(axis,)i(and)d +(end)f(p)s(oin)m(ts)h(of)390 2518 y(the)35 b(axis,)i(and)d Ft(angle)41 b FI(is)35 b(the)h(angle)g(of)f(rotation.)56 -b(Since)35 b(180)2578 5072 y Fi(\016)2652 5105 y FI(rotation)h(is)f -(needed)g(so)g(often,)390 5215 y(180)d(is)e(the)h(default)f(for)g -Ft(angle)p FI(.)p eop end -%%Page: 97 109 -TeXDict begin 97 108 bop 150 -116 a FI(Chapter)30 b(17:)41 -b(T)-8 b(ransform)30 b(Reference)2176 b(97)3350 299 y([F)-8 -b(unction])-3599 b Fc(Transform)41 b Fd(rotate)j Fw(\()p -Fz(const)29 b(Path&)g Fp(p)p Fz(,)h Fy([)p Fz(const)g(real)f -Fp(angle)39 b Fz(=)30 b(180)p Fy(])p Fw(\))390 408 y -FI(Rotation)j(around)d(an)h(arbitrary)g(axis.)44 b Fz(Path)30 -b FI(argumen)m(t.)44 b(The)30 b Fz(Path)g Ft(p)k FI(m)m(ust)d(b)s(e)f -(linear,)j(i.e.,)390 518 y Fz(p.is_linear\(\))38 b FI(m)m(ust)k(return) -e Fz(true)p FI(.)74 b(See)42 b(Section)g(24.15)i([P)m(ath)f(Reference;) -48 b(Querying],)390 628 y(page)31 b(184.)150 873 y FH(17.11)69 -b(Alignmen)l(t)45 b(with)h(an)f(Axis)3350 1113 y FI([F)-8 -b(unction])-3599 b Fc(Transform)41 b Fd(align)p 908 1113 -35 5 v 50 w(with)p 1182 1113 V 49 w(axis)k Fw(\()p Fz(Point)30 +b(Since)35 b(180)2578 2485 y Fi(\016)2652 2518 y FI(rotation)h(is)f +(needed)g(so)g(often,)390 2627 y(180)d(is)e(the)h(default)f(for)g +Ft(angle)p FI(.)3350 2821 y([F)-8 b(unction])-3599 b +Fc(Transform)41 b Fd(rotate)j Fw(\()p Fz(const)29 b(Path&)g +Fp(p)p Fz(,)h Fy([)p Fz(const)g(real)f Fp(angle)39 b +Fz(=)30 b(180)p Fy(])p Fw(\))390 2930 y FI(Rotation)j(around)d(an)h +(arbitrary)g(axis.)44 b Fz(Path)30 b FI(argumen)m(t.)44 +b(The)30 b Fz(Path)g Ft(p)k FI(m)m(ust)d(b)s(e)f(linear,)j(i.e.,)390 +3040 y Fz(p.is_linear\(\))38 b FI(m)m(ust)k(return)e +Fz(true)p FI(.)74 b(See)42 b(Section)g(24.15)i([P)m(ath)f(Reference;)48 +b(Querying],)390 3150 y(page)31 b(185.)150 3418 y FH(17.11)69 +b(Alignmen)l(t)45 b(with)h(an)f(Axis)3350 3667 y FI([F)-8 +b(unction])-3599 b Fc(Transform)41 b Fd(align)p 908 3667 +35 5 v 50 w(with)p 1182 3667 V 49 w(axis)k Fw(\()p Fz(Point)30 b Fp(p0)p Fz(,)f(Point)g Fp(p1)p Fz(,)h Fy([)p Fz(char)f -Fp(axis)40 b Fz(=)30 b('z')p Fy(])p Fw(\))390 1223 y +Fp(axis)40 b Fz(=)30 b('z')p Fy(])p Fw(\))390 3776 y FI(Returns)f(the)i Fz(Transform)d FI(that)j(w)m(ould)f(align)h(the)f (line)h(through)f Ft(p0)37 b FI(and)30 b Ft(p1)37 b FI(with)30 -b(the)h(ma)5 b(jor)390 1332 y(axis)34 b(denoted)f(b)m(y)h(the)f +b(the)h(ma)5 b(jor)390 3886 y(axis)34 b(denoted)f(b)m(y)h(the)f Ft(axis)38 b FI(argumen)m(t.)50 b(The)33 b(default)h(is)f(the)h -(z-axis.)51 b(This)32 b(function)h(is)h(used)390 1442 +(z-axis.)51 b(This)32 b(function)h(is)h(used)390 3996 y(in)c(the)h(functions)f(that)h(\014nd)d(in)m(tersections.)630 -1572 y Fz(Point)46 b(P0\(1,)h(1,)g(1\);)630 1682 y(Point)f(P1\(2,)h(3,) -g(4\);)630 1791 y(P0.draw\(P1\);)630 1901 y(P0.dotlabel\("$P_0$"\);)630 -2011 y(P1.dotlabel\("$P_1$"\);)630 2120 y(Transform)e(t;)630 -2230 y(t.align_with_axis\(P0,)d(P1,)47 b('z'\);)630 2339 -y(P0)g(*=)g(P1)h(*=)f(t;)630 2449 y(t.show\("t:"\);)650 -2563 y FG(a)773 2559 y Fz(t:)869 2668 y(0.949)94 b(-0.169)141 -b(0.267)333 b(0)1060 2778 y(0)142 b(0.845)g(0.535)333 -b(0)821 2887 y(-0.316)94 b(-0.507)141 b(0.802)333 b(0)821 -2997 y(-0.632)94 b(-0.169)189 b(-1.6)333 b(1)630 3106 -y(P0.show\("P0:"\);)650 3220 y FG(a)773 3216 y Fz(P0:)47 -b(\(0,)g(0,)g(0\))630 3326 y(P1.show\("P1:"\);)650 3439 -y FG(a)773 3435 y Fz(P1:)g(\(0,)g(0,)g(3.74\))390 3566 -y FI(The)27 b(follo)m(wing)i(example)f(sho)m(ws)f(ho)m(w)h -Fz(align_with_axis\(\))23 b FI(can)28 b(b)s(e)e(used)h(for)h(putting)f -(plane)390 3675 y(\014gures)j(in)m(to)h(a)g(ma)5 b(jor)30 -b(plane.)630 3806 y Fz(default_focus.set\(2,)42 b(3,)47 -b(-10,)g(2,)g(3,)g(10,)g(10\);)630 3915 y(Circle)f(c\(origin,)f(3,)j -(75,)e(25,)h(6\);)630 4025 y(c.shift\(2,)e(3\);)630 4134 -y(c.draw\(\);)630 4244 y(Point)h(n)i(=)f(c.get_normal\(\);)630 -4354 y(n.shift\(c.get_center\(\)\);)630 4463 y(Transform)e(t;)630 -4573 y(t.align_with_axis\(c.get_)o(cent)o(er\(\))o(,)d(n,)47 -b('y'\);)630 4682 y(t.show\("t:"\);)650 4796 y FG(a)773 -4792 y Fz(t:)725 4902 y(0.686)142 b(0.379)94 b(-0.621)333 -b(0)725 5011 y(0.543)238 b(0.3)142 b(0.784)333 b(0)725 -5121 y(0.483)95 b(-0.875)332 b(0)i(0)869 5230 y(-3)142 -b(-1.66)g(-1.11)333 b(1)630 5340 y(n)47 b(*=)h(c)f(*=)g(t;)p -eop end +4134 y Fz(Point)46 b(P0\(1,)h(1,)g(1\);)630 4244 y(Point)f(P1\(2,)h(3,) +g(4\);)630 4354 y(P0.draw\(P1\);)630 4463 y(P0.dotlabel\("$P_0$"\);)630 +4573 y(P1.dotlabel\("$P_1$"\);)630 4682 y(Transform)e(t;)630 +4792 y(t.align_with_axis\(P0,)d(P1,)47 b('z'\);)630 4902 +y(P0)g(*=)g(P1)h(*=)f(t;)630 5011 y(t.show\("t:"\);)650 +5125 y FG(a)773 5121 y Fz(t:)869 5230 y(0.949)94 b(-0.169)141 +b(0.267)333 b(0)1060 5340 y(0)142 b(0.845)g(0.535)333 +b(0)p eop end %%Page: 98 110 TeXDict begin 98 109 bop 150 -116 a FI(Chapter)30 b(17:)41 -b(T)-8 b(ransform)30 b(Reference)2176 b(98)630 299 y -Fz(c.draw\(\);)630 408 y(c.show\("c:"\);)650 522 y FG(a)773 -518 y Fz(c:)630 628 y(fill_draw_value)44 b(==)j(0)630 -737 y(\(1.31,)f(0,)h(-0.728\))f(..)h(\(1.49,)f(0,)i(-0.171\))d(..)630 -847 y(\(1.44,)h(0,)h(0.413\))f(..)i(\(1.17,)e(0,)h(0.933\))f(..)630 -956 y(\(0.728,)g(0,)h(1.31\))f(..)i(\(0.171,)d(0,)j(1.49\))e(..)630 -1066 y(\(-0.413,)g(0,)h(1.44\))f(..)h(\(-0.933,)f(0,)h(1.17\))f(..)630 -1176 y(\(-1.31,)g(0,)h(0.728\))f(..)h(\(-1.49,)f(0,)h(0.171\))f(..)630 -1285 y(\(-1.44,)g(0,)h(-0.413\))f(..)h(\(-1.17,)f(0,)h(-0.933\))f(..) -630 1395 y(\(-0.728,)g(0,)h(-1.31\))f(..)h(\(-0.171,)f(0,)h(-1.49\))f -(..)630 1504 y(\(0.413,)g(0,)h(-1.44\))f(..)h(\(0.933,)f(0,)h(-1.17\))f -(..)i(cycle;)630 1614 y(n.show\("n:"\);)650 1728 y FG(a)773 -1724 y Fz(n:)f(\(0,)g(1,)g(0\))1075 3762 y @beginspecial --150 @llx -178 @lly 60 @urx 61 @ury 2100 @rwi @setspecial +b(T)-8 b(ransform)30 b(Reference)2176 b(98)821 299 y +Fz(-0.316)94 b(-0.507)141 b(0.802)333 b(0)821 408 y(-0.632)94 +b(-0.169)189 b(-1.6)333 b(1)630 518 y(P0.show\("P0:"\);)650 +632 y FG(a)773 628 y Fz(P0:)47 b(\(0,)g(0,)g(0\))630 +737 y(P1.show\("P1:"\);)650 851 y FG(a)773 847 y Fz(P1:)g(\(0,)g(0,)g +(3.74\))390 1504 y FI(The)27 b(follo)m(wing)i(example)f(sho)m(ws)f(ho)m +(w)h Fz(align_with_axis\(\))23 b FI(can)28 b(b)s(e)e(used)h(for)h +(putting)f(plane)390 1614 y(\014gures)j(in)m(to)h(a)g(ma)5 +b(jor)30 b(plane.)630 2271 y Fz(default_focus.set\(2,)42 +b(3,)47 b(-10,)g(2,)g(3,)g(10,)g(10\);)630 2381 y(Circle)f(c\(origin,)f +(3,)j(75,)e(25,)h(6\);)630 2491 y(c.shift\(2,)e(3\);)630 +2600 y(c.draw\(\);)630 2710 y(Point)h(n)i(=)f(c.get_normal\(\);)630 +2819 y(n.shift\(c.get_center\(\)\);)630 2929 y(Transform)e(t;)630 +3039 y(t.align_with_axis\(c.get_)o(cent)o(er\(\))o(,)d(n,)47 +b('y'\);)630 3148 y(t.show\("t:"\);)650 3262 y FG(a)773 +3258 y Fz(t:)725 3367 y(0.686)142 b(0.379)94 b(-0.621)333 +b(0)725 3477 y(0.543)238 b(0.3)142 b(0.784)333 b(0)725 +3587 y(0.483)95 b(-0.875)332 b(0)i(0)869 3696 y(-3)142 +b(-1.66)g(-1.11)333 b(1)630 3806 y(n)47 b(*=)h(c)f(*=)g(t;)630 +3915 y(c.draw\(\);)630 4025 y(c.show\("c:"\);)650 4138 +y FG(a)773 4134 y Fz(c:)630 4244 y(fill_draw_value)d(==)j(0)630 +4354 y(\(1.31,)f(0,)h(-0.728\))f(..)h(\(1.49,)f(0,)i(-0.171\))d(..)630 +4463 y(\(1.44,)h(0,)h(0.413\))f(..)i(\(1.17,)e(0,)h(0.933\))f(..)630 +4573 y(\(0.728,)g(0,)h(1.31\))f(..)i(\(0.171,)d(0,)j(1.49\))e(..)630 +4682 y(\(-0.413,)g(0,)h(1.44\))f(..)h(\(-0.933,)f(0,)h(1.17\))f(..)630 +4792 y(\(-1.31,)g(0,)h(0.728\))f(..)h(\(-1.49,)f(0,)h(0.171\))f(..)630 +4902 y(\(-1.44,)g(0,)h(-0.413\))f(..)h(\(-1.17,)f(0,)h(-0.933\))f(..) +630 5011 y(\(-0.728,)g(0,)h(-1.31\))f(..)h(\(-0.171,)f(0,)h(-1.49\))f +(..)630 5121 y(\(0.413,)g(0,)h(-1.44\))f(..)h(\(0.933,)f(0,)h(-1.17\))f +(..)i(cycle;)630 5230 y(n.show\("n:"\);)650 5344 y FG(a)773 +5340 y Fz(n:)f(\(0,)g(1,)g(0\))p eop end +%%Page: 99 111 +TeXDict begin 99 110 bop 150 -116 a FI(Chapter)30 b(17:)41 +b(T)-8 b(ransform)30 b(Reference)2176 b(99)1075 1992 +y @beginspecial -150 @llx -178 @lly 60 @urx 61 @ury 2100 +@rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.75 %!PS %%BoundingBox: -150 -178 60 61 @@ -20849,18 +20862,18 @@ %%EOF %%EndDocument - @endspecial 1748 3871 a FI(Figure)31 b(75.)150 4129 -y FH(17.12)69 b(Resetting)3350 4373 y FI([F)-8 b(unction])-3599 -b Fc(void)39 b Fd(reset)45 b Fw(\()p Fz(void)p Fw(\))390 -4482 y FI(Resets)31 b Ft(matrix)37 b FI(to)31 b(the)g(iden)m(tit)m(y)h -(matrix.)150 4740 y FH(17.13)69 b(Cleaning)3350 4984 -y FI([F)-8 b(unction])-3599 b Fc(void)39 b Fd(clean)44 -b Fw(\()p Fz(void)p Fw(\))390 5094 y FI(Sets)30 b(elemen)m(ts)i(in)e -Ft(matrix)37 b FI(whose)30 b(absolute)h(v)-5 b(alues)31 -b(are)g Fu(<)f Fz(epsilon\(\))e FI(to)j(0.)p eop end -%%Page: 99 111 -TeXDict begin 99 110 bop 150 -116 a FI(Chapter)30 b(18:)41 -b(Lab)s(el)31 b(Reference)2365 b(99)150 299 y FE(18)80 + @endspecial 1748 2101 a(Figure)31 b(75.)150 2359 y FH(17.12)69 +b(Resetting)3350 2603 y FI([F)-8 b(unction])-3599 b Fc(void)39 +b Fd(reset)45 b Fw(\()p Fz(void)p Fw(\))390 2712 y FI(Resets)31 +b Ft(matrix)37 b FI(to)31 b(the)g(iden)m(tit)m(y)h(matrix.)150 +2970 y FH(17.13)69 b(Cleaning)3350 3214 y FI([F)-8 b(unction])-3599 +b Fc(void)39 b Fd(clean)44 b Fw(\()p Fz(void)p Fw(\))390 +3323 y FI(Sets)30 b(elemen)m(ts)i(in)e Ft(matrix)37 b +FI(whose)30 b(absolute)h(v)-5 b(alues)31 b(are)g Fu(<)f +Fz(epsilon\(\))e FI(to)j(0.)p eop end +%%Page: 100 112 +TeXDict begin 100 111 bop 150 -116 a FI(Chapter)30 b(18:)41 +b(Lab)s(el)31 b(Reference)2320 b(100)150 299 y FE(18)80 b(Lab)t(el)54 b(Reference)150 741 y FI(Class)30 b Fz(Label)f FI(is)i(de\014ned)e(in)h(`)p Fz(pictures.web)p FI('.)38 b Fz(Point)29 b FI(and)h Fz(Picture)e FI(are)j Fz(friends)d @@ -20869,10 +20882,10 @@ Fz(label\(\))e FI(and)h Fz(dotlabel\(\))e FI(functions,)150 1054 y(whic)m(h)h(are)g(curren)m(tly)h(de\014ned)e(for)h(the)g(classes) h Fz(Point)e FI(and)g Fz(Path)p FI(,)i(and)f(the)g(classes)h(deriv)m -(ed)f(from)150 1163 y(them.)k(See)28 b(Section)h(20.19)h([P)m(oin)m(t)f -(Reference;)h(Lab)s(elling],)f(page)g(137)g(and)e(See)h(Section)h -(24.13)h([P)m(ath)150 1273 y(Reference;)k(Lab)s(elling],)f(page)f(181.) -47 b(They)31 b(are)h(curren)m(tly)g(not)g(de\014ned)f(for)g +(ed)f(from)150 1163 y(them.)j(See)26 b(Section)h(20.19)g([P)m(oin)m(t)h +(Reference;)g(Lab)s(elling],)f(page)g(138,)h(and)d(See)h(Section)g +(24.13)i([P)m(ath)150 1273 y(Reference;)34 b(Lab)s(elling],)f(page)f +(182.)47 b(They)31 b(are)h(curren)m(tly)g(not)g(de\014ned)f(for)g Fz(Solid)p FI(,)g(and)h(its)g(deriv)m(ed)150 1383 y(classes.)42 b(I)30 b(plan)g(to)h(add)f(them)g(for)g Fz(Solid)f FI(so)s(on.)275 1586 y(Users)c(will)h(normally)f(nev)m(er)h(need)f(to)h(declare)h(ob)5 @@ -20921,11 +20934,11 @@ (b)s(e)g(used)f(instead)i(of)390 4917 y(single)i(bac)m(kslashes,)h(in)e (order)g(that)h(single)g(bac)m(kslashes)g(b)s(e)f(written)g(to)h Fz(out_stream)p FI(.)630 5121 y Fz(Point)46 b(P\(1,)h(1,)g(2\);)630 -5230 y(origin.drawarrow\(P\);)630 5340 y(P.label\("$\\\\vecP$"\);)p +5230 y(origin.drawarrow\(P\);)630 5340 y(P.label\("$\\\\vec{P}$"\);)p eop end -%%Page: 100 112 -TeXDict begin 100 111 bop 150 -116 a FI(Chapter)30 b(18:)41 -b(Lab)s(el)31 b(Reference)2320 b(100)1163 1583 y @beginspecial +%%Page: 101 113 +TeXDict begin 101 112 bop 150 -116 a FI(Chapter)30 b(18:)41 +b(Lab)s(el)31 b(Reference)2320 b(101)1163 1583 y @beginspecial -150 @llx -122 @lly 39 @urx 68 @ury 1890 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.76 %!PS @@ -21020,7 +21033,7 @@ b Fz(Pictures)e FI(are)j(copied.)390 3569 y(Users)46 b(should)e(nev)m(er)i(need)g(to)g(call)h(this)f(function)f(directly)-8 b(.)88 b(See)46 b(Section)g(19.4)h([Picture)390 3678 -y(Reference;)31 b(Op)s(erators],)g(page)g(103.)390 3816 +y(Reference;)31 b(Op)s(erators],)g(page)g(104.)390 3816 y(This)c(function)h(dynamically)h(allo)s(cates)i(a)d(new)g Fz(Label)f FI(and)g(a)i(new)e Fz(Point)g FI(within)h(the)g Fz(Label)p FI(,)390 3925 y(and)c(copies)h(the)g Fz(strings)d @@ -21036,7 +21049,7 @@ (de)d(for)g(the)g(lab)s(els)g(to)g Fz(out_stream)p FI(.)205 b(It)86 b(is)g(called)h(in)390 4874 y Fz(Picture::output\(\))37 b FI(\(see)44 b(Section)f(19.8)g([Picture)g(Reference;)49 -b(Outputting],)c(page)e(105\).)390 4984 y(Users)30 b(should)g(nev)m(er) +b(Outputting],)c(page)e(106\).)390 4984 y(Users)30 b(should)g(nev)m(er) g(need)g(to)i(call)f(this)f(function)h(directly)-8 b(.)390 5121 y(When)37 b Fz(Picture::output\(\))c FI(is)38 b(in)m(v)m(ok)m(ed,) j(the)d(MetaP)m(ost)i(co)s(de)e(for)g Fz(Labels)e FI(is)h(written)h(to) @@ -21046,18 +21059,18 @@ (co)m(v)m(ered)h(up.)37 b(Ho)m(w)m(ev)m(er,)28 b(they)c(can)g(still)g (b)s(e)f(co)m(v)m(ered)j(b)m(y)d(other)h Fz(Labels)p FI(,)g(or)p eop end -%%Page: 101 113 -TeXDict begin 101 112 bop 150 -116 a FI(Chapter)30 b(18:)41 -b(Lab)s(el)31 b(Reference)2320 b(101)390 299 y(b)m(y)28 +%%Page: 102 114 +TeXDict begin 102 113 bop 150 -116 a FI(Chapter)30 b(18:)41 +b(Lab)s(el)31 b(Reference)2320 b(102)390 299 y(b)m(y)28 b Fz(Shapes)f FI(or)h Fz(Labels)f FI(from)g(subsequen)m(t)h(in)m(v)m(o) s(cations)i(of)e Fz(Picture::output\(\))c FI(within)k(the)390 408 y(same)d(\014gure)g(\(see)g(Section)h(15.2)h([I/O)e(F)-8 b(unctions],)27 b(page)e(84,)i(for)e(descriptions)g(of)g Fz(beginfig\(\))390 518 y(and)k(endfig\(\))p FI(\).)p eop end -%%Page: 102 114 -TeXDict begin 102 113 bop 150 -116 a FI(Chapter)30 b(19:)41 -b(Picture)31 b(Reference)2252 b(102)150 299 y FE(19)80 +%%Page: 103 115 +TeXDict begin 103 114 bop 150 -116 a FI(Chapter)30 b(19:)41 +b(Picture)31 b(Reference)2252 b(103)150 299 y FE(19)80 b(Picture)53 b(Reference)150 552 y FI(Class)30 b Fz(Picture)f FI(is)h(de\014ned)f(in)h(`)p Fz(pictures.web)p FI('.)150 825 y FH(19.1)68 b(Data)46 b(Mem)l(b)t(ers)3071 1075 @@ -21069,9 +21082,9 @@ (transformation)f(functions,)390 1404 y(b)m(y)32 b Fz (Picture::operator*=\(cons)o(t)24 b(Transform&\))29 b FI(\(see)k(Section)g(19.4)g([Picture)g(Reference;)390 -1514 y(Op)s(erators],)26 b(page)g(103\),)j(and)24 b(b)m(y)h +1514 y(Op)s(erators],)26 b(page)g(104\),)j(and)24 b(b)m(y)h Fz(Picture::set_transform\(\))19 b FI(\(see)26 b(Section)g(19.6)h -([Picture)390 1623 y(Reference;)k(Mo)s(difying],)g(page)g(104\).)3071 +([Picture)390 1623 y(Reference;)k(Mo)s(difying],)g(page)g(105\).)3071 1820 y([Priv)-5 b(ate)32 b(v)-5 b(ariable])-3599 b Fc(vector)42 b Fd(shap)s(es)390 1930 y FI(Con)m(tains)30 b(p)s(oin)m(ters)f(to)h (the)f Fz(Shapes)e FI(on)i(the)h Fz(Picture)p FI(.)38 @@ -21099,7 +21112,7 @@ b FI(and)38 b(can)g(b)s(e)390 3310 y(reset)29 b(to)f Fz(true)f FI(b)m(y)h(using)f Fz(unsuppress_labels\(\))p FI(.)35 b(See)28 b(Section)h(19.8.2)h([Picture)f(Reference;)390 -3419 y(Output)g(F)-8 b(unctions],)32 b(page)f(106.)390 +3419 y(Output)g(F)-8 b(unctions],)32 b(page)f(107.)390 3560 y(Often,)37 b(when)d(a)i Fz(Picture)d FI(is)j(copied,)h (transformed,)f(and)f(output)g(again)h(in)f(a)h(single)g(\014gure,)390 3670 y(it's)j(undesirable)f(to)h(ha)m(v)m(e)h(the)e Fz(Labels)f @@ -21120,9 +21133,9 @@ Fr(\(and)f(the)g(latter's)h(deriv)n(ed)f(classes\),)275 5340 y(i.e.,)27 b(not)e(for)i Fs(Solid)f Fr(and)g(its)g(deriv)n(ed)f (classes.)p eop end -%%Page: 103 115 -TeXDict begin 103 114 bop 150 -116 a FI(Chapter)30 b(19:)41 -b(Picture)31 b(Reference)2252 b(103)3012 299 y([Cop)m(y)30 +%%Page: 104 116 +TeXDict begin 104 115 bop 150 -116 a FI(Chapter)30 b(19:)41 +b(Picture)31 b(Reference)2252 b(104)3012 299 y([Cop)m(y)30 b(constructor])-3599 b Fc(void)39 b Fd(Picture)45 b Fw(\()p Fz(const)29 b(Picture&)f Fp(p)11 b Fw(\))390 408 y FI(Creates)31 b(a)g(cop)m(y)g(of)f Fz(Picture)f Ft(p)p FI(.)630 542 @@ -21261,9 +21274,9 @@ b(t;)630 4902 y(t.rotate\(0,)g(0,)i(180\);)630 5011 y(t.shift\(3\);)630 5121 y(Reg_Polygon)e(pl\(origin,)g(5,)i(3,)g(90\);)630 5230 y(pl.draw\(\);)630 5340 y(pl.label\(\);)p eop end -%%Page: 104 116 -TeXDict begin 104 115 bop 150 -116 a FI(Chapter)30 b(19:)41 -b(Picture)31 b(Reference)2252 b(104)630 299 y Fz +%%Page: 105 117 +TeXDict begin 105 116 bop 150 -116 a FI(Chapter)30 b(19:)41 +b(Picture)31 b(Reference)2252 b(105)630 299 y Fz (current_picture.output\(P)o(roje)o(ctio)o(ns:)o(:PAR)o(ALLE)o(L_X)o (_Y\);)630 408 y(current_picture)44 b(*=)j(t;)630 518 y(current_picture.output\(P)o(roje)o(ctio)o(ns:)o(:PAR)o(ALLE)o(L_X)o @@ -21380,9 +21393,9 @@ Fz(Label)e FI(p)s(oin)m(ters)i(from)f Fz(labels)p FI(.)38 b(All)30 b(dynamically)f(allo)s(cated)i(ob)5 b(jects)p eop end -%%Page: 105 117 -TeXDict begin 105 116 bop 150 -116 a FI(Chapter)30 b(19:)41 -b(Picture)31 b(Reference)2252 b(105)390 299 y(are)38 +%%Page: 106 118 +TeXDict begin 106 117 bop 150 -116 a FI(Chapter)30 b(19:)41 +b(Picture)31 b(Reference)2252 b(106)390 299 y(are)38 b(deallo)s(cated,)k(namely)c(the)g Fz(Shapes)p FI(,)g(the)g Fz(Labels)p FI(,)g(and)f(the)h Fz(Points)e FI(b)s(elonging)i(to)h(the) 390 408 y Fz(Labels)p FI(.)g Fz(transform)28 b FI(is)i(reset)h(to)g @@ -21447,257 +21460,257 @@ (the)h Ft(pro)5 b(jection)43 b FI(argumen)m(t)f(in)g Fz(Picture::output\(\))p FI(,)390 5072 y(describ)s(ed)h(in)h(Section)h (19.8.2)i([Picture)e(Reference;)52 b(Outputting;)f(F)-8 -b(unctions],)48 b(page)d(106,)390 5182 y(b)s(elo)m(w.)p +b(unctions],)48 b(page)d(107,)390 5182 y(b)s(elo)m(w.)p 150 5241 1200 4 v 199 5308 a FA(2)275 5340 y Fr(Actually)-6 b(,)25 b(it's)h(prin)n(ted)f(to)h(standard)g(output)e(ev)n(en)h(if)i (it)e(is)i(the)e(empt)n(y)g(string,)h(y)n(ou)f(just)h(don't)g(see)g (it.)p eop end -%%Page: 106 118 -TeXDict begin 106 117 bop 150 -116 a FI(Chapter)30 b(19:)41 -b(Picture)31 b(Reference)2252 b(106)150 299 y Fx(19.8.1.2)63 +%%Page: 107 119 +TeXDict begin 107 118 bop 150 -116 a FI(Chapter)30 b(19:)41 +b(Picture)31 b(Reference)2252 b(107)150 299 y Fx(19.8.1.2)63 b(Namespace)41 b(Sorting)150 540 y FI(The)30 b(namespace)h Fz(Sorting)d FI(is)j(de\014ned)e(in)h(`)p Fz(pictures.web)p FI('.)3338 717 y([Constan)m(t])-3599 b Fc(const)40 b(unsigned)g(short)g -Fd(NO)p 1390 717 35 5 v 50 w(SOR)-10 b(T)3338 827 y FI([Constan)m(t]) +Fd(NO)p 1390 717 35 5 v 50 w(SOR)-10 b(T)3338 826 y FI([Constan)m(t]) -3599 b Fc(const)40 b(unsigned)g(short)g Fd(MAX)p 1497 -827 V 49 w(Z)3338 936 y FI([Constan)m(t])-3599 b Fc(const)40 +826 V 49 w(Z)3338 936 y FI([Constan)m(t])-3599 b Fc(const)40 b(unsigned)g(short)g Fd(MIN)p 1456 936 V 50 w(Z)3338 -1046 y FI([Constan)m(t])-3599 b Fc(const)40 b(unsigned)g(short)g -Fd(MEAN)p 1575 1046 V 50 w(Z)390 1155 y FI(These)i(constan)m(ts)h(can)g +1045 y FI([Constan)m(t])-3599 b Fc(const)40 b(unsigned)g(short)g +Fd(MEAN)p 1575 1045 V 50 w(Z)390 1155 y FI(These)i(constan)m(ts)h(can)g (b)s(e)f(used)f(for)h(the)h Ft(sort)p 2091 1155 28 4 v 40 w(v)-5 b(alue)48 b FI(argumen)m(t)42 b(in)g Fz -(Picture::output\(\))p FI(,)390 1265 y(describ)s(ed)h(in)h(Section)h +(Picture::output\(\))p FI(,)390 1264 y(describ)s(ed)h(in)h(Section)h (19.8.2)i([Picture)e(Reference;)52 b(Outputting;)f(F)-8 -b(unctions],)48 b(page)d(106,)390 1375 y(b)s(elo)m(w.)150 -1591 y Fx(19.8.2)63 b(Output)41 b(F)-10 b(unctions)3350 -1833 y FI([F)i(unction])-3599 b Fc(void)39 b Fd(output)44 +b(unctions],)48 b(page)d(107,)390 1374 y(b)s(elo)m(w.)150 +1590 y Fx(19.8.2)63 b(Output)41 b(F)-10 b(unctions)3350 +1832 y FI([F)i(unction])-3599 b Fc(void)39 b Fd(output)44 b Fw(\()p Fz(const)29 b(Focus&)g Fp(f)p Fz(,)h Fy([)p Fz(const)f(unsigned)f(short)h Fp(projection)38 b Fz(=)565 -1942 y(Projections::PERSP,)25 b Fy([)p Fz(real)30 b Fp(factor)39 +1941 y(Projections::PERSP,)25 b Fy([)p Fz(real)30 b Fp(factor)39 b Fz(=)30 b(1,)g Fy([)p Fz(const)f(unsigned)f(short)h -Fp(sort_value)565 2052 y Fz(=)h(Sorting::MAX_Z,)c Fy([)p +Fp(sort_value)565 2051 y Fz(=)h(Sorting::MAX_Z,)c Fy([)p Fz(const)k(bool)f Fp(do_warnings)38 b Fz(=)30 b(true,)f -Fy([)p Fz(const)g(real)565 2161 y Fp(min_x_proj)38 b +Fy([)p Fz(const)g(real)565 2160 y Fp(min_x_proj)38 b Fz(=)30 b(-40,)f Fy([)p Fz(const)h(real)f Fp(max_x_proj)38 b Fz(=)30 b(40,)g Fy([)p Fz(const)f(real)g Fp(min_y_proj)38 -b Fz(=)565 2271 y(-40,)29 b Fy([)p Fz(const)h(real)f +b Fz(=)565 2270 y(-40,)29 b Fy([)p Fz(const)h(real)f Fp(max_y_proj)38 b Fz(=)30 b(40,)g Fy([)p Fz(const)f(real)g Fp(min_z_proj)38 b Fz(=)30 b(-40,)f Fy([)p Fz(const)565 2380 y(real)g Fp(max_z_proj)38 b Fz(=)30 b(40)p Fy(]]]]]]]]]])p -Fw(\))3350 2490 y FI([F)-8 b(unction])-3599 b Fc(void)39 +Fw(\))3350 2489 y FI([F)-8 b(unction])-3599 b Fc(void)39 b Fd(output)44 b Fw(\()p Fy([)p Fz(const)30 b(unsigned)e(short)h -Fp(projection)38 b Fz(=)565 2600 y(Projections::PERSP,)25 +Fp(projection)38 b Fz(=)565 2599 y(Projections::PERSP,)25 b Fy([)p Fz(real)30 b Fp(factor)39 b Fz(=)30 b(1,)g Fy([)p -Fz(const)f(unsigned)f(short)h Fp(sort_value)565 2709 +Fz(const)f(unsigned)f(short)h Fp(sort_value)565 2708 y Fz(=)h(Sorting::MAX_Z,)c Fy([)p Fz(const)k(bool)f Fp(do_warnings)38 -b Fz(=)30 b(true,)f Fy([)p Fz(const)g(real)565 2819 y +b Fz(=)30 b(true,)f Fy([)p Fz(const)g(real)565 2818 y Fp(min_x_proj)38 b Fz(=)30 b(-40,)f Fy([)p Fz(const)h(real)f Fp(max_x_proj)38 b Fz(=)30 b(40,)g Fy([)p Fz(const)f(real)g -Fp(min_y_proj)38 b Fz(=)565 2928 y(-40,)29 b Fy([)p Fz(const)h(real)f +Fp(min_y_proj)38 b Fz(=)565 2927 y(-40,)29 b Fy([)p Fz(const)h(real)f Fp(max_y_proj)38 b Fz(=)30 b(40,)g Fy([)p Fz(const)f(real)g Fp(min_z_proj)38 b Fz(=)30 b(-40,)f Fy([)p Fz(const)565 -3038 y(real)g Fp(max_z_proj)38 b Fz(=)30 b(40)p Fy(]]]]]]]]]])p -Fw(\))390 3148 y FI(These)36 b(functions)h(create)h(a)f(t)m(w)m +3037 y(real)g Fp(max_z_proj)38 b Fz(=)30 b(40)p Fy(]]]]]]]]]])p +Fw(\))390 3147 y FI(These)36 b(functions)h(create)h(a)f(t)m(w)m (o-dimensional)h(pro)5 b(jection)38 b(of)e(the)h(ob)5 -b(jects)38 b(on)e(the)h Fz(Picture)390 3257 y FI(and)30 +b(jects)38 b(on)e(the)h Fz(Picture)390 3256 y FI(and)30 b(write)g(MetaP)m(ost)j(co)s(de)e(to)g Fz(out_stream)c -FI(for)k(dra)m(wing)f(it.)390 3389 y(The)g(argumen)m(ts:)390 -3521 y Fz(const)f(Focus&)g Ft(f)331 b FI(The)37 b Fz(Focus)f -FI(used)h(for)g(pro)5 b(jection,)40 b(also)f(kno)m(wn)e(as)g(the)h(cen) -m(ter)h(of)1335 3631 y(pro)5 b(jection,)32 b(or)f(the)g(camera.)44 -b(This)30 b(argumen)m(t)i(is)f(used)f(in)g(the)i(\014rst)1335 -3740 y(v)m(ersion)41 b(only)-8 b(.)72 b(The)40 b(second)h(v)m(ersion,)j -(without)d(a)g Fz(const)29 b(Focus&)1335 3850 y Ft(f)56 -b FI(argumen)m(t,)42 b(merely)d(calls)h(the)f(\014rst)g(v)m(ersion)g -(and)f(passes)h(it)h(the)1335 3959 y(global)61 b(v)-5 -b(ariable)61 b Fz(default_focus)c FI(as)j(its)h(\014rst)e(argumen)m(t,) -69 b(so)1335 4069 y Fz(default_focus)32 b FI(is)j(e\013ectiv)m(ely)j -(the)e(default)g(for)f Ft(f)p FI(.)55 b(De\014ning)36 -b(t)m(w)m(o)1335 4179 y(v)m(ersions)e(in)f(this)g(w)m(a)m(y)h(mak)m(es) -g(it)g(p)s(ossible)f(to)h(call)h Fz(output\(\))c FI(with)1335 -4288 y Fz(projection)46 b FI(as)j(its)g(\014rst)e(\(and)i(p)s(ossibly)e -(only\))j(argumen)m(t.)95 b(If)1335 4398 y(instead,)27 -b Ft(f)43 b FI(w)m(ere)27 b(an)e(optional)j(argumen)m(t)e(with)f -Fz(default_focus)e FI(as)1335 4507 y(its)28 b(default,)g(this)f(w)m -(ouldn't)h(ha)m(v)m(e)g(b)s(een)f(p)s(ossible.)39 b(It)28 -b(also)g(w)m(ouldn't)1335 4617 y(b)s(e)k(p)s(ossible)h(to)g(ha)m(v)m(e) -h Ft(f)51 b FI(ha)m(v)m(e)34 b(a)f(default)g(in)g(the)g(\014rst)f(v)m -(ersion,)j(and)1335 4727 y(to)i(retain)g(the)f(second)h(v)m(ersion,)h -(b)s(ecause)f(the)f(compiler)h(w)m(ouldn't)1335 4836 -y(b)s(e)30 b(able)h(to)g(resolv)m(e)g(a)g(call)h(to)f -Fz(output\(\))d FI(with)i(no)g(argumen)m(ts.)390 4990 -y Fz(const)f(unsigned)f(short)h Ft(pro)5 b(jection)1335 -5121 y FI(Default:)94 b Fz(Projections::PERSP)p FI(.)114 -b(The)56 b(t)m(yp)s(e)g(of)h(pro)5 b(jection.)1335 5230 -y(V)-8 b(alid)105 b(v)-5 b(alues)104 b(are)h Fz(const)29 -b(unsigned)f(shorts)102 b FI(de\014ned)h(in)1335 5340 -y Fz(namespace)28 b(Projections)52 b FI(\(see)k(Section)f(19.8.1.1)j -([Namespace)p eop end -%%Page: 107 119 -TeXDict begin 107 118 bop 150 -116 a FI(Chapter)30 b(19:)41 -b(Picture)31 b(Reference)2252 b(107)1335 299 y(Pro)5 -b(jections],)32 b(page)f(105\):)1335 408 y Fz(PERSP)e -FI(for)h(the)h(p)s(ersp)s(ectiv)m(e)f(pro)5 b(jection,)1335 -518 y Fz(PARALLEL_X_Y)27 b FI(for)j(parallel)i(pro)5 -b(jection)31 b(on)m(to)g(the)g(x-y)f(plane,)1335 628 -y Fz(PARALLEL_X_Z)c FI(for)j(parallel)i(pro)5 b(jection)30 -b(on)m(to)h(the)e(x-z)i(plane,)f(and)1335 737 y Fz(PARALLEL_Z_Y)37 -b FI(for)i(parallel)j(pro)5 b(jection)40 b(on)m(to)h(the)g(z-y)f -(plane.)70 b(I)1335 847 y(plan)30 b(to)h(add)f(isometric)h(and)f -(axionometric)i(pro)5 b(jections)31 b(so)s(on.)390 1054 -y Fz(real)e Ft(factor)495 b FI(Default:)58 b(1.)64 b(P)m(assed)39 -b(from)f Fz(output\(\))e FI(to)j Fz(extract\(\))d FI(and)h(from)1335 -1163 y(there)31 b(to)g Fz(project\(\))p FI(.)38 b(The)30 -b Fz(world_coordinates)c FI(of)31 b(the)g Fz(Points)1335 -1273 y FI(that)42 b(are)f(pro)5 b(jected)42 b(are)g(m)m(ultiplied)g(b)m -(y)f Ft(factor)p FI(,)k(whic)m(h)c(enlarges)1335 1383 -y(or)31 b(shrinks)f(the)i(pro)5 b(jected)32 b(image)g(without)g -(altering)g(the)g Fz(Picture)1335 1492 y FI(itself.)45 -b Ft(factor)39 b FI(is)31 b(probably)g(most)h(useful)e(for)i(parallel)g -(pro)5 b(jections,)1335 1602 y(where)33 b(the)h Fz(Focus)e -Ft(f)51 b FI(isn't)33 b(used;)i(with)e(a)h(p)s(ersp)s(ectiv)m(e)g(pro)5 -b(jection,)1335 1711 y(the)28 b(parameters)g(of)g(the)g -Fz(Focus)f FI(can)h(b)s(e)f(used)g(to)i(in\015uence)e(the)h(size)1335 -1821 y(of)i(the)h(pro)5 b(jected)31 b(image.)390 2028 -y Fz(const)e(unsigned)f(short)h Ft(sort)p Fz(_)p Ft(v)-5 -b(alue)1335 2158 y FI(Default:)111 b Fz(Sorting::MAX_Z)p -FI(.)140 b(The)64 b(v)-5 b(alue)66 b(used)e(should)g(b)s(e)1335 -2268 y(one)56 b(of)g(the)h(constan)m(ts)g(de\014ned)d(in)i -Fz(namespace)28 b(Sorting)p FI(,)61 b(See)1335 2377 y(Section)46 -b(19.8.1.2)i([Namespace)e(Sorting],)k(page)45 b(106,)51 -b(ab)s(o)m(v)m(e.)85 b(If)1335 2487 y Fz(MAX_Z)50 b FI(\(the)j -(default\))f(is)g(used,)57 b(the)52 b Fz(Shapes)e FI(on)i(the)g -Fz(Picture)1335 2597 y FI(are)75 b(sorted)f(according)i(to)f(the)g -(maxim)m(um)f(z-v)-5 b(alue)76 b(of)f(the)1335 2706 y -Fz(projective_extremes)67 b FI(of)73 b(the)f Fz(Points)f -FI(b)s(elonging)i(to)g(the)1335 2816 y Fz(Shape)p FI(.)j(If)42 -b Fz(MIN_Z)f FI(is)i(used,)i(they)e(are)g(sorted)g(according)g(to)h -(the)1335 2925 y(minim)m(um)k(z-v)-5 b(alue,)55 b(and)49 -b(if)g Fz(MEAN_Z)e FI(is)i(used,)k(they)c(are)h(sorted)1335 -3035 y(according)64 b(to)f(the)g(mean)f(of)h(the)g(maxim)m(um)g(and)f -(minim)m(um)1335 3145 y(z-v)-5 b(alues.)67 b(If)38 b -Fz(NO_SORT)f FI(is)i(used,)h(the)f Fz(Shapes)f FI(are)h(output)f(in)h -(the)1335 3254 y(order)30 b(in)g(whic)m(h)g(they)g(w)m(ere)h(put)f(on)m -(to)i(the)e Fz(Picture)p FI(.)1335 3420 y(The)25 b(surface)h(hiding)f -(algorithm)i(implemen)m(ted)g(in)e(3DLDF)j(is)e(quite)1335 -3530 y(primitiv)m(e,)43 b(and)38 b(do)s(esn't)i(alw)m(a)m(ys)h(w)m(ork) -e(righ)m(t.)68 b(F)-8 b(or)41 b Fz(Shapes)c FI(that)1335 -3640 y(in)m(tersect,)28 b(it)e FC(c)-5 b(an)c('t)35 b -FI(w)m(ork)26 b(righ)m(t.)39 b(I)26 b(plan)f(to)h(w)m(ork)g(on)f(impro) -m(ving)h(the)1335 3749 y(surface)32 b(hiding)f(algorithm)i(so)s(on.)44 -b(This)31 b(is)h(not)g(a)g(trivial)h(problem.)1335 3859 -y(T)-8 b(o)27 b(solv)m(e)h(it)f(prop)s(erly)-8 b(,)27 -b(eac)m(h)h Fz(Shape)d FI(on)h(a)h Fz(Picture)e FI(m)m(ust)h(b)s(e)g -(tested)1335 3968 y(for)38 b(in)m(tersection)j(with)d(ev)m(ery)h(other) -g Fz(Shape)f FI(on)g(the)h Fz(Picture)p FI(.)63 b(If)1335 -4078 y(t)m(w)m(o)37 b(or)f(more)h Fz(Shapes)d FI(in)m(tersect,)39 -b(they)e(m)m(ust)f(b)s(e)f(brok)m(en)h(up)f(in)m(to)1335 -4187 y(smaller)c(ob)5 b(jects)32 b(un)m(til)g(there)f(are)g(no)g(more)h -(in)m(tersections.)44 b(I)31 b(don't)1335 4297 y(exp)s(ect)26 -b(to)g(ha)m(v)m(e)h(a)e(prop)s(er)f(solution)i(so)s(on,)h(but)d(I)i -(exp)s(ect)f(that)h(I)g(will)1335 4407 y(b)s(e)f(able)i(to)g(mak)m(e)g -(some)f(impro)m(v)m(emen)m(ts.)41 b(See)26 b(Section)h(9.3)g([Surface) -1335 4516 y(Hiding],)k(page)g(66.)390 4682 y Fz(const)e(bool)g -Ft(do)p Fz(_)p Ft(w)m(arnings)195 b FI(Default:)61 b -Fz(true)p FI(.)67 b(If)40 b Fz(true)p FI(,)h Fz(output\(\))c -FI(issues)j(w)m(arnings)f(to)1571 4792 y Fz(stderr)f -FI(\(standard)h(error)f(output\))i(if)f(a)h Fz(Shape)e -FI(cannot)i(b)s(e)1571 4902 y(output)32 b(b)s(ecause)g(it)h(lies)g -(outside)g(the)g(limits)g(set)f(b)m(y)h(the)f(fol-)1571 -5011 y(lo)m(wing)27 b(argumen)m(ts.)39 b(Sometimes,)28 -b(a)e(user)f(ma)m(y)i(only)f(w)m(an)m(t)g(to)1571 5121 -y(pro)5 b(ject)22 b(a)g(p)s(ortion)f(of)h(a)g Fz(Picture)p -FI(,)g(in)f(whic)m(h)g(case)i(suc)m(h)e(w)m(arn-)1571 -5230 y(ings)40 b(w)m(ould)g(not)h(b)s(e)e(helpful.)70 -b(In)39 b(this)i(case,)j Ft(do)p Fz(_)p Ft(w)m(arnings)1571 -5340 y FI(should)29 b(b)s(e)h Fz(false)p FI(.)p eop end +FI(for)k(dra)m(wing)f(it.)390 3388 y(The)g(argumen)m(ts:)390 +3542 y Fz(const)f(Focus&)g Ft(f)870 3652 y FI(The)e Fz(Focus)g +FI(used)f(for)i(pro)5 b(jection,)29 b(also)g(kno)m(wn)e(as)h(the)g(cen) +m(ter)h(of)f(pro)5 b(jection,)29 b(or)870 3761 y(the)j(camera.)47 +b(This)31 b(argumen)m(t)h(is)g(used)f(in)h(the)g(\014rst)f(v)m(ersion)h +(only)-8 b(.)46 b(The)32 b(second)870 3871 y(v)m(ersion,)24 +b(without)e(a)g Fz(const)29 b(Focus&)20 b Ft(f)39 b FI(argumen)m(t,)24 +b(merely)f(calls)f(the)g(\014rst)f(v)m(ersion)870 3980 +y(and)28 b(passes)h(it)g(the)g(global)h(v)-5 b(ariable)30 +b Fz(default_focus)25 b FI(as)k(its)g(\014rst)f(argumen)m(t,)i(so)870 +4090 y Fz(default_focus)i FI(is)k(e\013ectiv)m(ely)i(the)e(default)g +(for)g Ft(f)p FI(.)56 b(De\014ning)36 b(t)m(w)m(o)h(v)m(ersions)f(in) +870 4200 y(this)31 b(w)m(a)m(y)i(mak)m(es)f(it)g(p)s(ossible)f(to)h +(call)h Fz(output\(\))c FI(with)i Fz(projection)d FI(as)k(its)g +(\014rst)870 4309 y(\(and)k(p)s(ossibly)f(only\))i(argumen)m(t.)58 +b(If)35 b(instead,)j Ft(f)54 b FI(w)m(ere)36 b(an)g(optional)h(argumen) +m(t)870 4419 y(with)32 b Fz(default_focus)e FI(as)j(its)g(default,)h +(this)e(w)m(ouldn't)h(ha)m(v)m(e)h(b)s(een)e(p)s(ossible.)48 +b(It)870 4528 y(also)27 b(w)m(ouldn't)f(b)s(e)f(p)s(ossible)g(to)i(ha)m +(v)m(e)g Ft(f)43 b FI(ha)m(v)m(e)27 b(a)f(default)g(in)g(the)g(\014rst) +f(v)m(ersion,)j(and)870 4638 y(to)39 b(retain)g(the)f(second)g(v)m +(ersion,)j(b)s(ecause)d(the)g(compiler)h(w)m(ouldn't)f(b)s(e)g(able)g +(to)870 4748 y(resolv)m(e)32 b(a)e(call)i(to)f Fz(output\(\))d +FI(with)i(no)h(argumen)m(ts.)390 4902 y Fz(const)e(unsigned)f(short)h +Ft(pro)5 b(jection)870 5011 y FI(Default:)68 b Fz(Projections::PERSP)p +FI(.)74 b(The)43 b(t)m(yp)s(e)h(of)f(pro)5 b(jection.)80 +b(V)-8 b(alid)45 b(v)-5 b(alues)870 5121 y(are)23 b Fz(const)29 +b(unsigned)f(shorts)21 b FI(de\014ned)g(in)h Fz(namespace)28 +b(Projections)19 b FI(\(see)k(Sec-)870 5230 y(tion)31 +b(19.8.1.1)i([Namespace)f(Pro)5 b(jections],)32 b(page)f(106\):)870 +5340 y Fz(PERSP)e FI(for)h(the)h(p)s(ersp)s(ectiv)m(e)f(pro)5 +b(jection,)p eop end %%Page: 108 120 TeXDict begin 108 119 bop 150 -116 a FI(Chapter)30 b(19:)41 -b(Picture)31 b(Reference)2252 b(108)390 299 y Fz(const)29 -b(real)g Ft(min)p Fz(_)p Ft(x)p Fz(_)p Ft(pro)5 b(j)230 -b FI(Default:)40 b(-40.)h(The)26 b(minim)m(um)f(x-co)s(ordinate)j(of)f -(the)f(pro)5 b(jec-)1571 408 y(tion)33 b(of)g(a)h Fz(Shape)d -FI(suc)m(h)i(that)g(the)g Fz(Shape)e FI(can)i(b)s(e)g(output.)47 -b(If)1571 518 y Fz(projective_coordinates[0])19 b FI(of)25 -b(an)m(y)h Fz(Point)e FI(on)i(a)f Fz(Shape)1571 628 y -FI(is)f(less)f(than)g Ft(min)p Fz(_)p Ft(x)p Fz(_)p Ft(pro)5 -b(j)p FI(,)24 b(the)f Fz(Shape)f FI(will)i(not)g(b)s(e)f(pro)5 -b(jected)1571 737 y(at)31 b(all.)390 869 y Fz(const)e(real)g -Ft(max)p Fz(_)p Ft(x)p Fz(_)p Ft(pro)5 b(j)213 b FI(Default:)41 -b(40.)g(The)28 b(maxim)m(um)h(x-co)s(ordinate)h(of)f(the)f(pro)5 -b(jec-)1571 978 y(tion)33 b(of)g(a)h Fz(Shape)d FI(suc)m(h)i(that)g -(the)g Fz(Shape)e FI(can)i(b)s(e)g(output.)47 b(If)1571 -1088 y Fz(projective_coordinates[0])19 b FI(of)25 b(an)m(y)h -Fz(Point)e FI(on)i(a)f Fz(Shape)1571 1198 y FI(is)k(greater)i(than)e -Ft(max)p Fz(_)p Ft(x)p Fz(_)p Ft(pro)5 b(j)p FI(,)28 -b(the)i Fz(Shape)e FI(will)h(not)h(b)s(e)e(pro-)1571 -1307 y(jected)j(at)g(all.)390 1439 y Fz(const)e(real)g -Ft(min)p Fz(_)p Ft(y)p Fz(_)p Ft(pro)5 b(j)230 b FI(Default:)40 -b(-40.)h(The)26 b(minim)m(um)f(y-co)s(ordinate)j(of)f(the)f(pro)5 -b(jec-)1571 1548 y(tion)33 b(of)g(a)h Fz(Shape)d FI(suc)m(h)i(that)g -(the)g Fz(Shape)e FI(can)i(b)s(e)g(output.)47 b(If)1571 -1658 y Fz(projective_coordinates[1])19 b FI(of)25 b(an)m(y)h -Fz(Point)e FI(on)i(a)f Fz(Shape)1571 1767 y FI(is)f(less)f(than)g -Ft(min)p Fz(_)p Ft(y)p Fz(_)p Ft(pro)5 b(j)p FI(,)24 -b(the)f Fz(Shape)f FI(will)i(not)g(b)s(e)f(pro)5 b(jected)1571 -1877 y(at)31 b(all.)390 2008 y Fz(const)e(real)g Ft(max)p -Fz(_)p Ft(y)p Fz(_)p Ft(pro)5 b(j)213 b FI(Default:)41 -b(40.)g(The)28 b(maxim)m(um)h(y-co)s(ordinate)h(of)f(the)f(pro)5 -b(jec-)1571 2118 y(tion)33 b(of)g(a)h Fz(Shape)d FI(suc)m(h)i(that)g -(the)g Fz(Shape)e FI(can)i(b)s(e)g(output.)47 b(If)1571 -2228 y Fz(projective_coordinates[1])19 b FI(of)25 b(an)m(y)h -Fz(Point)e FI(on)i(a)f Fz(Shape)1571 2337 y FI(is)k(greater)i(than)e -Ft(max)p Fz(_)p Ft(y)p Fz(_)p Ft(pro)5 b(j)p FI(,)28 -b(the)i Fz(Shape)e FI(will)h(not)h(b)s(e)e(pro-)1571 -2447 y(jected)j(at)g(all.)390 2578 y Fz(const)e(real)g -Ft(min)p Fz(_)p Ft(z)p Fz(_)p Ft(pro)5 b(j)238 b FI(Default:)41 -b(-40.)g(The)27 b(minim)m(um)g(z-co)s(ordinate)i(of)f(the)g(pro)5 -b(jec-)1571 2688 y(tion)33 b(of)g(a)h Fz(Shape)d FI(suc)m(h)i(that)g -(the)g Fz(Shape)e FI(can)i(b)s(e)g(output.)47 b(If)1571 -2798 y Fz(projective_coordinates[2])19 b FI(of)25 b(an)m(y)h -Fz(Point)e FI(on)i(a)f Fz(Shape)1571 2907 y FI(is)f(less)h(than)f -Ft(min)p Fz(_)p Ft(z)p Fz(_)p Ft(pro)5 b(j)p FI(,)24 -b(the)h Fz(Shape)e FI(will)h(not)h(b)s(e)f(pro)5 b(jected)1571 -3017 y(at)31 b(all.)390 3148 y Fz(const)e(real)g Ft(max)p -Fz(_)p Ft(z)p Fz(_)p Ft(pro)5 b(j)221 b FI(Default:)42 -b(40.)f(The)30 b(maxim)m(um)g(z-co)s(ordinate)h(of)f(the)g(pro)5 -b(jec-)1571 3258 y(tion)33 b(of)g(a)h Fz(Shape)d FI(suc)m(h)i(that)g -(the)g Fz(Shape)e FI(can)i(b)s(e)g(output.)47 b(If)1571 -3367 y Fz(projective_coordinates[2])19 b FI(of)25 b(an)m(y)h -Fz(Point)e FI(on)i(a)f Fz(Shape)1571 3477 y FI(is)30 -b(greater)h(than)f Ft(max)p Fz(_)p Ft(z)p Fz(_)p Ft(pro)5 -b(j)p FI(,)30 b(the)g Fz(Shape)f FI(will)h(not)h(b)s(e)e(pro-)1571 -3587 y(jected)i(at)g(all.)3350 3762 y([F)-8 b(unction])-3599 -b Fc(void)39 b Fd(suppress)p 832 3762 35 5 v 50 w(lab)s(els)44 -b Fw(\()p Fz(void)p Fw(\))390 3871 y FI(Suppresses)25 -b(output)i(of)h(the)g Fz(Labels)d FI(on)j(a)g Fz(Picture)d -FI(when)i Fz(output\(\))e FI(is)i(called.)41 b(This)27 -b(can)h(b)s(e)390 3981 y(useful)h(when)f(a)i Fz(Picture)d -FI(is)j(output,)f(transformed,)g(and)g(output)g(again,)i(one)e(or)h -(more)f(times,)390 4091 y(in)34 b(a)h(single)h(\014gure.)53 -b(Usually)-8 b(,)36 b(it)g(will)f(not)g(b)s(e)f(desirable)g(to)i(ha)m -(v)m(e)g(the)f Fz(Labels)e FI(output)h(more)390 4200 -y(than)c(once.)390 4332 y(In)37 b(Fig.)h(79,)i Fz(current_picture)33 -b FI(is)k(output)g(three)h(times,)i(but)c(the)i Fz(Labels)d -FI(on)i(it)h(are)g(only)390 4441 y(output)30 b(once.)630 -4573 y Fz(Ellipse)46 b(e\(origin,)f(3,)i(5\);)630 4682 -y(e.label\(\);)630 4792 y(e.draw\(\);)630 4902 y(Point)f(pt0\(-3\);)630 -5011 y(Point)g(pt1\(3\);)630 5121 y(pt0.draw\(pt1\);)630 -5230 y(Point)g(pt2\(0,)g(0,)i(-4\);)630 5340 y(Point)e(pt3\(0,)g(0,)i -(4\);)p eop end +b(Picture)31 b(Reference)2252 b(108)870 299 y Fz(PARALLEL_X_Y)27 +b FI(for)j(parallel)i(pro)5 b(jection)31 b(on)m(to)g(the)g(x-y)f +(plane,)870 408 y Fz(PARALLEL_X_Z)d FI(for)j(parallel)i(pro)5 +b(jection)31 b(on)m(to)g(the)g(x-z)g(plane,)f(and)870 +518 y Fz(PARALLEL_Z_Y)c FI(for)j(parallel)h(pro)5 b(jection)30 +b(on)m(to)h(the)e(z-y)h(plane.)41 b(\045\045)28 b(!!)41 +b(TO)29 b(DO:)870 628 y(I)h(plan)g(to)h(add)f(isometric)i(and)d +(axionometric)k(pro)5 b(jections)31 b(so)s(on.)390 777 +y Fz(real)e Ft(factor)870 887 y FI(Default:)74 b(1.)89 +b(P)m(assed)47 b(from)f Fz(output\(\))e FI(to)j Fz(extract\(\))d +FI(and)i(from)g(there)g(to)870 996 y Fz(project\(\))p +FI(.)56 b(The)36 b Fz(world_coordinates)31 b FI(of)37 +b(the)f Fz(Points)f FI(that)i(are)g(pro)5 b(jected)870 +1106 y(are)37 b(m)m(ultiplied)g(b)m(y)f Ft(factor)p FI(,)j(whic)m(h)d +(enlarges)h(or)g(shrinks)d(the)j(pro)5 b(jected)37 b(image)870 +1215 y(without)i(altering)h(the)e Fz(Picture)f FI(itself.)67 +b Ft(factor)46 b FI(is)38 b(probably)g(most)h(useful)f(for)870 +1325 y(parallel)44 b(pro)5 b(jections,)47 b(where)c(the)g +Fz(Focus)e Ft(f)61 b FI(isn't)43 b(used;)49 b(with)42 +b(a)i(p)s(ersp)s(ectiv)m(e)870 1435 y(pro)5 b(jection,)30 +b(the)f(parameters)g(of)g(the)g Fz(Focus)e FI(can)i(b)s(e)f(used)g(to)h +(in\015uence)f(the)h(size)870 1544 y(of)i(the)f(pro)5 +b(jected)31 b(image.)390 1694 y Fz(const)e(unsigned)f(short)h +Ft(sort)p 1498 1694 28 4 v 40 w(v)-5 b(alue)870 1803 +y FI(Default:)65 b Fz(Sorting::MAX_Z)p FI(.)72 b(The)41 +b(v)-5 b(alue)43 b(used)e(should)g(b)s(e)h(one)g(of)g(the)g(con-)870 +1913 y(stan)m(ts)e(de\014ned)e(in)h Fz(namespace)28 b(Sorting)p +FI(,)40 b(See)f(Section)h(19.8.1.2)i([Namespace)870 2022 +y(Sorting],)j(page)d(107,)k(ab)s(o)m(v)m(e.)76 b(If)41 +b Fz(MAX_Z)f FI(\(the)i(default\))g(is)g(used,)i(the)e +Fz(Shapes)870 2132 y FI(on)k(the)g Fz(Picture)e FI(are)i(sorted)g +(according)h(to)g(the)f(maxim)m(um)g(z-v)-5 b(alue)47 +b(of)f(the)870 2242 y Fz(projective_extremes)30 b FI(of)35 +b(the)h Fz(Points)d FI(b)s(elonging)j(to)g(the)f Fz(Shape)p +FI(.)54 b(If)34 b Fz(MIN_Z)870 2351 y FI(is)27 b(used,)h(they)f(are)h +(sorted)g(according)g(to)g(the)g(minim)m(um)e(z-v)-5 +b(alue,)30 b(and)c(if)i Fz(MEAN_Z)870 2461 y FI(is)g(used,)f(they)h +(are)g(sorted)f(according)i(to)f(the)g(mean)f(of)h(the)g(maxim)m(um)f +(and)g(min-)870 2570 y(im)m(um)h(z-v)-5 b(alues.)40 b(If)28 +b Fz(NO_SORT)e FI(is)i(used,)f(the)h Fz(Shapes)f FI(are)h(output)f(in)h +(the)g(order)f(in)870 2680 y(whic)m(h)j(they)h(w)m(ere)f(put)g(on)m(to) +i(the)e Fz(Picture)p FI(.)870 2809 y(The)h(surface)h(hiding)g +(algorithm)h(implemen)m(ted)f(in)g(3DLDF)h(is)f(quite)h(primitiv)m(e,) +870 2919 y(and)g(do)s(esn't)h(alw)m(a)m(ys)h(w)m(ork)f(righ)m(t.)51 +b(F)-8 b(or)34 b Fz(Shapes)e FI(that)j(in)m(tersect,)h(it)e +FC(c)-5 b(an)c('t)43 b FI(w)m(ork)870 3029 y(righ)m(t.)67 +b(I)38 b(plan)h(to)g(w)m(ork)g(on)g(impro)m(ving)g(the)g(surface)g +(hiding)f(algorithm)i(so)s(on.)870 3138 y(This)j(is)h(not)h(a)f +(trivial)i(problem.)81 b(T)-8 b(o)44 b(solv)m(e)i(it)f(prop)s(erly)-8 +b(,)47 b(eac)m(h)e Fz(Shape)e FI(on)h(a)870 3248 y Fz(Picture)34 +b FI(m)m(ust)i(b)s(e)g(tested)h(for)f(in)m(tersection)i(with)e(ev)m +(ery)h(other)g Fz(Shape)e FI(on)h(the)870 3357 y Fz(Picture)p +FI(.)46 b(If)32 b(t)m(w)m(o)i(or)f(more)f Fz(Shapes)f +FI(in)m(tersect,)k(they)e(m)m(ust)g(b)s(e)f(brok)m(en)g(up)g(in)m(to) +870 3467 y(smaller)37 b(ob)5 b(jects)36 b(un)m(til)h(there)f(are)g(no)g +(more)g(in)m(tersections.)60 b(I)36 b(don't)g(exp)s(ect)g(to)870 +3577 y(ha)m(v)m(e)26 b(a)f(prop)s(er)e(solution)i(so)s(on,)g(but)f(I)h +(exp)s(ect)g(that)g(I)f(will)h(b)s(e)f(able)h(to)g(mak)m(e)h(some)870 +3686 y(impro)m(v)m(emen)m(ts.)42 b(See)31 b(Section)g(9.3)g([Surface)f +(Hiding],)h(page)g(66.)390 3836 y Fz(const)e(bool)g Ft(do)p +982 3836 V 40 w(w)m(arnings)870 3945 y FI(Default:)53 +b Fz(true)p FI(.)i(If)35 b Fz(true)p FI(,)i Fz(output\(\))c +FI(issues)i(w)m(arnings)h(to)g Fz(stderr)e FI(\(standard)870 +4055 y(error)43 b(output\))g(if)g(a)g Fz(Shape)f FI(cannot)h(b)s(e)g +(output)f(b)s(ecause)h(it)h(lies)f(outside)h(the)870 +4164 y(limits)31 b(set)g(b)m(y)g(the)g(follo)m(wing)h(argumen)m(ts.)42 +b(Sometimes,)31 b(a)g(user)f(ma)m(y)h(only)g(w)m(an)m(t)870 +4274 y(to)c(pro)5 b(ject)27 b(a)g(p)s(ortion)f(of)h(a)g +Fz(Picture)p FI(,)e(in)h(whic)m(h)h(case)g(suc)m(h)f(w)m(arnings)g(w)m +(ould)h(not)870 4384 y(b)s(e)j(helpful.)40 b(In)29 b(this)i(case,)g +Ft(do)p 1940 4384 V 40 w(w)m(arnings)j FI(should)29 b(b)s(e)h +Fz(false)p FI(.)390 4533 y Fz(const)f(real)g Ft(min)p +1038 4533 V 40 w(x)p 1126 4533 V 40 w(pro)5 b(j)870 4643 +y FI(Default:)58 b(-40.)66 b(The)38 b(minim)m(um)f(x-co)s(ordinate)j +(of)e(the)h(pro)5 b(jection)39 b(of)g(a)f Fz(Shape)870 +4752 y FI(suc)m(h)c(that)g(the)h Fz(Shape)d FI(can)j(b)s(e)e(output.)52 +b(If)34 b Fz(projective_coordinates[)o(0])28 b FI(of)870 +4862 y(an)m(y)42 b Fz(Point)e FI(on)h(a)h Fz(Shape)d +FI(is)j(less)g(than)f Ft(min)p 2499 4862 V 39 w(x)p 2586 +4862 V 40 w(pro)5 b(j)p FI(,)44 b(the)d Fz(Shape)f FI(will)i(not)g(b)s +(e)870 4971 y(pro)5 b(jected)31 b(at)g(all.)390 5121 +y Fz(const)e(real)g Ft(max)p 1055 5121 V 40 w(x)p 1143 +5121 V 40 w(pro)5 b(j)870 5230 y FI(Default:)60 b(40.)68 +b(The)39 b(maxim)m(um)g(x-co)s(ordinate)i(of)e(the)h(pro)5 +b(jection)40 b(of)g(a)f Fz(Shape)870 5340 y FI(suc)m(h)34 +b(that)g(the)h Fz(Shape)d FI(can)j(b)s(e)e(output.)52 +b(If)34 b Fz(projective_coordinates[)o(0])28 b FI(of)p +eop end %%Page: 109 121 TeXDict begin 109 120 bop 150 -116 a FI(Chapter)30 b(19:)41 -b(Picture)31 b(Reference)2252 b(109)630 299 y Fz(pt2.draw\(pt3\);)630 -408 y(pt0.dotlabel\("0",)43 b("lft"\);)630 518 y(pt1.dotlabel\("1",)g -("rt"\);)630 628 y(pt2.dotlabel\("2",)g("bot"\);)630 -737 y(pt3.dotlabel\("3"\);)630 847 y(current_picture.output\(P)o(roje)o -(ctio)o(ns:)o(:PAR)o(ALLE)o(L_X)o(_Z\);)630 956 y -(current_picture.rotate\(0)o(,)f(60\);)630 1066 y -(current_picture.suppress)o(_lab)o(els\()o(\);)630 1176 +b(Picture)31 b(Reference)2252 b(109)870 299 y(an)m(y)30 +b Fz(Point)e FI(on)h(a)h Fz(Shape)d FI(is)j(greater)g(than)g +Ft(max)p 2561 299 28 4 v 40 w(x)p 2649 299 V 40 w(pro)5 +b(j)p FI(,)29 b(the)g Fz(Shape)f FI(will)i(not)g(b)s(e)870 +408 y(pro)5 b(jected)31 b(at)g(all.)390 568 y Fz(const)e(real)g +Ft(min)p 1038 568 V 40 w(y)p 1126 568 V 40 w(pro)5 b(j)870 +678 y FI(Default:)58 b(-40.)66 b(The)38 b(minim)m(um)f(y-co)s(ordinate) +j(of)e(the)h(pro)5 b(jection)39 b(of)g(a)f Fz(Shape)870 +788 y FI(suc)m(h)c(that)g(the)h Fz(Shape)d FI(can)j(b)s(e)e(output.)52 +b(If)34 b Fz(projective_coordinates[)o(1])28 b FI(of)870 +897 y(an)m(y)42 b Fz(Point)e FI(on)h(a)h Fz(Shape)d FI(is)j(less)g +(than)f Ft(min)p 2499 897 V 39 w(y)p 2586 897 V 40 w(pro)5 +b(j)p FI(,)44 b(the)d Fz(Shape)f FI(will)i(not)g(b)s(e)870 +1007 y(pro)5 b(jected)31 b(at)g(all.)390 1167 y Fz(const)e(real)g +Ft(max)p 1055 1167 V 40 w(y)p 1143 1167 V 40 w(pro)5 +b(j)870 1276 y FI(Default:)60 b(40.)68 b(The)39 b(maxim)m(um)g(y-co)s +(ordinate)i(of)e(the)h(pro)5 b(jection)40 b(of)g(a)f +Fz(Shape)870 1386 y FI(suc)m(h)34 b(that)g(the)h Fz(Shape)d +FI(can)j(b)s(e)e(output.)52 b(If)34 b Fz(projective_coordinates[)o(1]) +28 b FI(of)870 1496 y(an)m(y)i Fz(Point)e FI(on)h(a)h +Fz(Shape)d FI(is)j(greater)g(than)g Ft(max)p 2561 1496 +V 40 w(y)p 2649 1496 V 40 w(pro)5 b(j)p FI(,)29 b(the)g +Fz(Shape)f FI(will)i(not)g(b)s(e)870 1605 y(pro)5 b(jected)31 +b(at)g(all.)390 1765 y Fz(const)e(real)g Ft(min)p 1038 +1765 V 40 w(z)p 1118 1765 V 40 w(pro)5 b(j)870 1875 y +FI(Default:)59 b(-40.)68 b(The)38 b(minim)m(um)g(z-co)s(ordinate)j(of)e +(the)g(pro)5 b(jection)40 b(of)f(a)g Fz(Shape)870 1984 +y FI(suc)m(h)34 b(that)g(the)h Fz(Shape)d FI(can)j(b)s(e)e(output.)52 +b(If)34 b Fz(projective_coordinates[)o(2])28 b FI(of)870 +2094 y(an)m(y)42 b Fz(Point)f FI(on)h(a)g Fz(Shape)e +FI(is)i(less)h(than)e Ft(min)p 2503 2094 V 40 w(z)p 2583 +2094 V 40 w(pro)5 b(j)p FI(,)45 b(the)d Fz(Shape)e FI(will)i(not)h(b)s +(e)870 2204 y(pro)5 b(jected)31 b(at)g(all.)390 2364 +y Fz(const)e(real)g Ft(max)p 1055 2364 V 40 w(z)p 1135 +2364 V 41 w(pro)5 b(j)870 2473 y FI(Default:)61 b(40.)70 +b(The)40 b(maxim)m(um)g(z-co)s(ordinate)h(of)f(the)g(pro)5 +b(jection)41 b(of)f(a)g Fz(Shape)870 2583 y FI(suc)m(h)34 +b(that)g(the)h Fz(Shape)d FI(can)j(b)s(e)e(output.)52 +b(If)34 b Fz(projective_coordinates[)o(2])28 b FI(of)870 +2692 y(an)m(y)i Fz(Point)f FI(on)h(a)g Fz(Shape)e FI(is)i(greater)i +(than)d Ft(max)p 2565 2692 V 40 w(z)p 2645 2692 V 41 +w(pro)5 b(j)p FI(,)29 b(the)i Fz(Shape)d FI(will)i(not)h(b)s(e)870 +2802 y(pro)5 b(jected)31 b(at)g(all.)3350 2988 y([F)-8 +b(unction])-3599 b Fc(void)39 b Fd(suppress)p 832 2988 +35 5 v 50 w(lab)s(els)44 b Fw(\()p Fz(void)p Fw(\))390 +3097 y FI(Suppresses)25 b(output)i(of)h(the)g Fz(Labels)d +FI(on)j(a)g Fz(Picture)d FI(when)i Fz(output\(\))e FI(is)i(called.)41 +b(This)27 b(can)h(b)s(e)390 3207 y(useful)h(when)f(a)i +Fz(Picture)d FI(is)j(output,)f(transformed,)g(and)g(output)g(again,)i +(one)e(or)h(more)f(times,)390 3316 y(in)34 b(a)h(single)h(\014gure.)53 +b(Usually)-8 b(,)36 b(it)g(will)f(not)g(b)s(e)f(desirable)g(to)i(ha)m +(v)m(e)g(the)f Fz(Labels)e FI(output)h(more)390 3426 +y(than)c(once.)390 3561 y(In)37 b(Fig.)h(79,)i Fz(current_picture)33 +b FI(is)k(output)g(three)h(times,)i(but)c(the)i Fz(Labels)d +FI(on)i(it)h(are)g(only)390 3671 y(output)30 b(once.)630 +3806 y Fz(Ellipse)46 b(e\(origin,)f(3,)i(5\);)630 3915 +y(e.label\(\);)630 4025 y(e.draw\(\);)630 4134 y(Point)f(pt0\(-3\);)630 +4244 y(Point)g(pt1\(3\);)630 4354 y(pt0.draw\(pt1\);)630 +4463 y(Point)g(pt2\(0,)g(0,)i(-4\);)630 4573 y(Point)e(pt3\(0,)g(0,)i +(4\);)630 4682 y(pt2.draw\(pt3\);)630 4792 y(pt0.dotlabel\("0",)43 +b("lft"\);)630 4902 y(pt1.dotlabel\("1",)g("rt"\);)630 +5011 y(pt2.dotlabel\("2",)g("bot"\);)630 5121 y(pt3.dotlabel\("3"\);) +630 5230 y(current_picture.output\(P)o(roje)o(ctio)o(ns:)o(:PAR)o(ALLE) +o(L_X)o(_Z\);)630 5340 y(current_picture.rotate\(0)o(,)f(60\);)p +eop end +%%Page: 110 122 +TeXDict begin 110 121 bop 150 -116 a FI(Chapter)30 b(19:)41 +b(Picture)31 b(Reference)2252 b(110)630 299 y Fz +(current_picture.suppress)o(_lab)o(els\()o(\);)630 408 y(current_picture.output\(P)o(roje)o(ctio)o(ns:)o(:PAR)o(ALLE)o(L_X)o -(_Z\);)630 1285 y(current_picture.rotate\(0)o(,)g(60\);)630 -1395 y(current_picture.output\(P)o(roje)o(ctio)o(ns:)o(:PAR)o(ALLE)o -(L_X)o(_Z\);)942 3866 y @beginspecial -121 @llx -145 +(_Z\);)630 518 y(current_picture.rotate\(0)o(,)42 b(60\);)630 +628 y(current_picture.output\(P)o(roje)o(ctio)o(ns:)o(:PAR)o(ALLE)o +(L_X)o(_Z\);)942 3099 y @beginspecial -121 @llx -145 @lly 121 @urx 145 @ury 2420 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.79 %!PS @@ -21832,20 +21845,20 @@ %%EOF %%EndDocument - @endspecial 1748 3975 a FI(Figure)31 b(79.)3119 4160 + @endspecial 1748 3208 a FI(Figure)31 b(79.)3119 3392 y([Inline)f(function])-3600 b Fc(void)39 b Fd(unsuppress)p -960 4160 35 5 v 49 w(lab)s(els)45 b Fw(\()p Fz(void)p -Fw(\))390 4269 y FI(Sets)35 b Fz(do_labels)d FI(to)j +960 3392 35 5 v 49 w(lab)s(els)45 b Fw(\()p Fz(void)p +Fw(\))390 3502 y FI(Sets)35 b Fz(do_labels)d FI(to)j Fz(true)p FI(.)53 b(If)34 b(a)h Fz(Picture)d FI(con)m(tains)k Fz(Labels)p FI(,)e Fz(unsuppress_labels\(\))c FI(en-)390 -4379 y(sures)i(that)i(they)f(will)g(b)s(e)g(output,)g(when)f +3612 y(sures)i(that)i(they)f(will)g(b)s(e)g(output,)g(when)f Fz(Picture::output\(\))c FI(is)34 b(called,)h(so)e(long)g(as)h(there) -390 4488 y(is)c(no)h(in)m(terv)m(ening)g(call)h(to)f +390 3721 y(is)c(no)h(in)m(terv)m(ening)g(call)h(to)f Fz(suppress_labels\(\))26 b FI(or)k Fz(kill_labels\(\))p FI(.)p eop end -%%Page: 110 122 -TeXDict begin 110 121 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(110)150 299 y FE(20)80 +%%Page: 111 123 +TeXDict begin 111 122 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(111)150 299 y FE(20)80 b(P)l(oin)l(t)52 b(Reference)150 528 y FI(Class)20 b Fz(Point)f FI(is)i(de\014ned)e(in)h(`)p Fz(points.web)p FI('.)35 b(It)21 b(is)f(deriv)m(ed)g(from)g Fz(Shape)f @@ -21871,10 +21884,10 @@ (to)h Fz(out_stream)p FI(.)39 b(The)30 b(z)h(v)-5 b(alue)31 b(is)g(used)f(in)390 2084 y(the)36 b(hidden)f(surface)g(algorithm)i (\(whic)m(h)f(is)g(curren)m(tly)g(rather)g(primitiv)m(e)h(and)e(do)s -(esn't)h(w)m(ork)390 2193 y(v)m(ery)44 b(w)m(ell.)80 -b(see)44 b(Section)g(9.3)h([Surface)e(Hiding],)k(page)d(66\).)81 -b(The)43 b(w)g(v)-5 b(alue)43 b(can)h(b)s(e)f FG(6)p -FI(=)j(1,)390 2303 y(dep)s(ending)31 b(on)i(the)g(pro)5 +(esn't)h(w)m(ork)390 2193 y(v)m(ery)42 b(w)m(ell.)74 +b(see)42 b(Section)g(9.3)g([Surface)f(Hiding],)k(page)d(66\).)74 +b(The)41 b(w)g(v)-5 b(alue)42 b(can)f(b)s(e)g FG(6)p +FI(=)i(1)f(,)390 2303 y(dep)s(ending)31 b(on)i(the)g(pro)5 b(jection)34 b(used;)f(the)g(p)s(ersp)s(ectiv)m(e)g(pro)5 b(jection)34 b(is)f(non-a\016ne,)g(so)g(w)g(can)390 2413 y(tak)m(e)f(on)e(other)h(v)-5 b(alues.)3071 2594 y([Priv)g(ate)32 @@ -21909,7 +21922,7 @@ b(up)s(dated)f(and)g Fz(transform)f FI(is)i(reset)g(to)h(the)f(iden)m (tit)m(y)i Fz(Transform)p FI(.)64 b(See)39 b(Section)h(20.13)390 4429 y([P)m(oin)m(t)32 b(Reference;)f(Applying)f(T)-8 -b(ransformations],)31 b(page)g(125.)3071 4611 y([Priv)-5 +b(ransformations],)31 b(page)g(126.)3071 4611 y([Priv)-5 b(ate)32 b(v)-5 b(ariable])-3599 b Fc(bool)39 b Fd(on)p 526 4611 V 51 w(free)p 765 4611 V 49 w(store)390 4720 y FI(Indicates)c(whether)g(a)g Fz(Point)e FI(has)i(b)s(een)f @@ -21924,9 +21937,9 @@ Fz(drawdot\(\))d FI(or)390 5340 y Fz(undrawdot\(\))p FI(\))28 b(to)j(write)f(to)h Fz(out_stream)d FI(when)h(outputting)i(a)g Fz(Point)p FI(.)p eop end -%%Page: 111 123 -TeXDict begin 111 122 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(111)390 299 y(When)31 +%%Page: 112 124 +TeXDict begin 112 123 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(112)390 299 y(When)31 b Fz(drawdot\(\))d FI(or)k Fz(undrawdot\(\))c FI(is)j(called)h(on)f(a)g Fz(Point)p FI(,)g(the)g Fz(Point)e FI(is)j(copied)f(and)g(put)390 408 y(on)m(to)j(the)g Fz(Picture)p FI(,)e(whic)m(h)g(w)m(as)i(passed)f @@ -21955,7 +21968,7 @@ b(with)f(the)g(param-)390 1958 y(eters)42 b(of)g(a)g(particular)h(in)m (v)m(o)s(cation)g(of)f Fz(Picture::output\(\))p FI(.)70 b(See)42 b(Section)h(19.8)g([Picture)390 2067 y(Reference;)31 -b(Outputting],)g(page)g(105.)390 2203 y(Ob)m(viously)-8 +b(Outputting],)g(page)g(106.)390 2203 y(Ob)m(viously)-8 b(,)24 b(the)f(maxima)g(and)f(minima)g(will)g(alw)m(a)m(ys)i(b)s(e)e (the)g(same)h(for)f(a)h Fz(Point)p FI(,)g(namely)f(the)h(x,)390 2313 y(y)-8 b(,)30 b(and)e(z-co)s(ordinates.)41 b(Ho)m(w)m(ev)m(er,)32 @@ -21973,7 +21986,7 @@ 3049 y FI(b)m(y)j Fz(Picture::output\(\))p FI(,)d(if)j(the)g Fz(Shape)e FI(is)i(not)g(pro)5 b(jectable.)67 b(See)39 b(Section)g(19.8)h([Picture)390 3158 y(Reference;)31 -b(Outputting],)g(page)g(105.)2857 3346 y([Public)f(static)i(v)-5 +b(Outputting],)g(page)g(106.)2857 3346 y([Public)f(static)i(v)-5 b(ariable])-3599 b Fc(string)40 b Fd(measuremen)m(t)p 1177 3346 V 49 w(units)390 3455 y FI(The)33 b(unit)g(of)g(measuremen)m (t)h(for)f(all)h(distances)g(within)f(a)h Fz(Picture)p @@ -22009,10 +22022,10 @@ b(and)e(z-co)s(ordinates)i(will)e(all)h(b)s(e)f(0.)62 b(See)390 5340 y(Section)31 b(20.4)h([P)m(oin)m(t)g(Reference;)f (Constructors)f(and)g(Setting)h(F)-8 b(unctions],)32 -b(page)f(114.)p eop end -%%Page: 112 124 -TeXDict begin 112 123 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(112)630 299 y Fz(Point)46 +b(page)f(115.)p eop end +%%Page: 113 125 +TeXDict begin 113 124 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(113)630 299 y Fz(Point)46 b(A\(1\);)630 408 y(A.show\("A:"\);)650 522 y FG(a)773 518 y Fz(A:)h(\(1,)g(0,)g(0\);)630 628 y(CURR_Y)f(=)i(5;)630 737 y(A.set\(2\);)630 847 y(A.show\("A:"\);)650 960 y @@ -22070,9 +22083,9 @@ Fz(second)d FI(to)i Ft(b)p FI(,)g Fz(third)e FI(to)j Ft(c)p FI(,)g(and)390 5340 y Fz(fourth)f FI(to)i Ft(d)p FI(.)p eop end -%%Page: 113 125 -TeXDict begin 113 124 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(113)2872 299 y([Assignmen)m(t)31 +%%Page: 114 126 +TeXDict begin 114 125 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(114)2872 299 y([Assignmen)m(t)31 b(op)s(erator])-3599 b Fc(void)39 b Fd(b)s(o)s(ol)p 621 299 35 5 v 51 w(p)s(oin)m(t)p 934 299 V 50 w(quadruple::op)s(erator=)k Fw(\()p Fz(const)565 408 y(bool_point_quadruple&)25 b @@ -22106,14 +22119,13 @@ FI(to)h Ft(rr)p FI(,)f(and)g Fz(pt)g FI(to)h Ft(ppt)p FI(.)2872 2507 y([Assignmen)m(t)g(op)s(erator])-3599 b Fc(void)39 b Fd(b)s(o)s(ol)p 621 2507 V 51 w(real)p -860 2507 V 50 w(p)s(oin)m(t::op)s(erator=)p Fw(\()p Fd(const)565 -2617 y(b)s(o)s(ol)p 789 2617 V 51 w(real)p 1028 2617 -V 50 w(p)s(oin)m(t&)44 b Fp(brp)11 b Fw(\))390 2726 y -FI(Mak)m(es)32 b Fz(*this)d FI(a)h(cop)m(y)i(of)e Ft(brp)p -FI(.)150 3059 y FH(20.3)68 b(Global)46 b(Constan)l(ts)g(and)f(V)-11 -b(ariables)3338 3333 y FI([Constan)m(t])-3599 b Fc(Point)40 -b Fd(INV)-13 b(ALID)p 952 3333 V 50 w(POINT)390 3443 -y FI(The)30 b(x,)g(y)-8 b(,)31 b(and)f(z-v)-5 b(alues)32 +860 2507 V 50 w(p)s(oin)m(t::op)s(erator=)44 b Fw(\()p +Fz(const)565 2617 y(bool_real_point&)26 b Fp(brp)11 b +Fw(\))390 2726 y FI(Mak)m(es)32 b Fz(*this)d FI(a)h(cop)m(y)i(of)e +Ft(brp)p FI(.)150 3059 y FH(20.3)68 b(Global)46 b(Constan)l(ts)g(and)f +(V)-11 b(ariables)3338 3333 y FI([Constan)m(t])-3599 +b Fc(Point)40 b Fd(INV)-13 b(ALID)p 952 3333 V 50 w(POINT)390 +3443 y FI(The)30 b(x,)g(y)-8 b(,)31 b(and)f(z-v)-5 b(alues)32 b(in)e Fz(world_coordinates)25 b FI(are)31 b(all)g Fz(INVALID_REAL)p FI(.)3338 3687 y([Constan)m(t])-3599 b Fc(Point)40 b Fd(origin)390 3797 y FI(The)30 b(x,)g(y)-8 b(,)31 b(and)f(z-v)-5 @@ -22137,9 +22149,9 @@ 5322 y Fz(first)p FI(,)29 b Fz(second)p FI(,)g Fz(third)p FI(,)g(and)h Fz(fourth)f FI(are)h(all)i Fz(INVALID_BOOL_POINT)p FI(.)p eop end -%%Page: 114 126 -TeXDict begin 114 125 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(114)150 299 y FH(20.4)68 +%%Page: 115 127 +TeXDict begin 115 126 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(115)150 299 y FH(20.4)68 b(Constructors)46 b(and)e(Setting)i(F)-11 b(unctions)2924 540 y FI([Default)32 b(constructor])-3599 b Fc(void)39 b Fd(P)m(oin)m(t)45 b Fw(\()p Fz(void)p Fw(\))390 649 @@ -22180,38 +22192,38 @@ (the)g(co)s(ordinates)390 2660 y(of)44 b(an)f(existing)i Fz(Point)p FI(.)79 b(This)42 b(function)i(exists)g(purely)f(as)g(a)h (con)m(v)m(enience;)53 b(the)44 b(op)s(erator)390 2770 -y Fz(operator=\(\))82 b FI(\(see)44 b(Section)f(20.6)i([P)m(oin)m(t)f -(Reference;)50 b(Op)s(erators],)c(page)d(115\))i(p)s(erforms)390 -2880 y(exactly)32 b(the)f(same)f(function.)3111 3054 -y([Static)i(function])-3600 b Fc(Point*)40 b Fd(create)p -815 3054 35 5 v 49 w(new)p 1064 3054 V 49 w(p)s(oin)m(t)45 -b Fw(\()p Fy([)p Fz(const)29 b(Point*)g Fp(p)40 b Fz(=)31 -b(0)p Fy(])p Fw(\))3111 3163 y FI([Static)h(function])-3600 -b Fc(Point*)40 b Fd(create)p 815 3163 V 49 w(new)p 1064 -3163 V 49 w(p)s(oin)m(t)45 b Fw(\()p Fz(const)29 b(Point&)f -Fp(p)11 b Fw(\))3111 3273 y FI([Static)32 b(function])-3600 -b Fc(Point*)40 b Fd(create)p 815 3273 V 49 w(new)p 1064 -3273 V 49 w(p)s(oin)m(t)45 b Fw(\()p Fz(const)29 b(real)g -Fp(x)p Fz(,)h Fy([)p Fz(const)f(real)g Fp(y)41 b Fz(=)30 -b(0,)565 3382 y Fy([)p Fz(const)g(real)f Fp(z)40 b Fz(=)30 -b(0)p Fy(]])p Fw(\))390 3492 y FI(Pseudo-constructors)21 -b(for)g(dynamic)g(allo)s(cation)i(of)f Fz(Points)p FI(.)36 -b(These)21 b(functions)f(create)j(a)e Fz(Point)390 3602 -y FI(on)k(the)h(free)f(store)h(and)f(allo)s(cate)j(memory)d(for)g(it)h -(using)f Fz(new\(Point\))p FI(.)36 b(They)25 b(return)f(a)i(p)s(oin)m -(ter)390 3711 y(to)39 b(the)f(new)f Fz(Point)p FI(.)63 -b(One)37 b(use)h(is)g(in)g(the)g(constructors)g(for)g -Fz(classes)e FI(of)i(ob)5 b(jects)39 b(that)g(can)390 -3821 y(con)m(tain)c(a)f(v)-5 b(ariable)34 b(n)m(um)m(b)s(er)e(of)i -Fz(Points)p FI(,)f(suc)m(h)g(as)h Fz(Path)e FI(and)h -Fz(Polygon)p FI(.)48 b(Another)33 b(use)h(is)f(in)390 -3930 y(the)c(dra)m(wing)g(and)g(\014lling)g(functions,)h(where)e(ob)5 -b(jects)30 b(are)g(copied)g(and)e(the)i(copies)g(put)e(on)m(to)j(a)390 -4040 y Fz(Picture)p FI(.)390 4171 y(Programmers)23 b(who)h(dynamically) -g(allo)s(cate)i Fz(Points)c FI(m)m(ust)i(ensure)f(that)h(they)g(are)g -(deallo)s(cated)390 4281 y(prop)s(erly)29 b(using)h Fz(delete)p -FI(!)390 4412 y(In)22 b(the)g(\014rst)g(v)m(ersion,)j(the)d(optional)i -(argumen)m(t)e Ft(p)j FI(can)e(b)s(e)e(a)i(p)s(oin)m(ter)g(to)g +y Fz(operator=\(\))29 b FI(\(see)j(Section)h(20.6)g([P)m(oin)m(t)g +(Reference;)h(Op)s(erators],)d(page)i(116\))g(p)s(erforms)d(ex-)390 +2880 y(actly)i(the)e(same)h(function.)3111 3054 y([Static)h(function]) +-3600 b Fc(Point*)40 b Fd(create)p 815 3054 35 5 v 49 +w(new)p 1064 3054 V 49 w(p)s(oin)m(t)45 b Fw(\()p Fy([)p +Fz(const)29 b(Point*)g Fp(p)40 b Fz(=)31 b(0)p Fy(])p +Fw(\))3111 3163 y FI([Static)h(function])-3600 b Fc(Point*)40 +b Fd(create)p 815 3163 V 49 w(new)p 1064 3163 V 49 w(p)s(oin)m(t)45 +b Fw(\()p Fz(const)29 b(Point&)f Fp(p)11 b Fw(\))3111 +3273 y FI([Static)32 b(function])-3600 b Fc(Point*)40 +b Fd(create)p 815 3273 V 49 w(new)p 1064 3273 V 49 w(p)s(oin)m(t)45 +b Fw(\()p Fz(const)29 b(real)g Fp(x)p Fz(,)h Fy([)p Fz(const)f(real)g +Fp(y)41 b Fz(=)30 b(0,)565 3382 y Fy([)p Fz(const)g(real)f +Fp(z)40 b Fz(=)30 b(0)p Fy(]])p Fw(\))390 3492 y FI +(Pseudo-constructors)21 b(for)g(dynamic)g(allo)s(cation)i(of)f +Fz(Points)p FI(.)36 b(These)21 b(functions)f(create)j(a)e +Fz(Point)390 3602 y FI(on)k(the)h(free)f(store)h(and)f(allo)s(cate)j +(memory)d(for)g(it)h(using)f Fz(new\(Point\))p FI(.)36 +b(They)25 b(return)f(a)i(p)s(oin)m(ter)390 3711 y(to)39 +b(the)f(new)f Fz(Point)p FI(.)63 b(One)37 b(use)h(is)g(in)g(the)g +(constructors)g(for)g Fz(classes)e FI(of)i(ob)5 b(jects)39 +b(that)g(can)390 3821 y(con)m(tain)c(a)f(v)-5 b(ariable)34 +b(n)m(um)m(b)s(er)e(of)i Fz(Points)p FI(,)f(suc)m(h)g(as)h +Fz(Path)e FI(and)h Fz(Polygon)p FI(.)48 b(Another)33 +b(use)h(is)f(in)390 3930 y(the)c(dra)m(wing)g(and)g(\014lling)g +(functions,)h(where)e(ob)5 b(jects)30 b(are)g(copied)g(and)e(the)i +(copies)g(put)e(on)m(to)j(a)390 4040 y Fz(Picture)p FI(.)390 +4171 y(Programmers)23 b(who)h(dynamically)g(allo)s(cate)i +Fz(Points)c FI(m)m(ust)i(ensure)f(that)h(they)g(are)g(deallo)s(cated) +390 4281 y(prop)s(erly)29 b(using)h Fz(delete)p FI(!)390 +4412 y(In)22 b(the)g(\014rst)g(v)m(ersion,)j(the)d(optional)i(argumen)m +(t)e Ft(p)j FI(can)e(b)s(e)e(a)i(p)s(oin)m(ter)g(to)g Fz(Point)p FI(.)36 b(If)22 b(an)g(argumen)m(t)390 4521 y(is)39 b(presen)m(t,)i(the)d(x,)j(y)-8 b(,)41 b(and)d(z-co)s (ordinates)i(of)f(the)g(new)f Fz(Point)f FI(are)i(copied)g(from)f @@ -22231,38 +22243,38 @@ FI(are)30 b(not)g(sp)s(eci\014ed,)f(the)h(corresp)s(onding)e(co)s (ordinates)j(are)f(set)g(to)g(0,)h(not)390 5331 y Fz(CURR_Y)e FI(or)h Fz(CURR_Z)p FI(.)p eop end -%%Page: 115 127 -TeXDict begin 115 126 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(115)150 299 y FH(20.5)68 +%%Page: 116 128 +TeXDict begin 116 127 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(116)150 299 y FH(20.5)68 b(Destructor)2911 541 y FI([)p Fz(virtual)29 b FI(Destructor])-3599 b Fc(void)39 b(~)p Fd(P)m(oin)m(t)45 b Fw(\()p Fz(void)p Fw(\))390 650 y FI(This)31 b(function)h(curren)m(tly)g(has)g(an)g(empt) m(y)g(de\014nition,)g(but)g(its)g(existence)i(prev)m(en)m(ts)e(GCC)g -(3.3)390 760 y(from)20 b(issuing)g(the)h(follo)m(wing)h(w)m(arning:)36 -b(\\)16 b(`class)21 b(P)m(oin)m(t')h(has)f(virtual)g(functions)f(but)g -(non-virtual)390 869 y(destructor".)150 1120 y FH(20.6)68 -b(Op)t(erators)2872 1362 y FI([Assignmen)m(t)31 b(op)s(erator])-3599 -b Fc(void)39 b Fd(op)s(erator=)45 b Fw(\()p Fz(const)30 -b(Point&)e Fp(p)11 b Fw(\))390 1471 y FI(Mak)m(es)32 -b Fz(*this)d FI(a)h(cop)m(y)i(of)e Ft(p)p FI(.)3338 1649 -y([Op)s(erator])-3600 b Fc(Transform)41 b Fd(op)s(erator*=)k -Fw(\()p Fz(const)30 b(Transform&)d Fp(t)11 b Fw(\))390 -1758 y FI(Multiplies)44 b Fz(transform)d FI(b)m(y)i Ft(t)p -FI(.)79 b(By)43 b(m)m(ultiplying)h(a)f Fz(Point)f FI(successiv)m(ely)i -(b)m(y)f(one)h(or)f(more)390 1868 y Fz(Transforms)p FI(,)g(the)g -(e\013ect)h(of)e(the)h(transformations)g(is)f(\\sa)m(v)m(ed)i(up")e(in) -g Fz(transform)p FI(.)75 b(Only)390 1978 y(when)35 b(an)h(op)s(eration) -g(that)h(needs)e(up)s(dated)g(v)-5 b(alues)36 b(for)g(the)g -Fz(world_coordinates)c FI(is)k(called)390 2087 y(on)20 -b(a)h Fz(Point)p FI(,)h(or)e(the)h Fz(Point)e FI(is)i(passed)f(as)h(an) -f(argumen)m(t)h(to)h(suc)m(h)e(an)g(op)s(eration,)k(is)c(the)h -(transfor-)390 2197 y(mation)28 b(stored)g(in)g Fz(transform)d -FI(applied)i(to)i Fz(world_coordinates)23 b FI(b)m(y)k -Fz(apply_transform\(\))p FI(,)390 2306 y(whic)m(h)34 -b(subsequen)m(tly)-8 b(,)35 b(resets)f Fz(transform)e -FI(to)i(the)g(iden)m(tit)m(y)i Fz(Transform)p FI(.)49 -b(See)34 b(Section)h(20.13)390 2416 y([P)m(oin)m(t)d(Reference;)f -(Applying)f(T)-8 b(ransformations],)31 b(page)g(125.)3094 +(3.3)390 760 y(from)39 b(issuing)g(the)h(follo)m(wing)h(w)m(arning:)58 +b(\\)p Fz(\\)p FI(thinspace)40 b(`class)g(P)m(oin)m(t')h(has)f(virtual) +f(functions)390 869 y(but)30 b(non-virtual)g(destructor".)150 +1120 y FH(20.6)68 b(Op)t(erators)2872 1362 y FI([Assignmen)m(t)31 +b(op)s(erator])-3599 b Fc(void)39 b Fd(op)s(erator=)45 +b Fw(\()p Fz(const)30 b(Point&)e Fp(p)11 b Fw(\))390 +1471 y FI(Mak)m(es)32 b Fz(*this)d FI(a)h(cop)m(y)i(of)e +Ft(p)p FI(.)3338 1649 y([Op)s(erator])-3600 b Fc(Transform)41 +b Fd(op)s(erator*=)k Fw(\()p Fz(const)30 b(Transform&)d +Fp(t)11 b Fw(\))390 1758 y FI(Multiplies)44 b Fz(transform)d +FI(b)m(y)i Ft(t)p FI(.)79 b(By)43 b(m)m(ultiplying)h(a)f +Fz(Point)f FI(successiv)m(ely)i(b)m(y)f(one)h(or)f(more)390 +1868 y Fz(Transforms)p FI(,)g(the)g(e\013ect)h(of)e(the)h +(transformations)g(is)f(\\sa)m(v)m(ed)i(up")e(in)g Fz(transform)p +FI(.)75 b(Only)390 1978 y(when)35 b(an)h(op)s(eration)g(that)h(needs)e +(up)s(dated)g(v)-5 b(alues)36 b(for)g(the)g Fz(world_coordinates)c +FI(is)k(called)390 2087 y(on)20 b(a)h Fz(Point)p FI(,)h(or)e(the)h +Fz(Point)e FI(is)i(passed)f(as)h(an)f(argumen)m(t)h(to)h(suc)m(h)e(an)g +(op)s(eration,)k(is)c(the)h(transfor-)390 2197 y(mation)28 +b(stored)g(in)g Fz(transform)d FI(applied)i(to)i Fz(world_coordinates) +23 b FI(b)m(y)k Fz(apply_transform\(\))p FI(,)390 2306 +y(whic)m(h)34 b(subsequen)m(tly)-8 b(,)35 b(resets)f +Fz(transform)e FI(to)i(the)g(iden)m(tit)m(y)i Fz(Transform)p +FI(.)49 b(See)34 b(Section)h(20.13)390 2416 y([P)m(oin)m(t)d +(Reference;)f(Applying)f(T)-8 b(ransformations],)31 b(page)g(126.)3094 2593 y([)p Fz(const)e FI(op)s(erator])-3599 b Fc(Point)40 b Fd(op)s(erator)p Fc(+)45 b Fw(\()p Fz(Point)29 b Fp(p)11 b Fw(\))390 2703 y FI(Returns)36 b(a)i Fz(Point)d FI(with)i @@ -22294,7 +22306,7 @@ b(y)-8 b(,)64 b(and)57 b(z)g(co)s(ordinates)h(\(from)390 4437 y Fz(world_coordinates)p FI(\))35 b(as)40 b(its)g(argumen)m(ts.)69 b(See)40 b(Section)h(20.12)h([P)m(oin)m(t)f(Reference;)k(A\016ne)390 -4547 y(T)-8 b(ransformations],)31 b(page)g(121.)3094 +4547 y(T)-8 b(ransformations],)31 b(page)g(122.)3094 4724 y([)p Fz(const)e FI(op)s(erator])-3599 b Fc(Point)40 b Fd(op)s(erator-)45 b Fw(\()p Fz(Point)29 b Fp(p)11 b Fw(\))390 4834 y FI(Returns)37 b(a)h Fz(Point)e FI(with)i @@ -22307,9 +22319,9 @@ b(alues)29 b(of)h Ft(p)s Fz(.world_coordinates)24 b FI(from)29 b(those)h(of)f Fz(this->world_)390 5340 y(coordinates)p FI(.)p eop end -%%Page: 116 128 -TeXDict begin 116 127 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(116)3338 299 y([Op)s(erator])-3600 +%%Page: 117 129 +TeXDict begin 117 128 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(117)3338 299 y([Op)s(erator])-3600 b Fc(real)39 b Fd(op)s(erator*=)46 b Fw(\()p Fz(const)29 b(real)g Fp(r)11 b Fw(\))390 408 y FI(Multiplies)27 b(the)g(up)s(dated) e(x,)i(y)-8 b(,)28 b(and)d(z)i(co)s(ordinates)g(\()p @@ -22381,12 +22393,12 @@ b FI(of)24 b(the)g(t)m(w)m(o)i Fz(Points)c FI(di\013er)i(b)m(y)g(less)g (than)g(the)h(v)-5 b(alue)24 b(returned)f(b)m(y)p eop end -%%Page: 117 129 -TeXDict begin 117 128 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(117)390 299 y Fz +%%Page: 118 130 +TeXDict begin 118 129 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(118)390 299 y Fz (Point::epsilon\(\))p FI(,)27 b(otherwise)k Fz(false)p FI(.)42 b(See)31 b(Section)h(20.10)h([P)m(oin)m(t)f(Reference;)g -(Returning)390 408 y(Information],)f(page)g(120.)3094 +(Returning)390 408 y(Information],)f(page)g(121.)3094 598 y([)p Fz(const)e FI(op)s(erator])-3599 b Fc(bool)39 b Fd(op)s(erator!=)45 b Fw(\()p Fz(const)30 b(Point&)e Fp(p)11 b Fw(\))390 707 y FI(Inequalit)m(y)31 b(comparison)g(for)f @@ -22403,7 +22415,7 @@ FI(.)390 1546 y(This)g(function)g(is)g(used)g(in)g(the)g(dra)m(wing)g (commands)g(for)h(putting)f Fz(Points)e FI(on)m(to)k Fz(Pictures)p FI(.)390 1656 y(See)31 b(Section)g(20.18)h([P)m(oin)m(t)g -(Reference;)f(Dra)m(wing],)h(page)f(134)150 1919 y FH(20.8)68 +(Reference;)f(Dra)m(wing],)h(page)f(135.)150 1919 y FH(20.8)68 b(Querying)3057 2166 y FI([)p Fz(inline)29 b FI(function])-3600 b Fc(bool)39 b Fd(is)p 482 2166 V 51 w(iden)m(tit)m(y)k Fw(\()p Fz(void)p Fw(\))390 2275 y FI(Returns)29 b Fz(true)h @@ -22444,10 +22456,10 @@ y(co)r(ordinates)g(for)g Fn(B)j Fr(and)c Fn(C)30 b Fr(w)n(ere)25 b(found)f(b)n(y)f(using)i Fs(Plane::intersection_point\(\))p Fr(.)40 b(See)24 b(Section)g(23.6)i([Planes;)275 5340 -y(In)n(tersections],)g(page)g(151.)p eop end -%%Page: 118 130 -TeXDict begin 118 129 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(118)1096 1575 y @beginspecial +y(In)n(tersections],)g(page)g(152.)p eop end +%%Page: 119 131 +TeXDict begin 119 130 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(119)1096 1575 y @beginspecial -135 @llx -170 @lly 70 @urx 19 @ury 2050 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.80 %!PS @@ -22538,9 +22550,9 @@ Fp(p1)p Fz(,)g(const)565 1992 y(Point&)g Fp(p2)p Fz(,)g Fy([)p Fz(bool)h Fp(verbose)39 b Fz(=)30 b(false,)f Fy([)p Fz(bool)g Fp(test_points)38 b Fz(=)30 b(true)p Fy(]])p -Fw(\))390 2102 y FI(Returns)k Fz(true)p FI(,)i(if)f(*this)h(lies)g -(within)f(the)g(triangle)i(determined)e(b)m(y)g(the)g(three)h -Fz(Point)e FI(argu-)390 2212 y(men)m(ts,)d(otherwise)g +Fw(\))390 2102 y FI(Returns)h Fz(true)p FI(,)g(if)h Fz(*this)e +FI(lies)j(within)e(the)h(triangle)h(determined)f(b)m(y)f(the)h(three)g +Fz(Point)f FI(argu-)390 2212 y(men)m(ts,)g(otherwise)g Fz(false)p FI(.)390 2353 y(If)37 b(the)g(co)s(de)g(calling)i Fz(is_in_triangle\(\))33 b FI(has)j(ensured)g(that)i Fu(p)2722 2367 y FA(0)2759 2353 y FI(,)h Fu(p)2869 2367 @@ -22588,9 +22600,9 @@ Fz(projective_)630 5230 y(coordinates)p FI(,)f(or)i(one)h(of)f(its)h (elemen)m(ts,)h(is)f(returned)e(unc)m(hanged,)h(whic)m(h)g(ma)m(y)h (some-)630 5340 y(times)f(b)s(e)f(useful.)p eop end -%%Page: 119 131 -TeXDict begin 119 130 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(119)150 299 y Fz(const)29 +%%Page: 120 132 +TeXDict begin 120 131 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(120)150 299 y Fz(const)29 b(bool)g Ft(do)p 742 299 28 4 v 40 w(apply)630 408 y FI(If)71 b Fz(true)f FI(\(the)i(default\),)83 b Fz(apply_transform\(\)) 67 b FI(is)k(called,)83 b(thereb)m(y)72 b(up)s(dating)630 @@ -22687,9 +22699,9 @@ b(the)h(y-co)s(ordinate)h(from)f(the)g(set)g(of)g(co)s(ordinates)h (indicated)f(\(or)h Fz(world_)390 5340 y(coordinates)p FI(,)28 b(b)m(y)i(default\).)p eop end -%%Page: 120 132 -TeXDict begin 120 131 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(120)3350 299 y([F)-8 +%%Page: 121 133 +TeXDict begin 121 132 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(121)3350 299 y([F)-8 b(unction])-3599 b Fc(real)39 b Fd(get)p 560 299 35 5 v 50 w(z)46 b Fw(\()p Fy([)p Fz(char)30 b Fp(coords)39 b Fz(=)30 b('w',)f Fy([)p Fz(const)g(bool)h Fp(do_persp)38 @@ -22767,11 +22779,11 @@ b(P)m(erformed)31 b(in)g Fz(apply_transform\(\))p FI(,)c(after)390 5208 y(the)41 b(latter)h(up)s(dates)e Fz(world_coordinates)p FI(.)68 b(Section)42 b(20.13)h([P)m(oin)m(t)f(Reference;)47 -b(Applying)390 5317 y(T)-8 b(ransformations],)31 b(page)g(125.)p +b(Applying)390 5317 y(T)-8 b(ransformations],)31 b(page)g(126.)p eop end -%%Page: 121 133 -TeXDict begin 121 132 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(121)150 299 y FH(20.12)69 +%%Page: 122 134 +TeXDict begin 122 133 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(122)150 299 y FH(20.12)69 b(A\016ne)44 b(T)-11 b(ransformations)3350 543 y FI([F)j(unction])-3599 b Fc(Transform)41 b Fd(rotate)j Fw(\()p Fz(const)29 b(real)h Fp(x)p Fz(,)f Fy([)p Fz(const)h(real)f Fp(y)41 b Fz(=)30 @@ -22948,9 +22960,9 @@ (1\);)630 5011 y(pt0.rotate\(0,)c(45\);)630 5121 y(pt0.rotate\(45\);) 630 5230 y(pt0.show\("pt0:"\);)650 5344 y FG(a)773 5340 y Fz(pt0:)j(\(0,)g(1.70711,)e(0.292893\))p eop end -%%Page: 122 134 -TeXDict begin 122 133 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(122)390 299 y(In)33 +%%Page: 123 135 +TeXDict begin 123 134 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(123)390 299 y(In)33 b(the)g(v)m(ersion)h(taking)g(t)m(w)m(o)h Fz(Point)d FI(argumen)m(ts)i Ft(p0)40 b FI(and)33 b Ft(p1)p FI(,)h(and)f(a)h Fz(real)e FI(argumen)m(t)i Ft(angle)p FI(,)390 408 y(the)g @@ -23112,9 +23124,9 @@ y(Point)f(p1\(-2,)g(-1,)h(-2\);)630 5121 y(p1.scale\(-2,)d(-3,)j(-4\);) 630 5230 y(p1.show\("p1:"\);)650 5344 y FG(a)773 5340 y Fz(p1:)g(\(4,)g(3,)g(8\))p eop end -%%Page: 123 135 -TeXDict begin 123 134 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(123)754 1675 y @beginspecial +%%Page: 124 136 +TeXDict begin 124 135 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(124)754 1675 y @beginspecial -227 @llx -150 @lly 60 @urx 51 @ury 2870 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.83 %!PS @@ -23247,48 +23259,49 @@ %%EOF %%EndDocument - @endspecial 1748 1785 a(Figure)31 b(83.)3350 2420 y([F)-8 + @endspecial 1748 1785 a(Figure)31 b(83.)3350 2365 y([F)-8 b(unction])-3599 b Fc(Transform)41 b Fd(shear)k Fw(\()p Fz(real)29 b Fp(xy)p Fz(,)h Fy([)p Fz(real)f Fp(xz)41 b Fz(=)30 b(0,)f Fy([)p Fz(real)h Fp(yx)40 b Fz(=)30 -b(0,)g Fy([)p Fz(real)g Fp(yz)40 b Fz(=)30 b(0,)565 2530 +b(0,)g Fy([)p Fz(real)g Fp(yz)40 b Fz(=)30 b(0,)565 2475 y Fy([)p Fz(real)g Fp(zx)40 b Fz(=)30 b(0,)g Fy([)p Fz(real)g -Fp(zy)40 b Fz(=)30 b(0)p Fy(]]]]])p Fw(\))390 2639 y +Fp(zy)40 b Fz(=)30 b(0)p Fy(]]]]])p Fw(\))390 2584 y FI(Calls)44 b Fz(transform.shear\(\))39 b FI(with)k(the)g(same)h (argumen)m(ts)g(and)f(returns)f(its)i(return)e(v)-5 b(alue,)390 -2749 y(namely)d(,)31 b(a)g Fz(Transform)d FI(represen)m(ting)j(the)f -(shearing)g(op)s(eration)h(only)-8 b(.)390 3109 y(Shearing)40 +2694 y(namely)d(,)31 b(a)g Fz(Transform)d FI(represen)m(ting)j(the)f +(shearing)g(op)s(eration)h(only)-8 b(.)390 3027 y(Shearing)40 b(mo)s(di\014es)f(eac)m(h)i(co)s(ordinate)f(of)g(a)h Fz(Point)d FI(prop)s(ortionately)j(to)f(the)g(v)-5 b(alues)41 -b(of)f(the)390 3219 y(other)f(t)m(w)m(o)i(co)s(ordinates.)68 -b(Let)40 b Fu(x)1586 3233 y FA(0)1623 3219 y FI(,)h Fu(y)1734 -3233 y FA(0)1771 3219 y FI(,)h(and)c Fu(z)2065 3233 y -FA(0)2142 3219 y FI(stand)h(for)g(the)g(co)s(ordinates)h(of)g(a)f -Fz(Point)f Fu(P)390 3328 y FI(b)s(efore)30 b Fz(P.shear\()p -Fu(\013;)15 b(\014)5 b(;)15 b(\015)5 b(;)15 b(\016)n(;)g(\017;)g(\020)7 -b Fz(\))p FI(,)31 b(and)f Fu(x)1868 3342 y FA(1)1905 -3328 y FI(,)h Fu(y)2006 3342 y FA(1)2042 3328 y FI(,)g(and)f -Fu(z)2317 3342 y FA(1)2385 3328 y FI(for)g(its)g(co)s(ordinates)i -(afterw)m(ards.)630 3524 y Fu(x)682 3538 y FA(1)775 3524 -y FG(\021)55 b Fu(x)953 3538 y FA(0)1041 3524 y FI(+)50 -b Fu(\013y)k FI(+)c Fu(\014)5 b(z)630 3633 y(y)675 3647 -y FA(1)767 3633 y FG(\021)56 b Fu(y)939 3647 y FA(0)1026 -3633 y FI(+)50 b Fu(\015)5 b(x)51 b FI(+)f Fu(\016)s(z)630 -3743 y(z)672 3757 y FA(1)765 3743 y FG(\021)55 b Fu(z)933 -3757 y FA(0)1021 3743 y FI(+)c Fu(\017x)f FI(+)g Fu(\020)7 -b(y)390 4103 y FI(Fig.)27 b(84)h(demonstrates)e(the)h(e\013ect)h(of)e -(shearing)g(the)h(four)e Fz(Points)g FI(of)h(a)h(3)12 -b FG(\002)g FI(3)27 b Fz(Rectangle)c FI(\(i.e.,)390 4213 -y(a)31 b(square\))f Fu(r)j FI(in)d(the)h(x-y)f(plane)h(using)f(only)g -(an)g Ft(xy)38 b FI(argumen)m(t,)31 b(making)g(it)g(non-rectangular.) -630 4573 y Fz(Point)46 b(P0;)630 4682 y(Point)g(P1\(3\);)630 -4792 y(Point)g(P2\(3,)h(3\);)630 4902 y(Point)f(P3\(0,)h(3\);)630 -5011 y(Rectangle)e(r\(p0,)i(p1,)g(p2,)f(p3\);)630 5121 -y(r.draw\(\);)630 5230 y(r.shear\(1.5\);)630 5340 y(r.draw\(black,)e -("evenly"\);)p eop end -%%Page: 124 136 -TeXDict begin 124 135 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(124)433 1283 y @beginspecial +b(of)f(the)390 3136 y(other)f(t)m(w)m(o)i(co)s(ordinates.)68 +b(Let)40 b Fu(x)1586 3150 y FA(0)1623 3136 y FI(,)h Fu(y)1734 +3150 y FA(0)1771 3136 y FI(,)h(and)c Fu(z)2065 3150 y +FA(0)2142 3136 y FI(stand)h(for)g(the)g(co)s(ordinates)h(of)g(a)f +Fz(Point)f Fu(P)390 3246 y FI(b)s(efore)30 b Fz(P.shear\()p +Fu(\013)p FI(,)f Fu(\014)5 b FI(,)31 b Fu(\015)5 b FI(,)30 +b Fu(\016)s FI(,)i Fu(\017)p FI(,)e Fu(\020)37 b Fz(\))p +FI(,)30 b(and)g Fu(x)1979 3260 y FA(1)2016 3246 y FI(,)h +Fu(y)2117 3260 y FA(1)2154 3246 y FI(,)f(and)g Fu(z)2428 +3260 y FA(1)2496 3246 y FI(for)g(its)h(co)s(ordinates)g(afterw)m(ards.) +630 3579 y Fu(x)682 3593 y FA(1)775 3579 y FG(\021)55 +b Fu(x)953 3593 y FA(0)1041 3579 y FI(+)50 b Fu(\013)31 +b(y)53 b FI(+)d Fu(\014)36 b(z)630 3688 y(y)675 3702 +y FA(1)767 3688 y FG(\021)56 b Fu(y)939 3702 y FA(0)1026 +3688 y FI(+)50 b Fu(\015)36 b(x)50 b FI(+)g Fu(\016)34 +b(z)630 3798 y(z)672 3812 y FA(1)765 3798 y FG(\021)55 +b Fu(z)933 3812 y FA(0)1021 3798 y FI(+)c Fu(\017)30 +b(x)50 b FI(+)g Fu(\020)37 b(y)390 4131 y FI(Fig.)27 +b(84)h(demonstrates)e(the)h(e\013ect)h(of)e(shearing)g(the)h(four)e +Fz(Points)g FI(of)h(a)h(3)12 b FG(\002)g FI(3)27 b Fz(Rectangle)c +FI(\(i.e.,)390 4240 y(a)31 b(square\))f Fu(r)j FI(in)d(the)h(x-y)f +(plane)h(using)f(only)g(an)g Ft(xy)38 b FI(argumen)m(t,)31 +b(making)g(it)g(non-rectangular.)630 4573 y Fz(Point)46 +b(P0;)630 4682 y(Point)g(P1\(3\);)630 4792 y(Point)g(P2\(3,)h(3\);)630 +4902 y(Point)f(P3\(0,)h(3\);)630 5011 y(Rectangle)e(r\(p0,)i(p1,)g(p2,) +f(p3\);)630 5121 y(r.draw\(\);)630 5230 y(r.shear\(1.5\);)630 +5340 y(r.draw\(black,)e("evenly"\);)p eop end +%%Page: 125 137 +TeXDict begin 125 136 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(125)433 1283 y @beginspecial -100 @llx -34 @lly 264 @urx 120 @ury 3640 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.84 %!PS @@ -23449,17 +23462,17 @@ Fz(reset_transform\(\))p FI(,)e(whic)m(h)i(is)h(called)h(in)e Fz(apply_transform\(\))p FI(,)e(and)i(can)390 4086 y(also)34 b(b)s(e)e(called)i(directly)-8 b(.)48 b(See)33 b(Section)h(17.12)g([T) --8 b(ransform)32 b(Reference;)j(Resetting],)g(page)f(98,)390 +-8 b(ransform)32 b(Reference;)j(Resetting],)g(page)f(99,)390 4195 y(and)c(Section)h(20.13)h([P)m(oin)m(t)g(Reference;)g(Applying)e -(T)-8 b(ransformations],)30 b(page)h(125.)630 4354 y +(T)-8 b(ransformations],)30 b(page)h(126.)630 4354 y Fz(Point)46 b(P;)630 4463 y(P.drawdot\(\);)630 4573 y(P.shift\(1,)f(1,) i(1\);)630 4682 y(P.drawdot\(\);)630 4792 y(P.shift_times\(2,)c(2,)48 b(2\);)630 4902 y(P.drawdot\(\);)630 5011 y(P.shift_times\(2,)43 b(2,)48 b(2\);)630 5121 y(P.drawdot\(\);)630 5230 y(P.shift_times\(2,) 43 b(2,)48 b(2\);)630 5340 y(P.drawdot\(\);)p eop end -%%Page: 125 137 -TeXDict begin 125 136 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(125)667 2433 y @beginspecial +%%Page: 126 138 +TeXDict begin 126 137 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(126)667 2433 y @beginspecial -207 @llx -178 @lly 101 @urx 114 @ury 3080 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.85 %!PS @@ -23614,9 +23627,9 @@ (ordinates)h(in)390 5320 y Fz(projective_coordinates)24 b FI(are)31 b(m)m(ultiplied)g(b)m(y)f Ft(factor)38 b FI(with)30 b(the)h(default)f(b)s(eing)g(1.)p eop end -%%Page: 126 138 -TeXDict begin 126 137 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(126)150 299 y FH(20.15)69 +%%Page: 127 139 +TeXDict begin 127 138 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(127)150 299 y FH(20.15)69 b(V)-11 b(ector)44 b(Op)t(erations)150 539 y FI(Mathematically)d(sp)s (eaking,)f(v)m(ectors)f(and)f(p)s(oin)m(ts)g(are)g(not)g(the)g(same.)64 b(Ho)m(w)m(ev)m(er,)42 b(they)c(can)h(b)s(oth)150 649 @@ -23773,9 +23786,9 @@ b Fz(dot_product\(\))c FI(can)k(b)s(e)e(used)h(as)g(a)h(test)g(for)f (the)g(orthogonalit)m(y)j(of)390 5340 y(v)m(ectors.)p eop end -%%Page: 127 139 -TeXDict begin 127 138 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(127)630 299 y Fz(Point)46 +%%Page: 128 140 +TeXDict begin 128 139 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(128)630 299 y Fz(Point)46 b(P\(2\);)630 408 y(Point)g(Q\(P\);)630 518 y(Point)g(Q0\(P0\);)630 628 y(Q0)h(*=)g(Q.rotate\(0,)e(0,)i(90\);)630 737 y(P)g(*=)h (Q.rotate\(0,)c(45,)j(45\);)630 847 y(P)g(*=)h(Q.rotate\(45\);)630 @@ -23911,9 +23924,9 @@ 5015 y FG(a)773 5011 y Fz(11.3137)630 5121 y(n)g(/=)h(n_mag;)630 5230 y(cout)f(<<)g(n.magnitude\(\);)650 5344 y FG(a)773 5340 y Fz(1)p eop end -%%Page: 128 140 -TeXDict begin 128 139 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(128)1033 1925 y @beginspecial +%%Page: 129 141 +TeXDict begin 129 140 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(129)1033 1925 y @beginspecial -206 @llx -174 @lly 14 @urx 57 @ury 2200 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.88 %!PS @@ -24030,17 +24043,17 @@ %%EOF %%EndDocument - @endspecial 1748 2035 a(Figure)31 b(88.)390 2181 y(If)d -Fu(\022)f FI(=)e(0)690 2148 y Fi(\016)757 2181 y FI(or)k(180)1002 -2148 y Fi(\016)1041 2181 y FI(,)g(sin\()p Fu(\022)s FI(\))f(will)h(b)s + @endspecial 1748 2035 a(Figure)31 b(88.)390 2175 y(If)d +Fu(\022)f FI(=)e(0)690 2142 y Fi(\016)757 2175 y FI(or)k(180)1002 +2142 y Fi(\016)1041 2175 y FI(,)g(sin\()p Fu(\022)s FI(\))f(will)h(b)s (e)e(0,)j(and)d Fu(P)j FG(\002)15 b Fu(Q)29 b FI(will)f(b)s(e)g(\(0)p Fu(;)15 b FI(0)p Fu(;)g FI(0\).)43 b(The)28 b(cross)g(pro)s(duct)f(th)m -(us)390 2291 y(pro)m(vides)j(a)h(test)g(for)g(parallel)g(v)m(ectors.) -630 2437 y Fz(Point)46 b(P\(1,)h(2,)g(1\);)630 2547 y(Point)f(Q\(P\);) -630 2656 y(Point)g(R;)630 2766 y(R)h(*=)h(Q.shift\(-3,)c(-1,)j(1\);)630 -2875 y(Point)f(s\(Q)h(-)h(R\);)630 2985 y(Point)e(n)i(=)f -(P.cross_product\(s\);)630 3094 y(n.show\("n:"\);)650 -3208 y FG(a)773 3204 y Fz(n:)g(\(0,)g(0,)g(0\))1304 4438 +(us)390 2285 y(pro)m(vides)j(a)h(test)g(for)g(parallel)g(v)m(ectors.) +630 2425 y Fz(Point)46 b(P\(1,)h(2,)g(1\);)630 2535 y(Point)f(Q\(P\);) +630 2644 y(Point)g(R;)630 2754 y(R)h(*=)h(Q.shift\(-3,)c(-1,)j(1\);)630 +2864 y(Point)f(s\(Q)h(-)h(R\);)630 2973 y(Point)e(n)i(=)f +(P.cross_product\(s\);)630 3083 y(n.show\("n:"\);)650 +3196 y FG(a)773 3192 y Fz(n:)g(\(0,)g(0,)g(0\))1304 4420 y @beginspecial -206 @llx -83 @lly -51 @urx 58 @ury 1550 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.89 @@ -24094,19 +24107,19 @@ %%EOF %%EndDocument - @endspecial 1748 4547 a FI(Figure)31 b(89.)3105 4755 + @endspecial 1748 4530 a FI(Figure)31 b(89.)3105 4726 y([)p Fz(const)e FI(function])-3600 b Fc(real)39 b Fd(magnitude)44 -b Fw(\()p Fz(void)p Fw(\))390 4865 y FI(Returns)33 b(the)h(magnitude)g +b Fw(\()p Fz(void)p Fw(\))390 4836 y FI(Returns)33 b(the)h(magnitude)g (of)g(the)g Fz(Point)p FI(.)49 b(This)33 b(is)h(its)g(distance)h(from)e -Fz(origin)f FI(and)i(is)f(equal)390 4974 y(to)501 4906 -y FG(p)p 577 4906 481 4 v 68 x Fu(x)629 4948 y FA(2)686 -4974 y FI(+)20 b Fu(y)825 4948 y FA(2)882 4974 y FI(+)g -Fu(z)1019 4948 y FA(2)1057 4974 y FI(.)630 5121 y Fz(Point)46 +Fz(origin)f FI(and)i(is)f(equal)390 4969 y(to)501 4871 +y Fh(q)p 584 4871 481 4 v 98 x Fu(x)636 4943 y FA(2)694 +4969 y FI(+)19 b Fu(y)832 4943 y FA(2)890 4969 y FI(+)h +Fu(z)1027 4943 y FA(2)1064 4969 y FI(.)630 5121 y Fz(Point)46 b(P\(13,)h(15.7,)f(22\);)630 5230 y(cout)h(<<)g(P.magnitude\(\);)650 5344 y FG(a)773 5340 y Fz(29.9915)p eop end -%%Page: 129 141 -TeXDict begin 129 140 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(129)3105 299 y([)p +%%Page: 130 142 +TeXDict begin 130 141 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(130)3105 299 y([)p Fz(const)29 b FI(function])-3600 b Fc(real)39 b Fd(angle)45 b Fw(\()p Fz(Point)29 b Fp(p)11 b Fw(\))390 408 y FI(Returns)29 b(the)i(angle)g(in)f(degrees)h(b)s(et)m(w)m(een)g(t)m(w)m(o)h @@ -24228,8 +24241,8 @@ @endspecial 1748 3128 a FI(Figure)31 b(90.)3350 3332 y([F)-8 b(unction])-3599 b Fc(Point)40 b Fd(unit)p 663 3332 35 5 v 49 w(v)m(ector)45 b Fw(\()p Fz(const)29 b(bool)g -Fp(assign)p Fz(,)g Fy([)p Fz(const)g(bool)g Fp(silent)g(=)h(false)p -Fy(])p Fw(\))3105 3442 y FI([)p Fz(const)f FI(function])-3600 +Fp(assign)p Fz(,)g Fy([)p Fz(const)g(bool)g Fp(silent)g(=)h(false)11 +b Fy(])p Fw(\))3105 3442 y FI([)p Fz(const)29 b FI(function])-3600 b Fc(Point)40 b Fd(unit)p 663 3442 V 49 w(v)m(ector)45 b Fw(\()p Fz(void)p Fw(\))390 3552 y FI(These)62 b(functions)g(return)f (a)i Fz(Point)d FI(with)i(the)h(x,)70 b(y)-8 b(,)71 b(and)62 @@ -24255,9 +24268,9 @@ (59.6009\))630 5121 y(cout)h(<<)g(P.magnitude\(\);)650 5234 y FG(a)773 5230 y Fz(103.963)630 5340 y(P.unit_vector\(true\);)p eop end -%%Page: 130 142 -TeXDict begin 130 141 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(130)630 299 y Fz(P.show\("P:"\);) +%%Page: 131 143 +TeXDict begin 131 142 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(131)630 299 y Fz(P.show\("P:"\);) 650 412 y FG(a)773 408 y Fz(P:)47 b(\(-0.185847,)e(0.797999,)g (0.573287\))630 518 y(cout)i(<<)g(P.magnitude\(\);)650 632 y FG(a)773 628 y Fz(1)150 895 y FH(20.16)69 b(P)l(oin)l(ts)46 @@ -24269,7 +24282,7 @@ b Ft(l)p FI(.)p Fz(position)36 b FI(will)i(b)s(e)390 1362 y Fz(*this)p FI(,)25 b(and)g Ft(l)p FI(.)p Fz(direction)e FI(will)i(b)s(e)g Ft(p)i FI(-)e Fz(*this)p FI(.)38 b(See)25 -b(Chapter)g(22)h([Line)f(Reference],)j(page)d(144.)3105 +b(Chapter)g(22)h([Line)f(Reference],)j(page)d(145.)3105 1554 y([)p Fz(const)k FI(function])-3600 b Fc(real)39 b Fd(slop)s(e)46 b Fw(\()p Fz(Point)29 b Fp(p)p Fz(,)h Fy([)p Fz(char)f Fp(m)41 b Fz(=)30 b('x',)f Fy([)p Fz(char)h @@ -24315,24 +24328,24 @@ Ft(p0)29 b FI(and)21 b Ft(p1)p FI(,)i Fu(r)h FI(will)e(b)s(e)f Fz(INVALID_REAL)p FI(.)630 4025 y Fz(Point)46 b(p0\(-1,)g(-2,)h(1\);) 630 4134 y(Point)f(p1\(3,)h(2,)g(5\);)630 4244 y(Point)f -(p2\(mediate\(p0,)e(p1,)j(.75\)\);)630 4354 y(Point)f(p3\(mediate\(p0,) -e(p1,)j(1.5\)\);)630 4463 y(Point)f(p4\(p2\);)630 4573 -y(p4.shift\(-2,)e(1,)k(-1\);)630 4682 y(bool_real)d(br)i(=)h -(p2.is_on_segment\(p0,)42 b(p1\);)630 4792 y(cout)47 -b(<<)g(br.first;)650 4906 y FG(a)773 4902 y Fz(1)630 -5011 y(cout)g(<<)g(br.second;)650 5125 y FG(a)773 5121 -y Fz(0.75)630 5230 y(bool_real)e(br)i(=)h(p3.is_on_segment\(p0,)42 -b(p1\);)630 5340 y(cout)47 b(<<)g(br.first;)p eop end -%%Page: 131 143 -TeXDict begin 131 142 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(131)650 303 y FG(a)773 +(p2\(p0.mediate\(p1,)d(.75\)\);)630 4354 y(Point)j(p3\(p0.mediate\(p1,) +d(1.5\)\);)630 4463 y(Point)j(p4\(p2\);)630 4573 y(p4.shift\(-2,)e(1,)k +(-1\);)630 4682 y(bool_real)d(br)i(=)h(p2.is_on_segment\(p0,)42 +b(p1\);)630 4792 y(cout)47 b(<<)g(br.first;)650 4906 +y FG(a)773 4902 y Fz(1)630 5011 y(cout)g(<<)g(br.second;)650 +5125 y FG(a)773 5121 y Fz(0.75)630 5230 y(bool_real)e(br)i(=)h +(p3.is_on_segment\(p0,)42 b(p1\);)630 5340 y(cout)47 +b(<<)g(br.first;)p eop end +%%Page: 132 144 +TeXDict begin 132 143 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(132)650 303 y FG(a)773 299 y Fz(0)630 408 y(cout)47 b(<<)g(br.second;)650 522 y FG(a)773 518 y Fz(1.5)630 628 y(bool_real)e(br)i(=)h (p4.is_on_segment\(p0,)42 b(p1\);)630 737 y(cout)47 b(<<)g(br.first;) 650 851 y FG(a)773 847 y Fz(0)630 956 y(cout)g(<<)g(br.second;)650 1070 y FG(a)773 1066 y Fz(3.40282e+38)630 1176 y(cout)g(<<)g (\(br.second)e(==)i(INVALID_REAL\))650 1289 y FG(a)773 -1285 y Fz(1)1196 2987 y @beginspecial -104 @llx -134 +1285 y Fz(1)1196 2990 y @beginspecial -104 @llx -134 @lly 77 @urx 65 @ury 1810 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.91 %!PS @@ -24384,45 +24397,46 @@ %%EOF %%EndDocument - @endspecial 1748 3097 a FI(Figure)31 b(91.)3105 3293 + @endspecial 1748 3099 a FI(Figure)31 b(91.)3105 3301 y([)p Fz(const)e FI(function])-3600 b Fc(bool_real)41 -b Fd(is)p 744 3293 35 5 v 50 w(on)p 915 3293 V 51 w(line)j +b Fd(is)p 744 3301 35 5 v 50 w(on)p 915 3301 V 51 w(line)j Fw(\()p Fz(const)29 b(Point&)g Fp(p0)p Fz(,)g(const)g(Point&)g -Fp(p1)11 b Fw(\))390 3402 y FI(Returns)23 b(a)h Fz(bool_real)d +Fp(p1)11 b Fw(\))390 3410 y FI(Returns)23 b(a)h Fz(bool_real)d FI(where)i(the)h Fz(bool)e FI(part)i(is)g Fz(true)p FI(,)g(if)f(the)h -Fz(Point)e FI(lies)j(on)e(the)h(line)g(passing)390 3512 +Fz(Point)e FI(lies)j(on)e(the)h(line)g(passing)390 3520 y(through)k Ft(p0)37 b FI(and)28 b Ft(p1)p FI(,)i(otherwise)f Fz(false)p FI(.)39 b(If)29 b(the)g Fz(Point)f FI(lies)i(on)f(the)g -(line,)h(the)f Fz(real)f FI(part)h(is)h(a)390 3622 y(v)-5 +(line,)h(the)f Fz(real)f FI(part)h(is)h(a)390 3629 y(v)-5 b(alue)32 b Fu(r)j FI(indicating)d(ho)m(w)g(ho)m(w)g(far)f(the)h Fz(Point)f FI(is)h(along)h(the)f(w)m(a)m(y)g(from)g Ft(p0)39 -b FI(to)32 b Ft(p1)p FI(,)h(otherwise)390 3731 y Fz(INVALID_REAL)p +b FI(to)32 b Ft(p1)p FI(,)h(otherwise)390 3739 y Fz(INVALID_REAL)p FI(.)k(The)30 b(follo)m(wing)i(v)-5 b(alues)31 b(of)g Fu(r)h FI(are)f(p)s(ossible)f(for)g(a)h(call)h(to)f Fz -(P.is_on_line\(A,)390 3841 y(B\))p FI(,)f(where)g(the)g +(P.is_on_line\(A,)390 3849 y(B\))p FI(,)f(where)g(the)g Fz(Point)f Fu(P)44 b FI(lies)31 b(on)f(the)h(line)1942 -3787 y FG(\000)-45 b(\000)f(!)1942 3841 y Fu(AB)5 b FI(:)390 -3981 y Fu(P)38 b FG(\021)25 b Fu(A)h FI(=)-15 b FG(\))24 -b Fu(r)k FG(\021)d FI(0.)390 4121 y Fu(P)38 b FG(\021)25 -b Fu(B)30 b FI(=)-15 b FG(\))25 b Fu(r)i FG(\021)e FI(1.)390 -4262 y Fu(P)43 b FI(lies)31 b(on)g(the)f(opp)s(osite)h(side)f(of)h -Fu(A)f FI(from)g Fu(B)g FI(=)-15 b FG(\))25 b Fu(r)i(<)e -FI(0.)390 4402 y Fu(P)43 b FI(lies)31 b(b)s(et)m(w)m(een)g -Fu(A)g FI(and)f Fu(B)f FI(=)-15 b FG(\))25 b FI(0)h Fu(<)f(r)j(<)d -FI(1.)390 4542 y Fu(P)43 b FI(lies)31 b(on)g(the)f(opp)s(osite)h(side)f -(of)h Fu(A)f FI(from)g Fu(B)g FI(=)-15 b FG(\))25 b Fu(r)i(>)e -FI(1)630 4682 y Fz(Point)46 b(A\(-1,)h(-2\);)630 4792 -y(Point)f(B\(2,)h(3\);)630 4902 y(Point)f(C\(mediate\(B,)f(A,)i -(1.25\)\);)630 5011 y(bool_real)e(br)i(=)h(C.is_on_line\(A,)c(B\);)630 -5121 y(Point)i(D\(mediate\(A,)f(B\)\);)630 5230 y(br)i(=)h -(D.is_on_line\(A,)43 b(B\);)630 5340 y(Point)j(E\(mediate\(A,)f(B,)i -(1.25\)\);)p eop end -%%Page: 132 144 -TeXDict begin 132 143 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(132)630 299 y Fz(br)47 -b(=)h(E.is_on_line\(A,)43 b(B\);)630 408 y(Point)j(F\(D\);)630 -518 y(F.shift\(-1,)f(1\);)630 628 y(br)i(=)h(F.is_on_line\(A,)43 -b(B\);)875 3175 y @beginspecial -119 @llx -124 @lly 139 +3795 y FG(\000)-45 b(\000)f(!)1942 3849 y Fu(AB)5 b FI(:)630 +3992 y Fu(P)69 b FG(\021)55 b Fu(A)h FI(=)-15 b FG(\))55 +b Fu(r)27 b FG(\021)56 b FI(0.)630 4211 y Fu(P)69 b FG(\021)55 +b Fu(B)60 b FI(=)-15 b FG(\))55 b Fu(r)28 b FG(\021)55 +b FI(1.)630 4430 y Fu(P)43 b FI(lies)31 b(on)g(the)f(opp)s(osite)h +(side)f(of)h Fu(A)f FI(from)g Fu(B)60 b FI(=)-15 b FG(\))55 +b Fu(r)j(<)d FI(0.)630 4649 y Fu(P)43 b FI(lies)31 b(b)s(et)m(w)m(een)g +Fu(A)g FI(and)f Fu(B)60 b FI(=)-15 b FG(\))55 b FI(0)h +Fu(<)85 b(r)58 b(<)e FI(1.)630 4868 y Fu(P)43 b FI(lies)31 +b(on)g(the)f(opp)s(osite)h(side)f(of)h Fu(A)f FI(from)g +Fu(B)60 b FI(=)-15 b FG(\))55 b Fu(r)j(>)d FI(1)630 5011 +y Fz(Point)46 b(A\(-1,)h(-2\);)630 5121 y(Point)f(B\(2,)h(3\);)630 +5230 y(Point)f(C\(B.mediate\(A,)e(1.25\)\);)630 5340 +y(bool_real)h(br)i(=)h(C.is_on_line\(A,)c(B\);)p eop +end +%%Page: 133 145 +TeXDict begin 133 144 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(133)630 299 y Fz(Point)46 +b(D\(A.mediate\(B\)\);)630 408 y(br)h(=)h(D.is_on_line\(A,)43 +b(B\);)630 518 y(Point)j(E\(A.mediate\(B,)e(1.25\)\);)630 +628 y(br)j(=)h(E.is_on_line\(A,)43 b(B\);)630 737 y(Point)j(F\(D\);)630 +847 y(F.shift\(-1,)f(1\);)630 956 y(br)i(=)h(F.is_on_line\(A,)43 +b(B\);)875 3421 y @beginspecial -119 @llx -124 @lly 139 @urx 146 @ury 2580 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.92 %!PS @@ -24517,23 +24531,22 @@ %%EOF %%EndDocument - @endspecial 1748 3284 a FI(Figure)31 b(92.)2831 3969 -y([Non-mem)m(b)s(er)f(function])-3600 b Fc(Point)40 b -Fd(mediate)j Fw(\()p Fz(Point)30 b Fp(p0)p Fz(,)f(Point)g -Fp(p1)p Fz(,)h Fy([)p Fz(const)f(real)g Fp(r)41 b Fz(=)30 -b(.5)p Fy(])p Fw(\))390 4079 y FI(Returns)f(a)i Fz(Point)e -Ft(r)37 b FI(of)30 b(the)h(w)m(a)m(y)g(from)f Ft(p0)37 -b FI(to)32 b Ft(p1)p FI(.)630 4463 y Fz(Point)46 b(p0\(-1,)g(0,)i -(-1\);)630 4573 y(Point)e(p1\(10,)g(0,)i(10\);)630 4682 -y(Point)e(p2\(5,)h(5,)g(5\);)630 4792 y(Point)f(p3)i(=)f(mediate\(p0,)e -(p1,)i(1.5\);)630 4902 y(p3.show\("p3:"\);)650 5015 y -FG(a)773 5011 y Fz(p3:)g(\(15.5,)f(0,)h(15.5\))630 5121 -y(Point)f(p4)i(=)f(mediate\(p0,)e(p2,)i(1/3.0\);)630 -5230 y(p4.show\("p4:"\);)650 5344 y FG(a)773 5340 y Fz(p4:)g(\(1,)g + @endspecial 1748 3531 a FI(Figure)31 b(92.)3105 4051 +y([)p Fz(const)e FI(function])-3600 b Fc(Point)40 b Fd(mediate)j +Fw(\()p Fz(Point)30 b Fp(p)p Fz(,)f Fy([)p Fz(const)h(real)f +Fp(r)41 b Fz(=)30 b(.5)p Fy(])p Fw(\))390 4161 y FI(Returns)f(a)i +Fz(Point)e Ft(r)37 b FI(of)30 b(the)h(w)m(a)m(y)g(from)f +Fz(*this)f FI(to)i Ft(p)p FI(.)630 4463 y Fz(Point)46 +b(p0\(-1,)g(0,)i(-1\);)630 4573 y(Point)e(p1\(10,)g(0,)i(10\);)630 +4682 y(Point)e(p2\(5,)h(5,)g(5\);)630 4792 y(Point)f(p3)i(=)f +(p0.mediate\(p1,)d(1.5\);)630 4902 y(p3.show\("p3:"\);)650 +5015 y FG(a)773 5011 y Fz(p3:)j(\(15.5,)f(0,)h(15.5\))630 +5121 y(Point)f(p4)i(=)f(p0.mediate\(p2,)d(1/3.0\);)630 +5230 y(p4.show\("p4:"\);)650 5344 y FG(a)773 5340 y Fz(p4:)j(\(1,)g (1.66667,)f(1\))p eop end -%%Page: 133 145 -TeXDict begin 133 144 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(133)608 2100 y @beginspecial +%%Page: 134 146 +TeXDict begin 134 145 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(134)608 2100 y @beginspecial -129 @llx -192 @lly 193 @urx 60 @ury 3220 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.93 %!PS @@ -24661,9 +24674,9 @@ 5230 y(cout)g(<<)g("bp.b)f(==)h(")h(<<)f(bp.b)g(<<)g(endl)f(<<)i (flush;)650 5344 y FG(a)773 5340 y Fz(bp.b)f(==)g(1)p eop end -%%Page: 134 146 -TeXDict begin 134 145 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(134)1496 1000 y @beginspecial +%%Page: 135 147 +TeXDict begin 135 146 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(135)1496 1000 y @beginspecial -54 @llx -60 @lly 55 @urx 60 @ury 1090 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.94 %!PS @@ -24791,9 +24804,9 @@ b(the)f Fz(Color)f FI(curren)m(tly)h(p)s(oin)m(ted)g(to)g(b)m(y)g(the)g (p)s(oin)m(ter)g Fz(Colors::default_color)29 b FI(will)p eop end -%%Page: 135 147 -TeXDict begin 135 146 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(135)390 299 y(b)s(e)35 +%%Page: 136 148 +TeXDict begin 136 147 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(136)390 299 y(b)s(e)35 b(used.)56 b(This)35 b(will)h(normally)g(b)s(e)f Fz(Colors::black)p FI(.)53 b(See)36 b(Chapter)f(14)h([Color)h(Reference],)390 408 y(page)31 b(80,)h(for)e(more)g(information)h(ab)s(out)f @@ -24959,13 +24972,13 @@ FI(to)i Ft(p)p FI(.)69 b(Returns)39 b(the)h Fz(Path)30 b(*this)f(--)g(p1)p FI(.)70 b(See)40 b(Section)h(24.12)390 4921 y([P)m(ath)31 b(Reference;)h(Dra)m(wing)f(and)f(Filling],)i(page)f -(170,)h(for)e(more)g(information.)630 5121 y Fz(Point)46 +(171,)h(for)e(more)g(information.)630 5121 y Fz(Point)46 b(P\(-1,)h(-1,)g(-1\);)630 5230 y(Point)f(Q\(2,)h(3,)g(5\);)630 5340 y(P.draw\(Q,)e(Colors::gray,)f("",)j("pensquare)e(scaled)h (.5cm"\);)p eop end -%%Page: 136 148 -TeXDict begin 136 147 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(136)1188 1700 y @beginspecial +%%Page: 137 149 +TeXDict begin 137 148 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(137)1188 1700 y @beginspecial -135 @llx -170 @lly 48 @urx 34 @ury 1830 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.98 %!PS @@ -25047,7 +25060,7 @@ Fz(*this)f FI(to)j Ft(p)p FI(.)51 b(Returns)33 b(the)h Fz(Path)29 b(*this)g(--)h(p1)p FI(.)50 b(See)34 b(Section)h(24.12)390 2660 y([P)m(ath)c(Reference;)h(Dra)m(wing)f(and)f(Filling],)i(page)f -(170,)h(for)e(more)g(information.)630 2853 y Fz(Point)46 +(171,)h(for)e(more)g(information.)630 2853 y Fz(Point)46 b(P\(-1,)h(-1,)g(-1\);)630 2963 y(Point)f(Q\(2,)h(3,)g(5\);)630 3072 y(P.draw\(Q,)e(Colors::gray,)f("",)j("pensquare)e(scaled)h (.5cm"\);)630 3182 y(P.undraw\(Q,)f("evenly)h(scaled)g(6",)h @@ -25123,9 +25136,9 @@ %%EndDocument @endspecial 1748 5105 a FI(Figure)31 b(99.)p eop end -%%Page: 137 149 -TeXDict begin 137 148 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(137)3350 299 y([F)-8 +%%Page: 138 150 +TeXDict begin 138 149 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(138)3350 299 y([F)-8 b(unction])-3599 b Fc(Path)39 b Fd(dra)m(w)p 652 299 35 5 v 50 w(help)44 b Fw(\()p Fz(const)29 b(Point&)g Fp(p)p Fz(,)h Fy([)p Fz(const)f(Color&)g Fp(ddraw_color)38 @@ -25144,7 +25157,7 @@ Fz(static)28 b(Path)42 b FI(data)i(mem)m(b)s(er)390 1066 y Fz(do_help_lines)23 b FI(is)k Fz(true)p FI(.)38 b(See)27 b(Section)g(24.1)h([P)m(ath)f(Reference;)i(Data)f(Mem)m(b)s(ers],)g -(page)f(155.)390 1205 y(\\Help)g(lines")g(are)f(lines)h(that)g(are)f +(page)f(156.)390 1205 y(\\Help)g(lines")g(are)f(lines)h(that)g(are)f (used)g(when)f(constructing)i(a)f(dra)m(wing,)h(but)f(that)g(should)g (not)390 1315 y(b)s(e)k(prin)m(ted)g(in)g(the)g(\014nal)g(v)m(ersion.) 3350 1508 y([F)-8 b(unction])-3599 b Fc(Path)39 b Fd(dra)m(w)m(arro)m @@ -25258,12 +25271,12 @@ b(of)g(t)m(yp)s(e)h Fz(Label)p FI(,)e(and)g(add)h(them)g(to)g(the)h Fz(Picture)p FI(,)d(whic)m(h)i(w)m(as)g(passed)g(to)h(them)f(as)p eop end -%%Page: 138 150 -TeXDict begin 138 149 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(138)150 299 y(an)34 -b(argumen)m(t)h(\()p Fz(current_picture)p FI(,)d(b)m(y)i(default\).)53 -b(See)34 b(Chapter)g(18)h([Lab)s(el)f(Reference],)j(page)e(99,)150 -408 y(for)30 b(more)h(information.)3105 618 y([)p Fz(const)e +%%Page: 139 151 +TeXDict begin 139 150 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(139)150 299 y(an)31 +b(argumen)m(t)g(\()p Fz(current_picture)p FI(,)d(b)m(y)i(default\).)43 +b(See)31 b(Chapter)g(18)g([Lab)s(el)g(Reference],)i(page)e(100,)150 +408 y(for)f(more)h(information.)3105 618 y([)p Fz(const)e FI(function])-3600 b Fc(void)39 b Fd(lab)s(el)45 b Fw(\()p Fz(const)29 b(string)f Fp(text_str)p Fz(,)g Fy([)p Fz(const)i(string)e Fp(position_str)565 728 y Fz(=)i("top",)f Fy([)p Fz(const)g(bool)g @@ -25277,21 +25290,22 @@ b Fz(=)565 1166 y(current_picture)p Fy(]]])p Fw(\))390 1276 y FI(These)34 b(functions)g(cause)g(a)h Fz(Point)d FI(to)j(b)s(e)f(lab)s(elled)g(in)g(the)h(dra)m(wing.)51 -b(The)34 b(\014rst)f(argumen)m(t)i(is)390 1385 y(the)g(text)h(of)f(the) -g(lab)s(el.)55 b(It)34 b(can)i(either)f(b)s(e)f(a)h Fz(string)p -FI(,)g(in)f(the)i(\014rst)e(v)m(ersion,)i(or)f(a)g Fz(short)p -FI(,)g(in)390 1495 y(the)h(second.)59 b(It)36 b(will)h(often)f(b)s(e)g -(the)g(name)h(of)f(the)g Fz(Point)f FI(in)h(the)h FB(C)2842 -1487 y FA(+)-8 b(+)3012 1495 y FI(co)s(de,)38 b(for)e(example,)390 -1604 y Fz("p0")p FI(.)44 b(It)32 b(is)g(not)g(p)s(ossible)g(to)g -(automate)i(this)e(kind)f(of)h(lab)s(elling,)h(b)s(ecause)f(it)g(is)g -(not)g(p)s(ossible)390 1714 y(to)f(access)h(the)e(names)h(of)f(v)-5 -b(ariables)31 b(through)f(the)g(v)-5 b(ariables)31 b(themselv)m(es)h -(in)e FB(C)3188 1706 y FA(+)-8 b(+)3316 1714 y FI(.)390 -1861 y Ft(text)p 554 1861 28 4 v 41 w(str)38 b FI(is)32 -b(alw)m(a)m(ys)h(placed)f(b)s(et)m(w)m(een)g(\\)p Fz(btex'')f -FI(and)g(\\)p Fz(etex)p FI(")g(in)h(the)g(MetaP)m(ost)i -Fz(label)c FI(com-)390 1971 y(mand)e(written)i(to)f Fz(out_stream)p +b(The)34 b(\014rst)f(argumen)m(t)i(is)390 1385 y(the)27 +b(text)h(of)f(the)g(lab)s(el.)40 b(It)27 b(can)g(either)g(b)s(e)f(a)h +Fz(string)p FI(,)f(in)h(the)g(\014rst)f(v)m(ersion,)i(or)f(a)g +Fz(short)p FI(,)f(in)h(the)390 1495 y(second.)40 b(It)26 +b(will)i(often)f(b)s(e)f(the)h(name)g(of)f(the)h Fz(Point)f +FI(in)g(the)h FB(C)2556 1487 y FA(+)-8 b(+)2681 1495 +y FI(co)s(de,)28 b(for)e(example,)i Fz("p0")p FI(.)39 +b(It)390 1604 y(is)31 b(not)f(p)s(ossible)g(to)h(automate)i(this)d +(kind)g(of)g(lab)s(elling,)i(b)s(ecause)e(it)h(is)g(not)f(p)s(ossible)g +(to)i(access)390 1714 y(the)f(names)f(of)g(v)-5 b(ariables)31 +b(through)f(the)h(v)-5 b(ariables)31 b(themselv)m(es)g(in)f +FB(C)2808 1706 y FA(+)-8 b(+)2906 1714 y FI(.)390 1861 +y Ft(text)p 554 1861 28 4 v 41 w(str)38 b FI(is)32 b(alw)m(a)m(ys)h +(placed)f(b)s(et)m(w)m(een)g(\\)p Fz(btex'')f FI(and)g(\\)p +Fz(etex)p FI(")g(in)h(the)g(MetaP)m(ost)i Fz(label)c +FI(com-)390 1971 y(mand)e(written)i(to)f Fz(out_stream)p FI(.)38 b(This)28 b(mak)m(es)i(it)g(p)s(ossible)f(to)h(include)f(math)g (mo)s(de)f(material)390 2080 y(in)i(the)h(text)g(of)g(lab)s(els,)f(as)h (in)f(the)h(follo)m(wing)g(example.)630 2227 y Fz(Point)46 @@ -25329,10 +25343,10 @@ b FI(m)m(ust)31 b(con)m(tain)i(double)390 3187 y(bac)m(kslashes,)f(so)e (that)h(single)g(bac)m(kslashes)g(will)g(b)s(e)f(written)g(to)h Fz(out_stream)p FI(.)630 3334 y Fz(Point)46 b(P;)630 -3443 y(Point)g(Q\(2,)h(2\);)630 3553 y(Point)f(R\(mediate\(P,)f(Q\)\);) -630 3663 y(R.label\("$\\\\overrightarr)o(ow{P)o(Q}$")o(,)d("ulft"\);) -1496 4754 y @beginspecial -26 @llx -32 @lly 83 @urx 91 -@ury 1090 @rwi @setspecial +3443 y(Point)g(Q\(2,)h(2\);)630 3553 y(Point)f(R\(P.mediate\(Q\)\);)630 +3663 y(R.label\("$\\\\overrightarr)o(ow{P)o(Q}$")o(,)c("ulft"\);)1496 +4754 y @beginspecial -26 @llx -32 @lly 83 @urx 91 @ury +1090 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.102 %!PS %%BoundingBox: -26 -32 83 91 @@ -25391,9 +25405,9 @@ b(`)p Fz(urt)p FI(')f(\(upp)s(er)g(righ)m(t\).)47 b(The)31 b(default)i(is)f(`)p Fz(top)p FI('.)45 b(3DLDF)34 b(do)s(es)e(not)g (catc)m(h)i(the)e(error)g(if)g(an)p eop end -%%Page: 139 151 -TeXDict begin 139 150 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(139)390 299 y(in)m(v)-5 +%%Page: 140 152 +TeXDict begin 140 151 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(140)390 299 y(in)m(v)-5 b(alid)35 b Fz(position)d FI(argumen)m(t)i(is)h(used;)g(the)g Fz(string)d FI(is)j(written)f(to)h(the)f(output)g(\014le)g(and)g(an)390 408 y(error)c(will)h(o)s(ccur)f(when)f(MetaP)m(ost)k(is)e(run.)390 @@ -25459,7 +25473,7 @@ (standard)e(output)h(\()p Fz(stdout)p FI(\).)390 3152 y(The)42 b(other)h(argumen)m(ts)g(are)h(similar)f(to)g(those)g(used)f (in)h(the)g(functions)f(describ)s(ed)g(in)g(Sec-)390 -3262 y(tion)31 b(20.9)h([Returning)e(Co)s(ordinates],)h(page)g(118.)630 +3262 y(tion)31 b(20.9)h([Returning)e(Co)s(ordinates],)h(page)g(119.)630 3393 y Fz(Point)46 b(P\(1,)h(3,)g(5\);)630 3502 y(P.rotate\(15,)d(67,)j (98\);)630 3612 y(P.show\("P:"\);)650 3725 y FG(a)773 3721 y Fz(P:)g(\(-3.68621,)e(-3.89112,)h(2.50421\))3350 @@ -25479,9 +25493,9 @@ y(-0.0749)141 b(0.902)h(0.426)333 b(0)869 5230 y(0.346)94 b(-0.377)141 b(0.859)333 b(0)821 5340 y(-0.336)141 b(0.687)95 b(-0.569)332 b(1)p eop end -%%Page: 140 152 -TeXDict begin 140 151 bop 150 -116 a FI(Chapter)30 b(20:)41 -b(P)m(oin)m(t)32 b(Reference)2328 b(140)150 299 y FH(20.21)69 +%%Page: 141 153 +TeXDict begin 141 152 bop 150 -116 a FI(Chapter)30 b(20:)41 +b(P)m(oin)m(t)32 b(Reference)2328 b(141)150 299 y FH(20.21)69 b(Outputting)2831 539 y FI([Non-mem)m(b)s(er)30 b(function])-3600 b Fc(ostream&)41 b Fd(op)s(erator)p Fc(<<)k Fw(\()p Fz(ostream&)29 b Fp(o)p Fz(,)g(Point&)g Fp(p)11 b Fw(\))390 649 y FI(Used)58 @@ -25489,7 +25503,7 @@ -5 b(alues)59 b(of)f(the)g Fz(projective_)390 758 y(coordinates)i FI(of)j Fz(Points)e FI(to)j Fz(out_stream)p FI(.)136 b(See)63 b(Section)h(24.16)h([P)m(ath)f(Reference;)390 -868 y(Outputting],)32 b(page)h(187.)46 b(This)31 b(is)h(a)g(lo)m(w-lev) +868 y(Outputting],)32 b(page)h(188.)46 b(This)31 b(is)h(a)g(lo)m(w-lev) m(el)j(function)c(that)i(ordinary)e(users)g(should)g(nev)m(er)390 977 y(ha)m(v)m(e)h(to)f(in)m(v)m(ok)m(e)h(directly)-8 b(.)3350 1150 y([F)g(unction])-3599 b Fc(void)39 b Fd(output)44 @@ -25499,7 +25513,7 @@ 1369 y(b)m(y)32 b Fz(Picture::output\(\))p FI(,)c(when)j(a)h Fz(Shape)f FI(on)h(the)g Fz(Picture)e FI(is)i(a)g Fz(Point)p FI(.)44 b(See)33 b(Section)f(19.8)390 1479 y([Picture)f(Reference;)g -(Outputting],)g(page)g(105.)3058 1651 y([Virtual)g(function])-3600 +(Outputting],)g(page)g(106.)3058 1651 y([Virtual)g(function])-3600 b Fc(void)39 b Fd(suppress)p 832 1651 35 5 v 50 w(output)44 b Fw(\()p Fz(void)p Fw(\))390 1761 y FI(Sets)34 b Fz(do_output)e FI(to)j Fz(false)p FI(,)f(whic)m(h)g(causes)h(a)g Fz(Point)e @@ -25507,7 +25521,7 @@ 1871 y(called)h(in)f Fz(Picture::output\(\))p FI(,)c(when)j(a)h Fz(Point)f FI(cannot)h(b)s(e)g(pro)5 b(jected.)51 b(See)35 b(Section)f(19.8)390 1980 y([Picture)d(Reference;)g(Outputting],)g -(page)g(105.)3058 2153 y([Virtual)g(function])-3600 b +(page)g(106.)3058 2153 y([Virtual)g(function])-3600 b Fc(virtual)40 b Fd(v)m(oid)46 b Fz(unsuppress_output)25 b Fw(\()p Fz(void)p Fw(\))390 2262 y FI(Resets)70 b Fz(do_output)c FI(to)j Fz(true)p FI(,)78 b(so)69 b(that)g(a)h Fz(Point)d @@ -25516,7 +25530,7 @@ Fz(Picture)f FI(the)h Fz(Point)f FI(is)h(on.)53 b(This)33 b(function)390 2482 y(is)k(called)h(in)e Fz(Picture::output\(\))p FI(.)55 b(See)37 b(Section)h(19.8)g([Picture)f(Reference;)k -(Outputting],)390 2591 y(page)31 b(105.)3350 2764 y([F)-8 +(Outputting],)390 2591 y(page)31 b(106.)3350 2764 y([F)-8 b(unction])-3599 b Fc(vector)42 b Fd(extract)j Fw(\()p Fz(const)29 b(Focus&)g Fp(f)p Fz(,)g(const)g(unsigned)g(short) 565 2873 y Fp(proj)p Fz(,)g(real)g Fp(factor)11 b Fw(\))390 @@ -25566,9 +25580,9 @@ 5275 y(deriv)m(ed)30 b(from)g Fz(Shape)p FI(.)40 b(See)30 b(Section)h(16.10)i([Outputting)d(Shap)s(es],)f(page)j(87.)p eop end -%%Page: 141 153 -TeXDict begin 141 152 bop 150 -116 a FI(Chapter)30 b(21:)41 -b(F)-8 b(o)s(cus)31 b(Reference)2315 b(141)150 299 y +%%Page: 142 154 +TeXDict begin 142 153 bop 150 -116 a FI(Chapter)30 b(21:)41 +b(F)-8 b(o)s(cus)31 b(Reference)2315 b(142)150 299 y FE(21)80 b(F)-13 b(o)t(cus)53 b(Reference)150 522 y FI(Class)42 b Fz(Focus)e FI(is)i(de\014ned)e(in)h(`)p Fz(points.web)p FI('.)73 b Fz(Focuses)39 b FI(are)j(used)f(when)g(creating)i(a)f(p)s @@ -25628,16 +25642,16 @@ b(0)1856 5208 y(0)92 b(0)f(0)g(1)p Fu(=d)1856 5317 y FI(0)h(0)f(0)138 b(1)2419 4934 y Fh(1)2419 5080 y(C)2419 5130 y(C)2419 5183 y(A)p eop end -%%Page: 142 154 -TeXDict begin 142 153 bop 150 -116 a FI(Chapter)30 b(21:)41 -b(F)-8 b(o)s(cus)31 b(Reference)2315 b(142)150 299 y +%%Page: 143 155 +TeXDict begin 143 154 bop 150 -116 a FI(Chapter)30 b(21:)41 +b(F)-8 b(o)s(cus)31 b(Reference)2315 b(143)150 299 y FH(21.2)68 b(Global)46 b(V)-11 b(ariables)3371 552 y FI([V)j(ariable])-3598 b Fc(Focus)40 b Fd(default)p 807 552 35 5 v 48 w(fo)s(cus)390 661 y FI(E\013ectiv)m(ely)-8 b(,)47 b(the)42 b(default)g Fz(Focus)e FI(in)h Fz(Picture::output\(\))p FI(.)69 b(See)42 b(Section)h(19.8.2)g([Picture)390 771 y(Reference;)50 b(Outputting;)g(F)-8 b(unctions],)47 -b(page)d(106.)80 b(It's)43 b(not)g(really)h(the)g(default,)i(but)d(the) +b(page)d(107.)80 b(It's)43 b(not)g(really)h(the)g(default,)i(but)d(the) 390 880 y(v)m(ersion)36 b(of)g Fz(output\(\))d FI(that)j(do)s(esn't)g (tak)m(e)h(a)f Fz(Focus)e FI(argumen)m(t)i(calls)h(another)e(v)m (ersion)h(that)390 990 y(do)s(es)30 b(tak)m(e)i(one,)f(passing)f @@ -25708,9 +25722,9 @@ b Fw(\()p Fz(const)29 b(Focus&)g Fp(f)11 b Fw(\))390 5340 y FI(Sets)30 b(the)h Fz(Focus)e FI(to)i Ft(f)p FI(.)p eop end -%%Page: 143 155 -TeXDict begin 143 154 bop 150 -116 a FI(Chapter)30 b(21:)41 -b(F)-8 b(o)s(cus)31 b(Reference)2315 b(143)150 299 y +%%Page: 144 156 +TeXDict begin 144 155 bop 150 -116 a FI(Chapter)30 b(21:)41 +b(F)-8 b(o)s(cus)31 b(Reference)2315 b(144)150 299 y FH(21.5)68 b(Mo)t(difying)3350 543 y FI([F)-8 b(unction])-3599 b Fc(void)39 b Fd(reset)p 648 543 35 5 v 50 w(angle)44 b Fw(\()p Fz(const)29 b(real)h Fp(ang)11 b Fw(\))390 @@ -25764,9 +25778,9 @@ FI(.)k(If)30 b Ft(sho)m(w)p 1034 4589 V 40 w(transforms)j FI(is)e Fz(true)p FI(,)e Fz(transform)f FI(and)i Fz(persp)f FI(are)h(sho)m(wn)g(as)h(w)m(ell.)p eop end -%%Page: 144 156 -TeXDict begin 144 155 bop 150 -116 a FI(Chapter)30 b(22:)41 -b(Line)31 b(Reference)2368 b(144)150 299 y FE(22)80 b(Line)53 +%%Page: 145 157 +TeXDict begin 145 156 bop 150 -116 a FI(Chapter)30 b(22:)41 +b(Line)31 b(Reference)2368 b(145)150 299 y FE(22)80 b(Line)53 b(Reference)150 796 y FI(The)41 b Fz(struct)28 b(Line)40 b FI(is)h(de\014ned)f(in)h(`)p Fz(lines.web)p FI('.)71 b Fz(Lines)39 b FI(are)j(not)f Fz(Shapes)p FI(.)71 b(They)40 @@ -25776,9 +25790,9 @@ 1015 y(and)f(a)h Fz(Point)d FI(represen)m(ting)j(a)g(direction)g(v)m (ector.)275 1237 y(See)42 b(also)g(the)g(descriptions)g(of)g Fz(Point::get_line\(\))37 b FI(in)42 b(Section)g(20.16)i([P)m(oin)m(ts) -f(and)f(Lines],)150 1347 y(page)31 b(130,)h(and)e Fz +f(and)f(Lines],)150 1347 y(page)31 b(131,)h(and)e Fz (Path::get_line\(\))c FI(in)k(Section)h(24.15)h([P)m(ath)g(Reference;)f -(Querying],)f(page)h(184.)150 1823 y FH(22.1)68 b(Data)46 +(Querying],)f(page)h(185.)150 1823 y FH(22.1)68 b(Data)46 b(Mem)l(b)t(ers)3105 2155 y FI([Public)30 b(v)-5 b(ariable])-3599 b Fc(Point)40 b Fd(p)s(osition)390 2265 y FI(Represen)m(ts)31 b(the)f(p)s(osition)h(v)m(ector)h(of)e(the)h Fz(Line)p @@ -25801,9 +25815,9 @@ 5011 y Fz(Point)46 b(p\(2,)h(1,)g(2\);)630 5121 y(Point)f(d\(-3,)h(3,)g (3.5\);)630 5230 y(Line)g(L0\(p,)f(d\);)630 5340 y(Line)h(L1)g(=)g (p.get_line\(d\);)p eop end -%%Page: 145 157 -TeXDict begin 145 156 bop 150 -116 a FI(Chapter)30 b(22:)41 -b(Line)31 b(Reference)2368 b(145)758 1758 y @beginspecial +%%Page: 146 158 +TeXDict begin 146 157 bop 150 -116 a FI(Chapter)30 b(22:)41 +b(Line)31 b(Reference)2368 b(146)758 1758 y @beginspecial -219 @llx -176 @lly 67 @urx 35 @ury 2860 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.104 %!PS @@ -25985,18 +25999,18 @@ 5011 y(position:)f(\(1,)i(-2,)g(3\))773 5121 y(direction:)e(\(-12.3,)h (21,)h(36.002\))630 5230 y(Line)g(L1)g(=)g(p.get_line\(d\);)630 5340 y(L1.show\("L1:"\);)p eop end -%%Page: 146 158 -TeXDict begin 146 157 bop 150 -116 a FI(Chapter)30 b(22:)41 -b(Line)31 b(Reference)2368 b(146)650 303 y FG(a)773 299 +%%Page: 147 159 +TeXDict begin 147 158 bop 150 -116 a FI(Chapter)30 b(22:)41 +b(Line)31 b(Reference)2368 b(147)650 303 y FG(a)773 299 y Fz(L1:)773 408 y(position:)45 b(\(1,)i(-2,)g(3\))773 518 y(direction:)e(\(-13.3,)h(23,)h(33.002\))630 628 y(Path)g(q)g(=)h(L1.get_path\(\);)630 737 y(q.show\("q:"\);)650 851 y FG(a)773 847 y Fz(q:)773 956 y(fill_draw_value)c(==)j(0)773 1066 y(\(1,)g(-2,)g(3\))g(--)g(\(-12.3,)f(21,)h(36.002\);)p eop end -%%Page: 147 159 -TeXDict begin 147 158 bop 150 -116 a FI(Chapter)30 b(23:)41 -b(Plane)31 b(Reference)2318 b(147)150 299 y FE(23)80 +%%Page: 148 160 +TeXDict begin 148 159 bop 150 -116 a FI(Chapter)30 b(23:)41 +b(Plane)31 b(Reference)2318 b(148)150 299 y FE(23)80 b(Plane)54 b(Reference)150 556 y FI(The)32 b Fz(struct)d(Plane)i FI(is)i(de\014ned)e(in)h(`)p Fz(planes.web)p FI('.)46 b Fz(Planes)30 b FI(are)k(not)e Fz(Shapes)p FI(.)46 b(They)32 @@ -26011,11 +26025,11 @@ b(Therefore,)40 b(they)e(most)g(lik)m(ely)i(to)f(b)s(e)e(created)i(b)m (y)f(using)g Fz(Path::get_plane\(\))p FI(.)59 b(See)150 1246 y(Section)45 b(24.15)i([P)m(ath)e(Reference;)53 -b(Querying],)48 b(page)d(184.)85 b(Ho)m(w)m(ev)m(er,)50 +b(Querying],)48 b(page)d(185.)85 b(Ho)m(w)m(ev)m(er,)50 b Fz(class)29 b(Plane)43 b FI(do)s(es)i(ha)m(v)m(e)150 1356 y(constructors)39 b(for)f(creating)i Fz(Planes)d FI(directly)-8 b(,)42 b(if)c(desired.)65 b(See)39 b(Section)g(23.3)h -([Planes)f(Reference;)150 1466 y(Constructors],)30 b(page)i(147.)150 +([Planes)f(Reference;)150 1466 y(Constructors],)30 b(page)i(148.)150 1742 y FH(23.1)68 b(Data)46 b(Mem)l(b)t(ers)150 1994 y FI(Because)30 b(the)f(main)g(purp)s(ose)e(of)i Fz(Plane)e FI(is)i(to)g(pro)m(vide)g(information)g(ab)s(out)g Fz(Shapes)p @@ -26036,7 +26050,7 @@ 3812 y Fz(INVALID_PLANE)e FI(is)k(returned)e(from)h Fz (Path::get_plane\(\))p FI(,)c(if)31 b(the)g Fz(Path)e FI(is)i(not)g(planar.)41 b(See)390 3922 y(Section)31 -b(24.15)i([P)m(ath)e(Reference;)g(Querying],)f(page)h(184.)150 +b(24.15)i([P)m(ath)e(Reference;)g(Querying],)f(page)h(185.)150 4198 y FH(23.3)68 b(Constructors)2924 4450 y FI([Default)32 b(constructor])-3599 b Fc(void)39 b Fd(Plane)45 b Fw(\()p Fz(void)p Fw(\))390 4560 y FI(Creates)31 b(a)g(degenerate)h @@ -26048,15 +26062,15 @@ m(t)390 4811 y(op)s(erator)f(or)h Fz(Path::get_plane\(\))25 b FI(immediately)-8 b(,)32 b(or)f(v)m(ery)f(so)s(on)g(after)h(b)s(eing) f(declared.)41 b(See)390 4921 y(Section)34 b(23.4)h([Planes)f -(Reference;)h(Op)s(erators],)f(page)g(148,)i(and)c(Section)i(24.15)i -([P)m(aths)e(Ref-)390 5031 y(erence;)d(Querying],)g(page)g(184.)3012 +(Reference;)h(Op)s(erators],)f(page)g(149,)i(and)c(Section)i(24.15)i +([P)m(aths)e(Ref-)390 5031 y(erence;)d(Querying],)g(page)g(185.)3012 5230 y([Cop)m(y)f(constructor])-3599 b Fc(void)39 b Fd(Plane)45 b Fw(\()p Fz(const)29 b(Plane&)g(p)p Fw(\))390 5340 y FI(Creates)i(a)g(new)f Fz(Plane)p FI(,)f(making)i(it)f(a)h(cop)m(y)g (of)g Ft(p)p FI(.)p eop end -%%Page: 148 160 -TeXDict begin 148 159 bop 150 -116 a FI(Chapter)30 b(23:)41 -b(Plane)31 b(Reference)2318 b(148)3224 299 y([Constructor])-3600 +%%Page: 149 161 +TeXDict begin 149 160 bop 150 -116 a FI(Chapter)30 b(23:)41 +b(Plane)31 b(Reference)2318 b(149)3224 299 y([Constructor])-3600 b Fc(void)39 b Fd(Plane)45 b Fw(\()p Fz(const)29 b(Point&)g Fp(p)p Fz(,)h(const)f(Point&)f Fp(n)11 b Fw(\))390 408 y FI(If)32 b Ft(p)i FI(is)e(not)g(equal)h(to)f Ft(n)p @@ -26082,7 +26096,7 @@ FI(,)d(and)h Fz(distance)390 1200 y FI(is)j(set)h(to)g Fz(INVALID_REAL)p FI(,)d(i.e.,)k Fz(*this)d FI(will)h(b)s(e)g(equal)h (to)g Fz(INVALID_PLANE)c FI(\(see)k(Section)g(23.2)390 -1310 y([Planes)h(Reference;)g(Global)h(Constan)m(ts],)f(page)g(147\).) +1310 y([Planes)h(Reference;)g(Global)h(Constan)m(ts],)f(page)g(148\).) 630 1444 y Fz(Point)46 b(P\(1,)h(1,)g(1\);)630 1554 y(Point)f(N\(0,)h (1\);)630 1663 y(N.rotate\(-35,)d(30,)j(20\);)630 1773 y(N.show\("N:"\);)650 1886 y FG(a)773 1882 y Fz(N:)g(\(-0.549659,)e @@ -26289,75 +26303,75 @@ (6\);)630 5121 y(Point)g(norm\(-1,)g(12,)h(-36\);)630 5230 y(Plane)f(A\(pt,)h(norm\);)630 5340 y(Plane)f(B;)p eop end -%%Page: 149 161 -TeXDict begin 149 160 bop 150 -116 a FI(Chapter)30 b(23:)41 -b(Plane)31 b(Reference)2318 b(149)630 299 y Fz(Plane)46 +%%Page: 150 162 +TeXDict begin 150 161 bop 150 -116 a FI(Chapter)30 b(23:)41 +b(Plane)31 b(Reference)2318 b(150)630 299 y Fz(Plane)46 b(C;)630 408 y(B)h(=)h(C)f(=)h(A;)630 518 y(A.show\("A:"\);)650 632 y FG(a)773 628 y Fz(A:)773 737 y(normal:)e(\(-0.0263432,)e (0.316118,)i(-0.948354\))773 847 y(point:)g(\(2,)h(2.3,)g(6\))773 956 y(distance)f(==)h(5.01574)630 1066 y(cout)g(<<)g(\(A)g(==)g(B)h(&&) f(A)g(==)g(C)h(&&)f(B)h(==)f(C\);)650 1180 y FG(a)773 -1176 y Fz(1)3094 1364 y FI([)p Fz(const)29 b FI(op)s(erator])-3599 +1176 y Fz(1)3094 1356 y FI([)p Fz(const)29 b FI(op)s(erator])-3599 b Fc(bool)39 b Fd(op)s(erator==)46 b Fw(\()p Fz(const)29 -b(Plane&)g Fp(p)11 b Fw(\))390 1473 y FI(Equalit)m(y)36 +b(Plane&)g Fp(p)11 b Fw(\))390 1466 y FI(Equalit)m(y)36 b(op)s(erator.)54 b(Compares)34 b Fz(*this)g FI(and)g Ft(p)p FI(,)h(and)f(returns)g Fz(true)p FI(,)h(if)f Fz(point)3295 -1477 y FG(\021)3410 1473 y Ft(p)p FI(.)p Fz(point)p FI(,)390 -1583 y Fz(normal)717 1587 y FG(\021)828 1583 y Ft(p)p -FI(.)p Fz(normal)p FI(,)29 b(and)g Fz(distance)1845 1587 -y FG(\021)1956 1583 y Ft(p)p FI(.)p Fz(distance)p FI(,)f(otherwise)j -Fz(false)p FI(.)3094 1771 y([)p Fz(const)e FI(op)s(erator])-3599 +1470 y FG(\021)3410 1466 y Ft(p)p FI(.)p Fz(point)p FI(,)390 +1576 y Fz(normal)717 1580 y FG(\021)828 1576 y Ft(p)p +FI(.)p Fz(normal)p FI(,)29 b(and)g Fz(distance)1845 1580 +y FG(\021)1956 1576 y Ft(p)p FI(.)p Fz(distance)p FI(,)f(otherwise)j +Fz(false)p FI(.)3094 1756 y([)p Fz(const)e FI(op)s(erator])-3599 b Fc(bool)39 b Fd(op)s(erator!=)45 b Fw(\()p Fz(const)30 -b(Plane&)e Fp(p)11 b Fw(\))390 1881 y FI(Inequalit)m(y)26 -b(op)s(erator.)39 b(Compares)25 b Fz(*this)f FI(and)h -Ft(p)p FI(,)h(and)e(returns)g Fz(true)p FI(,)h(if)h(if)f -Fz(point)f FG(6)p FI(=)g Ft(p)p FI(.)p Fz(point)p FI(,)390 -1990 y(or)30 b Fz(normal)f FG(6)p FI(=)h Ft(p)p FI(.)p -Fz(normal)p FI(,)f(or)h Fz(distance)e FG(6)p FI(=)i Ft(p)p -FI(.)p Fz(distance)p FI(,)e(otherwise)j Fz(false)p FI(.)150 -2253 y FH(23.5)68 b(Returning)46 b(Information)3105 2499 -y FI([)p Fz(const)29 b FI(function])-3600 b Fc(real_short)41 -b Fd(get)p 874 2499 35 5 v 50 w(distance)i Fw(\()p Fz(const)30 -b(Point&)e Fp(p)11 b Fw(\))3105 2608 y FI([)p Fz(const)29 +b(Plane&)e Fp(p)11 b Fw(\))390 1866 y FI(Inequalit)m(y)32 +b(op)s(erator.)44 b(Compares)31 b Fz(*this)f FI(and)g +Ft(p)k FI(and)d(returns)f Fz(true)p FI(,)g(if)h Fz(point)f +FG(6)p FI(=)62 b Ft(p)p FI(.)p Fz(point)p FI(,)390 1976 +y(or)30 b Fz(normal)f FG(6)p FI(=)60 b Ft(p)p FI(.)p +Fz(normal)p FI(,)29 b(or)h Fz(distance)e FG(6)p FI(=)61 +b Ft(p)p FI(.)p Fz(distance)p FI(.)38 b(Otherwise,)30 +b(it)h(returns)e Fz(false)p FI(.)150 2229 y FH(23.5)68 +b(Returning)46 b(Information)3105 2472 y FI([)p Fz(const)29 b FI(function])-3600 b Fc(real_short)41 b Fd(get)p 874 -2608 V 50 w(distance)i Fw(\()p Fz(void)p Fw(\))390 2718 -y FI(The)27 b(v)m(ersion)i(of)f(this)g(function)g(taking)g(a)h -Fz(Point)d FI(argumen)m(t)j(returns)d(a)j Fz(real_short)c -Ft(r)p FI(,)j(whose)390 2828 y Fz(real)d FI(part)h(\()p -Ft(r)p FI(.)p Fz(first)p FI(\))g(represen)m(ts)g(the)g(distance)h(of)f -Ft(p)j FI(from)d(the)g Fz(Plane)p FI(.)38 b(This)25 b(v)-5 -b(alue)27 b(is)f(alw)m(a)m(ys)390 2937 y(p)s(ositiv)m(e.)42 -b Ft(r)p FI(.)p Fz(second)28 b FI(can)j(tak)m(e)h(on)e(three)h(v)-5 -b(alues:)390 3099 y(0)31 b(If)f(the)g Fz(Point)f FI(lies)i(in)f(the)h -Fz(Plane)p FI(.)390 3209 y(1)g(If)f(it)h(lies)g(on)f(the)g(side)h(of)f -(the)h Fz(Plane)e FI(p)s(oin)m(ted)h(at)h(b)m(y)f(the)870 -3319 y(normal)g(to)h(the)g Fz(Plane)p FI(,)e(considered)h(to)i(b)s(e)d -(the)i(\\outside".)390 3480 y(-1)g(If)f(it)h(lies)g(on)f(the)h(side)f -(of)h(the)f Fz(Plane)f FC(not)40 b FI(p)s(oin)m(ted)30 -b(at)870 3590 y(b)m(y)g(the)h(normal)f(to)h(the)g Fz(Plane)p -FI(,)e(considered)h(to)h(b)s(e)f(the)h(\\inside".)390 -3752 y(The)h(v)m(ersion)h(taking)g(no)f(argumen)m(t)h(returns)e(the)h -(absolute)h(of)g(the)f(data)h(mem)m(b)s(er)f Fz(distance)390 -3862 y FI(and)c(its)h(sign,)g(i.e.,)h(the)f(distance)g(of)g -Fz(origin)e FI(to)i(the)g Fz(Plane)p FI(,)f(and)g(whic)m(h)g(side)h(of) -f(the)h Fz(Plane)e FI(it)390 3971 y(lies)k(on.)390 4108 -y(It)e(w)m(ould)f(ha)m(v)m(e)j(b)s(een)d(p)s(ossible)g(to)h(use)g +2472 35 5 v 50 w(distance)i Fw(\()p Fz(const)30 b(Point&)e +Fp(p)11 b Fw(\))3105 2582 y FI([)p Fz(const)29 b FI(function])-3600 +b Fc(real_short)41 b Fd(get)p 874 2582 V 50 w(distance)i +Fw(\()p Fz(void)p Fw(\))390 2692 y FI(The)27 b(v)m(ersion)i(of)f(this)g +(function)g(taking)g(a)h Fz(Point)d FI(argumen)m(t)j(returns)d(a)j +Fz(real_short)c Ft(r)p FI(,)j(whose)390 2801 y Fz(real)d +FI(part)h(\()p Ft(r)p FI(.)p Fz(first)p FI(\))g(represen)m(ts)g(the)g +(distance)h(of)f Ft(p)j FI(from)d(the)g Fz(Plane)p FI(.)38 +b(This)25 b(v)-5 b(alue)27 b(is)f(alw)m(a)m(ys)390 2911 +y(p)s(ositiv)m(e.)42 b Ft(r)p FI(.)p Fz(second)28 b FI(can)j(tak)m(e)h +(on)e(three)h(v)-5 b(alues:)390 3068 y(0)435 b(If)30 +b(the)g Fz(Point)f FI(lies)i(in)g(the)f Fz(Plane)p FI(.)390 +3225 y(1)435 b(If)29 b(it)h(lies)g(on)f(the)h(side)f(of)h(the)g +Fz(Plane)e FI(p)s(oin)m(ted)h(at)h(b)m(y)f(the)h(normal)f(to)h(the)g +Fz(Plane)p FI(,)870 3334 y(considered)g(to)h(b)s(e)f(the)h(\\outside".) +390 3492 y(-1)405 b(If)37 b(it)h(lies)g(on)f(the)h(side)f(of)h(the)f +Fz(Plane)f FC(not)47 b FI(p)s(oin)m(ted)37 b(at)h(b)m(y)g(the)f(normal) +h(to)g(the)870 3601 y Fz(Plane)p FI(,)29 b(considered)h(to)i(b)s(e)d +(the)i(\\inside".)390 3758 y(The)h(v)m(ersion)h(taking)g(no)f(argumen)m +(t)h(returns)e(the)h(absolute)h(of)g(the)f(data)h(mem)m(b)s(er)f +Fz(distance)390 3868 y FI(and)c(its)h(sign,)g(i.e.,)h(the)f(distance)g +(of)g Fz(origin)e FI(to)i(the)g Fz(Plane)p FI(,)f(and)g(whic)m(h)g +(side)h(of)f(the)h Fz(Plane)e FI(it)390 3977 y(lies)k(on.)390 +4111 y(It)e(w)m(ould)f(ha)m(v)m(e)j(b)s(een)d(p)s(ossible)g(to)h(use)g Fz(origin)e FI(as)i(the)g(default)g(for)g(an)f(optional)i -Fz(Point)e FI(argu-)390 4217 y(men)m(t,)k(but)f(I'v)m(e)h(c)m(hosen)f +Fz(Point)e FI(argu-)390 4220 y(men)m(t,)k(but)f(I'v)m(e)h(c)m(hosen)f (to)h(o)m(v)m(erload)h(this)e(function,)h(b)s(ecause)f(of)g(problems)g -(that)g(ma)m(y)h(arise,)390 4327 y(when)20 b(I)h(implemen)m(t)h +(that)g(ma)m(y)h(arise,)390 4330 y(when)20 b(I)h(implemen)m(t)h Fz(user_coordinates)16 b FI(and)21 b Fz(view_coordinates)c -FI(\(see)22 b(Section)g(20.1)g([P)m(oin)m(t)390 4436 -y(Reference;)31 b(Data)h(Mem)m(b)s(ers],)f(page)g(110\).)630 +FI(\(see)22 b(Section)g(20.1)g([P)m(oin)m(t)390 4440 +y(Reference;)31 b(Data)h(Mem)m(b)s(ers],)f(page)g(111\).)630 4573 y Fz(Point)46 b(N\(0,)h(1\);)630 4682 y(N.rotate\(-10,)d(20,)j (20\);)630 4792 y(Point)f(P\(1,)h(1,)g(1\);)630 4902 y(Plane)f(q\(P,)h(N\);)630 5011 y(Point)f(A\(4,)h(-2,)g(4\);)630 5121 y(Point)f(B\(-1,)h(3,)g(2\);)630 5230 y(Point)f(C)i(=)f (q.intersection_point\(A,)42 b(B\).pt;)630 5340 y(real_short)j(bp;)p eop end -%%Page: 150 162 -TeXDict begin 150 161 bop 150 -116 a FI(Chapter)30 b(23:)41 -b(Plane)31 b(Reference)2318 b(150)630 408 y Fz(bp)47 +%%Page: 151 163 +TeXDict begin 151 162 bop 150 -116 a FI(Chapter)30 b(23:)41 +b(Plane)31 b(Reference)2318 b(151)630 408 y Fz(bp)47 b(=)h(q.get_distance\(\);)630 518 y(cout)f(<<)g(bp.first;)650 632 y FG(a)773 628 y Fz(0.675646)630 737 y(cout)g(<<)g(bp.second)650 851 y FG(a)773 847 y Fz(-1)630 1066 y(bp)g(=)h(q.get_distance\(A\))630 @@ -26563,9 +26577,9 @@ %%EndDocument @endspecial 1726 5322 a FI(Figure)31 b(106.)p eop end -%%Page: 151 163 -TeXDict begin 151 162 bop 150 -116 a FI(Chapter)30 b(23:)41 -b(Plane)31 b(Reference)2318 b(151)150 299 y FH(23.6)68 +%%Page: 152 164 +TeXDict begin 152 163 bop 150 -116 a FI(Chapter)30 b(23:)41 +b(Plane)31 b(Reference)2318 b(152)150 299 y FH(23.6)68 b(In)l(tersections)3105 1029 y FI([)p Fz(const)29 b FI(function])-3600 b Fc(bool_point)41 b Fd(in)m(tersection)p 1304 1029 35 5 v 48 w(p)s(oin)m(t)k Fw(\()p Fz(const)29 b(Point&)f @@ -26594,23 +26608,23 @@ FI(.)630 3148 y Fz(Point)46 b(center\(2,)g(2,)h(3.5\);)630 3258 y(Reg_Polygon)e(h\(center,)g(6,)i(4,)g(80,)g(30,)g(10\);)630 3367 y(Plane)f(q)i(=)f(h.get_plane\(\);)630 3477 y(Point)f(P0)i(=)f -(mediate\(center,)d(h.get_point\(2\)\);)630 3587 y(P0.shift\(5)h(*)i +(center.mediate\(h.get_poi)o(nt\(2)o(\)\);)630 3587 y(P0.shift\(5)e(*)i (\(N)h(-)f(center\)\);)630 3696 y(Point)f(P1\(P0\);)630 3806 y(P1.rotate\(h.get_point\(1\))o(,)c(h.get_point\(4\)\);)630 3915 y(P1)47 b(=)h(3)f(*)h(\(P1)e(-)i(P0\);)630 4025 y(P1.shift\(P0\);)630 4134 y(P1.shift\(3,)d(-.5,)h(-2\);)630 4244 y(bool_point)f(bp)i(=)h(q.intersection_point\(P0)o(,)42 b(P1\);)630 4354 y(Point)k(i_P)h(=)h(bp.pt;)630 4463 -y(Point)e(P4)i(=)f(mediate\(h.get_point\(3\),)41 b(h.get_point\(0\),)j -(.75\);)630 4573 y(P4.shift\(N)h(-)i(center\);)630 4682 -y(Point)f(P5\(P4\);)630 4792 y(P5.rotate\(h.get_point\(3\))o(,)c +y(Point)e(P4)i(=)f(h.get_point\(3\).mediate\(h)o(.get)o(_poi)o(nt\()o +(0\),)41 b(.75\);)630 4573 y(P4.shift\(N)k(-)i(center\);)630 +4682 y(Point)f(P5\(P4\);)630 4792 y(P5.rotate\(h.get_point\(3\))o(,)c (h.get_point\(0\)\);)630 4902 y(P4.shift\(-1,)i(2\);)630 5011 y(Path)j(theta\(P4,)e(P5\);)630 5121 y(bp)i(=)h (q.intersection_point\(th)o(eta\))o(;)630 5230 y(Point)e(i_theta)g(=)i (bp.pt;)630 5340 y(draw_axes\(\);)p eop end -%%Page: 152 164 -TeXDict begin 152 163 bop 150 -116 a FI(Chapter)30 b(23:)41 -b(Plane)31 b(Reference)2318 b(152)950 2000 y @beginspecial +%%Page: 153 165 +TeXDict begin 153 164 bop 150 -116 a FI(Chapter)30 b(23:)41 +b(Plane)31 b(Reference)2318 b(153)950 2000 y @beginspecial -178 @llx -150 @lly 62 @urx 90 @ury 2400 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.107 %!PS @@ -26744,14 +26758,14 @@ Fp(p)11 b Fw(\))390 2422 y FI(Returns)26 b(a)i Fz(Line)e Ft(l)p FI(.)40 b(represen)m(ting)27 b(the)g(line)h(of)f(in)m (tersection)i(of)f(t)m(w)m(o)g Fz(Planes)p FI(.)38 b(See)27 -b(Chapter)g(22)390 2532 y([Line)k(Reference],)g(page)g(144.)390 +b(Chapter)g(22)390 2532 y([Line)k(Reference],)g(page)g(145.)390 2676 y(In)44 b(Fig.)i(108,)k Fz(intersection_line\(\))39 b FI(is)45 b(used)f(to)h(\014nd)f(the)g(line)i(of)e(in)m(tersection)j (of)e(the)390 2785 y Fz(Planes)25 b FI(deriv)m(ed)h(from)g(the)g Fz(Rectangles)e Fu(r)1925 2799 y FA(0)1988 2785 y FI(and)i Fu(r)2202 2799 y FA(1)2266 2785 y FI(using)f Fz(get_plane\(\))f FI(\(see)j(Section)g(24.15)390 2895 y([P)m(aths)33 b(Reference;)i -(Querying],)d(page)i(184\).)48 b(Please)34 b(note)f(that)g(there)g(is)f +(Querying],)d(page)i(185\).)48 b(Please)34 b(note)f(that)g(there)g(is)f (no)g(guaran)m(tee)i(that)390 3004 y Ft(l)p FI(.)p Fz(position)21 b FI(will)i(b)s(e)f(in)h(a)g(con)m(v)m(enien)m(t)i(place)f(for)e(y)m (our)h(dra)m(wing.)38 b(A)23 b(bit)g(of)f(\014ddling)g(w)m(as)h(needed) @@ -26775,9 +26789,9 @@ y(Point)h(P1\(-l.direction\);)630 5121 y(P1.shift\(l.position\);)630 5230 y(Point)g(P2\(P0)h(-)g(P1\);)630 5340 y(P2)g(*=)g(12.5;)p eop end -%%Page: 153 165 -TeXDict begin 153 164 bop 150 -116 a FI(Chapter)30 b(23:)41 -b(Plane)31 b(Reference)2318 b(153)630 299 y Fz(P2.shift\(P0\);)630 +%%Page: 154 166 +TeXDict begin 154 165 bop 150 -116 a FI(Chapter)30 b(23:)41 +b(Plane)31 b(Reference)2318 b(154)630 299 y Fz(P2.shift\(P0\);)630 408 y(cout)47 b(<<)g(P2.is_on_plane\(q0\);)650 522 y FG(a)773 518 y Fz(1)630 628 y(cout)g(<<)g(P2.is_on_plane\(q1\);)650 741 y FG(a)773 737 y Fz(1)630 847 y(Point)f(P3\(P0)h(-)g(P1\);)630 @@ -26904,25 +26918,25 @@ b(F)-8 b(ollo)m(wing)390 4439 y(this,)45 b(if)d(the)g Fz(Plane)e FI(is)i(equal)g(to)h Fz(INVALID_PLANE)38 b FI(\(see)43 b(Section)f(23.2)i([Planes)e(Reference;)390 -4548 y(Global)32 b(Constan)m(ts],)g(page)f(147\),)i(a)e(message)h(to)f +4548 y(Global)32 b(Constan)m(ts],)g(page)f(148\),)i(a)e(message)h(to)f (this)g(e\013ect)h(is)f(prin)m(ted)f(to)h(standard)f(output.)390 4658 y(Otherwise,)45 b Fz(normal)40 b FI(and)h Fz(point)g FI(are)h(sho)m(wn)g(using)f Fz(Point::show\(\))d FI(\(see)43 b(Section)g(20.20)390 4767 y([P)m(oin)m(t)32 b(Reference;)f(Sho)m -(wing],)g(page)g(139\).)42 b(Finally)-8 b(,)32 b Fz(distance)d +(wing],)g(page)g(140\).)42 b(Finally)-8 b(,)32 b Fz(distance)d FI(is)h(prin)m(ted.)630 4902 y Fz(Point)46 b(A\(1,)h(3,)g(2.5\);)630 5011 y(Rectangle)e(r0\(A,)i(5,)g(5,)g(10,)g(15,)g(6\);)630 5121 y(Plane)f(p)i(=)f(r0.get_plane\(\);)650 5234 y FG(a)773 5230 y Fz(p:)773 5340 y(normal:)f(\(-0.0582432,)e(0.984111,)i (-0.167731\))p eop end -%%Page: 154 166 -TeXDict begin 154 165 bop 150 -116 a FI(Chapter)30 b(23:)41 -b(Plane)31 b(Reference)2318 b(154)773 299 y Fz(point:)46 +%%Page: 155 167 +TeXDict begin 155 166 bop 150 -116 a FI(Chapter)30 b(23:)41 +b(Plane)31 b(Reference)2318 b(155)773 299 y Fz(point:)46 b(\(-0.722481,)f(2.38245,)h(-0.525176\))773 408 y(distance)g(==)h (-2.47476)p eop end -%%Page: 155 167 -TeXDict begin 155 166 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(155)150 299 y FE(24)80 +%%Page: 156 168 +TeXDict begin 156 167 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(156)150 299 y FE(24)80 b(P)l(ath)54 b(Reference)150 576 y FI(Class)28 b Fz(Path)f FI(is)h(de\014ned)f(in)h(`)p Fz(paths.web)p FI('.)38 b(It)28 b(is)g(deriv)m(ed)g(from)g Fz(Shape)f FI(using)g @@ -26934,7 +26948,7 @@ Fz(Path\(const)27 b(Point&)i(p0,)g(const)390 1347 y(Point&)g(p1\))p FI(,)40 b(directly)g(or)e(indirectly)-8 b(.)67 b(See)40 b(Section)f(24.2)i([P)m(ath)e(Reference;)44 b(Constructors)390 -1457 y(and)30 b(Setting)h(F)-8 b(unctions],)31 b(page)g(157.)630 +1457 y(and)30 b(Setting)h(F)-8 b(unctions],)31 b(page)g(158.)630 1605 y Fz(Point)46 b(p0;)630 1715 y(Point)g(p1\(1,)h(1\);)630 1825 y(Point)f(p2\(2,)h(3\);)630 1934 y(Path)g(q0\(p0,)f(p1\);)630 2044 y(cout)h(<<)g(q0.get_line_switch\(\);)650 2157 y @@ -27021,10 +27035,10 @@ FI(obsolete)390 5230 y(so)s(on.)48 b(Ho)m(w)m(ev)m(er,)35 b(at)f(the)f(momen)m(t,)h(it's)g(still)f(needed.)48 b(See)33 b(Section)h(24.15)g([P)m(ath)g(Reference;)390 5340 y(Querying],)c(page) -h(184.)p eop end -%%Page: 156 168 -TeXDict begin 156 167 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(156)2973 299 y([Protected)32 +h(185.)p eop end +%%Page: 157 169 +TeXDict begin 157 168 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(157)2973 299 y([Protected)32 b(v)-5 b(ariable])-3599 b Fc(bool)39 b Fd(cycle)p 652 299 35 5 v 50 w(switc)m(h)390 408 y Fz(true)29 b FI(if)i(the)f Fz(Path)f FI(is)i(cyclical,)i(otherwise)d Fz(false)p @@ -27037,14 +27051,14 @@ (should)g(b)s(e)g(the)h(only)g(w)m(a)m(y)h Fz(Paths)e FI(are)h(ev)m(er)390 937 y(dynamically)g(allo)s(cated.)54 b(See)35 b(Section)g(24.2)g([P)m(ath)h(Constructors)d(and)h(Setting)h -(F)-8 b(unctions],)390 1047 y(page)31 b(157.)2973 1246 +(F)-8 b(unctions],)390 1047 y(page)31 b(158.)2973 1246 y([Protected)h(v)-5 b(ariable])-3599 b Fc(bool)39 b Fd(do)p 526 1246 V 51 w(output)390 1356 y FI(Used)f(in)h Fz (Picture::output\(\))p FI(.)60 b(Set)39 b(to)g Fz(false)f FI(if)g(the)h Fz(Path)e FI(isn't)i(pro)5 b(jectable)40 b(using)e(the)390 1466 y(argumen)m(ts)30 b(passed)g(to)h Fz(Picture::output\(\))p FI(.)36 b(See)30 b(Section)h(19.8)h([Picture)f -(Reference;)g(Out-)390 1575 y(putting],)g(page)g(105.)2973 +(Reference;)g(Out-)390 1575 y(putting],)g(page)g(106.)2973 1775 y([Protected)h(v)-5 b(ariable])-3599 b Fc(signed)40 b(short)g Fd(\014ll)p 938 1775 V 49 w(dra)m(w)p 1234 1775 V 50 w(v)-6 b(alue)390 1884 y FI(Set)33 b(in)f(the)h(dra)m(wing)g @@ -27052,8 +27066,8 @@ FI(,)c(to)34 b(determine)390 1994 y(what)41 b(MetaP)m(ost)j(co)s(de)e (to)g(write)f(to)i Fz(out_stream)p FI(.)71 b(See)41 b(Section)h(24.12)i ([P)m(ath)e(Reference;)390 2104 y(Dra)m(wing)k(and)e(Filling],)50 -b(page)c(170,)k(and)44 b(Section)i(24.16)h([P)m(ath)f(Reference;)53 -b(Outputting],)390 2213 y(page)31 b(187.)2973 2413 y([Protected)h(v)-5 +b(page)c(171,)k(and)44 b(Section)i(24.16)h([P)m(ath)f(Reference;)53 +b(Outputting],)390 2213 y(page)31 b(188.)2973 2413 y([Protected)h(v)-5 b(ariable])-3599 b Fc(const)40 b(Color*)g Fd(dra)m(w)p 1057 2413 V 49 w(color)390 2523 y FI(P)m(oin)m(ter)32 b(to)f(the)f Fz(Color)f FI(used)h(if)g(the)h Fz(Path)e @@ -27099,9 +27113,9 @@ Fz(Focus)p FI(.)50 b(Set)34 b(in)g Fz(set_extremes\(\))c FI(and)j(used)g(in)390 5340 y Fz(Picture::output\(\))26 b FI(for)k(surface)g(hiding.)p eop end -%%Page: 157 169 -TeXDict begin 157 168 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(157)2973 299 y([Protected)32 +%%Page: 158 170 +TeXDict begin 158 169 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(158)2973 299 y([Protected)32 b(v)-5 b(ariable])-3599 b Fc(vector)42 b Fd(p)s(oin)m(ts)390 408 y FI(P)m(oin)m(ters)32 b(to)f(the)f Fz(Points)f FI(on)h(the)h Fz(Path)p FI(.)2973 629 y([Protected)h(v)-5 b(ariable])-3599 @@ -27115,7 +27129,7 @@ Fz(const)29 b(Color)p FI(,)44 b(whic)m(h)e(b)s(ecomes)g(the)g(default)g (for)g Fz(draw_help\(\))p FI(.)72 b(See)42 b(Sec-)390 1288 y(tion)31 b(24.12)h([P)m(ath)f(Reference;)h(Dra)m(wing)f(and)f -(Filling],)i(page)f(170.)390 1441 y(Please)e(note)g(that)g +(Filling],)i(page)f(171.)390 1441 y(Please)e(note)g(that)g Fz(help_color)c FI(is)j(a)h(p)s(oin)m(ter)f(to)h(a)g Fz(const)f(Color)p FI(,)g(not)g(a)h Fz(const)d FI(p)s(oin)m(ter)j(to)g (a)390 1551 y Fz(Color)h FI(or)i(a)g Fz(const)f FI(p)s(oin)m(ter)g(to)i @@ -27133,7 +27147,7 @@ y(help\(\))26 b FI(do)s(es)h(not)h(cause)h(a)f(cop)m(y)g(of)g(the)g Fz(Path)e FI(to)j(b)s(e)e(created)i(and)e(put)g(on)m(to)i(a)f Fz(Picture)p FI(.)38 b(See)390 2540 y(Section)31 b(24.12)i([P)m(ath)e -(Reference;)g(Dra)m(wing)g(and)f(Filling],)i(page)f(170.)150 +(Reference;)g(Dra)m(wing)g(and)f(Filling],)i(page)f(171.)150 2843 y FH(24.2)68 b(Constructors)46 b(and)e(Setting)i(F)-11 b(unctions)2924 3105 y FI([Default)32 b(constructor])-3599 b Fc(void)39 b Fd(P)m(ath)45 b Fw(\()p Fz(void)p Fw(\))390 @@ -27156,7 +27170,7 @@ 4356 y(p.show\("p:"\);)650 4469 y FG(a)773 4465 y Fz(p:)773 4575 y(\(-2,)h(-2.5,)f(-1\))h(--)g(\(3,)g(2,)g(2.5\);)p 150 4702 1200 4 v 199 4769 a FA(1)275 4801 y Fr(Stroustrup,)25 -b Fm(The)g FB(C)902 4793 y FA(+)-8 b(+)1052 4801 y Fm(Programming)27 +b Fm(The)g FB(C)902 4793 y FA(+)-8 b(+)1026 4801 y Fm(Programming)27 b(Language)p Fr(,)g(p.)f(96.)199 4872 y FA(2)275 4904 y Fr(It)21 b(isn't)i(su\016cien)n(t)f(to)h(c)n(hec)n(k)e(whether)i(a)f Fs(Path)i Fr(consists)f(of)g(only)f(t)n(w)n(o)h Fs(Points)h @@ -27173,12 +27187,12 @@ y Fr(instead.)58 b(When)34 b(I'v)n(e)f(done)g(this,)j(it)e(ma)n(y)g(b)r (e)f(p)r(ossible)i(to)f(eliminate)h Fs(line_switch)p Fr(.)61 b(See)34 b(Section)f(24.1)j([P)n(ath)275 5340 -y(Reference;)26 b(Data)g(Mem)n(b)r(ers],)h(page)f(155,)h(and)e(Section) -h(24.15)i([P)n(ath)e(Reference;)g(Querying],)g(page)g(184.)p +y(Reference;)26 b(Data)g(Mem)n(b)r(ers],)h(page)f(156,)h(and)e(Section) +h(24.15)i([P)n(ath)e(Reference;)g(Querying],)g(page)g(185.)p eop end -%%Page: 158 170 -TeXDict begin 158 169 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(158)933 1792 y @beginspecial +%%Page: 159 171 +TeXDict begin 159 170 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(159)933 1792 y @beginspecial -158 @llx -176 @lly 86 @urx 39 @ury 2440 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.110 %!PS @@ -27300,11 +27314,11 @@ Fz(Path)e FI(is)h(a)g(cycle)i(or)e(not.)71 b Fz(cycle_switch)36 b FI(is)41 b(set)f(to)h Ft(cycle)p FI(.)390 3776 y(See)29 b(Section)g(24.1)i([P)m(ath)e(Reference;)h(Data)h(Mem)m(b)s(ers],)e -(page)g(155.)42 b(The)28 b(\014lling)h(and)f(un\014lling)390 +(page)g(156.)42 b(The)28 b(\014lling)h(and)f(un\014lling)390 3886 y(functions)39 b(only)g(w)m(ork)g(for)g Fz(Paths)e FI(that)j(are)g(cycles.)68 b(See)39 b(Section)h(24.12)h([P)m(ath)f (Reference;)390 3995 y(Dra)m(wing)f(and)f(Filling],)43 -b(page)c(170.)67 b(If)38 b(a)h Fz(Path)f FI(is)h(a)g(cycle,)j(it)d(is)g +b(page)c(171.)67 b(If)38 b(a)h Fz(Path)f FI(is)h(a)g(cycle,)j(it)d(is)g (up)e(to)j(the)f(user)f(to)h(mak)m(e)390 4105 y(sure)30 b(that)i(it)f(has)f(sensible)h Fz(Point)f FI(and)g(connector)i(v)-5 b(alues;)31 b(3DLDF)h(do)s(esn't)f(c)m(hec)m(k)h(them.)42 @@ -27319,22 +27333,21 @@ e Fz(Path)p FI(.)61 b(The)36 b(ellipsis)i(p)s(oin)m(ts)390 4679 y(\()p Fz(...)p FI(\))d(represen)m(t)g(an)g(arbitrary)g(n)m(um)m (b)s(er)f(of)h(p)s(oin)m(ters)g(to)g Fz(Points)f FI(that)i(should)e(go) -h(on)m(to)i(the)390 4788 y Fz(Path)p FI(.)54 b(The)34 -b(\014nal)h(argumen)m(t)g(m)m(ust)g(b)s(e)g Fz(0)p FI(,)h(whic)m(h)f -(is)g(in)m(terpreted)g(b)m(y)g(the)g FB(C)3127 4780 y -FA(+)-8 b(+)3295 4788 y FI(compiler)36 b(as)390 4898 -y(the)31 b(n)m(ull)f(p)s(oin)m(ter.)1034 4865 y FA(3)390 -5033 y FI(It)k(is)h(admittedly)f(a)h(bit)f(a)m(wkw)m(ard)h(to)g(ha)m(v) -m(e)g(to)g(t)m(yp)s(e)f(\\)p Fz(&p0)p FI(")g(rather)h(than)e(\\)p -Fz(p0)p FI(",)j(and)e(I)g(ha)m(v)m(e)390 5143 y(frequen)m(tly)c -(forgotten)g(to)h(do)e(it,)i(whic)m(h)e(causes)h(a)g(compiler)g(error,) -f(but)g(all)h(of)g(the)g(argumen)m(ts)p 150 5241 1200 -4 v 199 5308 a FA(3)275 5340 y Fr(Stroustrup,)25 b Fm(The)g -FB(C)902 5332 y FA(+)-8 b(+)1052 5340 y Fm(Programming)27 +h(on)m(to)i(the)390 4788 y Fz(Path)p FI(.)h(The)27 b(\014nal)g(argumen) +m(t)h(m)m(ust)f(b)s(e)f Fz(0)p FI(,)i(whic)m(h)f(is)g(in)m(terpreted)g +(b)m(y)g(the)h FB(C)3025 4780 y FA(+)-8 b(+)3150 4788 +y FI(compiler)27 b(as)h(the)390 4898 y(n)m(ull)i(p)s(oin)m(ter.)877 +4865 y FA(3)390 5033 y FI(It)k(is)h(admittedly)f(a)h(bit)f(a)m(wkw)m +(ard)h(to)g(ha)m(v)m(e)g(to)g(t)m(yp)s(e)f(\\)p Fz(&p0)p +FI(")g(rather)h(than)e(\\)p Fz(p0)p FI(",)j(and)e(I)g(ha)m(v)m(e)390 +5143 y(frequen)m(tly)c(forgotten)g(to)h(do)e(it,)i(whic)m(h)e(causes)h +(a)g(compiler)g(error,)f(but)g(all)h(of)g(the)g(argumen)m(ts)p +150 5241 1200 4 v 199 5308 a FA(3)275 5340 y Fr(Stroustrup,)25 +b Fm(The)g FB(C)902 5332 y FA(+)-8 b(+)1026 5340 y Fm(Programming)27 b(Language)p Fr(,)g(p.)f(88.)p eop end -%%Page: 159 171 -TeXDict begin 159 170 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(159)390 299 y(m)m(ust)27 +%%Page: 160 172 +TeXDict begin 160 171 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(160)390 299 y(m)m(ust)27 b(b)s(e)g(p)s(oin)m(ters)h(in)f(order)g(to)i(b)s(e)e(able)h(to)g(use)g (0)g(to)g(indicate)h(the)e(end)g(of)h(the)g(argumen)m(t)g(list.)390 408 y(Con)m(v)m(enience)36 b(in)e(t)m(yping)h(function)g(calls)g(is)g @@ -27412,9 +27425,9 @@ (\(0.92139,)f(1.51449,)f(3.29505\))h(...)773 5340 y(\(-1.07861,)f (0.514487,)g(6.29505\))h(...)h(\(2.84065,)e(-3.26065,)g(6.29505\);)p eop end -%%Page: 160 172 -TeXDict begin 160 171 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(160)1163 1575 y @beginspecial +%%Page: 161 173 +TeXDict begin 161 172 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(161)1163 1575 y @beginspecial -150 @llx -150 @lly 39 @urx 39 @ury 1890 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.112 %!PS @@ -27556,19 +27569,19 @@ Fp(s)p Fz(,)g(Point)g Fp(*p)p Fz(,)h Fy([)p Fz(...)p Fy(])p Fz(,)565 4883 y(0)p Fw(\))390 4993 y FI(Corresp)s(onds)e(to)j (the)g(constructor)g(ab)s(o)m(v)m(e.)p 150 5066 1200 -4 v 199 5134 a FA(4)275 5166 y Fr(Where)24 b(p)r(ossible,)i(I)e(prefer) -h(to)g(use)f(the)g FB(C)1518 5158 y FA(+)-8 b(+)1665 -5166 y Fr(data)25 b(t)n(yp)r(e)e Fs(string)j Fr(rather)f(than)f -Fs(char*)p Fr(,)i(ho)n(w)n(ev)n(er)e(it)h(w)n(as)g(necessary)275 -5253 y(to)i(use)h Fs(char*)g Fr(here)g(b)r(ecause)g(0)g(is)g(not)f(a)h +4 v 199 5134 a FA(4)275 5166 y Fr(Where)25 b(p)r(ossible,)j(I)d(prefer) +i(to)f(use)g(the)f FB(C)1528 5158 y FA(+)-8 b(+)1652 +5166 y Fr(data)26 b(t)n(yp)r(e)f Fs(string)j Fr(rather)e(than)f +Fs(char*)p Fr(,)j(ho)n(w)n(ev)n(er)d(it)h(w)n(as)h(necessary)275 +5253 y(to)g(use)h Fs(char*)g Fr(here)g(b)r(ecause)g(0)g(is)g(not)f(a)h (v)l(alid)f Fs(string)p Fr(,)j(ev)n(en)d(though)g Fs(string)i Fr(ma)n(y)e(b)r(e)g(implemen)n(ted)g(as)i Fs(char*)p Fr(,)275 5340 y(and)c(0)h(m)n(ust)f(b)r(e)h(a)g(v)l(alid)f(argumen)n (t,)h(since)g(it)g(is)g(needed)g(to)f(indicate)i(the)e(end)g(of)h(the)g (argumen)n(t)f(list.)p eop end -%%Page: 161 173 -TeXDict begin 161 172 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(161)3012 299 y([Cop)m(y)30 +%%Page: 162 174 +TeXDict begin 162 173 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(162)3012 299 y([Cop)m(y)30 b(constructor])-3599 b Fc(void)39 b Fd(P)m(ath)45 b Fw(\()p Fz(const)29 b(Path&)g Fp(p)11 b Fw(\))390 408 y FI(Creates)31 b(a)g(new)f Fz(Path)p FI(,)f(making)i(it)g(a)g(cop)m(y)g(of)f @@ -27584,7 +27597,7 @@ (means)h(of)f Fz(create_new_path\(\))p FI(.)67 b(Sets)40 b Fz(on_free_store)d FI(to)390 1017 y Fz(true)p FI(.)j(See)30 b(Section)h(24.1)h([P)m(ath)f(Reference;)h(Data)g(Mem)m(b)s(ers],)f -(page)g(155.)390 1146 y(In)26 b(the)i(\014rst)e(v)m(ersion,)j(if)e +(page)g(156.)390 1146 y(In)26 b(the)i(\014rst)e(v)m(ersion,)j(if)e Ft(p)i FI(is)f(0,)g(the)g(new)e Fz(Path)g FI(will)i(b)s(e)e(empt)m(y)-8 b(.)41 b(Otherwise,)28 b(it)f(will)h(b)s(e)f(a)g(cop)m(y)390 1256 y(of)k Ft(*p)p FI(.)40 b(In)30 b(the)g(second)h(v)m(ersion,)g(the) @@ -27593,7 +27606,7 @@ (the)h(dra)m(wing)g(and)f(\014lling)g(functions)g(for)h(cop)m(ying)g(a) g Fz(Path)390 1495 y FI(and)g(putting)g(the)h(cop)m(y)g(on)m(to)h(a)f Fz(Picture)p FI(.)54 b(See)36 b(Section)g(24.12)i([P)m(ath)e -(Reference;)j(Dra)m(wing)390 1605 y(and)30 b(Filling],)i(page)f(170.) +(Reference;)j(Dra)m(wing)390 1605 y(and)30 b(Filling],)i(page)f(171.) 150 1848 y FH(24.3)68 b(Destructor)2911 2087 y FI([)p Fz(virtual)29 b FI(Destructor])-3599 b Fc(void)39 b(~)p Fd(P)m(ath)45 b Fw(\()p Fz(void)p Fw(\))390 2197 y FI(All)39 @@ -27616,7 +27629,7 @@ Fp(t)11 b Fz(\))28 b FI(on)34 b(eac)m(h)h(of)f(the)g Fz(Points)e FI(on)i(the)g Fz(Path)p FI(.)50 b(See)34 b(Section)g(20.6)390 3446 y([P)m(oin)m(t)29 b(Reference;)h(Op)s -(erators],)e(page)g(115.)41 b(This)27 b(has)g(the)h(e\013ect)h(of)f +(erators],)e(page)g(116.)41 b(This)27 b(has)g(the)h(e\013ect)h(of)f (transforming)f(the)h(en)m(tire)390 3555 y Fz(Path)d FI(b)m(y)g Ft(t)p FI(.)40 b(Please)27 b(note)f(that)g Fz(Path)f FI(do)s(es)h(not)g(ha)m(v)m(e)h(a)f Fz(transform)d @@ -27642,9 +27655,9 @@ (new)f Fz(Point)390 5340 y FI(and)k(the)g(previous)g(one.)41 b(The)30 b Fz(Path)f FI(remains)h(unc)m(hanged.)p eop end -%%Page: 162 174 -TeXDict begin 162 173 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(162)3350 299 y([F)-8 +%%Page: 163 175 +TeXDict begin 163 174 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(163)3350 299 y([F)-8 b(unction])-3599 b Fc(void)39 b Fd(op)s(erator&)p Fc(=)46 b Fw(\()p Fz(const)29 b(Path&)g Fp(pa)11 b Fw(\))390 408 y FI(Concatenates)29 b(t)m(w)m(o)g Fz(Paths)p FI(.)38 @@ -27689,9 +27702,9 @@ g(0\))g(--)773 5121 y(\(2,)g(-2,)g(0\))g(--)g(\(2,)g(2,)g(0\))h(..)773 5230 y(\(1,)f(2,)g(0\))g(..)h(\(0,)f(4,)g(0\))g(..)773 5340 y(\(-0.5,)f(3,)h(0\))h(--)f(cycle;)p eop end -%%Page: 163 175 -TeXDict begin 163 174 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(163)1208 1942 y @beginspecial +%%Page: 164 176 +TeXDict begin 164 175 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(164)1208 1942 y @beginspecial -89 @llx -88 @lly 89 @urx 145 @ury 1780 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.114 %!PS @@ -27788,9 +27801,9 @@ FI(,)35 b(so)g(ev)m(ery)h(class)g(deriv)m(ed)f(from)g Fz(Shape)f FI(m)m(ust)h(ha)m(v)m(e)h(one.)55 b(It)36 b(w)m(as)f(in)m(tended)p eop end -%%Page: 164 176 -TeXDict begin 164 175 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(164)390 299 y(for)37 +%%Page: 165 177 +TeXDict begin 165 176 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(165)390 299 y(for)37 b(use)f(in)h(the)g(template)h(function)e Fz(create_new\(\))p FI(,)g(but)g(I)h(ha)m(v)m(en't)h(b)s(een)e(able)h(to)h(get)g(the)390 408 y(latter)32 b(to)f(w)m(ork.)3058 600 y([Virtual)g(function])-3600 @@ -27818,7 +27831,7 @@ b FI(is)50 b Fz(protected)p FI(,)j(and)c(the)h Fz(Solid)f FI(cannot)h(access)i(it)e(directly)-8 b(.)101 b(See)390 1698 y(Section)31 b(32.13)i([Solid)d(Reference;)h(Dra)m(wing)h(and)d -(Filling],)k(page)e(242.)3058 1890 y([Virtual)g(function])-3600 +(Filling],)k(page)e(244.)3058 1890 y([Virtual)g(function])-3600 b Fc(void)39 b Fd(set)p 548 1890 V 50 w(\014ll)p 726 1890 V 50 w(color)46 b Fw(\()p Fz(const)29 b(Color&)g Fp(c)11 b Fw(\))3058 1999 y FI([Virtual)31 b(function])-3600 @@ -27835,7 +27848,7 @@ b FI(is)50 b Fz(protected)p FI(,)j(and)c(the)h Fz(Solid)f FI(cannot)h(access)i(it)e(directly)-8 b(.)101 b(See)390 2576 y(Section)31 b(32.13)i([Solid)d(Reference;)h(Dra)m(wing)h(and)d -(Filling],)k(page)e(242.)3058 2768 y([Virtual)g(function])-3600 +(Filling],)k(page)e(244.)3058 2768 y([Virtual)g(function])-3600 b Fc(void)39 b Fd(set)p 548 2768 V 50 w(dash)p 827 2768 V 50 w(pattern)k Fw(\()p Fy([)p Fz(const)30 b(string)e Fp(s)41 b Fz(=)30 b("")p Fy(])p Fw(\))390 2877 y FI(Sets)g @@ -27851,7 +27864,7 @@ (connector.)73 b(Ad-)390 3590 y(ditional)36 b(connectors)f(can)g(b)s(e) f(added)g(b)m(y)h(using)f Fz(Path::operator+=\(const)24 b(string\))p FI(.)52 b(See)390 3699 y(Section)31 b(24.4)h([P)m(ath)f -(Reference;)h(Op)s(erators],)e(page)h(161.)390 3838 y(I)i(plan)g(to)h +(Reference;)h(Op)s(erators],)e(page)h(162.)390 3838 y(I)i(plan)g(to)h (add)f(a)h(v)m(ersion)g(of)f(this)h(function)f(taking)h(a)g(v)m(ector)h (of)e Fz(strings)f FI(as)h(its)h(argumen)m(t,)390 3947 y(to)d(mak)m(e)g(it)g(p)s(ossible)f(to)h(set)g(sev)m(eral)h(connectors) @@ -27877,17 +27890,18 @@ FI(.)390 5340 y(The)g Fz(Points)f FI(on)h(the)g Fz(Path)g FI(are)g(scaled)i(according)f(to)g(the)g(argumen)m(ts:)p eop end -%%Page: 165 177 -TeXDict begin 165 176 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(165)630 299 y Fz(Point)46 +%%Page: 166 178 +TeXDict begin 166 177 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(166)630 299 y Fz(Point)46 b(pt[8];)630 408 y(pt[0])g(=)i(\(-1,)e(-1\);)630 518 -y(for)h(\(int)g(i)g(=)g(1;)h(i)f(<)h(8;)f(++i\))821 737 -y(pt[i])f(=)i(pt[0];)821 847 y(pt[i].rotate\(0,)c(0,)j(i)g(*)h(45\);) -630 1066 y(Path)f(p\("--",)e(true,)i(&pt[0],)f(&pt[1],)f(&pt[2],)h -(&pt[3],)964 1176 y(&pt[4],)g(&pt[5],)g(&pt[6],)964 1285 -y(&pt[7],)g(0\);)630 1395 y(p.draw\(\);)630 1504 y(p.scale\(2,)f(2\);) -630 1614 y(p.draw\(\);)1292 3138 y @beginspecial -79 -@llx -79 @lly 79 @urx 79 @ury 1580 @rwi @setspecial +y(for)h(\(int)g(i)g(=)g(1;)h(i)f(<)h(8;)f(++i\))725 628 +y({)821 737 y(pt[i])f(=)i(pt[0];)821 847 y(pt[i].rotate\(0,)c(0,)j(i)g +(*)h(45\);)725 956 y(})630 1066 y(Path)f(p\("--",)e(true,)i(&pt[0],)f +(&pt[1],)f(&pt[2],)h(&pt[3],)964 1176 y(&pt[4],)g(&pt[5],)g(&pt[6],)964 +1285 y(&pt[7],)g(0\);)630 1395 y(p.draw\(\);)630 1504 +y(p.scale\(2,)f(2\);)630 1614 y(p.draw\(\);)1292 3138 +y @beginspecial -79 @llx -79 @lly 79 @urx 79 @ury 1580 +@rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.115 %!PS %%BoundingBox: -79 -79 79 79 @@ -27955,9 +27969,9 @@ 5121 y(q.filldraw\(black,)e(light_gray\);)630 5230 y(q.shear\(1.5,)h (2,)k(2.5,)e(3,)h(3.5,)g(5\);)630 5340 y(q.filldraw\(black,)c (light_gray\);)p eop end -%%Page: 166 178 -TeXDict begin 166 177 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(166)558 2192 y @beginspecial +%%Page: 167 179 +TeXDict begin 167 178 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(167)558 2192 y @beginspecial -178 @llx -178 @lly 156 @urx 85 @ury 3340 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.116 %!PS @@ -28205,9 +28219,9 @@ (&pt[0],)f(&pt[1],)f(&pt[2],)964 5011 y(&pt[3],)h(&pt[4],)g(&pt[5],)g (0\);)630 5121 y(p.draw\(\);)630 5230 y(p.shift\(3,)f(3,)i(3\);)630 5340 y(p.draw\(\);)p eop end -%%Page: 167 179 -TeXDict begin 167 178 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(167)971 2467 y @beginspecial +%%Page: 168 180 +TeXDict begin 168 179 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(168)971 2467 y @beginspecial -142 @llx -360 @lly 93 @urx -64 @ury 2350 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.117 %!PS @@ -28311,9 +28325,9 @@ 4902 y(&pt[3],)h(&pt[4],)g(&pt[5],)g(0\);)630 5011 y(p.draw\(\);)630 5121 y(Point)g(s\(1,)h(1,)g(1\);)630 5230 y(p.shift\(s\);)630 5340 y(p.draw\(\);)p eop end -%%Page: 168 180 -TeXDict begin 168 179 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(168)1058 1700 y @beginspecial +%%Page: 169 181 +TeXDict begin 169 180 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(169)1058 1700 y @beginspecial -142 @llx -360 @lly 72 @urx -156 @ury 2140 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.118 %!PS @@ -28409,7 +28423,7 @@ 22 b FI(on)390 2325 y(all)31 b(of)g(the)g Fz(Points)e FI(on)h Fz(points)p FI(.)40 b(See)31 b(Section)g(20.12)i([P)m(oin)m(t)f (Reference;)g(A\016ne)e(T)-8 b(ransforma-)390 2435 y(tions],)34 -b(page)f(121.)48 b(The)32 b(return)f(v)-5 b(alue)33 b(is)f +b(page)f(122.)48 b(The)32 b(return)f(v)-5 b(alue)33 b(is)f Fz(void)p FI(,)g(b)s(ecause)g(there)h(is)f(no)h(guaran)m(tee)h(that)f (all)g(of)390 2544 y(the)e Fz(Points)d FI(on)i(a)h Fz(Path)e FI(will)i(ha)m(v)m(e)h(iden)m(tical)g Fz(transform)c @@ -28465,9 +28479,9 @@ (called)i(with)f Fp(assign)k Fz(=)30 b(true)p FI(,)35 b(so)g(that)h(the)f Fz(Transform)d FI(is)j(applied)g(to)h(the)p eop end -%%Page: 169 181 -TeXDict begin 169 180 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(169)390 299 y Fz(Path)p +%%Page: 170 182 +TeXDict begin 170 181 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(170)390 299 y Fz(Path)p FI(,)28 b(actually)j(aligning)f(it)f(with)g(the)g(axis)g(indicated.)41 b(If)28 b(the)h(second)g(v)m(ersion)g(is)g(called)h(with)390 408 y Fp(assign)39 b Fz(=)30 b(false)p FI(,)e(a)h(w)m(arning)f(message) @@ -28506,9 +28520,9 @@ (cycle;)630 5121 y(q.align_with_axis\(A,)42 b(B,)47 b('z'\);)630 5230 y(q.show\("q:"\);)650 5344 y FG(a)773 5340 y Fz(q:)p eop end -%%Page: 170 182 -TeXDict begin 170 181 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(170)773 299 y Fz(\(1,)47 +%%Page: 171 183 +TeXDict begin 171 182 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(171)773 299 y Fz(\(1,)47 b(0,)g(0\))g(..)h(\(0.924,)d(0.383,)i(0\))g(..)773 408 y(\(0.707,)f(0.707,)g(0\))h(..)g(\(0.383,)f(0.924,)g(0\))i(..)773 518 y(\(0,)f(1,)g(0\))g(..)h(\(-0.383,)d(0.924,)h(0\))h(..)773 @@ -28632,7 +28646,7 @@ 20 b FI(on)27 b(all)g(of)g(the)g Fz(Points)e FI(on)i Fz(points)p FI(.)37 b(See)27 b(Section)h(20.13)390 3751 y([P)m(oin)m(t)k(Reference;)f(Applying)f(T)-8 b(ransformations],)31 -b(page)g(125.)150 3988 y FH(24.12)69 b(Dra)l(wing)46 +b(page)g(126.)150 3988 y FH(24.12)69 b(Dra)l(wing)46 b(and)e(Filling)2809 4226 y FI([)p Fz(const)29 b FI(virtual)i (function])-3600 b Fc(void)39 b Fd(dra)m(w)45 b Fw(\()p Fy([)p Fz(const)30 b(Color&)e Fp(ddraw_color)38 b Fz(=)565 @@ -28657,9 +28671,9 @@ (passing)h(a)f Fz(Picture)f FI(argumen)m(t)i(without)f(ha)m(ving)h(to) 390 5340 y(sp)s(ecify)e(all)h(of)g(the)f(other)h(argumen)m(ts.)p eop end -%%Page: 171 183 -TeXDict begin 171 182 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(171)390 299 y(All)31 +%%Page: 172 184 +TeXDict begin 172 183 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(172)390 299 y(All)31 b(of)g(the)f(argumen)m(ts)h(to)g Fz(draw\(\))e FI(are)h(optional,)i(so) f(it)g(can)f(b)s(e)g(in)m(v)m(ok)m(ed)i(as)e(follo)m(ws:)630 430 y Fz(Point)46 b(A;)630 540 y(Point)g(B\(2\);)630 @@ -28801,9 +28815,9 @@ %%EndDocument @endspecial 1726 5340 a FI(Figure)31 b(121.)p eop end -%%Page: 172 184 -TeXDict begin 172 183 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(172)390 299 y Ft(ddashed)155 +%%Page: 173 185 +TeXDict begin 173 184 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(173)390 299 y Ft(ddashed)155 b FI(A)31 b Fz(string)e FI(represen)m(ting)j(a)f(\\dash)g(pattern",)h (as)f(de\014ned)f(in)g(MetaP)m(ost)3441 266 y FA(5)3481 299 y FI(.)43 b(Dash)870 408 y(patterns)33 b(ha)m(v)m(e)h(no)f(meaning) @@ -28946,17 +28960,17 @@ Fm(The)i(MET)-6 b(AF)n(ONTb)r(o)r(ok)p Fr(,)26 b(Chapter)g(4,)g(p.)g (21\013.)35 b(Hobb)n(y)-6 b(,)24 b Fm(A)h(User's)i(Man)n(ual)f(for)g (MetaP)n(ost)p Fr(,)i(p.)d(32.)p eop end -%%Page: 173 185 -TeXDict begin 173 184 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(173)870 299 y Fz(temp_picture)35 +%%Page: 174 186 +TeXDict begin 174 185 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(174)870 299 y Fz(temp_picture)35 b FI(is)j(output.)64 b(In)37 b(the)h(previous)g(examples,)j(the)d (commands)g(for)870 408 y(making)49 b(the)g(lab)s(els)f(and)g (outputting)h Fz(current_picture)44 b FI(w)m(ere)49 b(left)g(out)g(in) 870 518 y(order)36 b(to)h(reduce)g(clutter.)60 b(See)37 b(Section)g(20.19)i([P)m(oin)m(t)f(Reference;)j(Lab)s(elling],)870 -628 y(page)46 b(137,)k(and)45 b(Section)h(19.8.2)h([Picture)f +628 y(page)46 b(138,)k(and)45 b(Section)h(19.8.2)h([Picture)f (Reference;)54 b(Outputting;)e(Output)870 737 y(F)-8 -b(unctions],)31 b(page)h(106.)1110 875 y Fz(Picture)46 +b(unctions],)31 b(page)h(107.)1110 875 y Fz(Picture)46 b(temp_picture;)1110 985 y(p.draw\(temp_picture\);)1110 1094 y(A.dotlabel\("A",)e("bot",)i(temp_picture\);)1110 1204 y(B.dotlabel\("B",)e("bot",)i(temp_picture\);)1110 @@ -29051,9 +29065,9 @@ Fz(Picture)390 5199 y FI(argumen)m(t)31 b(without)f(ha)m(ving)h(to)g (sp)s(ecify)f(all)i(of)e(the)h(other)f(argumen)m(ts.)630 5340 y Fz(Point)46 b(m;)p eop end -%%Page: 174 186 -TeXDict begin 174 185 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(174)630 299 y Fz(Point)46 +%%Page: 175 187 +TeXDict begin 175 186 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(175)630 299 y Fz(Point)46 b(n\(2,)h(2\);)630 408 y(m.dotlabel\("$m$",)c("bot"\);)630 518 y(n.dotlabel\("$n$"\);)630 628 y(m.drawarrow\(n\);)1500 1630 y @beginspecial -26 @llx -29 @lly 82 @urx 86 @ury @@ -29131,7 +29145,7 @@ 3451 y(determining)41 b(whether)f(a)h Fz(Focus)f FI(has)g(a)h(go)s(o)s (d)g(\\)p Fz(up)p FI(")g(direction.)73 b(See)41 b(Section)h(21.1)g([F) -8 b(o)s(cus)390 3561 y(Reference;)31 b(Data)h(Mem)m(b)s(ers],)f(page)g -(141.)390 3693 y(In)51 b(the)i(\014rst)e(v)m(ersion,)58 +(142.)390 3693 y(In)51 b(the)i(\014rst)e(v)m(ersion,)58 b(all)53 b(of)f(the)h(argumen)m(ts)f(are)g(optional.)107 b(In)52 b(the)g(second)g(v)m(ersion,)390 3803 y Ft(ddra)m(w)p 642 3803 28 4 v 39 w(color)41 b FI(is)32 b(required)g(and)g(has)h(b)s @@ -29158,9 +29172,9 @@ b Fz("")h FI(is)870 5340 y(used,)34 b(that)g(axis)f(is)h(not)f(dra)m (wn.)49 b(This)33 b(can)g(b)s(e)g(useful)g(for)g(parallel)h(pro)5 b(jections)p eop end -%%Page: 175 187 -TeXDict begin 175 186 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(175)870 299 y(on)m(to)34 +%%Page: 176 188 +TeXDict begin 176 187 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(176)870 299 y(on)m(to)34 b(one)f(of)g(the)h(ma)5 b(jor)33 b(planes)2028 266 y FA(7)2065 299 y FI(.)48 b(In)32 b(addition,)i Fz("d")e FI(can)i(b)s(e)e(used)g(to)i(indicate)870 408 y(that)f(the)g(default)f @@ -29243,9 +29257,9 @@ b Fs(draw_axes\(\))h Fr(used)d(three)h(additional)275 5340 y(argumen)n(ts)h(for)i(this)f(purp)r(ose.)p eop end -%%Page: 176 188 -TeXDict begin 176 187 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(176)1163 1575 y @beginspecial +%%Page: 177 189 +TeXDict begin 177 188 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(177)1163 1575 y @beginspecial -150 @llx -150 @lly 39 @urx 39 @ury 1890 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.127 %!PS @@ -29371,9 +29385,9 @@ y Ft(picture)202 b FI(The)30 b Fz(Picture)p FI(,)f(on)m(to)i(whic)m(h)f (the)h Fz(Paths)e FI(and)g Fz(Labels)g FI(are)i(put.)p eop end -%%Page: 177 189 -TeXDict begin 177 188 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(177)3105 299 y([)p Fz(const)29 +%%Page: 178 190 +TeXDict begin 178 189 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(178)3105 299 y([)p Fz(const)29 b FI(function])-3600 b Fc(void)39 b Fd(\014ll)45 b Fw(\()p Fy([)p Fz(const)30 b(Color&)f Fp(ffill_color)37 b Fz(=)565 408 y(*Colors::default_color,)24 b Fy([)p Fz(Picture&)29 @@ -29486,9 +29500,9 @@ h(colors)g(for)f(dra)m(wing)390 5206 y(and)e(\014lling.)630 5340 y Fz(p.filldraw\(black,)43 b(gray,)j("",)h("pencircle)e(scaled)h (2mm"\);)p eop end -%%Page: 178 190 -TeXDict begin 178 189 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(178)1133 1275 y @beginspecial +%%Page: 179 191 +TeXDict begin 179 190 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(179)1133 1275 y @beginspecial -65 @llx -35 @lly 131 @urx 118 @ury 1960 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.130 %!PS @@ -29559,9 +29573,9 @@ y(r0.shift\(0,)g(0,)i(-2.5\);)630 5011 y(r0.filldraw\(black,)c(gray\);) 630 5121 y(r0.scale\(.25,)h(3\);)630 5230 y(r0.shift\(0,)h(0,)i (-2.5\);)630 5340 y(r0.filldraw\(\);)p eop end -%%Page: 179 191 -TeXDict begin 179 190 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(179)1225 1367 y @beginspecial +%%Page: 180 192 +TeXDict begin 180 191 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(180)1225 1367 y @beginspecial -155 @llx -82 @lly 19 @urx 82 @ury 1740 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.131 %!PS @@ -29712,9 +29726,9 @@ %%EndDocument @endspecial 1726 5243 a FI(Figure)31 b(132.)p eop end -%%Page: 180 192 -TeXDict begin 180 191 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(180)3350 299 y([F)-8 +%%Page: 181 193 +TeXDict begin 181 192 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(181)3350 299 y([F)-8 b(unction])-3599 b Fc(void)39 b Fd(un\014ll)44 b Fw(\()p Fy([)p Fz(Picture&)29 b Fp(picture)39 b Fz(=)30 b(current_picture)p Fy(])p Fw(\))390 408 y FI(Allo)s(cates)h(a)f(cop)m(y)g(of)f(the)g @@ -29804,7 +29818,7 @@ (of)g(the)f(other)h(argumen)m(ts.)390 5011 y(This)40 b(function)h(is)h(similar)f(to)i Fz(unfill\(\))c FI(\(see)j(Section)g (24.12)h([P)m(ath)f(Reference;)48 b(Dra)m(wing)390 5121 -y(and)31 b(Filling],)i(page)f(170\),)h(except)g(that)e(the)h(outline)g +y(and)31 b(Filling],)i(page)f(171\),)h(except)g(that)e(the)h(outline)g (of)f(the)h Fz(Path)e FI(will)h(b)s(e)g(\\undra)m(wn")f(using)390 5230 y(the)40 b(p)s(en)f(sp)s(eci\014ed)h(with)g(the)g Ft(pp)s(en)e FI(argumen)m(t,)44 b(or)c(MetaP)m(ost's)i @@ -29812,9 +29826,9 @@ y FI(argumen)m(t)32 b(is)f(sp)s(eci\014ed.)43 b(In)30 b(addition,)i(the)g Fz(Path)e FI(will)h(b)s(e)g(dra)m(wn)g(using)f(the) i Fz(Color)e FI(sp)s(eci\014ed)p eop end -%%Page: 181 193 -TeXDict begin 181 192 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(181)390 299 y(in)27 b(the)h +%%Page: 182 194 +TeXDict begin 182 193 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(182)390 299 y(in)27 b(the)h Ft(ddra)m(w)p 899 299 28 4 v 39 w(color)35 b FI(argumen)m(t.)40 b(Since)27 b(the)h(default)f(is)g Fz(*Colors::background_color)p FI(,)22 b(the)390 408 y Fz(Path)29 b FI(will)i(b)s(e)f(\\undra)m(wn")f @@ -29916,9 +29930,9 @@ Ft(picture)k FI(argumen)m(t)c(is)f(used)f(in)h(the)h(\014rst)e(v)m (ersion.)390 5340 y Fz(dotlabel\(\))e FI(calls)j Fz(label\(\))d FI(with)j Ft(dot)h FI(=)e Fz(true)p FI(.)p eop end -%%Page: 182 194 -TeXDict begin 182 193 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(182)390 299 y(The)31 +%%Page: 183 195 +TeXDict begin 183 194 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(183)390 299 y(The)31 b(second)g(v)m(ersion)h(is)g(con)m(v)m(enien)m(t)h(for)e(passing)h(a)f Fz(Picture)f FI(argumen)m(t)i(without)f(ha)m(ving)h(to)390 408 y(sp)s(ecify)e(all)h(of)g(the)f(other)h(argumen)m(ts.)3105 @@ -29958,7 +29972,7 @@ b Fz('v')f FI(for)h(the)g Fz(view_coordinates)p FI(,)d(whereb)m(y)i (the)i(latter)g(t)m(w)m(o)h(are)f(curren)m(tly)f(not)g(in)g(use)390 2411 y(\(see)j(Section)f(20.1)i([P)m(oin)m(t)f(Reference;)h(Data)g(Mem) -m(b)s(ers],)f(page)f(110\).)53 b(If)33 b Ft(do)p 3144 +m(b)s(ers],)f(page)f(111\).)53 b(If)33 b Ft(do)p 3144 2411 28 4 v 40 w(apply)41 b FI(is)34 b Fz(true)p FI(,)390 2521 y Fz(apply_transform\(\))c FI(is)35 b(called)i(on)e(eac)m(h)h Fz(Point)p FI(,)f(up)s(dating)f(its)h Fz(world_coordinates)c @@ -29972,7 +29986,7 @@ FI(are)i(pro)5 b(jected)22 b(using)e(the)h(v)-5 b(alues)21 b(of)h Ft(f)p FI(,)g Ft(pro)5 b(j)p FI(,)23 b(and)d Ft(factor)28 b FI(\(see)22 b(Section)g(24.16)390 2959 y([P)m(ath)37 -b(Reference;)j(Outputting],)d(page)g(187\).)60 b(Otherwise,)37 +b(Reference;)j(Outputting],)d(page)g(188\).)60 b(Otherwise,)37 b(the)f(v)-5 b(alues)37 b(curren)m(tly)f(stored)g(in)390 3068 y Fz(projective_coordinates)20 b FI(are)26 b(sho)m(wn.)38 b(The)25 b Fz(Points)f FI(and)h(connectors)i(are)f(prin)m(ted)f(out)h @@ -30001,9 +30015,9 @@ b(actual)h(use,)h(t)n(w)n(o)f Fs(Points)h Fr(are)g(sho)n(wn,)g(but)e (this)275 5340 y(causes)c(o)n(v)n(erfull)g(b)r(o)n(xes)g(in)g(T)-6 b(exinfo.)p eop end -%%Page: 183 195 -TeXDict begin 183 194 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(183)630 299 y Fz(\(0,)47 +%%Page: 184 196 +TeXDict begin 184 195 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(184)630 299 y Fz(\(0,)47 b(1.06066,)e(1.06066\))630 408 y(--)i(\(-2.30826,)e(2.24651,)h (2.24651\))630 518 y(--)h(\(-1.42658,)e(0.327762,)g(0.327762\))630 628 y(--)i(\(-3.73485,)e(-0.858092,)g(-0.858092\))630 @@ -30098,9 +30112,9 @@ %%EndDocument @endspecial 1726 5261 a FI(Figure)31 b(135.)p eop end -%%Page: 184 196 -TeXDict begin 184 195 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(184)3350 299 y([F)-8 +%%Page: 185 197 +TeXDict begin 185 196 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(185)3350 299 y([F)-8 b(unction])-3599 b Fc(void)39 b Fd(sho)m(w)p 651 299 35 5 v 51 w(colors)46 b Fw(\()p Fy([)p Fz(bool)60 b(=)30 b(false)p Fy(])p Fw(\))390 408 y FI(Sho)m(ws)j(the)h(v)-5 @@ -30155,7 +30169,7 @@ (constructor)g(taking)h(t)m(w)m(o)g Fz(Point)d FI(argumen)m(ts)i(only) -8 b(.)63 b(See)390 3714 y(Section)31 b(24.2)h([P)m(ath)f(Reference;)h (Constructors)e(and)f(Setting)j(F)-8 b(unctions],)31 -b(page)g(157.)3350 3884 y([F)-8 b(unction])-3599 b Fc(real)39 +b(page)g(158.)3350 3884 y([F)-8 b(unction])-3599 b Fc(real)39 b Fd(slop)s(e)46 b Fw(\()p Fy([)p Fz(char)30 b Fp(a)40 b Fz(=)30 b('x',)f Fy([)p Fz(char)h Fp(b)41 b Fz(=)30 b('y')p Fy(]])p Fw(\))390 3993 y FI(Returns)21 b(the)i(slop)s(e)f(of)g @@ -30187,9 +30201,9 @@ Fp(a)11 b Fz(])p FI(,)33 b(if)h Ft(a)g Fu(<)g Fz(points.size\(\))d FI(and)i(the)i Fz(Path)e FI(is)h(non-empt)m(y)-8 b(,)390 5340 y(otherwise)31 b Fz(INVALID_POINT)p FI(.)p eop end -%%Page: 185 197 -TeXDict begin 185 196 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(185)3105 299 y([)p Fz(const)29 +%%Page: 186 198 +TeXDict begin 186 197 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(186)3105 299 y([)p Fz(const)29 b FI(function])-3600 b Fc(const)40 b(Point&)g Fd(get)p 965 299 35 5 v 49 w(last)p 1192 299 V 50 w(p)s(oin)m(t)45 b Fw(\()p Fz(void)p Fw(\))390 408 y FI(Returns)39 b(the)i @@ -30208,7 +30222,7 @@ FI(corresp)s(onding)g(to)i(the)g Fz(Path)p FI(,)f(if)h(the)f(latter)i (is)e(linear.)39 b(Otherwise,)24 b Fz(INVALID_)390 1400 y(LINE)29 b FI(is)i(returned.)39 b(See)31 b(Chapter)f(22)h([Line)f -(Reference],)i(page)f(144.)2809 1622 y([)p Fz(const)e +(Reference],)i(page)f(145.)2809 1622 y([)p Fz(const)e FI(virtual)i(function])-3600 b Fc(Point)40 b Fd(get)p 613 1622 V 49 w(normal)46 b Fw(\()p Fz(void)p Fw(\))390 1732 y FI(Returns)24 b(a)i Fz(Point)e FI(represen)m(ting)i(a)g(unit)f @@ -30351,9 +30365,9 @@ (ersed)h(in)g(the)f(clo)s(c)m(kwise)j(direction.)40 b(I)26 b(hop)s(e)g(that)h(no)g(problems)390 5254 y(arise)k(from)f(this)g (discrepancy!)p eop end -%%Page: 186 198 -TeXDict begin 186 197 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(186)2809 299 y([)p Fz(const)29 +%%Page: 187 199 +TeXDict begin 187 198 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(187)2809 299 y([)p Fz(const)29 b FI(virtual)i(function])-3600 b Fc(Plane)40 b Fd(get)p 613 299 35 5 v 49 w(plane)k Fw(\()p Fz(void)p Fw(\))390 408 y FI(Creates)e(and)f(returns)f(a)i Fz(Plane)d Ft(p)44 @@ -30362,7 +30376,7 @@ FI(.)45 b(If)33 b(the)g Fz(Path)f FI(is)h(planar,)g Ft(p)p FI(.)p Fz(point)f FI(will)h(b)s(e)f(the)h Fz(Point)f FI(p)s(oin)m(ted)390 628 y(to)f(b)m(y)f Fz(this->points[0])p -FI(.)37 b(See)31 b(Chapter)e(23)j([Plane)f(Reference],)g(page)g(147.) +FI(.)37 b(See)31 b(Chapter)e(23)j([Plane)f(Reference],)g(page)g(148.) 630 849 y Fz(Point)46 b(P\(1,)h(1,)g(1\);)630 959 y(Rectangle)e(r\(P,)i (4,)g(4,)g(45,)g(20,)g(15\);)630 1068 y(Plane)f(q)i(=)f (r.get_plane\(\);)630 1178 y(q.show\("q:"\);)650 1292 @@ -30483,9 +30497,9 @@ 390 5213 y(message)d(is)f(issued,)i(but)d(the)h(rev)m(ersed)h Fz(Path)d FI(is)i(returned)f(just)h(the)g(same,)j(lea)m(ving)e Fz(*this)390 5322 y FI(unc)m(hanged.)p eop end -%%Page: 187 199 -TeXDict begin 187 198 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(187)150 299 y FH(24.16)69 +%%Page: 188 200 +TeXDict begin 188 199 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(188)150 299 y FH(24.16)69 b(Outputting)3350 578 y FI([F)-8 b(unction])-3599 b Fc(bool)39 b Fd(pro)6 b(ject)45 b Fw(\()p Fz(const)30 b(Focus&)e Fp(f)p Fz(,)i(const)f(unsigned)f(short)h Fp(proj)p Fz(,)g(real)565 @@ -30560,9 +30574,9 @@ FI(,)h(if)g(the)g(latter)h(w)m(as)390 5320 y(pro)5 b(jectable)31 b(using)f(the)h(argumen)m(ts)g(passed)e(to)j Fz(Picture::output\(\))p FI(.)p eop end -%%Page: 188 200 -TeXDict begin 188 199 bop 150 -116 a FI(Chapter)30 b(24:)41 -b(P)m(ath)31 b(Reference)2351 b(188)150 299 y FH(24.17)69 +%%Page: 189 201 +TeXDict begin 189 200 bop 150 -116 a FI(Chapter)30 b(24:)41 +b(P)m(ath)31 b(Reference)2351 b(189)150 299 y FH(24.17)69 b(In)l(tersections)3350 543 y FI([F)-8 b(unction])-3599 b Fc(bool_point)41 b Fd(in)m(tersection)p 1304 543 35 5 v 48 w(p)s(oin)m(t)k Fw(\()p Fz(const)29 b(Path&)g @@ -30590,7 +30604,7 @@ (the)h(in)m(tersection)i(p)s(oin)m(t)390 1664 y(of)45 b(the)h(traces)g(of)f(the)h(lines)f(on)g(the)h(ma)5 b(jor)45 b(planes)g(is)g(used.)85 b(See)45 b(Section)h(20.17)h([P)m(oin)m(t)390 -1773 y(Reference;)31 b(In)m(tersections],)h(page)g(133.)630 +1773 y(Reference;)31 b(In)m(tersections],)h(page)g(134.)630 1908 y Fz(Point)46 b(A\(-1,)h(-1,)g(-1\);)630 2017 y(Point)f(B\(1,)h (1,)g(1\);)630 2127 y(Path)g(p0\(A,)f(B\);)630 2237 y(Point)g(C\(-2,)h (1,)g(1\);)630 2346 y(Point)f(D\(1.75,)g(0.25,)h(0.25\);)630 @@ -30675,9 +30689,9 @@ %%EndDocument @endspecial 1726 4833 a FI(Figure)31 b(138.)p eop end -%%Page: 189 201 -TeXDict begin 189 200 bop 150 -116 a FI(Chapter)30 b(25:)41 -b(P)m(olygon)32 b(Reference)2222 b(189)150 299 y FE(25)80 +%%Page: 190 202 +TeXDict begin 190 201 bop 150 -116 a FI(Chapter)30 b(25:)41 +b(P)m(olygon)32 b(Reference)2222 b(190)150 299 y FE(25)80 b(P)l(olygon)52 b(Reference)150 913 y FI(Class)29 b Fz(Polygon)d FI(is)j(de\014ned)f(in)g(`)p Fz(polygons.web)p FI(',)e(and)i(is)h (deriv)m(ed)g(from)f Fz(Path)p FI(,)g(using)h(public)f(deriv)-5 @@ -30687,8 +30701,8 @@ b(,)48 b(the)d(classes)h Fz(Reg_Polygon)41 b FI(\(regular)46 b(p)s(olygon\))f(and)f Fz(Rectangle)e FI(are)j(de\014ned.)83 b(See)150 1503 y(Chapter)31 b(26)h([Regular)g(P)m(olygon)h(Reference],) -g(page)f(195,)h(and)e(Chapter)g(27)h([Rectangle)i(Reference],)150 -1612 y(page)d(201.)150 2186 y FH(25.1)68 b(Data)46 b(Mem)l(b)t(ers)3071 +g(page)f(196,)h(and)e(Chapter)g(27)h([Rectangle)i(Reference],)150 +1612 y(page)d(202.)150 2186 y FH(25.1)68 b(Data)46 b(Mem)l(b)t(ers)3071 2557 y FI([Priv)-5 b(ate)32 b(v)-5 b(ariable])-3599 b Fc(Point)40 b Fd(cen)m(ter)390 2666 y FI(The)24 b(cen)m(ter)i(of)e(the) h Fz(Polygon)p FI(,)f(if)g(it)h(has)f(one.)40 b(Ho)m(w)m(ev)m(er,)27 @@ -30703,7 +30717,7 @@ (Path::operator*=\(const)390 3939 y(Transform&)28 b(t\))p FI(,)37 b(except)h(that)f Fz(center)e FI(is)i(transformed)f(as)h(w)m (ell.)60 b(See)37 b(Section)h(24.4)g([P)m(ath)390 4049 -y(Reference;)31 b(Op)s(erators],)g(page)g(161.)150 4623 +y(Reference;)31 b(Op)s(erators],)g(page)g(162.)150 4623 y FH(25.3)68 b(Querying)3058 4994 y FI([Virtual)31 b(function])-3600 b Fc(const)40 b(Point&)g Fd(get)p 965 4994 35 5 v 49 w(cen)m(ter)k Fw(\()p Fz(void)p Fw(\))3105 5103 y FI([)p @@ -30714,9 +30728,9 @@ (y)e Fz(Points)p FI(,)g(a)h(w)m(arning)390 5322 y(is)30 b(issued,)g(and)g Fz(INVALID_POINT)d FI(is)j(returned.)p eop end -%%Page: 190 202 -TeXDict begin 190 201 bop 150 -116 a FI(Chapter)30 b(25:)41 -b(P)m(olygon)32 b(Reference)2222 b(190)150 299 y FH(25.4)68 +%%Page: 191 203 +TeXDict begin 191 202 bop 150 -116 a FI(Chapter)30 b(25:)41 +b(P)m(olygon)32 b(Reference)2222 b(191)150 299 y FH(25.4)68 b(A\016ne)45 b(T)-11 b(ransformations)3058 555 y FI([Virtual)31 b(function])-3600 b Fc(Transform)41 b Fd(rotate)j Fw(\()p Fz(const)29 b(real)h Fp(x)p Fz(,)f Fy([)p Fz(const)h(real)f @@ -30754,7 +30768,7 @@ Fz(Polygon)e FI(di\013er)i(from)f(the)h Fz(Path)f FI(v)m(ersions)i (only)390 1980 y(in)45 b(that)h Fz(center)e FI(is)h(transformed)g(as)g (w)m(ell.)87 b(See)46 b(Section)g(24.9)h([P)m(ath)f(Reference;)54 -b(A\016ne)390 2089 y(T)-8 b(ransformations],)31 b(page)g(164.)390 +b(A\016ne)390 2089 y(T)-8 b(ransformations],)31 b(page)g(165.)390 2236 y(Please)37 b(note,)h(that)e(the)h(classes)f(curren)m(tly)g(deriv) m(ed)g(from)f Fz(Polygon)p FI(,)h(namely)g Fz(Reg_Polygon)390 2346 y FI(and)f Fz(Rectangle)p FI(,)f(curren)m(tly)h(inherit)g(these)g @@ -30774,8 +30788,8 @@ (erations)h(on)g(a)f Fz(Rectangle)e FI(has)j(caused)f(it)h(to)h(b)s (ecome)f(non-rectangular.)39 b(See)390 3113 y(Section)28 b(26.1)h([Regular)f(P)m(olygon)g(Reference;)i(Data)e(Mem)m(b)s(ers],)g -(page)g(195,)i(and)c(Section)i(27.1)390 3222 y([Rectangle)33 -b(Reference;)e(Data)h(Mem)m(b)s(ers],)f(page)g(201.)150 +(page)g(196,)i(and)c(Section)i(27.1)390 3222 y([Rectangle)33 +b(Reference;)e(Data)h(Mem)m(b)s(ers],)f(page)g(202.)150 3510 y FH(25.5)68 b(In)l(tersections)3105 3766 y FI([)p Fz(const)29 b FI(function])-3600 b Fc(bool_point_pair)43 b Fd(in)m(tersection)p 1566 3766 V 48 w(p)s(oin)m(ts)h @@ -30813,9 +30827,9 @@ 5340 y Fs(Reg_Polygon)d Fr(and)d Fs(Rectangle)j Fr(are)e(curren)n(tly)f (the)g(only)g(classes)j(deriv)n(ed)d(from)h Fs(Polygon)p Fr(.)p eop end -%%Page: 191 203 -TeXDict begin 191 202 bop 150 -116 a FI(Chapter)30 b(25:)41 -b(P)m(olygon)32 b(Reference)2222 b(191)390 299 y(When)34 +%%Page: 192 204 +TeXDict begin 192 203 bop 150 -116 a FI(Chapter)30 b(25:)41 +b(P)m(olygon)32 b(Reference)2222 b(192)390 299 y(When)34 b(the)h Fz(Point)e FI(argumen)m(ts)i(and)f(the)g Fz(Reg_Polygon)e FI(are)j(coplanar,)h(as)f(in)f(Fig.)i(139,)h(t)m(w)m(o)390 408 y(in)m(tersection)31 b(p)s(oin)m(ts)f(are)g(p)s(ossible.)40 @@ -30884,19 +30898,19 @@ (tersection)h(p)s(oin)m(t)e(is)g(p)s(ossible,)h(and)e(it)i(can)g(b)s(e) e(either)i(an)f(in)m(tersection)i(with)390 3955 y(an)f(edge)h(of)g(the) f Fz(Reg_Polygon)p FI(,)e(or)i(lie)i(within)d(its)i(p)s(erimeter.)630 -4244 y Fz(Point)46 b(B\(mediate\(r.get_point\(3\),)41 -b(r.get_point\(4\)\)\);)630 4354 y(Point)46 b(C\(B\);)630 -4463 y(B.shift\(0,)f(2,)i(.5\);)630 4573 y(C.shift\(0,)e(-2,)i(-.5\);) -630 4682 y(Point)f(P\(-1,)h(-2,)g(-1\);)630 4792 y(Point)f(Q\(0,)h(2,)g +4244 y Fz(Point)46 b(B\(r.get_point\(3\).mediate\(r)o(.ge)o(t_po)o +(int\()o(4\)\))o(\);)630 4354 y(Point)g(C\(B\);)630 4463 +y(B.shift\(0,)f(2,)i(.5\);)630 4573 y(C.shift\(0,)e(-2,)i(-.5\);)630 +4682 y(Point)f(P\(-1,)h(-2,)g(-1\);)630 4792 y(Point)f(Q\(0,)h(2,)g (1\);)630 4902 y(B)g(*=)h(C)f(*=)g(P)h(*=)f(Q)g(*=)h(r)f(*=)g(t;)630 5011 y(bool_point_pair)d(bpp)j(=)g(r.intersection_points\(B,)41 b(C\);)630 5121 y(bpp.first.pt.dotlabel\("$)o(i_0$)o(",)h("rt"\);)630 5230 y(bpp)47 b(=)g(r.intersection_points\(P,)42 b(Q\);)630 5340 y(bpp.first.pt.dotlabel\("$)o(i_1$)o(",)g("rt"\);)p eop end -%%Page: 192 204 -TeXDict begin 192 203 bop 150 -116 a FI(Chapter)30 b(25:)41 -b(P)m(olygon)32 b(Reference)2222 b(192)1421 1717 y @beginspecial +%%Page: 193 205 +TeXDict begin 193 204 bop 150 -116 a FI(Chapter)30 b(25:)41 +b(P)m(olygon)32 b(Reference)2222 b(193)1421 1717 y @beginspecial -86 @llx -342 @lly 41 @urx -136 @ury 1270 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.140 %!PS @@ -30954,17 +30968,17 @@ %%EOF %%EndDocument - @endspecial 1726 1826 a(Figure)31 b(140.)390 2045 y(In)c(Fig.)i(141,)h -(the)d(in)m(tersection)j(p)s(oin)m(t)e(of)f Fu(r)k FI(with)c(the)h -Fz(Path)e Fu(m)i FI(from)f(with)g(do)s(es)h(not)g(lie)g(on)g(the)390 -2155 y(line)j(segmen)m(t)913 2101 y FG(\000)-45 b(\000)g(!)913 -2155 y Fu(P)13 b(Q)630 2374 y Fz(bpp)47 b(=)g -(r.intersection_points\(P,)42 b(Q\);)630 2484 y -(bpp.first.pt.dotlabel\("$)o(i$",)f("rt"\);)630 2593 -y(cout)47 b(<<)g("bpp.first.b)d(==)j(")h(<<)f(bpp.first.b)e(<<)i(endl)g -(<<)g(flush;)650 2707 y FG(a)773 2703 y Fz(bpp.first.b)e(==)i(0)1342 -4000 y @beginspecial -122 @llx -308 @lly 24 @urx -169 -@ury 1460 @rwi @setspecial + @endspecial 1726 1826 a(Figure)31 b(140.)390 2045 y(In)41 +b(Fig.)h(141,)k(the)41 b(in)m(tersection)i(p)s(oin)m(t)f(of)f +Fu(r)j FI(with)d(the)g(line)2599 1992 y FG(\000)-45 b(\000)g(!)2599 +2045 y Fu(P)13 b(Q)41 b FI(do)s(es)g(not)h(lie)g(on)f(the)h(line)390 +2155 y FC(se)-5 b(gment)40 b Fu(P)13 b(Q)p FI(.)630 2374 +y Fz(bpp)47 b(=)g(r.intersection_points\(P,)42 b(Q\);)630 +2484 y(bpp.first.pt.dotlabel\("$)o(i$",)f("rt"\);)630 +2593 y(cout)47 b(<<)g("bpp.first.b)d(==)j(")h(<<)f(bpp.first.b)e(<<)i +(endl)g(<<)g(flush;)650 2707 y FG(a)773 2703 y Fz(bpp.first.b)e(==)i(0) +1342 4000 y @beginspecial -122 @llx -308 @lly 24 @urx +-169 @ury 1460 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.141 %!PS %%BoundingBox: -122 -308 24 -169 @@ -31023,9 +31037,9 @@ y(Reg_Polygon)e(rp\(origin,)g(5,)i(5,)g(0,)g(36\);)630 5230 y(rp.shift\(0,)e(0,)i(.25\);)630 5340 y(vector)f()g(v)h(=)h (r.intersection_points\(rp)o(\);)p eop end -%%Page: 193 205 -TeXDict begin 193 204 bop 150 -116 a FI(Chapter)30 b(25:)41 -b(P)m(olygon)32 b(Reference)2222 b(193)1200 1450 y @beginspecial +%%Page: 194 206 +TeXDict begin 194 205 bop 150 -116 a FI(Chapter)30 b(25:)41 +b(P)m(olygon)32 b(Reference)2222 b(194)1200 1450 y @beginspecial -90 @llx -86 @lly 90 @urx 88 @ury 1800 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.142 %!PS @@ -31177,9 +31191,9 @@ 5121 y Fz(Point)46 b(A\(1,)h(1,)g(1\);)630 5230 y(Rectangle)e(r\(A,)i (4,)g(4\);)630 5340 y(Reg_Polygon)e(p\(A,)h(5,)i(5\);)p eop end -%%Page: 194 206 -TeXDict begin 194 205 bop 150 -116 a FI(Chapter)30 b(25:)41 -b(P)m(olygon)32 b(Reference)2222 b(194)630 299 y Fz(p.rotate\(90,)44 +%%Page: 195 207 +TeXDict begin 195 206 bop 150 -116 a FI(Chapter)30 b(25:)41 +b(P)m(olygon)32 b(Reference)2222 b(195)630 299 y Fz(p.rotate\(90,)44 b(30\);)630 408 y(p.shift\(4,)h(3,)i(3\);)630 518 y(vector)f()g (v)h(=)h(r.intersection_points\(p\))o(;)630 628 y(int)f(i)g(=)h(0;)630 737 y(for)f(\(vector::iterator)41 b(iter)47 b(=)g(v.begin\(\);) @@ -31234,16 +31248,16 @@ %%EndDocument @endspecial 1726 2896 a FI(Figure)31 b(144.)p eop end -%%Page: 195 207 -TeXDict begin 195 206 bop 150 -116 a FI(Chapter)30 b(26:)41 -b(Regular)31 b(P)m(olygon)h(Reference)1882 b(195)150 +%%Page: 196 208 +TeXDict begin 196 207 bop 150 -116 a FI(Chapter)30 b(26:)41 +b(Regular)31 b(P)m(olygon)h(Reference)1882 b(196)150 299 y FE(26)80 b(Regular)53 b(P)l(olygon)g(Reference)150 553 y FI(Class)26 b Fz(Reg_Polygon)c FI(is)k(de\014ned)e(in)i(`)p Fz(polygons.web)p FI(',)e(and)h(is)h(deriv)m(ed)f(from)h Fz(Polygon)p FI(,)e(using)i(public)150 663 y(deriv)-5 b(ation.)275 804 y(As)33 b(noted)g(ab)s(o)m(v)m(e)i(in)e(Section)h (25.4)g([P)m(olygon)h(Reference;)h(A\016ne)d(T)-8 b(ransformations],)34 -b(page)g(190,)150 914 y Fz(class)29 b(Reg_Polygon)p FI(,)f(lik)m(e)k +b(page)g(191,)150 914 y Fz(class)29 b(Reg_Polygon)p FI(,)f(lik)m(e)k Fz(class)d(Rectangle)p FI(,)g(curren)m(tly)i(inherits)f(its)h (transformation)g(functions)150 1023 y(and)k Fz(operator*=\(const)26 b(Transform&\))33 b FI(from)i Fz(Polygon)p FI(.)56 b(Consequen)m(tly)-8 @@ -31296,7 +31310,7 @@ Fz(Reg_Polygon)d FI(in)j(the)h(x-z)f(plane,)i(cen)m(tered)f(at)g(the)f (origin,)i(with)e(the)g(n)m(um)m(b)s(er)f(of)390 4729 y(sides)e(sp)s(eci\014ed)g(b)m(y)g Ft(ssides)k FI(and)c(with)g -Fz(radius)e FI(=)d Ft(ddiameter)7 b Fu(=)p FI(2.)390 +Fz(radius)23 b FI(=)i Ft(ddiameter)7 b Fu(=)p FI(2.)390 4870 y(The)35 b Fz(Reg_Polygon)d FI(is)k(rotated)g(ab)s(out)f(the)h(x,) h(y)-8 b(,)37 b(and)e(z-axes)h(in)f(that)h(order)f(b)m(y)g(the)h (angles)390 4980 y(giv)m(en)f(b)m(y)f Ft(angle)p 973 @@ -31308,9 +31322,9 @@ Ft(ccen)m(ter)p FI(.)630 5230 y Fz(Reg_Polygon)45 b(r\(origin,)g(3,)i (2.75,)g(10,)f(15,)h(12.5\);)630 5340 y(r.draw\(\);)p eop end -%%Page: 196 208 -TeXDict begin 196 207 bop 150 -116 a FI(Chapter)30 b(26:)41 -b(Regular)31 b(P)m(olygon)h(Reference)1882 b(196)1167 +%%Page: 197 209 +TeXDict begin 197 208 bop 150 -116 a FI(Chapter)30 b(26:)41 +b(Regular)31 b(P)m(olygon)h(Reference)1882 b(197)1167 1775 y @beginspecial 49 @llx -400 @lly 237 @urx -187 @ury 1880 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.145 @@ -31389,9 +31403,9 @@ g(16;)g(++i\))725 4902 y({)821 5011 y(r.set\(origin,)d(i,)j(j\);)821 5121 y(r.draw\(\);)821 5230 y(j)g(+=)h(.5;)725 5340 y(})p eop end -%%Page: 197 209 -TeXDict begin 197 208 bop 150 -116 a FI(Chapter)30 b(26:)41 -b(Regular)31 b(P)m(olygon)h(Reference)1882 b(197)950 +%%Page: 198 210 +TeXDict begin 198 209 bop 150 -116 a FI(Chapter)30 b(26:)41 +b(Regular)31 b(P)m(olygon)h(Reference)1882 b(198)950 2000 y @beginspecial -120 @llx -120 @lly 120 @urx 120 @ury 2400 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.146 @@ -31594,9 +31608,9 @@ Fz(Reg_Polygon)p FI(.)630 5230 y Fz(Point)46 b(P\(0,)h(-1,)g(1\);)630 5340 y(Reg_Polygon)e(h\(P,)h(6,)i(4,)f(15,)g(12,)g(11.5\);)p eop end -%%Page: 198 210 -TeXDict begin 198 209 bop 150 -116 a FI(Chapter)30 b(26:)41 -b(Regular)31 b(P)m(olygon)h(Reference)1882 b(198)630 +%%Page: 199 211 +TeXDict begin 199 210 bop 150 -116 a FI(Chapter)30 b(26:)41 +b(Regular)31 b(P)m(olygon)h(Reference)1882 b(199)630 299 y Fz(h.filldraw\(black,)43 b(gray\);)630 408 y(Circle)j(c)i(=)f (h.in_circle\(\);)630 518 y(c.unfilldraw\(black\);)913 2892 y @beginspecial -244 @llx -146 @lly 5 @urx 92 @ury @@ -31731,9 +31745,9 @@ y(Reg_Polygon)e(h\(P,)h(7,)i(4,)f(80,)g(2,)g(5\);)630 5230 y(h.draw\(black,)d("evenly"\);)630 5340 y(h.draw_in_circle\(\);)p eop end -%%Page: 199 211 -TeXDict begin 199 210 bop 150 -116 a FI(Chapter)30 b(26:)41 -b(Regular)31 b(P)m(olygon)h(Reference)1882 b(199)1163 +%%Page: 200 212 +TeXDict begin 200 211 bop 150 -116 a FI(Chapter)30 b(26:)41 +b(Regular)31 b(P)m(olygon)h(Reference)1882 b(200)1163 1742 y @beginspecial -150 @llx -178 @lly 39 @urx 31 @ury 1890 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.148 @@ -31939,9 +31953,9 @@ %%EndDocument @endspecial 1726 5189 a FI(Figure)31 b(149.)p eop end -%%Page: 200 212 -TeXDict begin 200 211 bop 150 -116 a FI(Chapter)30 b(26:)41 -b(Regular)31 b(P)m(olygon)h(Reference)1882 b(200)3105 +%%Page: 201 213 +TeXDict begin 201 212 bop 150 -116 a FI(Chapter)30 b(26:)41 +b(Regular)31 b(P)m(olygon)h(Reference)1882 b(201)3105 299 y([)p Fz(const)29 b FI(function])-3600 b Fc(Circle)40 b Fd(dra)m(w)p 757 299 35 5 v 50 w(out)p 973 299 V 49 w(circle)45 b Fw(\()p Fy([)p Fz(const)30 b(Color&)e Fp(ddraw_color)38 @@ -32050,15 +32064,15 @@ %%EndDocument @endspecial 1726 3293 a FI(Figure)31 b(150.)p eop end -%%Page: 201 213 -TeXDict begin 201 212 bop 150 -116 a FI(Chapter)30 b(27:)41 -b(Rectangle)33 b(Reference)2151 b(201)150 299 y FE(27)80 +%%Page: 202 214 +TeXDict begin 202 213 bop 150 -116 a FI(Chapter)30 b(27:)41 +b(Rectangle)33 b(Reference)2151 b(202)150 299 y FE(27)80 b(Rectangle)53 b(Reference)150 623 y FI(Class)34 b Fz(Rectangle)d FI(is)i(de\014ned)g(in)g(`)p Fz(rectangs.web)p FI(',)f(and)h(is)h (deriv)m(ed)g(from)f Fz(Polygon)p FI(,)f(using)i(public)150 733 y(deriv)-5 b(ation.)275 897 y(As)33 b(noted)g(ab)s(o)m(v)m(e)i(in)e (Section)h(25.4)g([P)m(olygon)h(Reference;)h(A\016ne)d(T)-8 -b(ransformations],)34 b(page)g(190,)150 1007 y Fz(class)29 +b(ransformations],)34 b(page)g(191,)150 1007 y Fz(class)29 b(Rectangle)p FI(,)g(lik)m(e)j Fz(class)d(Reg_Polygon)p FI(,)f(curren)m(tly)j(inherits)f(its)h(transformation)g(functions)150 1117 y(and)c Fz(operator*=\(const)f(Transform&\))f FI(from)j @@ -32119,9 +32133,9 @@ FI(.)630 5230 y Fz(Point)46 b(C\(-1,)h(-1,)g(1\);)630 5340 y(Rectangle)e(r\(C,)i(3,)g(4,)g(30,)g(30,)g(30\);)p eop end -%%Page: 202 214 -TeXDict begin 202 213 bop 150 -116 a FI(Chapter)30 b(27:)41 -b(Rectangle)33 b(Reference)2151 b(202)1138 1650 y @beginspecial +%%Page: 203 215 +TeXDict begin 203 214 bop 150 -116 a FI(Chapter)30 b(27:)41 +b(Rectangle)33 b(Reference)2151 b(203)1138 1650 y @beginspecial -128 @llx -187 @lly 67 @urx 11 @ury 1950 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.151 %!PS @@ -32228,41 +32242,51 @@ b(Rectangle&)f Fp(r)11 b Fw(\))390 5320 y FI(Mak)m(es)32 b(the)e Fz(Rectangle)e FI(a)j(cop)m(y)g(of)g Ft(r)p FI(.)p eop end -%%Page: 203 215 -TeXDict begin 203 214 bop 150 -116 a FI(Chapter)30 b(27:)41 -b(Rectangle)33 b(Reference)2151 b(203)150 299 y FH(27.4)68 -b(Returning)46 b(P)l(oin)l(ts)3350 545 y FI([F)-8 b(unction])-3599 +%%Page: 204 216 +TeXDict begin 204 215 bop 150 -116 a FI(Chapter)30 b(27:)41 +b(Rectangle)33 b(Reference)2151 b(204)150 299 y FH(27.4)68 +b(Returning)46 b(P)l(oin)l(ts)3350 667 y FI([F)-8 b(unction])-3599 b Fc(Point)40 b Fd(corner)45 b Fw(\()p Fz(unsigned)28 -b(short)h Fp(c)11 b Fw(\))390 655 y FI(Returns)26 b(the)h(corner)f +b(short)h Fp(c)11 b Fw(\))390 776 y FI(Returns)26 b(the)h(corner)f Fz(Point)f FI(indicated)j(b)m(y)e(the)h(argumen)m(t)g Ft(c)p FI(,)h(whic)m(h)f(m)m(ust)f(b)s(e)g(b)s(et)m(w)m(een)h(0)h(and) -390 764 y(3.)3105 953 y([)p Fz(const)h FI(function])-3600 -b Fc(Point)40 b Fd(mid)p 649 953 35 5 v 50 w(p)s(oin)m(t)k +390 886 y(3.)3105 1318 y([)p Fz(const)h FI(function])-3600 +b Fc(Point)40 b Fd(mid)p 649 1318 35 5 v 50 w(p)s(oin)m(t)k Fw(\()p Fz(unsigned)29 b(short)g Fp(m)11 b Fw(\))390 -1063 y FI(Returns)27 b(the)h(mid-p)s(oin)m(t)g(of)g(one)g(of)g(the)g +1427 y FI(Returns)27 b(the)h(mid-p)s(oin)m(t)g(of)g(one)g(of)g(the)g (sides.)40 b(The)27 b(argumen)m(t)h Ft(c)34 b FI(m)m(ust)28 -b(b)s(e)f(b)s(et)m(w)m(een)i(0)f(and)f(3.)150 1326 y -FH(27.5)68 b(Querying)3069 1572 y FI([)p Fz(const)29 -b FI(functions])-3600 b Fc(real)39 b Fd(get)p 560 1572 -V 50 w(axis)p 803 1572 V 51 w(h)45 b Fw(\()p Fz(void)p -Fw(\))150 1682 y Fc(real)39 b Fd(get)p 560 1682 V 50 -w(axis)p 803 1682 V 51 w(v)46 b Fw(\()p Fz(void)p Fw(\))390 -1791 y FI(These)30 b(functions)g(return)f Fz(axis_h)g +b(b)s(e)f(b)s(et)m(w)m(een)i(0)f(and)f(3.)150 1994 y +FH(27.5)68 b(Querying)3069 2362 y FI([)p Fz(const)29 +b FI(functions])-3600 b Fc(real)39 b Fd(get)p 560 2362 +V 50 w(axis)p 803 2362 V 51 w(h)45 b Fw(\()p Fz(void)p +Fw(\))150 2471 y Fc(real)39 b Fd(get)p 560 2471 V 50 +w(axis)p 803 2471 V 51 w(v)46 b Fw(\()p Fz(void)p Fw(\))390 +2581 y FI(These)30 b(functions)g(return)f Fz(axis_h)g FI(and)h Fz(axis_v)p FI(,)f(resp)s(ectiv)m(ely)-8 b(.)390 -1928 y(Please)60 b(note,)67 b(that)60 b Fz(axis_h)d FI(and)i +2839 y(Please)60 b(note,)67 b(that)60 b Fz(axis_h)d FI(and)i Fz(axis_v)e FI(are)j(curren)m(tly)f(not)g(recalculated,)68 -b(when)59 b(a)390 2038 y Fz(Rectangle)28 b FI(is)i(transformed.)40 -b(I)30 b(plan)g(to)h(do)g(something)g(ab)s(out)f(this)g(so)s(on.)150 -2301 y FH(27.6)68 b(Ellipses)3105 2547 y FI([)p Fz(const)29 -b FI(function])-3600 b Fc(Ellipse)40 b Fd(out)p 728 2547 -V 50 w(ellipse)k Fw(\()p Fz(void)p Fw(\))390 2656 y FI(Returns)29 -b(the)i(smallest)h Fz(Ellipse)c FI(that)j(surrounds)d(the)i -Fz(Rectangle)p FI(.)630 2793 y Fz(Point)46 b(P\(-1,)h(-1,)g(3\);)630 -2903 y(Rectangle)e(r\(P,)i(3,)g(4,)g(60,)g(30,)g(15\);)630 -3012 y(Ellipse)f(e)h(=)h(r.out_ellipse\(\);)630 3122 -y(e.filldraw\(black,)43 b(gray\);)630 3232 y(r.unfilldraw\(black\);)988 -5230 y @beginspecial -192 @llx -181 @lly 39 @urx 53 @ury -2310 @rwi @setspecial +b(when)59 b(a)390 2949 y Fz(Rectangle)28 b FI(is)i(transformed.)40 +b(I)30 b(plan)g(to)h(do)g(something)g(ab)s(out)f(this)g(so)s(on.)3105 +3380 y([)p Fz(const)f FI(function])-3600 b Fc(bool)39 +b Fd(is)p 482 3380 V 51 w(rectangular)k Fw(\()p Fz(void)p +Fw(\))390 3490 y FI(Returns)37 b Fz(true)p FI(,)i(if)f(the)h +Fz(Rectangle)c FI(is)j(rectangular,)k(otherwise)c Fz(false)p +FI(.)63 b(T)-8 b(ransformations,)390 3599 y(suc)m(h)30 +b(as)h(shearing,)f(can)h(cause)g Fz(Rectangles)c FI(to)32 +b(b)s(ecome)e(non-rectangular.)150 4166 y FH(27.6)68 +b(Ellipses)3105 4534 y FI([)p Fz(const)29 b FI(function])-3600 +b Fc(Ellipse)40 b Fd(out)p 728 4534 V 50 w(ellipse)k +Fw(\()p Fz(void)p Fw(\))390 4643 y FI(Returns)29 b(the)i(smallest)h +Fz(Ellipse)c FI(that)j(surrounds)d(the)i Fz(Rectangle)p +FI(.)630 4902 y Fz(Point)46 b(P\(-1,)h(-1,)g(3\);)630 +5011 y(Rectangle)e(r\(P,)i(3,)g(4,)g(60,)g(30,)g(15\);)630 +5121 y(Ellipse)f(e)h(=)h(r.out_ellipse\(\);)630 5230 +y(e.filldraw\(black,)43 b(gray\);)630 5340 y(r.unfilldraw\(black\);)p +eop end +%%Page: 205 217 +TeXDict begin 205 216 bop 150 -116 a FI(Chapter)30 b(27:)41 +b(Rectangle)33 b(Reference)2151 b(205)988 1950 y @beginspecial +-192 @llx -181 @lly 39 @urx 53 @ury 2310 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.152 %!PS %%BoundingBox: -192 -181 39 53 @@ -32362,19 +32386,16 @@ %%EOF %%EndDocument - @endspecial 1726 5340 a FI(Figure)31 b(152.)p eop end -%%Page: 204 216 -TeXDict begin 204 215 bop 150 -116 a FI(Chapter)30 b(27:)41 -b(Rectangle)33 b(Reference)2151 b(204)3105 299 y([)p -Fz(const)29 b FI(function])-3600 b Fc(Ellipse)40 b Fd(in)p -658 299 35 5 v 50 w(ellipse)k Fw(\()p Fz(void)p Fw(\))390 -408 y FI(Returns)29 b(the)i Fz(Ellipse)d FI(enclosed)j(b)m(y)g(the)f -Fz(Rectangle)p FI(.)630 543 y Fz(Point)46 b(P\(-1,)h(-1,)g(3\);)630 -653 y(Rectangle)e(r\(P,)i(3,)g(4,)g(60,)g(30,)g(15\);)630 -762 y(Ellipse)f(e)h(=)h(r.in_ellipse\(\);)630 872 y(r.filldraw\(black,) -43 b(gray\);)630 981 y(e.unfilldraw\(black\);)988 2978 -y @beginspecial -192 @llx -181 @lly 39 @urx 53 @ury 2310 -@rwi @setspecial + @endspecial 1726 2060 a(Figure)31 b(152.)3105 2340 y([)p +Fz(const)e FI(function])-3600 b Fc(Ellipse)40 b Fd(in)p +658 2340 35 5 v 50 w(ellipse)k Fw(\()p Fz(void)p Fw(\))390 +2449 y FI(Returns)29 b(the)i Fz(Ellipse)d FI(enclosed)j(b)m(y)g(the)f +Fz(Rectangle)p FI(.)630 2632 y Fz(Point)46 b(P\(-1,)h(-1,)g(3\);)630 +2742 y(Rectangle)e(r\(P,)i(3,)g(4,)g(60,)g(30,)g(15\);)630 +2851 y(Ellipse)f(e)h(=)h(r.in_ellipse\(\);)630 2961 y +(r.filldraw\(black,)43 b(gray\);)630 3070 y(e.unfilldraw\(black\);)988 +5115 y @beginspecial -192 @llx -181 @lly 39 @urx 53 @ury +2310 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.153 %!PS %%BoundingBox: -192 -181 39 53 @@ -32474,37 +32495,39 @@ %%EOF %%EndDocument - @endspecial 1726 3088 a FI(Figure)31 b(153.)3105 3272 -y([)p Fz(const)e FI(function])-3600 b Fc(Ellipse)40 b -Fd(dra)m(w)p 809 3272 V 50 w(out)p 1025 3272 V 50 w(ellipse)k -Fw(\()p Fy([)p Fz(const)29 b(Color&)g(ddraw_color)e(=)565 -3381 y(*Colors::default_color,)d Fy([)p Fz(string)29 -b(ddashed)g(=)h("",)f Fy([)p Fz(string)g(ppen)g(=)i("",)565 -3491 y Fy([)p Fz(Picture&)e(picture)f(=)i(current_picture)p -Fy(]]]])p Fw(\))390 3601 y FI(Dra)m(ws)j(the)f(smallest)h -Fz(Ellipse)d FI(that)j(surrounds)c(the)k Fz(Rectangle)p -FI(.)43 b(The)32 b(argumen)m(ts)g(are)h(lik)m(e)390 3710 -y(those)45 b(of)f Fz(Path::draw\(\))d FI(\(see)k(Section)g(24.12)h([P)m -(ath)f(Reference;)52 b(Dra)m(wing)45 b(and)e(Filling],)390 -3820 y(page)31 b(170\).)42 b(The)30 b(return)g(v)-5 b(alue)30 -b(is)h(the)f(surrounding)f Fz(Ellipse)p FI(.)3105 4004 + @endspecial 1726 5224 a FI(Figure)31 b(153.)p eop end +%%Page: 206 218 +TeXDict begin 206 217 bop 150 -116 a FI(Chapter)30 b(27:)41 +b(Rectangle)33 b(Reference)2151 b(206)3105 299 y([)p +Fz(const)29 b FI(function])-3600 b Fc(Ellipse)40 b Fd(dra)m(w)p +809 299 35 5 v 50 w(out)p 1025 299 V 50 w(ellipse)k Fw(\()p +Fy([)p Fz(const)29 b(Color&)g(ddraw_color)e(=)565 408 +y(*Colors::default_color,)d Fy([)p Fz(string)29 b(ddashed)g(=)h("",)f +Fy([)p Fz(string)g(ppen)g(=)i("",)565 518 y Fy([)p Fz(Picture&)e +(picture)f(=)i(current_picture)p Fy(]]]])p Fw(\))390 +628 y FI(Dra)m(ws)j(the)f(smallest)h Fz(Ellipse)d FI(that)j(surrounds)c +(the)k Fz(Rectangle)p FI(.)43 b(The)32 b(argumen)m(ts)g(are)h(lik)m(e) +390 737 y(those)45 b(of)f Fz(Path::draw\(\))d FI(\(see)k(Section)g +(24.12)h([P)m(ath)f(Reference;)52 b(Dra)m(wing)45 b(and)e(Filling],)390 +847 y(page)31 b(171\).)42 b(The)30 b(return)g(v)-5 b(alue)30 +b(is)h(the)f(surrounding)f Fz(Ellipse)p FI(.)3105 1031 y([)p Fz(const)g FI(function])-3600 b Fc(Ellipse)40 b -Fd(dra)m(w)p 809 4004 V 50 w(in)p 955 4004 V 50 w(ellipse)j +Fd(dra)m(w)p 809 1031 V 50 w(in)p 955 1031 V 50 w(ellipse)j Fw(\()p Fy([)p Fz(const)30 b(Color&)f(ddraw_color)e(=)565 -4114 y(*Colors::default_color,)d Fy([)p Fz(string)29 +1141 y(*Colors::default_color,)d Fy([)p Fz(string)29 b(ddashed)g(=)h("",)f Fy([)p Fz(string)g(ppen)g(=)i("",)565 -4223 y Fy([)p Fz(Picture&)e(picture)f(=)i(current_picture)p -Fy(]]]])p Fw(\))390 4333 y FI(Dra)m(ws)42 b(the)h Fz(Ellipse)d +1250 y Fy([)p Fz(Picture&)e(picture)f(=)i(current_picture)p +Fy(]]]])p Fw(\))390 1360 y FI(Dra)m(ws)42 b(the)h Fz(Ellipse)d FI(enclosed)i(b)m(y)g(the)h Fz(Rectangle)p FI(.)73 b(The)41 -b(argumen)m(ts)i(are)f(lik)m(e)h(those)g(of)390 4442 +b(argumen)m(ts)i(are)f(lik)m(e)h(those)g(of)390 1469 y Fz(Path::draw\(\))31 b FI(\(see)36 b(Section)f(24.12)i([P)m(ath)f -(Reference;)i(Dra)m(wing)d(and)f(Filling],)k(page)d(170\).)390 -4552 y(The)30 b(return)f(v)-5 b(alue)31 b(is)f(the)h(enclosed)g +(Reference;)i(Dra)m(wing)d(and)f(Filling],)k(page)d(171\).)390 +1579 y(The)30 b(return)f(v)-5 b(alue)31 b(is)f(the)h(enclosed)g Fz(Ellipse)p FI(.)p eop end -%%Page: 205 217 -TeXDict begin 205 216 bop 150 -116 a FI(Chapter)30 b(28:)41 +%%Page: 207 219 +TeXDict begin 207 218 bop 150 -116 a FI(Chapter)30 b(28:)41 b(Regular)31 b(Closed)g(Plane)f(Curv)m(e)g(Reference)1417 -b(205)150 299 y FE(28)80 b(Regular)53 b(Closed)f(Plane)i(Curv)l(e)e +b(207)150 299 y FE(28)80 b(Regular)53 b(Closed)f(Plane)i(Curv)l(e)e (Reference)150 522 y FI(Class)22 b Fz(Reg_Cl_Plane_Curve)16 b FI(is)22 b(de\014ned)e(in)h(`)p Fz(curves.web)p FI('.)36 b(It)21 b(is)h(deriv)m(ed)f(from)g Fz(Path)g FI(using)g @@ -32557,8 +32580,8 @@ FI(,)29 b Fz(segment\(\))p FI(,)j Fz(half\(\))p FI(,)i(and)f Fz(quarter\(\))p FI(.)48 b(See)34 b(Section)h(28.3)g([Regular)150 3155 y(Closed)f(Plane)h(Curv)m(e)e(Reference;)k(In)m(tersections],)g -(page)e(206,)i(and)c(Section)i(28.4)h([Regular)f(Closed)150 -3265 y(Plane)c(Curv)m(e)f(Reference;)h(Segmen)m(ts],)h(page)f(208.)150 +(page)e(208,)i(and)c(Section)i(28.4)h([Regular)f(Closed)150 +3265 y(Plane)c(Curv)m(e)f(Reference;)h(Segmen)m(ts],)h(page)f(210.)150 3515 y FH(28.1)68 b(Data)46 b(Mem)l(b)t(ers)2973 3757 y FI([Protected)32 b(v)-5 b(ariable])-3599 b Fc(Point)40 b Fd(cen)m(ter)390 3867 y FI(The)30 b(cen)m(ter)h(of)g(the)f @@ -32577,17 +32600,17 @@ (return)e Fz(false)p FI(.)62 b(They)38 b(are)g(in)m(tended)g(to)g(b)s (e)g(o)m(v)m(erloaded)i(b)m(y)e(mem)m(b)s(er)390 5085 y(functions)30 b(of)g(deriv)m(ed)h(classes.)p 150 5154 -1200 4 v 199 5221 a FA(1)275 5253 y Fr(If)h(y)n(ou)g(kno)n(w)g(what)g -(\\o)n(v)n(erfull)i(b)r(o)n(xes")e(are,)j(don't)d(w)n(orry)h(ab)r(out)f -(it.)55 b(It)32 b(has)g(to)h(do)f(with)h(T)3104 5269 -y(E)3147 5253 y(X's)g(line)f(and)g(page)275 5340 y(breaking)25 -b(algorithms.)36 b(If)26 b(y)n(ou)f(w)n(an)n(t)h(to)g(kno)n(w)f(more,)i -(see)f(Kn)n(uth,)f(Donald)g(E.,)i Fm(The)f(T)2891 5356 -y(E)2934 5340 y(Xb)r(o)r(ok)p Fr(.)p eop end -%%Page: 206 218 -TeXDict begin 206 217 bop 150 -116 a FI(Chapter)30 b(28:)41 +1200 4 v 199 5221 a FA(1)275 5253 y Fr(If)22 b(y)n(ou)g(don't)h(kno)n +(w)f(what)h(\\o)n(v)n(erfull)g(b)r(o)n(xes")g(are,)h(don't)f(w)n(orry)g +(ab)r(out)f(it.)34 b(It)22 b(has)h(to)g(do)f(with)h(T)3133 +5269 y(E)3176 5253 y(X's)g(line)g(and)f(page)275 5340 +y(breaking)j(algorithms.)36 b(If)26 b(y)n(ou)f(w)n(an)n(t)h(to)g(kno)n +(w)f(more,)i(see)f(Kn)n(uth,)f(Donald)g(E.,)i Fm(The)f(T)2891 +5356 y(E)2934 5340 y(Xb)r(o)r(ok)p Fr(.)p eop end +%%Page: 208 220 +TeXDict begin 208 219 bop 150 -116 a FI(Chapter)30 b(28:)41 b(Regular)31 b(Closed)g(Plane)f(Curv)m(e)g(Reference)1417 -b(206)2562 299 y([)p Fz(const)29 b FI(inline)h(virtual)h(function]) +b(208)2562 299 y([)p Fz(const)29 b FI(inline)h(virtual)h(function]) -3600 b Fc(real_triple)42 b Fd(get)p 927 299 35 5 v 49 w(co)s(e\016cien)m(ts)j Fw(\()p Fz(real)29 b Fp(Slope)p Fz(,)g(real)565 408 y Fp(v_intercept)11 b Fw(\))390 518 @@ -32666,10 +32689,10 @@ b(the)h(other)g(v)m(ersion,)h(the)f Fz(Path)f FI(argumen)m(t)h(m)m(ust) f(b)s(e)g(a)h(linear)g Fz(Path)p FI(,)g(and)g(its)p eop end -%%Page: 207 219 -TeXDict begin 207 218 bop 150 -116 a FI(Chapter)30 b(28:)41 +%%Page: 209 221 +TeXDict begin 209 220 bop 150 -116 a FI(Chapter)30 b(28:)41 b(Regular)31 b(Closed)g(Plane)f(Curv)m(e)g(Reference)1417 -b(207)390 299 y(\014rst)37 b(and)h(last)g Fz(Points)f +b(209)390 299 y(\014rst)37 b(and)h(last)g Fz(Points)f FI(are)h(passed)g(to)g(the)h(\014rst)e(v)m(ersion)h(of)g(this)g (function)g(as)g Ft(p0)45 b FI(and)38 b Ft(p1)p FI(,)390 408 y(resp)s(ectiv)m(ely)-8 b(.)390 551 y(Let)25 b Fu(C)32 @@ -32702,16 +32725,16 @@ 1507 y FA(1)2781 1493 y FI(,)g(on)f(the)h(p)s(erimeter)f(of)h Fu(e)p FI(.)630 1636 y Fz(Point)46 b(p0\(2,)h(2,)g(3\);)630 1746 y(Ellipse)f(e\(p0,)g(3,)h(4,)h(30,)e(-60,)h(-5.2\);)630 -1855 y(Point)f(p1)i(=)f(mediate\(p0,)e(e.get_point\(11\),)e(.5\);)630 -1965 y(Point)j(A)i(=)f(e.get_normal\(\);)630 2074 y(A)g(*=)h(2.5;)630 -2184 y(A.shift\(p1\);)630 2293 y(Point)e(B)i(=)f(mediate\(A,)e(p1,)i -(2\);)630 2403 y(bool_point_pair)d(bpp)j(=)g(e.intersection_points\(A,) -41 b(B\);)630 2513 y(Point)46 b(C\(0,)h(2,)g(0\);)630 -2622 y(Point)f(D\(0,)h(-3.5,)f(0\);)630 2732 y(C)h(*=)h(D.rotate\(2,)c -(0,)k(-5\);)630 2841 y(C)f(*=)h(D.shift\(e.get_point\(4\)\))o(;)630 -2951 y(bpp)f(=)g(e.intersection_points\(C,)42 b(D\);)1383 -4508 y @beginspecial -83 @llx -93 @lly 53 @urx 85 @ury -1360 @rwi @setspecial +1855 y(Point)f(p1)i(=)f(p0.mediate\(e.get_point\(1)o(1\),)41 +b(.5\);)630 1965 y(Point)46 b(A)i(=)f(e.get_normal\(\);)630 +2074 y(A)g(*=)h(2.5;)630 2184 y(A.shift\(p1\);)630 2293 +y(Point)e(B)i(=)f(A.mediate\(p1,)d(2\);)630 2403 y(bool_point_pair)g +(bpp)j(=)g(e.intersection_points\(A,)41 b(B\);)630 2513 +y(Point)46 b(C\(0,)h(2,)g(0\);)630 2622 y(Point)f(D\(0,)h(-3.5,)f(0\);) +630 2732 y(C)h(*=)h(D.rotate\(2,)c(0,)k(-5\);)630 2841 +y(C)f(*=)h(D.shift\(e.get_point\(4\)\))o(;)630 2951 y(bpp)f(=)g +(e.intersection_points\(C,)42 b(D\);)1383 4508 y @beginspecial +-83 @llx -93 @lly 53 @urx 85 @ury 1360 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.154 %!PS %%BoundingBox: -83 -93 53 85 @@ -32787,14 +32810,14 @@ b(In)34 b(this)h(case,)i(only)e(the)h(in)m(tersections)g(of)f Fu(q)j FI(with)d(the)390 4870 y(p)s(erimeter)30 b(of)h Fu(e)f FI(are)h(returned)e(b)m(y)i Fz(intersection_points\(\))p -FI(.)630 5012 y Fz(A)47 b(=)h(mediate\(p0,)d(e.get_point\(3\),)e -(1.5\);)630 5122 y(B)k(=)h(mediate\(p0,)d(e.get_point\(11\),)e(1.5\);) -630 5232 y(Path)k(q\(A,)f(B\);)630 5341 y(bpp)h(=)g +FI(.)630 5012 y Fz(A)47 b(=)h(p0.mediate\(e.get_point\(3)o(\),)42 +b(1.5\);)630 5122 y(B)47 b(=)h(p0.mediate\(e.get_point\(1)o(1\),)41 +b(1.5\);)630 5232 y(Path)47 b(q\(A,)f(B\);)630 5341 y(bpp)h(=)g (e.intersection_points\(q\);)p eop end -%%Page: 208 220 -TeXDict begin 208 219 bop 150 -116 a FI(Chapter)30 b(28:)41 +%%Page: 210 222 +TeXDict begin 210 221 bop 150 -116 a FI(Chapter)30 b(28:)41 b(Regular)31 b(Closed)g(Plane)f(Curv)m(e)g(Reference)1417 -b(208)1188 842 y @beginspecial -107 @llx -58 @lly 76 +b(210)1188 842 y @beginspecial -107 @llx -58 @lly 76 @urx 43 @ury 1830 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.155 %!PS @@ -32902,10 +32925,10 @@ (0.502658\))h(&)630 5230 y(\(1.80646,)f(0.695735,)h(0.502658\))f(--)630 5340 y(\(-0.00662541,)f(-0.888379,)h(-1.79185\))g(&)j(cycle;)p eop end -%%Page: 209 221 -TeXDict begin 209 220 bop 150 -116 a FI(Chapter)30 b(28:)41 +%%Page: 211 223 +TeXDict begin 211 222 bop 150 -116 a FI(Chapter)30 b(28:)41 b(Regular)31 b(Closed)g(Plane)f(Curv)m(e)g(Reference)1417 -b(209)1292 1258 y @beginspecial -136 @llx -227 @lly 22 +b(211)1292 1258 y @beginspecial -136 @llx -227 @lly 22 @urx -76 @ury 1580 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.156 %!PS @@ -33044,10 +33067,10 @@ Fz(segment\(\))p FI(,)e(ab)s(o)m(v)m(e.)630 5230 y Fz(Ellipse)46 b(e\(origin,)f(3,)i(5,)g(60,)g(5,)h(2.5\);)630 5340 y(Path)f(p)g(=)h (e.quarter\(180,)43 b(false\);)p eop end -%%Page: 210 222 -TeXDict begin 210 221 bop 150 -116 a FI(Chapter)30 b(28:)41 +%%Page: 212 224 +TeXDict begin 212 223 bop 150 -116 a FI(Chapter)30 b(28:)41 b(Regular)31 b(Closed)g(Plane)f(Curv)m(e)g(Reference)1417 -b(210)1413 1592 y @beginspecial -147 @llx -211 @lly -18 +b(212)1413 1592 y @beginspecial -147 @llx -211 @lly -18 @urx -20 @ury 1290 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.158 %!PS @@ -33099,71 +33122,71 @@ %%EndDocument @endspecial 1726 1701 a(Figure)31 b(158.)p eop end -%%Page: 211 223 -TeXDict begin 211 222 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(211)150 299 y FE(29)80 -b(Ellipse)52 b(Reference)150 512 y FI(Class)28 b Fz(Ellipse)e +%%Page: 213 225 +TeXDict begin 213 224 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(213)150 299 y FE(29)80 +b(Ellipse)52 b(Reference)150 506 y FI(Class)28 b Fz(Ellipse)e FI(is)j(de\014ned)e(in)h(`)p Fz(ellipses.web)p FI('.)37 b(It)28 b(is)g(deriv)m(ed)g(from)g Fz(Reg_Cl_Plane_Curve)23 -b FI(using)150 622 y(public)30 b(deriv)-5 b(ation.)150 -866 y FH(29.1)68 b(Data)46 b(Mem)l(b)t(ers)2937 1106 +b FI(using)150 615 y(public)30 b(deriv)-5 b(ation.)150 +856 y FH(29.1)68 b(Data)46 b(Mem)l(b)t(ers)2937 1095 y FI([Protected)32 b(v)-5 b(ariables])-3599 b Fc(Point)40 -b Fd(fo)s(cus0)150 1216 y Fc(Point)g Fd(fo)s(cus1)390 -1325 y FI(The)d(fo)s(ci)g(of)h(the)f Fz(Ellipse)p FI(.)60 +b Fd(fo)s(cus0)150 1204 y Fc(Point)g Fd(fo)s(cus1)390 +1314 y FI(The)d(fo)s(ci)g(of)h(the)f Fz(Ellipse)p FI(.)60 b(They)37 b(are)h(lo)s(cated)g(on)f(the)h(ma)5 b(jor)37 -b(axis)h(of)g(the)f Fz(Ellipse)e FI(at)k(a)390 1435 y(distance)31 +b(axis)h(of)g(the)f Fz(Ellipse)e FI(at)k(a)390 1424 y(distance)31 b(of)g Fz(linear_eccentricity)25 b FI(from)k Fz(center)p FI(,)g(on)i(opp)s(osite)f(sides)g(of)h(the)f(minor)g(axis.)2973 -1607 y([Protected)i(v)-5 b(ariable])-3599 b Fc(real)39 -b Fd(linear)p 689 1607 35 5 v 50 w(eccen)m(tricit)m(y)390 -1716 y FI(The)32 b(linear)h(eccen)m(tricit)m(y)i(of)e(the)g -Fz(Ellipse)d Fu(e)p FI(,)k(suc)m(h)e(that)h Fu(e)c FI(=)2626 -1642 y FG(p)p 2702 1642 273 4 v 74 x Fu(a)2750 1690 y -FA(2)2808 1716 y FG(\000)19 b Fu(b)2937 1690 y FA(2)2975 -1716 y FI(,)33 b(where)f Fu(a)g FI(and)g Fu(b)h FI(are)390 -1826 y(half)i(the)g(lengths)h(of)f(the)g(ma)5 b(jor)36 -b(and)e(minor)h(axes,)i(resp)s(ectiv)m(ely)-8 b(.)57 -b(Let)36 b Fu(h)f FI(stand)g(for)g Fz(axis_h)390 1935 -y FI(and)e Fu(v)j FI(for)d Fz(axis_v)p FI(.)47 b(If)33 +1592 y([Protected)i(v)-5 b(ariable])-3599 b Fc(real)39 +b Fd(linear)p 689 1592 35 5 v 50 w(eccen)m(tricit)m(y)390 +1728 y FI(The)32 b(linear)g(eccen)m(tricit)m(y)j(of)d(the)h +Fz(Ellipse)d Fu(e)p FI(,)j(suc)m(h)e(that)i Fu(e)28 b +FI(=)2621 1630 y Fh(q)p 2704 1630 273 4 v 98 x Fu(a)2752 +1702 y FA(2)2810 1728 y FG(\000)20 b Fu(b)2940 1702 y +FA(2)2977 1728 y FI(,)33 b(where)e Fu(a)h FI(and)g Fu(b)g +FI(are)390 1848 y(half)j(the)g(lengths)h(of)f(the)g(ma)5 +b(jor)36 b(and)e(minor)h(axes,)i(resp)s(ectiv)m(ely)-8 +b(.)57 b(Let)36 b Fu(h)f FI(stand)g(for)g Fz(axis_h)390 +1958 y FI(and)e Fu(v)j FI(for)d Fz(axis_v)p FI(.)47 b(If)33 b Fu(h)d(>)g(v)s FI(,)k(then)f Fu(a)d FI(=)f Fu(h=)p FI(2)35 b(and)d Fu(b)e FI(=)g Fu(v)s(=)p FI(2.)50 b(If)33 b Fu(v)g(>)c(h)p FI(,)35 b(then)e Fu(a)d FI(=)f Fu(v)s(=)p -FI(2)35 b(and)390 2045 y Fu(b)27 b FI(=)h Fu(h=)p FI(2.)45 +FI(2)35 b(and)390 2068 y Fu(b)27 b FI(=)h Fu(h=)p FI(2.)45 b(If)32 b Fu(h)27 b FI(=)h Fu(v)s FI(,)k(then)f(the)h Fz(Ellipse)e FI(is)i(circular)g(\(but)f(not)h(an)g(ob)5 b(ject)32 b(of)g(t)m(yp)s(e)g Fz(Circle)p FI(!\),)390 -2155 y(and)e Fu(a)25 b FI(=)g Fu(b)g FI(=)g Fu(v)s(=)p -FI(2)i(=)e Fu(h=)p FI(2.)390 2285 y(The)44 b(linear)g(eccen)m(tricit)m +2177 y(and)e Fu(a)25 b FI(=)g Fu(b)g FI(=)g Fu(v)s(=)p +FI(2)i(=)e Fu(h=)p FI(2.)390 2306 y(The)44 b(linear)g(eccen)m(tricit)m (y)j(is)d(the)g(distance)h(along)g(the)f(ma)5 b(jor)44 -b(axis)h(of)f(the)g Fz(Ellipse)e FI(from)390 2394 y Fz(center)29 +b(axis)h(of)f(the)g Fz(Ellipse)e FI(from)390 2416 y Fz(center)29 b FI(to)i Fz(focus0)d FI(and)i Fz(focus1)p FI(.)2973 -2566 y([Protected)i(v)-5 b(ariable])-3599 b Fc(real)39 -b Fd(n)m(umerical)p 896 2566 35 5 v 49 w(eccen)m(tricit)m(y)390 -2676 y FI(The)34 b(n)m(umerical)h(eccen)m(tricit)m(y)j(of)d(the)g -Fz(Ellipse)d Fu(\017)p FI(,)k(suc)m(h)e(that)h Fu(\017)e -FI(=)f Fu(e=a)h(<)f FI(1,)k(where)e Fu(e)h FI(is)g(the)390 -2785 y(linear)g(eccen)m(tricit)m(y)k(of)c(the)g Fz(Ellipse)p -FI(,)f(and)h Fu(a)f FI(is)h(half)g(the)h(length)f(of)g(the)g(ma)5 -b(jor)35 b(axis)h(of)f(the)390 2895 y Fz(Ellipse)p FI(.)2937 -3067 y([Protected)d(v)-5 b(ariables])-3599 b Fc(real)39 -b Fd(axis)p 598 3067 V 51 w(h)150 3176 y Fc(real)g Fd(axis)p -598 3176 V 51 w(v)390 3286 y FI(The)30 b(horizon)m(tal)i(and)e(v)m -(ertical)i(axes,)f(resp)s(ectiv)m(ely)-8 b(,)33 b(of)d(the)h -Fz(Ellipse)p FI(.)390 3416 y(Actually)-8 b(,)28 b(they)e(are)g(only)f -(or)h(v)m(ertical)h(horizon)m(tal)g(b)m(y)f(con)m(v)m(en)m(tion,)j -(since)c(there)h(are)g(no)f(restric-)390 3526 y(tions)31 -b(on)f(the)h(orien)m(tation)h(of)e(an)h Fz(Ellipse)p -FI(.)2725 3697 y([Protected)h(static)g(v)-5 b(ariable])-3599 -b Fc(unsigned)41 b(short)565 3807 y Fd(DEF)-13 b(A)m(UL)j(T)p -1106 3807 V 51 w(NUMBER)p 1686 3807 V 50 w(OF)p 1894 -3807 V 51 w(POINTS)390 3917 y FI(The)34 b(n)m(um)m(b)s(er)f(of)i -Fz(Points)e FI(on)h(an)h Fz(Ellipse)p FI(,)e(unless)h(another)h(n)m(um) -m(b)s(er)e(is)i(sp)s(eci\014ed)f(when)f(an)390 4026 y -Fz(Ellipse)28 b FI(constructor)j(is)g(in)m(v)m(ok)m(ed.)150 -4271 y FH(29.2)68 b(Constructors)46 b(and)e(Setting)i(F)-11 -b(unctions)2924 4511 y FI([Default)32 b(constructor])-3599 +2584 y([Protected)i(v)-5 b(ariable])-3599 b Fc(real)39 +b Fd(n)m(umerical)p 896 2584 35 5 v 49 w(eccen)m(tricit)m(y)390 +2693 y FI(The)34 b(n)m(umerical)h(eccen)m(tricit)m(y)j +Fu(\017)c FI(of)h(the)g Fz(Ellipse)p FI(,)f(suc)m(h)g(that)h +Fu(\017)e FI(=)f Fu(e=a)h(<)f FI(1,)k(where)e Fu(e)h +FI(is)g(the)390 2803 y(linear)g(eccen)m(tricit)m(y)k(of)c(the)g +Fz(Ellipse)p FI(,)f(and)h Fu(a)f FI(is)h(half)g(the)h(length)f(of)g +(the)g(ma)5 b(jor)35 b(axis)h(of)f(the)390 2913 y Fz(Ellipse)p +FI(.)2937 3080 y([Protected)d(v)-5 b(ariables])-3599 +b Fc(real)39 b Fd(axis)p 598 3080 V 51 w(h)150 3190 y +Fc(real)g Fd(axis)p 598 3190 V 51 w(v)390 3300 y FI(The)30 +b(horizon)m(tal)i(and)e(v)m(ertical)i(axes,)f(resp)s(ectiv)m(ely)-8 +b(,)33 b(of)d(the)h Fz(Ellipse)p FI(.)390 3429 y(Actually)-8 +b(,)28 b(they)e(are)g(only)f(or)h(v)m(ertical)h(horizon)m(tal)g(b)m(y)f +(con)m(v)m(en)m(tion,)j(since)c(there)h(are)g(no)f(restric-)390 +3538 y(tions)31 b(on)f(the)h(orien)m(tation)h(of)e(an)h +Fz(Ellipse)p FI(.)2725 3706 y([Protected)h(static)g(v)-5 +b(ariable])-3599 b Fc(unsigned)41 b(short)565 3816 y +Fd(DEF)-13 b(A)m(UL)j(T)p 1106 3816 V 51 w(NUMBER)p 1686 +3816 V 50 w(OF)p 1894 3816 V 51 w(POINTS)390 3925 y FI(The)34 +b(n)m(um)m(b)s(er)f(of)i Fz(Points)e FI(on)h(an)h Fz(Ellipse)p +FI(,)e(unless)h(another)h(n)m(um)m(b)s(er)e(is)i(sp)s(eci\014ed)f(when) +f(an)390 4035 y Fz(Ellipse)28 b FI(constructor)j(is)g(in)m(v)m(ok)m +(ed.)150 4276 y FH(29.2)68 b(Constructors)46 b(and)e(Setting)i(F)-11 +b(unctions)2924 4515 y FI([Default)32 b(constructor])-3599 b Fc(void)39 b Fd(Ellipse)45 b Fw(\()p Fz(void)p Fw(\))390 -4620 y FI(Creates)31 b(an)f(empt)m(y)h Fz(Ellipse)p FI(.)3224 +4624 y FI(Creates)31 b(an)f(empt)m(y)h Fz(Ellipse)p FI(.)3224 4792 y([Constructor])-3600 b Fc(void)39 b Fd(Ellipse)45 b Fw(\()p Fz(const)29 b(Point&)g Fp(ccenter)p Fz(,)f(const)h(real)g Fp(aaxis_h)p Fz(,)f(const)565 4902 y(real)h Fp(aaxis_v)p @@ -33180,9 +33203,9 @@ 5340 V 41 w(v)p FI(.)41 b(If)29 b(an)m(y)i(of)f(the)g(argumen)m(ts)g Ft(angle)p 3291 5340 V 41 w(x)p FI(,)h Ft(angle)p 3642 5340 V 41 w(y)p FI(,)p eop end -%%Page: 212 224 -TeXDict begin 212 223 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(212)390 299 y(or)25 b +%%Page: 214 226 +TeXDict begin 214 225 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(214)390 299 y(or)25 b Ft(angle)p 708 299 28 4 v 42 w(z)30 b FI(is)c(non-zero,)h(the)f Fz(Ellipse)d FI(is)j(rotated)h(ab)s(out)e(the)h(x,)g(y)-8 b(,)27 b(and)e(z-axis)i(in)e(that)h(order,)390 408 y(b)m(y)35 @@ -33326,9 +33349,9 @@ %%EndDocument @endspecial 1726 5214 a FI(Figure)31 b(160.)p eop end -%%Page: 213 225 -TeXDict begin 213 224 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(213)3061 299 y([Setting)31 +%%Page: 215 227 +TeXDict begin 215 226 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(215)3061 299 y([Setting)31 b(function])-3600 b Fc(void)39 b Fd(set)45 b Fw(\()p Fz(const)29 b(Point&)g Fp(ccenter)p Fz(,)f(const)h(real)g Fp(aaxis_h)p Fz(,)f(const)565 408 y(real)h Fp(aaxis_v)p @@ -33391,7 +33414,7 @@ b Fz(do_transform\(t,)h(true\))p FI(,)e(and)g(returns)f(the)i(latter's) h(return)d(v)-5 b(alue.)39 b(See)25 b(Section)g(29.3)390 4483 y([Ellipse)31 b(Reference;)g(P)m(erforming)g(T)-8 -b(ransformations],)31 b(page)g(213.)150 4759 y FH(29.5)68 +b(ransformations],)31 b(page)g(215.)150 4759 y FH(29.5)68 b(Lab)t(eling)3105 5011 y FI([)p Fz(const)29 b FI(function])-3600 b Fc(void)39 b Fd(lab)s(el)45 b Fw(\()p Fy([)p Fz(const)29 b(string)g Fp(pos)40 b Fz(=)30 b("top",)f Fy([)p Fz(const)g(bool)g @@ -33403,9 +33426,9 @@ 5340 y(the)c(lab)s(els.)40 b(It)31 b(is)f(curren)m(tly)h(not)f(p)s (ossible)g(to)h(ha)m(v)m(e)h(di\013eren)m(t)f(p)s(ositions)f(for)g(the) h(lab)s(els.)p eop end -%%Page: 214 226 -TeXDict begin 214 225 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(214)630 299 y Fz(Ellipse)46 +%%Page: 216 228 +TeXDict begin 216 227 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(216)630 299 y Fz(Ellipse)46 b(e\(origin,)f(6,)i(4\);)630 408 y(e.draw\(\);)630 518 y(e.label\(\);)925 3073 y @beginspecial -122 @llx -122 @lly 124 @urx 123 @ury 2460 @rwi @setspecial @@ -33510,9 +33533,9 @@ Fz(Points)d FI(are)j(dotted.)630 5121 y Fz(Ellipse)46 b(e\(origin,)f(6,)i(4\);)630 5230 y(e.draw\(\);)630 5340 y(e.dotlabel\(\);)p eop end -%%Page: 215 227 -TeXDict begin 215 226 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(215)925 2042 y @beginspecial +%%Page: 217 229 +TeXDict begin 217 228 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(217)925 2042 y @beginspecial -122 @llx -122 @lly 124 @urx 123 @ury 2460 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.162 %!PS @@ -33662,7 +33685,7 @@ FI(lo)s(cally)-8 b(,)47 b(and)42 b(call)h Fz(do_transform\(t\))p FI(.)71 b(See)43 b(Section)f(29.3)390 4069 y([Ellipse)31 b(Reference;)g(P)m(erforming)g(T)-8 b(ransformations],)31 -b(page)g(213.)390 4201 y(Rotating)e(and)f(shifting)f(an)h +b(page)g(215.)390 4201 y(Rotating)e(and)f(shifting)f(an)h Fz(Ellipse)e FI(neither)h(c)m(hange)i(the)f(size)h(of)f(an)f Fz(Ellipse)p FI(,)g(nor)g(cause)h(it)390 4311 y(to)35 b(b)s(ecome)g(non-elliptical.)55 b(Ho)m(w)m(ev)m(er,)38 @@ -33689,9 +33712,9 @@ 5320 y Fz(Ellipse)p FI(,)29 b(they)h(ma)m(y)h(still)g(ha)m(v)m(e)h (some)f(use)f(for)g(the)h(user)e(or)i(programmer.)p eop end -%%Page: 216 228 -TeXDict begin 216 227 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(216)150 299 y FH(29.7)68 +%%Page: 218 230 +TeXDict begin 218 229 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(218)150 299 y FH(29.7)68 b(Querying)3105 541 y FI([)p Fz(const)29 b FI(function])-3600 b Fc(bool)39 b Fd(is)p 482 541 35 5 v 51 w(elliptical)k Fw(\()p Fz(void)p Fw(\))390 650 y FI(Returns)29 b Fz(true)h @@ -33799,9 +33822,9 @@ Ft(s)p FI(,)g(whic)m(h)f(m)m(ust)390 5340 y(b)s(e)c(0)g(or)h(1.)41 b(If)30 b Ft(s)k FI(is)c(not)h(0)g(or)f(1,)h Fz(get_focus\(\))c FI(returns)i Fz(INVALID_POINT)p FI(.)p eop end -%%Page: 217 229 -TeXDict begin 217 228 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(217)3105 299 y([)p Fz(const)29 +%%Page: 219 231 +TeXDict begin 219 230 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(219)3105 299 y([)p Fz(const)29 b FI(function])-3600 b Fc(real)39 b Fd(get)p 560 299 35 5 v 50 w(linear)p 894 299 V 49 w(eccen)m(tricit)m(y)k Fw(\()p Fz(void)p Fw(\))390 408 y FI(Returns)29 b Fz @@ -33819,7 +33842,7 @@ FI(\014rst)i(c)m(hec)m(ks)i(if)f(the)g Fz(Ellipse)e FI(is)i(still)h (elliptical,)k(using)36 b Fz(is_elliptical\(\))390 1340 y FI(\(see)52 b(Section)f(29.7)h([Ellipse)f(Reference;)62 -b(Querying],)56 b(page)51 b(216\).)103 b(Op)s(erations)50 +b(Querying],)56 b(page)51 b(218\).)103 b(Op)s(erations)50 b(suc)m(h)h(as)390 1450 y Fz(scale\(\))32 b FI(and)h Fz(shear\(\))f FI(can)i(cause)g(an)g Fz(Ellipse)d FI(to)k(b)s(ecome)f (non-elliptical.)53 b(If)33 b(this)h(is)g(the)390 1559 @@ -33838,7 +33861,7 @@ FI(\014rst)i(c)m(hec)m(ks)i(if)f(the)g Fz(Ellipse)e FI(is)i(still)h (elliptical,)k(using)36 b Fz(is_elliptical\(\))390 2444 y FI(\(see)52 b(Section)f(29.7)h([Ellipse)f(Reference;)62 -b(Querying],)56 b(page)51 b(216\).)103 b(Op)s(erations)50 +b(Querying],)56 b(page)51 b(218\).)103 b(Op)s(erations)50 b(suc)m(h)h(as)390 2553 y Fz(scale\(\))32 b FI(and)h Fz(shear\(\))f FI(can)i(cause)g(an)g Fz(Ellipse)d FI(to)k(b)s(ecome)f (non-elliptical.)53 b(If)33 b(this)h(is)g(the)390 2663 @@ -33867,13 +33890,14 @@ 4463 y(e.shift\(2,)e(1,)i(1\);)630 4573 y(Point)f(A)i(=)f (e.get_point\(7\);)630 4682 y(cout)g(<<)g(e.location\(A\);)650 4796 y FG(a)773 4792 y Fz(0)630 4902 y(Point)f(B)i(=)f -(mediate\(center,)d(e.get_point\(2\)\);)630 5011 y(cout)j(<<)g +(center.mediate\(e.get_poin)o(t\(2\))o(\);)630 5011 y(cout)g(<<)g (e.location\(B\);)650 5125 y FG(a)773 5121 y Fz(1)630 -5230 y(Point)f(C)i(=)f(mediate\(center,)d(e.get_point\(2\),)g(1.5\);) -630 5340 y(cout)j(<<)g(e.location\(C\);)p eop end -%%Page: 218 230 -TeXDict begin 218 229 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(218)650 303 y FG(a)773 +5230 y(Point)f(C)i(=)f(center.mediate\(e.get_poin)o(t\(2\))o(,)42 +b(1.5\);)630 5340 y(cout)47 b(<<)g(e.location\(C\);)p +eop end +%%Page: 220 232 +TeXDict begin 220 231 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(220)650 303 y FG(a)773 299 y Fz(-1)630 408 y(Point)46 b(D)i(=)f(A;)630 518 y(D.shift\(-2,)e (0,)i(4\);)630 628 y(e.location\(D\);)650 741 y FG(a)773 737 y Fz(WARNING!)f(In)h(Ellipse::location\(\):)773 847 @@ -33989,9 +34013,9 @@ y(Point)f(P)i(=)f(e.angle_point\(135\);)630 5340 y (current_picture.output\(P)o(roje)o(ctio)o(ns:)o(:PAR)o(ALLE)o(L_X)o (_Z\);)p eop end -%%Page: 219 231 -TeXDict begin 219 230 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(219)1025 1467 y @beginspecial +%%Page: 221 233 +TeXDict begin 221 232 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(221)1025 1467 y @beginspecial -107 @llx -97 @lly 115 @urx 79 @ury 2220 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.165 %!PS @@ -34197,25 +34221,26 @@ 5208 y(Otherwise,)k(there)h(can)g(b)s(e)e(at)i(most)g(one.)630 5340 y Fz(Ellipse)46 b(e\(origin,)f(5,)i(7,)g(30,)g(30,)g(30\);)p eop end -%%Page: 220 232 -TeXDict begin 220 231 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(220)630 299 y Fz(e.shift\(3,)45 -b(0,)i(3\);)630 408 y(Point)f(p0)i(=)f(mediate\(e.get_center\(\),)41 -b(e.get_point\(3\)\);)630 518 y(Point)46 b(normal)g(=)i +%%Page: 222 234 +TeXDict begin 222 233 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(222)630 299 y Fz(e.shift\(3,)45 +b(0,)i(3\);)630 408 y(Point)f(p0)i(=)f(e.get_center\(\).mediate\(e)o +(.get)o(_poi)o(nt\()o(3\)\);)630 518 y(Point)f(normal)g(=)i (e.get_normal\(\);)630 628 y(Point)e(A)i(=)f(normal;)630 737 y(A)g(*=)h(2.5;)630 847 y(A.shift\(p0\);)630 956 y(Point)e(B)i(=)f(normal;)630 1066 y(B)g(*=)h(-2.5;)630 1176 y(B.shift\(p0\);)630 1285 y(bool_point_pair)c(bpp)j(=)g (e.intersection_points\(A,)41 b(B\);)630 1395 y (bpp.first.pt.dotlabel\("$)o(i_0$)o(",)h("rt"\);)630 -1504 y(Point)k(C)i(=)f(mediate\(e.get_point\(15\),)41 -b(e.get_point\(11\),)j(1.25\);)630 1614 y(Point)i(D)i(=)f -(mediate\(e.get_point\(11\),)41 b(e.get_point\(15\),)j(1.5\);)630 -1724 y(Path)j(q)g(=)h(C.draw\(D\);)630 1833 y(bpp)f(=)g -(e.intersection_points\(q\);)630 1943 y(bpp.first.pt.dotlabel\("$)o -(i_1$)o(",)42 b("llft"\);)630 2052 y(bpp.second.pt.dotlabel\(")o($i_2)o -($",)f("ulft"\);)833 3947 y @beginspecial -150 @llx -235 -@lly 118 @urx -16 @ury 2680 @rwi @setspecial +1504 y(Point)k(C)i(=)f(e.get_point\(15\).mediate\(e)o(.get)o(_poi)o +(nt\()o(11\),)41 b(1.25\);)630 1614 y(Point)46 b(D)i(=)f +(e.get_point\(11\).mediate\(e)o(.get)o(_poi)o(nt\()o(15\),)41 +b(1.5\);)630 1724 y(Path)47 b(q)g(=)h(C.draw\(D\);)630 +1833 y(bpp)f(=)g(e.intersection_points\(q\);)630 1943 +y(bpp.first.pt.dotlabel\("$)o(i_1$)o(",)42 b("llft"\);)630 +2052 y(bpp.second.pt.dotlabel\(")o($i_2)o($",)f("ulft"\);)833 +3947 y @beginspecial -150 @llx -235 @lly 118 @urx -16 +@ury 2680 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.167 %!PS %%BoundingBox: -150 -235 118 -16 @@ -34348,9 +34373,9 @@ 41 b FI(will)46 b(prin)m(t)g(information)390 5340 y(ab)s(out)30 b(the)h(in)m(tersection)h(p)s(oin)m(ts)e(to)h(standard)f(output.)p eop end -%%Page: 221 233 -TeXDict begin 221 232 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(221)390 299 y(In)25 b(Fig.)i(168,)h +%%Page: 223 235 +TeXDict begin 223 234 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(223)390 299 y(In)25 b(Fig.)i(168,)h (the)e Fz(Ellipses)d Fu(e)j FI(and)f Fu(f)35 b FI(b)s(oth)25 b(lie)i(in)e(the)h(x-z)g(plane,)h(are)f(cen)m(tered)h(at)f(the)g (origin,)390 408 y(and)k(in)m(tersect)i(at)f(four)e(p)s(oin)m(ts.)630 @@ -34472,9 +34497,9 @@ b(true\);)630 5230 y(bpq.first.pt.dotlabel\(1,)f("urt"\);)630 5340 y(bpq.second.pt.dotlabel\(2)o(,)h("ulft"\);)p eop end -%%Page: 222 234 -TeXDict begin 222 233 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(222)792 2167 y @beginspecial +%%Page: 224 236 +TeXDict begin 224 235 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(224)792 2167 y @beginspecial -232 @llx -341 @lly 46 @urx -81 @ury 2780 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.169 %!PS @@ -34589,30 +34614,30 @@ 2859 y(they)29 b(exist.)41 b(If)28 b(the)h Ft(v)m(erb)s(ose)k FI(argumen)m(t)c(is)g Fz(true)p FI(,)f(information)h(ab)s(out)f(the)h Fz(Points)e FI(is)h(prin)m(ted)390 2969 y(to)j(standard)f(output.)390 -3113 y(In)c(Fig.)i(170,)h(the)e(t)m(w)m(o)i Fz(Ellipses)24 -b FI(lie)k(in)e(sk)m(ew)i(planes.)39 b(The)26 b(plane)h(of)g($f$)h(in)m -(tersects)g(with)f($e$)390 3223 y(at)32 b(the)f Fz(Points)e -FI(lab)s(elled)i(\\1")h(and)e(\\2",)j(while)d(the)h(plane)g(of)g($e$)h -(in)m(tersects)g(with)f($f$)g(at)h(the)390 3332 y Fz(Points)d -FI(lab)s(elled)i(\\3")g(and)f(\\4".)630 3477 y Fz(Ellipse)46 -b(e\(origin,)f(5,)i(3\);)630 3587 y(Ellipse)f(f\(origin,)f(2,)i(5\);) -630 3696 y(f.rotate\(0,)e(0,)i(30\);)630 3806 y(f.rotate\(0,)e(10\);) -630 3915 y(f.rotate\(45\);)630 4025 y(f.shift\(1.5,)f(1\);)630 -4134 y(bool_point_quadruple)e(bpq)47 b(=)h(e.intersection_points\(f)o -(,)42 b(true\);)630 4244 y(bpq.first.pt.dotlabel\(1\))o(;)630 -4354 y(bpq.second.pt.dotlabel\(2)o(\);)630 4463 y -(bpq.third.pt.dotlabel\(3,)f("rt"\);)630 4573 y -(bpq.fourth.pt.dotlabel\(4)o(,)h("urt"\);)650 4686 y -FG(a)773 4682 y Fz(First)47 b(point)f(lies)h(on)g(the)g(perimeter)e(of) -i(*this.)773 4792 y(First)g(point)f(lies)h(inside)f(e.)773 +3113 y(In)f(Fig.)i(170,)g(the)f(t)m(w)m(o)h Fz(Ellipses)d +FI(lie)i(in)g(sk)m(ew)g(planes.)40 b(The)29 b(plane)h(of)g +Fu(f)39 b FI(in)m(tersects)31 b(with)e Fu(e)h FI(at)390 +3223 y(the)e Fz(Points)d FI(lab)s(elled)j(\\1")h(and)e(\\2",)j(while)d +(the)h(plane)f(of)h Fu(e)g FI(in)m(tersects)h(with)e +Fu(f)37 b FI(at)28 b(the)g Fz(Points)390 3332 y FI(lab)s(elled)j(\\3")h +(and)d(\\4".)630 3477 y Fz(Ellipse)46 b(e\(origin,)f(5,)i(3\);)630 +3587 y(Ellipse)f(f\(origin,)f(2,)i(5\);)630 3696 y(f.rotate\(0,)e(0,)i +(30\);)630 3806 y(f.rotate\(0,)e(10\);)630 3915 y(f.rotate\(45\);)630 +4025 y(f.shift\(1.5,)f(1\);)630 4134 y(bool_point_quadruple)e(bpq)47 +b(=)h(e.intersection_points\(f)o(,)42 b(true\);)630 4244 +y(bpq.first.pt.dotlabel\(1\))o(;)630 4354 y(bpq.second.pt.dotlabel\(2)o +(\);)630 4463 y(bpq.third.pt.dotlabel\(3,)f("rt"\);)630 +4573 y(bpq.fourth.pt.dotlabel\(4)o(,)h("urt"\);)650 4686 +y FG(a)773 4682 y Fz(First)47 b(point)f(lies)h(on)g(the)g(perimeter)e +(of)i(*this.)773 4792 y(First)g(point)f(lies)h(inside)f(e.)773 4902 y(Second)g(point)h(lies)f(on)h(the)g(perimeter)f(of)h(*this.)773 5011 y(Second)f(point)h(lies)f(outside)g(e.)773 5121 y(Third)h(point)f(lies)h(outside)e(*this.)773 5230 y(Third)i(point)f (lies)h(on)g(the)g(perimeter)e(of)i(e.)773 5340 y(Fourth)f(point)h (lies)f(inside)g(*this.)p eop end -%%Page: 223 235 -TeXDict begin 223 234 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(223)773 299 y Fz(Fourth)46 +%%Page: 225 237 +TeXDict begin 225 236 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(225)773 299 y Fz(Fourth)46 b(point)h(lies)f(on)h(the)g(perimeter)f(of)h(e.)1138 2464 y @beginspecial -152 @llx -220 @lly 43 @urx -31 @ury 1950 @rwi @setspecial @@ -34715,9 +34740,9 @@ y(Third)h(intersection)d(point)i(is)i(INVALID_POINT.)773 5340 y(Fourth)e(intersection)f(point)h(is)h(INVALID_POINT.)p eop end -%%Page: 224 236 -TeXDict begin 224 235 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(224)1163 1642 y @beginspecial +%%Page: 226 238 +TeXDict begin 226 237 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(226)1163 1642 y @beginspecial -152 @llx -189 @lly 37 @urx 8 @ury 1890 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.171 %!PS @@ -34791,60 +34816,61 @@ %%EOF %%EndDocument - @endspecial 1726 1751 a(Figure)31 b(171.)150 2011 y -FH(29.10)69 b(Solving)3105 2256 y FI([)p Fz(const)29 + @endspecial 1726 1751 a(Figure)31 b(171.)150 1999 y +FH(29.10)69 b(Solving)3105 2240 y FI([)p Fz(const)29 b FI(function])-3600 b Fc(real_pair)41 b Fd(solv)m(e)k Fw(\()p Fz(char)30 b Fp(axis_unknown)p Fz(,)d(real)i -Fp(known)11 b Fw(\))390 2366 y FI(Returns)41 b(t)m(w)m(o)j(p)s(ossible) +Fp(known)11 b Fw(\))390 2349 y FI(Returns)41 b(t)m(w)m(o)j(p)s(ossible) e(v)-5 b(alues)42 b(for)h(either)f(the)h(horizon)m(tal)h(or)e(v)m -(ertical)i(co)s(ordinate.)78 b(This)390 2476 y(function)33 +(ertical)i(co)s(ordinate.)78 b(This)390 2459 y(function)33 b(assumes)h(that)g(the)f Fz(Ellipse)f FI(lies)i(in)g(a)g(ma)5 b(jor)33 b(plane)h(with)f Fz(center)f FI(at)i(the)g(origin.)390 -2585 y(Co)s(de)c(that)h(calls)g(it)g(m)m(ust)g(ensure)e(that)i(these)g -(conditions)g(are)g(ful\014lled.)390 2721 y Fz(solve\(\))36 +2568 y(Co)s(de)c(that)h(calls)g(it)g(m)m(ust)g(ensure)e(that)i(these)g +(conditions)g(are)g(ful\014lled.)390 2700 y Fz(solve\(\))36 b FI(is)h(called)i(in)e Fz(Reg_Cl_Plane_Curve::inte)o(rsec)o(tio)o -(n_po)o(ints)o(\(Po)o(int,)24 b(Point,)390 2830 y(Point\))j +(n_po)o(ints)o(\(Po)o(int,)24 b(Point,)390 2809 y(Point\))j FI(and)i Fz(Reg_Cl_Plane_Curve::locat)o(ion)o(\(\))p FI(,)23 b(and)29 b(resolv)m(es)i(to)e(this)h(function,)f(when)390 -2940 y(these)44 b(functions)f(are)i(called)f(on)g(an)g +2919 y(these)44 b(functions)f(are)i(called)f(on)g(an)g Fz(Ellipse)p FI(.)78 b(Ho)m(w)m(ev)m(er,)50 b Fz(Ellipse::location\(\)) -38 b FI(o)m(v)m(er-)390 3049 y(loads)48 b Fz(Reg_Cl_Plane_Curve::loca)o +38 b FI(o)m(v)m(er-)390 3028 y(loads)48 b Fz(Reg_Cl_Plane_Curve::loca)o (tion)o(\(\))p FI(,)e(so)h(the)h(latter)h(w)m(on't)f(normally)g(b)s(e)f -(called)390 3159 y(on)36 b(an)g Fz(Ellipse)p FI(.)56 +(called)390 3138 y(on)36 b(an)g Fz(Ellipse)p FI(.)56 b(See)37 b(Section)g(28.3)g([Regular)g(Closed)f(Plane)h(Curv)m(e)f -(Reference;)k(In)m(tersec-)390 3269 y(tions],)28 b(page)f(206,)i(and)d +(Reference;)k(In)m(tersec-)390 3248 y(tions],)28 b(page)f(208,)i(and)d (Section)h(28.2)h([Regular)g(Closed)e(Plane)h(Curv)m(e)f(Reference;)j -(Querying],)390 3378 y(page)i(205.)3105 3565 y([)p Fz(const)e +(Querying],)390 3357 y(page)i(207.)3105 3532 y([)p Fz(const)e FI(function])-3600 b Fc(real_triple)42 b Fd(get)p 927 -3565 35 5 v 49 w(co)s(e\016cien)m(ts)j Fw(\()p Fz(real)29 +3532 35 5 v 49 w(co)s(e\016cien)m(ts)j Fw(\()p Fz(real)29 b Fp(Slope)p Fz(,)g(real)g Fp(v_intercept)11 b Fw(\))390 -3674 y FI(Let)40 b Fu(x)g FI(and)f Fu(y)j FI(stand)e(for)f(the)h(x)g +3641 y FI(Let)40 b Fu(x)g FI(and)f Fu(y)j FI(stand)e(for)f(the)h(x)g (and)f(y-co)s(ordinates)i(of)f(a)g(p)s(oin)m(t)g(on)f(an)h(ellipse)g -(in)g(the)g(x-y)390 3784 y(plane,)32 b Fu(a)f FI(for)h(half)f(of)h(the) +(in)g(the)g(x-y)390 3751 y(plane,)32 b Fu(a)f FI(for)h(half)f(of)h(the) f(horizon)m(tal)i(axis)f(\()p Fz(axis_h)p Fu(=)p FI(2\),)g(and)f Fu(b)g FI(for)g(half)h(of)f(the)h(v)m(ertical)h(axis)390 -3893 y(\()p Fz(axis_v)p Fu(=)p FI(2\).)40 b(F)-8 b(urther,)29 -b(let)g Fu(y)f FI(=)d Fu(mx)16 b FI(+)f Fu(i)29 b FI(b)s(e)e(the)i -(equation)g(of)f(a)h(line)g(in)f(the)g(x-y)g(plane,)h(where)390 -4003 y Fu(m)h FI(is)h(the)f(slop)s(e)g(and)g Fu(i)h FI(the)f(y-in)m -(tercept.)390 4138 y(This)44 b(function)g(returns)g(the)g(co)s -(e\016cien)m(ts)j(of)d(the)h(quadratic)g(equation)h(that)f(results)f -(from)390 4248 y(replacing)31 b Fu(y)i FI(with)d Fu(mx)20 -b FI(+)g Fu(i)31 b FI(in)f(the)g(equation)i(for)e(the)g(ellipse)1598 -4459 y Fu(x)1650 4421 y FA(2)1687 4459 y Fu(=a)1780 4421 -y FA(2)1838 4459 y FI(+)20 b Fu(y)1977 4421 y FA(2)2014 -4459 y Fu(=b)2098 4421 y FA(2)2161 4459 y FI(=)25 b(1)390 -4670 y(namely)1371 4781 y Fu(x)1423 4743 y FA(2)1460 -4781 y Fu(=a)1553 4743 y FA(2)1611 4781 y FI(+)20 b(\()p -Fu(mx)g FI(+)g Fu(i)p FI(\))2046 4743 y FA(2)2084 4781 -y Fu(=b)2168 4743 y FA(2)2226 4781 y FG(\000)g FI(1)26 -b(=)f(0)999 4952 y FG(\021)g FI(\()p Fu(b)1169 4914 y -FA(2)1206 4952 y Fu(x)20 b FI(+)g Fu(a)1417 4914 y FA(2)1455 -4952 y Fu(m)1535 4914 y FA(2)1572 4952 y FI(\))p Fu(x)1659 -4914 y FA(2)1716 4952 y FI(+)g(2)p Fu(a)1900 4914 y FA(2)1938 -4952 y Fu(imx)g FI(+)g(\()p Fu(a)2295 4914 y FA(2)2333 -4952 y Fu(i)2364 4914 y FA(2)2422 4952 y FG(\000)g Fu(a)2561 -4914 y FA(2)2598 4952 y Fu(b)2637 4914 y FA(2)2674 4952 +3860 y(\()p Fz(axis_v)p Fu(=)p FI(2\).)390 3992 y(F)-8 +b(urther,)37 b(let)g Fu(y)h FI(=)c Fu(mx)24 b FI(+)g +Fu(i)36 b FI(b)s(e)f(the)i(equation)f(of)h(a)f(line)g(in)g(the)g(x-y)h +(plane,)g(where)f Fu(m)g FI(is)g(the)390 4101 y(slop)s(e)30 +b(and)g Fu(i)h FI(the)f(y-in)m(tercept.)390 4233 y(This)44 +b(function)g(returns)g(the)g(co)s(e\016cien)m(ts)j(of)d(the)h +(quadratic)g(equation)h(that)f(results)f(from)390 4342 +y(replacing)31 b Fu(y)i FI(with)d Fu(mx)20 b FI(+)g Fu(i)31 +b FI(in)f(the)g(equation)i(for)e(the)g(ellipse)1598 4522 +y Fu(x)1650 4484 y FA(2)1687 4522 y Fu(=a)1780 4484 y +FA(2)1838 4522 y FI(+)20 b Fu(y)1977 4484 y FA(2)2014 +4522 y Fu(=b)2098 4484 y FA(2)2161 4522 y FI(=)25 b(1)390 +4702 y(namely)1371 4811 y Fu(x)1423 4774 y FA(2)1460 +4811 y Fu(=a)1553 4774 y FA(2)1611 4811 y FI(+)20 b(\()p +Fu(mx)g FI(+)g Fu(i)p FI(\))2046 4774 y FA(2)2084 4811 +y Fu(=b)2168 4774 y FA(2)2226 4811 y FG(\000)g FI(1)26 +b(=)f(0)999 4966 y FG(\021)g FI(\()p Fu(b)1169 4929 y +FA(2)1206 4966 y Fu(x)20 b FI(+)g Fu(a)1417 4929 y FA(2)1455 +4966 y Fu(m)1535 4929 y FA(2)1572 4966 y FI(\))p Fu(x)1659 +4929 y FA(2)1716 4966 y FI(+)g(2)p Fu(a)1900 4929 y FA(2)1938 +4966 y Fu(imx)g FI(+)g(\()p Fu(a)2295 4929 y FA(2)2333 +4966 y Fu(i)2364 4929 y FA(2)2422 4966 y FG(\000)g Fu(a)2561 +4929 y FA(2)2598 4966 y Fu(b)2637 4929 y FA(2)2674 4966 y FI(\))26 b(=)f(0)p Fu(:)390 5121 y FI(The)43 b(co)s(e\016cien)m(ts)i (are)f(returned)f(in)g(the)h Fz(real_triple)d FI(in)i(the)h(order)f (one)h(w)m(ould)f(exp)s(ect:)390 5230 y Fz(r.first)37 @@ -34853,15 +34879,15 @@ FI(and)f Fz(r.third)f FI(of)j(the)f(constan)m(t)h(term)390 5340 y(\()p Fu(x)477 5307 y FA(0)540 5340 y FG(\021)25 b FI(1\).)p eop end -%%Page: 225 237 -TeXDict begin 225 236 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(225)390 299 y Fz(get_coefficients\(\)) +%%Page: 227 239 +TeXDict begin 227 238 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(227)390 299 y Fz(get_coefficients\(\)) 136 b FI(is)k(called)i(in)e Fz(Reg_Cl_Plane_Curve::inte)o(rsec)o(tion)o (_)390 408 y(points\(Point,)27 b(Point,)h(Point\))p FI(,)51 b(and)d(resolv)m(es)h(to)f(this)g(function,)53 b(when)46 b(the)j(latter)g(is)390 518 y(called)d(on)f(an)g Fz(Ellipse)p FI(.)83 b(See)45 b(Section)h(28.3)g([Regular)g(Closed)f(Plane)g(Curv)m -(e)g(Reference;)390 628 y(In)m(tersections],)32 b(page)f(206.)150 +(e)g(Reference;)390 628 y(In)m(tersections],)32 b(page)f(208.)150 888 y FH(29.11)69 b(Rectangles)3105 1133 y FI([)p Fz(const)29 b FI(function])-3600 b Fc(Rectangle)41 b Fd(out)p 833 1133 35 5 v 50 w(rectangle)i Fw(\()p Fz(void)p Fw(\))390 @@ -35028,9 +35054,9 @@ %%EndDocument @endspecial 1726 5340 a FI(Figure)31 b(173.)p eop end -%%Page: 226 238 -TeXDict begin 226 237 bop 150 -116 a FI(Chapter)30 b(29:)41 -b(Ellipse)31 b(Reference)2277 b(226)3105 299 y([)p Fz(const)29 +%%Page: 228 240 +TeXDict begin 228 239 bop 150 -116 a FI(Chapter)30 b(29:)41 +b(Ellipse)31 b(Reference)2277 b(228)3105 299 y([)p Fz(const)29 b FI(function])-3600 b Fc(Rectangle)41 b Fd(dra)m(w)p 914 299 35 5 v 49 w(out)p 1129 299 V 50 w(rectangle)j Fw(\()p Fy([)p Fz(const)30 b(Color&)e Fp(ddraw_color)38 @@ -35044,7 +35070,7 @@ Fz(Path::draw\(\))p FI(.)56 b(The)36 b(return)f(v)-5 b(alue)37 b(is)g(the)f(surrounding)e Fz(Rectangle)p FI(.)57 b(See)37 b(Section)g(24.12)390 847 y([P)m(ath)31 b(Reference;)h(Dra)m -(wing)f(and)f(Filling],)i(page)f(170.)630 981 y Fz(Ellipse)46 +(wing)f(and)f(Filling],)i(page)f(171.)630 981 y Fz(Ellipse)46 b(e\(origin,)f(2.5,)i(5,)g(10,)g(12,)g(15.5\);)630 1091 y(e.shift\(-1,)e(1,)i(1\);)630 1200 y(e.draw_out_rectangle\(bla)o(ck,) 41 b("evenly",)46 b("pencircle)f(scaled)h(.3mm"\);)1433 @@ -35130,7 +35156,7 @@ y Fz(Path::draw\(\))p FI(.)37 b(The)28 b(return)g(v)-5 b(alue)30 b(is)f(the)g(enclosed)g Fz(Rectangle)p FI(.)38 b(See)29 b(Section)h(24.12)h([P)m(ath)390 2955 y(Reference;)g(Dra)m -(wing)h(and)d(Filling],)j(page)g(170.)630 3089 y Fz(Ellipse)46 +(wing)h(and)d(Filling],)j(page)g(171.)630 3089 y Fz(Ellipse)46 b(e\(origin,)f(3.5,)i(6,)g(10,)g(12,)g(15.5\);)630 3199 y(e.shift\(-1,)e(1,)i(1\);)630 3309 y(e.draw_in_rectangle\(blac)o(k,)42 b("evenly",)j("pencircle)g(scaled)h(.3mm"\);)1388 4204 @@ -35186,9 +35212,9 @@ %%EndDocument @endspecial 1726 4314 a FI(Figure)31 b(175.)p eop end -%%Page: 227 239 -TeXDict begin 227 238 bop 150 -116 a FI(Chapter)30 b(30:)41 -b(Circle)31 b(Reference)2309 b(227)150 299 y FE(30)80 +%%Page: 229 241 +TeXDict begin 229 240 bop 150 -116 a FI(Chapter)30 b(30:)41 +b(Circle)31 b(Reference)2309 b(229)150 299 y FE(30)80 b(Circle)52 b(Reference)150 543 y FI(Class)30 b Fz(Circle)f FI(is)h(de\014ned)f(in)h(`)p Fz(circles.web)p FI('.)38 b(It)31 b(is)f(deriv)m(ed)h(from)e Fz(Ellipse)p FI(,)g(using)h(public)g @@ -35256,9 +35282,9 @@ b Fd(op)s(erator=)45 b Fw(\()p Fz(const)30 b(Circle&)e Fp(c)11 b Fw(\))390 5340 y FI(Mak)m(es)32 b(the)e Fz(Circle)f FI(a)i(cop)m(y)g(of)f Ft(c)p FI(.)p eop end -%%Page: 228 240 -TeXDict begin 228 239 bop 150 -116 a FI(Chapter)30 b(30:)41 -b(Circle)31 b(Reference)2309 b(228)2872 299 y([Assignmen)m(t)31 +%%Page: 230 242 +TeXDict begin 230 241 bop 150 -116 a FI(Chapter)30 b(30:)41 +b(Circle)31 b(Reference)2309 b(230)2872 299 y([Assignmen)m(t)31 b(op)s(erator])-3599 b Fc(Circle&)40 b Fd(op)s(erator=)45 b Fw(\()p Fz(const)30 b(Ellipse&)e Fp(e)11 b Fw(\))390 408 y FI(Mak)m(es)27 b(the)f Fz(Circle)f FI(a)h(cop)m(y)h(of)f @@ -35341,9 +35367,9 @@ %%EndDocument @endspecial 1726 5260 a FI(Figure)31 b(176.)p eop end -%%Page: 229 241 -TeXDict begin 229 240 bop 150 -116 a FI(Chapter)30 b(30:)41 -b(Circle)31 b(Reference)2309 b(229)3119 299 y([Inline)30 +%%Page: 231 243 +TeXDict begin 231 242 bop 150 -116 a FI(Chapter)30 b(30:)41 +b(Circle)31 b(Reference)2309 b(231)3119 299 y([Inline)30 b(function])-3600 b Fc(real)39 b Fd(get)p 560 299 35 5 v 50 w(radius)45 b Fw(\()p Fz(void)p Fw(\))390 408 y FI(Returns)29 b Fz(radius)p FI(.)3119 593 y([Inline)h(function])-3600 @@ -35444,9 +35470,9 @@ %%EndDocument @endspecial 1726 4903 a FI(Figure)31 b(177.)p eop end -%%Page: 230 242 -TeXDict begin 230 241 bop 150 -116 a FI(Chapter)30 b(31:)41 -b(P)m(attern)32 b(Reference)2239 b(230)150 299 y FE(31)80 +%%Page: 232 244 +TeXDict begin 232 243 bop 150 -116 a FI(Chapter)30 b(31:)41 +b(P)m(attern)32 b(Reference)2239 b(232)150 299 y FE(31)80 b(P)l(attern)53 b(Reference)150 572 y FI(There)26 b(is)h(no)f(curren)m (tly)h(no)f(class)i(\\)p Fz(Pattern)p FI(".)38 b(If)26 b(it)h(turns)f(out)g(to)i(b)s(e)e(useful)g(for)g(this)g(purp)s(ose,)g @@ -35457,11 +35483,11 @@ (e)e(pro)5 b(jections)36 b(of)g(plane)f(tesselations)j(and)d(other)g(t) m(w)m(o-)150 1337 y(dimensional)i(patterns.)59 b(These)37 b(can)g(b)s(e)f(used)g(for)g(dra)m(wing)h(tiled)g(\015o)s(ors)f(and)g -(other)h(arc)m(hitectural)150 1447 y(items,)30 b(among)g(other)g -(things.)40 b(While)30 b(patterns)f(can)h(b)s(e)e(generated)i(b)m(y)g -(using)e(the)i(basic)f(facilities)j(of)150 1556 y FB(C)214 -1548 y FA(+)-8 b(+)382 1556 y FI(and)34 b(3DLDF)i(without)f(an)m(y)h -(sp)s(ecially)f(de\014ned)f(functions,)i(it)g(can)f(b)s(e)f(useful)g +(other)h(arc)m(hitectural)150 1447 y(items,)h(among)f(other)g(things.) +58 b(While)37 b(patterns)f(can)g(b)s(e)g(generated)h(b)m(y)f(using)g +(the)g(basic)h(facilities)150 1556 y(of)30 b FB(C)317 +1548 y FA(+)-8 b(+)445 1556 y FI(and)30 b(3DLDF)h(without)g(an)m(y)f +(sp)s(ecially)h(de\014ned)e(functions,)h(it)h(can)f(b)s(e)g(useful)f (to)i(de\014ne)e(suc)m(h)150 1666 y(functions.)275 1813 y(3DLDF)45 b(curren)m(tly)f(con)m(tains)h(only)g(one)f(function)g(for)g (dra)m(wing)g(patterns)g(based)f(on)h(a)h(plane)150 1923 @@ -35514,9 +35540,9 @@ Ft(double)p 1340 5230 V 40 w(ro)m(ws)870 5340 y FI(Default:)42 b(10.)f(The)30 b(n)m(um)m(b)s(er)f(of)i(double)f(ro)m(ws)g(dra)m(wn.)p eop end -%%Page: 231 243 -TeXDict begin 231 242 bop 150 -116 a FI(Chapter)30 b(31:)41 -b(P)m(attern)32 b(Reference)2239 b(231)390 299 y Fz(unsigned)28 +%%Page: 233 245 +TeXDict begin 233 244 bop 150 -116 a FI(Chapter)30 b(31:)41 +b(P)m(attern)32 b(Reference)2239 b(233)390 299 y Fz(unsigned)28 b(short)h Ft(ro)m(w)p 1221 299 28 4 v 40 w(shift)870 408 y FI(Default:)55 b(2.)61 b(F)-8 b(or)38 b Ft(ro)m(w)p 1694 408 V 40 w(shift)h FG(6)p FI(=)d(0,)k(the)d(n)m(um)m(b)s(er)f(of)h @@ -35579,9 +35605,9 @@ (the)h(pattern,)g(lo)s(oking)390 5340 y(in)42 b(the)g(direction)h(of)g (the)f(bac)m(k)h(of)f(the)h(pattern,)i(the)e(\014rst)e(ro)m(w)i(of)f (hexagons)h(will)g(app)s(ear)p eop end -%%Page: 232 244 -TeXDict begin 232 243 bop 150 -116 a FI(Chapter)30 b(31:)41 -b(P)m(attern)32 b(Reference)2239 b(232)390 299 y(larger)34 +%%Page: 234 246 +TeXDict begin 234 245 bop 150 -116 a FI(Chapter)30 b(31:)41 +b(P)m(attern)32 b(Reference)2239 b(234)390 299 y(larger)34 b(than)e(the)h(ro)m(ws)g(b)s(ehind)e(it.)49 b(Therefore,)33 b(in)g(order)f(for)h(the)g(p)s(ersp)s(ectiv)m(e)g(pro)5 b(jection)34 b(of)390 408 y(the)g(pattern)g(to)h(\014ll)f(a)g @@ -38126,9 +38152,9 @@ 5340 y(rolling)35 b(circle)h(the)f(roulette)h(is)f(a)g Ft(cycloid)p FI(.)55 b(When)34 b(the)h(circle)h(rolls)f(on)g(the)g (outside)g(of)p eop end -%%Page: 233 245 -TeXDict begin 233 244 bop 150 -116 a FI(Chapter)30 b(31:)41 -b(P)m(attern)32 b(Reference)2239 b(233)390 299 y(another)30 +%%Page: 235 247 +TeXDict begin 235 246 bop 150 -116 a FI(Chapter)30 b(31:)41 +b(P)m(attern)32 b(Reference)2239 b(235)390 299 y(another)30 b(circle)g(the)g(corresp)s(onding)e(curv)m(es)i(are)f(the)h Ft(epitro)s(c)m(hoids)j FI(and)c Ft(epicycloids)t FI(;)i(if)390 408 y(it)g(rolls)g(on)f(the)g(inside,)h(they)f(are)h(the)g @@ -38204,9 +38230,9 @@ h(dra)m(wing)g(the)h(epicycloids.)74 b(One)870 5340 y Fz(Color)29 b FI(is)h(used)g(for)g(eac)m(h)i(iteration.)p eop end -%%Page: 234 246 -TeXDict begin 234 245 bop 150 -116 a FI(Chapter)30 b(31:)41 -b(P)m(attern)32 b(Reference)2239 b(234)390 299 y(Example:)630 +%%Page: 236 248 +TeXDict begin 236 247 bop 150 -116 a FI(Chapter)30 b(31:)41 +b(P)m(attern)32 b(Reference)2239 b(236)390 299 y(Example:)630 728 y Fz(epicycloid_pattern_1\(5,)41 b(3,)48 b(3,)f(1,)g(72\);)630 838 y(current_picture.output\(P)o(roje)o(ctio)o(ns:)o(:PAR)o(ALLE)o (L_X)o(_Z\);)467 4153 y @beginspecial -178 @llx -178 @@ -43509,9 +43535,9 @@ b(-10,)g(2,)g(5,)g(10,)g(10\);)630 5230 y(epicycloid_pattern_1\(5,)41 b(3,)48 b(3,)f(1,)g(36\);)630 5340 y(current_picture.output\(\))o(;)p eop end -%%Page: 235 247 -TeXDict begin 235 246 bop 150 -116 a FI(Chapter)30 b(31:)41 -b(P)m(attern)32 b(Reference)2239 b(235)163 2233 y @beginspecial +%%Page: 237 249 +TeXDict begin 237 248 bop 150 -116 a FI(Chapter)30 b(31:)41 +b(P)m(attern)32 b(Reference)2239 b(237)163 2233 y @beginspecial -296 @llx -337 @lly 133 @urx -69 @ury 4290 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.181 %!PS @@ -46187,9 +46213,9 @@ %%EndDocument @endspecial 1726 2343 a(Figure)31 b(181.)p eop end -%%Page: 236 248 -TeXDict begin 236 247 bop 150 -116 a FI(Chapter)30 b(32:)41 -b(Solid)31 b(Reference)2344 b(236)150 299 y FE(32)80 +%%Page: 238 250 +TeXDict begin 238 249 bop 150 -116 a FI(Chapter)30 b(32:)41 +b(Solid)31 b(Reference)2344 b(238)150 299 y FE(32)80 b(Solid)53 b(Reference)150 586 y FI(Class)29 b Fz(Solid)f FI(is)h(de\014ned)f(in)h(`)p Fz(solids.web)p FI('.)38 b(It's)29 b(deriv)m(ed)g(from)g Fz(Shape)f FI(using)g(public)h(deriv)-5 @@ -46206,7 +46232,7 @@ j(on)e(the)g(free)g(store)g(b)m(y)g Fz(create_new_solid\(\))26 b FI(\(see)31 b(Sec-)390 1698 y(tion)g(32.2)h([Solid)e(Reference;)h (Constructors)f(and)g(Setting)h(F)-8 b(unctions],)31 -b(page)g(237\),)h(or)f(analo-)390 1807 y(gous)g(functions)e(for)i +b(page)g(239\),)h(or)f(analo-)390 1807 y(gous)g(functions)e(for)i (deriv)m(ed)f(classes.)2973 2027 y([Protected)i(v)-5 b(ariable])-3599 b Fc(Point)40 b Fd(cen)m(ter)390 2137 y FI(The)35 b(cen)m(ter)i(of)f(the)g Fz(Solid)p FI(.)56 @@ -46253,10 +46279,10 @@ b(as)g(argumen)m(ts)h(in)f(the)g(functions)f Fz(get_shape_ptr\(\))d FI(and)k Fz(get_shape_center\(\))21 b FI(\(see)390 5317 y(Section)31 b(32.8)h([Returning)e(Elemen)m(ts)h(and)f(Information],)h -(page)g(238\).)p eop end -%%Page: 237 249 -TeXDict begin 237 248 bop 150 -116 a FI(Chapter)30 b(32:)41 -b(Solid)31 b(Reference)2344 b(237)150 299 y FH(32.2)68 +(page)g(240\).)p eop end +%%Page: 239 251 +TeXDict begin 239 250 bop 150 -116 a FI(Chapter)30 b(32:)41 +b(Solid)31 b(Reference)2344 b(239)150 299 y FH(32.2)68 b(Constructors)46 b(and)e(Setting)i(F)-11 b(unctions)2924 565 y FI([Default)32 b(constructor])-3599 b Fc(void)39 b Fd(Solid)45 b Fw(\()p Fz(void)p Fw(\))390 675 y FI(Creates)31 @@ -46298,7 +46324,7 @@ Fz(Solids)e FI(on)m(to)i Fz(Picture::shapes)c FI(in)j(the)h(dra)m(wing) g(and)390 4414 y(\014lling)c(functions)f(for)g Fz(Solid)p FI(.)43 b(See)31 b(Section)i(32.13)g([Solid)f(Reference;)h(Dra)m(wing)f -(and)f(Filling],)390 4524 y(page)g(242.)150 4837 y FH(32.6)68 +(and)f(Filling],)390 4524 y(page)g(244.)150 4837 y FH(32.6)68 b(Setting)46 b(Mem)l(b)t(ers)2823 5103 y FI([Inline)30 b(virtual)h(function])-3600 b Fc(bool)39 b Fd(set)p 548 5103 V 50 w(on)p 719 5103 V 50 w(free)p 957 5103 V 50 @@ -46309,9 +46335,9 @@ 5322 y(use)25 b(in)f(a)i(\\)p Fz(create_new\(\))p FI(")c(template)27 b(function,)f(whic)m(h)e(I)h(ha)m(v)m(en't)h(b)s(een)f(able)g(to)h(get) g(to)g(w)m(ork.)p eop end -%%Page: 238 250 -TeXDict begin 238 249 bop 150 -116 a FI(Chapter)30 b(32:)41 -b(Solid)31 b(Reference)2344 b(238)150 299 y FH(32.7)68 +%%Page: 240 252 +TeXDict begin 240 251 bop 150 -116 a FI(Chapter)30 b(32:)41 +b(Solid)31 b(Reference)2344 b(240)150 299 y FH(32.7)68 b(Querying)2809 549 y FI([)p Fz(const)29 b FI(virtual)i(function])-3600 b Fc(bool)39 b Fd(is)p 482 549 35 5 v 51 w(on)p 654 549 V 50 w(free)p 892 549 V 50 w(store)45 b Fw(\()p Fz(void)p @@ -46554,9 +46580,9 @@ %%EndDocument @endspecial 1726 5340 a FI(Figure)31 b(182.)p eop end -%%Page: 239 251 -TeXDict begin 239 250 bop 150 -116 a FI(Chapter)30 b(32:)41 -b(Solid)31 b(Reference)2344 b(239)390 299 y(Note)31 b(that)g(this)f +%%Page: 241 253 +TeXDict begin 241 252 bop 150 -116 a FI(Chapter)30 b(32:)41 +b(Solid)31 b(Reference)2344 b(241)390 299 y(Note)31 b(that)g(this)f (function)g(will)g(ha)m(v)m(e)h(to)g(b)s(e)f(c)m(hanged,)h(if)f(new)f (v)m(ectors)j(of)e Fz(Shape)f FI(p)s(oin)m(ters)h(are)390 408 y(added)g(to)h Fz(class)e(Solid)p FI(!)2773 575 y([)p @@ -46660,29 +46686,31 @@ (function])-3600 b Fc(Shape*)40 b Fd(get)p 665 4354 V 50 w(shap)s(e)p 1000 4354 V 49 w(ptr)45 b Fw(\()p Fz(const)29 b(unsigned)f(short)565 4463 y(shape_type,)f(const)i(unsigned)f(short)h -(s)p Fw(\))390 4573 y FI(Copies)39 b(one)h(of)f(the)g(ob)5 -b(jects)40 b(b)s(elonging)g(to)g(the)f Fz(Solid)p FI(,)h(and)f(returns) -f(a)h(p)s(oin)m(ter)g(to)h Fz(Shape)390 4682 y FI(that)g(p)s(oin)m(ts)g -(to)g(the)g(cop)m(y)-8 b(.)70 b(The)39 b(ob)5 b(ject)40 -b(is)g(found)e(b)m(y)i(dereferencing)g(one)f(of)h(the)g(p)s(oin)m(ters) -390 4792 y(on)d(one)g(of)h(the)f(v)m(ectors)h(of)g(p)s(oin)m(ters)f(b)s -(elonging)g(to)h(the)f(co)s(deSolid.)61 b(Curren)m(tly)-8 -b(,)39 b(these)e(v)m(ec-)390 4902 y(tors)30 b(are)g Fz(circles)p -FI(,)d Fz(ellipses)p FI(,)h Fz(paths)p FI(,)h Fz(rectangles)p -FI(,)e(and)h Fz(reg_polygons)p FI(.)38 b(The)28 b(argumen)m(t)390 -5011 y Ft(shap)s(e)p 622 5011 28 4 v 39 w(t)m(yp)s(e)g -FI(sp)s(eci\014es)23 b(the)g(v)m(ector,)j(and)c(the)h(argumen)m(t)h -Ft(s)i FI(sp)s(eci\014es)d(whic)m(h)f(elemen)m(t)i(of)f(the)g(v)m(ec-) -390 5121 y(tor)31 b(should)e(b)s(e)h(accessed.)42 b(The)29 -b(follo)m(wing)j Fz(public)d(static)f(const)h FI(data)i(mem)m(b)s(ers)f -(of)g Fz(Solid)390 5230 y FI(can)e(\(and)g(probably)g(should\))f(b)s(e) -h(passed)f(as)i(the)f Ft(shap)s(e)p 2369 5230 V 39 w(t)m(yp)s(e)34 -b FI(argumen)m(t:)40 b Fz(CIRCLE)p FI(,)27 b Fz(ELLIPSE)p -FI(,)390 5340 y Fz(PATH)p FI(,)i Fz(RECTANGLE)p FI(,)g(and)g -Fz(REG_POLYGON)p FI(.)p eop end -%%Page: 240 252 -TeXDict begin 240 251 bop 150 -116 a FI(Chapter)30 b(32:)41 -b(Solid)31 b(Reference)2344 b(240)390 299 y(This)33 b(function)g(w)m +(s)p Fw(\))390 4573 y FI(Copies)d(one)f(of)h(the)g(ob)5 +b(jects)26 b(b)s(elonging)g(to)g(the)g Fz(Solid)p FI(,)f(and)g(returns) +f(a)i(p)s(oin)m(ter)g(to)g Fz(Shape)e FI(that)390 4682 +y(p)s(oin)m(ts)j(to)h(the)f(cop)m(y)-8 b(.)41 b(The)26 +b(ob)5 b(ject)28 b(is)f(found)f(b)m(y)h(dereferencing)g(one)g(of)g(the) +h(p)s(oin)m(ters)f(on)f(one)i(of)390 4792 y(the)g(v)m(ectors)i(of)e(p)s +(oin)m(ters)g(b)s(elonging)g(to)g(the)h Fz(Solid)p FI(.)38 +b(Curren)m(tly)-8 b(,)28 b(these)h(v)m(ectors)g(are)g +Fz(circles)p FI(,)390 4902 y Fz(ellipses)p FI(,)h Fz(paths)p +FI(,)g Fz(rectangles)p FI(,)g(and)g Fz(reg_polygons)p +FI(.)41 b(The)31 b(argumen)m(t)h Ft(shap)s(e)p 3306 4902 +28 4 v 39 w(t)m(yp)s(e)37 b FI(sp)s(ec-)390 5011 y(i\014es)43 +b(the)h(v)m(ector,)49 b(and)43 b(the)g(argumen)m(t)h +Ft(s)j FI(sp)s(eci\014es)c(whic)m(h)h(elemen)m(t)h(of)e(the)h(v)m +(ector)h(should)390 5121 y(b)s(e)34 b(accessed.)56 b(The)35 +b(follo)m(wing)h Fz(public)29 b(static)g(const)k FI(data)j(mem)m(b)s +(ers)e(of)h Fz(Solid)f FI(can)h(\(and)390 5230 y(probably)k(should\))g +(b)s(e)h(passed)f(as)h(the)g Ft(shap)s(e)p 2065 5230 +V 39 w(t)m(yp)s(e)45 b FI(argumen)m(t:)61 b Fz(CIRCLE)p +FI(,)40 b Fz(ELLIPSE)p FI(,)h Fz(PATH)p FI(,)390 5340 +y Fz(RECTANGLE)p FI(,)28 b(and)i Fz(REG_POLYGON)p FI(.)p +eop end +%%Page: 242 254 +TeXDict begin 242 253 bop 150 -116 a FI(Chapter)30 b(32:)41 +b(Solid)31 b(Reference)2344 b(242)390 299 y(This)33 b(function)g(w)m (as)h(originally)h(in)m(tended)e(to)h(b)s(e)f(called)i(within)e(the)g (more)h(sp)s(ecialized)h(func-)390 408 y(tions)i(in)g(this)g(section,)j (namely:)55 b Fz(get_circle_ptr\(\))p FI(,)34 b Fz(get_ellipse_ptr\(\)) @@ -46957,9 +46985,9 @@ (scaled)g(4",)h("pencircle)e(scaled)h(1mm"\);)630 5230 y(Reg_Polygon)f(A)i(=)h(*d.get_reg_polygon_ptr\()o(5\);)630 5340 y(A.fill\(gray\);)p eop end -%%Page: 241 253 -TeXDict begin 241 252 bop 150 -116 a FI(Chapter)30 b(32:)41 -b(Solid)31 b(Reference)2344 b(241)1192 1442 y @beginspecial +%%Page: 243 255 +TeXDict begin 243 254 bop 150 -116 a FI(Chapter)30 b(32:)41 +b(Solid)31 b(Reference)2344 b(243)1192 1442 y @beginspecial -121 @llx -152 @lly 61 @urx 21 @ury 1820 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.185 %!PS @@ -47126,14 +47154,14 @@ (apply_transform\(\))25 b FI(on)31 b(all)g(of)f(the)h Fz(Shapes)e FI(b)s(elonging)h(to)h(the)g Fz(Solid)p FI(.)p eop end -%%Page: 242 254 -TeXDict begin 242 253 bop 150 -116 a FI(Chapter)30 b(32:)41 -b(Solid)31 b(Reference)2344 b(242)150 299 y FH(32.12)69 +%%Page: 244 256 +TeXDict begin 244 255 bop 150 -116 a FI(Chapter)30 b(32:)41 +b(Solid)31 b(Reference)2344 b(244)150 299 y FH(32.12)69 b(Outputting)150 544 y FI(The)31 b(functions)h(in)f(this)h(section)h (are)f(are)g(called,)i(directly)f(or)e(indirectly)-8 b(,)34 b(b)m(y)d Fz(Picture::output\(\))p FI(.)150 654 y(See)g(Section)g(19.8)h([Picture)f(Reference;)g(Outputting],)f(page)h -(105.)3058 840 y([Virtual)g(function])-3600 b Fc(void)39 +(106.)3058 840 y([Virtual)g(function])-3600 b Fc(void)39 b Fd(output)44 b Fw(\()p Fz(void)p Fw(\))390 950 y FI(W)-8 b(rites)41 b(the)e(MetaP)m(ost)j(co)s(de)e(for)f(dra)m(wing,)i (\014lling,)h(\014lldra)m(wing,)g(undra)m(wing,)f(un\014lling,)g(or)390 @@ -47204,9 +47232,9 @@ (appropriately)-8 b(,)34 b(so)f(that)g(they)g(can)g(b)s(e)f(dra)m(wn,)g (when)g Fz(Picture::output\(\))c FI(is)390 5340 y(called.)p eop end -%%Page: 243 255 -TeXDict begin 243 254 bop 150 -116 a FI(Chapter)30 b(32:)41 -b(Solid)31 b(Reference)2344 b(243)390 299 y(The)29 b +%%Page: 245 257 +TeXDict begin 245 256 bop 150 -116 a FI(Chapter)30 b(32:)41 +b(Solid)31 b(Reference)2344 b(245)390 299 y(The)29 b Fz(Colors)g FI(used)g(for)h(dra)m(wing)g(the)g(v)-5 b(arious)30 b Fz(Paths)p FI(,)f Fz(Circles)p FI(,)f Fz(Ellipses)p FI(,)g(etc.,)k(b)s(elonging)390 408 y(to)38 b(the)g Fz(Solid)e @@ -47297,9 +47325,9 @@ b Fp(picture)39 b Fz(=)30 b(current_picture)p Fy(])p Fw(\))390 5340 y FI(Un\014lls)g(the)g Fz(Solid)p FI(.)p eop end -%%Page: 244 256 -TeXDict begin 244 255 bop 150 -116 a FI(Chapter)30 b(32:)41 -b(Solid)31 b(Reference)2344 b(244)390 299 y(This)29 b(function)h(allo)s +%%Page: 246 258 +TeXDict begin 246 257 bop 150 -116 a FI(Chapter)30 b(32:)41 +b(Solid)31 b(Reference)2344 b(246)390 299 y(This)29 b(function)h(allo)s (cates)i(a)f(new)e Fz(Solid)g FI(mak)m(es)i(it)f(a)g(cop)m(y)h(of)f Fz(*this)p FI(,)f(and)h(puts)f(a)h(p)s(oin)m(ter)g(to)390 408 y(it)k(on)m(to)g Ft(picture)p FI(.)p Fz(shapes)p @@ -47343,9 +47371,9 @@ Fz(Shape)e FI(that)i(a)g Fz(Solid)e FI(can)i(con)m(tain,)i(e.g.,)g Fz(Ellipse)p FI(,)c Fz(Circle)p FI(,)h(etc.,)j(o)m(v)m(erloads)390 2922 y Fz(Path::clear\(\))p FI(.)p eop end -%%Page: 245 257 -TeXDict begin 245 256 bop 150 -116 a FI(Chapter)30 b(33:)41 -b(F)-8 b(aced)32 b(Solid)e(Reference)2086 b(245)150 299 +%%Page: 247 259 +TeXDict begin 247 258 bop 150 -116 a FI(Chapter)30 b(33:)41 +b(F)-8 b(aced)32 b(Solid)e(Reference)2086 b(247)150 299 y FE(33)80 b(F)-13 b(aced)53 b(Solid)g(Reference)150 533 y FI(Class)40 b Fz(Solid_Faced)d FI(is)j(de\014ned)f(in)g(`)p Fz(solfaced.web)p FI('.)67 b(It)40 b(is)g(deriv)m(ed)g(from)g @@ -47355,8 +47383,8 @@ (class.)150 887 y(The)21 b(classes)h Fz(Cuboid)d FI(and)i Fz(Polyhedron)d FI(are)j(deriv)m(ed)g(from)g Fz(Solid_Faced)p FI(.)35 b(See)21 b(Chapter)f(34)i([Cub)s(oid)150 996 -y(Reference],)32 b(page)f(246,)h(and)d(Chapter)h(35)h([P)m(olyhedron)g -(Reference],)h(page)f(248.)150 1254 y FH(33.1)68 b(Data)46 +y(Reference],)32 b(page)f(248,)h(and)d(Chapter)h(35)h([P)m(olyhedron)g +(Reference],)h(page)f(250.)150 1254 y FH(33.1)68 b(Data)46 b(Mem)l(b)t(ers)2973 1498 y FI([Protected)32 b(v)-5 b(ariable])-3599 b Fc(unsigned)41 b(short)e Fd(faces)390 1607 y FI(The)30 b(n)m(um)m(b)s(er)f(of)h(faces)i(of)e(the)h Fz(Solid_Faced)p @@ -47367,9 +47395,9 @@ Fc(unsigned)41 b(short)e Fd(edges)390 2195 y FI(The)30 b(n)m(um)m(b)s(er)f(of)h(edges)h(of)g(the)f Fz(Solid_Faced)p FI(.)p eop end -%%Page: 246 258 -TeXDict begin 246 257 bop 150 -116 a FI(Chapter)30 b(34:)41 -b(Cub)s(oid)29 b(Reference)2251 b(246)150 299 y FE(34)80 +%%Page: 248 260 +TeXDict begin 248 259 bop 150 -116 a FI(Chapter)30 b(34:)41 +b(Cub)s(oid)29 b(Reference)2251 b(248)150 299 y FE(34)80 b(Cub)t(oid)52 b(Reference)150 860 y FI(Class)43 b Fz(Cuboid)f FI(is)h(de\014ned)g(in)g(`)p Fz(cuboid.web)p FI('.)77 b(It)44 b(is)f(deriv)m(ed)g(from)g Fz(Solid_Faced)e FI(using)i(public) @@ -47409,9 +47437,9 @@ 4987 y FI(comes)i(to)g(lie)h(at)f Ft(c)p FI(.)630 5230 y Fz(Point)46 b(P\(-3,)h(-2,)g(12\);)630 5340 y(Cuboid)f(c\(P,)h(3,)g (5,)g(2.93,)f(35,)h(10,)g(60\);)p eop end -%%Page: 247 259 -TeXDict begin 247 258 bop 150 -116 a FI(Chapter)30 b(34:)41 -b(Cub)s(oid)29 b(Reference)2251 b(247)575 2758 y @beginspecial +%%Page: 249 261 +TeXDict begin 249 260 bop 150 -116 a FI(Chapter)30 b(34:)41 +b(Cub)s(oid)29 b(Reference)2251 b(249)575 2758 y @beginspecial -334 @llx -334 @lly -4 @urx -3 @ury 3300 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.186 %!PS @@ -47524,9 +47552,9 @@ b(The)39 b(old)g(con)m(ten)m(ts)i(of)f Fz(*this)d FI(are)j(deallo)s (cated)h(\(where)390 4505 y(necessary\))31 b(and)f(discarded.)p eop end -%%Page: 248 260 -TeXDict begin 248 259 bop 150 -116 a FI(Chapter)30 b(35:)41 -b(P)m(olyhedron)31 b(Reference)2090 b(248)150 299 y FE(35)80 +%%Page: 250 262 +TeXDict begin 250 261 bop 150 -116 a FI(Chapter)30 b(35:)41 +b(P)m(olyhedron)31 b(Reference)2090 b(250)150 299 y FE(35)80 b(P)l(olyhedron)52 b(Reference)150 502 y FI(Class)25 b Fz(Polyhedron)e FI(is)i(de\014ned)g(in)g(`)p Fz(polyhed.web)p FI('.)36 b(It)26 b(is)f(deriv)m(ed)g(from)g Fz(Solid_Faced)e @@ -47569,7 +47597,7 @@ 3394 y(can)23 b(b)s(e)g(created)h(using)f Fz(Cuboid)e FI(with)i(equal)h(width,)g(heigh)m(t,)i(and)c(depth)h(argumen)m(ts)g (\(see)h(Chapter)f(34)150 3503 y([Cub)s(oid)28 b(Reference],)k(page)e -(246\).)43 b Fz(Octahedron)27 b FI(is)j(missing)f(at)i(the)f(momen)m +(248\).)43 b Fz(Octahedron)27 b FI(is)j(missing)f(at)i(the)f(momen)m (t,)h(but)e(I)h(plan)f(to)i(add)e(it)150 3613 y(so)s(on.)150 3818 y Fx(35.2.1)63 b(T)-10 b(etrahedron)150 4056 y FI(Class)25 b Fz(Tetrahedron)e FI(is)i(de\014ned)f(in)h(`)p Fz(polyhed.web)p @@ -47578,10 +47606,10 @@ y Fx(35.2.1.1)63 b(Data)40 b(Mem)m(b)s(ers)2456 4609 y FI([Protected)32 b(static)g Fz(const)d FI(v)-5 b(ariable])-3599 b Fc(real)39 b Fd(dihedral)p 817 4609 V 49 w(angle)390 -4718 y FI(The)27 b(angle)i(in)e(radians)g(b)s(et)m(w)m(een)i(the)e -(faces)i(of)f(the)f Fz(Tetrahedron)p FI(,)f(namely)i(70)3184 -4685 y Fi(\016)3223 4718 y FI(32)3313 4685 y Fi(0)3337 -4718 y FI(.)40 b(Only)27 b(the)390 4828 y(Platonic)i(p)s(olyhedra)d(ha) +4718 y FI(The)25 b(angle)i(in)e(radians)g(b)s(et)m(w)m(een)h(the)g +(faces)g(of)g(the)g Fz(Tetrahedron)p FI(,)d(namely)j(70)3161 +4685 y Fi(\016)3226 4718 y FI(32)3316 4685 y Fi(0)3340 +4718 y FI(.)39 b(Only)25 b(the)390 4828 y(Platonic)k(p)s(olyhedra)d(ha) m(v)m(e)j(a)e(single)h(dihedral)f(angle,)i(so)f Fz(dihedral_angle)23 b FI(is)k(not)h(a)g(mem)m(b)s(er)390 4938 y(of)c Fz(Polyhedron)p FI(.)35 b(This)23 b(means)h(that)g(it)g(m)m(ust)g(b)s(e)f(a)h(mem)m(b)s @@ -47591,9 +47619,9 @@ V 49 w(radius)390 5322 y FI(The)30 b(radius)f(of)i(the)f(circle)i (enclosing)f(a)g(triangular)g(face)g(of)g(the)f Fz(Tetrahedron)p FI(.)p eop end -%%Page: 249 261 -TeXDict begin 249 260 bop 150 -116 a FI(Chapter)30 b(35:)41 -b(P)m(olyhedron)31 b(Reference)2090 b(249)150 299 y Fx(35.2.1.2)63 +%%Page: 251 263 +TeXDict begin 251 262 bop 150 -116 a FI(Chapter)30 b(35:)41 +b(P)m(olyhedron)31 b(Reference)2090 b(251)150 299 y Fx(35.2.1.2)63 b(Constructors)42 b(and)f(Setting)g(F)-10 b(unctions)2924 540 y FI([Default)32 b(constructor])-3599 b Fc(void)39 b Fd(T)-10 b(etrahedron)44 b Fw(\()p Fz(void)p Fw(\))390 @@ -47695,9 +47723,9 @@ y Fz(Point)46 b(P\(1,)h(0,)g(1\);)630 5230 y(Tetrahedron)e(t\(P,)h (2.75,)h(30,)g(32.5,)f(20\);)630 5340 y(t.draw\(\);)p eop end -%%Page: 250 262 -TeXDict begin 250 261 bop 150 -116 a FI(Chapter)30 b(35:)41 -b(P)m(olyhedron)31 b(Reference)2090 b(250)575 2758 y +%%Page: 252 264 +TeXDict begin 252 263 bop 150 -116 a FI(Chapter)30 b(35:)41 +b(P)m(olyhedron)31 b(Reference)2090 b(252)575 2758 y @beginspecial -334 @llx -334 @lly -4 @urx -3 @ury 3300 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.188 @@ -47799,12 +47827,11 @@ 4807 y(++iter\))725 4917 y({)821 5027 y(\(**iter\).draw\(\);)725 5136 y(})p 150 5241 1200 4 v 199 5308 a FA(1)275 5340 y Fr(Albrec)n(h)n(t)24 b(D)r(\177)-41 b(urer)26 b(in)n(v)n(en)n(ted)f -(this)g(metho)r(d)h(of)g(constructing)g(p)r(olyhedra.)35 -b(!)-28 b(\030)-6 b(!)35 b(TO)25 b(DO:)h(Find)f(citation!)p +(this)g(metho)r(d)h(of)g(constructing)g(p)r(olyhedra.)p eop end -%%Page: 251 263 -TeXDict begin 251 262 bop 150 -116 a FI(Chapter)30 b(35:)41 -b(P)m(olyhedron)31 b(Reference)2090 b(251)1163 1567 y +%%Page: 253 265 +TeXDict begin 253 264 bop 150 -116 a FI(Chapter)30 b(35:)41 +b(P)m(olyhedron)31 b(Reference)2090 b(253)1163 1567 y @beginspecial -93 @llx -93 @lly 96 @urx 95 @ury 1890 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.189 @@ -47909,7 +47936,7 @@ b(See)26 b(Section)g(35.2.1.2)i([P)m(olyhedron)390 2141 y(Reference;)g(Regular)e(Platonic)i(P)m(olyhedra;)g(T)-8 b(etrahedron;)27 b(Constructors)e(and)g(Setting)i(F)-8 -b(unc-)390 2251 y(tions],)26 b(page)f(249.)40 b(The)24 +b(unc-)390 2251 y(tions],)26 b(page)f(251.)40 b(The)24 b(constructor)g(starts)h(with)f(the)g(net)h(and)e(rotates)j(three)e(of) g(the)h(triangles)390 2360 y(ab)s(out)32 b(the)h(adjacen)m(t)g(v)m (ertices)h(of)f(the)f(middle)g(triangle.)48 b(Curren)m(tly)-8 @@ -47952,9 +47979,9 @@ b(sewing)i(the)f(mo)s(del)h(together)g(\(I'v)m(e)h(had)e(go)s(o)s(d)g (results)g(with)g(sewing\).)630 5340 y Fz(Tetrahedron::draw_net\(3,)41 b(true\);)p eop end -%%Page: 252 264 -TeXDict begin 252 263 bop 150 -116 a FI(Chapter)30 b(35:)41 -b(P)m(olyhedron)31 b(Reference)2090 b(252)1125 1500 y +%%Page: 254 266 +TeXDict begin 254 265 bop 150 -116 a FI(Chapter)30 b(35:)41 +b(P)m(olyhedron)31 b(Reference)2090 b(254)1125 1500 y @beginspecial -99 @llx -73 @lly 99 @urx 107 @ury 1980 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.190 @@ -48958,8 +48985,8 @@ 3044 y FI([Protected)32 b(static)g Fz(const)d FI(v)-5 b(ariable])-3599 b Fc(real)39 b Fd(dihedral)p 817 3044 35 5 v 49 w(angle)390 3153 y FI(The)30 b(angle)h(b)s(et)m(w)m(een)g -(the)g(faces)g(of)g(the)f Fz(Dodecahedron)p FI(,)d(namely)k(116)2881 -3120 y Fi(\016)2921 3153 y FI(34)3011 3120 y Fi(0)3060 +(the)f(faces)h(of)g(the)f Fz(Dodecahedron)p FI(,)d(namely)k(116)2880 +3120 y Fi(\016)2950 3153 y FI(34)3040 3120 y Fi(0)3094 3153 y FI(=)25 b Fu(\031)e FG(\000)d FI(arctan)q(\(2\).)2973 3340 y([Protected)32 b(v)-5 b(ariable])-3599 b Fc(real)39 b Fd(p)s(en)m(tagon)p 865 3340 V 49 w(radius)390 3450 @@ -48990,9 +49017,9 @@ FI(.)630 5121 y Fz(Point)46 b(P\(-1,)h(-2,)g(4\);)630 5230 y(Dodecahedron)d(d\(P,)j(3,)g(12.5,)g(16,)g(2\);)630 5340 y(d.draw\(\);)p eop end -%%Page: 253 265 -TeXDict begin 253 264 bop 150 -116 a FI(Chapter)30 b(35:)41 -b(P)m(olyhedron)31 b(Reference)2090 b(253)1163 1575 y +%%Page: 255 267 +TeXDict begin 255 266 bop 150 -116 a FI(Chapter)30 b(35:)41 +b(P)m(olyhedron)31 b(Reference)2090 b(255)1163 1575 y @beginspecial -150 @llx -235 @lly 39 @urx -46 @ury 1890 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.191 @@ -49367,14 +49394,14 @@ b(See)390 4770 y(Section)33 b(35.2.2.2)i([P)m(olyhedron)e(Reference;)h (Regular)f(Platonic)h(P)m(olyhedra;)g(Do)s(decahedron;)390 4879 y(Constructors)c(and)g(Setting)h(F)-8 b(unctions],)31 -b(page)g(252.)630 5011 y Fz(vector)42 b(vrp)47 +b(page)g(254.)630 5011 y Fz(vector)42 b(vrp)47 b(=)h(Dodecahedron::get_net\(1)o(\);)630 5121 y (for\(vector)o(::it)o(erat)o(or)41 b(iter)47 b(=)h(vrp.begin\(\);)821 5230 y(iter)f(!=)g(vrp.end\(\);)e(++iter\))964 5340 y(\(**iter\).draw\(\);)p eop end -%%Page: 254 266 -TeXDict begin 254 265 bop 150 -116 a FI(Chapter)30 b(35:)41 -b(P)m(olyhedron)31 b(Reference)2090 b(254)1196 925 y +%%Page: 256 268 +TeXDict begin 256 267 bop 150 -116 a FI(Chapter)30 b(35:)41 +b(P)m(olyhedron)31 b(Reference)2090 b(256)1196 925 y @beginspecial -58 @llx -52 @lly 123 @urx 59 @ury 1810 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.193 @@ -49621,18 +49648,18 @@ 4621 y Fx(35.2.3.1)63 b(Data)40 b(Mem)m(b)s(ers)2456 4883 y FI([Protected)32 b(static)g Fz(const)d FI(v)-5 b(ariable])-3599 b Fc(real)39 b Fd(dihedral)p 817 4883 -35 5 v 49 w(angle)390 4993 y FI(The)30 b(angle)h(b)s(et)m(w)m(een)g -(the)g(faces)g(of)g(the)f Fz(Icosahedron)p FI(,)e(namely)i(138)2833 -4960 y Fi(\016)2873 4993 y FI(11)2963 4960 y Fi(0)3012 -4993 y FI(=)25 b Fu(\031)f FG(\000)19 b FI(arcsin)q(\(2)p -Fu(=)p FI(3\).)2973 5213 y([Protected)32 b(v)-5 b(ariable])-3599 +35 5 v 49 w(angle)390 4993 y FI(The)28 b(angle)i(b)s(et)m(w)m(een)f +(the)g(faces)g(of)g(the)g Fz(Icosahedron)p FI(,)d(namely)j(138)2818 +4960 y Fi(\016)2886 4993 y FI(11)2976 4960 y Fi(0)3029 +4993 y FI(=)c Fu(\031)20 b FG(\000)d FI(arcsin\(2)p Fu(=)p +FI(3\).)2973 5213 y([Protected)32 b(v)-5 b(ariable])-3599 b Fc(real)39 b Fd(triangle)p 791 5213 V 49 w(radius)390 5322 y FI(The)30 b(radius)f(of)i(the)f(circle)i(enclosing)f(a)g (triangular)g(face)g(of)g(the)f Fz(Icosahedron)p FI(.)p eop end -%%Page: 255 267 -TeXDict begin 255 266 bop 150 -116 a FI(Chapter)30 b(35:)41 -b(P)m(olyhedron)31 b(Reference)2090 b(255)150 299 y Fx(35.2.3.2)63 +%%Page: 257 269 +TeXDict begin 257 268 bop 150 -116 a FI(Chapter)30 b(35:)41 +b(P)m(olyhedron)31 b(Reference)2090 b(257)150 299 y Fx(35.2.3.2)63 b(Constructors)42 b(and)f(Setting)g(F)-10 b(unctions)2924 536 y FI([Default)32 b(constructor])-3599 b Fc(void)39 b Fd(Icosahedron)45 b Fw(\()p Fz(void)p Fw(\))390 646 @@ -49981,9 +50008,9 @@ %%EndDocument @endspecial 1726 5322 a FI(Figure)g(196.)p eop end -%%Page: 256 268 -TeXDict begin 256 267 bop 150 -116 a FI(Chapter)30 b(35:)41 -b(P)m(olyhedron)31 b(Reference)2090 b(256)150 299 y Fx(35.2.3.3)63 +%%Page: 258 270 +TeXDict begin 258 269 bop 150 -116 a FI(Chapter)30 b(35:)41 +b(P)m(olyhedron)31 b(Reference)2090 b(258)150 299 y Fx(35.2.3.3)63 b(Net)3111 657 y FI([Static)32 b(function])-3600 b Fc (vector)44 b Fd(get)p 1397 657 35 5 v 50 w(net)g Fw(\()p Fz(const)29 b(real)565 766 y Fp(triangle_diameter)p @@ -50001,7 +50028,7 @@ (constructor.)390 1314 y(See)24 b(Section)g(35.2.3.2)i([P)m(olyhedron)d (Reference;)k(Regular)d(Platonic)g(P)m(olyhedra;)j(Icosahedron;)390 1424 y(Constructors)j(and)g(Setting)h(F)-8 b(unctions],)31 -b(page)g(255.)630 1672 y Fz(vector)42 b(vrp)47 +b(page)g(257.)630 1672 y Fz(vector)42 b(vrp)47 b(=)h(Icosahedron::get_net\(1.)o(5\);)630 1782 y(for)f (\(vector::i)o(tera)o(tor)41 b(iter)47 b(=)g(vrp.begin\(\);)869 1891 y(iter)f(!=)h(vrp.end\(\);)e(++iter\))773 @@ -50135,9 +50162,9 @@ 5092 y(mo)s(del)h(should)g(b)s(e)f(dra)m(wn,)h(to)s(o.)630 5340 y Fz(Icosahedron::draw_net\(2,)41 b(false\);)p eop end -%%Page: 257 269 -TeXDict begin 257 268 bop 150 -116 a FI(Chapter)30 b(35:)41 -b(P)m(olyhedron)31 b(Reference)2090 b(257)638 1442 y +%%Page: 259 271 +TeXDict begin 259 270 bop 150 -116 a FI(Chapter)30 b(35:)41 +b(P)m(olyhedron)31 b(Reference)2090 b(259)638 1442 y @beginspecial -47 @llx -51 @lly 268 @urx 122 @ury 3150 @rwi @setspecial %%BeginDocument: ./EPS/3DLDFmp.198 @@ -50281,176 +50308,169 @@ %%EOF %%EndDocument - @endspecial 1726 1551 a(Figure)31 b(198.)150 1835 y + @endspecial 1726 1551 a(Figure)31 b(198.)150 1795 y FH(35.3)68 b(Semi-Regular)47 b(Arc)l(himedean)e(P)l(olyhedra)150 -2090 y FI(Once)35 b(I'v)m(e)h(added)f Fz(class)28 b(Octahedron)p +2034 y FI(Once)35 b(I'v)m(e)h(added)f Fz(class)28 b(Octahedron)p FI(,)34 b(the)i(only)f(Platonic)h(p)s(olyhedron)e(I)h(ha)m(v)m(en't)h -(programmed)150 2200 y(y)m(et,)c(I)e(plan)g(to)h(start)g(adding)f +(programmed)150 2144 y(y)m(et,)c(I)e(plan)g(to)h(start)g(adding)f (classes)h(for)f(the)h(semi-regular)g(Arc)m(himedean)g(p)s(olyhedra.) -150 2445 y Fx(35.3.1)63 b(T)-10 b(runcated)41 b(Octahedron)g(\(T)-10 -b(runc)p 2154 2445 37 5 v 54 w(Octahedron\))150 2700 -y FI(Class)28 b Fz(Trunc_Octahedron)c FI(is)k(de\014ned)f(in)h(`)p +150 2354 y Fx(35.3.1)63 b(T)-10 b(runcated)41 b(Octahedron)150 +2594 y FI(Class)28 b Fz(Trunc_Octahedron)c FI(is)k(de\014ned)f(in)h(`)p Fz(polyhed.web)p FI('.)37 b(It)29 b(is)f(deriv)m(ed)g(from)g -Fz(Polyhedron)d FI(using)150 2810 y(public)30 b(deriv)-5 -b(ation.)275 2955 y Fz(Trunc_Octahedron)24 b FI(do)s(es)29 +Fz(Polyhedron)d FI(using)150 2703 y(public)30 b(deriv)-5 +b(ation.)275 2833 y Fz(Trunc_Octahedron)24 b FI(do)s(es)29 b(not)g(y)m(et)h(ha)m(v)m(e)g(a)f(functioning)g(constructor,)h(so)f(it) -h(cannot)f(b)s(e)g(used)f(as)150 3065 y(y)m(et.)150 3310 -y Fx(35.3.1.1)63 b(Data)40 b(Mem)m(b)s(ers)2456 3565 +h(cannot)f(b)s(e)g(used)f(as)150 2943 y(y)m(et.)150 3153 +y Fx(35.3.1.1)63 b(Data)40 b(Mem)m(b)s(ers)2456 3392 y FI([Protected)32 b(static)g Fz(const)d FI(v)-5 b(ariable])-3599 -b Fc(real)39 b Fd(angle)p 667 3565 35 5 v 50 w(hex)p -894 3565 V 50 w(square)390 3674 y FI(The)32 b(angle)h(b)s(et)m(w)m(een) +b Fc(real)39 b Fd(angle)p 667 3392 35 5 v 50 w(hex)p +894 3392 V 50 w(square)390 3502 y FI(The)32 b(angle)h(b)s(et)m(w)m(een) f(the)g(hexagonal)i(and)d(the)h(square)g(faces)h(of)f(the)h(truncated)f -(o)s(ctahedron,)390 3784 y(namely)f(125)841 3751 y Fi(\016)880 -3784 y FI(16)970 3751 y Fi(0)994 3784 y FI(.)2456 3990 +(o)s(ctahedron,)390 3612 y(namely)f(125)841 3579 y Fi(\016)910 +3612 y FI(16)1000 3579 y Fi(0)1025 3612 y FI(.)2456 3782 y([Protected)h(static)g Fz(const)d FI(v)-5 b(ariable])-3599 -b Fc(real)39 b Fd(angle)p 667 3990 V 50 w(hex)p 894 3990 -V 50 w(hex)390 4099 y FI(The)28 b(angle)h(b)s(et)m(w)m(een)h(the)e -(hexagonal)i(faces)f(of)g(the)g(truncated)f(o)s(ctahedron,)h(namely)g -(109)3571 4066 y Fi(\016)3611 4099 y FI(28)3701 4066 -y Fi(0)3725 4099 y FI(.)2973 4305 y([Protected)j(v)-5 -b(ariable])-3599 b Fc(real)39 b Fd(hexagon)p 816 4305 -V 50 w(radius)390 4415 y FI(The)21 b(radius)f(of)h(the)g(circle)i +b Fc(real)39 b Fd(angle)p 667 3782 V 50 w(hex)p 894 3782 +V 50 w(hex)390 3892 y FI(The)26 b(angle)h(b)s(et)m(w)m(een)f(the)h +(hexagonal)g(faces)g(of)f(the)g(truncated)g(o)s(ctahedron,)i(namely)e +(109)3545 3859 y Fi(\016)3611 3892 y FI(28)3701 3859 +y Fi(0)3725 3892 y FI(.)2973 4062 y([Protected)32 b(v)-5 +b(ariable])-3599 b Fc(real)39 b Fd(hexagon)p 816 4062 +V 50 w(radius)390 4172 y FI(The)21 b(radius)f(of)h(the)g(circle)i (enclosing)f(a)f(hexagonal)i(or)e(square)g(face)h(of)f(the)g -Fz(Trunc_Octahedron)p FI(.)275 4620 y(T)-8 b(runc)p 517 -4620 28 4 v 39 w(Octahedron)23 b(Net,)i(T)-8 b(runc)p -1473 4620 V 40 w(Octahedron)23 b(\(T)-8 b(runcated)23 -b(Octahedron\),)i(T)-8 b(runc)p 3252 4620 V 39 w(Octahedron)150 -4730 y(\(T)g(runcated)30 b(Octahedron\))150 4976 y Fx(35.3.1.2)63 +Fz(Trunc_Octahedron)p FI(.)150 4382 y Fx(35.3.1.2)63 b(Constructors)42 b(and)f(Setting)g(F)-10 b(unctions)2924 -5230 y FI([Default)32 b(constructor])-3599 b Fc(void)39 -b Fd(T)-10 b(runc)p 701 5230 35 5 v 50 w(Octahedron)44 -b Fw(\()p Fz(void)p Fw(\))390 5340 y FI(Creates)31 b(an)f(empt)m(y)h -Fz(Trunc_Octahedron)p FI(.)p eop end -%%Page: 258 270 -TeXDict begin 258 269 bop 150 -116 a FI(Chapter)30 b(35:)41 -b(P)m(olyhedron)31 b(Reference)2090 b(258)3224 299 y([Constructor]) --3600 b Fc(void)39 b Fd(T)-10 b(runc)p 701 299 35 5 v -50 w(Octahedron)44 b Fw(\()p Fz(const)29 b(Point&)g Fp(p)p -Fz(,)h(const)f(real)565 408 y Fp(diameter_of_hexagon)p -Fz(,)c Fy([)p Fz(real)30 b Fp(angle_x)39 b Fz(=)30 b(0,)f -Fy([)p Fz(real)h Fp(angle_y)39 b Fz(=)30 b(0,)g Fy([)p -Fz(real)565 518 y Fp(angle_z)39 b Fz(=)30 b(0)p Fy(]]])p -Fw(\))390 628 y FI(This)k(function)h(do)s(es)g(not)g(y)m(et)h(exist!)56 -b(When)35 b(it)g(do)s(es,)h(it)g(will)f(create)i(a)e -Fz(Trunc_Octahedron)390 737 y FI(with)j(its)h(cen)m(ter)h(at)f(the)f -(origin,)k(where)37 b(the)i(hexagonal)h(and)e(square)g(faces)h(ha)m(v)m -(e)h(enclosing)390 847 y(circles)i(of)g(diameter)g Ft(diameter)p -1533 847 28 4 v 41 w(of)p 1647 847 V 40 w(hexagon)p FI(.)74 -b(If)41 b(an)m(y)h(of)f Ft(angle)p 2716 847 V 41 w(x)p -FI(,)k Ft(angle)p 3081 847 V 41 w(y)p FI(,)f(or)d Ft(angle)p -3567 847 V 41 w(z)47 b FI(is)390 956 y(non-zero,)28 b(the)e -Fz(Trunc_Octahedron)21 b FI(will)26 b(b)s(e)f(rotated)i(b)m(y)f(the)g -(amoun)m(ts)g(sp)s(eci\014ed)f(around)g(the)390 1066 -y(corresp)s(onding)39 b(axes.)70 b(Finally)-8 b(,)44 -b(if)c Ft(p)i FI(is)e(not)g(the)g(origin,)j(the)d Fz(Trunc_Octahedron) -35 b FI(will)41 b(b)s(e)390 1176 y(shifted)30 b(suc)m(h)g(that)h -Fz(center)e FI(comes)i(to)g(lie)g(at)g Ft(p)p FI(.)150 -1400 y Fx(35.3.1.3)63 b(Net)3111 1644 y FI([Static)32 -b(function])-3600 b Fc(vector)44 b Fd(get)p -1397 1644 35 5 v 50 w(net)g Fw(\()p Fz(const)29 b(real)565 -1753 y Fp(hexagon_diameter)p Fz(,)d Fy([)p Fz(bool)j -Fp(do_half)39 b Fz(=)30 b(false)p Fy(])p Fw(\))390 1863 -y FI(This)j(function)g(do)s(es)h(not)g(y)m(et)g(exist!)52 -b(When)33 b(it)h(do)s(es,)h(it)f(will)g(return)f(the)h -Ft(net)p FI(,)h(i.e.,)g(the)f(t)m(w)m(o-)390 1973 y(dimensional)k +4622 y FI([Default)32 b(constructor])-3599 b Fc(void)39 +b Fd(T)-10 b(runc)p 701 4622 V 50 w(Octahedron)44 b Fw(\()p +Fz(void)p Fw(\))390 4731 y FI(Creates)31 b(an)f(empt)m(y)h +Fz(Trunc_Octahedron)p FI(.)3224 4902 y([Constructor])-3600 +b Fc(void)39 b Fd(T)-10 b(runc)p 701 4902 V 50 w(Octahedron)44 +b Fw(\()p Fz(const)29 b(Point&)g Fp(p)p Fz(,)h(const)f(real)565 +5011 y Fp(diameter_of_hexagon)p Fz(,)c Fy([)p Fz(real)30 +b Fp(angle_x)39 b Fz(=)30 b(0,)f Fy([)p Fz(real)h Fp(angle_y)39 +b Fz(=)30 b(0,)g Fy([)p Fz(real)565 5121 y Fp(angle_z)39 +b Fz(=)30 b(0)p Fy(]]])p Fw(\))390 5230 y FI(This)k(function)h(do)s(es) +g(not)g(y)m(et)h(exist!)56 b(When)35 b(it)g(do)s(es,)h(it)g(will)f +(create)i(a)e Fz(Trunc_Octahedron)390 5340 y FI(with)j(its)h(cen)m(ter) +h(at)f(the)f(origin,)k(where)37 b(the)i(hexagonal)h(and)e(square)g +(faces)h(ha)m(v)m(e)h(enclosing)p eop end +%%Page: 260 272 +TeXDict begin 260 271 bop 150 -116 a FI(Chapter)30 b(35:)41 +b(P)m(olyhedron)31 b(Reference)2090 b(260)390 299 y(circles)42 +b(of)g(diameter)g Ft(diameter)p 1533 299 28 4 v 41 w(of)p +1647 299 V 40 w(hexagon)p FI(.)74 b(If)41 b(an)m(y)h(of)f +Ft(angle)p 2716 299 V 41 w(x)p FI(,)k Ft(angle)p 3081 +299 V 41 w(y)p FI(,)f(or)d Ft(angle)p 3567 299 V 41 w(z)47 +b FI(is)390 408 y(non-zero,)28 b(the)e Fz(Trunc_Octahedron)21 +b FI(will)26 b(b)s(e)f(rotated)i(b)m(y)f(the)g(amoun)m(ts)g(sp)s +(eci\014ed)f(around)g(the)390 518 y(corresp)s(onding)39 +b(axes.)70 b(Finally)-8 b(,)44 b(if)c Ft(p)i FI(is)e(not)g(the)g +(origin,)j(the)d Fz(Trunc_Octahedron)35 b FI(will)41 +b(b)s(e)390 628 y(shifted)30 b(suc)m(h)g(that)h Fz(center)e +FI(comes)i(to)g(lie)g(at)g Ft(p)p FI(.)150 852 y Fx(35.3.1.3)63 +b(Net)3111 1096 y FI([Static)32 b(function])-3600 b Fc +(vector)44 b Fd(get)p 1397 1096 35 5 v +50 w(net)g Fw(\()p Fz(const)29 b(real)565 1205 y Fp(hexagon_diameter)p +Fz(,)d Fy([)p Fz(bool)j Fp(do_half)39 b Fz(=)30 b(false)p +Fy(])p Fw(\))390 1315 y FI(This)j(function)g(do)s(es)h(not)g(y)m(et)g +(exist!)52 b(When)33 b(it)h(do)s(es,)h(it)f(will)g(return)f(the)h +Ft(net)p FI(,)h(i.e.,)g(the)f(t)m(w)m(o-)390 1425 y(dimensional)k (pattern)g(of)g(hexagons)g(and)g(squares)f(that)i(can)f(b)s(e)f(folded) -h(in)m(to)h(a)f(mo)s(del)g(of)g(a)390 2082 y(truncated)c(o)s +h(in)m(to)h(a)f(mo)s(del)g(of)g(a)390 1534 y(truncated)c(o)s (ctahedron.)52 b(The)34 b(net)h(will)f(lie)h(in)f(the)g(x-z)h(plane.)52 -b(The)34 b(hexagons)h(and)e(squares)390 2192 y(will)e(ha)m(v)m(e)h +b(The)34 b(hexagons)h(and)e(squares)390 1644 y(will)e(ha)m(v)m(e)h (enclosing)g(circles)g(of)f(diameter)g Ft(hexagon)p 2250 -2192 28 4 v 41 w(diameter)p FI(.)42 b(If)31 b(the)f(argumen)m(t)i -Ft(do)p 3458 2192 V 40 w(half)48 b FI(is)390 2301 y Fz(true)p +1644 28 4 v 41 w(diameter)p FI(.)42 b(If)31 b(the)f(argumen)m(t)i +Ft(do)p 3458 1644 V 40 w(half)48 b FI(is)390 1753 y Fz(true)p FI(,)24 b(only)h(the)f(\014rst)f(half)i(of)f(the)g(net)g(will)h(b)s(e)e (created.)40 b(This)24 b(will)g(b)s(e)f(used)h(in)g(the)g(non-default) -390 2411 y(constructor.)39 b(See)25 b(Section)h(35.3.1.2)h([P)m +390 1863 y(constructor.)39 b(See)25 b(Section)h(35.3.1.2)h([P)m (olyhedron)e(Reference;)j(Regular)d(Platonic)h(P)m(olyhedra;)390 -2521 y(T)-8 b(runc)p 632 2521 V 39 w(Octahedron;)31 b(Constructors)e -(and)h(Setting)h(F)-8 b(unctions],)32 b(page)f(257.)p -eop end -%%Page: 259 271 -TeXDict begin 259 270 bop 150 -116 a FI(Chapter)30 b(36:)41 -b(Utilit)m(y)33 b(F)-8 b(unctions)2278 b(259)150 299 -y FE(36)80 b(Utilit)l(y)53 b(F)-13 b(unctions)3350 569 +1973 y(T)-8 b(runcated)30 b(Octahedron)g(Constructors)g(and)g(Setting)h +(F)-8 b(unctions],)32 b(page)f(259.)p eop end +%%Page: 261 273 +TeXDict begin 261 272 bop 150 -116 a FI(Chapter)30 b(36:)41 +b(Utilit)m(y)33 b(F)-8 b(unctions)2278 b(261)150 299 +y FE(36)80 b(Utilit)l(y)53 b(F)-13 b(unctions)3350 581 y FI([F)-8 b(unction])-3599 b Fc(double)40 b Fd(trunc)k -Fw(\()p Fz(double)29 b(d)p Fw(\))390 679 y FI(De\014ned)24 +Fw(\()p Fz(double)29 b(d)p Fw(\))390 691 y FI(De\014ned)24 b(in)h(`)p Fz(pspglb.web)p FI('.)36 b(F)-8 b(or)26 b(some)f(reason,)h (when)e(I)g(compile)i(3DLDF)g(using)e(GNU)h(CC)f(on)390 -789 y(a)e(PC)f(P)m(en)m(tium)i(I)s(I)e(XEON)g(under)g(Lin)m(ux)g(2.4.4) +801 y(a)e(PC)f(P)m(en)m(tium)i(I)s(I)e(XEON)g(under)g(Lin)m(ux)g(2.4.4) j(i686,)h(the)d(standard)f(library)g(function)h Fz(trunc\(\))390 -898 y FI(is)k(not)g(a)m(v)-5 b(ailable.)42 b(Therefore,)26 +910 y FI(is)k(not)g(a)m(v)-5 b(ailable.)42 b(Therefore,)26 b(I'v)m(e)h(had)f(to)g(write)g(one.)40 b(This)25 b(is)h(a)g(kludge!)39 -b(Someda)m(y)-8 b(,)28 b(I'll)f(ha)m(v)m(e)390 1008 y(to)k(try)f(to)h +b(Someda)m(y)-8 b(,)28 b(I'll)f(ha)m(v)m(e)390 1020 y(to)k(try)f(to)h (\014nd)e(a)i(b)s(etter)f(solution)h(to)h(this)e(problem.)3350 -1186 y([F)-8 b(unction])-3599 b Fc(pair)f -Fd(solv)m(e)p 1263 1186 35 5 v 50 w(quadratic)45 b Fw(\()p +1203 y([F)-8 b(unction])-3599 b Fc(pair)f +Fd(solv)m(e)p 1263 1203 35 5 v 50 w(quadratic)45 b Fw(\()p Fz(real)29 b Fp(a)p Fz(,)h(real)f Fp(b)p Fz(,)h(real)f -Fp(c)11 b Fw(\))390 1296 y FI(De\014ned)35 b(in)f(`)p +Fp(c)11 b Fw(\))390 1313 y FI(De\014ned)35 b(in)f(`)p Fz(pspglb.web)p FI('.)52 b(This)34 b(function)h(tries)g(to)h(\014nd)d -(the)i(solutions)g Fu(S)3127 1310 y FA(0)3199 1296 y -FI(and)f Fu(S)3436 1310 y FA(1)3508 1296 y FI(to)i(the)390 -1405 y(quadratic)29 b(equation)h Fu(ax)1265 1372 y FA(2)1319 -1405 y FI(+)17 b Fu(bx)g FI(+)g Fu(c)29 b FI(according)h(to)f(the)g -(form)m(ulae)h Fu(S)2772 1419 y FA(0)2834 1405 y FG(\021)25 -b FI(\()p FG(\000)p Fu(b)17 b FI(+)3180 1332 y FG(p)p -3255 1332 321 4 v 3255 1405 a Fu(b)3294 1379 y FA(2)3352 -1405 y FG(\000)j FI(4)p Fu(ac)q FI(\))p Fu(=)p FI(2)p -Fu(a)390 1515 y FI(and)36 b Fu(S)629 1529 y FA(1)703 -1515 y FG(\021)g FI(\()p FG(\000)p Fu(b)25 b FG(\000)1075 -1441 y(p)p 1151 1441 V 74 x Fu(b)1190 1489 y FA(2)1247 -1515 y FG(\000)20 b FI(4)p Fu(ac)q FI(\))p Fu(=)p FI(2)p -Fu(a)p FI(.)62 b(Let)38 b Fz(r)e FI(stand)h(for)g(the)g(return)f(v)-5 -b(alue.)61 b(If)37 b Fu(S)3278 1529 y FA(0)3352 1515 -y FI(cannot)h(b)s(e)390 1625 y(found,)24 b Fz(r.first)e +(the)i(solutions)g Fu(S)3127 1327 y FA(0)3199 1313 y +FI(and)f Fu(S)3436 1327 y FA(1)3508 1313 y FI(to)i(the)390 +1447 y(quadratic)29 b(equation)g Fu(ax)1264 1414 y FA(2)1318 +1447 y FI(+)16 b Fu(bx)g FI(+)g Fu(c)29 b FI(according)g(to)g(the)g +(form)m(ulae)g Fu(S)2766 1461 y FA(0)2828 1447 y FG(\021)c +FI(\()p FG(\000)p Fu(b)16 b FI(+)3172 1349 y Fh(q)p 3255 +1349 321 4 v 98 x Fu(b)3294 1421 y FA(2)3352 1447 y FG(\000)k +FI(4)p Fu(ac)q FI(\))p Fu(=)p FI(2)p Fu(a)390 1609 y +FI(and)36 b Fu(S)629 1623 y FA(1)702 1609 y FG(\021)f +FI(\()p FG(\000)p Fu(b)25 b FG(\000)1073 1511 y Fh(q)p +1156 1511 V 98 x Fu(b)1195 1583 y FA(2)1253 1609 y FG(\000)19 +b FI(4)p Fu(ac)q FI(\))p Fu(=)p FI(2)p Fu(a)p FI(.)61 +b(Let)37 b Fz(r)g FI(stand)f(for)h(the)g(return)e(v)-5 +b(alue.)60 b(If)37 b Fu(S)3279 1623 y FA(0)3352 1609 +y FI(cannot)h(b)s(e)390 1729 y(found,)24 b Fz(r.first)e FI(will)i(b)s(e)f Fz(INVALID_REAL)p FI(,)f(otherwise)j -Fu(S)2383 1639 y FA(0)2420 1625 y FI(.)38 b(If)24 b Fu(S)2624 -1639 y FA(1)2684 1625 y FI(cannot)h(b)s(e)e(found,)h -Fz(r.second)390 1734 y FI(will)31 b(b)s(e)e Fz(INVALID_REAL)p -FI(,)f(otherwise)j Fu(S)1775 1748 y FA(1)1812 1734 y -FI(.)1300 1976 y(\()p Fu(x)20 b FI(+)g(4\)\()p Fu(x)h -FI(+)f(2\))26 b(=)f Fu(x)2031 1939 y FA(2)2089 1976 y -FI(+)20 b(6)p Fu(x)g FI(+)g(8)26 b(=)f(0)630 2136 y Fz(real_pair)45 -b(r)j(=)f(solve_quadratic\(1,)c(6,)k(8\);)632 2240 y -FG(\))773 2246 y Fz(r.first)1167 2250 y FG(\021)1298 -2246 y Fz(-2)632 2350 y FG(\))773 2356 y Fz(r.second)1215 -2360 y FG(\021)1346 2356 y Fz(-4)630 2557 y(real_pair)e(r)j(=)f -(solve_quadratic\(1,)c(-2,)k(4\);)632 2661 y FG(\))773 -2667 y Fz(r.first)1167 2671 y FG(\021)1298 2667 y Fz(INVALID_REAL)632 -2770 y FG(\))773 2776 y Fz(r.second)1215 2780 y FG(\021)1346 -2776 y Fz(INVALID_REAL)150 3028 y FH(36.1)68 b(P)l(ersp)t(ectiv)l(e)47 -b(F)-11 b(unctions)3350 3270 y FI([F)j(unction])-3599 -b Fc(void)39 b Fd(p)s(ersp)p 681 3270 35 5 v 50 w(0)46 +Fu(S)2383 1743 y FA(0)2420 1729 y FI(.)38 b(If)24 b Fu(S)2624 +1743 y FA(1)2684 1729 y FI(cannot)h(b)s(e)e(found,)h +Fz(r.second)390 1839 y FI(will)31 b(b)s(e)e Fz(INVALID_REAL)p +FI(,)f(otherwise)j Fu(S)1775 1853 y FA(1)1812 1839 y +FI(.)630 1973 y(\()p Fu(x)51 b FI(+)f(4\)\()p Fu(x)i +FI(+)e(2\))56 b(=)f Fu(x)1543 1940 y FA(2)1631 1973 y +FI(+)50 b(6)p Fu(x)h FI(+)g(8)56 b(=)f(0)630 2107 y Fz(real_pair)45 +b(r)j(=)f(solve_quadratic\(1,)c(6,)k(8\);)632 2211 y +FG(\))773 2217 y Fz(r.first)1167 2221 y FG(\021)1298 +2217 y Fz(-2)632 2321 y FG(\))773 2327 y Fz(r.second)1215 +2331 y FG(\021)1346 2327 y Fz(-4)630 2535 y(real_pair)e(r)j(=)f +(solve_quadratic\(1,)c(-2,)k(4\);)632 2639 y FG(\))773 +2645 y Fz(r.first)1167 2649 y FG(\021)1298 2645 y Fz(INVALID_REAL)632 +2748 y FG(\))773 2754 y Fz(r.second)1215 2758 y FG(\021)1346 +2754 y Fz(INVALID_REAL)150 3011 y FH(36.1)68 b(P)l(ersp)t(ectiv)l(e)47 +b(F)-11 b(unctions)3350 3255 y FI([F)j(unction])-3599 +b Fc(void)39 b Fd(p)s(ersp)p 681 3255 35 5 v 50 w(0)46 b Fw(\()p Fz(const)29 b(real)g Fp(front_corner_x)p Fz(,)e(const)i(real) -565 3380 y Fp(front_corner_z)p Fz(,)d(const)j(real)g +565 3364 y Fp(front_corner_z)p Fz(,)d(const)j(real)g Fp(side_lft)p Fz(,)f(const)h(real)g Fp(side_rt)p Fz(,)g(const)g(real) -565 3489 y Fp(angle_rt)p Fz(,)f(const)h(real)g Fp(f_2_cv)p +565 3474 y Fp(angle_rt)p Fz(,)f(const)h(real)g Fp(f_2_cv)p Fz(,)f(const)h(real)h Fp(gl_2_cv)p Fz(,)e Fy([)p Fz(const)h(real)565 -3599 y Fp(horizon_lft)38 b Fz(=)30 b(6,)g Fy([)p Fz(real)f +3583 y Fp(horizon_lft)38 b Fz(=)30 b(6,)g Fy([)p Fz(real)f Fp(horizon_rt)38 b Fz(=)31 b(0,)e Fy([)p Fz(real)h Fp(gl_lft)39 b Fz(=)30 b(0,)g Fy([)p Fz(real)g Fp(gl_rt)39 b Fz(=)565 -3708 y(0)p Fy(]]]])p Fw(\))390 3818 y FI(De\014ned)33 +3693 y(0)p Fy(]]]])p Fw(\))390 3803 y FI(De\014ned)33 b(in)g(`)p Fz(utility.web)p FI('.)48 b(This)32 b(function)i(is)f(used)g (for)g(the)h(\014gure)e(in)i(Section)g(9.1.2)h([The)390 -3928 y(P)m(ersp)s(ectiv)m(e)g(Pro)5 b(jection],)36 b(page)f(59,)g +3912 y(P)m(ersp)s(ectiv)m(e)g(Pro)5 b(jection],)36 b(page)f(59,)g (illustrating)g(a)f(p)s(ersp)s(ectiv)m(e)g(pro)5 b(jection)35 -b(as)f(it)g(could)g(b)s(e)390 4037 y(done)h(b)m(y)h(hand.)56 +b(as)f(it)g(could)g(b)s(e)390 4022 y(done)h(b)m(y)h(hand.)56 b(It)35 b(dra)m(ws)g(a)i(rectangle)g(in)e(the)h(ground)f(plane)h(and)f -(the)g(construction)i(lines)390 4147 y(used)24 b(for)g(putting)h(it)g +(the)g(construction)i(lines)390 4131 y(used)24 b(for)g(putting)h(it)g (in)m(to)g(p)s(ersp)s(ectiv)m(e.)39 b(It)25 b(also)h(lab)s(els)e(the)h (v)-5 b(anishing)24 b(and)g(measuring)h(p)s(oin)m(ts.)390 -4279 y(The)30 b(argumen)m(ts:)390 4435 y Fz(const)f(real)g -Ft(fron)m(t)p 1078 4435 28 4 v 40 w(corner)p 1366 4435 -V 40 w(x)870 4545 y FI(The)h(x-co)s(ordinate)h(of)g(the)f(fron)m(t)h -(corner)f(of)h(the)f(rectangle.)390 4700 y Fz(const)f(real)g -Ft(fron)m(t)p 1078 4700 V 40 w(corner)p 1366 4700 V 40 -w(z)870 4810 y FI(The)h(z-co)s(ordinate)i(of)e(the)h(fron)m(t)f(corner) -h(of)f(the)h(rectangle.)390 4965 y Fz(const)e(real)g -Ft(side)p 1038 4965 V 40 w(lft)870 5075 y FI(The)h(length)h(of)f(the)h +4266 y(The)30 b(argumen)m(ts:)390 4425 y Fz(const)f(real)g +Ft(fron)m(t)p 1078 4425 28 4 v 40 w(corner)p 1366 4425 +V 40 w(x)870 4534 y FI(The)h(x-co)s(ordinate)h(of)g(the)f(fron)m(t)h +(corner)f(of)h(the)f(rectangle.)390 4693 y Fz(const)f(real)g +Ft(fron)m(t)p 1078 4693 V 40 w(corner)p 1366 4693 V 40 +w(z)870 4803 y FI(The)h(z-co)s(ordinate)i(of)e(the)h(fron)m(t)f(corner) +h(of)f(the)h(rectangle.)390 4962 y Fz(const)e(real)g +Ft(side)p 1038 4962 V 40 w(lft)870 5071 y FI(The)h(length)h(of)f(the)h (left)g(side)f(of)h(the)f(rectangle.)390 5230 y Fz(const)f(real)g Ft(side)p 1038 5230 V 40 w(rt)870 5340 y FI(The)h(length)h(of)f(the)h (righ)m(t)g(side)f(of)h(the)f(rectangle.)p eop end -%%Page: 260 272 -TeXDict begin 260 271 bop 150 -116 a FI(Chapter)30 b(36:)41 -b(Utilit)m(y)33 b(F)-8 b(unctions)2278 b(260)390 299 +%%Page: 262 274 +TeXDict begin 262 273 bop 150 -116 a FI(Chapter)30 b(36:)41 +b(Utilit)m(y)33 b(F)-8 b(unctions)2278 b(262)390 299 y Fz(const)29 b(real)g Ft(angle)p 1092 299 28 4 v 41 w(rt)870 408 y FI(The)f(angle)i(at)f(whic)m(h)f(the)h(righ)m(t)g(side)g (of)f(the)h(rectangle)h(recedes)g(to)f(the)g(horizon.)390 @@ -50742,18 +50762,18 @@ %%EndDocument @endspecial 1726 5124 a FI(Figure)31 b(199.)p eop end -%%Page: 261 273 -TeXDict begin 261 272 bop 150 -116 a FI(Chapter)30 b(37:)41 -b(Adding)30 b(a)h(File)2408 b(261)150 299 y FE(37)80 +%%Page: 263 275 +TeXDict begin 263 274 bop 150 -116 a FI(Chapter)30 b(37:)41 +b(Adding)30 b(a)h(File)2408 b(263)150 299 y FE(37)80 b(Adding)52 b(a)j(File)150 516 y FI(V)-8 b(ersion)41 b(1.1.1)i(w)m(as)e(the)g(\014rst)f(v)m(ersion)i(of)e(3DLDF)j(since)e (it)g(b)s(ecame)g(a)h(GNU)f(pac)m(k)-5 b(age)43 b(\(the)e(cur-)150 -626 y(ren)m(t)36 b(v)m(ersion)h(is)f(1.1.3\).)61 b(In)35 +626 y(ren)m(t)36 b(v)m(ersion)h(is)f(1.1.4\).)61 b(In)35 b(previous)h(v)m(ersions,)i(recompilation)g(w)m(as)e(con)m(trolled)i(b) -m(y)e(an)g(auxilliary)150 736 y(program,)g(whic)m(h)f(I)f(wrote)i(in)e -FB(C)1309 728 y FA(+)-8 b(+)1477 736 y FI(using)34 b(CWEB.)h(Ho)m(w)m -(ev)m(er,)k(in)34 b(the)h(course)g(of)g(making)g(3DLDF)150 -845 y(conforman)m(t)d(to)g(the)f(GNU)h(Co)s(ding)f(Standards)1857 +m(y)e(an)g(auxilliary)150 736 y(program,)j(whic)m(h)e(I)g(wrote)h(in)f +FB(C)1322 728 y FA(+)-8 b(+)1457 736 y FI(using)37 b(CWEB.)g(Ho)m(w)m +(ev)m(er,)42 b(in)37 b(the)g(course)g(of)h(making)f(3DLDF)150 +845 y(conforman)m(t)32 b(to)g(the)f(GNU)h(Co)s(ding)f(Standards)1857 812 y FA(1)1893 845 y FI(,)h(this)f(has)g(b)s(een)f(c)m(hanged.)44 b(Recompilation)34 b(is)d(no)m(w)150 955 y(con)m(trolled)j(b)m(y)e Fz(make)p FI(,)g(as)h(is)g(customary)-8 b(.)47 b(The)32 @@ -50773,13 +50793,13 @@ y(latter)34 b(needs)f(access)h(to)g Fz(class)29 b(Rectangle)p FI(,)i(and)i(is)g(in)g(turn)f(required)g(b)m(y)h Fz(class)c(Ellipse)p FI(.)46 b(Co)s(de)150 1875 y(m)m(ust)36 b(b)s(e)g(added)g(to)h(`)p -Fz(3DLDF-1.1.3/CWEB/Makefile)p FI(')30 b(for)36 b(ctangling)i(`)p +Fz(3DLDF-1.1.4/CWEB/Makefile)p FI(')30 b(for)36 b(ctangling)i(`)p Fz(widgets.web)p FI(',)e(compiling)150 1984 y(`)p Fz(widgets.cxx)p FI(',)28 b(and)i(linking)h(`)p Fz(widgets.o)p FI(')d(with)i(the)h (other)f(ob)5 b(ject)32 b(\014les)e(to)h(mak)m(e)h(the)e(executable)150 2094 y(`)p Fz(3dldf)p FI('.)275 2225 y(The)37 b(b)s(est)h(w)m(a)m(y)h (to)f(do)g(this)g(is)g(to)h(c)m(hange)g(`)p Fz -(3DLDF-1.1.3/CWEB/Makefile.)o(am)p FI(')32 b(and)37 b(use)h(Au-)150 +(3DLDF-1.1.4/CWEB/Makefile.)o(am)p FI(')32 b(and)37 b(use)h(Au-)150 2335 y(tomak)m(e)30 b(to)g(generate)g(a)e(new)g(`)p Fz(Makefile.in)p FI('.)38 b(Then,)28 b Fz(configure)e FI(can)j(b)s(e)f(used)f(to)j (generate)g(a)e(new)150 2444 y(`)p Fz(Makefile)p FI('.)57 @@ -50792,7 +50812,7 @@ FI(')g(m)m(ust)j(b)s(e)f(added)h(b)s(et)m(w)m(een)g(`)p Fz(rectangs.web)p FI(')e(and)h(`)p Fz(ellipses.web)p FI(')e(in)j(the)g(fol-)150 2904 y(lo)m(wing)e(v)-5 b(ariable)32 -b(declaration)f(in)g(`)p Fz(3DLDF-1.1.3/CWEB/Makefi)o(le.a)o(m)p +b(declaration)f(in)g(`)p Fz(3DLDF-1.1.4/CWEB/Makefi)o(le.a)o(m)p FI(':)390 3035 y Fz(3dldf_SOME_CWEBS)43 b(=)48 b(pspglb.web)d(io.web)h (colors.web)f(transfor.web)f(\\)1297 3145 y(shapes.web)h(pictures.web)f (points.web)h(\\)1297 3254 y(lines.web)g(planes.web)g(paths.web)g @@ -50814,7 +50834,7 @@ 4853 y(the)25 b(executable)g(is)g(link)m(ed)f(using)g Fz($\(3dldf_OBJECTS\))p FI(.)35 b(This)23 b(ma)m(y)i(cause)g(problems,) g(if)f(`)p Fz(3dldf)p FI(')g(isn't)150 4963 y(built)30 -b(using)g(the)h(GNU)g FB(C)1064 4955 y FA(+)-8 b(+)1222 +b(using)g(the)h(GNU)g FB(C)1064 4955 y FA(+)-8 b(+)1192 4963 y FI(compiler)31 b(\(GCC\).)p 150 5051 1200 4 v 199 5118 a FA(1)275 5150 y Fr(The)25 b(GNU)g(Co)r(ding)i(Standards)e (are)i(a)n(v)l(ailable)f(at)g Fs(http://www.gnu.org/prep/stand)q(ards)q @@ -50824,9 +50844,9 @@ b(Automak)n(e)f(w)n(eb-)275 5340 y(site)k(is)g(at)g Fs (http://www.gnu.org/software/au)q(toma)q(ke/)p Fr(.)p eop end -%%Page: 262 274 -TeXDict begin 262 273 bop 150 -116 a FI(Chapter)30 b(37:)41 -b(Adding)30 b(a)h(File)2408 b(262)275 299 y(No)m(w)71 +%%Page: 264 276 +TeXDict begin 264 275 bop 150 -116 a FI(Chapter)30 b(37:)41 +b(Adding)30 b(a)h(File)2408 b(264)275 299 y(No)m(w)71 b(add)f(a)h(target)h(for)f(`)p Fz(widgets.o)p FI(')d(b)s(et)m(w)m(een)k (the)f(targets)h(for)e(`)p Fz(rectangs.o)p FI(')f(and)150 408 y(`)p Fz(ellipses.o)p FI(',)32 b(and)h(add)f(`)p @@ -50857,9 +50877,9 @@ (of)g(prerequisites)g(in)f(all)i(of)f(the)f(follo)m(wing)150 3138 y(targets)32 b(up)d(to)i(and)f(including)g(`)p Fz(examples.o)p FI('.)p eop end -%%Page: 263 275 -TeXDict begin 263 274 bop 150 -116 a FI(Chapter)30 b(38:)41 -b(F)-8 b(uture)31 b(Plans)2440 b(263)150 299 y FE(38)80 +%%Page: 265 277 +TeXDict begin 265 276 bop 150 -116 a FI(Chapter)30 b(38:)41 +b(F)-8 b(uture)31 b(Plans)2440 b(265)150 299 y FE(38)80 b(F)-13 b(uture)53 b(Plans)150 533 y FI(3DLDF)45 b(is)f(a)h(w)m (ork-in-progress.)82 b(In)43 b(fact,)48 b(it)d(can)f(nev)m(er)h(b)s(e)e (\014nished,)j(b)s(ecause)e(the)g(supply)f(of)150 643 @@ -50909,135 +50929,151 @@ y Fr(Cundy)24 b(and)h(Rollet,)i Fm(Mathematical)g(Mo)r(dels)p Fr(,)h(Chapter)e(3,)g(\\P)n(olyhedra",)h(pp.)e(76{160.)p eop end -%%Page: 264 276 -TeXDict begin 264 275 bop 150 -116 a FI(Chapter)30 b(39:)41 -b(Changes)2620 b(264)150 299 y FE(39)80 b(Changes)25 -533 y FI(Up)s(dated)30 b(1)h(Decem)m(b)s(er)g(2003.)275 -667 y(3DLDF)46 b(1.1.1)i(w)m(as)e(the)f(\014rst)g(v)m(ersion)h(of)g -(3DLDF)h(since)f(it)g(b)s(ecame)g(a)g(GNU)g(pac)m(k)-5 -b(age)47 b(\(the)150 777 y(curren)m(t)d(v)m(ersion)g(is)g(1.1.3\).)83 +%%Page: 266 278 +TeXDict begin 266 277 bop 150 -116 a FI(Chapter)30 b(39:)41 +b(Changes)2620 b(266)150 299 y FE(39)80 b(Changes)25 +533 y FI(Up)s(dated)30 b(10)h(Decem)m(b)s(er)h(2003.)275 +667 y(Changes)e(in)g(3DLDF)i(1.1.4:)225 802 y FG(\017)60 +b Fz(MAX_REAL)38 b FI(is)i(no)m(w)f(the)i(second)f(largest)h(\015oat)f +(v)-5 b(alue.)70 b(Ho)m(w)m(ev)m(er,)45 b(the)40 b(calculation)i(is)e +(system)330 912 y(dep)s(enden)m(t,)26 b(and)f(will)g(only)h(w)m(ork)g +(on)f(32-bit)i(little-endian)g(arc)m(hitectures.)41 b(I)25 +b(will)h(start)g(w)m(orking)330 1021 y(on)k(p)s(orting)g(this)g(so)s +(on.)225 1156 y FG(\017)60 b FI(Fixed)34 b(bug)f(in)h(`)p +Fz(tsthdweb)p FI(',)f(that)h(caused)g(\014les)g(to)g(b)s(e)f(compiled)h +(more)g(often)g(than)g(necessary)-8 b(.)330 1265 y(It)30 +b(will)h(b)s(e)f(necessary)h(to)g(k)m(eep)g(an)f(ey)m(e)i(on)e(this.) +225 1400 y FG(\017)60 b FI(Added)29 b Fz(Rectangle::is_rectangular\()o +(\))p FI(.)225 1534 y FG(\017)60 b FI(Made)31 b Fz(mediate\(\))d +FI(a)j(mem)m(b)s(er)e(function)h(of)h Fz(Point)p FI(.)225 +1669 y FG(\017)60 b FI(It)30 b(is)h(no)m(w)f(p)s(ossible)g(to)h +(generate)h(this)e(man)m(ual)h(in)f(the)h(Info)f(and)f(HTML)i(formats.) +275 1828 y(3DLDF)46 b(1.1.1)i(w)m(as)e(the)f(\014rst)g(v)m(ersion)h(of) +g(3DLDF)h(since)f(it)g(b)s(ecame)g(a)g(GNU)g(pac)m(k)-5 +b(age)47 b(\(the)150 1938 y(curren)m(t)d(v)m(ersion)g(is)g(1.1.4\).)83 b(It)44 b(is)g(no)m(w)f(conforman)m(t)i(to)f(the)g(GNU)h(Co)s(ding)e -(Standards,)j(except)150 887 y(that)30 b(a)h(functioning)e(`)p +(Standards,)j(except)150 2047 y(that)30 b(a)h(functioning)e(`)p Fz(3DLDF.info)p FI(')f(cannot)i(b)s(e)g(generated)h(from)e(`)p Fz(3DLDF.texi)p FI('.)38 b(The)30 b(distribution)150 -996 y(no)m(w)24 b(includes)g(a)h Fz(configure)d FI(script,)k(`)p +2157 y(no)m(w)24 b(includes)g(a)h Fz(configure)d FI(script,)k(`)p Fz(Makefile.in)p FI(')c(\014les,)j(and)f(other)h(\014les)f(generated)i -(b)m(y)e(Auto)s(conf)150 1106 y(and)30 b(Automak)m(e.)42 +(b)m(y)e(Auto)s(conf)150 2267 y(and)30 b(Automak)m(e.)42 b(Recompilation)32 b(is)e(no)m(w)g(handled)f(b)m(y)h Fz(make)f FI(rather)h(than)g(the)g(auxilliary)h(program)150 -1215 y Fz(3DLDFcpl)p FI(.)82 b(The)44 b(\014les)h(`)p +2376 y Fz(3DLDFcpl)p FI(.)82 b(The)44 b(\014les)h(`)p Fz(3DLDFcpl.web)p FI(')d(and)i(`)p Fz(3DLDFprc.web)p FI(')e(ha)m(v)m(e)k(b)s(een)e(remo)m(v)m(ed)h(from)g(the)150 -1325 y(distribution.)275 1460 y(The)26 b(extension)j(of)e(the)h -FB(C)1176 1452 y FA(+)-8 b(+)1328 1460 y FI(\014les)28 -b(generated)g(b)m(y)g Fz(ctangle)d FI(is)i(c)m(hanged)i(from)e(`)p +2486 y(distribution.)275 2620 y(The)28 b(extension)i(of)g(the)f +FB(C)1183 2612 y FA(+)-8 b(+)1310 2620 y FI(\014les)29 +b(generated)i(b)m(y)e Fz(ctangle)e FI(is)i(c)m(hanged)h(from)f(`)p Fz(c)p FI(')g(to)h(`)p Fz(cxx)p FI(')f(b)s(efore)150 -1569 y(they)39 b(are)h(compiled.)68 b(After)39 b Fz(ctangle)f +2730 y(they)39 b(are)h(compiled.)68 b(After)39 b Fz(ctangle)f FI(is)h(run)f(on)h(a)g(CWEB)h(\014le,)i(`)p Fz(<)p Fp(filename)11 -b Fz(>.c)p FI(')36 b(is)j(compared)150 1679 y(to)33 b(the)f(old)g(`)p +b Fz(>.c)p FI(')36 b(is)j(compared)150 2839 y(to)33 b(the)f(old)g(`)p Fz(<)p Fp(filename)11 b Fz(>.cxx)p FI(')29 b(using)i Fz(diff)p FI(.)45 b(Whitespace,)34 b(commen)m(ts,)g(and)d -Fz(#line)g FI(prepro)s(cessor)150 1788 y(commands)39 +Fz(#line)g FI(prepro)s(cessor)150 2949 y(commands)39 b(are)h(ignored.)69 b(The)39 b(`)p Fz(<)p Fp(filename)11 b Fz(>.c)p FI(')37 b(is)i(only)h(renamed)f(to)i(`)p Fz(<)p -Fp(filename)11 b Fz(>.cxx)p FI(')36 b(and)150 1898 y(compiled)d(if)g +Fp(filename)11 b Fz(>.cxx)p FI(')36 b(and)150 3059 y(compiled)d(if)g (they)f(di\013er.)48 b(This)31 b(w)m(a)m(y)-8 b(,)35 -b(c)m(hanges)f(to)f(the)g(T)2182 1917 y(E)2232 1898 y(X)g(text)g(only)g -(in)f(a)h(CWEB)g(\014le)g(no)f(longer)150 2007 y(cause)f(recompilation) -h(and)e(relinking.)275 2142 y(The)75 b(main)h(T)-8 b(exinfo)76 +b(c)m(hanges)f(to)f(the)g(T)2182 3078 y(E)2232 3059 y(X)g(text)g(only)g +(in)f(a)h(CWEB)g(\014le)g(no)f(longer)150 3168 y(cause)f(recompilation) +h(and)e(relinking.)275 3303 y(The)75 b(main)h(T)-8 b(exinfo)76 b(\014le)g(is)g(no)m(w)g(called)h(`)p Fz(3DLDF.texi)p -FI('.)176 b(It)76 b(w)m(as)g(formerly)g(called)150 2252 +FI('.)176 b(It)76 b(w)m(as)g(formerly)g(called)150 3412 y(`)p Fz(3DLDFman.texi)p FI('.)84 b(This)45 b(is)h(b)s(ecause)g (Automak)m(e)i(exp)s(ects)e(this)g(name.)87 b(F)-8 b(or)47 -b(this)e(reason,)51 b(the)150 2361 y(CWEB)38 b(\014le)g(passed)g(as)g +b(this)e(reason,)51 b(the)150 3522 y(CWEB)38 b(\014le)g(passed)g(as)g (an)f(argumen)m(t)i(to)f(cw)m(ea)m(v)m(e)j(has)d(b)s(een)f(renamed)g(`) -p Fz(3DLDFprg.web)p FI('.)61 b(It)38 b(w)m(as)150 2471 +p Fz(3DLDFprg.web)p FI('.)61 b(It)38 b(w)m(as)150 3631 y(formerly)30 b(called)i(`)p Fz(3DLDF.web)p FI('.)p eop end -%%Page: 265 277 -TeXDict begin 265 276 bop 150 -116 a FI(Bibliograph)m(y)2956 -b(265)150 299 y FE(Bibliograph)l(y)150 579 y FI(Cundy)-8 -b(,)29 b(H.)i(Mart)m(yn)g(and)f(A.P)-8 b(.)31 b(Rollet.)47 -b FC(Mathematic)-5 b(al)33 b(Mo)-5 b(dels)p FI(.)47 b(Oxford)29 -b(1961.)47 b(Oxford)30 b(Univ)m(er-)349 689 y(sit)m(y)h(Press.)386 -847 y(Unfortunately)g(out)f(of)h(prin)m(t.)150 1029 y(Finston,)g -(Laurence)f(D.)h FC(3DLDF:)g(The)f(Pr)-5 b(o)g(gr)g(am)p -FI(.)48 b(G\177)-45 b(ottingen)32 b(2003.)150 1212 y(Fisc)m(her,)f -(Gerd.)46 b FC(Eb)-5 b(ene)30 b(algebr)-5 b(aische)32 -b(Kurven)p FI(.)45 b(View)m(eg)32 b(Studium.)44 b(Aufbaukurs)28 -b(Mathematik.)349 1322 y(F)-8 b(riedr.)31 b(View)m(eg)h(&)e(Sohn)f(V)-8 -b(erlagsgesellsc)m(haft)35 b(m)m(bH.)30 b(Braunsc)m(h)m(w)m -(eig/Wiesbaden)j(1994.)150 1504 y(Gill,)f(Rob)s(ert)e(W.)h -FC(Cr)-5 b(e)g(ative)31 b(Persp)-5 b(e)g(ctive)p FI(.)46 -b(London)30 b(1975.)47 b(Thames)30 b(and)g(Hudson)f(Ltd.)349 -1614 y(ISBN)h(0-500-27056-2.)150 1797 y(Hobb)m(y)-8 b(,)31 -b(John)f(D.)h FC(A)e(User's)i(Manual)g(for)g(MetaPost)p -FI(.)46 b(A)-8 b(T&T)30 b(Bell)h(Lab)s(oratories.)47 -b(Murra)m(y)30 b(Hill,)349 1906 y(NJ.)h(No)g(date.)150 -2089 y(Jones,)f(Hu)m(w.)46 b FC(Computer)32 b(Gr)-5 b(aphics)32 -b(thr)-5 b(ough)33 b(Key)d(Mathematics)p FI(.)47 b(Springer-V)-8 -b(erlag)31 b(London)f(Lim-)349 2198 y(ited)h(2001.)48 -b(ISBN)30 b(1-85233-422-3.)150 2381 y(Kn)m(uth,)g(Donald)h(Ervin.)44 -b FC(Metafont:)i(The)31 b(Pr)-5 b(o)g(gr)g(am)p FI(.)48 -b(Computers)30 b(and)f(T)m(yp)s(esetting;)j(D.)349 2491 -y(Addison)e(W)-8 b(esley)32 b(Publishing)d(Compan)m(y)-8 -b(,)31 b(Inc.)45 b(Reading,)31 b(Massac)m(h)m(usetts)i(1986.)349 -2600 y(ISBN)d(0-201-13438-1.)150 2783 y(Kn)m(uth,)g(Donald)h(Ervin.)44 -b FC(The)31 b(MET)-7 b(AF)n(ONTb)i(o)g(ok)p FI(.)45 b(Computers)30 -b(and)f(T)m(yp)s(esetting;)j(C.)e(Addison)349 2892 y(W)-8 -b(esley)32 b(Publishing)e(Compan)m(y)-8 b(,)30 b(Inc.)46 -b(Reading,)31 b(Massac)m(h)m(usetts)h(1986.)150 3075 -y(Kn)m(uth,)e(Donald)h(Ervin.)44 b FC(T)-7 b(eX:)30 b(The)h(Pr)-5 -b(o)g(gr)g(am)p FI(.)48 b(Computers)29 b(and)h(T)m(yp)s(esetting;)h(B.) -g(Addison)f(W)-8 b(es-)349 3185 y(ley)31 b(Publishing)e(Compan)m(y)-8 -b(,)31 b(Inc.)46 b(Reading,)31 b(Massac)m(h)m(usetts)h(1986.)48 -b(ISBN)30 b(0-201-13437-3.)150 3367 y(Kn)m(uth,)g(Donald)h(E.)f -FC(The)h(T)1129 3387 y(E)1178 3367 y(Xb)-5 b(o)g(ok)p -FI(.)47 b(Computers)29 b(and)h(T)m(yp)s(esetting;)h(A.)g(Addison)e(W)-8 -b(esley)33 b(Pub-)349 3477 y(lishing)e(Compan)m(y)-8 -b(,)30 b(Inc.)46 b(Reading,)31 b(Massac)m(h)m(usetts)h(1986.)150 -3660 y(Kn)m(uth,)e(Donald)h(E.)f(and)g(Silvio)h(Levy)-8 -b(.)46 b FC(The)31 b Fy(CWEB)e FC(System)i(of)g(Structur)-5 -b(e)g(d)31 b(Do)-5 b(cumentation)p FI(.)349 3769 y(V)d(ersion)31 -b(3.64|F)-8 b(ebruary)32 b(2002.)150 3952 y(Salomon,)f(Da)m(vid.)47 -b FC(Computer)32 b(Gr)-5 b(aphics)32 b(and)f(Ge)-5 b(ometric)32 -b(Mo)-5 b(deling)p FI(.)46 b(Berlin)31 b(1999.)48 b(Springer-)349 -4061 y(V)-8 b(erlag.)48 b(ISBN:)30 b(0-387-98682-0.)150 -4244 y(Stallman,)h(Ric)m(hard)g(M.)f(and)g(Roland)h(McGrath.)46 -b FC(GNU)30 b(Make.)45 b(A)30 b(Pr)-5 b(o)g(gr)g(am)33 -b(for)e(Dir)-5 b(e)g(cting)349 4354 y(R)g(e)g(c)g(ompilation.)49 -b Fz(make)29 b FC(V)-7 b(ersion)31 b(3.79)p FI(.)47 b(Boston)31 -b(2000.)48 b(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 -b(Inc.)349 4463 y(ISBN:)g(1-882114-80-9.)150 4646 y(Stroustrup,)e -(Bjarne.)46 b FC(The)30 b FB(C)1213 4638 y FA(+)-8 b(+)1341 -4646 y FC(Pr)j(o)g(gr)g(amming)33 b(L)-5 b(anguage)p -FI(.)47 b(Sp)s(ecial)30 b(Edition.)46 b(Reading,)31 b(Mas-)349 -4755 y(sac)m(h)m(usetts)h(2000.)48 b(Addison-W)-8 b(esley)g(.)47 -b(ISBN)30 b(0-201-70073-5.)150 4938 y(Stroustrup,)f(Bjarne.)46 -b FC(The)30 b(Design)g(and)h(Evolution)g(of)g FB(C)2199 -4930 y FA(+)-8 b(+)2297 4938 y FI(.)46 b(Reading,)31 -b(Massac)m(h)m(usetts)h(1994.)349 5048 y(Addison-W)-8 -b(esley)32 b(Publishing)d(Compan)m(y)-8 b(.)46 b(ISBN)30 -b(0-201-54330-3.)150 5230 y(V)-8 b(redeman)31 b(de)f(V)-8 -b(ries,)31 b(Jan.)45 b FC(Persp)-5 b(e)g(ctive)p FI(.)47 -b(New)30 b(Y)-8 b(ork)31 b(1968.)48 b(Do)m(v)m(er)32 -b(Publications,)f(Inc.)349 5340 y(Standard)e(Bo)s(ok)j(Num)m(b)s(er:)44 -b(486-21086-4.)p eop end -%%Page: 266 278 -TeXDict begin 266 277 bop 150 -116 a FI(Bibliograph)m(y)2956 -b(266)386 299 y(The)30 b(b)s(eautiful)g(p)s(ersp)s(ectiv)m(e)g -(constructions)h(in)f(this)h(v)m(olume)g(are)f(tak)m(en)i(from)e(the) -386 408 y(original)i(w)m(ork,)e(\014rst)g(published)f(b)m(y)h(Henricus) -g(Hondius)g(in)g(Leiden)g(in)g(1604)i(and)386 518 y(1605.)150 -702 y(White,)g(Gw)m(en.)46 b FC(Persp)-5 b(e)g(ctive.)45 -b(A)30 b(Guide)h(for)g(A)n(rtists,)f(A)n(r)-5 b(chite)g(cts)31 -b(and)h(Designers)p FI(.)45 b(London)30 b(1968)349 812 -y(and)g(1982.)48 b(B)30 b(T)g(Batsford)h(Ltd.)45 b(ISBN)30 -b(0-7134-3412-0.)p eop end %%Page: 267 279 -TeXDict begin 267 278 bop 150 -116 a FI(App)s(endix)29 +TeXDict begin 267 278 bop 150 -116 a FI(Bibliograph)m(y)2956 +b(267)150 299 y FE(Bibliograph)l(y)150 547 y FI(Cundy)-8 +b(,)27 b(H.)i(Mart)m(yn)f(and)f(A.P)-8 b(.)29 b(Rollet.)42 +b FC(Mathematic)-5 b(al)32 b(Mo)-5 b(dels)p FI(.)41 b(Oxford)27 +b(1961.)42 b(Oxford)27 b(Univ)m(ersit)m(y)150 656 y(Press.)390 +795 y(Unfortunately)k(out)f(of)h(prin)m(t.)150 989 y(Finston,)g +(Laurence)f(D.)h FC(3DLDF:)i(The)g(Pr)-5 b(o)g(gr)g(am)p +FI(.)43 b(G\177)-45 b(ottingen)32 b(2003.)150 1182 y(Fisc)m(her,)45 +b(Gerd.)72 b FC(Eb)-5 b(ene)42 b(algebr)-5 b(aische)43 +b(Kurven)p FI(.)73 b(View)m(eg)42 b(Studium.)71 b(Aufbaukurs)39 +b(Mathematik.)150 1292 y(F)-8 b(riedr.)31 b(View)m(eg)h(&)e(Sohn)f(V)-8 +b(erlagsgesellsc)m(haft)35 b(m)m(bH.)30 b(Braunsc)m(h)m(w)m +(eig/Wiesbaden)i(1994.)150 1485 y(Gill,)74 b(Rob)s(ert)64 +b(W.)h FC(Cr)-5 b(e)g(ative)65 b(Persp)-5 b(e)g(ctive)p +FI(.)143 b(London)63 b(1975.)144 b(Thames)64 b(and)g(Hudson)f(Ltd.)150 +1595 y(ISBN)30 b(0-500-27056-2.)150 1788 y(Hobb)m(y)-8 +b(,)34 b(John)e(D.)i FC(A)g(User's)h(Manual)g(for)h(MetaPost)p +FI(.)48 b(A)-8 b(T)33 b(&)g(T)f(Bell)i(Lab)s(oratories.)49 +b(Murra)m(y)33 b(Hill,)150 1898 y(NJ.)d(No)h(date.)150 +2091 y(Jones,)i(Hu)m(w.)45 b FC(Computer)36 b(Gr)-5 b(aphics)36 +b(thr)-5 b(ough)36 b(Key)e(Mathematics)p FI(.)47 b(Springer-V)-8 +b(erlag)33 b(London)e(Lim-)150 2201 y(ited)g(2001.)42 +b(ISBN)31 b(1-85233-422-3.)150 2394 y(Kn)m(uth,)j(Donald)g(Ervin.)51 +b FC(Metafont:)d(The)36 b(Pr)-5 b(o)g(gr)g(am)p FI(.)54 +b(Computers)33 b(and)g(T)m(yp)s(esetting;)j(D.)f(Addison)150 +2504 y(W)-8 b(esley)32 b(Publishing)d(Compan)m(y)-8 b(,)31 +b(Inc.)40 b(Reading,)32 b(Massac)m(h)m(usetts)g(1986.)42 +b(ISBN)31 b(0-201-13438-1.)150 2697 y(Kn)m(uth,)41 b(Donald)e(Ervin.)67 +b FC(The)41 b(MET)-7 b(AF)n(ONTb)i(o)g(ok)p FI(.)66 b(Computers)39 +b(and)f(T)m(yp)s(esetting;)45 b(C.)39 b(Addison)150 2807 +y(W)-8 b(esley)32 b(Publishing)d(Compan)m(y)-8 b(,)31 +b(Inc.)40 b(Reading,)32 b(Massac)m(h)m(usetts)g(1986.)150 +3000 y(Kn)m(uth,)25 b(Donald)h(Ervin.)38 b FC(T)1103 +3019 y(E)1152 3000 y(X:)27 b(The)h(Pr)-5 b(o)g(gr)g(am)p +FI(.)41 b(Computers)24 b(and)g(T)m(yp)s(esetting;)k(B.)d(Addison)f(W)-8 +b(esley)150 3110 y(Publishing)29 b(Compan)m(y)-8 b(,)31 +b(Inc.)40 b(Reading,)31 b(Massac)m(h)m(usetts)i(1986.)42 +b(ISBN)31 b(0-201-13437-3.)150 3303 y(Kn)m(uth,)d(Donald)h(E.)g +FC(The)i(T)1124 3322 y(E)1174 3303 y(Xb)-5 b(o)g(ok)p +FI(.)41 b(Computers)27 b(and)h(T)m(yp)s(esetting;)i(A.)f(Addison)f(W)-8 +b(esley)30 b(Publish-)150 3412 y(ing)h(Compan)m(y)-8 +b(,)30 b(Inc.)41 b(Reading,)31 b(Massac)m(h)m(usetts)h(1986.)150 +3606 y(Kn)m(uth,)48 b(Donald)e(E.)f(and)g(Silvio)h(Levy)-8 +b(.)86 b FC(The)47 b Fy(CWEB)e FC(System)i(of)f(Structur)-5 +b(e)g(d)48 b(Do)-5 b(cumentation)p FI(.)150 3715 y(V)d(ersion)31 +b(3.64|F)-8 b(ebruary)32 b(2002.)150 3909 y(Salomon,)46 +b(Da)m(vid.)77 b FC(Computer)44 b(Gr)-5 b(aphics)46 b(and)e(Ge)-5 +b(ometric)45 b(Mo)-5 b(deling)p FI(.)77 b(Berlin)42 b(1999.)78 +b(Springer-)150 4018 y(V)-8 b(erlag.)42 b(ISBN:)31 b(0-387-98682-0.)150 +4212 y(Stallman,)57 b(Ric)m(hard)50 b(M.)i(and)e(Roland)h(McGrath.)103 +b FC(GNU)50 b(Make.)98 b(A)51 b(Pr)-5 b(o)g(gr)g(am)54 +b(for)e(Dir)-5 b(e)g(cting)150 4321 y(R)g(e)g(c)g(ompilation.)117 +b Fy(mak)m(e)57 b FC(V)-7 b(ersion)57 b(3.79)p FI(.)119 +b(Boston)57 b(2000.)121 b(F)-8 b(ree)57 b(Soft)m(w)m(are)g(F)-8 +b(oundation,)64 b(Inc.)150 4431 y(ISBN:)30 b(1-882114-80-9.)150 +4624 y(Stroustrup,)42 b(Bjarne.)74 b FC(The)43 b FB(C)1267 +4616 y FA(+)-8 b(+)1407 4624 y FC(Pr)j(o)g(gr)g(amming)45 +b(L)-5 b(anguage)p FI(.)74 b(Sp)s(ecial)42 b(Edition.)73 +b(Reading,)45 b(Mas-)150 4734 y(sac)m(h)m(usetts)32 b(2000.)42 +b(Addison-W)-8 b(esley)g(.)43 b(ISBN)30 b(0-201-70073-5.)150 +4927 y(Stroustrup,)46 b(Bjarne.)84 b FC(The)45 b(Design)g(and)i +(Evolution)f(of)g FB(C)2330 4919 y FA(+)-8 b(+)2428 4927 +y FI(.)83 b(Reading,)48 b(Massac)m(h)m(usetts)f(1994.)150 +5037 y(Addison-W)-8 b(esley)32 b(Publishing)d(Compan)m(y)-8 +b(.)41 b(ISBN)30 b(0-201-54330-3.)150 5230 y(V)-8 b(redeman)58 +b(de)f(V)-8 b(ries,)65 b(Jan.)122 b FC(Persp)-5 b(e)g(ctive)p +FI(.)123 b(New)57 b(Y)-8 b(ork)59 b(1968.)124 b(Do)m(v)m(er)59 +b(Publications,)65 b(Inc.)150 5340 y(Standard)29 b(Bo)s(ok)i(Num)m(b)s +(er:)40 b(486-21086-4.)p eop end +%%Page: 268 280 +TeXDict begin 268 279 bop 150 -116 a FI(Bibliograph)m(y)2956 +b(268)390 299 y(The)30 b(b)s(eautiful)g(p)s(ersp)s(ectiv)m(e)g +(constructions)h(in)f(this)g(v)m(olume)h(are)g(tak)m(en)h(from)390 +408 y(the)f(original)g(w)m(ork,)g(\014rst)e(published)g(b)m(y)h +(Henricus)g(Hondius)g(in)g(Leiden)g(in)g(1604)390 518 +y(and)g(1605.)150 702 y(White,)39 b(Gw)m(en.)57 b FC(Persp)-5 +b(e)g(ctive.)58 b(A)37 b(Guide)h(for)h(A)n(rtists,)g(A)n(r)-5 +b(chite)g(cts)38 b(and)h(Designers)p FI(.)57 b(London)35 +b(1968)150 812 y(and)30 b(1982.)42 b(B)31 b(T)f(Batsford)h(Ltd.)40 +b(ISBN)30 b(0-7134-3412-0.)p eop end +%%Page: 269 281 +TeXDict begin 269 280 bop 150 -116 a FI(App)s(endix)29 b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1558 -b(267)150 299 y FE(App)t(endix)52 b(A)121 b(GNU)53 b(F)-13 +b(269)150 299 y FE(App)t(endix)52 b(A)121 b(GNU)53 b(F)-13 b(ree)53 b(Do)t(cumen)l(tation)f(License)1396 502 y FI(V)-8 b(ersion)31 b(1.2,)h(No)m(v)m(em)m(b)s(er)g(2002)390 635 y(Cop)m(yrigh)m(t)842 632 y(c)817 635 y FG(\015)e @@ -51119,10 +51155,10 @@ 5340 y(b)s(eing)e(those)h(of)g(In)m(v)-5 b(arian)m(t)27 b(Sections,)i(in)d(the)h(notice)h(that)f(sa)m(ys)g(that)g(the)g(Do)s (cumen)m(t)g(is)g(released)p eop end -%%Page: 268 280 -TeXDict begin 268 279 bop 150 -116 a FI(App)s(endix)29 +%%Page: 270 282 +TeXDict begin 270 281 bop 150 -116 a FI(App)s(endix)29 b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1558 -b(268)330 299 y(under)26 b(this)i(License.)40 b(If)27 +b(270)330 299 y(under)26 b(this)i(License.)40 b(If)27 b(a)h(section)h(do)s(es)f(not)f(\014t)h(the)g(ab)s(o)m(v)m(e)h (de\014nition)e(of)h(Secondary)f(then)h(it)g(is)330 408 y(not)k(allo)m(w)m(ed)i(to)e(b)s(e)g(designated)g(as)g(In)m(v)-5 @@ -51217,10 +51253,10 @@ 5340 y(notice)37 b(sa)m(ying)g(this)e(License)i(applies)e(to)i(the)f (Do)s(cumen)m(t)g(are)g(repro)s(duced)e(in)i(all)g(copies,)j(and)p eop end -%%Page: 269 281 -TeXDict begin 269 280 bop 150 -116 a FI(App)s(endix)29 +%%Page: 271 283 +TeXDict begin 271 282 bop 150 -116 a FI(App)s(endix)29 b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1558 -b(269)330 299 y(that)27 b(y)m(ou)g(add)f(no)h(other)f(conditions)h +b(271)330 299 y(that)27 b(y)m(ou)g(add)f(no)h(other)f(conditions)h (whatso)s(ev)m(er)h(to)f(those)g(of)g(this)f(License.)40 b(Y)-8 b(ou)27 b(ma)m(y)g(not)g(use)330 408 y(tec)m(hnical)35 b(measures)d(to)i(obstruct)f(or)g(con)m(trol)h(the)f(reading)g(or)g @@ -51308,10 +51344,10 @@ h(title)h(as)510 5340 y(a)e(previous)f(v)m(ersion)g(if)h(the)f (original)i(publisher)d(of)h(that)h(v)m(ersion)g(giv)m(es)h(p)s (ermission.)p eop end -%%Page: 270 282 -TeXDict begin 270 281 bop 150 -116 a FI(App)s(endix)29 +%%Page: 272 284 +TeXDict begin 272 283 bop 150 -116 a FI(App)s(endix)29 b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1558 -b(270)360 299 y(B.)61 b(List)31 b(on)f(the)h(Title)g(P)m(age,)i(as)d +b(272)360 299 y(B.)61 b(List)31 b(on)f(the)h(Title)g(P)m(age,)i(as)d (authors,)h(one)g(or)f(more)h(p)s(ersons)e(or)h(en)m(tities)j(resp)s (onsible)c(for)510 408 y(authorship)c(of)h(the)h(mo)s(di\014cations)f (in)g(the)g(Mo)s(di\014ed)f(V)-8 b(ersion,)28 b(together)g(with)d(at)i @@ -51390,10 +51426,10 @@ b(license)g(notice.)57 b(These)330 5340 y(titles)32 b(m)m(ust)e(b)s(e)g (distinct)h(from)e(an)m(y)i(other)g(section)g(titles.)p eop end -%%Page: 271 283 -TeXDict begin 271 282 bop 150 -116 a FI(App)s(endix)29 +%%Page: 273 285 +TeXDict begin 273 284 bop 150 -116 a FI(App)s(endix)29 b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1558 -b(271)330 299 y(Y)-8 b(ou)43 b(ma)m(y)g(add)f(a)g(section)i(En)m +b(273)330 299 y(Y)-8 b(ou)43 b(ma)m(y)g(add)f(a)g(section)i(En)m (titled)f(\\Endorsemen)m(ts",)j(pro)m(vided)c(it)h(con)m(tains)g (nothing)g(but)330 408 y(endorsemen)m(ts)30 b(of)g(y)m(our)f(Mo)s (di\014ed)g(V)-8 b(ersion)31 b(b)m(y)e(v)-5 b(arious)30 @@ -51480,10 +51516,10 @@ 5340 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)f(or)h(on)f(a)g(v)m (olume)h(of)g(a)f(storage)i(or)e(distribution)g(medium,)g(is)h(called)p eop end -%%Page: 272 284 -TeXDict begin 272 283 bop 150 -116 a FI(App)s(endix)29 +%%Page: 274 286 +TeXDict begin 274 285 bop 150 -116 a FI(App)s(endix)29 b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1558 -b(272)330 299 y(an)30 b(\\aggregate")k(if)c(the)g(cop)m(yrigh)m(t)i +b(274)330 299 y(an)30 b(\\aggregate")k(if)c(the)g(cop)m(yrigh)m(t)i (resulting)e(from)f(the)i(compilation)g(is)f(not)h(used)e(to)i(limit)g (the)330 408 y(legal)d(righ)m(ts)f(of)g(the)g(compilation's)h(users)e (b)s(ey)m(ond)g(what)g(the)h(individual)f(w)m(orks)g(p)s(ermit.)39 @@ -51565,10 +51601,10 @@ (ersion)g(ev)m(er)g(published)e(\(not)i(as)g(a)f(draft\))h(b)m(y)f(the) h(F)-8 b(ree)330 5016 y(Soft)m(w)m(are)31 b(F)-8 b(oundation.)p eop end -%%Page: 273 285 -TeXDict begin 273 284 bop 150 -116 a FI(App)s(endix)29 +%%Page: 275 287 +TeXDict begin 275 286 bop 150 -116 a FI(App)s(endix)29 b(A:)h(GNU)h(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License)1558 -b(273)150 299 y Fx(A.0.1)62 b(ADDENDUM:)41 b(Ho)m(w)g(to)g(use)g(this)g +b(275)150 299 y Fx(A.0.1)62 b(ADDENDUM:)41 b(Ho)m(w)g(to)g(use)g(this)g (License)g(for)h(y)m(our)f(do)s(cumen)m(ts)150 543 y FI(T)-8 b(o)35 b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m(t)g(y)m (ou)f(ha)m(v)m(e)i(written,)g(include)f(a)f(cop)m(y)i(of)f(the)f @@ -51603,32 +51639,32 @@ (license,)k(suc)m(h)43 b(as)g(the)g(GNU)150 2392 y(General)31 b(Public)f(License,)i(to)f(p)s(ermit)e(their)i(use)f(in)g(free)g(soft)m (w)m(are.)p eop end -%%Page: 274 286 -TeXDict begin 274 285 bop 150 -116 a FI(Data)32 b(T)m(yp)s(e)e(and)g(V) --8 b(ariable)31 b(Index)2245 b(274)150 299 y FE(Data)54 +%%Page: 276 288 +TeXDict begin 276 287 bop 150 -116 a FI(Data)32 b(T)m(yp)s(e)e(and)g(V) +-8 b(ariable)31 b(Index)2245 b(276)150 299 y FE(Data)54 b(T)l(yp)t(e)g(and)f(V)-13 b(ariable)53 b(Index)150 638 y FH(A)150 755 y Fs(angle)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(141)150 +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(142)150 842 y Fs(angle_hex_hex)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)42 b Fr(257)150 929 y Fs(angle_hex_square)12 b Fo(.)k(.)c(.)h(.)f +h(.)42 b Fr(259)150 929 y Fs(angle_hex_square)12 b Fo(.)k(.)c(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)38 b Fr(257)150 1017 y Fs(arrow)10 b +f(.)g(.)h(.)f(.)38 b Fr(259)150 1017 y Fs(arrow)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)36 b Fr(156)150 1104 y Fs(axis)11 b Fo(.)j(.)e(.)g(.)h(.)f +g(.)h(.)f(.)36 b Fr(157)150 1104 y Fs(axis)11 b Fo(.)j(.)e(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 -b Fr(141)150 1192 y Fs(axis_h)18 b Fo(.)c(.)e(.)h(.)f(.)g(.)h(.)f(.)g +b Fr(142)150 1192 y Fs(axis_h)18 b Fo(.)c(.)e(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)44 b Fr(201,)27 b(211)150 1279 +f(.)g(.)h(.)f(.)g(.)h(.)44 b Fr(202,)27 b(213)150 1279 y Fs(axis_v)18 b Fo(.)c(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)44 b Fr(201,)27 b(211)150 1366 y Fs(AXON)11 b Fo(.)j(.)e(.)g(.)h(.) +h(.)44 b Fr(202,)27 b(213)150 1366 y Fs(AXON)11 b Fo(.)j(.)e(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 -b Fr(105)150 1600 y FH(B)150 1717 y Fs(background_color)13 +b Fr(106)150 1600 y FH(B)150 1717 y Fs(background_color)13 b Fo(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 b Fr(83)150 1804 y Fs(background_color_vector)26 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.) @@ -51649,50 +51685,50 @@ (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fr(77)150 2329 y Fs(bool_point)23 b Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fr(112)150 2416 y Fs(bool_point_pair) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fr(113)150 2416 y Fs(bool_point_pair) 14 b Fo(.)h(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)40 b Fr(112)150 +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)40 b Fr(113)150 2504 y Fs(bool_point_quadruple)6 b Fo(.)17 b(.)c(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 -b Fr(112)150 2591 y Fs(bool_real)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h +b Fr(113)150 2591 y Fs(bool_real)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fr(77)150 2678 y Fs(bool_real_point)14 b Fo(.)h(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)40 -b Fr(113)150 2931 y FH(C)150 3048 y Fs(center)10 b Fo(.)k(.)e(.)g(.)h +b Fr(114)150 2931 y FH(C)150 3048 y Fs(center)10 b Fo(.)k(.)e(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(189,)27 b(205,)g(236)150 +g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(190,)27 b(207,)g(238)150 3135 y Fs(Circle)21 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)45 b Fr(35,)27 b(227)150 3222 y Fs(CIRCLE)9 +f(.)g(.)h(.)f(.)45 b Fr(35,)27 b(229)150 3222 y Fs(CIRCLE)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)34 b Fr(236)150 3310 y Fs(circles)7 b Fo(.)14 +(.)g(.)h(.)34 b Fr(238)150 3310 y Fs(circles)7 b Fo(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -33 b Fr(236)150 3397 y Fs(Color)11 b Fo(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h +33 b Fr(238)150 3397 y Fs(Color)11 b Fo(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 b Fr(80)150 3485 y Fs(connectors)23 b Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fr(157)150 3572 y Fs(Cuboid)21 +g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fr(158)150 3572 y Fs(Cuboid)21 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45 -b Fr(46,)27 b(246)150 3660 y Fs(CURR_Y)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f +b Fr(46,)27 b(248)150 3660 y Fs(CURR_Y)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 -b Fr(111)150 3747 y Fs(CURR_Z)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) +b Fr(112)150 3747 y Fs(CURR_Z)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(111)150 +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(112)150 3834 y Fs(cyan)13 b Fo(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fr(83)150 3922 y Fs(cycle_switch)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)44 b Fr(156)150 4175 y FH(D)150 4291 y Fs(dashed)9 +h(.)f(.)44 b Fr(157)150 4175 y FH(D)150 4291 y Fs(dashed)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)34 b Fr(156)150 4378 y Fs(default_background)10 +(.)g(.)h(.)34 b Fr(157)150 4378 y Fs(default_background)10 b Fo(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fr(83)150 4466 y Fs(default_color)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h @@ -51702,76 +51738,76 @@ (.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fr(83)150 4641 y Fs(default_focus)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b -Fr(142)150 4728 y Fs(DEFAULT_NUMBER_OF_POINTS)24 b Fo(.)13 +Fr(143)150 4728 y Fs(DEFAULT_NUMBER_OF_POINTS)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 -b Fr(211)150 4815 y Fs(depth)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) +b Fr(213)150 4815 y Fs(depth)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(246)150 +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(248)150 4903 y Fs(dihedral_angle)16 b Fo(.)g(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)43 b Fr(248,)27 b(252,)g(254)150 +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)43 b Fr(250,)27 b(254,)g(256)150 4990 y Fs(direction)14 b Fo(.)g(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -40 b Fr(141,)27 b(144)150 5078 y Fs(distance)15 b Fo(.)g(.)d(.)g(.)h(.) +40 b Fr(142,)27 b(145)150 5078 y Fs(distance)15 b Fo(.)g(.)d(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)41 b Fr(141,)27 b(147)150 +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)41 b Fr(142,)27 b(148)150 5165 y Fs(do_help_lines)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)42 b Fr(157)150 5253 y Fs(do_labels)24 b Fo(.)13 +h(.)42 b Fr(158)150 5253 y Fs(do_labels)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 -b Fr(102)150 5340 y Fs(DO_LABELS)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h +b Fr(103)150 5340 y Fs(DO_LABELS)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fr(100)2025 638 +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fr(101)2025 638 y Fs(do_output)26 b Fo(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)50 -b Fr(111,)27 b(156,)g(236)2025 726 y Fs(Dodecahedron)11 +b Fr(112,)27 b(157,)g(238)2025 726 y Fs(Dodecahedron)11 b Fo(.)j(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)36 b Fr(48,)27 -b(252)2025 813 y Fs(dot)14 b Fo(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 -b Fr(99)2025 900 y Fs(DRAW)13 b Fo(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f +b(254)2025 813 y Fs(dot)13 b Fo(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b +Fr(100)2025 900 y Fs(DRAW)13 b Fo(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 b Fr(85)2025 988 y Fs(draw_color)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 b Fr(156)2025 1075 y Fs(DRAWDOT)8 +f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 b Fr(157)2025 1075 y Fs(DRAWDOT)8 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) g(.)h(.)f(.)34 b Fr(85)2025 1163 y Fs(drawdot_color)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)43 b -Fr(111)2025 1250 y Fs(drawdot_value)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h +Fr(112)2025 1250 y Fs(drawdot_value)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)43 b Fr(110)2025 1493 y FH(E)2025 1610 +g(.)h(.)f(.)g(.)43 b Fr(111)2025 1493 y FH(E)2025 1610 y Fs(edge_radius)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)46 b Fr(248)2025 1697 y Fs(edges)10 b Fo(.)j(.)g(.)f(.)g(.)h(.) +f(.)g(.)46 b Fr(250)2025 1697 y Fs(edges)10 b Fo(.)j(.)g(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 -b Fr(245)2025 1785 y Fs(Ellipse)18 b Fo(.)c(.)e(.)g(.)h(.)f(.)g(.)h(.)f +b Fr(247)2025 1785 y Fs(Ellipse)18 b Fo(.)c(.)e(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)44 b Fr(35,)27 b(211)2025 1872 +h(.)f(.)g(.)h(.)f(.)g(.)44 b Fr(35,)27 b(213)2025 1872 y Fs(ELLIPSE)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)g(.)h(.)33 b Fr(236)2025 1959 y Fs(ellipses)25 +g(.)g(.)h(.)f(.)g(.)h(.)33 b Fr(238)2025 1959 y Fs(ellipses)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -50 b Fr(236)2025 2212 y FH(F)2025 2328 y Fs(face_radius)22 +50 b Fr(238)2025 2212 y FH(F)2025 2328 y Fs(face_radius)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 -b Fr(248)2025 2416 y Fs(faces)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h +b Fr(250)2025 2416 y Fs(faces)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b -Fr(245)2025 2503 y Fs(FILL)13 b Fo(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f +Fr(247)2025 2503 y Fs(FILL)13 b Fo(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 b Fr(85)2025 2591 y Fs(fill_color)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 b Fr(156)2025 2678 +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 b Fr(157)2025 2678 y Fs(fill_draw_value)14 b Fo(.)h(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 -b Fr(156)2025 2765 y Fs(FILLDRAW)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h +b Fr(157)2025 2765 y Fs(FILLDRAW)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fr(85)2025 2853 y Fs(focus)11 b Fo(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f @@ -51779,13 +51815,13 @@ h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fr(62)2025 2940 y Fs(Focus)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(141)2025 3028 y Fs(focus0)9 +f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(142)2025 3028 y Fs(focus0)9 b Fo(.)k(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)35 b Fr(211)2025 3115 y Fs(focus1)9 b Fo(.)k(.)f(.)h(.)f(.)g +(.)f(.)g(.)35 b Fr(213)2025 3115 y Fs(focus1)9 b Fo(.)k(.)f(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 -b Fr(211)2025 3349 y FH(G)2025 3465 y Fs(gray)13 b Fo(.)g(.)f(.)g(.)g +b Fr(213)2025 3349 y FH(G)2025 3465 y Fs(gray)13 b Fo(.)g(.)f(.)g(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h (.)38 b Fr(83)2025 3553 y Fs(green)11 b Fo(.)i(.)g(.)f(.)g(.)h(.)f(.)g @@ -51799,47 +51835,47 @@ (.)f(.)g(.)45 b Fr(83)2025 3980 y FH(H)2025 4097 y Fs(height)9 b Fo(.)k(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)35 b Fr(246)2025 4184 y Fs(help_color)14 b +(.)f(.)g(.)35 b Fr(248)2025 4184 y Fs(help_color)14 b Fo(.)g(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b Fr(83,)27 -b(157)2025 4272 y Fs(help_color_vector)12 b Fo(.)k(.)c(.)g(.)h(.)f(.)g +b(158)2025 4272 y Fs(help_color_vector)12 b Fo(.)k(.)c(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)g(.)38 b Fr(83)2025 4359 y Fs(help_dash_pattern)11 b Fo(.)16 b(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)37 b Fr(157)2025 4446 +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)37 b Fr(158)2025 4446 y Fs(hexagon_radius)15 b Fo(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)41 -b Fr(257)2025 4699 y FH(I)2025 4816 y Fs(Icosahedron)12 +b Fr(259)2025 4699 y FH(I)2025 4816 y Fs(Icosahedron)12 b Fo(.)j(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fr(50,)27 -b(254)2025 4903 y Fs(IDENTITY_TRANSFORM)10 b Fo(.)17 +b(256)2025 4903 y Fs(IDENTITY_TRANSFORM)10 b Fo(.)17 b(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(88)2025 4990 y Fs(in_stream)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) 49 b Fr(84)2025 5078 y Fs(internal_angle)15 b Fo(.)g(.)e(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)41 b Fr(195)2025 5165 y Fs(INVALID_BOOL_POINT)9 +(.)h(.)f(.)g(.)h(.)41 b Fr(196)2025 5165 y Fs(INVALID_BOOL_POINT)9 b Fo(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fr(113)2025 5253 +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fr(114)2025 5253 y Fs(INVALID_BOOL_POINT_PAIR)25 b Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46 b Fr(113)2025 +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46 b Fr(114)2025 5340 y Fs(INVALID_BOOL_POINT_QUADRUPLE)13 b Fo(.)18 b(.)13 -b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fr(113)p +b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fr(114)p eop end -%%Page: 275 287 -TeXDict begin 275 286 bop 150 -116 a FI(Data)32 b(T)m(yp)s(e)e(and)g(V) --8 b(ariable)31 b(Index)2245 b(275)150 299 y Fs +%%Page: 277 289 +TeXDict begin 277 288 bop 150 -116 a FI(Data)32 b(T)m(yp)s(e)e(and)g(V) +-8 b(ariable)31 b(Index)2245 b(277)150 299 y Fs (INVALID_BOOL_REAL_POINT)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fr(113)150 386 +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fr(114)150 386 y Fs(INVALID_LINE)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)44 b Fr(144)150 473 y Fs(INVALID_PLANE)17 b Fo(.)e(.)d(.)g(.)h(.)f +f(.)44 b Fr(145)150 473 y Fs(INVALID_PLANE)17 b Fo(.)e(.)d(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)42 b Fr(147)150 561 y Fs(INVALID_POINT)17 +f(.)g(.)h(.)f(.)g(.)h(.)42 b Fr(148)150 561 y Fs(INVALID_POINT)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b -Fr(113)150 648 y Fs(INVALID_REAL)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f +Fr(114)150 648 y Fs(INVALID_REAL)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)45 b Fr(78)150 735 y Fs(INVALID_REAL_PAIR)12 b Fo(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) @@ -51851,23 +51887,23 @@ g(.)h(.)37 b Fr(88)150 997 y Fs(ISO)13 b Fo(.)g(.)f(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 -b Fr(105)150 1231 y FH(L)150 1347 y Fs(Label)11 b Fo(.)j(.)e(.)g(.)g(.) +b Fr(106)150 1231 y FH(L)150 1347 y Fs(Label)10 b Fo(.)j(.)g(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 -b Fr(99)150 1434 y Fs(labels)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(102)150 +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 +b Fr(100)150 1434 y Fs(labels)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(103)150 1521 y Fs(light_gray)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)47 b Fr(83)150 1609 y Fs(Line)11 b Fo(.)j(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)37 b Fr(144)150 1696 y Fs(line_switch)22 +(.)h(.)f(.)g(.)h(.)37 b Fr(145)150 1696 y Fs(line_switch)22 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45 -b Fr(155)150 1783 y Fs(linear_eccentricity)8 b Fo(.)16 +b Fr(156)150 1783 y Fs(linear_eccentricity)8 b Fo(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)34 b Fr(211)150 2035 y FH(M)150 2152 +(.)g(.)h(.)f(.)g(.)34 b Fr(213)150 2035 y FH(M)150 2152 y Fs(magenta)8 b Fo(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fr(83)150 2239 y Fs(matrix)10 @@ -51884,36 +51920,36 @@ h(.)f(.)43 b Fr(78)150 2588 y Fs(MAX_Z)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 -b Fr(106)150 2675 y Fs(MEAN_Z)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) +b Fr(107)150 2675 y Fs(MEAN_Z)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(106)150 +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(107)150 2763 y Fs(measurement_units)11 b Fo(.)16 b(.)c(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 -b Fr(111)150 2850 y Fs(measurement_units)29 b(\(Point\))7 +b Fr(112)150 2850 y Fs(measurement_units)29 b(\(Point\))7 b Fo(.)14 b(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)32 b Fr(10)150 2937 y Fs(MIN_Z)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 -b Fr(106)150 3180 y FH(N)150 3296 y Fs(name)13 b Fo(.)g(.)f(.)g(.)h(.)f +b Fr(107)150 3180 y FH(N)150 3296 y Fs(name)13 b Fo(.)g(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fr(80)150 3383 y Fs(NO_SORT)7 b Fo(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fr(106)150 +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fr(107)150 3471 y Fs(normal)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(147)150 3558 y Fs(null_coordinates) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(148)150 3558 y Fs(null_coordinates) 13 b Fo(.)j(.)d(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 b Fr(78)150 3645 y Fs(number_of_points)12 b Fo(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 -b Fr(205)150 3733 y Fs(number_of_polygon_types)25 b Fo(.)13 +b Fr(207)150 3733 y Fs(number_of_polygon_types)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 -b Fr(248)150 3820 y Fs(numerical_eccentricity)27 b Fo(.)12 +b Fr(250)150 3820 y Fs(numerical_eccentricity)27 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)48 b Fr(211)150 4072 y FH(O)150 4188 y Fs(on_free_store)12 -b Fo(.)j(.)d(.)h(.)f(.)g(.)h(.)f(.)38 b Fr(80,)27 b(110,)g(156,)g(195,) -g(201,)g(236)150 4275 y Fs(orange)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g +(.)48 b Fr(213)150 4072 y FH(O)150 4188 y Fs(on_free_store)12 +b Fo(.)j(.)d(.)h(.)f(.)g(.)h(.)f(.)38 b Fr(80,)27 b(111,)g(157,)g(196,) +g(202,)g(238)150 4275 y Fs(orange)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fr(83)150 4363 y Fs(orange_red)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g @@ -51921,655 +51957,660 @@ g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fr(83)150 4450 y Fs(origin)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(113)150 4537 y Fs(out_stream)15 +(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(114)150 4537 y Fs(out_stream)15 b Fo(.)f(.)f(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)41 b Fr(53,)26 b(84)150 4787 y FH(P)150 4904 y Fs(PARALLEL_X_Y)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)44 -b Fr(105)150 4991 y Fs(PARALLEL_X_Z)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)h(.)f +b Fr(106)150 4991 y Fs(PARALLEL_X_Z)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)44 b Fr(105)150 5078 y Fs(PARALLEL_Z_Y)18 +h(.)f(.)g(.)h(.)f(.)44 b Fr(106)150 5078 y Fs(PARALLEL_Z_Y)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)44 -b Fr(105)150 5165 y Fs(Path)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h +b Fr(106)150 5165 y Fs(Path)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)48 b Fr(27,)27 b(155)150 +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)48 b Fr(27,)27 b(156)150 5253 y Fs(PATH)11 b Fo(.)j(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fr(236)150 5340 +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fr(238)150 5340 y Fs(paths)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(236)2025 299 y Fs(pen)23 +g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(238)2025 299 y Fs(pen)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)49 b Fr(111,)27 b(156)2025 386 y Fs(pentagon_radius)14 +f(.)49 b Fr(112,)27 b(157)2025 399 y Fs(pentagon_radius)14 b Fo(.)h(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fr(252)2025 -474 y Fs(persp)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fr(254)2025 +500 y Fs(persp)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(141)2025 562 +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(142)2025 600 y Fs(PERSP)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(105)2025 649 y Fs(PI)15 +f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(106)2025 700 y Fs(PI)15 b Fo(.)e(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 b Fr(78)2025 737 y +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 b Fr(78)2025 801 y Fs(Picture)18 b Fo(.)c(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)44 b Fr(53,)27 b(102)2025 824 y Fs(pink)13 b Fo(.)g(.)f(.)g(.)g(.)h +g(.)44 b Fr(53,)27 b(103)2025 901 y Fs(pink)13 b Fo(.)g(.)f(.)g(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 -b Fr(83)2025 912 y Fs(Plane)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(147)2025 -999 y Fs(point)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +b Fr(83)2025 1001 y Fs(Plane)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(148)2025 +1102 y Fs(point)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(147)2025 1087 +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(148)2025 1202 y Fs(Point)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)47 b Fr(10,)27 b(110)2025 1174 y Fs +g(.)h(.)f(.)g(.)47 b Fr(10,)27 b(111)2025 1302 y Fs (Point::measurement_units)e Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)46 b Fr(10)2025 1262 +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)46 b Fr(10)2025 1403 y Fs(Point::projective_coordinates)13 b Fo(.)18 b(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 b Fr(10)2025 -1350 y Fs(Point::user_coordinates)26 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.) +1503 y Fs(Point::user_coordinates)26 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 b -Fr(10)2025 1437 y Fs(Point::view_coordinates)26 b Fo(.)13 +Fr(10)2025 1603 y Fs(Point::view_coordinates)26 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)47 b Fr(10)2025 1525 y Fs(Point::world_coordinates)25 +(.)47 b Fr(10)2025 1704 y Fs(Point::world_coordinates)25 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)46 b Fr(10)2025 1612 y Fs(point_pair)23 b Fo(.)12 +(.)g(.)46 b Fr(10)2025 1804 y Fs(point_pair)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 -b Fr(112)2025 1700 y Fs(points)9 b Fo(.)k(.)f(.)h(.)f(.)g(.)h(.)f(.)g +b Fr(113)2025 1904 y Fs(points)9 b Fo(.)k(.)f(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fr(157)2025 -1787 y Fs(Polygon)18 b Fo(.)c(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fr(158)2025 +2005 y Fs(Polygon)18 b Fo(.)c(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)44 b Fr(35,)27 b(189)2025 1875 y Fs(Polyhedron)14 +h(.)f(.)g(.)44 b Fr(35,)27 b(190)2025 2105 y Fs(Polyhedron)14 b Fo(.)g(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 b -Fr(47,)27 b(248)2025 1962 y Fs(position)7 b Fo(.)14 b(.)e(.)h(.)f(.)g +Fr(47,)27 b(250)2025 2205 y Fs(position)7 b Fo(.)14 b(.)e(.)h(.)f(.)g (.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)33 b Fr(100,)27 b(141,)g(144)2025 2050 y +f(.)g(.)h(.)33 b Fr(101,)27 b(142,)g(145)2025 2306 y Fs(projective_coordinates)f Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fr(110)2025 -2137 y Fs(projective_coordinates)30 b(\(Point\))18 b +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fr(111)2025 +2406 y Fs(projective_coordinates)30 b(\(Point\))18 b Fo(.)c(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b -Fr(10)2025 2225 y Fs(projective_extremes)9 b Fo(.)17 +Fr(10)2025 2506 y Fs(projective_extremes)9 b Fo(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)36 -b Fr(111,)27 b(156,)g(236)2025 2313 y Fs(pt)15 b Fo(.)e(.)f(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)41 b Fr(99)2025 2400 y Fs(purple)10 b Fo(.)j(.)f(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 -b Fr(83)2025 2654 y FH(R)2025 2770 y Fs(radius)18 b Fo(.)c(.)e(.)g(.)h +b Fr(112,)27 b(157,)g(238)2025 2607 y Fs(pt)14 b Fo(.)f(.)f(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g +(.)41 b Fr(100)2025 2707 y Fs(purple)10 b Fo(.)j(.)f(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 +b Fr(83)2025 3028 y FH(R)2025 3171 y Fs(radius)18 b Fo(.)c(.)e(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fr(195,)27 -b(227)2025 2858 y Fs(real)13 b Fo(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fr(196,)27 +b(229)2025 3271 y Fs(real)13 b Fo(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)38 -b Fr(77)2025 2945 y Fs(real_pair)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g +b Fr(77)2025 3371 y Fs(real_pair)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fr(77)2025 3033 +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fr(77)2025 3472 y Fs(real_short)24 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)48 b Fr(77)2025 3121 y Fs(real_triple)23 +g(.)h(.)f(.)g(.)48 b Fr(77)2025 3572 y Fs(real_triple)23 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)46 -b Fr(77)2025 3208 y Fs(Rectangle)15 b Fo(.)f(.)e(.)h(.)f(.)g(.)h(.)f(.) +b Fr(77)2025 3672 y Fs(Rectangle)15 b Fo(.)f(.)e(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)41 b Fr(35,)27 b(201)2025 3296 y Fs(RECTANGLE)d +(.)g(.)h(.)f(.)g(.)41 b Fr(35,)27 b(202)2025 3773 y Fs(RECTANGLE)d Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 -b Fr(236)2025 3383 y Fs(rectangles)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f +b Fr(238)2025 3873 y Fs(rectangles)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 b Fr(236)2025 3471 +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 b Fr(238)2025 3973 y Fs(red)14 b Fo(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fr(83)2025 -3558 y Fs(red_part)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +4074 y Fs(red_part)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fr(80)2025 3646 y +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fr(80)2025 4174 y Fs(Reg_Cl_Plane_Curve)24 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fr(35,)27 -b(205)2025 3733 y Fs(Reg_Polygon)12 b Fo(.)j(.)d(.)g(.)h(.)f(.)g(.)h(.) +b(207)2025 4274 y Fs(Reg_Polygon)12 b Fo(.)j(.)d(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)38 b Fr(35,)27 b(195)2025 3821 y Fs(REG_POLYGON)22 +(.)h(.)f(.)38 b Fr(35,)27 b(196)2025 4375 y Fs(REG_POLYGON)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 -b Fr(236)2025 3909 y Fs(reg_polygons)18 b Fo(.)d(.)d(.)g(.)h(.)f(.)g(.) +b Fr(238)2025 4475 y Fs(reg_polygons)18 b Fo(.)d(.)d(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)44 b Fr(236)2025 4162 y FH(S)2025 -4279 y Fs(Shape)11 b Fo(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)h(.)f(.)g(.)h(.)f(.)44 b Fr(238)2025 4796 y FH(S)2025 +4939 y Fs(Shape)11 b Fo(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fr(85)2025 4366 +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fr(85)2025 5039 y Fs(shapes)9 b Fo(.)k(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)35 b Fr(102)2025 4454 y Fs(short)10 +h(.)f(.)g(.)h(.)f(.)g(.)35 b Fr(103)2025 5139 y Fs(short)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)36 b Fr(195)2025 4541 y Fs(Solid)10 b +(.)g(.)h(.)f(.)36 b Fr(196)2025 5240 y Fs(Solid)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)36 b Fr(236)2025 4629 y Fs(Solid_Faced)22 +g(.)h(.)f(.)36 b Fr(238)2025 5340 y Fs(Solid_Faced)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 -b Fr(245)2025 4873 y FH(T)2025 4990 y Fs(Tetrahedron)12 -b Fo(.)j(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fr(47,)27 -b(248)2025 5077 y Fs(tex_stream)d Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fr(84)2025 5165 y Fs(text)13 -b Fo(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)38 b Fr(99)2025 5252 y Fs(transform)26 -b Fo(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)50 b Fr(102,)27 b(110,)g(141)2025 -5340 y Fs(Transform)16 b Fo(.)e(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)41 b Fr(18,)27 b(88)p eop end -%%Page: 276 288 -TeXDict begin 276 287 bop 150 -116 a FI(Data)32 b(T)m(yp)s(e)e(and)g(V) --8 b(ariable)31 b(Index)2245 b(276)150 299 y Fs(triangle_radius)27 -b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)49 b Fr(248,)27 b(254)150 386 -y Fs(Trunc_Octahedron)12 b Fo(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 -b Fr(257)150 630 y FH(U)150 746 y Fs(UNDRAW)10 b Fo(.)j(.)g(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 -b Fr(85)150 834 y Fs(UNDRAWDOT)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h +b Fr(247)p eop end +%%Page: 278 290 +TeXDict begin 278 289 bop 150 -116 a FI(Data)32 b(T)m(yp)s(e)e(and)g(V) +-8 b(ariable)31 b(Index)2245 b(278)150 299 y FH(T)150 +415 y Fs(Tetrahedron)12 b Fo(.)j(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 +b Fr(47,)27 b(250)150 503 y Fs(tex_stream)d Fo(.)13 b(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fr(84)150 +590 y Fs(text)11 b Fo(.)j(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b Fr(100)150 678 +y Fs(transform)26 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50 +b Fr(103,)27 b(111,)g(142)150 766 y Fs(Transform)16 b +Fo(.)e(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)42 +b Fr(18,)26 b(88)150 853 y Fs(triangle_radius)h Fo(.)12 +b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)49 b Fr(250,)27 b(256)150 941 y Fs(Trunc_Octahedron)12 +b Fo(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fr(259)150 1028 +y Fs(Truncated)28 b(Octahedron)13 b Fo(.)h(.)f(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 +b Fr(259)150 1262 y FH(U)150 1379 y Fs(UNDRAW)10 b Fo(.)j(.)g(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 +b Fr(85)150 1467 y Fs(UNDRAWDOT)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fr(85)150 921 +h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fr(85)150 1554 y Fs(UNFILL)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fr(85)150 1009 y Fs(UNFILLDRAW)24 +f(.)g(.)h(.)f(.)g(.)h(.)f(.)35 b Fr(85)150 1642 y Fs(UNFILLDRAW)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 -b Fr(85)150 1096 y Fs(up)14 b Fo(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +b Fr(85)150 1729 y Fs(up)14 b Fo(.)f(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)40 -b Fr(141)150 1184 y Fs(use_name)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h +b Fr(142)150 1817 y Fs(use_name)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)32 b Fr(80)150 -1271 y Fs(user_coordinates)12 b Fo(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h +1904 y Fs(user_coordinates)12 b Fo(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 -b Fr(110)150 1358 y Fs(user_coordinates)29 b(\(Point\))8 +b Fr(111)150 1992 y Fs(user_coordinates)29 b(\(Point\))8 b Fo(.)15 b(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)34 b Fr(10)150 1446 y Fs(user_transform)16 +(.)h(.)f(.)34 b Fr(10)150 2079 y Fs(user_transform)16 b Fo(.)g(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b -Fr(88)150 1689 y FH(V)150 1806 y Fs(vertex_radius)17 -b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b -Fr(248)2025 299 y Fs(vertices)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.) +Fr(88)2025 299 y FH(V)2025 428 y Fs(vertex_radius)17 +b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)43 b +Fr(250)2025 521 y Fs(vertices)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)50 b Fr(245)2025 390 +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)50 b Fr(247)2025 615 y Fs(view_coordinates)12 b Fo(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 -b Fr(110)2025 481 y Fs(view_coordinates)29 b(\(Point\))8 +b Fr(111)2025 709 y Fs(view_coordinates)29 b(\(Point\))8 b Fo(.)14 b(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)34 b Fr(10)2025 573 y Fs(violet)10 b Fo(.)j(.)f(.)h(.)f(.)g +(.)h(.)f(.)34 b Fr(10)2025 802 y Fs(violet)10 b Fo(.)j(.)f(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 -b Fr(83)2025 664 y Fs(violet_red)24 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g +b Fr(83)2025 896 y Fs(violet_red)24 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fr(83)2025 928 y -FH(W)2025 1052 y Fs(white)11 b Fo(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fr(83)2025 1171 +y FH(W)2025 1300 y Fs(white)11 b Fo(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b -Fr(83)2025 1144 y Fs(width)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f +Fr(83)2025 1394 y Fs(width)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(246)2025 -1235 y Fs(world_coordinates)11 b Fo(.)16 b(.)c(.)g(.)h(.)f(.)g(.)h(.)f +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(248)2025 +1487 y Fs(world_coordinates)11 b Fo(.)16 b(.)c(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)37 -b Fr(110)2025 1326 y Fs(world_coordinates)29 b(\(Point\))7 +b Fr(111)2025 1581 y Fs(world_coordinates)29 b(\(Point\))7 b Fo(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)33 b Fr(10)2025 1590 y FH(Y)2025 1715 y Fs(yellow)10 +(.)g(.)33 b Fr(10)2025 1857 y FH(Y)2025 1986 y Fs(yellow)10 b Fo(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)35 b Fr(83)2025 1806 y Fs(yellow_green)22 +(.)f(.)g(.)h(.)35 b Fr(83)2025 2079 y Fs(yellow_green)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)45 b Fr(83)p eop end -%%Page: 277 289 -TeXDict begin 277 288 bop 150 -116 a FI(F)-8 b(unction)31 -b(Index)2861 b(277)150 299 y FE(F)-13 b(unction)52 b(Index)150 +%%Page: 279 291 +TeXDict begin 279 290 bop 150 -116 a FI(F)-8 b(unction)31 +b(Index)2861 b(279)150 299 y FE(F)-13 b(unction)52 b(Index)150 610 y Fa(~)150 727 y Fs(~Cuboid)7 b Fo(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fr(247)150 +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)33 b Fr(249)150 815 y Fs(~Path)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(161)150 903 y +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(162)150 903 y Fs(~Point)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(115)150 991 y Fs(~Solid)9 +(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(116)150 991 y Fs(~Solid)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)34 b Fr(237)150 1227 y FH(A)150 1344 y Fs(align_with_axis)6 +(.)g(.)h(.)34 b Fr(239)150 1227 y FH(A)150 1344 y Fs(align_with_axis)6 b Fo(.)16 b(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)32 b Fr(97,)27 b(168)150 +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)32 b Fr(97,)27 b(169)150 1432 y Fs(angle)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(129)150 1520 +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(130)150 1520 y Fs(angle_point)11 b Fo(.)k(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)37 -b Fr(206,)27 b(218)150 1608 y Fs(append)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f +b Fr(208,)27 b(220)150 1608 y Fs(append)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 -b Fr(162)150 1696 y Fs(apply_transform)8 b Fo(.)15 b(.)e(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33 b Fr(86,)27 b(125,)g(170,)g(241) -150 1951 y FH(B)150 2068 y Fs(beginfig)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.) +b Fr(163)150 1696 y Fs(apply_transform)8 b Fo(.)15 b(.)e(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33 b Fr(86,)27 b(126,)g(171,)g(243) +150 1950 y FH(B)150 2068 y Fs(beginfig)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)32 b Fr(84)150 2156 y Fs(bool_point)23 b Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fr(112)150 2244 y Fs +g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fr(113)150 2243 y Fs (bool_point::operator=)28 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fr(112)150 +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 b Fr(113)150 2331 y Fs(bool_point_quadruple)6 b Fo(.)17 b(.)c(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 -b Fr(112)150 2419 y Fs(bool_point_quadruple::operato)q(r=)9 +b Fr(113)150 2419 y Fs(bool_point_quadruple::operato)q(r=)9 b Fo(.)18 b(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b -Fr(113)150 2507 y Fs(bool_real_point)14 b Fo(.)h(.)e(.)f(.)g(.)h(.)f(.) +Fr(114)150 2507 y Fs(bool_real_point)14 b Fo(.)h(.)e(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)g(.)40 b Fr(113)150 2595 y Fs(bool_real_point::operator=\(co)q -(nst)304 2682 y(bool_real_point&)8 b Fo(.)16 b(.)c(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)34 -b Fr(113)150 2937 y FH(C)150 3054 y Fs(Circle)9 b Fo(.)k(.)g(.)f(.)g(.) +(.)f(.)g(.)40 b Fr(114)150 2595 y Fs(bool_real_point::operator=)16 +b Fo(.)i(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 +b Fr(114)150 2849 y FH(C)150 2967 y Fs(Circle)9 b Fo(.)k(.)g(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 -b Fr(227)150 3142 y Fs(clean)22 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h +b Fr(229)150 3055 y Fs(clean)22 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46 b Fr(98,)27 b(120)150 -3230 y Fs(clear)14 b Fo(.)f(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fr(86,)27 b(104,)g(120,)g(163,) -g(244)150 3318 y Fs(Color)11 b Fo(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46 b Fr(99,)27 b(121)150 +3142 y Fs(clear)14 b Fo(.)f(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fr(86,)27 b(105,)g(121,)g(164,) +g(246)150 3230 y Fs(Color)11 b Fo(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 b -Fr(80)150 3406 y Fs(corner)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f +Fr(80)150 3318 y Fs(corner)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(203)150 -3493 y Fs(create_new_circle)11 b Fo(.)16 b(.)c(.)h(.)f(.)g(.)h(.)f(.)g +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(204)150 +3406 y Fs(create_new_circle)11 b Fo(.)16 b(.)c(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 -b Fr(227)150 3581 y Fs(create_new_color)13 b Fo(.)j(.)d(.)f(.)g(.)h(.)f +b Fr(229)150 3494 y Fs(create_new_color)13 b Fo(.)j(.)d(.)f(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)39 b Fr(81)150 3669 y Fs(create_new_cuboid)11 +h(.)f(.)g(.)39 b Fr(81)150 3581 y Fs(create_new_cuboid)11 b Fo(.)16 b(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fr(247)150 3757 +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fr(249)150 3669 y Fs(create_new_ellipse)9 b Fo(.)17 b(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)35 -b Fr(213)150 3845 y Fs(create_new_path)14 b Fo(.)h(.)e(.)f(.)g(.)h(.)f +b Fr(215)150 3757 y Fs(create_new_path)14 b Fo(.)h(.)e(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)40 b Fr(161)150 3933 y Fs(create_new_point)12 +h(.)f(.)g(.)40 b Fr(162)150 3845 y Fs(create_new_point)12 b Fo(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fr(114)150 4020 +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fr(115)150 3933 y Fs(create_new_rectangle)6 b Fo(.)17 b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 -b Fr(202)150 4108 y Fs(create_new_reg_polygon)27 b Fo(.)12 +b Fr(203)150 4021 y Fs(create_new_reg_polygon)27 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)48 b Fr(197)150 4196 y Fs(create_new_solid)12 b Fo(.)k(.)c(.)h(.)f +(.)48 b Fr(198)150 4108 y Fs(create_new_solid)12 b Fo(.)k(.)c(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)38 b Fr(237)150 4284 y Fs(cross_product)17 +f(.)g(.)h(.)f(.)38 b Fr(239)150 4196 y Fs(cross_product)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b -Fr(127)150 4372 y Fs(Cuboid)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f +Fr(128)150 4284 y Fs(Cuboid)9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(246)150 -4608 y FH(D)150 4725 y Fs(define_color_mp)15 b Fo(.)g(.)e(.)f(.)g(.)h +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 b Fr(248)150 +4520 y FH(D)150 4637 y Fs(define_color_mp)15 b Fo(.)g(.)e(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)40 b Fr(82)150 4813 y Fs(do_transform)18 +h(.)f(.)g(.)g(.)h(.)40 b Fr(82)150 4725 y Fs(do_transform)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)44 -b Fr(213)150 4901 y Fs(Dodecahedron)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)h(.)f +b Fr(215)150 4813 y Fs(Dodecahedron)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)44 b Fr(252)150 4989 y Fs(dot_product)22 +h(.)f(.)g(.)h(.)f(.)44 b Fr(254)150 4901 y Fs(dot_product)22 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45 -b Fr(126)150 5076 y Fs(dotlabel)7 b Fo(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f +b Fr(127)150 4989 y Fs(dotlabel)7 b Fo(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)33 b Fr(139,)27 b(182,)g(214)150 5164 y Fs(draw)13 +f(.)33 b Fr(140,)27 b(183,)g(216)150 5077 y Fs(draw)13 b Fo(.)g(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 -b Fr(135,)27 b(170,)g(242)150 5252 y Fs(draw_axes)d Fo(.)13 +b Fr(136,)27 b(171,)g(244)150 5164 y Fs(draw_axes)d Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 -b Fr(174)150 5340 y Fs(draw_help)26 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f +b Fr(175)150 5252 y Fs(draw_help)26 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50 -b Fr(136,)27 b(137,)g(173)2025 610 y Fs(draw_in_circle)15 -b Fo(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)41 b Fr(198)2025 -697 y Fs(draw_in_ellipse)14 b Fo(.)h(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +b Fr(137,)27 b(138,)g(174)150 5340 y Fs(draw_in_circle)15 +b Fo(.)h(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 b Fr(199)2025 +610 y Fs(draw_in_ellipse)14 b Fo(.)h(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 -b Fr(204)2025 785 y Fs(draw_in_rectangle)11 b Fo(.)16 +b Fr(206)2025 697 y Fs(draw_in_rectangle)11 b Fo(.)16 b(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)37 b Fr(226)2025 872 y Fs(draw_net)7 +(.)h(.)f(.)g(.)g(.)h(.)f(.)37 b Fr(228)2025 785 y Fs(draw_net)7 b Fo(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33 b Fr(251,)27 -b(254,)g(256)2025 959 y Fs(draw_out_circle)g Fo(.)12 +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33 b Fr(253,)27 +b(256,)g(258)2025 872 y Fs(draw_out_circle)g Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)50 b Fr(199,)27 b(200)2025 1047 y Fs(draw_out_ellipse)12 +(.)h(.)f(.)g(.)50 b Fr(200,)27 b(201)2025 959 y Fs(draw_out_ellipse)12 b Fo(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 b Fr(204)2025 -1134 y Fs(draw_out_rectangle)9 b Fo(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 b Fr(205)2025 +1047 y Fs(draw_out_rectangle)9 b Fo(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 -b Fr(226)2025 1221 y Fs(drawarrow)14 b Fo(.)g(.)e(.)h(.)f(.)g(.)h(.)f +b Fr(228)2025 1134 y Fs(drawarrow)14 b Fo(.)g(.)e(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)40 b Fr(137,)27 b(173)2025 1308 y Fs(drawdot)7 +f(.)g(.)g(.)h(.)40 b Fr(138,)27 b(174)2025 1221 y Fs(drawdot)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)33 b Fr(134)2025 1542 y FH(E)2025 1658 y Fs(Ellipse)7 +g(.)h(.)33 b Fr(135)2025 1454 y FH(E)2025 1570 y Fs(Ellipse)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)33 b Fr(211)2025 1745 y Fs(endfig)10 b Fo(.)j(.)f(.)h(.)f(.)g +g(.)h(.)33 b Fr(213)2025 1658 y Fs(endfig)10 b Fo(.)j(.)f(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 -b Fr(84)2025 1832 y Fs(epicycloid_pattern_1)6 b Fo(.)17 +b Fr(84)2025 1745 y Fs(epicycloid_pattern_1)6 b Fo(.)17 b(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)33 b Fr(233)2025 1919 y Fs(epsilon)18 +h(.)f(.)g(.)g(.)33 b Fr(235)2025 1832 y Fs(epsilon)18 b Fo(.)c(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 -b Fr(92,)27 b(120)2025 2007 y Fs(extract)21 b Fo(.)12 +b Fr(92,)27 b(121)2025 1919 y Fs(extract)21 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)45 b Fr(87,)27 b(140,)g(187,)g(242)2025 -2257 y FH(F)2025 2373 y Fs(fill)13 b Fo(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)h(.)f(.)g(.)h(.)45 b Fr(87,)27 b(141,)g(188,)g(244)2025 +2169 y FH(F)2025 2285 y Fs(fill)13 b Fo(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)39 b Fr(176,)27 b(177,)g(243)2025 2460 +f(.)g(.)h(.)f(.)39 b Fr(177,)27 b(178,)g(245)2025 2373 y Fs(filldraw)15 b Fo(.)f(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -42 b Fr(177,)27 b(243)2025 2547 y Fs(Focus)10 b Fo(.)j(.)g(.)f(.)g(.)h +42 b Fr(178,)27 b(245)2025 2460 y Fs(Focus)10 b Fo(.)j(.)g(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 -b Fr(142)2025 2780 y FH(G)2025 2897 y Fs(get_all_coords)15 +b Fr(143)2025 2693 y FH(G)2025 2809 y Fs(get_all_coords)15 b Fo(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)41 b Fr(119)2025 -2984 y Fs(get_axis_h)13 b Fo(.)h(.)e(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)41 b Fr(120)2025 +2897 y Fs(get_axis_h)13 b Fo(.)h(.)e(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 -b Fr(203,)27 b(217)2025 3071 y Fs(get_axis_v)13 b Fo(.)h(.)e(.)h(.)f(.) +b Fr(204,)27 b(219)2025 2984 y Fs(get_axis_v)13 b Fo(.)h(.)e(.)h(.)f(.) g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)39 b Fr(203,)27 b(217)2025 3158 +(.)f(.)g(.)h(.)f(.)g(.)39 b Fr(204,)27 b(219)2025 3071 y Fs(get_blue_part)18 b Fo(.)d(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)43 b Fr(82)2025 3246 y Fs(get_center)24 b Fo(.)13 +h(.)43 b Fr(82)2025 3158 y Fs(get_center)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)49 b Fr(189,)27 b(216,)g(238)2025 -3333 y Fs(get_circle_center)11 b Fo(.)16 b(.)c(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)49 b Fr(190,)27 b(218,)g(240)2025 +3246 y Fs(get_circle_center)11 b Fo(.)16 b(.)c(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)37 -b Fr(239)2025 3420 y Fs(get_circle_ptr)15 b Fo(.)g(.)e(.)f(.)g(.)h(.)f +b Fr(241)2025 3333 y Fs(get_circle_ptr)15 b Fo(.)g(.)e(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)41 b Fr(240)2025 3507 y Fs(get_coefficients)25 +h(.)f(.)g(.)h(.)41 b Fr(242)2025 3420 y Fs(get_coefficients)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)g(.)h(.)48 b Fr(206,)27 b(224)2025 3595 y +(.)f(.)g(.)g(.)h(.)48 b Fr(208,)27 b(226)2025 3507 y Fs(get_coord)d Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)48 b Fr(119)2025 3682 y Fs(get_copy)9 b Fo(.)14 +(.)g(.)h(.)48 b Fr(120)2025 3595 y Fs(get_copy)9 b Fo(.)14 b(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 -b Fr(85,)26 b(100,)i(117,)f(163,)g(237)2025 3769 y Fs(get_diameter)18 +b Fr(85,)26 b(101,)i(118,)f(164,)g(239)2025 3682 y Fs(get_diameter)18 b Fo(.)d(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 -b Fr(229)2025 3856 y Fs(get_direction)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g +b Fr(231)2025 3769 y Fs(get_direction)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)43 b Fr(143)2025 3944 y Fs(get_distance)10 +f(.)g(.)h(.)f(.)g(.)43 b Fr(144)2025 3856 y Fs(get_distance)10 b Fo(.)k(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fr(143,)27 b(149)2025 -4031 y Fs(get_element)c Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 b Fr(144,)27 b(150)2025 +3944 y Fs(get_element)c Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)46 b Fr(91)2025 4118 y Fs(get_ellipse_center)9 +h(.)f(.)g(.)h(.)46 b Fr(91)2025 4031 y Fs(get_ellipse_center)9 b Fo(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fr(239)2025 4206 +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fr(241)2025 4118 y Fs(get_ellipse_ptr)14 b Fo(.)h(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 -b Fr(240)2025 4293 y Fs(get_extremes)12 b Fo(.)j(.)d(.)g(.)h(.)f(.)g(.) +b Fr(242)2025 4206 y Fs(get_extremes)12 b Fo(.)j(.)d(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fr(87,)27 -b(140,)g(187,)g(242)2025 4380 y Fs(get_focus)d Fo(.)13 +b(141,)g(188,)g(244)2025 4293 y Fs(get_focus)d Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 -b Fr(216)2025 4467 y Fs(get_green_part)16 b Fo(.)f(.)e(.)f(.)g(.)h(.)f +b Fr(218)2025 4380 y Fs(get_green_part)16 b Fo(.)f(.)e(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)42 b Fr(82)2025 4555 y Fs(get_last_point)15 +f(.)g(.)g(.)h(.)f(.)42 b Fr(82)2025 4467 y Fs(get_last_point)15 b Fo(.)g(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)41 b Fr(185)2025 -4642 y Fs(get_line)15 b Fo(.)f(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)41 b Fr(186)2025 +4555 y Fs(get_line)15 b Fo(.)f(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)42 b Fr(130,)27 b(185)2025 4729 y Fs(get_line_switch)14 +g(.)42 b Fr(131,)27 b(186)2025 4642 y Fs(get_line_switch)14 b Fo(.)h(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fr(184)2025 -4816 y Fs(get_linear_eccentricity)25 b Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46 b Fr(217)2025 -4904 y Fs(get_maximum_z)11 b Fo(.)k(.)d(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fr(87,)27 b(140,)g(187,)g(242)2025 -4991 y Fs(get_mean_z)15 b Fo(.)f(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 b Fr(87,)27 b(140,)g(187,)g(242) -2025 5078 y Fs(get_minimum_z)11 b Fo(.)k(.)d(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fr(87,)27 b(140,)g(187,)g(242)2025 -5165 y Fs(get_name)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fr(185)2025 +4729 y Fs(get_linear_eccentricity)25 b Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)46 b Fr(219)2025 +4816 y Fs(get_maximum_z)11 b Fo(.)k(.)d(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fr(87,)27 b(141,)g(188,)g(244)2025 +4904 y Fs(get_mean_z)15 b Fo(.)f(.)f(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 b Fr(87,)27 b(141,)g(188,)g(244) +2025 4991 y Fs(get_minimum_z)11 b Fo(.)k(.)d(.)g(.)h(.)f(.)g(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fr(87,)27 b(141,)g(188,)g(244)2025 +5078 y Fs(get_name)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fr(82)2025 5253 y +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fr(82)2025 5165 y Fs(get_net)18 b Fo(.)c(.)e(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b Fr(250,)28 b(253,)f(256,)g(258) -2025 5340 y Fs(get_normal)c Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b Fr(252,)28 b(255,)f(258,)g(260) +2025 5253 y Fs(get_normal)c Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)47 b Fr(185)p eop end -%%Page: 278 290 -TeXDict begin 278 289 bop 150 -116 a FI(F)-8 b(unction)31 -b(Index)2861 b(278)150 299 y Fs(get_numerical_eccentricity)16 -b Fo(.)i(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 -b Fr(217)150 387 y Fs(get_path)26 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50 b Fr(145)150 474 -y Fs(get_path_ptr)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)44 b Fr(240)150 562 y Fs(get_persp)24 b Fo(.)13 b(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fr(143)150 -650 y Fs(get_persp_element)11 b Fo(.)16 b(.)c(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 -b Fr(143)150 738 y Fs(get_plane)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h +h(.)f(.)g(.)h(.)f(.)47 b Fr(186)2025 5340 y Fs +(get_numerical_eccentricity)16 b Fo(.)i(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)42 b Fr(219)p eop end +%%Page: 280 292 +TeXDict begin 280 291 bop 150 -116 a FI(F)-8 b(unction)31 +b(Index)2861 b(280)150 299 y Fs(get_path)26 b Fo(.)12 +b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50 +b Fr(146)150 387 y Fs(get_path_ptr)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) +h(.)f(.)g(.)h(.)f(.)44 b Fr(242)150 474 y Fs(get_persp)24 +b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 +b Fr(144)150 562 y Fs(get_persp_element)11 b Fo(.)16 +b(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fr(144)150 650 y Fs(get_plane)24 +b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 +b Fr(186)150 738 y Fs(get_point)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fr(185)150 825 y -Fs(get_point)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)48 b Fr(184)150 913 y Fs(get_position)18 -b Fo(.)d(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)44 -b Fr(143)150 1001 y Fs(get_radius)13 b Fo(.)h(.)e(.)h(.)f(.)g(.)h(.)f +Fs(get_position)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) +44 b Fr(144)150 913 y Fs(get_radius)13 b Fo(.)h(.)e(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)39 b Fr(197,)27 b(228)150 1088 y Fs(get_rectangle_center)6 +f(.)g(.)g(.)39 b Fr(198,)27 b(230)150 1001 y Fs(get_rectangle_center)6 b Fo(.)17 b(.)c(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)32 b Fr(239)150 1176 y Fs(get_rectangle_ptr)11 +(.)g(.)h(.)f(.)g(.)h(.)32 b Fr(241)150 1088 y Fs(get_rectangle_ptr)11 b Fo(.)16 b(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fr(240)150 1264 +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fr(242)150 1176 y Fs(get_red_part)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)g(.)45 b Fr(82)150 1352 y Fs(get_reg_polygon_center)27 +(.)f(.)g(.)45 b Fr(82)150 1264 y Fs(get_reg_polygon_center)27 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h -(.)f(.)g(.)48 b Fr(239)150 1439 y Fs(get_reg_polygon_ptr)8 +(.)f(.)g(.)48 b Fr(241)150 1352 y Fs(get_reg_polygon_ptr)8 b Fo(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fr(240)150 1527 y Fs(get_shape_center) +(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fr(242)150 1439 y Fs(get_shape_center) 12 b Fo(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fr(238)150 -1615 y Fs(get_shape_ptr)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 b Fr(240)150 +1527 y Fs(get_shape_ptr)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)42 b Fr(239)150 1703 y Fs(get_size)26 b Fo(.)12 b(.)g(.)h(.)f(.)g +h(.)42 b Fr(241)150 1615 y Fs(get_size)26 b Fo(.)12 b(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50 b Fr(185)150 -1790 y Fs(get_transform)8 b Fo(.)15 b(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)50 b Fr(186)150 +1703 y Fs(get_transform)8 b Fo(.)15 b(.)e(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)34 -b Fr(117,)27 b(143)150 1878 y Fs(get_transform_element)h +b Fr(118,)27 b(144)150 1790 y Fs(get_transform_element)h Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)49 b Fr(143)150 1966 y Fs(get_up)9 b Fo(.)k(.)g(.)f(.)g +(.)g(.)h(.)f(.)49 b Fr(144)150 1878 y Fs(get_up)9 b Fo(.)k(.)g(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)34 -b Fr(143)150 2053 y Fs(get_use_name)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h +b Fr(144)150 1966 y Fs(get_use_name)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fr(82)150 2141 y Fs(get_w)10 +h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 b Fr(82)150 2053 y Fs(get_w)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)36 b Fr(120)150 2229 y Fs(get_x)10 b Fo(.)j(.)g(.)f(.)g +(.)g(.)h(.)f(.)36 b Fr(121)150 2141 y Fs(get_x)10 b Fo(.)j(.)g(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 -b Fr(119)150 2317 y Fs(get_y)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) +b Fr(120)150 2229 y Fs(get_y)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(119)150 -2404 y Fs(get_z)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(120)150 +2317 y Fs(get_z)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(120)150 2659 -y FH(H)150 2776 y Fs(half)11 b Fo(.)j(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g +f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(121)150 2571 +y FH(H)150 2688 y Fs(half)11 b Fo(.)j(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)37 b -Fr(209)150 2864 y Fs(hex_pattern_1)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h +Fr(211)150 2776 y Fs(hex_pattern_1)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)42 b Fr(230)150 3118 y FH(I)150 3235 +h(.)f(.)g(.)h(.)42 b Fr(232)150 3030 y FH(I)150 3147 y Fs(Icosahedron)22 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)45 b Fr(255)150 3323 y Fs(in_circle)24 b Fo(.)13 +g(.)h(.)45 b Fr(257)150 3235 y Fs(in_circle)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 -b Fr(197)150 3410 y Fs(in_ellipse)23 b Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.) +b Fr(198)150 3323 y Fs(in_ellipse)23 b Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fr(204)150 3498 y +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 b Fr(205)150 3410 y Fs(in_rectangle)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) -44 b Fr(225)150 3586 y Fs(initialize_colors)12 b Fo(.)k(.)c(.)h(.)f(.)g +44 b Fr(227)150 3498 y Fs(initialize_colors)12 b Fo(.)k(.)c(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)37 b Fr(82)150 3674 y Fs(initialize_io)18 +f(.)g(.)h(.)37 b Fr(82)150 3586 y Fs(initialize_io)18 b Fo(.)d(.)d(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43 -b Fr(84)150 3761 y Fs(intersection_line)11 b Fo(.)16 +b Fr(84)150 3674 y Fs(intersection_line)11 b Fo(.)16 b(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fr(152)150 3849 y Fs +(.)h(.)f(.)g(.)h(.)f(.)g(.)37 b Fr(153)150 3761 y Fs (intersection_point)11 b Fo(.)16 b(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)37 b Fr(133,)27 b(151,)g(188)150 3937 +(.)g(.)h(.)f(.)g(.)37 b Fr(134,)27 b(152,)g(189)150 3849 y Fs(intersection_points)18 b Fo(.)f(.)12 b(.)g(.)44 -b Fr(190,)27 b(192,)g(206,)h(219,)f(220,)304 4024 y(229)150 -4112 y Fs(inverse)8 b Fo(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +b Fr(191,)27 b(193,)g(208,)h(221,)f(222,)304 3936 y(231)150 +4024 y Fs(inverse)8 b Fo(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fr(91)150 4200 y +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fr(91)150 4112 y Fs(is_circular)22 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)45 b Fr(228)150 4287 y Fs(is_cubic)15 b Fo(.)g(.)d(.)g(.)h(.)f +g(.)h(.)45 b Fr(230)150 4200 y Fs(is_cubic)15 b Fo(.)g(.)d(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)41 b Fr(205,)27 b(216)150 -4375 y Fs(is_cycle)f Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +h(.)f(.)g(.)h(.)f(.)g(.)h(.)41 b Fr(207,)27 b(218)150 +4287 y Fs(is_cycle)f Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)50 b Fr(184)150 4463 y Fs(is_elliptical)17 +f(.)g(.)h(.)f(.)g(.)50 b Fr(185)150 4375 y Fs(is_elliptical)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b -Fr(216)150 4550 y Fs(is_identity)12 b Fo(.)j(.)d(.)h(.)f(.)g(.)h(.)f(.) +Fr(218)150 4463 y Fs(is_identity)12 b Fo(.)j(.)d(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)38 b Fr(91,)27 b(117)150 4638 y Fs(is_in_triangle)15 +(.)f(.)g(.)38 b Fr(91,)27 b(118)150 4550 y Fs(is_in_triangle)15 b Fo(.)h(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 b Fr(118)150 -4726 y Fs(is_linear)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 b Fr(119)150 +4638 y Fs(is_linear)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)48 b Fr(184)150 4814 y Fs(is_on_free_store)17 +g(.)h(.)f(.)g(.)h(.)48 b Fr(185)150 4726 y Fs(is_on_free_store)17 b Fo(.)f(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)43 b Fr(82,)27 -b(86,)g(117,)g(184,)g(238)150 4901 y Fs(is_on_line)c +b(86,)g(118,)g(185,)g(240)150 4814 y Fs(is_on_line)c Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)47 -b Fr(131)150 4989 y Fs(is_on_plane)22 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f +b Fr(132)150 4901 y Fs(is_on_plane)22 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)45 b Fr(117)150 5077 y Fs(is_on_segment)17 +h(.)f(.)g(.)h(.)f(.)g(.)h(.)45 b Fr(118)150 4989 y Fs(is_on_segment)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 b -Fr(130)150 5165 y Fs(is_planar)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h +Fr(131)150 5077 y Fs(is_planar)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fr(184)150 5252 +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fr(185)150 5165 y Fs(is_quadratic)10 b Fo(.)15 b(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 -b Fr(205,)27 b(216)150 5340 y Fs(is_quartic)13 b Fo(.)h(.)e(.)h(.)f(.)g +b Fr(207,)27 b(218)150 5252 y Fs(is_quartic)13 b Fo(.)h(.)e(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)39 b Fr(205,)27 b(216)2025 299 y -FH(K)2025 419 y Fs(kill_labels)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)46 b Fr(105)2025 671 y FH(L)2025 -791 y Fs(label)11 b Fo(.)j(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 -b Fr(138,)27 b(181,)g(213)2025 880 y Fs(Line)22 b Fo(.)12 -b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 -b Fr(144,)27 b(145)2025 969 y Fs(location)15 b Fo(.)f(.)f(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 b Fr(206,)27 b(217)2025 -1229 y FH(M)2025 1348 y Fs(magnitude)d Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fr(128)2025 1438 -y Fs(mediate)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)g(.)h(.)33 b Fr(132)2025 1527 y Fs(mid_point)24 -b Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +g(.)h(.)f(.)g(.)g(.)39 b Fr(207,)27 b(218)150 5340 y +Fs(is_rectangular)15 b Fo(.)h(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 +b Fr(204)2025 299 y FH(K)2025 419 y Fs(kill_labels)22 +b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 +b Fr(106)2025 671 y FH(L)2025 791 y Fs(label)11 b Fo(.)j(.)e(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fr(139,)27 b(182,)g(215)2025 +880 y Fs(Line)22 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)47 b Fr(145,)27 b(146)2025 969 y Fs(location)15 +b Fo(.)f(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 +b Fr(208,)27 b(219)2025 1229 y FH(M)2025 1348 y Fs(magnitude)d +Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 -b Fr(203)2025 1616 y Fs(modify)10 b Fo(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b -Fr(81)2025 1877 y FH(O)2025 1997 y Fs(operator!=)25 b -Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 b Fr(81,)27 b(117,)g(149)2025 -2086 y Fs(operator&)d Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)48 b Fr(162)2025 2175 y Fs(operator&=)23 -b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 -b Fr(162)2025 2264 y Fs(operator*)8 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h +b Fr(129)2025 1438 y Fs(mediate)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)33 b Fr(90,)27 b(91,)g(116)2025 2354 y Fs(operator*=)9 -b Fo(.)14 b(.)f(.)f(.)35 b Fr(85,)27 b(89,)f(90,)h(103,)g(115,)g(116,)g -(161,)g(189,)2178 2441 y(213,)g(237)2025 2530 y Fs(operator+)14 +h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)33 b Fr(133)2025 +1527 y Fs(mid_point)24 b Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)48 b Fr(204)2025 1616 y Fs(modify)10 +b Fo(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)35 b Fr(81)2025 1877 y FH(O)2025 1997 +y Fs(operator!=)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 +b Fr(81,)27 b(118,)g(150)2025 2086 y Fs(operator&)d Fo(.)13 +b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 +b Fr(163)2025 2175 y Fs(operator&=)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 b Fr(163)2025 2264 +y Fs(operator*)8 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)33 +b Fr(90,)27 b(91,)g(117)2025 2354 y Fs(operator*=)9 b +Fo(.)14 b(.)f(.)f(.)35 b Fr(85,)27 b(89,)f(90,)h(104,)g(116,)g(117,)g +(162,)g(190,)2178 2441 y(215,)g(239)2025 2530 y Fs(operator+)14 b Fo(.)g(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)40 b -Fr(115,)27 b(161)2025 2619 y Fs(operator+=)13 b Fo(.)h(.)e(.)h(.)f(.)g +Fr(116,)27 b(162)2025 2619 y Fs(operator+=)13 b Fo(.)h(.)e(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)39 b Fr(103,)27 b(115)2025 2708 y +f(.)g(.)h(.)f(.)g(.)39 b Fr(104,)27 b(116)2025 2708 y Fs(operator+=)13 b Fo(.)h(.)e(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 -b Fr(161,)27 b(162)2025 2797 y Fs(operator-)14 b Fo(.)g(.)e(.)h(.)f(.)g +b Fr(162,)27 b(163)2025 2797 y Fs(operator-)14 b Fo(.)g(.)e(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)g(.)h(.)40 b Fr(115,)27 b(116)2025 2886 +g(.)h(.)f(.)g(.)g(.)h(.)40 b Fr(116,)27 b(117)2025 2886 y Fs(operator-=)c Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)47 b Fr(115)2025 2975 y Fs(operator/)24 b Fo(.)13 +h(.)f(.)47 b Fr(116)2025 2975 y Fs(operator/)24 b Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 -b Fr(116)2025 3064 y Fs(operator/=)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f +b Fr(117)2025 3064 y Fs(operator/=)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 b Fr(116)2025 3153 +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 b Fr(117)2025 3153 y Fs(operator<<)14 b Fo(.)g(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)39 -b Fr(81,)27 b(140)2025 3243 y Fs(operator=)9 b Fo(.)14 -b(.)f(.)f(.)35 b Fr(81,)27 b(89,)g(103,)g(115,)g(142,)g(145,)g(148,)g -(197,)2178 3330 y(202,)g(213,)h(227,)f(228,)g(237,)g(247)2025 +b Fr(81,)27 b(141)2025 3243 y Fs(operator=)9 b Fo(.)14 +b(.)f(.)f(.)35 b Fr(81,)27 b(89,)g(104,)g(116,)g(143,)g(146,)g(149,)g +(198,)2178 3330 y(203,)g(215,)h(229,)f(230,)g(239,)g(249)2025 3419 y Fs(operator=)g(\(for)g(Points\))18 b Fo(.)c(.)e(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)44 b Fr(11)2025 3508 y Fs(operator==)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)49 -b Fr(81,)27 b(116,)g(149)2025 3597 y Fs(out_circle)c +b Fr(81,)27 b(117,)g(150)2025 3597 y Fs(out_circle)c Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)47 -b Fr(199)2025 3686 y Fs(out_ellipse)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h +b Fr(200)2025 3686 y Fs(out_ellipse)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fr(203)2025 3775 y Fs(out_rectangle)17 +g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fr(204)2025 3775 y Fs(out_rectangle)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)43 b -Fr(225)2025 3864 y Fs(output)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fr(87,)26 b(100,)h(106,)h(140,)f(187,)g -(242)2025 4126 y FH(P)2025 4246 y Fs(Path)c Fo(.)13 b(.)f(.)g(.)h(.)f +Fr(227)2025 3864 y Fs(output)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fr(87,)26 b(101,)h(107,)h(141,)f(188,)g +(244)2025 4126 y FH(P)2025 4246 y Fs(Path)c Fo(.)13 b(.)f(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)48 b Fr(157,)28 b(158,)f(160,)g(161)2025 4335 +h(.)f(.)48 b Fr(158,)28 b(159,)f(161,)g(162)2025 4335 y Fs(persp_0)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)g(.)h(.)33 b Fr(259)2025 4424 y Fs(Picture)17 +g(.)g(.)h(.)f(.)g(.)h(.)33 b Fr(261)2025 4424 y Fs(Picture)17 b Fo(.)d(.)e(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43 -b Fr(102,)27 b(103)2025 4513 y Fs(Plane)21 b Fo(.)12 +b Fr(103,)27 b(104)2025 4513 y Fs(Plane)21 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 -b Fr(147,)27 b(148)2025 4602 y Fs(Point)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f +b Fr(148,)27 b(149)2025 4602 y Fs(Point)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 -b Fr(114)2025 4691 y Fs(Point::intersection_points)17 +b Fr(115)2025 4691 y Fs(Point::intersection_points)17 b Fo(.)h(.)12 b(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) 43 b Fr(72)2025 4780 y Fs(Point::operator=)13 b Fo(.)j(.)c(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) @@ -52578,158 +52619,155 @@ (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)48 b Fr(11)2025 4959 y Fs(project)17 b Fo(.)d(.)e(.)g(.)h(.)f(.)g(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)43 b Fr(125,)27 b(187)2025 5220 y +h(.)f(.)g(.)h(.)f(.)43 b Fr(126,)27 b(188)2025 5220 y FH(Q)2025 5340 y Fs(quarter)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)33 b Fr(209)p +f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)33 b Fr(211)p eop end -%%Page: 279 291 -TeXDict begin 279 290 bop 150 -116 a FI(F)-8 b(unction)31 -b(Index)2861 b(279)150 299 y FH(R)150 415 y Fs(real_triple)23 +%%Page: 281 293 +TeXDict begin 281 292 bop 150 -116 a FI(F)-8 b(unction)31 +b(Index)2861 b(281)150 299 y FH(R)150 415 y Fs(real_triple)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 -b Fr(77)150 502 y Fs(Rectangle)14 b Fo(.)g(.)f(.)f(.)g(.)h(.)f(.)g(.)h +b Fr(77)150 503 y Fs(Rectangle)14 b Fo(.)g(.)f(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)40 b Fr(201,)27 b(202)150 589 y Fs(Reg_Polygon)22 +g(.)h(.)f(.)40 b Fr(202,)27 b(203)150 590 y Fs(Reg_Polygon)22 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45 -b Fr(195)150 677 y Fs(reset)11 b Fo(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f +b Fr(196)150 678 y Fs(reset)11 b Fo(.)j(.)e(.)g(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)37 b -Fr(98)150 764 y Fs(reset_angle)22 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g +Fr(99)150 765 y Fs(reset_angle)22 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)45 b Fr(143)150 851 y Fs(reset_transform)27 +f(.)g(.)h(.)f(.)g(.)h(.)45 b Fr(144)150 852 y Fs(reset_transform)27 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)49 b Fr(105,)27 b(120)150 938 +(.)g(.)h(.)f(.)g(.)h(.)49 b Fr(106,)27 b(121)150 940 y Fs(reverse)7 b Fo(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)33 b Fr(186)150 1026 y Fs(rotate)16 -b Fo(.)e(.)e(.)42 b Fr(86,)27 b(96,)f(104,)h(121,)h(164,)f(168,)g(190,) -g(215,)g(241)150 1275 y FH(S)150 1391 y Fs(scale)8 b +g(.)h(.)f(.)g(.)h(.)f(.)33 b Fr(187)150 1027 y Fs(rotate)16 +b Fo(.)e(.)e(.)42 b Fr(86,)27 b(97,)f(105,)h(122,)h(165,)f(169,)g(191,) +g(217,)g(243)150 1278 y FH(S)150 1394 y Fs(scale)8 b Fo(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)34 b Fr(86,)27 -b(93,)f(104,)i(122,)f(164,)g(190,)g(215,)g(241)150 1479 +b(93,)f(105,)i(123,)f(165,)g(191,)g(217,)g(243)150 1482 y Fs(segment)7 b Fo(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)33 b Fr(208)150 1566 y Fs(set)10 -b Fo(.)j(.)f(.)g(.)h(.)f(.)36 b Fr(80,)26 b(81,)h(114,)g(142,)g(158,)g -(159,)g(160,)h(196,)f(202,)304 1653 y(212,)g(227,)g(250)150 -1740 y Fs(set)f(\(for)h(Points\))9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h +g(.)h(.)f(.)g(.)h(.)f(.)33 b Fr(210)150 1569 y Fs(set)10 +b Fo(.)j(.)f(.)g(.)h(.)f(.)36 b Fr(80,)26 b(81,)h(115,)g(143,)g(159,)g +(160,)g(161,)h(197,)f(203,)304 1656 y(214,)g(229,)g(252)150 +1744 y Fs(set)f(\(for)h(Points\))9 b Fo(.)k(.)g(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)34 b Fr(11)150 1827 y Fs(set_blue_part)18 b Fo(.)d(.)d(.)h(.)f +g(.)h(.)34 b Fr(11)150 1831 y Fs(set_blue_part)18 b Fo(.)d(.)d(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43 b Fr(82)150 1915 y +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43 b Fr(82)150 1918 y Fs(set_connectors)15 b Fo(.)h(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 -b Fr(164)150 2002 y Fs(set_cycle)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h +b Fr(165)150 2006 y Fs(set_cycle)24 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fr(186)150 2089 +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fr(187)150 2093 y Fs(set_dash_pattern)12 b Fo(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)38 -b Fr(164)150 2176 y Fs(set_draw_color)15 b Fo(.)h(.)c(.)g(.)h(.)f(.)g +b Fr(165)150 2181 y Fs(set_draw_color)15 b Fo(.)h(.)c(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)41 b Fr(164)150 2264 y Fs(set_element)23 +f(.)g(.)h(.)f(.)41 b Fr(165)150 2268 y Fs(set_element)23 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 -b Fr(91)150 2351 y Fs(set_extremes)12 b Fo(.)j(.)d(.)h(.)f(.)g(.)h(.)f +b Fr(91)150 2355 y Fs(set_extremes)12 b Fo(.)j(.)d(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fr(87,)27 -b(140,)g(187,)g(242)150 2438 y Fs(set_fill_color)15 b +b(141,)g(188,)g(244)150 2443 y Fs(set_fill_color)15 b Fo(.)h(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 b Fr(164)150 -2525 y Fs(set_fill_draw_value)8 b Fo(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)41 b Fr(165)150 +2530 y Fs(set_fill_draw_value)8 b Fo(.)16 b(.)d(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 -b Fr(164)150 2612 y Fs(set_green_part)16 b Fo(.)g(.)c(.)g(.)h(.)f(.)g +b Fr(165)150 2618 y Fs(set_green_part)16 b Fo(.)g(.)c(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)42 b Fr(82)150 2700 y Fs(set_name)7 +f(.)g(.)h(.)f(.)g(.)42 b Fr(82)150 2705 y Fs(set_name)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -g(.)h(.)32 b Fr(81)150 2787 y Fs(set_on_free_store)27 +g(.)h(.)32 b Fr(81)150 2793 y Fs(set_on_free_store)27 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)49 -b Fr(85,)27 b(120,)g(163,)g(237)150 2874 y Fs(set_pen)7 +b Fr(85,)27 b(121,)g(164,)g(239)150 2880 y Fs(set_pen)7 b Fo(.)14 b(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)33 b Fr(164)150 2961 y Fs(set_red_part)22 b Fo(.)12 +h(.)f(.)33 b Fr(165)150 2967 y Fs(set_red_part)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 -b Fr(82)150 3049 y Fs(set_transform)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h +b Fr(82)150 3055 y Fs(set_transform)17 b Fo(.)e(.)d(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)42 b Fr(105)150 3136 y Fs(set_use_name)22 +h(.)f(.)g(.)h(.)42 b Fr(106)150 3142 y Fs(set_use_name)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)45 -b Fr(81)150 3223 y Fs(shear)25 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)50 b Fr(86,)27 b(123,)g(165,)g(190,)g -(215,)g(241)150 3310 y Fs(shear\(real)d Fo(.)13 b(.)f(.)g(.)h(.)f(.)g -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)47 b Fr(94)150 3398 -y Fs(shift)17 b Fo(.)d(.)e(.)h(.)43 b Fr(86,)27 b(94,)f(104,)h(124,)h -(166,)f(167,)g(190,)g(215,)g(241)150 3485 y Fs(shift_times)f -Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)49 -b Fr(94,)27 b(124,)g(168,)g(190,)g(215)2025 299 y Fs(show)11 -b Fo(.)i(.)38 b Fr(82,)27 b(86,)f(92,)h(105,)g(139,)g(143,)g(145,)h -(153,)f(182,)g(241)2025 388 y Fs(show_colors)22 b Fo(.)12 -b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 -b Fr(183)2025 477 y Fs(show_transform)7 b Fo(.)15 b(.)d(.)h(.)f(.)g(.)h +b Fr(81)150 3230 y Fs(shear)16 b Fo(.)e(.)e(.)g(.)h(.)f(.)g(.)g(.)h(.)f +(.)g(.)h(.)f(.)42 b Fr(86,)27 b(94,)g(124,)g(166,)g(191,)g(217,)g(243) +150 3317 y Fs(shift)17 b Fo(.)d(.)e(.)h(.)43 b Fr(86,)27 +b(94,)f(105,)h(125,)h(167,)f(168,)g(191,)g(217,)g(243)150 +3404 y Fs(shift_times)f Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)49 b Fr(94,)27 b(125,)g(169,)g(191,)g(217)2025 +299 y Fs(show)11 b Fo(.)i(.)38 b Fr(82,)27 b(86,)f(92,)h(106,)g(140,)g +(144,)g(146,)h(154,)f(183,)g(243)2025 386 y Fs(show_colors)22 +b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 +b Fr(184)2025 474 y Fs(show_transform)7 b Fo(.)15 b(.)d(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -33 b Fr(105,)27 b(139)2025 565 y Fs(size)11 b Fo(.)i(.)g(.)f(.)g(.)h(.) +33 b Fr(106,)27 b(140)2025 561 y Fs(size)11 b Fo(.)i(.)g(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 -b Fr(184)2025 654 y Fs(slope)21 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g +b Fr(185)2025 648 y Fs(slope)21 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fr(130,)27 b(184)2025 -743 y Fs(Solid)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h +f(.)g(.)h(.)f(.)g(.)h(.)f(.)46 b Fr(131,)27 b(185)2025 +736 y Fs(Solid)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(237)2025 832 +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)36 b Fr(239)2025 823 y Fs(solve)21 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)46 b Fr(206,)27 b(224)2025 921 y Fs(solve_quadratic)14 +g(.)h(.)f(.)46 b Fr(208,)27 b(226)2025 910 y Fs(solve_quadratic)14 b Fo(.)h(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fr(259)2025 -1010 y Fs(subpath)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fr(261)2025 +998 y Fs(subpath)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)33 b Fr(184)2025 1099 y Fs(suppress_labels) +f(.)g(.)g(.)h(.)f(.)g(.)h(.)33 b Fr(185)2025 1085 y Fs(suppress_labels) 14 b Fo(.)h(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fr(108)2025 -1187 y Fs(suppress_output)8 b Fo(.)15 b(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)g(.)34 b Fr(87,)27 b(140,)g(187,)g(242)2025 -1448 y FH(T)2025 1567 y Fs(Tetrahedron)22 b Fo(.)12 b(.)g(.)h(.)f(.)g +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fr(109)2025 +1172 y Fs(suppress_output)8 b Fo(.)15 b(.)d(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)34 b Fr(87,)27 b(141,)g(188,)g(244)2025 +1424 y FH(T)2025 1541 y Fs(Tetrahedron)22 b Fo(.)12 b(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fr(249)2025 1656 +g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fr(251)2025 1628 y Fs(Transform)25 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)f(.)49 b Fr(88)2025 1745 y Fs(trunc)10 +h(.)f(.)g(.)h(.)f(.)49 b Fr(88)2025 1715 y Fs(trunc)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f -(.)g(.)h(.)f(.)36 b Fr(259)2025 1834 y Fs(Trunc_Octahedron)25 -b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)g(.)h(.)48 b Fr(257,)27 b(258)2025 2092 y -FH(U)2025 2211 y Fs(undraw)21 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45 -b Fr(136,)28 b(179,)f(243,)g(244)2025 2300 y Fs(undrawdot)d +(.)g(.)h(.)f(.)36 b Fr(261)2025 1803 y Fs(Trunc_Octahedron)12 +b Fo(.)k(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 b Fr(259)2025 +2046 y FH(U)2025 2162 y Fs(undraw)21 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)45 +b Fr(137,)28 b(180,)f(245,)g(246)2025 2249 y Fs(undrawdot)d Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 -b Fr(135)2025 2389 y Fs(unfill)18 b Fo(.)c(.)e(.)g(.)h(.)f(.)g(.)h(.)f +b Fr(136)2025 2337 y Fs(unfill)18 b Fo(.)c(.)e(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)45 b Fr(179,)27 b(243)2025 2478 +f(.)g(.)g(.)h(.)f(.)g(.)45 b Fr(180,)27 b(245)2025 2424 y Fs(unfilldraw)13 b Fo(.)h(.)e(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)39 -b Fr(180,)27 b(244)2025 2567 y Fs(unit_vector)22 b Fo(.)12 +b Fr(181,)27 b(246)2025 2511 y Fs(unit_vector)22 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 -b Fr(129)2025 2655 y Fs(unsuppress_labels)11 b Fo(.)16 +b Fr(130)2025 2599 y Fs(unsuppress_labels)11 b Fo(.)16 b(.)c(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)g(.)h(.)f(.)37 b Fr(109)2025 2744 y Fs +(.)h(.)f(.)g(.)g(.)h(.)f(.)37 b Fr(110)2025 2686 y Fs (unsuppress_output)13 b Fo(.)j(.)c(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)39 b Fr(87,)27 b(187,)g(242)2025 -3004 y FH(V)2025 3124 y Fs(void)11 b Fo(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h +(.)h(.)f(.)g(.)h(.)f(.)39 b Fr(87,)27 b(188,)g(244)2025 +2938 y FH(V)2025 3055 y Fs(void)11 b Fo(.)i(.)g(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 -b Fr(140)2025 3365 y FH(W)2025 3485 y Fs(write_footers)18 +b Fr(141)2025 3288 y FH(W)2025 3404 y Fs(write_footers)18 b Fo(.)d(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)43 b Fr(84)p eop end -%%Page: 280 292 -TeXDict begin 280 291 bop 150 -116 a FI(Concept)31 b(Index)2882 -b(280)150 299 y FE(Concept)52 b(Index)150 588 y FH(A)150 +%%Page: 282 294 +TeXDict begin 282 293 bop 150 -116 a FI(Concept)31 b(Index)2882 +b(282)150 299 y FE(Concept)52 b(Index)150 588 y FH(A)150 706 y Fr(animation)25 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)h(.)50 b Fr(64,)26 b(65)150 794 y(arbitrary)g(P)n(ath)10 @@ -52748,7 +52786,7 @@ g(.)h(.)f(.)g(.)h(.)41 b Fr(27,)26 b(72)150 1804 y(con)n(tributing)f (to)h(3DLDF)7 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)33 b Fr(72)150 -1893 y(con)n(trol)26 b(p)r(oin)n(ts)d Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g +1892 y(con)n(trol)26 b(p)r(oin)n(ts)d Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)48 b Fr(27)150 1981 y(con)n(trols)14 b Fo(.)f(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) @@ -52761,7 +52799,7 @@ b Fr(27)150 2395 y FH(D)150 2513 y Fr(dra)n(wing)26 b(and)g(\014lling) 12 b Fo(.)h(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)38 b Fr(23)150 -2768 y FH(E)150 2886 y Fr(Emacs)18 b Fo(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f +2767 y FH(E)150 2885 y Fr(Emacs)18 b Fo(.)13 b(.)f(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)43 b Fr(84)150 2974 y(Encapsulated)26 b(P)n(ostScript)g(\(EPS\))18 @@ -52770,45 +52808,48 @@ b Fo(.)12 b(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) 44 b Fr(6)150 3321 y FH(F)150 3439 y Fr(FDL,)26 b(GNU)f(F)-6 b(ree)25 b(Do)r(cumen)n(tation)h(License)10 b Fo(.)k(.)e(.)g(.)h(.)f(.) -36 b Fr(267)150 3527 y(\014le,)26 b(output)13 b Fo(.)f(.)g(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fr(134)150 -3615 y(function,)26 b(mem)n(b)r(er)14 b Fo(.)f(.)f(.)g(.)h(.)f(.)g(.)h +36 b Fr(269)150 3527 y(\014gures)19 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)h(.)40 b Fr(3)150 3704 y(future)25 b(plans)16 +h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)45 +b Fr(4)150 3615 y(\014le,)26 b(output)13 b Fo(.)f(.)g(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 b Fr(135)150 3703 +y(function,)26 b(mem)n(b)r(er)14 b Fo(.)f(.)f(.)g(.)h(.)f(.)g(.)h(.)f +(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) +f(.)g(.)h(.)40 b Fr(3)150 3791 y(future)25 b(plans)16 b Fo(.)d(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)42 -b Fr(72)150 3958 y FH(H)150 4076 y Fr(help)25 b(lines)f +b Fr(72)150 4046 y FH(H)150 4164 y Fr(help)25 b(lines)f Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.) -49 b Fr(136)150 4165 y(hidden)25 b(surface)h(algorithm)20 +49 b Fr(137)150 4252 y(hidden)25 b(surface)h(algorithm)20 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h -(.)f(.)g(.)h(.)f(.)44 b Fr(67)150 4253 y(homogeneous)27 +(.)f(.)g(.)h(.)f(.)44 b Fr(67)150 4340 y(homogeneous)27 b(co)r(ordinates)10 b Fo(.)j(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fr(18)150 4507 -y FH(I)150 4625 y Fr(iden)n(tit)n(y)25 b(matrix)19 b +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fr(18)150 4595 +y FH(I)150 4713 y Fr(iden)n(tit)n(y)25 b(matrix)19 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)44 -b Fr(19)150 4714 y(input)25 b(routine)14 b Fo(.)f(.)f(.)g(.)h(.)f(.)g +b Fr(19)150 4801 y(input)25 b(routine)14 b Fo(.)f(.)f(.)g(.)h(.)f(.)g (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fr(10)150 4802 y(in)n(tersection)7 +f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)40 b Fr(10)150 4889 y(in)n(tersection)7 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -32 b Fr(72)150 4890 y(in)n(tersection)26 b(p)r(oin)n(ts)18 +32 b Fr(72)150 4977 y(in)n(tersection)26 b(p)r(oin)n(ts)18 b Fo(.)13 b(.)g(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)44 b Fr(72)150 -4978 y(in)n(tersection)26 b(theory)13 b Fo(.)f(.)h(.)f(.)g(.)h(.)f(.)g +5065 y(in)n(tersection)26 b(theory)13 b Fo(.)f(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) -f(.)g(.)39 b Fr(72)150 5066 y(in)n(v)n(ersion)15 b Fo(.)e(.)f(.)g(.)g +f(.)g(.)39 b Fr(72)150 5154 y(in)n(v)n(ersion)15 b Fo(.)e(.)f(.)g(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)41 -b Fr(20)150 5304 y FH(K)150 5422 y Fr(kludge)9 b Fo(.)j(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) -g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)35 b Fr(78,)27 -b(259)2025 588 y FH(L)2025 706 y Fr(linear)f Fs(Paths)12 +b Fr(20)150 5392 y FH(K)150 5510 y Fr(kludge)16 b Fo(.)c(.)h(.)f(.)g(.) +h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)42 +b Fr(261)2025 588 y FH(L)2025 706 y Fr(linear)26 b Fs(Paths)12 b Fo(.)i(.)e(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)38 -b Fr(155)2025 794 y(lines,)26 b(dra)n(wing)e Fo(.)12 +b Fr(156)2025 794 y(lines,)26 b(dra)n(wing)e Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)48 b Fr(23)2025 883 y(lo)r(cal)27 b(v)l(ariable)f(lists)8 @@ -52827,7 +52868,7 @@ (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)35 b Fr(10)2025 1591 y(mem)n(b)r(er)25 b(function)7 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)g(.)h(.)33 b Fr(3)2025 1680 y(Metafon)n(t)12 +h(.)f(.)g(.)g(.)h(.)33 b Fr(3)2025 1679 y(Metafon)n(t)12 b Fo(.)h(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)38 b Fr(6)2025 1768 y(MetaP)n(ost)23 b Fo(.)13 @@ -52836,21 +52877,21 @@ 48 b Fr(6)2025 2006 y FH(N)2025 2124 y Fr(non-arbitrary)25 b(P)n(ath)8 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)34 -b Fr(72)2025 2379 y FH(O)2025 2497 y Fr(op)r(erations,)27 +b Fr(72)2025 2378 y FH(O)2025 2496 y Fr(op)r(erations,)27 b(matrix)17 b Fo(.)c(.)f(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)43 -b Fr(19)2025 2585 y(output)24 b(\014le)9 b Fo(.)k(.)f(.)h(.)f(.)g(.)h +b Fr(19)2025 2584 y(output)24 b(\014le)9 b Fo(.)k(.)f(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) -h(.)f(.)g(.)35 b Fr(53,)27 b(72,)g(134)2025 2673 y(output)d(\014les)10 +h(.)f(.)g(.)35 b Fr(53,)27 b(72,)g(135)2025 2672 y(output)d(\014les)10 b Fo(.)j(.)f(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)36 -b Fr(53)2025 2928 y FH(P)2025 3046 y Fr(pain)n(ter's)26 +b Fr(53)2025 2927 y FH(P)2025 3045 y Fr(pain)n(ter's)26 b(algorithm)8 b Fo(.)13 b(.)g(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33 -b Fr(67)2025 3134 y(P)n(ath)25 b(connectors)c Fo(.)13 +b Fr(67)2025 3133 y(P)n(ath)25 b(connectors)c Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)46 b Fr(72)2025 -3222 y(P)n(ath)25 b(in)n(tersections)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g +3221 y(P)n(ath)25 b(in)n(tersections)7 b Fo(.)14 b(.)e(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)33 b Fr(72)2025 3310 y(paths)17 b Fo(.)12 b(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h @@ -52858,32 +52899,34 @@ g(.)h(.)f(.)43 b Fr(27)2025 3398 y(p)r(en)25 b(expression)8 b Fo(.)k(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)34 -b Fr(134)2025 3487 y(p)r(ens)15 b Fo(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +b Fr(135)2025 3486 y(p)r(ens)15 b Fo(.)d(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)41 -b Fr(23)2025 3575 y Fs(Points)p Fr(,)27 b(connecting)7 +b Fr(23)2025 3574 y Fs(Points)p Fr(,)27 b(connecting)7 b Fo(.)13 b(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)32 b Fr(23)2025 3829 y FH(R)2025 3947 y Fr(ra)n(w)26 b(MetaP)n(ost)h(co)r(de)c Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f (.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)48 b Fr(57)2025 -4036 y(R)n(GB)25 b(\(red-green-blue\))15 b Fo(.)d(.)g(.)h(.)f(.)g(.)h +4035 y(R)n(GB)25 b(\(red-green-blue\))15 b Fo(.)d(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) 41 b Fr(80)2025 4294 y FH(S)2025 4412 y Fr(surface)27 b(hiding)20 b Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.) -46 b Fr(67)2025 4501 y(sym)n(b)r(ols)13 b Fo(.)f(.)h(.)f(.)g(.)h(.)f(.) +46 b Fr(67)2025 4500 y(sym)n(b)r(ols)13 b Fo(.)f(.)h(.)f(.)g(.)h(.)f(.) g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)39 -b Fr(4)2025 4755 y FH(T)2025 4873 y Fr(tension)8 b Fo(.)k(.)g(.)h(.)f -(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)33 -b Fr(27)2025 4961 y(theory)25 b(of)h(in)n(tersection)f -Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g -(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)50 b Fr(72)2025 5050 y(TO)26 +b Fr(4)2025 4588 y(system)25 b(dep)r(endencies)17 b Fo(.)c(.)f(.)g(.)h +(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.) +h(.)f(.)g(.)43 b Fr(78)2025 4843 y FH(T)2025 4961 y Fr(tension)8 +b Fo(.)k(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.) +g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h +(.)f(.)g(.)h(.)33 b Fr(27)2025 5049 y(theory)25 b(of)h(in)n(tersection) +f Fo(.)12 b(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g +(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)50 b Fr(72)2025 5137 y(TO)26 b(DO)8 b Fo(.)k(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g (.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.) -f(.)34 b Fr(57,)27 b(79)2025 5304 y FH(U)2025 5422 y +f(.)34 b Fr(57,)27 b(79)2025 5392 y FH(U)2025 5510 y Fr(units)e(of)i(measuremen)n(t)20 b Fo(.)13 b(.)f(.)g(.)h(.)f(.)g(.)h (.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)h(.)f(.)g(.)g(.)h(.)46 b Fr(10)p eop end diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.texi 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.texi --- 3DLDF-1.1.3/DOC/TEXINFO/3DLDF.texi 2003-12-01 21:20:51.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/3DLDF.texi 2003-12-10 18:05:14.000000000 +0100 @@ -1,11 +1,11 @@ %%%% 3DLDF.texi - + %% This file is part of the 3DLDF User and Reference Manual. %% Copyright (C) 2003 Laurence D. Finston %% See the section "GNU Free Documentation License" in the file %% fdl.texi for copying conditions. -%%%% $Id: 3DLDF.texi,v 1.4 2003/12/01 20:20:51 lfinsto1 Exp $ +%%%% $Id: 3DLDF.texi,v 1.9 2003/12/10 17:05:14 lfinsto1 Exp $ %%%% LDF 2002.11.16. I hope doing this before I load texinfo.tex doesn't cause a problem. @@ -20,21 +20,7 @@ %% math mode?? Also, I'm not sure that these are the best %% symbols. -\def\NATURAL{\hbox{{\tenbbb N}}} -\def\REAL{\hbox{{\tenbbb R}}} -\def\INT{\hbox{{\tenbbb Z}}} %% Integers. -\def\UBAR{$\noexpand\\underline{\noexpand\\hbox to 1ex{\noexpand\\hfil}}$} -%% \OCB and \CCB are used in \BGRP and \EGRP (begin group and end group) -%% for writing curly braces to the file of 3DLDF example code. -\begingroup -\catcode`\{=12 -\catcode`\}=12 -\catcode`\<=1 -\catcode`\>=2 -\gdef\OCB<{> % Open curly brace. -\gdef\CCB<}> % Closing curly brace -\endgroup \newbox\PPbox % symbol for ++ \setbox\PPbox=\hbox{\kern.5pt\raise1pt\hbox{\sevenrm+\kern-1pt+}\kern.5pt} @@ -288,11 +274,9 @@ \newcount\tempcnt \let\NBKS=~ %% No break space. -\def\TWOPREFIG{\tempcnt=\figcnt\advance\tempcnt by -1 - Fig.\NBKS\the\tempcnt} -\def\PREFIG{Fig.\NBKS\the\figcnt} -\def\NEXTFIG{\tempcnt=\figcnt\advance\tempcnt by 1 -Fig.\NBKS\the\tempcnt} + + + %%%% LDF 2003.05.02. Added the following code For "dangerous bend" %%%% paragraphs. This may cause problems, so I've marked the end of @@ -335,58 +319,50 @@ \input texinfo @c -*-texinfo-*- -@macro cpp {} -@iftex -@tex -@CPLUSPLUS{} -@end tex -@end iftex -@ifinfo -C++ -@end ifinfo -@end macro -@macro DEG{NUMBER} -@iftex -@tex -{$\NUMBER\^@circ$}% -@end tex -@end iftex -@ifinfo -\NUMBER\degrees @c Kludge! This won't work for 1 degree! LDF 2003.11.25.@code{} -@end ifinfo -@end macro -@macro angles{arg} -@iftex -@tex -$\\langle$\\it{\arg\\\/}$\\rangle$% -@end tex -@end iftex -@ifinfo -<\arg\> -@end ifinfo -@end macro @c %**start of header @setfilename 3DLDF.info @settitle 3DLDF User and Reference Manual -@c %**end of header + @syncodeindex tp vr @c This merges the Data Type Index with the Variable @c Index, because the former has so few entries. @c LDF 2003.09.01. +@c %**end of header - -@set EDITION 1.1.3 -@set VERSION 1.1.3 -@set UPDATED 1 December 2003 +@set EDITION 1.1.4 +@set VERSION 1.1.4 +@set UPDATED 10 December 2003 @set UPDATE-MONTH December 2003 @c ********************* +@copying +This is the 3DLDF User and Reference Manual, edition @value{EDITION} for +3DLDF @value{VERSION}. This manual was last updated on +@value{UPDATED}. +3DLDF is a GNU package for three-dimensional drawing with MetaPost +output. +The author is Laurence D. Finston. + +Copyright @copyright{} 2003 Laurence D. Finston. + +@quotation +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.2 +or any later version published by the Free Software Foundation; +with no Invariant Sections, no Front-Cover Texts, and no Back-Cover +Texts. A copy of the license is included in the section entitled +``GNU Free Documentation License''. +@end quotation +@end copying + +@c ********************* + @c Added @dircategory and @direntry at the suggestion of @c Andreas Voegele. LDF 2003.12.01. @@ -406,23 +382,6 @@ @c ********************* -@ifinfo -3DLDF User and Reference Manual -3-dimensional drawing with MetaPost output. -Manual edition @value{EDITION} for 3DLDF Version @value{VERSION} -@value{UPDATE-MONTH} -Author: Laurence D. Finston -@value{UPDATED}, -Author: Laurence D. Finston. - -Copyright 2003 Laurence D. Finston. -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.2 -or any later version published by the Free Software Foundation; -with no Invariant Sections, no Front-Cover Texts, and no Back-Cover -Texts. A copy of the license is included in the section entitled -``GNU Free Documentation License''. -@end ifinfo @@ -436,13 +395,7 @@ @page @vskip 0pt plus 1filll -Copyright @copyright{} 2003 Laurence D. Finston.@* -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.2 -or any later version published by the Free Software Foundation; -with no Invariant Sections, no Front-Cover Texts, and no Back-Cover -Texts. A copy of the license is included in the section entitled -``GNU Free Documentation License''. +@insertcopying @end titlepage @headings on @@ -453,19 +406,34 @@ @contents +@comment node-name, next, previous, up @node Top, Introduction, (dir), (dir) -@c This must be included, otherwise there are -@c problems with the illustrations. I haven't -@c been able to find out why, yet. +@ifnottex +@insertcopying + +Please note that the figures cannot be shown in the Info or HTML output +formats! +@end ifnottex + + @menu * Introduction:: * Contributing to 3DLDF:: * Using 3DLDF:: +* Points:: +* Transforming Points:: +* Transforms:: +* Drawing and Labeling Points:: +* Paths:: +* Plane Figures:: +* Solid Figures:: +* Pictures:: * Intersections:: * Installing and Running 3DLDF:: * Typedefs and Utility Structures:: +* Global Constants and Variables:: * Color Reference:: * Input and Output:: * Shape Reference:: @@ -478,6 +446,7 @@ * Plane Reference:: * Path Reference:: * Polygon Reference:: +* Regular Polygon Reference:: * Rectangle Reference:: * Regular Closed Plane Curve Reference:: * Ellipse Reference:: @@ -495,13 +464,10 @@ * GNU Free Documentation License:: * Data Type and Variable Index:: * Function Index:: -* Concept Index:: @detailmenu - - +* Concept Index:: - - -@detailmenu --- The Detailed Node Listing --- +@detailmenu +--- The Detailed Node Listing --- Introduction @@ -802,12 +768,12 @@ Semi-Regular Archimedean Polyhedra -* Truncated Octahedron (Trunc_Octahedron):: +* Truncated Octahedron:: -Truncated Octahedron (Trunc_Octahedron) +Truncated Octahedron -* Trunc_Octahedron Data Members:: -* Trunc_Octahedron Net:: +* Truncated Octahedron Data Members:: +* Truncated Octahedron Net:: Utility Functions @@ -816,28 +782,297 @@ @end detailmenu @end menu + +@macro bibskip {} +@iftex +@tex +@medskip +@end tex +@end iftex +@ifnottex +@sp 1 +@end ifnottex +@end macro + +@macro cpp {} +@iftex +@tex +@CPLUSPLUS +@end tex +@end iftex +@ifnottex +C++ +@end ifnottex +@end macro + + +@macro NATURAL {} +@iftex +@tex +@hbox{{@tenbbb N}} +@end tex +@end iftex +@ifnottex +N +@end ifnottex +@end macro + + +@macro REAL {} +@iftex +@tex +@hbox{{@tenbbb R}} +@end tex +@end iftex +@ifnottex +R +@end ifnottex +@end macro + +@macro INT {} +@iftex +@tex +@hbox{{@tenbbb Z}} %% Integers. +@end tex +@end iftex +@ifnottex +I +@end ifnottex +@end macro + +@c UBAR is only used in code written to examples.web. There's no need +@c for versions for it for Info or HTML. LDF 2003.12.07. +@c +@macro UBAR {} +@iftex +@tex +$@noexpand@@underline{@noexpand@@hbox to 1ex{@noexpand@@hfil}}$ +@end tex +@end iftex +@end macro + +@macro NEXTFIG {} +@iftex +@tex +\\tempcnt=\\figcnt\\advance\\tempcnt by 1 +Fig.\\NBKS\\the\\tempcnt +@end tex +@end iftex +@ifnottex +[next figure] +@end ifnottex +@end macro + +@macro TWOPREFIG {} +@iftex +@tex +\\tempcnt=\\figcnt\\advance\\tempcnt by -1 +Fig.\\NBKS\\the\\tempcnt +@end tex +@end iftex +@ifnottex +[the second-to-last figure] +@end ifnottex +@end macro + +@macro PREFIG {} +@iftex +@tex +Fig.\\NBKS\\the\\figcnt +@end tex +@end iftex +@ifnottex +[the previous figure] +@end ifnottex +@end macro + +@c Kludge! This won't work for 1 degree in the Info version! +@c LDF 2003.11.25. +@macro DEG{NUMBER} +@iftex +@tex +{$\NUMBER\^@circ$}% +@end tex +@end iftex +@ifnottex +\NUMBER\ degrees +@end ifnottex +@end macro + +@macro PRM{NUMBER} +@iftex +@tex +{$\NUMBER\^\\prime$}% +@end tex +@end iftex +@ifnottex +\NUMBER\' +@end ifnottex +@end macro + + + +@macro SECT {} +@iftex +@tex +@S +@end tex +@end iftex +@ifnottex +section +@end ifnottex +@end macro + +@c %% \OCB and \CCB are used in \BGRP and \EGRP (begin group and end group) +@c %% for writing curly braces to the file of 3DLDF example code. + +@iftex +@tex +\begingroup +\catcode`\{=12 +\catcode`\}=12 +\catcode`\<=1 +\catcode`\>=2 +\gdef\OCB<{> % Open curly brace. +\gdef\CCB<}> % Closing curly brace +\endgroup +@end tex +@end iftex +@ifnottex +@macro OCB +@{ +@end macro +@macro CCB +@} +@end macro +@end ifnottex + + +@macro angles{arg} +@iftex +@tex +$\\langle$\\it{\arg\\\/}$\\rangle$% +@end tex +@end iftex +@ifnottex +<\arg\> +@end ifnottex +@end macro + +@macro NEQ {arg} +@iftex +@tex +$\\neq \arg\$ +@end tex +@end iftex +@c +@ifnottex +@math{!= \arg\} +@end ifnottex +@end macro + +@c Calling this `@TIMES' caused problems. Maybe the name wasn't the +@c reason, though. But I don't feel like experimenting to find out. +@c LDF 2003.12.08. +@c +@macro TMS {arg1, arg2} +@iftex +@tex +$\arg1\ \\times \arg2\$% +@end tex +@end iftex +@c +@ifnottex +@math{\arg1\ * \arg2\} +@end ifnottex +@end macro + +@c ``By'' for matrices. +@macro BYM {arg1, arg2} +@iftex +@tex +$\arg1\ \\times \arg2\$% +@end tex +@end iftex +@c +@ifnottex +@math{\arg1\ X \arg2\} +@end ifnottex +@end macro + + + +@macro OVERRTARROW {arg} +@iftex +@tex +$\\overrightarrow{\arg\}$% +@end tex +@end iftex +@c +@ifnottex +@math{\arg\} +@end ifnottex +@end macro + +@macro PLUSMINUS {arg} +@iftex +@tex +$\\pm{\arg\}$% +@end tex +@end iftex +@c +@ifnottex +@math{+ or - \arg\} +@end ifnottex +@end macro + @include intro.texi @include contrib.texi -@c This file includes other files. -@include getstart.texi +@c @c Got rid of getstart.texi, because it confuses Emacs and makeinfo +@c @c to have files nested too deeply. + +@include using.texi + +@c chapter Points +@include gspoint.texi + +@c chapter Transforming Points +@include gstranpt.texi + +@c chapter Transforms +@include gstransf.texi + +@c chapter Drawing and Labeling Points +@include gsdlpt.texi + +@c chapter Paths +@include gspaths.texi + +@c chapter Plane Figures +@include gsplane.texi + +@c chapter Solid Figures +@include gssolfig.texi + +@c chapter Pictures +@include gspict.texi + @include intersct.texi @include instlrun.texi -@c @c Comment-out to save paper. -@c @chapheading -@c @node Class and Function Reference -@c @unnumbered Class and Function Reference - -@c Unless otherwise stated, all of the functions described in the following -@c chapters are @dfn{member functions} of the -@c the @code{class} currently under discussion. + +@c @c Unless otherwise stated, all of the functions described in the following +@c @c chapters are @dfn{member functions} of the +@c @c the @code{class} currently under discussion. @include typeglb.texi +@include glbcnvar.texi + @include color.texi @include io.texi @@ -862,17 +1097,12 @@ @include polygon.texi +@include regpolyg.texi + @include rectang.texi @include rcpcurve.texi -@c The file \filename{ellipint.texi} contains -@c the @node ``Ellipse Intersections''. It is -@c included in \filename{ellipse.texi}, but -@c may be commented-out, because one of the -@c functions used in the illustrations is -@c time-consuming. !!! REMEMBER TO UNCOMMENT IT!!! - @include ellipse.texi @include circle.texi @@ -930,4 +1160,3 @@ @include concidx.texi @bye - diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/ChangeLog 3DLDF-1.1.4/DOC/TEXINFO/ChangeLog --- 3DLDF-1.1.3/DOC/TEXINFO/ChangeLog 2003-12-01 21:47:24.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/ChangeLog 2003-12-10 18:34:38.000000000 +0100 @@ -1,3 +1,464 @@ +2003-12-10 Laurence Finston + + * changes.texi: LDF 2003.12.10. + Added text describing changes in 3DLDF-1.1.4. + + * 3DLDF.texi: LDF 2003.12.10. + Changed version and edition numbers from `1.1.3' to `1.1.4'. + + Updated `UPDATED'. + + * Makefile.am: LDF 2003.12.10. + Changed version number from `1.1.3' to `1.1.4'. + +2003-12-09 Laurence Finston + + * rectang.texi: LDF 2003.12.09. + Added description of |is_rectangular()|. Added a ``TO DO'' note, to add + example and illustration. + + * regpolyg.texi, rcpcurve.texi, polygon.texi, plane.texi, path.texi, gspict.texi, gspaths.texi, gsdlpt.texi, ellipse.texi, ellipint.texi: + LDF 2003.12.09. + Changed calls to |mediate()| in examples and the example code written to + \filename{examples.web}. + + * point.texi: LDF 2003.12.09. + Changed description of |Point::mediate()|, which + is now a |const| member function. + + Changed calls to |mediate()| in examples and the example code written to + \filename{examples.web}. + + * 3DLDF.texi: LDF 2003.12.09. + Added macros, which are used for replacing math mode material: + `@PRM', `@BYM', and `@PLUSMINUS'. + + * intro.texi: LDF 2003.12.09. + Rewrote parts of the section ``Ports''. + I am no longer maintaining versions for GCC 2.95 and DEC alpha. + |MAX_REAL| is now initialized in a system dependent manner, so 3DLDF will + only run on 32-bit little-endian architectures. + + * glbcnvar.texi: LDF 2003.12.09. + Added text to the description of |MAX_REAL|. + + * instlrun.texi, intro.texi: LDF 2003.12.09. + Changed ``3DLDF'' to ``3dldf'' in the URLs of websites. + + * utility.texi: LDF 2003.12.09. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Put `@iftex' and `@end iftex' around the `@tex' code for generating and including the + figures. + + Added `@ifnottex' code for `@tex' math mode material that I've left in. + + * typeglb.texi: LDF 2003.12.09. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Now using macros for math mode material in one place. + + * transfor.texi: LDF 2003.12.09. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Put `@iftex' and `@end iftex' around the `@tex' code for generating and including the + figures. + + Now using macros for some math mode material. + + Added `@ifnottex' code for `@tex' math mode material that I've left in. In + particular, there's a lot of math mode material illustrating matrices. + + * solid.texi: LDF 2003.12.09. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Put `@iftex' and `@end iftex' around the `@tex' code for generating and including the + figures. + + There was no math mode material in this file. + + * regpolyg.texi, rectang.texi, rcpcurve.texi, polyhed.texi: + LDF 2003.12.09. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Put `@iftex' and `@end iftex' around the `@tex' code for generating and including the + figures. + + Now using macros for math mode material. + +2003-12-08 Laurence Finston + + * polyhed.texi: LDF 2003.12.08. + Changed node names, menu items, and cross references for `Truncated Octahedron'. + + * 3DLDF.texi: LDF 2003.12.08. + Changed menu items for `Truncated Octahedron', since I changed the node names. + + Moved the macro definition for `@bigskip' here from \filename{biblio.texi}, since + it's needed in \filename{intro.texi}. + + Changed the defintions of `@NEXTFIG', `@PREFIG', and `@TWOPREFIG'. + + Added the macro `@NEQ' for ``\neq'' (not equal). + + Added the macro `@TMS' for ``\times''. + + Added the macro `@OVERRTARROW' for ``\overrightarrow''. + + * polygon.texi: LDF 2003.12.08. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + In this file, I was able to eliminate all the math mode material by using + macros. + + * point.texi: LDF 2003.12.08. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Added `@ifnottex' code for math mode material. + + * plane.texi: LDF 2003.12.08. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Added `@ifnottex' code for math mode material. + + Replaced `$\neq$' with `@NEQ{}', which I've defined in 3DLDF.tex. + + * picture.texi: LDF 2003.12.08. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Added `@ifnottex' code for math mode material. + + Made major changes to the way the description of |output()|. It used to + use a lot of raw TeX code for formatting. Now, it's a @table with no + raw TeX code in it. + + * pattern.texi: LDF 2003.12.08. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Added `@ifnottex' code for math mode material. + + * path.texi, line.texi, label.texi: LDF 2003.12.07. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Added ``@iftex'' before ``@tex'' and ``@end iftex'' after ``@end tex''. + There was no other TeX code. + + * intro.texi: LDF 2003.12.07. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Changed `@ifinfo' to `@ifnottex'. + + * biblio.texi: LDF 2003.12.07. + Removed the definition of the macro ``@bibskip'' to \filename{3DLDF.texi}, because + it's needed in \filename{intro.texi}. + + * instlrun.texi: LDF 2003.12.07. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Added ``@iftex'' before ``@tex'' and ``@end iftex'' after ``@end tex''. + There was no other TeX code. + + * gstransf.texi: LDF 2003.12.07. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Added `@ifnottex' code for math mode material. + + Added another reason for using 4 X 4 matrices, namely, that I may implement + non-affine transformations. + + * gstranpt.texi: LDF 2003.12.07. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Added `@ifnottex' code for math mode material. + + Removed quotes from around ``weighted'' in one place. + + * gssolfig.texi, gsplane.texi: LDF 2003.12.07. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Added ``@iftex'' before ``@tex'' and ``@end iftex'' after ``@end tex''. + There was no other TeX code. + + * gspict.texi: LDF 2003.12.08. + Corrected minor error. + + * gspict.texi, gspaths.texi: LDF 2003.12.07. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Added `@ifnottex' code for math mode material. + + * gsdlpt.texi: LDF 2003.12.07. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Added ``@iftex'' before ``@tex'' and ``@end iftex'' after ``@end tex''. + There was no other TeX code. + + * glbcnvar.texi: LDF 2003.12.07. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Added `@ifnottex' code for math mode material. + + Changed the description of |MAX_REAL|, to reflect the changes to the way I + calculate it in \filename{pspglb.web}. + + Tried to fix the formatting of ``++'' and ``+-+'' in the description of + Pythagorean addition and subtraction. It worked, but not perfectly. + It might be worthwhile trying to find out how Knuth did it for _The + METAFONTbook_. + + * utility.texi: LDF 2003.12.08. + Added `\strut' to a `\sqrt' expression. + + * ellipse.texi: LDF 2003.12.08. + Added `\strut' to a `\sqrt' expression. Now formatting + it separately for the TeX and the non-TeX output formats, + because I don't want `\strut' to be visible in the latter. + + * circle.texi: LDF 2003.12.08. + Replaced ``X'' with ``*'' in mathematical expression in `@ifnottex' environment. + + * intro.texi: LDF 2003.12.08. + Added `@ifnottex' code to the @node ``Manual Conventions''. This code + explains mathematical symbols that are used in the Info and HTML output + formats to replace TeX's mathematical symbols. + + * focus.texi, ellipse.texi: LDF 2003.12.07. + Changed this file, so that the entries can be output using the Info + and HTML output formats. + + Added `@ifnottex' code for math mode material. + + * circle.texi: LDF 2003.12.08. + Added an `@end deftypefn', that I'd mistakenly deleted before the last + check in. + +2003-12-07 Laurence Finston + + * ellipint.texi: LDF 2003.12.07. + Changed this file, so that the entries can be output using the Info and HTML output + formats. + + Now using `@math' for math mode material. There was nothing so complicated that + it needed to be put in ``TeX mode''. + + * color.texi: LDF 2003.12.07. + Changed this file, so that the entries can be output using the Info and HTML output + formats. + + Added `@ifnottex' code for math mode material. + + * intro.texi: LDF 2003.12.07. + Added note to the effect that figures can't be + shown in the Info and HTML output formats. + + * 3DLDF.texi: LDF 2003.12.07. + Added `@copying' and `@insertcopying'. Updated the `@UPDATED' variable to today's date. + Changed the macros for printing out the figure number so that they print text when + using the Info or HTML output format. Added note to the effect that figures can't be + shown in these output formats. Fixed an entry in the main menu for |Trunc_Octahedron|. + Moved `@end detailmenu' so that it's before `@end menu'. `@detailmenu' is no longer + between `@ifinfo' and `@end ifinfo'. Now using `@ifnottex' in macro definitions. + + * circle.texi: LDF 2003.12.07. + Changed this file, so that the entries can be output using the Info and HTML output + formats. + + Added `@ifnottex' code for math mode material. + + * biblio.texi: LDF 2003.12.07. + Changed this file, so that the entries can be output using the Info and HTML output + formats. + + I'm not happy with the formatting of the bibliography entries, but I + wasn't able to fix it. I tried various solutions involving \hangafter + and \hangindent and macros, but none of them worked. + + Nor was I able to prevent the displayed comment about Vredemann de Vries + from being split from the entry. !! I think fixing these problems + will involve fixing texinfo.tex. + +2003-12-04 Laurence Finston + + * Makefile.am: LDF 2003.12.04. + Removed phony `clean' and `mostlyclean' targets. The targets + automatically generated by Automake now work. + +2003-12-03 Laurence Finston + + * utility.texi, transfor.texi, solid.texi, solfaced.texi, shape.texi: + LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + * regpolyg.texi: LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + This file is new. I removed the chapter on |Reg_Polygons| from \filename{@include polygon.texi} + to this file, because `texinfo-multiple-files-update' can't cope + with more than one chapter in a file, and each file should contain a chapter. + + * rectang.texi, rcpcurve.texi: LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + * polygon.texi: LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + Removed the chapter on |Reg_Polygons| to \filename{@include regpolyg.texi}, + because `texinfo-multiple-files-update' can't cope + with more than one chapter in a file, and each file should contain a chapter. + + * gstransf.texi, gstranpt.texi, gssolfig.texi, gspoint.texi, gsplane.texi, gspict.texi, gspaths.texi, gsdlpt.texi: + LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + * 3DLDF.texi: LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + Moved the macro definitions further down in this file. They now follow the `@detailmenu' and + precede the first `@include' command. This seems to have fixed the problem, that the macros + were unknown in the included files. + + No longer including \filename{getstart.texi}. That file is no longer in use, because + the Emacs function `texinfo-multiple-files-update' can't cope with files that are too deeply + nested. The files that were formerly included in \filename{getstart.texi} are now included + in this file. + + Now including \filename{glbcnvar.texi}, which contains code which was formerly in + \filename{typeglb.texi}. I did this, because `texinfo-multiple-files-update' can't cope + with more than one chapter in a file, and each file should contain a chapter. + + Now including \filename{@include regpolyg.texi}, for the same reason. It contains text formerly + in \filename{polygon.texi}. + + * point.texi, plane.texi, picture.texi, path.texi, line.texi, label.texi, io.texi, intro.texi, intersct.texi: + LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + * instlrun.texi: LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + Added a ``TO DO'' item involving the ``Class and Function Reference'' heading. It used to + be a node, but it causes problems when making Info output. + + * typeglb.texi: LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + Removed text from this file to the new file \filename{glbcnvar.texi}. I put + it there, because the Emacs function `texinfo-multiple-files-update' can't cope with + more than one chapter per included Texinfo file. In addition, every + included Texinfo file should have a chapter as its first node. + + * glbcnvar.texi: LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + This file is new. The text it contains was formerly in \filename{typeglb.texi}. I've + put it here, because the Emacs function `texinfo-multiple-files-update' can't cope with + more than one chapter per included Texinfo file. In addition, every + included Texinfo file should have a chapter as its first node. + + * focus.texi: LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + * ellipse.texi: LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + Put the text from \filename{ellipint.texi} into this file, and got rid of + \filename{ellipint.texi}. This is because the Emacs function `texinfo-multiple-files-update' + can't cope with files that are too deeply nested. + + * cuboid.texi: LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + * polyhed.texi: LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + In this file, I had to fix @nodes and menu entries by hand. + + * color.texi, circle.texi: LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + * changes.texi, biblio.texi, addfile.texi: LDF 2003.12.03. + Made changes, so that `make info' will work. These involved fixing index entries, removing + erroneous curly braces, fixing faulty `@def...' commands, changing erroneous invocations of + TeX macros, and possibly other things. + + However, this file wasn't changed at all. + + * Makefile.am: + LDF 2003.12.03. Removed \filename{3DLDFmac.texi} from |3dldf_TEXINFOS|. I've put the macro + definitions back into \filename{3DLDF.texi}. They now are directly before where the `@include' + commands begin. Moving them here seems to have solved the problems I was having. Before, + they were higher up in the file. Possibly, they must appear below the `@detailmenu', but I have + no idea why. + + * Makefile.am: LDF 2003.12.03. + Got rid of the phony `info' and `info-recursive' targets, because I've got + my Texinfo documentation to work properly with `make info'. + + Added Emacs ``Local Variables'' list, that sets mode to `Makefile'. + + * regpolyg.texi, glbcnvar.texi: New file. + + * getstart.texi: LDF 2003.12.03. + Abandoning this file. The files it included are now included directly + in \filename{3DLDF.texi}. This is because the Emacs functions for + updating menus and nodes can't cope with files that are too + deeply nested. + + * ellipint.texi: LDF 2003.12.03. + Abandoning this file. I've included its contents in + \filename{ellipse.texi}. This is because the Emacs functions for + updating menus and nodes can't cope with files that are too + deeply nested. + 2003-12-01 Laurence Finston * 3DLDF.texi: LDF 2003.12.01. diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/Makefile.am 3DLDF-1.1.4/DOC/TEXINFO/Makefile.am --- 3DLDF-1.1.3/DOC/TEXINFO/Makefile.am 2003-12-01 22:01:57.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/Makefile.am 2003-12-10 18:03:26.000000000 +0100 @@ -1,5 +1,5 @@ -## 3DLDF-1.1.3/DOC/TEXINFO/Makefile.am - +## 3DLDF-1.1.4/DOC/TEXINFO/Makefile.am + ## Makefile for the DOC/TEXINFO subdirectory of the 3DLDF package. # This file is part of 3DLDF, a package for three-dimensional drawing. @@ -31,49 +31,30 @@ -# $Id: Makefile.am,v 1.4 2003/12/01 20:08:49 lfinsto1 Exp $ +# $Id: Makefile.am,v 1.8 2003/12/10 17:03:26 lfinsto1 Exp $ ## Process this file with automake to produce Makefile.in. info_TEXINFOS = 3DLDF.texi 3dldf_TEXINFOS = addfile.texi biblio.texi changes.texi circle.texi color.texi \ - concidx.texi contrib.texi cuboid.texi dataidx.texi ellipint.texi \ - ellipse.texi fdl.texi focus.texi funcidx.texi future.texi getstart.texi \ - gsdlpt.texi gspaths.texi gspict.texi gsplane.texi gspoint.texi \ - gssolfig.texi gstranpt.texi gstransf.texi instlrun.texi \ - intersct.texi intro.texi io.texi label.texi line.texi path.texi \ - pattern.texi picture.texi plane.texi point.texi polygon.texi \ - polyhed.texi rcpcurve.texi rectang.texi shape.texi solfaced.texi \ - solid.texi transfor.texi typeglb.texi utility.texi varidx.texi + concidx.texi contrib.texi cuboid.texi dataidx.texi \ + ellipse.texi fdl.texi focus.texi funcidx.texi future.texi \ + glbcnvar.texi \ + gsdlpt.texi gspaths.texi gspict.texi gsplane.texi gspoint.texi \ + gssolfig.texi gstranpt.texi gstransf.texi instlrun.texi \ + intersct.texi intro.texi io.texi label.texi line.texi path.texi \ + pattern.texi picture.texi plane.texi point.texi polygon.texi \ + polyhed.texi rcpcurve.texi rectang.texi regpolyg.texi shape.texi solfaced.texi \ + solid.texi transfor.texi typeglb.texi utility.texi varidx.texi EXTRA_DIST = .rcsfreeze.log .rcsfreeze.log.dev 3DLDF.ps \ ChangeLog.dev $(3dldf_TEXINFOS) EPS/* -.PHONY: clean -clean : - echo "This is my clean in DOC/TEXINFO." - - - -.PHONY: mostlyclean -mostlyclean : - echo "This is my mostlyclean in DOC/TEXINFO." - .PHONY : dummy dummy: echo "distdir = $(distdir)" -.PHONY: info -info: - @echo "info in DOC/TEXINFO/Makefile.am." - -.PHONY: info-recursive -info-recursive: - @echo "info-recursive in DOC/TEXINFO/Makefile.am." - - - .PHONY : ps ps: 3DLDF.ps @@ -107,10 +88,11 @@ etags $(info_TEXINFOS) $(3dldf_TEXINFOS) -## DOC/TEXINFO/Makefile.am ends here. - - +## Local Variables: +## mode:Makefile +## End: +## DOC/TEXINFO/Makefile.am ends here. diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/Makefile.in 3DLDF-1.1.4/DOC/TEXINFO/Makefile.in --- 3DLDF-1.1.3/DOC/TEXINFO/Makefile.in 2003-12-01 22:05:25.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/Makefile.in 2003-12-10 18:41:53.000000000 +0100 @@ -41,7 +41,7 @@ # lfinsto1@gwdg.de # s246794@stud.uni-goettingen.de -# $Id: Makefile.am,v 1.4 2003/12/01 20:08:49 lfinsto1 Exp $ +# $Id: Makefile.am,v 1.8 2003/12/10 17:03:26 lfinsto1 Exp $ srcdir = @srcdir@ top_srcdir = @top_srcdir@ @@ -140,14 +140,15 @@ info_TEXINFOS = 3DLDF.texi 3dldf_TEXINFOS = addfile.texi biblio.texi changes.texi circle.texi color.texi \ - concidx.texi contrib.texi cuboid.texi dataidx.texi ellipint.texi \ - ellipse.texi fdl.texi focus.texi funcidx.texi future.texi getstart.texi \ - gsdlpt.texi gspaths.texi gspict.texi gsplane.texi gspoint.texi \ - gssolfig.texi gstranpt.texi gstransf.texi instlrun.texi \ - intersct.texi intro.texi io.texi label.texi line.texi path.texi \ - pattern.texi picture.texi plane.texi point.texi polygon.texi \ - polyhed.texi rcpcurve.texi rectang.texi shape.texi solfaced.texi \ - solid.texi transfor.texi typeglb.texi utility.texi varidx.texi + concidx.texi contrib.texi cuboid.texi dataidx.texi \ + ellipse.texi fdl.texi focus.texi funcidx.texi future.texi \ + glbcnvar.texi \ + gsdlpt.texi gspaths.texi gspict.texi gsplane.texi gspoint.texi \ + gssolfig.texi gstranpt.texi gstransf.texi instlrun.texi \ + intersct.texi intro.texi io.texi label.texi line.texi path.texi \ + pattern.texi picture.texi plane.texi point.texi polygon.texi \ + polyhed.texi rcpcurve.texi rectang.texi regpolyg.texi shape.texi solfaced.texi \ + solid.texi transfor.texi typeglb.texi utility.texi varidx.texi EXTRA_DIST = .rcsfreeze.log .rcsfreeze.log.dev 3DLDF.ps \ @@ -396,26 +397,10 @@ uninstall-info-am -.PHONY: clean -clean : - echo "This is my clean in DOC/TEXINFO." - -.PHONY: mostlyclean -mostlyclean : - echo "This is my mostlyclean in DOC/TEXINFO." - .PHONY : dummy dummy: echo "distdir = $(distdir)" -.PHONY: info -info: - @echo "info in DOC/TEXINFO/Makefile.am." - -.PHONY: info-recursive -info-recursive: - @echo "info-recursive in DOC/TEXINFO/Makefile.am." - .PHONY : ps ps: 3DLDF.ps diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/addfile.texi 3DLDF-1.1.4/DOC/TEXINFO/addfile.texi --- 3DLDF-1.1.3/DOC/TEXINFO/addfile.texi 2003-11-29 16:33:37.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/addfile.texi 2003-12-03 20:32:35.000000000 +0100 @@ -1,12 +1,12 @@ @c addfile.texi - + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: addfile.texi,v 1.2 2003/11/29 15:33:37 lfinsto1 Exp $ +@c $Id: addfile.texi,v 1.3 2003/12/03 19:32:35 lfinsto1 Exp $ @node Adding a File, Future Plans, Utility Functions, Top @chapter Adding a File diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/biblio.texi 3DLDF-1.1.4/DOC/TEXINFO/biblio.texi --- 3DLDF-1.1.3/DOC/TEXINFO/biblio.texi 2003-11-28 15:15:26.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/biblio.texi 2003-12-08 20:02:41.000000000 +0100 @@ -1,162 +1,162 @@ @c biblio.texi - + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: biblio.texi,v 1.1 2003/11/28 14:15:26 lfinsto1 Exp $ +@c $Id: biblio.texi,v 1.4 2003/12/08 19:02:41 lfinsto1 Exp $ @node Bibliography, GNU Free Documentation License, Changes, Top @unnumbered Bibliography -@tex -\begingroup -\parindent=0pt +@c I'm not happy with the formatting of the bibliography entries, but I +@c wasn't able to fix it. I tried various solutions involving \hangafter +@c and \hangindent and macros, but none of them worked. LDF 2003.12.07. +@c +@c Nor was I able to prevent the displayed comment about Vredemann de Vries +@c from being split from the entry. !! I think fixing these problems +@c will involve fixing texinfo.tex. LDF 2003.12.07. -\newskip\narrowskip -\narrowskip=1cm - -\def\beginnarrow{\bgroup\leftskip=\narrowskip -\rightskip=\narrowskip -\parindent=0pt} - -\def\endnarrow{\par\egroup} - -\def\entry{\medskip\hangindent=2pc\hangafter=1} - -\raggedright - - -\entry Cundy, H. Martyn and A.P. Rollet. -{\it Mathematical Models}. +@i{Mathematical Models}. Oxford 1961. Oxford University Press. -\smallskip -\beginnarrow +@display Unfortunately out of print. -\endnarrow +@end display +@bibskip + -\entry -Finston, Laurence D.\ -{\it 3DLDF: The Program}. -G{\"o}ttingen 2003. +@noindent +Finston, Laurence D. +@i{3DLDF: The Program}. +G@"{o}ttingen 2003. +@bibskip -\entry +@noindent Fischer, Gerd. -{\it Ebene algebraische Kurven}. +@i{Ebene algebraische Kurven}. Vieweg Studium. Aufbaukurs Mathematik. -Friedr.~Vieweg \& Sohn Verlagsgesellschaft mbH.\ +Friedr.@w{ }Vieweg & Sohn Verlagsgesellschaft mbH. Braunschweig/Wiesbaden 1994. +@bibskip -\entry -Gill, Robert W.\ -{\it Creative Perspective}. +@noindent +Gill, Robert W. +@i{Creative Perspective}. London 1975. Thames and Hudson Ltd. -\hbox{ISBN~0-500-27056-2.} +@w{ISBN 0-500-27056-2.} +@bibskip -\entry -Hobby, John D.\ -{\it A User's Manual for MetaPost}. -AT\&T Bell Laboratories. +@noindent +Hobby, John D. +@i{A User's Manual for MetaPost}. +AT & T Bell Laboratories. Murray Hill, NJ. No date. +@bibskip -\entry +@noindent Jones, Huw. -{\it Computer Graphics through Key Mathematics}. +@i{Computer Graphics through Key Mathematics}. Springer-Verlag London Limited 2001. -\hbox{ISBN~1-85233-422-3.} +@w{ISBN 1-85233-422-3.} +@bibskip -\entry +@noindent Knuth, Donald Ervin. -{\it Metafont: The Program}. Computers and Typesetting; D.\ +@i{Metafont: The Program}. Computers and Typesetting; D. Addison Wesley Publishing Company, Inc. Reading, Massachusetts 1986. -\hbox{ISBN~0-201-13438-1.} +@w{ISBN 0-201-13438-1.} +@bibskip -\entry +@noindent Knuth, Donald Ervin. -{\it The METAFONTbook}. -Computers and Typesetting; C.\ +@i{The METAFONTbook}. +Computers and Typesetting; C. Addison Wesley Publishing Company, Inc. Reading, Massachusetts 1986. +@bibskip -\entry +@noindent Knuth, Donald Ervin. -{\it {TeX}: The Program}. Computers and Typesetting; B.\ +@i{@TeX{}: The Program}. Computers and Typesetting; B. Addison Wesley Publishing Company, Inc. Reading, Massachusetts 1986. -\hbox{ISBN~0-201-13437-3.} +@w{ISBN 0-201-13437-3.} +@bibskip -\entry -Knuth, Donald E. {\it The {\TeX}book}. -Computers and Typesetting; A.\ +@noindent +Knuth, Donald E. @i{The @TeX{}book}. +Computers and Typesetting; A. Addison Wesley Publishing Company, Inc. Reading, Massachusetts 1986. +@bibskip -\entry +@noindent Knuth, Donald E. and Silvio Levy. -{\it The {\bf CWEB} System of Structured Documentation}. -\hbox{Version 3.64---February 2002.} +@i{The @b{CWEB} System of Structured Documentation}. +@w{Version 3.64---February 2002.} +@bibskip -\entry +@noindent Salomon, David. -{\it Computer Graphics and Geometric Modeling}. +@i{Computer Graphics and Geometric Modeling}. Berlin 1999. Springer-Verlag. -\hbox{ISBN: 0-387-98682-0.} +@w{ISBN: 0-387-98682-0.} +@bibskip - -\entry +@noindent Stallman, Richard M. and Roland McGrath. -{\it GNU Make. A Program for Directing Recompilation. -{\tt make} Version 3.79}. +@i{GNU Make. A Program for Directing Recompilation. +@b{make} Version 3.79}. Boston 2000. Free Software Foundation, Inc. -\hbox{ISBN: 1-882114-80-9.} - +@w{ISBN: 1-882114-80-9.} +@bibskip -\entry +@noindent Stroustrup, Bjarne. -{\it The {\CPLUSPLUS} Programming Language}. +@i{The @cpp{} Programming Language}. Special Edition. Reading, Massachusetts 2000. Addison-Wesley. -\hbox{ISBN~0-201-70073-5.} +@w{ISBN 0-201-70073-5.} +@bibskip -\entry +@noindent Stroustrup, Bjarne. -{\it The Design and Evolution of {\CPLUSPLUS}}. +@i{The Design and Evolution of @cpp{}}. Reading, Massachusetts 1994. Addison-Wesley Publishing Company. -\hbox{ISBN~0-201-54330-3.} +@w{ISBN 0-201-54330-3.} +@bibskip -\entry +@noindent Vredeman de Vries, Jan. -{\it Perspective}. +@i{Perspective}. New York 1968. Dover Publications, Inc. -\hbox{Standard Book Number: 486-21086-4.} -\smallskip +@w{Standard Book Number: 486-21086-4.} -\beginnarrow +@display The beautiful perspective constructions in this volume are taken from the original work, first published by Henricus Hondius in Leiden in 1604 and 1605. -\endnarrow +@end display +@bibskip -\entry +@noindent White, Gwen. -{\it Perspective. A Guide for Artists, Architects and Designers}. +@i{Perspective. A Guide for Artists, Architects and Designers}. London 1968 and 1982. B T Batsford Ltd. -\hbox{ISBN~0-7134-3412-0.} +@w{ISBN 0-7134-3412-0.} -\endgroup -@end tex diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/changes.texi 3DLDF-1.1.4/DOC/TEXINFO/changes.texi --- 3DLDF-1.1.3/DOC/TEXINFO/changes.texi 2003-11-29 16:34:24.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/changes.texi 2003-12-10 18:23:44.000000000 +0100 @@ -1,11 +1,11 @@ @c changes.texi - + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: changes.texi,v 1.2 2003/11/29 15:34:23 lfinsto1 Exp $ +@c $Id: changes.texi,v 1.4 2003/12/10 17:23:44 lfinsto1 Exp $ @node Changes, Bibliography, Future Plans, Top @chapter Changes @@ -13,6 +13,30 @@ @noindent Updated @value{UPDATED}. +Changes in 3DLDF 1.1.4: +@c +@itemize @bullet +@item +@code{MAX_REAL} is now the second largest float value. However, the +calculation is system dependent, and will only work on 32-bit +little-endian architectures. I will start working on porting this +soon. + +@item +Fixed bug in @file{tsthdweb}, that caused files to be compiled more +often than necessary. It will be necessary to keep an eye on this. + +@item +Added @code{Rectangle::is_rectangular()}. + +@item +Made @code{mediate()} a member function of @code{Point}. + +@item +It is now possible to generate this manual in the Info and HTML +formats. +@end itemize + 3DLDF 1.1.1 was the first version of 3DLDF since it became a GNU package (the current version is @value{VERSION}). It is now conformant to the GNU Coding Standards, except that diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/circle.texi 3DLDF-1.1.4/DOC/TEXINFO/circle.texi --- 3DLDF-1.1.3/DOC/TEXINFO/circle.texi 2003-11-28 15:16:24.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/circle.texi 2003-12-08 14:34:28.000000000 +0100 @@ -1,16 +1,16 @@ @c circle.texi - + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: circle.texi,v 1.1 2003/11/28 14:16:24 lfinsto1 Exp $ +@c $Id: circle.texi,v 1.5 2003/12/08 13:34:28 lfinsto1 Exp $ @node Circle Reference, Pattern Reference, Ellipse Reference, Top @chapter Circle Reference -@tindex{Circle} +@tindex Circle Class @code{Circle} is defined in @file{circles.web}. It is derived from @code{Ellipse}, using public derivation. @@ -51,9 +51,17 @@ @math{@var{ddiameter}/2} in the x-z plane and centered at the origin with @var{nnumber_of_points} @code{Points}. If any of the arguments @var{angle_x}, @var{angle_y}, or @var{angle_z} is -@tex +@c +@iftex +@tex $\neq 0$, @end tex +@end iftex +@c +@ifnottex +@code{!= 0}, +@end ifnottex +@c the @code{Circle} is rotated around the major axes by the angles indicated by the arguments. Finally, the @code{Circle} is shifted such that @code{center} comes to lie at @@ -109,6 +117,8 @@ @print{} 0 @end example + +@iftex @tex \ifmakeexamples \BEX @@ -127,17 +137,27 @@ \fi \PEX @end tex +@end iftex @c -@end deftypefn +@end deftypefn + @deftypefn {Inline function} real get_radius (@code{void}) Returns @code{radius}. @end deftypefn @deftypefn {Inline function} real get_diameter (@code{void}) +Returns +@c +@iftex @tex -Returns $2\times$@code{radius}. +$2\times$@code{radius}. @end tex +@end iftex +@c +@ifnottex +2 * @code{radius}. +@end ifnottex @end deftypefn @@ -168,6 +188,7 @@ bpq.second.pt.dotlabel("$s$"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -189,6 +210,7 @@ \fi \PEX @end tex +@end iftex @c @end deftypefn diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/color.texi 3DLDF-1.1.4/DOC/TEXINFO/color.texi --- 3DLDF-1.1.3/DOC/TEXINFO/color.texi 2003-11-28 15:16:36.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/color.texi 2003-12-07 18:56:47.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: color.texi,v 1.1 2003/11/28 14:16:36 lfinsto1 Exp $ +@c $Id: color.texi,v 1.3 2003/12/07 17:56:47 lfinsto1 Exp $ -@node Color Reference, Input and Output, Typedefs and Utility Structures, Top +@node Color Reference, Input and Output, Global Constants and Variables, Top @chapter Color Reference - -@tindex{Color} + +@tindex Color Class @code{Color} is defined in @file{colors.web}. @menu @@ -34,7 +34,7 @@ @deftypevar bool use_name If @code{true}, @code{name} is written to @code{out_stream} when the @code{Color} is used for drawing or filling. Otherwise, the -@cindex{RGB (red-green-blue)} +@cindex RGB (red-green-blue) RGB (red-green-blue) values are written to @code{out_stream}. @end deftypevar @@ -51,10 +51,19 @@ @deftypevarx real green_part @deftypevarx real blue_part The RGB (red-green-blue) values of the @code{Color}. +A @code{real} value @math{r} is valid for these variables if and +only if +@c +@iftex @tex -A @code{real} value $r$ is valid for these variables if and -only if $0 \le r \le 1$. +$0 \le r \le 1$. @end tex +@end iftex +@c +@ifnottex +@math{0 <= r <= 1}. +@end ifnottex +@c @end deftypevar @node Color Constructors and Setting Functions, Color Operators, Color Data Members, Color Reference @@ -75,9 +84,8 @@ @deftypefn {Constructor} void Color ({const string} @var{n}, {const unsigned short} @var{r}, {const unsigned short} @var{g}, {const unsigned short} @var{b}, [{const bool} @var{u} = @code{true}]) Creates a @code{Color} with name @var{n}. Its @code{red_part}, @code{green_part}, and @code{blue_part} are set to -@tex -$r/255.0$, $g/255.0$, and $b/255.0$, respectively. -@end tex +@math{r/255.0}, @math{g/255.0}, and @math{b/255.0}, +respectively. @code{use_name} is set to @var{u}. @end deftypefn @@ -165,16 +173,25 @@ @deftypefun void set_red_part ({const real} @var{q}) @deftypefunx void set_green_part ({const real} @var{q}) @deftypefunx void set_blue_part ({const real} @var{q}) -@tex -Let $p$ stand for @code{red_part}, +Let @math{p} stand for @code{red_part}, @code{green_part}, or @code{blue_part}, depending upon which function is used. -If $0\le q\le 1$, -$p$ is set to $q$. If $q<0$, $p$ is set to 0. -If $q>1$, $p$ is set to 1. +If +@iftex +@tex +$0\le q\le 1$, @end tex +@end iftex +@ifnottex +@math{0 <= q <= 1}, +@end ifnottex +@c +@math{p} is set to @math{q}. If +@math{q < 0}, @math{p} is set to 0. +If @math{q > 1}, @math{p} is set to 1. @end deftypefun +@comment node-name, next, previous, up @node Showing Colors, Querying Colors, Modifying Colors, Color Reference @section Showing @@ -203,9 +220,19 @@ @code{blue_part} of the @code{Color}, respectively. If @var{decimal} is @code{false} (the default), the actual @code{real} value of the ``part'' is returned. Otherwise, the corresponding whole number +@math{n} such that +@c +@iftex @tex -$n$ such that $0\le n\le 255$ is returned. +$0\le n\le 255$ @end tex +@end iftex +@c +@ifnottex +@math{0 <= n <= 255} +@end ifnottex +@c +is returned. @end deftypefn @deftypefn {@code{const} function} bool get_use_name (void) diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/cuboid.texi 3DLDF-1.1.4/DOC/TEXINFO/cuboid.texi --- 3DLDF-1.1.3/DOC/TEXINFO/cuboid.texi 2003-11-28 15:17:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/cuboid.texi 2003-12-03 20:39:03.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: cuboid.texi,v 1.1 2003/11/28 14:17:00 lfinsto1 Exp $ - +@c $Id: cuboid.texi,v 1.2 2003/12/03 19:39:03 lfinsto1 Exp $ + @node Cuboid Reference, Polyhedron Reference, Faced Solid Reference, Top @chapter Cuboid Reference -@tindex{Cuboid} +@tindex Cuboid Class @code{Cuboid} is defined in @file{cuboid.web}. It is derived from @code{Solid_Faced} using public derivation. diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/ellipint.texi 3DLDF-1.1.4/DOC/TEXINFO/ellipint.texi --- 3DLDF-1.1.3/DOC/TEXINFO/ellipint.texi 2003-11-28 15:17:38.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/ellipint.texi 1970-01-01 01:00:00.000000000 +0100 @@ -1,308 +0,0 @@ -@c ellipint.texi -@c It is included in ellipse.texi. - -@c This file is part of the 3DLDF User and Reference Manual. -@c Copyright (C) 2003 Laurence D. Finston -@c See the section "GNU Free Documentation License" in the file -@c fdl.texi for copying conditions. - -@c $Id: ellipint.texi,v 1.2 2003/11/28 14:17:38 lfinsto1 Exp $ - -@node Ellipse Intersections -@section Intersections - -@deftypefn {@code{const} virtual function} bool_point_pair intersection_points ({const Point&} @var{p0}, {const Point&} @var{p1}) -@deftypefnx {@code{const} virtual function} bool_point_pair intersection_points ({const Path&} @var{p}) -@c -These functions return the intersection points of a line with an -@code{Ellipse}. In the first version, the line is specified by the two -@code{Point} arguments. -In the second version, @code{@var{p}.is_linear()} must return @code{true}, -otherwise, @code{intersection_points()} issues an error message and -returns @code{INVALID_BOOL_POINT_PAIR}. - -If the line and the @code{Ellipse} are coplanar, there can be at most two -intersection points. Otherwise, there can be at most one. - -@example -Ellipse e(origin, 5, 7, 30, 30, 30); -e.shift(3, 0, 3); -Point p0 = mediate(e.get_center(), e.get_point(3)); -Point normal = e.get_normal(); -Point A = normal; -A *= 2.5; -A.shift(p0); -Point B = normal; -B *= -2.5; -B.shift(p0); -bool_point_pair bpp = e.intersection_points(A, B); -bpp.first.pt.dotlabel("$i_0$", "rt"); -Point C = mediate(e.get_point(15), e.get_point(11), 1.25); -Point D = mediate(e.get_point(11), e.get_point(15), 1.5); -Path q = C.draw(D); -bpp = e.intersection_points(q); -bpp.first.pt.dotlabel("$i_1$", "llft"); -bpp.second.pt.dotlabel("$i_2$", "ulft"); -@end example - -@tex -\ifmakeexamples -\BEX -\BGRP -\immediate\write\examples{default_focus.set(2, 5, -10, 2, 5, 10, 10); } -\immediate\write\examples{Ellipse e(origin, 5, 7, 30, 30, 30);} -\immediate\write\examples{e.shift(3, 0, 3);} -\immediate\write\examples{e.get_center().label("$e$", "");} -\immediate\write\examples{e.draw();} -\immediate\write\examples{Point p0 = mediate(e.get_center(), e.get_point(3));} -\immediate\write\examples{Point normal = e.get_normal();} -\immediate\write\examples{Point A = normal;} -\immediate\write\examples{A *= 2.5;} -\immediate\write\examples{A.shift(p0);} -\immediate\write\examples{Point B = normal;} -\immediate\write\examples{B *= -2.5;} -\immediate\write\examples{B.shift(p0);} -\immediate\write\examples{A.dotlabel("$A$"); } -\immediate\write\examples{B.dotlabel("$B$", "bot"); } -\immediate\write\examples{bool_point_pair bpp = e.intersection_points(A, B);} -\immediate\write\examples{bpp.first.pt.dotlabel("$i_0$", "rt"); } -\immediate\write\examples{A.draw(bpp.first.pt);} -\immediate\write\examples{bpp.first.pt.draw(B, black, "evenly");} -\immediate\write\examples{Point C = mediate(e.get_point(15), e.get_point(11), 1.25);} -\immediate\write\examples{C.dotlabel("$C$", "bot"); } -\immediate\write\examples{Point D = mediate(e.get_point(11), e.get_point(15), 1.5);} -\immediate\write\examples{D.dotlabel("$D$"); } -\immediate\write\examples{Path q = C.draw(D);} -\immediate\write\examples{bpp = e.intersection_points(q);} -\immediate\write\examples{bpp.first.pt.dotlabel("$i_1$", "llft"); } -\immediate\write\examples{bpp.second.pt.dotlabel("$i_2$", "ulft"); } -\immediate\write\examples{draw_axes(gray, 0, "d", "d", "lft");} -\OEX{} -\EGRP -\EEX 1 -\fi -\PEX -@end tex -@end deftypefn - -@deftypefn {@code{const} virtual function} bool_point_quadruple intersection_points (Ellipse @var{e}, [{const bool} @var{verbose} = false]) -Returns the intersection points of two @code{Ellipses}. Two @code{Ellipses} -can intersect at at most four points. - -Let @var{bpq} be the @code{bool_point_quadruple} returned by -@code{intersection_points()}. If one or more intersection points are -found, the corresponding @code{Points} are stored in the -@code{pt} elements of the four @code{bool_points} belonging to -@var{bpq}, otherwise @code{INVALID_POINT}. If a @code{Point} is found, the -@code{b} element of the @code{bool_point} will be @code{true}, otherwise -@code{false}. - -If the @var{verbose} argument is @code{true}, -@code{intersection_points()} will print information about the -intersection points to standard output. - -@tex -In @NEXTFIG{}, the @code{Ellipses} $e$ and $f$ both lie in the x-z -plane, are centered at the origin, and intersect at four points. -@end tex - -@example -Ellipse e(origin, 5, 2); -Ellipse f(origin, 2, 5); -bool_point_quadruple bpq = e.intersection_points(f); -bpq.first.pt.dotlabel(1, "llft"); -bpq.second.pt.dotlabel(2, "urt"); -bpq.third.pt.dotlabel(3, "ulft"); -bpq.fourth.pt.dotlabel(4, "lrt"); -@end example - -@tex -\ifmakeexamples -\BEX -\BGRP -\immediate\write\examples{Ellipse e(origin, 5, 2);} -\immediate\write\examples{Point pt_e(mediate(origin, e.get_point(0), .75));} -\immediate\write\examples{pt_e.shift(0, 0, .2);} -\immediate\write\examples{pt_e.label("$e$", "");} -\immediate\write\examples{Ellipse f(origin, 2, 5);} -\immediate\write\examples{Point pt_f(mediate(origin, f.get_point(4), .75));} -\immediate\write\examples{pt_f.shift(.2);} -\immediate\write\examples{pt_f.label("$f$", "");} -\immediate\write\examples{e.draw();} -\immediate\write\examples{f.draw();} -\immediate\write\examples{bool_point_quadruple bpq = e.intersection_points(f);} -\immediate\write\examples{bpq.first.pt.dotlabel(1, "llft"); } -\immediate\write\examples{bpq.second.pt.dotlabel(2, "urt"); } -\immediate\write\examples{bpq.third.pt.dotlabel(3, "ulft"); } -\immediate\write\examples{bpq.fourth.pt.dotlabel(4, "lrt"); } -\immediate\write\examples{draw_axes(gray, 3.5, "d", "", "rt");} -\OEX{Projections::PARALLEL_X_Z} -\EGRP -\EEX 1 -\fi -\PEX -@end tex - -@tex -In @NEXTFIG{}, $e$ and $f$ are coplanar, but don't lie in a major plane, -have different centers, and only intersect at two points. -@end tex - -@example -Ellipse e(origin, 4, 2); -Ellipse f(origin, 2, 5); -f.shift(0, 0, 1); -f.rotate(0, 15); -f.shift(1, 0, 1); -e *= f.shift(-.25, 1, -1); -e *= f.rotate(10, -12.5, 3); -bool_point_quadruple bpq = e.intersection_points(f, true); -bpq.first.pt.dotlabel(1, "urt"); -bpq.second.pt.dotlabel(2, "ulft"); -@end example - -@tex -\ifmakeexamples -\BEX -\BGRP -\immediate\write\examples{default_focus.set(2, 5, -10, 2, 5, 10, 15);} -\immediate\write\examples{Ellipse e(origin, 4, 2);} -\immediate\write\examples{Ellipse f(origin, 2, 5);} -\immediate\write\examples{f.shift(0, 0, 1);} -\immediate\write\examples{f.rotate(0, 15);} -\immediate\write\examples{f.shift(1, 0, 1);} -\immediate\write\examples{e *= f.shift(-.25, 1, -1);} -\immediate\write\examples{e *= f.rotate(10, -12.5, 3);} -\immediate\write\examples{e.get_center().label("$e$", "");} -\immediate\write\examples{mediate(f.get_center(), f.get_point(4)).label("$f$", ""); } -\immediate\write\examples{e.draw();} -\immediate\write\examples{f.draw();} -\immediate\write\examples{bool_point_quadruple bpq = e.intersection_points(f, true);} -\immediate\write\examples{bpq.first.pt.dotlabel(1, "rt"); } -\immediate\write\examples{bpq.second.pt.dotlabel(2, "ulft"); } -\immediate\write\examples{draw_axes(gray, 0, "d", "d", "urt");} -\OEX{} -\EGRP -\EEX 1 -\fi -\PEX -@end tex - -If the planes of the @code{Ellipses} are parallel, there are, of course, -no intersection points. If the @code{Ellipses} are non-coplanar, and -their planes are not parallel to each other, -@code{intersection_points()} first finds the line of intersection of the -planes of the @code{Ellipses}. It then returns the @code{Points} of -intersection of this line with the @code{Ellipses}, if they exist. If -the @var{verbose} argument is @code{true}, information about the -@code{Points} is printed to standard output. - -In @NEXTFIG{}, the two @code{Ellipses} lie in skew planes. The plane -of $f$ intersects with $e$ at the @code{Points} labelled ``1'' and ``2'', -while the plane of $e$ intersects with $f$ at the @code{Points} labelled -``3'' and ``4''. - -@example -Ellipse e(origin, 5, 3); -Ellipse f(origin, 2, 5); -f.rotate(0, 0, 30); -f.rotate(0, 10); -f.rotate(45); -f.shift(1.5, 1); -bool_point_quadruple bpq = e.intersection_points(f, true); -bpq.first.pt.dotlabel(1); -bpq.second.pt.dotlabel(2); -bpq.third.pt.dotlabel(3, "rt"); -bpq.fourth.pt.dotlabel(4, "urt"); -@print{} First point lies on the perimeter of *this. - First point lies inside e. - Second point lies on the perimeter of *this. - Second point lies outside e. - Third point lies outside *this. - Third point lies on the perimeter of e. - Fourth point lies inside *this. - Fourth point lies on the perimeter of e. -@end example - -@tex -\ifmakeexamples -\BEX -\BGRP -\immediate\write\examples{default_focus.set(2, 5, -10, 2, 5, 10, 10);} -\immediate\write\examples{Ellipse e(origin, 5, 3);} -\immediate\write\examples{Ellipse f(origin, 2, 5);} -\immediate\write\examples{f.rotate(0, 0, 30);} -\immediate\write\examples{f.rotate(0, 10);} -\immediate\write\examples{f.rotate(45);} -\immediate\write\examples{f.shift(1.5, 1);} -\immediate\write\examples{e.draw();} -\immediate\write\examples{f.draw();} -\immediate\write\examples{bool_point_quadruple bpq = e.intersection_points(f, true);} -\immediate\write\examples{bpq.first.pt.dotlabel(1); } -\immediate\write\examples{bpq.second.pt.dotlabel(2); } -\immediate\write\examples{bpq.third.pt.dotlabel(3, "rt"); } -\immediate\write\examples{bpq.fourth.pt.dotlabel(4, "urt"); } -\immediate\write\examples{e.get_center().label("$e$", "");} -\immediate\write\examples{f.get_center().label("$f$", "");} -\immediate\write\examples{bpq.second.pt.draw(bpq.third.pt, black, "evenly");} -\OEX{} -\EGRP -\EEX 1 -\fi -\PEX -@end tex - - -@tex -In @NEXTFIG{}, the two @code{Ellipses} lie in skew planes. The plane of -$f$ intersects with $e$ at the @code{Points} labelled ``1'' and ``2''. -The plane of $e$ does not intersect with $f$, so @code{bpq.third.pt} -and @code{bpq.fourth.pt} are @code{INVALID_POINT}. -@end tex - -@example -Ellipse e(origin, 5, 3); -Ellipse f(origin, 2, 5, 45); -f.shift(0, 2.5, 3); -bool_point_quadruple bpq = e.intersection_points(f, true); -bpq.first.pt.dotlabel(1); -bpq.second.pt.dotlabel(2); -@print{} First point lies on the perimeter of *this. - First point lies outside e. - Second point lies on the perimeter of *this. - Second point lies outside e. - Third intersection point is INVALID_POINT. - Fourth intersection point is INVALID_POINT. -@end example - - -@tex -\ifmakeexamples -\BEX -\BGRP -\immediate\write\examples{default_focus.set(2, 5, -10, 2, 5, 10, 10);} -\immediate\write\examples{Ellipse e(origin, 5, 3);} -\immediate\write\examples{Ellipse f(origin, 2, 5, 45);} -\immediate\write\examples{f.shift(0, 2.5, 3);} -\immediate\write\examples{e.draw();} -\immediate\write\examples{f.draw();} -\immediate\write\examples{bool_point_quadruple bpq = e.intersection_points(f, true);} -\immediate\write\examples{bpq.first.pt.dotlabel(1); } -\immediate\write\examples{bpq.second.pt.dotlabel(2); } -\immediate\write\examples{bpq.first.pt.draw(bpq.second.pt, black, "evenly");} -\immediate\write\examples{e.get_center().label("$e$", "");} -\immediate\write\examples{f.get_center().label("$f$", "");} -\OEX{} -\EGRP -\EEX 1 -\fi -\PEX -@end tex - - - - - -@end deftypefn - - diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/ellipse.texi 3DLDF-1.1.4/DOC/TEXINFO/ellipse.texi --- 3DLDF-1.1.3/DOC/TEXINFO/ellipse.texi 2003-11-28 15:18:17.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/ellipse.texi 2003-12-09 19:58:57.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: ellipse.texi,v 1.2 2003/11/28 14:18:17 lfinsto1 Exp $ - +@c $Id: ellipse.texi,v 1.6 2003/12/09 18:58:56 lfinsto1 Exp $ + @node Ellipse Reference, Circle Reference, Regular Closed Plane Curve Reference, Top @chapter Ellipse Reference -@tindex{Ellipse} +@tindex Ellipse Class @code{Ellipse} is defined in @file{ellipses.web}. It is derived from @code{Reg_Cl_Plane_Curve} using public derivation. @@ -23,6 +23,7 @@ * Affine Transformations for Ellipses:: * Querying Ellipses:: * Returning Elements and Information for Ellipses:: +* Ellipse Intersections:: * Solving Ellipses:: * Rectangles for Ellipses:: @end menu @@ -38,27 +39,36 @@ @end deftypevr @deftypevr {Protected variable} real linear_eccentricity -@tex -The linear eccentricity of the @code{Ellipse} $e$, such that -$e = \sqrt{a^2 - b^2}$, where $a$ and $b$ are half the lengths of the major -and minor axes, respectively. Let $h$ stand for @code{axis_h} and $v$ -for @code{axis_v}. If $h>v$, then $a = h/2$ and $b = v/2$. If $v>h$, -then $a =v/2$ and $b = h/2$. If $h = v$, then the @code{Ellipse} is -circular (but not an object of type @code{Circle}!), and $a = b = v/2 = h/2$. +@c +The linear eccentricity of the @code{Ellipse} @math{e}, such that +@iftex +@tex +$e = \sqrt{\strut a^2 - b^2}$, +@end tex +@end iftex +@ifnottex +@math{e = \sqrt{a^2 - b^2}}, +@end ifnottex +@c +where @math{a} and @math{b} are half the lengths of the major +and minor axes, respectively. Let @math{h} stand for @code{axis_h} and @math{v} +for @code{axis_v}. If @math{h>v}, then @math{a = h/2} and @math{b = v/2}. If @math{v>h}, +then @math{a =v/2} and @math{b = h/2}. If @math{h = v}, then the @code{Ellipse} is +circular (but not an object of type @code{Circle}!), and @math{a = b = v/2 = h/2}. The linear eccentricity is the distance along the major axis of the @code{Ellipse} from @code{center} to @code{focus0} and @code{focus1}. -@end tex +@c @c !! TO DO: Add example. +@c @end deftypevr @deftypevr {Protected variable} real numerical_eccentricity -@tex -The numerical eccentricity of the @code{Ellipse} $\epsilon$, such -that $\epsilon = e/a < 1$, where $e$ is the linear eccentricity of the -@code{Ellipse}, and $a$ is half the length of the major axis of the +The numerical eccentricity @math{\epsilon} of the @code{Ellipse}, +such +that @math{\epsilon = e/a < 1}, where @math{e} is the linear eccentricity of the +@code{Ellipse}, and @math{a} is half the length of the major axis of the @code{Ellipse}. -@end tex @end deftypevr @deftypevr {Protected variables} real axis_h @@ -98,6 +108,7 @@ e.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -111,6 +122,7 @@ \fi \PEX @end tex +@end iftex @example Point P(1, 1, 1); @@ -118,6 +130,7 @@ e.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -133,6 +146,7 @@ \fi \PEX @end tex +@end iftex @c @end deftypefn @@ -211,6 +225,7 @@ e.label(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -225,6 +240,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn @@ -238,6 +254,7 @@ e.dotlabel(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -252,6 +269,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn @@ -310,11 +328,18 @@ Returns @code{true}, because the equation for an ellipse in the x-y plane with its center at the origin is the quadratic equation +@iftex @tex $$x^2/a^2 + y^2/b^2 = 1$$ -where $a$ is half the horizontal axis -and $b$ is half the vertical axis. @end tex +@end iftex +@ifnottex +@math{x^2/a^2 + y^2/b^2 = 1} +@end ifnottex +@c +where @math{a} is half the horizontal axis +and @math{b} is half the vertical axis. + @example Ellipse e(origin, 5, 2, 90); @@ -327,6 +352,7 @@ @print{} 1 @end example +@iftex @tex \ifmakeexamples \BEX @@ -343,6 +369,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn @@ -353,7 +380,7 @@ ellipse is neither a cubic nor a quartic function. @end deftypefn -@node Returning Elements and Information for Ellipses, Solving Ellipses, Querying Ellipses, Ellipse Reference +@node Returning Elements and Information for Ellipses, Ellipse Intersections, Querying Ellipses, Ellipse Reference @section Returning Elements and Information @deftypefn {Virtual function} Point& get_center (@code{void}) @@ -415,13 +442,13 @@ @deftypefn {@code{const} virtual function} {signed short} location (Point @var{p}) -@tex -Returns a value $l$ indicating the location of the @code{Point} argument -$p$ with respect to the @code{Ellipse}. +@c +Returns a value @math{l} indicating the location of the @code{Point} argument +@math{p} with respect to the @code{Ellipse}. -Let $e$ stand for the @code{Ellipse}. +Let @math{e} stand for the @code{Ellipse}. The return values are as follows: -@end tex + @table @asis @item 0 @@ -446,10 +473,10 @@ Point A = e.get_point(7); cout << e.location(A); @print{} 0 -Point B = mediate(center, e.get_point(2)); +Point B = center.mediate(e.get_point(2)); cout << e.location(B); @print{} 1 -Point C = mediate(center, e.get_point(2), 1.5); +Point C = center.mediate(e.get_point(2), 1.5); cout << e.location(C); @print{} -1 Point D = A; @@ -467,6 +494,7 @@ Ellipse is non-elliptical. Returning -3. @end example +@iftex @tex \ifmakeexamples \BEX @@ -479,9 +507,9 @@ \immediate\write\examples{center.label("$e$", "");} \immediate\write\examples{Point A = e.get_point(7);} \immediate\write\examples{A.dotlabel("$A$", "lft"); } -\immediate\write\examples{Point B = mediate(center, e.get_point(2));} +\immediate\write\examples{Point B = center.mediate(e.get_point(2));} \immediate\write\examples{B.dotlabel("$B$"); } -\immediate\write\examples{Point C = mediate(center, e.get_point(2), 1.5);} +\immediate\write\examples{Point C = center.mediate(e.get_point(2), 1.5);} \immediate\write\examples{C.dotlabel("$C$"); } \immediate\write\examples{Point D = A;} \immediate\write\examples{D.shift(-2, 0, 4);} @@ -494,6 +522,8 @@ \fi \PEX @end tex +@end iftex + @end deftypefn @deftypefn {@code{const} function} Point angle_point (real @var{angle}) @@ -510,6 +540,7 @@ current_picture.output(Projections::PARALLEL_X_Z); @end example +@iftex @tex \ifmakeexamples \BEX @@ -523,7 +554,7 @@ \immediate\write\examples{center.drawarrow(e0);} \immediate\write\examples{Point P = e.angle_point(135);} \immediate\write\examples{Point Q = e.angle_point(135/2.0);} -\immediate\write\examples{mediate(center, Q, .25).label("$@DBKS{theta} = 135^@DBKS{circ}$", "rt");} +\immediate\write\examples{center.mediate(Q, .25).label("$@DBKS{theta} = 135^@DBKS{circ}$", "rt");} \immediate\write\examples{center.drawarrow(P);} \immediate\write\examples{P.label("$P$"); } \immediate\write\examples{Point R(e.get_point(12));} @@ -535,6 +566,7 @@ \fi \PEX @end tex +@end iftex @NEXTFIG{} demonstrates, that the rotation is unfortunately not always in the direction one would prefer. I don't have a solution to this @@ -546,6 +578,7 @@ Point Q = e.angle_point(-135); @end example +@iftex @tex \ifmakeexamples \BEX @@ -553,7 +586,7 @@ \immediate\write\examples{Ellipse e(origin, 6, 4, 90);} \immediate\write\examples{e.draw();} \immediate\write\examples{Point center = e.get_center();} -\immediate\write\examples{mediate(center, e.get_point(8), .25).label("$e$", "");} +\immediate\write\examples{center.mediate(e.get_point(8), .25).label("$e$", "");} \immediate\write\examples{Point e0 = e.get_point(0);} \immediate\write\examples{e0.label(0, "rt");} \immediate\write\examples{e.get_point(1).dotlabel(1);} @@ -561,12 +594,12 @@ \immediate\write\examples{center.drawarrow(e0);} \immediate\write\examples{Point P = e.angle_point(135);} \immediate\write\examples{Point R = e.angle_point(135/2.0);} -\immediate\write\examples{mediate(center, R, .25).label("$@DBKS{theta} = 135^@DBKS{circ}$", "rt");} +\immediate\write\examples{center.mediate(R, .25).label("$@DBKS{theta} = 135^@DBKS{circ}$", "rt");} \immediate\write\examples{center.drawarrow(P);} \immediate\write\examples{P.label("$P$", "bot"); } \immediate\write\examples{Point Q = e.angle_point(-135);} \immediate\write\examples{R = e.angle_point(-135/2.0);} -\immediate\write\examples{mediate(center, R, .25).label("$@DBKS{phi} = -135^@DBKS{circ}$", "rt");} +\immediate\write\examples{center.mediate(R, .25).label("$@DBKS{phi} = -135^@DBKS{circ}$", "rt");} \immediate\write\examples{center.drawarrow(Q);} \immediate\write\examples{Q.label("$Q$"); } \immediate\write\examples{Point S(e.get_point(12));} @@ -578,20 +611,305 @@ \fi \PEX @end tex +@end iftex + +@end deftypefn + +@node Ellipse Intersections, Solving Ellipses, Returning Elements and Information for Ellipses, Ellipse Reference +@section Intersections + +@deftypefn {@code{const} virtual function} bool_point_pair intersection_points ({const Point&} @var{p0}, {const Point&} @var{p1}) +@deftypefnx {@code{const} virtual function} bool_point_pair intersection_points ({const Path&} @var{p}) +@c +These functions return the intersection points of a line with an +@code{Ellipse}. In the first version, the line is specified by the two +@code{Point} arguments. +In the second version, @code{@var{p}.is_linear()} must return @code{true}, +otherwise, @code{intersection_points()} issues an error message and +returns @code{INVALID_BOOL_POINT_PAIR}. + +If the line and the @code{Ellipse} are coplanar, there can be at most two +intersection points. Otherwise, there can be at most one. + +@example +Ellipse e(origin, 5, 7, 30, 30, 30); +e.shift(3, 0, 3); +Point p0 = e.get_center().mediate(e.get_point(3)); +Point normal = e.get_normal(); +Point A = normal; +A *= 2.5; +A.shift(p0); +Point B = normal; +B *= -2.5; +B.shift(p0); +bool_point_pair bpp = e.intersection_points(A, B); +bpp.first.pt.dotlabel("$i_0$", "rt"); +Point C = e.get_point(15).mediate(e.get_point(11), 1.25); +Point D = e.get_point(11).mediate(e.get_point(15), 1.5); +Path q = C.draw(D); +bpp = e.intersection_points(q); +bpp.first.pt.dotlabel("$i_1$", "llft"); +bpp.second.pt.dotlabel("$i_2$", "ulft"); +@end example +@iftex +@tex +\ifmakeexamples +\BEX +\BGRP +\immediate\write\examples{default_focus.set(2, 5, -10, 2, 5, 10, 10); } +\immediate\write\examples{Ellipse e(origin, 5, 7, 30, 30, 30);} +\immediate\write\examples{e.shift(3, 0, 3);} +\immediate\write\examples{e.get_center().label("$e$", "");} +\immediate\write\examples{e.draw();} +\immediate\write\examples{Point p0 = e.get_center().mediate(e.get_point(3));} +\immediate\write\examples{Point normal = e.get_normal();} +\immediate\write\examples{Point A = normal;} +\immediate\write\examples{A *= 2.5;} +\immediate\write\examples{A.shift(p0);} +\immediate\write\examples{Point B = normal;} +\immediate\write\examples{B *= -2.5;} +\immediate\write\examples{B.shift(p0);} +\immediate\write\examples{A.dotlabel("$A$"); } +\immediate\write\examples{B.dotlabel("$B$", "bot"); } +\immediate\write\examples{bool_point_pair bpp = e.intersection_points(A, B);} +\immediate\write\examples{bpp.first.pt.dotlabel("$i_0$", "rt"); } +\immediate\write\examples{A.draw(bpp.first.pt);} +\immediate\write\examples{bpp.first.pt.draw(B, black, "evenly");} +\immediate\write\examples{Point C = e.get_point(15).mediate(e.get_point(11), 1.25);} +\immediate\write\examples{C.dotlabel("$C$", "bot"); } +\immediate\write\examples{Point D = e.get_point(11).mediate(e.get_point(15), 1.5);} +\immediate\write\examples{D.dotlabel("$D$"); } +\immediate\write\examples{Path q = C.draw(D);} +\immediate\write\examples{bpp = e.intersection_points(q);} +\immediate\write\examples{bpp.first.pt.dotlabel("$i_1$", "llft"); } +\immediate\write\examples{bpp.second.pt.dotlabel("$i_2$", "ulft"); } +\immediate\write\examples{draw_axes(gray, 0, "d", "d", "lft");} +\OEX{} +\EGRP +\EEX 1 +\fi +\PEX +@end tex +@end iftex @end deftypefn -@c This @include command can be commented-out, -@c to save run-time of 3dldf, since -@c finding the intersections of two Ellipses can be time-consuming. +@deftypefn {@code{const} virtual function} bool_point_quadruple intersection_points (Ellipse @var{e}, [{const bool} @var{verbose} = false]) +Returns the intersection points of two @code{Ellipses}. Two @code{Ellipses} +can intersect at at most four points. + +Let @var{bpq} be the @code{bool_point_quadruple} returned by +@code{intersection_points()}. If one or more intersection points are +found, the corresponding @code{Points} are stored in the +@code{pt} elements of the four @code{bool_points} belonging to +@var{bpq}, otherwise @code{INVALID_POINT}. If a @code{Point} is found, the +@code{b} element of the @code{bool_point} will be @code{true}, otherwise +@code{false}. + +If the @var{verbose} argument is @code{true}, +@code{intersection_points()} will print information about the +intersection points to standard output. -@include ellipint.texi +In @NEXTFIG{}, the @code{Ellipses} @math{e} and @math{f} both lie in the x-z +plane, are centered at the origin, and intersect at four points. -@c @tex -@c \message{DON'T FORGET TO INCLUDE ELLIPINT.TEXI!} -@c @end tex +@example +Ellipse e(origin, 5, 2); +Ellipse f(origin, 2, 5); +bool_point_quadruple bpq = e.intersection_points(f); +bpq.first.pt.dotlabel(1, "llft"); +bpq.second.pt.dotlabel(2, "urt"); +bpq.third.pt.dotlabel(3, "ulft"); +bpq.fourth.pt.dotlabel(4, "lrt"); +@end example -@node Solving Ellipses, Rectangles for Ellipses, Returning Elements and Information for Ellipses, Ellipse Reference +@iftex +@tex +\ifmakeexamples +\BEX +\BGRP +\immediate\write\examples{Ellipse e(origin, 5, 2);} +\immediate\write\examples{Point pt_e(origin.mediate(e.get_point(0), .75));} +\immediate\write\examples{pt_e.shift(0, 0, .2);} +\immediate\write\examples{pt_e.label("$e$", "");} +\immediate\write\examples{Ellipse f(origin, 2, 5);} +\immediate\write\examples{Point pt_f(origin.mediate(f.get_point(4), .75));} +\immediate\write\examples{pt_f.shift(.2);} +\immediate\write\examples{pt_f.label("$f$", "");} +\immediate\write\examples{e.draw();} +\immediate\write\examples{f.draw();} +\immediate\write\examples{bool_point_quadruple bpq = e.intersection_points(f);} +\immediate\write\examples{bpq.first.pt.dotlabel(1, "llft"); } +\immediate\write\examples{bpq.second.pt.dotlabel(2, "urt"); } +\immediate\write\examples{bpq.third.pt.dotlabel(3, "ulft"); } +\immediate\write\examples{bpq.fourth.pt.dotlabel(4, "lrt"); } +\immediate\write\examples{draw_axes(gray, 3.5, "d", "", "rt");} +\OEX{Projections::PARALLEL_X_Z} +\EGRP +\EEX 1 +\fi +\PEX +@end tex +@end iftex + +In @NEXTFIG{}, @math{e} and @math{f} are coplanar, but don't lie in a major plane, +have different centers, and only intersect at two points. + +@example +Ellipse e(origin, 4, 2); +Ellipse f(origin, 2, 5); +f.shift(0, 0, 1); +f.rotate(0, 15); +f.shift(1, 0, 1); +e *= f.shift(-.25, 1, -1); +e *= f.rotate(10, -12.5, 3); +bool_point_quadruple bpq = e.intersection_points(f, true); +bpq.first.pt.dotlabel(1, "urt"); +bpq.second.pt.dotlabel(2, "ulft"); +@end example + +@iftex +@tex +\ifmakeexamples +\BEX +\BGRP +\immediate\write\examples{default_focus.set(2, 5, -10, 2, 5, 10, 15);} +\immediate\write\examples{Ellipse e(origin, 4, 2);} +\immediate\write\examples{Ellipse f(origin, 2, 5);} +\immediate\write\examples{f.shift(0, 0, 1);} +\immediate\write\examples{f.rotate(0, 15);} +\immediate\write\examples{f.shift(1, 0, 1);} +\immediate\write\examples{e *= f.shift(-.25, 1, -1);} +\immediate\write\examples{e *= f.rotate(10, -12.5, 3);} +\immediate\write\examples{e.get_center().label("$e$", "");} +\immediate\write\examples{f.get_center().mediate(f.get_point(4)).label("$f$", ""); } +\immediate\write\examples{e.draw();} +\immediate\write\examples{f.draw();} +\immediate\write\examples{bool_point_quadruple bpq = e.intersection_points(f, true);} +\immediate\write\examples{bpq.first.pt.dotlabel(1, "rt"); } +\immediate\write\examples{bpq.second.pt.dotlabel(2, "ulft"); } +\immediate\write\examples{draw_axes(gray, 0, "d", "d", "urt");} +\OEX{} +\EGRP +\EEX 1 +\fi +\PEX +@end tex +@end iftex + +If the planes of the @code{Ellipses} are parallel, there are, of course, +no intersection points. If the @code{Ellipses} are non-coplanar, and +their planes are not parallel to each other, +@code{intersection_points()} first finds the line of intersection of the +planes of the @code{Ellipses}. It then returns the @code{Points} of +intersection of this line with the @code{Ellipses}, if they exist. If +the @var{verbose} argument is @code{true}, information about the +@code{Points} is printed to standard output. + +In @NEXTFIG{}, the two @code{Ellipses} lie in skew planes. The plane +of @math{f} intersects with @math{e} at the @code{Points} labelled ``1'' and ``2'', +while the plane of @math{e} intersects with @math{f} at the @code{Points} labelled +``3'' and ``4''. + +@example +Ellipse e(origin, 5, 3); +Ellipse f(origin, 2, 5); +f.rotate(0, 0, 30); +f.rotate(0, 10); +f.rotate(45); +f.shift(1.5, 1); +bool_point_quadruple bpq = e.intersection_points(f, true); +bpq.first.pt.dotlabel(1); +bpq.second.pt.dotlabel(2); +bpq.third.pt.dotlabel(3, "rt"); +bpq.fourth.pt.dotlabel(4, "urt"); +@print{} First point lies on the perimeter of *this. + First point lies inside e. + Second point lies on the perimeter of *this. + Second point lies outside e. + Third point lies outside *this. + Third point lies on the perimeter of e. + Fourth point lies inside *this. + Fourth point lies on the perimeter of e. +@end example + +@iftex +@tex +\ifmakeexamples +\BEX +\BGRP +\immediate\write\examples{default_focus.set(2, 5, -10, 2, 5, 10, 10);} +\immediate\write\examples{Ellipse e(origin, 5, 3);} +\immediate\write\examples{Ellipse f(origin, 2, 5);} +\immediate\write\examples{f.rotate(0, 0, 30);} +\immediate\write\examples{f.rotate(0, 10);} +\immediate\write\examples{f.rotate(45);} +\immediate\write\examples{f.shift(1.5, 1);} +\immediate\write\examples{e.draw();} +\immediate\write\examples{f.draw();} +\immediate\write\examples{bool_point_quadruple bpq = e.intersection_points(f, true);} +\immediate\write\examples{bpq.first.pt.dotlabel(1); } +\immediate\write\examples{bpq.second.pt.dotlabel(2); } +\immediate\write\examples{bpq.third.pt.dotlabel(3, "rt"); } +\immediate\write\examples{bpq.fourth.pt.dotlabel(4, "urt"); } +\immediate\write\examples{e.get_center().label("$e$", "");} +\immediate\write\examples{f.get_center().label("$f$", "");} +\immediate\write\examples{bpq.second.pt.draw(bpq.third.pt, black, "evenly");} +\OEX{} +\EGRP +\EEX 1 +\fi +\PEX +@end tex +@end iftex + +In @NEXTFIG{}, the two @code{Ellipses} lie in skew planes. The plane of +@math{f} intersects with @math{e} at the @code{Points} labelled ``1'' and ``2''. +The plane of @math{e} does not intersect with @math{f}, so @code{bpq.third.pt} +and @code{bpq.fourth.pt} are @code{INVALID_POINT}. + +@example +Ellipse e(origin, 5, 3); +Ellipse f(origin, 2, 5, 45); +f.shift(0, 2.5, 3); +bool_point_quadruple bpq = e.intersection_points(f, true); +bpq.first.pt.dotlabel(1); +bpq.second.pt.dotlabel(2); +@print{} First point lies on the perimeter of *this. + First point lies outside e. + Second point lies on the perimeter of *this. + Second point lies outside e. + Third intersection point is INVALID_POINT. + Fourth intersection point is INVALID_POINT. +@end example + +@iftex +@tex +\ifmakeexamples +\BEX +\BGRP +\immediate\write\examples{default_focus.set(2, 5, -10, 2, 5, 10, 10);} +\immediate\write\examples{Ellipse e(origin, 5, 3);} +\immediate\write\examples{Ellipse f(origin, 2, 5, 45);} +\immediate\write\examples{f.shift(0, 2.5, 3);} +\immediate\write\examples{e.draw();} +\immediate\write\examples{f.draw();} +\immediate\write\examples{bool_point_quadruple bpq = e.intersection_points(f, true);} +\immediate\write\examples{bpq.first.pt.dotlabel(1); } +\immediate\write\examples{bpq.second.pt.dotlabel(2); } +\immediate\write\examples{bpq.first.pt.draw(bpq.second.pt, black, "evenly");} +\immediate\write\examples{e.get_center().label("$e$", "");} +\immediate\write\examples{f.get_center().label("$f$", "");} +\OEX{} +\EGRP +\EEX 1 +\fi +\PEX +@end tex +@end iftex +@end deftypefn + +@node Solving Ellipses, Rectangles for Ellipses, Ellipse Intersections, Ellipse Reference @section Solving @deftypefn {@code{const} function} real_pair solve (char @var{axis_unknown}, real @var{known}) @@ -617,27 +935,74 @@ @end deftypefn @deftypefn {@code{const} function} real_triple get_coefficients (real @var{Slope}, real @var{v_intercept}) + +Let @math{x} and @math{y} stand for the x and y-coordinates of a point on an +ellipse in the x-y plane, @math{a} for half of the horizontal axis +@c +@iftex +@tex +(@code{axis_h}$/2$), +@end tex +@end iftex +@c +@ifnottex +@math{(@code{axis_h} / 2)}, +@end ifnottex +@c +and @math{b} for half of the vertical axis +@c +@iftex @tex -Let $x$ and $y$ stand for the x and y-coordinates of a point on an -ellipse in the x-y plane, $a$ for half of the horizontal axis -(@code{axis_h}$/2$), and $b$ for half of the vertical axis (@code{axis_v}$/2$). -Further, let $y = mx + i$ be the equation of a line in -the x-y plane, where $m$ is the slope and $i$ the +@end tex +@end iftex +@c +@ifnottex +@math{(@code{axis_v} / 2)}. +@end ifnottex + +Further, let @math{y = mx + i} be the equation of a line in +the x-y plane, where @math{m} is the slope and @math{i} the y-intercept. This function returns the coefficients of the quadratic equation -that results from replacing $y$ with $mx + i$ +that results from replacing @math{y} with @math{mx + i} in the equation for the ellipse +@c +@iftex +@tex $$x^2/a^2 + y^2/b^2 = 1$$ namely $$x^2/a^2 + (mx + i)^2/b^2 - 1 = 0$$ $$\equiv (b^2x + a^2m^2)x^2 + 2a^2imx + (a^2i^2 - a^2b^2) = 0.$$ +@end tex +@end iftex +@c +@ifnottex + +@display +@math{x^2/a^2 + y^2/b^2 = 1}@* +@end display +namely +@display +@math{x^2/a^2 + (mx + i)^2/b^2 - 1 = 0} +@math{== (b^2x + a^2m^2)x^2 + 2a^2imx + (a^2i^2 - a^2b^2) = 0}. +@end display +@end ifnottex +@c The coefficients are returned in the @code{real_triple} in the order -one would expect: @code{r.first} is the coefficient of $x^2$, @code{r.second} of -$x$ and @code{r.third} of the constant term ($x^0 \equiv 1 $). +one would expect: @code{r.first} is the coefficient of @math{x^2}, @code{r.second} of +@math{x} and @code{r.third} of the constant term +@iftex +@tex +($x^0 \equiv 1 $). @end tex +@end iftex +@c +@ifnottex +@math{(x^0 == 1)}. +@end ifnottex @code{get_coefficients()} is called in @code{Reg_Cl_Plane_Curve::intersection_points(Point, Point, Point)}, and @@ -647,8 +1012,6 @@ Regular Closed Plane Curve Reference; Intersections}. @end deftypefn - - @node Rectangles for Ellipses, , Solving Ellipses, Ellipse Reference @section Rectangles @@ -663,7 +1026,7 @@ e.unfilldraw(black); @end example - +@iftex @tex \ifmakeexamples \BEX @@ -674,13 +1037,14 @@ \immediate\write\examples{Rectangle r = e.out_rectangle();} \immediate\write\examples{r.filldraw(black, gray);} \immediate\write\examples{e.unfilldraw(black);} -\immediate\write\examples{mediate(r.get_point(2), r.get_point(3)).label("$r$");} +\immediate\write\examples{r.get_point(2).mediate(r.get_point(3)).label("$r$");} \OEX{} \EGRP \EEX 1 \fi \PEX @end tex +@end iftex @end deftypefn @@ -693,6 +1057,7 @@ r.unfilldraw(black); @end example +@iftex @tex \ifmakeexamples \BEX @@ -710,6 +1075,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn @@ -727,6 +1093,7 @@ e.draw_out_rectangle(black, "evenly", "pencircle scaled .3mm"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -737,13 +1104,14 @@ \immediate\write\examples{e.filldraw(black, gray);} \immediate\write\examples{Rectangle r = e.draw_out_rectangle(black, "evenly", "pencircle scaled .3mm");} \immediate\write\examples{e.get_center().label("$e$", "");} -\immediate\write\examples{mediate(r.get_point(0), r.get_point(1), .25).label("$r$");} +\immediate\write\examples{r.get_point(0).mediate(r.get_point(1), .25).label("$r$");} \OEX{} \EGRP \EEX 1 \fi \PEX @end tex +@end iftex @end deftypefn @deftypefn {@code{const} function} Rectangle draw_in_rectangle ([{const Color&} @var{ddraw_color} = @code{*Colors::default_color}, [string @var{ddashed} = "", [string @var{ppen} = "", [Picture& @var{picture} = @code{current_picture}]]]]) @@ -757,7 +1125,8 @@ e.shift(-1, 1, 1); e.draw_in_rectangle(black, "evenly", "pencircle scaled .3mm"); @end example - + +@iftex @tex \ifmakeexamples \BEX @@ -776,6 +1145,7 @@ \fi \PEX @end tex +@end iftex diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/focus.texi 3DLDF-1.1.4/DOC/TEXINFO/focus.texi --- 3DLDF-1.1.3/DOC/TEXINFO/focus.texi 2003-11-28 15:18:24.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/focus.texi 2003-12-08 13:51:19.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: focus.texi,v 1.1 2003/11/28 14:18:24 lfinsto1 Exp $ - +@c $Id: focus.texi,v 1.3 2003/12/08 12:51:19 lfinsto1 Exp $ + @node Focus Reference, Line Reference, Point Reference, Top @chapter Focus Reference -@tindex{Focus} +@tindex Focus Class @code{Focus} is defined in @file{points.web}. @code{Focuses} are used when creating a perspective projection. They represent the center of projection and can be thought of like a @@ -67,6 +67,7 @@ Focus f(5, 5, -10, 2, 4, 10, 10, 180); @result{} @end example +@iftex @tex $$f.{\tt transform} \equiv \pmatrix{0.989& -0.00733& -0.148& 0\cr @@ -74,21 +75,40 @@ 0.148& 0.0488& 0.988& 0\cr -3.46& -4.47& 0.865& 1\cr}$$ @end tex +@end iftex +@ifnottex +@display +@code{f.transform} @equiv{} + 0.989 -0.00733 -0.148 0 + 0 0.999 -0.0494 0 + 0.148 0.0488 0.988 0 +-3.4 -4.47 0.865 1 +@end display +@end ifnottex @end deftypevr @deftypevr {Private variable} Transform persp The @code{Transform} representing the perspective transformation for a particular @code{Focus}. -@tex -Let $d$ stand for @code{distance}, then +Let @math{d} stand for @code{distance}, then +@iftex +@tex $${\tt persp} \equiv \pmatrix{1&0&0&0\cr 0&1&0&0\cr 0&0&0&1/d\cr 0&0&0&1\cr}$$ @end tex - - +@end iftex +@ifnottex +@display +@code{persp} @equiv{} +1 0 0 0 +0 1 0 0 +0 0 0 1/d +0 0 0 1 +@end display +@end ifnottex @end deftypevr @node Focus Global Variables, Focus Constructors and Setting Functions, Focus Data Members, Focus Reference diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/getstart.texi 3DLDF-1.1.4/DOC/TEXINFO/getstart.texi --- 3DLDF-1.1.3/DOC/TEXINFO/getstart.texi 2003-11-28 15:18:32.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/getstart.texi 1970-01-01 01:00:00.000000000 +0100 @@ -1,29 +0,0 @@ -@c getstart.texi - -@c This file is part of the 3DLDF User and Reference Manual. -@c Copyright (C) 2003 Laurence D. Finston -@c See the section "GNU Free Documentation License" in the file -@c fdl.texi for copying conditions. - -@c $Id: getstart.texi,v 1.1 2003/11/28 14:18:32 lfinsto1 Exp $ - -@node Using 3DLDF, Intersections, Contributing to 3DLDF, Top -@chapheading Using 3DLDF - -Since 3DLDF does not yet have an input routine, user code must be -written in @cpp{} (in @file{main.web}, or some other file) and compiled. -Then, 3DLDF must be relinked, together with the new file of object -code resulting from the compilation. -For now, the important point is that the text of -the examples in this manual represent @cpp{} code. -@xref{Installing and Running 3DLDF}, for more information. - -@include gspoint.texi @c chapter Points -@include gstranpt.texi @c chapter Transforming Points -@include gstransf.texi @c chapter Transforms -@include gsdlpt.texi @c chapter Drawing and Labeling Points -@include gspaths.texi @c chapter Paths -@include gsplane.texi @c chapter Plane Figures -@include gssolfig.texi @c chapter Solid Figures -@include gspict.texi @c chapter Pictures - diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/glbcnvar.texi 3DLDF-1.1.4/DOC/TEXINFO/glbcnvar.texi --- 3DLDF-1.1.3/DOC/TEXINFO/glbcnvar.texi 1970-01-01 01:00:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/glbcnvar.texi 2003-12-09 19:07:41.000000000 +0100 @@ -0,0 +1,162 @@ +@c glbcnvar.texi + +@c This file is part of the 3DLDF User and Reference Manual. +@c Copyright (C) 2003 Laurence D. Finston +@c See the section "GNU Free Documentation License" in the file +@c fdl.texi for copying conditions. + +@c $Id: glbcnvar.texi,v 1.4 2003/12/09 18:07:41 lfinsto1 Exp $ + + +@node Global Constants and Variables, Color Reference, Typedefs and Utility Structures, Top +@chapter Global Constants and Variables + +The global constants and variables described in this chapter are +found in @file{pspglb.web}. Others, of types +defined in 3DLDF, are described in subsequent chapters. + +@deftypevr {Constant} real PI +@c +The value of @code{PI} +@iftex +@tex +($\pi$) +is calculated as +$4.0 \times \arctan(1.0)$. +@end tex +@end iftex +@ifnottex +is calculated as +4.0 * arctan(1.0). +@end ifnottex +@c +I believe that a preprocessor macro ``@code{PI}'' was +available when I compiled 3DLDF using the DEC @cpp{} compiler, and that +it wasn't, when I used GNU CC under Linux, but I'm no longer sure. +@end deftypevr + +@deftypevar {valarray } null_coordinates +Contains four elements, all 0. Used for resetting the sets of +coordinates belonging to @code{Points}, but only when the DEC @cpp{} +compiler is used. This doesn't work when GCC is used. +@end deftypevar + +@deftypevr Constant real INVALID_REAL +Actually, @code{INVALID_REAL} is the largest possible @code{real} value +(i.e., @code{float} or @code{double}) on a given machine. +So, from the point of view of the compiler, it's not invalid at all. +However, 3DLDF uses it to indicate failure of some kind. For example, +the return value of a function returning @code{real} can be compared +with @code{INVALID_REAL} to check whether the function succeeded or +failed. + +An alternative approach would be to use the exception handling +facilities of @cpp{}. I do use these, but only in a couple of places, +so far. +@end deftypevr + +@deftypevr Constant real_pair INVALID_REAL_PAIR +@code{first} and @code{second} are both @code{INVALID_REAL}. +@end deftypevr + +@deftypevr Constant real INVALID_REAL_SHORT +@code{first} is @code{INVALID_REAL} and @code{second} is 0. +@end deftypevr + +@deftypevr Constant real MAX_REAL +@c +@cindex system dependencies +@c +The largest @code{real} value permitted in 3DLDF. It +is the second largest @code{real} value (i.e., @code{float} or +@code{double}) on a given machine (@code{INVALID_REAL} is the largest). + +However, the way it's calculated +depends on the system's floating point representation and the size of +certain data types. Currently, @code{MAX_REAL} can only be calculated +correctly for 32-bit, little-endian architectures. I plan to fix this soon, +so that it will work on other architectures soon. When I have, I will +supply a patch. +@xref{Ports}. + +@end deftypevr + +@deftypevr Constant real MAX_REAL_SQRT +The square root of @code{MAX_REAL}. Used in @code{Point::magnitude()} +(@pxref{Vector Operations}). The magnitude of a @code{Point} is found +by using the formula +@iftex +@tex +$\sqrt{\strut x^2 + y^2 + z^2}$. +@end tex +@end iftex +@c +@ifnottex +@math{\sqrt{x^2 + y^2 + z^2}}. +@end ifnottex +@c +@math{x}, @math{y}, and @math{z} are all tested against +@code{MAX_REAL_SQRT} to ensure that +@math{x^2}, @math{y^2}, and @math{z^2} +will all be +less than or equal to @code{MAX_REAL} before trying to calculate them. + +@c !! TO DO. +Metafont implements an operation called @dfn{Pythagorean addition}, +notated as ``@code{++}''which +can be used to calculate distances without first squaring and then +taking square roots:@c +@c +@c !! GET REF., Metafont the program. +@footnote{Knuth, Donald E. @cite{The Metafontbook}, p.@: 66.} +@c +@iftex +@tex +\setbox0=\hbox{$+$} +\setbox1=\hbox to 2\wd0{\copy0\hss\copy0} +$a\copy1 b\equiv \sqrt{\strut a^2 + b^2}$ +and +$a\copy1 b\copy1 c\equiv \sqrt{\strut a^2 + b^2 + c^2}$. +@end tex +@end iftex +@c +@ifnottex +@math{a++b @equiv{} \sqrt(a^2 + b^2)} +and +@math{a++b++c @equiv{} \sqrt(a^2 + b^2 + c^2)}. +@end ifnottex +@c +This makes it possible to calculate distances for greater values of +@math{a}, @math{b}, and @math{c}, that would otherwise cause floating point errors. +Metafont also implements the inverse operation +@dfn{Pythagorean subtraction}, notated as ``@code{+-+}'': +@c +@c !! TO DO: There's an ugly space before ``a+-+b'' in the TeX +@c output. It probably has to do with finding the best line breaks. +@c There's not much leeway, because of the shortness of the paragraph. +@c That's my interpretation, anyway. LDF 2003.12.08. +@c +@c It might be worthwhile trying to find out how Knuth did it for _The +@c METAFONTbook_. LDF 2003.12.08. +@c +@iftex +@tex +\setbox0=\hbox{$+$} +\setbox1=\hbox{$-$} +\dimen0=2\wd0 +\advance\dimen0 by \wd1 +\setbox2=\hbox to \dimen0{\copy0\hss\copy1\hss\copy0} +$a\copy2 b \equiv \sqrt{\strut a^2 - b^2}$. +@end tex +@end iftex +@ifnottex +@math{a+-+b @equiv{} \sqrt(a^2 - b^2)}. +@end ifnottex +@c +Unfortunately, 3DLDF implements neither Pythagorean addition +nor subtraction as yet, but it's on my +@c +@cindex TO DO +@c +list of ``things to do''. +@end deftypevr diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/gsdlpt.texi 3DLDF-1.1.4/DOC/TEXINFO/gsdlpt.texi --- 3DLDF-1.1.3/DOC/TEXINFO/gsdlpt.texi 2003-11-28 15:18:35.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/gsdlpt.texi 2003-12-09 19:59:27.000000000 +0100 @@ -1,19 +1,24 @@ @c gsdlpt.texi - + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: gsdlpt.texi,v 1.1 2003/11/28 14:18:35 lfinsto1 Exp $ +@c $Id: gsdlpt.texi,v 1.4 2003/12/09 18:59:27 lfinsto1 Exp $ -@node Drawing and Labeling Points +@node Drawing and Labeling Points, Paths, Transforms, Top @chapter Drawing and Labeling Points -@node Drawing Points Intro +@menu +* Drawing Points Intro:: +* Labeling Points Intro:: +@end menu + +@node Drawing Points Intro, Labeling Points Intro, Drawing and Labeling Points, Drawing and Labeling Points @section Drawing Points -@cindex{drawing and filling} +@cindex drawing and filling @c It's all very well to declare @code{Points}, place them at particular locations, print their locations to standard output, and transform them, @@ -22,7 +27,7 @@ filling commands}. The drawing and filling commands in 3DLDF are modelled on those in Metafont. -@cindex{pens} +@cindex pens The following example demonstrates how to draw a dot specifying a @code{Color} (@pxref{Color Reference}) and a @c @@ -41,6 +46,7 @@ P.drawdot(Colors::black, "pencircle scaled 3mm"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -49,7 +55,7 @@ \immediate\write\examples{P.drawdot(Colors::black, "pencircle scaled 3mm");} \immediate\write\examples{Point p0(P);p0.shift(0, .5);p0.label("$P$","");} \immediate\write\examples{Point mid;} -\immediate\write\examples{mid = mediate(P, p0);} +\immediate\write\examples{mid = P.mediate(p0);} \immediate\write\examples{Point pt[4];} \immediate\write\examples{for (int i = 0; i < 4; ++i)} \immediate\write\examples{ pt[i] = mid;} @@ -63,6 +69,7 @@ \fi \PEX @end tex +@end iftex In @code{drawdot()}, a @code{Color} argument precedes the @code{string} argument for the pen, so ``@code{Colors::black}'' must be @@ -85,6 +92,7 @@ p.undrawdot("pencircle scaled 2mm"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -94,7 +102,7 @@ \immediate\write\examples{P.undrawdot("pencircle scaled 2mm");} \immediate\write\examples{Point p0(P);p0.shift(0, .5);p0.label("$P$", "");} \immediate\write\examples{Point mid;} -\immediate\write\examples{mid = mediate(P, p0);} +\immediate\write\examples{mid = P.mediate(p0);} \immediate\write\examples{Point pt[4];} \immediate\write\examples{for (int i = 0; i < 4; ++i)} \immediate\write\examples{ pt[i] = mid;} @@ -108,6 +116,7 @@ \fi \PEX @end tex +@end iftex @noindent @@ -115,11 +124,11 @@ see @ref{Point Drawing Functions,,Point Reference; Drawing}. -@cindex{drawing and filling} -@cindex{lines, drawing} +@cindex drawing and filling +@cindex lines, drawing @c -@cindex{connecting @code{Points}} -@cindex{@code{Points}, connecting} +@cindex connecting @code{Points} +@cindex @code{Points}, connecting @c Drawing and undrawing dots is not very exciting. In order to make a proper drawing it is necessary to @emph{connect} the @code{Points}. The most @@ -132,6 +141,7 @@ p0.draw(p1); @end example +@iftex @tex \ifmakeexamples \BEX @@ -147,6 +157,7 @@ \fi \PEX @end tex +@end iftex @noindent @code{p0.draw(p1)} is equivalent in its effect to @@ -158,8 +169,8 @@ @footnote{``A @dfn{reference} is an alternative name for an object. The main use of references is for specifying arguments and return values for functions in general and for overloaded operators (Chapter 11) in -particular.'' Stroustrup, @cite{The @cpp Programming Language}, -@S{}5.5, p.@: 97.} +particular.'' Stroustrup, @cite{The @cpp{} Programming Language}, +@SECT{}5.5, p.@: 97.} @c to a @code{Point}) an optional @code{Color} argument, and optional @code{string} arguments for @@ -174,6 +185,7 @@ p0.draw(p1, Colors::gray, "", "pensquare scaled .5cm rotated 45"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -190,7 +202,7 @@ \fi \PEX @end tex - +@end iftex The function @code{Point::undraw()} takes a required @code{Point&} argument and @@ -207,6 +219,7 @@ p0.undraw(p1, "evenly scaled 6", "pencircle scaled .2cm"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -224,11 +237,12 @@ \fi \PEX @end tex +@end iftex For complete descriptions of @code{draw()} and @code{undraw()}, see @ref{Point Drawing Functions,,Point Reference; Drawing}. -@node Labeling Points Intro +@node Labeling Points Intro, , Drawing Points Intro, Drawing and Labeling Points @section Labeling Points The labels in the previous examples were made by using the functions @@ -240,7 +254,7 @@ @code{Point}. The label text is formatted using @TeX{}, so it can contain math mode material between dollar signs. Please note that double backslashes must be used, where a single backslash would suffice in a file of -MetaPost code, for example, for {\TeX} control sequences. +MetaPost code, for example, for @TeX{} control sequences. Alternatively, a @code{short} argument can be used for the label. The position argument is optional, with @code{"top"} as the default. If @@ -275,6 +289,7 @@ p5.label("$\\leftarrow p_5$", "rt"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -304,6 +319,7 @@ \fi \PEX @end tex +@end iftex For complete descriptions of @code{Point::label()} and @code{Point::dotlabel()}, see @ref{Labelling Points,,Points; Labelling}. diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/gspaths.texi 3DLDF-1.1.4/DOC/TEXINFO/gspaths.texi --- 3DLDF-1.1.3/DOC/TEXINFO/gspaths.texi 2003-11-28 15:18:37.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/gspaths.texi 2003-12-09 19:59:58.000000000 +0100 @@ -1,18 +1,22 @@ @c gspaths.texi - + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: gspaths.texi,v 1.1 2003/11/28 14:18:37 lfinsto1 Exp $ +@c $Id: gspaths.texi,v 1.4 2003/12/09 18:59:58 lfinsto1 Exp $ + +@c @ifinfo +@c @include 3DLDFmac.texi +@c @end ifinfo -@node Paths +@node Paths, Plane Figures, Drawing and Labeling Points, Top @chapter Paths -@tindex{Path} -@cindex{paths} -@cindex{connectors} +@tindex Path +@cindex paths +@cindex connectors @c @code{Points} alone are not enough for making useful drawings. The next step is to combine them into @code{Paths}, which are similar to @@ -22,10 +26,10 @@ 3DLDF, but are passed unchanged to the output file. They must be valid connectors for MetaPost, e.g.: -@cindex{curl} -@cindex{tension} -@cindex{controls} -@cindex{control points} +@cindex curl +@cindex tension +@cindex controls +@cindex control points @c @example @t{..} @@ -69,7 +73,12 @@ counter-examples could probably constructed, but for the most common cases, the principle applies.} -@node Declaring and Initializing Paths +@menu +* Declaring and Initializing Paths:: +* Drawing and Filling Paths Intro:: +@end menu + +@node Declaring and Initializing Paths, Drawing and Filling Paths Intro, Paths, Paths @section Declaring and Initializing Paths There are various ways of declaring and initializing @code{Paths}. The @@ -84,6 +93,7 @@ p.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -100,6 +110,7 @@ \fi \PEX @end tex +@end iftex @@ -133,6 +144,7 @@ pa.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -154,6 +166,7 @@ \fi \PEX @end tex +@end iftex Another constructor must be used for @code{Paths} with @@ -173,10 +186,10 @@ p[1].set(2); p[2].set(0, 0, -2); p[3].set(0, 0, 2); -p[4] = mediate(p[0], p[2]); -p[5] = mediate(p[2], p[1]); -p[6] = mediate(p[1], p[3]); -p[7] = mediate(p[3], p[0]); +p[4] = p[0].mediate(p[2]); +p[5] = p[2].mediate(p[1]); +p[6] = p[1].mediate(p[3]); +p[7] = p[3].mediate(p[0]); p[4] *= p[5] *= p[6] *= p[7].shift(0, 1); Path pa(&p[0], "..", &p[4], "...", &p[2], "..", &p[5], "...", &p[1], "..", &p[6], @@ -184,6 +197,7 @@ pa.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -195,10 +209,10 @@ \immediate\write\examples{p[1].set(2);} \immediate\write\examples{p[2].set(0, 0, -2);} \immediate\write\examples{p[3].set(0, 0, 2);} -\immediate\write\examples{p[4] = mediate(p[0], p[2]);} -\immediate\write\examples{p[5] = mediate(p[2], p[1]);} -\immediate\write\examples{p[6] = mediate(p[1], p[3]);} -\immediate\write\examples{p[7] = mediate(p[3], p[0]);} +\immediate\write\examples{p[4] = p[0].mediate(p[2]);} +\immediate\write\examples{p[5] = p[2].mediate(p[1]);} +\immediate\write\examples{p[6] = p[1].mediate(p[3]);} +\immediate\write\examples{p[7] = p[3].mediate(p[0]);} \immediate\write\examples{p[4] *= p[5] *= p[6] *= p[7].shift(0, 1);} \immediate\write\examples{p[0].dotlabel("$p_0$", "bot"); } \immediate\write\examples{p[1].dotlabel("$p_1$");} @@ -217,6 +231,7 @@ \fi \PEX @end tex +@end iftex As mentioned above (@pxref{Accuracy}), specifying connectors is problematic for three-dimensional @code{Paths}, @@ -243,7 +258,7 @@ @code{Shapes}, which will be described in subsequent sections, and I intend to add more in the course of time. -@node Drawing and Filling Paths Intro +@node Drawing and Filling Paths Intro, , Declaring and Initializing Paths, Paths @section Drawing and Filling Paths The easiest way to draw a @code{Path} is with no arguments. @@ -259,6 +274,7 @@ pa.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -281,6 +297,7 @@ \fi \PEX @end tex +@end iftex Since @code{pa} is closed, it can be filled as well as drawn. The following example uses @code{fill()} with a @code{Color} argument, in @@ -292,6 +309,7 @@ pa.fill(Colors::gray); @end example +@iftex @tex \ifmakeexamples \BEX @@ -301,6 +319,7 @@ \fi \PEX @end tex +@end iftex Closed @code{Paths} can be filled and drawn, using the function @code{filldraw()}. This function draws the @code{Path} using the pen @@ -324,6 +343,7 @@ pa.filldraw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -338,6 +358,7 @@ \fi \PEX @end tex +@end iftex The following example uses arguments for the @code{Colors} used for drawing and filling, and the pen. The empty string argument before the @@ -348,6 +369,7 @@ "pensquare xscaled 3mm yscaled 1mm rotated 60"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -358,6 +380,7 @@ \fi \PEX @end tex +@end iftex @code{Paths} can also be ``undrawn'', ``unfilled'', and ``unfilldrawn'', using the corresponding functions: @@ -367,6 +390,7 @@ p0.undraw(p1, "", "pencircle scaled 3mm"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -379,6 +403,7 @@ \fi \PEX @end tex +@end iftex @example pa.fill(gray); @@ -388,6 +413,7 @@ q.unfill(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -401,6 +427,7 @@ \fi \PEX @end tex +@end iftex The function @code{unfilldraw()} takes a @code{Color} argument for drawing the @code{Path}, which is @code{*Colors::background_color} by @@ -415,6 +442,7 @@ q.unfilldraw(white, "", "pensquare xscaled 3mm yscaled 1mm"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -425,6 +453,7 @@ \fi \PEX @end tex +@end iftex The following example demonstrates the use of @code{unfilldraw()} with @code{black} as its @code{Color} argument. Unfortunately, it also @@ -432,9 +461,17 @@ line from @code{p0} to @code{p1} is hidden by the filled @code{Path pa}. Since the portion of @code{pa} covered by @code{Path q} has been unfilled, +@c +@iftex @tex $\overrightarrow{p_0p_1}$ @end tex +@end iftex +@c +@ifnottex +the line from @math{p_0} to @math{p_1} +@end ifnottex +@c should be visible as it passes through @code{q}. However, from the point of view of 3DLDF, there is no relationship between @code{pa} and @code{q}; nor does it ``know'' whether a @code{Path} has been filled or @@ -448,6 +485,7 @@ q.unfilldraw(black, "", "pensquare xscaled 3mm yscaled 1mm"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -462,6 +500,7 @@ \fi \PEX @end tex +@end iftex @xref{Drawing and Filling Paths,,Paths; Drawing and Filling}, for more information, and complete descriptions of the functions. diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/gspict.texi 3DLDF-1.1.4/DOC/TEXINFO/gspict.texi --- 3DLDF-1.1.3/DOC/TEXINFO/gspict.texi 2003-11-28 15:18:39.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/gspict.texi 2003-12-09 20:00:19.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: gspict.texi,v 1.1 2003/11/28 14:18:39 lfinsto1 Exp $ - -@node Pictures +@c $Id: gspict.texi,v 1.5 2003/12/09 19:00:19 lfinsto1 Exp $ + +@node Pictures, Intersections, Solid Figures, Top @chapter Pictures -@tindex{Picture} +@tindex Picture Applying drawing and filling operations to the drawable objects described in the previous chapters isn't enough to produce output. These operations merely modify the @code{Picture} object that was passed to @@ -28,8 +28,8 @@ corresponding data members of @var{C} (not @var{O}). -@cindex{output file} -@vindex{out_stream} +@cindex output file +@vindex out_stream @c In order to actually cause MetaPost code to be written to the output file, it is necessary @@ -62,6 +62,7 @@ endfig(1); @end example +@iftex @tex \ifmakeexamples \BEX @@ -77,15 +78,16 @@ \fi \PEX @end tex +@end iftex The @cpp{} code for @PREFIG{} starts with the command @code{beginfig(1)} and ends with the command @code{endfig(1)}. They simply write ``@code{beginfig(@angles{arg})}'' and ``@code{endfig()}'' to -@vindex{out_stream} +@vindex out_stream @code{out_stream}, -@cindex{output files} +@cindex output files The optional @code{unsigned int} argument to @code{endfig()} is not written to @code{out_stream}, it's merely @@ -131,6 +133,7 @@ endfig(1); @end example +@iftex @tex \ifmakeexamples \BEX @@ -148,6 +151,7 @@ \fi \PEX @end tex +@end iftex Multiple objects, or complex objects made up of sub-objects, can be stored in a @code{Picture}, so that operations can be applied to them @@ -176,7 +180,7 @@ p[i] = r0.get_point(i); p[4] = r0.get_mid_point(0); p[5] = r0.get_mid_point(2); -p[6] = mediate(p[4], p[5], 2/3.0); +p[6] = p[4].mediate(p[5], 2/3.0); Circle z2(p[6], 2, 90, 90, 0, 16); z2.draw(); Circle z3 = z2; @@ -196,6 +200,7 @@ @end example +@iftex @tex \ifmakeexamples \BEX @@ -222,7 +227,7 @@ \immediate\write\examples{ p[i] = r0.get_point(i);} \immediate\write\examples{p[4] = r0.get_mid_point(0);} \immediate\write\examples{p[5] = r0.get_mid_point(2);} -\immediate\write\examples{p[6] = mediate(p[4], p[5], 2/3.0);} +\immediate\write\examples{p[6] = p[4].mediate(p[5], 2/3.0);} \immediate\write\examples{Circle z2(p[6], 2, 90, 90, 0, 64);} \immediate\write\examples{z2.draw();} \immediate\write\examples{Circle z3 = z2;} @@ -244,6 +249,7 @@ \fi \PEX @end tex +@end iftex Let's say the complex object in @PREFIG{} represents a furnace. From the point of view of 3DLDF, however, it's not an object @@ -280,7 +286,7 @@ @end example It's perfectly legitimate to write -@cindex{raw MetaPost code} +@cindex raw MetaPost code raw MetaPost code to @code{out_stream}, as in lines 4 and 6 of this example. However, the @code{draw()} commands do not cause any output to @code{out_stream}. The MetaPost drawing commands are written to @@ -303,7 +309,13 @@ drawing commands. -@node Projections +@menu +* Projections:: +* Focuses Getstart:: +* Surface Hiding:: +@end menu + +@node Projections, Focuses Getstart, Pictures, Pictures @section Projections In order for a 3D graphic program to be useful, it must be able to @@ -330,7 +342,7 @@ @item @bullet{} The isometric and axonometric projections @c !! TO DO: -@cindex{TO DO} +@cindex TO DO These projections are important for engineering and drafting. I have not yet implemented them in 3DLDF, but they are on my list of ``Things To Do''. @@ -352,7 +364,12 @@ not be used, because the axonometric and isometric projections have not yet been implemented. -@node Parallel Projections +@menu +* Parallel Projections:: +* The Perspective Projection:: +@end menu + +@node Parallel Projections, The Perspective Projection, Projections, Projections @subsection Parallel Projections When a @code{Picture} is projected onto the x-y plane, the @@ -376,6 +393,7 @@ @end example +@iftex @tex \ifmakeexamples \BEX @@ -391,6 +409,7 @@ \fi \PEX @end tex +@end iftex If the objects do not lie in the x-y plane, or a plane parallel to the x-y plane, then the projection will be distorted: @@ -399,6 +418,7 @@ current_picture.output(Projections::PARALLEL_X_Y); @end example +@iftex @tex \ifmakeexamples \BEX @@ -414,6 +434,7 @@ \fi \PEX @end tex +@end iftex @code{Picture::output()} can be called with an additional @code{real} argument @var{factor} for magnifying or shrinking the @code{Picture}. @@ -435,6 +456,7 @@ current_picture.output(Projections::PARALLEL_X_Y, 2); @end example +@iftex @tex \ifmakeexamples \BEX @@ -460,11 +482,12 @@ \fi \PEX @end tex +@end iftex Parallel projection onto the x-z and z-y planes are completely analogous to parallel projection onto the x-y plane. -@node The Perspective Projection +@node The Perspective Projection, , Parallel Projections, Projections @subsection The Perspective Projection The perspective projection obeys the laws of @@ -494,22 +517,35 @@ @c and how this is important when using rulers, but not when using @c transformations. LDF 2003.08.15. @c -@tex @NEXTFIG{} shows a perspective construction, the way it could be done by hand. The point of view, or @dfn{focus} is located 6cm from the picture plane, and 4cm above the ground (or x-z) plane at the point (0, 4, -6). -The rectangle $R$ lies in the ground plane, with the point $r_0$ at -(2, 0, 1.5). The right side of $R$, with length $=2\rm{cm}$ lies at an angle -of $40$ to the ground line, which corresponds to the intersection line +The rectangle @math{R} lies in the ground plane, with the point @math{r_0} at +(2, 0, 1.5). The right side of @math{R}, with length = 2@dmn{cm} +lies at an angle +of 40 to the ground line, which corresponds to the intersection line of the ground plane with the picture plane, and the left side, with -length $=5\rm{cm}$, at an angle of $90^\circ - 40^\circ = 50^\circ$ to -the ground line. @end tex +length = 5@dmn{cm}, at an angle of +@c +@iftex +@tex +$90^\circ - 40^\circ = 50^\circ$ +@end tex +@end iftex +@c +@ifnottex +90 degrees @math{-} 40 degrees = 50 degrees +@end ifnottex +@c +to the ground line. + @c !! NOTE: I haven't been able to get the colons lined up the way I'd @c like for the explanations of the abbreviations. LDF 2003.08.15. @c +@iftex @tex \ifmakeexamples \BEX @@ -520,6 +556,7 @@ \fi \PEX @end tex +@end iftex While it's possible to use 3DLDF to make a perspective construction in the traditional way, as @PREFIG{} shows, the code for @NEXTFIG{} @@ -533,6 +570,7 @@ r.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -553,19 +591,20 @@ \fi \PEX @end tex +@end iftex + -@tex In @TWOPREFIG{}, it was -convenient to start with the corner point $r_0$; -if we needed the center of $R$, it would have to be found from the +convenient to start with the corner point @math{r_0}; +if we needed the center of @math{R}, it would have to be found from the corner points. However, in 3DLDF, @code{Rectangles} are most often constructed about -the center. Therefore, in @NEXTFIG{}, $R$ is first +the center. Therefore, in @NEXTFIG{}, @math{R} is first constructed about the origin, with the rotation about the y-axis passed as an argument to the constructor. It is then shifted such that @code{*(@var{R}.points[0])}, the first -(or zeroth, if you will) @code{Point} on $R$ comes to lie at $(2, 0, 1.5)$. -@end tex +(or zeroth, if you will) @code{Point} on @math{R} comes to lie at +@math{(2, 0, 1.5)}. Unlike the other transformations currently used in 3DLDF, the perspective transformation is non-affine. Affine @@ -579,8 +618,10 @@ @c @dfn{vanishing point}.@footnote{@c @c -@tex (I believe the following to be correct, but I'm not entirely sure.) +@c +@iftex +@tex Let $\vec{v}$ be the line of sight. By definition, the plane of projection will be a plane $p$, such that $\vec{v}$ is normal to $p$. Let $q_0$ and $q_1$ be planes such that @@ -592,25 +633,57 @@ Under these circumstances, the projections of $l_0$ and $l_1$ in $p$ will also be parallel. @end tex -} +@end iftex +@c +@ifnottex +Let vector @math{v} be the line of sight. By definition, the plane of +projection will be a plane @math{p}, such that vector v is normal to +@math{p}. Let @math{q_0} and @math{q_1} be planes such that +@math{q_0 @equiv{} q_1} or @math{q_0 || q_1}, and @math{q_0} is +perpendicular to @math{p}. +It follows that @math{q_1} is perpendicular to @math{p}. +Let @math{l_0} and @math{l_1} be lines, such that @math{l_0 != l_1}, +@math{l_0 || l_1}, @math{l_0} lies within @math{q_0}, @math{l_1} lies +within @math{q_1}, +@math{l_0} is perpendicular to vector v, and @math{l_1} is perpendicular +to vector v. +Under these circumstances, the projections of @math{l_0} and @math{l_1} +in @math{p} will also be parallel. +@end ifnottex @c +} In @TWOPREFIG{}, the lines +@iftex @tex $\overrightarrow{r_0r_1}$ and $\overrightarrow{r_3r_2}$ @end tex +@end iftex +@c +@ifnottex +from @math{r_0} to @math{r_1} and from @math{r_3} to @math{r_2} +@end ifnottex +@c appear to vanish toward the right-hand @DEG{40} vanishing point, while +@iftex @tex $\overrightarrow{r_0r_3}$ and $\overrightarrow{r_1r_2}$ @end tex +@end iftex +@c +@ifnottex +the lines from r_0 to r_3 and from r_1 to r_2 +@end ifnottex +@c appear to vanish toward the left-hand @DEG{50} vanishing point. The lower the angle of a vanishing point, the further away it is from the center of vision, as @NEXTFIG{} shows: +@iftex @tex \ifmakeexamples \BEX @@ -655,20 +728,27 @@ \fi \PEX @end tex +@end iftex In @PREFIG{}, the @DEG{0.5} vanishing point is nearly +@iftex @tex $5{3\over4}$ -meters @end tex -away from the CV, and a +@end iftex +@c +@ifnottex +5 and 3/4 +@end ifnottex +@c +meters away from the CV, and a line receding to it will be very nearly horizontal. However, the distance from the focus to the CV is -only 5cm. As this distance increases, the distance from the +only 5@dmn{cm}. As this distance increases, the distance from the CV to a given vanishing point increases proportionately. -If the distance is 30cm, a more reasonable value -for a drawing, then the x-coordinate of VP@: @DEG{10} is 170.138cm, that -of VP@: @DEG{5} is 342.902cm, and that of VP@: @DEG{0.5} is 3437.66cm! +If the distance is 30@dmn{cm}, a more reasonable value +for a drawing, then the x-coordinate of VP@: @DEG{10} is 170.138@dmn{cm}, that +of VP@: @DEG{5} is 342.902@dmn{cm}, and that of VP@: @DEG{0.5} is 3437.66@dmn{cm}! This is the reason why perspective drawings done by hand rarely contain lines receding to the horizon at low angles. @@ -692,6 +772,7 @@ @end example +@iftex @tex \ifmakeexamples \BEX @@ -724,11 +805,12 @@ \fi \PEX @end tex +@end iftex -@node Focuses Getstart +@node Focuses Getstart, Surface Hiding, Projections, Pictures @section Focuses -@vindex{focus} +@vindex focus The perspective transformation requires a focus; as a consequence, outputting a @code{Picture} requires an object of class @code{Focus}. @@ -743,23 +825,43 @@ specifying the direction where the observer is looking, or where the camera is pointed. The @code{Focus} can be rotated freely about the line +@iftex @tex -$\overrightarrow{PD}$, where $P$ stands for @code{position} and $D$ -for @code{direction}, +$\overrightarrow{PD}$, @end tex +@end iftex +@c +@ifnottex +PD, +@end ifnottex +@c +where @math{P} stands for @code{position} and +@math{D} +for @code{direction}, so a @code{Focus} contains a third @code{Point up}, to indicate which direction will be ``up'' on the projection, when a @code{Picture} is projected. -@tex -The projection plane $q$ +The projection plane @math{q} will always be perpendicular to +@c +@iftex +@tex $\overrightarrow{PD}$, or to put it another way, $\overrightarrow{PD}$ -is normal to $q$. @end tex +@end iftex +@c +@ifnottex +the line PD, +or to put it another way, +the line PD, +@end ifnottex +@c +is normal to @math{q}. + Unlike the traditional perspective construction, where the distance from the focus to the center of vision fixes both the location of the focus in space, and its distance to the @@ -767,7 +869,14 @@ picture plane,@c @c @footnote{I believe this -to be true, but I'm not 100@% certain.} +to be true, but I'm not +@ifinfo +100% +@end ifinfo +@iftex +100\% +@end iftex +certain.} @c these two parameters can be set independently when the perspective transformation is used. @@ -790,6 +899,7 @@ @end example +@iftex @tex \ifmakeexamples \BEX @@ -808,13 +918,20 @@ \fi \PEX @end tex +@end iftex The ``up'' direction is calculated by the @code{Focus} constructor automatically. An optional argument can be used to specify the angle by which to rotate the @code{Focus} about +@iftex @tex $\overrightarrow{PD}$. @end tex +@end iftex +@c +@ifnottex +the line PD. +@end ifnottex @example Point pos(0, 5, -10); @@ -827,6 +944,7 @@ @end example +@iftex @tex \ifmakeexamples \BEX @@ -845,6 +963,7 @@ \fi \PEX @end tex +@end iftex Alternatively, a @code{Focus} can be declared using three @code{real} arguments each for the x, y, and z-coordinates of @code{position} and @@ -859,6 +978,7 @@ current_picture.output(f); @end example +@iftex @tex \ifmakeexamples \BEX @@ -875,6 +995,7 @@ \fi \PEX @end tex +@end iftex @code{Focuses} contain two @code{Transforms}, @code{transform} and @code{persp}. @@ -901,7 +1022,7 @@ @code{Focuses}, but I plan to add them soon. If 3DLDF is used for making @c -@cindex{animation} +@cindex animation @c animation, resetting the @code{Focus} can be used to simulate camera movements: @@ -925,6 +1046,7 @@ endfig(1); @end example +@iftex @tex \ifmakeexamples \BEX @@ -949,12 +1071,13 @@ \fi \PEX @end tex +@end iftex In @PREFIG{}, @code{current_picture} is output 5 times within a single MetaPost figure. Since the file passed to MetaPost is called @file{persp.mp}, the file of Encapsulated PostScript (EPS) code containing @PREFIG{} is called @file{persp.1}. -@cindex{animation} +@cindex animation To use this technique for making an animation, it's necessary to output the @code{Picture} into multiple MetaPost figures. @@ -985,7 +1108,7 @@ @c reference here. LDF 2003.08.15. -@node Surface Hiding +@node Surface Hiding, , Focuses Getstart, Pictures @section Surface Hiding @c !! TO DO: Write about z-buffers, and how scan converting is needed @@ -1008,6 +1131,7 @@ current_picture.output(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1026,6 +1150,7 @@ \fi \PEX @end tex +@end iftex If instead, @var{c} is filled or filldrawn, only the parts of @var{r} that are not covered by @var{c} should be visible: @@ -1036,6 +1161,7 @@ @end example +@iftex @tex \ifmakeexamples \BEX @@ -1048,6 +1174,7 @@ \fi \PEX @end tex +@end iftex What parts of @code{r} are covered depend on the point of view, i.e., the position and direction of the @code{Focus} used for outputting the @@ -1057,11 +1184,12 @@ default_focus.set(8, 0, -5, 5, 3, 5, 10); @end example +@iftex @tex \ifmakeexamples \BEX \immediate\write\examples{default_focus.set(8, 0, -5, 5, 3, 5, 10);} -\immediate\write\examples{mediate(r.get_point(3), p, .333).label("$r$", "");} +\immediate\write\examples{r.get_point(3).mediate(p, .333).label("$r$", "");} \immediate\write\examples{q.label("$c$", "");} \immediate\write\examples{r.draw();} \immediate\write\examples{c.filldraw();} @@ -1071,9 +1199,10 @@ \fi \PEX @end tex +@end iftex -@cindex{surface hiding} -@cindex{hidden surface algorithm} +@cindex surface hiding +@cindex hidden surface algorithm @c Determining what objects cover other objects in a program for 3D graphics is called @@ -1082,7 +1211,7 @@ @dfn{hidden surface algorithm}. 3DLDF currently has a very primitive hidden surface algorithm that only works for the most simple cases. -@cindex{painter's algorithm} +@cindex painter's algorithm @c The hidden surface algorithm used in 3DLDF is a @dfn{painter's algorithm}, which means that the objects that are @@ -1105,9 +1234,17 @@ can specify four different ways of sorting the @code{Shapes}: They can be sorted according to the maximum z-coordinate, the minimum z-coordinate, the mean of the maximum and minimum z-coordinate +@c +@iftex @tex -($({\rm max} + {\rm min}) / 2$), +$({\rm max} + {\rm min}) / 2$, @end tex +@end iftex +@c +@ifnottex +@math{(max + min) / 2}, +@end ifnottex +@c and not sorted. In the last case, the @code{Shapes} are output in the order of the drawing and filling commands in the user code. @@ -1167,6 +1304,7 @@ -- cycle; @end example +@iftex @tex \ifmakeexamples \BEX @@ -1193,36 +1331,39 @@ \fi \PEX @end tex +@end iftex -@tex -In @PREFIG{}, the @code{Rectangles} $r_0$ and $r_1$ intersect along the -x-axis. The z-values of the @code{world_coordinates} of $r_0$ are --1.41421 and 1.41421 (two @code{Points} each), while those of $r_1$ -are 2.12132 and -2.12132. So $r_1$ has two @code{Points} with + +In @PREFIG{}, the @code{Rectangles} @math{r_0} and @math{r_1} intersect along the +x-axis. The z-values of the @code{world_coordinates} of @math{r_0} are +-1.41421 and 1.41421 (two @code{Points} each), while those of @math{r_1} +are 2.12132 and -2.12132. So @math{r_1} has two @code{Points} with z-coordinates greater than the z-coordinate of any @code{Point} -on $r_0$, and two @code{Points} with z-coordinates less than the -z-coordinate of any @code{Point} on $r_0$. The -@code{Points} on $r_0$ and $r_1$ all have different z-values in -their @code{projective_coordinates}, but $r_1$ still has a @code{Point} +on @math{r_0}, and two @code{Points} with z-coordinates less than the +z-coordinate of any @code{Point} on @math{r_0}. The +@code{Points} on @math{r_0} and @math{r_1} all have different z-values in +their @code{projective_coordinates}, but @math{r_1} still has a @code{Point} with a z-coordinate greater than that of any of the @code{Points} on -$r_0$, and one with a z-coordinate less than that of any of the -@code{Points} on $r_0$. +@math{r_0}, and one with a z-coordinate less than that of any of the +@code{Points} on @math{r_0}. In @NEXTFIG{}, the @code{Shapes} on @code{current_picture} are sorted according to the maximum z-values of the @code{projective_coordinates} -of the @code{Points} belonging to the @code{Shapes}. $r_1$ is +of the @code{Points} belonging to the @code{Shapes}. @math{r_1} is filled and drawn first, because it has the @code{Point} with the positive z-coordinate of greatest magnitude. -When subsequently $r_0$ is drawn, it covers part of the top of -$r_1$, which lies in front of $r_0$, and should be visible: -@end tex +When subsequently @math{r_0} is drawn, it covers part of the top of +@math{r_1}, which lies in front of @math{r_0}, and should be visible: + + @example current_picture.output(default_focus, PERSP, 1, MAX_Z); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1248,6 +1389,7 @@ \fi \PEX @end tex +@end iftex In @NEXTFIG{}, the @code{Shapes} on @code{current_picture} are sorted according to the minimum z-values of the @code{projective_coordinates} @@ -1263,6 +1405,7 @@ @end example +@iftex @tex \ifmakeexamples \BEX @@ -1281,6 +1424,7 @@ \fi \PEX @end tex +@end iftex Neither sorting by the mean z-value in the @code{projective_coordinates}, nor suppressing sorting does any good. @@ -1299,6 +1443,7 @@ current_picture.output(default_focus, PERSP, 1, NO_SORT); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1315,6 +1460,7 @@ \fi \PEX @end tex +@end iftex Even where objects don't intersect, their projections may. In order to handle these cases properly, it is necessary to break up the @@ -1331,17 +1477,28 @@ Even if it did, a fully functional hidden surface algorithm must compare each @code{Shape} on a @code{Picture} with every other @code{Shape}. +Therefore, for @math{n} @code{Shapes}, there will be +@c +@iftex @tex -Therefore, for $n$ @code{Shapes}, there will be $n!/{(n-r)!\,r!}$ @end tex +@end iftex +@c +@ifnottex +@math{n! / ((n - r)! r!)} +@end ifnottex +@c (possibly time-consuming) comparisons. +@iftex @tex The following table shows how many comparisons are needed for $n$ @code{Shapes} for several values of $n$: \medskip @end tex +@end iftex +@iftex @tex \ifmakeexamples \BEX @@ -1393,6 +1550,7 @@ \PEX \smallskip @end tex +@end iftex Clearly, such a hidden surface algorithm would considerably increase run-time. diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/gsplane.texi 3DLDF-1.1.4/DOC/TEXINFO/gsplane.texi --- 3DLDF-1.1.3/DOC/TEXINFO/gsplane.texi 2003-11-28 15:18:41.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/gsplane.texi 2003-12-08 19:37:44.000000000 +0100 @@ -1,24 +1,28 @@ @c gsplane.texi - + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: gsplane.texi,v 1.1 2003/11/28 14:18:41 lfinsto1 Exp $ +@c $Id: gsplane.texi,v 1.3 2003/12/08 18:37:44 lfinsto1 Exp $ -@node Plane Figures +@c @ifinfo +@c @include 3DLDFmac.texi +@c @end ifinfo + +@node Plane Figures, Solid Figures, Paths, Top @chapter Plane Figures -@tindex{Circle} -@tindex{Ellipse} -@tindex{Polygon} -@tindex{Rectangle} -@tindex{Reg_Cl_Plane_Curve} -@tindex{Reg_Polygon} +@tindex Circle +@tindex Ellipse +@tindex Polygon +@tindex Rectangle +@tindex Reg_Cl_Plane_Curve +@tindex Reg_Polygon @c 3DLDF currently includes the following classes representing plane geometric figures: @code{Polygon}, @code{Reg_Cl_Plane_Curve} @@ -44,7 +48,14 @@ @ref{Ellipse Reference}, and @ref{Circle Reference}, for complete information on these classes. -@node Regular Polygons Getstart +@menu +* Regular Polygons Getstart:: +* Rectangles Getstart:: +* Ellipses Getstart:: +* Circles Getstart:: +@end menu + +@node Regular Polygons Getstart, Rectangles Getstart, Plane Figures, Plane Figures @section Regular Polygons The following example creates a pentagon in the x-z plane, centered @@ -56,6 +67,7 @@ p.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -72,6 +84,7 @@ \fi \PEX @end tex +@end iftex Three additional arguments cause the pentagon to be rotated about the x, y, and z axes by the amount indicated. In this example, it's rotated @@ -83,6 +96,7 @@ p.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -98,6 +112,7 @@ \fi \PEX @end tex +@end iftex In this example, it's rotated @DEG{36} @@ -109,6 +124,7 @@ @end example +@iftex @tex \ifmakeexamples \BEX @@ -124,6 +140,7 @@ \fi \PEX @end tex +@end iftex In this example, it's rotated @DEG{90} @@ -136,6 +153,7 @@ +@iftex @tex \ifmakeexamples \BEX @@ -151,6 +169,7 @@ \fi \PEX @end tex +@end iftex In this example, it's rotated @DEG{45} @@ -162,6 +181,7 @@ @end example +@iftex @tex \ifmakeexamples \BEX @@ -177,6 +197,7 @@ \fi \PEX @end tex +@end iftex @code{Reg_Polygons} need not be centered about the @code{origin}. If another @code{Point} @var{pt} is used as the first argument, the @code{Reg_Polygon} @@ -190,6 +211,7 @@ hex.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -207,6 +229,7 @@ \fi \PEX @end tex +@end iftex In the following example, the @code{Reg_Polygon} @code{polygon} is first declared using the default constructor, which creates an empty @@ -228,6 +251,7 @@ @end group @end example +@iftex @tex \ifmakeexamples \BEX @@ -247,9 +271,10 @@ \fi \PEX @end tex +@end iftex -@node Rectangles Getstart +@node Rectangles Getstart, Ellipses Getstart, Regular Polygons Getstart, Plane Figures @section Rectangles A @code{Rectangle} can be constructed in the x-z plane by specifying a @@ -260,6 +285,7 @@ r.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -275,6 +301,7 @@ \fi \PEX @end tex +@end iftex Three additional arguments can be used to specify rotation about the x, y, and z-axes respectively: @@ -284,6 +311,7 @@ r.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -299,6 +327,7 @@ \fi \PEX @end tex +@end iftex If a @code{Point} @var{p} other than the origin is specified as the center of the @code{Rectangle}, the latter is first created in the x-z plane, @@ -312,6 +341,7 @@ r.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -332,6 +362,7 @@ \fi \PEX @end tex +@end iftex This constructor has a corresponding setting function: @@ -344,6 +375,7 @@ @CCB @end example +@iftex @tex \ifmakeexamples \BEX @@ -362,6 +394,7 @@ \fi \PEX @end tex +@end iftex @code{Rectangles} can also be specified using four @code{Points} as arguments, whereby they must be ordered so that they are contiguous in @@ -378,6 +411,7 @@ r.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -403,6 +437,7 @@ \fi \PEX @end tex +@end iftex This constructor checks whether the @code{Point} arguments are coplanar, however, it does not check whether they are really the corners of a @@ -418,6 +453,7 @@ q.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -445,6 +481,7 @@ \fi \PEX @end tex +@end iftex This constructor is not really intended to be used directly, but should mostly be called from within other functions, that should ensure that @@ -457,7 +494,7 @@ @code{Rectangle::is_rectangular()} soon, so that users can test @code{Rectangles} for rectangularity. -@node Ellipses Getstart +@node Ellipses Getstart, Circles Getstart, Rectangles Getstart, Plane Figures @section Ellipses @code{Ellipse} has a constructor similar to those for @@ -478,6 +515,7 @@ e.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -494,6 +532,7 @@ \fi \PEX @end tex +@end iftex As you may expect, this constructor has a corresponding setting function: @@ -519,6 +558,7 @@ @CCB @end example +@iftex @tex \ifmakeexamples \BEX @@ -546,9 +586,10 @@ \fi \PEX @end tex +@end iftex -@node Circles Getstart +@node Circles Getstart, , Ellipses Getstart, Plane Figures @section Circles @code{Circles} are constructed just like @code{Ellipses}, except that @@ -562,6 +603,7 @@ c.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -578,6 +620,7 @@ \fi \PEX @end tex +@end iftex This constructor, too, has a corresponding setting function: @@ -591,6 +634,7 @@ @CCB @end example +@iftex @tex \ifmakeexamples \BEX @@ -611,6 +655,7 @@ \fi \PEX @end tex +@end iftex In the preceding example, the last argument to @code{set()}, namely ``64'', is for the number of @code{Points} used for constructing the perimeter diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/gspoint.texi 3DLDF-1.1.4/DOC/TEXINFO/gspoint.texi --- 3DLDF-1.1.3/DOC/TEXINFO/gspoint.texi 2003-11-28 15:18:44.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/gspoint.texi 2003-12-03 21:08:20.000000000 +0100 @@ -1,19 +1,28 @@ @c gspoint.texi - + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: gspoint.texi,v 1.1 2003/11/28 14:18:44 lfinsto1 Exp $ +@c $Id: gspoint.texi,v 1.2 2003/12/03 20:08:19 lfinsto1 Exp $ + +@c @ifinfo +@c @include 3DLDFmac.texi +@c @end ifinfo -@node Points +@node Points, Transforming Points, Using 3DLDF, Top @chapter Points -@node Declaring and Initializing Points +@menu +* Declaring and Initializing Points:: +* Setting and Assigning to Points:: +@end menu + +@node Declaring and Initializing Points, Setting and Assigning to Points, Points, Points @section Declaring and Initializing Points -@tindex{Point} +@tindex Point The most basic drawable object in 3DLDF is @code{class Point}. It is analogous to @code{pair} in Metafont. For example, in Metafont one can define a @code{pair} using the ``z'' syntax as @@ -59,11 +68,11 @@ @noindent -@vindex{Point::measurement_units} -@vindex{measurement_units (Point)} -@cindex{measurement units} -@cindex{units of measurement} -@cindex{input routine} +@vindex Point::measurement_units +@vindex measurement_units (Point) +@cindex measurement units +@cindex units of measurement +@cindex input routine In the Metafont example, the x and y-coordinates of the @code{pair z0} are specified using the unit of measurement, in this case, centimeters. This is currently not possible in 3DLDF. The current unit of @@ -75,14 +84,14 @@ After I've defined an input routine, 3DLDF should handle units of measurement in the same way that Metafont does. -@vindex{Point::world_coordinates} -@vindex{Point::user_coordinates} -@vindex{Point::view_coordinates} -@vindex{Point::projective_coordinates} -@vindex{world_coordinates (Point)} -@vindex{user_coordinates (Point)} -@vindex{view_coordinates (Point)} -@vindex{projective_coordinates (Point)} +@vindex Point::world_coordinates +@vindex Point::user_coordinates +@vindex Point::view_coordinates +@vindex Point::projective_coordinates +@vindex world_coordinates (Point) +@vindex user_coordinates (Point) +@vindex view_coordinates (Point) +@vindex projective_coordinates (Point) Another difference is that the @code{Points} @code{pt0}, @code{pt1}, and @code{pt2} have three coordinates, x, y, and z, whereas @code{z0} has only two, x and y. Actually, the difference goes deeper than this. In @@ -149,13 +158,13 @@ constructor always sets all the coordinates to 0, irrespective of the values of @code{CURR_Y} and @code{CURR_Z}. -@node Setting and Assigning to Points +@node Setting and Assigning to Points, , Declaring and Initializing Points, Points @section Setting and Assigning to Points -@findex{Point::operator=} -@findex{operator= (for Points)} -@findex{Point::set} -@findex{set (for Points)} +@findex Point::operator= +@findex operator= (for Points) +@findex Point::set +@findex set (for Points) It is possible to change the value of the coordinates of @code{Points} by using the @dfn{assignment operator} @code{=} (@code{Point::operator=()}) or the function @code{Point::set()} diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/gssolfig.texi 3DLDF-1.1.4/DOC/TEXINFO/gssolfig.texi --- 3DLDF-1.1.3/DOC/TEXINFO/gssolfig.texi 2003-11-28 15:18:48.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/gssolfig.texi 2003-12-08 19:38:59.000000000 +0100 @@ -5,15 +5,20 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: gssolfig.texi,v 1.1 2003/11/28 14:18:48 lfinsto1 Exp $ - -@node Solid Figures +@c $Id: gssolfig.texi,v 1.3 2003/12/08 18:38:59 lfinsto1 Exp $ + +@node Solid Figures, Pictures, Plane Figures, Top @chapter Solid Figures -@node Cuboid Getstart +@menu +* Cuboid Getstart:: +* Polyhedron Getstart:: +@end menu + +@node Cuboid Getstart, Polyhedron Getstart, Solid Figures, Solid Figures @section Cuboids -@tindex{Cuboid} +@tindex Cuboid A @dfn{cuboid} is a solid figure consisting of six rectangular faces that meet at right angles. A cube is a special form of cuboid, whose faces are all squares. The constructor for the class @code{Cuboid} @@ -36,6 +41,7 @@ c0.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -49,6 +55,7 @@ \fi \PEX @end tex +@end iftex In the following example, the @code{Cuboid} is ``filldrawn'', so that the lines dilineating the hidden surfaces of the @code{Cuboid} are @@ -59,6 +66,7 @@ c1.filldraw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -71,11 +79,12 @@ \fi \PEX @end tex +@end iftex -@node Polyhedron Getstart +@node Polyhedron Getstart, , Cuboid Getstart, Solid Figures @section Polyhedron -@tindex{Polyhedron} +@tindex Polyhedron The @code{class Polyhedron} is meant for use only as a base class; no objects of type @code{Polyhedron} should be declared. Instead, there is a class for each of the different drawable polyhedra. Currently, @@ -96,10 +105,16 @@ its polygonal faces, followed by three @code{real} arguments for the angles of rotation about the main axes. -@node Tetrahedron Getstart +@menu +* Tetrahedron Getstart:: +* Dodecahedron Getstart:: +* Icosahedron Getstart:: +@end menu + +@node Tetrahedron Getstart, Dodecahedron Getstart, Polyhedron Getstart, Polyhedron Getstart @subsection Tetrahedron -@tindex{Tetrahedron} +@tindex Tetrahedron The center of a tetrahedron is the intersection of the lines from a vertex to the center of the opposite side. At least, in 3DLDF, this is the @code{center} of a @code{Tetrahedron}. I'm not @DEG{100} certain @@ -108,9 +123,10 @@ @example Tetrahedron t(origin, 4); t.draw(); -t.get_center().dotlabel("{$c$}"); +t.get_center().dotlabel("$c$"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -124,11 +140,12 @@ \fi \PEX @end tex +@end iftex -@node Dodecahedron Getstart +@node Dodecahedron Getstart, Icosahedron Getstart, Tetrahedron Getstart, Polyhedron Getstart @subsection Dodecahedron -@tindex{Dodecahedron} +@tindex Dodecahedron A dodecahedron has 12 similar regular pentagonal faces. The following examples show the same @code{Dodecahedron} using different projections: @@ -139,6 +156,7 @@ d.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -152,9 +170,11 @@ \fi \PEX @end tex +@end iftex @c ***************************** +@iftex @tex \ifmakeexamples \BEX @@ -166,12 +186,14 @@ \fi \PEX @end tex +@end iftex @c ***************************** Please note that the @code{Dodecahedron} in @NEXTFIG{} is drawn, and not filldrawn! +@iftex @tex \ifmakeexamples \BEX @@ -183,9 +205,11 @@ \fi \PEX @end tex +@end iftex @c ***************************** +@iftex @tex \ifmakeexamples \BEX @@ -197,6 +221,7 @@ \fi \PEX @end tex +@end iftex @c ********************************** @@ -204,6 +229,7 @@ the surface hiding algorithm has worked properly. @xref{Surface Hiding}. +@iftex @tex \ifmakeexamples \BEX @@ -215,11 +241,12 @@ \fi \PEX @end tex +@end iftex -@node Icosahedron Getstart +@node Icosahedron Getstart, , Dodecahedron Getstart, Polyhedron Getstart @subsection Icosahedron -@tindex{Icosahedron} +@tindex Icosahedron An icosahedron has 20 similar regular triangular faces. The following examples show the same @code{Icosahedron} using different projections: @@ -230,6 +257,7 @@ i.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -243,9 +271,11 @@ \fi \PEX @end tex +@end iftex @c *************** +@iftex @tex \ifmakeexamples \BEX @@ -257,9 +287,11 @@ \fi \PEX @end tex +@end iftex @c *************** +@iftex @tex \ifmakeexamples \BEX @@ -271,9 +303,11 @@ \fi \PEX @end tex +@end iftex @c *************** +@iftex @tex \ifmakeexamples \BEX @@ -286,6 +320,7 @@ \fi \PEX @end tex +@end iftex @c *************** @@ -293,6 +328,7 @@ the surface hiding algorithm has worked properly. @xref{Surface Hiding}. +@iftex @tex \ifmakeexamples \BEX @@ -304,6 +340,7 @@ \fi \PEX @end tex +@end iftex diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/gstranpt.texi 3DLDF-1.1.4/DOC/TEXINFO/gstranpt.texi --- 3DLDF-1.1.3/DOC/TEXINFO/gstranpt.texi 2003-11-28 15:18:49.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/gstranpt.texi 2003-12-08 19:41:17.000000000 +0100 @@ -1,13 +1,13 @@ @c gstranpt.texi - + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: gstranpt.texi,v 1.1 2003/11/28 14:18:49 lfinsto1 Exp $ +@c $Id: gstranpt.texi,v 1.3 2003/12/08 18:41:17 lfinsto1 Exp $ -@node Transforming Points +@node Transforming Points, Transforms, Points, Top @chapter Transforming Points @code{Points} don't always have to remain in the same place. There are @@ -51,7 +51,8 @@ @c @footnote{I try to avoid the use of preprocessor macros as much as possible, for the reasons given by -Stroustrup in the @cite{The @cpp{} Programming Language}, @S{}7.8, +Stroustrup in the @cite{The @cpp{} Programming Language}, +@SECT{}7.8, pp.@: 160--163, and @cite{Design and Evolution of @cpp{}}, Chapter 18, pp.@: 423--426. However, conditional compilation is one of @@ -63,10 +64,21 @@ program where @code{float} or @code{double} are used. Unfortunately, setting @code{real} to @code{double} currently doesn't work. -@node Shifting Points -@section Shifting +@menu +* Shifting Points:: +* Scaling Points:: +* Shearing Points:: +* Rotating Points:: +@end menu + +@node Shifting Points, Scaling Points, Transforming Points, Transforming Points +@section Shifting + -The function @code{shift()} adds its arguments to the corresponding + +The function +@c @code{shift()} +adds its arguments to the corresponding @code{world_coordinates} of a @code{Point}. In the following example, the function @code{show()} is used to print the @code{world_coordinates} of @code{p0} to standard output. @@ -119,8 +131,7 @@ @print{} a0: (3, 3, 3) @end example - -@node Scaling Points +@node Scaling Points, Shearing Points, Shifting Points, Transforming Points @section Scaling The function @code{scale()} takes three @code{real} arguments. @@ -151,19 +162,18 @@ @end example -@node Shearing Points +@node Shearing Points, Rotating Points, Scaling Points, Transforming Points @section Shearing Shearing is more complicated than shifting or scaling. The function @code{shear()} takes six @code{real} arguments. -@tex -If $p$ is a @code{Point}, then @code{p.shear(a, b, c, d, e, f)} sets -$x_p$ to $x_p + ay_p + bz_p$, $y_p$ to $y_p + cx_p + dz_p$, and -$z_p$ to $z_p + ex_p + fy_p$. -@end tex +If @math{p} is a @code{Point}, then @code{p.shear(a, b, c, d, e, f)} sets +@math{x_p} to @math{x_p + ay_p + bz_p}, @math{y_p} to +@math{y_p + cx_p + dz_p}, and +@math{z_p} to @math{z_p + ex_p + fy_p}. In this way, each coordinate of a @code{Point} is modified based on the values of the other two coordinates, whereby the influence of the -other coordinates on the new value is ``weighted'' according to the +other coordinates on the new value is weighted according to the arguments. @example @@ -200,6 +210,7 @@ q.draw(black, "evenly"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -228,9 +239,10 @@ \fi \PEX @end tex +@end iftex -@node Rotating Points +@node Rotating Points, , Shearing Points, Transforming Points @section Rotating @c !! TO DO: Make illustration. @@ -317,6 +329,7 @@ @print{} p6: (0.276332, 1.44889, -1.47433) @end example +@iftex @tex \ifmakeexamples \BEX @@ -351,8 +364,9 @@ \fi \PEX @end tex +@end iftex -@cindex{bugs} +@cindex bugs I have sometimes gotten erroneous results using @code{rotate()} for rotation about two @code{Points}. It's usually worked to reverse the order of the @code{Point} arguments, or to change sign of the angle diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/gstransf.texi 3DLDF-1.1.4/DOC/TEXINFO/gstransf.texi --- 3DLDF-1.1.3/DOC/TEXINFO/gstransf.texi 2003-11-28 15:18:51.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/gstransf.texi 2003-12-08 19:59:14.000000000 +0100 @@ -1,16 +1,20 @@ @c gstransf.texi - + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: gstransf.texi,v 1.1 2003/11/28 14:18:51 lfinsto1 Exp $ +@c $Id: gstransf.texi,v 1.3 2003/12/08 18:59:14 lfinsto1 Exp $ + +@c @ifinfo +@c @include 3DLDFmac.texi +@c @end ifinfo -@node Transforms +@node Transforms, Drawing and Labeling Points, Transforming Points, Top @chapter Transforms -@tindex{Transform} +@tindex Transform When @code{Points} are transformed using @code{shift()}, @code{shear()}, or one of the other transformation functions, the @code{world_coordinates} are not modified directly. Instead, @@ -20,24 +24,42 @@ data element of type @code{Matrix} and a number of member functions. A @code{Matrix} is simply a +@c +@iftex @tex $4\times 4$ @end tex +@end iftex +@c +@ifnottex +@math{4 X 4} +@end ifnottex +@c array@footnote{It is unfortunate that the terms ``array'', ``matrix'', and ``vector'' have different meanings in @cpp{} and in normal mathematical usage. However, in practice, these discrepancies turn out not to cause many problems. Stroustrup, -@cite{The @cpp{} Programming Language}, @S 22.4, p.@: 662.} +@cite{The @cpp{} Programming Language}, @SECT{} 22.4, p.@: 662.} @c of @code{reals} defined using @code{typedef real Matrix[4][4]}. Such a matrix suffices for performing all of the transformations (affine and perspective) possible in -three-dimensional space.@footnote{In fact, none of the operations for +three-dimensional space.@c +@c +@footnote{In fact, none of the operations for transformations require all of the elements of a -@tex +@c +@iftex +@tex $4\times 4$ @end tex +@end iftex +@c +@ifnottex +@math{4 X 4} +@end ifnottex +@c matrix. In many 3D graphics programs, the matrix operations are modified to use smaller transformation matrices, which reduces the storage requirements of the @@ -45,10 +67,21 @@ the perspective transformation use different elements of the matrix. I consider that the risk of something going wrong, possibly producing hard-to-find bugs, outweighs any benefits from saving memory (which -is usually no longer at a premium, anyway). Therefore, I've decided to -use full @tex +is usually no longer at a premium, anyway). In addition, there may be +some interesting non-affine transformations that would be worth +implementing. Therefore, I've decided to +use full +@c +@iftex +@tex $4\times 4$ @end tex +@end iftex +@c +@ifnottex +@math{4 X 4} +@end ifnottex +@c matrices in 3DLDF.} @c Any combination of transformations can be represented by a single @@ -57,26 +90,54 @@ all at once when needed, rather than updating them for each transformation. -@cindex{homogeneous coordinates} +@cindex homogeneous coordinates @c @code{Transforms} work by performing matrix multiplication of @code{Matrix} with the homogeneous @code{world_coordinates} of @code{Points}. -@tex -If a set of homogeneous coordinates $\alpha = (x, y, z, w)$ and +If a set of homogeneous coordinates +@math{\alpha = (x, y, z, w)} +and +@c +@iftex +@tex $${\rm @code{Matrix}~} M=\pmatrix{a&e&i&m\cr b&f&j&n\cr c&g&k&o\cr d&h&l&p\cr}$$ -then the set of homogeneous coordinates $\beta$ resulting from -multiplying $\alpha$ and $M$ is calculated as follows: +@end tex +@end iftex +@c +@ifnottex +@display +@code{Matrix M} = +a e i m +b f j n +c g k o +d h l p +@end display +@end ifnottex +@c +then the set of homogeneous coordinates @math{\beta} resulting from +multiplying @math{\alpha} and @math{M} is calculated as follows: +@c +@iftex +@tex $$ \beta = \alpha\times M=((xa + yb + zc + wd), (xe + yf + zg + wh), (xi + yj + zk + wl), (xm + yn + zo + wp))$$ -Please note that each coordinate of $\beta$ can be influenced by all of the -coordinates of $\alpha$. @end tex +@end iftex +@ifnottex +@display +@math{\beta = \alpha\times M = ((xa + yb + zc + wd), (xe + yf + zg + wh), +(xi + yj + zk + wl), (xm + yn + zo + wp))} +@end display +@end ifnottex +@c +Please note that each coordinate of @math{\beta} can be influenced by all of the +coordinates of @math{\alpha}. Operations on matrices are very important in computer graphics applications and are @@ -86,7 +147,7 @@ and David Salomon's @cite{Computer Graphics and Geometric Modeling}. @c -@tindex{Transform} +@tindex Transform @c It is often useful to declare and use @code{Transform} objects in 3DLDF, just as it is for @code{transforms} in Metafont. Transformations can be @@ -103,27 +164,60 @@ @end example -@cindex{identity matrix} -@cindex{matrix, identity} -@cindex{matrix operations} -@cindex{operations, matrix} +@cindex identity matrix +@cindex matrix, identity +@cindex matrix operations +@cindex operations, matrix @c When a @code{Transform} is declared (line 1), it is initialized to an @dfn{identity matrix}. All identity matrices are square, all of the elements of the main diagonal (upper left to lower right) are 1, and all of the other elements are 0. -@tex -So a $4\times 4$ +So a +@c +@iftex +@tex +$4\times 4$ +@end tex +@end iftex +@c +@ifnottex +@math{4 X 4} +@end ifnottex +@c identity matrix, as used in 3DLDF, looks like this: +@c +@iftex +@tex $$\pmatrix{1&0&0&0\cr 0&1&0&0\cr 0&0&1&0\cr 0&0&0&1\cr}$$ -If a matrix $A$ is multiplied with an identity matrix $I$, the result is -identical to $A$, i.e., +@end tex +@end iftex +@c +@ifnottex +@display +1 0 0 0 +0 1 0 0 +0 0 1 0 +0 0 0 1 +@end display +@end ifnottex +@c +If a matrix @math{A} is multiplied with an identity matrix @math{I}, the result is +identical to @math{A}, i.e., +@c +@iftex +@tex $A \times I = A$. -This is the salient property of an identity matrix. @end tex +@end iftex +@ifnottex +A * I = A. +@end ifnottex +@c +This is the salient property of an identity matrix. The same affine transformations are applied in the same way to @code{Transforms} as they are to @code{Points}, i.e., the functions @@ -155,7 +249,12 @@ @end example -@node Applying Transforms to Points Intro +@menu +* Applying Transforms to Points Intro:: +* Inverting Transforms:: +@end menu + +@node Applying Transforms to Points Intro, Inverting Transforms, Transforms, Transforms @section Applying Transforms to Points A @code{Transform} @math{t} is applied to a @@ -220,22 +319,22 @@ @c !! TO DO: If I change the example above, I may have to change this @c paragraph. LDF 2003.08.15. @c -In this example, $a$ is shifted and scaled, and $a$ is applied +In this example, @math{a} is shifted and scaled, and @math{a} is applied to both in line 9. This works, because the binary operation @code{operator*=(const Transform& t)} returns @var{t}, making it possible to chain invocations of @code{*=}. -Following this, $a$ is rotated +Following this, @math{a} is rotated @DEG{75} -about the line through $p_0$ and $p_1$. -Finally, all three transformations, which are stored in $a$, are -applied to $p_4$. +about the line through @math{p_0} and @math{p_1}. +Finally, all three transformations, which are stored in @math{a}, are +applied to @math{p_4}. -@node Inverting Transforms +@node Inverting Transforms, , Applying Transforms to Points Intro, Transforms @section Inverting Transforms -@cindex{matrix inversion} -@cindex{inversion} +@cindex matrix inversion +@cindex inversion @dfn{Inversion} is another operation that can be performed on @code{Transforms}. This makes it possible to reverse the effect of a @code{Transform}, which may represent multiple transformations. diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/instlrun.texi 3DLDF-1.1.4/DOC/TEXINFO/instlrun.texi --- 3DLDF-1.1.3/DOC/TEXINFO/instlrun.texi 2003-11-28 15:18:53.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/instlrun.texi 2003-12-09 18:50:17.000000000 +0100 @@ -5,7 +5,8 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: instlrun.texi,v 1.1 2003/11/28 14:18:53 lfinsto1 Exp $ +@c $Id: instlrun.texi,v 1.4 2003/12/09 17:50:14 lfinsto1 Exp $ + @node Installing and Running 3DLDF, Typedefs and Utility Structures, Intersections, Top @chapter Installing and Running 3DLDF @@ -19,9 +20,9 @@ @section Installing 3DLDF 3DLDF is available for downloading from -@uref{http://ftp.gnu.org/gnu/3DLDF}. +@uref{http://ftp.gnu.org/gnu/3dldf}. The official 3DLDF website is -@uref{http://www.gnu.org/software/3DLDF}. +@uref{http://www.gnu.org/software/3dldf}. The ``tarball'', i.e., the compressed archive file @file{3DLDF-@value{VERSION}.tar.gz} unpacks into a directory called @file{/3DLDF-@value{VERSION}/}. @@ -102,7 +103,7 @@ @file{main.web}, and/or in a separate function in another file. In the latter case, the function containing the user code must be invoked in @code{main()}. Look for the line ``Your code here!'' in -\filename{main.web}. +@file{main.web}. This is an example of what you could write in @code{main()}. Feel free to make it more complicated, if you wish. @@ -125,6 +126,7 @@ endfig(1); @end example +@iftex @tex \ifmakeexamples \BEX @@ -147,7 +149,7 @@ \fi \PEX @end tex - +@end iftex @enumerate @item @@ -253,7 +255,7 @@ Prints information about the valid command line options to standard output and exits with return value 0. -@item--silent +@item --silent Suppresses some output to standard output and standard error when @command{3dldf} is run @@ -273,6 +275,18 @@ valid, but @samp{3dldf --ver} is not. +@c !! TO DO: Put this in large, boldface type like a chapter heading, +@c for the printed output. Having it be a node caused problems with the +@c Info output. Using `@iftex' doesn't work, because the nodes are used +@c for making the menus. +@c +@c It has to be here, because of the restrictions on +@c multiple files. +@c +@c Class and Function Reference + + + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/intersct.texi 3DLDF-1.1.4/DOC/TEXINFO/intersct.texi --- 3DLDF-1.1.3/DOC/TEXINFO/intersct.texi 2003-11-28 15:18:54.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/intersct.texi 2003-12-03 20:54:15.000000000 +0100 @@ -5,16 +5,16 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: intersct.texi,v 1.1 2003/11/28 14:18:54 lfinsto1 Exp $ - -@node Intersections, Installing and Running 3DLDF, Using 3DLDF, Top +@c $Id: intersct.texi,v 1.2 2003/12/03 19:54:14 lfinsto1 Exp $ + +@node Intersections, Installing and Running 3DLDF, Pictures, Top @chapter Intersections -@cindex{intersection} -@cindex{intersection points} -@cindex{Path intersections} -@cindex{output file} -@cindex{arbitrary Path} +@cindex intersection +@cindex intersection points +@cindex Path intersections +@cindex output file +@cindex arbitrary Path There are no functions for finding the intersection points of two (or more) arbitrary @code{Paths}. This is impossible, so long as 3DLDF outputs MetaPost code. @@ -23,26 +23,26 @@ that passes through the @code{Points}, and consequently doesn't ``know'' how it does this. -@cindex{arbitrary Path} -@cindex{intersection} -@cindex{intersection points} -@cindex{Path intersections} -@cindex{connectors} -@cindex{Path connectors} +@cindex arbitrary Path +@cindex intersection +@cindex intersection points +@cindex Path intersections +@cindex connectors +@cindex Path connectors In addition, an arbitrary @code{Path} can contain connectors. In 3DLDF, the connectors are merely @code{strings} and are written verbatim to the output file, however, in MetaPost they influence the form of a @code{Path}. -@cindex{non-arbitrary Path} -@cindex{intersection} -@cindex{intersection points} -@cindex{Path intersections} +@cindex non-arbitrary Path +@cindex intersection +@cindex intersection points +@cindex Path intersections 3DLDF can, however, find the intersection points of some @emph{non-arbitrary} @code{Paths}. So far, it can find the intersection point of the following combinations of @code{Paths}: -@findex{Point::intersection_points} +@findex Point::intersection_points @enumerate @item Two linear @code{Paths}, i.e., @code{Paths} @@ -95,10 +95,10 @@ @code{Ellipse}. -@cindex{intersection theory} -@cindex{theory of intersection} -@cindex{future plans} -@cindex{contributing to 3DLDF} +@cindex intersection theory +@cindex theory of intersection +@cindex future plans +@cindex contributing to 3DLDF The theory of intersections is a fascinating and non-trivial branch of mathematics.@c @c diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/intro.texi 3DLDF-1.1.4/DOC/TEXINFO/intro.texi --- 3DLDF-1.1.3/DOC/TEXINFO/intro.texi 2003-11-28 15:20:10.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/intro.texi 2003-12-09 19:22:06.000000000 +0100 @@ -1,15 +1,16 @@ @c intro.texi - + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: intro.texi,v 1.2 2003/11/28 14:20:10 lfinsto1 Exp $ +@c $Id: intro.texi,v 1.8 2003/12/09 18:22:05 lfinsto1 Exp $ +@comment node-name, next, previous, up @node Introduction, Contributing to 3DLDF, Top, Top @chapter Introduction -@c intro.texi + 3DLDF is a free software package for three-dimensional drawing written by Laurence D. Finston, who is also the author of this manual. @@ -22,9 +23,11 @@ See the website @uref{http://www.gnu.org} for more information. 3DLDF is available for downloading from -@uref{http://ftp.gnu.org/gnu/3DLDF}. +@uref{http://ftp.gnu.org/gnu/3dldf}. The official 3DLDF website is -@uref{http://www.gnu.org/software/3DLDF}. +@uref{http://www.gnu.org/software/3dldf}. +More information about 3DLDF can be found at the author's website: +@uref{http://wwwuser.gwdg.de/~lfinsto1}. Please send bug reports to: @@ -82,45 +85,39 @@ CWEB, and @cpp {}. If you are not familiar with any or all of them, I recommend the following sources of information: -@c TO DO: Typeset this for Info. LDF 2003.11.25. - -@iftex -@tex -\medskip -\noindent +@bibskip +@noindent Knuth, Donald Ervin. -{\it The METAFONTbook}. Computers and Typesetting; C. -Addison Wesley Publishing Company. +@i{The METAFONTbook}. +Computers and Typesetting; C. +Addison Wesley Publishing Company, Inc. Reading, Massachusetts 1986. +@bibskip -\medskip -\noindent +@noindent Hobby, John D. -{\it A User's Manual for MetaPost}. -AT\&T Bell Laboratories. -Murray Hill, NJ. No date. - -\medskip -\noindent -Knuth, Donald E. and -Silvio Levy. -{\it The {\bf CWEB} System of Structured Documentation}. -\goodbreak -\hbox{Version 3.64---February 2002.} +@i{A User's Manual for MetaPost}. +AT & T Bell Laboratories. +Murray Hill, NJ. No date. +@bibskip + +@noindent +Knuth, Donald E. and Silvio Levy. +@i{The @b{CWEB} System of Structured Documentation}. +@w{Version 3.64---February 2002.} +@bibskip -\medskip -\noindent +@noindent Stroustrup, Bjarne. -{\it The {\CPLUSPLUS} Programming Language}. +@i{The @cpp{} Programming Language}. Special Edition. -Addison-Wesley. Reading, Massachusetts 2000. -@end tex -@end iftex - +Addison-Wesley. +@w{ISBN 0-201-70073-5.} +@bibskip -@cindex{CTAN (Comprehensive @TeX{} Archive Network)} -@cindex{Comprehensive @TeX{} Archive Network (CTAN)} +@cindex CTAN (Comprehensive @TeX{} Archive Network) +@cindex Comprehensive @TeX{} Archive Network (CTAN) The manuals for MetaPost and CWEB are available from the Comprehensive @TeX{} Archive Network (CTAN). See one of the following web sites for more information: @@ -148,17 +145,12 @@ For more information about Texinfo, see: -@iftex -@tex -\begingroup -\smallskip -\leftskip=1cm\rightskip=1cm\noindent -Stallmann, Richard M. and Robert J. Chassell. @emph{Texinfo. The GNU -Documentation Format}. The Free Software Foundation. Boston 1999. -\smallskip -\endgroup -@end tex -@end iftex +@bibskip +@noindent +Stallmann, Richard M. and Robert J. Chassell. +@i{Texinfo. The GNU Documentation Format}. +The Free Software Foundation. Boston 1999. +@bibskip For more information about the GNU Project and the Free Software Foundation, see the following web site: @uref{http://www.gnu.org}. @@ -206,7 +198,10 @@ proofread and corrected it again before publication, but for reasons external to 3DLDF, it is necessary for me to publish now. I plan to set up an errata list on -@uref{http://www.gnu.org/software/3DLDF, the official 3DLDF website}. +@uref{http://www.gnu.org/software/3dldf, the official 3DLDF +website}, +and/or +@uref{http://wwwuser.gwdg.de/~lfinsto1, my own website}. Unless I've left anything out by mistake, this manual documents all of the data types, constants and variables, namespaces, and functions @@ -261,8 +256,8 @@ foo(void) @end example -@cindex{member function} -@cindex{function, member} +@cindex member function +@cindex function, member @noindent to indicate that @code{foo()} takes no arguments. Also, I generally don't indicate the return type, unless it is relevant. If it @@ -288,7 +283,42 @@ @print{} p0: (1, 2, 3) @end example -Examples can contain the following symbols: + + + +@ifnottex +The beautiful mathematical typesetting produced by @TeX{} +unfortunately does not appear in the Info and HTML versions of this +manual. In these, the following symbols are used to replace the proper +mathematical symbols. + +@table @asis +@item ^ +Precedes a superscript. For example, read @samp{a^2} as +``a squared''. + +@item _ +Precedes a subscript. For example, read @samp{x_1} as +``x sub one''. + +@item * +Multiplication. For example, read @samp{x * y} as +``x times y''. + +@item sqrt() +The square root function. For example, read @samp{sqrt(x)} as +``the square root of x''. +@end table + + + +In addition, examples +@end ifnottex +@iftex +Examples +@end iftex +@c +can contain the following symbols: @table @asis @item @print{} @@ -307,8 +337,17 @@ find a symbol you don't understand in this manual (which shouldn't happen), see page 103 of the Texinfo manual. -@cindex{symbols} -@bigskip +@cindex symbols +@c +@iftex +@tex +\bigskip +@end tex +@end iftex +@ifnottex +@sp 1 +@end ifnottex +@c @noindent Symbols: @table @asis @@ -319,10 +358,10 @@ $\{0, 1, 2, 3, 4, \ldots\}$. @end tex @end iftex -@ifinfo +@c +@ifnottex @{0, 1, 2, 3, 4, @dots{}@} -@end ifinfo - +@end ifnottex @item @INT{} The set of the integers @@ -331,9 +370,10 @@ $\{\ldots, -3, -2, -1, 0, 1, 2, 3, 4, \ldots\}$. @end tex @end iftex -@ifinfo +@c +@ifnottex @{@dots{}, -3, -2, -1, 0, 1, 2, 3, 4, @dots{}@} -@end ifinfo +@end ifnottex @item @REAL{} @@ -349,7 +389,12 @@ possible to make use of the latter's facility for writing ASCII text to files using @TeX{}'s @code{\write} command. -If you have problems including the illustrations, for example, if your +@cindex figures +Please note that the figures cannot be shown in the Info or HTML output +formats! + +If you have problems including the illustrations in the printed version, +for example, if your installation doesn't have @command{dvips}, look for the following lines in @file{3DLDF.texi}: @@ -533,9 +578,9 @@ run-time encoded bitmaps. (See Knuth's @cite{The Metafontbook} for more information). -@cindex{MetaPost} -@cindex{EPS (Encapsulated PostScript)} -@cindex{Encapsulated PostScript (EPS)} +@cindex MetaPost +@cindex EPS (Encapsulated PostScript) +@cindex Encapsulated PostScript (EPS) John D. Hobby modified Metafont's source code to create MetaPost, which functions in much the same way, but outputs encapsulated PostScript (EPS) files instead of bitmaps. MetaPost is @@ -564,14 +609,17 @@ One insuperable problem is the severe limitation on the magnitude of user-defined numerical variables in Metafont and MetaPost.@footnote{@c +@c @iftex @tex ``$\lbrack\ldots\rbrack$ @end tex @end iftex -@ifinfo +@c +@ifnottex ``<@dots{}> -@end ifinfo +@end ifnottex +@c METAFONT deals only with numbers in a limited range: A numeric token must be less than 4096, and its value is always rounded to the nearest multiple of @@ -580,12 +628,12 @@ $1\over 65536$.'' Knuth, {\it The METAFONTbook}, p.~50. @end tex @end iftex -@ifinfo -1/65536.'' Knuth, The METAFONTbook, p. 50. -@end ifinfo - - +@c +@ifnottex +1 / 65536.'' Knuth, The METAFONTbook, p. 50. +@end ifnottex } +@c This made sense for Metafont's and MetaPost's original purposes, but they make it impossible to perform the @@ -647,9 +695,11 @@ $2\times 2$ @end tex @end iftex -@ifinfo -2 by 2 -@end ifinfo +@c +@ifnottex +2 X 2 +@end ifnottex +@c map of pixels, which can be used for printing or representing the projection on a computer screen. The number of pixels per a given unit of measurement is the @dfn{resolution} of a given output device, e.g., 300 pixels per inch.} @@ -721,10 +771,32 @@ processors, under Tru64 Unix 5.1, using the DEC @cpp {} compiler. I then ported it to a PC Pentium 4 under Linux 2.4, using GCC 2.95.3, and a PC Pentium II XEON under Linux 2.4, using GCC 3.3. +I am currently only maintaining the last version. I do not believe that +it's worthwhile to maintain a version for GCC 2.95. While I would like +3DLDF to run on as many platforms as possible, I would +rather spend my time developing it than porting it. +This is something where I would be grateful for help from other +programmers. + +The global constant @code{MAX_REAL}, defined in +@file{pspglb.web}, is initialized using system dependent code. +@xref{Global Constants and Variables}. Currently, 3DLDF can only be +built correctly on a 32-bit little-endian architecture. You don't +necessarily need to know what this means; If @code{MAX_REAL} cannot be +set correctly, 3DLDF will exit with an error message when you try to run +it. Intel and VAX are little-endian, while Motorola and +SPARC are big-endian, as is the DECalpha mentioned +above. If your computer is big-endian, you will need to fix the way @code{MAX_REAL} is +initialized, or get somebody to do it for you. I plan to fix this soon, +so that it will work on other architectures soon. When I have, I will +supply a patch. + +Although I am no longer supporting ports to other systems, +I have left some conditionally compiled code for +managing platform dependencies in the CWEB sources of 3DLDF. This may +make it easier for other people who want to port 3DLDF to other +platforms. - -The CWEB sources of 3DLDF contain some conditionally compiled code for -managing platform dependencies. Currently, the files @file{io.web}, @file{loader.web}, @file{main.web}, @file{points.web}, and @file{pspglb.web} contain conditionally compiled code, depending on @@ -735,34 +807,18 @@ @samp{LDF_GCC_2_95} and @samp{LDF_GCC_3_3} in @file{loader.web}, which should be defined or undefined, depending on which compiler you're using. In the distribution, @samp{LDF_GCC_3_3} is defined and -@samp{LDF_GCC_2_95} is undefined, so if you want to use GCC 2.95, you'll -have to change this. +@samp{LDF_GCC_2_95} is undefined, so if you want to try using GCC 2.95, you'll +have to change this (it's not guaranteed to work). 3DLDF @value{VERSION} now uses Autoconf and Automake, and the @file{configure} script generates a @file{config.h} file, which is now -included in \filename{loader.web}. Some of +included in @file{loader.web}. Some of the preprocessor macros defined in @file{config.h} are used to conditionally include library header files, but so far, there is no error handling code for the case that a file can't be included. I hope to improve the way 3DLDF works together with Autoconf and Automake in the near future. -I am mostly concerned with maintaining the Linux version. In most -respects, GCC 3.3 is an improvement over GCC 2.95.3, however -compilation, and especially linking, is significantly slower. -Therefore, I tend to use GCC 2.95.3 most of the time. - -I'm not particularly concerned about maintaining the DEC version, -however, it hasn't cost very much effort so far, so I will probably -continue to do so, as long as I have a DECalpha available. - -I'm also not particularly concerned about porting 3DLDF to Microsoft DOS -or Windows. However, I have made sure that all of the filenames in the -distribution have at most 8 characters, although I find this rather -a nuisance. - -As time permits, and resources are available to me, I will try to port -3DLDF to other platforms. I would be grateful for any help -from other programmers in doing this. + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/io.texi 3DLDF-1.1.4/DOC/TEXINFO/io.texi --- 3DLDF-1.1.3/DOC/TEXINFO/io.texi 2003-11-28 15:20:15.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/io.texi 2003-12-03 20:54:54.000000000 +0100 @@ -5,8 +5,8 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: io.texi,v 1.1 2003/11/28 14:20:15 lfinsto1 Exp $ - +@c $Id: io.texi,v 1.2 2003/12/03 19:54:54 lfinsto1 Exp $ + @node Input and Output, Shape Reference, Color Reference, Top @chapter Input and Output @@ -57,12 +57,12 @@ @code{out_stream}, and @code{tex_stream}, before the streams are closed. Currently, they write comments containing @c -@cindex{local variable lists} +@cindex local variable lists @c local variable lists for use in @c -@cindex{Emacs} +@cindex Emacs @c Emacs. @end deftypefun diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/label.texi 3DLDF-1.1.4/DOC/TEXINFO/label.texi --- 3DLDF-1.1.3/DOC/TEXINFO/label.texi 2003-11-28 15:20:18.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/label.texi 2003-12-08 20:11:39.000000000 +0100 @@ -1,23 +1,23 @@ @c label.texi - + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: label.texi,v 1.1 2003/11/28 14:20:18 lfinsto1 Exp $ +@c $Id: label.texi,v 1.3 2003/12/08 19:11:39 lfinsto1 Exp $ @node Label Reference, Picture Reference, Transform Reference, Top @chapter Label Reference -@tindex{Label} +@tindex Label Class @code{Label} is defined in @file{pictures.web}. @code{Point} and @code{Picture} are @code{friends} of @code{Label}. Labels can be included in drawings by using the @code{label()} and @code{dotlabel()} functions, which are currently defined for the classes @code{Point} and @code{Path}, and the classes derived from them. -@xref{Labelling Points, , Point Reference; Labelling} and +@xref{Labelling Points, , Point Reference; Labelling}, and @xref{Labelling Paths, , Path Reference; Labelling}. They are currently not defined for @code{Solid}, and its derived classes. I plan to add them for @code{Solid} soon. @@ -74,9 +74,10 @@ @example Point P(1, 1, 2); origin.drawarrow(P); -P.label("$\\vec{P}$"); +P.label("$\\vec@{P@}$"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -92,6 +93,7 @@ \fi \PEX @end tex +@end iftex @end deftypevr diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/line.texi 3DLDF-1.1.4/DOC/TEXINFO/line.texi --- 3DLDF-1.1.3/DOC/TEXINFO/line.texi 2003-11-28 15:20:20.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/line.texi 2003-12-08 20:11:59.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: line.texi,v 1.1 2003/11/28 14:20:20 lfinsto1 Exp $ - +@c $Id: line.texi,v 1.3 2003/12/08 19:11:59 lfinsto1 Exp $ + @node Line Reference, Plane Reference, Focus Reference, Top @chapter Line Reference -@tindex{Line} +@tindex Line The @code{struct Line} is defined in @file{lines.web}. @code{Lines} are not @code{Shapes}. They are used for performing vector operations. A @code{Line} is defined by a @@ -65,6 +65,7 @@ Line L1 = p.get_line(d); @end example +@iftex @tex \ifmakeexamples \BEX @@ -97,6 +98,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/path.texi 3DLDF-1.1.4/DOC/TEXINFO/path.texi --- 3DLDF-1.1.3/DOC/TEXINFO/path.texi 2003-11-28 15:20:34.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/path.texi 2003-12-09 20:01:30.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: path.texi,v 1.1 2003/11/28 14:20:34 lfinsto1 Exp $ - +@c $Id: path.texi,v 1.4 2003/12/09 19:01:30 lfinsto1 Exp $ + @node Path Reference, Polygon Reference, Plane Reference, Top @chapter Path Reference -@tindex{Path} +@tindex Path Class @code{Path} is defined in @file{paths.web}. It is derived from @code{Shape} using @code{protected} derivation. @@ -62,6 +62,7 @@ @print{} 0 @end example +@iftex @tex \ifmakeexamples \BEX @@ -78,7 +79,7 @@ \immediate\write\examples{Path q2 = p0.draw(p1);} \immediate\write\examples{Path q3("..", false, &p1, &p2, &p0, 0);} \immediate\write\examples{q3.draw(black, "evenly");} -\immediate\write\examples{Point p4(mediate(p0, p1));} +\immediate\write\examples{Point p4(p0.mediate(p1));} \immediate\write\examples{p4.label("$q_0 @DBKS{equiv} q_1 @DBKS{equiv} q_2$", "rt");} \immediate\write\examples{Point p5(p2);} \immediate\write\examples{p5.shift(-3, -1);} @@ -89,9 +90,10 @@ \fi \PEX @end tex +@end iftex -@cindex{linear @code{Paths}} +@cindex linear @code{Paths} Some @code{Path} functions only work on @emph{linear @code{Paths}}, so it's necessary to be able to distinguish them from non-linear ones. The function @code{is_linear()} should be enough to ensure that all of @@ -247,6 +249,7 @@ (-2, -2.5, -1) -- (3, 2, 2.5); @end example +@iftex @tex \ifmakeexamples \BEX @@ -267,6 +270,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn @@ -341,6 +345,7 @@ @end example +@iftex @tex \ifmakeexamples \BEX @@ -361,6 +366,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn @@ -381,6 +387,7 @@ (-1.07861, 0.514487, 6.29505) ... (2.84065, -3.26065, 6.29505); @end example +@iftex @tex \ifmakeexamples \BEX @@ -402,6 +409,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn @@ -434,6 +442,7 @@ Path p(&A, "..", &B, "..", &C, "--", &D, "...", 0); @end example +@iftex @tex \ifmakeexamples \BEX @@ -454,6 +463,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn @@ -588,6 +598,7 @@ (-0.5, 3, 0) -- cycle; @end example +@iftex @tex \ifmakeexamples \BEX @@ -619,6 +630,7 @@ \fi \PEX @end tex +@end iftex @end deftypefun @@ -742,10 +754,10 @@ Point pt[8]; pt[0] = (-1, -1); for (int i = 1; i < 8; ++i) - { + @{ pt[i] = pt[0]; pt[i].rotate(0, 0, i * 45); - } + @} Path p("--", true, &pt[0], &pt[1], &pt[2], &pt[3], &pt[4], &pt[5], &pt[6], &pt[7], 0); @@ -754,6 +766,7 @@ p.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -778,6 +791,7 @@ \fi \PEX @end tex +@end iftex @end deftypefun @@ -801,6 +815,7 @@ q.filldraw(black, light_gray); @end example +@iftex @tex \ifmakeexamples \BEX @@ -831,6 +846,7 @@ \fi \PEX @end tex +@end iftex @end deftypefun @@ -859,6 +875,7 @@ p.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -886,6 +903,7 @@ \fi \PEX @end tex +@end iftex @end deftypefun @@ -916,6 +934,7 @@ p.draw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -945,6 +964,7 @@ \fi \PEX @end tex +@end iftex @end deftypefun @deftypefn {Virtual function} void shift_times (real @var{x}, [real @var{y} = 1, [real @var{z} = 1]]) @@ -1056,6 +1076,7 @@ (0.707, -0.707, 0) .. (0.924, -0.383, 0) .. cycle; @end example +@iftex @tex \ifmakeexamples \BEX @@ -1066,7 +1087,7 @@ \immediate\write\examples{Path p(A, B);} \immediate\write\examples{A.dotlabel("$A$", "urt"); } \immediate\write\examples{B.dotlabel("$B$", "lft"); } -\immediate\write\examples{mediate(A, B).label("$p$"); } +\immediate\write\examples{A.mediate(B).label("$p$"); } \immediate\write\examples{p.draw();} \immediate\write\examples{Transform t = p.align_with_axis(true, 'z');} \immediate\write\examples{p *= t;} @@ -1085,7 +1106,7 @@ \immediate\write\examples{q.get_point(14).label("$q$", "ulft");} \immediate\write\examples{q.align_with_axis(A, B, 'z');} \immediate\write\examples{q.draw();} -\immediate\write\examples{mediate(origin, q.get_point(6)).label("$q$");} +\immediate\write\examples{origin.mediate(q.get_point(6)).label("$q$");} \immediate\write\examples{draw_axes(gray); } \OEX{} \EGRP @@ -1093,6 +1114,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn @@ -1136,10 +1158,11 @@ p.draw(); @end example +@iftex @tex -\BGRP \ifmakeexamples \BEX +\BGRP \immediate\write\examples{Point A;} \immediate\write\examples{Point B(2);} \immediate\write\examples{Point C(3, 3);} @@ -1157,6 +1180,7 @@ \fi \PEX @end tex +@end iftex The arguments: @@ -1181,6 +1205,7 @@ p.draw(gray, "", "pencircle scaled .25mm"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1198,6 +1223,7 @@ \fi \PEX @end tex +@end iftex @item ddashed @@ -1213,6 +1239,7 @@ p.draw(black, "evenly"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1227,6 +1254,7 @@ \fi \PEX @end tex +@end iftex @item ppen A @code{string} representing a ``pen'', as defined in Metafont and @@ -1243,6 +1271,7 @@ yscaled .25mm scaled .5mm"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1266,6 +1295,7 @@ \fi \PEX @end tex +@end iftex @item picture Indicates the @code{Picture} on which the @code{Path} should be @@ -1297,6 +1327,7 @@ temp_picture.output(Projections::PARALLEL_X_Y); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1312,6 +1343,7 @@ \fi \PEX @end tex +@end iftex @end table @end deftypefn @@ -1346,6 +1378,7 @@ m.drawarrow(n); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1361,6 +1394,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn @@ -1419,6 +1453,7 @@ current_picture.output(Projections::PARALLEL_X_Y); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1430,6 +1465,7 @@ \fi \PEX @end tex +@end iftex In addition, the arguments @var{shift_x}, @var{shift_y}, and @var{shift_z} can be used to adjust the positions of the labels @@ -1454,6 +1490,7 @@ draw_axes(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1465,6 +1502,7 @@ \fi \PEX @end tex +@end iftex In @NEXTFIG{}, the @code{Point P} is used to shift the labels. Please note that placeholders must be used for the first arguments. @@ -1474,6 +1512,7 @@ draw_axes(0, "d", "d", "d", black, "", "", P, -P, P); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1486,6 +1525,7 @@ \fi \PEX @end tex +@end iftex Please note that the @code{Points} used for placing the labels are three-dimensional @code{Points}, whether the @var{shift_x}, @@ -1519,6 +1559,7 @@ p.fill(gray); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1533,6 +1574,7 @@ \fi \PEX @end tex +@end iftex @@ -1567,6 +1609,7 @@ p.filldraw(black, gray, "", "pencircle scaled 2mm"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1582,6 +1625,7 @@ \fi \PEX @end tex +@end iftex It can often be useful to draw the outline of a @code{Path}, but to have it hide objects that lie behind it. This is why the default for @@ -1614,6 +1658,7 @@ r0.filldraw(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1647,6 +1692,7 @@ \fi \PEX @end tex +@end iftex @@ -1684,6 +1730,7 @@ p.undraw("", "pencircle scaled 1mm"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1701,6 +1748,7 @@ \fi \PEX @end tex +@end iftex @end deftypefun @@ -1725,6 +1773,7 @@ p.unfill(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1745,6 +1794,7 @@ \fi \PEX @end tex +@end iftex @end deftypefun @@ -1790,6 +1840,7 @@ p.unfilldraw(black, "", "pensquare xscaled 3mm"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1812,6 +1863,7 @@ \fi \PEX @end tex +@end iftex @end deftypefun @@ -1916,6 +1968,7 @@ -- (1.88483, -0.615266, 0.183441) -- cycle; @end example +@iftex @tex \ifmakeexamples \BEX @@ -1950,6 +2003,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn @@ -2061,6 +2115,7 @@ Point N = r.get_normal(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -2087,6 +2142,7 @@ \fi \PEX @end tex +@end iftex In 3DLDF, plane figures generally have constructors taking a |Point| argument for the center, a variable number of |real| arguments for the @@ -2122,6 +2178,7 @@ distance == -0.131735 @end example +@iftex @tex \ifmakeexamples \BEX @@ -2135,7 +2192,7 @@ \immediate\write\examples{q.point.dotlabel("@OCB@DBKS{tt} q.point@CCB", "bot");} \immediate\write\examples{origin.drawarrow(q.normal);} \immediate\write\examples{q.normal.label("@OCB@DBKS{tt} q.normal@CCB", "lft");} -\immediate\write\examples{mediate(P, r.get_point(2), .5).label("$r$", "");} +\immediate\write\examples{P.mediate(r.get_point(2), .5).label("$r$", "");} \immediate\write\examples{draw_axes(0, "d", "d", "d", black, "evenly");} \immediate\write\examples{current_picture.output(default_focus, Projections::PERSP, 1, Sorting::NO_SORT);} \EGRP @@ -2143,6 +2200,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn @deftypefun void set_cycle ([{const bool} @var{c} = @code{true}]) @@ -2266,6 +2324,7 @@ @print{} bp.pt: (0.5, 0.5, 0.5) @end example +@iftex @tex \ifmakeexamples \BEX @@ -2292,6 +2351,7 @@ \fi \PEX @end tex +@end iftex @end deftypefun diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/pattern.texi 3DLDF-1.1.4/DOC/TEXINFO/pattern.texi --- 3DLDF-1.1.3/DOC/TEXINFO/pattern.texi 2003-11-28 15:20:51.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/pattern.texi 2003-12-08 20:18:37.000000000 +0100 @@ -5,7 +5,7 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: pattern.texi,v 1.1 2003/11/28 14:20:51 lfinsto1 Exp $ +@c $Id: pattern.texi,v 1.2 2003/12/08 19:18:37 lfinsto1 Exp $ @node Pattern Reference, Solid Reference, Circle Reference, Top @chapter Pattern Reference @@ -65,9 +65,16 @@ @item @code{unsigned short} @var{row_shift} Default: 2. For @var{row_shift} +@c +@iftex @tex $\neq 0$, @end tex +@end iftex +@ifnottex +@math{!= 0}, +@end ifnottex +@c the number of sets of hexagons in each (single) row is increased by 2 every @var{row_shift} rows. If @var{row_shift} @equiv{} 0, the number sets of hexagons remains constant. @@ -142,6 +149,7 @@ hex_pattern_1(1, 0, 0, 5, 5); @end example +@iftex @tex \ifmakeexamples \BEX @@ -154,6 +162,7 @@ \fi \PEX @end tex +@end iftex @example default_focus.set(-5, 5, -10, 0, 10, 25, 10); @@ -161,6 +170,7 @@ light_gray, black); @end example +@iftex @tex \ifmakeexamples \BEX @@ -173,6 +183,7 @@ \fi \PEX @end tex +@end iftex @end deftypefun @@ -211,12 +222,23 @@ around the circumference of the inner circle and a @code{Point} on the outer circle traces an epicycloid. -@tex + If @var{offsets} is greater than 1, the outer circle is rotated @var{offset} times around the center of the inner circle -by $360 / \sl{offsets\/}$ (starting from the outer circle's original -position). From each of these new positions, an epicycloid is drawn. +by +@iftex +@tex +$360 / \sl{offsets\/}$ @end tex +@end iftex +@c +@ifnottex +@math{360 / offsets} +@end ifnottex +@c +(starting from the outer circle's original +position). From each of these new positions, an epicycloid is drawn. + While @var{diameter_outer_start} is greater than or equal to @var{diameter_outer_end}, the diameter of the @@ -272,6 +294,7 @@ current_picture.output(Projections::PARALLEL_X_Z); @end example +@iftex @tex \ifmakeexamples \BEX @@ -283,6 +306,7 @@ \fi \PEX @end tex +@end iftex Example: @example @@ -291,6 +315,7 @@ current_picture.output(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -303,6 +328,7 @@ \fi \PEX @end tex +@end iftex @end deftypefun diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/picture.texi 3DLDF-1.1.4/DOC/TEXINFO/picture.texi --- 3DLDF-1.1.3/DOC/TEXINFO/picture.texi 2003-11-28 15:20:54.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/picture.texi 2003-12-08 20:30:49.000000000 +0100 @@ -5,13 +5,13 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: picture.texi,v 1.1 2003/11/28 14:20:54 lfinsto1 Exp $ - +@c $Id: picture.texi,v 1.3 2003/12/08 19:30:47 lfinsto1 Exp $ + @node Picture Reference, Point Reference, Label Reference, Top @chapter Picture Reference -@tindex{Picture} +@tindex Picture Class @code{Picture} is defined in @file{pictures.web}. @menu @@ -101,6 +101,7 @@ new_picture.output(Projections::PARALLEL_X_Z); @end example +@iftex @tex \ifmakeexamples \BEX @@ -126,6 +127,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn @@ -176,6 +178,7 @@ current_picture.output(Projections::PARALLEL_X_Y); @end example +@iftex @tex \ifmakeexamples \BEX @@ -191,6 +194,7 @@ \fi \PEX @end tex +@end iftex @end deftypefn @@ -230,9 +234,16 @@ Performs @code{transform.rotate(@var{p0}, @var{p1}, @var{angle})} and returns the result. This has the effect of rotating all of the elements of @code{shapes} and @code{labels} about the line +@iftex @tex $\overrightarrow{p_0p_1}$. @end tex +@end iftex +@c +@ifnottex +from @math{p_0} to @math{p_1}. +@end ifnottex +@c @end deftypefun @node Modifying Pictures, Showing Pictures, Affine Transformations for Pictures, Picture Reference @@ -347,22 +358,15 @@ The arguments: -@tex -\begingroup -\catcode`\=13 -\def{{\tt\char`\_}} -\def\ARGPAR#1#2{\hangafter=1\hangindent=#2 -\setbox0=\hbox{#1}\dimen1=#2\advance\dimen1 by -\wd0 -\leavevmode\box0\hskip\dimen1} - -\ARGPAR{@code{const Focus\&} @var{f}}{4cm} +@table @asis +@item @code{const Focus&} @var{f} The @code{Focus} used for projection, also known as the center of projection, or the camera. This argument is used in the first version only. -The second version, without a @code{const Focus\&} @var{f} argument, +The second version, without a @code{const Focus&} @var{f} argument, merely calls the first version and passes it the global variable -@code{default_focus} as its first argument, so @code{default_focus} is effectively the -default for @var{f}. Defining two versions in this way makes it +@code{default_focus} as its first argument, so @code{default_focus} is +effectively the default for @var{f}. Defining two versions in this way makes it possible to call @code{output()} with @code{projection} as its first (and possibly only) argument. If instead, @var{f} were an optional argument with @@ -371,23 +375,20 @@ version, and to retain the second version, because the compiler wouldn't be able to resolve a call to @code{output()} with no arguments. -\smallskip -\hangafter=1\hangindent=4cm -@code{const unsigned short} @var{projection}% -\vrule width 0pt height 0pt depth 7pt\newline +@item @code{const unsigned short} @var{projection} Default: @code{Projections::PERSP}. The type of projection. Valid values are @code{const unsigned shorts} defined in @code{namespace Projections} -(@pxref{Namespace Projections}):\newline -@code{PERSP} for the perspective projection,\newline -@code{PARALLEL_X_Y} for parallel projection onto the x-y plane,\newline -@code{PARALLEL_X_Z} for parallel projection onto the x-z plane, and\newline +(@pxref{Namespace Projections}):@* +@code{PERSP} for the perspective projection,@* +@code{PARALLEL_X_Y} for parallel projection onto the x-y plane,@* +@code{PARALLEL_X_Z} for parallel projection onto the x-z plane, and@* @code{PARALLEL_Z_Y} for parallel projection onto the z-y plane. %% !! TO DO: I plan to add isometric and axionometric projections soon. -\smallskip -\ARGPAR{@code{real} @var{factor}}{4cm} + +@item @code{real} @var{factor} Default: 1. Passed from @code{output()} to @code{extract()} and from there to @code{project()}. The @@ -399,10 +400,7 @@ the @code{Focus} can be used to influence the size of the projected image. -\smallskip -\hangafter=1\hangindent=4cm -@code{const unsigned short} @var{sortvalue}% -\vrule width 0pt height 0pt depth 7pt\newline +@item @code{const unsigned short} @var{sort_value} Default: @code{Sorting::MAX_Z}. The value used should be one of the constants defined in @code{namespace Sorting}, @xref{Namespace Sorting}, above. @@ -416,11 +414,11 @@ @code{Shapes} are output in the order in which they were put onto the @code{Picture}. -\hangafter=0\hangindent=4cm + The surface hiding algorithm implemented in 3DLDF is quite primitive, and doesn't always work right. For @code{Shapes} that intersect, it @emph{can't} work right. -%% !! TO DO: +@c !! TO DO: I plan to work on improving the surface hiding algorithm soon. This is not a trivial problem. To solve it properly, each @code{Shape} on a @code{Picture} must be tested for intersection with every other @@ -430,65 +428,63 @@ expect that I will be able to make some improvements. @xref{Surface Hiding}. -\ARGPAR{@code{const bool} @var{dowarnings}}{5cm} +@item @code{const bool} @var{do_warnings} Default: @code{true}. If @code{true}, @code{output()} issues warnings to @code{stderr} (standard error output) if a @code{Shape} cannot be output because it lies outside the limits set by the following arguments. Sometimes, a user may only want to project a portion of a @code{Picture}, in which case -such warnings would not be helpful. In this case, @var{dowarnings} +such warnings would not be helpful. In this case, @var{do_warnings} should be @code{false}. -\ARGPAR{@code{const real} @var{minxproj}}{5cm} +@item @code{const real} @var{min_x_proj} Default: -40. The minimum x-coordinate of the projection of a @code{Shape} such that the @code{Shape} can be output. If @code{projective_coordinates[0]} of any @code{Point} on a -@code{Shape} is less than @var{minxproj}, the @code{Shape} will not be +@code{Shape} is less than @var{min_x_proj}, the @code{Shape} will not be projected at all. -\ARGPAR{@code{const real} @var{maxxproj}}{5cm} +@item @code{const real} @var{max_x_proj} Default: 40. The maximum x-coordinate of the projection of a @code{Shape} such that the @code{Shape} can be output. If @code{projective_coordinates[0]} of any @code{Point} on a -@code{Shape} is greater than @var{maxxproj}, the @code{Shape} will not be +@code{Shape} is greater than @var{max_x_proj}, the @code{Shape} will not be projected at all. -\ARGPAR{@code{const real} @var{minyproj}}{5cm} +@item @code{const real} @var{min_y_proj} Default: -40. The minimum y-coordinate of the projection of a @code{Shape} such that the @code{Shape} can be output. If @code{projective_coordinates[1]} of any @code{Point} on a -@code{Shape} is less than @var{minyproj}, the @code{Shape} will not be +@code{Shape} is less than @var{min_y_proj}, the @code{Shape} will not be projected at all. -\ARGPAR{@code{const real} @var{maxyproj}}{5cm} +@item @code{const real} @var{max_y_proj} Default: 40. The maximum y-coordinate of the projection of a @code{Shape} such that the @code{Shape} can be output. If @code{projective_coordinates[1]} of any @code{Point} on a -@code{Shape} is greater than @var{maxyproj}, the @code{Shape} will not be +@code{Shape} is greater than @var{max_y_proj}, the @code{Shape} will not be projected at all. -\ARGPAR{@code{const real} @var{minzproj}}{5cm} +@item @code{const real} @var{min_z_proj} Default: -40. The minimum z-coordinate of the projection of a @code{Shape} such that the @code{Shape} can be output. If @code{projective_coordinates[2]} of any @code{Point} on a -@code{Shape} is less than @var{minzproj}, the @code{Shape} will not be +@code{Shape} is less than @var{min_z_proj}, the @code{Shape} will not be projected at all. -\ARGPAR{@code{const real} @var{maxzproj}}{5cm} +@item @code{const real} @var{max_z_proj} Default: 40. The maximum z-coordinate of the projection of a @code{Shape} such that the @code{Shape} can be output. If @code{projective_coordinates[2]} of any @code{Point} on a -@code{Shape} is greater than @var{maxzproj}, the @code{Shape} will not be +@code{Shape} is greater than @var{max_z_proj}, the @code{Shape} will not be projected at all. -\par -\endgroup -@end tex +@end table @end deftypefun @deftypefun void suppress_labels (void) @@ -523,6 +519,7 @@ current_picture.output(Projections::PARALLEL_X_Z); @end example +@iftex @tex \ifmakeexamples \BEX @@ -555,6 +552,7 @@ \fi \PEX @end tex +@end iftex @end deftypefun @deftypefn {Inline function} void unsuppress_labels (void) diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/plane.texi 3DLDF-1.1.4/DOC/TEXINFO/plane.texi --- 3DLDF-1.1.3/DOC/TEXINFO/plane.texi 2003-11-28 15:20:56.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/plane.texi 2003-12-09 20:01:58.000000000 +0100 @@ -1,16 +1,17 @@ @c plane.texi + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: plane.texi,v 1.1 2003/11/28 14:20:56 lfinsto1 Exp $ - +@c $Id: plane.texi,v 1.4 2003/12/09 19:01:57 lfinsto1 Exp $ + @node Plane Reference, Path Reference, Line Reference, Top @chapter Plane Reference -@tindex{Plane} +@tindex Plane The @code{struct Plane} is defined in @file{planes.web}. @code{Planes} are not @code{Shapes}. They are used for performing vector operations. A @code{Plane} is defined by a @@ -96,16 +97,26 @@ @code{Plane} and sets @code{point} to @var{p}. @code{normal} is set to @var{n}, and made a unit vector. @code{distance} is calculated according to the following formula: +@c +Let @math{n} stand for @code{normal}, @math{p} for @code{point}, and @math{d} for +@code{distance}: +@iftex @tex -Let $n$ stand for @code{normal}, $p$ for @code{point}, and $d$ for -@code{distance}: $d = -p\cdot n$. -If $d = 0$, @code{origin} -lies in the @code{Plane}. If $d > 0$, @code{origin} lies on the side of the +$d = -p\cdot n$. +@end tex +@end iftex +@c +@ifnottex +@math{d = -p \dot n}. +@end ifnottex +@c +If @math{d = 0}, @code{origin} +lies in the @code{Plane}. If @math{d > 0}, @code{origin} lies on the side of the @code{Plane} that @code{normal} points to, considered to be ``outside''. -If $d<0$, @code{origin} lies on the side of the +If @math{d<0}, @code{origin} lies on the side of the @code{Plane} that @code{normal} does not point to, considered to be ``inside''. -@end tex + However, if @var{p} @equiv{} @var{n}, @code{point} and @code{normal} are both set to @code{INVALID_POINT}, and @code{distance} is set to @@ -125,6 +136,8 @@ @end example +@c +@iftex @tex \medskip \ifmakeexamples @@ -153,9 +166,9 @@ \immediate\write\examples{ pt[2].shift(pt[1]);} \immediate\write\examples{ pt[0].drawarrow(pt[2], black, "evenly");} \immediate\write\examples{ @CCB} -\immediate\write\examples{pt[3] = mediate(c.get_center(), c.get_point(15), .667);} -\immediate\write\examples{pt[4] = mediate(c.get_center(), c.get_point(0), .667);} -\immediate\write\examples{pt[5] = mediate(pt[3], pt[4]);} +\immediate\write\examples{pt[3] = c.get_center().mediate(c.get_point(15), .667);} +\immediate\write\examples{pt[4] = c.get_center().mediate(c.get_point(0), .667);} +\immediate\write\examples{pt[5] = pt[3].mediate(pt[4]);} \immediate\write\examples{pt[5].label("$q$");} \immediate\write\examples{pt[6].shift(0, -.1);} \immediate\write\examples{draw_axes(0,"d","d","d",black,"","",0,0,pt[6]);} @@ -166,6 +179,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @@ -204,14 +219,11 @@ @end deftypefn @deftypefn {@code{const} operator} bool operator!= ({const Plane&} @var{p}) -Inequality operator. Compares @code{*this} and @var{p}, and returns -@code{true}, if -@tex -if @code{point} $\neq$ @var{p}.@code{point}, or -@code{normal} $\neq$ @var{p}.@code{normal}, or -@code{distance} $\neq$ @var{p}.@code{distance}, -otherwise @code{false}. -@end tex +Inequality operator. Compares @code{*this} and @var{p} and returns +@code{true}, if @code{point} @NEQ{} @var{p}.@code{point}, or +@code{normal} @NEQ{} @var{p}.@code{normal}, or +@code{distance} @NEQ{} @var{p}.@code{distance}. +Otherwise, it returns @code{false}. @end deftypefn @node Planes Returning Information, Plane Intersections, Planes Operators, Plane Reference @@ -227,12 +239,15 @@ positive. @var{r}.@code{second} can take on three values: @table @asis -@item 0 If the @code{Point} lies in the @code{Plane}. +@item 0 +If the @code{Point} lies in the @code{Plane}. -@item{1} If it lies on the side of the @code{Plane} pointed at by the +@item 1 +If it lies on the side of the @code{Plane} pointed at by the normal to the @code{Plane}, considered to be the ``outside''. -@item{-1} If it lies on the side of the @code{Plane} @emph{not} pointed at +@item -1 +If it lies on the side of the @code{Plane} @emph{not} pointed at by the normal to the @code{Plane}, considered to be the ``inside''. @end table @@ -267,21 +282,23 @@ cout << bp.first; @print{} 3.40368 cout << bp.second; -@print -1 +@print{} -1 bp = q.get_distance(B) cout << bp.first; -@print 2.75865 +@print{} 2.75865 cout << bp.second; -@print 1 +@print{} 1 bp = q.get_distance(C) cout << bp.first; -@print 0 +@print{} 0 cout << bp.second; -@print 0 +@print{} 0 @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -307,8 +324,8 @@ \immediate\write\examples{ pt[2].shift(pt[1]);} \immediate\write\examples{ pt[0].drawarrow(pt[2], black, "evenly");} \immediate\write\examples{ @CCB} -\immediate\write\examples{pt[3] = mediate(c.get_point(12), c.get_point(14), .4);} -\immediate\write\examples{pt[4] = mediate(pt[0], pt[3], .8);} +\immediate\write\examples{pt[3] = c.get_point(12).mediate(c.get_point(14), .4);} +\immediate\write\examples{pt[4] = pt[0].mediate(pt[3], .8);} \immediate\write\examples{pt[4].label("$q$", "");} \immediate\write\examples{pt[6].shift(0, -.1);} \immediate\write\examples{Point A(4, -2, 4);} @@ -326,6 +343,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @@ -351,7 +370,7 @@ Point center(2, 2, 3.5); Reg_Polygon h(center, 6, 4, 80, 30, 10); Plane q = h.get_plane(); -Point P0 = mediate(center, h.get_point(2)); +Point P0 = center.mediate(h.get_point(2)); P0.shift(5 * (N - center)); Point P1(P0); P1.rotate(h.get_point(1), h.get_point(4)); @@ -360,7 +379,7 @@ P1.shift(3, -.5, -2); bool_point bp = q.intersection_point(P0, P1); Point i_P = bp.pt; -Point P4 = mediate(h.get_point(3), h.get_point(0), .75); +Point P4 = h.get_point(3).mediate(h.get_point(0), .75); P4.shift(N - center); Point P5(P4); P5.rotate(h.get_point(3), h.get_point(0)); @@ -371,6 +390,8 @@ draw_axes(); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -387,7 +408,7 @@ \immediate\write\examples{N_temp *= 1.1;} \immediate\write\examples{center.drawarrow(N_temp);} \immediate\write\examples{N_temp.label("$@DBKS{vec}@OCB n@CCB$", "rt");} -\immediate\write\examples{Point P0 = mediate(center, h.get_point(2));} +\immediate\write\examples{Point P0 = center.mediate(h.get_point(2));} \immediate\write\examples{P0.shift(5 * (N - center));} \immediate\write\examples{P0.dotlabel("$P_0$"); } \immediate\write\examples{Point P1(P0);} @@ -400,14 +421,14 @@ \immediate\write\examples{Point i_P = bp.pt;} \immediate\write\examples{i_P.dotlabel("$i_P$", "bot"); } \immediate\write\examples{P0.draw(P1, black, "evenly");} -\immediate\write\examples{Point P4 = mediate(h.get_point(3), h.get_point(0), .75);} +\immediate\write\examples{Point P4 = h.get_point(3).mediate(h.get_point(0), .75);} \immediate\write\examples{P4.shift(N - center);} \immediate\write\examples{Point P5(P4);} \immediate\write\examples{P5.rotate(h.get_point(3), h.get_point(0));} \immediate\write\examples{P4.shift(-1, 2);} \immediate\write\examples{Path theta(P4, P5);} \immediate\write\examples{P4.drawdot(black, "pencircle scaled .75mm");} -\immediate\write\examples{mediate(theta.get_point(0), theta.get_point(1), .1).label("$@DBKS{theta}$", "rt"); } +\immediate\write\examples{theta.get_point(0).mediate(theta.get_point(1), .1).label("$@DBKS{theta}$", "rt"); } \immediate\write\examples{theta.drawarrow(black);} \immediate\write\examples{bp = q.intersection_point(theta);} \immediate\write\examples{Point i_theta = bp.pt;} @@ -419,6 +440,8 @@ \fi \PEX @end tex +@end iftex +@c @@ -428,18 +451,17 @@ Returns a @code{Line} @var{l}. representing the line of intersection of two @code{Planes}. @xref{Line Reference}. -@tex In @NEXTFIG{}, @code{intersection_line()} is used to find the line of intersection of the @code{Planes} derived from the @code{Rectangles} -$r_0$ and $r_1$ using @code{get_plane()} +@math{r_0} and @math{r_1} using @code{get_plane()} (@pxref{Querying Paths,,Paths Reference; Querying}). Please note that there is no guarantee that @var{l}.@code{position} will be in a convenient place for your drawing. A bit of fiddling was -needed to find the @code{Points} $P_2$ and $P_3$. -% !! TO DO: +needed to find the @code{Points} @math{P_2} and @math{P_3}. +@c !! TO DO: I plan to add functions for finding the intersection lines of plane figures, but haven't done so yet. -@end tex + @example Rectangle r0(origin, 5, 5, 10, 15, 6); @@ -476,6 +498,8 @@ @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -506,7 +530,7 @@ \immediate\write\examples{P3.label("$P_3$", "rt"); } \immediate\write\examples{P2.drawarrow(P3, black, "evenly");} \immediate\write\examples{P3.drawarrow(P2, black, "evenly");} -\immediate\write\examples{mediate(P2, P3, .8).label("$l$", "rt");} +\immediate\write\examples{P2.mediate(P3, .8).label("$l$", "rt");} \immediate\write\examples{draw_axes();} \immediate\write\examples{current_picture.output(default_focus, Projections::PERSP, 1, Sorting::NO_SORT);} \EGRP @@ -514,6 +538,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @node Planes Showing, , Plane Intersections, Plane Reference diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/point.texi 3DLDF-1.1.4/DOC/TEXINFO/point.texi --- 3DLDF-1.1.3/DOC/TEXINFO/point.texi 2003-11-28 15:20:58.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/point.texi 2003-12-09 19:56:49.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: point.texi,v 1.1 2003/11/28 14:20:58 lfinsto1 Exp $ - +@c $Id: point.texi,v 1.4 2003/12/09 18:56:49 lfinsto1 Exp $ + @node Point Reference, Focus Reference, Picture Reference, Top @chapter Point Reference -@tindex{Point} +@tindex Point Class @code{Point} is defined in @file{points.web}. It is derived from @code{Shape} using @code{protected} derivation. The function @@ -57,9 +57,7 @@ MetaPost code written to @code{out_stream}. The z value is used in the hidden surface algorithm (which is currently rather primitive and doesn't work very well. @pxref{Surface Hiding}). The w value can be -@tex -$\neq 1$, -@end tex +@NEQ{1}, depending on the projection used; the perspective projection is non-affine, so w can take on other values. @end deftypevr @@ -270,7 +268,7 @@ @code{r} to @var{rr}, and @code{pt} to @var{ppt}. @end deftypefn -@deftypefn {Assignment operator} void bool_real_point::operator=({const bool_real_point&} @var{brp}) +@deftypefn {Assignment operator} void bool_real_point::operator= ({const bool_real_point&} @var{brp}) Makes @code{*this} a copy of @var{brp}. @end deftypefn @@ -312,8 +310,7 @@ to 0. @end deftypefn -@deftypefn {Constructor} -void Point ({const real} @var{x}, [{const real} @var{y} = @code{CURR_Y}, [{const real} @var{z} = @code{CURR_Z}]]) +@deftypefn {Constructor} void Point ({const real} @var{x}, [{const real} @var{y} = @code{CURR_Y}, [{const real} @var{z} = @code{CURR_Z}]]) Creates a @code{Point} and initializes its x, y, and z-coordinates to the values of the arguments @var{x}, @var{y}, and @var{z}. The arguments @var{y} and @var{z} are optional. If they are not specified, @@ -323,8 +320,7 @@ have the same z or y and z values. @end deftypefn -@deftypefn {Setting function} -void set ({const real} @var{x}, [{const real} @var{y} = @code{CURR_Y}, [{const real} @var{z} = @code{CURR_Z}]]) +@deftypefn {Setting function} void set ({const real} @var{x}, [{const real} @var{y} = @code{CURR_Y}, [{const real} @var{z} = @code{CURR_Z}]]) Corresponds to the constructor above, but is used for resetting the coordinates of an existing @code{Point}. @end deftypefn @@ -339,9 +335,6 @@ Corresponds to the copy constructor above, but is used for resetting the coordinates of an existing @code{Point}. This function exists purely as a convenience; the operator @code{operator=()} -@tex -\write16{Ref on page \the\count0} -@end tex (@pxref{Point Operators, ,Point Reference; Operators}) performs exactly the same function. @@ -386,7 +379,11 @@ @deftypefn {@code{virtual} Destructor} void {~Point} (@code{void}) This function currently has an empty definition, but its existence prevents GCC 3.3 from issuing the following warning: -``@thinspace{}`class Point' has virtual functions but non-virtual destructor''. +``@c +@iftex +\thinspace +@end iftex +`class Point' has virtual functions but non-virtual destructor''. @end deftypefn @node Point Operators, Copying Points, Point Destructor, Point Reference @@ -492,7 +489,7 @@ @end deftypefn @deftypefn {Non-member operator} Point operator* ({const real} @var{r}, {const Point&} @var{p}) -Equivalent to @code{Point::operator*({const real} @var{r})} (see above), +Equivalent to @code{Point::operator*(const real @var{r})} (see above), but with @var{r} placed first. @example Point p0(10, 11, 12); @@ -549,7 +546,7 @@ It returns a pointer to @code{Shape} that points to the new @code{Point}. This function is used in the drawing commands for putting @code{Points} onto @code{Pictures}. -@xref{Point Drawing Functions,,Point Reference; Drawing} +@xref{Point Drawing Functions,,Point Reference; Drawing}. @end deftypefn @node Querying Points, Returning Coordinates, Copying Points, Point Reference @@ -575,22 +572,17 @@ Returns @code{true}, if the @code{Point} lies on the @code{Plane} @var{p}, otherwise @code{false}. -@tex Planes are conceived of as having infinite extension, so while -the @code{Point} $C$ in @NEXTFIG{} does not lie within -the @code{Rectangle} $r$, it does lie on $q$, so -@end tex +the @code{Point} @math{C} in @NEXTFIG{} does not lie within +the @code{Rectangle} @math{r}, it does lie on @math{q}, so @code{C.is_on_plane(q)} returns @code{true}.@c @c @footnote{It's unlikely that @code{Points} will lie on a @code{Plane}, unless the user constructs the case specially. -@tex -In @NEXTFIG{}, the coordinates for $B$ and $C$ were found by using +In @NEXTFIG{}, the coordinates for @math{B} and @math{C} were found by using @code{Plane::intersection_point()}. -@xref{Plane Intersections,,Planes; Intersections}. -@end tex -} +@xref{Plane Intersections,,Planes; Intersections}.} @@ -609,6 +601,7 @@ @print{} 1 @end example +@iftex @tex \ifmakeexamples \BEX @@ -619,7 +612,7 @@ \immediate\write\examples{Rectangle r(P, 4, 4, 20, 45, 35);} \immediate\write\examples{r.filldraw(black, light_gray);} \immediate\write\examples{Plane q = r.get_plane();} -\immediate\write\examples{mediate(P, r.get_point(1), .25).label("$r$", "");} +\immediate\write\examples{P.mediate(r.get_point(1), .25).label("$r$", "");} \immediate\write\examples{Point A(2, 0, 2);} \immediate\write\examples{Point B(2, 1.64143, 2);} \immediate\write\examples{A.dotlabel("$A$", "rt"); } @@ -633,19 +626,18 @@ \fi \PEX @end tex +@end iftex @end deftypefn @deftypefn {@code{const} function} bool is_in_triangle ({const Point&} @var{p0}, {const Point&} @var{p1}, {const Point&} @var{p2}, [bool @var{verbose} = @code{false}, [bool @var{test_points} = @code{true}]]) -Returns @code{true}, if {*this} lies within the triangle determined by +Returns @code{true}, if @code{*this} lies within the triangle determined by the three @code{Point} arguments, otherwise @code{false}. -@tex If the code calling @code{is_in_triangle()} has ensured that -$p_0$, $p_1$, and $p_2$ determine a plane, i.e., that they are not +@math{p_0}, @math{p_1}, and @math{p_2} determine a plane, i.e., that they are not colinear, and that @code{*this} lies in that plane, then @code{false} can be passed to @code{is_in_triangle()} as its -@var{test\_points} argument. -@end tex +@var{test_points} argument. If the @var{verbose} argument is @code{true}, information resulting from the execution of the function are printed to standard output or standard @@ -765,16 +757,15 @@ that should be used as a coordinate value in a @code{Point}. This value is also used for testing the equality of @code{Points}: -@tex -Let $e$ be the value returned by @code{epsilon()}, $P$ and $Q$ be -@code{Points}, and $P_x$, $Q_x$, $P_y$, $Q_y$, -$P_z$, and $Q_z$ the updated x, y, and z-coordinates of $P$ and $Q$, +Let @math{e} be the value returned by @code{epsilon()}, @math{P} and @math{Q} be +@code{Points}, and @math{P_x}, @math{Q_x}, @math{P_y}, @math{Q_y}, +@math{P_z}, and @math{Q_z} the updated x, y, and z-coordinates of @math{P} and @math{Q}, respectively. -If and only if $||P_x| - |Q_x|| < e$, $||P_y| - |Q_y|| < e$, -and $||P_z| - |Q_z|| < e$, then -$P \equiv Q$. -@end tex - +If and only if +@math{||P_x| - |Q_x|| < e$, $||P_y| - |Q_y|| < e}, +and +@math{||P_z| - |Q_z|| < e}, then +@math{P @equiv{} Q}. @end deftypefn @node Modifying Points, Affine Transformations for Points, Returning Information for Points, Point Reference @@ -796,9 +787,7 @@ @deftypefun void clean ([int @var{factor} = 1]) Calls @code{apply_transform()} and sets the values of @code{world_coordinates} to 0, whose absolute values are less than -@tex -$@code{epsilon()} \times @var{factor}$. -@end tex +@TMS{@code{epsilon()}, @var{factor}}. @end deftypefun @deftypefun void reset_transform (void) @@ -835,6 +824,7 @@ @print{} p1: (1, -1, -1) @end example +@iftex @tex \ifmakeexamples \BEX @@ -846,13 +836,13 @@ \immediate\write\examples{p0_a.rotate(90);} \immediate\write\examples{p0_a.label(Point::WORLD_VALUES); } \immediate\write\examples{p0_b.drawarrow(p0_a, black, "evenly");} -\immediate\write\examples{mediate(p0_b, p0_a).label("$p0$", "rt");} +\immediate\write\examples{p0_b.mediate(p0_a).label("$p0$", "rt");} \immediate\write\examples{Point p1_b(-1, 1, 1);} \immediate\write\examples{p1_b.dotlabel(Point::WORLD_VALUES); } \immediate\write\examples{Point p1_a(p1_b);} \immediate\write\examples{p1_a.rotate(-90, 90, 90);} \immediate\write\examples{p1_a.label(Point::WORLD_VALUES, "bot"); } -\immediate\write\examples{mediate(p1_b, p1_a, .3).label("$p_1$", "llft"); } +\immediate\write\examples{p1_b.mediate(p1_a, .3).label("$p_1$", "llft"); } \immediate\write\examples{p1_b.drawarrow(p1_a, black, "evenly");} \immediate\write\examples{draw_axes(gray);} \OEX{} @@ -861,7 +851,7 @@ \fi \PEX @end tex - +@end iftex Please note that rotations are not commutative operations. Nor are they commutative with other transformations. @@ -892,6 +882,7 @@ P.rotate(A, B, 180); @end example +@iftex @tex \ifmakeexamples \BEX @@ -925,7 +916,8 @@ \fi \PEX @end tex - +@end iftex +@c @end deftypefun @deftypefun Transform scale (real @var{x}, [real @var{y} = 1, [real @var{z} = 1]]) @@ -949,6 +941,7 @@ @print{} p1: (4, 3, 8) @end example +@iftex @tex \ifmakeexamples \BEX @@ -960,14 +953,14 @@ \immediate\write\examples{p0_a.scale(4);} \immediate\write\examples{p0_a.label(Point::WORLD_VALUES);} \immediate\write\examples{p0_b.drawarrow(p0_a, black, "evenly");} -\immediate\write\examples{mediate(p0_b, p0_a).label("$p_0$");} +\immediate\write\examples{p0_b.mediate(p0_a).label("$p_0$");} \immediate\write\examples{Point p1_b(-2, -1, -2); } \immediate\write\examples{p1_b.dotlabel(Point::WORLD_VALUES, "bot");} \immediate\write\examples{Point p1_a(p1_b);} \immediate\write\examples{p1_a.scale(-2, -3, -4);} \immediate\write\examples{p1_a.label(Point::WORLD_VALUES);} \immediate\write\examples{p1_b.drawarrow(p1_a, black, "evenly");} -\immediate\write\examples{mediate(p1_b, p1_a, .25).label("$p_1$");} +\immediate\write\examples{p1_b.mediate(p1_a, .25).label("$p_1$");} \immediate\write\examples{draw_axes(gray);} \OEX{} \EGRP @@ -975,7 +968,8 @@ \fi \PEX @end tex - +@end iftex +@c @end deftypefun @deftypefun Transform shear (real @var{xy}, [real @var{xz} = 0, [real @var{yx} = 0, [real @var{yz} = 0, [real @var{zx} = 0, [real @var{zy} = 0]]]]]) @@ -986,29 +980,25 @@ Shearing modifies each coordinate of a @code{Point} proportionately to the values of the other two coordinates. -@tex -Let $x_0$, $y_0$, and $z_0$ stand for the coordinates of a @code{Point} -$P$ before @code{P.shear(}$\alpha, \beta, -\gamma, \delta, \epsilon, \zeta$@code{)}, and $x_1$, $y_1$, and $z_1$ +Let @math{x_0}, @math{y_0}, and @math{z_0} stand for the coordinates of +a @code{Point} @math{P} before @code{P.shear(}@c +@math{\alpha}, @math{\beta}, +@math{\gamma}, @math{\delta}, @math{\epsilon}, @math{\zeta} +@code{)}, +and @math{x_1}, @math{y_1}, and @math{z_1} for its coordinates afterwards. -@end tex @display -@tex -\vskip-3.5\baselineskip -$x_1 \equiv x_0 + {\alpha}y + {\beta}z$ -$y_1 \equiv y_0 + {\gamma}x + {\delta}z$ -$z_1 \equiv z_0 + {\epsilon}x + {\zeta}y$ -@end tex +@math{x_1 @equiv{} x_0 + \alpha y + \beta z} +@math{y_1 @equiv{} y_0 + \gamma x + \delta z} +@math{z_1 @equiv{} z_0 + \epsilon x + \zeta y} @end display @NEXTFIG{} demonstrates the effect of shearing the four @code{Points} of a -@tex -$3\times 3$ -@code{Rectangle} (i.e., a square) $r$ in the x-y plane using only an +@TMS{3, 3} +@code{Rectangle} (i.e., a square) @math{r} in the x-y plane using only an @var{xy} argument, making it non-rectangular. -@end tex @example Point P0; @@ -1021,6 +1011,7 @@ r.draw(black, "evenly"); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1048,6 +1039,7 @@ \fi \PEX @end tex +@end iftex @end deftypefun @@ -1102,6 +1094,7 @@ P.drawdot(); @end example +@iftex @tex \ifmakeexamples \BEX @@ -1132,6 +1125,7 @@ \fi \PEX @end tex +@end iftex @end deftypefun @@ -1175,17 +1169,38 @@ @deftypefn {@code{const} function} real dot_product (Point @var{p}) Returns the dot or scalar product of @code{*this} and @var{p}. +If @math{P} and @math{Q} are @code{Points}, +@iftex @tex -If $P$ and $Q$ are @code{Points}, $$P\bullet Q = x_Px_Q + y_Py_Q + z_Pz_Q = |P||Q|\cos(\theta)$$ -where $|P|$ -and $|Q|$ are the magnitudes of $P$ and $Q$, respectively, and $\theta$ -is the angle between $P$ and $Q$. +@end tex +@end iftex +@c +@ifnottex +@display +@math{P \dot Q = x_P * x_Q + y_P * y_Q + z_P * z_Q = |P||Q| * cos(\theta)} +@end display +@end ifnottex +@c +where @math{|P|} +and @math{|Q|} are the magnitudes of +@math{P} and @math{Q}, respectively, and @math{\theta} +is the angle between @math{P} and @math{Q}. Since +@iftex +@tex $$\theta = \arccos\Biggl({P \bullet Q \over |P||Q|}\Biggr),$$ -the dot product can be used for finding the angle between two vectors. @end tex +@end iftex +@c +@ifnottex +@display +@math{\theta = arccos(P \dot Q / |P||Q|)}, +@end display +@end ifnottex +@c +the dot product can be used for finding the angle between two vectors. @example Point P(1, -1, -1); @@ -1201,6 +1216,7 @@ @print{} 112.002 @end example +@iftex @tex \ifmakeexamples \BEX @@ -1249,12 +1265,23 @@ \fi \PEX @end tex +@end iftex +If the angle @math{\theta} between two vectors @math{P} and @math{Q} is +@DEG{90}, then +@math{\cos(\theta)} is 0, so +@iftex @tex -If the angle $\theta$ between two vectors $P$ and $Q$ is @DEG{90}, then -$\cos(\theta)$ is 0, so $P\bullet Q$ will also be 0. Therefore, -@code{dot_product()} can be used as a test for the orthogonality of vectors. +@math{P\bullet Q} @end tex +@end iftex +@c +@ifnottex +@math{P \dot Q} +@end ifnottex +@c +will also be 0. Therefore, +@code{dot_product()} can be used as a test for the orthogonality of vectors. @example Point P(2); @@ -1264,11 +1291,12 @@ P *= Q.rotate(0, 45, 45); P *= Q.rotate(45); cout << P.angle(Q); -@print 90 +@print{} 90 cout << P.dot_product(Q); -@print 0 +@print{} 0 @end example +@iftex @tex \ifmakeexamples \BEX @@ -1289,7 +1317,7 @@ \immediate\write\examples{origin.drawarrow(Q);} \immediate\write\examples{Q.label("$Q$"); } \immediate\write\examples{Q.label(Point::WORLD_VALUES, "llft");} -\immediate\write\examples{mediate(origin, R0).label("$90^@DBKS{circ}$", ""); } +\immediate\write\examples{origin.mediate(R0).label("$90^@DBKS{circ}$", ""); } \immediate\write\examples{Path s("--", false, &P0, &R0, &Q0, 0);} \immediate\write\examples{s.draw(black, "evenly");} \OEX{} @@ -1298,24 +1326,41 @@ \fi \PEX @end tex +@end iftex @end deftypefn @deftypefn {@code{const} function} Point cross_product (Point @var{p}) Returns the cross or vector product of @code{*this} and @var{p}. +If @math{P} and @math{Q} are @code{Points}, +@iftex @tex \setbox0=\hbox{$n$} \setbox1=\hbox to \wd0{\hfil$\hat{}$\hfil} \setbox2=\hbox{\copy1\hskip-\wd1$n$} -If $P$ and $Q$ are @code{Points}, $$P\times Q = ((y_Pz_Q - z_Py_Q), (z_Px_Q - x_Pz_Q), (x_Py_Q - y_Px_Q)) = |P||Q|\sin(\theta)\copy2,$$ where $|P|$ and $|Q|$ are the magnitudes of $P$ and $Q$, respectively, -$\theta$ is the angle between $P$ and $Q$, and {\copy2} is a unit vector -perpendicular to both $P$ and $Q$ in the direction of a right-hand screw -from $P$ towards $Q$. Therefore, @code{cross_product()} can be used to -find the normals to planes. +$\theta$ is the angle between $P$ and $Q$, and {\copy2} @end tex +@end iftex +@c +@ifnottex + +@display +P * Q = ((y_P * z_Q - z_P * y_Q), (z_P * x_Q - x_P * z_Q), +(x_P * y_Q - y_P * x_Q)) = |P||Q| * sin(\theta) * n, +@end display + +where @math{|P|} and @math{|Q|} are the magnitudes of +@math{P} and @math{Q}, respectively, +@math{\theta} is the angle between @math{P} and @math{Q}, and @math{n} +@end ifnottex +@c +is a unit vector +perpendicular to both @math{P} and @math{Q} in the direction of a +right-hand screw from @math{P} towards @math{Q}. Therefore, +@code{cross_product()} can be used to find the normals to planes. @example Point P(2, 2, 2); @@ -1334,6 +1379,7 @@ @print{} 1 @end example +@iftex @tex \ifmakeexamples \BEX @@ -1354,7 +1400,7 @@ \immediate\write\examples{origin.drawarrow(n);} \immediate\write\examples{origin.drawarrow(P);} \immediate\write\examples{origin.drawarrow(Q);} -\immediate\write\examples{Point R(mediate(origin, P));} +\immediate\write\examples{Point R(origin.mediate(P));} \immediate\write\examples{Point T(R);} \immediate\write\examples{Path s;} \immediate\write\examples{s.set_connectors("..");} @@ -1367,7 +1413,7 @@ \immediate\write\examples{ @CCB} \immediate\write\examples{s.draw(black, "evenly");} \immediate\write\examples{T.rotate(origin, n, angle/2);} -\immediate\write\examples{T = mediate(origin, T, .5);} +\immediate\write\examples{T = origin.mediate(T, .5);} \immediate\write\examples{T.label("$@DBKS{theta}$", "");} \immediate\write\examples{T.shift(1.5);} \immediate\write\examples{stringstream u;} @@ -1379,12 +1425,23 @@ \fi \PEX @end tex +@end iftex +If +@iftex @tex -If $\theta = 0^\circ$ or $180^\circ$, $\sin(\theta)$ will be 0, and -$P\times Q$ will be $(0, 0, 0)$. -The cross product thus provides a test for parallel vectors. +$\theta = 0^\circ$ or $180^\circ$, @end tex +@end iftex +@c +@ifnottex +@math{\theta = 0 degrees or 180 degrees}, +@end ifnottex +@c +@math{\sin(\theta)} will be 0, and +@TMS{P, Q} will be @math{(0, 0, 0)}. +The cross product thus provides a test for parallel vectors. + @example Point P(1, 2, 1); @@ -1397,6 +1454,7 @@ @print{} n: (0, 0, 0) @end example +@iftex @tex \ifmakeexamples \BEX @@ -1409,7 +1467,7 @@ \immediate\write\examples{origin.drawarrow(P);} \immediate\write\examples{R.drawarrow(Q);} \immediate\write\examples{Point s(Q - R);} -\immediate\write\examples{mediate(R, Q).label("$@DBKS{vec}@OCB{}s@CCB$", "ulft");} +\immediate\write\examples{R.mediate(Q).label("$@DBKS{vec}@OCB{}s@CCB$", "ulft");} \immediate\write\examples{Point n = P.cross_product(s);} \immediate\write\examples{origin.dotlabel("origin", "bot"); } \immediate\write\examples{P.label("$P$");} @@ -1421,15 +1479,22 @@ \fi \PEX @end tex +@end iftex @end deftypefn @deftypefn {@code{const} function} real magnitude (void) Returns the magnitude of the @code{Point}. This is its distance from @code{origin} and is equal to +@iftex @tex -$\sqrt{x^2 + y^2 + z^2}$. +$\sqrt{\strut x^2 + y^2 + z^2}$. @end tex +@end iftex +@c +@ifnottex +@math{sqrt(x^2 + y^2 + z^2)}. +@end ifnottex @example Point P(13, 15.7, 22); @@ -1452,6 +1517,7 @@ @print{} n: (0.393377, 0.91788, -0.0524503) @end example +@iftex @tex \ifmakeexamples \BEX @@ -1491,10 +1557,12 @@ \fi \PEX @end tex - +@end iftex +@c @end deftypefn -@deftypefn {Function} Point unit_vector ({const bool} @var{assign}, [{const bool} @var{silent = false]}) + +@deftypefn {Function} Point unit_vector ({const bool} @var{assign}, [{const bool} @var{silent = false}]) @deftypefnx {@code{const} function} Point unit_vector (void) These functions return a @code{Point} with the x, y, and z-coordinates of @code{world_coordinates} divided by the magnitude of the @code{Point}. @@ -1563,9 +1631,17 @@ otherwise @code{false}. If the @code{Point} lies on the line segment, the @code{real} part is a value @math{r} such that +@c +@iftex @tex $0\le r\le 1$ @end tex +@end iftex +@c +@ifnottex +0 <= r <= 1 +@end ifnottex +@c indicating how far the @code{Point} is along the way from @var{p0} to @var{p1}. For example, if the @code{Point} is half of the way from @var{p0} to @var{p1}, @math{r} will be @math{.5}. If the @code{Point} @@ -1580,8 +1656,8 @@ @example Point p0(-1, -2, 1); Point p1(3, 2, 5); -Point p2(mediate(p0, p1, .75)); -Point p3(mediate(p0, p1, 1.5)); +Point p2(p0.mediate(p1, .75)); +Point p3(p0.mediate(p1, 1.5)); Point p4(p2); p4.shift(-2, 1, -1); bool_real br = p2.is_on_segment(p0, p1); @@ -1603,6 +1679,8 @@ @print{} 1 @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -1610,8 +1688,8 @@ \immediate\write\examples{default_focus.set(2, 2, -10, 2, 2, 10, 10);} \immediate\write\examples{Point p0(-1, -2, 1);} \immediate\write\examples{Point p1(3, 2, 5);} -\immediate\write\examples{Point p2(mediate(p0, p1, .75));} -\immediate\write\examples{Point p3(mediate(p0, p1, 1.5));} +\immediate\write\examples{Point p2(p0.mediate(p1, .75));} +\immediate\write\examples{Point p3(p0.mediate(p1, 1.5));} \immediate\write\examples{Point p4(p2);} \immediate\write\examples{p4.shift(-2, 1, -1);} \immediate\write\examples{p0.dotlabel("$p_0$", "bot"); } @@ -1626,6 +1704,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @@ -1639,11 +1719,20 @@ @code{INVALID_REAL}. The following values of @math{r} are possible for a call to @code{P.is_on_line(A, B)}, where the @code{Point} @math{P} lies on the line -@math{@overrightarrow{AB}}: +@c +@iftex +@tex +$\overrightarrow{AB}$: +@end tex +@end iftex +@c +@ifnottex +AB: +@end ifnottex -@tex -\begingroup -\parindent=0pt +@iftex +@tex +@display $P \equiv A \Longrightarrow r\equiv 0$. $P \equiv B \Longrightarrow r\equiv 1$. @@ -1653,23 +1742,41 @@ $P$ lies between $A$ and $B \Longrightarrow 0 < r < 1$. $P$ lies on the opposite side of $A$ from $B \Longrightarrow r > 1$ -\endgroup +@end display @end tex +@end iftex +@c +@ifnottex +@display +P @equiv{} A ---> r@equiv{} 0. + +P @equiv{} B ---> r@equiv{} 1. + +P lies on the opposite side of A from B ---> r < 0. + +P lies between A and B ---> 0 < r < 1. + +P lies on the opposite side of A from B ---> r > 1 +@end display +@end ifnottex + @example Point A(-1, -2); Point B(2, 3); -Point C(mediate(B, A, 1.25)); +Point C(B.mediate(A, 1.25)); bool_real br = C.is_on_line(A, B); -Point D(mediate(A, B)); +Point D(A.mediate(B)); br = D.is_on_line(A, B); -Point E(mediate(A, B, 1.25)); +Point E(A.mediate(B, 1.25)); br = E.is_on_line(A, B); Point F(D); F.shift(-1, 1); br = F.is_on_line(A, B); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -1679,7 +1786,7 @@ \immediate\write\examples{Point B(2, 3);} \immediate\write\examples{B.dotlabel("$B$", "lft");} \immediate\write\examples{A.draw(B);} -\immediate\write\examples{Point C(mediate(B, A, 1.25));} +\immediate\write\examples{Point C(B.mediate(A, 1.25));} \immediate\write\examples{C.dotlabel("$C$", "ulft"); } \immediate\write\examples{stringstream s;} \immediate\write\examples{bool_real br = C.is_on_line(A, B);} @@ -1687,13 +1794,13 @@ \immediate\write\examples{C.label(s.str(), "bot");} \immediate\write\examples{C.draw(A, black, "evenly");} \immediate\write\examples{s.str("");} -\immediate\write\examples{Point D(mediate(A, B));} +\immediate\write\examples{Point D(A.mediate(B));} \immediate\write\examples{br = D.is_on_line(A, B);} \immediate\write\examples{D.dotlabel("$D$", "lft"); } \immediate\write\examples{s << "$r @DBKS{equiv} " << br.second << "$";} \immediate\write\examples{D.label(s.str(), "rt");} \immediate\write\examples{s.str("");} -\immediate\write\examples{Point E(mediate(A, B, 1.25));} +\immediate\write\examples{Point E(A.mediate(B, 1.25));} \immediate\write\examples{br = E.is_on_line(A, B);} \immediate\write\examples{E.dotlabel("$E$", "lft"); } \immediate\write\examples{s << "$r @DBKS{equiv} " << br.second << "$";} @@ -1710,24 +1817,28 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn -@deftypefn {Non-member function} Point mediate (Point @var{p0}, Point @var{p1}, [{const real} @var{r} = .5]) -Returns a @code{Point} @var{r} of the way from @var{p0} to @var{p1}. +@deftypefn {@code{const} function} Point mediate (Point @var{p}, [{const real} @var{r} = .5]) +Returns a @code{Point} @var{r} of the way from @code{*this} to @var{p}. @example Point p0(-1, 0, -1); Point p1(10, 0, 10); Point p2(5, 5, 5); -Point p3 = mediate(p0, p1, 1.5); +Point p3 = p0.mediate(p1, 1.5); p3.show("p3:"); @print{} p3: (15.5, 0, 15.5) -Point p4 = mediate(p0, p2, 1/3.0); +Point p4 = p0.mediate(p2, 1/3.0); p4.show("p4:"); @print{} p4: (1, 1.66667, 1) @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -1738,9 +1849,9 @@ \immediate\write\examples{p0.draw(p1);} \immediate\write\examples{Point p2(5, 5, 5);} \immediate\write\examples{p0.draw(p2);} -\immediate\write\examples{Point p3 = mediate(p0, p1, 1.5);} +\immediate\write\examples{Point p3 = p0.mediate(p1, 1.5);} \immediate\write\examples{p1.draw(p3, black, "evenly");} -\immediate\write\examples{Point p4 = mediate(p0, p2, 1/3.0);} +\immediate\write\examples{Point p4 = p0.mediate(p2, 1/3.0);} \immediate\write\examples{p0.dotlabel("$p_0$", "bot"); } \immediate\write\examples{p1.dotlabel("$p_1$"); } \immediate\write\examples{p2.dotlabel("$p_2$"); } @@ -1753,6 +1864,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @@ -1789,6 +1902,8 @@ @print{} bp.b == 1 @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -1811,6 +1926,8 @@ \fi \PEX @end tex +@end iftex +@c @example Point A(.5, .5); @@ -1823,6 +1940,8 @@ @print{} bp.b == 0 @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -1839,7 +1958,7 @@ \immediate\write\examples{D.dotlabel("$D$"); } \immediate\write\examples{bool_point bp = Point::intersection_point(A, B, C, D);} \immediate\write\examples{bp.pt.dotlabel("$i$");} -\immediate\write\examples{Point E(mediate(A, bp.pt, 2));} +\immediate\write\examples{Point E(A.mediate(bp.pt, 2));} \immediate\write\examples{A.draw(E, black, "evenly");} \OEX{Projections::PARALLEL_X_Y} \EGRP @@ -1847,6 +1966,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @@ -1859,9 +1980,9 @@ a @code{picture} argument. Where @var{picture} is optional, the default is always @code{current_picture}. -@cindex{output file} -@cindex{file, output} -@cindex{pen expression} +@cindex output file +@cindex file, output +@cindex pen expression @c @deftypefn {@code{const} function} void drawdot ([{const Color&} @var{ddrawdot_color} = @code{*Colors::default_color}, [{const string} @var{ppen} = "", [Picture& @var{picture} = @code{current_picture}]]]) @deftypefnx {@code{const} function} void drawdot ([Picture& @var{picture} = @code{current_picture}, [{const Color&} @var{ddrawdot_color} = @code{*Colors::default_color}, [{const string} @var{ppen} = "", ]]]) @@ -1884,6 +2005,8 @@ P.drawdot(gray, "pensquare scaled 1cm"); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -1897,6 +2020,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @@ -1912,6 +2037,8 @@ P.undrawdot("pencircle scaled .5cm"); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -1926,6 +2053,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefun @@ -1943,6 +2072,8 @@ P.draw(Q, Colors::gray, "", "pensquare scaled .5cm"); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -1960,6 +2091,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefun @@ -1978,6 +2111,8 @@ P.undraw(Q, "evenly scaled 6", "pencircle scaled .3cm"); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -1996,10 +2131,12 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefun -@cindex{help lines} +@cindex help lines @deftypefun Path draw_help ({const Point&} @var{p}, [{const Color&} @var{ddraw_color} = *Colors::help_color, [string @var{ddashed} = "", [string @var{ppen} = "", [Picture& @var{picture} = current_picture]]]]) @deftypefunx Path draw_help (Picture& @var{picture}, {const Point&} @var{p}, [{const Color&} @var{ddraw_color} = *Colors::help_color, [string @var{ddashed} = "", [string @var{ppen} = ""]]]) Draws a ``help line'' from @code{*this to @var{p}}, but only if the @@ -2023,6 +2160,8 @@ P.drawarrow(Q); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -2033,8 +2172,8 @@ \immediate\write\examples{Point Q(3, 3, 5);} \immediate\write\examples{Q.label("$Q$");} \immediate\write\examples{P.drawarrow(Q);} -\immediate\write\examples{Point R(mediate(P, Q));} -\immediate\write\examples{R.label("$@DBKS{overrightarrow}@OCB PQ@CCB$", "ulft"); } +\immediate\write\examples{Point R(P.mediate(Q));} +\immediate\write\examples{R.label("$@DBKS{overrightarrow}@OCB{}PQ@CCB{}$", "ulft"); } \immediate\write\examples{draw_axes(gray);} \OEX{} \EGRP @@ -2042,6 +2181,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefun @node Labelling Points, Showing Points, Point Drawing Functions, Point Reference @@ -2078,6 +2219,8 @@ p0.label("$p_0$"); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -2090,6 +2233,8 @@ \fi \PEX @end tex +@end iftex +@c If backslashes are needed in the text of the label, then @var{text_str} must contain double backslashes, so that single @@ -2098,10 +2243,12 @@ @example Point P; Point Q(2, 2); -Point R(mediate(P, Q)); -R.label("$\\overrightarrow@OCB{}PQ@CCB$", "ulft"); +Point R(P.mediate(Q)); +R.label("$\\overrightarrow@OCB{}PQ@CCB{}$", "ulft"); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -2111,7 +2258,7 @@ \immediate\write\examples{P.drawarrow(Q);} \immediate\write\examples{P.dotlabel("$P$", "bot"); } \immediate\write\examples{Q.label("$Q$"); } -\immediate\write\examples{Point R(mediate(P, Q));} +\immediate\write\examples{Point R(P.mediate(Q));} \immediate\write\examples{R.label("$@DBKS{overrightarrow}@OCB PQ@CCB$", "ulft");} \OEX{Projections::PARALLEL_X_Y} \EGRP @@ -2119,6 +2266,8 @@ \fi \PEX @end tex +@end iftex +@c The @var{position} argument indicates where the text of the label should be located relative to the @code{Point}. The valid values are the @@ -2146,6 +2295,8 @@ p0.dotlabel("$p_0$"); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -2158,6 +2309,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/polygon.texi 3DLDF-1.1.4/DOC/TEXINFO/polygon.texi --- 3DLDF-1.1.3/DOC/TEXINFO/polygon.texi 2003-11-28 15:21:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/polygon.texi 2003-12-09 20:02:42.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: polygon.texi,v 1.1 2003/11/28 14:21:00 lfinsto1 Exp $ - -@node Polygon Reference, Rectangle Reference, Path Reference, Top +@c $Id: polygon.texi,v 1.4 2003/12/09 19:02:42 lfinsto1 Exp $ + +@node Polygon Reference, Regular Polygon Reference, Path Reference, Top @chapter Polygon Reference -@tindex{Polygon} +@tindex Polygon Class @code{Polygon} is defined in @file{polygons.web}, and is derived from @code{Path}, using public derivation. @@ -114,9 +114,7 @@ will be @code{false}. If a single intersection point is found, the corresponding @code{Point} will be stored in @code{b.first.pt}. If the @code{Point} is on the line segment -@tex -$\overrightarrow{p_0p_1}$, -@end tex +@OVERRTARROW{p_0p_1}, @code{b.first.b} will be @code{true}, otherwise @code{false}. If a second intersection point is found, it will be stored in @code{b.second.pt}, and @code{b.second.b} is set @@ -141,6 +139,8 @@ bpp.second.pt.dotlabel("$s$"); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -167,17 +167,20 @@ \fi \PEX @end tex +@end iftex +@c -@tex -In @NEXTFIG{}, the lines $\overrightarrow{BC}$ and $\overrightarrow{PQ}$ -are not coplanar with the @code{Reg_Polygon} $r$. In each case, only + +In @NEXTFIG{}, the lines @OVERRTARROW{BC} and +@OVERRTARROW{PQ} +are not coplanar with the @code{Reg_Polygon} @math{r}. In each case, only one intersection point is possible, and it can be either an intersection with an edge of the @code{Reg_Polygon}, or lie within its perimeter. -@end tex + @example -Point B(mediate(r.get_point(3), r.get_point(4))); +Point B(r.get_point(3).mediate(r.get_point(4))); Point C(B); B.shift(0, 2, .5); C.shift(0, -2, -.5); @@ -190,6 +193,8 @@ bpp.first.pt.dotlabel("$i_1$", "rt"); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -200,7 +205,7 @@ \immediate\write\examples{Transform t;} \immediate\write\examples{t.rotate(15, 12, 11);} \immediate\write\examples{t.shift(A);} -\immediate\write\examples{Point B(mediate(r.get_point(3), r.get_point(4)));} +\immediate\write\examples{Point B(r.get_point(3).mediate(r.get_point(4)));} \immediate\write\examples{Point C(B);} \immediate\write\examples{B.shift(0, 2, .5);} \immediate\write\examples{C.shift(0, -2, -.5);} @@ -224,14 +229,13 @@ \fi \PEX @end tex +@end iftex +@c -@tex -In @NEXTFIG{}, the intersection point of @math{r} with the @code{Path} -$m$ from -with does not lie on the line segment -$\overrightarrow{PQ}$ -@end tex +In @NEXTFIG{}, the intersection point of @math{r} with the line +@OVERRTARROW{PQ} +does not lie on the line @emph{segment} @math{PQ}. @example bpp = r.intersection_points(P, Q); @@ -241,6 +245,8 @@ @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -260,7 +266,7 @@ \immediate\write\examples{P.draw(Q);} \immediate\write\examples{bool_point_pair bpp = r.intersection_points(P, Q);} \immediate\write\examples{bpp.first.pt.dotlabel("$i$"); } -\immediate\write\examples{Point S(mediate(P, bpp.first.pt, 2.25));} +\immediate\write\examples{Point S(P.mediate(bpp.first.pt, 2.25));} \immediate\write\examples{P.draw(S, black, "evenly");} \OEX{} \EGRP @@ -268,6 +274,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @@ -275,12 +283,11 @@ @deftypefn {@code{const} function} {vector} intersection_points ({const Polygon&} @var{r}) Finds the intersection points of two @code{Polygons}. -@tex -Let $v$ be the @code{vector} returned by -@code{intersection_points()}. If the @code{Polygons} are coplanar, $v$ +Let @math{v} be the @code{vector} returned by +@code{intersection_points()}. If the @code{Polygons} are coplanar, +@math{v} will contain the intersection points of the edges of the @code{Polygons}, as in @NEXTFIG{}. -@end tex @example Rectangle r(origin, 4, 4); @@ -290,6 +297,8 @@ @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -314,6 +323,8 @@ \fi \PEX @end tex +@end iftex +@c If the @code{Polygons} lie in parallel planes, there can be no intersection points. If they lie in non-parallel, non-coplanar planes, @@ -321,13 +332,12 @@ two planes. Then it finds the intersection points of this line with the two @code{Polygons}, if they exist. There can no more than four intersection points, in this case. -@tex -$v[0]$ and $v[1]$ will be the -intersection points of the line with @code{*this}, while $v[2]$ and -$v[3]$ will be the intersection points of the line with @var{r}. If one +@math{v[0]} and @math{v[1]} will be the +intersection points of the line with @code{*this}, while @math{v[2]} and +@math{v[3]} will be the intersection points of the line with @var{r}. If one or more of the intersection points doesn't exist, the corresponding -member of $v$ will contain @code{INVALID_POINT} as a placeholder. -@end tex +member of @math{v} will contain @code{INVALID_POINT} as a placeholder. + @example Point A(1, 1, 1); @@ -338,6 +348,8 @@ vector v = r.intersection_points(p); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -348,8 +360,8 @@ \immediate\write\examples{Reg_Polygon p(A, 5, 5);} \immediate\write\examples{p.rotate(90, 30);} \immediate\write\examples{p.shift(2, 0, 3);} -\immediate\write\examples{mediate(A, r.get_point(3)).label("$r$", "");} -\immediate\write\examples{mediate(p.get_center(), p.get_point(0)).label("$p$", "");} +\immediate\write\examples{A.mediate(r.get_point(3)).label("$r$", "");} +\immediate\write\examples{p.get_center().mediate(p.get_point(0)).label("$p$", "");} \immediate\write\examples{r.draw();} \immediate\write\examples{p.draw();} \immediate\write\examples{vector v = r.intersection_points(p);} @@ -367,13 +379,14 @@ \fi \PEX @end tex +@end iftex +@c -@tex -In @NEXTFIG{}, the @code{Rectangle} $r$ and the @code{Reg_Polygon} $p$ +In @NEXTFIG{}, the @code{Rectangle} @math{r} and the @code{Reg_Polygon} @math{p} don't overlap at all, nor does the intersection line of the two planes -intersect with $p$. However, it does intersect with $p$ at the +intersect with @math{p}. However, it does intersect with @math{p} at the labelled @code{Points}. -@end tex + @example Point A(1, 1, 1); @@ -388,7 +401,8 @@ iter->dotlabel(i++, "bot"); @end example - +@c +@iftex @tex \ifmakeexamples \BEX @@ -413,315 +427,9 @@ \fi \PEX @end tex - - -@end deftypefn - -@node Regular Polygon Reference, , Polygon Reference -@chapter Regular Polygon Reference - -@tindex{Reg_Polygon} -Class @code{Reg_Polygon} is defined in @file{polygons.web}, and -is derived from @code{Polygon}, using public derivation. - -As noted above in @ref{Affine Transformations for Polygons,, -Polygon Reference; Affine Transformations}, @code{class Reg_Polygon}, -like @code{class Rectangle}, -currently inherits its transformation functions and -@code{operator*=(const Transform&)} from @code{Polygon}. Consequently, -the data members of a @code{Reg_Polygon}, except for @code{center}, are -not recalculated when it's transformed. I plan to change this soon! It -will also be necessary to add the function -@code{Reg_Polygon::is_reg_polygonal()}, in order to test whether a -@code{Reg_Polygon} is still regular and polygonal. - - -@menu -* Regular Polygon Data Members:: -* Regular Polygon Constructors and Setting Functions:: -* Regular Polygon Operators:: -* Querying Regular Polygons:: -* Circles for Regular Polygons:: -@end menu - -@node Regular Polygon Data Members, Regular Polygon Constructors and Setting Functions, Regular Polygon Reference, Regular Polygon Reference -@section Data Members - -@deftypevr {Private variable} real internal_angle -The angle at the center of the @code{Reg_Polygon} of the triangle formed -by the center and two adjacent corners. -@tex -If $n$ is the number of sides of a @code{Reg_Polygon}, -@code{internal_angle} will be $360.0/n$, so @code{internal_angle} -will be 120 for a regular triangle, 90 for a square, 72 for a pentagon, -etc. -@end tex -@c !! Make figure. -@end deftypevr - -@deftypevr {Private variable} real radius -The radius of the surrounding circle for a @code{Reg_Polygon} (@i{Umkreis}). -@end deftypevr - -@deftypevr {Private variable} unsigned short sides -The number of sides of a @code{Reg_Polygon}. -@end deftypevr - -@deftypevr {Private variable} bool on_free_store -@code{true}, if the @code{Reg_Polygon} was dynamically allocated on the -free store, otherwise @code{false}. Dynamic allocation of -@code{Reg_Polygons} should only be -performed by @code{create_new_reg_polygon()}, which sets -@code{on_free_store} to @code{true}. -@end deftypevr - -@node Regular Polygon Constructors and Setting Functions, Regular Polygon Operators, Regular Polygon Data Members, Regular Polygon Reference -@section Constructors and Setting Functions - -@deftypefn {Default constructor} void Reg_Polygon (void) -Creates an empty @code{Reg_Polygon}. -@end deftypefn - -@deftypefn {Constructor} void Reg_Polygon ({const Point&} @var{ccenter}, {const unsigned short} @var{ssides}, {const real} @var{ddiameter}, [{const real} @var{angle_x} = 0, [{const real} @var{angle_y} = 0, [{const real} @var{angle_z} = 0]]]) +@end iftex @c -Creates a @code{Reg_Polygon} in the x-z plane, centered at the origin, -with the number of sides specified by @var{ssides} and with -@tex -@code{radius} $= @var{ddiameter} / 2$. -@end tex - -The @code{Reg_Polygon} is rotated -about the x, y, and z-axes in that order by the angles given by -@var{angle_x}, @var{angle_y}, and @var{angle_z}, respectively, if any -one of them is non-zero. Finally, the -@code{Reg_Polygon} is shifted such that its center is located at -@var{ccenter}. - -@example -Reg_Polygon r(origin, 3, 2.75, 10, 15, 12.5); -r.draw(); -@end example - -@tex -\ifmakeexamples -\BEX -\BGRP -\immediate\write\examples{default_focus.set(-5, 10, -10, -5, 10, 10, 10);} -\immediate\write\examples{Reg_Polygon r(origin, 3, 2.75, 10, 15, 12.5);} -\immediate\write\examples{r.draw();} -\immediate\write\examples{draw_axes(gray, 0, "d", "d", "rt");} -\OEX{} -\EGRP -\EEX 1 -\fi -\PEX -@end tex - -@end deftypefn - -@deftypefn {Setting function} void set ({const Point&} @var{ccenter}, {const unsigned short} @var{ssides}, {const real} @var{ddiameter}, [{const real} @var{angle_x} = 0, [{const real} @var{angle_y} = 0, [{const real} @var{angle_z} = 0]]]) -@c -Corresponds to the constructor above. - -A @code{Reg_Polygon} can theoretically have any number of sides, however -I haven't tested it for unreasonably large values. The following -example demonstrates that @code{set()} can be used to change a -@code{Reg_Polygon}. - -@example -Reg_Polygon r; -real j = .5; -for (int i = 3; i <= 16; ++i) - @OCB - r.set(origin, i, j); - r.draw(); - j += .5; - @CCB -@end example - -@tex -\ifmakeexamples -\BEX -\BGRP -\immediate\write\examples{Reg_Polygon r;} -\immediate\write\examples{real j = .5;} -\immediate\write\examples{for (int i = 3; i <= 16; ++i)} -\immediate\write\examples{ @OCB} -\immediate\write\examples{ r.set(origin, i, j);} -\immediate\write\examples{ r.draw();} -\immediate\write\examples{ j += .5;} -\immediate\write\examples{ @CCB} -\OEX{Projections::PARALLEL_X_Z} -\EGRP -\EEX 1 -\fi -\PEX -@end tex -@end deftypefn - -@deftypefn {Static function} {Reg_Polygon*} create_new_reg_polygon ([const Reg_Polygon* @var{r} = 0]) -@deftypefnx {Static function} {Reg_Polygon*} create_new_reg_polygon (const Reg_Polygon& @var{r}) -Pseudo-constructors for dynamic allocation. -In the first version, @var{r} is an optional pointer argument. If -@var{r} is non-zero, the new @code{Reg_Polygon} will be a copy of -@var{*r}. Otherwise, it will be empty. - -In the second version, -@var{r} is a required reference argument, and the new @code{Reg_Polygon} -will be a copy of @var{r}. -@end deftypefn - -@node Regular Polygon Operators, Querying Regular Polygons, Regular Polygon Constructors and Setting Functions, Regular Polygon Reference -@section Operators - -@deftypefn {Operator} {const Reg_Polygon&} operator= ({const Reg_Polygon&} @var{p}) -Makes the @code{Reg_Polygon} a copy of @var{p}. -@end deftypefn - - - -@node Querying Regular Polygons, Circles for Regular Polygons, Regular Polygon Operators, Regular Polygon Reference -@section Querying - -@deftypefn {@code{const} inline function} real get_radius (void) -Returns @code{radius}. -@end deftypefn - - -@node Circles for Regular Polygons, , Querying Regular Polygons, Regular Polygon Reference -@section Circles - -@deftypefn {@code{const} function} Circle in_circle (void) -Returns the enclosed @code{Circle} of the @code{Reg_Polygon}. - -@example -Point P(0, -1, 1); -Reg_Polygon h(P, 6, 4, 15, 12, 11.5); -h.filldraw(black, gray); -Circle c = h.in_circle(); -c.unfilldraw(black); -@end example - -@tex -\ifmakeexamples -\BEX -\BGRP -\immediate\write\examples{default_focus.set(3, 5, -5, 3, 0, 1, 10);} -\immediate\write\examples{Point P(0, -1, 1);} -\immediate\write\examples{Reg_Polygon h(P, 6, 4, 15, 12, 11.5);} -\immediate\write\examples{h.filldraw(black, gray);} -\immediate\write\examples{mediate(h.get_point(4), h.get_point(5)).label("$h$", "urt");} -\immediate\write\examples{Circle c = h.in_circle();} -\immediate\write\examples{c.unfilldraw(black);} -\immediate\write\examples{P.label("$c$");} -\immediate\write\examples{draw_axes(gray, 0, "d", "d", "top");} -\OEX{} -\EGRP -\EEX 1 -\fi -\PEX -@end tex - -@end deftypefn - -@deftypefn {@code{const} function} Circle draw_in_circle ([{const Color&} @var{ddraw_color} = @code{*Colors::default_color}, [{const string} @var{ddashed} = "", [const string] @var{ppen} = "", [Picture& @var{picture} = @code{current_picture}]]]) -@c -@deftypefnx {@code{const} function} Circle draw_in_circle ([Picture& @var{picture} = @code{current_picture}, [{const Color&} @var{ddraw_color} = @code{*Colors::default_color}, [{const string} @var{ddashed} = "", [const string] @var{ppen} = ""]]]) -Draws and returns the enclosed @code{Circle} of the @code{Reg_Polygon}. - -@example -Point P(0, 1, 1); -Reg_Polygon h(P, 7, 4, 80, 2, 5); -h.draw(black, "evenly"); -h.draw_in_circle(); -@end example - -@tex -\ifmakeexamples -\BEX -\BGRP -\immediate\write\examples{default_focus.set(2, 3, -10, 2, 3, 10, 10);} -\immediate\write\examples{Point P(0, 1, 1);} -\immediate\write\examples{Reg_Polygon h(P, 7, 4, 80, 2, 5);} -\immediate\write\examples{h.draw(black, "evenly");} -\immediate\write\examples{h.get_point(0).label("$h$");} -\immediate\write\examples{h.draw_in_circle();} -\immediate\write\examples{P.label("$c$", "");} -\immediate\write\examples{draw_axes(gray, 0, "d", "d", "top");} -\OEX{} -\EGRP -\EEX 1 -\fi -\PEX -@end tex - - -@end deftypefn - -@deftypefn {@code{const} function} Circle out_circle (void) -Returns the surrounding @code{Circle} of the @code{Reg_Polygon}. - -@example -Point P(0, -1, 1); -Reg_Polygon h(P, 6, 4, 15, 12, 11.5); -Circle c = h.out_circle(); -c.filldraw(black, gray); -h.unfilldraw(black); -@end example - -@tex -\ifmakeexamples -\BEX -\BGRP -\immediate\write\examples{default_focus.set(3, 5, -5, 3, 0, 1, 10);} -\immediate\write\examples{Point P(0, -1, 1);} -\immediate\write\examples{Reg_Polygon h(P, 6, 4, 15, 12, 11.5);} -\immediate\write\examples{Circle c = h.out_circle();} -\immediate\write\examples{c.filldraw(black, gray);} -\immediate\write\examples{h.unfilldraw(black);} -\immediate\write\examples{P.label("$h$");} -\immediate\write\examples{c.get_point(7).label("$c$");} -\immediate\write\examples{draw_axes(gray, 0, "d", "d", "top");} -\OEX{} -\EGRP -\EEX 1 -\fi -\PEX -@end tex - -@end deftypefn - -@deftypefn {@code{const} function} Circle draw_out_circle ([{const Color&} @var{ddraw_color} = @code{*Colors::default_color}, [{const string} @var{ddashed} = "", [const string] @var{ppen} = "", [Picture& @var{picture} = @code{current_picture}]]]) -@c -@deftypefnx {@code{const} function} Circle draw_out_circle ([Picture& @var{picture} = @code{current_picture}, [{const Color&} @var{ddraw_color} = @code{*Colors::default_color}, [{const string} @var{ddashed} = "", [const string] @var{ppen} = ""]]]) -Draws and returns the surrounding @code{Circle} of the @code{Reg_Polygon}. - -@example -Point P(0, 1, 1); -Reg_Polygon h(P, 7, 4, 80, 2, 5); -h.draw(black, "evenly"); -h.draw_out_circle(); -@end example - -@tex -\ifmakeexamples -\BEX -\BGRP -\immediate\write\examples{default_focus.set(2, 3, -10, 2, 3, 10, 10);} -\immediate\write\examples{Point P(0, 1, 1);} -\immediate\write\examples{Reg_Polygon h(P, 7, 4, 80, 2, 5);} -\immediate\write\examples{h.draw(black, "evenly");} -\immediate\write\examples{Circle c = h.draw_out_circle();} -\immediate\write\examples{c.get_point(0).label("$c$");} -\immediate\write\examples{P.label("$h$", "");} -\immediate\write\examples{draw_axes(gray, 0, "d", "d", "top");} -\OEX{} -\EGRP -\EEX 1 -\fi -\PEX -@end tex @end deftypefn diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/polyhed.texi 3DLDF-1.1.4/DOC/TEXINFO/polyhed.texi --- 3DLDF-1.1.3/DOC/TEXINFO/polyhed.texi 2003-11-28 15:21:01.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/polyhed.texi 2003-12-09 17:30:53.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: polyhed.texi,v 1.1 2003/11/28 14:21:01 lfinsto1 Exp $ +@c $Id: polyhed.texi,v 1.4 2003/12/09 16:30:52 lfinsto1 Exp $ @node Polyhedron Reference, Utility Functions, Cuboid Reference, Top @chapter Polyhedron Reference -@tindex{Polyhedron} +@tindex Polyhedron Class @code{Polyhedron} is defined in @file{polyhed.web}. It is derived from @code{Solid_Faced} using public derivation. It is intended for use as a base class for specific types of polyhedra. @@ -70,7 +70,7 @@ @node Tetrahedron, Dodecahedron, Regular Platonic Polyhedra, Regular Platonic Polyhedra @subsection Tetrahedron -@tindex{Tetrahedron} +@tindex Tetrahedron Class @code{Tetrahedron} is defined in @file{polyhed.web}. It is derived from @code{Polyhedron} using public derivation. @@ -85,9 +85,7 @@ @deftypevr {Protected static @code{const} variable} real dihedral_angle The angle in radians between the faces of the @code{Tetrahedron}, namely -@tex -$70^\circ{} 32^\prime$. -@end tex +@DEG{70} @PRM{32}. Only the Platonic polyhedra have a single dihedral angle, so @code{dihedral_angle} is not a member of @@ -131,6 +129,8 @@ t.draw(); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -145,6 +145,8 @@ \fi \PEX @end tex +@end iftex +@c @example Point P(1, 0, 1); @@ -152,6 +154,8 @@ t.draw(); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -168,6 +172,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @@ -184,10 +190,8 @@ two-dimensional pattern of triangles that can be folded into a model of a tetrahedron.@c @footnote{@c -@tex -Albrecht D{\"u}rer invented this method of constructing polyhedra. +Albrecht D@"{u}rer invented this method of constructing polyhedra. @c !! TO DO: Find citation! -@end tex } The net lies in the x-z plane. The triangles have enclosing circles of diameter @var{triangle_diameter}. The center @@ -203,6 +207,8 @@ @CCB @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -222,6 +228,8 @@ \fi \PEX @end tex +@end iftex +@c This function is used in the non-default constructor. @xref{Tetrahedron Constructors and Setting Functions,, @@ -260,6 +268,8 @@ Tetrahedron::draw_net(3, true); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -271,6 +281,8 @@ \fi \PEX @end tex +@end iftex +@c The net is drawn in the x-y plane, because it currently doesn't work to draw it in the x-z plane. I haven't gotten around to fixing this @@ -280,7 +292,7 @@ @node Dodecahedron, Icosahedron, Tetrahedron, Regular Platonic Polyhedra @subsection Dodecahedron -@tindex{Dodecahedron} +@tindex Dodecahedron Class @code{Dodecahedron} is defined in @file{polyhed.web}. It is derived from @code{Polyhedron} using public derivation. @@ -298,9 +310,7 @@ @deftypevr {Protected static @code{const} variable} real dihedral_angle The angle between the faces of the @code{Dodecahedron}, namely -@tex -$116^\circ{} 34^\prime = \pi - \arctan(2)$. -@end tex +@DEG{116} @PRM{34} @math{= \pi - \arctan(2)}. @c @c !! TO DO: Make illustration. @end deftypevr @@ -336,6 +346,8 @@ d.draw(); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -351,11 +363,15 @@ \fi \PEX @end tex +@end iftex +@c @example d.filldraw(); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -367,6 +383,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @node Dodecahedron Net, , Dodecahedron Constructors and Setting Functions, Dodecahedron @@ -392,6 +410,8 @@ (**iter).draw(); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -406,6 +426,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @deftypefn {Static function} void draw_net ({const real} @var{pentagon_diameter}, [bool @var{portrait} = @code{true}, [bool @var{make_tabs} = @code{true}]]) @@ -428,6 +450,8 @@ Dodecahedron::draw_net(1, false); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -439,12 +463,14 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @node Icosahedron, , Dodecahedron, Regular Platonic Polyhedra @subsection Icosahedron -@tindex{Icosahedron} +@tindex Icosahedron Class @code{Icosahedron} is defined in @file{polyhed.web}. It is derived from @code{Polyhedron} using public derivation. @@ -461,9 +487,7 @@ @deftypevr {Protected static @code{const} variable} real dihedral_angle The angle between the faces of the @code{Icosahedron}, namely -@tex -$138^\circ{} 11^\prime = \pi - \arcsin(2/3)$. -@end tex +@DEG{138} @PRM{11} @math{= \pi - \arcsin(2/3)}. @c @c !! TO DO: Add illustration. @end deftypevr @@ -499,6 +523,8 @@ @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -511,11 +537,15 @@ \fi \PEX @end tex +@end iftex +@c @example i.filldraw(); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -526,6 +556,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @@ -551,6 +583,8 @@ (**iter).draw(); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -565,6 +599,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @deftypefn {Static function} void draw_net ({const real} @var{triangle_diameter}, [bool @var{portrait} = @var{true}, [bool @var{make_tabs} = @code{true}]]) @@ -587,6 +623,8 @@ Icosahedron::draw_net(2, false); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -598,9 +636,12 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn +@comment node-name, next, previous, up @node Semi-Regular Archimedean Polyhedra, , Regular Platonic Polyhedra, Polyhedron Reference @section Semi-Regular Archimedean Polyhedra @@ -609,13 +650,16 @@ for the semi-regular Archimedean polyhedra. @menu -* Truncated Octahedron (Trunc_Octahedron):: +* Truncated Octahedron:: @end menu -@node Truncated Octahedron (Trunc_Octahedron), , Semi-Regular Archimedean Polyhedra, Semi-Regular Archimedean Polyhedra -@subsection Truncated Octahedron (Trunc_Octahedron) + +@comment node-name, next, previous, up +@node Truncated Octahedron, Truncated Octahedron Data Members, Semi-Regular Archimedean Polyhedra, Semi-Regular Archimedean Polyhedra +@subsection Truncated Octahedron -@tindex{Trunc_Octahedron} +@tindex Trunc_Octahedron +@tindex Truncated Octahedron Class @code{Trunc_Octahedron} is defined in @file{polyhed.web}. It is derived from @code{Polyhedron} using public derivation. @@ -623,19 +667,20 @@ it cannot be used as yet. @menu -* Trunc_Octahedron Data Members:: -* Trunc_Octahedron Net:: +* Truncated Octahedron Data Members:: +* Truncated Octahedron Net:: +* Truncated Octahedron Constructors and Setting Functions:: @end menu -@node Trunc_Octahedron Data Members, Trunc_Octahedron Net, Truncated Octahedron (Trunc_Octahedron), Truncated Octahedron (Trunc_Octahedron) + +@comment node-name, next, previous, up +@node Truncated Octahedron Data Members, Truncated Octahedron Constructors and Setting Functions, Truncated Octahedron, Truncated Octahedron @subsubsection Data Members @deftypevr {Protected static @code{const} variable} real angle_hex_square The angle between the hexagonal and the square faces of the truncated octahedron, namely -@tex -$125^\circ{} 16^\prime$. -@end tex +@DEG{125} @PRM{16}. @c @c !! TO DO: Add illustration. @end deftypevr @@ -643,9 +688,7 @@ @deftypevr {Protected static @code{const} variable} real angle_hex_hex The angle between the hexagonal faces of the truncated octahedron, namely -@tex -$109^\circ{} 28^\prime$. -@end tex +@DEG{109} @PRM{28}. @c @c !! TO DO: Add illustration. @end deftypevr @@ -655,9 +698,8 @@ @code{Trunc_Octahedron}. @end deftypevr -@node Trunc_Octahedron Constructors and Setting Functions, Trunc_Octahedron Net, Trunc_Octahedron Data Members, Truncated Octahedron (Trunc_Octahedron) -Trunc_Octahedron Net, Trunc_Octahedron (Truncated Octahedron), -Trunc_Octahedron (Truncated Octahedron) + +@node Truncated Octahedron Constructors and Setting Functions, Truncated Octahedron Net, Truncated Octahedron Data Members, Truncated Octahedron @subsubsection Constructors and Setting Functions @deftypefn {Default constructor} void Trunc_Octahedron (@code{void}) @@ -677,7 +719,9 @@ shifted such that @code{center} comes to lie at @var{p}. @end deftypefn -@node Trunc_Octahedron Net, , Trunc_Octahedron Data Members, Truncated Octahedron (Trunc_Octahedron) + +@comment node-name, next, previous, up +@node Truncated Octahedron Net, , Truncated Octahedron Constructors and Setting Functions, Truncated Octahedron @subsubsection Net @deftypefn {Static function} {vector} get_net ({const real} @var{hexagon_diameter}, [bool @var{do_half} = @code{false}]) @@ -690,8 +734,8 @@ have enclosing circles of diameter @var{hexagon_diameter}. If the argument @var{do_half} is @code{true}, only the first half of the net will be created. This will be used in the non-default constructor. -@xref{Trunc_Octahedron Constructors and Setting Functions,, -Polyhedron Reference; Regular Platonic Polyhedra; Trunc_Octahedron; -Constructors and Setting Functions}. +@xref{Truncated Octahedron Constructors and Setting Functions,, +Polyhedron Reference; Regular Platonic Polyhedra; +Truncated Octahedron Constructors and Setting Functions}. @end deftypefn diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/rcpcurve.texi 3DLDF-1.1.4/DOC/TEXINFO/rcpcurve.texi --- 3DLDF-1.1.3/DOC/TEXINFO/rcpcurve.texi 2003-11-28 15:21:05.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/rcpcurve.texi 2003-12-09 20:03:06.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: rcpcurve.texi,v 1.1 2003/11/28 14:21:05 lfinsto1 Exp $ - +@c $Id: rcpcurve.texi,v 1.4 2003/12/09 19:03:06 lfinsto1 Exp $ + @node Regular Closed Plane Curve Reference, Ellipse Reference, Rectangle Reference, Top @chapter Regular Closed Plane Curve Reference -@tindex{Reg_Cl_Plane_Curve} +@tindex Reg_Cl_Plane_Curve Class @code{Reg_Cl_Plane_Curve} is defined in @file{curves.web}. It is derived from @code{Path} using @code{public} derivation. @@ -18,7 +18,7 @@ ``@code{Regular_Closed_Plane_Curve}'' because the longer name causes too many ``Overfull boxes''@c @c -@footnote{If you +@footnote{If you don't know what ``overfull boxes'' are, don't worry about it. It has to do with @TeX{}'s line and page breaking algorithms. If you want to know more, see Knuth, Donald E., @cite{The @TeX{}book}.} @@ -37,9 +37,7 @@ Ellipses and circles are ``regular'' in the sense that they have axes of symmetry. There must be an equation for a @code{Reg_Cl_Plane_Curve}, such as -@tex -$x^2 + y^2 = r^2$ -@end tex +@math{x^2 + y^2 = r^2} for a circle. A derived class should have a @code{solve()} function that uses this equation. @code{Reg_Cl_Plane_Curve::intersection_points()} in turn uses @@ -165,24 +163,23 @@ @deftypefn {@code{const} function} bool_point_pair intersection_points (Point @var{ref_pt}, Point @var{p0}, Point @var{p1}) @deftypefnx {@code{const} function} bool_point_pair intersection_points ({const Point&} @var{ref_pt}, {const Path&} @var{p}) @c -@tex The version of this function taking @code{Point} arguments finds the intersection points, if any, of the @code{Reg_Cl_Plane_Curve} and the line -$p$ +@math{p} that passes through the @code{Points} -$p_0$ +@math{p_0} and -$p_1$. +@math{p_1}. In the other version, the @code{Path} argument must be a linear @code{Path}, and its first and last @code{Points} are passed to the first version of this function as @var{p0} and @var{p1}, respectively. Let -$C$ +@math{C} be the @code{Reg_Cl_Plane_Curve}. -$C$ and $p$ can intersect at at most two intersection points -$i_1$ and $i_2$. +@math{C} and @math{p} can intersect at at most two intersection points +@math{i_1} and @math{i_2}. Let @code{bpp} be the return value of this function. The intersection points need not be on the @emph{line segment} @@ -191,27 +188,24 @@ to the first intersection point if it exists, or @code{INVALID_POINT} if it doesn't. If the first intersection point exists and is on the line segment between @code{pt0} and @code{pt1} -@end tex -@tex -In @NEXTFIG{}, the line $\overrightarrow{AB}$ is normal to the -@code{Ellipse} $e$, or, to put it another way, $\overrightarrow{AB}$ is -perpendicular to the plane of $e$. The intersection point $i_0$ lies -within the perimeter of $e$. +In @NEXTFIG{}, the line @OVERRTARROW{AB} is normal to the +@code{Ellipse} @math{e}, or, to put it another way, @OVERRTARROW{AB} is +perpendicular to the plane of @math{e}. The intersection point @math{i_0} lies +within the perimeter of @math{e}. -The line $\overrightarrow{DE}$ is skew to the plane of $e$, and -intersects $e$ at $i_1$, on the perimeter of $e$. -@end tex +The line @OVERRTARROW{DE} is skew to the plane of @math{e}, and +intersects @math{e} at @math{i_1}, on the perimeter of @math{e}. @example @group Point p0(2, 2, 3); Ellipse e(p0, 3, 4, 30, -60, -5.2); -Point p1 = mediate(p0, e.get_point(11), .5); +Point p1 = p0.mediate(e.get_point(11), .5); Point A = e.get_normal(); A *= 2.5; A.shift(p1); -Point B = mediate(A, p1, 2); +Point B = A.mediate(p1, 2); bool_point_pair bpp = e.intersection_points(A, B); Point C(0, 2, 0); Point D(0, -3.5, 0); @@ -221,6 +215,8 @@ @end group @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -229,12 +225,12 @@ \immediate\write\examples{p0.label("$e$", "");} \immediate\write\examples{Ellipse e(p0, 3, 4, 30, -60, -5.2);} \immediate\write\examples{e.draw();} -\immediate\write\examples{Point p1 = mediate(p0, e.get_point(11), .5);} +\immediate\write\examples{Point p1 = p0.mediate(e.get_point(11), .5);} \immediate\write\examples{Point A = e.get_normal();} \immediate\write\examples{A *= 2.5;} \immediate\write\examples{A.shift(p1);} \immediate\write\examples{A.dotlabel("$A$"); } -\immediate\write\examples{Point B = mediate(A, p1, 2);} +\immediate\write\examples{Point B = A.mediate(p1, 2);} \immediate\write\examples{B.dotlabel("$B$", "bot");} \immediate\write\examples{A.draw(B, black, "evenly");} \immediate\write\examples{bool_point_pair bpp = e.intersection_points(A, B);} @@ -253,29 +249,31 @@ \fi \PEX @end tex +@end iftex +@c -@tex -In @NEXTFIG{}, $q$ and $e$ are coplanar. In this case, -only the intersections of $q$ with the perimeter of $e$ are returned by +In @NEXTFIG{}, @math{q} and @math{e} are coplanar. In this case, +only the intersections of @math{q} with the perimeter of @math{e} are returned by @code{intersection_points()}. -@end tex @example @group -A = mediate(p0, e.get_point(3), 1.5); -B = mediate(p0, e.get_point(11), 1.5); +A = p0.mediate(e.get_point(3), 1.5); +B = p0.mediate(e.get_point(11), 1.5); Path q(A, B); bpp = e.intersection_points(q); @end group @end example +@c +@iftex @tex \ifmakeexamples \BEX \immediate\write\examples{e.draw();} \immediate\write\examples{p0.label("$e$");} -\immediate\write\examples{A = mediate(p0, e.get_point(3), 1.5);} -\immediate\write\examples{B = mediate(p0, e.get_point(11), 1.5);} +\immediate\write\examples{A = p0.mediate(e.get_point(3), 1.5);} +\immediate\write\examples{B = p0.mediate(e.get_point(11), 1.5);} \immediate\write\examples{Path q(A, B);} \immediate\write\examples{q.get_point(0).dotlabel("$q_0$", "rt"); } \immediate\write\examples{q.get_point(1).dotlabel("$q_1$", "lft"); } @@ -289,6 +287,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @@ -298,9 +298,8 @@ @deftypefn {@code{const} function} Path segment ({unsigned int} @var{factor}, [real @var{angle} = 0, [bool @var{closed} = @code{true}]]) Returns a @code{Path} representing a segment of the @code{Reg_Cl_Plane_Curve}. -@tex @var{factor} must be -$>1$ and $<=$ @code{number_of_points}. If it is not, an error message is +@math{>1} and @math{<=} @code{number_of_points}. If it is not, an error message is issued and an empty @code{Path} is returned. If @var{angle} is non-zero, the segment @code{Path} is rotated by @@ -309,13 +308,12 @@ Please note, that a @code{Reg_Cl_Plane_Curve} must have a meaningful @code{center}, in order for rotation to work. If the absolute value of -@var{angle} $>360$, a warning is issued, and +@var{angle} @math{>360}, a warning is issued, and @code{fmod(@var{angle}, 360)} is used. If @var{closed} is @code{true}, the @code{Path} will be a cycle, with the ends of the curved segment joined using the connector @samp{--}. -The curved segment is joined to the line using @samp{@&} on each side. -@end tex +The curved segment is joined to the line using @samp{&} on each side. @example Circle c(origin, 4, 30, 30, 30); @@ -332,6 +330,8 @@ (-0.00662541, -0.888379, -1.79185) & cycle; @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -349,6 +349,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @deftypefn {@code{const} inline function} Path half ([real @var{angle} = 0, [bool @var{closed} = true]]) @@ -362,6 +364,8 @@ Path p = e.half(0, false); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -379,6 +383,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @@ -393,6 +399,8 @@ Path p = e.quarter(180, false); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -404,12 +412,14 @@ \immediate\write\examples{Path p = e.quarter(180, false);} \immediate\write\examples{p.get_point(p.get_size() / 2).label("$p$", "llft");} \immediate\write\examples{p.draw(black, "", "pencircle scaled .75mm");} -\OEX{} +\OEX{} \EGRP \EEX 1 \fi \PEX @end tex +@end iftex +@c @end deftypefn diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/rectang.texi 3DLDF-1.1.4/DOC/TEXINFO/rectang.texi --- 3DLDF-1.1.3/DOC/TEXINFO/rectang.texi 2003-11-28 15:21:08.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/rectang.texi 2003-12-09 20:50:51.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: rectang.texi,v 1.1 2003/11/28 14:21:08 lfinsto1 Exp $ - -@node Rectangle Reference, Regular Closed Plane Curve Reference, Polygon Reference, Top +@c $Id: rectang.texi,v 1.4 2003/12/09 19:50:51 lfinsto1 Exp $ + +@node Rectangle Reference, Regular Closed Plane Curve Reference, Regular Polygon Reference, Top @chapter Rectangle Reference -@tindex{Rectangle} +@tindex Rectangle Class @code{Rectangle} is defined in @file{rectangs.web}, and is derived from @code{Polygon}, using public derivation. @@ -67,14 +67,10 @@ @deftypefn {Constructor} void Rectangle ({const Point&} @var{ccenter}, {const real} @var{aaxis_h}, {const real} @var{aaxis_v}, [{const real} @var{angle_x} = 0, [{const real} @var{angle_y} = 0, [{const real} @var{angle_z} = 0]]]) Creates a @code{Rectangle} in the x-z plane, centered at the origin, with width @equiv{} @var{aaxis_h} -@tex -(in the $\pm x$ direction), -@end tex +(in the @PLUSMINUS{x} direction), and height @equiv{} @var{aaxis_v} -@tex (in the -$\pm z$ direction). -@end tex +@PLUSMINUS{z} direction). If one or more of the arguments @var{angle_x}, @var{angle_y}, or @var{angle_z} are used, it is rotated by those amounts around the appropriate axes. @@ -86,6 +82,8 @@ Rectangle r(C, 3, 4, 30, 30, 30); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -102,6 +100,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @@ -178,6 +178,14 @@ recalculated, when a @code{Rectangle} is transformed. I plan to do something about this soon. @end deftypefn + +@deftypefn {@code{const} function} bool is_rectangular (void) +Returns @code{true}, if the @code{Rectangle} is rectangular, otherwise +@code{false}. Transformations, such as shearing, can cause +@code{Rectangles} to become non-rectangular. +@c +@c !! TO DO: Add example and illustration. +@end deftypefn @node Ellipses for Rectangles, , Querying Rectangles, Rectangle Reference @section Ellipses @@ -193,6 +201,8 @@ r.unfilldraw(black); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -210,6 +220,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @@ -225,6 +237,8 @@ e.unfilldraw(black); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -242,6 +256,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @deftypefn {@code{const} function} Ellipse draw_out_ellipse ([{const Color&} ddraw_color = @code{*Colors::default_color}, [string ddashed = "", [string ppen = "", [Picture& picture = @code{current_picture}]]]]) diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/regpolyg.texi 3DLDF-1.1.4/DOC/TEXINFO/regpolyg.texi --- 3DLDF-1.1.3/DOC/TEXINFO/regpolyg.texi 1970-01-01 01:00:00.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/regpolyg.texi 2003-12-09 20:03:32.000000000 +0100 @@ -0,0 +1,339 @@ +@c regpolyg.texi + +@c This file is part of the 3DLDF User and Reference Manual. +@c Copyright (C) 2003 Laurence D. Finston +@c See the section "GNU Free Documentation License" in the file +@c fdl.texi for copying conditions. + +@c $Id: regpolyg.texi,v 1.4 2003/12/09 19:03:31 lfinsto1 Exp $ + + +@node Regular Polygon Reference, Rectangle Reference, Polygon Reference, Top +@chapter Regular Polygon Reference + +@tindex Reg_Polygon +Class @code{Reg_Polygon} is defined in @file{polygons.web}, and +is derived from @code{Polygon}, using public derivation. + +As noted above in @ref{Affine Transformations for Polygons,, +Polygon Reference; Affine Transformations}, @code{class Reg_Polygon}, +like @code{class Rectangle}, +currently inherits its transformation functions and +@code{operator*=(const Transform&)} from @code{Polygon}. Consequently, +the data members of a @code{Reg_Polygon}, except for @code{center}, are +not recalculated when it's transformed. I plan to change this soon! It +will also be necessary to add the function +@code{Reg_Polygon::is_reg_polygonal()}, in order to test whether a +@code{Reg_Polygon} is still regular and polygonal. + + +@menu +* Regular Polygon Data Members:: +* Regular Polygon Constructors and Setting Functions:: +* Regular Polygon Operators:: +* Querying Regular Polygons:: +* Circles for Regular Polygons:: +@end menu + +@node Regular Polygon Data Members, Regular Polygon Constructors and Setting Functions, Regular Polygon Reference, Regular Polygon Reference +@section Data Members + +@deftypevr {Private variable} real internal_angle +The angle at the center of the @code{Reg_Polygon} of the triangle formed +by the center and two adjacent corners. +If @math{n} is the number of sides of a @code{Reg_Polygon}, +@code{internal_angle} will be @math{360.0/n}, so @code{internal_angle} +will be 120 for a regular triangle, 90 for a square, 72 for a pentagon, +etc. +@c !! Make figure. +@end deftypevr + +@deftypevr {Private variable} real radius +The radius of the surrounding circle for a @code{Reg_Polygon} (@i{Umkreis}). +@end deftypevr + +@deftypevr {Private variable} unsigned short sides +The number of sides of a @code{Reg_Polygon}. +@end deftypevr + +@deftypevr {Private variable} bool on_free_store +@code{true}, if the @code{Reg_Polygon} was dynamically allocated on the +free store, otherwise @code{false}. Dynamic allocation of +@code{Reg_Polygons} should only be +performed by @code{create_new_reg_polygon()}, which sets +@code{on_free_store} to @code{true}. +@end deftypevr + +@node Regular Polygon Constructors and Setting Functions, Regular Polygon Operators, Regular Polygon Data Members, Regular Polygon Reference +@section Constructors and Setting Functions + +@deftypefn {Default constructor} void Reg_Polygon (void) +Creates an empty @code{Reg_Polygon}. +@end deftypefn + +@deftypefn {Constructor} void Reg_Polygon ({const Point&} @var{ccenter}, {const unsigned short} @var{ssides}, {const real} @var{ddiameter}, [{const real} @var{angle_x} = 0, [{const real} @var{angle_y} = 0, [{const real} @var{angle_z} = 0]]]) +@c +Creates a @code{Reg_Polygon} in the x-z plane, centered at the origin, +with the number of sides specified by @var{ssides} and with +@math{@code{radius} = @var{ddiameter} / 2}. + +The @code{Reg_Polygon} is rotated +about the x, y, and z-axes in that order by the angles given by +@var{angle_x}, @var{angle_y}, and @var{angle_z}, respectively, if any +one of them is non-zero. Finally, the +@code{Reg_Polygon} is shifted such that its center is located at +@var{ccenter}. + +@example +Reg_Polygon r(origin, 3, 2.75, 10, 15, 12.5); +r.draw(); +@end example + +@c +@iftex +@tex +\ifmakeexamples +\BEX +\BGRP +\immediate\write\examples{default_focus.set(-5, 10, -10, -5, 10, 10, 10);} +\immediate\write\examples{Reg_Polygon r(origin, 3, 2.75, 10, 15, 12.5);} +\immediate\write\examples{r.draw();} +\immediate\write\examples{draw_axes(gray, 0, "d", "d", "rt");} +\OEX{} +\EGRP +\EEX 1 +\fi +\PEX +@end tex +@end iftex +@c + +@end deftypefn + +@deftypefn {Setting function} void set ({const Point&} @var{ccenter}, {const unsigned short} @var{ssides}, {const real} @var{ddiameter}, [{const real} @var{angle_x} = 0, [{const real} @var{angle_y} = 0, [{const real} @var{angle_z} = 0]]]) +@c +Corresponds to the constructor above. + +A @code{Reg_Polygon} can theoretically have any number of sides, however +I haven't tested it for unreasonably large values. The following +example demonstrates that @code{set()} can be used to change a +@code{Reg_Polygon}. + +@example +Reg_Polygon r; +real j = .5; +for (int i = 3; i <= 16; ++i) + @OCB + r.set(origin, i, j); + r.draw(); + j += .5; + @CCB +@end example + +@c +@iftex +@tex +\ifmakeexamples +\BEX +\BGRP +\immediate\write\examples{Reg_Polygon r;} +\immediate\write\examples{real j = .5;} +\immediate\write\examples{for (int i = 3; i <= 16; ++i)} +\immediate\write\examples{ @OCB} +\immediate\write\examples{ r.set(origin, i, j);} +\immediate\write\examples{ r.draw();} +\immediate\write\examples{ j += .5;} +\immediate\write\examples{ @CCB} +\OEX{Projections::PARALLEL_X_Z} +\EGRP +\EEX 1 +\fi +\PEX +@end tex +@end iftex +@c +@end deftypefn + + +@deftypefn {Static function} {Reg_Polygon*} create_new_reg_polygon ([const Reg_Polygon* @var{r} = 0]) +@deftypefnx {Static function} {Reg_Polygon*} create_new_reg_polygon (const Reg_Polygon& @var{r}) +Pseudo-constructors for dynamic allocation. +In the first version, @var{r} is an optional pointer argument. If +@var{r} is non-zero, the new @code{Reg_Polygon} will be a copy of +@var{*r}. Otherwise, it will be empty. + +In the second version, +@var{r} is a required reference argument, and the new @code{Reg_Polygon} +will be a copy of @var{r}. +@end deftypefn + +@node Regular Polygon Operators, Querying Regular Polygons, Regular Polygon Constructors and Setting Functions, Regular Polygon Reference +@section Operators + +@deftypefn {Operator} {const Reg_Polygon&} operator= ({const Reg_Polygon&} @var{p}) +Makes the @code{Reg_Polygon} a copy of @var{p}. +@end deftypefn + + + +@node Querying Regular Polygons, Circles for Regular Polygons, Regular Polygon Operators, Regular Polygon Reference +@section Querying + +@deftypefn {@code{const} inline function} real get_radius (void) +Returns @code{radius}. +@end deftypefn + + +@node Circles for Regular Polygons, , Querying Regular Polygons, Regular Polygon Reference +@section Circles + +@deftypefn {@code{const} function} Circle in_circle (void) +Returns the enclosed @code{Circle} of the @code{Reg_Polygon}. + +@example +Point P(0, -1, 1); +Reg_Polygon h(P, 6, 4, 15, 12, 11.5); +h.filldraw(black, gray); +Circle c = h.in_circle(); +c.unfilldraw(black); +@end example + +@c +@iftex +@tex +\ifmakeexamples +\BEX +\BGRP +\immediate\write\examples{default_focus.set(3, 5, -5, 3, 0, 1, 10);} +\immediate\write\examples{Point P(0, -1, 1);} +\immediate\write\examples{Reg_Polygon h(P, 6, 4, 15, 12, 11.5);} +\immediate\write\examples{h.filldraw(black, gray);} +\immediate\write\examples{h.get_point(4).mediate(h.get_point(5)).label("$h$", "urt");} +\immediate\write\examples{Circle c = h.in_circle();} +\immediate\write\examples{c.unfilldraw(black);} +\immediate\write\examples{P.label("$c$");} +\immediate\write\examples{draw_axes(gray, 0, "d", "d", "top");} +\OEX{} +\EGRP +\EEX 1 +\fi +\PEX +@end tex +@end iftex +@c + +@end deftypefn + +@deftypefn {@code{const} function} Circle draw_in_circle ([{const Color&} @var{ddraw_color} = @code{*Colors::default_color}, [{const string} @var{ddashed} = "", [const string] @var{ppen} = "", [Picture& @var{picture} = @code{current_picture}]]]) +@c +@deftypefnx {@code{const} function} Circle draw_in_circle ([Picture& @var{picture} = @code{current_picture}, [{const Color&} @var{ddraw_color} = @code{*Colors::default_color}, [{const string} @var{ddashed} = "", [const string] @var{ppen} = ""]]]) +Draws and returns the enclosed @code{Circle} of the @code{Reg_Polygon}. + +@example +Point P(0, 1, 1); +Reg_Polygon h(P, 7, 4, 80, 2, 5); +h.draw(black, "evenly"); +h.draw_in_circle(); +@end example + +@c +@iftex +@tex +\ifmakeexamples +\BEX +\BGRP +\immediate\write\examples{default_focus.set(2, 3, -10, 2, 3, 10, 10);} +\immediate\write\examples{Point P(0, 1, 1);} +\immediate\write\examples{Reg_Polygon h(P, 7, 4, 80, 2, 5);} +\immediate\write\examples{h.draw(black, "evenly");} +\immediate\write\examples{h.get_point(0).label("$h$");} +\immediate\write\examples{h.draw_in_circle();} +\immediate\write\examples{P.label("$c$", "");} +\immediate\write\examples{draw_axes(gray, 0, "d", "d", "top");} +\OEX{} +\EGRP +\EEX 1 +\fi +\PEX +@end tex +@end iftex +@c + + +@end deftypefn + +@deftypefn {@code{const} function} Circle out_circle (void) +Returns the surrounding @code{Circle} of the @code{Reg_Polygon}. + +@example +Point P(0, -1, 1); +Reg_Polygon h(P, 6, 4, 15, 12, 11.5); +Circle c = h.out_circle(); +c.filldraw(black, gray); +h.unfilldraw(black); +@end example + +@c +@iftex +@tex +\ifmakeexamples +\BEX +\BGRP +\immediate\write\examples{default_focus.set(3, 5, -5, 3, 0, 1, 10);} +\immediate\write\examples{Point P(0, -1, 1);} +\immediate\write\examples{Reg_Polygon h(P, 6, 4, 15, 12, 11.5);} +\immediate\write\examples{Circle c = h.out_circle();} +\immediate\write\examples{c.filldraw(black, gray);} +\immediate\write\examples{h.unfilldraw(black);} +\immediate\write\examples{P.label("$h$");} +\immediate\write\examples{c.get_point(7).label("$c$");} +\immediate\write\examples{draw_axes(gray, 0, "d", "d", "top");} +\OEX{} +\EGRP +\EEX 1 +\fi +\PEX +@end tex +@end iftex +@c + +@end deftypefn + +@deftypefn {@code{const} function} Circle draw_out_circle ([{const Color&} @var{ddraw_color} = @code{*Colors::default_color}, [{const string} @var{ddashed} = "", [const string] @var{ppen} = "", [Picture& @var{picture} = @code{current_picture}]]]) +@c +@deftypefnx {@code{const} function} Circle draw_out_circle ([Picture& @var{picture} = @code{current_picture}, [{const Color&} @var{ddraw_color} = @code{*Colors::default_color}, [{const string} @var{ddashed} = "", [const string] @var{ppen} = ""]]]) +Draws and returns the surrounding @code{Circle} of the @code{Reg_Polygon}. + +@example +Point P(0, 1, 1); +Reg_Polygon h(P, 7, 4, 80, 2, 5); +h.draw(black, "evenly"); +h.draw_out_circle(); +@end example + +@c +@iftex +@tex +\ifmakeexamples +\BEX +\BGRP +\immediate\write\examples{default_focus.set(2, 3, -10, 2, 3, 10, 10);} +\immediate\write\examples{Point P(0, 1, 1);} +\immediate\write\examples{Reg_Polygon h(P, 7, 4, 80, 2, 5);} +\immediate\write\examples{h.draw(black, "evenly");} +\immediate\write\examples{Circle c = h.draw_out_circle();} +\immediate\write\examples{c.get_point(0).label("$c$");} +\immediate\write\examples{P.label("$h$", "");} +\immediate\write\examples{draw_axes(gray, 0, "d", "d", "top");} +\OEX{} +\EGRP +\EEX 1 +\fi +\PEX +@end tex +@end iftex +@c + +@end deftypefn + + diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/shape.texi 3DLDF-1.1.4/DOC/TEXINFO/shape.texi --- 3DLDF-1.1.3/DOC/TEXINFO/shape.texi 2003-11-28 15:21:10.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/shape.texi 2003-12-03 21:13:35.000000000 +0100 @@ -5,12 +5,13 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: shape.texi,v 1.1 2003/11/28 14:21:10 lfinsto1 Exp $ +@c $Id: shape.texi,v 1.2 2003/12/03 20:13:35 lfinsto1 Exp $ + @node Shape Reference, Transform Reference, Input and Output, Top @chapter Shape Reference -@tindex{Shape} +@tindex Shape Class @code{Shape} is defined in @file{shapes.web}. @code{Shape} is an @dfn{abstract class}, which means that @@ -25,7 +26,7 @@ to handle objects of different types in the same way. This is especially important in the @code{Picture} functions, where objects of various types (but all derived from @code{Shape}) are accessed through -pointers to @code{Shape}. @xref{Picture Reference} +pointers to @code{Shape}. @xref{Picture Reference}. @menu * Shape Data Members:: diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/solfaced.texi 3DLDF-1.1.4/DOC/TEXINFO/solfaced.texi --- 3DLDF-1.1.3/DOC/TEXINFO/solfaced.texi 2003-11-28 15:21:13.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/solfaced.texi 2003-12-03 21:13:49.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: solfaced.texi,v 1.1 2003/11/28 14:21:13 lfinsto1 Exp $ - +@c $Id: solfaced.texi,v 1.2 2003/12/03 20:13:49 lfinsto1 Exp $ + @node Faced Solid Reference, Cuboid Reference, Solid Reference, Top @chapter Faced Solid Reference -@tindex{Solid_Faced} +@tindex Solid_Faced Class @code{Solid_Faced} is defined in @file{solfaced.web}. It is derived from @code{Solid} using public derivation. diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/solid.texi 3DLDF-1.1.4/DOC/TEXINFO/solid.texi --- 3DLDF-1.1.3/DOC/TEXINFO/solid.texi 2003-11-28 15:21:14.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/solid.texi 2003-12-09 17:56:01.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: solid.texi,v 1.1 2003/11/28 14:21:14 lfinsto1 Exp $ - +@c $Id: solid.texi,v 1.3 2003/12/09 16:56:00 lfinsto1 Exp $ + @node Solid Reference, Faced Solid Reference, Pattern Reference, Top @chapter Solid Reference -@tindex{Solid} +@tindex Solid Class @code{Solid} is defined in @file{solids.web}. It's derived from @code{Shape} using public derivation. It is intended to be used as a base class for @@ -112,7 +112,14 @@ @deftypefn {@code{virtual} Destructor} void {~Solid} (@code{void}) This function currently has an empty definition, but its existence prevents GCC 3.3 from issuing the following warning: -``@thinspace{}`class Solid' has virtual functions but non-virtual destructor''. +``@c +@iftex +@tex +\thinspace +@end tex +@end iftex +@c +`class Solid' has virtual functions but non-virtual destructor''. @end deftypefn @node Solid Operators, Copying Solids, Solid Destructor, Solid Reference @@ -208,6 +215,8 @@ C.dotlabel("C"); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -223,6 +232,8 @@ \fi \PEX @end tex +@end iftex +@c @c !! NOTE. LDF 2003.08.15. Note that this function will have to be changed, if new vectors of @@ -247,6 +258,8 @@ c.get_rectangle_center(i).label(i, ""); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -261,6 +274,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @@ -277,7 +292,7 @@ Copies one of the objects belonging to the @code{Solid}, and returns a pointer to @code{Shape} that points to the copy. The object is found by dereferencing one of the pointers on one of the -vectors of pointers belonging to the code{Solid}. +vectors of pointers belonging to the @code{Solid}. Currently, these vectors are @code{circles}, @code{ellipses}, @code{paths}, @code{rectangles}, and @code{reg_polygons}. The argument @@ -303,6 +318,8 @@ t->fill(gray); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -318,6 +335,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn @deftypefn {@code{const} virtual functions} {const Reg_Polygon*} get_circle_ptr ({const unsigned short} @var{s}) @@ -346,6 +365,8 @@ A.fill(gray); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -363,6 +384,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefn diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/transfor.texi 3DLDF-1.1.4/DOC/TEXINFO/transfor.texi --- 3DLDF-1.1.3/DOC/TEXINFO/transfor.texi 2003-11-28 15:21:25.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/transfor.texi 2003-12-09 18:34:01.000000000 +0100 @@ -5,12 +5,12 @@ @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: transfor.texi,v 1.1 2003/11/28 14:21:24 lfinsto1 Exp $ - +@c $Id: transfor.texi,v 1.3 2003/12/09 17:34:01 lfinsto1 Exp $ + @node Transform Reference, Label Reference, Shape Reference, Top @chapter Transform Reference -@tindex{Transform} +@tindex Transform Class @code{Transform} is defined in @file{transfor.web}. @code{Point} is a @code{friend} of @code{Transform}. @@ -34,13 +34,10 @@ @section Data Members @deftypevr {Private variable} Matrix matrix -@tex -$4\times 4$ -@end tex +A @BYM{4,4} matrix of @code{real} representing the actual transformation matrix. @end deftypevr - @node Transform Global Variables and Constants, Transform Constructors , Transform Data Members, Transform Reference @section Global Variables and Constants @@ -61,12 +58,26 @@ Homogeneous coordinates and @code{Transforms} are unchanged by multiplication with @code{IDENTITY_TRANSFORM}. @code{matrix} is an identity matrix: +@c +@iftex @tex $$\pmatrix{1&0&0&0\cr 0&1&0&0\cr 0&0&1&0\cr 0&0&0&1\cr}$$ @end tex +@end iftex +@c +@ifnottex +@display +1 0 0 0 +0 1 0 0 +0 0 1 0 +0 0 0 1 +@end display +@end ifnottex +@c +@c @xref{Transforms}. @end deftypevr @@ -108,10 +119,17 @@ the scalar @var{r}. The return value is @code{r}. This makes it possible to chain invocations of this function: +@c +@iftex @tex For $a_x, b_x, c_x, \ldots, p_x \in {\REAL}$, $x \in {\NATURAL}$ @end tex +@end iftex +@ifnottex +For @math{a_x}, @math{b_x}, @math{c_x}, @dots{}, @math{p_x} in @REAL{}, +@math{x} in @NATURAL{} +@end ifnottex @example Transform T0(a_0, b_0, c_0, d_0, @@ -129,11 +147,15 @@ real r = 5; @end example -@tex -Let $M_0$, $M_1$, and $M_2$ stand for +@c + + +Let @math{M_0}, @math{M_1}, and @math{M_2} stand for @code{T0.matrix}, @code{T1.matrix}, and @code{T2.matrix} respectively: +@iftex +@tex \bigskip \line{\hss $M_0 =\pmatrix{a_0&b_0&c_0&d_0\cr @@ -151,14 +173,41 @@ m_2&m_2&o_2&p_2\cr}$\hfil} \bigskip @end tex +@end iftex +@c +@ifnottex +@display +@math{M_0 = +a_0 b_0 c_0 d_0 +e_0 f_0 g_0 h_0 +i_0 j_0 k_0 l_0 +m_0 m_0 o_0 p_0} + +@math{M_1 = +a_1 b_1 c_1 d_1 +e_1 f_1 g_1 h_1 +i_1 j_1 k_1 l_1 +m_1 m_1 o_1 p_1} + +@math{M_2 = +a_2 b_2 c_2 d_2 +e_2 f_2 g_2 h_2 +i_2 j_2 k_2 l_2 +m_2 m_2 o_2 p_2} +@c +@end display +@end ifnottex @example T0 *= T1 *= T2 *= r; @end example +Now,@* +@c +@iftex @tex \bigskip -Now,\newline + \setbox0=\hbox{$ M_0 =\pmatrix{5a_0&5b_0&5c_0&5d_0\cr 5e_0&5f_0&5g_0&5h_0\cr 5i_0&5j_0&5k_0&5l_0\cr @@ -177,6 +226,31 @@ 5m_2&5m_2&5o_2&5p_2\cr}$\hfil} \bigskip @end tex +@end iftex +@c +@ifnottex +@display +@math{M_0 = +5a_0 5b_0 5c_0 5d_0 +5e_0 5f_0 5g_0 5h_0 +5i_0 5j_0 5k_0 5l_0 +5m_0 5m_0 5o_0 5p_0} + +@math{M_1 = +5a_1 5b_1 5c_1 5d_1 +5e_1 5f_1 5g_1 5h_1 +5i_1 5j_1 5k_1 5l_1 +5m_1 5m_1 5o_1 5p_1} + +@math{M_2 = +5a_2 5b_2 5c_2 5d_2 +5e_2 5f_2 5g_2 5h_2 +5i_2 5j_2 5k_2 5l_2 +5m_2 5m_2 5o_2 5p_2} +@c +@end display +@end ifnottex + This function is not currently used anywhere, but it may turn out to be useful for something. @@ -185,17 +259,23 @@ @deftypefn {@code{const} operator} Transform operator* ({const real} @var{r}) Multiplication of a @code{Transform} by a scalar without assignment. The return value is a @code{Transform} -@tex -$A$. -@end tex +@math{A}. If @code{this.matrix} has elements +@math{E_T}, then @code{A.matrix} has elements @math{E_A} such that +@c +@iftex @tex -$E_T$, then @code{A.matrix} has elements $E_A$ such that -$E_A = r\times E_T$ for all $E$. +$E_A = r \times E_T$ @end tex +@end iftex +@ifnottex +@math{E_A =} @TMS{r,E_T} +@end ifnottex +@c +for all @math{E}. +@c @end deftypefn - @deftypefn Operator Transform operator*= ({const Transform&} @var{t}) Performs matrix multiplication on @code{matrix} and @@ -214,10 +294,12 @@ d.scale(3, 4, 5); @end example -@tex -Let $a_m$, $b_m$, and $c_m$ stand for +Let @math{a_m}, @math{b_m}, and @math{c_m} stand for @code{a.matrix}, @code{b.matrix}, @code{c.matrix}, and @code{d.matrix} respectively: +@c +@iftex +@tex \bigskip \line{\hss$a_m =\pmatrix{ 1& 0& 0& 0\cr 0& 1& 0& 0\cr @@ -232,18 +314,50 @@ 10& 1& 15& 0\cr 11& 13& 1& 0\cr 0& 0& 0& 1\cr}$\hfil - $d_m\pmatrix{3& 0& 0& 0\cr + $d_m =\pmatrix{3& 0& 0& 0\cr 0& 4& 0& 0\cr 0& 0& 5& 0\cr 0& 0& 0& 1\cr}$\hss} \bigskip @end tex +@end iftex +@ifnottex +@display +@math{a_m = +1 0 0 0 +0 1 0 0 +0 0 1 0 +1 1 1 1} + +@math{b_m = + 0.5 0.5 0.707 0 + 0.146 0.854 -0.5 0 +-0.854 0.146 0.5 0 + 0 0 0 1} + +@math{c_m = + 1 12 14 0 +10 1 15 0 +11 13 1 0 + 0 0 0 1} + +@math{d_m = +3 0 0 0 +0 4 0 0 +0 0 5 0 +0 0 0 1} +@c +@end display +@end ifnottex +@c @code{a *= b *= c *= d;}@* @code{a}, @code{b}, and @code{c} are transformed by @code{d}, which remains unchanged. -@tex -\bigskip + +@noindent Now, +@iftex +@tex \bigskip \line {\hss$a_m =\pmatrix{3& 0& 0& 0\cr 0& 4& 0& 0\cr @@ -259,8 +373,34 @@ 33& 52& 5& 0\cr 0& 0& 0& 1\cr}$\hfil} \bigskip -$d_m$ is unchanged. @end tex +@end iftex +@ifnottex +@display +@math{a_m = +3 0 0 0 +0 4 0 0 +0 0 5 0 +3 4 5 1} + +@math{b_m = + 1.5 2 3.54 0 +-0.439 3.41 -2.5 0 +-2.56 0.586 2.5 0 + 0 0 0 1} + +@math{c_m = + 3 48 70 0 +30 4 75 0 +33 52 5 0 + 0 0 0 1} +@end display +@end ifnottex +@c +@math{d_m} is unchanged. + + +@c @end deftypefn @deftypefn {@code{const} operator} Transform operator* ({const Transform} @var{t}) @@ -417,12 +557,25 @@ @code{t0}, @code{t1}, and @code{t2} are all multiplied by the @code{Transform} with +@c +@iftex @tex $$@code{matrix}=\pmatrix{2& 0&0&0\cr 0&3.5&0&0\cr 0& 0&9&0\cr 0& 0&0&1\cr}$$ @end tex +@end iftex +@ifnottex +@display +@code{matrix} @math{= +2 0 0 0 +0 3.5 0 0 +0 0 9 0 +0 0 0 1} +@end display +@end ifnottex +@c representing the scaling operation, @emph{not} @code{t3}, which may represent a combination of transformations. @@ -438,6 +591,8 @@ @code{Transform t;} @code{t.scale(@var{x}, @var{y}, @var{z});} @end example +@c +@iftex @tex %% KLUDGE!! This gets the arrow lined up correctly, but only so long as %% the format doesn't change!. LDF 2003.07.06. @@ -448,6 +603,20 @@ 0&0&0&1\cr}$ \bigskip @end tex +@end iftex +@ifnottex +@display +@result{} @code{t.matrix} @math{= +x 0 0 0 +0 y 0 0 +0 0 z 0 +0 0 0 1} +@c +@end display +@end ifnottex +@c + +@c @example Transform t; @@ -461,7 +630,7 @@ @end example @end deftypefun -@deftypefun Transform shear(real @var{xy}, [real @var{xz} = 0, [real @var{yx} = 0, [real @var{yz} = 0, [real @var{zx} = 0, [real @var{zy} = 0]]]]]) +@deftypefun Transform shear (real @var{xy}, [real @var{xz} = 0, [real @var{yx} = 0, [real @var{yz} = 0, [real @var{zx} = 0, [real @var{zy} = 0]]]]]) Creates a @code{Transform t} representing the shearing operation locally, multiplies @code{*this} by @code{t}, and returns @code{t}. @@ -477,11 +646,21 @@ p *= t; @end example @display +@c +@iftex @tex \vskip-2\baselineskip -@result{} $p = ((x + ay + bz), (y + cx + dz), (z + ex + fy))$ +@end tex +@end iftex +@c +@result{} @math{p = ((x + ay + bz), (y + cx + dz), (z + ex + fy))} +@c +@iftex +@tex \bigskip @end tex +@end iftex +@c @end display @example @@ -520,12 +699,17 @@ p *= t; @end example @display +@c +@iftex @tex \vskip-2\baselineskip -@result{} $p = (x + a, y + b, z + c)$ @end tex +@end iftex +@c +@result{} @math{p = (x + a, y + b, z + c)} +@c @end display - +@c @end deftypefun @@ -553,6 +737,8 @@ Transform t; t.shift(1, 2, 3); @end example +@c +@iftex @tex \smallskip %% KLUDGE!! This gets the arrow lined up correctly, but only so long as @@ -564,10 +750,24 @@ 1&2&3&1@cr}$ \bigskip @end tex +@end iftex +@c +@ifnottex +@display +@result{} @code{t.matrix} @math{= +1 0 0 0 +0 1 0 0 +0 0 1 0 +1 2 3 1} +@end display +@end ifnottex +@c @example t.shift_times(2, 2, 2); @end example +@c +@iftex @tex \smallskip %% KLUDGE!! This gets the arrow lined up correctly, but only so long as @@ -579,6 +779,18 @@ 2&4&6&1@cr}$ \bigskip @end tex +@end iftex +@c +@ifnottex +@display +@result{} @code{t.matrix} @math{= +1 0 0 0 +0 1 0 0 +0 0 1 0 +2 4 6 1} +@end display +@end ifnottex +@c @example Rectangle r[4]; @@ -599,6 +811,8 @@ r[3].draw(); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -633,6 +847,8 @@ \fi \PEX @end tex +@end iftex +@c @example Cuboid c(origin, 1, 1, 1); @@ -656,6 +872,8 @@ c.draw(); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -686,6 +904,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefun @deftypefun Transform rotate (real @var{x}, [real @var{y} = 0, [real @var{z} = 0]]) @@ -773,6 +993,8 @@ @print{} n: (0, 1, 0) @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -800,6 +1022,8 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefun diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/typeglb.texi 3DLDF-1.1.4/DOC/TEXINFO/typeglb.texi --- 3DLDF-1.1.3/DOC/TEXINFO/typeglb.texi 2003-11-28 15:21:28.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/typeglb.texi 2003-12-09 18:35:04.000000000 +0100 @@ -1,13 +1,14 @@ @c typeglb.texi - + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: typeglb.texi,v 1.1 2003/11/28 14:21:28 lfinsto1 Exp $ +@c $Id: typeglb.texi,v 1.3 2003/12/09 17:35:04 lfinsto1 Exp $ -@node Typedefs and Utility Structures, Color Reference, Installing and Running 3DLDF, Top +@comment node-name, next, previous, up +@node Typedefs and Utility Structures, Global Constants and Variables, Installing and Running 3DLDF, Top @chapter Typedefs and Utility Structures 3DLDF defines a number of data types for various reasons, e.g., for the @@ -50,10 +51,8 @@ @end deftypefn @deftp typedef Matrix -@tex -A @code{Matrix} is a $4 \times 4$ array of @code{real}, e.g., -@code{Matrix M;} $\equiv$ @code{real M[4][4]}. -@end tex +A @code{Matrix} is a @BYM{4,4} array of @code{real}, e.g., +@code{Matrix M;} @equiv{} @code{real M[4][4]}. It is used in @code{class Transform} for storing transformation matrices. @xref{Transforms}, and @xref{Transform Reference}, for more information. @@ -73,103 +72,4 @@ @end deftp -@node Global Constants and Variables, , Typedefs and Utility Structures -@chapter Global Constants and Variables - -The global constants and variables described in this chapter are -found in @file{pspglb.web}. Others, of types -defined in 3DLDF, are described in subsequent chapters. - -@deftypevr {Constant} real PI -@tex -The value of @code{PI} ($\Pi$) is calculated as $4.0 \times -\arctan(1.0)$. I believe that a preprocessor macro ``@code{PI}'' was -available when I compiled 3DLDF using the DEC @cpp{} compiler, and that -it wasn't, when I used GNU CC under Linux, but I'm no longer sure. -@end tex -@end deftypevr - -@deftypevar {valarray } null_coordinates -Contains four elements, all 0. Used for resetting the sets of -coordinates belonging to @code{Points}, but only when the DEC @cpp{} -compiler is used. This doesn't work when GCC is used. -@end deftypevar - -@deftypevr Constant real INVALID_REAL -Actually, @code{INVALID_REAL} is the largest possible @code{real} value -(i.e., @code{float} or @code{double}) on a given machine. -So, from the point of view of the compiler, it's not invalid at all. -However, 3DLDF uses it to indicate failure of some kind. For example, -the return value of a function returning @code{real} can be compared -with @code{INVALID_REAL} to check whether the function succeeded or -failed. - -An alternative approach would be to use the exception handling -facilities of @cpp{}. I do use these, but only in a couple of places, -so far. -@end deftypevr - -@deftypevr Constant real_pair INVALID_REAL_PAIR -@code{first} and @code{second} are both @code{INVALID_REAL}. -@end deftypevr - -@deftypevr Constant real INVALID_REAL_SHORT -@code{first} is @code{INVALID_REAL} and @code{second} is 0. -@end deftypevr - -@deftypevr Constant real MAX_REAL -The largest @code{real} value permitted in 3DLDF. Theoretically, it -should be the second largest @code{real} value (i.e., @code{float} or -@code{double}) on a given machine. However, it's tricky to find this, -because of the way floating point numbers are represented in a -computer. There may be an obvious way of finding it, but I don't know -it. -@tex -Let $R$ stand for the largest @code{real} value on a given machine. -@end tex -@c -@cindex{kludge} -@c -@tex -Currently, @code{MAX_REAL} is defined to be $R - .00000003 * R$. -Obviously, this is a kludge, but it hasn't caused any problems, yet. -@end tex -@end deftypevr - - -@deftypevr Constant real MAX_REAL_SQRT -The square root of @code{MAX_REAL}. Used in @code{Point::magnitude()} -(@pxref{Vector Operations}). The magnitude of a @code{Point} is found -by using the formula -@tex -$\sqrt{x^2 + y^2 + z^2}$. $x$, $y$, and $z$ are all tested against -@code{MAX_REAL_SQRT} to ensure that $x^2$, $y^2$, and $z^2$ will all be -less than or equal to @code{MAX_REAL} before trying to calculate them. -@end tex - -@c !! TO DO. -Metafont implements an operation called @dfn{Pythagorean addition}, -notated as ``@code{++}''which -can be used to calculate distances without first squaring and then -taking square roots:@c -@c -@c !! GET REF., Metafont the program. -@footnote{Knuth, Donald E. @cite{The Metafontbook}, p.@: 66.} -@c -@tex -$a++b\equiv \sqrt{a^2 + b^2}$ -and $a++b++c\equiv \sqrt{a^2 + b^2 + c^2}$. -This makes it possible to calculate distances for greater values of -$a$, $b$, and $c$, that would otherwise cause floating point errors. -Metafont also implements the inverse operation -@dfn{Pythagorean subtraction}, notated as ``@code{+-+}'': -$a+-+b\equiv \sqrt{a^2 - b^2}$. -@end tex -Unfortunately, 3DLDF implements neither Pythagorean addition -nor subtraction as yet, but it's on my -@c -@cindex{TO DO} -@c -list of ``things to do''. -@end deftypevr diff -Naur 3DLDF-1.1.3/DOC/TEXINFO/utility.texi 3DLDF-1.1.4/DOC/TEXINFO/utility.texi --- 3DLDF-1.1.3/DOC/TEXINFO/utility.texi 2003-11-28 15:21:30.000000000 +0100 +++ 3DLDF-1.1.4/DOC/TEXINFO/utility.texi 2003-12-09 18:41:57.000000000 +0100 @@ -1,11 +1,11 @@ @c utility.texi - + @c This file is part of the 3DLDF User and Reference Manual. @c Copyright (C) 2003 Laurence D. Finston @c See the section "GNU Free Documentation License" in the file @c fdl.texi for copying conditions. -@c $Id: utility.texi,v 1.1 2003/11/28 14:21:30 lfinsto1 Exp $ +@c $Id: utility.texi,v 1.4 2003/12/09 17:41:57 lfinsto1 Exp $ @node Utility Functions, Adding a File, Polyhedron Reference, Top @chapter Utility Functions @@ -17,7 +17,7 @@ @code{trunc()} is not available. Therefore, I've had to write one. @c @c !! TO DO: -@cindex{kludge} +@cindex kludge @c This is a kludge! Someday, I'll have to try to find a better solution to this problem. @@ -25,22 +25,29 @@ @deftypefun {pair} solve_quadratic (real @var{a}, real @var{b}, real @var{c}) Defined in @file{pspglb.web}. -@tex -This function tries to find the solutions $S_0$ and $S_1$ to the +This function tries to find the solutions @math{S_0} and @math{S_1} to the quadratic equation -$ax^2 + bx + c$ according to the formulae -$S_0 \equiv (-b + \sqrt{b^2 - 4ac}) / 2a$ and -$S_1 \equiv (-b - \sqrt{b^2 - 4ac}) / 2a$. -Let @code{r} stand for the return value. If $S_0$ cannot be found, -@code{r.first} will be @code{INVALID_REAL}, otherwise $S_0$. -If $S_1$ cannot be found, -@code{r.second} will be @code{INVALID_REAL}, otherwise $S_1$. -@end tex - - +@math{ax^2 + bx + c} according to the formulae +@iftex @tex -$$(x + 4)(x + 2) = x^2 + 6x + 8 = 0$$ +$S_0 \equiv (-b + \sqrt{\strut b^2 - 4ac}) / 2a$ and +$S_1 \equiv (-b - \sqrt{\strut b^2 - 4ac}) / 2a$. @end tex +@end iftex +@c +@ifnottex +@math{S_0 @equiv{} -b + sqrt(b^2 - 4ac) / 2a)} and +@math{S_1 @equiv{} -b - sqrt( b^2 - 4ac) / 2a}. +@end ifnottex +@c +Let @code{r} stand for the return value. If @math{S_0} cannot be found, +@code{r.first} will be @code{INVALID_REAL}, otherwise @math{S_0}. +If @math{S_1} cannot be found, +@code{r.second} will be @code{INVALID_REAL}, otherwise @math{S_1}. + +@display +@math{(x + 4)(x + 2) = x^2 + 6x + 8 = 0} +@end display @example real_pair r = solve_quadratic(1, 6, 8); @@ -48,7 +55,12 @@ @result{} r.second @equiv{} -4 @end example -@bigskip +@iftex +@tex +\bigskip +@end tex +@end iftex +@c @example real_pair r = solve_quadratic(1, -2, 4); @result{} r.first @equiv{} INVALID_REAL @@ -122,6 +134,8 @@ persp_0(3, 2, 10, 5, 47.5, 7, 5, 8.5, 9.5, 8.5, 9.5); @end example +@c +@iftex @tex \ifmakeexamples \BEX @@ -132,4 +146,6 @@ \fi \PEX @end tex +@end iftex +@c @end deftypefun diff -Naur 3DLDF-1.1.3/INSTALL 3DLDF-1.1.4/INSTALL --- 3DLDF-1.1.3/INSTALL 2003-12-01 20:46:49.000000000 +0100 +++ 3DLDF-1.1.4/INSTALL 2003-12-09 21:18:58.000000000 +0100 @@ -3,6 +3,8 @@ This file is part of 3DLDF, a package for three-dimensional drawing. Copyright (C) 2003 Laurence D. Finston. +$Id: INSTALL,v 1.5 2003/12/09 20:18:58 lfinsto1 Exp $ + 3DLDF is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or @@ -47,26 +49,24 @@ s246794@stud.uni-goettingen.de -$Id: INSTALL,v 1.3 2003/12/01 19:46:49 lfinsto1 Exp $ - -To install 3DLDF, decompress 3DLDF-1.1.3.tar.gz using gzip, or a +To install 3DLDF, decompress 3DLDF-1.1.4.tar.gz using gzip, or a compatible program, e.g., -`gunzip 3DLDF-1.1.3.tar.gz'. -Then, expand 3DLDF-1.1.3.tar using the tar command, typically: -`tar xvpf 3DLDF-1.1.3.tar' +`gunzip 3DLDF-1.1.4.tar.gz'. +Then, expand 3DLDF-1.1.4.tar using the tar command, typically: +`tar xvpf 3DLDF-1.1.4.tar' The exact syntax of the tar command may differ, depending on what system you're using. -3DLDF unpacks into the directory /3DLDF-1.1.3/. +3DLDF unpacks into the directory /3DLDF-1.1.4/. -Change your working directory to /3DLDF-1.1.3/ and run -`configure --prefix=/3DLDF-1.1.3/' -to generate the Makefiles. There is one each in /3DLDF-1.1.3/, -/3DLDF-1.1.3/CWEB, /3DLDF-1.1.3/DOC, and /3DLDF-1.1.3/DOC/TEXINFO. +Change your working directory to /3DLDF-1.1.4/ and run +`configure --prefix=/3DLDF-1.1.4/' +to generate the Makefiles. There is one each in /3DLDF-1.1.4/, +/3DLDF-1.1.4/CWEB, /3DLDF-1.1.4/DOC, and /3DLDF-1.1.4/DOC/TEXINFO. `' must be the absolute path of the directory where you -want to put the /3DLDF-1.1.3/ subdirectory. For example, if you want +want to put the /3DLDF-1.1.4/ subdirectory. For example, if you want to put 3DLDF into /usr/local/mydirectory/, enter - `configure --prefix=/usr/local/mydirectory/3DLDF-1.1.3/' + `configure --prefix=/usr/local/mydirectory/3DLDF-1.1.4/' Since 3DLDF currently does not have an input routine, the executable 3dldf will need to be regenerated each time the user code changes. @@ -76,11 +76,11 @@ `configure' can be called with a different `prefix' argument, or the default (/usr/local/bin/) can be used. -Change the working directory to /3DLDF-1.1.3/ and +Change the working directory to /3DLDF-1.1.4/ and call `make install' from the command line of a shell. This creates the executable file `3dldf'. For information on running 3dldf, see the README file in this directory, and the _3DLDF User and Reference Manual_, which is included in this -distribution as the PostScript file /3DLDF-1.1.3/DOC/TEXINFO/3DLDF.ps. +distribution as the PostScript file /3DLDF-1.1.4/DOC/TEXINFO/3DLDF.ps. diff -Naur 3DLDF-1.1.3/Makefile.am 3DLDF-1.1.4/Makefile.am --- 3DLDF-1.1.3/Makefile.am 2003-12-01 22:02:31.000000000 +0100 +++ 3DLDF-1.1.4/Makefile.am 2003-12-09 21:09:25.000000000 +0100 @@ -1,6 +1,8 @@ ## 3DLDF-/Makefile.am # Created by Laurence Finston. +# $Id: Makefile.am,v 1.7 2003/12/09 20:09:24 lfinsto1 Exp $ + # This file is part of 3DLDF, a package for three-dimensional drawing. # Copyright (C) 2003 Laurence D. Finston. @@ -29,7 +31,6 @@ # s246794@stud.uni-goettingen.de -# $Id: Makefile.am,v 1.5 2003/12/01 20:42:08 lfinsto1 Exp $ CWEBDIR := CWEB DOCDIR := DOC @@ -57,20 +58,6 @@ $(MAKE) dummy -C $(CWEBDIR) $(MAKE) dummy -C $(DOCDIR) - -.PHONY: info -info: - @echo "info in 3DLDF-/Makefile.am." - $(MAKE) info -C $(CWEBDIR) - $(MAKE) info -C $(DOCDIR) - -.PHONY: info-recursive -info-recursive: - @echo "info-recursive in 3DLDF-/Makefile.am." - $(MAKE) info-recursive -C $(CWEBDIR) - $(MAKE) info-recursive -C $(DOCDIR) - - .PHONY : 3dldf 3dldf : $(MAKE) 3dldf -C $(CWEBDIR) @@ -106,16 +93,6 @@ $(MAKE) TAGS -C $(CWEBDIR) $(MAKE) TAGS -C $(DOCDIR) - - - - - - - - - - - - - +## Local Variables: +## mode:Makefile +## End: diff -Naur 3DLDF-1.1.3/Makefile.in 3DLDF-1.1.4/Makefile.in --- 3DLDF-1.1.3/Makefile.in 2003-12-01 22:05:14.000000000 +0100 +++ 3DLDF-1.1.4/Makefile.in 2003-12-10 18:42:51.000000000 +0100 @@ -16,6 +16,8 @@ # Created by Laurence Finston. +# $Id: Makefile.am,v 1.7 2003/12/09 20:09:24 lfinsto1 Exp $ + # This file is part of 3DLDF, a package for three-dimensional drawing. # Copyright (C) 2003 Laurence D. Finston. @@ -43,8 +45,6 @@ # lfinsto1@gwdg.de # s246794@stud.uni-goettingen.de -# $Id: Makefile.am,v 1.5 2003/12/01 20:42:08 lfinsto1 Exp $ - srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ @@ -516,18 +516,6 @@ $(MAKE) dummy -C $(CWEBDIR) $(MAKE) dummy -C $(DOCDIR) -.PHONY: info -info: - @echo "info in 3DLDF-/Makefile.am." - $(MAKE) info -C $(CWEBDIR) - $(MAKE) info -C $(DOCDIR) - -.PHONY: info-recursive -info-recursive: - @echo "info-recursive in 3DLDF-/Makefile.am." - $(MAKE) info-recursive -C $(CWEBDIR) - $(MAKE) info-recursive -C $(DOCDIR) - .PHONY : 3dldf 3dldf : $(MAKE) 3dldf -C $(CWEBDIR) diff -Naur 3DLDF-1.1.3/NEWS 3DLDF-1.1.4/NEWS --- 3DLDF-1.1.3/NEWS 2003-12-01 20:45:21.000000000 +0100 +++ 3DLDF-1.1.4/NEWS 2003-12-10 18:19:43.000000000 +0100 @@ -29,8 +29,23 @@ -$Id: NEWS,v 1.3 2003/12/01 19:45:21 lfinsto1 Exp $ +$Id: NEWS,v 1.4 2003/12/10 17:19:42 lfinsto1 Exp $ +Version 1.1.4 +* MAX_REAL is now the second largest float value. However, the + calculation is system dependent, and will only work on 32-bit + little-endian architectures. I will start working on porting this + soon. + +* Fixed bug in tsthdweb, that caused files to be compiled more often + than necessary. It will be necessary to keep an eye on this. + +* Added |Rectangle::is_rectangular()|. + +* Made |mediate()| a member function of |Point|. + +* It is now possible to generate the Texinfo manual in the Info and HTML + formats. Version 1.1.3 * Bug fixes to /3DLDF-1.1.3/CWEB/Makefile.am and /3DLDF-1.1.3/CWEB/tsthdweb. diff -Naur 3DLDF-1.1.3/README 3DLDF-1.1.4/README --- 3DLDF-1.1.3/README 2003-12-01 21:58:10.000000000 +0100 +++ 3DLDF-1.1.4/README 2003-12-10 18:32:29.000000000 +0100 @@ -1,5 +1,5 @@ README - + This file is part of 3DLDF, a package for three-dimensional drawing. Copyright (C) 2003 Laurence D. Finston. @@ -27,8 +27,10 @@ and is published under the GNU General Public License. See the website http://www.gnu.org for more information. + + 3DLDF is available for downloading from -http://www.gnu.org/3DLDF. +http://ftp.gnu.org/gnu/3dldf It is also available from http://www.dante.de/software/ctan/, the Dante www-server and from http://wwwuser.gwgd.de/~lfinsto1, @@ -41,6 +43,15 @@ announcements to users. To subscribe to these mailing lists, send an email with ``subscribe '' as the subject. + +The official 3DLDF website will be +http://www.gnu.org/software/3dldf. This site may not yet be +available. +I hope it will be soon. See also the author's website, +http://wwwuser.gwdg.de/~lfinsto1, which will contain news about 3DLDF, +and a section ``Errata and +Addenda'', which may be helpful, if a user has problems. + The author can be contacted at: Laurence D. Finston @@ -52,48 +63,61 @@ s246794@stud.uni-goettingen.de -$Id: README,v 1.4 2003/12/01 20:32:29 lfinsto1 Exp lfinsto1 $ +$Id: README,v 1.7 2003/12/10 17:00:37 lfinsto1 Exp lfinsto1 $ 3DLDF is a package for three-dimensional drawing with MetaPost output. It currently does not possess an input routine, so that user code must be written in C++, compiled, and linked with the rest of the program. This file, and the _User and Reference Manual_ -(/3DLDF-1.1.3/DOC/TEXINFO/3DLDF.ps) contain instructions on how to do +(/3DLDF-1.1.4/DOC/TEXINFO/3DLDF.ps) contain instructions on how to do this. 3DLDF is intended, among other things, to provide a fairly convenient way of making 3D drawings that can be included in TeX documents. -3DLDF is available for downloading from -http://ftp.gnu.org/gnu/3DLDF. -The official 3DLDF website is -http://www.gnu.org/software/3DLDF. - See the file INSTALL for instructions on installing 3DLDF. - -Please send bug reports to bug-3DLDF@gnu.org. +Please send bug reports to bug-3DLDF@gnu.org. (Not yet available!) The mailing list help-3DLDF@gnu.org is available for people to ask -other users for help. +other users for help. (Not yet available!) The mailing list info-3DLDF@gnu.org is for sending announcements to -users. To subscribe to these mailing lists, send an email with -`subscribe ' as the subject. +users. (Not yet available!) +To subscribe to these mailing lists (once they are available), send an +email with `subscribe ' as the subject. + is optional; if it's +missing, I will use the `Reply-To' address of the email you sent. + +Until they are made available, please contact the author at: +lfinsto1@gwdg.de + +If you send a mail with `subscribe 3DLDF ' to me, I +will put you on my 3DLDF mailing list, and subscribe you to +info-3DLDF@gnu.org, when it becomes available. is +optional, as above. -The files /3DLDF-1.1.3/CWEB/3DLDFprg.ps and -/3DLDF-1.1.3/DOC/TEXINFO/3DLDF.ps contain respectively the documents + +Documentation + +The files /3DLDF-1.1.4/CWEB/3DLDFprg.ps and +/3DLDF-1.1.4/DOC/TEXINFO/3DLDF.ps contain respectively the documents _3DLDF: The Program_ and the _3DLDF User and Reference Manual_ in PostScript format. In addition, -/3DLDF-1.1.3/CWEB/3DLDFprg.dvi contains _3DLDF: The Program_ in DVI +/3DLDF-1.1.4/CWEB/3DLDFprg.dvi contains _3DLDF: The Program_ in DVI format. If you need to regenerate the documentation for some reason, type `make ps' at the -command line from the directory /3DLDF-1.1.3/. +command line from the directory /3DLDF-1.1.4/. Please note, that if you decide to run cweave on 3DLDFprg.web by hand, be sure to use the version of the file cwebmacs.tex -in /3DLDF-1.1.3/CWEB/, since I've made a number of additions and changes +in /3DLDF-1.1.4/CWEB/, since I've made a number of additions and changes to the original. Ordinarily, it will be used automatically, so most users won't need to worry about this. +The file 3DLDF.info contains the _User and Reference Manual_ in +Info format. It's generated by `make install'. It can also be +generated by `make info'. To make an HTML version, call +`makeinfo --html 3DLDF.texi'. + I apologize for the number of typos and other errors in the documentation. I hope they don't detract from their usefulness. I would have liked to have proofread and corrected them again before @@ -103,34 +127,102 @@ http://www.gnu.org/software/3DLDF Once 3DLDF is installed, put the code for your drawings in -/3DLDF-1.1.3/main.web, and call `make run' from the command -line in the directory /3DLDF-1.1.3/ to run 3dldf (the executable +/3DLDF-1.1.4/main.web, and call `make run' from the command +line in the directory /3DLDF-1.1.4/ to run 3dldf (the executable program), MetaPost, TeX, and dvips, to generate a PostScript file containing your drawings. -As a convenience, /3DLDF-1.1.3/ and /3DLDF-1.1.3/CWEB/ both contain an +As a convenience, /3DLDF-1.1.4/ and /3DLDF-1.1.4/CWEB/ both contain an identical shell script called `ldfr', which simply calls 'make run', so that 3DLDF can be used conveniently from either directory. + +make Targets + To get rid of the files that 3DLDF generates, without deleting any important ones, call `make purge'. -If you call `make all', it will work, but make may exit with an -error, because there will be too many errors when it tries to generate -a `3DLDF.info' file. -This is because the Texinfo file 3DLDF.texi currently can't be -used to generate an Info file, only a PostScript file (the _3DLDF User -and Reference Manual_). However, it will generate a `3DLDF.info' file -despite the errors, so `make all' will work the next time it's -called. The same thing may happen if you call `make dist'. I say -"may", because I tested it again on November 27, 2003, and neither -`make all' nor `make dist' failed. I suspect they fail after any of -the Texinfo sources have been changed. - For further information, see the _3DLDF User and -Reference Manual_ (/3DLDF-1.1.3/DOC/TEXINFO/3DLDF.ps). +Reference Manual_ (/3DLDF-1.1.4/DOC/TEXINFO/3DLDF.ps). + +Users should avoid the use of the following extensions in +/3DLDF-1.1.4/CWEB/: .hbk, .tim, and .tmw. +Each CWEB file has corresponding files with the same name and +these extensions. They are used for controlling retangling, +recompilation, and relinking. + + +System dependencies: + +In 3DLDF 1.1.4, the constant float MAX_REAL is now really the second +largest float value, but only on 32-bit little-endian architectures. +On big-endian and 64-bit little-endian architectures, this will fail, +and 3dldf will exit with an error message. +I plan to fix this so it will work on other architectures soon. If +you have this problem, and can't fix it yourself, please contact me. + +Information on building: + +If only TeX text, comments, or whitespace in the CWEB file are +changed, then no recompilation or relinking takes place, and the CWEB +file isn't retangled the next time `make 3dldf' is called. +Unfortunately, whitespace in literal strings that are part of the C++ +code are also ignored, contrary to what I wrote in +3DLDF-1.1.4/CWEB/ChangeLog. It's not likely that this will cause any +problems in actual use, though. + +If only the C++ code has changed, the .cxx file is recompiled, and 3dldf is +relinked. + +If the header file has changed, all of the C++ files that depend on it are +recompiled, and 3dldf is relinked. + +Previously, a ``timer'' file was used for keeping track of whether +.h had changed. Now, a second ``timer'' is used for keeping +track of whether .cxx has changed. (Insert pun about +``two-timing'' here, when I've thought of one.) + +The procedure seems to work when multiple files are changed in various +ways. However, one unpleasant consequence is that the CWEB file must +be touched to give it an earlier timestamp in the case that neither +the C++ file nor the header file +has changed (but only in this case!). This means that the file has +changed on disk, so that +the buffer must be reverted, if the user is currently working on it, +which is likely. This shell script prints a message to this effect to +standard output. This is annoying, but I haven't thought of a way +around this problem. It's a consequence of using the timestamps of +files to decide whether they need to be reprocessed. The best solution +may be to return to using an auxilliary program for controlling +recompilation. However, this will mean maintaining two different +methods of rebuilding, because Automake requires valid build rules. + +If you're using Emacs, you can set a key to revert the buffer without +querying by putting the following sexp (s-expression, but I've +forgotten what ``s'' stands for) into your .emacs file: +(global-set-key [f5] '(lambda () (interactive) (revert-buffer t t))) + +Or, if you're using, for example, foo mode, you can put the following +sexp into your foo-mode-hook declaration: +(local-set-key foo-mode-map [f5] '(lambda () (interactive) + (revert-buffer t t))) +For example, +(setq lisp-mode-hook + '(lambda () + (local-set-key [f5] '(lambda () (interactive) + (revert-buffer t t))) +) + +Or, if you've defined a foo mode yourself, you can put the key +assignment into foo-mode-map: +(if foo-mode-map () + (setq foo-mode-map (nconc (make-sparse-keymap) c-mode-map)) + (define-key foo-mode-map [f5] '(lambda () (interactive) + (revert-buffer t t)))) + +Information about Changes For information about changes to 3DLDF, see ChangeLog, ./CWEB/ChangeLog, ./DOC/ChangeLog, ./DOC/TEXINFO/ChangeLog, @@ -150,3 +242,6 @@ +%% Local Variables: +%% mode:TeX +%% End: diff -Naur 3DLDF-1.1.3/configure 3DLDF-1.1.4/configure --- 3DLDF-1.1.3/configure 2003-12-01 21:51:17.000000000 +0100 +++ 3DLDF-1.1.4/configure 2003-12-10 18:42:52.000000000 +0100 @@ -1537,7 +1537,7 @@ # Define the identity of the package. PACKAGE=3DLDF - VERSION=1.1.3 + VERSION=1.1.4 # Some tools Automake needs. @@ -1655,9 +1655,12 @@ + ac_config_headers="$ac_config_headers CWEB/config.h" + + # Checks for programs. ac_ext=cc ac_cpp='$CXXCPP $CPPFLAGS' @@ -5833,6 +5836,213 @@ fi +# Checks for endianness. +echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5 +echo $ECHO_N "checking whether byte ordering is bigendian... $ECHO_C" >&6 +if test "${ac_cv_c_bigendian+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + # See if sys/param.h defines the BYTE_ORDER macro. +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN + bogus endian macros +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + # It does; now see whether it defined to BIG_ENDIAN or not. +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_bigendian=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_c_bigendian=no +fi +rm -f conftest.$ac_objext conftest.$ac_ext +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +# It does not; compile a test program. +if test "$cross_compiling" = yes; then + # try to guess the endianness by grepping values into an object file + ac_cv_c_bigendian=unknown + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +short ascii_mm[] = { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; +short ascii_ii[] = { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; +void _ascii () { char *s = (char *) ascii_mm; s = (char *) ascii_ii; } +short ebcdic_ii[] = { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; +short ebcdic_mm[] = { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; +void _ebcdic () { char *s = (char *) ebcdic_mm; s = (char *) ebcdic_ii; } +int +main () +{ + _ascii (); _ebcdic (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + if grep BIGenDianSyS conftest.$ac_objext >/dev/null ; then + ac_cv_c_bigendian=yes +fi +if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi +fi +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +fi +rm -f conftest.$ac_objext conftest.$ac_ext +else + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +int +main () +{ + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long l; + char c[sizeof (long)]; + } u; + u.l = 1; + exit (u.c[sizeof (long) - 1] == 1); +} +_ACEOF +rm -f conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_bigendian=no +else + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_c_bigendian=yes +fi +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi +fi +rm -f conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5 +echo "${ECHO_T}$ac_cv_c_bigendian" >&6 +case $ac_cv_c_bigendian in + yes) + +cat >>confdefs.h <<\_ACEOF +#define WORDS_BIGENDIAN 1 +_ACEOF + ;; + no) + ;; + *) + { { echo "$as_me:$LINENO: error: unknown endianness +presetting ac_cv_c_bigendian=no (or yes) will help" >&5 +echo "$as_me: error: unknown endianness +presetting ac_cv_c_bigendian=no (or yes) will help" >&2;} + { (exit 1); exit 1; }; } ;; +esac + + + bindir=CWEB diff -Naur 3DLDF-1.1.3/configure.ac 3DLDF-1.1.4/configure.ac --- 3DLDF-1.1.3/configure.ac 2003-12-01 20:48:22.000000000 +0100 +++ 3DLDF-1.1.4/configure.ac 2003-12-09 21:12:59.000000000 +0100 @@ -1,6 +1,8 @@ # configure.ac. # Created by Laurence Finston 2003.11.11. +# $Id: configure.ac,v 1.5 2003/12/09 20:12:58 lfinsto1 Exp $ + # This file is part of 3DLDF, a package for three-dimensional drawing. # Copyright (C) 2003 Laurence D. Finston. @@ -29,14 +31,17 @@ # s246794@stud.uni-goettingen.de -# $Id: configure.ac,v 1.3 2003/12/01 19:48:22 lfinsto1 Exp $ - .# Process this file with autoconf to produce a configure script. + + AC_INIT(CWEB/main.web) -AM_INIT_AUTOMAKE(3DLDF, 1.1.3, lfinsto1@gwdg.de) +AM_INIT_AUTOMAKE(3DLDF, 1.1.4, lfinsto1@gwdg.de) + AC_CONFIG_SRCDIR([CWEB/main.web]) AM_CONFIG_HEADER(CWEB/config.h) + + # Checks for programs. AC_PROG_CXX AC_PROG_CC @@ -64,6 +69,10 @@ DOC/TEXINFO/Makefile ]) AC_OUTPUT +# Checks for endianness. +AC_C_BIGENDIAN + + bindir=CWEB