From 2e671375976fdfce02d0ae5064d75880fcbca634 Mon Sep 17 00:00:00 2001 From: TempleOS-bot Date: Tue, 31 Jan 2017 13:27:27 -0500 Subject: [PATCH] Nightly update (ISO SHA-1 5cd765c) --- TempleOSCD/0000Boot/0000Kernel.BIN.C | Bin 192080 -> 192080 bytes TempleOSCD/Adam/ADefine.HC | 2 +- TempleOSCD/Compiler/Compiler.BIN | Bin 192920 -> 192920 bytes TempleOSCD/Demo/AcctExample/Registry.HC | 2 +- TempleOSCD/Demo/Graphics/LightTable.HC | 77 ++++++++++++------------ TempleOSCD/Doc/ChgLog.DD | 2 +- 6 files changed, 43 insertions(+), 40 deletions(-) diff --git a/TempleOSCD/0000Boot/0000Kernel.BIN.C b/TempleOSCD/0000Boot/0000Kernel.BIN.C index 0f2b755bd95b061a4c84efee78363901bd893611..5434fa4d41ea896d71dba9d302d3d65068ac3453 100644 GIT binary patch delta 257 zcmca`hx@`E?g=LB501aycg2=_^Fo%3%$s>wUdA!9ZvK`Os>~w7C(Afpp@30*b6Q(2 zBgP*TQ&yX-*Wt@DOB13-V)FSm!Obf=k{MxAjFy{Yy6pX!|NsBL zdEO09W=4U{D{epGVPas|-1nlHkx_QD(5qPyjP2XkIx)`YXY`rw8^l=8*uMR25F@`h zWBc~InT*eb8Kt)$sb$w{hmSdXF#&~vnwkp#<6ULj{v!a;99T`_|Z<@_?E(ieL C4`SK? delta 260 zcmca`hx@`E?g=LB66Hc$uh?>LUdVEhc{2~o%Q(j5&EJwjm01k7NPX=j~ZhOyZ7=$G11lW;z!H E0Nc1*XaE2J diff --git a/TempleOSCD/Adam/ADefine.HC b/TempleOSCD/Adam/ADefine.HC index 7f0e4b6..fe4c606 100644 --- a/TempleOSCD/Adam/ADefine.HC +++ b/TempleOSCD/Adam/ADefine.HC @@ -18,7 +18,7 @@ U0 LoadDocDefines() //$LK,"DD_BOOT_HIGH_LOC_DVD",A="FF:::/Adam/Opt/Boot/BootDVD.HC,DD_BOOT_HIGH_LOC_DVD"$ $TR-C,"LineRep"$ -$ID,4$DefinePrint("DD_TEMPLEOS_LOC","120,545"); +$ID,4$DefinePrint("DD_TEMPLEOS_LOC","120,548"); DefinePrint("DD_TEMPLEOS_LOC_OFFICIAL","82,014"); $ID,-4$ DefinePrint("DD_MP_VECT","%08X",MP_VECT_ADDR); diff --git a/TempleOSCD/Compiler/Compiler.BIN b/TempleOSCD/Compiler/Compiler.BIN index d311658229bd2027e3323709d1ec9c9a99326fa2..4d57ae65e149cfbdaacdc892e81ce2aabdde12a9 100644 GIT binary patch delta 140 zcmbR7n0v-!?hOTsObiU0ixi(7VpQB5`D8KUbjAiIk<9|nfPmRnNOST)xFqRmwhHA<(GE6R< zBfNc&4`Tu&laS7KIX}jF7A6LU?el{ewL2IUwx7PmsAv.x,tmpp->v.y),è; + F64 step,x,y,é=Arg(tmpp->v.x,tmpp->v.y),è; I64 c; D3Copy(&tmpp->p_snell_inhibit,&tmpp->p); @@ -155,43 +155,47 @@ U0 FindNormal(Photon *tmpp) D3Div(&tmpp->p,&p,bmp_scale); //Draw an arc one direction, finding point of contact. - for (è=0;è<=ã/4;è+=0.125*ã/bmp_norm_radius) { - x=p.x+bmp_norm_radius*Cos(é+ã-ã/4-è); - y=p.y+bmp_norm_radius*Sin(é+ã-ã/4-è); - c=BmpPeek(x,y); - if (c!=BLACK) - break; - x=p.x+bmp_norm_radius*Cos(é+ã-ã/4+è); - y=p.y+bmp_norm_radius*Sin(é+ã-ã/4+è); - c=BmpPeek(x,y); - if (c!=BLACK) - break; - } + for (step=1.0;step>=0.01;step/=4) + for (è=0;è<=ã/4;è+=step*ã/bmp_norm_radius) { + x=p.x+bmp_norm_radius*Cos(é+ã-ã/4-è); + y=p.y+bmp_norm_radius*Sin(é+ã-ã/4-è); + c=BmpPeek(x,y); + if (c!=BLACK) + goto fn_p1; + x=p.x+bmp_norm_radius*Cos(é+ã-ã/4+è); + y=p.y+bmp_norm_radius*Sin(é+ã-ã/4+è); + c=BmpPeek(x,y); + if (c!=BLACK) + goto fn_p1; + } +fn_p1: if (c==WHITE) D3Equ(&p1,x,y); else D3Copy(&p1,&tmpp->p); //Draw an arc other direction, finding point of contact. - for (è=0;è<=ã/4;è+=0.125*ã/bmp_norm_radius) { - x=p.x+bmp_norm_radius*Cos(é+ã+ã/4-è); - y=p.y+bmp_norm_radius*Sin(é+ã+ã/4-è); - c=BmpPeek(x,y); - if (c!=BLACK) - break; - x=p.x+bmp_norm_radius*Cos(é+ã+ã/4+è); - y=p.y+bmp_norm_radius*Sin(é+ã+ã/4+è); - c=BmpPeek(x,y); - if (c!=BLACK) - break; - } + for (step=1.0;step>=0.01;step/=4) + for (è=0;è<=ã/4;è+=step*ã/bmp_norm_radius) { + x=p.x+bmp_norm_radius*Cos(é+ã+ã/4+è); + y=p.y+bmp_norm_radius*Sin(é+ã+ã/4+è); + c=BmpPeek(x,y); + if (c!=BLACK) + goto fn_p2; + x=p.x+bmp_norm_radius*Cos(é+ã+ã/4-è); + y=p.y+bmp_norm_radius*Sin(é+ã+ã/4-è); + c=BmpPeek(x,y); + if (c!=BLACK) + goto fn_p2; + } +fn_p2: if (c==WHITE) D3Equ(&p2,x,y); else D3Copy(&p2,&tmpp->p); D3Sub(&p,&p1,&p2); - if (D3NormSqr(&p)<1.0) { + if (D3NormSqr(&p)<0.01) { D3Equ(&tmpp->n,Cos(é),Sin(é)); lock {zero_normal++;} } else { @@ -206,7 +210,7 @@ U0 SnellsLaw(Photon *tmpp,I64 last,I64 next) { //n1 and n2 are refraction index. //n1 Sin(é1) == n2 Sin(é2) - F64 é=Arg(tmpp->v.x,tmpp->v.y),én,n1,n2,é1,é2,éa,éb; + F64 é=Arg(tmpp->v.x,tmpp->v.y),én,n1,n2,é1,é2; if (last==WHITE) n1=1.5; else @@ -217,17 +221,13 @@ U0 SnellsLaw(Photon *tmpp,I64 last,I64 next) n2=1.0; FindNormal(tmpp); én=Arg(tmpp->n.x,tmpp->n.y); - //dot=m1m2Cos(é); + //Dot=m1m2Cos(é); é1=ACos(D3Dot(&tmpp->n,&tmpp->v)); é2=ASin(n1*Sin(é1)/n2); - //é --> (én+é1) - //é <-- (én+é2) - éa=én+é2; - éb=én-é2; - if (Abs(Wrap(éa-é))=0) + é=én+é2; else - é=éb; + é=én-é2; D3Equ(&tmpp->v,Cos(é),Sin(é)); lock {snell_cnt++;} } @@ -503,8 +503,11 @@ lt_restart: } break; case MSG_MS_R_UP: - mode=PopUpPickLst("Line\0Spline\0FloodFill\0TestRay\0"); - LTMenuSet(mode); + i=PopUpPickLst("Line\0Spline\0FloodFill\0TestRay\0"); + if (i>=0) { + mode=i; + LTMenuSet(mode); + } break; case MSG_KEY_DOWN: switch (arg1) { diff --git a/TempleOSCD/Doc/ChgLog.DD b/TempleOSCD/Doc/ChgLog.DD index 00ecc55..9f0a57e 100644 --- a/TempleOSCD/Doc/ChgLog.DD +++ b/TempleOSCD/Doc/ChgLog.DD @@ -2,7 +2,7 @@ $WW,1$$FG,5$$TX+CX,"Change Log"$$FG$ Use $LK,"R",A="MN:R"$() to rename if I change a label. -$IV,1$----01/31/17 08:57:31----$IV,0$ +$IV,1$----01/31/17 09:52:56----$IV,0$ * Added $LK,"::/Demo/Graphics/LightTable.HC"$. * Added $LK,"TOS Linux Setup",A="FF:::/Demo/AcctExample/TOS/TOSPolicies.DD,TOS Linux Setup"$.