#ifdef/*[*/_
/* C 2 0 0 9*/#include<GL/glut.h>
_ ( t,ype ,def )unsigned char E ;typedef double K ;
# /*] + + + + > [ */include<sys/time.h> /*] <[>++>++++> > > [*/
K Q , k , a , h , o , x , w , v ;typedef/**/int j ; K U=.4,_3 [ 3 ] =
{ 107,192,229},s [ 7 ] [ 3 ] [ 8 ] , Z [ 3]={0,128,8 * 8 } ;/*]<<<[> + + >
>[*/typedef void l ; j n , ( J ) , m ; K V = .39,f[114 * 9 ] [1025], L [ 3 ]
={240,250,250};j M , O , R , I , S , H , i , T , A[9][04 ] = { { 69,-9 * 3 , 0,
-1},{75,-24, 3 , - 1 } , { 9 * 9 + 9 , 7 * 3 , 3 , - 1},{93, 21, 0 ,-1}, { 8 * 3 *
4,24,1,0},{93, 27, 0 , 1 } , {87 , 9 * 3 , - 3 , 1 } , { 72,-2 * 9 , - 3 , 1 } , {69
,-21,0,1}}; K z ( K b , K o_, K B , K O_, K y ) { F(O_- B )*(y- b )/( o_- b ) + B ; }
E D[512][8 * 8 * 8 ] [ 3 ] ; K p ( K b , K B ) { F z(0,b_, b ,B, _ (ra , n , d ) ( ) )
; } l/**/u(j b , j B , K y ) {if ( ! O ||( b * B * ( b - _x)*( B -_x ) ))f[B ] [ b ] = y ;
} l e (j(b),K( B ) ) { G ( ; b > 1 ; B = B / 2 ) { b = b / 2 ;G(I= 0 ; I < _x;I= T ) { T = ( H =
I + b )+b;G(R = 0;_x > R ; R = i ) { i = ( S = R + b ) + b ; u (S,H, ( f [ I ][R]+ f [ I ] [ i ] +
f [ T ][R]+f[ T ][i] ) / 4 ) ; u ( S , I , ( f [ I ] [ R ] + f [ I][i] + f [ H ][S]) / 3 ) ; u ( R ,
H , ( f [I][R]+f[H][S] + f [ T ] [ R ] ) / 3 ) ;u (i , H , ( f [ I ] [i]+f[H ] [ S ]+f[T ] [ i ] ) / 3 )
; u ( S , T,(f[H][S]+f[T ] [ R ] + f [ T ] [ i ]) /3); u ( S , I , f [ I][S]+p ( - B ,B)); u ( R , H , f [ H
] [ R ] + p ( -B,B));u(S,H,f[H ] [ S ] + p ( - B,B) );u ( i ,H, f [ H][ i]+p( - B , B ));u( S , T , f [ T ] [ S
] + p ( - B , B ) ) ;}}}}l/**/t(l){struct timeval b;gettimeofday(&b,NULL ) ;v=b. _ ( t , v_se, c ) + b . tv_usec/ 1e6
; n++ ; } l r ( l ) {glutPostRedisplay();}l/*@_@*/P(K*b ,K*B,K y){G(M= 0 ; M <3;++ M ) D [ I][R][M ] = ( E ) z(0,1,b[M],B[M]
, y); } l d ( l ) { if(x>U){P(L ,_3 , z ( U , 1,0,1.0,x ));}C if(x>V) { G ( M=0 ; M < 3 ; M++)D[I ] [ R ] [ M ]=(E)L[M];}C{P(Z,L,z
( -1,V, 0 , 1 , x ) ) ;};}j c(K y ) { F ( ( M =(j)(_x*(y +1)/2 ))>=0)? M % ( _x) :_x - ( ( -M)%_x) ; } l W ( E y,j(b),j(B)){glFlush();v
= v-Q;if( v > 1 ) { printf("%ffps\n", n / v ) ; }exit(0); }l N(l){G(O=0;O < 8;O = O + 1 ) s [M][0][ O ] = s [ M ] [ 1][O]=s[M][
2][O];G ( s [ M ] [ 1][6]+=p(2,7);s[M ] [ 2 ] [7]==s[M][ 0][7];s [M][2] [ 7 ] = ( j ) p (0,4));G( O = 0 ; O < 6;O ++) s
[M][1][O] = p ( - 9 *40,360);O=( j)s[M][2 ] [ 7 ];s[M][1] [O/2]=((O&1)?- 360:360 ) ; } l Y ( j b,j(I)){r() ; } l g ( j b ) { _ (g
, lNormal3, d ) ( A [ b][2] *cos( w),A[b][3 ] , sin(w)*A[b][ 2]);_(glVer, tex3,d) ( A [ b ] [ 0]*cos(w),A[b][ 1 ] , A [b] [ 0 ] *sin
(w)) ;}l l1( l ) { _ (glTr, ansl, ated)(s[M][ 2 ][0],s[M][ 2][1],s[M][2][ 2]);G( O = 3;O < 6;O++){glRotated(s[ M ] [ 2][O] , ( O-3)?1
:0,( O-4)?1:0 , ( O -5)?1:0 );}_ (gl ,CallL , ist)((J)); glPopMatrix();} l p_( l ){; R = glutGet(_(GLUT_WINDO, W ,_WIDTH ) ) ;k=a=1;
I=M= glutGet(_ ( G ,LUT_WIN ,DOW_HEIGHT) );if(R>I)k=R/(K)I ;C{a=I /(K)R;} t (); } l q_( j (b)){glMatrixMode(b); _ ( glLoadI , d ,entity)
();} l O0(l){h=30 ;glFrustum (-k,k,-a,a,h, 1e6);gluLookAt(0, 0,-1e4,0,0,0,0 ,- 1,0);}j/* [ */q[]={_(GL_TEXTURE_,2, D ) ,/*<>*/ _ ( GL_TEXTUR,
E_G ,EN_S )|00,_ (G,L_TEXT , URE_GEN_T),( GL_CULL_FACE ), _( GL_NORMALI , Z , E )/* ] */,GL_DEPTH_TEST,GL_S,GL_T, _(GL_TEXTUR , E_MAG_FIL,
TER ),_( GL_,TEXTURE_MIN, _FILTER), GL_LINEAR, GL_POLYGON , _ (GL_, RG,B),GL_COLOR_BUFFER_BIT|_(GL_DEPTH_BUFF /*]<X++++>[*/,
ER_ ,BIT) ,GL_PROJECTION,_ (GL_,MODE ,LVIEW) ,GL_BACK} ; l X(l){ ;glDrawBuffer(q[16]);glClear(q[13]);p_();glViewport(0,0,R,
I) ;q_( q[14]);O0();q_(q[ 15]);G(M= 0;M<7 ;M++){G(O = 0 ;O<6; O ++)s[M][2][O]=z(s[M][0][6],s[M][1][6],s[M][/*omoikane 09*/
0] [O],s[M][1][O],v);s[M] [ 2][6 ]=v;if(s[ M ] [1][6 ]<=v)N( );glPushMatrix();l1();}glutSwapBuffers();glFlush ();;}
j main(j/**/b,char**B){_ (g,l, utInit ) ( &b,B) ; _(glu ,tInitDisplay,Mode)(GLUT_RGBA|GLUT_DOUBLE|_(GLUT_, DEPT
, H));b=_(glut,CreateWin, dow/* ; / */)( "Koyomi \x00");glutSetWindow(b);glutDisplayFunc(X);_(glutRes, hap
,eFunc)(Y);_(glut,Keyboard, Func)( W ) ; _(g, lutIdle ,Func)(r);_(gl,ShadeMo, del)(GL_SMOOTH);t();srand((j)v) ;k
=atan2(0,-1)/24;J=glGenLists(1 ); _( g , lN ,ewList)(J,GL_COMPILE);G(M=0;M<8;++ M){glBegin(GL_QUAD_STRIP);G(O=0
;O<49;){w=O++*k;g(M);g(M+1);}_( gl , E ,nd)();}glBegin(q[11]);G(M=0;M<48;g(0 ))w=M++*k;glEnd() ;glBegin(q[
11 ]);G(M=I=0;M<48;g(8))w=M++*- k ; glEnd();b=_x;G(glEndList();I <=b;I+=128 ){G(R=M=O=0;R<= b;R+=0x80
)f[I][R]=0;}G(;M<32;M++)f[((j )p ( 0 ,8))*128][((j)p(0,8))*128]=p(.1,.3);e(128, .06);G(M=0;M<= b;M+=1){
f[b][M]=f[0][M];f[M][b]=f[M][0] ;}O=1;e(b,.48 ) ;G(I=0;I<b;I++)G(R=0;R<b;f[I][R++]*=5* 75);b=b /2;G(I=0;I< b;I++)
{a=z(0,511,1,-1,I);G(R=0;R<b;R++) {k=z(0,511, - 1,1,R);h=k*k+a*a;o=sqrt((1-k*k)/2);if(a >=o){x =1;d();}C if((-
o)>=a){x=-1;d();}C{if(h<1){x=a/sqrt (1-h);if( x >=-1&&x<=1)d();}}if(h<1)if((w=f[c(k/sqrt (1-h)) ][c(a/ sqrt
(1-h))])>0)G(M=0;M<3;M+=1)D[I][R][M]=(E )((O=(j ) D[I][R ][M]+(j)w)>255?255:O) ;}}_(glGenT, extu, res )(1
,&m);glBindTexture(*q,m);G(M=0;M<6;_( glEn ,ab ,le)(q[ M++]));G(_(g,lTexIma, ge2D)(*q ,0, q[12 ], b
,b,0 ,q[12],GL_UNSIGNED_BYTE,D);M<8;_( gl,TexG , eni)( q[M++],(_(GL_TEXTUR, E_GEN_M /*; */,
ODE )),GL_SPHERE_MAP)); G(glTexEnvf (_(GL_TEX , TURE_ ,ENV),_(GL_TEXTURE_E ,NV_MO ,/* '
*/DE ),GL_REPLACE);M< 10;glTexParameteri (q[0], q[M++],q[10 ]));Q=v;G(M=n=0;M<7; M++){G (O=
0;O <6;s[M][2][O++ ]=p(-360,360)) ;s[M ][2][7]=s[ M][2][6 ]=v;N() ;}_(glut,Mai ,nLoop) ();F+0 ;}
/*] <>>>+++++<*/ #else /*<<<<-]< <-]> >>>>>>[<+<+>>-]<+++ ++++++. <- .----.>- ---.++. <<+.> */
/*. */#define _(/* <.>>-----> [*/ KO,YO,MI /*]<.+ + */)KO## YO##MI /*+.< */
# include/* <*/ <stdlib.h> /*> tarai-- --.-- .>----- --.< -.*/
# include <stdio.h> /* +++++. <<.>> >-.<< .>- >*/
# include <math.h> /* X++.+ +++++ .[ <] <*/
/* +*/# define C else /*+.< [ */
# /**/ define G/* */for
/* */# define F _(/*'
*/ re,tu ,rn)
/* */int b_=_
( RAND ,_MA
,X/* */),
_x= (/*;]
*/ 1024);
# include\
__FILE__
#endif
|